firebase 11.8.1 → 11.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/dist/esm/index.esm.js +1 -1
- package/app/dist/index.cjs.js +1 -1
- package/app/dist/index.mjs +1 -1
- package/compat/app/dist/esm/index.esm.js +1 -1
- package/compat/app/dist/index.cjs.js +1 -1
- package/compat/app/dist/index.mjs +1 -1
- package/compat/dist/esm/index.esm.js +2 -2
- package/compat/dist/index.node.cjs +2 -2
- package/compat/dist/index.rn.cjs.js +2 -2
- package/firebase-ai.js +1 -1
- package/firebase-ai.js.map +1 -1
- package/firebase-analytics.js +1 -1
- package/firebase-app-check.js +1 -1
- package/firebase-app-compat.js +2 -2
- package/firebase-app.js +5 -5
- package/firebase-auth-cordova.js +1 -1
- package/firebase-auth-web-extension.js +1 -1
- package/firebase-auth.js +1 -1
- package/firebase-compat.js +10 -10
- package/firebase-compat.js.map +1 -1
- package/firebase-data-connect.js +1 -1
- package/firebase-database.js +1 -1
- package/firebase-firestore-compat.js +6 -6
- package/firebase-firestore-compat.js.map +1 -1
- package/firebase-firestore-lite.js +1 -1
- package/firebase-firestore.js +1 -1
- package/firebase-firestore.js.map +1 -1
- package/firebase-functions.js +1 -1
- package/firebase-installations.js +1 -1
- package/firebase-messaging-sw.js +1 -1
- package/firebase-messaging.js +1 -1
- package/firebase-performance-standalone-compat.js +5 -5
- package/firebase-performance.js +1 -1
- package/firebase-remote-config.js +1 -1
- package/firebase-storage.js +1 -1
- package/firebase-vertexai.js +1 -1
- package/firebase-vertexai.js.map +1 -1
- package/package.json +6 -6
package/firebase-compat.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let n=()=>{},i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},g=function(e,t){if(!e)throw
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let n=()=>{},i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},g=function(e,t){if(!e)throw B(t)},B=function(e){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},s=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},a={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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let u=0;u<r.length;u+=3){var s=r[u],a=u+1<r.length,o=a?r[u+1]:0,l=u+2<r.length,h=l?r[u+2]:0;let e=(15&o)<<2|h>>6,t=63&h;l||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,h=i[e++];h<128?s[t++]=String.fromCharCode(h):191<h&&h<224?(a=i[e++],s[t++]=String.fromCharCode((31&h)<<6|63&a)):239<h&&h<365?(a=((7&h)<<18|(63&i[e++])<<12|(63&i[e++])<<6|63&i[e++])-65536,s[t++]=String.fromCharCode(55296+(a>>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],l=i[e++],s[t++]=String.fromCharCode((15&h)<<12|(63&o)<<6|63&l))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let l=0;l<e.length;){var i=r[e.charAt(l++)],s=l<e.length?r[e.charAt(l)]:0,a=++l<e.length?r[e.charAt(l)]:64,o=++l<e.length?r[e.charAt(l)]:64;if(++l,null==i||null==s||null==a||null==o)throw new j;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class j extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function o(e){var t=s(e);return a.encodeByteArray(t,!0)}let z=function(e){return o(e).replace(/\./g,"")},K=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function W(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=W(e[r],t[r]));return e}function H(){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.")}let G=()=>H().__FIREBASE_DEFAULTS__,$=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},Q=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&K(e[1]);return t&&JSON.parse(t)}},Y=()=>{try{return n()||G()||$()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},J=()=>{var e;return null==(e=Y())?void 0:e.config};var c,X;class Z{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function ee(e){return e.endsWith(".cloudworkstations.dev")}async function te(e){return(await fetch(e,{credentials:"include"})).ok}function re(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e),[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}let ne={};let ie=!1;function se(e,t){if("undefined"!=typeof window&&"undefined"!=typeof document&&ee(window.location.host)&&ne[e]!==t&&!ne[e]&&!ie){ne[e]=t;let h="__firebase__banner";let u=0<(()=>{var e,t={prod:[],emulator:[]};for(e of Object.keys(ne))(ne[e]?t.emulator:t.prod).push(e);return t})().prod.length;function c(e){return"__firebase__banner__"+e}function d(){var e=document.createElement("span");return e.style.cursor="pointer",e.style.marginLeft="16px",e.style.fontSize="24px",e.innerHTML=" ×",e.onclick=()=>{var e;ie=!0,(e=document.getElementById(h))&&e.remove()},e}function r(){var e,t,r=(e=>{let t=document.getElementById(e),r=!1;return t||((t=document.createElement("div")).setAttribute("id",e),r=!0),{created:r,element:t}})(h),n=c("text"),i=document.getElementById(n)||document.createElement("span"),s=c("learnmore"),a=document.getElementById(s)||document.createElement("a"),o=c("preprendIcon"),l=document.getElementById(o)||document.createElementNS("http://www.w3.org/2000/svg","svg");r.created&&(r=r.element,(t=r).style.display="flex",t.style.background="#7faaf0",t.style.position="fixed",t.style.bottom="5px",t.style.left="5px",t.style.padding=".5em",t.style.borderRadius="5px",t.style.alignItems="center",(t=a).setAttribute("id",s),t.innerText="Learn more",t.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",t.setAttribute("target","__blank"),t.style.paddingLeft="5px",t.style.textDecoration="underline",s=d(),t=o,(e=l).setAttribute("width","24"),e.setAttribute("id",t),e.setAttribute("height","24"),e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("fill","none"),e.style.marginLeft="-6px",r.append(l,i,a,s),document.body.appendChild(r)),u?(i.innerText="Preview backend disconnected.",l.innerHTML=`<g clip-path="url(#clip0_6013_33858)">
|
|
2
2
|
<path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/>
|
|
3
3
|
</g>
|
|
4
4
|
<defs>
|
|
@@ -12,23 +12,23 @@
|
|
|
12
12
|
<clipPath id="clip0_6083_34804">
|
|
13
13
|
<rect width="24" height="24" fill="white"/>
|
|
14
14
|
</clipPath>
|
|
15
|
-
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=null==(e=Y())?void 0:e.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ue(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ce(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{var e;i((null==(e=r.error)?void 0:e.message)||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ke(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function Se(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function De(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function xe(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let p=0;p<80;p++){u=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,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(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let je=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},Be=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=Be,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class u{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Ge="[DEFAULT]";class $e{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!=(r=null==e?void 0:e.optional)&&r;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:Ge})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=Ge){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=Ge){return this.instances.has(e)}getOptions(e=Ge){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=null!=(i=this.onInitCallbacks.get(r))?i:new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=c=c||{})[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",{debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT}),Xe=c.INFO,Ze={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ut={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ct(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ct(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ut):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ut={...X=ut,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===(null==(t=e.getComponent())?void 0:t.type)?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.13.0",Et=new tt("@firebase/app");let Ct="[DEFAULT]",kt={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},St=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function Dt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of St.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function xt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function h(e){return null!=e&&void 0!==e.settings}let Mt=new we("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Lt{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new u("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Mt.create("app-deleted",{appName:this._name})}}function Ft(e,t){var r=K(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Ut extends Lt{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig=Object.assign({automaticDataCollectionEnabled:i},t),this._serverConfig.authIdToken&&Ft(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ft(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,d(It,Tt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){Bt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Mt.create("server-app-deleted")}}let Vt="11.8.1";function qt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:Ct,automaticDataCollectionEnabled:!0},t);let i=n.name;if("string"!=typeof i||!i)throw Mt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Mt.create("no-options");var s=St.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Mt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Lt(r,n,o);return St.set(i,s),s}function jt(e=Ct){var t=St.get(e);if(!t&&e===Ct&&J())return qt();if(t)return t;throw Mt.create("no-app",{appName:e})}async function Bt(e){let t=!1;var r=e.name;St.has(r)?(t=!0,St.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function d(e,t,r){let n,i=null!=(n=kt[e])?n:e;r&&(i+="-"+r);var s,a=i.match(/\s|\//),o=t.match(/\s|\//);a||o?(s=[`Unable to register library "${i}" with version "${t}":`],a&&s.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&o&&s.push("and"),o&&s.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(s.join(" "))):Dt(new u(i+"-version",()=>({library:i,version:t}),"VERSION"))}function zt(e,t){if(null!==e&&"function"!=typeof e)throw Mt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(null!=i?i:e.logLevel)&&s({level:c[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Kt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Wt="firebase-heartbeat-database",Ht=1,Gt="firebase-heartbeat-store",$t=null;function Qt(){return $t=$t||gt(Wt,Ht,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(Gt)}catch(e){console.warn(e)}}}).catch(e=>{throw Mt.create("idb-open",{originalErrorMessage:e.message})})}async function Yt(e,t){try{var r=(await Qt()).transaction(Gt,"readwrite");await r.objectStore(Gt).put(t,Jt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Mt.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),Et.warn(r.message))}}function Jt(e){return e.name+"!"+e.options.appId}class Xt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new er(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,r;try{var n,i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Zt();if(null!=(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null==(r=this._heartbeatsCache)?void 0:r.heartbeats)))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:i}),30<this._heartbeatsCache.heartbeats.length&&(n=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(n,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){var e,t,r,n,i;try{return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)?"":(t=Zt(),{heartbeatsToSend:r,unsentEntries:n}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),tr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),tr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),i=z(JSON.stringify({version:2,heartbeats:r})),this._heartbeatsCache.lastSentHeartbeatDate=t,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i)}catch(e){return Et.warn(e),""}}}function Zt(){return(new Date).toISOString().substring(0,10)}class er{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await Qt()).transaction(Gt),r=await t.objectStore(Gt).get(Jt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Mt.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),Et.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Yt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Yt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function tr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Dt(new u("platform-logger",e=>new bt(e),"PRIVATE")),Dt(new u("heartbeat",e=>new Xt(e),"PRIVATE")),d(It,Tt,t),d(It,Tt,"esm2017"),d("fire-js","");var rr=Object.freeze({__proto__:null,SDK_VERSION:Vt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:St,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:xt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_registerComponent:Dt,_removeServiceInstance:function(e,t,r=Ct){xt(e,t).clearInstance(r)},_serverApps:At,deleteApp:Bt,getApp:jt,getApps:function(){return Array.from(St.values())},initializeApp:qt,initializeServerApp:function(e,t){if(("undefined"!=typeof window||he())&&!he())throw Mt.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!0);let r;r=Ot(e)?e.options:e;var n=Object.assign(Object.assign({},t),r);if(void 0!==n.releaseOnDeref&&delete n.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Mt.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),i=At.get(n);if(i)i.incRefCount(t.releaseOnDeref);else{var s,a=new Qe(n);for(s of Nt.values())a.addComponent(s);i=new Ut(r,t,n,a),At.set(n,i)}return i},onLog:zt,registerVersion:d,setLogLevel:Kt,FirebaseError:ye});class nr{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new u("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),Bt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r,n=this._delegate.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null==(r=n.getComponent())?void 0:r.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let ir=new we("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function sr(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=qt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Kt,onLog:zt,apps:null,SDK_VERSION:Vt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Dt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw ir.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:rr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw ir.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var ar=function e(){let t=sr(nr);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W}),t}(),e=new tt("@firebase/app-compat");try{var or=H();void 0!==or.firebase&&(e.warn(`
|
|
15
|
+
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=null==(e=Y())?void 0:e.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ue(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ce(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{var e;i((null==(e=r.error)?void 0:e.message)||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ke(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function Se(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function xe(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function De(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let p=0;p<80;p++){u=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,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(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let Be=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},je=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=je,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class u{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Ge="[DEFAULT]";class $e{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!=(r=null==e?void 0:e.optional)&&r;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:Ge})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=Ge){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=Ge){return this.instances.has(e)}getOptions(e=Ge){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=null!=(i=this.onInitCallbacks.get(r))?i:new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=c=c||{})[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",{debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT}),Xe=c.INFO,Ze={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ut={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ct(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ct(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ut):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ut={...X=ut,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===(null==(t=e.getComponent())?void 0:t.type)?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.13.1",Et=new tt("@firebase/app");let Ct="[DEFAULT]",kt={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},St=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function xt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of St.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function Dt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function h(e){return null!=e&&void 0!==e.settings}let Mt=new we("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Lt{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new u("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Mt.create("app-deleted",{appName:this._name})}}function Ft(e,t){var r=K(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Ut extends Lt{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig=Object.assign({automaticDataCollectionEnabled:i},t),this._serverConfig.authIdToken&&Ft(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ft(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,d(It,Tt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){jt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Mt.create("server-app-deleted")}}let Vt="11.9.0";function qt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:Ct,automaticDataCollectionEnabled:!0},t);let i=n.name;if("string"!=typeof i||!i)throw Mt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Mt.create("no-options");var s=St.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Mt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Lt(r,n,o);return St.set(i,s),s}function Bt(e=Ct){var t=St.get(e);if(!t&&e===Ct&&J())return qt();if(t)return t;throw Mt.create("no-app",{appName:e})}async function jt(e){let t=!1;var r=e.name;St.has(r)?(t=!0,St.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function d(e,t,r){let n,i=null!=(n=kt[e])?n:e;r&&(i+="-"+r);var s,a=i.match(/\s|\//),o=t.match(/\s|\//);a||o?(s=[`Unable to register library "${i}" with version "${t}":`],a&&s.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&o&&s.push("and"),o&&s.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(s.join(" "))):xt(new u(i+"-version",()=>({library:i,version:t}),"VERSION"))}function zt(e,t){if(null!==e&&"function"!=typeof e)throw Mt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(null!=i?i:e.logLevel)&&s({level:c[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Kt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Wt="firebase-heartbeat-database",Ht=1,Gt="firebase-heartbeat-store",$t=null;function Qt(){return $t=$t||gt(Wt,Ht,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(Gt)}catch(e){console.warn(e)}}}).catch(e=>{throw Mt.create("idb-open",{originalErrorMessage:e.message})})}async function Yt(e,t){try{var r=(await Qt()).transaction(Gt,"readwrite");await r.objectStore(Gt).put(t,Jt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Mt.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),Et.warn(r.message))}}function Jt(e){return e.name+"!"+e.options.appId}class Xt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new er(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,r;try{var n,i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Zt();if(null!=(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null==(r=this._heartbeatsCache)?void 0:r.heartbeats)))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:i}),30<this._heartbeatsCache.heartbeats.length&&(n=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(n,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){var e,t,r,n,i;try{return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)?"":(t=Zt(),{heartbeatsToSend:r,unsentEntries:n}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),tr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),tr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),i=z(JSON.stringify({version:2,heartbeats:r})),this._heartbeatsCache.lastSentHeartbeatDate=t,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i)}catch(e){return Et.warn(e),""}}}function Zt(){return(new Date).toISOString().substring(0,10)}class er{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await Qt()).transaction(Gt),r=await t.objectStore(Gt).get(Jt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Mt.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),Et.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Yt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Yt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function tr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",xt(new u("platform-logger",e=>new bt(e),"PRIVATE")),xt(new u("heartbeat",e=>new Xt(e),"PRIVATE")),d(It,Tt,t),d(It,Tt,"esm2017"),d("fire-js","");var rr=Object.freeze({__proto__:null,SDK_VERSION:Vt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:St,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:Dt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_registerComponent:xt,_removeServiceInstance:function(e,t,r=Ct){Dt(e,t).clearInstance(r)},_serverApps:At,deleteApp:jt,getApp:Bt,getApps:function(){return Array.from(St.values())},initializeApp:qt,initializeServerApp:function(e,t){if(("undefined"!=typeof window||he())&&!he())throw Mt.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!0);let r;r=Ot(e)?e.options:e;var n=Object.assign(Object.assign({},t),r);if(void 0!==n.releaseOnDeref&&delete n.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Mt.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),i=At.get(n);if(i)i.incRefCount(t.releaseOnDeref);else{var s,a=new Qe(n);for(s of Nt.values())a.addComponent(s);i=new Ut(r,t,n,a),At.set(n,i)}return i},onLog:zt,registerVersion:d,setLogLevel:Kt,FirebaseError:ye});class nr{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new u("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),jt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r,n=this._delegate.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null==(r=n.getComponent())?void 0:r.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let ir=new we("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function sr(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=qt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Kt,onLog:zt,apps:null,SDK_VERSION:Vt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;xt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw ir.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:rr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw ir.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var ar=function e(){let t=sr(nr);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W}),t}(),e=new tt("@firebase/app-compat");try{var or=H();void 0!==or.firebase&&(e.warn(`
|
|
16
16
|
Warning: Firebase is already defined in the global scope. Please make sure
|
|
17
17
|
Firebase library is only loaded once.
|
|
18
18
|
`),hr=or.firebase.SDK_VERSION)&&0<=hr.indexOf("LITE")&&e.warn(`
|
|
19
19
|
Warning: You are trying to load Firebase while using Firebase Performance standalone script.
|
|
20
20
|
You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
|
|
21
|
-
`)}catch(e){}let lr=ar;d("@firebase/app-compat","0.4.0",void 0);lr.registerVersion("firebase","11.8.1","app-compat");var or="@firebase/installations",hr="0.6.17";let ur=1e4,cr="w:"+hr,dr="FIS_v2",pr="https://firebaseinstallations.googleapis.com/v1",fr=36e5;let gr=new we("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function mr(e){return e instanceof ye&&e.code.includes("request-failed")}function vr({projectId:e}){return pr+`/projects/${e}/installations`}function _r(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function yr(e,t){var r=(await t.json()).error;return gr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function wr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function br(e,{refreshToken:t}){var r=wr(e);return r.append("Authorization",(e=t,dr+" "+e)),r}async function Ir(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Tr(t){return new Promise(e=>{setTimeout(e,t)})}let Er=/^[cdef][\w-]{21}$/,Cr="";function kr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Er.test(t)?t:Cr}catch(e){return Cr}}function Sr(e){return e.appName+"!"+e.appId}let Ar=new Map;function Nr(e,t){var r=Sr(e),e=(Rr(r,t),r),r=(()=>(!Pr&&"BroadcastChannel"in self&&((Pr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Rr(e.data.key,e.data.fid)}),Pr))();r&&r.postMessage({key:e,fid:t}),0===Ar.size&&Pr&&(Pr.close(),Pr=null)}function Rr(e,t){var r=Ar.get(e);if(r)for(var n of r)n(t)}let Pr=null;let Dr="firebase-installations-database",xr=1,Or="firebase-installations-store",Mr=null;function Lr(){return Mr=Mr||gt(Dr,xr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Or)}})}async function Fr(e,t){var r=Sr(e),n=(await Lr()).transaction(Or,"readwrite"),i=n.objectStore(Or),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Nr(e,t.fid),t}async function Ur(e){var t=Sr(e),r=(await Lr()).transaction(Or,"readwrite");await r.objectStore(Or).delete(t),await r.done}async function Vr(e,t){var r=Sr(e),n=(await Lr()).transaction(Or,"readwrite"),i=n.objectStore(Or),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Nr(e,a.fid),a}async function qr(r){let n;var e=await Vr(r.appConfig,e=>{var t=Br(e||{fid:kr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=vr(e);var i=wr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:dr,appId:e.appId,sdkVersion:cr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Ir(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:_r(s.authToken)};throw await yr("Create Installation",i)})(t,r);return Fr(t.appConfig,e)}catch(e){throw mr(e)&&409===e.customData.serverCode?await Ur(t.appConfig):await Fr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(gr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await jr(e.appConfig);for(;1===t.registrationStatus;)await Tr(100),t=await jr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await qr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Cr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function jr(e){return Vr(e,e=>{if(e)return Br(e);throw gr.create("installation-not-found")})}function Br(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ur<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function zr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=vr(i)+`/${s}/authTokens:generate`;var i,s,a=br(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:cr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Ir(()=>fetch(n,l));if(a.ok)return _r(await a.json());throw await yr("Generate Auth Token",a)}async function Kr(n,i=!1){let s;var e=await Vr(n.appConfig,e=>{if(!Hr(e))throw gr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+fr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Wr(e.appConfig);for(;1===r.authToken.requestStatus;)await Tr(100),r=await Wr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Kr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r=Object.assign(Object.assign({},t),{authToken:r}),s=(async(t,r)=>{try{var e=await zr(t,r),n=Object.assign(Object.assign({},r),{authToken:e});return await Fr(t.appConfig,n),e}catch(e){var i;throw!mr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await Fr(t.appConfig,i)):await Ur(t.appConfig),e}})(n,r),r;throw gr.create("app-offline")}return e});return s?await s:e.authToken}function Wr(e){return Vr(e,e=>{var t,r;if(Hr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ur<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw gr.create("not-registered")})}function Hr(e){return void 0!==e&&2===e.registrationStatus}async function Gr(e,t=!1){var r=e,n=(await(!(n=(await qr(r)).registrationPromise)||!await n),await Kr(r,t));return n.token}function $r(e){return gr.create("missing-app-config-values",{valueName:e})}let Qr="installations",Yr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw $r("App Configuration");if(!e.name)throw $r("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw $r(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:xt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Jr=e=>{let t=xt(e.getProvider("app").getImmediate(),Qr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await qr(t);return(n||Kr(t)).catch(console.error),r.fid})(t),getToken:e=>Gr(t,e)}};Dt(new u(Qr,Yr,"PUBLIC")),Dt(new u("installations-internal",Jr,"PRIVATE")),d(or,hr),d(or,hr,"esm2017");let Xr="analytics",Zr="firebase_id",en="origin",tn=6e4,rn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",nn="https://www.googletagmanager.com/gtag/js",sn=new tt("@firebase/analytics"),an=new we("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function on(e){var t;return e.startsWith(nn)?e:(t=an.create("invalid-gtag-resource",{gtagURL:e}),sn.warn(t.message),"")}function ln(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function hn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:on}),n=document.createElement("script"),i=nn+`?l=${e}&id=`+t;n.src=r?null==r?void 0:r.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function un(S,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=S,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await ln(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){sn.error(e)}}else if("config"===e){var d,[p,f]=t,g=S,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await ln(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){sn.error(e)}g("config",_,y)}else{var b,I,T,E,C,k;"consent"===e?([b,I]=t,S("consent",b,I)):"get"===e?([T,E,C]=t,S("get",T,E,C)):"set"===e?([k]=t,S("set",k)):S(e,...t)}}catch(e){sn.error(e)}}}let cn=30;let dn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function pn(e){var t,{appId:r,apiKey:n}=e,n={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":n})},r=rn.replace("{app-id}",r),r=await fetch(r,n);if(200===r.status||304===r.status)return r.json();{let e="";try{var i=await r.json();null!=(t=i.error)&&t.message&&(e=i.error.message)}catch(e){}throw an.create("config-fetch-failed",{httpStatus:r.status,responseMessage:e})}}async function fn(e,t=dn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw an.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw an.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new vn;return setTimeout(async()=>{o.abort()},void 0!==r?r:tn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=dn){var h;let{appId:u,measurementId:c}=s;try{await gn(o,e)}catch(e){if(c)return sn.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:u,measurementId:c};throw e}try{let e=await pn(s);return l.deleteThrottleMetadata(u),e}catch(e){let t=e;if(!mn(t)){if(l.deleteThrottleMetadata(u),c)return sn.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==t?void 0:t.message}]`),{appId:u,measurementId:c};throw e}let r=503===Number(null==(h=null==t?void 0:t.customData)?void 0:h.httpStatus)?He(a,l.intervalMillis,cn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(u,n),sn.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function gn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(an.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function mn(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class vn{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function _n(t,e,r,n,i,s,a){var o=fn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&sn.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>sn.error(e)),e.push(o),(async()=>{if(!me())return sn.warn(an.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return sn.warn(an.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(nn)&&t.src.includes(e))return t})(s)||hn(s,o.measurementId),i("js",new Date),null!=(h=null==a?void 0:a.config)?h:{});return h[en]="firebase",h.update=!0,null!=l&&(h[Zr]=l),i("config",o.measurementId,h),o.measurementId}class yn{constructor(e){this.app=e}_delete(){return delete wn[this.app.options.appId],Promise.resolve()}}let wn={},bn=[],In={},Tn="dataLayer",En="gtag",Cn,kn,Sn=!1;function An(e){if(Sn)throw an.create("already-initialized");e.dataLayerName&&(Tn=e.dataLayerName),e.gtagName&&(En=e.gtagName)}function Nn(e,t,r){n=[],ue()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=an.create("invalid-analytics-context",{errorInfo:n}),sn.warn(n.message));var n=e.options.appId;if(!n)throw an.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw an.create("no-api-key");sn.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID '+e.options.measurementId+' provided in the "measurementId" field in the local Firebase config.')}if(null!=wn[n])throw an.create("already-exists",{id:n});if(!Sn){{var i=Tn;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=un(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(wn,bn,In,Tn,En);kn=s,Cn=a,Sn=!0}return wn[n]=_n(e,bn,In,t,Cn,Tn,r),new yn(e)}async function Rn(){if(ue())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function Pn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function Dn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function On(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(wn[e.app.options.appId],t).catch(e=>sn.error(e))}function Mn(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,Object.assign(Object.assign({},n),{send_to:s})))})(kn,wn[e.app.options.appId],t,r,n).catch(e=>sn.error(e))}let Ln="@firebase/analytics",Fn="0.10.16";Dt(new u(Xr,(e,{options:t})=>Nn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),Dt(new u("analytics-internal",function(e){try{let n=e.getProvider(Xr).getImmediate();return{logEvent:(e,t,r)=>Mn(n,e,t,r)}}catch(e){throw an.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),d(Ln,Fn),d(Ln,Fn,"esm2017");class Un{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Mn(this._delegate,e,t,r)}setCurrentScreen(e,t){Pn(this._delegate,e,t)}setUserId(e,t){Dn(this._delegate,e,t)}setUserProperties(e,t){xn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){On(this._delegate,e)}}(t=Sm=Sm||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let Vn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new Un(t,r)};e={Analytics:Un,settings:An,isSupported:Rn,EventName:Sm},lr.INTERNAL.registerComponent(new u("analytics-compat",Vn,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),lr.registerVersion("@firebase/analytics-compat","0.2.22");let qn=new Map,jn={activated:!1,tokenObservers:[]},Bn={initialized:!1,enabled:!1};function zn(e){return qn.get(e)||Object.assign({},jn)}let Kn="https://content-firebaseappcheck.googleapis.com/v1",Wn="exchangeDebugToken",Hn={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class Gn{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Z,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new Z,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let $n=new we("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Qn(e=!1){var t;return e?null==(t=self.grecaptcha)?void 0:t.enterprise:self.grecaptcha}function Yn(e){if(!zn(e).activated)throw $n.create("use-before-activation",{appName:e.name})}function Jn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=Xn(r)+"d:"),n&&(s+=Xn(n)+"h:"),s+=Xn(i)+"m:"+Xn(t)+"s"}function Xn(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function Zn({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw $n.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==s.status)throw $n.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw $n.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw $n.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ei(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Kn}/projects/${r}/apps/${n}:${Wn}?key=`+i,body:{debug_token:t}}}let ti="firebase-app-check-database",ri=1,ni="firebase-app-check-store",ii="debug-token",si=null;function ai(){return si=si||new Promise((t,r)=>{try{var e=indexedDB.open(ti,ri);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;r($n.create("storage-open",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(ni,{keyPath:"compositeKey"})}}catch(e){r($n.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}async function oi(e,t){let n=(await ai()).transaction(ni,"readwrite"),i=n.objectStore(ni).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{var t;r($n.create("storage-set",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}async function li(e){let t=(await ai()).transaction(ni,"readonly"),i=t.objectStore(ni).get(e);return new Promise((r,n)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},t.onerror=e=>{var t;n($n.create("storage-get",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}function hi(e){return e.options.appId+"-"+e.name}let ui=new tt("@firebase/app-check");async function ci(t){if(me()){let e=void 0;try{e=await li(hi(t))}catch(e){ui.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function di(e,t){return me()?oi(hi(e),t).catch(e=>{ui.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function pi(){let e=void 0;try{e=await li(ii)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,oi(ii,r).catch(e=>ui.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function fi(){return Bn.enabled}async function gi(){var e=Bn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
21
|
+
`)}catch(e){}let lr=ar;d("@firebase/app-compat","0.4.1",void 0);lr.registerVersion("firebase","11.9.0","app-compat");var or="@firebase/installations",hr="0.6.17";let ur=1e4,cr="w:"+hr,dr="FIS_v2",pr="https://firebaseinstallations.googleapis.com/v1",fr=36e5;let gr=new we("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function mr(e){return e instanceof ye&&e.code.includes("request-failed")}function vr({projectId:e}){return pr+`/projects/${e}/installations`}function _r(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function yr(e,t){var r=(await t.json()).error;return gr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function wr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function br(e,{refreshToken:t}){var r=wr(e);return r.append("Authorization",(e=t,dr+" "+e)),r}async function Ir(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Tr(t){return new Promise(e=>{setTimeout(e,t)})}let Er=/^[cdef][\w-]{21}$/,Cr="";function kr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Er.test(t)?t:Cr}catch(e){return Cr}}function Sr(e){return e.appName+"!"+e.appId}let Ar=new Map;function Nr(e,t){var r=Sr(e),e=(Rr(r,t),r),r=(()=>(!Pr&&"BroadcastChannel"in self&&((Pr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Rr(e.data.key,e.data.fid)}),Pr))();r&&r.postMessage({key:e,fid:t}),0===Ar.size&&Pr&&(Pr.close(),Pr=null)}function Rr(e,t){var r=Ar.get(e);if(r)for(var n of r)n(t)}let Pr=null;let xr="firebase-installations-database",Dr=1,Or="firebase-installations-store",Mr=null;function Lr(){return Mr=Mr||gt(xr,Dr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Or)}})}async function Fr(e,t){var r=Sr(e),n=(await Lr()).transaction(Or,"readwrite"),i=n.objectStore(Or),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Nr(e,t.fid),t}async function Ur(e){var t=Sr(e),r=(await Lr()).transaction(Or,"readwrite");await r.objectStore(Or).delete(t),await r.done}async function Vr(e,t){var r=Sr(e),n=(await Lr()).transaction(Or,"readwrite"),i=n.objectStore(Or),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Nr(e,a.fid),a}async function qr(r){let n;var e=await Vr(r.appConfig,e=>{var t=jr(e||{fid:kr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=vr(e);var i=wr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:dr,appId:e.appId,sdkVersion:cr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Ir(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:_r(s.authToken)};throw await yr("Create Installation",i)})(t,r);return Fr(t.appConfig,e)}catch(e){throw mr(e)&&409===e.customData.serverCode?await Ur(t.appConfig):await Fr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(gr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Br(e.appConfig);for(;1===t.registrationStatus;)await Tr(100),t=await Br(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await qr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Cr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Br(e){return Vr(e,e=>{if(e)return jr(e);throw gr.create("installation-not-found")})}function jr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ur<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function zr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=vr(i)+`/${s}/authTokens:generate`;var i,s,a=br(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:cr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Ir(()=>fetch(n,l));if(a.ok)return _r(await a.json());throw await yr("Generate Auth Token",a)}async function Kr(n,i=!1){let s;var e=await Vr(n.appConfig,e=>{if(!Hr(e))throw gr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+fr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Wr(e.appConfig);for(;1===r.authToken.requestStatus;)await Tr(100),r=await Wr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Kr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r=Object.assign(Object.assign({},t),{authToken:r}),s=(async(t,r)=>{try{var e=await zr(t,r),n=Object.assign(Object.assign({},r),{authToken:e});return await Fr(t.appConfig,n),e}catch(e){var i;throw!mr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await Fr(t.appConfig,i)):await Ur(t.appConfig),e}})(n,r),r;throw gr.create("app-offline")}return e});return s?await s:e.authToken}function Wr(e){return Vr(e,e=>{var t,r;if(Hr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ur<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw gr.create("not-registered")})}function Hr(e){return void 0!==e&&2===e.registrationStatus}async function Gr(e,t=!1){var r=e,n=(await(!(n=(await qr(r)).registrationPromise)||!await n),await Kr(r,t));return n.token}function $r(e){return gr.create("missing-app-config-values",{valueName:e})}let Qr="installations",Yr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw $r("App Configuration");if(!e.name)throw $r("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw $r(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Dt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Jr=e=>{let t=Dt(e.getProvider("app").getImmediate(),Qr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await qr(t);return(n||Kr(t)).catch(console.error),r.fid})(t),getToken:e=>Gr(t,e)}};xt(new u(Qr,Yr,"PUBLIC")),xt(new u("installations-internal",Jr,"PRIVATE")),d(or,hr),d(or,hr,"esm2017");let Xr="analytics",Zr="firebase_id",en="origin",tn=6e4,rn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",nn="https://www.googletagmanager.com/gtag/js",sn=new tt("@firebase/analytics"),an=new we("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function on(e){var t;return e.startsWith(nn)?e:(t=an.create("invalid-gtag-resource",{gtagURL:e}),sn.warn(t.message),"")}function ln(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function hn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:on}),n=document.createElement("script"),i=nn+`?l=${e}&id=`+t;n.src=r?null==r?void 0:r.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function un(S,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=S,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await ln(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){sn.error(e)}}else if("config"===e){var d,[p,f]=t,g=S,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await ln(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){sn.error(e)}g("config",_,y)}else{var b,I,T,E,C,k;"consent"===e?([b,I]=t,S("consent",b,I)):"get"===e?([T,E,C]=t,S("get",T,E,C)):"set"===e?([k]=t,S("set",k)):S(e,...t)}}catch(e){sn.error(e)}}}let cn=30;let dn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function pn(e){var t,{appId:r,apiKey:n}=e,n={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":n})},r=rn.replace("{app-id}",r),r=await fetch(r,n);if(200===r.status||304===r.status)return r.json();{let e="";try{var i=await r.json();null!=(t=i.error)&&t.message&&(e=i.error.message)}catch(e){}throw an.create("config-fetch-failed",{httpStatus:r.status,responseMessage:e})}}async function fn(e,t=dn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw an.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw an.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new vn;return setTimeout(async()=>{o.abort()},void 0!==r?r:tn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=dn){var h;let{appId:u,measurementId:c}=s;try{await gn(o,e)}catch(e){if(c)return sn.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:u,measurementId:c};throw e}try{let e=await pn(s);return l.deleteThrottleMetadata(u),e}catch(e){let t=e;if(!mn(t)){if(l.deleteThrottleMetadata(u),c)return sn.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==t?void 0:t.message}]`),{appId:u,measurementId:c};throw e}let r=503===Number(null==(h=null==t?void 0:t.customData)?void 0:h.httpStatus)?He(a,l.intervalMillis,cn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(u,n),sn.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function gn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(an.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function mn(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class vn{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function _n(t,e,r,n,i,s,a){var o=fn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&sn.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>sn.error(e)),e.push(o),(async()=>{if(!me())return sn.warn(an.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return sn.warn(an.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(nn)&&t.src.includes(e))return t})(s)||hn(s,o.measurementId),i("js",new Date),null!=(h=null==a?void 0:a.config)?h:{});return h[en]="firebase",h.update=!0,null!=l&&(h[Zr]=l),i("config",o.measurementId,h),o.measurementId}class yn{constructor(e){this.app=e}_delete(){return delete wn[this.app.options.appId],Promise.resolve()}}let wn={},bn=[],In={},Tn="dataLayer",En="gtag",Cn,kn,Sn=!1;function An(e){if(Sn)throw an.create("already-initialized");e.dataLayerName&&(Tn=e.dataLayerName),e.gtagName&&(En=e.gtagName)}function Nn(e,t,r){n=[],ue()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=an.create("invalid-analytics-context",{errorInfo:n}),sn.warn(n.message));var n=e.options.appId;if(!n)throw an.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw an.create("no-api-key");sn.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID '+e.options.measurementId+' provided in the "measurementId" field in the local Firebase config.')}if(null!=wn[n])throw an.create("already-exists",{id:n});if(!Sn){{var i=Tn;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=un(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(wn,bn,In,Tn,En);kn=s,Cn=a,Sn=!0}return wn[n]=_n(e,bn,In,t,Cn,Tn,r),new yn(e)}async function Rn(){if(ue())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function Pn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function Dn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(kn,wn[e.app.options.appId],t,r).catch(e=>sn.error(e))}function On(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(wn[e.app.options.appId],t).catch(e=>sn.error(e))}function Mn(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,Object.assign(Object.assign({},n),{send_to:s})))})(kn,wn[e.app.options.appId],t,r,n).catch(e=>sn.error(e))}let Ln="@firebase/analytics",Fn="0.10.16";xt(new u(Xr,(e,{options:t})=>Nn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),xt(new u("analytics-internal",function(e){try{let n=e.getProvider(Xr).getImmediate();return{logEvent:(e,t,r)=>Mn(n,e,t,r)}}catch(e){throw an.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),d(Ln,Fn),d(Ln,Fn,"esm2017");class Un{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Mn(this._delegate,e,t,r)}setCurrentScreen(e,t){Pn(this._delegate,e,t)}setUserId(e,t){xn(this._delegate,e,t)}setUserProperties(e,t){Dn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){On(this._delegate,e)}}(t=Sm=Sm||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let Vn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new Un(t,r)};e={Analytics:Un,settings:An,isSupported:Rn,EventName:Sm},lr.INTERNAL.registerComponent(new u("analytics-compat",Vn,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),lr.registerVersion("@firebase/analytics-compat","0.2.22");let qn=new Map,Bn={activated:!1,tokenObservers:[]},jn={initialized:!1,enabled:!1};function zn(e){return qn.get(e)||Object.assign({},Bn)}let Kn="https://content-firebaseappcheck.googleapis.com/v1",Wn="exchangeDebugToken",Hn={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class Gn{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Z,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new Z,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let $n=new we("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Qn(e=!1){var t;return e?null==(t=self.grecaptcha)?void 0:t.enterprise:self.grecaptcha}function Yn(e){if(!zn(e).activated)throw $n.create("use-before-activation",{appName:e.name})}function Jn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=Xn(r)+"d:"),n&&(s+=Xn(n)+"h:"),s+=Xn(i)+"m:"+Xn(t)+"s"}function Xn(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function Zn({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw $n.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==s.status)throw $n.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw $n.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw $n.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ei(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Kn}/projects/${r}/apps/${n}:${Wn}?key=`+i,body:{debug_token:t}}}let ti="firebase-app-check-database",ri=1,ni="firebase-app-check-store",ii="debug-token",si=null;function ai(){return si=si||new Promise((t,r)=>{try{var e=indexedDB.open(ti,ri);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;r($n.create("storage-open",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(ni,{keyPath:"compositeKey"})}}catch(e){r($n.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}async function oi(e,t){let n=(await ai()).transaction(ni,"readwrite"),i=n.objectStore(ni).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{var t;r($n.create("storage-set",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}async function li(e){let t=(await ai()).transaction(ni,"readonly"),i=t.objectStore(ni).get(e);return new Promise((r,n)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},t.onerror=e=>{var t;n($n.create("storage-get",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}function hi(e){return e.options.appId+"-"+e.name}let ui=new tt("@firebase/app-check");async function ci(t){if(me()){let e=void 0;try{e=await li(hi(t))}catch(e){ui.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function di(e,t){return me()?oi(hi(e),t).catch(e=>{ui.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function pi(){let e=void 0;try{e=await li(ii)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,oi(ii,r).catch(e=>ui.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function fi(){return jn.enabled}async function gi(){var e=jn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
22
22
|
Can't get debug token in production mode.
|
|
23
|
-
`)}let mi={error:"UNKNOWN_ERROR"};async function vi(e,t=!1,r=!1){var n,i=e.app;Yn(i);let s=zn(i),a=s.token,o=void 0;if(a&&!Ii(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ii(n)?a=n:await di(i,void 0)),!t&&a&&Ii(a))return{token:a.token};let l=!1;if(fi())try{s.exchangeTokenPromise||(s.exchangeTokenPromise=Zn(ei(i,await gi()),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0);var h=await s.exchangeTokenPromise;return await di(i,h),{token:(s.token=h).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),Ti(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await zn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),o=e}let u;return a?o?u=Ii(a)?{token:a.token,internalError:o}:Ti(o):(u={token:a.token},await di(i,s.token=a)):u=Ti(o),l&&bi(i,u),u}function _i(t,e,r,n){var i=t.app,i=zn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ii(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),wi(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>wi(t))}function yi(e,t){var r=zn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function wi(e){var t=e.app,t=zn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new Gn(async()=>{var e=zn(n);let t;if((t=e.token?await vi(r,!0):await vi(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=zn(n);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},Hn.RETRIAL_MIN_WAIT,Hn.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function bi(e,t){var r;for(r of zn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ii(e){return 0<e.expireTimeMillis-Date.now()}function Ti(e){return{token:(t=mi,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Ei{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=zn(this.app).tokenObservers;for(e of t)yi(this.app,e.next);return Promise.resolve()}}function Ci(t){return{getToken:e=>vi(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Yn(t),zn(t)).provider;return fi()?{token:t=(await Zn(ei(t,await gi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>_i(t,"INTERNAL",e),removeTokenListener:e=>yi(t.app,e)}}let ki="https://www.google.com/recaptcha/api.js",Si="https://www.google.com/recaptcha/enterprise.js";function Ai(t,r){let n=new Z;zn(t).reCAPTCHAState={initialized:n};let i=Pi(t);var e,s=Qn(!1);return s?Ri(t,r,s,i,n):(e=()=>{var e=Qn(!1);if(!e)throw new Error("no recaptcha");Ri(t,r,e,i,n)},(s=document.createElement("script")).src=ki,s.onload=e,document.head.appendChild(s)),n.promise}function Ni(t,r){let n=new Z;zn(t).reCAPTCHAState={initialized:n};let i=Pi(t);var e,s=Qn(!0);return s?Ri(t,r,s,i,n):(e=()=>{var e=Qn(!0);if(!e)throw new Error("no recaptcha");Ri(t,r,e,i,n)},(s=document.createElement("script")).src=Si,s.onload=e,document.head.appendChild(s)),n.promise}function Ri(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{zn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{zn(e).reCAPTCHAState.succeeded=!1}}),(r=zn(e)).reCAPTCHAState=Object.assign(Object.assign({},r.reCAPTCHAState),{widgetId:t}),o.resolve(s)})}function Pi(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function Di(n){Yn(n);let i=await zn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=zn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class xi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Fi(this._throttleData);var t,r=await Di(this._app).catch(e=>{throw $n.create("recaptcha-error")});if(null==(t=zn(this._app).reCAPTCHAState)||!t.succeeded)throw $n.create("recaptcha-error");let e;try{e=await Zn(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Kn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=Li(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),$n.create("initial-throttle",{time:Jn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ai(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof xi&&this._siteKey===e._siteKey}}class Oi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Fi(this._throttleData);var t,r=await Di(this._app).catch(e=>{throw $n.create("recaptcha-error")});if(null==(t=zn(this._app).reCAPTCHAState)||!t.succeeded)throw $n.create("recaptcha-error");let e;try{e=await Zn(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Kn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=Li(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),$n.create("initial-throttle",{time:Jn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ni(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Oi&&this._siteKey===e._siteKey}}class Mi{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return Object.assign(Object.assign({},t),{issuedAtTimeMillis:r})}initialize(e){this._app=e}isEqual(e){return e instanceof Mi&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Li(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Fi(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw $n.create("throttled",{time:Jn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Ui(e=jt(),r){var t=xt(e=w(e),"app-check");if(Bn.initialized||(i=H(),(n=Bn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(pi())),fi()&&gi().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw $n.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(qn.set(e,t),qn.get(e)))(a,Object.assign({},jn));t.activated=!0,t.provider=r,t.cachedTokenPromise=ci(a).then(e=>(e&&Ii(e)&&(t.token=e,bi(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&ui.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return zn(e).isTokenAutoRefreshEnabled&&_i(s,"INTERNAL",()=>{}),s}let Vi="app-check-internal";Dt(new u("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Ei(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(Vi).initialize()})),Dt(new u(Vi,e=>Ci(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),d("@firebase/app-check","0.10.0");let qi=new we("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class ji{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new xi(e):e instanceof Oi||e instanceof xi||e instanceof Mi?e:new Mi({getToken:e.getToken}),this._delegate=Ui(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw qi.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=zn(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await vi(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw qi.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),_i(i,"EXTERNAL",e,t),()=>yi(i.app,e)}throw qi.create("use-before-activation",{appName:this.app.name})}}let Bi=e=>{var t=e.getProvider("app-compat").getImmediate();return new ji(t)};function zi(e,t){var r={};for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r}lr.INTERNAL.registerComponent(new u("appCheck-compat",Bi,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Oi,ReCaptchaV3Provider:xi,CustomProvider:Mi})),lr.registerVersion("@firebase/app-check-compat","0.3.25");let Ki={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Wi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Hi(){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."}}function Gi(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","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.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let $i=Hi,Qi=new we("auth","Firebase",Hi()),Yi=new tt("@firebase/auth");function Ji(e,...t){Yi.logLevel<=c.ERROR&&Yi.error(`Auth (${Vt}): `+e,...t)}function Xi(e,...t){throw ns(e,...t)}function Zi(e,...t){return ns(e,...t)}function es(e,t,r){var n=Object.assign(Object.assign({},$i()),{[t]:r});return new we("auth","Firebase",n).create(t,{appName:e.name})}function ts(e){return es(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function rs(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Xi(e,"argument-error"),es(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function ns(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Qi.create(e,...t)}function m(e,t,...r){if(!e)throw ns(t,...r)}function is(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Ji(t),new Error(t)}function ss(e,t){e||is(t)}function as(){var e;return"undefined"!=typeof self&&(null==(e=self.location)?void 0:e.href)||""}function os(){return"http:"===ls()||"https:"===ls()}function ls(){var e;return"undefined"!=typeof self&&(null==(e=self.location)?void 0:e.protocol)||null}class hs{constructor(e,t){ss((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ce()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(os()||ue()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function us(e,t){ss(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class cs{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void is("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void is("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void is("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ds={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},ps=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],fs=new hs(3e4,6e4);function gs(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function ms(i,s,a,o,e={}){return vs(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe(Object.assign({key:i.config.apiKey},t)).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),Object.assign({method:s,headers:n},e));return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),cs.fetch()(await ys(i,i.config.apiHost,a,r),n)})}async function vs(t,e,r){t._canInitEmulator=!1;var n=Object.assign(Object.assign({},ds),e);try{var i=new ws(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw bs(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw bs(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw bs(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw bs(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw es(t,h,l);Xi(t,h)}catch(e){if(e instanceof ye)throw e;Xi(t,"network-request-failed",{message:String(e)})}}async function _s(e,t,r,n,i={}){var s=await ms(e,t,r,n,i);return"mfaPendingCredential"in s&&Xi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ys(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?us(e.config,i):e.config.apiScheme+"://"+i;if(ps.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class ws{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(Zi(this.auth,"network-request-failed")),fs.get())})}}function bs(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),Zi(e,t,n));return n.customData._tokenResponse=r,n}function Is(e){return void 0!==e&&void 0!==e.getResponse}function Ts(e){return void 0!==e&&void 0!==e.enterprise}class Es{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Cs(e,t){return ms(e,"GET","/v2/recaptchaConfig",gs(e,t))}async function ks(e,t){return ms(e,"POST","/v1/accounts:lookup",t)}function Ss(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function As(e){return 1e3*Number(e)}function Ns(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Ji("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Ji("Failed to decode base64 JWT payload"),null)}catch(e){return Ji("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}function Rs(e){var t=Ns(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ps(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class Ds{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(null!=(t=this.user.stsTokenManager.expirationTime)?t:0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class xs{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ss(this.lastLoginAt),this.creationTime=Ss(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Os(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ps(e,ks(n,{idToken:i})),n=(m(null==i?void 0:i.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),null!=(i=n.providerUserInfo)&&i.length?Ms(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||null!==i&&i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ms(e){return e.map(e=>{var t=e.providerId,r=zi(e,["providerId"]);return{providerId:t,uid:r.rawId||"",displayName:r.displayName||null,email:r.email||null,phoneNumber:r.phoneNumber||null,photoURL:r.photoUrl||null}})}class Ls{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Rs(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Rs(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await vs(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ys(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",cs.fetch()(t,{method:"POST",headers:r,body:e})})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Ls;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ls,this.toJSON())}_performRefresh(){return is("not implemented")}}function Fs(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Us{constructor(e){var{uid:t,auth:r,stsTokenManager:n}=e,i=zi(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ds(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=r,this.stsTokenManager=n,this.accessToken=n.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new xs(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){var t=await Ps(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Ns(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),null==(r="object"==typeof i.firebase?i.firebase:void 0)?void 0:r.sign_in_provider);return{claims:i,token:n,authTime:Ss(As(i.auth_time)),issuedAtTime:Ss(As(i.iat)),expirationTime:Ss(As(i.exp)),signInProvider:s||null,signInSecondFactor:(null==r?void 0:r.sign_in_second_factor)||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Os(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Us(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Os(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(ts(this.auth)):(e=await this.getIdToken(),await Ps(this,(async(e,t)=>ms(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),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(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=null!=(r=t.displayName)?r:void 0,n=null!=(n=t.email)?n:void 0,i=null!=(i=t.phoneNumber)?i:void 0,s=null!=(s=t.photoURL)?s:void 0,a=null!=(a=t.tenantId)?a:void 0,o=null!=(o=t._redirectEventId)?o:void 0,l=null!=(l=t.createdAt)?l:void 0,h=null!=(h=t.lastLoginAt)?h:void 0,{uid:u,emailVerified:c,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(u&&f,e,"internal-error"),Ls.fromJSON(this.name,f)),u=(m("string"==typeof u,e,"internal-error"),Fs(r,e.name),Fs(n,e.name),m("boolean"==typeof c,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Fs(i,e.name),Fs(s,e.name),Fs(a,e.name),Fs(o,e.name),Fs(l,e.name),Fs(h,e.name),new Us({uid:u,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(u.providerData=p.map(e=>Object.assign({},e))),o&&(u._redirectEventId=o),u}static async _fromIdTokenResponse(e,t,r=!1){var n=new Ls,n=(n.updateFromServerResponse(t),new Us({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Os(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ms(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||null!=i&&i.length),a=new Ls,a=(a.updateFromIdToken(r),new Us({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||null!=i&&i.length)};return Object.assign(a,s),a}}let Vs=new Map;function qs(e){ss(e instanceof Function,"Expected a class definition");var t=Vs.get(e);return t?ss(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Vs.set(e,t)),t}class js{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}js.type="NONE";let Bs=js;function zs(e,t,r){return`firebase:${e}:${t}:`+r}class Ks{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=zs(this.userKey,n.apiKey,i),this.fullPersistenceKey=zs("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await ks(this.auth,{idToken:t}).catch(()=>{}))?Us._fromGetAccountInfoResponse(this.auth,e,t):null:Us._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ks(qs(Bs),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||qs(Bs),a=zs(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await ks(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Us._fromGetAccountInfoResponse(t,h,l)}else e=Us._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch(e){}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch(e){}}))),new Ks(s,t,r)}}function Ws(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Qs(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Hs(t)?"Firefox":t.includes("silk/")?"Silk":Js(t)?"Blackberry":Xs(t)?"Webos":Gs(t)?"Safari":!t.includes("chrome/")&&!$s(t)||t.includes("edge/")?Ys(t)?"Android":2===(null==(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?void 0:t.length)?t[1]:"Other":"Chrome"}function Hs(e=ae()){return/firefox\//i.test(e)}function Gs(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function $s(e=ae()){return/crios\//i.test(e)}function Qs(e=ae()){return/iemobile/i.test(e)}function Ys(e=ae()){return/android/i.test(e)}function Js(e=ae()){return/blackberry/i.test(e)}function Xs(e=ae()){return/webos/i.test(e)}function Zs(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ea(e=ae()){return Zs(e)||Ys(e)||Xs(e)||Js(e)||/windows phone/i.test(e)||Qs(e)}function ta(e,t=[]){let r;switch(e){case"Browser":r=Ws(ae());break;case"Worker":r=Ws(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${Vt}/`+n}class ra{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}}class na{constructor(e){var t,r=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!=(t=r.minPasswordLength)?t:6,r.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=r.maxPasswordLength),void 0!==r.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=r.containsLowercaseCharacter),void 0!==r.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=r.containsUppercaseCharacter),void 0!==r.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=r.containsNumericCharacter),void 0!==r.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=r.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!=(r=null==(t=e.allowedNonAlphanumericCharacters)?void 0:t.join(""))?r:"",this.forceUpgradeOnSignin=null!=(t=e.forceUpgradeOnSignin)&&t,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,r={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,r),this.validatePasswordCharacterOptions(e,r),r.isValid&&(r.isValid=null==(t=r.meetsMinPasswordLength)||t),r.isValid&&(r.isValid=null==(t=r.meetsMaxPasswordLength)||t),r.isValid&&(r.isValid=null==(t=r.containsLowercaseLetter)||t),r.isValid&&(r.isValid=null==(t=r.containsUppercaseLetter)||t),r.isValid&&(r.isValid=null==(t=r.containsNumericCharacter)||t),r.isValid&&(r.isValid=null==(t=r.containsNonAlphanumericCharacter)||t),r}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class ia{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new aa(this),this.idTokenSubscription=new aa(this),this.beforeStateQueue=new ra(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Qi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(t,r){return r&&(this._popupRedirectResolver=qs(r)),this._initializationPromise=this.queue(async()=>{var e;if(!this._deleted&&(this.persistenceManager=await Ks.create(this,t),null!=(e=this._resolvePersistenceManagerAvailable)&&e.call(this),!this._deleted)){if(null!=(e=this._popupRedirectResolver)&&e._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(r),this.lastNotifiedUid=(null==(e=this.currentUser)?void 0:e.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await ks(this,{idToken:e}),r=await Us._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=null==(t=this.redirectUser)?void 0:t._redirectEventId,r=null==s?void 0:s._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||null==n||!n.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Os(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(ts(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(ts(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(ts(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(qs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await ms(e=this,"GET","/v2/passwordPolicy",gs(e,{})),t=new na(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await ms(e=this,"POST","/v2/accounts:revokeToken",gs(e,t)))}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null==(e=this._currentUser)?void 0:e.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&qs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ks.create(this,[qs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){var t;return this._isInitialized&&await this.queue(async()=>{}),(null==(t=this._currentUser)?void 0:t._redirectEventId)===e?this._currentUser:(null==(t=this.redirectUser)?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=null!=(e=null==(e=this.currentUser)?void 0:e.uid)?e:null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ta(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await(null==(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))?void 0:t.getHeartbeatsHeader())),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(null!=(e=await(null==(e=this.appCheckServiceProvider.getImmediate({optional:!0}))?void 0:e.getToken()))&&e.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Yi.logLevel<=c.WARN)&&Yi.warn(`Auth (${Vt}): `+t,...r),null==e?void 0:e.token)}}function sa(e){return w(e)}class aa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let oa={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function la(e){return oa.loadJS(e)}function ha(e){return"__"+e+Math.floor(1e6*Math.random())}class ua{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new pa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t,r=e||1e12;null!=(t=this._widgets.get(r))&&t.delete(),this._widgets.delete(r)}getResponse(e){var t;return(null==(t=this._widgets.get(e||1e12))?void 0:t.getResponse())||""}async execute(e){var t;return null!=(t=this._widgets.get(e||1e12))&&t.execute(),""}}class ca{constructor(){this.enterprise=new da}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class da{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let fa="NO_RECAPTCHA";class ga{constructor(e){this.type="recaptcha-enterprise",this.auth=sa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Ts(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(fa)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new ca).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Cs(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Es(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Ts(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=oa.recaptchaEnterpriseScript;0!==e.length&&(e+=t),la(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function ma(e,t,r,n=!1,i=!1){var s=new ga(e);let a;if(i)a=fa;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s=Object.assign({},t);return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function va(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?null!=(t=r._getRecaptchaConfig())&&t.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await ma(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await ma(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?null!=(t=r._getRecaptchaConfig())&&t.isProviderEnabled("PHONE_PROVIDER")?(t=await ma(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===(null==(t=r._getRecaptchaConfig())?void 0:t.getProviderEnforcementState("PHONE_PROVIDER"))&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await ma(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await ma(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function _a(e,t,r){var n=sa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!(null==r||!r.disableWarnings)),s=ya(t),{host:a,port:o}=(e=>{var t,r=ya(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:wa(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:wa(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function u(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("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",u):u()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function ya(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function wa(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class ba{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return is("not implemented")}_getIdTokenResponse(e){return is("not implemented")}_linkToIdToken(e,t){return is("not implemented")}_getReauthenticationResolver(e){return is("not implemented")}}async function Ia(e,t){return ms(e,"POST","/v1/accounts:resetPassword",gs(e,t))}async function Ta(e,t){return ms(e,"POST","/v1/accounts:signUp",t)}async function Ea(e,t){return _s(e,"POST","/v1/accounts:signInWithPassword",gs(e,t))}async function Ca(e,t){return ms(e,"POST","/v1/accounts:sendOobCode",gs(e,t))}async function ka(e,t){return Ca(e,t)}async function Sa(e,t){return Ca(e,t)}class Aa extends ba{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Aa(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Aa(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(null!=t&&t.email&&null!=t&&t.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return va(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return va(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ta,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Na(e,t){return _s(e,"POST","/v1/accounts:signInWithIdp",gs(e,t))}class Ra extends ba{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Ra(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Xi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e,{providerId:r,signInMethod:n}=t,t=zi(t,["providerId","signInMethod"]);return r&&n?((r=new Ra(r,n)).idToken=t.idToken||void 0,r.accessToken=t.accessToken||void 0,r.secret=t.secret,r.nonce=t.nonce,r.pendingToken=t.pendingToken||null,r):null}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(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=Pe(e)),t}}async function Pa(e,t){return ms(e,"POST","/v1/accounts:sendVerificationCode",gs(e,t))}let Da={USER_NOT_FOUND:"user-not-found"};class xa extends ba{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new xa({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new xa({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await _s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t));if(r.temporaryProof)throw bs(e,"account-exists-with-different-credential",r);return r})(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Da))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new xa({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Oa{constructor(e){var t=De(xe(e)),r=null!=(r=t.apiKey)?r:null,n=null!=(n=t.oobCode)?n:null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(null!=(i=t.mode)?i:null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=null!=(r=t.continueUrl)?r:null,this.languageCode=null!=(i=t.lang)?i:null,this.tenantId=null!=(n=t.tenantId)?n:null}static parseLink(e){t=De(xe(e=e)).link,r=t?De(xe(t)).deep_link_id:null;var t,r,n=((n=De(xe(e)).deep_link_id)?De(xe(n)).link:null)||n||r||t||e;try{return new Oa(n)}catch(e){return null}}}class Ma{constructor(){this.providerId=Ma.PROVIDER_ID}static credential(e,t){return Aa._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Oa.parseLink(t);return m(r,"argument-error"),Aa._fromEmailAndCode(e,r.code,r.tenantId)}}Ma.PROVIDER_ID="password",Ma.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ma.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class La{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Fa extends La{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ua extends Fa{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Ra._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Ra._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return Ua.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ua.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Ua(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class Va extends Fa{constructor(){super("facebook.com")}static credential(e){return Ra._fromParams({providerId:Va.PROVIDER_ID,signInMethod:Va.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Va.credentialFromTaggedObject(e)}static credentialFromError(e){return Va.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Va.credential(e.oauthAccessToken)}catch(e){return null}}}Va.FACEBOOK_SIGN_IN_METHOD="facebook.com",Va.PROVIDER_ID="facebook.com";class qa extends Fa{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ra._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return qa.credential(t,r)}catch(e){return null}}}qa.GOOGLE_SIGN_IN_METHOD="google.com",qa.PROVIDER_ID="google.com";class ja extends Fa{constructor(){super("github.com")}static credential(e){return Ra._fromParams({providerId:ja.PROVIDER_ID,signInMethod:ja.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ja.credentialFromTaggedObject(e)}static credentialFromError(e){return ja.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ja.credential(e.oauthAccessToken)}catch(e){return null}}}ja.GITHUB_SIGN_IN_METHOD="github.com",ja.PROVIDER_ID="github.com";class Ba extends ba{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new Ba(t,n):null}static _create(e,t){return new Ba(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class za extends La{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return za.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return za.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=Ba.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return Ba._create(r,t)}catch(e){return null}}}class Ka extends Fa{constructor(){super("twitter.com")}static credential(e,t){return Ra._fromParams({providerId:Ka.PROVIDER_ID,signInMethod:Ka.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Ka.credentialFromTaggedObject(e)}static credentialFromError(e){return Ka.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Ka.credential(t,r)}catch(e){return null}}}async function Wa(e,t){return _s(e,"POST","/v1/accounts:signUp",gs(e,t))}Ka.TWITTER_SIGN_IN_METHOD="twitter.com",Ka.PROVIDER_ID="twitter.com";class Ha{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Us._fromIdTokenResponse(e,r,n),s=Ga(r);return new Ha({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=Ga(r);return new Ha({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function Ga(e){return e.providerId||("phoneNumber"in e?"phone":null)}class $a extends ye{constructor(e,t,r,n){var i;super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,$a.prototype),this.customData={appName:e.name,tenantId:null!=(i=e.tenantId)?i:void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new $a(e,t,r,n)}}function Qa(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw $a._fromErrorAndOperation(t,e,r,n);throw e})}function Ya(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Ja(e,t){var r=w(e),n=(await Za(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await ms(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ya(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Xa(e,t,r=!1){var n=await Ps(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ha._forOperation(e,"link",n)}async function Za(e,t,r){await Os(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ya(t.providerData).has(r)===e,t.auth,n)}async function eo(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(ts(n));var i="reauthenticate";try{var s=await Ps(e,Qa(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Ns(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ha._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Xi(n,"user-mismatch"),e}}async function to(e,t,r=!1){var n;return h(e.app)?Promise.reject(ts(e)):(n=await Qa(e,"signIn",t),n=await Ha._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function ro(e,t){return to(sa(e),t)}async function no(e,t){var r=w(e);return await Za(!1,r,t.providerId),Xa(r,t)}async function io(e,t){return eo(w(e),t)}async function so(e,t){var r,n;return h(e.app)?Promise.reject(ts(e)):(n=await _s(r=sa(e),"POST","/v1/accounts:signInWithCustomToken",gs(r,{token:t,returnSecureToken:!0})),n=await Ha._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class ao{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?oo._fromServerResponse(e,t):"totpInfo"in t?lo._fromServerResponse(e,t):Xi(e,"internal-error")}}class oo extends ao{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new oo(t)}}class lo extends ao{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new lo(t)}}function ho(e,t,r){var n;m(0<(null==(n=r.url)?void 0:n.length),e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function uo(e){var t=sa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function co(e,t){await ms(e=w(e),"POST","/v1/accounts:update",gs(e,{oobCode:t}))}async function po(e,t){var r=w(e),n=await Ia(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=ao._fromServerResponse(sa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function fo(e,t){var r=os()?as():"http://localhost",r=(await ms(e=w(e),"POST","/v1/accounts:createAuthUri",gs(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function go(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&ho(r.auth,n,t),await Ca(r.auth,n)).email;r!==e.email&&await e.reload()}async function mo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&ho(n.auth,i,r),await Ca(n.auth,i)).email;n!==e.email&&await e.reload()}async function vo(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ps(n,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function _o(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ps(e,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class yo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class wo extends yo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class bo extends yo{constructor(e,t){super(e,"facebook.com",t)}}class Io extends wo{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class To extends yo{constructor(e,t){super(e,"google.com",t)}}class Eo extends wo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function Co(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&null!=n&&n.idToken){t=null==(t=null==(t=Ns(n.idToken))?void 0:t.firebase)?void 0:t.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new yo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new bo(a,s);case"github.com":return new Io(a,s);case"google.com":return new To(a,s);case"twitter.com":return new Eo(a,s,n.screenName||null);case"custom":case"anonymous":return new yo(a,null);default:return new yo(a,i,s)}}class ko{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new ko("enroll",e,t)}static _fromMfaPendingCredential(e){return new ko("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){var t;if(null!=e&&e.multiFactorSession){if(null!=(t=e.multiFactorSession)&&t.pendingCredential)return ko._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!=(t=e.multiFactorSession)&&t.idToken)return ko._fromIdtoken(e.multiFactorSession.idToken)}return null}}class So{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=sa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ao._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=ko._fromMfaPendingCredential(a.mfaPendingCredential);return new So(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,Object.assign(Object.assign({},a),{idToken:t.idToken,refreshToken:t.refreshToken}));switch(i.operationType){case"signIn":var n=await Ha._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ha._forOperation(i.user,i.operationType,r);default:Xi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function Ao(e,t){return ms(e,"POST","/v2/accounts/mfaEnrollment:start",gs(e,t))}class No{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ao._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new No(e)}async getSession(){return ko._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ps(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ps(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},ms(r,"POST","/v2/accounts/mfaEnrollment:withdraw",gs(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Ro=new WeakMap;let Po="__sak";class Do{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Po,"1"),this.storage.removeItem(Po),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class xo extends Do{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ea(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}xo.type="LOCAL";let Oo=xo;class Mo extends Do{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Mo.type="SESSION";let Lo=Mo;class Fo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Fo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];null!=s&&s.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Uo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Fo.receivers=[];class Vo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Uo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function qo(){return window}function jo(){return void 0!==qo().WorkerGlobalScope&&"function"==typeof qo().importScripts}let Bo="firebaseLocalStorageDb",zo="firebaseLocalStorage",Ko="fbase_key";class Wo{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Ho(e,t){return e.transaction([zo],t?"readwrite":"readonly").objectStore(zo)}function Go(){let n=indexedDB.open(Bo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(zo,{keyPath:Ko})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(zo)?t(e):(e.close(),e=indexedDB.deleteDatabase(Bo),await new Wo(e).toPromise(),t(await Go()))})})}async function $o(e,t,r){var n=Ho(e,!0).put({fbase_key:t,value:r});return new Wo(n).toPromise()}function Qo(e,t){var r=Ho(e,!0).delete(t);return new Wo(r).toPromise()}class Yo{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 Go()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return jo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Fo._getInstance(jo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e,t;this.activeServiceWorker=await(async()=>{if(null==navigator||!navigator.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}})(),this.activeServiceWorker&&(this.sender=new Vo(this.activeServiceWorker),t=await this.sender._send("ping",{},800))&&null!=(e=t[0])&&e.fulfilled&&null!=(e=t[0])&&e.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null==(t=null==navigator?void 0:navigator.serviceWorker)?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{var e;return indexedDB?(await $o(e=await Go(),Po,"1"),await Qo(e,Po),!0):!1}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>$o(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Ho(e,!1).get(t);return void 0===(r=await new Wo(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Ho(e,!1).getAll();return new Wo(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Yo.type="LOCAL";let Jo=Yo;function Xo(e,t){return ms(e,"POST","/v2/accounts/mfaSignIn:start",gs(e,t))}let Zo=ha("rcb"),el=new hs(3e4,6e4);class tl{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!(null==(e=qo().grecaptcha)||!e.render)}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Is(qo().grecaptcha)?Promise.resolve(qo().grecaptcha):new Promise((t,r)=>{let n=qo().setTimeout(()=>{r(Zi(i,"network-request-failed"))},el.get());qo()[Zo]=()=>{qo().clearTimeout(n),delete qo()[Zo];var e=qo().grecaptcha;if(e&&Is(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(Zi(i,"internal-error"))},la(oa.recaptchaV2Script+"?"+Pe({onload:Zo,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(Zi(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!(null==(t=qo().grecaptcha)||!t.render)&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class rl{async load(e){return new ua(e)}clearedOneInstance(){}}let nl="recaptcha",il={theme:"light",type:"image"};class sl{constructor(e,t,r=Object.assign({},il)){this.parameters=r,this.type=nl,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=sa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?rl:tl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=qo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(os()&&!jo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await ms(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class al{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=xa._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ol(t,r,n){var i,e,s,a,o,l,h,u;if(!t._getRecaptchaConfig())try{e=sa(t),s=await Cs(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),s=new Es(s),null==e.tenantId?e._agentRecaptchaConfig=s:e._tenantRecaptchaConfigs[e.tenantId]=s,await(!s.isAnyProviderEnabled()||!new ga(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(a=e.session,"phoneNumber"in e?(m("enroll"===a.type,t,"internal-error"),o={idToken:a.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await va(t,o,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Ao(e,await ll(e,t,n))):Ao(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===a.type,t,"internal-error"),m(l=(null==(i=e.multiFactorHint)?void 0:i.uid)||e.multiFactorUid,t,"missing-multi-factor-info"),h={mfaPendingCredential:a.credential,mfaEnrollmentId:l,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await va(t,h,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Xo(e,await ll(e,t,n))):Xo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(u={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await va(t,u,"sendVerificationCode",async(e,t)=>t.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Pa(e,await ll(e,t,n))):Pa(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{null!=n&&n._reset()}}async function ll(e,t,r){m(r.type===nl,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),Object.assign({},t));return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class hl{constructor(e){this.providerId=hl.PROVIDER_ID,this.auth=sa(e)}verifyPhoneNumber(e,t){return ol(this.auth,e,w(t))}static credential(e,t){return xa._fromVerification(e,t)}static credentialFromResult(e){var t=e;return hl.credentialFromTaggedObject(t)}static credentialFromError(e){return hl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?xa._fromTokenResponse(t,r):null}}function ul(e,t){return t?qs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}hl.PROVIDER_ID="phone",hl.PHONE_SIGN_IN_METHOD="phone";class cl extends ba{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Na(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Na(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Na(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function dl(e){return to(e.auth,new cl(e),e.bypassAuthState)}function pl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),eo(r,new cl(e),e.bypassAuthState)}async function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Xa(r,new cl(e),e.bypassAuthState)}class gl{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return dl;case"linkViaPopup":case"linkViaRedirect":return fl;case"reauthViaPopup":case"reauthViaRedirect":return pl;default:Xi(this.auth,"internal-error")}}resolve(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let ml=new hs(2e3,1e4);class vl extends gl{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,vl.currentPopupAction&&vl.currentPopupAction.cancel(),vl.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){ss(1===this.filter.length,"Popup operations only handle one event");var e=Uo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(Zi(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null==(e=this.authWindow)?void 0:e.associatedEvent)||null}cancel(){this.reject(Zi(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,vl.currentPopupAction=null}pollUserCancellation(){let t=()=>{var e;null!=(e=null==(e=this.authWindow)?void 0:e.window)&&e.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(Zi(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(t,ml.get())};t()}}vl.currentPopupAction=null;let _l="pendingRedirect",yl=new Map;class wl extends gl{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=yl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=El(t),i=Tl(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}yl.set(this.auth._key(),t)}return this.bypassAuthState||yl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function bl(e,t){return Tl(e)._set(El(t),"true")}function Il(e,t){yl.set(e._key(),t)}function Tl(e){return qs(e._redirectPersistence)}function El(e){return zs(_l,e.config.apiKey,e.name)}function Cl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=sa(e),rs(e,t,La),await n._initializationPromise,await bl(i=ul(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(rs(n.auth,t,La),h(n.auth.app))return Promise.reject(ts(n.auth));await n.auth._initializationPromise;var i=ul(n.auth,r),s=(await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function Sl(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),await n.auth._initializationPromise,ul(n.auth,r)),s=(await Za(!1,n,t.providerId),await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Al(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(ts(e)):(i=ul(n=sa(e),t),(i=await new wl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Nl(e){var t=Uo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Rl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return Dl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!Dl(e)?(r=(null==(r=e.error.code)?void 0:r.split("auth/")[1])||"internal-error",t.onError(Zi(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Pl(e))}saveEventToCache(e){this.cachedEventUids.add(Pl(e)),this.lastProcessedEventTime=Date.now()}}function Pl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function Dl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function xl(e,t={}){return ms(e,"GET","/v1/projects",t)}let Ol=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ml=/^https?/;async function Ll(e){if(!e.config.emulator){var t,r=(await xl(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=as(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ml.test(n)&&(Ol.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch(e){}Xi(e,"unauthorized-domain")}}let Fl=new hs(3e4,6e4);function Ul(){var t=qo().___jsl;if(null!=t&&t.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Vl(i){return new Promise((e,t)=>{var r;function n(){Ul(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ul(),t(Zi(i,"network-request-failed"))},timeout:Fl.get()})}if(null!=(r=null==(r=qo().gapi)?void 0:r.iframes)&&r.Iframe)e(gapi.iframes.getContext());else{if(null==(r=qo().gapi)||!r.load)return r=ha("iframefcb"),qo()[r]=()=>{gapi.load?n():t(Zi(i,"network-request-failed"))},la(oa.gapiScript+"?onload="+r).catch(e=>t(e));n()}}).catch(e=>{throw ql=null,e})}let ql=null;let jl=new hs(5e3,15e3),Bl="__/auth/iframe",zl="emulator/auth/iframe",Kl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Wl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Hl(a){e=a;var e,t,r,n=await(ql=ql||Vl(e)),i=qo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?us(n,zl):`https://${e.config.authDomain}/`+Bl,n={apiKey:n.apiKey,appName:e.name,v:Vt},(r=Wl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Kl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=Zi(a,"network-request-failed"),n=qo().setTimeout(()=>{t(r)},jl.get());function i(){qo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let Gl={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class $l{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ql(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s=Object.assign(Object.assign({},Gl),{width:n.toString(),height:i.toString(),top:s,left:a}),a=ae().toLowerCase(),s=(r&&(o=$s(a)?"_blank":r),Hs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],Zs(n)&&null!=(a=window.navigator)&&a.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new $l(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new $l(a)}let Yl="__/auth/handler",Jl="emulator/auth/handler",Xl=encodeURIComponent("fac");async function Zl(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:Vt,eventId:i};if(t instanceof La){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",Se(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Fa&&0<(c=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=c.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,u=a;for(h of Object.keys(u))void 0===u[h]&&delete u[h];var c=await e._getAppCheckToken(),c=c?`#${Xl}=`+encodeURIComponent(c):"";return`${r=[e.config][0],r.emulator?us(r,Jl):`https://${r.authDomain}/`+Yl}?`+Pe(u).slice(1)+c}let eh="webStorageSupport";class th{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _openPopup(e,t,r,n){ss(null==(i=this.eventManagers[e._key()])?void 0:i.manager,"_initialize() not called before _openPopup()");var i=await Zl(e,t,r,as(),n);return Ql(e,i,Uo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await Zl(e,t,r,as(),n);return qo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(ss(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Hl(t);let r=new Rl(t);return e.register("authEvent",e=>(m(null==e?void 0:e.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(eh,{type:eh},e=>{var t=null==(t=null==e?void 0:e[0])?void 0:t[eh];void 0!==t&&n(!!t),Xi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ll(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ea()||Gs()||Zs()}}let rh=th;class nh extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return is("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new nh(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaEnrollment:finalize",gs(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaSignIn:finalize",gs(e,t))}}class ih{constructor(){}static assertion(e){return nh._fromCredential(e)}}ih.FACTOR_ID="phone";ar="@firebase/auth";class sh{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null==(e=this.auth.currentUser)?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var ah;function oh(){return window}t="authIdTokenMaxAge",null!=(or=Y())&&or["_"+t],oa={loadJS(i){return new Promise((e,r)=>{var t,n=document.createElement("script");n.setAttribute("src",i),n.onload=e,n.onerror=e=>{var t=Zi("internal-error");t.customData=e,r(t)},n.type="text/javascript",n.charset="UTF-8",(null!=(t=null==(t=document.getElementsByTagName("head"))?void 0:t[0])?t:document).appendChild(n)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},ah="Browser",Dt(new u("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:ah,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ta(ah)}),a=new ia(r,n,i,s);return e=a,r=(null==(t=t)?void 0:t.persistence)||[],r=(Array.isArray(r)?r:[r]).map(qs),null!=t&&t.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),Dt(new u("auth-internal",e=>{var t=sa(e.getProvider("auth").getImmediate());return e=t,new sh(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),d(ar,"1.10.6",(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(ah)),d(ar,"1.10.6","esm2017");async function lh(e,t,r){var n=oh().BuildInfo,i=(ss(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(ss(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return Zs()?s.ibi=n.packageName:Ys()?s.apn=n.packageName:Xi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,Zl(e,r,t.type,void 0,null!=(n=t.eventId)?n:void 0,s)}function hh(n){let i=oh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let uh=20;class ch extends Rl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function dh(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<uh;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:Zi(e,"no-auth-event")}}async function ph(e){var t=await gh()._get(mh(e));return t&&await gh()._remove(mh(e)),t}function fh(e,t){i=vh(t=t),n=i.link?decodeURIComponent(i.link):void 0,r=vh(n).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=vh(i).link||i||r||n||t;return i.includes("/__/auth/callback")?(n=(r=null==(n=null==(r=null==(n=(r=vh(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(r.firebaseError)):null)?void 0:n.code)?void 0:r.split("auth/"))?void 0:n[1])?Zi(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function gh(){return qs(Oo)}function mh(e){return zs("authEvent",e.config.apiKey,e.name)}function vh(e){var t,r;return null!=e&&e.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class _h{constructor(){this._redirectPersistence=Lo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new ch(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Xi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,a=oh(),m("function"==typeof(null==(s=null==a?void 0:a.universalLinks)?void 0:s.subscribe),i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==(null==(s=null==a?void 0:a.BuildInfo)?void 0:s.packageName),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof(null==(s=null==(s=null==(s=null==a?void 0:a.cordova)?void 0:s.plugins)?void 0:s.browsertab)?void 0:s.openUrl),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof(null==(s=null==(s=null==(s=null==a?void 0:a.cordova)?void 0:s.plugins)?void 0:s.browsertab)?void 0:s.isAvailable),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof(null==(a=null==(s=null==a?void 0:a.cordova)?void 0:s.InAppBrowser)?void 0:a.open),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),yl.clear(),await this._originValidation(e),dh(e,r,n)),a=(i=e,r=a,await gh()._set(mh(i),r),await lh(e,a,t));return(async(a,o,l)=>{let h=oh().cordova,u=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=null==(e=h.plugins.browsertab)?void 0:e.close;"function"==typeof e&&e(),"function"==typeof(null==l?void 0:l.close)&&l.close()}function i(){r=r||window.setTimeout(()=>{e(Zi(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===(null==document?void 0:document.visibilityState)&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Ys()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{u()}})(e,s,await hh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=oh().BuildInfo,r={};Zs()?r.iosBundleId=t.packageName:Ys()?r.androidPackageName=t.packageName:Xi(e,"operation-not-supported-in-this-environment"),await xl(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=oh();let s=setTimeout(async()=>{await ph(n),i.onEvent(wh())},500),a=async e=>{clearTimeout(s);var t=await ph(n);let r=null;t&&null!=e&&e.url&&(r=fh(t,e.url)),i.onEvent(r||wh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";oh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let yh=_h;function wh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:Zi("no-auth-event")}}function bh(){var e;return(null==(e=null==self?void 0:self.location)?void 0:e.protocol)||null}function Ih(e=ae()){return!("file:"!==bh()&&"ionic:"!==bh()&&"capacitor:"!==bh()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Th(e=ae()){return de()&&11===(null==document?void 0:document.documentMode)||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Eh(){try{var e=self.localStorage,t=Uo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Th()||me()}catch(e){return Ch()&&me()}return!1}function Ch(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function kh(){return("http:"===bh()||"https:"===bh()||ue()||Ih())&&!(ce()||le())&&Eh()&&!Ch()}function Sh(){return Ih()&&"undefined"!=typeof document}let Ah={LOCAL:"local",NONE:"none",SESSION:"session"},Nh=m,Rh="persistence";async function Ph(e){await e._initializationPromise;var t=Dh(),r=zs(Rh,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function Dh(){var e;try{return(null===(e="undefined"!=typeof window?window:null)?void 0:e.sessionStorage)||null}catch(e){return null}}let xh=m;class Oh{constructor(){this.browserResolver=qs(rh),this.cordovaResolver=qs(yh),this.underlyingResolver=null,this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return Sh()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return xh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!Sh()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Mh(e){return e.unwrap()}function Lh(e,t){var r,n,i,s,a=null==(a=t.customData)?void 0:a._tokenResponse;"auth/multi-factor-auth-required"===(null==t?void 0:t.code)?t.resolver=new qh(e,(r=t,i=w(e),m((s=r).customData.operationType,i,"argument-error"),m(null==(n=s.customData._serverResponse)?void 0:n.mfaPendingCredential,i,"argument-error"),So._fromError(i,s))):a&&(i=Fh(n=t))&&(n.credential=i,n.tenantId=a.tenantId||void 0,n.email=a.email||void 0,n.phoneNumber=a.phoneNumber||void 0)}function Fh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return hl.credentialFromResult(e);var r=t.providerId;if(!r||r===Ki.PASSWORD)return null;let n;switch(r){case Ki.GOOGLE:n=qa;break;case Ki.FACEBOOK:n=Va;break;case Ki.GITHUB:n=ja;break;case Ki.TWITTER:n=Ka;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?Ba._create(r,o):Ra._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Ua(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Uh(t,e){return e.catch(e=>{throw e instanceof ye&&Lh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Fh(e),additionalUserInfo:Co(e),user:jh.getOrCreate(r)}})}async function Vh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Uh(t,r.confirm(e))}}class qh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Uh(Mh(this.auth),this.resolver.resolveSignIn(e))}}class jh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Ro.has(t)||Ro.set(t,No._fromUser(t)),Ro.get(t))}static getOrCreate(e){return jh.USER_MAP.has(e)||jh.USER_MAP.set(e,new jh(e)),jh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Uh(this.auth,no(this._delegate,e))}async linkWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);await Za(!1,n,"phone");var i=await ol(n.auth,t,w(r));return new al(i,e=>no(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),ul(n.auth,r));return new vl(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async linkWithRedirect(e){return await Ph(sa(this.auth)),Sl(this._delegate,e,Oh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Uh(this.auth,io(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(ts(n.auth)):(i=await ol(n.auth,t,w(r)),new al(i,e=>io(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(Zi(n.auth,"operation-not-supported-in-this-environment"));rs(n.auth,t,La);var i=ul(n.auth,r);return new vl(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async reauthenticateWithRedirect(e){return await Ph(sa(this.auth)),kl(this._delegate,e,Oh)}sendEmailVerification(e){return go(this._delegate,e)}async unlink(e){return await Ja(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(ts(r.auth)):_o(r,e,null);var t,r}updatePassword(e){return _o(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(ts(r.auth));await Xa(r,t)})(this._delegate,e)}updateProfile(e){return vo(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return mo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}jh.USER_MAP=new WeakMap;let Bh=m;class zh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,Bh(r,"invalid-api-key",{appName:e.name}),Bh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Oh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=Dh();if(!r)return[];var n=zs(Rh,e,t);switch(r.getItem(n)){case Ah.NONE:return[Bs];case Ah.LOCAL:return[Jo,Lo];case Ah.SESSION:return[Lo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Jo)||r.push(Jo),"undefined"!=typeof window)for(var n of[Oo,Lo])r.includes(n)||r.push(n);return r.includes(Bs)||r.push(Bs),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap(Gi)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?jh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){_a(this._delegate,e,t)}applyActionCode(e){return co(this._delegate,e)}checkActionCode(e){return po(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ia(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Uh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(ts(t)):(i=await va(n=sa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Wa,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(t),e}),i=await Ha._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return fo(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===(null==(t=Oa.parseLink(e))?void 0:t.operation);var t}async getRedirectResult(){Bh(kh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Oh,await sa(e)._initializationPromise;var e,t,r=await Al(e,t,!1);return r?Uh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){sa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=sa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&ho(n,e,t),await va(n,i,"getOobCode",Sa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=sa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&ho(n,i,r),await va(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Nh(Object.values(Ah).includes(r),t,"invalid-persistence-type"),ce()?Nh(r!==Ah.SESSION,t,"unsupported-persistence-type"):le()?Nh(r===Ah.NONE,t,"unsupported-persistence-type"):Ch()?Nh(r===Ah.NONE||r===Ah.LOCAL&&me(),t,"unsupported-persistence-type"):Nh(r===Ah.NONE||Eh(),t,"unsupported-persistence-type");let n;switch(e){case Ah.SESSION:n=Lo;break;case Ah.LOCAL:var i=await qs(Jo)._isAvailable();n=i?Jo:Oo;break;case Ah.NONE:n=Bs;break;default:return Xi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Uh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(ts(e)):(await(t=sa(e))._initializationPromise,null!=(r=t.currentUser)&&r.isAnonymous?new Ha({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Wa(t,{returnSecureToken:!0}),r=await Ha._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Uh(this._delegate,ro(this._delegate,e))}signInWithCustomToken(e){return Uh(this._delegate,so(this._delegate,e))}signInWithEmailAndPassword(e,t){return Uh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(ts(r)):ro(w(r),Ma.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(r),e})));var r}signInWithEmailLink(e,t){return Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=w(e),m((i=Ma.credentialWithLink(t,r||as()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),ro(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Vh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(ts(e));let n=sa(e);var i=await ol(n,t,w(r));return new al(i,e=>ro(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return Bh(kh(),this._delegate,"operation-not-supported-in-this-environment"),Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(Zi(e,"operation-not-supported-in-this-environment")):(n=sa(e),rs(e,t,La),i=ul(n,r),new vl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Oh))}async signInWithRedirect(e){return Bh(kh(),this._delegate,"operation-not-supported-in-this-environment"),await Ph(this._delegate),Cl(this._delegate,e,Oh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await po(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Kh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&jh.getOrCreate(e)),error:t,complete:r}}zh.Persistence=Ah;class Wh{static credential(e,t){return hl.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new hl(Mh(lr.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Wh.PHONE_SIGN_IN_METHOD=hl.PHONE_SIGN_IN_METHOD,Wh.PROVIDER_ID=hl.PROVIDER_ID;let Hh=m;class Gh{constructor(e,t,r=lr.app()){var n;Hh(null==(n=r.options)?void 0:n.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new sl(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=lr).INTERNAL.registerComponent(new u("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new zh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Wi.EMAIL_SIGNIN,PASSWORD_RESET:Wi.PASSWORD_RESET,RECOVER_EMAIL:Wi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Wi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Wi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Wi.VERIFY_EMAIL}},EmailAuthProvider:Ma,FacebookAuthProvider:Va,GithubAuthProvider:ja,GoogleAuthProvider:qa,OAuthProvider:Ua,SAMLAuthProvider:za,PhoneAuthProvider:Wh,PhoneMultiFactorGenerator:ih,RecaptchaVerifier:Gh,TwitterAuthProvider:Ka,Auth:zh,AuthCredential:ba,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.5.26");let $h="@firebase/database",Qh="";function Yh(e){Qh=e}class Jh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Xh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function Zh(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Jh(t)}catch(e){}return new Xh}var eu;function tu(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function ru(t){return function(...e){mu(t,...e)}}function nu(...e){var t="FIREBASE INTERNAL ERROR: "+du(...e);uu.error(t)}function iu(e,t){return e===t?0:e<t?-1:1}function su(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function au(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+au(e[r[i]]);return n+="}"}function ou(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let lu=Zh("localStorage"),hu=Zh("sessionStorage"),uu=new tt("@firebase/database"),cu=(()=>{let e=1;return function(){return e++}})(),du=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=du.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},pu=null,fu=!0,gu=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(uu.logLevel=c.VERBOSE,pu=uu.log.bind(uu),t&&hu.set("logging_enabled",!0)):"function"==typeof e?pu=e:(pu=null,hu.remove("logging_enabled"))},mu=function(...e){var t;!0===fu&&(fu=!1,null===pu)&&!0===hu.get("logging_enabled")&&gu(!0),pu&&(t=du.apply(null,e),pu(t))},vu=function(...e){var t="FIREBASE FATAL ERROR: "+du(...e);throw uu.error(t),new Error(t)},_u=function(...e){var t="FIREBASE WARNING: "+du(...e);uu.warn(t)},yu=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&_u("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},wu=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},bu="[MIN_NAME]",Iu="[MAX_NAME]",Tu=function(e,t){var r,n;return e===t?0:e===bu||t===Iu?-1:t===bu||e===Iu?1:(r=ku(e),n=ku(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Eu(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Cu(e){g(!wu(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function ku(e){if(Au.test(e)){var t=Number(e);if(t>=Nu&&t<=Ru)return t}return null}function Su(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Au=new RegExp("^-?(0*)\\d{1,10}$"),Nu=-2147483648,Ru=2147483647,Pu=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw _u("Exception was thrown by user callback.",e),t},Math.floor(0))}};class Du{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null!=t&&t.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){var e;null!=(e=this.appCheckProvider)&&e.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){_u(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class xu{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(mu("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',_u(e)}}class Ou{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Ou.OWNER="owner";let Mu=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Lu="websocket",Fu="long_polling";class Uu{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=lu.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&lu.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function Vu(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Lu)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Fu)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Eu(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class qu{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let ju={},Bu={};function zu(e){var t=e.toString();return ju[t]||(ju[t]=new qu),ju[t]}class Ku{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Pu(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Wu{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=ru(e),this.stats_=zu(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),Vu(t,Fu,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Ku(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Hu((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Mu.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Wu.forceAllow_=!0}static forceDisallow(){Wu.forceDisallow_=!0}static isAvailable(){return!!Wu.forceAllow_||!(Wu.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=ou(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Hu{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=cu(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Hu.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){mu("frame writing exception"),e.stack&&mu(e.stack),mu(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||mu("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{mu("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let Gu=null;"undefined"!=typeof MozWebSocket?Gu=MozWebSocket:"undefined"!=typeof WebSocket&&(Gu=WebSocket);class $u{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=ru(this.connId),this.stats_=zu(t),this.connURL=$u.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Mu.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),Vu(e,Lu,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,lu.set("previous_websocket_failure",!0);try{pe(),this.mySock=new Gu(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){$u.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==Gu&&!$u.forceDisallow_}static previouslyFailed(){return lu.isInMemoryStorage||!0===lu.get("previous_websocket_failure")}markConnectionHealthy(){lu.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),ou(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}$u.responsesRequiredToBeHealthy=2,$u.healthyTimeout=3e4;class Qu{static get ALL_TRANSPORTS(){return[Wu,$u]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=$u&&$u.isAvailable();let r=t&&!$u.previouslyFailed();if(e.webSocketOnly&&(t||_u("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[$u];else{var n,i=this.transports_=[];for(n of Qu.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Qu.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Qu.globalTransportInitialized_=!1;class Yu{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=ru("c:"+this.id+":"),this.transportManager_=new Qu(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Su(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=su("t",e),r=su("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=su("t",e),r=su("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=su("t",e);if("d"in e){var r=e.d;if("h"===t){var n=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?nu("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):nu("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&_u("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Su(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Su(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(lu.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Ju{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Xu{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class Zu extends Xu{static getInstance(){return new Zu}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let ec=32,tc=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function rc(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function nc(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function ic(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function sc(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function ac(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function oc(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return oc(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function lc(e,t){var r=ic(e,0),n=ic(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Tu(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function hc(e,t){if(rc(e)!==rc(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function uc(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(rc(e)>rc(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class cc{constructor(e,t){this.errorPrefix_=t,this.parts_=ic(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=je(this.parts_[r]);dc(this)}}function dc(e){if(e.byteLength_>tc)throw new Error(e.errorPrefix_+"has a key path longer than "+tc+" bytes ("+e.byteLength_+").");if(e.parts_.length>ec)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+ec+") or object contains a cycle "+pc(e))}function pc(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class fc extends Xu{static getInstance(){return new fc}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class gc extends Ju{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=gc.nextPersistentConnectionId_++,this.log_=ru("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");fc.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&Zu.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(gc.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=ke(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),_u("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):nu("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+gc.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,u]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?mu("getToken() completed but was canceled"):(mu("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=u&&u.token,r=new Yu(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{_u(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&_u(e),o())}}}interrupt(e){mu("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){mu("Resuming connection for reason: "+e),delete this.interruptReasons_[e],Se(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>au(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){mu("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){mu("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Qh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ce()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=Zu.getInstance().currentlyOnline();return Se(this.interruptReasons_)&&e}}gc.nextPersistentConnectionId_=0,gc.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class mc{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(bu,e),n=new p(bu,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let vc;class _c extends mc{static get __EMPTY_NODE(){return vc}static set __EMPTY_NODE(e){vc=e}compare(e,t){return Tu(e.name,t.name)}isDefinedOn(e){throw j("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Iu,vc)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,vc)}toString(){return".key"}}let yc=new _c;class wc{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class bc{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:bc.RED,this.left=null!=n?n:Tc.EMPTY_NODE,this.right=null!=i?i:Tc.EMPTY_NODE}copy(e,t,r,n,i){return new bc(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Tc.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Tc.EMPTY_NODE;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(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,bc.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,bc.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}bc.RED=!0,bc.BLACK=!1;class Ic{copy(e,t,r,n,i){return this}insert(e,t,r){return new bc(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Tc{constructor(e,t=Tc.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Tc(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,bc.BLACK,null,null))}remove(e){return new Tc(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,bc.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new wc(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new wc(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new wc(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new wc(this.root_,null,this.comparator_,!0,e)}}function Ec(e,t){return Tu(e.name,t.name)}function Cc(e,t){return Tu(e,t)}Tc.EMPTY_NODE=new Ic;let kc;function Sc(e){return"number"==typeof e?"number:"+Cu(e):"string:"+e}function Ac(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===kc||e.isEmpty(),"priority of unexpected type."),g(e===kc||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Nc;class Rc{static set __childrenNodeConstructor(e){Nc=e}static get __childrenNodeConstructor(){return Nc}constructor(e,t=Rc.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Ac(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Rc(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Rc.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Rc.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Rc.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===rc(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Rc.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Sc(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Cu(this.value_):this.value_),this.lazyHash_=tu(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Rc.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Rc.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Rc.VALUE_TYPE_ORDER.indexOf(t),i=Rc.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Rc.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Pc,Dc;class xc extends mc{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Tu(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Iu,new Rc("[PRIORITY-POST]",Dc))}makePost(e,t){var r=Pc(e);return new p(t,new Rc("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new xc,Oc=Math.log(2);class Mc{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Oc,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Lc(l,e,h,t){l.sort(e);let u=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new bc(a,s.node,bc.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=u(e,i),n=u(i+1,t),s=l[i],a=h?h(s):s,new bc(a,s.node,bc.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,u(1+r,n)),r=l[r],i=h?h(r):r,e=new bc(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,bc.BLACK):(t(n,bc.BLACK),t(n,bc.RED))}return a})(new Mc(l.length));return new Tc(t||e,r)}let Fc,Uc={};class Vc{static get Default(){return g((Uc,I),"ChildrenNode.ts has not been loaded"),Fc=Fc||new Vc({".priority":Uc},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=ke(this.indexes_,e);if(t)return t instanceof Tc?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==yc,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Lc(r,e.getCompare()):Uc;var o=e.toString(),l=Object.assign({},this.indexSet_),h=(l[o]=e,Object.assign({},this.indexes_));return h[o]=a,new Vc(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=ke(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Uc){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Lc(n,r.getCompare())}return Uc}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new Vc(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Uc&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new Vc(e,this.indexSet_)}}let qc;class T{static get EMPTY_NODE(){return qc=qc||new T(new Tc(Cc),null,Vc.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Ac(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||qc}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?qc:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?qc:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===rc(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Sc(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":tu(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===Bc?-1:0}withIndex(e){var t;return e===yc||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===yc||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===yc?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class jc extends T{constructor(){super(new Tc(Cc),T.EMPTY_NODE,Vc.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let Bc=new jc,zc=(Object.defineProperties(p,{MIN:{value:new p(bu,T.EMPTY_NODE)},MAX:{value:new p(Iu,Bc)}}),_c.__EMPTY_NODE=T.EMPTY_NODE,Rc.__childrenNodeConstructor=T,t=Bc,kc=t,t=Bc,Dc=t,!0);function Kc(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Rc(t,Kc(e));if(s instanceof Array||!zc){let n=T.EMPTY_NODE;return Eu(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Kc(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Kc(e))}{let n=[],i=!1;return Eu(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Kc(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Lc(n,Ec,e=>e.name,Cc),i?(r=Lc(n,I.getCompare()),new T(t,Kc(e),new Vc({".priority":r},{".priority":I}))):new T(t,Kc(e),Vc.Default))}}Pc=Kc;class Wc extends mc{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Tu(e.name,t.name):r}makePost(e,t){var r=Kc(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,Bc);return new p(Iu,e)}toString(){return ic(this.indexPath_,0).join("/")}}class Hc extends mc{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Tu(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Kc(e);return new p(t,r)}toString(){return".value"}}let Gc=new Hc;function $c(e){return{type:"value",snapshotNode:e}}function Qc(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Yc(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Jc(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Xc{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Yc(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Qc(t,r)):s.trackChildChange(Jc(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Yc(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Jc(e,t,r)):i.trackChildChange(Qc(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class Zc{constructor(e){this.indexedFilter_=new Xc(e.getIndex()),this.index_=e.getIndex(),this.startPost_=Zc.getStartPost_(e),this.endPost_=Zc.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class ed{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new Zc(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var c=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=c?(null!=i&&i.trackChildChange(Jc(t,r,u)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Yc(t,u)),c=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Qc(e.name,e.node)),c.updateImmediateChild(e.name,e.node)):c)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Yc(l.name,l.node)),i.trackChildChange(Qc(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class td{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:bu}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Iu}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new td;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function rd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function nd(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function id(e,t){var r=e.copy();return r.index_=t,r}function sd(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===Gc?"$value":t.index_===yc?"$key":(g(t.index_ instanceof Wc,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function ad(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class od extends Ju{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=ru("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),od.getListenId_(e,n)),o={};this.listens_[a]=o;var r=sd(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),ke(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=od.getListenId_(e,t);delete this.listens_[r]}get(e){var t=sd(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){_u("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&_u("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class ld{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function hd(){return{value:null,children:new Map}}function ud(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,hd()),ud(e.children.get(n),t=y(t),r))}function cd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{cd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class dd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r=Object.assign({},e);return this.last_&&Eu(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class pd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new dd(e);var r=1e4+2e4*Math.random();Su(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Eu(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Su(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function fd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function gd(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function md(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=eu=eu||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class vd{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=eu.ACK_USER_WRITE,this.source=fd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new vd(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new vd(y(this.path),this.affectedTree,this.revert))}}class _d{constructor(e,t){this.source=e,this.path=t,this.type=eu.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new _d(this.source,v()):new _d(this.source,y(this.path))}}class yd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=eu.OVERWRITE}operationForChild(e){return b(this.path)?new yd(this.source,v(),this.snap.getImmediateChild(e)):new yd(this.source,y(this.path),this.snap)}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=eu.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new yd(this.source,v(),t.value):new wd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new wd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class bd{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Id{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Td(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Ed(r,i,"child_removed",e,n,t),Ed(r,i,"child_added",e,n,t),Ed(r,i,"child_moved",s,n,t),Ed(r,i,"child_changed",e,n,t),Ed(r,i,"value",e,n,t),i}function Ed(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw j("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Cd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Cd(new bd(t,r,n),e.serverCache)}function Sd(e,t,r,n){return Cd(e.eventCache,new bd(t,r,n))}function Ad(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Nd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Rd;class E{static fromObject(e){let r=new E(null);return Eu(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Rd=Rd||new Tc(iu)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:ac(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new E(null))}set(e,t){var r,n;return b(e)?new E(t,this.children):(n=_(e),r=(this.children.get(n)||new E(null)).set(y(e),t),n=this.children.insert(n,r),new E(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new E(null):new E(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new E(null):new E(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new E(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new E(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(ac(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),ac(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),ac(t,n),r):new E(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(ac(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class Pd{constructor(e){this.writeTree_=e}static empty(){return new Pd(new E(null))}}function Dd(t,r,n){if(b(r))return new Pd(new E(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new E(n),s=t.writeTree_.setTree(r,s),new Pd(s);{var s=i.path;let e=i.value;i=oc(s,r);return e=e.updateChild(i,n),new Pd(t.writeTree_.set(s,e))}}function xd(e,r,t){let n=e;return Eu(t,(e,t)=>{n=Dd(n,ac(r,e),t)}),n}function Od(e,t){var r;return b(t)?Pd.empty():(r=e.writeTree_.setTree(t,new E(null)),new Pd(r))}function Md(e,t){return null!=Ld(e,t)}function Ld(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(oc(r.path,t)):null}function Fd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function Ud(e,t){var r;return b(t)?e:null!=(r=Ld(e,t))?new Pd(new E(r)):new Pd(e.writeTree_.subtree(t))}function Vd(e){return e.writeTree_.isEmpty()}function qd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(ac(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(ac(i,".priority"),r)}}}(v(),e.writeTree_,t)}function jd(e,t){return Zd(t,e)}function Bd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return uc(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&uc(ac(e.path,r),t))return 1})(l,i.path)?s=!1:uc(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Kd(e.allWrites,zd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Od(t.visibleWrites,i.path):Eu(i.children,e=>{t.visibleWrites=Od(t.visibleWrites,ac(i.path,e))}),!0)}function zd(e){return e.visible}function Kd(e,t,r){let n=Pd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)uc(r,s)?(e=oc(r,s),n=Dd(n,e,i.snap)):uc(s,r)&&(e=oc(s,r),n=Dd(n,v(),i.snap.getChild(e)));else{if(!i.children)throw j("WriteRecord should have .snap or .children");uc(r,s)?(e=oc(r,s),n=xd(n,e,i.children)):uc(s,r)&&(b(e=oc(s,r))?n=xd(n,v(),i.children):(s=ke(i.children,_(e)))&&(i=s.getChild(y(e)),n=Dd(n,v(),i)))}}}return n}function Wd(e,t,r,n,i){var s;return n||i?(s=Ud(e.visibleWrites,t),!i&&Vd(s)?r:i||null!=r||Md(s,v())?qd(Kd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(uc(e.path,t)||uc(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ld(e.visibleWrites,t))?s:Vd(s=Ud(e.visibleWrites,t))?r:null!=r||Md(s,v())?qd(s,r||T.EMPTY_NODE):null}function Hd(e,t,r,n){return Wd(e.writeTree,e.treePath,t,r,n)}function Gd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ld(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=Ud(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=qd(Ud(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Fd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Fd(Ud(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function $d(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=ac(e,t),Md(i.visibleWrites,s)?null:Vd(s=Ud(i.visibleWrites,s))?n.getChild(t):qd(s,n.getChild(t));var i,s}function Qd(e,t){return r=e.writeTree,e=ac(e.treePath,t),Ld(r.visibleWrites,e);var r}function Yd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var u=Ud(o.visibleWrites,e),c=Ld(u,v());if(null!=c)t=c;else{if(null==r)return[];t=qd(u,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Jd(e,t,r){return n=e.writeTree,r=r,i=ac(e.treePath,e=t),null!=(s=Ld(n.visibleWrites,i))?s:r.isCompleteForChild(e)?qd(Ud(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function Xd(e,t){return Zd(ac(e.treePath,t),e.writeTree)}function Zd(e,t){return{treePath:e,writeTree:t}}class ep{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Jc(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Yc(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Qc(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw j("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Jc(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let tp=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class rp{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new bd(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Jd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Nd(this.viewCache_),n=Yd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function np(e,t,r,n,i){var s=new ep;let a,o;if(r.type===eu.OVERWRITE){var l=r;a=l.source.fromUser?ap(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),sp(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===eu.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=ac(s,e);op(i,_(r))&&(h=ap(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=ac(s,e);op(i,_(r))||(h=ap(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),hp(e,t,l.path,l.children,n,i,o,s))}else if(r.type===eu.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Qd(s,i))return n;{var l=new rp(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?Hd(s,Nd(n)):(u=n.serverCache.getNode(),g(u instanceof T,"serverChildren would be complete if leaf node"),Gd(s,u)),t=r.filter.updateFullNode(h,e,a)}else{var u=_(i);let e=Jd(s,u,n.serverCache);null==e&&n.serverCache.isCompleteForChild(u)&&(e=h.getImmediateChild(u)),(t=null!=e?r.filter.updateChild(h,u,e,y(i),l,a):n.eventCache.getNode().hasChild(u)?r.filter.updateChild(h,u,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=Hd(s,Nd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Qd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Qd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return sp(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new E(null);return h.getNode().forEachChild(yc,(e,t)=>{r=r.set(new f(e),t)}),hp(e,t,i,r,s,a,l,o)}return t}{let n=new E(null);return r.foreach((e,t)=>{var r=ac(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),hp(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==eu.LISTEN_COMPLETE)throw j("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Sd(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ip(i,l,e,r,tp,n))}var h,u,s=s.getChanges(),i=t,e=a,r=s,c=e.eventCache;return c.isFullyInitialized()&&(h=c.getNode().isLeafNode()||c.getNode().isEmpty(),u=Ad(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!c.getNode().equals(u)||!c.getNode().getPriority().equals(u.getPriority()))&&r.push($c(Ad(e))),{viewCache:a,changes:s}}function ip(n,i,s,a,o,l){var h=i.eventCache;if(null!=Qd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(u=Gd(a,(u=Nd(i))instanceof T?u:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),u,l)):(u=Hd(a,Nd(i)),n.filter.updateFullNode(i.eventCache.getNode(),u,l));else{var u=_(s);if(".priority"===u){g(1===rc(s),"Can't have a priority with additional path components");var c=h.getNode(),d=$d(a,s,c,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(c,d):h.getNode()}else{c=y(s);let e;e=h.isCompleteForChild(u)?(r=i.serverCache.getNode(),null!=(d=$d(a,s,h.getNode(),r))?h.getNode().getImmediateChild(u).updateChild(c,d):h.getNode().getImmediateChild(u)):Jd(a,u,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),u,e,c,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function sp(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var u=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=u.updateFullNode(l.getNode(),n,null);else if(u.filtersNodes()&&!l.isFiltered()){var c=l.getNode().updateChild(r,n);h=u.updateFullNode(l.getNode(),c,null)}else{c=_(r);if(!l.isCompleteForPath(r)&&1<rc(r))return t;var d=y(r),p=l.getNode().getImmediateChild(c).updateChild(d,n);h=".priority"===c?u.updatePriority(l.getNode(),p):u.updateChild(l.getNode(),c,p,d,tp,null)}c=Sd(t,h,l.isFullyInitialized()||b(r),u.filtersNodes());return ip(e,c,r,i,new rp(i,c,s),o)}function ap(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var u=new rp(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var c=_(n);if(".priority"===c)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(c);let e;e=b(p)?i:null!=(d=u.getCompleteChild(c))?".priority"===nc(p)&&d.getChild(sc(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),c,e,p,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function op(e,t){return e.eventCache.isCompleteForChild(t)}function lp(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function hp(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,u=(r=b(e)?t:new E(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;u.hasChild(e)&&(r=lp(0,i.serverCache.getNode().getImmediateChild(e),t),h=sp(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||r||(r=lp(0,i.serverCache.getNode().getImmediateChild(e),t),h=sp(n,h,new f(e),r,s,a,o,l))}),h}class up{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Xc(r.getIndex()),r=(e=r).loadsAllData()?new Xc(e.getIndex()):new(e.hasLimit()?ed:Zc)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new bd(a,i.isFullyInitialized(),n.filtersNodes()),i=new bd(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Cd(i,a),this.eventGenerator_=new Id(this.query_)}get query(){return this.query_}}function cp(e){return 0===e.eventRegistrations_.length}function dp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function pp(e,t,r,n){t.type===eu.MERGE&&null!==t.source.queryId&&(g(Nd(e.viewCache_),"We should always have a full cache before handling merges"),g(Ad(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=np(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,fp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function fp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Td(e.eventGenerator_,t,r,i)}let gp;class mp{constructor(){this.views=new Map}}function vp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),pp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(pp(s,r,n,i));return e}}function _p(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=Hd(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Gd(n,i):T.EMPTY_NODE,!1);a=Cd(new bd(e,t,!1),new bd(i,s,!1));return new up(r,a)}}function yp(e,t,n,i,s,r){var a=_p(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Qc(e,t))}),a.isFullyInitialized()&&r.push($c(a.getNode())),fp(i,r,a.getNode(),s)}}function wp(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=Cp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(dp(h,r,n)),cp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var u=e.views.get(i);u&&(a=a.concat(dp(u,r,n)),cp(u))&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query))}return o&&!Cp(e)&&s.push((g(gp,"Reference.ts has not been loaded"),new gp(t._repo,t._path))),{removed:s,events:a}}function bp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ip(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Nd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Tp(e,t){var r;return t._queryParams.loadsAllData()?kp(e):(r=t._queryIdentifier,e.views.get(r))}function Ep(e,t){return null!=Tp(e,t)}function Cp(e){return null!=kp(e)}function kp(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Sp;let Ap=1;class Np{constructor(e){this.listenProvider_=e,this.syncPointTree_=new E(null),this.pendingWriteTree_={visibleWrites:Pd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Rp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=Dd(s.visibleWrites,a,o)),s.lastWriteId=n,i?Vp(e,new yd(fd(),t,r)):[]}function Pp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=xd(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=E.fromObject(r);return Vp(e,new wd(fd(),t,o))}function Dp(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(Bd(e.pendingWriteTree_,t)){let t=new E(null);return null!=n.snap?t=t.set(v(),!0):Eu(n.children,e=>{t=t.set(new f(e),!0)}),Vp(e,new vd(n.path,t,r))}return[]}function xp(e,t,r){return Vp(e,new yd(gd(),t,r))}function Op(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Ep(o,t))){var h=wp(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),u=r.syncPointTree_.findOnPath(a,(e,t)=>Cp(t));if(h&&!u){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&Cp(t))return[kp(t)];{let r=[];return t&&(r=bp(t)),Eu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<c.length;++e){var d=c[e],p=d.query,d=jp(r,d);r.listenProvider_.startListening(Gp(p),Bp(r,p),d.hashFn,d.onComplete)}}}!u&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Gp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(zp(e));r.listenProvider_.stopListening(Gp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=zp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Mp(e,t,r,n){var i,s,a=Kp(e,n);return null!=a?(i=(a=Wp(a)).path,a=a.queryId,s=oc(i,t),Hp(e,i,new yd(md(a),s,r))):[]}function Lp(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=oc(e,i);s=s||Ip(t,r),a=a||Cp(t)}),e.syncPointTree_.get(i));o?(a=a||Cp(o),s=s||Ip(o,v())):(o=new mp,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ip(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,u=Ep(o,t),c=(u||t._queryParams.loadsAllData()||(h=zp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),c=Ap++,e.queryToTagMap.set(h,c),e.tagToQueryMap.set(c,h)),jd(e.pendingWriteTree_,i));let d=yp(o,t,r,c,s,l);return u||a||n||(h=Tp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=Bp(t,e),s=jp(t,r),s=t.listenProvider_.startListening(Gp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!Cp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&Cp(t))return[kp(t).query];{let r=[];return t&&(r=r.concat(bp(t).map(e=>e.query))),Eu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Gp(o),Bp(t,o))}}return s})(e,t,h))),d}function Fp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ip(t,oc(e,n));if(r)return r});return Wd(r,n,i,t,!0)}function Up(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=oc(e,n);i=i||Ip(t,r)}),e.syncPointTree_.get(n));r?i=i||Ip(r,v()):(r=new mp,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new bd(i,!0,!1):null,o=jd(e.pendingWriteTree_,t._path);return Ad(_p(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Vp(e,t){return function a(t,o,l,h){{if(b(t.path))return qp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ip(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=Xd(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(vp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,jd(e.pendingWriteTree_,v()))}function qp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ip(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=Xd(o,e),i=s.operationForChild(e);i&&(l=l.concat(qp(i,t,r,n)))}),l=t?l.concat(vp(t,s,o,a)):l}function jp(o,e){let l=e.query,h=Bp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Kp(t,n))?(i=(a=Wp(a)).path,a=a.queryId,s=oc(i,r),Hp(t,i,new _d(md(a),s))):[]):(n=o,r=l._path,Vp(n,new _d(gd(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Op(o,l,null,i))}}}function Bp(e,t){var r=zp(t);return e.queryToTagMap.get(r)}function zp(e){return e._path.toString()+"$"+e._queryIdentifier}function Kp(e,t){return e.tagToQueryMap.get(t)}function Wp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function Hp(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),jd(e.pendingWriteTree_,t));return vp(n,r,i,null)}function Gp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Sp,"Reference.ts has not been loaded"),new Sp(e._repo,e._path)):e}class $p{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new $p(t)}node(){return this.node_}}class Qp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=ac(this.path_,e);return new Qp(this.syncTree_,t)}node(){return Fp(this.syncTree_,this.path_)}}let Yp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Jp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?Xp(e[".sv"],t,r):"object"==typeof e[".sv"]?Zp(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},Xp=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},Zp=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},ef=function(e,t,r,n){return rf(t,new Qp(r,e),n)},tf=function(e,t,r){return rf(e,new $p(t),r)};function rf(e,n,i){var t,r,s=e.getPriority().val(),s=Jp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Jp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Rc(t,Kc(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Rc(s))),r.forEachChild(I,(e,t)=>{var r=rf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class nf{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function sf(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=ke(n.node.children,i)||{children:{},childCount:0};n=new nf(i,n,s),r=y(r),i=_(r)}return n}function af(e){return e.node.value}function of(e,t){e.node.value=t,cf(e)}function lf(e){return 0<e.node.childCount}function hf(r,n){Eu(r.node.children,(e,t)=>{n(new nf(e,r,t))})}function uf(e){return new f(null===e.parent?e.name:uf(e.parent)+"/"+e.name)}function cf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===af(e)&&!lf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,cf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,cf(t)))}function df(e,t,r,n){n&&void 0===t||Cf(Ue(e,"value"),t,r)}function pf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Eu(t,(e,t)=>{var r=new f(e);if(Cf(n,t,ac(s,r)),".priority"===nc(r)&&!Ef(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=ic(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!bf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(lc);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&uc(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function ff(e,t,r){if(!r||void 0!==t){if(wu(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Ef(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function gf(e,t,r,n){if(!(n&&void 0===r||bf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function mf(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),kf(e,t,r,n)}function vf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let _f=/[\[\].#$\/\u0000-\u001F\u007F]/,yf=/[\[\].#$\u0000-\u001F\u007F]/,wf=10485760,bf=function(e){return"string"==typeof e&&0!==e.length&&!_f.test(e)},If=function(e){return"string"==typeof e&&0!==e.length&&!yf.test(e)},Tf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),If(e)},Ef=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!wu(e)||e&&"object"==typeof e&&Ce(e,".sv")},Cf=function(a,e,t){let o=t instanceof f?new cc(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+pc(o));if("function"==typeof e)throw new Error(a+"contains a function "+pc(o)+" with contents = "+e.toString());if(wu(e))throw new Error(a+"contains "+e.toString()+" "+pc(o));if("string"==typeof e&&e.length>wf/3&&je(e)>wf)throw new Error(a+"contains a string greater than "+wf+" utf8 bytes "+pc(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Eu(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!bf(e)))throw new Error(a+" contains an invalid key ("+e+") "+pc(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=je(e),dc(r),Cf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=je(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+pc(o)+" in addition to actual children.")}},kf=function(e,t,r,n){if(!(n&&void 0===r||If(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Sf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!bf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Tf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Af{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Nf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||hc(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Rf(e,t,r){Nf(e,r),Df(e,e=>hc(e,t))}function Pf(e,t,r){Nf(e,r),Df(e,e=>uc(e,t)||uc(t,e))}function Df(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),pu&&mu("event: "+a.toString()),Pu(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let xf="repo_interrupt",Of=25;class Mf{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Af,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=hd(),this.transactionQueueTree_=new nf,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Lf(a,e,t){if(a.stats_=zu(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new od(a.repoInfo_,(e,t,r,n)=>{Vf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>qf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new gc(a.repoInfo_,e,(e,t,r,n)=>{Vf(a,e,t,r,n)},e=>{qf(a,e)},e=>{var r;r=a,Eu(e,(e,t)=>{jf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new pd(a.stats_,a.server_),r=a.repoInfo_.toString(),Bu[r]||(Bu[r]=e()),Bu[r]),a.infoData_=new ld,a.infoSyncTree_=new Np({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=xp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),jf(a,"connected",!1),a.serverSyncTree_=new Np({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);Pf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Ff(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function Uf(e){return Yp({timestamp:Ff(e)})}function Vf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,u,c=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=c;0<(d=i?n?(u=Ae(r,e=>Kc(e)),t=e.serverSyncTree_,s=c,a=u,(u=Kp(t,i))?(o=(u=Wp(u)).path,u=u.queryId,l=oc(o,s),h=E.fromObject(a),Hp(t,o,new wd(md(u),l,h))):[]):(o=Kc(r),Mp(e.serverSyncTree_,c,o,i)):n?(u=Ae(r,e=>Kc(e)),s=e.serverSyncTree_,a=c,t=u,l=E.fromObject(t),Vp(s,new wd(gd(),a,l))):(h=Kc(r),xp(e.serverSyncTree_,c,h))).length&&(p=Xf(e,c)),Pf(e.eventQueue_,p,d)}function qf(e,t){if(jf(e,"connected",t),!1===t){var a=e;$f(a,"onDisconnectEvents");let n=Uf(a),i=hd(),s=(cd(a.onDisconnect_,v(),(e,t)=>{var r=ef(e,t,a.serverSyncTree_,n);ud(i,e,r)}),[]);cd(i,v(),(e,t)=>{s=s.concat(xp(a.serverSyncTree_,e,t));var r=rg(a,e);Xf(a,r)}),a.onDisconnect_=hd(),Pf(a.eventQueue_,v(),s)}}function jf(e,t,r){var n=new f("/.info/"+t),i=Kc(r),i=(e.infoData_.updateSnapshot(n,i),xp(e.infoSyncTree_,n,i));Pf(e.eventQueue_,n,i)}function Bf(e){return e.nextWriteId_++}function zf(n,i,e,t,s){$f(n,"set",{path:i.toString(),value:e,priority:t});var r=Uf(n),a=Kc(e,t),o=Fp(n.serverSyncTree_,i),o=tf(a,o,r);let l=Bf(n);r=Rp(n.serverSyncTree_,i,o,l,!0),Nf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||_u("set at "+i+" failed: "+e),Dp(n.serverSyncTree_,l,!r));Pf(n.eventQueue_,i,r),Qf(0,s,e,t)}),o=rg(n,i);Xf(n,o),Pf(n.eventQueue_,o,[])}function Kf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{ud(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Qf(0,i,e,t)})}function Wf(r,n,e,i){let s=Kc(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&ud(r.onDisconnect_,n,s),Qf(0,i,e,t)})}function Hf(e,t,r){let n;n=".info"===_(t._path)?Op(e.infoSyncTree_,t,r):Op(e.serverSyncTree_,t,r),Rf(e.eventQueue_,t._path,n)}function Gf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(xf)}function $f(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),mu(r,...t)}function Qf(e,n,i,s){n&&Pu(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Yf(e,t,r){return Fp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Jf(o,l=o.transactionQueueTree_){if(l||tg(o,l),af(l)){var h=eg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var u=o;var c=uf(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Yf(u,c,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,oc(c,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=c;u.server_.put(s.toString(),i,t=>{$f(u,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(Dp(u.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();tg(u,sf(u.transactionQueueTree_,c)),Jf(u,u.transactionQueueTree_),Pf(u.eventQueue_,c,r);for(let t=0;t<n.length;t++)Pu(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{_u("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}Xf(u,c)}},n)}}else lf(l)&&hf(l,e=>{Jf(o,e)})}function Xf(e,t){var r=Zf(e,t),n=uf(r),r=eg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],u=oc(a,h.path);let e=!1,t;if(g(null!==u,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(Dp(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Of)e=!0,t="maxretry",r=r.concat(Dp(i.serverSyncTree_,h.currentWriteId,!0));else{var u=Yf(i,h.path,l),c=(h.currentInputSnapshot=u,s[n].update(u.val()));if(void 0!==c){Cf("transaction failed: Data returned ",c,h.path);let e=Kc(c);"object"==typeof c&&null!=c&&Ce(c,".priority")||(e=e.updatePriority(u.getPriority()));var c=h.currentWriteId,d=Uf(i),u=tf(e,u,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=u,h.currentWriteId=Bf(i),l.splice(l.indexOf(c),1),r=(r=r.concat(Rp(i.serverSyncTree_,h.path,u,h.currentWriteId,h.applyLocally))).concat(Dp(i.serverSyncTree_,c,!0))}else e=!0,t="nodata",r=r.concat(Dp(i.serverSyncTree_,h.currentWriteId,!0))}Pf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}tg(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Pu(o[e]);Jf(i,i.transactionQueueTree_)}return n}function Zf(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===af(n);)n=sf(n,r),t=y(t),r=_(t);return n}function eg(e,t){var r=[];return function t(r,e,n){let i=af(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);hf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function tg(t,r){var n=af(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,of(r,0<n.length?n:void 0)}hf(r,e=>{tg(t,e)})}function rg(t,e){var r=uf(Zf(t,e)),n=sf(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{ng(t,e)}),ng(t,n),function t(e,r,n,i){n&&!i&&r(e),hf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{ng(t,e)}),r}function ng(i,s){var a=af(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(Dp(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?of(s,void 0):a.length=t+1,Pf(i.eventQueue_,uf(s),e);for(let n=0;n<o.length;n++)Pu(o[n])}}let ig=function(e,t){var r=sg(e),n=r.namespace,i=("firebase.com"===r.domain&&vu(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||vu("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||yu(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Uu(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},sg=function(n){let i="",s="",a="",o="",l="",h=!0,u="https",c=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(u=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):_u(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===u||"wss"===u,c=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:c,domain:s,subdomain:a,secure:h,scheme:u,pathString:o,namespace:l}},ag="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",og=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=ag.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=ag.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class lg{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class hg{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class ug{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class cg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Kf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){vf("OnDisconnect.remove",this._path);var e=new Z;return Wf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){vf("OnDisconnect.set",this._path),df("OnDisconnect.set",e,this._path,!1);var t=new Z;return Wf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){vf("OnDisconnect.setWithPriority",this._path),df("OnDisconnect.setWithPriority",e,this._path,!1),ff("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Kc(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&ud(i.onDisconnect_,s,r),Qf(0,a,e,t)})}return n.promise}update(e){vf("OnDisconnect.update",this._path),pf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),Se(r)?(mu("onDisconnect().update() called with empty data. Don't do anything."),Qf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Eu(r,(e,t)=>{var r=Kc(t);ud(n.onDisconnect_,ac(i,e),r)}),Qf(0,s,e,t)}),t.promise}}class dg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:nc(this._path)}get ref(){return new mg(this._repo,this._path)}get _queryIdentifier(){var e=ad(this._queryParams),e=au(e);return"{}"===e?"default":e}get _queryObject(){return ad(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof dg&&(t=this._repo===e._repo,r=hc(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function pg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function fg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===yc){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==bu)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Iu)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Ef(t)||null!=r&&!Ef(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Wc||e.getIndex()===Gc,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function gg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class mg extends dg{constructor(e,t){super(e,t,new td,!1)}get parent(){var e=sc(this._path);return null===e?null:new mg(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class vg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=wg(this.ref,e);return new vg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new vg(t,wg(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function _g(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?wg(e._root,t):e._root}function yg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ig(t,e._repo.repoInfo_.nodeAdmin),n=(Sf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||vu("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),_g(e,r.path.toString())}function wg(e,t){return(null===_((e=w(e))._path)?mf:kf)("child","path",t,!1),new mg(e._repo,ac(e._path,t))}function bg(e,t){e=w(e),vf("set",e._path),df("set",t,e._path,!1);var r=new Z;return zf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Ig(e,t){pf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));$f(a,"update",{path:o.toString(),value:e});let r=!0,n=Uf(a),s={};if(Eu(e,(e,t)=>{r=!1,s[e]=ef(ac(o,e),Kc(t),a.serverSyncTree_,n)}),r)mu("update() called with empty data. Don't do anything."),Qf(0,l,"ok",void 0);else{let i=Bf(a);var h=Pp(a.serverSyncTree_,o,s,i);Nf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||_u("update at "+o+" failed: "+e),Dp(a.serverSyncTree_,i,!r)),n=0<r.length?Xf(a,o):o;Pf(a.eventQueue_,n,r),Qf(0,l,e,t)}),Eu(e,e=>{var t=rg(a,ac(o,e));Xf(a,t)}),Pf(a.eventQueue_,o,[])}}return i.promise}function Tg(t){t=w(t);var i,s,a,e=new ug(()=>{}),e=new Eg(e);return i=t._repo,s=t,a=e,(null!=(e=Up(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Kc(e).withIndex(s._queryParams.getIndex());Lp(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?xp(i.serverSyncTree_,s._path,r):(t=Bp(i.serverSyncTree_,s),Mp(i.serverSyncTree_,s._path,r,t)),Pf(i.eventQueue_,s._path,n),Op(i.serverSyncTree_,s,a,null,!0),r},e=>($f(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new vg(e,new mg(t._repo,t._path),t._queryParams.getIndex()))}class Eg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new lg("value",this,new vg(e.snapshotNode,new mg(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new hg(this,e,t):null}matches(e){return e instanceof Eg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class Cg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new hg(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=wg(new mg(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new lg(e.type,this,new vg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof Cg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function kg(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{Hf(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new ug(t,s||void 0);let o="value"===e?new Eg(a):new Cg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Lp(r.infoSyncTree_,i,t):Lp(r.serverSyncTree_,i,t),Rf(r.eventQueue_,i._path,e)}return()=>Hf(n._repo,n,o)}function Sg(e,t,r,n){return kg(e,"value",t,r,n)}function Ag(e,t,r,n){kg(e,"child_added",t,r,n)}function Ng(e,t,r,n){kg(e,"child_changed",t,r,n)}function Rg(e,t,r,n){kg(e,"child_moved",t,r,n)}function Pg(e,t,r,n){kg(e,"child_removed",t,r,n)}function Dg(e,t,r){let n=null;var i=r?new ug(r):null;"value"===t?n=new Eg(i):t&&(n=new Cg(t,i)),Hf(e._repo,e,n)}class xg{}class Og extends xg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){df("endAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Mg extends xg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){df("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===yc||r?nd(e,t,r):nd(e,t,bu)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Lg extends xg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){df("startAt",this._value,e._path,!0);var t=rd(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends xg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){df("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===yc||r?rd(e,t,r):rd(e,t,Iu)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends xg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new dg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Vg extends xg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new dg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class qg extends xg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){pg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Wc(t),t=id(e._queryParams,t);return fg(t),new dg(e._repo,e._path,t,!0)}}class jg extends xg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){pg(e,"orderByKey");var t=id(e._queryParams,yc);return fg(t),new dg(e._repo,e._path,t,!0)}}class Bg extends xg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){pg(e,"orderByPriority");var t=id(e._queryParams,I);return fg(t),new dg(e._repo,e._path,t,!0)}}class zg extends xg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){pg(e,"orderByValue");var t=id(e._queryParams,Gc);return fg(t),new dg(e._repo,e._path,t,!0)}}class Kg extends xg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(df("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Og(this._value,this._key)._apply(new Lg(this._value,this._key)._apply(e))}}function Wg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=mg,g(!gp,"__referenceConstructor has already been defined"),gp=t,t=mg,g(!Sp,"__referenceConstructor has already been defined"),Sp=t;let Hg="FIREBASE_DATABASE_EMULATOR_HOST",Gg={},$g=!1;function Qg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||vu("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),mu("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ig(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[Hg]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ig(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var u=i&&l?new Ou(Ou.OWNER):new xu(e.name,e.options,t),u=(Sf("Invalid Firebase Database URL",a),b(a.path)||vu("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Gg[t.name];var s;return i||(i={},Gg[t.name]=i),(s=i[e.toURLString()])&&vu("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Mf(e,$g,r,n),i[e.toURLString()]=s})(o,e,u,new Du(e,r)));return new Yg(u,e)}class Yg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Lf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new mg(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Gg[t])&&r[e.key]===e||vu(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Gf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&vu("Cannot call "+e+" on a deleted database.")}}function Jg(){Qu.IS_TRANSPORT_INITIALIZED&&_u("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Xg(){Jg(),Wu.forceDisallow()}function Zg(){Jg(),$u.forceDisallow(),Wu.forceAllow()}function em(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;vu("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&vu('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Ou(Ou.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Ou(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Uu(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function tm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(xf)}function rm(e,t){gu(e,t)}let nm={".sv":"timestamp"};class im{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function sm(i,e,t){if(i=w(i),vf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=null==(r=null==t?void 0:t.applyLocally)||r;let s=new Z;var n=Sg(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new vg(r,new mg(i._repo,i._path),I),s.resolve(new im(t,n)))},l=n,h=r;$f(t,"transaction on "+a);var u,n={path:a,update:e,onComplete:o,status:null,order:cu(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Yf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(u=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{Cf("transaction failed: Data returned ",u,n.path),n.status=0;var c=sf(t.transactionQueueTree_,a),d=af(c)||[];d.push(n),of(c,d);let e;"object"==typeof u&&null!==u&&Ce(u,".priority")?(e=ke(u,".priority"),g(Ef(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=Fp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=c.getPriority().val());d=Uf(t),c=Kc(u,e),u=tf(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=u,n.currentWriteId=Bf(t),Rp(t.serverSyncTree_,a,u,n.currentWriteId,n.applyLocally));Pf(t.eventQueue_,a,r),Jf(t,t.transactionQueueTree_)}return s.promise}gc.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},gc.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Yh(Vt),Dt(new u("database",(e,{instanceIdentifier:t})=>Qg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),d($h,"1.0.19",aD),d($h,"1.0.19","esm2017");function am(e){var t="FIREBASE WARNING: "+e;om.warn(t)}let om=new tt("@firebase/database-compat");class lm{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,am("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class hm{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class um{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),kf("DataSnapshot.child","path",e,!1),new um(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),kf("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new um(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new dm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class cm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){var i;l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let s=cm.getCancelAndContextArgs_("Query.on",t,n);var a=(e,t)=>{r.call(s.context,new um(this.database,e),t)},o=(a.userCallback=r,a.context=s.context,null==(i=s.cancel)?void 0:i.bind(s.context));switch(e){case"value":return Sg(this._delegate,a,o),r;case"child_added":return Ag(this._delegate,a,o),r;case"child_removed":return Pg(this._delegate,a,o),r;case"child_changed":return Ng(this._delegate,a,o),r;case"child_moved":return Rg(this._delegate,a,o),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,Dg(this._delegate,e,n)):Dg(this._delegate,e)}get(){return Tg(this._delegate).then(e=>new um(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=cm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new um(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Sg(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Ag(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Rg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new Ug(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return kf("orderByChild","path",e,!1),new qg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new jg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new Bg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new zg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new cm(this.database,Wg(this._delegate,([e=null,t]=[e,t],gf("startAt","key",t,!0),new Lg(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("startAfter","key",t,!0),new Fg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("endAt","key",t,!0),new Og(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("endBefore","key",t,!0),new Mg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("equalTo","key",t,!0),new Kg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof cm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new dm(this.database,new mg(this._delegate._repo,this._delegate._path))}}class dm extends cm{constructor(e,t){super(e,new dg(t._repo,t._path,new td,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new dm(this.database,wg(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new dm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new dm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=bg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,am("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}vf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Ig(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(vf("setWithPriority",e._path),df("setWithPriority",t,e._path,!1),ff("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return zf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,vf("remove",e._path);var e,r=bg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=sm(this._delegate,e,{applyLocally:r}).then(e=>new hm(e.committed,new um(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),vf("setPriority",r._path),ff("setPriority",e,!1),n=new Z,zf(r._repo,ac(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),vf("push",e._path),df("push",t,e._path,!0);var r=Ff(e._repo),r=og(r),n=wg(e,r);let i=wg(e,r),s;return s=null!=t?bg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new dm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new dm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return vf("Reference.onDisconnect",this._delegate._path),new lm(new cg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class pm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:Xg,forceLongPolling:Zg}}useEmulator(e,t,r={}){em(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof dm?(t=yg(this._delegate,e.toString()),new dm(this,t)):(t=_g(this._delegate,e),new dm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=yg(this._delegate,e);return new dm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Gf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),tm(this._delegate)}}pm.ServerValue={TIMESTAMP:nm,increment:e=>({".sv":{increment:e}})};hr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Yh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new u("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new u("app-check-internal",()=>i,"PRIVATE")),{instance:new pm(Qg(e,l,h,t,a),e),namespace:s}}});let fm=pm.ServerValue;(t=lr).INTERNAL.registerComponent(new u("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new pm(n,r)},"PUBLIC").setServiceProps({Reference:dm,Query:cm,Database:pm,DataSnapshot:um,enableLogging:rm,INTERNAL:hr,ServerValue:fm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.0.10");var gm,mm,vm,_m,ym,wm,bm,Im,Tm,Em,Cm,km,Sm="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Am=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function h(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new h([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new h([0|e],e<0?-1:0);var t,r,n}function u(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(u(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new h(t,0)}var c=o(0),l=o(1),d=o(16777216);function p(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function f(e){return-1==e.h}function g(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new h(r,~e.h).add(l)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=u(r)).j(t);f(a)||0<a.l(e);)a=(s=u(r-=n)).j(t);p(s)&&(s=l),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new h(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new h(i,e.h)}(e=h.prototype).m=function(){if(f(this))return-g(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(f(this))return"-"+g(this).toString(e);for(var t=u(Math.pow(e,6)),r=this,n="";;){var i=y(r,t).g,s=((0<(r=m(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new h(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(p(this)||p(e))return c;if(f(this))return f(e)?g(this).j(g(e)):g(g(this).j(e));if(f(e))return g(this.j(g(e)));if(this.l(d)<0&&e.l(d)<0)return u(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,v(r,2*n+2*i),r[2*n+2*i+1]+=s*l,v(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,v(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,v(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new h(r,0)},e.A=function(e){return y(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new h(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new h(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new h(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,mm=r,h.prototype.multiply=h.prototype.j,h.prototype.modulo=h.prototype.A,h.prototype.compare=h.prototype.l,h.prototype.toNumber=h.prototype.m,h.prototype.getBits=h.prototype.i,h.fromNumber=u,h.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=u(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=u(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(u(o));return i},gm=h}).apply(void 0!==Sm?Sm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,R="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var P=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Am&&Am];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=P;t=t.split(".");for(var i=0;i<t.length-1;i++){var U=t[i];if(!(U in n))break e;n=n[U]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&R(n,t,{configurable:!0,writable:!0,value:r})}var V=V||{},D=this||self;function q(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function h(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function j(e,t,r){return e.call.apply(e.bind,arguments)}function B(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function m(e,t,r){return(m=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?j:B).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function K(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function W(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(q(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function x(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=D.navigator;return(e=e&&e.userAgent)||""}function H(e){return H[" "](e),e}H[" "]=function(){};var G=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function $(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function Q(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var X=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=X.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=D.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=X;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function u(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}u.prototype.s=!1,u.prototype.ma=function(){this.s||(this.s=!0,this.N())},u.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(G){e:{try{H(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},p=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function he(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ue(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ue(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function pe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=we(n);return t&&t[p]?t.L(r,n,h(i)?!!i.capture:!!i,s):fe(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)pe(e,t[s],r,n,i);return null}return r=we(r),e&&e[p]?e.K(t,r,h(n)?!!n.capture:!!n,i):fe(e,t,r,!1,n,i)}function fe(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=h(i)?!!i.capture:!!i,o=_e(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ve;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(me(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ge(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[p]?he(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(me(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=_e(t))?(he(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function me(e){return e in de?de[e]:de[e]="on"+e}function ve(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ge(e),r.call(n,t))}function _e(e){return(e=e[ce])instanceof le?e:null}var ye="__closure_events_fn_"+(1e9*Math.random()>>>0);function we(t){return"function"==typeof t?t:(t[ye]||(t[ye]=function(e){return t.handleEvent(e)}),t[ye])}function f(){u.call(this),this.i=new le(this),(this.M=this).F=null}function g(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,J(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&he(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=m(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:D.setTimeout(e,t||0)}s(f,u),f.prototype[p]=!0,f.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=h(i)?!!i.capture:!!i,n=we(n),t&&t[p]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=ue(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&_e(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ue(r,n,i,s):t)?r[t]:null)&&ge(n)}(this,e,t,r,n)},f.prototype.N=function(){if(f.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},f.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},f.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends u{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(D.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function v(e){u.call(this),this.h=e,this.g={}}s(v,u);var Ee=[];function Ce(e){$(e.g,function(e,t){this.g.hasOwnProperty(t)&&ge(e)},e),e.g={}}v.prototype.N=function(){v.aa.N.call(this),Ce(this)},v.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var ke=D.JSON.stringify,Se=D.JSON.parse,Ae=class{stringify(e){return D.JSON.stringify(e,void 0)}parse(e){return D.JSON.parse(e,void 0)}};function Ne(){}function Re(e){return e.h||(e.h=e.i())}function Pe(){}Ne.prototype.h=null;var De={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function xe(){c.call(this,"d")}function Oe(){c.call(this,"c")}s(xe,c),s(Oe,c);var _={},Me=null;function Le(){return Me=Me||new f}function Fe(e){c.call(this,_.La,e)}function Ue(){var e=Le();g(e,new Fe(e))}function Ve(e,t){c.call(this,_.STAT_EVENT,e),this.stat=t}function O(e){var t=Le();g(t,new Ve(t,e))}function qe(e,t){c.call(this,_.Ma,e),this.size=t}function je(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return D.setTimeout(function(){e()},t)}function Be(){this.g=!0}function M(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return ke(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}_.La="serverreachability",s(Fe,c),_.STAT_EVENT="statevent",s(Ve,c),_.Ma="timingevent",s(qe,c),Be.prototype.xa=function(){this.g=!1},Be.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ke={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function We(){}function y(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new v(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new He}function He(){this.i=null,this.g="",this.h=!1}s(We,Ne),We.prototype.g=function(){return new XMLHttpRequest},We.prototype.i=function(){return{}};var Ge=new We,$e={},Qe={};function Ye(e,t,r){e.L=1,e.v=vt(b(t)),e.m=r,e.P=!0,Je(e,null)}function Je(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Rt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new He,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(m(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,h,u,c,s=0;s<i.length;s++){var d=pe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?Q(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Ue(),a=e.i,o=e.u,l=e.A,h=e.l,u=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+h+") [attempt "+u+"]: "+o+"\n"+l+"\n"+e})}function Xe(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=je(m(e.ba,e),t)}function tt(e){e.B&&(D.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function L(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Ce(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&<(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),O(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=je(m(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else S(r,11)}else if(!e.K&&r.g!=e||ar(r),!x(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,u,c,d,p,f,g=i[t];r.T=g[0],g=g[1],2==r.G?"c"==g[0]?(r.K=g[1],r.ia=g[2],null!=(s=g[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=g[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(u=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(u.j=u.l,u.g=new Set,u.h&&(ht(u,u.h),u.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=ur(n,n.J?n.ia:null,n.W),d.K?(ut(n.h,d),p=d,(f=n.L)&&(p.I=f),p.B&&(tt(p),Ze(p)),n.g=d):rr(n),0<r.i.length&&Xt(r)):"stop"!=g[0]&&"close"!=g[0]||S(r,7):3==r.G&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?S(r,7):Qt(r):"noop"!=g[0]&&r.l&&r.l.ta(g),r.v=0)}Ue()}catch(e){}}y.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},y.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Ht(this.g)))){this.J||4!=t||7==r||Ue(),tt(this);var n=this.g.Z();this.X=n;t:if(Xe(this)){var i=Ht(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){L(this),rt(this);var o="";break t}this.h.i=new D.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,C=this.i,k=this.u,S=this.A,A=this.l,N=this.R,R=t,P=n,C.info(function(){return"XMLHTTP RESP ("+A+") [ attempt "+N+"]: "+k+"\n"+S+"\n"+R+" "+P}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,h=this.g;if((l=h.g?h.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!x(l)){var u=l;break t}}u=null}if(!(n=u)){this.o=!1,this.s=3,O(12),L(this),rt(this);break e}M(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?Qe:(T=Number(I.substring(T,E)),isNaN(T)?$e:(E+=1)+T>I.length?Qe:(I=I.slice(E,E+T),b.C=E+T,I)))==Qe){4==t&&(this.s=4,O(14),n=!1),M(this.i,this.l,null,"[Incomplete Response]");break}if(c==$e){this.s=4,O(15),M(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}M(this.i,this.l,c,null),nt(this,c)}Xe(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,O(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,O(11)):(M(this.i,this.l,o,"[Invalid Chunked Response]"),L(this),rt(this))}else M(this.i,this.l,o,null),nt(this,o);4==t&&L(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var p=this.g;var f,g,m,v={};p=(p.g&&2<=F(p)&&p.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<p.length;e++)x(p[e])||(f=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(p[e]),g=f[0],"string"==typeof(f=f[1])&&(f=f.trim(),m=v[g]||[],(v[g]=m).push(f)));var _,y=v,w=function(e){return e.join(", ")};for(_ in y)w.call(void 0,y[_],_,y)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,O(12)):(this.s=0,O(13)),L(this),rt(this)}}}}catch(e){}var b,I,T,E,C,k,S,A,N,R,P},y.prototype.cancel=function(){this.J=!0,L(this)},y.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Ue(),O(17)),L(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=D.PerformanceNavigationTiming?0<(e=D.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(D.chrome&&D.chrome.loadTimes&&D.chrome.loadTimes()&&D.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ht(e,t){e.g?e.g.add(t):e.h=t}function ut(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return K(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(q(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(q(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(q(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var pt=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function w(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof w?(this.h=e.h,ft(this,e.j),this.o=e.o,this.g=e.g,gt(this,e.s),this.l=e.l,t=e.i,(r=new St).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),mt(this,r),this.m=e.m):e&&(t=String(e).match(pt))?(this.h=!1,ft(this,t[1]||"",!0),this.o=_t(t[2]||""),this.g=_t(t[3]||"",!0),gt(this,t[4]),this.l=_t(t[5]||"",!0),mt(this,t[6]||"",!0),this.m=_t(t[7]||"")):(this.h=!1,this.i=new St(null,this.h))}function b(e){return new w(e)}function ft(e,t,r){e.j=r?_t(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function gt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function mt(e,t,r){var n,i;t instanceof St?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(At(this,t),Rt(this,r,e))},n)),n.j=i):(r||(t=yt(t,Ct)),e.i=new St(t,e.h))}function I(e,t,r){e.i.set(t,r)}function vt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function _t(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function yt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,wt),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function wt(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}w.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(yt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(yt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(yt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",yt(r,kt)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,Ct=/[#\?@]/g,kt=/#/g;function St(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function At(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Nt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Rt(e,t,r){At(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),K(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function C(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function Pt(){this.g=new Ae}function Dt(e){this.l=e.Ub||null,this.j=e.eb||!1}function xt(e,t){f.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Ot(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Mt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Lt(e)}function Lt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return $(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Ut(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function k(e){f.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=St.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Nt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Nt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Dt,Ne),Dt.prototype.g=function(){return new xt(this.l,this.j)},Dt.prototype.i=(bt={},function(){return bt}),s(xt,f),(e=xt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Lt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||D).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Lt(this)),this.g)&&(this.readyState=3,Lt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==D.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Ot(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Mt:Lt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Mt(this))},e.Qa=function(e){this.g&&(this.response=e,Mt(this))},e.ga=function(){this.g&&Mt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(xt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(k,f);var Vt=/^https?$/i,qt=["POST","PUT"];function jt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,Bt(e),Kt(e)}function Bt(e){e.A||(e.A=!0,g(e,"complete"),g(e,"error"))}function zt(e){if(e.h&&void 0!==V&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(g(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(pt)[1]||null)&&D.self&&D.self.location&&(n=D.self.location.protocol.slice(0,-1)),r=!Vt.test(n?n.toLowerCase():"")),t=r),t)g(e,"complete"),g(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",Bt(e)}}finally{Kt(e)}}}function Kt(e,t){if(e.g){Wt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||g(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Wt(e){e.I&&(D.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Ht(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Gt(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function $t(e){this.Aa=0,this.i=[],this.j=new Be,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Gt("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Gt("baseRetryDelayMs",5e3,e),this.cb=Gt("retryDelaySeedMs",1e4,e),this.Wa=Gt("forwardChannelMaxRetries",2,e),this.wa=Gt("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new Pt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Qt(e){if(Jt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new y(e,e.j,t)).L=2,t.v=vt(b(r)),r=!1,D.navigator&&D.navigator.sendBeacon)try{r=D.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&D.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}hr(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Jt(e){Yt(e),e.u&&(D.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&D.clearTimeout(e.s),e.s=null)}function Xt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Ut(n,e.m,e.o),r=new y(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ht(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&$(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?m(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;h(e)&&(r=ke(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=je(m(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(D.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new y(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Ut(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=vt(b(t)),r.m=null,r.P=!0,Je(r,e)}function ar(e){null!=e.C&&(D.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ut(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,g(a=Le(),new qe(a,s)),Xt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=je(m(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:S(e,5);break;case 4:S(e,10);break;case 3:S(e,6);break;default:S(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function S(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=m(e.fb,e),n=!(i=e.Xa),i=new w(i||"//www.google.com/images/cleardot.gif"),D.location&&"http"==D.location.protocol||ft(i,"https"),vt(i),(n?(t,r)=>{var n=new Be;if(D.Image){let e=new Image;e.onload=z(C,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(C,n,"TestLoadImage: error",!1,r,e),e.onabort=z(C,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(C,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new Be,n=new AbortController,i=setTimeout(()=>{n.abort(),C(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?C(r,0,!0,t):C(r,0,!1,t)}).catch(()=>{clearTimeout(i),C(r,0,!1,t)})})(i.toString(),r)):O(2),e.G=0,e.l&&e.l.sa(t),hr(e),Jt(e)}function hr(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(W(e.ka,t),W(e.ka,e.i),e.h.i.length=0,K(e.i),e.i.length=0),e.l.ra())}function ur(e,t,r){var n,i,s=r instanceof w?b(r):new w(r);return""!=s.g?(t&&(s.g=t+"."+s.g),gt(s,s.s)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new w(null),s&&ft(i,s),t&&(i.g=t),n&>(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new k(new Dt({eb:r})):new k(e.pa)).Ha(e.J),t}function dr(){}function pr(){}function A(e,t){f.call(this),this.g=new $t(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!x(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!x(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new N(this)}function fr(e){xe.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function gr(){Oe.call(this),this.status=1}function N(e){this.g=e}(e=k.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||Ge).g(),this.v=this.o?Re(this.o):Re(Ge),this.g.onreadystatechange=m(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void jt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(qt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Wt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){jt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,g(this,"complete"),g(this,"abort"),Kt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Kt(this,!0)),k.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Se(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=$t.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){O(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=ur(this,null,this.W),Xt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new y(this,this.j,t);let e=this.o;if(this.S&&(e?J(e=Q(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Ut(i,this.m,e)),ht(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=je(m(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,O(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),O(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),O(2)):(this.j.info("Failed to ping google.com"),O(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},pr.prototype.g=function(e,t){return new A(e,t)},s(A,f),A.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},A.prototype.close=function(){Qt(this.g)},A.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=ke(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Xt(r)},A.prototype.N=function(){this.g.l=null,delete this.j,Qt(this.g),delete this.g,A.aa.N.call(this)},s(fr,xe),s(gr,Oe),s(N,dr),N.prototype.ua=function(){g(this.g,"a")},N.prototype.ta=function(e){g(this.g,new fr(e))},N.prototype.sa=function(e){g(this.g,new gr)},N.prototype.ra=function(){g(this.g,"b")},pr.prototype.createWebChannel=pr.prototype.g,A.prototype.send=A.prototype.o,A.prototype.open=A.prototype.m,Em=function(){return new pr},Tm=Le,Im=_,bm={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,wm=ze,Ke.COMPLETE="complete",ym=Ke,(Pe.EventType=De).OPEN="a",De.CLOSE="b",De.ERROR="c",De.MESSAGE="d",f.prototype.listen=f.prototype.K,_m=Pe,k.prototype.listenOnce=k.prototype.L,k.prototype.getLastError=k.prototype.Ka,k.prototype.getLastErrorCode=k.prototype.Ba,k.prototype.getStatus=k.prototype.Z,k.prototype.getResponseJson=k.prototype.Oa,k.prototype.getResponseText=k.prototype.oa,k.prototype.send=k.prototype.ea,k.prototype.setWithCredentials=k.prototype.Ha,vm=k}).apply(void 0!==Am?Am:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Nm="@firebase/firestore";class Rm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Rm.UNAUTHENTICATED=new Rm(null),Rm.GOOGLE_CREDENTIALS=new Rm("google-credentials-uid"),Rm.FIRST_PARTY=new Rm("first-party-uid"),Rm.MOCK_USER=new Rm("mock-user");let Pm="11.8.1",Dm=new tt("@firebase/firestore");function xm(){return Dm.logLevel}function C(e,...t){var r;Dm.logLevel<=c.DEBUG&&(r=t.map(Lm),Dm.debug(`Firestore (${Pm}): `+e,...r))}function Om(e,...t){var r;Dm.logLevel<=c.ERROR&&(r=t.map(Lm),Dm.error(`Firestore (${Pm}): `+e,...r))}function Mm(e,...t){var r;Dm.logLevel<=c.WARN&&(r=t.map(Lm),Dm.warn(`Firestore (${Pm}): `+e,...r))}function Lm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function k(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Fm(e,n,r)}function Fm(e,t,r){let n=`FIRESTORE (${Pm}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Om(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Fm(t,i,n)}let A={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 N extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Um{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class Vm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class qm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Rm.UNAUTHENTICATED))}shutdown(){}}class jm{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class Bm{constructor(e){this.t=e,this.currentUser=Rm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Um,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Um,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{C("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(C("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Um))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(C("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new Vm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new Rm(e)}}class zm{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=Rm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Km{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new zm(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(Rm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Wm{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Hm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&C("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,C("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{C("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):C("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Wm(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new Wm(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Gm(){return new TextEncoder}class $m{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function R(e,t){return e<t?-1:t<e?1:0}function Qm(e,t){let r=0;for(;r<e.length&&r<t.length;){var n,i=e.codePointAt(r),s=t.codePointAt(r);if(i!==s)return!(i<128&&s<128)&&0!==(n=((e,t)=>{for(let r=0;r<e.length&&r<t.length;++r)if(e[r]!==t[r])return R(e[r],t[r]);return R(e.length,t.length)})((n=Gm()).encode(Ym(e,r)),n.encode(Ym(t,r))))?n:R(i,s);r+=65535<i?2:1}return R(e.length,t.length)}function Ym(e,t){return 65535<e.codePointAt(t)?e.substring(t,t+2):e.substring(t,t+1)}function Jm(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Xm(e){return e+"\0"}let Zm=-62135596800;class ev{static now(){return ev.fromMillis(Date.now())}static fromDate(e){return ev.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new ev(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new N(A.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new N(A.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<Zm)throw new N(A.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new N(A.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?R(this.nanoseconds,e.nanoseconds):R(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds-Zm;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class P{static fromTimestamp(e){return new P(e)}static min(){return new P(new ev(0,0))}static max(){return new P(new ev(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let tv="__name__";class rv{constructor(e,t,r){void 0===t?t=0:t>e.length&&k(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&k(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===rv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof rv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=rv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return R(t.length,r.length)}static compareSegments(e,t){var r=rv.isNumericId(e),n=rv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?rv.extractNumericId(e).compare(rv.extractNumericId(t)):Qm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return gm.fromString(e.substring(4,e.length-2))}}class D extends rv{construct(e,t,r){return new D(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new N(A.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new D(r)}static emptyPath(){return new D([])}}let nv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class iv extends rv{construct(e,t,r){return new iv(e,t,r)}static isValidIdentifier(e){return nv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=iv.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===tv}static keyField(){return new iv([tv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new N(A.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new N(A.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new N(A.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new N(A.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new iv(e)}static emptyPath(){return new iv([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(D.fromString(e))}static fromName(e){return new x(D.fromString(e).popFirst(5))}static empty(){return new x(D.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===D.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return D.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new D(e.slice()))}}let sv=-1;class av{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function ov(e){return e.fields.find(e=>2===e.kind)}function lv(e){return e.fields.filter(e=>2!==e.kind)}av.UNKNOWN_ID=-1;class hv{constructor(e,t){this.fieldPath=e,this.kind=t}}class uv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new uv(0,pv.min())}}function cv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=P.fromTimestamp(1e9===n?new ev(r+1,0):new ev(r,n));return new pv(r,x.empty(),t)}function dv(e){return new pv(e.readTime,e.key,sv)}class pv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new pv(P.min(),x.empty(),sv)}static max(){return new pv(P.max(),x.empty(),sv)}}function fv(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:R(e.largestBatchId,t.largestBatchId)}let gv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class mv{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function vv(e){if(e.code!==A.FAILED_PRECONDITION||e.message!==gv)throw e;C("LocalStore","Unexpectedly lost primary lease")}class O{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&k(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new O((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof O?t:O.resolve(t)}catch(e){return O.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):O.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):O.reject(t)}static resolve(r){return new O((e,t)=>{e(r)})}static reject(r){return new O((e,t)=>{t(r)})}static waitFor(e){return new O((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=O.resolve(!1);for(let r of e)t=t.next(e=>e?O.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new O((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new O((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let _v="SimpleDb";class yv{static open(e,t,r,n){try{return new yv(t,e.transaction(n,r))}catch(e){throw new Tv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Um,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new Tv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=Av(e.target.error);this.S.reject(new Tv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(C(_v,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}v(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Cv(t)}}class wv{static delete(e){return C(_v,"Removing database:",e),kv(H().indexedDB.deleteDatabase(e)).toPromise()}static C(){var e,t,r;return!(!me()||!wv.F()&&(e=ae(),t=0<(t=wv.M(e))&&t<10,r=0<(r=bv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){var e;return"undefined"!=typeof process&&"YES"===(null==(e=process.__PRIVATE_env)?void 0:e.O)}static N(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.B=r,this.L=null,12.2===wv.M(ae())&&Om("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async k(s){return this.db||(C(_v,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new Tv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new N(A.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new N(A.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new Tv(s,t))},i.onupgradeneeded=e=>{C(_v,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;if(null!==this.L&&this.L!==e.oldVersion)throw new Error(`refusing to open IndexedDB database due to potential corruption of the IndexedDB database data; this corruption could be caused by clicking the "clear site data" button in a web browser; try reloading the web page to re-initialize the IndexedDB database: lastClosedDbVersion=${this.L}, event.oldVersion=${e.oldVersion}, event.newVersion=${e.newVersion}, db.version=`+t.version);this.B.q(t,i.transaction,e.oldVersion,this.version).next(()=>{C(_v,"Database upgrade to version "+this.version+" complete")})}}),this.db.addEventListener("close",e=>{var t=e.target;this.L=t.version},{passive:!0})),this.$&&(this.db.onversionchange=e=>this.$(e)),this.db}U(t){this.$=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.k(r);let t=yv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.v(),e)).catch(e=>(t.abort(e),O.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(C(_v,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function bv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Iv{constructor(e){this.K=e,this.W=!1,this.G=null}get isDone(){return this.W}get j(){return this.G}set cursor(e){this.K=e}done(){this.W=!0}H(e){this.G=e}delete(){return kv(this.K.delete())}}class Tv extends N{constructor(e,t){super(A.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Ev(e){return"IndexedDbTransactionError"===e.name}class Cv{constructor(e){this.store=e}put(e,t){let r;return kv(r=void 0!==t?(C(_v,"PUT",this.store.name,e,t),this.store.put(t,e)):(C(_v,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return C(_v,"ADD",this.store.name,e,e),kv(this.store.add(e))}get(t){return kv(this.store.get(t)).next(e=>(void 0===e&&(e=null),C(_v,"GET",this.store.name,t,e),e))}delete(e){return C(_v,"DELETE",this.store.name,e),kv(this.store.delete(e))}count(){return C(_v,"COUNT",this.store.name),kv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new O((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.Y(e,(e,t)=>{r.push(t)}).next(()=>r)}}Z(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new O((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}X(e,t){C(_v,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.ee=!1,this.cursor(r));return this.Y(r,(e,t,r)=>r.delete())}te(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.Y(n,t)}ne(i){let e=this.cursor({});return new O((r,n)=>{e.onerror=e=>{var t=Av(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}Y(e,s){let a=[];return new O((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Iv(n),r=s(n.primaryKey,n.value,t);if(r instanceof O){let e=r.catch(e=>(t.done(),O.reject(e)));a.push(e)}t.isDone?i():null===t.j?n.continue():n.continue(t.j)}else i()}}).next(()=>O.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.ee?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function kv(e){return new O((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=Av(e.target.error);n(t)}})}let Sv=!1;function Av(e){let t=wv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new N("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Sv||(Sv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Nv="IndexBackfiller";class Rv{constructor(e,t){this.asyncQueue=e,this.re=t,this.task=null}start(){this.ie(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ie(e){C(Nv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.re.se();C(Nv,"Documents written: "+e)}catch(e){Ev(e)?C(Nv,"Ignoring IndexedDB error during index backfill: ",e):await vv(e)}await this.ie(6e4)})}}class Pv{constructor(e,t){this.localStore=e,this.persistence=t}async se(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.oe(e,t))}oe(e,t){let r=new Set,n=t,i=!0;return O.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return C(Nv,"Processing collection: "+t),this._e(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}_e(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this.ae(r,e)).next(e=>(C(Nv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}ae(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=dv(t);0<fv(r,n)&&(n=r)}),new pv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class Dv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ue(e),this.ce=e=>t.writeSequenceNumber(e))}ue(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ce&&this.ce(e),e}}let xv=Dv.le=-1;function Ov(e){return null==e}function Mv(e){return 0===e&&1/e==-1/0}function Lv(e){return"number"==typeof e&&Number.isInteger(e)&&!Mv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Fv="";function Uv(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Vv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Fv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Vv(t)}function Vv(e){return e+Fv+""}function qv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Fv&&""===r.charAt(1),56145,{path:r}),D.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Fv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&k(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:k(61167,{path:r})}a=t+2}return new D(n)}let jv="remoteDocuments",Bv="owner",zv="owner",Kv="mutationQueues",Wv="mutations",Hv="batchId",Gv="userMutationsIndex",$v=["userId","batchId"];function Qv(e,t){return[e,Uv(t)]}function Yv(e,t,r){return[e,Uv(t),r]}let Jv={},Xv="documentMutations",Zv="remoteDocumentsV14",e_=["prefixPath","collectionGroup","readTime","documentId"],t_="documentKeyIndex",r_=["prefixPath","collectionGroup","documentId"],n_="collectionGroupIndex",i_=["collectionGroup","readTime","prefixPath","documentId"],s_="remoteDocumentGlobal",a_="remoteDocumentGlobalKey",o_="targets",l_="queryTargetsIndex",h_=["canonicalId","targetId"],u_="targetDocuments",c_=["targetId","path"],d_="documentTargetsIndex",p_=["path","targetId"],f_="targetGlobalKey",g_="targetGlobal",m_="collectionParents",v_=["collectionId","parent"],__="clientMetadata",y_="bundles",w_="namedQueries",b_="indexConfiguration",I_="collectionGroupIndex",T_="indexState",E_=["indexId","uid"],C_="sequenceNumberIndex",k_=["uid","sequenceNumber"],S_="indexEntries",A_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],N_="documentKeyIndex",R_=["indexId","uid","orderedDocumentKey"],P_="documentOverlays",D_=["userId","collectionPath","documentId"],x_="collectionPathOverlayIndex",O_=["userId","collectionPath","largestBatchId"],M_="collectionGroupOverlayIndex",L_=["userId","collectionGroup","largestBatchId"],F_="globals",U_=[Kv,Wv,Xv,jv,o_,Bv,g_,u_,__,s_,m_,y_,w_],V_=[...U_,P_],q_=[Kv,Wv,Xv,Zv,o_,Bv,g_,u_,__,s_,m_,y_,w_,P_],j_=q_,B_=[...j_,b_,T_,S_],z_=B_,K_=[...B_,F_],W_=K_;class H_ extends mv{constructor(e,t){super(),this.he=e,this.currentSequenceNumber=t}}function G_(e,t){var r=e;return wv.N(r.he,t)}function $_(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Q_(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Y_(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class M{constructor(e,t){this.comparator=e,this.root=t||X_.EMPTY}insert(e,t){return new M(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,X_.BLACK,null,null))}remove(e){return new M(this.comparator,this.root.remove(e,this.comparator).copy(null,null,X_.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new J_(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new J_(this.root,e,this.comparator,!1)}getReverseIterator(){return new J_(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new J_(this.root,e,this.comparator,!0)}}class J_{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class X_{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:X_.RED,this.left=null!=n?n:X_.EMPTY,this.right=null!=i?i:X_.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new X_(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return X_.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return X_.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,X_.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,X_.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw k(43730,{key:this.key,value:this.value});if(this.right.isRed())throw k(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw k(27949);return e+(this.isRed()?0:1)}}X_.EMPTY=null,X_.RED=!0,X_.BLACK=!1,X_.EMPTY=new class{constructor(){this.size=0}get key(){throw k(57766)}get value(){throw k(16141)}get color(){throw k(16727)}get left(){throw k(29726)}get right(){throw k(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new X_(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new M(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Z_(this.data.getIterator())}getIteratorFrom(e){return new Z_(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class Z_{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function ey(e){return e.hasNext()?e.getNext():void 0}class ty{constructor(e){(this.fields=e).sort(iv.comparator)}static empty(){return new ty([])}unionWith(e){let t=new L(iv.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new ty(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Jm(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class ry extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class ny{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new ry("Invalid base64 string: "+e):e}})(e);return new ny(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new ny(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return R(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}ny.EMPTY_BYTE_STRING=new ny("");let iy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function sy(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:ay(t.seconds),nanos:ay(t.nanos)};{let e=0;var r=iy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function ay(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function oy(e){return"string"==typeof e?ny.fromBase64String(e):ny.fromUint8Array(e)}let ly="server_timestamp",hy="__type__",uy="__previous_value__",cy="__local_write_time__";function dy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[hy])?void 0:t.stringValue)===ly}function py(e){var t=e.mapValue.fields[uy];return dy(t)?py(t):t}function fy(e){var t=sy(e.mapValue.fields[cy].timestampValue);return new ev(t.seconds,t.nanos)}class gy{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let my="(default)";class vy{constructor(e,t){this.projectId=e,this.database=t||my}static empty(){return new vy("","")}get isDefaultDatabase(){return this.database===my}isEqual(e){return e instanceof vy&&e.projectId===this.projectId&&e.database===this.database}}let _y="__type__",yy="__max__",wy={mapValue:{fields:{__type__:{stringValue:yy}}}},by="__vector__",Iy="value",Ty={nullValue:"NULL_VALUE"};function Ey(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?dy(e)?4:Vy(e)?9007199254740991:Fy(e)?10:11:k(28295,{value:e})}function Cy(t,r){if(t===r)return!0;var n,i,s,a,o,e=Ey(t);if(e!==Ey(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return fy(t).isEqual(fy(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=sy(i.timestampValue),o=sy(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,oy(t.bytesValue).isEqual(oy(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,ay((n=t).geoPointValue.latitude)===ay(s.geoPointValue.latitude)&&ay(n.geoPointValue.longitude)===ay(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?ay(h.integerValue)===ay(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=ay(h.doubleValue))===(o=ay(n.doubleValue))?Mv(a)===Mv(o):isNaN(a)&&isNaN(o));case 9:return Jm(t.arrayValue.values||[],r.arrayValue.values||[],Cy);case 10:case 11:var l=t,h=r,u=l.mapValue.fields||{},c=h.mapValue.fields||{};if($_(u)!==$_(c))return!1;for(let e in u)if(u.hasOwnProperty(e)&&(void 0===c[e]||!Cy(u[e],c[e])))return!1;return!0;default:return k(52216,{left:t})}}function ky(e,t){return void 0!==(e.values||[]).find(e=>Cy(e,t))}function Sy(e,n){if(e===n)return 0;var i,s,a,o,l,h,u,c,d=Ey(e),t=Ey(n);if(d!==t)return R(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return R(e.booleanValue,n.booleanValue);case 2:return h=n,u=ay((l=e).integerValue||l.doubleValue),c=ay(h.integerValue||h.doubleValue),u<c?-1:c<u?1:u===c?0:isNaN(u)?isNaN(c)?0:-1:1;case 3:return Ay(e.timestampValue,n.timestampValue);case 4:return Ay(fy(e),fy(n));case 5:return Qm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,u=oy(l),c=oy(h),u.compareTo(c);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=R(g[t],m[t]);if(0!==e)return e}return R(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=R(ay(p.latitude),ay(f.latitude)))?o:R(ay(p.longitude),ay(f.longitude));case 9:return Ny(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=null==(o=o[Iy])?void 0:o.arrayValue,s=null==(s=s[Iy])?void 0:s.arrayValue,0!==(a=R((null==(a=null==o?void 0:o.values)?void 0:a.length)||0,(null==(a=null==s?void 0:s.values)?void 0:a.length)||0))?a:Ny(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===wy.mapValue&&_===wy.mapValue)return 0;if(v===wy.mapValue)return 1;if(_===wy.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Qm(w[r],I[r]);if(0!==e)return e;var T=Sy(y[w[r]],b[I[r]]);if(0!==T)return T}return R(w.length,I.length);default:throw k(23264,{Pe:d})}}function Ay(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?R(e,t):(r=sy(e),n=sy(t),0!==(i=R(r.seconds,n.seconds))?i:R(r.nanos,n.nanos))}function Ny(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Sy(r[i],n[i]);if(e)return e}return R(r.length,n.length)}function Ry(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=sy(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>oy(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):k(61005,{value:e})}(e)}function Py(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function Dy(e){return!!e&&"integerValue"in e}function xy(e){return!!e&&"arrayValue"in e}function Oy(e){return e&&"nullValue"in e}function My(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Ly(e){return e&&"mapValue"in e}function Fy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[_y])?void 0:t.stringValue)===by}function Uy(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){let r={mapValue:{fields:{}}};return Q_(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Uy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Uy(t.arrayValue.values[e]);return r}return Object.assign({},t)}function Vy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===yy}let qy={mapValue:{fields:{[_y]:{stringValue:by},[Iy]:{arrayValue:{}}}}};function jy(e,t){var r=Sy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function By(e,t){var r=Sy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class zy{constructor(e){this.value=e}static empty(){return new zy({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Ly(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Uy(t)}setAll(e){let r=iv.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Uy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Ly(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Cy(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Ly(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Q_(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new zy(Uy(this.value))}}class Ky{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new Ky(e,0,P.min(),P.min(),P.min(),zy.empty(),0)}static newFoundDocument(e,t,r,n){return new Ky(e,1,t,P.min(),r,n,0)}static newNoDocument(e,t){return new Ky(e,2,t,P.min(),P.min(),zy.empty(),0)}static newUnknownDocument(e,t){return new Ky(e,3,t,P.min(),P.min(),zy.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(P.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=zy.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=zy.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=P.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof Ky&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new Ky(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}})`}}class Wy{constructor(e,t){this.position=e,this.inclusive=t}}function Hy(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):Sy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Gy(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Cy(e.position[r],t.position[r]))return!1;return!0}class $y{constructor(e,t="asc"){this.field=e,this.dir=t}}class Qy{}class F extends Qy{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new rw(e,t,r):"array-contains"===t?new aw(e,r):"in"===t?new ow(e,r):"not-in"===t?new lw(e,r):"array-contains-any"===t?new hw(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?nw:iw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Sy(t,this.value)):null!==t&&Ey(this.value)===Ey(t)&&this.matchesComparison(Sy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return k(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends Qy{constructor(e,t){super(),this.filters=e,this.op=t,this.Te=null}static create(e,t){return new U(e,t)}matches(t){return Yy(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Te&&(this.Te=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Te}getFilters(){return Object.assign([],this.filters)}}function Yy(e){return"and"===e.op}function Jy(e){return"or"===e.op}function Xy(e){return Zy(e)&&Yy(e)}function Zy(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function ew(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function tw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+Ry(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(tw).join(" ,")+"}":"Filter";var t}class rw extends F{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class nw extends F{constructor(e,t){super(e,"in",t),this.keys=sw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class iw extends F{constructor(e,t){super(e,"not-in",t),this.keys=sw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function sw(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>x.fromName(e.referenceValue))}class aw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return xy(t)&&ky(t.arrayValue,this.value)}}class ow extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&ky(this.value.arrayValue,t)}}class lw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!ky(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!ky(this.value.arrayValue,t)}}class hw extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!xy(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>ky(this.value.arrayValue,e))}}class uw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Ie=null}}function cw(e,t=null,r=[],n=[],i=null,s=null,a=null){return new uw(e,t,r,n,i,s,a)}function dw(e){var t=e;if(null===t.Ie){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+Ry(e.value):Xy(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Ov(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>Ry(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>Ry(e)).join(",")),t.Ie=e}return t.Ie}function pw(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Cy(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void k(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Gy(e.startAt,t.startAt)&&Gy(e.endAt,t.endAt)}function fw(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function gw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function mw(e,r,n){let i=Ty,s=!0;for(let n of gw(e,r)){let e=Ty,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Ty:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Py(vy.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Fy(a)?qy:{mapValue:{}}:k(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Ty}jy({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];jy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function vw(e,r,n){let i=wy,s=!0;for(let n of gw(e,r)){let e=wy,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Py(vy.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?qy:"mapValue"in a?Fy(a)?{mapValue:{}}:wy:k(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=wy}0<By({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<By({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class _w{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ee=null,this.de=null,this.Ae=null,this.startAt,this.endAt}}function yw(e,t,r,n,i,s,a,o){return new _w(e,t,r,n,i,s,a,o)}function ww(e){return new _w(e)}function bw(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function Iw(e){return null!==e.collectionGroup}function Tw(e){let n=e;if(null===n.Ee){n.Ee=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ee.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(iv.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ee.push(new $y(e,r))}),t.has(iv.keyField().canonicalString())||n.Ee.push(new $y(iv.keyField(),r))}return n.Ee}function Ew(e){var t=e;return t.de||(t.de=((e,t)=>{if("F"===e.limitType)return cw(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new $y(e.field,t)});var r=e.endAt?new Wy(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new Wy(e.startAt.position,e.startAt.inclusive):null;return cw(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Tw(e))),t.de}function Cw(e,t){var r=e.filters.concat([t]);return new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function kw(e,t,r){return new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Sw(e,t){return pw(Ew(e),Ew(t))&&e.limitType===t.limitType}function Aw(e){return dw(Ew(e))+"|lt:"+e.limitType}function Nw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>tw(e)).join(", ")}]`),Ov(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>Ry(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>Ry(e)).join(","):t})`})(Ew(e))}; limitType=${e.limitType})`}function Rw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Tw(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Tw(s),i=Hy(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Tw(s),i=Hy(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Pw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Dw(e){return(t,r)=>{let n=!1;for(var i of Tw(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Sy(n,i):k(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return k(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class xw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){Q_(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Y_(this.inner)}size(){return this.innerSize}}let Ow=new M(x.comparator);let Mw=new M(x.comparator);function Lw(...e){let t=Mw;for(var r of e)t=t.insert(r.key,r);return t}function Fw(e){let r=Mw;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Uw(){return new xw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Vw=new M(x.comparator),qw=new L(x.comparator);function V(...e){let t=qw;for(var r of e)t=t.add(r);return t}let jw=new L(R);function Bw(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Mv(t)?"-0":t}}function zw(e){return{integerValue:""+e}}function Kw(e,t){return Lv(t)?zw(t):Bw(e,t)}class Ww{constructor(){this._=void 0}}function Hw(e,t){return e instanceof Xw?Dy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Gw extends Ww{}class $w extends Ww{constructor(e){super(),this.elements=e}}function Qw(e,t){var r=eb(t);for(let t of e.elements)r.some(e=>Cy(e,t))||r.push(t);return{arrayValue:{values:r}}}class Yw extends Ww{constructor(e){super(),this.elements=e}}function Jw(e,t){let r=eb(t);for(let t of e.elements)r=r.filter(e=>!Cy(e,t));return{arrayValue:{values:r}}}class Xw extends Ww{constructor(e,t){super(),this.serializer=e,this.Re=t}}function Zw(e){return ay(e.integerValue||e.doubleValue)}function eb(e){return xy(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class tb{constructor(e,t){this.field=e,this.transform=t}}class rb{constructor(e,t){this.version=e,this.transformResults=t}}class nb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new nb}static exists(e){return new nb(void 0,e)}static updateTime(e){return new nb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function ib(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class sb{}function ab(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new fb(e.key,nb.none()):new hb(e.key,e.data,nb.none());{var n,i=e.data,s=zy.empty();let t=new L(iv.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new ub(e.key,s,new ty(t.toArray()),nb.none())}}function ob(e,t,r,n){return e instanceof hb?(s=t,a=r,o=n,ib((i=e).precondition,s)?(l=i.value.clone(),h=pb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof ub?(i=t,o=r,s=n,ib((a=e).precondition,i)?(h=pb(a.fieldTransforms,s,i),(l=i.data).setAll(cb(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,ib(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function lb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Jm(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof $w&&t instanceof $w||e instanceof Yw&&t instanceof Yw?Jm(e.elements,t.elements,Cy):e instanceof Xw&&t instanceof Xw?Cy(e.Re,t.Re):e instanceof Gw&&t instanceof Gw)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class hb extends sb{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class ub extends sb{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function cb(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function db(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Ve:r.length,me:e.length});for(let u=0;u<r.length;u++){var o=e[u],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[u],n instanceof $w?Qw(n,i):n instanceof Yw?Jw(n,i):s))}return a}function pb(e,r,n){var i,s,a,o,l,h,u,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,u=h=l=void 0,s instanceof Gw?(o=o,h=a,u={fields:{[hy]:{stringValue:ly},[cy]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&dy(h)?py(h):h)&&(u.fields[uy]=h),{mapValue:u}):s instanceof $w?Qw(s,a):s instanceof Yw?Jw(s,a):(u=Hw(o=s,a),l=Zw(u)+Zw(o.Re),Dy(u)&&Dy(o.Re)?zw(l):Bw(o.serializer,l))))}return c}class fb extends sb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class gb extends sb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class mb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var u=this.mutations[c];u.key.isEqual(e.key)&&(r=u,n=e,i=h[c],l=u=o=a=s=void 0,r instanceof hb?(a=n,o=i,u=(s=r).value.clone(),l=db(s.fieldTransforms,a,o.transformResults),u.setAll(l),a.convertToFoundDocument(o.version,u).setHasCommittedMutations()):r instanceof ub?(s=n,a=i,ib((o=r).precondition,s)?(l=db(o.fieldTransforms,s,a.transformResults),(u=s.data).setAll(cb(o)),u.setAll(l),s.convertToFoundDocument(a.version,u).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=ob(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=ob(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Uw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=ab(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(P.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&Jm(this.mutations,e.mutations,(e,t)=>lb(e,t))&&Jm(this.baseMutations,e.baseMutations,(e,t)=>lb(e,t))}}class vb{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{fe:e.mutations.length,ge:r.length});let n=Vw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new vb(e,t,r,n)}}class _b{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
23
|
+
`)}let mi={error:"UNKNOWN_ERROR"};async function vi(e,t=!1,r=!1){var n,i=e.app;Yn(i);let s=zn(i),a=s.token,o=void 0;if(a&&!Ii(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ii(n)?a=n:await di(i,void 0)),!t&&a&&Ii(a))return{token:a.token};let l=!1;if(fi())try{s.exchangeTokenPromise||(s.exchangeTokenPromise=Zn(ei(i,await gi()),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0);var h=await s.exchangeTokenPromise;return await di(i,h),{token:(s.token=h).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),Ti(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await zn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),o=e}let u;return a?o?u=Ii(a)?{token:a.token,internalError:o}:Ti(o):(u={token:a.token},await di(i,s.token=a)):u=Ti(o),l&&bi(i,u),u}function _i(t,e,r,n){var i=t.app,i=zn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ii(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),wi(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>wi(t))}function yi(e,t){var r=zn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function wi(e){var t=e.app,t=zn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new Gn(async()=>{var e=zn(n);let t;if((t=e.token?await vi(r,!0):await vi(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=zn(n);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},Hn.RETRIAL_MIN_WAIT,Hn.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function bi(e,t){var r;for(r of zn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ii(e){return 0<e.expireTimeMillis-Date.now()}function Ti(e){return{token:(t=mi,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Ei{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=zn(this.app).tokenObservers;for(e of t)yi(this.app,e.next);return Promise.resolve()}}function Ci(t){return{getToken:e=>vi(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Yn(t),zn(t)).provider;return fi()?{token:t=(await Zn(ei(t,await gi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>_i(t,"INTERNAL",e),removeTokenListener:e=>yi(t.app,e)}}let ki="https://www.google.com/recaptcha/api.js",Si="https://www.google.com/recaptcha/enterprise.js";function Ai(t,r){let n=new Z;zn(t).reCAPTCHAState={initialized:n};let i=Pi(t);var e,s=Qn(!1);return s?Ri(t,r,s,i,n):(e=()=>{var e=Qn(!1);if(!e)throw new Error("no recaptcha");Ri(t,r,e,i,n)},(s=document.createElement("script")).src=ki,s.onload=e,document.head.appendChild(s)),n.promise}function Ni(t,r){let n=new Z;zn(t).reCAPTCHAState={initialized:n};let i=Pi(t);var e,s=Qn(!0);return s?Ri(t,r,s,i,n):(e=()=>{var e=Qn(!0);if(!e)throw new Error("no recaptcha");Ri(t,r,e,i,n)},(s=document.createElement("script")).src=Si,s.onload=e,document.head.appendChild(s)),n.promise}function Ri(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{zn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{zn(e).reCAPTCHAState.succeeded=!1}}),(r=zn(e)).reCAPTCHAState=Object.assign(Object.assign({},r.reCAPTCHAState),{widgetId:t}),o.resolve(s)})}function Pi(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function xi(n){Yn(n);let i=await zn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=zn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Di{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Fi(this._throttleData);var t,r=await xi(this._app).catch(e=>{throw $n.create("recaptcha-error")});if(null==(t=zn(this._app).reCAPTCHAState)||!t.succeeded)throw $n.create("recaptcha-error");let e;try{e=await Zn(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Kn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=Li(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),$n.create("initial-throttle",{time:Jn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Dt(e,"heartbeat"),Ai(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Di&&this._siteKey===e._siteKey}}class Oi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Fi(this._throttleData);var t,r=await xi(this._app).catch(e=>{throw $n.create("recaptcha-error")});if(null==(t=zn(this._app).reCAPTCHAState)||!t.succeeded)throw $n.create("recaptcha-error");let e;try{e=await Zn(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Kn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=Li(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),$n.create("initial-throttle",{time:Jn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Dt(e,"heartbeat"),Ni(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Oi&&this._siteKey===e._siteKey}}class Mi{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return Object.assign(Object.assign({},t),{issuedAtTimeMillis:r})}initialize(e){this._app=e}isEqual(e){return e instanceof Mi&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Li(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Fi(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw $n.create("throttled",{time:Jn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Ui(e=Bt(),r){var t=Dt(e=w(e),"app-check");if(jn.initialized||(i=H(),(n=jn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(pi())),fi()&&gi().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw $n.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(qn.set(e,t),qn.get(e)))(a,Object.assign({},Bn));t.activated=!0,t.provider=r,t.cachedTokenPromise=ci(a).then(e=>(e&&Ii(e)&&(t.token=e,bi(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&ui.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return zn(e).isTokenAutoRefreshEnabled&&_i(s,"INTERNAL",()=>{}),s}let Vi="app-check-internal";xt(new u("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Ei(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(Vi).initialize()})),xt(new u(Vi,e=>Ci(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),d("@firebase/app-check","0.10.0");let qi=new we("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class Bi{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Di(e):e instanceof Oi||e instanceof Di||e instanceof Mi?e:new Mi({getToken:e.getToken}),this._delegate=Ui(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw qi.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=zn(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await vi(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw qi.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),_i(i,"EXTERNAL",e,t),()=>yi(i.app,e)}throw qi.create("use-before-activation",{appName:this.app.name})}}let ji=e=>{var t=e.getProvider("app-compat").getImmediate();return new Bi(t)};function zi(e,t){var r={};for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r}lr.INTERNAL.registerComponent(new u("appCheck-compat",ji,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Oi,ReCaptchaV3Provider:Di,CustomProvider:Mi})),lr.registerVersion("@firebase/app-check-compat","0.3.25");let Ki={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Wi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Hi(){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."}}function Gi(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","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.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let $i=Hi,Qi=new we("auth","Firebase",Hi()),Yi=new tt("@firebase/auth");function Ji(e,...t){Yi.logLevel<=c.ERROR&&Yi.error(`Auth (${Vt}): `+e,...t)}function Xi(e,...t){throw ns(e,...t)}function Zi(e,...t){return ns(e,...t)}function es(e,t,r){var n=Object.assign(Object.assign({},$i()),{[t]:r});return new we("auth","Firebase",n).create(t,{appName:e.name})}function ts(e){return es(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function rs(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Xi(e,"argument-error"),es(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function ns(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Qi.create(e,...t)}function m(e,t,...r){if(!e)throw ns(t,...r)}function is(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Ji(t),new Error(t)}function ss(e,t){e||is(t)}function as(){var e;return"undefined"!=typeof self&&(null==(e=self.location)?void 0:e.href)||""}function os(){return"http:"===ls()||"https:"===ls()}function ls(){var e;return"undefined"!=typeof self&&(null==(e=self.location)?void 0:e.protocol)||null}class hs{constructor(e,t){ss((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ce()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(os()||ue()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function us(e,t){ss(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class cs{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void is("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void is("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void is("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ds={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},ps=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],fs=new hs(3e4,6e4);function gs(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function ms(i,s,a,o,e={}){return vs(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe(Object.assign({key:i.config.apiKey},t)).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),Object.assign({method:s,headers:n},e));return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),cs.fetch()(await ys(i,i.config.apiHost,a,r),n)})}async function vs(t,e,r){t._canInitEmulator=!1;var n=Object.assign(Object.assign({},ds),e);try{var i=new ws(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw bs(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw bs(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw bs(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw bs(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw es(t,h,l);Xi(t,h)}catch(e){if(e instanceof ye)throw e;Xi(t,"network-request-failed",{message:String(e)})}}async function _s(e,t,r,n,i={}){var s=await ms(e,t,r,n,i);return"mfaPendingCredential"in s&&Xi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ys(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?us(e.config,i):e.config.apiScheme+"://"+i;if(ps.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class ws{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(Zi(this.auth,"network-request-failed")),fs.get())})}}function bs(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),Zi(e,t,n));return n.customData._tokenResponse=r,n}function Is(e){return void 0!==e&&void 0!==e.getResponse}function Ts(e){return void 0!==e&&void 0!==e.enterprise}class Es{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Cs(e,t){return ms(e,"GET","/v2/recaptchaConfig",gs(e,t))}async function ks(e,t){return ms(e,"POST","/v1/accounts:lookup",t)}function Ss(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function As(e){return 1e3*Number(e)}function Ns(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Ji("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Ji("Failed to decode base64 JWT payload"),null)}catch(e){return Ji("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}function Rs(e){var t=Ns(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ps(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class xs{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(null!=(t=this.user.stsTokenManager.expirationTime)?t:0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class Ds{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ss(this.lastLoginAt),this.creationTime=Ss(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Os(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ps(e,ks(n,{idToken:i})),n=(m(null==i?void 0:i.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),null!=(i=n.providerUserInfo)&&i.length?Ms(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||null!==i&&i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Ds(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ms(e){return e.map(e=>{var t=e.providerId,r=zi(e,["providerId"]);return{providerId:t,uid:r.rawId||"",displayName:r.displayName||null,email:r.email||null,phoneNumber:r.phoneNumber||null,photoURL:r.photoUrl||null}})}class Ls{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Rs(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Rs(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await vs(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ys(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",cs.fetch()(t,{method:"POST",headers:r,body:e})})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Ls;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ls,this.toJSON())}_performRefresh(){return is("not implemented")}}function Fs(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Us{constructor(e){var{uid:t,auth:r,stsTokenManager:n}=e,i=zi(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new xs(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=r,this.stsTokenManager=n,this.accessToken=n.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Ds(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){var t=await Ps(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Ns(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),null==(r="object"==typeof i.firebase?i.firebase:void 0)?void 0:r.sign_in_provider);return{claims:i,token:n,authTime:Ss(As(i.auth_time)),issuedAtTime:Ss(As(i.iat)),expirationTime:Ss(As(i.exp)),signInProvider:s||null,signInSecondFactor:(null==r?void 0:r.sign_in_second_factor)||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Os(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Us(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Os(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(ts(this.auth)):(e=await this.getIdToken(),await Ps(this,(async(e,t)=>ms(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),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(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=null!=(r=t.displayName)?r:void 0,n=null!=(n=t.email)?n:void 0,i=null!=(i=t.phoneNumber)?i:void 0,s=null!=(s=t.photoURL)?s:void 0,a=null!=(a=t.tenantId)?a:void 0,o=null!=(o=t._redirectEventId)?o:void 0,l=null!=(l=t.createdAt)?l:void 0,h=null!=(h=t.lastLoginAt)?h:void 0,{uid:u,emailVerified:c,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(u&&f,e,"internal-error"),Ls.fromJSON(this.name,f)),u=(m("string"==typeof u,e,"internal-error"),Fs(r,e.name),Fs(n,e.name),m("boolean"==typeof c,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Fs(i,e.name),Fs(s,e.name),Fs(a,e.name),Fs(o,e.name),Fs(l,e.name),Fs(h,e.name),new Us({uid:u,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(u.providerData=p.map(e=>Object.assign({},e))),o&&(u._redirectEventId=o),u}static async _fromIdTokenResponse(e,t,r=!1){var n=new Ls,n=(n.updateFromServerResponse(t),new Us({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Os(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ms(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||null!=i&&i.length),a=new Ls,a=(a.updateFromIdToken(r),new Us({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Ds(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||null!=i&&i.length)};return Object.assign(a,s),a}}let Vs=new Map;function qs(e){ss(e instanceof Function,"Expected a class definition");var t=Vs.get(e);return t?ss(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Vs.set(e,t)),t}class Bs{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Bs.type="NONE";let js=Bs;function zs(e,t,r){return`firebase:${e}:${t}:`+r}class Ks{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=zs(this.userKey,n.apiKey,i),this.fullPersistenceKey=zs("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await ks(this.auth,{idToken:t}).catch(()=>{}))?Us._fromGetAccountInfoResponse(this.auth,e,t):null:Us._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ks(qs(js),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||qs(js),a=zs(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await ks(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Us._fromGetAccountInfoResponse(t,h,l)}else e=Us._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch(e){}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch(e){}}))),new Ks(s,t,r)}}function Ws(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Qs(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Hs(t)?"Firefox":t.includes("silk/")?"Silk":Js(t)?"Blackberry":Xs(t)?"Webos":Gs(t)?"Safari":!t.includes("chrome/")&&!$s(t)||t.includes("edge/")?Ys(t)?"Android":2===(null==(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?void 0:t.length)?t[1]:"Other":"Chrome"}function Hs(e=ae()){return/firefox\//i.test(e)}function Gs(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function $s(e=ae()){return/crios\//i.test(e)}function Qs(e=ae()){return/iemobile/i.test(e)}function Ys(e=ae()){return/android/i.test(e)}function Js(e=ae()){return/blackberry/i.test(e)}function Xs(e=ae()){return/webos/i.test(e)}function Zs(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ea(e=ae()){return Zs(e)||Ys(e)||Xs(e)||Js(e)||/windows phone/i.test(e)||Qs(e)}function ta(e,t=[]){let r;switch(e){case"Browser":r=Ws(ae());break;case"Worker":r=Ws(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${Vt}/`+n}class ra{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}}class na{constructor(e){var t,r=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!=(t=r.minPasswordLength)?t:6,r.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=r.maxPasswordLength),void 0!==r.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=r.containsLowercaseCharacter),void 0!==r.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=r.containsUppercaseCharacter),void 0!==r.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=r.containsNumericCharacter),void 0!==r.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=r.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!=(r=null==(t=e.allowedNonAlphanumericCharacters)?void 0:t.join(""))?r:"",this.forceUpgradeOnSignin=null!=(t=e.forceUpgradeOnSignin)&&t,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,r={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,r),this.validatePasswordCharacterOptions(e,r),r.isValid&&(r.isValid=null==(t=r.meetsMinPasswordLength)||t),r.isValid&&(r.isValid=null==(t=r.meetsMaxPasswordLength)||t),r.isValid&&(r.isValid=null==(t=r.containsLowercaseLetter)||t),r.isValid&&(r.isValid=null==(t=r.containsUppercaseLetter)||t),r.isValid&&(r.isValid=null==(t=r.containsNumericCharacter)||t),r.isValid&&(r.isValid=null==(t=r.containsNonAlphanumericCharacter)||t),r}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class ia{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new aa(this),this.idTokenSubscription=new aa(this),this.beforeStateQueue=new ra(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Qi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(t,r){return r&&(this._popupRedirectResolver=qs(r)),this._initializationPromise=this.queue(async()=>{var e;if(!this._deleted&&(this.persistenceManager=await Ks.create(this,t),null!=(e=this._resolvePersistenceManagerAvailable)&&e.call(this),!this._deleted)){if(null!=(e=this._popupRedirectResolver)&&e._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(r),this.lastNotifiedUid=(null==(e=this.currentUser)?void 0:e.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await ks(this,{idToken:e}),r=await Us._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=null==(t=this.redirectUser)?void 0:t._redirectEventId,r=null==s?void 0:s._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||null==n||!n.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Os(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(ts(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(ts(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(ts(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(qs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await ms(e=this,"GET","/v2/passwordPolicy",gs(e,{})),t=new na(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await ms(e=this,"POST","/v2/accounts:revokeToken",gs(e,t)))}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null==(e=this._currentUser)?void 0:e.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&qs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ks.create(this,[qs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){var t;return this._isInitialized&&await this.queue(async()=>{}),(null==(t=this._currentUser)?void 0:t._redirectEventId)===e?this._currentUser:(null==(t=this.redirectUser)?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=null!=(e=null==(e=this.currentUser)?void 0:e.uid)?e:null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ta(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await(null==(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))?void 0:t.getHeartbeatsHeader())),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(null!=(e=await(null==(e=this.appCheckServiceProvider.getImmediate({optional:!0}))?void 0:e.getToken()))&&e.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Yi.logLevel<=c.WARN)&&Yi.warn(`Auth (${Vt}): `+t,...r),null==e?void 0:e.token)}}function sa(e){return w(e)}class aa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let oa={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function la(e){return oa.loadJS(e)}function ha(e){return"__"+e+Math.floor(1e6*Math.random())}class ua{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new pa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t,r=e||1e12;null!=(t=this._widgets.get(r))&&t.delete(),this._widgets.delete(r)}getResponse(e){var t;return(null==(t=this._widgets.get(e||1e12))?void 0:t.getResponse())||""}async execute(e){var t;return null!=(t=this._widgets.get(e||1e12))&&t.execute(),""}}class ca{constructor(){this.enterprise=new da}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class da{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let fa="NO_RECAPTCHA";class ga{constructor(e){this.type="recaptcha-enterprise",this.auth=sa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Ts(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(fa)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new ca).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Cs(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Es(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Ts(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=oa.recaptchaEnterpriseScript;0!==e.length&&(e+=t),la(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function ma(e,t,r,n=!1,i=!1){var s=new ga(e);let a;if(i)a=fa;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s=Object.assign({},t);return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function va(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?null!=(t=r._getRecaptchaConfig())&&t.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await ma(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await ma(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?null!=(t=r._getRecaptchaConfig())&&t.isProviderEnabled("PHONE_PROVIDER")?(t=await ma(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===(null==(t=r._getRecaptchaConfig())?void 0:t.getProviderEnforcementState("PHONE_PROVIDER"))&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await ma(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await ma(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function _a(e,t,r){var n=sa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!(null==r||!r.disableWarnings)),s=ya(t),{host:a,port:o}=(e=>{var t,r=ya(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:wa(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:wa(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function u(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("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",u):u()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function ya(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function wa(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class ba{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return is("not implemented")}_getIdTokenResponse(e){return is("not implemented")}_linkToIdToken(e,t){return is("not implemented")}_getReauthenticationResolver(e){return is("not implemented")}}async function Ia(e,t){return ms(e,"POST","/v1/accounts:resetPassword",gs(e,t))}async function Ta(e,t){return ms(e,"POST","/v1/accounts:signUp",t)}async function Ea(e,t){return _s(e,"POST","/v1/accounts:signInWithPassword",gs(e,t))}async function Ca(e,t){return ms(e,"POST","/v1/accounts:sendOobCode",gs(e,t))}async function ka(e,t){return Ca(e,t)}async function Sa(e,t){return Ca(e,t)}class Aa extends ba{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Aa(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Aa(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(null!=t&&t.email&&null!=t&&t.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return va(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return va(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ta,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Na(e,t){return _s(e,"POST","/v1/accounts:signInWithIdp",gs(e,t))}class Ra extends ba{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Ra(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Xi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e,{providerId:r,signInMethod:n}=t,t=zi(t,["providerId","signInMethod"]);return r&&n?((r=new Ra(r,n)).idToken=t.idToken||void 0,r.accessToken=t.accessToken||void 0,r.secret=t.secret,r.nonce=t.nonce,r.pendingToken=t.pendingToken||null,r):null}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(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=Pe(e)),t}}async function Pa(e,t){return ms(e,"POST","/v1/accounts:sendVerificationCode",gs(e,t))}let xa={USER_NOT_FOUND:"user-not-found"};class Da extends ba{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Da({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Da({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await _s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t));if(r.temporaryProof)throw bs(e,"account-exists-with-different-credential",r);return r})(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),xa))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new Da({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Oa{constructor(e){var t=xe(De(e)),r=null!=(r=t.apiKey)?r:null,n=null!=(n=t.oobCode)?n:null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(null!=(i=t.mode)?i:null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=null!=(r=t.continueUrl)?r:null,this.languageCode=null!=(i=t.lang)?i:null,this.tenantId=null!=(n=t.tenantId)?n:null}static parseLink(e){t=xe(De(e=e)).link,r=t?xe(De(t)).deep_link_id:null;var t,r,n=((n=xe(De(e)).deep_link_id)?xe(De(n)).link:null)||n||r||t||e;try{return new Oa(n)}catch(e){return null}}}class Ma{constructor(){this.providerId=Ma.PROVIDER_ID}static credential(e,t){return Aa._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Oa.parseLink(t);return m(r,"argument-error"),Aa._fromEmailAndCode(e,r.code,r.tenantId)}}Ma.PROVIDER_ID="password",Ma.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ma.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class La{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Fa extends La{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ua extends Fa{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Ra._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Ra._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return Ua.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ua.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Ua(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class Va extends Fa{constructor(){super("facebook.com")}static credential(e){return Ra._fromParams({providerId:Va.PROVIDER_ID,signInMethod:Va.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Va.credentialFromTaggedObject(e)}static credentialFromError(e){return Va.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Va.credential(e.oauthAccessToken)}catch(e){return null}}}Va.FACEBOOK_SIGN_IN_METHOD="facebook.com",Va.PROVIDER_ID="facebook.com";class qa extends Fa{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ra._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return qa.credential(t,r)}catch(e){return null}}}qa.GOOGLE_SIGN_IN_METHOD="google.com",qa.PROVIDER_ID="google.com";class Ba extends Fa{constructor(){super("github.com")}static credential(e){return Ra._fromParams({providerId:Ba.PROVIDER_ID,signInMethod:Ba.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Ba.credentialFromTaggedObject(e)}static credentialFromError(e){return Ba.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Ba.credential(e.oauthAccessToken)}catch(e){return null}}}Ba.GITHUB_SIGN_IN_METHOD="github.com",Ba.PROVIDER_ID="github.com";class ja extends ba{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new ja(t,n):null}static _create(e,t){return new ja(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class za extends La{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return za.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return za.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=ja.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return ja._create(r,t)}catch(e){return null}}}class Ka extends Fa{constructor(){super("twitter.com")}static credential(e,t){return Ra._fromParams({providerId:Ka.PROVIDER_ID,signInMethod:Ka.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Ka.credentialFromTaggedObject(e)}static credentialFromError(e){return Ka.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Ka.credential(t,r)}catch(e){return null}}}async function Wa(e,t){return _s(e,"POST","/v1/accounts:signUp",gs(e,t))}Ka.TWITTER_SIGN_IN_METHOD="twitter.com",Ka.PROVIDER_ID="twitter.com";class Ha{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Us._fromIdTokenResponse(e,r,n),s=Ga(r);return new Ha({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=Ga(r);return new Ha({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function Ga(e){return e.providerId||("phoneNumber"in e?"phone":null)}class $a extends ye{constructor(e,t,r,n){var i;super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,$a.prototype),this.customData={appName:e.name,tenantId:null!=(i=e.tenantId)?i:void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new $a(e,t,r,n)}}function Qa(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw $a._fromErrorAndOperation(t,e,r,n);throw e})}function Ya(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Ja(e,t){var r=w(e),n=(await Za(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await ms(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ya(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Xa(e,t,r=!1){var n=await Ps(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ha._forOperation(e,"link",n)}async function Za(e,t,r){await Os(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ya(t.providerData).has(r)===e,t.auth,n)}async function eo(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(ts(n));var i="reauthenticate";try{var s=await Ps(e,Qa(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Ns(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ha._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Xi(n,"user-mismatch"),e}}async function to(e,t,r=!1){var n;return h(e.app)?Promise.reject(ts(e)):(n=await Qa(e,"signIn",t),n=await Ha._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function ro(e,t){return to(sa(e),t)}async function no(e,t){var r=w(e);return await Za(!1,r,t.providerId),Xa(r,t)}async function io(e,t){return eo(w(e),t)}async function so(e,t){var r,n;return h(e.app)?Promise.reject(ts(e)):(n=await _s(r=sa(e),"POST","/v1/accounts:signInWithCustomToken",gs(r,{token:t,returnSecureToken:!0})),n=await Ha._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class ao{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?oo._fromServerResponse(e,t):"totpInfo"in t?lo._fromServerResponse(e,t):Xi(e,"internal-error")}}class oo extends ao{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new oo(t)}}class lo extends ao{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new lo(t)}}function ho(e,t,r){var n;m(0<(null==(n=r.url)?void 0:n.length),e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function uo(e){var t=sa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function co(e,t){await ms(e=w(e),"POST","/v1/accounts:update",gs(e,{oobCode:t}))}async function po(e,t){var r=w(e),n=await Ia(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=ao._fromServerResponse(sa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function fo(e,t){var r=os()?as():"http://localhost",r=(await ms(e=w(e),"POST","/v1/accounts:createAuthUri",gs(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function go(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&ho(r.auth,n,t),await Ca(r.auth,n)).email;r!==e.email&&await e.reload()}async function mo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&ho(n.auth,i,r),await Ca(n.auth,i)).email;n!==e.email&&await e.reload()}async function vo(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ps(n,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function _o(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ps(e,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class yo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class wo extends yo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class bo extends yo{constructor(e,t){super(e,"facebook.com",t)}}class Io extends wo{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class To extends yo{constructor(e,t){super(e,"google.com",t)}}class Eo extends wo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function Co(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&null!=n&&n.idToken){t=null==(t=null==(t=Ns(n.idToken))?void 0:t.firebase)?void 0:t.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new yo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new bo(a,s);case"github.com":return new Io(a,s);case"google.com":return new To(a,s);case"twitter.com":return new Eo(a,s,n.screenName||null);case"custom":case"anonymous":return new yo(a,null);default:return new yo(a,i,s)}}class ko{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new ko("enroll",e,t)}static _fromMfaPendingCredential(e){return new ko("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){var t;if(null!=e&&e.multiFactorSession){if(null!=(t=e.multiFactorSession)&&t.pendingCredential)return ko._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!=(t=e.multiFactorSession)&&t.idToken)return ko._fromIdtoken(e.multiFactorSession.idToken)}return null}}class So{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=sa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ao._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=ko._fromMfaPendingCredential(a.mfaPendingCredential);return new So(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,Object.assign(Object.assign({},a),{idToken:t.idToken,refreshToken:t.refreshToken}));switch(i.operationType){case"signIn":var n=await Ha._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ha._forOperation(i.user,i.operationType,r);default:Xi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function Ao(e,t){return ms(e,"POST","/v2/accounts/mfaEnrollment:start",gs(e,t))}class No{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ao._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new No(e)}async getSession(){return ko._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ps(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ps(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},ms(r,"POST","/v2/accounts/mfaEnrollment:withdraw",gs(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Ro=new WeakMap;let Po="__sak";class xo{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Po,"1"),this.storage.removeItem(Po),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Do extends xo{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ea(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}Do.type="LOCAL";let Oo=Do;class Mo extends xo{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Mo.type="SESSION";let Lo=Mo;class Fo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Fo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];null!=s&&s.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Uo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Fo.receivers=[];class Vo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Uo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function qo(){return window}function Bo(){return void 0!==qo().WorkerGlobalScope&&"function"==typeof qo().importScripts}let jo="firebaseLocalStorageDb",zo="firebaseLocalStorage",Ko="fbase_key";class Wo{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Ho(e,t){return e.transaction([zo],t?"readwrite":"readonly").objectStore(zo)}function Go(){let n=indexedDB.open(jo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(zo,{keyPath:Ko})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(zo)?t(e):(e.close(),e=indexedDB.deleteDatabase(jo),await new Wo(e).toPromise(),t(await Go()))})})}async function $o(e,t,r){var n=Ho(e,!0).put({fbase_key:t,value:r});return new Wo(n).toPromise()}function Qo(e,t){var r=Ho(e,!0).delete(t);return new Wo(r).toPromise()}class Yo{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 Go()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Bo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Fo._getInstance(Bo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e,t;this.activeServiceWorker=await(async()=>{if(null==navigator||!navigator.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}})(),this.activeServiceWorker&&(this.sender=new Vo(this.activeServiceWorker),t=await this.sender._send("ping",{},800))&&null!=(e=t[0])&&e.fulfilled&&null!=(e=t[0])&&e.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null==(t=null==navigator?void 0:navigator.serviceWorker)?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{var e;return indexedDB?(await $o(e=await Go(),Po,"1"),await Qo(e,Po),!0):!1}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>$o(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Ho(e,!1).get(t);return void 0===(r=await new Wo(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Ho(e,!1).getAll();return new Wo(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Yo.type="LOCAL";let Jo=Yo;function Xo(e,t){return ms(e,"POST","/v2/accounts/mfaSignIn:start",gs(e,t))}let Zo=ha("rcb"),el=new hs(3e4,6e4);class tl{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!(null==(e=qo().grecaptcha)||!e.render)}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Is(qo().grecaptcha)?Promise.resolve(qo().grecaptcha):new Promise((t,r)=>{let n=qo().setTimeout(()=>{r(Zi(i,"network-request-failed"))},el.get());qo()[Zo]=()=>{qo().clearTimeout(n),delete qo()[Zo];var e=qo().grecaptcha;if(e&&Is(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(Zi(i,"internal-error"))},la(oa.recaptchaV2Script+"?"+Pe({onload:Zo,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(Zi(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!(null==(t=qo().grecaptcha)||!t.render)&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class rl{async load(e){return new ua(e)}clearedOneInstance(){}}let nl="recaptcha",il={theme:"light",type:"image"};class sl{constructor(e,t,r=Object.assign({},il)){this.parameters=r,this.type=nl,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=sa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?rl:tl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=qo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(os()&&!Bo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await ms(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class al{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=Da._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ol(t,r,n){var i,e,s,a,o,l,h,u;if(!t._getRecaptchaConfig())try{e=sa(t),s=await Cs(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),s=new Es(s),null==e.tenantId?e._agentRecaptchaConfig=s:e._tenantRecaptchaConfigs[e.tenantId]=s,await(!s.isAnyProviderEnabled()||!new ga(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(a=e.session,"phoneNumber"in e?(m("enroll"===a.type,t,"internal-error"),o={idToken:a.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await va(t,o,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Ao(e,await ll(e,t,n))):Ao(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===a.type,t,"internal-error"),m(l=(null==(i=e.multiFactorHint)?void 0:i.uid)||e.multiFactorUid,t,"missing-multi-factor-info"),h={mfaPendingCredential:a.credential,mfaEnrollmentId:l,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await va(t,h,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Xo(e,await ll(e,t,n))):Xo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(u={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await va(t,u,"sendVerificationCode",async(e,t)=>t.captchaResponse===fa?(m((null==n?void 0:n.type)===nl,e,"argument-error"),Pa(e,await ll(e,t,n))):Pa(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{null!=n&&n._reset()}}async function ll(e,t,r){m(r.type===nl,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),Object.assign({},t));return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class hl{constructor(e){this.providerId=hl.PROVIDER_ID,this.auth=sa(e)}verifyPhoneNumber(e,t){return ol(this.auth,e,w(t))}static credential(e,t){return Da._fromVerification(e,t)}static credentialFromResult(e){var t=e;return hl.credentialFromTaggedObject(t)}static credentialFromError(e){return hl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?Da._fromTokenResponse(t,r):null}}function ul(e,t){return t?qs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}hl.PROVIDER_ID="phone",hl.PHONE_SIGN_IN_METHOD="phone";class cl extends ba{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Na(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Na(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Na(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function dl(e){return to(e.auth,new cl(e),e.bypassAuthState)}function pl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),eo(r,new cl(e),e.bypassAuthState)}async function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Xa(r,new cl(e),e.bypassAuthState)}class gl{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return dl;case"linkViaPopup":case"linkViaRedirect":return fl;case"reauthViaPopup":case"reauthViaRedirect":return pl;default:Xi(this.auth,"internal-error")}}resolve(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let ml=new hs(2e3,1e4);class vl extends gl{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,vl.currentPopupAction&&vl.currentPopupAction.cancel(),vl.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){ss(1===this.filter.length,"Popup operations only handle one event");var e=Uo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(Zi(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null==(e=this.authWindow)?void 0:e.associatedEvent)||null}cancel(){this.reject(Zi(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,vl.currentPopupAction=null}pollUserCancellation(){let t=()=>{var e;null!=(e=null==(e=this.authWindow)?void 0:e.window)&&e.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(Zi(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(t,ml.get())};t()}}vl.currentPopupAction=null;let _l="pendingRedirect",yl=new Map;class wl extends gl{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=yl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=El(t),i=Tl(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}yl.set(this.auth._key(),t)}return this.bypassAuthState||yl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function bl(e,t){return Tl(e)._set(El(t),"true")}function Il(e,t){yl.set(e._key(),t)}function Tl(e){return qs(e._redirectPersistence)}function El(e){return zs(_l,e.config.apiKey,e.name)}function Cl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=sa(e),rs(e,t,La),await n._initializationPromise,await bl(i=ul(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(rs(n.auth,t,La),h(n.auth.app))return Promise.reject(ts(n.auth));await n.auth._initializationPromise;var i=ul(n.auth,r),s=(await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function Sl(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),await n.auth._initializationPromise,ul(n.auth,r)),s=(await Za(!1,n,t.providerId),await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Al(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(ts(e)):(i=ul(n=sa(e),t),(i=await new wl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Nl(e){var t=Uo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Rl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return xl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!xl(e)?(r=(null==(r=e.error.code)?void 0:r.split("auth/")[1])||"internal-error",t.onError(Zi(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Pl(e))}saveEventToCache(e){this.cachedEventUids.add(Pl(e)),this.lastProcessedEventTime=Date.now()}}function Pl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function xl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function Dl(e,t={}){return ms(e,"GET","/v1/projects",t)}let Ol=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ml=/^https?/;async function Ll(e){if(!e.config.emulator){var t,r=(await Dl(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=as(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ml.test(n)&&(Ol.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch(e){}Xi(e,"unauthorized-domain")}}let Fl=new hs(3e4,6e4);function Ul(){var t=qo().___jsl;if(null!=t&&t.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Vl(i){return new Promise((e,t)=>{var r;function n(){Ul(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ul(),t(Zi(i,"network-request-failed"))},timeout:Fl.get()})}if(null!=(r=null==(r=qo().gapi)?void 0:r.iframes)&&r.Iframe)e(gapi.iframes.getContext());else{if(null==(r=qo().gapi)||!r.load)return r=ha("iframefcb"),qo()[r]=()=>{gapi.load?n():t(Zi(i,"network-request-failed"))},la(oa.gapiScript+"?onload="+r).catch(e=>t(e));n()}}).catch(e=>{throw ql=null,e})}let ql=null;let Bl=new hs(5e3,15e3),jl="__/auth/iframe",zl="emulator/auth/iframe",Kl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Wl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Hl(a){e=a;var e,t,r,n=await(ql=ql||Vl(e)),i=qo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?us(n,zl):`https://${e.config.authDomain}/`+jl,n={apiKey:n.apiKey,appName:e.name,v:Vt},(r=Wl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Kl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=Zi(a,"network-request-failed"),n=qo().setTimeout(()=>{t(r)},Bl.get());function i(){qo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let Gl={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class $l{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ql(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s=Object.assign(Object.assign({},Gl),{width:n.toString(),height:i.toString(),top:s,left:a}),a=ae().toLowerCase(),s=(r&&(o=$s(a)?"_blank":r),Hs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],Zs(n)&&null!=(a=window.navigator)&&a.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new $l(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new $l(a)}let Yl="__/auth/handler",Jl="emulator/auth/handler",Xl=encodeURIComponent("fac");async function Zl(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:Vt,eventId:i};if(t instanceof La){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",Se(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Fa&&0<(c=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=c.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,u=a;for(h of Object.keys(u))void 0===u[h]&&delete u[h];var c=await e._getAppCheckToken(),c=c?`#${Xl}=`+encodeURIComponent(c):"";return`${r=[e.config][0],r.emulator?us(r,Jl):`https://${r.authDomain}/`+Yl}?`+Pe(u).slice(1)+c}let eh="webStorageSupport";class th{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _openPopup(e,t,r,n){ss(null==(i=this.eventManagers[e._key()])?void 0:i.manager,"_initialize() not called before _openPopup()");var i=await Zl(e,t,r,as(),n);return Ql(e,i,Uo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await Zl(e,t,r,as(),n);return qo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(ss(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Hl(t);let r=new Rl(t);return e.register("authEvent",e=>(m(null==e?void 0:e.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(eh,{type:eh},e=>{var t=null==(t=null==e?void 0:e[0])?void 0:t[eh];void 0!==t&&n(!!t),Xi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ll(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ea()||Gs()||Zs()}}let rh=th;class nh extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return is("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new nh(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaEnrollment:finalize",gs(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaSignIn:finalize",gs(e,t))}}class ih{constructor(){}static assertion(e){return nh._fromCredential(e)}}ih.FACTOR_ID="phone";ar="@firebase/auth";class sh{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null==(e=this.auth.currentUser)?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var ah;function oh(){return window}t="authIdTokenMaxAge",null!=(or=Y())&&or["_"+t],oa={loadJS(i){return new Promise((e,r)=>{var t,n=document.createElement("script");n.setAttribute("src",i),n.onload=e,n.onerror=e=>{var t=Zi("internal-error");t.customData=e,r(t)},n.type="text/javascript",n.charset="UTF-8",(null!=(t=null==(t=document.getElementsByTagName("head"))?void 0:t[0])?t:document).appendChild(n)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},ah="Browser",xt(new u("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:ah,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ta(ah)}),a=new ia(r,n,i,s);return e=a,r=(null==(t=t)?void 0:t.persistence)||[],r=(Array.isArray(r)?r:[r]).map(qs),null!=t&&t.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),xt(new u("auth-internal",e=>{var t=sa(e.getProvider("auth").getImmediate());return e=t,new sh(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),d(ar,"1.10.6",(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(ah)),d(ar,"1.10.6","esm2017");async function lh(e,t,r){var n=oh().BuildInfo,i=(ss(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(ss(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return Zs()?s.ibi=n.packageName:Ys()?s.apn=n.packageName:Xi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,Zl(e,r,t.type,void 0,null!=(n=t.eventId)?n:void 0,s)}function hh(n){let i=oh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let uh=20;class ch extends Rl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function dh(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<uh;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:Zi(e,"no-auth-event")}}async function ph(e){var t=await gh()._get(mh(e));return t&&await gh()._remove(mh(e)),t}function fh(e,t){i=vh(t=t),n=i.link?decodeURIComponent(i.link):void 0,r=vh(n).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=vh(i).link||i||r||n||t;return i.includes("/__/auth/callback")?(n=(r=null==(n=null==(r=null==(n=(r=vh(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(r.firebaseError)):null)?void 0:n.code)?void 0:r.split("auth/"))?void 0:n[1])?Zi(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function gh(){return qs(Oo)}function mh(e){return zs("authEvent",e.config.apiKey,e.name)}function vh(e){var t,r;return null!=e&&e.includes("?")?([t,...r]=e.split("?"),xe(r.join("?"))):{}}class _h{constructor(){this._redirectPersistence=Lo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new ch(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Xi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,a=oh(),m("function"==typeof(null==(s=null==a?void 0:a.universalLinks)?void 0:s.subscribe),i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==(null==(s=null==a?void 0:a.BuildInfo)?void 0:s.packageName),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof(null==(s=null==(s=null==(s=null==a?void 0:a.cordova)?void 0:s.plugins)?void 0:s.browsertab)?void 0:s.openUrl),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof(null==(s=null==(s=null==(s=null==a?void 0:a.cordova)?void 0:s.plugins)?void 0:s.browsertab)?void 0:s.isAvailable),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof(null==(a=null==(s=null==a?void 0:a.cordova)?void 0:s.InAppBrowser)?void 0:a.open),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),yl.clear(),await this._originValidation(e),dh(e,r,n)),a=(i=e,r=a,await gh()._set(mh(i),r),await lh(e,a,t));return(async(a,o,l)=>{let h=oh().cordova,u=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=null==(e=h.plugins.browsertab)?void 0:e.close;"function"==typeof e&&e(),"function"==typeof(null==l?void 0:l.close)&&l.close()}function i(){r=r||window.setTimeout(()=>{e(Zi(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===(null==document?void 0:document.visibilityState)&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Ys()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{u()}})(e,s,await hh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=oh().BuildInfo,r={};Zs()?r.iosBundleId=t.packageName:Ys()?r.androidPackageName=t.packageName:Xi(e,"operation-not-supported-in-this-environment"),await Dl(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=oh();let s=setTimeout(async()=>{await ph(n),i.onEvent(wh())},500),a=async e=>{clearTimeout(s);var t=await ph(n);let r=null;t&&null!=e&&e.url&&(r=fh(t,e.url)),i.onEvent(r||wh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";oh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let yh=_h;function wh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:Zi("no-auth-event")}}function bh(){var e;return(null==(e=null==self?void 0:self.location)?void 0:e.protocol)||null}function Ih(e=ae()){return!("file:"!==bh()&&"ionic:"!==bh()&&"capacitor:"!==bh()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Th(e=ae()){return de()&&11===(null==document?void 0:document.documentMode)||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Eh(){try{var e=self.localStorage,t=Uo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Th()||me()}catch(e){return Ch()&&me()}return!1}function Ch(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function kh(){return("http:"===bh()||"https:"===bh()||ue()||Ih())&&!(ce()||le())&&Eh()&&!Ch()}function Sh(){return Ih()&&"undefined"!=typeof document}let Ah={LOCAL:"local",NONE:"none",SESSION:"session"},Nh=m,Rh="persistence";async function Ph(e){await e._initializationPromise;var t=xh(),r=zs(Rh,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function xh(){var e;try{return(null===(e="undefined"!=typeof window?window:null)?void 0:e.sessionStorage)||null}catch(e){return null}}let Dh=m;class Oh{constructor(){this.browserResolver=qs(rh),this.cordovaResolver=qs(yh),this.underlyingResolver=null,this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return Sh()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Dh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!Sh()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Mh(e){return e.unwrap()}function Lh(e,t){var r,n,i,s,a=null==(a=t.customData)?void 0:a._tokenResponse;"auth/multi-factor-auth-required"===(null==t?void 0:t.code)?t.resolver=new qh(e,(r=t,i=w(e),m((s=r).customData.operationType,i,"argument-error"),m(null==(n=s.customData._serverResponse)?void 0:n.mfaPendingCredential,i,"argument-error"),So._fromError(i,s))):a&&(i=Fh(n=t))&&(n.credential=i,n.tenantId=a.tenantId||void 0,n.email=a.email||void 0,n.phoneNumber=a.phoneNumber||void 0)}function Fh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return hl.credentialFromResult(e);var r=t.providerId;if(!r||r===Ki.PASSWORD)return null;let n;switch(r){case Ki.GOOGLE:n=qa;break;case Ki.FACEBOOK:n=Va;break;case Ki.GITHUB:n=Ba;break;case Ki.TWITTER:n=Ka;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?ja._create(r,o):Ra._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Ua(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Uh(t,e){return e.catch(e=>{throw e instanceof ye&&Lh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Fh(e),additionalUserInfo:Co(e),user:Bh.getOrCreate(r)}})}async function Vh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Uh(t,r.confirm(e))}}class qh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Uh(Mh(this.auth),this.resolver.resolveSignIn(e))}}class Bh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Ro.has(t)||Ro.set(t,No._fromUser(t)),Ro.get(t))}static getOrCreate(e){return Bh.USER_MAP.has(e)||Bh.USER_MAP.set(e,new Bh(e)),Bh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Uh(this.auth,no(this._delegate,e))}async linkWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);await Za(!1,n,"phone");var i=await ol(n.auth,t,w(r));return new al(i,e=>no(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),ul(n.auth,r));return new vl(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async linkWithRedirect(e){return await Ph(sa(this.auth)),Sl(this._delegate,e,Oh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Uh(this.auth,io(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(ts(n.auth)):(i=await ol(n.auth,t,w(r)),new al(i,e=>io(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(Zi(n.auth,"operation-not-supported-in-this-environment"));rs(n.auth,t,La);var i=ul(n.auth,r);return new vl(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async reauthenticateWithRedirect(e){return await Ph(sa(this.auth)),kl(this._delegate,e,Oh)}sendEmailVerification(e){return go(this._delegate,e)}async unlink(e){return await Ja(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(ts(r.auth)):_o(r,e,null);var t,r}updatePassword(e){return _o(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(ts(r.auth));await Xa(r,t)})(this._delegate,e)}updateProfile(e){return vo(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return mo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}Bh.USER_MAP=new WeakMap;let jh=m;class zh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,jh(r,"invalid-api-key",{appName:e.name}),jh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Oh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=xh();if(!r)return[];var n=zs(Rh,e,t);switch(r.getItem(n)){case Ah.NONE:return[js];case Ah.LOCAL:return[Jo,Lo];case Ah.SESSION:return[Lo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Jo)||r.push(Jo),"undefined"!=typeof window)for(var n of[Oo,Lo])r.includes(n)||r.push(n);return r.includes(js)||r.push(js),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap(Gi)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?Bh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){_a(this._delegate,e,t)}applyActionCode(e){return co(this._delegate,e)}checkActionCode(e){return po(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ia(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Uh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(ts(t)):(i=await va(n=sa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Wa,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(t),e}),i=await Ha._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return fo(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===(null==(t=Oa.parseLink(e))?void 0:t.operation);var t}async getRedirectResult(){jh(kh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Oh,await sa(e)._initializationPromise;var e,t,r=await Al(e,t,!1);return r?Uh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){sa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=sa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&ho(n,e,t),await va(n,i,"getOobCode",Sa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=sa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&ho(n,i,r),await va(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Nh(Object.values(Ah).includes(r),t,"invalid-persistence-type"),ce()?Nh(r!==Ah.SESSION,t,"unsupported-persistence-type"):le()?Nh(r===Ah.NONE,t,"unsupported-persistence-type"):Ch()?Nh(r===Ah.NONE||r===Ah.LOCAL&&me(),t,"unsupported-persistence-type"):Nh(r===Ah.NONE||Eh(),t,"unsupported-persistence-type");let n;switch(e){case Ah.SESSION:n=Lo;break;case Ah.LOCAL:var i=await qs(Jo)._isAvailable();n=i?Jo:Oo;break;case Ah.NONE:n=js;break;default:return Xi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Uh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(ts(e)):(await(t=sa(e))._initializationPromise,null!=(r=t.currentUser)&&r.isAnonymous?new Ha({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Wa(t,{returnSecureToken:!0}),r=await Ha._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Uh(this._delegate,ro(this._delegate,e))}signInWithCustomToken(e){return Uh(this._delegate,so(this._delegate,e))}signInWithEmailAndPassword(e,t){return Uh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(ts(r)):ro(w(r),Ma.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&uo(r),e})));var r}signInWithEmailLink(e,t){return Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=w(e),m((i=Ma.credentialWithLink(t,r||as()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),ro(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Vh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(ts(e));let n=sa(e);var i=await ol(n,t,w(r));return new al(i,e=>ro(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return jh(kh(),this._delegate,"operation-not-supported-in-this-environment"),Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(Zi(e,"operation-not-supported-in-this-environment")):(n=sa(e),rs(e,t,La),i=ul(n,r),new vl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Oh))}async signInWithRedirect(e){return jh(kh(),this._delegate,"operation-not-supported-in-this-environment"),await Ph(this._delegate),Cl(this._delegate,e,Oh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await po(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Kh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&Bh.getOrCreate(e)),error:t,complete:r}}zh.Persistence=Ah;class Wh{static credential(e,t){return hl.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new hl(Mh(lr.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Wh.PHONE_SIGN_IN_METHOD=hl.PHONE_SIGN_IN_METHOD,Wh.PROVIDER_ID=hl.PROVIDER_ID;let Hh=m;class Gh{constructor(e,t,r=lr.app()){var n;Hh(null==(n=r.options)?void 0:n.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new sl(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=lr).INTERNAL.registerComponent(new u("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new zh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Wi.EMAIL_SIGNIN,PASSWORD_RESET:Wi.PASSWORD_RESET,RECOVER_EMAIL:Wi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Wi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Wi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Wi.VERIFY_EMAIL}},EmailAuthProvider:Ma,FacebookAuthProvider:Va,GithubAuthProvider:Ba,GoogleAuthProvider:qa,OAuthProvider:Ua,SAMLAuthProvider:za,PhoneAuthProvider:Wh,PhoneMultiFactorGenerator:ih,RecaptchaVerifier:Gh,TwitterAuthProvider:Ka,Auth:zh,AuthCredential:ba,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.5.26");let $h="@firebase/database",Qh="";function Yh(e){Qh=e}class Jh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Xh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function Zh(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Jh(t)}catch(e){}return new Xh}var eu;function tu(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function ru(t){return function(...e){mu(t,...e)}}function nu(...e){var t="FIREBASE INTERNAL ERROR: "+du(...e);uu.error(t)}function iu(e,t){return e===t?0:e<t?-1:1}function su(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function au(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+au(e[r[i]]);return n+="}"}function ou(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let lu=Zh("localStorage"),hu=Zh("sessionStorage"),uu=new tt("@firebase/database"),cu=(()=>{let e=1;return function(){return e++}})(),du=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=du.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},pu=null,fu=!0,gu=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(uu.logLevel=c.VERBOSE,pu=uu.log.bind(uu),t&&hu.set("logging_enabled",!0)):"function"==typeof e?pu=e:(pu=null,hu.remove("logging_enabled"))},mu=function(...e){var t;!0===fu&&(fu=!1,null===pu)&&!0===hu.get("logging_enabled")&&gu(!0),pu&&(t=du.apply(null,e),pu(t))},vu=function(...e){var t="FIREBASE FATAL ERROR: "+du(...e);throw uu.error(t),new Error(t)},_u=function(...e){var t="FIREBASE WARNING: "+du(...e);uu.warn(t)},yu=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&_u("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},wu=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},bu="[MIN_NAME]",Iu="[MAX_NAME]",Tu=function(e,t){var r,n;return e===t?0:e===bu||t===Iu?-1:t===bu||e===Iu?1:(r=ku(e),n=ku(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Eu(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Cu(e){g(!wu(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function ku(e){if(Au.test(e)){var t=Number(e);if(t>=Nu&&t<=Ru)return t}return null}function Su(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Au=new RegExp("^-?(0*)\\d{1,10}$"),Nu=-2147483648,Ru=2147483647,Pu=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw _u("Exception was thrown by user callback.",e),t},Math.floor(0))}};class xu{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null!=t&&t.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){var e;null!=(e=this.appCheckProvider)&&e.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){_u(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Du{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(mu("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',_u(e)}}class Ou{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Ou.OWNER="owner";let Mu=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Lu="websocket",Fu="long_polling";class Uu{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=lu.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&lu.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function Vu(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Lu)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Fu)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Eu(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class qu{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let Bu={},ju={};function zu(e){var t=e.toString();return Bu[t]||(Bu[t]=new qu),Bu[t]}class Ku{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Pu(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Wu{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=ru(e),this.stats_=zu(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),Vu(t,Fu,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Ku(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Hu((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Mu.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Wu.forceAllow_=!0}static forceDisallow(){Wu.forceDisallow_=!0}static isAvailable(){return!!Wu.forceAllow_||!(Wu.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=ou(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Hu{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=cu(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Hu.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){mu("frame writing exception"),e.stack&&mu(e.stack),mu(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||mu("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{mu("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let Gu=null;"undefined"!=typeof MozWebSocket?Gu=MozWebSocket:"undefined"!=typeof WebSocket&&(Gu=WebSocket);class $u{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=ru(this.connId),this.stats_=zu(t),this.connURL=$u.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Mu.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),Vu(e,Lu,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,lu.set("previous_websocket_failure",!0);try{pe(),this.mySock=new Gu(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){$u.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==Gu&&!$u.forceDisallow_}static previouslyFailed(){return lu.isInMemoryStorage||!0===lu.get("previous_websocket_failure")}markConnectionHealthy(){lu.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),ou(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}$u.responsesRequiredToBeHealthy=2,$u.healthyTimeout=3e4;class Qu{static get ALL_TRANSPORTS(){return[Wu,$u]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=$u&&$u.isAvailable();let r=t&&!$u.previouslyFailed();if(e.webSocketOnly&&(t||_u("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[$u];else{var n,i=this.transports_=[];for(n of Qu.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Qu.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Qu.globalTransportInitialized_=!1;class Yu{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=ru("c:"+this.id+":"),this.transportManager_=new Qu(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Su(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=su("t",e),r=su("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=su("t",e),r=su("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=su("t",e);if("d"in e){var r=e.d;if("h"===t){var n=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?nu("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):nu("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&_u("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Su(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Su(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(lu.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Ju{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Xu{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class Zu extends Xu{static getInstance(){return new Zu}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let ec=32,tc=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function rc(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function nc(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function ic(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function sc(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function ac(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function oc(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return oc(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function lc(e,t){var r=ic(e,0),n=ic(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Tu(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function hc(e,t){if(rc(e)!==rc(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function uc(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(rc(e)>rc(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class cc{constructor(e,t){this.errorPrefix_=t,this.parts_=ic(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=Be(this.parts_[r]);dc(this)}}function dc(e){if(e.byteLength_>tc)throw new Error(e.errorPrefix_+"has a key path longer than "+tc+" bytes ("+e.byteLength_+").");if(e.parts_.length>ec)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+ec+") or object contains a cycle "+pc(e))}function pc(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class fc extends Xu{static getInstance(){return new fc}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class gc extends Ju{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=gc.nextPersistentConnectionId_++,this.log_=ru("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");fc.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&Zu.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(gc.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=ke(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),_u("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):nu("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+gc.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,u]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?mu("getToken() completed but was canceled"):(mu("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=u&&u.token,r=new Yu(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{_u(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&_u(e),o())}}}interrupt(e){mu("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){mu("Resuming connection for reason: "+e),delete this.interruptReasons_[e],Se(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>au(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){mu("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){mu("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Qh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ce()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=Zu.getInstance().currentlyOnline();return Se(this.interruptReasons_)&&e}}gc.nextPersistentConnectionId_=0,gc.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class mc{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(bu,e),n=new p(bu,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let vc;class _c extends mc{static get __EMPTY_NODE(){return vc}static set __EMPTY_NODE(e){vc=e}compare(e,t){return Tu(e.name,t.name)}isDefinedOn(e){throw B("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Iu,vc)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,vc)}toString(){return".key"}}let yc=new _c;class wc{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class bc{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:bc.RED,this.left=null!=n?n:Tc.EMPTY_NODE,this.right=null!=i?i:Tc.EMPTY_NODE}copy(e,t,r,n,i){return new bc(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Tc.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Tc.EMPTY_NODE;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(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,bc.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,bc.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}bc.RED=!0,bc.BLACK=!1;class Ic{copy(e,t,r,n,i){return this}insert(e,t,r){return new bc(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Tc{constructor(e,t=Tc.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Tc(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,bc.BLACK,null,null))}remove(e){return new Tc(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,bc.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new wc(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new wc(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new wc(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new wc(this.root_,null,this.comparator_,!0,e)}}function Ec(e,t){return Tu(e.name,t.name)}function Cc(e,t){return Tu(e,t)}Tc.EMPTY_NODE=new Ic;let kc;function Sc(e){return"number"==typeof e?"number:"+Cu(e):"string:"+e}function Ac(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===kc||e.isEmpty(),"priority of unexpected type."),g(e===kc||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Nc;class Rc{static set __childrenNodeConstructor(e){Nc=e}static get __childrenNodeConstructor(){return Nc}constructor(e,t=Rc.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Ac(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Rc(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Rc.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Rc.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Rc.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===rc(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Rc.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Sc(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Cu(this.value_):this.value_),this.lazyHash_=tu(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Rc.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Rc.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Rc.VALUE_TYPE_ORDER.indexOf(t),i=Rc.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Rc.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Pc,xc;class Dc extends mc{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Tu(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Iu,new Rc("[PRIORITY-POST]",xc))}makePost(e,t){var r=Pc(e);return new p(t,new Rc("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new Dc,Oc=Math.log(2);class Mc{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Oc,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Lc(l,e,h,t){l.sort(e);let u=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new bc(a,s.node,bc.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=u(e,i),n=u(i+1,t),s=l[i],a=h?h(s):s,new bc(a,s.node,bc.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,u(1+r,n)),r=l[r],i=h?h(r):r,e=new bc(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,bc.BLACK):(t(n,bc.BLACK),t(n,bc.RED))}return a})(new Mc(l.length));return new Tc(t||e,r)}let Fc,Uc={};class Vc{static get Default(){return g((Uc,I),"ChildrenNode.ts has not been loaded"),Fc=Fc||new Vc({".priority":Uc},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=ke(this.indexes_,e);if(t)return t instanceof Tc?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==yc,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Lc(r,e.getCompare()):Uc;var o=e.toString(),l=Object.assign({},this.indexSet_),h=(l[o]=e,Object.assign({},this.indexes_));return h[o]=a,new Vc(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=ke(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Uc){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Lc(n,r.getCompare())}return Uc}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new Vc(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Uc&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new Vc(e,this.indexSet_)}}let qc;class T{static get EMPTY_NODE(){return qc=qc||new T(new Tc(Cc),null,Vc.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Ac(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||qc}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?qc:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?qc:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===rc(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Sc(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":tu(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===jc?-1:0}withIndex(e){var t;return e===yc||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===yc||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===yc?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class Bc extends T{constructor(){super(new Tc(Cc),T.EMPTY_NODE,Vc.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let jc=new Bc,zc=(Object.defineProperties(p,{MIN:{value:new p(bu,T.EMPTY_NODE)},MAX:{value:new p(Iu,jc)}}),_c.__EMPTY_NODE=T.EMPTY_NODE,Rc.__childrenNodeConstructor=T,t=jc,kc=t,t=jc,xc=t,!0);function Kc(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Rc(t,Kc(e));if(s instanceof Array||!zc){let n=T.EMPTY_NODE;return Eu(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Kc(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Kc(e))}{let n=[],i=!1;return Eu(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Kc(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Lc(n,Ec,e=>e.name,Cc),i?(r=Lc(n,I.getCompare()),new T(t,Kc(e),new Vc({".priority":r},{".priority":I}))):new T(t,Kc(e),Vc.Default))}}Pc=Kc;class Wc extends mc{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Tu(e.name,t.name):r}makePost(e,t){var r=Kc(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,jc);return new p(Iu,e)}toString(){return ic(this.indexPath_,0).join("/")}}class Hc extends mc{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Tu(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Kc(e);return new p(t,r)}toString(){return".value"}}let Gc=new Hc;function $c(e){return{type:"value",snapshotNode:e}}function Qc(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Yc(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Jc(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Xc{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Yc(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Qc(t,r)):s.trackChildChange(Jc(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Yc(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Jc(e,t,r)):i.trackChildChange(Qc(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class Zc{constructor(e){this.indexedFilter_=new Xc(e.getIndex()),this.index_=e.getIndex(),this.startPost_=Zc.getStartPost_(e),this.endPost_=Zc.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class ed{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new Zc(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var c=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=c?(null!=i&&i.trackChildChange(Jc(t,r,u)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Yc(t,u)),c=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Qc(e.name,e.node)),c.updateImmediateChild(e.name,e.node)):c)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Yc(l.name,l.node)),i.trackChildChange(Qc(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class td{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:bu}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Iu}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new td;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function rd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function nd(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function id(e,t){var r=e.copy();return r.index_=t,r}function sd(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===Gc?"$value":t.index_===yc?"$key":(g(t.index_ instanceof Wc,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function ad(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class od extends Ju{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=ru("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),od.getListenId_(e,n)),o={};this.listens_[a]=o;var r=sd(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),ke(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=od.getListenId_(e,t);delete this.listens_[r]}get(e){var t=sd(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){_u("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&_u("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class ld{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function hd(){return{value:null,children:new Map}}function ud(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,hd()),ud(e.children.get(n),t=y(t),r))}function cd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{cd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class dd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r=Object.assign({},e);return this.last_&&Eu(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class pd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new dd(e);var r=1e4+2e4*Math.random();Su(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Eu(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Su(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function fd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function gd(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function md(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=eu=eu||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class vd{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=eu.ACK_USER_WRITE,this.source=fd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new vd(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new vd(y(this.path),this.affectedTree,this.revert))}}class _d{constructor(e,t){this.source=e,this.path=t,this.type=eu.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new _d(this.source,v()):new _d(this.source,y(this.path))}}class yd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=eu.OVERWRITE}operationForChild(e){return b(this.path)?new yd(this.source,v(),this.snap.getImmediateChild(e)):new yd(this.source,y(this.path),this.snap)}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=eu.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new yd(this.source,v(),t.value):new wd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new wd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class bd{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Id{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Td(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Ed(r,i,"child_removed",e,n,t),Ed(r,i,"child_added",e,n,t),Ed(r,i,"child_moved",s,n,t),Ed(r,i,"child_changed",e,n,t),Ed(r,i,"value",e,n,t),i}function Ed(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw B("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Cd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Cd(new bd(t,r,n),e.serverCache)}function Sd(e,t,r,n){return Cd(e.eventCache,new bd(t,r,n))}function Ad(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Nd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Rd;class E{static fromObject(e){let r=new E(null);return Eu(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Rd=Rd||new Tc(iu)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:ac(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new E(null))}set(e,t){var r,n;return b(e)?new E(t,this.children):(n=_(e),r=(this.children.get(n)||new E(null)).set(y(e),t),n=this.children.insert(n,r),new E(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new E(null):new E(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new E(null):new E(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new E(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new E(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(ac(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),ac(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),ac(t,n),r):new E(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(ac(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class Pd{constructor(e){this.writeTree_=e}static empty(){return new Pd(new E(null))}}function xd(t,r,n){if(b(r))return new Pd(new E(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new E(n),s=t.writeTree_.setTree(r,s),new Pd(s);{var s=i.path;let e=i.value;i=oc(s,r);return e=e.updateChild(i,n),new Pd(t.writeTree_.set(s,e))}}function Dd(e,r,t){let n=e;return Eu(t,(e,t)=>{n=xd(n,ac(r,e),t)}),n}function Od(e,t){var r;return b(t)?Pd.empty():(r=e.writeTree_.setTree(t,new E(null)),new Pd(r))}function Md(e,t){return null!=Ld(e,t)}function Ld(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(oc(r.path,t)):null}function Fd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function Ud(e,t){var r;return b(t)?e:null!=(r=Ld(e,t))?new Pd(new E(r)):new Pd(e.writeTree_.subtree(t))}function Vd(e){return e.writeTree_.isEmpty()}function qd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(ac(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(ac(i,".priority"),r)}}}(v(),e.writeTree_,t)}function Bd(e,t){return Zd(t,e)}function jd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return uc(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&uc(ac(e.path,r),t))return 1})(l,i.path)?s=!1:uc(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Kd(e.allWrites,zd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Od(t.visibleWrites,i.path):Eu(i.children,e=>{t.visibleWrites=Od(t.visibleWrites,ac(i.path,e))}),!0)}function zd(e){return e.visible}function Kd(e,t,r){let n=Pd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)uc(r,s)?(e=oc(r,s),n=xd(n,e,i.snap)):uc(s,r)&&(e=oc(s,r),n=xd(n,v(),i.snap.getChild(e)));else{if(!i.children)throw B("WriteRecord should have .snap or .children");uc(r,s)?(e=oc(r,s),n=Dd(n,e,i.children)):uc(s,r)&&(b(e=oc(s,r))?n=Dd(n,v(),i.children):(s=ke(i.children,_(e)))&&(i=s.getChild(y(e)),n=xd(n,v(),i)))}}}return n}function Wd(e,t,r,n,i){var s;return n||i?(s=Ud(e.visibleWrites,t),!i&&Vd(s)?r:i||null!=r||Md(s,v())?qd(Kd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(uc(e.path,t)||uc(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ld(e.visibleWrites,t))?s:Vd(s=Ud(e.visibleWrites,t))?r:null!=r||Md(s,v())?qd(s,r||T.EMPTY_NODE):null}function Hd(e,t,r,n){return Wd(e.writeTree,e.treePath,t,r,n)}function Gd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ld(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=Ud(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=qd(Ud(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Fd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Fd(Ud(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function $d(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=ac(e,t),Md(i.visibleWrites,s)?null:Vd(s=Ud(i.visibleWrites,s))?n.getChild(t):qd(s,n.getChild(t));var i,s}function Qd(e,t){return r=e.writeTree,e=ac(e.treePath,t),Ld(r.visibleWrites,e);var r}function Yd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var u=Ud(o.visibleWrites,e),c=Ld(u,v());if(null!=c)t=c;else{if(null==r)return[];t=qd(u,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Jd(e,t,r){return n=e.writeTree,r=r,i=ac(e.treePath,e=t),null!=(s=Ld(n.visibleWrites,i))?s:r.isCompleteForChild(e)?qd(Ud(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function Xd(e,t){return Zd(ac(e.treePath,t),e.writeTree)}function Zd(e,t){return{treePath:e,writeTree:t}}class ep{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Jc(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Yc(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Qc(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw B("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Jc(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let tp=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class rp{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new bd(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Jd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Nd(this.viewCache_),n=Yd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function np(e,t,r,n,i){var s=new ep;let a,o;if(r.type===eu.OVERWRITE){var l=r;a=l.source.fromUser?ap(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),sp(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===eu.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=ac(s,e);op(i,_(r))&&(h=ap(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=ac(s,e);op(i,_(r))||(h=ap(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),hp(e,t,l.path,l.children,n,i,o,s))}else if(r.type===eu.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Qd(s,i))return n;{var l=new rp(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?Hd(s,Nd(n)):(u=n.serverCache.getNode(),g(u instanceof T,"serverChildren would be complete if leaf node"),Gd(s,u)),t=r.filter.updateFullNode(h,e,a)}else{var u=_(i);let e=Jd(s,u,n.serverCache);null==e&&n.serverCache.isCompleteForChild(u)&&(e=h.getImmediateChild(u)),(t=null!=e?r.filter.updateChild(h,u,e,y(i),l,a):n.eventCache.getNode().hasChild(u)?r.filter.updateChild(h,u,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=Hd(s,Nd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Qd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Qd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return sp(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new E(null);return h.getNode().forEachChild(yc,(e,t)=>{r=r.set(new f(e),t)}),hp(e,t,i,r,s,a,l,o)}return t}{let n=new E(null);return r.foreach((e,t)=>{var r=ac(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),hp(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==eu.LISTEN_COMPLETE)throw B("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Sd(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ip(i,l,e,r,tp,n))}var h,u,s=s.getChanges(),i=t,e=a,r=s,c=e.eventCache;return c.isFullyInitialized()&&(h=c.getNode().isLeafNode()||c.getNode().isEmpty(),u=Ad(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!c.getNode().equals(u)||!c.getNode().getPriority().equals(u.getPriority()))&&r.push($c(Ad(e))),{viewCache:a,changes:s}}function ip(n,i,s,a,o,l){var h=i.eventCache;if(null!=Qd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(u=Gd(a,(u=Nd(i))instanceof T?u:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),u,l)):(u=Hd(a,Nd(i)),n.filter.updateFullNode(i.eventCache.getNode(),u,l));else{var u=_(s);if(".priority"===u){g(1===rc(s),"Can't have a priority with additional path components");var c=h.getNode(),d=$d(a,s,c,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(c,d):h.getNode()}else{c=y(s);let e;e=h.isCompleteForChild(u)?(r=i.serverCache.getNode(),null!=(d=$d(a,s,h.getNode(),r))?h.getNode().getImmediateChild(u).updateChild(c,d):h.getNode().getImmediateChild(u)):Jd(a,u,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),u,e,c,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function sp(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var u=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=u.updateFullNode(l.getNode(),n,null);else if(u.filtersNodes()&&!l.isFiltered()){var c=l.getNode().updateChild(r,n);h=u.updateFullNode(l.getNode(),c,null)}else{c=_(r);if(!l.isCompleteForPath(r)&&1<rc(r))return t;var d=y(r),p=l.getNode().getImmediateChild(c).updateChild(d,n);h=".priority"===c?u.updatePriority(l.getNode(),p):u.updateChild(l.getNode(),c,p,d,tp,null)}c=Sd(t,h,l.isFullyInitialized()||b(r),u.filtersNodes());return ip(e,c,r,i,new rp(i,c,s),o)}function ap(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var u=new rp(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var c=_(n);if(".priority"===c)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(c);let e;e=b(p)?i:null!=(d=u.getCompleteChild(c))?".priority"===nc(p)&&d.getChild(sc(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),c,e,p,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function op(e,t){return e.eventCache.isCompleteForChild(t)}function lp(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function hp(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,u=(r=b(e)?t:new E(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;u.hasChild(e)&&(r=lp(0,i.serverCache.getNode().getImmediateChild(e),t),h=sp(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||r||(r=lp(0,i.serverCache.getNode().getImmediateChild(e),t),h=sp(n,h,new f(e),r,s,a,o,l))}),h}class up{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Xc(r.getIndex()),r=(e=r).loadsAllData()?new Xc(e.getIndex()):new(e.hasLimit()?ed:Zc)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new bd(a,i.isFullyInitialized(),n.filtersNodes()),i=new bd(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Cd(i,a),this.eventGenerator_=new Id(this.query_)}get query(){return this.query_}}function cp(e){return 0===e.eventRegistrations_.length}function dp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function pp(e,t,r,n){t.type===eu.MERGE&&null!==t.source.queryId&&(g(Nd(e.viewCache_),"We should always have a full cache before handling merges"),g(Ad(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=np(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,fp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function fp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Td(e.eventGenerator_,t,r,i)}let gp;class mp{constructor(){this.views=new Map}}function vp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),pp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(pp(s,r,n,i));return e}}function _p(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=Hd(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Gd(n,i):T.EMPTY_NODE,!1);a=Cd(new bd(e,t,!1),new bd(i,s,!1));return new up(r,a)}}function yp(e,t,n,i,s,r){var a=_p(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Qc(e,t))}),a.isFullyInitialized()&&r.push($c(a.getNode())),fp(i,r,a.getNode(),s)}}function wp(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=Cp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(dp(h,r,n)),cp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var u=e.views.get(i);u&&(a=a.concat(dp(u,r,n)),cp(u))&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query))}return o&&!Cp(e)&&s.push((g(gp,"Reference.ts has not been loaded"),new gp(t._repo,t._path))),{removed:s,events:a}}function bp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ip(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Nd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Tp(e,t){var r;return t._queryParams.loadsAllData()?kp(e):(r=t._queryIdentifier,e.views.get(r))}function Ep(e,t){return null!=Tp(e,t)}function Cp(e){return null!=kp(e)}function kp(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Sp;let Ap=1;class Np{constructor(e){this.listenProvider_=e,this.syncPointTree_=new E(null),this.pendingWriteTree_={visibleWrites:Pd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Rp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=xd(s.visibleWrites,a,o)),s.lastWriteId=n,i?Vp(e,new yd(fd(),t,r)):[]}function Pp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=Dd(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=E.fromObject(r);return Vp(e,new wd(fd(),t,o))}function xp(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(jd(e.pendingWriteTree_,t)){let t=new E(null);return null!=n.snap?t=t.set(v(),!0):Eu(n.children,e=>{t=t.set(new f(e),!0)}),Vp(e,new vd(n.path,t,r))}return[]}function Dp(e,t,r){return Vp(e,new yd(gd(),t,r))}function Op(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Ep(o,t))){var h=wp(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),u=r.syncPointTree_.findOnPath(a,(e,t)=>Cp(t));if(h&&!u){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&Cp(t))return[kp(t)];{let r=[];return t&&(r=bp(t)),Eu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<c.length;++e){var d=c[e],p=d.query,d=Bp(r,d);r.listenProvider_.startListening(Gp(p),jp(r,p),d.hashFn,d.onComplete)}}}!u&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Gp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(zp(e));r.listenProvider_.stopListening(Gp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=zp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Mp(e,t,r,n){var i,s,a=Kp(e,n);return null!=a?(i=(a=Wp(a)).path,a=a.queryId,s=oc(i,t),Hp(e,i,new yd(md(a),s,r))):[]}function Lp(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=oc(e,i);s=s||Ip(t,r),a=a||Cp(t)}),e.syncPointTree_.get(i));o?(a=a||Cp(o),s=s||Ip(o,v())):(o=new mp,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ip(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,u=Ep(o,t),c=(u||t._queryParams.loadsAllData()||(h=zp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),c=Ap++,e.queryToTagMap.set(h,c),e.tagToQueryMap.set(c,h)),Bd(e.pendingWriteTree_,i));let d=yp(o,t,r,c,s,l);return u||a||n||(h=Tp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=jp(t,e),s=Bp(t,r),s=t.listenProvider_.startListening(Gp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!Cp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&Cp(t))return[kp(t).query];{let r=[];return t&&(r=r.concat(bp(t).map(e=>e.query))),Eu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Gp(o),jp(t,o))}}return s})(e,t,h))),d}function Fp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ip(t,oc(e,n));if(r)return r});return Wd(r,n,i,t,!0)}function Up(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=oc(e,n);i=i||Ip(t,r)}),e.syncPointTree_.get(n));r?i=i||Ip(r,v()):(r=new mp,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new bd(i,!0,!1):null,o=Bd(e.pendingWriteTree_,t._path);return Ad(_p(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Vp(e,t){return function a(t,o,l,h){{if(b(t.path))return qp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ip(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=Xd(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(vp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,Bd(e.pendingWriteTree_,v()))}function qp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ip(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=Xd(o,e),i=s.operationForChild(e);i&&(l=l.concat(qp(i,t,r,n)))}),l=t?l.concat(vp(t,s,o,a)):l}function Bp(o,e){let l=e.query,h=jp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Kp(t,n))?(i=(a=Wp(a)).path,a=a.queryId,s=oc(i,r),Hp(t,i,new _d(md(a),s))):[]):(n=o,r=l._path,Vp(n,new _d(gd(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Op(o,l,null,i))}}}function jp(e,t){var r=zp(t);return e.queryToTagMap.get(r)}function zp(e){return e._path.toString()+"$"+e._queryIdentifier}function Kp(e,t){return e.tagToQueryMap.get(t)}function Wp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function Hp(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),Bd(e.pendingWriteTree_,t));return vp(n,r,i,null)}function Gp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Sp,"Reference.ts has not been loaded"),new Sp(e._repo,e._path)):e}class $p{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new $p(t)}node(){return this.node_}}class Qp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=ac(this.path_,e);return new Qp(this.syncTree_,t)}node(){return Fp(this.syncTree_,this.path_)}}let Yp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Jp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?Xp(e[".sv"],t,r):"object"==typeof e[".sv"]?Zp(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},Xp=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},Zp=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},ef=function(e,t,r,n){return rf(t,new Qp(r,e),n)},tf=function(e,t,r){return rf(e,new $p(t),r)};function rf(e,n,i){var t,r,s=e.getPriority().val(),s=Jp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Jp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Rc(t,Kc(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Rc(s))),r.forEachChild(I,(e,t)=>{var r=rf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class nf{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function sf(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=ke(n.node.children,i)||{children:{},childCount:0};n=new nf(i,n,s),r=y(r),i=_(r)}return n}function af(e){return e.node.value}function of(e,t){e.node.value=t,cf(e)}function lf(e){return 0<e.node.childCount}function hf(r,n){Eu(r.node.children,(e,t)=>{n(new nf(e,r,t))})}function uf(e){return new f(null===e.parent?e.name:uf(e.parent)+"/"+e.name)}function cf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===af(e)&&!lf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,cf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,cf(t)))}function df(e,t,r,n){n&&void 0===t||Cf(Ue(e,"value"),t,r)}function pf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Eu(t,(e,t)=>{var r=new f(e);if(Cf(n,t,ac(s,r)),".priority"===nc(r)&&!Ef(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=ic(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!bf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(lc);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&uc(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function ff(e,t,r){if(!r||void 0!==t){if(wu(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Ef(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function gf(e,t,r,n){if(!(n&&void 0===r||bf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function mf(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),kf(e,t,r,n)}function vf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let _f=/[\[\].#$\/\u0000-\u001F\u007F]/,yf=/[\[\].#$\u0000-\u001F\u007F]/,wf=10485760,bf=function(e){return"string"==typeof e&&0!==e.length&&!_f.test(e)},If=function(e){return"string"==typeof e&&0!==e.length&&!yf.test(e)},Tf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),If(e)},Ef=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!wu(e)||e&&"object"==typeof e&&Ce(e,".sv")},Cf=function(a,e,t){let o=t instanceof f?new cc(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+pc(o));if("function"==typeof e)throw new Error(a+"contains a function "+pc(o)+" with contents = "+e.toString());if(wu(e))throw new Error(a+"contains "+e.toString()+" "+pc(o));if("string"==typeof e&&e.length>wf/3&&Be(e)>wf)throw new Error(a+"contains a string greater than "+wf+" utf8 bytes "+pc(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Eu(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!bf(e)))throw new Error(a+" contains an invalid key ("+e+") "+pc(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=Be(e),dc(r),Cf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=Be(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+pc(o)+" in addition to actual children.")}},kf=function(e,t,r,n){if(!(n&&void 0===r||If(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Sf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!bf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Tf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Af{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Nf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||hc(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Rf(e,t,r){Nf(e,r),xf(e,e=>hc(e,t))}function Pf(e,t,r){Nf(e,r),xf(e,e=>uc(e,t)||uc(t,e))}function xf(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),pu&&mu("event: "+a.toString()),Pu(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let Df="repo_interrupt",Of=25;class Mf{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Af,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=hd(),this.transactionQueueTree_=new nf,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Lf(a,e,t){if(a.stats_=zu(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new od(a.repoInfo_,(e,t,r,n)=>{Vf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>qf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new gc(a.repoInfo_,e,(e,t,r,n)=>{Vf(a,e,t,r,n)},e=>{qf(a,e)},e=>{var r;r=a,Eu(e,(e,t)=>{Bf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new pd(a.stats_,a.server_),r=a.repoInfo_.toString(),ju[r]||(ju[r]=e()),ju[r]),a.infoData_=new ld,a.infoSyncTree_=new Np({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Dp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),Bf(a,"connected",!1),a.serverSyncTree_=new Np({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);Pf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Ff(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function Uf(e){return Yp({timestamp:Ff(e)})}function Vf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,u,c=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=c;0<(d=i?n?(u=Ae(r,e=>Kc(e)),t=e.serverSyncTree_,s=c,a=u,(u=Kp(t,i))?(o=(u=Wp(u)).path,u=u.queryId,l=oc(o,s),h=E.fromObject(a),Hp(t,o,new wd(md(u),l,h))):[]):(o=Kc(r),Mp(e.serverSyncTree_,c,o,i)):n?(u=Ae(r,e=>Kc(e)),s=e.serverSyncTree_,a=c,t=u,l=E.fromObject(t),Vp(s,new wd(gd(),a,l))):(h=Kc(r),Dp(e.serverSyncTree_,c,h))).length&&(p=Xf(e,c)),Pf(e.eventQueue_,p,d)}function qf(e,t){if(Bf(e,"connected",t),!1===t){var a=e;$f(a,"onDisconnectEvents");let n=Uf(a),i=hd(),s=(cd(a.onDisconnect_,v(),(e,t)=>{var r=ef(e,t,a.serverSyncTree_,n);ud(i,e,r)}),[]);cd(i,v(),(e,t)=>{s=s.concat(Dp(a.serverSyncTree_,e,t));var r=rg(a,e);Xf(a,r)}),a.onDisconnect_=hd(),Pf(a.eventQueue_,v(),s)}}function Bf(e,t,r){var n=new f("/.info/"+t),i=Kc(r),i=(e.infoData_.updateSnapshot(n,i),Dp(e.infoSyncTree_,n,i));Pf(e.eventQueue_,n,i)}function jf(e){return e.nextWriteId_++}function zf(n,i,e,t,s){$f(n,"set",{path:i.toString(),value:e,priority:t});var r=Uf(n),a=Kc(e,t),o=Fp(n.serverSyncTree_,i),o=tf(a,o,r);let l=jf(n);r=Rp(n.serverSyncTree_,i,o,l,!0),Nf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||_u("set at "+i+" failed: "+e),xp(n.serverSyncTree_,l,!r));Pf(n.eventQueue_,i,r),Qf(0,s,e,t)}),o=rg(n,i);Xf(n,o),Pf(n.eventQueue_,o,[])}function Kf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{ud(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Qf(0,i,e,t)})}function Wf(r,n,e,i){let s=Kc(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&ud(r.onDisconnect_,n,s),Qf(0,i,e,t)})}function Hf(e,t,r){let n;n=".info"===_(t._path)?Op(e.infoSyncTree_,t,r):Op(e.serverSyncTree_,t,r),Rf(e.eventQueue_,t._path,n)}function Gf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Df)}function $f(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),mu(r,...t)}function Qf(e,n,i,s){n&&Pu(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Yf(e,t,r){return Fp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Jf(o,l=o.transactionQueueTree_){if(l||tg(o,l),af(l)){var h=eg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var u=o;var c=uf(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Yf(u,c,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,oc(c,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=c;u.server_.put(s.toString(),i,t=>{$f(u,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(xp(u.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();tg(u,sf(u.transactionQueueTree_,c)),Jf(u,u.transactionQueueTree_),Pf(u.eventQueue_,c,r);for(let t=0;t<n.length;t++)Pu(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{_u("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}Xf(u,c)}},n)}}else lf(l)&&hf(l,e=>{Jf(o,e)})}function Xf(e,t){var r=Zf(e,t),n=uf(r),r=eg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],u=oc(a,h.path);let e=!1,t;if(g(null!==u,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(xp(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Of)e=!0,t="maxretry",r=r.concat(xp(i.serverSyncTree_,h.currentWriteId,!0));else{var u=Yf(i,h.path,l),c=(h.currentInputSnapshot=u,s[n].update(u.val()));if(void 0!==c){Cf("transaction failed: Data returned ",c,h.path);let e=Kc(c);"object"==typeof c&&null!=c&&Ce(c,".priority")||(e=e.updatePriority(u.getPriority()));var c=h.currentWriteId,d=Uf(i),u=tf(e,u,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=u,h.currentWriteId=jf(i),l.splice(l.indexOf(c),1),r=(r=r.concat(Rp(i.serverSyncTree_,h.path,u,h.currentWriteId,h.applyLocally))).concat(xp(i.serverSyncTree_,c,!0))}else e=!0,t="nodata",r=r.concat(xp(i.serverSyncTree_,h.currentWriteId,!0))}Pf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}tg(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Pu(o[e]);Jf(i,i.transactionQueueTree_)}return n}function Zf(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===af(n);)n=sf(n,r),t=y(t),r=_(t);return n}function eg(e,t){var r=[];return function t(r,e,n){let i=af(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);hf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function tg(t,r){var n=af(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,of(r,0<n.length?n:void 0)}hf(r,e=>{tg(t,e)})}function rg(t,e){var r=uf(Zf(t,e)),n=sf(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{ng(t,e)}),ng(t,n),function t(e,r,n,i){n&&!i&&r(e),hf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{ng(t,e)}),r}function ng(i,s){var a=af(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(xp(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?of(s,void 0):a.length=t+1,Pf(i.eventQueue_,uf(s),e);for(let n=0;n<o.length;n++)Pu(o[n])}}let ig=function(e,t){var r=sg(e),n=r.namespace,i=("firebase.com"===r.domain&&vu(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||vu("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||yu(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Uu(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},sg=function(n){let i="",s="",a="",o="",l="",h=!0,u="https",c=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(u=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):_u(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===u||"wss"===u,c=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:c,domain:s,subdomain:a,secure:h,scheme:u,pathString:o,namespace:l}},ag="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",og=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=ag.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=ag.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class lg{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class hg{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class ug{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class cg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Kf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){vf("OnDisconnect.remove",this._path);var e=new Z;return Wf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){vf("OnDisconnect.set",this._path),df("OnDisconnect.set",e,this._path,!1);var t=new Z;return Wf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){vf("OnDisconnect.setWithPriority",this._path),df("OnDisconnect.setWithPriority",e,this._path,!1),ff("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Kc(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&ud(i.onDisconnect_,s,r),Qf(0,a,e,t)})}return n.promise}update(e){vf("OnDisconnect.update",this._path),pf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),Se(r)?(mu("onDisconnect().update() called with empty data. Don't do anything."),Qf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Eu(r,(e,t)=>{var r=Kc(t);ud(n.onDisconnect_,ac(i,e),r)}),Qf(0,s,e,t)}),t.promise}}class dg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:nc(this._path)}get ref(){return new mg(this._repo,this._path)}get _queryIdentifier(){var e=ad(this._queryParams),e=au(e);return"{}"===e?"default":e}get _queryObject(){return ad(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof dg&&(t=this._repo===e._repo,r=hc(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function pg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function fg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===yc){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==bu)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Iu)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Ef(t)||null!=r&&!Ef(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Wc||e.getIndex()===Gc,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function gg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class mg extends dg{constructor(e,t){super(e,t,new td,!1)}get parent(){var e=sc(this._path);return null===e?null:new mg(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class vg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=wg(this.ref,e);return new vg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new vg(t,wg(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function _g(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?wg(e._root,t):e._root}function yg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ig(t,e._repo.repoInfo_.nodeAdmin),n=(Sf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||vu("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),_g(e,r.path.toString())}function wg(e,t){return(null===_((e=w(e))._path)?mf:kf)("child","path",t,!1),new mg(e._repo,ac(e._path,t))}function bg(e,t){e=w(e),vf("set",e._path),df("set",t,e._path,!1);var r=new Z;return zf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Ig(e,t){pf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));$f(a,"update",{path:o.toString(),value:e});let r=!0,n=Uf(a),s={};if(Eu(e,(e,t)=>{r=!1,s[e]=ef(ac(o,e),Kc(t),a.serverSyncTree_,n)}),r)mu("update() called with empty data. Don't do anything."),Qf(0,l,"ok",void 0);else{let i=jf(a);var h=Pp(a.serverSyncTree_,o,s,i);Nf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||_u("update at "+o+" failed: "+e),xp(a.serverSyncTree_,i,!r)),n=0<r.length?Xf(a,o):o;Pf(a.eventQueue_,n,r),Qf(0,l,e,t)}),Eu(e,e=>{var t=rg(a,ac(o,e));Xf(a,t)}),Pf(a.eventQueue_,o,[])}}return i.promise}function Tg(t){t=w(t);var i,s,a,e=new ug(()=>{}),e=new Eg(e);return i=t._repo,s=t,a=e,(null!=(e=Up(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Kc(e).withIndex(s._queryParams.getIndex());Lp(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Dp(i.serverSyncTree_,s._path,r):(t=jp(i.serverSyncTree_,s),Mp(i.serverSyncTree_,s._path,r,t)),Pf(i.eventQueue_,s._path,n),Op(i.serverSyncTree_,s,a,null,!0),r},e=>($f(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new vg(e,new mg(t._repo,t._path),t._queryParams.getIndex()))}class Eg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new lg("value",this,new vg(e.snapshotNode,new mg(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new hg(this,e,t):null}matches(e){return e instanceof Eg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class Cg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new hg(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=wg(new mg(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new lg(e.type,this,new vg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof Cg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function kg(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{Hf(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new ug(t,s||void 0);let o="value"===e?new Eg(a):new Cg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Lp(r.infoSyncTree_,i,t):Lp(r.serverSyncTree_,i,t),Rf(r.eventQueue_,i._path,e)}return()=>Hf(n._repo,n,o)}function Sg(e,t,r,n){return kg(e,"value",t,r,n)}function Ag(e,t,r,n){kg(e,"child_added",t,r,n)}function Ng(e,t,r,n){kg(e,"child_changed",t,r,n)}function Rg(e,t,r,n){kg(e,"child_moved",t,r,n)}function Pg(e,t,r,n){kg(e,"child_removed",t,r,n)}function xg(e,t,r){let n=null;var i=r?new ug(r):null;"value"===t?n=new Eg(i):t&&(n=new Cg(t,i)),Hf(e._repo,e,n)}class Dg{}class Og extends Dg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){df("endAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Mg extends Dg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){df("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===yc||r?nd(e,t,r):nd(e,t,bu)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Lg extends Dg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){df("startAt",this._value,e._path,!0);var t=rd(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Dg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){df("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===yc||r?rd(e,t,r):rd(e,t,Iu)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(gg(t),fg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new dg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Dg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new dg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Vg extends Dg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new dg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class qg extends Dg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){pg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Wc(t),t=id(e._queryParams,t);return fg(t),new dg(e._repo,e._path,t,!0)}}class Bg extends Dg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){pg(e,"orderByKey");var t=id(e._queryParams,yc);return fg(t),new dg(e._repo,e._path,t,!0)}}class jg extends Dg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){pg(e,"orderByPriority");var t=id(e._queryParams,I);return fg(t),new dg(e._repo,e._path,t,!0)}}class zg extends Dg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){pg(e,"orderByValue");var t=id(e._queryParams,Gc);return fg(t),new dg(e._repo,e._path,t,!0)}}class Kg extends Dg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(df("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Og(this._value,this._key)._apply(new Lg(this._value,this._key)._apply(e))}}function Wg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=mg,g(!gp,"__referenceConstructor has already been defined"),gp=t,t=mg,g(!Sp,"__referenceConstructor has already been defined"),Sp=t;let Hg="FIREBASE_DATABASE_EMULATOR_HOST",Gg={},$g=!1;function Qg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||vu("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),mu("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ig(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[Hg]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ig(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var u=i&&l?new Ou(Ou.OWNER):new Du(e.name,e.options,t),u=(Sf("Invalid Firebase Database URL",a),b(a.path)||vu("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Gg[t.name];var s;return i||(i={},Gg[t.name]=i),(s=i[e.toURLString()])&&vu("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Mf(e,$g,r,n),i[e.toURLString()]=s})(o,e,u,new xu(e,r)));return new Yg(u,e)}class Yg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Lf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new mg(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Gg[t])&&r[e.key]===e||vu(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Gf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&vu("Cannot call "+e+" on a deleted database.")}}function Jg(){Qu.IS_TRANSPORT_INITIALIZED&&_u("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Xg(){Jg(),Wu.forceDisallow()}function Zg(){Jg(),$u.forceDisallow(),Wu.forceAllow()}function em(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;vu("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&vu('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Ou(Ou.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Ou(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Uu(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function tm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Df)}function rm(e,t){gu(e,t)}let nm={".sv":"timestamp"};class im{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function sm(i,e,t){if(i=w(i),vf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=null==(r=null==t?void 0:t.applyLocally)||r;let s=new Z;var n=Sg(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new vg(r,new mg(i._repo,i._path),I),s.resolve(new im(t,n)))},l=n,h=r;$f(t,"transaction on "+a);var u,n={path:a,update:e,onComplete:o,status:null,order:cu(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Yf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(u=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{Cf("transaction failed: Data returned ",u,n.path),n.status=0;var c=sf(t.transactionQueueTree_,a),d=af(c)||[];d.push(n),of(c,d);let e;"object"==typeof u&&null!==u&&Ce(u,".priority")?(e=ke(u,".priority"),g(Ef(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=Fp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=c.getPriority().val());d=Uf(t),c=Kc(u,e),u=tf(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=u,n.currentWriteId=jf(t),Rp(t.serverSyncTree_,a,u,n.currentWriteId,n.applyLocally));Pf(t.eventQueue_,a,r),Jf(t,t.transactionQueueTree_)}return s.promise}gc.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},gc.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Yh(Vt),xt(new u("database",(e,{instanceIdentifier:t})=>Qg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),d($h,"1.0.19",ax),d($h,"1.0.19","esm2017");function am(e){var t="FIREBASE WARNING: "+e;om.warn(t)}let om=new tt("@firebase/database-compat");class lm{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,am("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class hm{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class um{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),kf("DataSnapshot.child","path",e,!1),new um(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),kf("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new um(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new dm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class cm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){var i;l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let s=cm.getCancelAndContextArgs_("Query.on",t,n);var a=(e,t)=>{r.call(s.context,new um(this.database,e),t)},o=(a.userCallback=r,a.context=s.context,null==(i=s.cancel)?void 0:i.bind(s.context));switch(e){case"value":return Sg(this._delegate,a,o),r;case"child_added":return Ag(this._delegate,a,o),r;case"child_removed":return Pg(this._delegate,a,o),r;case"child_changed":return Ng(this._delegate,a,o),r;case"child_moved":return Rg(this._delegate,a,o),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,xg(this._delegate,e,n)):xg(this._delegate,e)}get(){return Tg(this._delegate).then(e=>new um(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=cm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new um(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Sg(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Ag(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Rg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new Ug(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new cm(this.database,Wg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return kf("orderByChild","path",e,!1),new qg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new Bg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new jg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new cm(this.database,Wg(this._delegate,new zg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new cm(this.database,Wg(this._delegate,([e=null,t]=[e,t],gf("startAt","key",t,!0),new Lg(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("startAfter","key",t,!0),new Fg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("endAt","key",t,!0),new Og(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("endBefore","key",t,!0),new Mg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new cm(this.database,Wg(this._delegate,(e=e,t=t,gf("equalTo","key",t,!0),new Kg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof cm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new dm(this.database,new mg(this._delegate._repo,this._delegate._path))}}class dm extends cm{constructor(e,t){super(e,new dg(t._repo,t._path,new td,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new dm(this.database,wg(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new dm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new dm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=bg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,am("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}vf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Ig(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(vf("setWithPriority",e._path),df("setWithPriority",t,e._path,!1),ff("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return zf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,vf("remove",e._path);var e,r=bg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=sm(this._delegate,e,{applyLocally:r}).then(e=>new hm(e.committed,new um(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),vf("setPriority",r._path),ff("setPriority",e,!1),n=new Z,zf(r._repo,ac(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),vf("push",e._path),df("push",t,e._path,!0);var r=Ff(e._repo),r=og(r),n=wg(e,r);let i=wg(e,r),s;return s=null!=t?bg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new dm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new dm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return vf("Reference.onDisconnect",this._delegate._path),new lm(new cg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class pm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:Xg,forceLongPolling:Zg}}useEmulator(e,t,r={}){em(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof dm?(t=yg(this._delegate,e.toString()),new dm(this,t)):(t=_g(this._delegate,e),new dm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=yg(this._delegate,e);return new dm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Gf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),tm(this._delegate)}}pm.ServerValue={TIMESTAMP:nm,increment:e=>({".sv":{increment:e}})};hr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Yh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new u("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new u("app-check-internal",()=>i,"PRIVATE")),{instance:new pm(Qg(e,l,h,t,a),e),namespace:s}}});let fm=pm.ServerValue;(t=lr).INTERNAL.registerComponent(new u("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new pm(n,r)},"PUBLIC").setServiceProps({Reference:dm,Query:cm,Database:pm,DataSnapshot:um,enableLogging:rm,INTERNAL:hr,ServerValue:fm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.0.10");var gm,mm,vm,_m,ym,wm,bm,Im,Tm,Em,Cm,km,Sm="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Am=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function h(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new h([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new h([0|e],e<0?-1:0);var t,r,n}function u(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(u(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new h(t,0)}var c=o(0),l=o(1),d=o(16777216);function p(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function f(e){return-1==e.h}function g(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new h(r,~e.h).add(l)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=u(r)).j(t);f(a)||0<a.l(e);)a=(s=u(r-=n)).j(t);p(s)&&(s=l),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new h(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new h(i,e.h)}(e=h.prototype).m=function(){if(f(this))return-g(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(f(this))return"-"+g(this).toString(e);for(var t=u(Math.pow(e,6)),r=this,n="";;){var i=y(r,t).g,s=((0<(r=m(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new h(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(p(this)||p(e))return c;if(f(this))return f(e)?g(this).j(g(e)):g(g(this).j(e));if(f(e))return g(this.j(g(e)));if(this.l(d)<0&&e.l(d)<0)return u(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,v(r,2*n+2*i),r[2*n+2*i+1]+=s*l,v(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,v(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,v(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new h(r,0)},e.A=function(e){return y(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new h(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new h(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new h(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,mm=r,h.prototype.multiply=h.prototype.j,h.prototype.modulo=h.prototype.A,h.prototype.compare=h.prototype.l,h.prototype.toNumber=h.prototype.m,h.prototype.getBits=h.prototype.i,h.fromNumber=u,h.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=u(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=u(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(u(o));return i},gm=h}).apply(void 0!==Sm?Sm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,R="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var P=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Am&&Am];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=P;t=t.split(".");for(var i=0;i<t.length-1;i++){var U=t[i];if(!(U in n))break e;n=n[U]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&R(n,t,{configurable:!0,writable:!0,value:r})}var V=V||{},x=this||self;function q(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function h(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function B(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function m(e,t,r){return(m=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?B:j).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function K(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function W(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(q(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function D(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=x.navigator;return(e=e&&e.userAgent)||""}function H(e){return H[" "](e),e}H[" "]=function(){};var G=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function $(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function Q(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var X=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=X.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=x.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{x.setTimeout(()=>{throw e},0)})(e)}var t=X;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function u(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}u.prototype.s=!1,u.prototype.ma=function(){this.s||(this.s=!0,this.N())},u.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!x.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};x.addEventListener("test",r,t),x.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(G){e:{try{H(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},p=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function he(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ue(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ue(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function pe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=we(n);return t&&t[p]?t.L(r,n,h(i)?!!i.capture:!!i,s):fe(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)pe(e,t[s],r,n,i);return null}return r=we(r),e&&e[p]?e.K(t,r,h(n)?!!n.capture:!!n,i):fe(e,t,r,!1,n,i)}function fe(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=h(i)?!!i.capture:!!i,o=_e(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ve;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(me(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ge(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[p]?he(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(me(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=_e(t))?(he(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function me(e){return e in de?de[e]:de[e]="on"+e}function ve(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ge(e),r.call(n,t))}function _e(e){return(e=e[ce])instanceof le?e:null}var ye="__closure_events_fn_"+(1e9*Math.random()>>>0);function we(t){return"function"==typeof t?t:(t[ye]||(t[ye]=function(e){return t.handleEvent(e)}),t[ye])}function f(){u.call(this),this.i=new le(this),(this.M=this).F=null}function g(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,J(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&he(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=m(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:x.setTimeout(e,t||0)}s(f,u),f.prototype[p]=!0,f.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=h(i)?!!i.capture:!!i,n=we(n),t&&t[p]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=ue(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&_e(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ue(r,n,i,s):t)?r[t]:null)&&ge(n)}(this,e,t,r,n)},f.prototype.N=function(){if(f.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},f.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},f.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends u{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(x.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function v(e){u.call(this),this.h=e,this.g={}}s(v,u);var Ee=[];function Ce(e){$(e.g,function(e,t){this.g.hasOwnProperty(t)&&ge(e)},e),e.g={}}v.prototype.N=function(){v.aa.N.call(this),Ce(this)},v.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var ke=x.JSON.stringify,Se=x.JSON.parse,Ae=class{stringify(e){return x.JSON.stringify(e,void 0)}parse(e){return x.JSON.parse(e,void 0)}};function Ne(){}function Re(e){return e.h||(e.h=e.i())}function Pe(){}Ne.prototype.h=null;var xe={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function De(){c.call(this,"d")}function Oe(){c.call(this,"c")}s(De,c),s(Oe,c);var _={},Me=null;function Le(){return Me=Me||new f}function Fe(e){c.call(this,_.La,e)}function Ue(){var e=Le();g(e,new Fe(e))}function Ve(e,t){c.call(this,_.STAT_EVENT,e),this.stat=t}function O(e){var t=Le();g(t,new Ve(t,e))}function qe(e,t){c.call(this,_.Ma,e),this.size=t}function Be(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return x.setTimeout(function(){e()},t)}function je(){this.g=!0}function M(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return ke(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}_.La="serverreachability",s(Fe,c),_.STAT_EVENT="statevent",s(Ve,c),_.Ma="timingevent",s(qe,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ke={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function We(){}function y(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new v(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new He}function He(){this.i=null,this.g="",this.h=!1}s(We,Ne),We.prototype.g=function(){return new XMLHttpRequest},We.prototype.i=function(){return{}};var Ge=new We,$e={},Qe={};function Ye(e,t,r){e.L=1,e.v=vt(b(t)),e.m=r,e.P=!0,Je(e,null)}function Je(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Rt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new He,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(m(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,h,u,c,s=0;s<i.length;s++){var d=pe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?Q(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Ue(),a=e.i,o=e.u,l=e.A,h=e.l,u=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+h+") [attempt "+u+"]: "+o+"\n"+l+"\n"+e})}function Xe(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=Be(m(e.ba,e),t)}function tt(e){e.B&&(x.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function L(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Ce(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&<(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),O(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=Be(m(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else S(r,11)}else if(!e.K&&r.g!=e||ar(r),!D(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,u,c,d,p,f,g=i[t];r.T=g[0],g=g[1],2==r.G?"c"==g[0]?(r.K=g[1],r.ia=g[2],null!=(s=g[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=g[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(u=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(u.j=u.l,u.g=new Set,u.h&&(ht(u,u.h),u.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=ur(n,n.J?n.ia:null,n.W),d.K?(ut(n.h,d),p=d,(f=n.L)&&(p.I=f),p.B&&(tt(p),Ze(p)),n.g=d):rr(n),0<r.i.length&&Xt(r)):"stop"!=g[0]&&"close"!=g[0]||S(r,7):3==r.G&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?S(r,7):Qt(r):"noop"!=g[0]&&r.l&&r.l.ta(g),r.v=0)}Ue()}catch(e){}}y.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},y.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Ht(this.g)))){this.J||4!=t||7==r||Ue(),tt(this);var n=this.g.Z();this.X=n;t:if(Xe(this)){var i=Ht(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){L(this),rt(this);var o="";break t}this.h.i=new x.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,C=this.i,k=this.u,S=this.A,A=this.l,N=this.R,R=t,P=n,C.info(function(){return"XMLHTTP RESP ("+A+") [ attempt "+N+"]: "+k+"\n"+S+"\n"+R+" "+P}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,h=this.g;if((l=h.g?h.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!D(l)){var u=l;break t}}u=null}if(!(n=u)){this.o=!1,this.s=3,O(12),L(this),rt(this);break e}M(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?Qe:(T=Number(I.substring(T,E)),isNaN(T)?$e:(E+=1)+T>I.length?Qe:(I=I.slice(E,E+T),b.C=E+T,I)))==Qe){4==t&&(this.s=4,O(14),n=!1),M(this.i,this.l,null,"[Incomplete Response]");break}if(c==$e){this.s=4,O(15),M(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}M(this.i,this.l,c,null),nt(this,c)}Xe(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,O(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,O(11)):(M(this.i,this.l,o,"[Invalid Chunked Response]"),L(this),rt(this))}else M(this.i,this.l,o,null),nt(this,o);4==t&&L(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var p=this.g;var f,g,m,v={};p=(p.g&&2<=F(p)&&p.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<p.length;e++)D(p[e])||(f=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(p[e]),g=f[0],"string"==typeof(f=f[1])&&(f=f.trim(),m=v[g]||[],(v[g]=m).push(f)));var _,y=v,w=function(e){return e.join(", ")};for(_ in y)w.call(void 0,y[_],_,y)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,O(12)):(this.s=0,O(13)),L(this),rt(this)}}}}catch(e){}var b,I,T,E,C,k,S,A,N,R,P},y.prototype.cancel=function(){this.J=!0,L(this)},y.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Ue(),O(17)),L(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=x.PerformanceNavigationTiming?0<(e=x.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(x.chrome&&x.chrome.loadTimes&&x.chrome.loadTimes()&&x.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ht(e,t){e.g?e.g.add(t):e.h=t}function ut(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return K(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(q(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(q(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(q(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var pt=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function w(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof w?(this.h=e.h,ft(this,e.j),this.o=e.o,this.g=e.g,gt(this,e.s),this.l=e.l,t=e.i,(r=new St).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),mt(this,r),this.m=e.m):e&&(t=String(e).match(pt))?(this.h=!1,ft(this,t[1]||"",!0),this.o=_t(t[2]||""),this.g=_t(t[3]||"",!0),gt(this,t[4]),this.l=_t(t[5]||"",!0),mt(this,t[6]||"",!0),this.m=_t(t[7]||"")):(this.h=!1,this.i=new St(null,this.h))}function b(e){return new w(e)}function ft(e,t,r){e.j=r?_t(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function gt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function mt(e,t,r){var n,i;t instanceof St?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(At(this,t),Rt(this,r,e))},n)),n.j=i):(r||(t=yt(t,Ct)),e.i=new St(t,e.h))}function I(e,t,r){e.i.set(t,r)}function vt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function _t(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function yt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,wt),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function wt(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}w.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(yt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(yt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(yt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",yt(r,kt)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,Ct=/[#\?@]/g,kt=/#/g;function St(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function At(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Nt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Rt(e,t,r){At(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),K(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function C(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function Pt(){this.g=new Ae}function xt(e){this.l=e.Ub||null,this.j=e.eb||!1}function Dt(e,t){f.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Ot(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Mt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Lt(e)}function Lt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return $(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Ut(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function k(e){f.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=St.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Nt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Nt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(xt,Ne),xt.prototype.g=function(){return new Dt(this.l,this.j)},xt.prototype.i=(bt={},function(){return bt}),s(Dt,f),(e=Dt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Lt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||x).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Lt(this)),this.g)&&(this.readyState=3,Lt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==x.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Ot(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Mt:Lt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Mt(this))},e.Qa=function(e){this.g&&(this.response=e,Mt(this))},e.ga=function(){this.g&&Mt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Dt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(k,f);var Vt=/^https?$/i,qt=["POST","PUT"];function Bt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),Kt(e)}function jt(e){e.A||(e.A=!0,g(e,"complete"),g(e,"error"))}function zt(e){if(e.h&&void 0!==V&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(g(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(pt)[1]||null)&&x.self&&x.self.location&&(n=x.self.location.protocol.slice(0,-1)),r=!Vt.test(n?n.toLowerCase():"")),t=r),t)g(e,"complete"),g(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{Kt(e)}}}function Kt(e,t){if(e.g){Wt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||g(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Wt(e){e.I&&(x.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Ht(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Gt(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function $t(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Gt("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Gt("baseRetryDelayMs",5e3,e),this.cb=Gt("retryDelaySeedMs",1e4,e),this.Wa=Gt("forwardChannelMaxRetries",2,e),this.wa=Gt("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new Pt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Qt(e){if(Jt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new y(e,e.j,t)).L=2,t.v=vt(b(r)),r=!1,x.navigator&&x.navigator.sendBeacon)try{r=x.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&x.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}hr(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Jt(e){Yt(e),e.u&&(x.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&x.clearTimeout(e.s),e.s=null)}function Xt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Ut(n,e.m,e.o),r=new y(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ht(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&$(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?m(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;h(e)&&(r=ke(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=Be(m(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(x.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new y(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Ut(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=vt(b(t)),r.m=null,r.P=!0,Je(r,e)}function ar(e){null!=e.C&&(x.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ut(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,g(a=Le(),new qe(a,s)),Xt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=Be(m(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:S(e,5);break;case 4:S(e,10);break;case 3:S(e,6);break;default:S(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function S(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=m(e.fb,e),n=!(i=e.Xa),i=new w(i||"//www.google.com/images/cleardot.gif"),x.location&&"http"==x.location.protocol||ft(i,"https"),vt(i),(n?(t,r)=>{var n=new je;if(x.Image){let e=new Image;e.onload=z(C,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(C,n,"TestLoadImage: error",!1,r,e),e.onabort=z(C,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(C,n,"TestLoadImage: timeout",!1,r,e),x.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),C(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?C(r,0,!0,t):C(r,0,!1,t)}).catch(()=>{clearTimeout(i),C(r,0,!1,t)})})(i.toString(),r)):O(2),e.G=0,e.l&&e.l.sa(t),hr(e),Jt(e)}function hr(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(W(e.ka,t),W(e.ka,e.i),e.h.i.length=0,K(e.i),e.i.length=0),e.l.ra())}function ur(e,t,r){var n,i,s=r instanceof w?b(r):new w(r);return""!=s.g?(t&&(s.g=t+"."+s.g),gt(s,s.s)):(s=(n=x.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new w(null),s&&ft(i,s),t&&(i.g=t),n&>(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new k(new xt({eb:r})):new k(e.pa)).Ha(e.J),t}function dr(){}function pr(){}function A(e,t){f.call(this),this.g=new $t(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!D(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!D(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new N(this)}function fr(e){De.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function gr(){Oe.call(this),this.status=1}function N(e){this.g=e}(e=k.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||Ge).g(),this.v=this.o?Re(this.o):Re(Ge),this.g.onreadystatechange=m(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Bt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=x.FormData&&e instanceof x.FormData,0<=Array.prototype.indexOf.call(qt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Wt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){Bt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,g(this,"complete"),g(this,"abort"),Kt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Kt(this,!0)),k.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Se(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=$t.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){O(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=ur(this,null,this.W),Xt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new y(this,this.j,t);let e=this.o;if(this.S&&(e?J(e=Q(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Ut(i,this.m,e)),ht(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=Be(m(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,O(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),O(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),O(2)):(this.j.info("Failed to ping google.com"),O(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},pr.prototype.g=function(e,t){return new A(e,t)},s(A,f),A.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},A.prototype.close=function(){Qt(this.g)},A.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=ke(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Xt(r)},A.prototype.N=function(){this.g.l=null,delete this.j,Qt(this.g),delete this.g,A.aa.N.call(this)},s(fr,De),s(gr,Oe),s(N,dr),N.prototype.ua=function(){g(this.g,"a")},N.prototype.ta=function(e){g(this.g,new fr(e))},N.prototype.sa=function(e){g(this.g,new gr)},N.prototype.ra=function(){g(this.g,"b")},pr.prototype.createWebChannel=pr.prototype.g,A.prototype.send=A.prototype.o,A.prototype.open=A.prototype.m,Em=function(){return new pr},Tm=Le,Im=_,bm={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,wm=ze,Ke.COMPLETE="complete",ym=Ke,(Pe.EventType=xe).OPEN="a",xe.CLOSE="b",xe.ERROR="c",xe.MESSAGE="d",f.prototype.listen=f.prototype.K,_m=Pe,k.prototype.listenOnce=k.prototype.L,k.prototype.getLastError=k.prototype.Ka,k.prototype.getLastErrorCode=k.prototype.Ba,k.prototype.getStatus=k.prototype.Z,k.prototype.getResponseJson=k.prototype.Oa,k.prototype.getResponseText=k.prototype.oa,k.prototype.send=k.prototype.ea,k.prototype.setWithCredentials=k.prototype.Ha,vm=k}).apply(void 0!==Am?Am:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Nm="@firebase/firestore";class Rm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Rm.UNAUTHENTICATED=new Rm(null),Rm.GOOGLE_CREDENTIALS=new Rm("google-credentials-uid"),Rm.FIRST_PARTY=new Rm("first-party-uid"),Rm.MOCK_USER=new Rm("mock-user");let Pm="11.9.0",xm=new tt("@firebase/firestore");function Dm(){return xm.logLevel}function C(e,...t){var r;xm.logLevel<=c.DEBUG&&(r=t.map(Lm),xm.debug(`Firestore (${Pm}): `+e,...r))}function Om(e,...t){var r;xm.logLevel<=c.ERROR&&(r=t.map(Lm),xm.error(`Firestore (${Pm}): `+e,...r))}function Mm(e,...t){var r;xm.logLevel<=c.WARN&&(r=t.map(Lm),xm.warn(`Firestore (${Pm}): `+e,...r))}function Lm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function k(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Fm(e,n,r)}function Fm(e,t,r){let n=`FIRESTORE (${Pm}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Om(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Fm(t,i,n)}let A={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 N extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Um{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class Vm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class qm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Rm.UNAUTHENTICATED))}shutdown(){}}class Bm{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class jm{constructor(e){this.t=e,this.currentUser=Rm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Um,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Um,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{C("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(C("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Um))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(C("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new Vm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new Rm(e)}}class zm{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=Rm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Km{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new zm(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(Rm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Wm{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Hm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&C("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,C("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{C("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):C("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Wm(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new Wm(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Gm(){return new TextEncoder}class $m{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function R(e,t){return e<t?-1:t<e?1:0}function Qm(e,t){let r=0;for(;r<e.length&&r<t.length;){var n,i=e.codePointAt(r),s=t.codePointAt(r);if(i!==s)return!(i<128&&s<128)&&0!==(n=((e,t)=>{for(let r=0;r<e.length&&r<t.length;++r)if(e[r]!==t[r])return R(e[r],t[r]);return R(e.length,t.length)})((n=Gm()).encode(Ym(e,r)),n.encode(Ym(t,r))))?n:R(i,s);r+=65535<i?2:1}return R(e.length,t.length)}function Ym(e,t){return 65535<e.codePointAt(t)?e.substring(t,t+2):e.substring(t,t+1)}function Jm(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Xm(e){return e+"\0"}let Zm=-62135596800;class ev{static now(){return ev.fromMillis(Date.now())}static fromDate(e){return ev.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new ev(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new N(A.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new N(A.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<Zm)throw new N(A.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new N(A.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?R(this.nanoseconds,e.nanoseconds):R(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds-Zm;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class P{static fromTimestamp(e){return new P(e)}static min(){return new P(new ev(0,0))}static max(){return new P(new ev(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let tv="__name__";class rv{constructor(e,t,r){void 0===t?t=0:t>e.length&&k(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&k(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===rv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof rv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=rv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return R(t.length,r.length)}static compareSegments(e,t){var r=rv.isNumericId(e),n=rv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?rv.extractNumericId(e).compare(rv.extractNumericId(t)):Qm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return gm.fromString(e.substring(4,e.length-2))}}class x extends rv{construct(e,t,r){return new x(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new N(A.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new x(r)}static emptyPath(){return new x([])}}let nv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class iv extends rv{construct(e,t,r){return new iv(e,t,r)}static isValidIdentifier(e){return nv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=iv.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===tv}static keyField(){return new iv([tv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new N(A.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new N(A.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new N(A.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new N(A.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new iv(e)}static emptyPath(){return new iv([])}}class D{constructor(e){this.path=e}static fromPath(e){return new D(x.fromString(e))}static fromName(e){return new D(x.fromString(e).popFirst(5))}static empty(){return new D(x.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===x.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return x.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new D(new x(e.slice()))}}let sv=-1;class av{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function ov(e){return e.fields.find(e=>2===e.kind)}function lv(e){return e.fields.filter(e=>2!==e.kind)}av.UNKNOWN_ID=-1;class hv{constructor(e,t){this.fieldPath=e,this.kind=t}}class uv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new uv(0,pv.min())}}function cv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=P.fromTimestamp(1e9===n?new ev(r+1,0):new ev(r,n));return new pv(r,D.empty(),t)}function dv(e){return new pv(e.readTime,e.key,sv)}class pv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new pv(P.min(),D.empty(),sv)}static max(){return new pv(P.max(),D.empty(),sv)}}function fv(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=D.comparator(e.documentKey,t.documentKey))?r:R(e.largestBatchId,t.largestBatchId)}let gv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class mv{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function vv(e){if(e.code!==A.FAILED_PRECONDITION||e.message!==gv)throw e;C("LocalStore","Unexpectedly lost primary lease")}class O{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&k(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new O((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof O?t:O.resolve(t)}catch(e){return O.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):O.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):O.reject(t)}static resolve(r){return new O((e,t)=>{e(r)})}static reject(r){return new O((e,t)=>{t(r)})}static waitFor(e){return new O((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=O.resolve(!1);for(let r of e)t=t.next(e=>e?O.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new O((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new O((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let _v="SimpleDb";class yv{static open(e,t,r,n){try{return new yv(t,e.transaction(n,r))}catch(e){throw new Tv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Um,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new Tv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=Av(e.target.error);this.S.reject(new Tv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(C(_v,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}v(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Cv(t)}}class wv{static delete(e){return C(_v,"Removing database:",e),kv(H().indexedDB.deleteDatabase(e)).toPromise()}static C(){var e,t,r;return!(!me()||!wv.F()&&(e=ae(),t=0<(t=wv.M(e))&&t<10,r=0<(r=bv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){var e;return"undefined"!=typeof process&&"YES"===(null==(e=process.__PRIVATE_env)?void 0:e.O)}static N(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.B=r,this.L=null,12.2===wv.M(ae())&&Om("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async k(s){return this.db||(C(_v,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new Tv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new N(A.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new N(A.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new Tv(s,t))},i.onupgradeneeded=e=>{C(_v,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;if(null!==this.L&&this.L!==e.oldVersion)throw new Error(`refusing to open IndexedDB database due to potential corruption of the IndexedDB database data; this corruption could be caused by clicking the "clear site data" button in a web browser; try reloading the web page to re-initialize the IndexedDB database: lastClosedDbVersion=${this.L}, event.oldVersion=${e.oldVersion}, event.newVersion=${e.newVersion}, db.version=`+t.version);this.B.q(t,i.transaction,e.oldVersion,this.version).next(()=>{C(_v,"Database upgrade to version "+this.version+" complete")})}}),this.db.addEventListener("close",e=>{var t=e.target;this.L=t.version},{passive:!0})),this.$&&(this.db.onversionchange=e=>this.$(e)),this.db}U(t){this.$=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.k(r);let t=yv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.v(),e)).catch(e=>(t.abort(e),O.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(C(_v,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function bv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Iv{constructor(e){this.K=e,this.W=!1,this.G=null}get isDone(){return this.W}get j(){return this.G}set cursor(e){this.K=e}done(){this.W=!0}H(e){this.G=e}delete(){return kv(this.K.delete())}}class Tv extends N{constructor(e,t){super(A.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Ev(e){return"IndexedDbTransactionError"===e.name}class Cv{constructor(e){this.store=e}put(e,t){let r;return kv(r=void 0!==t?(C(_v,"PUT",this.store.name,e,t),this.store.put(t,e)):(C(_v,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return C(_v,"ADD",this.store.name,e,e),kv(this.store.add(e))}get(t){return kv(this.store.get(t)).next(e=>(void 0===e&&(e=null),C(_v,"GET",this.store.name,t,e),e))}delete(e){return C(_v,"DELETE",this.store.name,e),kv(this.store.delete(e))}count(){return C(_v,"COUNT",this.store.name),kv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new O((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.Y(e,(e,t)=>{r.push(t)}).next(()=>r)}}Z(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new O((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}X(e,t){C(_v,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.ee=!1,this.cursor(r));return this.Y(r,(e,t,r)=>r.delete())}te(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.Y(n,t)}ne(i){let e=this.cursor({});return new O((r,n)=>{e.onerror=e=>{var t=Av(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}Y(e,s){let a=[];return new O((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Iv(n),r=s(n.primaryKey,n.value,t);if(r instanceof O){let e=r.catch(e=>(t.done(),O.reject(e)));a.push(e)}t.isDone?i():null===t.j?n.continue():n.continue(t.j)}else i()}}).next(()=>O.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.ee?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function kv(e){return new O((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=Av(e.target.error);n(t)}})}let Sv=!1;function Av(e){let t=wv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new N("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Sv||(Sv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Nv="IndexBackfiller";class Rv{constructor(e,t){this.asyncQueue=e,this.re=t,this.task=null}start(){this.ie(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ie(e){C(Nv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.re.se();C(Nv,"Documents written: "+e)}catch(e){Ev(e)?C(Nv,"Ignoring IndexedDB error during index backfill: ",e):await vv(e)}await this.ie(6e4)})}}class Pv{constructor(e,t){this.localStore=e,this.persistence=t}async se(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.oe(e,t))}oe(e,t){let r=new Set,n=t,i=!0;return O.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return C(Nv,"Processing collection: "+t),this._e(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}_e(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this.ae(r,e)).next(e=>(C(Nv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}ae(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=dv(t);0<fv(r,n)&&(n=r)}),new pv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class xv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ue(e),this.ce=e=>t.writeSequenceNumber(e))}ue(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ce&&this.ce(e),e}}let Dv=xv.le=-1;function Ov(e){return null==e}function Mv(e){return 0===e&&1/e==-1/0}function Lv(e){return"number"==typeof e&&Number.isInteger(e)&&!Mv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Fv="";function Uv(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Vv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Fv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Vv(t)}function Vv(e){return e+Fv+""}function qv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Fv&&""===r.charAt(1),56145,{path:r}),x.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Fv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&k(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:k(61167,{path:r})}a=t+2}return new x(n)}let Bv="remoteDocuments",jv="owner",zv="owner",Kv="mutationQueues",Wv="mutations",Hv="batchId",Gv="userMutationsIndex",$v=["userId","batchId"];function Qv(e,t){return[e,Uv(t)]}function Yv(e,t,r){return[e,Uv(t),r]}let Jv={},Xv="documentMutations",Zv="remoteDocumentsV14",e_=["prefixPath","collectionGroup","readTime","documentId"],t_="documentKeyIndex",r_=["prefixPath","collectionGroup","documentId"],n_="collectionGroupIndex",i_=["collectionGroup","readTime","prefixPath","documentId"],s_="remoteDocumentGlobal",a_="remoteDocumentGlobalKey",o_="targets",l_="queryTargetsIndex",h_=["canonicalId","targetId"],u_="targetDocuments",c_=["targetId","path"],d_="documentTargetsIndex",p_=["path","targetId"],f_="targetGlobalKey",g_="targetGlobal",m_="collectionParents",v_=["collectionId","parent"],__="clientMetadata",y_="bundles",w_="namedQueries",b_="indexConfiguration",I_="collectionGroupIndex",T_="indexState",E_=["indexId","uid"],C_="sequenceNumberIndex",k_=["uid","sequenceNumber"],S_="indexEntries",A_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],N_="documentKeyIndex",R_=["indexId","uid","orderedDocumentKey"],P_="documentOverlays",x_=["userId","collectionPath","documentId"],D_="collectionPathOverlayIndex",O_=["userId","collectionPath","largestBatchId"],M_="collectionGroupOverlayIndex",L_=["userId","collectionGroup","largestBatchId"],F_="globals",U_=[Kv,Wv,Xv,Bv,o_,jv,g_,u_,__,s_,m_,y_,w_],V_=[...U_,P_],q_=[Kv,Wv,Xv,Zv,o_,jv,g_,u_,__,s_,m_,y_,w_,P_],B_=q_,j_=[...B_,b_,T_,S_],z_=j_,K_=[...j_,F_],W_=K_;class H_ extends mv{constructor(e,t){super(),this.he=e,this.currentSequenceNumber=t}}function G_(e,t){var r=e;return wv.N(r.he,t)}function $_(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Q_(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Y_(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class M{constructor(e,t){this.comparator=e,this.root=t||X_.EMPTY}insert(e,t){return new M(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,X_.BLACK,null,null))}remove(e){return new M(this.comparator,this.root.remove(e,this.comparator).copy(null,null,X_.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new J_(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new J_(this.root,e,this.comparator,!1)}getReverseIterator(){return new J_(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new J_(this.root,e,this.comparator,!0)}}class J_{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class X_{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:X_.RED,this.left=null!=n?n:X_.EMPTY,this.right=null!=i?i:X_.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new X_(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return X_.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return X_.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,X_.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,X_.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw k(43730,{key:this.key,value:this.value});if(this.right.isRed())throw k(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw k(27949);return e+(this.isRed()?0:1)}}X_.EMPTY=null,X_.RED=!0,X_.BLACK=!1,X_.EMPTY=new class{constructor(){this.size=0}get key(){throw k(57766)}get value(){throw k(16141)}get color(){throw k(16727)}get left(){throw k(29726)}get right(){throw k(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new X_(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new M(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Z_(this.data.getIterator())}getIteratorFrom(e){return new Z_(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class Z_{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function ey(e){return e.hasNext()?e.getNext():void 0}class ty{constructor(e){(this.fields=e).sort(iv.comparator)}static empty(){return new ty([])}unionWith(e){let t=new L(iv.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new ty(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Jm(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class ry extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class ny{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new ry("Invalid base64 string: "+e):e}})(e);return new ny(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new ny(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return R(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}ny.EMPTY_BYTE_STRING=new ny("");let iy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function sy(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:ay(t.seconds),nanos:ay(t.nanos)};{let e=0;var r=iy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function ay(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function oy(e){return"string"==typeof e?ny.fromBase64String(e):ny.fromUint8Array(e)}let ly="server_timestamp",hy="__type__",uy="__previous_value__",cy="__local_write_time__";function dy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[hy])?void 0:t.stringValue)===ly}function py(e){var t=e.mapValue.fields[uy];return dy(t)?py(t):t}function fy(e){var t=sy(e.mapValue.fields[cy].timestampValue);return new ev(t.seconds,t.nanos)}class gy{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let my="(default)";class vy{constructor(e,t){this.projectId=e,this.database=t||my}static empty(){return new vy("","")}get isDefaultDatabase(){return this.database===my}isEqual(e){return e instanceof vy&&e.projectId===this.projectId&&e.database===this.database}}let _y="__type__",yy="__max__",wy={mapValue:{fields:{__type__:{stringValue:yy}}}},by="__vector__",Iy="value",Ty={nullValue:"NULL_VALUE"};function Ey(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?dy(e)?4:Vy(e)?9007199254740991:Fy(e)?10:11:k(28295,{value:e})}function Cy(t,r){if(t===r)return!0;var n,i,s,a,o,e=Ey(t);if(e!==Ey(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return fy(t).isEqual(fy(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=sy(i.timestampValue),o=sy(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,oy(t.bytesValue).isEqual(oy(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,ay((n=t).geoPointValue.latitude)===ay(s.geoPointValue.latitude)&&ay(n.geoPointValue.longitude)===ay(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?ay(h.integerValue)===ay(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=ay(h.doubleValue))===(o=ay(n.doubleValue))?Mv(a)===Mv(o):isNaN(a)&&isNaN(o));case 9:return Jm(t.arrayValue.values||[],r.arrayValue.values||[],Cy);case 10:case 11:var l=t,h=r,u=l.mapValue.fields||{},c=h.mapValue.fields||{};if($_(u)!==$_(c))return!1;for(let e in u)if(u.hasOwnProperty(e)&&(void 0===c[e]||!Cy(u[e],c[e])))return!1;return!0;default:return k(52216,{left:t})}}function ky(e,t){return void 0!==(e.values||[]).find(e=>Cy(e,t))}function Sy(e,n){if(e===n)return 0;var i,s,a,o,l,h,u,c,d=Ey(e),t=Ey(n);if(d!==t)return R(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return R(e.booleanValue,n.booleanValue);case 2:return h=n,u=ay((l=e).integerValue||l.doubleValue),c=ay(h.integerValue||h.doubleValue),u<c?-1:c<u?1:u===c?0:isNaN(u)?isNaN(c)?0:-1:1;case 3:return Ay(e.timestampValue,n.timestampValue);case 4:return Ay(fy(e),fy(n));case 5:return Qm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,u=oy(l),c=oy(h),u.compareTo(c);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=R(g[t],m[t]);if(0!==e)return e}return R(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=R(ay(p.latitude),ay(f.latitude)))?o:R(ay(p.longitude),ay(f.longitude));case 9:return Ny(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=null==(o=o[Iy])?void 0:o.arrayValue,s=null==(s=s[Iy])?void 0:s.arrayValue,0!==(a=R((null==(a=null==o?void 0:o.values)?void 0:a.length)||0,(null==(a=null==s?void 0:s.values)?void 0:a.length)||0))?a:Ny(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===wy.mapValue&&_===wy.mapValue)return 0;if(v===wy.mapValue)return 1;if(_===wy.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Qm(w[r],I[r]);if(0!==e)return e;var T=Sy(y[w[r]],b[I[r]]);if(0!==T)return T}return R(w.length,I.length);default:throw k(23264,{Pe:d})}}function Ay(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?R(e,t):(r=sy(e),n=sy(t),0!==(i=R(r.seconds,n.seconds))?i:R(r.nanos,n.nanos))}function Ny(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Sy(r[i],n[i]);if(e)return e}return R(r.length,n.length)}function Ry(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=sy(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>oy(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>D.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):k(61005,{value:e})}(e)}function Py(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function xy(e){return!!e&&"integerValue"in e}function Dy(e){return!!e&&"arrayValue"in e}function Oy(e){return e&&"nullValue"in e}function My(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Ly(e){return e&&"mapValue"in e}function Fy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[_y])?void 0:t.stringValue)===by}function Uy(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){let r={mapValue:{fields:{}}};return Q_(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Uy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Uy(t.arrayValue.values[e]);return r}return Object.assign({},t)}function Vy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===yy}let qy={mapValue:{fields:{[_y]:{stringValue:by},[Iy]:{arrayValue:{}}}}};function By(e,t){var r=Sy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function jy(e,t){var r=Sy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class zy{constructor(e){this.value=e}static empty(){return new zy({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Ly(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Uy(t)}setAll(e){let r=iv.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Uy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Ly(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Cy(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Ly(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Q_(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new zy(Uy(this.value))}}class Ky{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new Ky(e,0,P.min(),P.min(),P.min(),zy.empty(),0)}static newFoundDocument(e,t,r,n){return new Ky(e,1,t,P.min(),r,n,0)}static newNoDocument(e,t){return new Ky(e,2,t,P.min(),P.min(),zy.empty(),0)}static newUnknownDocument(e,t){return new Ky(e,3,t,P.min(),P.min(),zy.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(P.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=zy.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=zy.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=P.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof Ky&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new Ky(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}})`}}class Wy{constructor(e,t){this.position=e,this.inclusive=t}}function Hy(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?D.comparator(D.fromName(s.referenceValue),r.key):Sy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Gy(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Cy(e.position[r],t.position[r]))return!1;return!0}class $y{constructor(e,t="asc"){this.field=e,this.dir=t}}class Qy{}class F extends Qy{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new rw(e,t,r):"array-contains"===t?new aw(e,r):"in"===t?new ow(e,r):"not-in"===t?new lw(e,r):"array-contains-any"===t?new hw(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?nw:iw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Sy(t,this.value)):null!==t&&Ey(this.value)===Ey(t)&&this.matchesComparison(Sy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return k(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends Qy{constructor(e,t){super(),this.filters=e,this.op=t,this.Te=null}static create(e,t){return new U(e,t)}matches(t){return Yy(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Te&&(this.Te=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Te}getFilters(){return Object.assign([],this.filters)}}function Yy(e){return"and"===e.op}function Jy(e){return"or"===e.op}function Xy(e){return Zy(e)&&Yy(e)}function Zy(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function ew(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function tw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+Ry(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(tw).join(" ,")+"}":"Filter";var t}class rw extends F{constructor(e,t,r){super(e,t,r),this.key=D.fromName(r.referenceValue)}matches(e){var t=D.comparator(e.key,this.key);return this.matchesComparison(t)}}class nw extends F{constructor(e,t){super(e,"in",t),this.keys=sw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class iw extends F{constructor(e,t){super(e,"not-in",t),this.keys=sw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function sw(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>D.fromName(e.referenceValue))}class aw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Dy(t)&&ky(t.arrayValue,this.value)}}class ow extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&ky(this.value.arrayValue,t)}}class lw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!ky(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!ky(this.value.arrayValue,t)}}class hw extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Dy(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>ky(this.value.arrayValue,e))}}class uw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Ie=null}}function cw(e,t=null,r=[],n=[],i=null,s=null,a=null){return new uw(e,t,r,n,i,s,a)}function dw(e){var t=e;if(null===t.Ie){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+Ry(e.value):Xy(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Ov(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>Ry(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>Ry(e)).join(",")),t.Ie=e}return t.Ie}function pw(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Cy(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void k(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Gy(e.startAt,t.startAt)&&Gy(e.endAt,t.endAt)}function fw(e){return D.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function gw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function mw(e,r,n){let i=Ty,s=!0;for(let n of gw(e,r)){let e=Ty,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Ty:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Py(vy.empty(),D.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Fy(a)?qy:{mapValue:{}}:k(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Ty}By({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];By({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function vw(e,r,n){let i=wy,s=!0;for(let n of gw(e,r)){let e=wy,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Py(vy.empty(),D.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?qy:"mapValue"in a?Fy(a)?{mapValue:{}}:wy:k(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=wy}0<jy({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<jy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class _w{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ee=null,this.de=null,this.Ae=null,this.startAt,this.endAt}}function yw(e,t,r,n,i,s,a,o){return new _w(e,t,r,n,i,s,a,o)}function ww(e){return new _w(e)}function bw(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function Iw(e){return null!==e.collectionGroup}function Tw(e){let n=e;if(null===n.Ee){n.Ee=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ee.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(iv.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ee.push(new $y(e,r))}),t.has(iv.keyField().canonicalString())||n.Ee.push(new $y(iv.keyField(),r))}return n.Ee}function Ew(e){var t=e;return t.de||(t.de=((e,t)=>{if("F"===e.limitType)return cw(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new $y(e.field,t)});var r=e.endAt?new Wy(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new Wy(e.startAt.position,e.startAt.inclusive):null;return cw(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Tw(e))),t.de}function Cw(e,t){var r=e.filters.concat([t]);return new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function kw(e,t,r){return new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Sw(e,t){return pw(Ew(e),Ew(t))&&e.limitType===t.limitType}function Aw(e){return dw(Ew(e))+"|lt:"+e.limitType}function Nw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>tw(e)).join(", ")}]`),Ov(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>Ry(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>Ry(e)).join(","):t})`})(Ew(e))}; limitType=${e.limitType})`}function Rw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):D.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Tw(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Tw(s),i=Hy(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Tw(s),i=Hy(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Pw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function xw(e){return(t,r)=>{let n=!1;for(var i of Tw(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?D.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Sy(n,i):k(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return k(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Dw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){Q_(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Y_(this.inner)}size(){return this.innerSize}}let Ow=new M(D.comparator);let Mw=new M(D.comparator);function Lw(...e){let t=Mw;for(var r of e)t=t.insert(r.key,r);return t}function Fw(e){let r=Mw;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Uw(){return new Dw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Vw=new M(D.comparator),qw=new L(D.comparator);function V(...e){let t=qw;for(var r of e)t=t.add(r);return t}let Bw=new L(R);function jw(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Mv(t)?"-0":t}}function zw(e){return{integerValue:""+e}}function Kw(e,t){return Lv(t)?zw(t):jw(e,t)}class Ww{constructor(){this._=void 0}}function Hw(e,t){return e instanceof Xw?xy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Gw extends Ww{}class $w extends Ww{constructor(e){super(),this.elements=e}}function Qw(e,t){var r=eb(t);for(let t of e.elements)r.some(e=>Cy(e,t))||r.push(t);return{arrayValue:{values:r}}}class Yw extends Ww{constructor(e){super(),this.elements=e}}function Jw(e,t){let r=eb(t);for(let t of e.elements)r=r.filter(e=>!Cy(e,t));return{arrayValue:{values:r}}}class Xw extends Ww{constructor(e,t){super(),this.serializer=e,this.Re=t}}function Zw(e){return ay(e.integerValue||e.doubleValue)}function eb(e){return Dy(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class tb{constructor(e,t){this.field=e,this.transform=t}}class rb{constructor(e,t){this.version=e,this.transformResults=t}}class nb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new nb}static exists(e){return new nb(void 0,e)}static updateTime(e){return new nb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function ib(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class sb{}function ab(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new fb(e.key,nb.none()):new hb(e.key,e.data,nb.none());{var n,i=e.data,s=zy.empty();let t=new L(iv.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new ub(e.key,s,new ty(t.toArray()),nb.none())}}function ob(e,t,r,n){return e instanceof hb?(s=t,a=r,o=n,ib((i=e).precondition,s)?(l=i.value.clone(),h=pb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof ub?(i=t,o=r,s=n,ib((a=e).precondition,i)?(h=pb(a.fieldTransforms,s,i),(l=i.data).setAll(cb(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,ib(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function lb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Jm(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof $w&&t instanceof $w||e instanceof Yw&&t instanceof Yw?Jm(e.elements,t.elements,Cy):e instanceof Xw&&t instanceof Xw?Cy(e.Re,t.Re):e instanceof Gw&&t instanceof Gw)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class hb extends sb{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class ub extends sb{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function cb(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function db(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Ve:r.length,me:e.length});for(let u=0;u<r.length;u++){var o=e[u],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[u],n instanceof $w?Qw(n,i):n instanceof Yw?Jw(n,i):s))}return a}function pb(e,r,n){var i,s,a,o,l,h,u,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,u=h=l=void 0,s instanceof Gw?(o=o,h=a,u={fields:{[hy]:{stringValue:ly},[cy]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&dy(h)?py(h):h)&&(u.fields[uy]=h),{mapValue:u}):s instanceof $w?Qw(s,a):s instanceof Yw?Jw(s,a):(u=Hw(o=s,a),l=Zw(u)+Zw(o.Re),xy(u)&&xy(o.Re)?zw(l):jw(o.serializer,l))))}return c}class fb extends sb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class gb extends sb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class mb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var u=this.mutations[c];u.key.isEqual(e.key)&&(r=u,n=e,i=h[c],l=u=o=a=s=void 0,r instanceof hb?(a=n,o=i,u=(s=r).value.clone(),l=db(s.fieldTransforms,a,o.transformResults),u.setAll(l),a.convertToFoundDocument(o.version,u).setHasCommittedMutations()):r instanceof ub?(s=n,a=i,ib((o=r).precondition,s)?(l=db(o.fieldTransforms,s,a.transformResults),(u=s.data).setAll(cb(o)),u.setAll(l),s.convertToFoundDocument(a.version,u).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=ob(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=ob(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Uw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=ab(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(P.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&Jm(this.mutations,e.mutations,(e,t)=>lb(e,t))&&Jm(this.baseMutations,e.baseMutations,(e,t)=>lb(e,t))}}class vb{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{fe:e.mutations.length,ge:r.length});let n=Vw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new vb(e,t,r,n)}}class _b{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
24
24
|
largestBatchId: ${this.largestBatchId},
|
|
25
25
|
mutation: ${this.mutation.toString()}
|
|
26
|
-
}`}}class yb{constructor(e,t){this.count=e,this.unchangedNames=t}}function wb(e){switch(e){case A.OK:return k(64938);case A.CANCELLED:case A.UNKNOWN:case A.DEADLINE_EXCEEDED:case A.RESOURCE_EXHAUSTED:case A.INTERNAL:case A.UNAVAILABLE:case A.UNAUTHENTICATED:return!1;case A.INVALID_ARGUMENT:case A.NOT_FOUND:case A.ALREADY_EXISTS:case A.PERMISSION_DENIED:case A.FAILED_PRECONDITION:case A.ABORTED:case A.OUT_OF_RANGE:case A.UNIMPLEMENTED:case A.DATA_LOSS:return!0;default:return k(15467,{code:e})}}function bb(e){if(void 0===e)return Om("GRPC error has no .code"),A.UNKNOWN;switch(e){case Cm.OK:return A.OK;case Cm.CANCELLED:return A.CANCELLED;case Cm.UNKNOWN:return A.UNKNOWN;case Cm.DEADLINE_EXCEEDED:return A.DEADLINE_EXCEEDED;case Cm.RESOURCE_EXHAUSTED:return A.RESOURCE_EXHAUSTED;case Cm.INTERNAL:return A.INTERNAL;case Cm.UNAVAILABLE:return A.UNAVAILABLE;case Cm.UNAUTHENTICATED:return A.UNAUTHENTICATED;case Cm.INVALID_ARGUMENT:return A.INVALID_ARGUMENT;case Cm.NOT_FOUND:return A.NOT_FOUND;case Cm.ALREADY_EXISTS:return A.ALREADY_EXISTS;case Cm.PERMISSION_DENIED:return A.PERMISSION_DENIED;case Cm.FAILED_PRECONDITION:return A.FAILED_PRECONDITION;case Cm.ABORTED:return A.ABORTED;case Cm.OUT_OF_RANGE:return A.OUT_OF_RANGE;case Cm.UNIMPLEMENTED:return A.UNIMPLEMENTED;case Cm.DATA_LOSS:return A.DATA_LOSS;default:return k(39323,{code:e})}}(e=Cm=Cm||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";let Ib=new gm([4294967295,4294967295],0);function Tb(e){var t=Gm().encode(e),r=new mm;return r.update(t),new Uint8Array(r.digest())}function Eb(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new gm([r,n],0),new gm([i,t],0)]}class Cb{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new kb("Invalid padding: "+t);if(r<0)throw new kb("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new kb("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new kb("Invalid padding when bitmap length is 0: "+t);this.pe=8*e.length-t,this.ye=gm.fromNumber(this.pe)}we(e,t,r){let n=e.add(t.multiply(gm.fromNumber(r)));return(n=1===n.compare(Ib)?new gm([n.getBits(0),n.getBits(1)],0):n).modulo(this.ye).toNumber()}Se(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.pe)return!1;let t=Tb(e),[r,n]=Eb(t);for(let i=0;i<this.hashCount;i++){let e=this.we(r,n,i);if(!this.Se(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new Cb(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.pe){let e=Tb(i),[t,r]=Eb(e);for(let n=0;n<this.hashCount;n++){let e=this.we(t,r,n);this.be(e)}}}be(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class kb extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Sb{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,Ab.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Sb(P.min(),n,new M(R),Ow,V())}}class Ab{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new Ab(r,t,V(),V(),V())}}class Nb{constructor(e,t,r,n){this.De=e,this.removedTargetIds=t,this.key=r,this.ve=n}}class Rb{constructor(e,t){this.targetId=e,this.Ce=t}}class Pb{constructor(e,t,r=ny.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Db{constructor(){this.Fe=0,this.Me=Mb(),this.xe=ny.EMPTY_BYTE_STRING,this.Oe=!1,this.Ne=!0}get current(){return this.Oe}get resumeToken(){return this.xe}get Be(){return 0!==this.Fe}get Le(){return this.Ne}ke(e){0<e.approximateByteSize()&&(this.Ne=!0,this.xe=e)}qe(){let r=V(),n=V(),i=V();return this.Me.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:k(38017,{changeType:t})}}),new Ab(this.xe,this.Oe,r,n,i)}Qe(){this.Ne=!1,this.Me=Mb()}$e(e,t){this.Ne=!0,this.Me=this.Me.insert(e,t)}Ue(e){this.Ne=!0,this.Me=this.Me.remove(e)}Ke(){this.Fe+=1}We(){--this.Fe,S(0<=this.Fe,3241,{Fe:this.Fe})}Ge(){this.Ne=!0,this.Oe=!0}}class xb{constructor(e){this.ze=e,this.je=new Map,this.He=Ow,this.Je=Ob(),this.Ye=Ob(),this.Ze=new M(R)}Xe(e){for(var t of e.De)e.ve&&e.ve.isFoundDocument()?this.et(t,e.ve):this.tt(t,e.key,e.ve);for(var r of e.removedTargetIds)this.tt(r,e.key,e.ve)}nt(r){this.forEachTarget(r,e=>{var t=this.rt(e);switch(r.state){case 0:this.it(e)&&t.ke(r.resumeToken);break;case 1:t.We(),t.Be||t.Qe(),t.ke(r.resumeToken);break;case 2:t.We(),t.Be||this.removeTarget(e);break;case 3:this.it(e)&&(t.Ge(),t.ke(r.resumeToken));break;case 4:this.it(e)&&(this.st(e),t.ke(r.resumeToken));break;default:k(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.je.forEach((e,t)=>{this.it(t)&&r(t)})}ot(n){let i=n.targetId,e=n.Ce.count,t=this._t(i);if(t){var r=t.target;if(fw(r))if(0===e){let e=new x(r.path);this.tt(i,e,Ky.newNoDocument(e,P.min()))}else S(1===e,20013,{expectedCount:e});else{let r=this.ut(i);if(r!==e){let e=this.ct(n),t=e?this.lt(e,n,r):1;if(0!==t){this.st(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ze=this.Ze.insert(i,e)}}}}}ct(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=oy(t).toUint8Array()}catch(e){if(e instanceof ry)return Mm("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new Cb(i,r,n)}catch(e){return Mm(e instanceof kb?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.pe?null:s}lt(e,t,r){return t.Ce.count===r-this.Tt(e,t.targetId)?0:2}Tt(r,n){var e=this.ze.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.ze.Pt(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.tt(n,e,null),i++)}),i}It(n){let i=new Map,s=(this.je.forEach((e,t)=>{var r=this._t(t);if(r){if(e.current&&fw(r.target)){let e=new x(r.target.path);this.Et(e).has(t)||this.dt(t,e)||this.tt(t,e,Ky.newNoDocument(e,n))}e.Le&&(i.set(t,e.qe()),e.Qe())}}),V());this.Ye.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this._t(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.He.forEach((e,t)=>t.setReadTime(n));var e=new Sb(n,i,this.Ze,this.He,s);return this.He=Ow,this.Je=Ob(),this.Ye=Ob(),this.Ze=new M(R),e}et(e,t){var r;this.it(e)&&(r=this.dt(e,t.key)?2:0,this.rt(e).$e(t.key,r),this.He=this.He.insert(t.key,t),this.Je=this.Je.insert(t.key,this.Et(t.key).add(e)),this.Ye=this.Ye.insert(t.key,this.At(t.key).add(e)))}tt(e,t,r){var n;this.it(e)&&(n=this.rt(e),this.dt(e,t)?n.$e(t,1):n.Ue(t),this.Ye=this.Ye.insert(t,this.At(t).delete(e)),this.Ye=this.Ye.insert(t,this.At(t).add(e)),r)&&(this.He=this.He.insert(t,r))}removeTarget(e){this.je.delete(e)}ut(e){var t=this.rt(e).qe();return this.ze.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ke(e){this.rt(e).Ke()}rt(e){let t=this.je.get(e);return t||(t=new Db,this.je.set(e,t)),t}At(e){let t=this.Ye.get(e);return t||(t=new L(R),this.Ye=this.Ye.insert(e,t)),t}Et(e){let t=this.Je.get(e);return t||(t=new L(R),this.Je=this.Je.insert(e,t)),t}it(e){var t=null!==this._t(e);return t||C("WatchChangeAggregator","Detected inactive target",e),t}_t(e){var t=this.je.get(e);return t&&t.Be?null:this.ze.Rt(e)}st(t){this.je.set(t,new Db),this.ze.getRemoteKeysForTarget(t).forEach(e=>{this.tt(t,e,null)})}dt(e,t){return this.ze.getRemoteKeysForTarget(e).has(t)}}function Ob(){return new M(x.comparator)}function Mb(){return new M(x.comparator)}let Lb={asc:"ASCENDING",desc:"DESCENDING"},Fb={"<":"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"},Ub={and:"AND",or:"OR"};class Vb{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function qb(e,t){return e.useProto3Json||Ov(t)?t:{value:t}}function jb(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function Bb(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function zb(e){return S(!!e,49232),P.fromTimestamp((t=sy(e),new ev(t.seconds,t.nanos)));var t}function Kb(e,t){return Wb(e,t).canonicalString()}function Wb(e,t){e=e;var r=new D(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function Hb(e){var t=D.fromString(e);return S(dI(t),10190,{key:t.toString()}),t}function Gb(e,t){return Kb(e.databaseId,t.path)}function $b(e,t){var r=Hb(t);if(r.get(1)!==e.databaseId.projectId)throw new N(A.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new N(A.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(Xb(r))}function Qb(e,t){return Kb(e.databaseId,t)}function Yb(e){var t=Hb(e);return 4===t.length?D.emptyPath():Xb(t)}function Jb(e){return new D(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Xb(e){return S(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function Zb(e,t,r){return{name:Gb(e,t),fields:r.value.mapValue.fields}}function eI(e,t,r){var n=$b(e,t.name),i=zb(t.updateTime),s=t.createTime?zb(t.createTime):P.min(),a=new zy({mapValue:{fields:t.fields}}),n=Ky.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function tI(e,t){let r;if(t instanceof hb)r={update:Zb(e,t.key,t.value)};else if(t instanceof fb)r={delete:Gb(e,t.key)};else if(t instanceof ub)r={update:Zb(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof gb))return k(16599,{ft:t.type});r={verify:Gb(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Gw)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof $w)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Yw)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Xw)return{fieldPath:e.field.canonicalString(),increment:t.Re};throw k(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,jb(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:k(27497))),r;var n}function rI(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?nb.updateTime(zb(s.updateTime)):void 0!==s.exists?nb.exists(s.exists):nb.none():nb.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)S("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new Gw;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new $w(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Yw(e)}else"increment"in r?t=new Xw(e,r.increment):k(16584,{proto:r});var n=iv.fromServerFormat(r.fieldPath);return new tb(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=$b(i,t.update.name),l=new zy({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new ty(a.map(e=>iv.fromServerFormat(e)));return new ub(o,l,e,r,n)}return new hb(o,l,r,n)}if(t.delete){let e=$b(i,t.delete);return new fb(e,r)}if(t.verify){let e=$b(i,t.verify);return new gb(e,r)}return k(1463,{proto:t})}function nI(e,n){return e&&0<e.length?(S(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?zb(t.updateTime):zb(r);return e.isEqual(P.min())&&(e=zb(r)),new rb(e,t.transformResults||[])}})):[]}function iI(e,t){return{documents:[Qb(e,t.path)]}}function sI(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=Qb(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof F?(e=>{if("=="===e.op){if(My(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NAN"}};if(Oy(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(My(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NOT_NAN"}};if(Oy(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uI(e.field),op:lI(e.op),value:e.value}}})(e):e instanceof U?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:hI(e.op),filters:t}}})(e):k(54877,{filter:e})}(U.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:uI((e=e).field),direction:(e=e.dir,Lb[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=qb(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{gt:r,parent:i}}function aI(e){let t=Yb(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){S(1===i,65062);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=cI(i.unaryFilter.field);return F.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=cI(i.unaryFilter.field);return F.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=cI(i.unaryFilter.field);return F.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=cI(i.unaryFilter.field);return F.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return k(61313);default:return k(60726)}})(e):void 0!==e.fieldFilter?(e=>F.create(cI(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return k(58110);default:return k(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>U.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return k(1026)}})(e.compositeFilter.op)))(e):k(30097,{filter:e})}(e))instanceof U&&Xy(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new $y(cI(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),h=(n.limit&&(l=(e=n.limit,Ov(i="object"==typeof e?e.value:e)?null:i)),null),u=(n.startAt&&(h=(e=n.startAt,i=!!e.before,r=e.values||[],new Wy(r,i))),null);return n.endAt&&(u=(e=n.endAt,r=!e.before,i=e.values||[],new Wy(i,r))),yw(t,s,o,a,l,"F",h,u)}function oI(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return k(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function lI(e){return Fb[e]}function hI(e){return Ub[e]}function uI(e){return{fieldPath:e.canonicalString()}}function cI(e){return iv.fromServerFormat(e.fieldPath)}function dI(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class pI{constructor(e,t,r,n,i=P.min(),s=P.min(),a=ny.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new pI(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class fI{constructor(e){this.wt=e}}function gI(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:mI(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Gb(e=e.wt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:jb(e,r.version.toTimestamp()),createTime:jb(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:vI(t.version)};else{if(!t.isUnknownDocument())return k(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:vI(t.version)}}return i}function mI(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function vI(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function _I(e){var t=new ev(e.seconds,e.nanoseconds);return P.fromTimestamp(t)}function yI(t,r){let e=(r.baseMutations||[]).map(e=>rI(t.wt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>rI(t.wt,e)),i=ev.fromMillis(r.localWriteTimeMs);return new mb(r.batchId,i,e,n)}function wI(e){var t,r=_I(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?_I(e.lastLimboFreeSnapshotVersion):P.min(),i=void 0!==e.query.documents?(t=e.query,S(1===(i=t.documents.length),1966,{count:i}),Ew(ww(Yb(t.documents[0])))):Ew(aI(e.query));return new pI(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,ny.fromBase64String(e.resumeToken))}function bI(e,t){var r=vI(t.snapshotVersion),n=vI(t.lastLimboFreeSnapshotVersion),i=fw(t.target)?iI(e.wt,t.target):sI(e.wt,t.target).gt,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:dw(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function II(e){var t=aI({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?kw(t,t.limit,"L"):t}function TI(e,t){return new _b(t.largestBatchId,rI(e.wt,t.overlayMutation))}function EI(e,t){var r=t.path.lastSegment();return[e,Uv(t.path.popLast()),r]}function CI(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:vI(n.readTime),documentKey:Uv(n.documentKey.path),largestBatchId:n.largestBatchId}}class kI{getBundleMetadata(e,t){return SI(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:_I(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return SI(e).put({bundleId:(e=t).id,createTime:vI(zb(e.createTime)),version:e.version})}getNamedQuery(e,t){return AI(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:II(e.bundledQuery),readTime:_I(e.readTime)}})}saveNamedQuery(e,t){return AI(e).put({name:(e=t).name,readTime:vI(zb(e.readTime)),bundledQuery:e.bundledQuery})}}function SI(e){return G_(e,y_)}function AI(e){return G_(e,w_)}class NI{constructor(e,t){this.serializer=e,this.userId=t}static St(e,t){var r=t.uid||"";return new NI(e,r)}getOverlay(e,t){return RI(e).get(EI(this.userId,t)).next(e=>e?TI(this.serializer,e):null)}getOverlays(e,t){let r=Uw();return O.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new _b(i,t);s.push(this.bt(n,r))}),O.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Uv(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(RI(r).X(x_,t))}),O.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Uw(),i=Uv(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return RI(e).J(x_,s).next(e=>{for(var t of e){let e=TI(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Uw(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return RI(e).te({index:M_,range:n},(e,t,r)=>{var n=TI(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}bt(e,t){return RI(e).put(((e,t,r)=>{var[,n,i]=EI(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:tI(e.wt,r.mutation)}})(this.serializer,this.userId,t))}}function RI(e){return G_(e,P_)}class PI{Dt(e){return G_(e,F_)}getSessionToken(e){return this.Dt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?ny.fromUint8Array(t):ny.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.Dt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class DI{constructor(){}vt(e,t){this.Ct(e,t),t.Ft()}Ct(t,r){if("nullValue"in t)this.Mt(r,5);else if("booleanValue"in t)this.Mt(r,10),r.xt(t.booleanValue?1:0);else if("integerValue"in t)this.Mt(r,15),r.xt(ay(t.integerValue));else if("doubleValue"in t){var e=ay(t.doubleValue);isNaN(e)?this.Mt(r,13):(this.Mt(r,15),Mv(e)?r.xt(0):r.xt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Mt(r,20),"string"==typeof e&&(e=sy(e)),r.Ot(""+(e.seconds||"")),r.xt(e.nanos||0)}else"stringValue"in t?(this.Nt(t.stringValue,r),this.Bt(r)):"bytesValue"in t?(this.Mt(r,30),r.Lt(oy(t.bytesValue)),this.Bt(r)):"referenceValue"in t?this.kt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Mt(r,45),r.xt(e.latitude||0),r.xt(e.longitude||0)):"mapValue"in t?Vy(t)?this.Mt(r,Number.MAX_SAFE_INTEGER):Fy(t)?this.qt(t.mapValue,r):(this.Qt(t.mapValue,r),this.Bt(r)):"arrayValue"in t?(this.$t(t.arrayValue,r),this.Bt(r)):k(19022,{Ut:t})}Nt(e,t){this.Mt(t,25),this.Kt(e,t)}Kt(e,t){t.Ot(e)}Qt(e,t){var r=e.fields||{};this.Mt(t,55);for(let e of Object.keys(r))this.Nt(e,t),this.Ct(r[e],t)}qt(e,t){var r=e.fields||{},n=(this.Mt(t,53),Iy),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.Mt(t,15),t.xt(ay(i)),this.Nt(n,t),this.Ct(r[n],t)}$t(e,t){var r=e.values||[];this.Mt(t,50);for(let e of r)this.Ct(e,t)}kt(e,t){this.Mt(t,37),x.fromName(e).path.forEach(e=>{this.Mt(t,60),this.Kt(e,t)})}Mt(e,t){e.xt(t)}Bt(e){e.xt(2)}}DI.Wt=new DI;function xI(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class OI{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Gt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.zt(r.value),r=t.next();this.jt()}Ht(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Yt()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.zt(e);else if(e<2048)this.zt(960|e>>>6),this.zt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.zt(480|e>>>12),this.zt(128|63&e>>>6),this.zt(128|63&e);else{let e=t.codePointAt(0);this.zt(240|e>>>18),this.zt(128|63&e>>>12),this.zt(128|63&e>>>6),this.zt(128|63&e)}}this.jt()}Xt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Jt(480|e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Yt()}en(e){var t=this.tn(e),r=xI(t);this.nn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}rn(e){var t=this.tn(e),r=xI(t);this.nn(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}sn(){this._n(255),this._n(255)}an(){this.un(255),this.un(255)}reset(){this.position=0}seed(e){this.nn(e.length),this.buffer.set(e,this.position),this.position+=e.length}cn(){return this.buffer.slice(0,this.position)}tn(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}zt(e){var t=255&e;0==t?(this._n(0),this._n(255)):255==t?(this._n(255),this._n(0)):this._n(t)}Jt(e){var t=255&e;0==t?(this.un(0),this.un(255)):255==t?(this.un(255),this.un(0)):this.un(e)}jt(){this._n(0),this._n(1)}Yt(){this.un(0),this.un(1)}_n(e){this.nn(1),this.buffer[this.position++]=e}un(e){this.nn(1),this.buffer[this.position++]=~e}nn(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class MI{constructor(e){this.ln=e}Lt(e){this.ln.Gt(e)}Ot(e){this.ln.Zt(e)}xt(e){this.ln.en(e)}Ft(){this.ln.sn()}}class LI{constructor(e){this.ln=e}Lt(e){this.ln.Ht(e)}Ot(e){this.ln.Xt(e)}xt(e){this.ln.rn(e)}Ft(){this.ln.an()}}class FI{constructor(){this.ln=new OI,this.hn=new MI(this.ln),this.Pn=new LI(this.ln)}seed(e){this.ln.seed(e)}Tn(e){return 0===e?this.hn:this.Pn}cn(){return this.ln.cn()}reset(){this.ln.reset()}}class UI{constructor(e,t,r,n){this.In=e,this.En=t,this.dn=r,this.An=n}Rn(){var e=this.An.length,t=0===e||255===this.An[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.An,0),t!==e?r.set([0],this.An.length):++r[r.length-1],new UI(this.In,this.En,this.dn,r)}Vn(e,t,r){return{indexId:this.In,uid:e,arrayValue:jI(this.dn),directionalValue:jI(this.An),orderedDocumentKey:jI(t),documentKey:r.path.toArray()}}mn(e,t,r){var n=this.Vn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function VI(e,t){var r=e.In-t.In;return 0!=r||0!==(r=qI(e.dn,t.dn))||0!==(r=qI(e.An,t.An))?r:x.comparator(e.En,t.En)}function qI(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}function jI(r){if(ge()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function BI(e){if("string"!=typeof e)return e;var t=e,r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}class zI{constructor(e){this.fn=new L((e,t)=>iv.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.gn=e.orderBy,this.pn=[];for(var t of e.filters){let e=t;e.isInequality()?this.fn=this.fn.add(e):this.pn.push(e)}}get yn(){return 1<this.fn.size}wn(e){if(S(e.collectionGroup===this.collectionId,49279),this.yn)return!1;let t=ov(e);if(void 0!==t&&!this.Sn(t))return!1;var r=lv(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.Sn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.fn.size){let t=this.fn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.bn(t,e)||!this.Dn(this.gn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.gn.length||!this.Dn(this.gn[s++],e))return!1}}return!0}vn(){if(this.yn)return null;let e=new L(iv.comparator);var t,r,n=[];for(t of this.pn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new hv(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new hv(t.field,0))));for(r of this.gn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new hv(r.field,"asc"===r.dir?0:1)));return new av(av.UNKNOWN_ID,this.collectionId,n,uv.empty())}Sn(e){for(var t of this.pn)if(this.bn(t,e))return!0;return!1}bn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}Dn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function KI(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(S(e instanceof F||e instanceof U,34018),e instanceof F)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=U.create(r,e.op);return n=YI(n),GI(n)?n:(S(n instanceof U,64498),S(Yy(n),40251),S(1<n.filters.length,57927),n.filters.reduce((e,t)=>$I(e,t)))}(function t(r){var n;if(S(r instanceof F||r instanceof U,20012),r instanceof F){if(r instanceof ow){let e=(null==(n=null==(n=r.value.arrayValue)?void 0:n.values)?void 0:n.map(e=>F.create(r.field,"==",e)))||[];return U.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return U.create(e,r.op)}(e)),S(GI(t),7391),WI(t)||HI(t)?[t]:t.getFilters())}function WI(e){return e instanceof F}function HI(e){return e instanceof U&&Xy(e)}function GI(e){return WI(e)||HI(e)||(e=>{if(e instanceof U&&Jy(e)){for(var t of e.getFilters())if(!WI(t)&&!HI(t))return!1;return!0}return!1})(e)}function $I(e,t){var r,n;return S(e instanceof F||e instanceof U,38388),S(t instanceof F||t instanceof U,25473),YI(e instanceof F?t instanceof F?(r=e,n=t,U.create([r,n],"and")):QI(e,t):t instanceof F?QI(t,e):((e,t)=>{if(S(0<e.filters.length&&0<t.filters.length,48005),Yy(e)&&Yy(t))return ew(e,t.getFilters());let r=Jy(e)?e:t,n=Jy(e)?t:e,i=r.filters.map(e=>$I(e,n));return U.create(i,"or")})(e,t))}function QI(t,e){var r;return Yy(e)?ew(e,t.getFilters()):(r=e.filters.map(e=>$I(t,e)),U.create(r,"or"))}function YI(t){if(S(t instanceof F||t instanceof U,11850),t instanceof F)return t;var e=t.getFilters();if(1===e.length)return YI(e[0]);if(Zy(t))return t;let r=e.map(e=>YI(e)),n=[];return r.forEach(e=>{e instanceof F?n.push(e):e instanceof U&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:U.create(n,t.op)}class JI{constructor(){this.Cn=new XI}addToCollectionParentIndex(e,t){return this.Cn.add(t),O.resolve()}getCollectionParents(e,t){return O.resolve(this.Cn.getEntries(t))}addFieldIndex(e,t){return O.resolve()}deleteFieldIndex(e,t){return O.resolve()}deleteAllFieldIndexes(e){return O.resolve()}createTargetIndexes(e,t){return O.resolve()}getDocumentsMatchingTarget(e,t){return O.resolve(null)}getIndexType(e,t){return O.resolve(0)}getFieldIndexes(e,t){return O.resolve([])}getNextCollectionGroupToUpdate(e){return O.resolve(null)}getMinOffset(e,t){return O.resolve(pv.min())}getMinOffsetFromCollectionGroup(e,t){return O.resolve(pv.min())}updateCollectionGroup(e,t,r){return O.resolve()}updateIndexEntries(e,t){return O.resolve()}}class XI{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new L(D.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new L(D.comparator)).toArray()}}let ZI="IndexedDbIndexManager",eT=new Uint8Array(0);class tT{constructor(e,t){this.databaseId=t,this.Fn=new XI,this.Mn=new xw(e=>dw(e),(e,t)=>pw(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.Fn.has(t)?O.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.Fn.add(t)}),n={collectionId:n,parent:Uv(r)},rT(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Xm(r),""],!1,!0);return rT(e).J(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(qv(t.parent))}return n})}addFieldIndex(e,r){let t=iT(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=sT(e);return i.next(e=>{t.put(CI(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=iT(e),n=sT(e),i=nT(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=iT(e),r=nT(e),n=sT(e);return t.X().next(()=>r.X()).next(()=>n.X())}createTargetIndexes(r,e){return O.forEach(this.xn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new zI(t).vn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=nT(e),r=!0,n=new Map;return O.forEach(this.xn(c),t=>this.On(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let h=V(),u=[];return O.forEach(n,(e,t)=>{C(ZI,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+dw(c));var r,n=((t,e)=>{var r=ov(e);if(void 0!==r)for(let e of gw(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of lv(r))for(let e of gw(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of lv(e)){let e=(0===r.kind?mw:vw)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new Wy(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of lv(e)){let e=(0===r.kind?vw:mw)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new Wy(n,i)})(t,e),o=this.Nn(e,t,s),l=this.Nn(e,t,a),i=this.Bn(e,t,i),n=this.Ln(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return O.forEach(n,e=>d.Z(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);h.has(t)||(h=h.add(t),u.push(t))})}))}).next(()=>u)}return O.resolve(null)})}xn(t){let e=this.Mn.get(t);return e||(e=0===t.filters.length?[t]:KI(U.create(t.filters,"and")).map(e=>cw(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Mn.set(t,e)),e}Ln(i,s,a,o,l,h,u){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),c=e/(null!=s?s.length:1),d=[];for(let p=0;p<e;++p){let t=s?this.kn(s[p/c]):eT,e=this.qn(i,t,a[p%c],o),r=this.Qn(i,t,l[p%c],h),n=u.map(e=>this.qn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}qn(e,t,r,n){var i=new UI(e,x.empty(),t,r);return n?i:i.Rn()}Qn(e,t,r,n){var i=new UI(e,x.empty(),t,r);return n?i.Rn():i}On(e,t){let n=new zI(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.wn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.xn(t);return O.forEach(n,t=>this.On(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new L(iv.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}$n(e,t){var r,n=new FI;for(r of lv(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.Tn(r.kind);DI.Wt.vt(e,i)}return n.cn()}kn(e){var t=new FI;return DI.Wt.vt(e,t.Tn(0)),t.cn()}Un(e,t){var r,n=new FI;return DI.Wt.vt(Py(this.databaseId,t),n.Tn(0===(r=lv(e)).length?0:r[r.length-1].kind)),n.cn()}Bn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new FI),0);for(var o of lv(e)){let t=i[a++];for(let r of s)if(this.Kn(n,o.fieldPath)&&xy(t))s=this.Wn(s,o,t);else{let e=r.Tn(o.kind);DI.Wt.vt(t,e)}}return this.Gn(s)}Nn(e,t,r){return this.Bn(e,t,r.position)}Gn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].cn();return t}Wn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new FI;e.seed(t.cn()),DI.Wt.vt(r,e.Tn(n.kind)),s.push(e)}return s}Kn(e,t){return!!e.filters.find(e=>e instanceof F&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=iT(e),n=sT(e);return(t?r.J(I_,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let s=[];return O.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new uv(e.sequenceNumber,new pv(_I(e.readTime),new x(qv(e.documentKey)),e.largestBatchId)):uv.empty(),n=t.fields.map(([e,t])=>new hv(iv.fromServerFormat(e),t)),new av(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:R(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=iT(e),s=sT(e);return this.zn(e).next(t=>i.J(I_,IDBKeyRange.bound(r,r)).next(e=>O.forEach(e,e=>s.put(CI(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return O.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?O.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),O.forEach(e,r=>this.jn(i,t,r).next(e=>{var t=this.Hn(n,r);return e.isEqual(t)?O.resolve():this.Jn(i,n,r,e,t)}))))})}Yn(e,t,r,n){return nT(e).put(n.Vn(this.uid,this.Un(r,t.key),t.key))}Zn(e,t,r,n){return nT(e).delete(n.mn(this.uid,this.Un(r,t.key),t.key))}jn(e,r,n){var t=nT(e);let i=new L(VI);return t.te({index:N_,range:IDBKeyRange.only([n.indexId,this.uid,jI(this.Un(n,r))])},(e,t)=>{i=i.add(new UI(n.indexId,r,BI(t.arrayValue),BI(t.directionalValue)))}).next(()=>i)}Hn(t,r){let n=new L(VI);var i=this.$n(r,t);if(null!=i){let e=ov(r);if(null!=e){var s=t.data.field(e.fieldPath);if(xy(s))for(let e of s.arrayValue.values||[])n=n.add(new UI(r.indexId,t.key,this.kn(e),i))}else n=n.add(new UI(r.indexId,t.key,eT,i))}return n}Jn(t,r,s,e,a){C(ZI,"Updating index entries for document '%s'",r.key);let o=[];{var l=VI,h=e=>{o.push(this.Yn(t,r,s,e))},u=e=>{o.push(this.Zn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=ey(c),i=ey(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=l(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(h(i),i=ey(d)):r?(u(n),n=ey(c)):(n=ey(c),i=ey(d))}}return O.waitFor(o)}zn(e){let n=1;return sT(e).te({index:C_,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>VI(e,t)).filter((e,t,r)=>!t||0!==VI(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=VI(s,r),t=VI(s,n);if(0===e)i[0]=r.Rn();else if(0<e&&t<0)i.push(s),i.push(s.Rn());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Xn(i[a],i[a+1]))return[];let e=i[a].mn(this.uid,eT,x.empty()),t=i[a+1].mn(this.uid,eT,x.empty());s.push(IDBKeyRange.bound(e,t))}return s}Xn(e,t){return 0<VI(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(aT)}getMinOffset(t,e){return O.mapArray(this.xn(e),e=>this.On(t,e).next(e=>e||k(44426))).next(aT)}}function rT(e){return G_(e,m_)}function nT(e){return G_(e,S_)}function iT(e){return G_(e,b_)}function sT(e){return G_(e,T_)}function aT(e){S(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;fv(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new pv(t.readTime,t.documentKey,r)}let oT={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class lT{static withCacheSize(e){return new lT(e,lT.DEFAULT_COLLECTION_PERCENTILE,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function hT(t,r,n){let e=t.store(Wv),i=t.store(Xv),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.te({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{S(1===o,47070,{batchId:n.batchId})}));let h=[];for(let t of n.mutations){let e=Yv(r,t.key.path,n.batchId);s.push(i.delete(e)),h.push(t.key)}return O.waitFor(s).next(()=>h)}function uT(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw k(14731);t=e.noDocument}return JSON.stringify(t).length}lT.DEFAULT_COLLECTION_PERCENTILE=10,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,lT.DEFAULT=new lT(41943040,lT.DEFAULT_COLLECTION_PERCENTILE,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),lT.DISABLED=new lT(-1,0,0);class cT{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.er={}}static St(e,t,r,n){S(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new cT(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return pT(e).te({index:Gv,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,p,f){let g=fT(c),m=pT(c);return m.add({}).next(t=>{S("number"==typeof t,49019);let e=new mb(t,d,p,f),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>tI(i.wt,e)),l=a.mutations.map(e=>tI(i.wt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let h=new L((e,t)=>R(e.canonicalString(),t.canonicalString()));for(let u of f){let e=Yv(this.userId,u.key.path,t);h=h.add(u.key.path.popLast()),n.push(m.put(r)),n.push(g.put(e,Jv))}return h.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.er[t]=e.keys()}),O.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return pT(e).get(t).next(e=>e?(S(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),yI(this.serializer,e)):null)}tr(e,r){return this.er[r]?O.resolve(this.er[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.er[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return pT(e).te({index:Gv,range:r},(e,t,r)=>{t.userId===this.userId&&(S(t.batchId>=n,47524,{nr:n}),i=yI(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=xv;return pT(e).te({index:Gv,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,xv],[this.userId,Number.POSITIVE_INFINITY]);return pT(e).J(Gv,t).next(e=>e.map(e=>yI(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=Qv(this.userId,l.path),t=IDBKeyRange.lowerBound(e),h=[];return fT(o).te({range:t},(t,e,r)=>{let[n,i,s]=t,a=qv(i);if(n===this.userId&&l.path.isEqual(a))return pT(o).get(s).next(e=>{if(!e)throw k(61480,{rr:t,batchId:s});S(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),h.push(yI(this.serializer,e))});r.done()}).next(()=>h)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new L(R),r=[];return e.forEach(a=>{var e=Qv(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=fT(t).te({range:e},(e,t,r)=>{var[n,i,s]=e,i=qv(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),O.waitFor(r).next(()=>this.ir(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=Qv(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new L(R);return fT(e).te({range:n},(e,t,r)=>{var[n,i,s]=e,i=qv(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.ir(e,l))}ir(e,t){let r=[],n=[];return t.forEach(t=>{n.push(pT(e).get(t).next(e=>{if(null===e)throw k(35274,{batchId:t});S(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(yI(this.serializer,e))}))}),O.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return hT(t.he,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.sr(r.batchId)}),O.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}sr(e){delete this.er[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return O.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return fT(r).te({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=qv(t[1]);n.push(e)}else r.done()}).next(()=>{S(0===n.length,56720,{_r:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return dT(e,this.userId,t)}ar(e){return gT(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:xv,lastStreamToken:""})}}function dT(e,s,t){let r=Qv(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return fT(e).te({range:n,ee:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function pT(e){return G_(e,Wv)}function fT(e){return G_(e,Xv)}function gT(e){return G_(e,Kv)}class mT{constructor(e){this.ur=e}next(){return this.ur+=2,this.ur}static cr(){return new mT(0)}static lr(){return new mT(-1)}}class vT{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.hr(r).next(e=>{var t=new mT(e.highestTargetId);return e.highestTargetId=t.next(),this.Pr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.hr(e).next(e=>P.fromTimestamp(new ev(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.hr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.hr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.Pr(t,e)))}addTargetData(t,r){return this.Tr(t,r).next(()=>this.hr(t).next(e=>(e.targetCount+=1,this.Ir(r,e),this.Pr(t,e))))}updateTargetData(e,t){return this.Tr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>_T(t).delete(e.targetId)).next(()=>this.hr(t)).next(e=>(S(0<e.targetCount,8065),--e.targetCount,this.Pr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return _T(n).te((e,t)=>{var r=wI(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>O.waitFor(o)).next(()=>a)}forEachTarget(e,n){return _T(e).te((e,t)=>{var r=wI(t);n(r)})}hr(e){return yT(e).get(f_).next(e=>(S(null!==e,2888),e))}Pr(e,t){return yT(e).put(f_,t)}Tr(e,t){return _T(e).put(bI(this.serializer,t))}Ir(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.hr(e).next(e=>e.targetCount)}getTargetData(e,i){var t=dw(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return _T(e).te({range:t,index:l_},(e,t,r)=>{var n=wI(t);pw(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=wT(r);return e.forEach(e=>{var t=Uv(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),O.waitFor(i)}removeMatchingKeys(r,e,n){let i=wT(r);return O.forEach(e,e=>{var t=Uv(e.path);return O.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=wT(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=wT(e);let i=V();return n.te({range:r,ee:!0},(e,t,r)=>{var n=qv(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Uv(t.path),r=IDBKeyRange.bound([r],[Xm(r)],!1,!0);let n=0;return wT(e).te({index:d_,ee:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}Rt(e,t){return _T(e).get(t).next(e=>e?wI(e):null)}}function _T(e){return G_(e,o_)}function yT(e){return G_(e,g_)}function wT(e){return G_(e,u_)}let bT="LruGarbageCollector";function IT([e,t],[r,n]){var i=R(e,r);return 0===i?R(t,n):i}class TT{constructor(e){this.Er=e,this.buffer=new L(IT),this.dr=0}Ar(){return++this.dr}Rr(e){var t=[e,this.Ar()];if(this.buffer.size<this.Er)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();IT(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class ET{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Vr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.mr(6e4)}stop(){this.Vr&&(this.Vr.cancel(),this.Vr=null)}get started(){return null!==this.Vr}mr(e){C(bT,`Garbage collection scheduled in ${e}ms`),this.Vr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Vr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Ev(e)?C(bT,"Ignoring IndexedDB error during garbage collection: ",e):await vv(e)}await this.mr(3e5)})}}class CT{constructor(e,t){this.gr=e,this.params=t}calculateTargetCount(e,t){return this.gr.pr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return O.resolve(Dv.le);let r=new TT(t);return this.gr.forEachTarget(e,e=>r.Rr(e.sequenceNumber)).next(()=>this.gr.yr(e,e=>r.Rr(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.gr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.gr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(C("LruGarbageCollector","Garbage collection skipped; disabled"),O.resolve(oT)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(C("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),oT):this.wr(t,r))}getCacheSize(e){return this.gr.getCacheSize(e)}wr(t,r){let n,i,s,a,o,l,h,u=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(C("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,l=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(h=Date.now(),xm()<=c.DEBUG&&C("LruGarbageCollector",`LRU Garbage Collection
|
|
26
|
+
}`}}class yb{constructor(e,t){this.count=e,this.unchangedNames=t}}function wb(e){switch(e){case A.OK:return k(64938);case A.CANCELLED:case A.UNKNOWN:case A.DEADLINE_EXCEEDED:case A.RESOURCE_EXHAUSTED:case A.INTERNAL:case A.UNAVAILABLE:case A.UNAUTHENTICATED:return!1;case A.INVALID_ARGUMENT:case A.NOT_FOUND:case A.ALREADY_EXISTS:case A.PERMISSION_DENIED:case A.FAILED_PRECONDITION:case A.ABORTED:case A.OUT_OF_RANGE:case A.UNIMPLEMENTED:case A.DATA_LOSS:return!0;default:return k(15467,{code:e})}}function bb(e){if(void 0===e)return Om("GRPC error has no .code"),A.UNKNOWN;switch(e){case Cm.OK:return A.OK;case Cm.CANCELLED:return A.CANCELLED;case Cm.UNKNOWN:return A.UNKNOWN;case Cm.DEADLINE_EXCEEDED:return A.DEADLINE_EXCEEDED;case Cm.RESOURCE_EXHAUSTED:return A.RESOURCE_EXHAUSTED;case Cm.INTERNAL:return A.INTERNAL;case Cm.UNAVAILABLE:return A.UNAVAILABLE;case Cm.UNAUTHENTICATED:return A.UNAUTHENTICATED;case Cm.INVALID_ARGUMENT:return A.INVALID_ARGUMENT;case Cm.NOT_FOUND:return A.NOT_FOUND;case Cm.ALREADY_EXISTS:return A.ALREADY_EXISTS;case Cm.PERMISSION_DENIED:return A.PERMISSION_DENIED;case Cm.FAILED_PRECONDITION:return A.FAILED_PRECONDITION;case Cm.ABORTED:return A.ABORTED;case Cm.OUT_OF_RANGE:return A.OUT_OF_RANGE;case Cm.UNIMPLEMENTED:return A.UNIMPLEMENTED;case Cm.DATA_LOSS:return A.DATA_LOSS;default:return k(39323,{code:e})}}(e=Cm=Cm||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";let Ib=new gm([4294967295,4294967295],0);function Tb(e){var t=Gm().encode(e),r=new mm;return r.update(t),new Uint8Array(r.digest())}function Eb(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new gm([r,n],0),new gm([i,t],0)]}class Cb{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new kb("Invalid padding: "+t);if(r<0)throw new kb("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new kb("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new kb("Invalid padding when bitmap length is 0: "+t);this.pe=8*e.length-t,this.ye=gm.fromNumber(this.pe)}we(e,t,r){let n=e.add(t.multiply(gm.fromNumber(r)));return(n=1===n.compare(Ib)?new gm([n.getBits(0),n.getBits(1)],0):n).modulo(this.ye).toNumber()}be(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.pe)return!1;let t=Tb(e),[r,n]=Eb(t);for(let i=0;i<this.hashCount;i++){let e=this.we(r,n,i);if(!this.be(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new Cb(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.pe){let e=Tb(i),[t,r]=Eb(e);for(let n=0;n<this.hashCount;n++){let e=this.we(t,r,n);this.Se(e)}}}Se(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class kb extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Sb{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,Ab.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Sb(P.min(),n,new M(R),Ow,V())}}class Ab{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new Ab(r,t,V(),V(),V())}}class Nb{constructor(e,t,r,n){this.De=e,this.removedTargetIds=t,this.key=r,this.ve=n}}class Rb{constructor(e,t){this.targetId=e,this.Ce=t}}class Pb{constructor(e,t,r=ny.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class xb{constructor(){this.Fe=0,this.Me=Mb(),this.xe=ny.EMPTY_BYTE_STRING,this.Oe=!1,this.Ne=!0}get current(){return this.Oe}get resumeToken(){return this.xe}get Be(){return 0!==this.Fe}get Le(){return this.Ne}ke(e){0<e.approximateByteSize()&&(this.Ne=!0,this.xe=e)}qe(){let r=V(),n=V(),i=V();return this.Me.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:k(38017,{changeType:t})}}),new Ab(this.xe,this.Oe,r,n,i)}Qe(){this.Ne=!1,this.Me=Mb()}$e(e,t){this.Ne=!0,this.Me=this.Me.insert(e,t)}Ue(e){this.Ne=!0,this.Me=this.Me.remove(e)}Ke(){this.Fe+=1}We(){--this.Fe,S(0<=this.Fe,3241,{Fe:this.Fe})}Ge(){this.Ne=!0,this.Oe=!0}}class Db{constructor(e){this.ze=e,this.je=new Map,this.He=Ow,this.Je=Ob(),this.Ye=Ob(),this.Ze=new M(R)}Xe(e){for(var t of e.De)e.ve&&e.ve.isFoundDocument()?this.et(t,e.ve):this.tt(t,e.key,e.ve);for(var r of e.removedTargetIds)this.tt(r,e.key,e.ve)}nt(r){this.forEachTarget(r,e=>{var t=this.rt(e);switch(r.state){case 0:this.it(e)&&t.ke(r.resumeToken);break;case 1:t.We(),t.Be||t.Qe(),t.ke(r.resumeToken);break;case 2:t.We(),t.Be||this.removeTarget(e);break;case 3:this.it(e)&&(t.Ge(),t.ke(r.resumeToken));break;case 4:this.it(e)&&(this.st(e),t.ke(r.resumeToken));break;default:k(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.je.forEach((e,t)=>{this.it(t)&&r(t)})}ot(n){let i=n.targetId,e=n.Ce.count,t=this._t(i);if(t){var r=t.target;if(fw(r))if(0===e){let e=new D(r.path);this.tt(i,e,Ky.newNoDocument(e,P.min()))}else S(1===e,20013,{expectedCount:e});else{let r=this.ut(i);if(r!==e){let e=this.ct(n),t=e?this.lt(e,n,r):1;if(0!==t){this.st(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ze=this.Ze.insert(i,e)}}}}}ct(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=oy(t).toUint8Array()}catch(e){if(e instanceof ry)return Mm("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new Cb(i,r,n)}catch(e){return Mm(e instanceof kb?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.pe?null:s}lt(e,t,r){return t.Ce.count===r-this.Tt(e,t.targetId)?0:2}Tt(r,n){var e=this.ze.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.ze.Pt(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.tt(n,e,null),i++)}),i}It(n){let i=new Map,s=(this.je.forEach((e,t)=>{var r=this._t(t);if(r){if(e.current&&fw(r.target)){let e=new D(r.target.path);this.Et(e).has(t)||this.dt(t,e)||this.tt(t,e,Ky.newNoDocument(e,n))}e.Le&&(i.set(t,e.qe()),e.Qe())}}),V());this.Ye.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this._t(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.He.forEach((e,t)=>t.setReadTime(n));var e=new Sb(n,i,this.Ze,this.He,s);return this.He=Ow,this.Je=Ob(),this.Ye=Ob(),this.Ze=new M(R),e}et(e,t){var r;this.it(e)&&(r=this.dt(e,t.key)?2:0,this.rt(e).$e(t.key,r),this.He=this.He.insert(t.key,t),this.Je=this.Je.insert(t.key,this.Et(t.key).add(e)),this.Ye=this.Ye.insert(t.key,this.At(t.key).add(e)))}tt(e,t,r){var n;this.it(e)&&(n=this.rt(e),this.dt(e,t)?n.$e(t,1):n.Ue(t),this.Ye=this.Ye.insert(t,this.At(t).delete(e)),this.Ye=this.Ye.insert(t,this.At(t).add(e)),r)&&(this.He=this.He.insert(t,r))}removeTarget(e){this.je.delete(e)}ut(e){var t=this.rt(e).qe();return this.ze.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ke(e){this.rt(e).Ke()}rt(e){let t=this.je.get(e);return t||(t=new xb,this.je.set(e,t)),t}At(e){let t=this.Ye.get(e);return t||(t=new L(R),this.Ye=this.Ye.insert(e,t)),t}Et(e){let t=this.Je.get(e);return t||(t=new L(R),this.Je=this.Je.insert(e,t)),t}it(e){var t=null!==this._t(e);return t||C("WatchChangeAggregator","Detected inactive target",e),t}_t(e){var t=this.je.get(e);return t&&t.Be?null:this.ze.Rt(e)}st(t){this.je.set(t,new xb),this.ze.getRemoteKeysForTarget(t).forEach(e=>{this.tt(t,e,null)})}dt(e,t){return this.ze.getRemoteKeysForTarget(e).has(t)}}function Ob(){return new M(D.comparator)}function Mb(){return new M(D.comparator)}let Lb={asc:"ASCENDING",desc:"DESCENDING"},Fb={"<":"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"},Ub={and:"AND",or:"OR"};class Vb{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function qb(e,t){return e.useProto3Json||Ov(t)?t:{value:t}}function Bb(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function jb(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function zb(e){return S(!!e,49232),P.fromTimestamp((t=sy(e),new ev(t.seconds,t.nanos)));var t}function Kb(e,t){return Wb(e,t).canonicalString()}function Wb(e,t){e=e;var r=new x(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function Hb(e){var t=x.fromString(e);return S(dI(t),10190,{key:t.toString()}),t}function Gb(e,t){return Kb(e.databaseId,t.path)}function $b(e,t){var r=Hb(t);if(r.get(1)!==e.databaseId.projectId)throw new N(A.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new N(A.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new D(Xb(r))}function Qb(e,t){return Kb(e.databaseId,t)}function Yb(e){var t=Hb(e);return 4===t.length?x.emptyPath():Xb(t)}function Jb(e){return new x(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Xb(e){return S(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function Zb(e,t,r){return{name:Gb(e,t),fields:r.value.mapValue.fields}}function eI(e,t,r){var n=$b(e,t.name),i=zb(t.updateTime),s=t.createTime?zb(t.createTime):P.min(),a=new zy({mapValue:{fields:t.fields}}),n=Ky.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function tI(e,t){let r;if(t instanceof hb)r={update:Zb(e,t.key,t.value)};else if(t instanceof fb)r={delete:Gb(e,t.key)};else if(t instanceof ub)r={update:Zb(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof gb))return k(16599,{ft:t.type});r={verify:Gb(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Gw)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof $w)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Yw)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Xw)return{fieldPath:e.field.canonicalString(),increment:t.Re};throw k(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,Bb(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:k(27497))),r;var n}function rI(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?nb.updateTime(zb(s.updateTime)):void 0!==s.exists?nb.exists(s.exists):nb.none():nb.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)S("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new Gw;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new $w(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Yw(e)}else"increment"in r?t=new Xw(e,r.increment):k(16584,{proto:r});var n=iv.fromServerFormat(r.fieldPath);return new tb(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=$b(i,t.update.name),l=new zy({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new ty(a.map(e=>iv.fromServerFormat(e)));return new ub(o,l,e,r,n)}return new hb(o,l,r,n)}if(t.delete){let e=$b(i,t.delete);return new fb(e,r)}if(t.verify){let e=$b(i,t.verify);return new gb(e,r)}return k(1463,{proto:t})}function nI(e,n){return e&&0<e.length?(S(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?zb(t.updateTime):zb(r);return e.isEqual(P.min())&&(e=zb(r)),new rb(e,t.transformResults||[])}})):[]}function iI(e,t){return{documents:[Qb(e,t.path)]}}function sI(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=Qb(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof F?(e=>{if("=="===e.op){if(My(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NAN"}};if(Oy(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(My(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NOT_NAN"}};if(Oy(e.value))return{unaryFilter:{field:uI(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uI(e.field),op:lI(e.op),value:e.value}}})(e):e instanceof U?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:hI(e.op),filters:t}}})(e):k(54877,{filter:e})}(U.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:uI((e=e).field),direction:(e=e.dir,Lb[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=qb(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{gt:r,parent:i}}function aI(e){let t=Yb(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){S(1===i,65062);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=cI(i.unaryFilter.field);return F.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=cI(i.unaryFilter.field);return F.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=cI(i.unaryFilter.field);return F.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=cI(i.unaryFilter.field);return F.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return k(61313);default:return k(60726)}})(e):void 0!==e.fieldFilter?(e=>F.create(cI(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return k(58110);default:return k(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>U.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return k(1026)}})(e.compositeFilter.op)))(e):k(30097,{filter:e})}(e))instanceof U&&Xy(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new $y(cI(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),h=(n.limit&&(l=(e=n.limit,Ov(i="object"==typeof e?e.value:e)?null:i)),null),u=(n.startAt&&(h=(e=n.startAt,i=!!e.before,r=e.values||[],new Wy(r,i))),null);return n.endAt&&(u=(e=n.endAt,r=!e.before,i=e.values||[],new Wy(i,r))),yw(t,s,o,a,l,"F",h,u)}function oI(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return k(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function lI(e){return Fb[e]}function hI(e){return Ub[e]}function uI(e){return{fieldPath:e.canonicalString()}}function cI(e){return iv.fromServerFormat(e.fieldPath)}function dI(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class pI{constructor(e,t,r,n,i=P.min(),s=P.min(),a=ny.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new pI(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new pI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class fI{constructor(e){this.wt=e}}function gI(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:mI(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Gb(e=e.wt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:Bb(e,r.version.toTimestamp()),createTime:Bb(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:vI(t.version)};else{if(!t.isUnknownDocument())return k(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:vI(t.version)}}return i}function mI(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function vI(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function _I(e){var t=new ev(e.seconds,e.nanoseconds);return P.fromTimestamp(t)}function yI(t,r){let e=(r.baseMutations||[]).map(e=>rI(t.wt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>rI(t.wt,e)),i=ev.fromMillis(r.localWriteTimeMs);return new mb(r.batchId,i,e,n)}function wI(e){var t,r=_I(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?_I(e.lastLimboFreeSnapshotVersion):P.min(),i=void 0!==e.query.documents?(t=e.query,S(1===(i=t.documents.length),1966,{count:i}),Ew(ww(Yb(t.documents[0])))):Ew(aI(e.query));return new pI(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,ny.fromBase64String(e.resumeToken))}function bI(e,t){var r=vI(t.snapshotVersion),n=vI(t.lastLimboFreeSnapshotVersion),i=fw(t.target)?iI(e.wt,t.target):sI(e.wt,t.target).gt,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:dw(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function II(e){var t=aI({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?kw(t,t.limit,"L"):t}function TI(e,t){return new _b(t.largestBatchId,rI(e.wt,t.overlayMutation))}function EI(e,t){var r=t.path.lastSegment();return[e,Uv(t.path.popLast()),r]}function CI(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:vI(n.readTime),documentKey:Uv(n.documentKey.path),largestBatchId:n.largestBatchId}}class kI{getBundleMetadata(e,t){return SI(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:_I(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return SI(e).put({bundleId:(e=t).id,createTime:vI(zb(e.createTime)),version:e.version})}getNamedQuery(e,t){return AI(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:II(e.bundledQuery),readTime:_I(e.readTime)}})}saveNamedQuery(e,t){return AI(e).put({name:(e=t).name,readTime:vI(zb(e.readTime)),bundledQuery:e.bundledQuery})}}function SI(e){return G_(e,y_)}function AI(e){return G_(e,w_)}class NI{constructor(e,t){this.serializer=e,this.userId=t}static bt(e,t){var r=t.uid||"";return new NI(e,r)}getOverlay(e,t){return RI(e).get(EI(this.userId,t)).next(e=>e?TI(this.serializer,e):null)}getOverlays(e,t){let r=Uw();return O.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new _b(i,t);s.push(this.St(n,r))}),O.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Uv(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(RI(r).X(D_,t))}),O.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Uw(),i=Uv(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return RI(e).J(D_,s).next(e=>{for(var t of e){let e=TI(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Uw(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return RI(e).te({index:M_,range:n},(e,t,r)=>{var n=TI(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}St(e,t){return RI(e).put(((e,t,r)=>{var[,n,i]=EI(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:tI(e.wt,r.mutation)}})(this.serializer,this.userId,t))}}function RI(e){return G_(e,P_)}class PI{Dt(e){return G_(e,F_)}getSessionToken(e){return this.Dt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?ny.fromUint8Array(t):ny.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.Dt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class xI{constructor(){}vt(e,t){this.Ct(e,t),t.Ft()}Ct(t,r){if("nullValue"in t)this.Mt(r,5);else if("booleanValue"in t)this.Mt(r,10),r.xt(t.booleanValue?1:0);else if("integerValue"in t)this.Mt(r,15),r.xt(ay(t.integerValue));else if("doubleValue"in t){var e=ay(t.doubleValue);isNaN(e)?this.Mt(r,13):(this.Mt(r,15),Mv(e)?r.xt(0):r.xt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Mt(r,20),"string"==typeof e&&(e=sy(e)),r.Ot(""+(e.seconds||"")),r.xt(e.nanos||0)}else"stringValue"in t?(this.Nt(t.stringValue,r),this.Bt(r)):"bytesValue"in t?(this.Mt(r,30),r.Lt(oy(t.bytesValue)),this.Bt(r)):"referenceValue"in t?this.kt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Mt(r,45),r.xt(e.latitude||0),r.xt(e.longitude||0)):"mapValue"in t?Vy(t)?this.Mt(r,Number.MAX_SAFE_INTEGER):Fy(t)?this.qt(t.mapValue,r):(this.Qt(t.mapValue,r),this.Bt(r)):"arrayValue"in t?(this.$t(t.arrayValue,r),this.Bt(r)):k(19022,{Ut:t})}Nt(e,t){this.Mt(t,25),this.Kt(e,t)}Kt(e,t){t.Ot(e)}Qt(e,t){var r=e.fields||{};this.Mt(t,55);for(let e of Object.keys(r))this.Nt(e,t),this.Ct(r[e],t)}qt(e,t){var r=e.fields||{},n=(this.Mt(t,53),Iy),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.Mt(t,15),t.xt(ay(i)),this.Nt(n,t),this.Ct(r[n],t)}$t(e,t){var r=e.values||[];this.Mt(t,50);for(let e of r)this.Ct(e,t)}kt(e,t){this.Mt(t,37),D.fromName(e).path.forEach(e=>{this.Mt(t,60),this.Kt(e,t)})}Mt(e,t){e.xt(t)}Bt(e){e.xt(2)}}xI.Wt=new xI;function DI(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class OI{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Gt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.zt(r.value),r=t.next();this.jt()}Ht(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Yt()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.zt(e);else if(e<2048)this.zt(960|e>>>6),this.zt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.zt(480|e>>>12),this.zt(128|63&e>>>6),this.zt(128|63&e);else{let e=t.codePointAt(0);this.zt(240|e>>>18),this.zt(128|63&e>>>12),this.zt(128|63&e>>>6),this.zt(128|63&e)}}this.jt()}Xt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Jt(480|e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Yt()}en(e){var t=this.tn(e),r=DI(t);this.nn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}rn(e){var t=this.tn(e),r=DI(t);this.nn(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}sn(){this._n(255),this._n(255)}an(){this.un(255),this.un(255)}reset(){this.position=0}seed(e){this.nn(e.length),this.buffer.set(e,this.position),this.position+=e.length}cn(){return this.buffer.slice(0,this.position)}tn(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}zt(e){var t=255&e;0==t?(this._n(0),this._n(255)):255==t?(this._n(255),this._n(0)):this._n(t)}Jt(e){var t=255&e;0==t?(this.un(0),this.un(255)):255==t?(this.un(255),this.un(0)):this.un(e)}jt(){this._n(0),this._n(1)}Yt(){this.un(0),this.un(1)}_n(e){this.nn(1),this.buffer[this.position++]=e}un(e){this.nn(1),this.buffer[this.position++]=~e}nn(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class MI{constructor(e){this.ln=e}Lt(e){this.ln.Gt(e)}Ot(e){this.ln.Zt(e)}xt(e){this.ln.en(e)}Ft(){this.ln.sn()}}class LI{constructor(e){this.ln=e}Lt(e){this.ln.Ht(e)}Ot(e){this.ln.Xt(e)}xt(e){this.ln.rn(e)}Ft(){this.ln.an()}}class FI{constructor(){this.ln=new OI,this.hn=new MI(this.ln),this.Pn=new LI(this.ln)}seed(e){this.ln.seed(e)}Tn(e){return 0===e?this.hn:this.Pn}cn(){return this.ln.cn()}reset(){this.ln.reset()}}class UI{constructor(e,t,r,n){this.In=e,this.En=t,this.dn=r,this.An=n}Rn(){var e=this.An.length,t=0===e||255===this.An[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.An,0),t!==e?r.set([0],this.An.length):++r[r.length-1],new UI(this.In,this.En,this.dn,r)}Vn(e,t,r){return{indexId:this.In,uid:e,arrayValue:BI(this.dn),directionalValue:BI(this.An),orderedDocumentKey:BI(t),documentKey:r.path.toArray()}}mn(e,t,r){var n=this.Vn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function VI(e,t){var r=e.In-t.In;return 0!=r||0!==(r=qI(e.dn,t.dn))||0!==(r=qI(e.An,t.An))?r:D.comparator(e.En,t.En)}function qI(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}function BI(r){if(ge()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function jI(e){if("string"!=typeof e)return e;var t=e,r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}class zI{constructor(e){this.fn=new L((e,t)=>iv.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.gn=e.orderBy,this.pn=[];for(var t of e.filters){let e=t;e.isInequality()?this.fn=this.fn.add(e):this.pn.push(e)}}get yn(){return 1<this.fn.size}wn(e){if(S(e.collectionGroup===this.collectionId,49279),this.yn)return!1;let t=ov(e);if(void 0!==t&&!this.bn(t))return!1;var r=lv(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.bn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.fn.size){let t=this.fn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.Sn(t,e)||!this.Dn(this.gn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.gn.length||!this.Dn(this.gn[s++],e))return!1}}return!0}vn(){if(this.yn)return null;let e=new L(iv.comparator);var t,r,n=[];for(t of this.pn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new hv(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new hv(t.field,0))));for(r of this.gn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new hv(r.field,"asc"===r.dir?0:1)));return new av(av.UNKNOWN_ID,this.collectionId,n,uv.empty())}bn(e){for(var t of this.pn)if(this.Sn(t,e))return!0;return!1}Sn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}Dn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function KI(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(S(e instanceof F||e instanceof U,34018),e instanceof F)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=U.create(r,e.op);return n=YI(n),GI(n)?n:(S(n instanceof U,64498),S(Yy(n),40251),S(1<n.filters.length,57927),n.filters.reduce((e,t)=>$I(e,t)))}(function t(r){var n;if(S(r instanceof F||r instanceof U,20012),r instanceof F){if(r instanceof ow){let e=(null==(n=null==(n=r.value.arrayValue)?void 0:n.values)?void 0:n.map(e=>F.create(r.field,"==",e)))||[];return U.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return U.create(e,r.op)}(e)),S(GI(t),7391),WI(t)||HI(t)?[t]:t.getFilters())}function WI(e){return e instanceof F}function HI(e){return e instanceof U&&Xy(e)}function GI(e){return WI(e)||HI(e)||(e=>{if(e instanceof U&&Jy(e)){for(var t of e.getFilters())if(!WI(t)&&!HI(t))return!1;return!0}return!1})(e)}function $I(e,t){var r,n;return S(e instanceof F||e instanceof U,38388),S(t instanceof F||t instanceof U,25473),YI(e instanceof F?t instanceof F?(r=e,n=t,U.create([r,n],"and")):QI(e,t):t instanceof F?QI(t,e):((e,t)=>{if(S(0<e.filters.length&&0<t.filters.length,48005),Yy(e)&&Yy(t))return ew(e,t.getFilters());let r=Jy(e)?e:t,n=Jy(e)?t:e,i=r.filters.map(e=>$I(e,n));return U.create(i,"or")})(e,t))}function QI(t,e){var r;return Yy(e)?ew(e,t.getFilters()):(r=e.filters.map(e=>$I(t,e)),U.create(r,"or"))}function YI(t){if(S(t instanceof F||t instanceof U,11850),t instanceof F)return t;var e=t.getFilters();if(1===e.length)return YI(e[0]);if(Zy(t))return t;let r=e.map(e=>YI(e)),n=[];return r.forEach(e=>{e instanceof F?n.push(e):e instanceof U&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:U.create(n,t.op)}class JI{constructor(){this.Cn=new XI}addToCollectionParentIndex(e,t){return this.Cn.add(t),O.resolve()}getCollectionParents(e,t){return O.resolve(this.Cn.getEntries(t))}addFieldIndex(e,t){return O.resolve()}deleteFieldIndex(e,t){return O.resolve()}deleteAllFieldIndexes(e){return O.resolve()}createTargetIndexes(e,t){return O.resolve()}getDocumentsMatchingTarget(e,t){return O.resolve(null)}getIndexType(e,t){return O.resolve(0)}getFieldIndexes(e,t){return O.resolve([])}getNextCollectionGroupToUpdate(e){return O.resolve(null)}getMinOffset(e,t){return O.resolve(pv.min())}getMinOffsetFromCollectionGroup(e,t){return O.resolve(pv.min())}updateCollectionGroup(e,t,r){return O.resolve()}updateIndexEntries(e,t){return O.resolve()}}class XI{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new L(x.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new L(x.comparator)).toArray()}}let ZI="IndexedDbIndexManager",eT=new Uint8Array(0);class tT{constructor(e,t){this.databaseId=t,this.Fn=new XI,this.Mn=new Dw(e=>dw(e),(e,t)=>pw(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.Fn.has(t)?O.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.Fn.add(t)}),n={collectionId:n,parent:Uv(r)},rT(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Xm(r),""],!1,!0);return rT(e).J(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(qv(t.parent))}return n})}addFieldIndex(e,r){let t=iT(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=sT(e);return i.next(e=>{t.put(CI(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=iT(e),n=sT(e),i=nT(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=iT(e),r=nT(e),n=sT(e);return t.X().next(()=>r.X()).next(()=>n.X())}createTargetIndexes(r,e){return O.forEach(this.xn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new zI(t).vn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=nT(e),r=!0,n=new Map;return O.forEach(this.xn(c),t=>this.On(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let h=V(),u=[];return O.forEach(n,(e,t)=>{C(ZI,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+dw(c));var r,n=((t,e)=>{var r=ov(e);if(void 0!==r)for(let e of gw(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of lv(r))for(let e of gw(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of lv(e)){let e=(0===r.kind?mw:vw)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new Wy(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of lv(e)){let e=(0===r.kind?vw:mw)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new Wy(n,i)})(t,e),o=this.Nn(e,t,s),l=this.Nn(e,t,a),i=this.Bn(e,t,i),n=this.Ln(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return O.forEach(n,e=>d.Z(e,c.limit).next(e=>{e.forEach(e=>{var t=D.fromSegments(e.documentKey);h.has(t)||(h=h.add(t),u.push(t))})}))}).next(()=>u)}return O.resolve(null)})}xn(t){let e=this.Mn.get(t);return e||(e=0===t.filters.length?[t]:KI(U.create(t.filters,"and")).map(e=>cw(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Mn.set(t,e)),e}Ln(i,s,a,o,l,h,u){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),c=e/(null!=s?s.length:1),d=[];for(let p=0;p<e;++p){let t=s?this.kn(s[p/c]):eT,e=this.qn(i,t,a[p%c],o),r=this.Qn(i,t,l[p%c],h),n=u.map(e=>this.qn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}qn(e,t,r,n){var i=new UI(e,D.empty(),t,r);return n?i:i.Rn()}Qn(e,t,r,n){var i=new UI(e,D.empty(),t,r);return n?i.Rn():i}On(e,t){let n=new zI(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.wn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.xn(t);return O.forEach(n,t=>this.On(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new L(iv.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}$n(e,t){var r,n=new FI;for(r of lv(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.Tn(r.kind);xI.Wt.vt(e,i)}return n.cn()}kn(e){var t=new FI;return xI.Wt.vt(e,t.Tn(0)),t.cn()}Un(e,t){var r,n=new FI;return xI.Wt.vt(Py(this.databaseId,t),n.Tn(0===(r=lv(e)).length?0:r[r.length-1].kind)),n.cn()}Bn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new FI),0);for(var o of lv(e)){let t=i[a++];for(let r of s)if(this.Kn(n,o.fieldPath)&&Dy(t))s=this.Wn(s,o,t);else{let e=r.Tn(o.kind);xI.Wt.vt(t,e)}}return this.Gn(s)}Nn(e,t,r){return this.Bn(e,t,r.position)}Gn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].cn();return t}Wn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new FI;e.seed(t.cn()),xI.Wt.vt(r,e.Tn(n.kind)),s.push(e)}return s}Kn(e,t){return!!e.filters.find(e=>e instanceof F&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=iT(e),n=sT(e);return(t?r.J(I_,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let s=[];return O.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new uv(e.sequenceNumber,new pv(_I(e.readTime),new D(qv(e.documentKey)),e.largestBatchId)):uv.empty(),n=t.fields.map(([e,t])=>new hv(iv.fromServerFormat(e),t)),new av(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:R(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=iT(e),s=sT(e);return this.zn(e).next(t=>i.J(I_,IDBKeyRange.bound(r,r)).next(e=>O.forEach(e,e=>s.put(CI(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return O.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?O.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),O.forEach(e,r=>this.jn(i,t,r).next(e=>{var t=this.Hn(n,r);return e.isEqual(t)?O.resolve():this.Jn(i,n,r,e,t)}))))})}Yn(e,t,r,n){return nT(e).put(n.Vn(this.uid,this.Un(r,t.key),t.key))}Zn(e,t,r,n){return nT(e).delete(n.mn(this.uid,this.Un(r,t.key),t.key))}jn(e,r,n){var t=nT(e);let i=new L(VI);return t.te({index:N_,range:IDBKeyRange.only([n.indexId,this.uid,BI(this.Un(n,r))])},(e,t)=>{i=i.add(new UI(n.indexId,r,jI(t.arrayValue),jI(t.directionalValue)))}).next(()=>i)}Hn(t,r){let n=new L(VI);var i=this.$n(r,t);if(null!=i){let e=ov(r);if(null!=e){var s=t.data.field(e.fieldPath);if(Dy(s))for(let e of s.arrayValue.values||[])n=n.add(new UI(r.indexId,t.key,this.kn(e),i))}else n=n.add(new UI(r.indexId,t.key,eT,i))}return n}Jn(t,r,s,e,a){C(ZI,"Updating index entries for document '%s'",r.key);let o=[];{var l=VI,h=e=>{o.push(this.Yn(t,r,s,e))},u=e=>{o.push(this.Zn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=ey(c),i=ey(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=l(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(h(i),i=ey(d)):r?(u(n),n=ey(c)):(n=ey(c),i=ey(d))}}return O.waitFor(o)}zn(e){let n=1;return sT(e).te({index:C_,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>VI(e,t)).filter((e,t,r)=>!t||0!==VI(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=VI(s,r),t=VI(s,n);if(0===e)i[0]=r.Rn();else if(0<e&&t<0)i.push(s),i.push(s.Rn());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Xn(i[a],i[a+1]))return[];let e=i[a].mn(this.uid,eT,D.empty()),t=i[a+1].mn(this.uid,eT,D.empty());s.push(IDBKeyRange.bound(e,t))}return s}Xn(e,t){return 0<VI(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(aT)}getMinOffset(t,e){return O.mapArray(this.xn(e),e=>this.On(t,e).next(e=>e||k(44426))).next(aT)}}function rT(e){return G_(e,m_)}function nT(e){return G_(e,S_)}function iT(e){return G_(e,b_)}function sT(e){return G_(e,T_)}function aT(e){S(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;fv(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new pv(t.readTime,t.documentKey,r)}let oT={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class lT{static withCacheSize(e){return new lT(e,lT.DEFAULT_COLLECTION_PERCENTILE,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function hT(t,r,n){let e=t.store(Wv),i=t.store(Xv),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.te({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{S(1===o,47070,{batchId:n.batchId})}));let h=[];for(let t of n.mutations){let e=Yv(r,t.key.path,n.batchId);s.push(i.delete(e)),h.push(t.key)}return O.waitFor(s).next(()=>h)}function uT(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw k(14731);t=e.noDocument}return JSON.stringify(t).length}lT.DEFAULT_COLLECTION_PERCENTILE=10,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,lT.DEFAULT=new lT(41943040,lT.DEFAULT_COLLECTION_PERCENTILE,lT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),lT.DISABLED=new lT(-1,0,0);class cT{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.er={}}static bt(e,t,r,n){S(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new cT(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return pT(e).te({index:Gv,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,p,f){let g=fT(c),m=pT(c);return m.add({}).next(t=>{S("number"==typeof t,49019);let e=new mb(t,d,p,f),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>tI(i.wt,e)),l=a.mutations.map(e=>tI(i.wt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let h=new L((e,t)=>R(e.canonicalString(),t.canonicalString()));for(let u of f){let e=Yv(this.userId,u.key.path,t);h=h.add(u.key.path.popLast()),n.push(m.put(r)),n.push(g.put(e,Jv))}return h.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.er[t]=e.keys()}),O.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return pT(e).get(t).next(e=>e?(S(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),yI(this.serializer,e)):null)}tr(e,r){return this.er[r]?O.resolve(this.er[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.er[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return pT(e).te({index:Gv,range:r},(e,t,r)=>{t.userId===this.userId&&(S(t.batchId>=n,47524,{nr:n}),i=yI(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=Dv;return pT(e).te({index:Gv,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,Dv],[this.userId,Number.POSITIVE_INFINITY]);return pT(e).J(Gv,t).next(e=>e.map(e=>yI(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=Qv(this.userId,l.path),t=IDBKeyRange.lowerBound(e),h=[];return fT(o).te({range:t},(t,e,r)=>{let[n,i,s]=t,a=qv(i);if(n===this.userId&&l.path.isEqual(a))return pT(o).get(s).next(e=>{if(!e)throw k(61480,{rr:t,batchId:s});S(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),h.push(yI(this.serializer,e))});r.done()}).next(()=>h)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new L(R),r=[];return e.forEach(a=>{var e=Qv(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=fT(t).te({range:e},(e,t,r)=>{var[n,i,s]=e,i=qv(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),O.waitFor(r).next(()=>this.ir(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=Qv(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new L(R);return fT(e).te({range:n},(e,t,r)=>{var[n,i,s]=e,i=qv(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.ir(e,l))}ir(e,t){let r=[],n=[];return t.forEach(t=>{n.push(pT(e).get(t).next(e=>{if(null===e)throw k(35274,{batchId:t});S(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(yI(this.serializer,e))}))}),O.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return hT(t.he,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.sr(r.batchId)}),O.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}sr(e){delete this.er[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return O.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return fT(r).te({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=qv(t[1]);n.push(e)}else r.done()}).next(()=>{S(0===n.length,56720,{_r:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return dT(e,this.userId,t)}ar(e){return gT(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:Dv,lastStreamToken:""})}}function dT(e,s,t){let r=Qv(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return fT(e).te({range:n,ee:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function pT(e){return G_(e,Wv)}function fT(e){return G_(e,Xv)}function gT(e){return G_(e,Kv)}class mT{constructor(e){this.ur=e}next(){return this.ur+=2,this.ur}static cr(){return new mT(0)}static lr(){return new mT(-1)}}class vT{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.hr(r).next(e=>{var t=new mT(e.highestTargetId);return e.highestTargetId=t.next(),this.Pr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.hr(e).next(e=>P.fromTimestamp(new ev(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.hr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.hr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.Pr(t,e)))}addTargetData(t,r){return this.Tr(t,r).next(()=>this.hr(t).next(e=>(e.targetCount+=1,this.Ir(r,e),this.Pr(t,e))))}updateTargetData(e,t){return this.Tr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>_T(t).delete(e.targetId)).next(()=>this.hr(t)).next(e=>(S(0<e.targetCount,8065),--e.targetCount,this.Pr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return _T(n).te((e,t)=>{var r=wI(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>O.waitFor(o)).next(()=>a)}forEachTarget(e,n){return _T(e).te((e,t)=>{var r=wI(t);n(r)})}hr(e){return yT(e).get(f_).next(e=>(S(null!==e,2888),e))}Pr(e,t){return yT(e).put(f_,t)}Tr(e,t){return _T(e).put(bI(this.serializer,t))}Ir(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.hr(e).next(e=>e.targetCount)}getTargetData(e,i){var t=dw(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return _T(e).te({range:t,index:l_},(e,t,r)=>{var n=wI(t);pw(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=wT(r);return e.forEach(e=>{var t=Uv(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),O.waitFor(i)}removeMatchingKeys(r,e,n){let i=wT(r);return O.forEach(e,e=>{var t=Uv(e.path);return O.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=wT(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=wT(e);let i=V();return n.te({range:r,ee:!0},(e,t,r)=>{var n=qv(e[1]),n=new D(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Uv(t.path),r=IDBKeyRange.bound([r],[Xm(r)],!1,!0);let n=0;return wT(e).te({index:d_,ee:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}Rt(e,t){return _T(e).get(t).next(e=>e?wI(e):null)}}function _T(e){return G_(e,o_)}function yT(e){return G_(e,g_)}function wT(e){return G_(e,u_)}let bT="LruGarbageCollector";function IT([e,t],[r,n]){var i=R(e,r);return 0===i?R(t,n):i}class TT{constructor(e){this.Er=e,this.buffer=new L(IT),this.dr=0}Ar(){return++this.dr}Rr(e){var t=[e,this.Ar()];if(this.buffer.size<this.Er)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();IT(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class ET{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Vr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.mr(6e4)}stop(){this.Vr&&(this.Vr.cancel(),this.Vr=null)}get started(){return null!==this.Vr}mr(e){C(bT,`Garbage collection scheduled in ${e}ms`),this.Vr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Vr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Ev(e)?C(bT,"Ignoring IndexedDB error during garbage collection: ",e):await vv(e)}await this.mr(3e5)})}}class CT{constructor(e,t){this.gr=e,this.params=t}calculateTargetCount(e,t){return this.gr.pr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return O.resolve(xv.le);let r=new TT(t);return this.gr.forEachTarget(e,e=>r.Rr(e.sequenceNumber)).next(()=>this.gr.yr(e,e=>r.Rr(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.gr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.gr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(C("LruGarbageCollector","Garbage collection skipped; disabled"),O.resolve(oT)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(C("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),oT):this.wr(t,r))}getCacheSize(e){return this.gr.getCacheSize(e)}wr(t,r){let n,i,s,a,o,l,h,u=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(C("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,l=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(h=Date.now(),Dm()<=c.DEBUG&&C("LruGarbageCollector",`LRU Garbage Collection
|
|
27
27
|
Counted targets in ${a-u}ms
|
|
28
|
-
Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(l-o)+"ms\n"+` Removed ${e} documents in `+(h-l)+"ms\n"+`Total Duration: ${h-u}ms`),O.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function kT(e,t){return new CT(e,t)}class ST{constructor(e,t){this.db=e,this.garbageCollector=kT(this,t)}pr(e){let r=this.Sr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}Sr(e){let t=0;return this.yr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}yr(e,r){return this.br(e,(e,t)=>r(t))}addReference(e,t,r){return AT(e,r)}removeReference(e,t,r){return AT(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return AT(e,t)}Dr(e,r){{var n=e,i=r;let t=!1;return gT(n).ne(e=>dT(n,e,i).next(e=>(e&&(t=!0),O.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.br(r,(t,e)=>{if(e<=n){let e=this.Dr(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,P.min()),wT(r).delete([0,Uv(t.path)])))});s.push(e)}}).next(()=>O.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return AT(e,t)}br(e,n){var t=wT(e);let i,s=Dv.le;return t.te({index:d_},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==Dv.le&&n(new x(qv(i)),s),s=r,i=t):s=Dv.le}).next(()=>{s!==Dv.le&&n(new x(qv(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function AT(e,t){return wT(e).put((e=e.currentSequenceNumber,{targetId:0,path:Uv(t.path),sequenceNumber:e}))}class NT{constructor(){this.changes=new xw(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,Ky.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?O.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class RT{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return OT(e).put(r)}removeEntry(e,t,r){return OT(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],mI(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.vr(t,e)))}getEntry(e,r){let n=Ky.newInvalidDocument(r);return OT(e).te({index:t_,range:IDBKeyRange.only(MT(r))},(e,t)=>{n=this.Cr(r,t)}).next(()=>n)}Fr(e,r){let n={size:0,document:Ky.newInvalidDocument(r)};return OT(e).te({index:t_,range:IDBKeyRange.only(MT(r))},(e,t)=>{n={document:this.Cr(r,t),size:uT(t)}}).next(()=>n)}getEntries(e,t){let n=Ow;return this.Mr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r)}).next(()=>n)}Or(e,t){let n=Ow,i=new M(x.comparator);return this.Mr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r),i=i.insert(e,uT(t))}).next(()=>({documents:n,Nr:i}))}Mr(e,t,i){if(t.isEmpty())return O.resolve();let r=new L(FT),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(MT(r.first()),MT(r.last()))),s=r.getIterator(),a=s.getNext();return OT(e).te({index:t_,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&FT(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.H(MT(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),mI(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return OT(e).J(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=Ow;for(let r of e){let e=this.Cr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(Rw(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=Ow;var n=LT(t,r),a=LT(t,pv.max());return OT(e).te({index:n_,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Cr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new DT(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return xT(e).get(a_).next(e=>(S(!!e,20021),e))}vr(e,t){return xT(e).put(a_,t)}Cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=eI(e.wt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=_I(r.noDocument.readTime);n=Ky.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return k(56709);{let e=x.fromSegments(r.unknownDocument.path),t=_I(r.unknownDocument.version);n=Ky.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new ev(e[0],e[1]),P.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(P.min()))return e}return Ky.newInvalidDocument(e)}}function PT(e){return new RT(e)}class DT extends NT{constructor(e,t){super(),this.Br=e,this.trackRemovals=t,this.Lr=new xw(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new L((e,t)=>R(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Lr.get(t);if(a.push(this.Br.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=gI(this.Br.serializer,r),i=(l=l.add(t.path.popLast()),uT(n));o+=i-e.size,a.push(this.Br.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=gI(this.Br.serializer,r.convertToNoDocument(P.min()));a.push(this.Br.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Br.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Br.updateMetadata(s,o)),O.waitFor(a)}getFromCache(e,t){return this.Br.Fr(e,t).next(e=>(this.Lr.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Br.Or(e,t).next(({documents:r,Nr:e})=>(e.forEach((e,t)=>{this.Lr.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function xT(e){return G_(e,s_)}function OT(e){return G_(e,Zv)}function MT(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function LT(e,t){var r=t.documentKey.path.toArray();return[e,mI(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function FT(e,t){var r=e.path.toArray(),n=t.path.toArray();let i=0;for(let s=0;s<r.length-2&&s<n.length-2;++s)if(i=R(r[s],n[s]))return i;return(i=R(r.length,n.length))||(i=R(r[r.length-2],n[n.length-2]))||R(r[r.length-1],n[n.length-1])}class UT{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class VT{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(t,r){let n=null;return this.documentOverlayCache.getOverlay(t,r).next(e=>(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&ob(n.mutation,e,ty.empty(),ev.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,V()).next(()=>e))}getLocalViewOfDocuments(e,t,r=V()){let n=Uw();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Lw();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=Uw();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,V()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=Ow,a=Uw(),o=Uw();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof ub)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),ob(r.mutation,t,r.mutation.getFieldMask(),ev.now())):a.set(t.key,ty.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var r;return o.set(e,new UT(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=Uw(),h=new M((e,t)=>e-t),u=V();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=l.get(e)||ty.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(h.get(n.batchId)||V()).add(e),h=h.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=h.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=Uw();r.forEach(e=>{var t;u.has(e)||(null!==(t=ab(o.get(e),l.get(e)))&&n.set(e,t),u=u.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return O.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Iw(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0<o-r.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-r.size):O.resolve(Uw());let n=sv,i=r;return e.next(e=>O.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?O.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,V())).next(e=>({batchId:n,changes:Fw(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=Lw();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=Lw();return this.indexManager.getCollectionParents(n,o).next(e=>O.forEach(e,e=>{t=i,e=e.child(o);var t,r=new _w(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,Ky.newInvalidDocument(r)))});let i=Lw();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&ob(r.mutation,t,ty.empty(),ev.now()),Rw(s,t)&&(i=i.insert(e,t))}),i})}}class qT{constructor(e){this.serializer=e,this.kr=new Map,this.qr=new Map}getBundleMetadata(e,t){return O.resolve(this.kr.get(t))}saveBundleMetadata(e,t){return this.kr.set(t.id,{id:t.id,version:t.version,createTime:zb(t.createTime)}),O.resolve()}getNamedQuery(e,t){return O.resolve(this.qr.get(t))}saveNamedQuery(e,t){return this.qr.set(t.name,{name:(t=t).name,query:II(t.bundledQuery),readTime:zb(t.readTime)}),O.resolve()}}class jT{constructor(){this.overlays=new M(x.comparator),this.Qr=new Map}getOverlay(e,t){return O.resolve(this.overlays.get(t))}getOverlays(e,t){let r=Uw();return O.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.bt(r,n,t)}),O.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Qr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Qr.delete(r)),O.resolve()}getOverlaysForCollection(e,r,n){let i=Uw(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return O.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new M((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Uw(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=Uw(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return O.resolve(a)}bt(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Qr.get(n.largestBatchId).delete(r.key);this.Qr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new _b(t,r));let i=this.Qr.get(t);void 0===i&&(i=V(),this.Qr.set(t,i)),this.Qr.set(t,i.add(r.key))}}class BT{constructor(){this.sessionToken=ny.EMPTY_BYTE_STRING}getSessionToken(e){return O.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,O.resolve()}}class zT{constructor(){this.$r=new L(KT.Ur),this.Kr=new L(KT.Wr)}isEmpty(){return this.$r.isEmpty()}addReference(e,t){var r=new KT(e,t);this.$r=this.$r.add(r),this.Kr=this.Kr.add(r)}Gr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.zr(new KT(e,t))}jr(e,t){e.forEach(e=>this.removeReference(e,t))}Hr(e){let t=new x(new D([])),r=new KT(t,e),n=new KT(t,e+1),i=[];return this.Kr.forEachInRange([r,n],e=>{this.zr(e),i.push(e.key)}),i}Jr(){this.$r.forEach(e=>this.zr(e))}zr(e){this.$r=this.$r.delete(e),this.Kr=this.Kr.delete(e)}Yr(e){var t=new x(new D([])),r=new KT(t,e),t=new KT(t,e+1);let n=V();return this.Kr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new KT(e,0),t=this.$r.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class KT{constructor(e,t){this.key=e,this.Zr=t}static Ur(e,t){return x.comparator(e.key,t.key)||R(e.Zr,t.Zr)}static Wr(e,t){return R(e.Zr,t.Zr)||x.comparator(e.key,t.key)}}class WT{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.nr=1,this.Xr=new L(KT.Ur)}checkEmpty(e){return O.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.nr,s=(this.nr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new mb(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Xr=this.Xr.add(new KT(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return O.resolve(s)}lookupMutationBatch(e,t){return O.resolve(this.ei(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.ti(t+1),r=r<0?0:r;return O.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return O.resolve(0===this.mutationQueue.length?xv:this.nr-1)}getAllMutationBatches(e){return O.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new KT(t,0),n=new KT(t,Number.POSITIVE_INFINITY),i=[];return this.Xr.forEachInRange([r,n],e=>{var t=this.ei(e.Zr);i.push(t)}),O.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new L(R);return t.forEach(e=>{var t=new KT(e,0),r=new KT(e,Number.POSITIVE_INFINITY);this.Xr.forEachInRange([t,r],e=>{n=n.add(e.Zr)})}),O.resolve(this.ni(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new KT(new x(i),0);let a=new L(R);return this.Xr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Zr)),!0)},s),O.resolve(this.ni(a))}ni(e){let r=[];return e.forEach(e=>{var t=this.ei(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){S(0===this.ri(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Xr;return O.forEach(n.mutations,e=>{var t=new KT(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Xr=i})}sr(e){}containsKey(e,t){var r=new KT(t,0),r=this.Xr.firstAfterOrEqual(r);return O.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,O.resolve()}ri(e,t){return this.ti(e)}ti(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}ei(e){var t=this.ti(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class HT{constructor(e){this.ii=e,this.docs=new M(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.ii(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return O.resolve(r?r.document.mutableCopy():Ky.newInvalidDocument(t))}getEntries(e,t){let r=Ow;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():Ky.newInvalidDocument(e))}),O.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=Ow,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||fv(dv(t),n)<=0||(i.has(t.key)||Rw(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return O.resolve(s)}getAllFromCollectionGroup(e,t,r,n){k(9500)}si(e,t){return O.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new GT(this)}getSize(e){return O.resolve(this.size)}}class GT extends NT{constructor(e){super(),this.Br=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Br.addEntry(r,t)):this.Br.removeEntry(e)}),O.waitFor(n)}getFromCache(e,t){return this.Br.getEntry(e,t)}getAllFromCache(e,t){return this.Br.getEntries(e,t)}}class $T{constructor(e){this.persistence=e,this.oi=new xw(e=>dw(e),pw),this.lastRemoteSnapshotVersion=P.min(),this.highestTargetId=0,this._i=0,this.ai=new zT,this.targetCount=0,this.ui=mT.cr()}forEachTarget(e,r){return this.oi.forEach((e,t)=>r(t)),O.resolve()}getLastRemoteSnapshotVersion(e){return O.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return O.resolve(this._i)}allocateTargetId(e){return this.highestTargetId=this.ui.next(),O.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this._i&&(this._i=t),O.resolve()}Tr(e){this.oi.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.ui=new mT(t),this.highestTargetId=t),e.sequenceNumber>this._i&&(this._i=e.sequenceNumber)}addTargetData(e,t){return this.Tr(t),this.targetCount+=1,O.resolve()}updateTargetData(e,t){return this.Tr(t),O.resolve()}removeTargetData(e,t){return this.oi.delete(t.target),this.ai.Hr(t.targetId),--this.targetCount,O.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.oi.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.oi.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),O.waitFor(a).next(()=>s)}getTargetCount(e){return O.resolve(this.targetCount)}getTargetData(e,t){var r=this.oi.get(t)||null;return O.resolve(r)}addMatchingKeys(e,t,r){return this.ai.Gr(t,r),O.resolve()}removeMatchingKeys(t,e,r){this.ai.jr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),O.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.ai.Hr(t),O.resolve()}getMatchingKeysForTargetId(e,t){var r=this.ai.Yr(t);return O.resolve(r)}containsKey(e,t){return O.resolve(this.ai.containsKey(t))}}class QT{constructor(e,t){this.ci={},this.overlays={},this.li=new Dv(0),this.hi=!1,this.hi=!0,this.Pi=new BT,this.referenceDelegate=e(this),this.Ti=new $T(this),this.indexManager=new JI,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Ii(e),new HT(e)),this.serializer=new fI(t),this.Ei=new qT(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.hi=!1,Promise.resolve()}get started(){return this.hi}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new jT,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.ci[e.toKey()];return r||(r=new WT(t,this.referenceDelegate),this.ci[e.toKey()]=r),r}getGlobalsCache(){return this.Pi}getTargetCache(){return this.Ti}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ei}runTransaction(e,t,r){C("MemoryPersistence","Starting transaction:",e);let n=new YT(this.li.next());return this.referenceDelegate.di(),r(n).next(e=>this.referenceDelegate.Ai(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ri(t,r){return O.or(Object.values(this.ci).map(e=>()=>e.containsKey(t,r)))}}class YT extends mv{constructor(e){super(),this.currentSequenceNumber=e}}class JT{constructor(e){this.persistence=e,this.Vi=new zT,this.mi=null}static fi(e){return new JT(e)}get gi(){if(this.mi)return this.mi;throw k(60996)}addReference(e,t,r){return this.Vi.addReference(r,t),this.gi.delete(r.toString()),O.resolve()}removeReference(e,t,r){return this.Vi.removeReference(r,t),this.gi.add(r.toString()),O.resolve()}markPotentiallyOrphaned(e,t){return this.gi.add(t.toString()),O.resolve()}removeTarget(e,t){this.Vi.Hr(t.targetId).forEach(e=>this.gi.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.gi.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}di(){this.mi=new Set}Ai(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return O.forEach(this.gi,e=>{let t=x.fromPath(e);return this.pi(r,t).next(e=>{e||n.removeEntry(t,P.min())})}).next(()=>(this.mi=null,n.apply(r)))}updateLimboDocument(e,t){return this.pi(e,t).next(e=>{e?this.gi.delete(t.toString()):this.gi.add(t.toString())})}Ii(e){return 0}pi(e,t){return O.or([()=>O.resolve(this.Vi.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ri(e,t)])}}class XT{constructor(e,t){this.persistence=e,this.yi=new xw(e=>Uv(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=kT(this,t)}static fi(e,t){return new XT(e,t)}di(){}Ai(e){return O.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}pr(e){let r=this.Sr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}Sr(e){let t=0;return this.yr(e,e=>{t++}).next(()=>t)}yr(r,n){return O.forEach(this.yi,(e,t)=>this.Dr(r,e,t).next(e=>e?O.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.si(e,t=>this.Dr(e,t,r).next(e=>{e||(n++,i.removeEntry(t,P.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.yi.set(t,e.currentSequenceNumber),O.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.yi.set(r,e.currentSequenceNumber),O.resolve()}removeReference(e,t,r){return this.yi.set(r,e.currentSequenceNumber),O.resolve()}updateLimboDocument(e,t){return this.yi.set(t,e.currentSequenceNumber),O.resolve()}Ii(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(Ey(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=py(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return oy(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Q_(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw k(13486,{value:e})}}(e.data.value)),t}Dr(e,t,r){return O.or([()=>this.persistence.Ri(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.yi.get(t);return O.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class ZT{constructor(e){this.serializer=e}q(t,e,r,n){let s=new yv("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(Bv),(i=t).createObjectStore(Kv,{keyPath:"userId"}),i.createObjectStore(Wv,{keyPath:Hv,autoIncrement:!0}).createIndex(Gv,$v,{unique:!0}),i.createObjectStore(Xv),e0(t),t.createObjectStore(jv));let a=O.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(u_),i.deleteObjectStore(o_),i.deleteObjectStore(g_),e0(t)),a=a.next(()=>{return e=s,t=e.store(g_),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:P.min().toTimestamp(),targetCount:0},t.put(f_,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(Wv).J().next(e=>{n.deleteObjectStore(Wv),n.createObjectStore(Wv,{keyPath:Hv,autoIncrement:!0}).createIndex(Gv,$v,{unique:!0});let t=i.store(Wv),r=e.map(e=>t.put(e));return O.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(__,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.wi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(s_),this.Si(s)))),r<7&&7<=n&&(a=a.next(()=>this.bi(s))),r<8&&8<=n&&(a=a.next(()=>this.Di(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.Ci(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(y_,{keyPath:"bundleId"}),t.createObjectStore(w_,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(P_,{keyPath:D_})).createIndex(x_,O_,{unique:!1}),e.createIndex(M_,L_,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Zv,{keyPath:e_})).createIndex(t_,r_),e.createIndex(n_,i_)}).next(()=>this.Fi(t,s)).next(()=>t.deleteObjectStore(jv))),r<14&&14<=n&&(a=a.next(()=>this.Mi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(b_,{keyPath:"indexId",autoIncrement:!0}).createIndex(I_,"collectionGroup",{unique:!1}),e.createObjectStore(T_,{keyPath:E_}).createIndex(C_,k_,{unique:!1}),e.createObjectStore(S_,{keyPath:A_}).createIndex(N_,R_,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(T_).clear()}).next(()=>{e.objectStore(S_).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(F_,{keyPath:"name"})})),a=r<18&&18<=n&&ge()?a.next(()=>{e.objectStore(T_).clear()}).next(()=>{e.objectStore(S_).clear()}):a}Si(t){let r=0;return t.store(jv).te((e,t)=>{r+=uT(t)}).next(()=>{var e={byteSize:r};return t.store(s_).put(a_,e)})}wi(n){let e=n.store(Kv),t=n.store(Wv);return e.J().next(e=>O.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,xv],[r.userId,r.lastAcknowledgedBatchId]);return t.J(Gv,e).next(e=>O.forEach(e,e=>{S(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=yI(this.serializer,e);return hT(n,r.userId,t).next(()=>{})}))}))}bi(e){let a=e.store(u_),t=e.store(jv);return e.store(g_).get(f_).next(i=>{let s=[];return t.te((e,t)=>{let r=new D(e),n=[0,Uv(r)];s.push(a.get(n).next(e=>e?O.resolve():(e=r,a.put({targetId:0,path:Uv(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>O.waitFor(s))})}Di(e,t){e.createObjectStore(m_,{keyPath:v_});let n=t.store(m_),i=new XI,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Uv(t)})}};return t.store(jv).te({ee:!0},(e,t)=>{var r=new D(e);return s(r.popLast())}).next(()=>t.store(Xv).te({ee:!0},([,e],t)=>{var r=qv(e);return s(r.popLast())}))}Ci(e){let n=e.store(o_);return n.te((e,t)=>{var r=wI(t),r=bI(this.serializer,r);return n.put(r)})}Fi(e,s){let t=s.store(jv),a=[];return t.te((e,t)=>{var r,n=s.store(Zv),i=((r=t).document?new x(D.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):k(36783)).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>O.waitFor(a))}Mi(e,s){let t=s.store(Wv),a=PT(this.serializer),o=new QT(JT.fi,this.serializer.wt);return t.J().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:V();yI(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),O.forEach(n,(e,t)=>{var r=new Rm(t),n=NI.St(this.serializer,r),i=o.getIndexManager(r),r=cT.St(r,this.serializer,i,o.referenceDelegate);return new VT(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new H_(s,Dv.le),e).next()})})}}function e0(e){e.createObjectStore(u_,{keyPath:c_}).createIndex(d_,p_,{unique:!0}),e.createObjectStore(o_,{keyPath:"targetId"}).createIndex(l_,h_,{unique:!0}),e.createObjectStore(g_)}let t0="IndexedDbPersistence",r0="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class n0{constructor(e,t,r,n,i,s,a,o,l,h,u=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.xi=i,this.window=s,this.document=a,this.Oi=l,this.Ni=h,this.Bi=u,this.li=null,this.hi=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Li=null,this.inForeground=!1,this.ki=null,this.qi=null,this.Qi=Number.NEGATIVE_INFINITY,this.$i=e=>Promise.resolve(),!n0.C())throw new N(A.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new ST(this,n),this.Ui=t+"main",this.serializer=new fI(o),this.Ki=new wv(this.Ui,this.Bi,new ZT(this.serializer)),this.Pi=new PI,this.Ti=new vT(this.referenceDelegate,this.serializer),this.remoteDocumentCache=PT(this.serializer),this.Ei=new kI,this.window&&this.window.localStorage?this.Wi=this.window.localStorage:(this.Wi=null,!1===h&&Om(t0,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Gi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.zi(),this.ji(),this.Hi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Ti.getHighestSequenceNumber(e));throw new N(A.FAILED_PRECONDITION,r0)}).then(e=>{this.li=new Dv(e,this.Oi)}).then(()=>{this.hi=!0}).catch(e=>(this.Ki&&this.Ki.close(),Promise.reject(e)))}Ji(t){return this.$i=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ki.U(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.xi.enqueueAndForget(async()=>{this.started&&await this.Gi()}))}Gi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>s0(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Yi(t).next(e=>{e||(this.isPrimary=!1,this.xi.enqueueRetryable(()=>this.$i(!1)))})}).next(()=>this.Zi(t)).next(e=>this.isPrimary&&!e?this.Xi(t).next(()=>!1):!!e&&this.es(t).next(()=>!0))).catch(e=>{if(Ev(e))return C(t0,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return C(t0,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.xi.enqueueRetryable(()=>this.$i(e)),this.isPrimary=e})}Yi(e){return i0(e).get(zv).next(e=>O.resolve(this.ts(e)))}ns(e){return s0(e).delete(this.clientId)}async rs(){if(this.isPrimary&&!this.ss(this.Qi,18e5)){this.Qi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=G_(e,__);return n.J().next(e=>{let t=this._s(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return O.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Wi)for(var t of e)this.Wi.removeItem(this.us(t.clientId))}}Hi(){this.qi=this.xi.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Gi().then(()=>this.rs()).then(()=>this.Hi()))}ts(e){return!!e&&e.ownerId===this.clientId}Zi(t){return this.Ni?O.resolve(!0):i0(t).get(zv).next(e=>{if(null!==e&&this.ss(e.leaseTimestampMs,5e3)&&!this.cs(e.ownerId)){if(this.ts(e)&&this.networkEnabled)return!0;if(!this.ts(e)){if(e.allowTabSynchronization)return!1;throw new N(A.FAILED_PRECONDITION,r0)}}return!(!this.networkEnabled||!this.inForeground)||s0(t).J().next(e=>void 0===this._s(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&C(t0,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.hi=!1,this.ls(),this.qi&&(this.qi.cancel(),this.qi=null),this.hs(),this.Ps(),await this.Ki.runTransaction("shutdown","readwrite",[Bv,__],e=>{let t=new H_(e,Dv.le);return this.Xi(t).next(()=>this.ns(t))}),this.Ki.close(),this.Ts()}_s(e,t){return e.filter(e=>this.ss(e.updateTimeMs,t)&&!this.cs(e.clientId))}Is(){return this.runTransaction("getActiveClients","readonly",e=>s0(e).J().next(e=>this._s(e,18e5).map(e=>e.clientId)))}get started(){return this.hi}getGlobalsCache(){return this.Pi}getMutationQueue(e,t){return cT.St(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Ti}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new tT(e,this.serializer.wt.databaseId)}getDocumentOverlayCache(e){return NI.St(this.serializer,e)}getBundleCache(){return this.Ei}runTransaction(t,r,n){C(t0,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.Bi)?W_:17===e?K_:16===e?z_:15===e?B_:14===e?j_:13===e?q_:12===e?V_:11===e?U_:void k(60245);let a;return this.Ki.runTransaction(t,i,s,e=>(a=new H_(e,this.li?this.li.next():Dv.le),"readwrite-primary"===r?this.Yi(a).next(e=>!!e||this.Zi(a)).next(e=>{if(e)return n(a);throw Om(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.xi.enqueueRetryable(()=>this.$i(!1)),new N(A.FAILED_PRECONDITION,gv)}).next(e=>this.es(a).next(()=>e)):this.Es(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Es(e){return i0(e).get(zv).next(e=>{if(null!==e&&this.ss(e.leaseTimestampMs,5e3)&&!this.cs(e.ownerId)&&!this.ts(e)&&!(this.Ni||this.allowTabSynchronization&&e.allowTabSynchronization))throw new N(A.FAILED_PRECONDITION,r0)})}es(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return i0(e).put(zv,t)}static C(){return wv.C()}Xi(e){let t=i0(e);return t.get(zv).next(e=>this.ts(e)?(C(t0,"Releasing primary lease."),t.delete(zv)):O.resolve())}ss(e,t){var r=Date.now();return!(e<r-t||r<e&&(Om(`Detected an update time that is in the future: ${e} > `+r),1))}zi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.ki=()=>{this.xi.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Gi()))},this.document.addEventListener("visibilitychange",this.ki),this.inForeground="visible"===this.document.visibilityState)}hs(){this.ki&&(this.document.removeEventListener("visibilitychange",this.ki),this.ki=null)}ji(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Li=()=>{this.ls();var e=/(?:Version|Mobile)\/1[456]/;fe()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.xi.enterRestrictedMode(!0),this.xi.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Li))}Ps(){this.Li&&(this.window.removeEventListener("pagehide",this.Li),this.Li=null)}cs(e){var t;try{var r=null!==(null==(t=this.Wi)?void 0:t.getItem(this.us(e)));return C(t0,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return Om(t0,"Failed to get zombied client id.",e),!1}}ls(){if(this.Wi)try{this.Wi.setItem(this.us(this.clientId),String(Date.now()))}catch(e){Om("Failed to set zombie client id.",e)}}Ts(){if(this.Wi)try{this.Wi.removeItem(this.us(this.clientId))}catch(e){}}us(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function i0(e){return G_(e,Bv)}function s0(e){return G_(e,__)}function a0(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class o0{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.ds=r,this.As=n}static Rs(e,t){let r=V(),n=V();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new o0(e,t.fromCache,r,n)}}class l0{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class h0{constructor(){this.Vs=!1,this.fs=!1,this.gs=100,this.ps=fe()?8:0<bv(ae())?6:4}initialize(e,t){this.ys=e,this.indexManager=t,this.Vs=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.ws(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.Ss(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new l0;return this.bs(r,n,t).next(e=>{if(i.result=e,this.fs)return this.Ds(r,n,t,e.size)})}}).next(()=>i.result)}Ds(e,t,r,n){return r.documentReadCount<this.gs?(xm()<=c.DEBUG&&C("QueryEngine","SDK will not create cache indexes for query:",Nw(t),"since it only creates cache indexes for collection contains","more than or equal to",this.gs,"documents"),O.resolve()):(xm()<=c.DEBUG&&C("QueryEngine","Query:",Nw(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ps*n?(xm()<=c.DEBUG&&C("QueryEngine","The SDK decides to create cache indexes for query:",Nw(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Ew(t))):O.resolve())}ws(i,s){if(bw(s))return O.resolve(null);let t=Ew(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=kw(s,null,"F"),t=Ew(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=V(...e);return this.ys.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.vs(s,r);return this.Cs(s,t,n,e.readTime)?this.ws(i,kw(s,null,"F")):this.Fs(i,t,s,e)}))})))}Ss(r,n,i,s){return bw(n)||s.isEqual(P.min())?O.resolve(null):this.ys.getDocuments(r,i).next(e=>{var t=this.vs(n,e);return this.Cs(n,t,i,s)?O.resolve(null):(xm()<=c.DEBUG&&C("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),Nw(n)),this.Fs(r,t,n,cv(s,sv)).next(e=>e))})}vs(r,e){let n=new L(Dw(r));return e.forEach((e,t)=>{Rw(r,t)&&(n=n.add(t))}),n}Cs(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}bs(e,t,r){return xm()<=c.DEBUG&&C("QueryEngine","Using full collection scan to execute query:",Nw(t)),this.ys.getDocumentsMatchingQuery(e,t,pv.min(),r)}Fs(e,r,t,n){return this.ys.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let u0="LocalStore",c0=3e8;class d0{constructor(e,t,r,n){this.persistence=e,this.Ms=t,this.serializer=n,this.xs=new M(R),this.Os=new xw(e=>dw(e),pw),this.Ns=new Map,this.Bs=e.getRemoteDocumentCache(),this.Ti=e.getTargetCache(),this.Ei=e.getBundleCache(),this.Ls(r)}Ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new VT(this.Bs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Bs.setIndexManager(this.indexManager),this.Ms.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.xs))}}function p0(e,t,r,n){return new d0(e,t,r,n)}async function f0(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.Ls(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=V();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({ks:e,removedBatchIds:t,addedBatchIds:r}))})})}function g0(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.Bs.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=O.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);S(null!==t,48541),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=V();for(let r=0;r<e.mutationResults.length;++r)0<e.mutationResults[r].transformResults.length&&(t=t.add(e.batch.mutations[r].key));return t})(n))).next(()=>i.localDocuments.getDocuments(e,t))})}function m0(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Ti.getLastRemoteSnapshotVersion(e))}function v0(e,h){let u=e,c=h.snapshotVersion,d=u.xs;return u.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=u.Bs.newChangeBuffer({trackRemovals:!0}),l=(d=u.xs,[]),t=(h.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(u.Ti.removeMatchingKeys(o,t.removedDocuments,r).next(()=>u.Ti.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==h.targetMismatches.get(r)?e=e.withResumeToken(ny.EMPTY_BYTE_STRING,P.min()).withLastLimboFreeSnapshotVersion(P.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,c)),d=d.insert(r,e),n=a,i=e,s=t,(0===n.resumeToken.approximateByteSize()||i.snapshotVersion.toMicroseconds()-n.snapshotVersion.toMicroseconds()>=c0||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(u.Ti.updateTargetData(o,e))}}),Ow),r=V();if(h.documentUpdates.forEach(e=>{h.resolvedLimboDocuments.has(e)&&l.push(u.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(_0(o,e,h.documentUpdates).next(e=>{t=e.qs,r=e.Qs})),!c.isEqual(P.min())){let e=u.Ti.getLastRemoteSnapshotVersion(o).next(e=>u.Ti.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return O.waitFor(l).next(()=>e.apply(o)).next(()=>u.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(u.xs=d,e))}function _0(e,s,t){let r=V(),a=V();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=Ow;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(P.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0<t.version.compareTo(r.version)||0===t.version.compareTo(r.version)&&r.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):C(u0,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{qs:i,Qs:a}})}function y0(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Ti.getTargetData(t,n).next(e=>e?(r=e,O.resolve(r)):i.Ti.allocateTargetId(t).next(e=>(r=new pI(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Ti.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.xs.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.xs=i.xs.insert(e.targetId,e),i.Os.set(n,e.targetId)),e})}async function w0(e,t,r){let n=e,i=n.xs.get(t),s=r?"readwrite":"readwrite-primary";try{r||await n.persistence.runTransaction("Release target",s,e=>n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!Ev(e))throw e;C(u0,`Failed to update sequence numbers for target ${t}: `+e)}n.xs=n.xs.remove(t),n.Os.delete(i.target)}function b0(e,a,o){let l=e,h=P.min(),u=V();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=Ew(a),(void 0!==(s=(i=e).Os.get(n))?O.resolve(i.xs.get(s)):i.Ti.getTargetData(r,n)).next(e=>{if(e)return h=e.lastLimboFreeSnapshotVersion,l.Ti.getMatchingKeysForTargetId(t,e.targetId).next(e=>{u=e})}).next(()=>l.Ms.getDocumentsMatchingQuery(t,a,o?h:P.min(),o?u:V())).next(e=>(E0(l,Pw(a),e),{documents:e,$s:u}));var e,r,n,i,s})}function I0(e,t){let r=e,n=r.Ti,i=r.xs.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.Rt(e,t).next(e=>e?e.target:null))}function T0(e,t){let r=e,n=r.Ns.get(t)||P.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.Bs.getAllFromCollectionGroup(e,t,cv(n,sv),Number.MAX_SAFE_INTEGER)).then(e=>(E0(r,t,e),e))}function E0(e,t,r){let n=e.Ns.get(t)||P.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Ns.set(t,n)}let C0="firestore_clients";function k0(e,t){return C0+`_${e}_`+t}let S0="firestore_mutations";function A0(e,t,r){let n=S0+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let N0="firestore_targets";function R0(e,t){return N0+`_${e}_`+t}let P0="SharedClientState";class D0{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Gs(e,t,r){var n=JSON.parse(r);let i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new N(n.error.code,n.error.message)),s?new D0(e,t,n.state,i):(Om(P0,`Failed to parse mutation state for ID '${t}': `+r),null)}zs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class x0{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Gs(e,t){var r=JSON.parse(t);let n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new N(r.error.code,r.error.message)),i?new x0(e,r.state,n):(Om(P0,`Failed to parse target state for ID '${e}': `+t),null)}zs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class O0{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Gs(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=jw;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=Lv(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new O0(e,i):(Om(P0,`Failed to parse client data for instance '${e}': `+t),null)}}class M0{constructor(e,t){this.clientId=e,this.onlineState=t}static Gs(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new M0(t.clientId,t.onlineState):(Om(P0,"Failed to parse online state: "+e),null)}}class L0{constructor(){this.activeTargetIds=jw}js(e){this.activeTargetIds=this.activeTargetIds.add(e)}Hs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}zs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class F0{constructor(e,t,r,n,i){this.window=e,this.xi=t,this.persistenceKey=r,this.Js=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Ys=this.Zs.bind(this),this.Xs=new M(R),this.started=!1,this.eo=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.no=k0(this.persistenceKey,this.Js),this.ro="firestore_sequence_number_"+this.persistenceKey,this.Xs=this.Xs.insert(this.Js,new L0),this.io=new RegExp(`^${C0}_${s}_([^_]*)$`),this.so=new RegExp(`^${S0}_${s}_(\\d+)(?:_(.*))?$`),this.oo=new RegExp(`^${N0}_${s}_(\\d+)$`),this._o="firestore_online_state_"+this.persistenceKey,this.ao="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Ys)}static C(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.Is();for(let r of e)if(r!==this.Js){let e=this.getItem(k0(this.persistenceKey,r));var t;e&&(t=O0.Gs(r,e))&&(this.Xs=this.Xs.insert(t.clientId,t))}this.uo();let r=this.storage.getItem(this._o);if(r){let e=this.co(r);e&&this.lo(e)}for(let e of this.eo)this.Zs(e);this.eo=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.ro,JSON.stringify(e))}getAllActiveQueryTargets(){return this.ho(this.Xs)}isActiveQueryTarget(r){let n=!1;return this.Xs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.Po(e,"pending")}updateMutationState(e,t,r){this.Po(e,t,r),this.To(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(R0(this.persistenceKey,t));var n;e&&(n=x0.Gs(t,e))&&(r=n.state)}return e&&this.Io.js(t),this.uo(),r}removeLocalQueryTarget(e){this.Io.Hs(e),this.uo()}isLocalQueryTarget(e){return this.Io.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(R0(this.persistenceKey,e))}updateQueryState(e,t,r){this.Eo(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.To(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Ao(e)}notifyBundleLoaded(e){this.Ro(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Ys),this.removeItem(this.no),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return C(P0,"READ",e,t),t}setItem(e,t){C(P0,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){C(P0,"REMOVE",e),this.storage.removeItem(e)}Zs(e){let t=e;t.storageArea===this.storage&&(C(P0,"EVENT",t.key,t.newValue),t.key===this.no?Om("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.xi.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.io.test(t.key))return null==t.newValue?(e=this.Vo(t.key),this.mo(e,null)):(e=this.fo(t.key,t.newValue))?this.mo(e.clientId,e):void 0;if(this.so.test(t.key)){if(null!==t.newValue){var e=this.po(t.key,t.newValue);if(e)return this.yo(e)}}else if(this.oo.test(t.key)){if(null!==t.newValue){var e=this.wo(t.key,t.newValue);if(e)return this.So(e)}}else if(t.key===this._o){if(null!==t.newValue){var e=this.co(t.newValue);if(e)return this.lo(e)}}else t.key===this.ro?(e=(e=>{let t=Dv.le;if(null!=e)try{var r=JSON.parse(e);S("number"==typeof r,30636,{bo:e}),t=r}catch(e){Om(P0,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==Dv.le&&this.sequenceNumberHandler(e):t.key===this.ao&&(e=this.Do(t.newValue),await Promise.all(e.map(e=>this.syncEngine.vo(e))))}}else this.eo.push(t)}))}get Io(){return this.Xs.get(this.Js)}uo(){this.setItem(this.no,this.Io.zs())}Po(e,t,r){var n=new D0(this.currentUser,e,t,r),i=A0(this.persistenceKey,this.currentUser,e);this.setItem(i,n.zs())}To(e){var t=A0(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Ao(e){var t={clientId:this.Js,onlineState:e};this.storage.setItem(this._o,JSON.stringify(t))}Eo(e,t,r){var n=R0(this.persistenceKey,e),i=new x0(e,t,r);this.setItem(n,i.zs())}Ro(e){var t=JSON.stringify(Array.from(e));this.setItem(this.ao,t)}Vo(e){var t=this.io.exec(e);return t?t[1]:null}fo(e,t){var r=this.Vo(e);return O0.Gs(r,t)}po(e,t){var r=this.so.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return D0.Gs(new Rm(r),n,t)}wo(e,t){var r=this.oo.exec(e),r=Number(r[1]);return x0.Gs(r,t)}co(e){return M0.Gs(e)}Do(e){return JSON.parse(e)}async yo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Co(e.batchId,e.state,e.error);C(P0,"Ignoring mutation for non-active user "+e.user.uid)}So(e){return this.syncEngine.Fo(e.targetId,e.state,e.error)}mo(e,t){let r=t?this.Xs.insert(e,t):this.Xs.remove(e),n=this.ho(this.Xs),i=this.ho(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Mo(s,a).then(()=>{this.Xs=r})}lo(e){this.Xs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}ho(e){let r=jw;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class U0{constructor(){this.xo=new L0,this.Oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.xo.js(e),this.Oo[e]||"not-current"}updateQueryState(e,t,r){this.Oo[e]=t}removeLocalQueryTarget(e){this.xo.Hs(e)}isLocalQueryTarget(e){return this.xo.activeTargetIds.has(e)}clearQueryState(e){delete this.Oo[e]}getAllActiveQueryTargets(){return this.xo.activeTargetIds}isActiveQueryTarget(e){return this.xo.activeTargetIds.has(e)}start(){return this.xo=new L0,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class V0{No(e){}shutdown(){}}let q0="ConnectivityMonitor";class j0{constructor(){this.Bo=()=>this.Lo(),this.ko=()=>this.qo(),this.Qo=[],this.$o()}No(e){this.Qo.push(e)}shutdown(){window.removeEventListener("online",this.Bo),window.removeEventListener("offline",this.ko)}$o(){window.addEventListener("online",this.Bo),window.addEventListener("offline",this.ko)}Lo(){C(q0,"Network connectivity changed: AVAILABLE");for(var e of this.Qo)e(0)}qo(){C(q0,"Network connectivity changed: UNAVAILABLE");for(var e of this.Qo)e(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let B0=null;function z0(){return null===B0?B0=268435456+Math.round(2147483648*Math.random()):B0++,"0x"+B0.toString(16)}let K0="RestConnection",W0={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class H0{constructor(e){this.Zo=e.Zo,this.Xo=e.Xo}e_(e){this.t_=e}n_(e){this.r_=e}i_(e){this.s_=e}onMessage(e){this.o_=e}close(){this.Xo()}send(e){this.Zo(e)}__(){this.t_()}a_(){this.r_()}u_(e){this.s_(e)}c_(e){this.o_(e)}}let G0="WebChannelConnection";class $0 extends class{get Uo(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Ko=t+"://"+e.host,this.Wo=`projects/${r}/databases/`+n,this.Go=this.databaseId.database===my?"project_id="+r:`project_id=${r}&database_id=`+n}zo(t,e,r,n,i){let s=z0(),a=this.jo(t,e.toUriEncodedString());C(K0,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Wo,"x-goog-request-params":this.Go},l=(this.Ho(o,n,i),new URL(a)).host,l=ee(l);return this.Jo(t,a,o,r,l).then(e=>(C(K0,`Received RPC '${t}' ${s}: `,e),e),e=>{throw Mm(K0,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Yo(e,t,r,n,i,s){return this.zo(e,t,r,n,i)}Ho(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+Pm,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}jo(e,t){var r=W0[e];return this.Ko+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}Jo(l,t,r,n,e){let h=z0();return new Promise((s,a)=>{let o=new vm;o.setWithCredentials(!0),o.listenOnce(ym.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case wm.NO_ERROR:var e=o.getResponseJson();C(G0,`XHR for RPC '${l}' ${h} received:`,JSON.stringify(e)),s(e);break;case wm.TIMEOUT:C(G0,`RPC '${l}' ${h} timed out`),a(new N(A.DEADLINE_EXCEEDED,"Request time out"));break;case wm.HTTP_ERROR:var t=o.getStatus();if(C(G0,`RPC '${l}' ${h} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=null==(e=Array.isArray(e)?e[0]:e)?void 0:e.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(A).indexOf(i)?i:A.UNKNOWN;a(new N(e,r.message))}else a(new N(A.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new N(A.UNAVAILABLE,"Connection failed."));break;default:k(9055,{l_:l,streamId:h,h_:o.getLastErrorCode(),P_:o.getLastError()})}}finally{C(G0,`RPC '${l}' ${h} completed.`)}var n,i});var e=JSON.stringify(n);C(G0,`RPC '${l}' ${h} sending request:`,n),o.send(t,"POST",e,r,15)})}T_(i,e,t){let s=z0(),r=[this.Ko,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Em(),a=Tm(),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},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Ho(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var h=r.join("");C(G0,`Creating RPC '${i}' stream ${s}: `+h,o);let u=n.createWebChannel(h,o),c=!1,d=!1,p=new H0({Zo:e=>{d?C(G0,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(C(G0,`Opening RPC '${i}' stream ${s} transport.`),u.open(),c=!0),C(G0,`RPC '${i}' stream ${s} sending:`,e),u.send(e))},Xo:()=>u.close()}),f=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(u,_m.EventType.OPEN,()=>{d||(C(G0,`RPC '${i}' stream ${s} transport opened.`),p.__())}),f(u,_m.EventType.CLOSE,()=>{d||(d=!0,C(G0,`RPC '${i}' stream ${s} transport closed`),p.u_())}),f(u,_m.EventType.ERROR,e=>{d||(d=!0,Mm(G0,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),p.u_(new N(A.UNAVAILABLE,"The operation could not be completed")))}),f(u,_m.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(S(!!t,16349),t),n=(null==n?void 0:n.error)||(null==(n=n[0])?void 0:n.error);if(n){C(G0,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=Cm[e];if(void 0!==t)return bb(t)})(e),r=n.message;void 0===t&&(t=A.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,p.u_(new N(t,r)),u.close()}else C(G0,`RPC '${i}' stream ${s} received:`,t),p.c_(t)}}),f(a,Im.STAT_EVENT,e=>{e.stat===bm.PROXY?C(G0,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===bm.NOPROXY&&C(G0,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{p.a_()},0),p}}function Q0(){return"undefined"!=typeof window?window:null}function Y0(){return"undefined"!=typeof document?document:null}function J0(e){return new Vb(e,!0)}class X0{constructor(e,t,r=1e3,n=1.5,i=6e4){this.xi=e,this.timerId=t,this.I_=r,this.E_=n,this.d_=i,this.A_=0,this.R_=null,this.V_=Date.now(),this.reset()}reset(){this.A_=0}m_(){this.A_=this.d_}f_(e){this.cancel();var t=Math.floor(this.A_+this.g_()),r=Math.max(0,Date.now()-this.V_),n=Math.max(0,t-r);0<n&&C("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.A_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.R_=this.xi.enqueueAfterDelay(this.timerId,n,()=>(this.V_=Date.now(),e())),this.A_*=this.E_,this.A_<this.I_&&(this.A_=this.I_),this.A_>this.d_&&(this.A_=this.d_)}p_(){null!==this.R_&&(this.R_.skipDelay(),this.R_=null)}cancel(){null!==this.R_&&(this.R_.cancel(),this.R_=null)}g_(){return(Math.random()-.5)*this.A_}}let Z0="PersistentStream";class eE{constructor(e,t,r,n,i,s,a,o){this.xi=e,this.y_=r,this.w_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.S_=0,this.b_=null,this.D_=null,this.stream=null,this.v_=0,this.C_=new X0(e,t)}F_(){return 1===this.state||5===this.state||this.M_()}M_(){return 2===this.state||3===this.state}start(){this.v_=0,4!==this.state?this.auth():this.x_()}async stop(){this.F_()&&await this.close(0)}O_(){this.state=0,this.C_.reset()}N_(){this.M_()&&null===this.b_&&(this.b_=this.xi.enqueueAfterDelay(this.y_,6e4,()=>this.B_()))}L_(e){this.k_(),this.stream.send(e)}async B_(){if(this.M_())return this.close(0)}k_(){this.b_&&(this.b_.cancel(),this.b_=null)}q_(){this.D_&&(this.D_.cancel(),this.D_=null)}async close(e,t){this.k_(),this.q_(),this.C_.cancel(),this.S_++,4!==e?this.C_.reset():t&&t.code===A.RESOURCE_EXHAUSTED?(Om(t.toString()),Om("Using maximum backoff delay to prevent overloading the backend."),this.C_.m_()):t&&t.code===A.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.Q_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.i_(t)}Q_(){}auth(){this.state=1;let e=this.U_(this.S_),r=this.S_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.S_===r&&this.K_(e,t)},t=>{e(()=>{var e=new N(A.UNKNOWN,"Fetching auth token failed: "+t.message);return this.W_(e)})})}K_(e,t){let r=this.U_(this.S_);this.stream=this.G_(e,t),this.stream.e_(()=>{r(()=>this.listener.e_())}),this.stream.n_(()=>{r(()=>(this.state=2,this.D_=this.xi.enqueueAfterDelay(this.w_,1e4,()=>(this.M_()&&(this.state=3),Promise.resolve())),this.listener.n_()))}),this.stream.i_(e=>{r(()=>this.W_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.v_?this.z_(e):this.onNext(e))})}x_(){this.state=5,this.C_.f_(async()=>{this.state=0,this.start()})}W_(e){return C(Z0,"close with error: "+e),this.stream=null,this.close(4,e)}U_(t){return e=>{this.xi.enqueueAndForget(()=>this.S_===t?e():(C(Z0,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class tE extends eE{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}G_(e,t){return this.connection.T_("Listen",e,t)}z_(e){return this.onNext(e)}onNext(e){this.C_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(l=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===l?1:"REMOVE"===l?2:"CURRENT"===l?3:"RESET"===l?4:k(39313,{state:l}),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(S(void 0===l||"string"==typeof l,58123),ny.fromBase64String(l||"")):(S(void 0===l||l instanceof Buffer||l instanceof Uint8Array,16193),ny.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?A.UNKNOWN:bb(l.code),new N(a,l.message||""));r=new Pb(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,$b(e,n.document.name)),s=zb(n.document.updateTime),a=n.document.createTime?zb(n.document.createTime):P.min(),o=new zy({mapValue:{fields:n.document.fields}}),i=Ky.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new Nb(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,$b(e,n.document)),o=n.readTime?zb(n.readTime):P.min(),i=Ky.newNoDocument(s,o),s=n.removedTargetIds||[];r=new Nb([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,$b(e,o.document)),s=o.removedTargetIds||[];r=new Nb([],s,n,null)}else{if(!("filter"in t))return k(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new yb(i,o),n=e.targetId;r=new Rb(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?zb(r.readTime):P.min();return this.listener.j_(t,r)}H_(e){var t={},r=(t.database=Jb(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=fw(e)?{documents:iI(t,e)}:{query:sI(t,e).gt}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=Bb(t,r.resumeToken);let e=qb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(P.min())){n.readTime=jb(t,r.snapshotVersion.toTimestamp());let e=qb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),oI(this.serializer,e));r&&(t.labels=r),this.L_(t)}J_(e){var t={};t.database=Jb(this.serializer),t.removeTarget=e,this.L_(t)}}class rE extends eE{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get Y_(){return 0<this.v_}start(){this.lastStreamToken=void 0,super.start()}Q_(){this.Y_&&this.Z_([])}G_(e,t){return this.connection.T_("Write",e,t)}z_(e){return S(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,S(!e.writeResults||0===e.writeResults.length,55816),this.listener.X_()}onNext(e){S(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.C_.reset();var t=nI(e.writeResults,e.commitTime),r=zb(e.commitTime);return this.listener.ea(r,t)}ta(){var e={};e.database=Jb(this.serializer),this.L_(e)}Z_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>tI(this.serializer,e))};this.L_(t)}}class nE extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.na=!1}ra(){if(this.na)throw new N(A.FAILED_PRECONDITION,"The client has already been terminated.")}zo(r,n,i,s){return this.ra(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.zo(r,Wb(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===A.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new N(A.UNKNOWN,e.toString())})}Yo(r,n,i,s,a){return this.ra(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Yo(r,Wb(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===A.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new N(A.UNKNOWN,e.toString())})}terminate(){this.na=!0,this.connection.terminate()}}class iE{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.ia=0,this.sa=null,this.oa=!0}_a(){0===this.ia&&(this.aa("Unknown"),this.sa=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.sa=null,this.ua("Backend didn't respond within 10 seconds."),this.aa("Offline"),Promise.resolve())))}ca(e){"Online"===this.state?this.aa("Unknown"):(this.ia++,1<=this.ia&&(this.la(),this.ua("Connection failed 1 times. Most recent error: "+e.toString()),this.aa("Offline")))}set(e){this.la(),this.ia=0,"Online"===e&&(this.oa=!1),this.aa(e)}aa(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}ua(e){var t=`Could not reach Cloud Firestore backend. ${e}
|
|
29
|
-
This 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.oa?(Om(t),this.oa=!1):C("OnlineStateTracker",t)}la(){null!==this.sa&&(this.sa.cancel(),this.sa=null)}}let sE="RemoteStore";class aE{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.ha=[],this.Pa=new Map,this.Ta=new Set,this.Ia=[],this.Ea=i,this.Ea.No(e=>{r.enqueueAndForget(async()=>{var e;gE(this)&&(C(sE,"Restarting streams for network reachability change."),(e=this).Ta.add(4),await lE(e),e.da.set("Unknown"),e.Ta.delete(4),await oE(e))})}),this.da=new iE(r,n)}}async function oE(e){if(gE(e))for(var t of e.Ia)await t(!0)}async function lE(e){for(var t of e.Ia)await t(!1)}function hE(e,t){var r=e;r.Pa.has(t.targetId)||(r.Pa.set(t.targetId,t),fE(r)?pE(r):EE(r).M_()&&cE(r,t))}function uE(e,t){var r=e,n=EE(r);r.Pa.delete(t),n.M_()&&dE(r,t),0===r.Pa.size&&(n.M_()?n.N_():gE(r)&&r.da.set("Unknown"))}function cE(e,t){var r;e.Aa.Ke(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(P.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),EE(e).H_(t)}function dE(e,t){e.Aa.Ke(t),EE(e).J_(t)}function pE(t){t.Aa=new xb({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),Rt:e=>t.Pa.get(e)||null,Pt:()=>t.datastore.serializer.databaseId}),EE(t).start(),t.da._a()}function fE(e){return gE(e)&&!EE(e).F_()&&0<e.Pa.size}function gE(e){return 0===e.Ta.size}function mE(e){e.Aa=void 0}async function vE(e,t,r){if(!Ev(t))throw t;e.Ta.add(1),await lE(e),e.da.set("Offline"),r=r||(()=>m0(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{C(sE,"Retrying IndexedDB access"),await r(),e.Ta.delete(1),await oE(e)})}function _E(t,r){return r().catch(e=>vE(t,e,r))}async function yE(e){var t,r,n,i,s=e,a=CE(s);let o=0<s.ha.length?s.ha[s.ha.length-1].batchId:xv;for(;gE(i=s)&&i.ha.length<10;)try{let e=await((e,t)=>{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=xv),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.ha.length&&a.N_();break}o=e.batchId,t=s,r=e,n=void 0,t.ha.push(r),(n=CE(t)).M_()&&n.Y_&&n.Z_(r.mutations)}catch(e){await vE(s,e)}wE(s)&&bE(s)}function wE(e){return gE(e)&&!CE(e).F_()&&0<e.ha.length}function bE(e){CE(e).start()}async function IE(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),C(sE,"RemoteStore received new credentials"),gE(r));r.Ta.add(3),await lE(r),n&&r.da.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.Ta.delete(3),await oE(r)}async function TE(e,t){var r=e;t?(r.Ta.delete(2),await oE(r)):(r.Ta.add(2),await lE(r),r.da.set("Unknown"))}function EE(t){return t.Ra||(t.Ra=(e=t.datastore,r=t.asyncQueue,n={e_:(async function(e){e.da.set("Online")}).bind(null,t),n_:(async function(r){r.Pa.forEach((e,t)=>{cE(r,e)})}).bind(null,t),i_:(async function(e,t){mE(e),fE(e)?(e.da.ca(t),pE(e)):e.da.set("Unknown")}).bind(null,t),j_:(async function(t,e,r){if(t.da.set("Online"),e instanceof Pb&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Pa.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Pa.delete(n),i.Aa.removeTarget(n))}catch(r){C(sE,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await vE(t,r)}else if(e instanceof Nb?t.Aa.Xe(e):e instanceof Rb?t.Aa.ot(e):t.Aa.nt(e),!r.isEqual(P.min()))try{let e=await m0(t.localStore);0<=r.compareTo(e)&&(l=r,(h=(o=t).Aa.It(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.Pa.get(t))&&o.Pa.set(t,r.withResumeToken(e.resumeToken,l))}),h.targetMismatches.forEach((e,t)=>{var r=o.Pa.get(e);r&&(o.Pa.set(e,r.withResumeToken(ny.EMPTY_BYTE_STRING,r.snapshotVersion)),dE(o,e),r=new pI(r.target,e,t,r.sequenceNumber),cE(o,r))}),await o.remoteSyncer.applyRemoteEvent(h))}catch(e){C(sE,"Failed to raise snapshot:",e),await vE(t,e)}var o,l,h}).bind(null,t)},(i=e).ra(),new tE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Ia.push(async e=>{e?(t.Ra.O_(),fE(t)?pE(t):t.da.set("Unknown")):(await t.Ra.stop(),mE(t))})),t.Ra;var e,r,n,i}function CE(t){return t.Va||(t.Va=(e=t.datastore,r=t.asyncQueue,n={e_:()=>Promise.resolve(),n_:(async function(e){CE(e).ta()}).bind(null,t),i_:(async function(e,t){if(t&&CE(e).Y_){var r=e,n=t;if(wb(t=n.code)&&t!==A.ABORTED){let e=r.ha.shift();CE(r).O_(),await _E(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await yE(r)}await 0}wE(e)&&bE(e)}).bind(null,t),X_:(async function(e){var t,r=CE(e);for(t of e.ha)r.Z_(t.mutations)}).bind(null,t),ea:(async function(e,t,r){let n=e.ha.shift(),i=vb.from(n,t,r);await _E(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await yE(e)}).bind(null,t)},(i=e).ra(),new rE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Ia.push(async e=>{e?(t.Va.O_(),await yE(t)):(await t.Va.stop(),0<t.ha.length&&(C(sE,`Stopping write stream with ${t.ha.length} pending writes`),t.ha=[]))})),t.Va;var e,r,n,i}class kE{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new Um,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new kE(e,t,s,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new N(A.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function SE(e,t){if(Om("AsyncQueue",t+": "+e),Ev(e))return new N(A.UNAVAILABLE,t+": "+e);throw e}class AE{static emptySet(e){return new AE(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=Lw(),this.sortedSet=new M(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof AE))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new AE;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class NE{constructor(){this.ma=new M(x.comparator)}track(e){var t=e.doc.key,r=this.ma.get(t);!r||0!==e.type&&3===r.type?this.ma=this.ma.insert(t,e):3===e.type&&1!==r.type?this.ma=this.ma.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.ma=this.ma.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.ma=this.ma.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.ma=this.ma.remove(t):1===e.type&&2===r.type?this.ma=this.ma.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.ma=this.ma.insert(t,{type:2,doc:e.doc}):k(63341,{Vt:e,fa:r})}ga(){let r=[];return this.ma.inorderTraversal((e,t)=>{r.push(t)}),r}}class RE{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new RE(e,t,AE.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&Sw(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n].type!==r[n].type||!t[n].doc.isEqual(r[n].doc))return!1;return!0}}class PE{constructor(){this.pa=void 0,this.ya=[]}wa(){return this.ya.some(e=>e.Sa())}}class DE{constructor(){this.queries=xE(),this.onlineState="Unknown",this.ba=new Set}terminate(){var e,r,t,n;e=this,r=new N(A.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=xE(),n.forEach((e,t)=>{for(let e of t.ya)e.onError(r)})}}function xE(){return new xw(e=>Aw(e),Sw)}async function OE(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.wa()&&r.Sa()&&(n=2):(s=new PE,n=r.Sa()?0:1);try{switch(n){case 0:s.pa=await e.onListen(i,!0);break;case 1:s.pa=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=SE(t,`Initialization of query '${Nw(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.ya.push(r),r.Da(e.onlineState),s.pa&&r.va(s.pa)&&LE(e)}async function ME(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.ya.indexOf(t);0<=e&&(s.ya.splice(e,1),0===s.ya.length?i=t.Sa()?0:1:!s.wa()&&t.Sa()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function LE(e){e.ba.forEach(e=>{e.next()})}(km=km||{}).Ca="default",km.Cache="cache";class FE{constructor(e,t,r){this.query=e,this.Fa=t,this.Ma=!1,this.xa=null,this.onlineState="Unknown",this.options=r||{}}va(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new RE(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Ma?this.Oa(t)&&(this.Fa.next(t),e=!0):this.Na(t,this.onlineState)&&(this.Ba(t),e=!0),this.xa=t,e}onError(e){this.Fa.error(e)}Da(e){this.onlineState=e;let t=!1;return this.xa&&!this.Ma&&this.Na(this.xa,e)&&(this.Ba(this.xa),t=!0),t}Na(e,t){return!e.fromCache||!this.Sa()||(!this.options.La||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Oa(e){var t;return 0<e.docChanges.length||(t=this.xa&&this.xa.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}Ba(e){e=RE.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Ma=!0,this.Fa.next(e)}Sa(){return this.options.source!==km.Cache}}class UE{constructor(e,t){this.ka=e,this.byteLength=t}qa(){return"metadata"in this.ka}}class VE{constructor(e){this.serializer=e}Us(e){return $b(this.serializer,e)}Ks(e){return e.metadata.exists?eI(this.serializer,e.document,!1):Ky.newNoDocument(this.Us(e.metadata.name),this.Ws(e.metadata.readTime))}Ws(e){return zb(e)}}class qE{constructor(e,t,r){this.Qa=e,this.localStore=t,this.serializer=r,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=jE(e)}$a(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.ka.namedQuery?this.queries.push(e.ka.namedQuery):e.ka.documentMetadata?(this.documents.push({metadata:e.ka.documentMetadata}),e.ka.documentMetadata.exists||++t,r=D.fromString(e.ka.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.ka.document&&(this.documents[this.documents.length-1].document=e.ka.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ua(e){let r=new Map,n=new VE(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.Us(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||V()).add(e);r.set(t,s)}}return r}async complete(){let e=await(async(r,n,e,t)=>{let i=r,s=V(),a=Ow;for(let r of e){let e=n.Us(r.metadata.name),t=(r.document&&(s=s.add(e)),n.Ks(r));t.setReadTime(n.Ws(r.metadata.readTime)),a=a.insert(e,t)}let o=i.Bs.newChangeBuffer({trackRemovals:!0}),l=await y0(i,(r=t,Ew(ww(D.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>_0(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Ti.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Ti.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.qs,e.Qs)).next(()=>e.qs)))})(this.localStore,new VE(this.serializer),this.documents,this.Qa.id),t=this.Ua(this.documents);for(let e of this.queries)await(async(e,r,n=V())=>{let i=await y0(e,Ew(II(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=zb(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Ei.saveNamedQuery(e,r):(t=i.withResumeToken(ny.EMPTY_BYTE_STRING,t),s.xs=s.xs.insert(t.targetId,t),s.Ti.updateTargetData(e,t).next(()=>s.Ti.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Ti.addMatchingKeys(e,n,i.targetId)).next(()=>s.Ei.saveNamedQuery(e,r)))})})(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Ka:this.collectionGroups,Wa:e}}}function jE(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class BE{constructor(e){this.key=e}}class zE{constructor(e){this.key=e}}class KE{constructor(e,t){this.query=e,this.Ga=t,this.za=null,this.hasCachedResults=!1,this.current=!1,this.ja=V(),this.mutatedKeys=V(),this.Ha=Dw(e),this.Ja=new AE(this.Ha)}get Ya(){return this.Ga}Za(e,t){let o=t?t.Xa:new NE,l=(t||this).Ja,h=(t||this).mutatedKeys,u=l,c=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,p="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=Rw(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.eu(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.Ha(n,d)||p&&this.Ha(n,p)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||p)&&(c=!0),a&&(h=n?(u=u.add(n),s?h.add(e):h.delete(e)):(u=u.delete(e),h.delete(e)))}),null!==this.query.limit)for(;u.size>this.query.limit;){let e="F"===this.query.limitType?u.last():u.first();u=u.delete(e.key),h=h.delete(e.key),o.track({type:1,doc:e})}return{Ja:u,Xa:o,Cs:c,mutatedKeys:h}}eu(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.Ja,s=(this.Ja=e.Ja,this.mutatedKeys=e.mutatedKeys,e.Xa.ga()),a=(s.sort((e,t)=>{return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return k(20277,{Vt:e})}})(r)-i(n)||this.Ha(e.doc,t.doc);var r,n,i}),this.tu(r),n=null!=n&&n,t&&!n?this.nu():[]),o=0===this.ja.size&&this.current&&!n?1:0,l=o!==this.za;return this.za=o,0!==s.length||l?{snapshot:new RE(this.query,e.Ja,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),ru:a}:{ru:a}}Da(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ja:this.Ja,Xa:new NE,mutatedKeys:this.mutatedKeys,Cs:!1},!1)):{ru:[]}}iu(e){return!this.Ga.has(e)&&!!this.Ja.has(e)&&!this.Ja.get(e).hasLocalMutations}tu(e){e&&(e.addedDocuments.forEach(e=>this.Ga=this.Ga.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ga=this.Ga.delete(e)),this.current=e.current)}nu(){if(!this.current)return[];let t=this.ja,r=(this.ja=V(),this.Ja.forEach(e=>{this.iu(e.key)&&(this.ja=this.ja.add(e.key))}),[]);return t.forEach(e=>{this.ja.has(e)||r.push(new zE(e))}),this.ja.forEach(e=>{t.has(e)||r.push(new BE(e))}),r}su(e){this.Ga=e.$s,this.ja=V();var t=this.Za(e.documents);return this.applyChanges(t,!0)}ou(){return RE.fromInitialDocuments(this.query,this.Ja,this.mutatedKeys,0===this.za,this.hasCachedResults)}}let WE="SyncEngine";class HE{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class GE{constructor(e){this.key=e,this._u=!1}}class $E{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.au={},this.uu=new xw(e=>Aw(e),Sw),this.cu=new Map,this.lu=new Set,this.hu=new M(x.comparator),this.Pu=new Map,this.Tu=new zT,this.Iu={},this.Eu=new Map,this.du=mT.lr(),this.onlineState="Unknown",this.Au=void 0}get isPrimaryClient(){return!0===this.Au}}async function QE(e,t,r,n){var i=await y0(e.localStore,Ew(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await YE(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&hE(e.remoteStore,i),o}async function YE(n,e,t,r,i){n.Ru=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.Za(r);i.Cs&&(i=await b0(e.localStore,t.query,!1).then(({documents:e})=>t.view.Za(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return aC(e,t.targetId,s.ru),s.snapshot})(n,e,t,r);var s=await b0(n.localStore,e,!0),a=new KE(e,s.$s),s=a.Za(s.documents),o=Ab.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(aC(n,t,s.ru),new HE(e,t,a));return n.uu.set(e,o),n.cu.has(t)?n.cu.get(t).push(e):n.cu.set(t,[e]),s.snapshot}async function JE(t,e,r){var n=pC(t);try{let t=await((e,i)=>{let s=e,a=ev.now(),o=i.reduce((e,t)=>e.add(t.key),V()),l,h;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=Ow,r=V();return s.Bs.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{l=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=Hw(i.transform,e||null);null!=t&&(n=null===n?zy.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new ub(r.key,e,function i(e){let s=[];return Q_(e.fields,(e,r)=>{var n=new iv([e]);if(Ly(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new ty(s)}(e.value.mapValue),nb.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(h=e).applyToLocalDocumentSet(l,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:h.batchId,changes:Fw(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Iu[i.currentUser.toKey()];e=(e=e||new M(R)).insert(s,a),i.Iu[i.currentUser.toKey()]=e}await lC(n,t.changes),await yE(n.remoteStore)}catch(t){let e=SE(t,"Failed to persist write");r.reject(e)}}async function XE(e,t){let n=e;try{let e=await v0(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Pu.get(t);r&&(S(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0<e.addedDocuments.size?r._u=!0:0<e.modifiedDocuments.size?S(r._u,14607):0<e.removedDocuments.size&&(S(r._u,42227),r._u=!1))}),await lC(n,e,t)}catch(e){await vv(e)}}function ZE(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.uu.forEach((e,t)=>{var r=t.view.Da(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.ya)e.Da(a)&&(r=!0)}),r&&LE(o)}n.length&&s.au.j_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function eC(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(S(null!==e,37113),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);nC(n,t,r),rC(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await lC(n,e)}catch(r){await vv(r)}}async function tC(t,r){let n=t;gE(n.remoteStore)||C(WE,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===xv?r.resolve():((i=n.Eu.get(e)||[]).push(r),n.Eu.set(e,i))}catch(t){let e=SE(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function rC(e,t){(e.Eu.get(t)||[]).forEach(e=>{e.resolve()}),e.Eu.delete(t)}function nC(e,t,r){var n=e;let i=n.Iu[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Iu[n.currentUser.toKey()]=i}}function iC(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.cu.get(e))t.uu.delete(n),r&&t.au.Vu(n,r);t.cu.delete(e),t.isPrimaryClient&&t.Tu.Hr(e).forEach(e=>{t.Tu.containsKey(e)||sC(t,e)})}function sC(e,t){e.lu.delete(t.path.canonicalString());var r=e.hu.get(t);null!==r&&(uE(e.remoteStore,r),e.hu=e.hu.remove(t),e.Pu.delete(r),oC(e))}function aC(e,t,r){for(var n of r)n instanceof BE?(e.Tu.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.hu.get(a)||i.lu.has(o)||(C(WE,"New document in limbo: "+a),i.lu.add(o),oC(i))):n instanceof zE?(C(WE,"Document no longer in limbo: "+n.key),e.Tu.removeReference(n.key,t),e.Tu.containsKey(n.key)||sC(e,n.key)):k(19791,{mu:n});var i,s,a,o}function oC(e){for(;0<e.lu.size&&e.hu.size<e.maxConcurrentLimboResolutions;){var t=e.lu.values().next().value,t=(e.lu.delete(t),new x(D.fromString(t))),r=e.du.next();e.Pu.set(r,new GE(t)),e.hu=e.hu.insert(t,r),hE(e.remoteStore,new pI(Ew(ww(t.path)),r,"TargetPurposeLimboResolution",Dv.le))}}async function lC(e,t,i){let s=e,a=[],o=[],r=[];if(!s.uu.isEmpty()){s.uu.forEach((e,n)=>{r.push(s.Ru(n,t,i).then(t=>{var r;if((t||i)&&s.isPrimaryClient){let e=t?!t.fromCache:null==(r=null==i?void 0:i.targetChanges.get(n.targetId))?void 0:r.current;s.sharedClientState.updateQueryState(n.targetId,e?"current":"not-current")}if(t){a.push(t);let e=o0.Rs(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.au.j_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>O.forEach(l,t=>O.forEach(t.ds,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>O.forEach(t.As,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!Ev(n))throw n;C(u0,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.xs.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.xs=i.xs.insert(n,r)}}}}}async function hC(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.tr(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):O.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await yE(i.remoteStore):"acknowledged"===r||"rejected"===r?(nC(i,t,n||null),rC(i,t),i.localStore.mutationQueue.sr(t)):k(6720,"Unknown batchState",{fu:r}),await lC(i,s)):C(WE,"Cannot apply mutation batch with id: "+t)}async function uC(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.cu.get(r);if(e&&0!==e.length){t=await y0(a.localStore,Ew(e[0]));for(let r of e){let e=a.uu.get(r),t=(n=e,s=i=void 0,s=await b0((i=a).localStore,n.query,!0),s=n.view.su(s),i.isPrimaryClient&&aC(i,n.targetId,s.ru),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await I0(a.localStore,r);t=await y0(a.localStore,e),await YE(a,cC(e),r,!1,t.resumeToken)}o.push(t)}return a.au.j_(l),o}function cC(e){return yw(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function dC(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=XE.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Pu.get(t);if(r&&r._u)return V().add(r.key);{let r=V(),e=n.cu.get(t);if(e)for(let t of e){let e=n.uu.get(t);r=r.unionWith(e.view.Ya)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Pu.get(n)),s=r&&r.key;if(s){let e=new M(x.comparator),t=(e=e.insert(s,Ky.newNoDocument(s,P.min())),V().add(s)),r=new Sb(P.min(),new Map,new M(R),e,t);await XE(i,r),i.hu=i.hu.remove(s),i.Pu.delete(n),oC(i)}else await w0(i.localStore,n,!1).then(()=>iC(i,n,t)).catch(vv)}).bind(null,t),t.au.j_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.ya)e.va(r)&&(i=!0);t.pa=r}}i&&LE(n)}).bind(null,t.eventManager),t.au.Vu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.ya)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function pC(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await g0(r.localStore,t);nC(r,n,null),rC(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await lC(r,e)}catch(e){await vv(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=eC.bind(null,t),t}function fC(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=zb(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Ei.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(jE(i));var s=new qE(i,e.localStore,r.serializer);let t=await r.gu();for(;t;){let e=await s.$a(t);e&&n._updateProgress(e),t=await r.gu()}var a=await s.complete();return await lC(e,a.Wa,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Ei.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Ka)}catch(e){return Mm(WE,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class gC{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=J0(e.databaseInfo.databaseId),this.sharedClientState=this.pu(e),this.persistence=this.yu(e),await this.persistence.start(),this.localStore=this.wu(e),this.gcScheduler=this.Su(e,this.localStore),this.indexBackfillerScheduler=this.bu(e,this.localStore)}Su(e,t){return null}bu(e,t){return null}wu(e){return p0(this.persistence,new h0,e.initialUser,this.serializer)}yu(e){return new QT(JT.fi,this.serializer)}pu(e){return new U0}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}gC.provider={build:()=>new gC};class mC extends gC{constructor(e){super(),this.cacheSizeBytes=e}Su(e,t){S(this.persistence.referenceDelegate instanceof XT,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new ET(r,e.asyncQueue,t)}yu(e){let t=void 0!==this.cacheSizeBytes?lT.withCacheSize(this.cacheSizeBytes):lT.DEFAULT;return new QT(e=>XT.fi(e,t),this.serializer)}}class vC extends gC{constructor(e,t,r){super(),this.Du=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Du.initialize(this,e),await pC(this.Du.syncEngine),await yE(this.Du.remoteStore),await this.persistence.Ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}wu(e){return p0(this.persistence,new h0,e.initialUser,this.serializer)}Su(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new ET(r,e.asyncQueue,t)}bu(e,t){var r=new Pv(t,this.persistence);return new Rv(e.asyncQueue,r)}yu(e){var t=a0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?lT.withCacheSize(this.cacheSizeBytes):lT.DEFAULT;return new n0(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Q0(),Y0(),this.serializer,this.sharedClientState,!!this.forceOwnership)}pu(e){return new U0}}class _C extends vC{constructor(e,t){super(e,t,!1),this.Du=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Du.syncEngine;this.sharedClientState instanceof F0&&(this.sharedClientState.syncEngine={Co:hC.bind(null,t),Fo:(async function(e,r,n,t){var i=e;if(i.Au)C(WE,"Ignoring unexpected query state notification.");else{var s=i.cu.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await T0(i.localStore,Pw(s[0])),t=Sb.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,ny.EMPTY_BYTE_STRING);await lC(i,e,t);break}case"rejected":await w0(i.localStore,r,!0),iC(i,r,t);break;default:k(64155,n)}}}).bind(null,t),Mo:(async function(e,t,n){let i=dC(e);if(i.Au){for(let r of t)if(i.cu.has(r)&&i.sharedClientState.isActiveQueryTarget(r))C(WE,"Adding an already active target "+r);else{let e=await I0(i.localStore,r),t=await y0(i.localStore,e);await YE(i,cC(e),t.targetId,!1,t.resumeToken),hE(i.remoteStore,t)}for(let r of n)i.cu.has(r)&&await w0(i.localStore,r,!1).then(()=>{uE(i.remoteStore,r),iC(i,r)}).catch(vv)}}).bind(null,t),Is:(function(e){return e.localStore.persistence.Is()}).bind(null,t),vo:(async function(e,t){let r=e;return T0(r.localStore,t).then(e=>lC(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ji(async e=>{{var t=this.Du.syncEngine,s=e;let i=t;if(dC(i),pC(i),!0===s&&!0!==i.Au){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await uC(i,e.toArray());i.Au=!0,await TE(i.remoteStore,!0);for(let e of t)hE(i.remoteStore,e)}else if(!1===s&&!1!==i.Au){let r=[],n=Promise.resolve();i.cu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(iC(i,t),w0(i.localStore,t,!0))),uE(i.remoteStore,t)}),await n,await uC(i,r);{s=i;let r=s;r.Pu.forEach((e,t)=>{uE(r.remoteStore,t)}),r.Tu.Jr(),r.Pu=new Map,r.hu=new M(x.comparator)}i.Au=!1,await TE(i.remoteStore,!1)}}await 0,this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}pu(e){var t,r=Q0();if(F0.C(r))return t=a0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new F0(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new N(A.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class yC{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>ZE(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){C(WE,"User change. New user:",t.toKey());let e=await f0(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Eu.forEach(e=>{e.forEach(e=>{e.reject(new N(A.CANCELLED,n))})}),r.Eu.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await lC(i,e.ks)}}).bind(null,this.syncEngine),await TE(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new DE}createDatastore(e){var t,r,n,i=J0(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new $0(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new nE(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>ZE(this.syncEngine,e,0),i=new(j0.C()?j0:V0),new aE(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new $E(r,n,i,s,a,e),t&&(o.Au=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,C(sE,"RemoteStore shutting down."),t.Ta.add(5),await lE(t),t.Ea.shutdown(),await!t.da.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function wC(t,r=10240){let n=0;return{async read(){var e;return n<t.byteLength?(e={value:t.slice(n,n+r),done:!1},n+=r,e):{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}yC.provider={build:()=>new yC};class bC{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.vu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.vu(this.observer.error,e):Om("Uncaught Error in snapshot listener:",e.toString()))}Cu(){this.muted=!0}vu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class IC{constructor(e,t){this.Fu=e,this.serializer=t,this.metadata=new Um,this.buffer=new Uint8Array,this.Mu=new TextDecoder("utf-8"),this.xu().then(e=>{e&&e.qa()?this.metadata.resolve(e.ka.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
|
|
30
|
-
`+JSON.stringify(null==e?void 0:e.ka)))},e=>this.metadata.reject(e))}close(){return this.Fu.cancel()}async getMetadata(){return this.metadata.promise}async gu(){return await this.getMetadata(),this.xu()}async xu(){var e,t,r=await this.Ou();return null===r?null:(t=this.Mu.decode(r),e=Number(t),isNaN(e)&&this.Nu(`length string (${t}) is not valid number`),t=await this.Bu(e),new UE(JSON.parse(t),r.length+e))}Lu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Ou(){for(;this.Lu()<0&&!await this.ku(););var e,t;return 0===this.buffer.length?null:((e=this.Lu())<0&&this.Nu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async Bu(e){for(;this.buffer.length<e;)await this.ku()&&this.Nu("Reached the end of bundle when more is expected.");var t=this.Mu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Nu(e){throw this.Fu.cancel(),new Error("Invalid bundle format: "+e)}async ku(){var e,t=await this.Fu.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class TC{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new N(A.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let l=e,r={documents:t.map(e=>Gb(l.serializer,e))},n=await l.Yo("BatchGetDocuments",l.serializer.databaseId,D.emptyPath(),r,t.length),h=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,S(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=$b(r,n.found.name),s=zb(n.found.updateTime),o=n.found.createTime?zb(n.found.createTime):P.min(),a=new zy({mapValue:{fields:n.found.fields}}),Ky.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,S(!!(n=e).missing,3894),S(!!n.readTime,22933),i=$b(r,n.missing),s=zb(n.readTime),Ky.newNoDocument(i,s)):k(7234,{result:e});h.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=h.get(e.toString());S(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new fb(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new gb(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>tI(t.serializer,e))};await t.zo("Commit",t.serializer.databaseId,D.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw k(50498,{qu:e.constructor.name});t=P.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new N(A.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(P.min())?nb.exists(!1):nb.updateTime(t):nb.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return nb.exists(!0);if(t.isEqual(P.min()))throw new N(A.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return nb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class EC{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Qu=r.maxAttempts,this.C_=new X0(this.asyncQueue,"transaction_retry")}$u(){--this.Qu,this.Uu()}Uu(){this.C_.f_(async()=>{let t=new TC(this.datastore),e=this.Ku(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Wu(e)}))}).catch(e=>{this.Wu(e)})})}Ku(e){try{var t=this.updateFunction(e);return!Ov(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Wu(e){0<this.Qu&&this.Gu(e)?(--this.Qu,this.asyncQueue.enqueueAndForget(()=>(this.Uu(),Promise.resolve()))):this.deferred.reject(e)}Gu(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!wb(t))}}let CC="FirestoreClient";class kC{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=Rm.UNAUTHENTICATED,this.clientId=$m.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{C(CC,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(C(CC,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new Um;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=SE(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function SC(e,t){e.asyncQueue.verifyOperationInProgress(),C(CC,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await f0(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function AC(e,r){e.asyncQueue.verifyOperationInProgress();var t=await NC(e);C(CC,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>IE(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>IE(r.remoteStore,t)),e._onlineComponents=r}async function NC(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){C(CC,"Using user provided OfflineComponentProvider");try{await SC(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===A.FAILED_PRECONDITION||n.code===A.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;Mm("Error using user provided cache. Falling back to memory cache: "+r),await SC(t,new gC)}}else C(CC,"Using default OfflineComponentProvider"),await SC(t,new mC(void 0));var n;return t._offlineComponents}async function RC(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(C(CC,"Using user provided OnlineComponentProvider"),await AC(e,e._uninitializedComponentsProvider._online)):(C(CC,"Using default OnlineComponentProvider"),await AC(e,new yC))),e._onlineComponents}function PC(e){return NC(e).then(e=>e.persistence)}function DC(e){return NC(e).then(e=>e.localStore)}function xC(e){return RC(e).then(e=>e.remoteStore)}function OC(e){return RC(e).then(e=>e.syncEngine)}async function MC(e){var t=await RC(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=dC(e);let i;var s=n.uu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.ou()):await QE(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.uu.get(t),s=n.cu.get(i.targetId);1<s.length?(n.cu.set(i.targetId,s.filter(e=>!Sw(e,t))),n.uu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await w0(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&uE(n.remoteStore,i.targetId),iC(n,i.targetId)}).catch(vv)):(iC(n,i.targetId),await w0(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await QE(dC(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.uu.get(t),i=r.cu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),uE(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function LC(r){return r.asyncQueue.enqueue(async()=>{var e=await PC(r),t=await xC(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ta.add(0),await lE(t),t.da.set("Offline")})(t)})}function FC(e,t){let r=new Um;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new N(A.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=SE(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await DC(e),t,r)),r.promise}function UC(e,t,h={}){let u=new Um;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await MC(e),s=e.asyncQueue,a=t,o=h,l=u;let r=new bC({next:e=>{r.Cu(),s.enqueueAndForget(()=>ME(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new N(A.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new N(A.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.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new FE(ww(a.path),r,{includeMetadataChanges:!0,La:!0});return OE(i,n)}}),u.promise}function VC(e,t){let r=new Um;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await b0(e,t,!0),i=new KE(t,n.$s),s=i.Za(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=SE(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await DC(e),t,r)),r.promise}function qC(o,l,h={}){let u=new Um;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await MC(o),i=o.asyncQueue,e=l,s=h,a=u;let t=new bC({next:e=>{t.Cu(),i.enqueueAndForget(()=>ME(n,r)),e.fromCache&&"server"===s.source?a.reject(new N(A.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.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new FE(e,t,{includeMetadataChanges:!0,La:!0});return OE(n,r)}}),u.promise}function jC(r,e){let n=new bC(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await MC(r),t=n,e.ba.add(t),void t.next();var e,t}),()=>{n.Cu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await MC(r),t=n,e.ba.delete(t)})}}function BC(e,t,r,n){r=r,t=J0(t),s="string"==typeof r?Gm().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return wC(e,t);if(e instanceof ArrayBuffer)return wC(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new IC(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{fC(await OC(e),i,n)})}function zC(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await DC(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ei.getNamedQuery(e,r))}})}function KC(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let WC=new Map;function HC(e,t,r){if(!r)throw new N(A.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function GC(e,t,r,n){if(!0===t&&!0===n)throw new N(A.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function $C(e){if(!x.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function QC(e){if(x.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function YC(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":k(12329,{type:typeof e})}function q(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new N(A.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=YC(e);throw new N(A.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function JC(e,t){if(t<=0)throw new N(A.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let XC="firestore.googleapis.com";class ZC{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new N(A.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=XC,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new N(A.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}GC("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=KC(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class ek{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ZC({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new N(A.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new N(A.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 ZC(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new qm;switch(e.type){case"firstParty":return new Km(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new N(A.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=WC.get(e))&&(C("ComponentProvider","Removing Datastore"),WC.delete(e),t.terminate()),Promise.resolve();var e,t}}class tk{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new tk(this.firestore,e,this._query)}}class rk{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new nk(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new rk(this.firestore,e,this._key)}}class nk extends tk{constructor(e,t,r){super(e,t,ww(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new rk(this.firestore,null,new x(e))}withConverter(e){return new nk(this.firestore,e,this._path)}}function ik(e,t,...r){var n;if(e=w(e),HC("collection","path",t),e instanceof ek)return QC(n=D.fromString(t,...r)),new nk(e,null,n);if(e instanceof rk||e instanceof nk)return QC(n=e._path.child(D.fromString(t,...r))),new nk(e.firestore,null,n);throw new N(A.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function sk(e,t,...r){var n;if(e=w(e),HC("doc","path",t=1===arguments.length?$m.newId():t),e instanceof ek)return $C(n=D.fromString(t,...r)),new rk(e,null,new x(n));if(e instanceof rk||e instanceof nk)return $C(n=e._path.child(D.fromString(t,...r))),new rk(e.firestore,e instanceof nk?e.converter:null,new x(n));throw new N(A.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function ak(e,t){return e=w(e),t=w(t),(e instanceof rk||e instanceof nk)&&(t instanceof rk||t instanceof nk)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function ok(e,t){return e=w(e),t=w(t),e instanceof tk&&t instanceof tk&&e.firestore===t.firestore&&Sw(e._query,t._query)&&e.converter===t.converter}let lk="AsyncQueue";class hk{constructor(e=Promise.resolve()){this.zu=[],this.ju=!1,this.Hu=[],this.Ju=null,this.Yu=!1,this.Zu=!1,this.Xu=[],this.C_=new X0(this,"async_queue_retry"),this.ec=()=>{var e=Y0();e&&C(lk,"Visibility state changed to "+e.visibilityState),this.C_.p_()},this.tc=e;var t=Y0();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.ec)}get isShuttingDown(){return this.ju}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.nc(),this.rc(e)}enterRestrictedMode(e){var t;this.ju||(this.ju=!0,this.Zu=e||!1,(t=Y0())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.ec))}enqueue(e){if(this.nc(),this.ju)return new Promise(()=>{});let t=new Um;return this.rc(()=>this.ju&&this.Zu?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.zu.push(e),this.sc()))}async sc(){if(0!==this.zu.length){try{await this.zu[0](),this.zu.shift(),this.C_.reset()}catch(e){if(!Ev(e))throw e;C(lk,"Operation failed with retryable error: "+e)}0<this.zu.length&&this.C_.f_(()=>this.sc())}}rc(e){var t=this.tc.then(()=>(this.Yu=!0,e().catch(e=>{throw this.Ju=e,this.Yu=!1,Om("INTERNAL UNHANDLED ERROR: ",uk(e)),e}).then(e=>(this.Yu=!1,e))));return this.tc=t}enqueueAfterDelay(e,t,r){this.nc(),-1<this.Xu.indexOf(e)&&(t=0);var n=kE.createAndSchedule(this,e,t,r,e=>this.oc(e));return this.Hu.push(n),n}nc(){this.Ju&&k(47125,{_c:uk(this.Ju)})}verifyOperationInProgress(){}async ac(){for(var e;await(e=this.tc),e!==this.tc;);}uc(e){for(var t of this.Hu)if(t.timerId===e)return!0;return!1}cc(t){return this.ac().then(()=>{this.Hu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.Hu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.ac()})}lc(e){this.Xu.push(e)}oc(e){var t=this.Hu.indexOf(e);this.Hu.splice(t,1)}}function uk(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function ck(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class dk{constructor(){this._progressObserver={},this._taskCompletionResolver=new Um,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var pk,fk;class gk extends ek{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new hk,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new hk(e),this._firestoreClient=void 0,await e)}}function mk(e){if(e._terminated)throw new N(A.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||vk(e),e._firestoreClient}function vk(e){var t,r,n,i,s,a=e._freezeSettings(),o=(i=e._databaseId,t=(null==(o=e._app)?void 0:o.options.appId)||"",r=e._persistenceKey,n=a,new gy(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,KC(n.experimentalLongPollingOptions),n.useFetchStreams,n.isUsingEmulator));e._componentsProvider||null!=(s=a.localCache)&&s._offlineComponentProvider&&null!=(s=a.localCache)&&s._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new kC(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(i=e._componentsProvider,s=null==i?void 0:i._online.build(),{_offline:null==i?void 0:i._offline.build(s),_online:s}))}function _k(e,t,r){if((e=q(e,gk))._firestoreClient||e._terminated)throw new N(A.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new N(A.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},vk(e)}function yk(r){if(r._initialized&&!r._terminated)throw new N(A.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new Um;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=a0(r._databaseId,r._persistenceKey),await(wv.C()?(t=e+"main",void await wv.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function wk(e){return(r=mk(e=q(e,gk))).asyncQueue.enqueue(async()=>{var e=await PC(r),t=await xC(r);return e.setNetworkEnabled(!0),(e=t).Ta.delete(0),oE(e)});var r}class bk{constructor(e){this._byteString=e}static fromBase64String(e){try{return new bk(ny.fromBase64String(e))}catch(e){throw new N(A.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new bk(ny.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class Ik{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new N(A.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new iv(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class Tk{constructor(e){this._methodName=e}}class Ek{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new N(A.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new N(A.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return R(this._lat,e._lat)||R(this._long,e._long)}}class Ck{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}}let kk=/^__.*__$/;class Sk{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new ub(e,this.data,this.fieldMask,t,this.fieldTransforms):new hb(e,this.data,t,this.fieldTransforms)}}class Ak{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new ub(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function Nk(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw k(40011,{hc:e})}}class Rk{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Pc(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get hc(){return this.settings.hc}Tc(e){return new Rk(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ic(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.Tc({path:t,Ec:!1});return t.dc(e),t}Ac(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.Tc({path:t,Ec:!1});return t.Pc(),t}Rc(e){return this.Tc({path:void 0,Ec:!0})}Vc(e){return Yk(e,this.settings.methodName,this.settings.mc||!1,this.path,this.settings.fc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Pc(){if(this.path)for(let e=0;e<this.path.length;e++)this.dc(this.path.get(e))}dc(e){if(0===e.length)throw this.Vc("Document fields must not be empty");if(Nk(this.hc)&&kk.test(e))throw this.Vc('Document fields cannot begin and end with "__"')}}class Pk{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||J0(e)}gc(e,t,r,n=!1){return new Rk({hc:e,methodName:t,fc:r,path:iv.emptyPath(),Ec:!1,mc:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function Dk(e){var t=e._freezeSettings(),r=J0(e._databaseId);return new Pk(e._databaseId,!!t.ignoreUndefinedProperties,r)}function xk(e,n,i,t,r,s={}){var a=e.gc(s.merge||s.mergeFields?2:0,n,i,r),o=(Hk("Data must be an object, but it was:",a,t),Kk(t,a));let l,h;if(s.merge)l=new ty(a.fieldMask),h=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=Gk(n,r,i);if(!a.contains(e))throw new N(A.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);Jk(t,e)||t.push(e)}l=new ty(t),h=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,h=a.fieldTransforms;return new Sk(new zy(o),l,h)}class Ok extends Tk{_toFieldTransform(e){if(2!==e.hc)throw 1===e.hc?e.Vc(this._methodName+"() can only appear at the top level of your update data"):e.Vc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof Ok}}function Mk(e,t,r){return new Rk({hc:3,fc:t.settings.fc,methodName:e._methodName,Ec:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Lk extends Tk{_toFieldTransform(e){return new tb(e.path,new Gw)}isEqual(e){return e instanceof Lk}}class Fk extends Tk{constructor(e,t){super(e),this.yc=t}_toFieldTransform(e){let t=Mk(this,e,!0),r=this.yc.map(e=>zk(e,t)),n=new $w(r);return new tb(e.path,n)}isEqual(e){return e instanceof Fk&&Ne(this.yc,e.yc)}}class Uk extends Tk{constructor(e,t){super(e),this.yc=t}_toFieldTransform(e){let t=Mk(this,e,!0),r=this.yc.map(e=>zk(e,t)),n=new Yw(r);return new tb(e.path,n)}isEqual(e){return e instanceof Uk&&Ne(this.yc,e.yc)}}class Vk extends Tk{constructor(e,t){super(e),this.wc=t}_toFieldTransform(e){var t=new Xw(e.serializer,Kw(e.serializer,this.wc));return new tb(e.path,t)}isEqual(e){return e instanceof Vk&&this.wc===e.wc}}function qk(e,i,s,t){let a=e.gc(1,i,s),o=(Hk("Data must be an object, but it was:",a,t),[]),l=zy.empty();Q_(t,(e,t)=>{var r=Qk(i,e,s),n=(t=w(t),a.Ac(r));if(t instanceof Ok)o.push(r);else{let e=zk(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new ty(o);return new Ak(l,r,a.fieldTransforms)}function jk(e,t,r,n,i,s){var a=e.gc(1,t,r),o=[Gk(t,n,r)],l=[i];if(s.length%2!=0)throw new N(A.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(Gk(t,s[p])),l.push(s[p+1]);var h=[],u=zy.empty();for(let f=o.length-1;0<=f;--f)if(!Jk(h,o[f])){let t=o[f];var c=w(l[f]);let r=a.Ac(t);if(c instanceof Ok)h.push(t);else{let e=zk(c,r);null!=e&&(h.push(t),u.set(t,e))}}var d=new ty(h);return new Ak(u,d,a.fieldTransforms)}function Bk(e,t,r,n=!1){return zk(r,e.gc(n?4:3,t))}function zk(e,r){if(Wk(e=w(e)))return Hk("Unsupported field value:",r,e),Kk(e,r);if(e instanceof Tk){{var t=e;var n=r;if(!Nk(n.hc))throw n.Vc(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Vc(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.Ec&&4!==r.hc)throw r.Vc("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=zk(s,a.Rc(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=w(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Kw(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return h=ev.fromDate(t),{timestampValue:jb(n.serializer,h)};if(t instanceof ev)return h=new ev(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:jb(n.serializer,h)};if(t instanceof Ek)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof bk)return{bytesValue:Bb(n.serializer,t._byteString)};if(t instanceof rk){var h=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(h))return{referenceValue:Kb(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Vc(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${h.projectId}/`+h.database)}if(t instanceof Ck)return e=t,l=n,{mapValue:{fields:{[_y]:{stringValue:by},[Iy]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Vc("VectorValues must only contain numeric values.");return Bw(l.serializer,e)})}}}}};throw n.Vc("Unsupported field value: "+YC(t))}function Kk(e,n){let i={};return Y_(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Q_(e,(e,t)=>{var r=zk(t,n.Ic(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function Wk(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ev||e instanceof Ek||e instanceof bk||e instanceof rk||e instanceof Tk||e instanceof Ck)}function Hk(e,t,r){var n,i;if(!Wk(r)||"object"!=typeof(i=r)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))throw"an object"===(n=YC(r))?t.Vc(e+" a custom object"):t.Vc(e+" "+n)}function Gk(e,t,r){if((t=w(t))instanceof Ik)return t._internalPath;if("string"==typeof t)return Qk(e,t);throw Yk("Field path arguments must be of type string or ",e,!1,void 0,r)}let $k=new RegExp("[~\\*/\\[\\]]");function Qk(t,r,n){if(0<=r.search($k))throw Yk(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Ik(...r.split("."))._internalPath}catch(e){throw Yk(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function Yk(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,l=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(l+=" (found",s&&(l+=" in field "+n),a&&(l+=" in document "+i),l+=")"),new N(A.INVALID_ARGUMENT,o+e+l)}function Jk(e,t){return e.some(e=>e.isEqual(t))}class Xk{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new rk(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Zk(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(eS("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Zk extends Xk{data(){return super.data()}}function eS(e,t){return"string"==typeof t?Qk(e,t):(t instanceof Ik?t:t._delegate)._internalPath}function tS(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new N(A.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class rS{}class nS extends rS{}function iS(e,t,...r){let n=[];t instanceof rS&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof sS).length;if(1<i||0<i&&0<s)throw new N(A.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(...)))`.");for(let t of n)e=t._apply(e);return e}class sS extends nS{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new sS(e,t,r)}_apply(e){var t=this._parse(e);return pS(e._query,t),new tk(e.firestore,e.converter,Cw(e._query,t))}_parse(e){var t=Dk(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new N(A.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){dS(l,o);let e=[];for(let t of l)e.push(cS(a,n,t));r={arrayValue:{values:e}}}else r=cS(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||dS(l,o),r=Bk(s,i,l,"in"===o||"not-in"===o);return F.create(e,o,r)}}}(class extends rS{});class aS extends nS{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new aS(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new N(A.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new N(A.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new $y(t,r)})(e._query,this._field,this._direction);return new tk(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new _w(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class oS extends nS{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new oS(e,t,r)}_apply(e){return new tk(e.firestore,e.converter,kw(e._query,this._limit,this._limitType))}}class lS extends nS{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new lS(e,t,r)}_apply(e){var t,r=uS(e,this.type,this._docOrFields,this._inclusive);return new tk(e.firestore,e.converter,(e=e._query,t=r,new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class hS extends nS{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new hS(e,t,r)}_apply(e){var t,r=uS(e,this.type,this._docOrFields,this._inclusive);return new tk(e.firestore,e.converter,(e=e._query,t=r,new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function uS(e,r,n,i){if(n[0]=w(n[0]),n[0]instanceof Xk){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,h=i;if(!l)throw new N(A.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var u=[];for(let t of Tw(s))if(t.field.isKeyField())u.push(Py(a,l.key));else{let e=l.data.field(t.field);if(dy(e))throw new N(A.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new N(A.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}u.push(e)}return new Wy(u,h)}var t=Dk(e.firestore),c=e._query,d=e.firestore._databaseId,p=t,f=r,g=n,o=i,m=c.explicitOrderBy;if(g.length>m.length)throw new N(A.INVALID_ARGUMENT,`Too many arguments provided to ${f}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var v=[];for(let y=0;y<g.length;y++){var _=g[y];if(m[y].field.isKeyField()){if("string"!=typeof _)throw new N(A.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${f}(), but got a `+typeof _);if(!Iw(c)&&-1!==_.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${f}() must be a plain document ID, but '${_}' contains a slash.`);let e=c.path.child(D.fromString(_));if(!x.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${f}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);v.push(Py(d,t))}else{let e=Bk(p,f,_);v.push(e)}}return new Wy(v,o)}function cS(e,t,r){if("string"==typeof(r=w(r))){if(""===r)throw new N(A.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Iw(t)&&-1!==r.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(D.fromString(r));if(x.isDocumentKey(n))return Py(e,new x(n));throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof rk)return Py(e,r._key);throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${YC(r)}.`)}function dS(e,t){if(!Array.isArray(e)||0===e.length)throw new N(A.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function pS(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new N(A.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new N(A.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class fS{convertValue(e,t="none"){switch(Ey(e)){case 0:return null;case 1:return e.booleanValue;case 2:return ay(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(oy(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw k(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Q_(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=null==(t=null==(t=null==(t=e.fields)?void 0:t[Iy].arrayValue)?void 0:t.values)?void 0:t.map(e=>ay(e.doubleValue));return new Ck(t)}convertGeoPoint(e){return new Ek(ay(e.latitude),ay(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=py(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(fy(e));default:return null}}convertTimestamp(e){var t=sy(e);return new ev(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=D.fromString(e),n=(S(dI(r),9688,{name:e}),new vy(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||Om(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function gS(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class mS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new bk(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new rk(this.firestore,null,t)}}class vS{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class _S extends Xk{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new yS(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(eS("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class yS extends _S{data(e={}){return super.data(e)}}class wS{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new vS(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new yS(this._firestore,this._userDataWriter,e.key,e,new vS(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new N(A.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new yS(s._firestore,s._userDataWriter,e.doc.key,e.doc,new vS(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new yS(s._firestore,s._userDataWriter,e.doc.key,e.doc,new vS(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return k(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function bS(e,t){return e instanceof _S&&t instanceof _S?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof wS&&t instanceof wS&&e._firestore===t._firestore&&ok(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class IS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new bk(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new rk(this.firestore,null,t)}}function TS(e,t,r){e=q(e,rk);var n=q(e.firestore,gk),i=gS(e.converter,t,r);return kS(n,[xk(Dk(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,nb.none())])}function ES(e,t,r,...n){e=q(e,rk);var i=q(e.firestore,gk),s=Dk(i);return kS(i,[("string"==typeof(t=w(t))||t instanceof Ik?jk(s,"updateDoc",e._key,t,r,n):qk(s,"updateDoc",e._key,t)).toMutation(e._key,nb.exists(!0))])}function CS(n,...i){var t,r;n=w(n);let e={includeMetadataChanges:!1,source:"default"},s=0;"object"!=typeof i[s]||ck(i[s])||(e=i[s],s++);var a={includeMetadataChanges:e.includeMetadataChanges,source:e.source};if(ck(i[s])){let e=i[s];i[s]=null==(r=e.next)?void 0:r.bind(e),i[s+1]=null==(t=e.error)?void 0:t.bind(e),i[s+2]=null==(r=e.complete)?void 0:r.bind(e)}let o,l,h;if(n instanceof rk)l=q(n.firestore,gk),h=ww(n._key.path),o={next:e=>{i[s]&&i[s](SS(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=q(n,tk),r=(l=q(t.firestore,gk),h=t._query,new IS(l));o={next:e=>{i[s]&&i[s](new wS(l,r,t,e))},error:i[s+1],complete:i[s+2]},tS(n._query)}{var u=mk(l),c=h,d=a,p=o;let e=new bC(p),t=new FE(c,e,d);return u.asyncQueue.enqueueAndForget(async()=>OE(await MC(u),t)),()=>{e.Cu(),u.asyncQueue.enqueueAndForget(async()=>ME(await MC(u),t))}}}function kS(t,r){{var n=mk(t),i=r;let e=new Um;return n.asyncQueue.enqueueAndForget(async()=>JE(await OC(n),i,e)),e.promise}}function SS(e,t,r){var n=r.docs.get(t._key),i=new IS(e);return new _S(e,i,t._key,n,new vS(r.hasPendingWrites,r.fromCache),t.converter)}let AS={maxAttempts:5};class NS{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=Dk(e)}set(e,t,r){this._verifyNotCommitted();var n=RS(e,this._firestore),i=gS(n.converter,t,r),i=xk(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,nb.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=RS(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof Ik?jk(this._dataReader,"WriteBatch.update",i._key,t,r,n):qk(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,nb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=RS(e,this._firestore);return this._mutations=this._mutations.concat(new fb(t._key,nb.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new N(A.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function RS(e,t){if((e=w(e)).firestore!==t)throw new N(A.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class PS extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=Dk(e)}get(e){let r=RS(e,this._firestore),n=new mS(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return k(24041);var t=e[0];if(t.isFoundDocument())return new Xk(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Xk(this._firestore,n,r._key,null,r.converter);throw k(18433,{doc:t})})}set(e,t,r){var n=RS(e,this._firestore),i=gS(n.converter,t,r),i=xk(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=RS(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof Ik?jk(this._dataReader,"Transaction.update",i._key,t,r,n):qk(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=RS(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=RS(e,this._firestore),r=new IS(this._firestore);return super.get(e).then(e=>new _S(this._firestore,r,t._key,e._document,new vS(!1,!1),t.converter))}}function DS(r,n,e){r=q(r,gk);var i=Object.assign(Object.assign({},AS),e);if(i.maxAttempts<1)throw new N(A.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=mk(r),a=e=>n(new PS(r,e)),o=i;let t=new Um;return s.asyncQueue.enqueueAndForget(async()=>{var e=await RC(s).then(e=>e.datastore);new EC(s.asyncQueue,e,o,a,t).$u()}),t.promise}}pk=!0,aD=Vt,Pm=aD,Dt(new u("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new gk(new Bm(e.getProvider("auth-internal")),new Hm(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new vy(e.options.projectId,t);throw new N(A.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:pk},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),d(Nm,"4.7.16",hN),d(Nm,"4.7.16","esm2017");function xS(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new N("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function OS(){if("undefined"==typeof Uint8Array)throw new N("unimplemented","Uint8Arrays are not available in this environment.")}function MS(){if("undefined"==typeof atob)throw new N("unimplemented","Blobs are unavailable in Firestore in this environment.")}class LS{constructor(e){this._delegate=e}static fromBase64String(e){return MS(),new LS(bk.fromBase64String(e))}static fromUint8Array(e){return OS(),new LS(bk.fromUint8Array(e))}toBase64(){return MS(),this._delegate.toBase64()}toUint8Array(){return OS(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function FS(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class US{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};Mm("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return _k(e,yC.provider,{build:e=>new vC(e,t.cacheSizeBytes,null==n?void 0:n.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{Mm("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();_k(e,yC.provider,{build:e=>new _C(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return yk(e._delegate)}}class VS{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof vy||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||Mm("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(i,s,a={}){{var[i,s,a,o={}]=[this._delegate,i,s,a];i=q(i,ek);let e=ee(s),t=i._getSettings(),r=Object.assign(Object.assign({},t),{emulatorOptions:i._getEmulatorOptions()}),n=s+":"+a;e&&(te("https://"+n),se("Firestore",!0)),t.host!==XC&&t.host!==n&&Mm("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l=Object.assign(Object.assign({},t),{host:n,ssl:e,emulatorOptions:o});if(!Ne(l,r)&&(i._setSettings(l),o.mockUserToken)){let t,r;if("string"==typeof o.mockUserToken)t=o.mockUserToken,r=Rm.MOCK_USER;else{t=re(o.mockUserToken,null==(l=i._app)?void 0:l.options.projectId);let e=o.mockUserToken.sub||o.mockUserToken.user_id;if(!e)throw new N(A.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new Rm(e)}i._authCredentials=new jm(new Vm(t,r))}}}enableNetwork(){return wk(this._delegate)}disableNetwork(){return LC(mk(q(this._delegate,gk)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,GC("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=mk(t=q(t,gk));let e=new Um;return r.asyncQueue.enqueueAndForget(async()=>tC(await OC(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,jC(mk(t=q(t,gk)),ck(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new N("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new ZS(this,ik(this._delegate,e))}catch(e){throw WS(e,"collection()","Firestore.collection()")}}doc(e){try{return new KS(this,sk(this._delegate,e))}catch(e){throw WS(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new YS(this,((e,t)=>{if(e=q(e,ek),HC("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new tk(e,null,(e=t,new _w(D.emptyPath(),e)))})(this._delegate,e))}catch(e){throw WS(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return DS(this._delegate,e=>t(new jS(this,e)))}batch(){return mk(this._delegate),new BS(new NS(this._delegate,e=>kS(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=mk(t=q(t,gk)),n=new dk,BC(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,zC(mk(t=q(t,gk)),e).then(e=>e?new tk(t,null,e.query):null).then(e=>e?new YS(this,e):null);var t}}class qS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new LS(new bk(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return KS.forKey(t,this.firestore,null)}}class jS{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}get(e){let t=e1(e);return this._delegate.get(t).then(e=>new $S(this._firestore,new _S(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=e1(e);return r?(xS("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=e1(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=e1(e);return this._delegate.delete(t),this}}class BS{constructor(e){this._delegate=e}set(e,t,r){var n=e1(e);return r?(xS("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=e1(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=e1(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class zS{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new yS(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new QS(this._firestore,r),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=zS.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new zS(e,new qS(e),t),n.set(t,i)),i}}zS.INSTANCES=new WeakMap;class KS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}static forPath(e,t,r){if(e.length%2!=0)throw new N("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new KS(t,new rk(t._delegate,r,new x(e)))}static forKey(e,t,r){return new KS(t,new rk(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new ZS(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new ZS(this.firestore,ik(this._delegate,e))}catch(e){throw WS(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=w(e))instanceof rk&&ak(this._delegate,e)}set(e,t){t=xS("DocumentReference.set",t);try{return t?TS(this._delegate,e,t):TS(this._delegate,e)}catch(e){throw WS(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?ES(this._delegate,e):ES(this._delegate,e,t,...r)}catch(e){throw WS(e,"updateDoc()","DocumentReference.update()")}}delete(){return kS(q((e=this._delegate).firestore,gk),[new fb(e._key,nb.none())]);var e}onSnapshot(...e){var t=HS(e),r=GS(e,e=>new $S(this.firestore,new _S(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return CS(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=q(t,rk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return FC(e,t._key).then(e=>new _S(r,n,t._key,e,new vS(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=q(t,rk);let r=q(t.firestore,gk);return UC(mk(r),t._key,{source:"server"}).then(e=>SS(r,t,e))}:t=>{t=q(t,rk);let r=q(t.firestore,gk);return UC(mk(r),t._key).then(e=>SS(r,t,e))})(this._delegate)).then(e=>new $S(this.firestore,new _S(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new KS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function WS(e,t,r){return e.message=e.message.replace(t,r),e}function HS(e){for(var t of e)if("object"==typeof t&&!FS(t))return t;return{}}function GS(e,t){let r,n,i;return i=FS(e[0])?e[0]:FS(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{i.next&&i.next(t(e))},error:null==(r=i.error)?void 0:r.bind(i),complete:null==(n=i.complete)?void 0:n.bind(i)}}class $S{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new KS(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return bS(this._delegate,e._delegate)}}class QS extends $S{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||k(57014,e),t}}class YS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}where(e,t,r){try{return new YS(this.firestore,iS(this._delegate,(n=r,i=t,s=eS("where",e),sS._create(s,i,n))))}catch(e){throw WS(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new YS(this.firestore,iS(this._delegate,([r,n="asc"]=[e,t],i=n,s=eS("orderBy",r),aS._create(s,i))))}catch(e){throw WS(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new YS(this.firestore,iS(this._delegate,(JC("limit",t=e),oS._create("limit",t,"F"))))}catch(e){throw WS(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new YS(this.firestore,iS(this._delegate,(JC("limitToLast",t=e),oS._create("limitToLast",t,"L"))))}catch(e){throw WS(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],lS._create("startAt",t,!0))))}catch(e){throw WS(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],lS._create("startAfter",t,!1))))}catch(e){throw WS(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],hS._create("endBefore",t,!1))))}catch(e){throw WS(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],hS._create("endAt",t,!0))))}catch(e){throw WS(e,"endAt()","Query.endAt()")}var t}isEqual(e){return ok(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return VC(e,t._query).then(e=>new wS(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return qC(e,t._query,{source:"server"}).then(e=>new wS(r,n,t,e))}:t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return tS(t._query),qC(e,t._query).then(e=>new wS(r,n,t,e))})(this._delegate)).then(e=>new XS(this.firestore,new wS(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=HS(e),r=GS(e,e=>new XS(this.firestore,new wS(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return CS(this._delegate,t,r)}withConverter(e){return new YS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class JS{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new QS(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class XS{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new YS(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new QS(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new JS(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new QS(this._firestore,e))})}isEqual(e){return bS(this._delegate,e._delegate)}}class ZS extends YS{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new KS(this.firestore,e):null}doc(e){try{return void 0===e?new KS(this.firestore,sk(this._delegate)):new KS(this.firestore,sk(this._delegate,e))}catch(e){throw WS(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=q(e.firestore,gk),n=sk(e),i=gS(e.converter,t);return kS(r,[xk(Dk(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,nb.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new KS(this.firestore,e))}isEqual(e){return ak(this._delegate,e._delegate)}withConverter(e){return new ZS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function e1(e){return q(e,rk)}class t1{static serverTimestamp(){var e=new Lk("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new t1(e)}static delete(){var e=new Ok("deleteField");return e._methodName="FieldValue.delete",new t1(e)}static arrayUnion(...e){[...e]=[...e];var t=new Fk("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new t1(t)}static arrayRemove(...e){[...e]=[...e];var t=new Uk("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new t1(t)}static increment(e){e=e;var t=new Vk("increment",e);return t._methodName="FieldValue.increment",new t1(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let r1={Firestore:VS,GeoPoint:Ek,Timestamp:ev,Blob:LS,Transaction:jS,WriteBatch:BS,DocumentReference:KS,DocumentSnapshot:$S,Query:YS,QueryDocumentSnapshot:QS,QuerySnapshot:XS,CollectionReference:ZS,FieldPath:class Rx{constructor(...e){this._delegate=new Ik(...e)}static documentId(){return new Rx(iv.keyField().canonicalString())}isEqual(e){return(e=w(e))instanceof Ik&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:t1,setLogLevel:function(e){e=e,Dm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=lr,fk=(e,t)=>new VS(e,t,new US),t.INTERNAL.registerComponent(new u("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return fk(t,r)},"PUBLIC").setServiceProps(Object.assign({},r1))),t.registerVersion("@firebase/firestore-compat","0.3.51");let n1="type.googleapis.com/google.protobuf.Int64Value",i1="type.googleapis.com/google.protobuf.UInt64Value";function s1(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function a1(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>a1(e));if("function"==typeof e||"object"==typeof e)return s1(e,e=>a1(e));throw new Error("Data cannot be encoded in JSON: "+e)}function o1(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case n1:case i1:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>o1(e)):"function"==typeof e||"object"==typeof e?s1(e,e=>o1(e)):e}let l1="functions",h1={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 u1 extends ye{constructor(e,t,r){super(l1+"/"+e,t||""),this.details=r,Object.setPrototypeOf(this,u1.prototype)}}function c1(e,t){let r=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),n=r,i=void 0;try{var s=t&&t.error;if(s){let e=s.status;if("string"==typeof e){if(!h1[e])return new u1("internal","internal");r=h1[e],n=e}var a=s.message;"string"==typeof a&&(n=a),void 0!==(i=s.details)&&(i=o1(i))}}catch(e){}return"ok"===r?null:new u1(r,n,i)}class d1{constructor(e,t,r,n){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||r.get().then(e=>this.messaging=e,()=>{}),this.appCheck||null!=n&&n.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let p1="us-central1",f1=/^data: (.*?)(?:\n|$)/;class g1{constructor(e,t,r,n,i=p1,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new d1(e,t,r,n),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin+("/"===a.pathname?"":a.pathname),this.region=p1}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function m1(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),_1(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),y1(r,n,e,t||{});var r,n},e}async function v1(e,t){var r={},n=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return n.authToken&&(r.Authorization="Bearer "+n.authToken),n.messagingToken&&(r["Firebase-Instance-ID-Token"]=n.messagingToken),null!==n.appCheckToken&&(r["X-Firebase-AppCheck"]=n.appCheckToken),r}async function _1(e,t,r,n){var i={data:r=a1(r)},s=await v1(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new u1("deadline-exceeded","deadline-exceeded"))},r)}),cancel:()=>{n&&clearTimeout(n)}}})(n.timeout||7e4),i=await Promise.race([(async(e,t,r,n)=>{r["Content-Type"]="application/json";let i;try{i=await n(e,{method:"POST",body:JSON.stringify(t),headers:r})}catch(e){return{status:0,json:null}}let s=null;try{s=await i.json()}catch(e){}return{status:i.status,json:s}})(t,i,s,e.fetchImpl),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new u1("cancelled","Firebase Functions instance was deleted.");s=c1(i.status,i.json);if(s)throw s;if(!i.json)throw new u1("internal","Response is not valid JSON object.");let o=i.json.data;if(void 0===(o=void 0===o?i.json.result:o))throw new u1("internal","Response is missing data field.");return{data:o1(o)}}async function y1(e,t,r,n){var i={data:r=a1(r)},s=await v1(e,n);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(i),headers:s,signal:null==n?void 0:n.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new u1("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=c1(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,l;i=new Promise((e,t)=>{o=e,l=t}),null!=(s=null==n?void 0:n.signal)&&s.addEventListener("abort",()=>{var e=new u1("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let h=((a,s,o,l)=>{let h=(e,t)=>{var r=e.match(f1);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(o1(i.result)):"message"in i?t.enqueue(o1(i.message)):"error"in i&&(n=c1(0,i),t.error(n),o(n))}catch(e){e instanceof u1&&(t.error(e),o(e))}}},u=new TextDecoder;return new ReadableStream({start(i){let s="";return async function r(){if(null!=l&&l.aborted){let e=new u1("cancelled","Request was cancelled");return i.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await a.read();if(e)s.trim()&&h(s.trim(),i),i.close();else{if(null==l||!l.aborted){let e=(s+=u.decode(t,{stream:!0})).split("\n");s=e.pop()||"";for(var n of e)n.trim()&&h(n.trim(),i);return r()}{let e=new u1("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof u1?e:c1(0,null);i.error(t),o(t)}}()},cancel(){return a.cancel()}})})(s,o,l,null==n?void 0:n.signal);return{stream:{[Symbol.asyncIterator](){let r=h.getReader();return{async next(){var{value:e,done:t}=await r.read();return{value:e,done:t}},async return(){return await r.cancel(),{done:!0,value:void 0}}}}},data:i}}let w1="@firebase/functions";function b1(e,t,r){var n;e=w(e),r=r,n=ee(t=t),e.emulatorOrigin=`http${n?"s":""}://${t}:`+r,n&&(te(e.emulatorOrigin),se("Functions",!0))}function I1(e,t,r){return n=w(e),i=t,s=r,(a=e=>_1(n,i,e,s||{})).stream=(e,t)=>y1(n,i,e,t||{}),a;var n,i,s,a}Dt(new u(l1,(e,{instanceIdentifier:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new g1(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),d(w1,"0.12.8",r),d(w1,"0.12.8","esm2017");var T1,E1,C1;class k1{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return m1(w(this._delegate),e,t)}httpsCallableFromURL(e,t){return I1(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new ye("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new ye("functions","Port missing in origin provided to useFunctionsEmulator()");return b1(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return b1(this._delegate,e,t)}}let S1="us-central1",A1=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:null!=t?t:S1});return new k1(r,n)};ar={Functions:k1},lr.INTERNAL.registerComponent(new u("functions-compat",A1,"PUBLIC").setServiceProps(ar).setMultipleInstances(!0)),lr.registerVersion("@firebase/functions-compat","0.3.25");let N1="/firebase-messaging-sw.js",R1="/firebase-cloud-messaging-push-scope",P1="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",D1="https://fcmregistrations.googleapis.com/v1",x1="google.c.a.c_id",O1="google.c.a.c_l",M1="google.c.a.ts",L1="google.c.a.e",F1=1e4;function U1(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(aD=T1=T1||{}).PUSH_RECEIVED="push-received",aD.NOTIFICATION_CLICKED="notification-clicked";let V1="fcm_token_details_db",q1=5,j1="fcm_token_object_Store";async function B1(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(V1))return null;let l=null;return(await gt(V1,q1,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(j1)&&(i=await(a=n.objectStore(j1)).index("fcmSenderId").get(o),await a.clear(),i)&&(2===t?(a=i).auth&&a.p256dh&&a.endpoint&&(l={token:a.fcmToken,createTime:null!=(s=a.createTime)?s:Date.now(),subscriptionOptions:{auth:a.auth,p256dh:a.p256dh,endpoint:a.endpoint,swScope:a.swScope,vapidKey:"string"==typeof a.vapidKey?a.vapidKey:U1(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:U1(s.auth),p256dh:U1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:U1(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:U1(a.auth),p256dh:U1(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:U1(a.vapidKey)}}))}})).close(),await mt(V1),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(l)?l:null}let z1="firebase-messaging-database",K1=1,W1="firebase-messaging-store",H1=null;function G1(){return H1=H1||gt(z1,K1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(W1)}})}async function $1(e){var t=Y1(e),t=await(await G1()).transaction(W1).objectStore(W1).get(t);return t||((t=await B1(e.appConfig.senderId))?(await Q1(e,t),t):void 0)}async function Q1(e,t){var r=Y1(e),n=(await G1()).transaction(W1,"readwrite");return await n.objectStore(W1).put(t,r),await n.done,t}function Y1({appConfig:e}){return e.appId}let J1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function X1(e,t){var r={method:"DELETE",headers:await eA(e)};try{var n,i=await(await fetch(Z1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,J1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw J1.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Z1({projectId:e}){return D1+`/projects/${e}/registrations`}async function eA({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function tA({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==P1&&(i.web.applicationPubKey=n),i}let rA=6048e5;async function nA(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:U1(a.getKey("auth")),p256dh:U1(a.getKey("p256dh"))},o=await $1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+rA?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await eA(e),n=tA(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(Z1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw J1.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,J1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw J1.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await Q1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await X1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return sA(e.firebaseDependencies,a)}async function iA(e){var t,r=await $1(e.firebaseDependencies),r=(r&&(await X1(e.firebaseDependencies,r.token),r=Y1(e.firebaseDependencies),await(t=(await G1()).transaction(W1,"readwrite")).objectStore(W1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function sA(e,t){var r={token:await(async(e,t)=>{var r=await eA(e),n=tA(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(Z1(e.appConfig),r);i=await s.json()}catch(e){throw J1.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,J1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw J1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Q1(e,r),r.token}function aA(e){var t,r,n,i,s={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return n=s,(r=e).notification&&(n.notification={},(t=r.notification.title)&&(n.notification.title=t),(t=r.notification.body)&&(n.notification.body=t),(t=r.notification.image)&&(n.notification.image=t),t=r.notification.icon)&&(n.notification.icon=t),r=s,(n=e).data&&(r.data=n.data),r=s,((n=e).fcmOptions||null!=(i=n.notification)&&i.click_action)&&(r.fcmOptions={},(i=null!=(i=null==(i=n.fcmOptions)?void 0:i.link)?i:null==(i=n.notification)?void 0:i.click_action)&&(r.fcmOptions.link=i),i=null==(i=n.fcmOptions)?void 0:i.analytics_label)&&(r.fcmOptions.analyticsLabel=i),s}var oA="AzSCbw63g1R0nCw85jG8",lA="Iaya3yLKwmgvh7cF0q4",hA=[];for(let Px=0;Px<oA.length;Px++)hA.push(oA.charAt(Px)),Px<lA.length&&hA.push(lA.charAt(Px));function uA(e){return J1.create("missing-app-config-values",{valueName:e})}hA.join("");class cA{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw uA("App Configuration Object");if(!e.name)throw uA("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw uA(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}async function dA(e){try{e.swRegistration=await navigator.serviceWorker.register(N1,{scope:R1}),e.swRegistration.update().catch(()=>{}),t=e.swRegistration,await new Promise((r,e)=>{let n=setTimeout(()=>e(new Error(`Service worker not registered after ${F1} ms`)),F1),i=t.installing||t.waiting;t.active?(clearTimeout(n),r()):i?i.onstatechange=e=>{var t;"activated"===(null==(t=e.target)?void 0:t.state)&&(i.onstatechange=null,clearTimeout(n),r())}:(clearTimeout(n),e(new Error("No incoming service worker found.")))})}catch(e){throw J1.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}var t}async function pA(e,t){if(!navigator)throw J1.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw J1.create("permission-blocked");n=e,await!((r=null==t?void 0:t.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=P1));var r=e,n=null==t?void 0:t.serviceWorkerRegistration;if(n||r.swRegistration||await dA(r),n||!r.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw J1.create("invalid-sw-registration");r.swRegistration=n}return await 0,nA(e)}async function fA(e,t,r){var n=(e=>{switch(e){case T1.NOTIFICATION_CLICKED:return"notification_open";case T1.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[x1],message_name:r[O1],message_time:r[M1],message_device_time:Math.floor(Date.now()/1e3)})}async function gA(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===T1.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(aA(n)):e.onMessageHandler.next(aA(n))),"object"==typeof(t=r=n.data))&&t&&x1 in t&&"1"===r[L1]&&await fA(e,n.messageType,r)}let mA="@firebase/messaging",vA="0.12.21",_A=e=>{let t=new cA(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>gA(t,e)),t},yA=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>pA(t,e)}};function wA(e){return(async e=>{if(navigator)return e.swRegistration||await dA(e),iA(e);throw J1.create("only-available-in-window")})(e=w(e))}function bA(e,t){var r=e=w(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw J1.create("only-available-in-window")}Dt(new u("messaging",_A,"PUBLIC")),Dt(new u("messaging-internal",yA,"PRIVATE")),d(mA,vA),d(mA,vA,"esm2017");let IA="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",TA="https://fcmregistrations.googleapis.com/v1",EA="FCM_MSG",CA="google.c.a.c_id",kA=3,SA=1;function AA(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(hN=E1=E1||{})[hN.DATA_MESSAGE=1]="DATA_MESSAGE",hN[hN.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(t=C1=C1||{}).PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked";let NA="fcm_token_details_db",RA=5,PA="fcm_token_object_Store";async function DA(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(NA))return null;let l=null;return(await gt(NA,RA,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(PA)&&(i=await(a=n.objectStore(PA)).index("fcmSenderId").get(o),await a.clear(),i)&&(2===t?(a=i).auth&&a.p256dh&&a.endpoint&&(l={token:a.fcmToken,createTime:null!=(s=a.createTime)?s:Date.now(),subscriptionOptions:{auth:a.auth,p256dh:a.p256dh,endpoint:a.endpoint,swScope:a.swScope,vapidKey:"string"==typeof a.vapidKey?a.vapidKey:AA(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:AA(s.auth),p256dh:AA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:AA(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:AA(a.auth),p256dh:AA(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:AA(a.vapidKey)}}))}})).close(),await mt(NA),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(l)?l:null}let xA="firebase-messaging-database",OA=1,MA="firebase-messaging-store",LA=null;function FA(){return LA=LA||gt(xA,OA,{upgrade:(e,t)=>{0===t&&e.createObjectStore(MA)}})}async function UA(e){var t=qA(e),t=await(await FA()).transaction(MA).objectStore(MA).get(t);return t||((t=await DA(e.appConfig.senderId))?(await VA(e,t),t):void 0)}async function VA(e,t){var r=qA(e),n=(await FA()).transaction(MA,"readwrite");return await n.objectStore(MA).put(t,r),await n.done,t}function qA({appConfig:e}){return e.appId}let jA=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function BA(e,t){var r={method:"DELETE",headers:await KA(e)};try{var n,i=await(await fetch(zA(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,jA.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw jA.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function zA({projectId:e}){return TA+`/projects/${e}/registrations`}async function KA({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function WA({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==IA&&(i.web.applicationPubKey=n),i}let HA=6048e5;async function GA(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:AA(a.getKey("auth")),p256dh:AA(a.getKey("p256dh"))},o=await UA(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+HA?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await KA(e),n=WA(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(zA(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw jA.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,jA.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw jA.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await VA(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await BA(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return QA(e.firebaseDependencies,a)}async function $A(e){var t,r=await UA(e.firebaseDependencies),r=(r&&(await BA(e.firebaseDependencies,r.token),r=qA(e.firebaseDependencies),await(t=(await FA()).transaction(MA,"readwrite")).objectStore(MA).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function QA(e,t){var r={token:await(async(e,t)=>{var r=await KA(e),n=WA(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(zA(e.appConfig),r);i=await s.json()}catch(e){throw jA.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,jA.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw jA.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await VA(e,r),r.token}var YA="AzSCbw63g1R0nCw85jG8",JA="Iaya3yLKwmgvh7cF0q4",XA=[];for(let Dx=0;Dx<YA.length;Dx++)XA.push(YA.charAt(Dx)),Dx<JA.length&&XA.push(JA.charAt(Dx));async function ZA(e,t){var r=((e,t)=>{var r,n={};return e.from&&(n.project_number=e.from),e.fcmMessageId&&(n.message_id=e.fcmMessageId),n.instance_id=t,n.message_type=(e.notification?E1.DISPLAY_NOTIFICATION:E1.DATA_MESSAGE).toString(),n.sdk_platform=kA.toString(),n.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(n.collapse_key=e.collapse_key),n.event=SA.toString(),null!=(r=e.fcmOptions)&&r.analytics_label&&(n.analytics_label=null==(r=e.fcmOptions)?void 0:r.analytics_label),n})(t,await e.firebaseDependencies.installations.getId()),n=r,t=t.productId,r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:n}),t&&(r.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(r)}async function eN(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await ZA(t,r);var n,i,s,a=await rN();if(a.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=C1.PUSH_RECEIVED;for(o of e)o.postMessage(l)}else r.notification&&await(e=>{var t=e.actions,r=Notification.maxActions;return t&&r&&t.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`),self.registration.showNotification(null!=(t=e.title)?t:"",e)})((e=r,(a=Object.assign({},e.notification)).data={[EA]:e},a)),t&&t.onBackgroundMessageHandler&&(a={from:(e=r).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=a,(n=e).notification&&(i.notification={},(r=n.notification.title)&&(i.notification.title=r),(r=n.notification.body)&&(i.notification.body=r),(r=n.notification.image)&&(i.notification.image=r),r=n.notification.icon)&&(i.notification.icon=r),n=a,(i=e).data&&(n.data=i.data),n=a,((i=e).fcmOptions||null!=(s=i.notification)&&s.click_action)&&(n.fcmOptions={},(s=null!=(s=null==(s=i.fcmOptions)?void 0:s.link)?s:null==(s=i.notification)?void 0:s.click_action)&&(n.fcmOptions.link=s),s=null==(s=i.fcmOptions)?void 0:s.analytics_label)&&(n.fcmOptions.analyticsLabel=s),r=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(r):t.onBackgroundMessageHandler.next(r))}}async function tN(e){var t=null==(t=null==(t=e.notification)?void 0:t.data)?void 0:t[EA];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var r=(e=>{var t=null!=(t=null==(t=e.fcmOptions)?void 0:t.link)?t:null==(t=e.notification)?void 0:t.click_action;return t||((e=>"object"==typeof e&&e&&CA in e)(e.data)?self.location.origin:null)})(t);if(r){var n,i=new URL(r,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await(async e=>{var t;for(t of await rN()){var r=new URL(t.url,self.location.href);if(e.host===r.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(r),n=3e3,await new Promise(e=>{setTimeout(e,n)})),e)return t.messageType=C1.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function rN(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function nN(e){return jA.create("missing-app-config-values",{valueName:e})}XA.join("");class iN{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw nN("App Configuration Object");if(!e.name)throw nN("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw nN(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}let sN=e=>{let t=new iN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(eN(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var r;(r=e.newSubscription)?(r=await UA(t.firebaseDependencies),await $A(t),t.vapidKey=null!=(r=null==(r=null==r?void 0:r.subscriptionOptions)?void 0:r.vapidKey)?r:IA,await GA(t)):await $A(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(tN(e))}),t};function aN(e,t){var r=e=w(e),e=t;if(void 0!==self.document)throw jA.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}Dt(new u("messaging-sw",sN,"PUBLIC"));var oN,lN,hN;class uN{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>pA(e=w(e),t))(this._delegate,e)}async deleteToken(){return wA(this._delegate)}onMessage(e){return bA(this._delegate,e)}onBackgroundMessage(e){return aN(this._delegate,e)}}let cN=e=>self&&"ServiceWorkerGlobalScope"in self?new uN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new uN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),dN={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?me()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&me()&&_e()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};lr.INTERNAL.registerComponent(new u("messaging-compat",cN,"PUBLIC").setServiceProps(dN)),lr.registerVersion("@firebase/messaging-compat","0.2.21");let pN="firebasestorage.googleapis.com",fN="storageBucket";class gN extends ye{constructor(e,t,r=0){super(mN(e),`Firebase Storage: ${t} (${mN(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,gN.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return mN(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+`
|
|
31
|
-
`+this.customData.serverResponse:this.message=this._baseMessage}}function mN(e){return"storage/"+e}function vN(){return new gN(oN.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function _N(){return new gN(oN.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function yN(){return new gN(oN.CANCELED,"User canceled the upload/download.")}function wN(){return new gN(oN.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function bN(e){return new gN(oN.INVALID_ARGUMENT,e)}function IN(){return new gN(oN.APP_DELETED,"The Firebase app was deleted.")}function TN(e){return new gN(oN.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function EN(e,t){return new gN(oN.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function CN(e){throw new gN(oN.INTERNAL_ERROR,"Internal error: "+e)}(r=oN=oN||{}).UNKNOWN="unknown",r.OBJECT_NOT_FOUND="object-not-found",r.BUCKET_NOT_FOUND="bucket-not-found",r.PROJECT_NOT_FOUND="project-not-found",r.QUOTA_EXCEEDED="quota-exceeded",r.UNAUTHENTICATED="unauthenticated",r.UNAUTHORIZED="unauthorized",r.UNAUTHORIZED_APP="unauthorized-app",r.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",r.INVALID_CHECKSUM="invalid-checksum",r.CANCELED="canceled",r.INVALID_EVENT_NAME="invalid-event-name",r.INVALID_URL="invalid-url",r.INVALID_DEFAULT_BUCKET="invalid-default-bucket",r.NO_DEFAULT_BUCKET="no-default-bucket",r.CANNOT_SLICE_BLOB="cannot-slice-blob",r.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",r.NO_DOWNLOAD_URL="no-download-url",r.INVALID_ARGUMENT="invalid-argument",r.INVALID_ARGUMENT_COUNT="invalid-argument-count",r.APP_DELETED="app-deleted",r.INVALID_ROOT_OPERATION="invalid-root-operation",r.INVALID_FORMAT="invalid-format",r.INTERNAL_ERROR="internal-error",r.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class kN{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=kN.makeFromUrl(t,e)}catch(e){return new kN(t,"")}if(""===r.path)return r;throw e=t,new gN(oN.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var n="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+n+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${n}/o(/([^?#]*).*)?$`,"i"),o=t===pN?"(?:storage.googleapis.com|storage.cloud.google.com)":t,l=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${o}/${n}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let d=0;d<l.length;d++){var h=l[d],u=h.regex.exec(e);if(u){var c=u[h.indices.bucket];let e=u[h.indices.path];e=e||"",r=new kN(c,e),h.postModify(r);break}}if(null==r)throw t=e,new gN(oN.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class SN{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function AN(e){return"string"==typeof e||e instanceof String}function NN(e){return RN()&&e instanceof Blob}function RN(){return"undefined"!=typeof Blob}function PN(e,t,r,n){if(n<t)throw bN(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw bN(`Invalid value for '${e}'. Expected ${r} or less.`)}function DN(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function xN(e){var t,r,n=encodeURIComponent;let i="?";for(t in e)e.hasOwnProperty(t)&&(r=n(t)+"="+n(e[t]),i=i+r+"&");return i=i.slice(0,-1)}function ON(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(aD=lN=lN||{})[aD.NO_ERROR=0]="NO_ERROR",aD[aD.NETWORK_ERROR=1]="NETWORK_ERROR",aD[aD.ABORT=2]="ABORT";class MN{constructor(e,t,r,n,i,s,a,o,l,h,u,c=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=l,this.progressCallback_=h,this.connectionFactory_=u,this.retry=c,this.isUsingEmulator=d,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(i,e)=>{if(e)i(!1,new LN(!1,null,!0));else{let r=this.connectionFactory_(),n=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;var e=r.getErrorCode()===lN.NO_ERROR,t=r.getStatus();!e||ON(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===lN.ABORT,i(!1,new LN(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new LN(e,r)))})}},t=(e,t)=>{var r=this.resolve_,n=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?r(s):r()}catch(e){n(e)}else null!==i?((s=vN()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?IN:yN)()):n(_N())};this.canceled_?t(0,new LN(!1,null,!0)):this.backoffId_=((t,r,e)=>{let n=1,i=null,s=null,a=!1,o=0;function l(){return 2===o}let h=!1;function u(...e){h||(h=!0,r.apply(null,e))}function c(e){i=setTimeout(()=>{i=null,t(p,l())},e)}function d(){s&&clearTimeout(s)}function p(e,...t){if(h)d();else if(e)d(),u.call(null,e,...t);else if(l()||a)d(),u.call(null,e,...t);else{n<64&&(n*=2);let e;c(e=1===o?(o=2,0):1e3*(n+Math.random()))}}let f=!1;function g(e){f||(f=!0,d(),h)||(null!==i?(e||(o=2),clearTimeout(i),c(0)):e||(o=1))}return c(0),s=setTimeout(()=>{g(a=!0)},e),g})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class LN{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function FN(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var n=new r;for(let e=0;e<t.length;e++)n.append(t[e]);return n.getBlob()}if(RN())return new Blob(t);throw new gN(oN.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function UN(e){if("undefined"==typeof atob)throw new gN(oN.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let VN={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class qN{constructor(e,t){this.data=e,this.contentType=t||null}}function jN(e,t){switch(e){case VN.RAW:return new qN(BN(t));case VN.BASE64:case VN.BASE64URL:return new qN(zN(e,t));case VN.DATA_URL:return new qN((r=t,(n=new KN(r)).base64?zN(VN.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw EN(VN.DATA_URL,"Malformed data URL.")}return BN(t)})(n.rest)),(r=t,new KN(r).contentType))}var r,n;throw vN()}function BN(t){var r,n,i=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);e<=127?i.push(e):e<=2047?i.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,n=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&n,i.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):i.push(239,191,189):56320==(64512&e)?i.push(239,191,189):i.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(i)}function zN(t,e){switch(t){case VN.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw EN(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case VN.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw EN(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=UN(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw EN(t,"Invalid character found")}var s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class KN{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw EN(VN.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,n,t=t[1]||null;null!=t&&(this.base64=(n=";base64",(r=t).length>=n.length&&r.substring(r.length-n.length)===n),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class WN{constructor(e,t){let r=0,n="";NN(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){var r,n,i,s;return NN(this.data_)?(r=this.data_,i=e,s=t,null===(r=(n=r).webkitSlice?n.webkitSlice(i,s):n.mozSlice?n.mozSlice(i,s):n.slice?n.slice(i,s):null)?null:new WN(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new WN(r,!0))}static getBlob(...e){if(RN())return i=e.map(e=>e instanceof WN?e.data_:e),new WN(FN.apply(null,i));{var i=e.map(e=>AN(e)?jN(VN.RAW,e).data:e.data_);let t=0,r=(i.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),n=0;return i.forEach(e=>{for(let t=0;t<e.length;t++)r[n++]=e[t]}),new WN(r,!0)}}uploadData(){return this.data_}}function HN(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function GN(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function $N(e,t){return t}class QN{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||$N}}let YN=null;function JN(){var e,t;return YN||((e=[]).push(new QN("bucket")),e.push(new QN("generation")),e.push(new QN("metageneration")),e.push(new QN("name","fullPath",!0)),(t=new QN("name")).xform=function(e,t){return!AN(t=t)||t.length<2?t:GN(t)},e.push(t),(t=new QN("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new QN("timeCreated")),e.push(new QN("updated")),e.push(new QN("md5Hash",null,!0)),e.push(new QN("cacheControl",null,!0)),e.push(new QN("contentDisposition",null,!0)),e.push(new QN("contentEncoding",null,!0)),e.push(new QN("contentLanguage",null,!0)),e.push(new QN("contentType",null,!0)),e.push(new QN("metadata","customMetadata",!0)),YN=e),YN}function XN(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new kN(e,t);return n._makeStorageReference(e)}})}function ZN(e,t,r){var n=HN(t);if(null===n)return null;var t=e,i=n,s=r,a={type:"file"},o=s.length;for(let h=0;h<o;h++){var l=s[h];a[l.local]=l.xform(a,i[l.server])}return XN(a,t),a}function eR(e,t){var r={},n=t.length;for(let s=0;s<n;s++){var i=t[s];i.writable&&(r[i.server]=e[i.local])}return JSON.stringify(r)}let tR="prefixes",rR="items";function nR(e,t,r){var n=HN(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[tR])for(var o of r[tR]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new kN(s,o));a.prefixes.push(o)}if(r[rR])for(var l of r[rR]){l=i._makeStorageReference(new kN(s,l.name));a.items.push(l)}return a}class iR{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function sR(e){if(!e)throw vN()}function aR(n,i){return function(e,t){var r=ZN(n,t,i);return sR(null!==r),r}}function oR(n,i){return function(e,t){var r=nR(n,i,t);return sR(null!==r),r}}function lR(o,n){return function(e,t){var r=ZN(o,t,n);sR(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=HN(t)))return null;if(!AN(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let n=encodeURIComponent;return r.split(",").map(e=>{var t=i.bucket,r=i.fullPath;return DN("/b/"+n(t)+"/o/"+n(r),s,a)+xN({alt:"media",token:e})})[0]}}}function hR(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new gN(oN.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new gN(oN.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new gN(oN.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new gN(oN.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function uR(n){let i=hR(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new gN(oN.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function cR(e,t,r){var n=DN(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new iR(n,"GET",aR(e,r),i);return n.errorHandler=uR(t),n}function dR(e,t,r){var n=Object.assign({},r);return n.fullPath=e.path,n.size=t.size(),n.contentType||(n.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),n}function pR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),l=(a["Content-Type"]="multipart/related; boundary="+o,dR(t,n,i)),h="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+eR(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",h=WN.getBlob(h,n,o);if(null===h)throw wN();o={name:l.fullPath},l=DN(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new iR(l,"POST",aR(e,r),s);return l.urlParams=o,l.headers=a,l.body=h.uploadData(),l.errorHandler=hR(t),l}class fR{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function gR(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){sR(!1)}return sR(!!r&&-1!==(t||["active"]).indexOf(r)),r}function mR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=dR(t,n,i),o={name:a.fullPath},s=DN(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+n.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=eR(a,r),h=e.maxUploadRetryTime;s=new iR(s,"POST",function(e){gR(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){sR(!1)}return sR(AN(t)),t},h);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=hR(t),s}function vR(e,t,r,i){var n=e.maxUploadRetryTime,n=new iR(r,"POST",function(e){var t=gR(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){sR(!1)}r||sR(!1);var n=Number(r);return sR(!isNaN(n)),new fR(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=hR(t),n}function _R(e,a,t,o,r,l,n,i){let h=new fR(0,0);if(n?(h.current=n.current,h.total=n.total):(h.current=0,h.total=o.size()),o.size()!==h.total)throw new gN(oN.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=h.total-h.current;let u=s;0<r&&(u=Math.min(u,r));var c=h.current,d=c+u;let p="";s={"X-Goog-Upload-Command":p=0===u?"finalize":s===u?"upload, finalize":"upload","X-Goog-Upload-Offset":""+h.current},c=o.slice(c,d);if(null===c)throw wN();d=a.maxUploadRetryTime,d=new iR(t,"POST",function(e,t){var r=gR(e,["active","final"]),n=h.current+u,i=o.size();let s;return s="final"===r?aR(a,l)(e,t):null,new fR(n,i,"final"===r,s)},d);return d.headers=s,d.body=c.uploadData(),d.progressCallback=i||null,d.errorHandler=hR(e),d}let yR={STATE_CHANGED:"state_changed"},wR={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function bR(e){switch(e){case"running":case"pausing":case"canceling":return wR.RUNNING;case"paused":return wR.PAUSED;case"success":return wR.SUCCESS;case"canceled":return wR.CANCELED;default:return wR.ERROR}}class IR{constructor(e,t,r){var n;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=r?r:void 0):(this.next=(n=e).next,this.error=n.error,this.complete=n.complete)}}function TR(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class ER extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=lN.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=lN.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=lN.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw CN("cannot .send() more than once");if(ee(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==i)for(var s in i)i.hasOwnProperty(s)&&this.xhr_.setRequestHeader(s,i[s].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw CN("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw CN("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw CN("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw CN("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function CR(){return new ER}class kR{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=JN(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(oN.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(ON(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=_N()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(oN.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=mR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let n=this._uploadUrl;this._resolveToken((e,t)=>{var r=vR(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let i=262144*this._chunkMultiplier,s=new fR(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=_R(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var n=this._ref.storage._makeRequest(r,CR,e,t,!1);(this._request=n).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=cR(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=pR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=yN(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=bR(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,n){let i=new IR(t||void 0,r||void 0,n||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(bR(this._state)){case wR.SUCCESS:TR(this._resolve.bind(null,this.snapshot))();break;case wR.CANCELED:case wR.ERROR:TR(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(bR(this._state)){case wR.RUNNING:case wR.PAUSED:e.next&&TR(e.next.bind(e,this.snapshot))();break;case wR.SUCCESS:e.complete&&TR(e.complete.bind(e))();break;case wR.CANCELED:case wR.ERROR:default:e.error&&TR(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class SR{constructor(e,t){this._service=e,t instanceof kN?this._location=t:this._location=kN.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new SR(e,t)}get root(){var e=new kN(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return GN(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new kN(this._location.bucket,r),new SR(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw TN(e)}}function AR(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await NR(t,i);r.prefixes.push(...s.prefixes);r.items.push(...s.items);null!=s.nextPageToken&&await e(t,r,s.nextPageToken)}(e,t).then(()=>t)}function NR(e,t){null!=t&&"number"==typeof t.maxResults&&PN("options.maxResults",1,1e3,t.maxResults);var r,n,i,s,a,o=t||{},l=(t=e.storage,r=e._location,n="/",i=o.pageToken,s=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",n&&0<n.length&&(o.delimiter=n),i&&(o.pageToken=i),s&&(o.maxResults=s),a=DN(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new iR(a,"GET",oR(t,r.bucket),l)).urlParams=o,a.errorHandler=hR(r),a);return e.storage.makeRequestWithTokens(l,CR)}function RR(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=JN(),s=DN(n.fullServerUrl(),r.host,r._protocol),a=eR(t,i),o=r.maxOperationRetryTime,(s=new iR(s,"PATCH",aR(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=uR(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,CR)}function PR(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=JN(),i=DN(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new iR(i,"GET",lR(t,n),s)).errorHandler=uR(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,CR).then(e=>{if(null===e)throw new gN(oN.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function DR(e){e._throwIfRoot("deleteObject");t=e.storage,n=DN((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new iR(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=uR(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,CR)}function xR(e,t){r=e._location.path,n=t.split("/").filter(e=>0<e.length).join("/");var r,n=0===r.length?n:r+"/"+n,n=new kN(e._location.bucket,n);return new SR(e.storage,n)}function OR(e,t){if(e instanceof FR){var r=e;if(null==r._bucket)throw new gN(oN.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+fN+"' property when initializing the app?");r=new SR(r,r._bucket);return null!=t?OR(r,t):r}return void 0!==t?xR(e,t):e}function MR(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof FR)return r=e,n=t,new SR(r,n);throw bN("To use ref(service, url), the first argument must be a Storage instance.")}return OR(e,t);var r,n}function LR(e,t){var r=null==t?void 0:t[fN];return null==r?null:kN.makeFromBucketSpec(r,e)}class FR{constructor(e,t,r,n,i,s=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=i,this._isUsingEmulator=s,this._bucket=null,this._host=pN,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?kN.makeFromBucketSpec(n,this._host):LR(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=kN.makeFromBucketSpec(this._url,e):this._bucket=LR(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){PN("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){PN("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new SR(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new SN(IN());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],u=xN(t.urlParams),u=t.url+u,c=Object.assign({},t.headers),h=c,(n=n)&&(h["X-Firebase-GMPID"]=n),h=c,null!==(n=i)&&0<n.length&&(h.Authorization="Firebase "+n),i=a,c["X-Firebase-Storage-Version"]="webjs/"+(null!=i?i:"AppManager"),h=c,null!==(n=r)&&(h["X-Firebase-AppCheck"]=n);let e=new MN(u,t.method,c,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,s,o,l);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,l,h,u,c}async makeRequestWithTokens(e,t){var[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let UR="@firebase/storage",VR="0.13.12";function qR(e,t,r){return e=w(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new kR(e,new WN(t),r)}function jR(e){return e=w(e),(e=e)._throwIfRoot("getMetadata"),t=cR(e.storage,e._location,JN()),e.storage.makeRequestWithTokens(t,CR);var t}function BR(e,t){return MR(e=w(e),t)}function zR(e,t,r,n={}){var i;[e,t,r,n={}]=[e,t,r,n],e.host=t+":"+r,(i=((i=ee(t))&&(te("https://"+e.host),se("Storage",!0)),e._isUsingEmulator=!0,e._protocol=i?"https":"http",n).mockUserToken)&&(e._overrideAuthToken="string"==typeof i?i:re(i,e.app.options.projectId))}function KR(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new FR(r,n,i,t,Vt)}Dt(new u("storage",KR,"PUBLIC").setMultipleInstances(!0)),d(UR,VR,""),d(UR,VR,"esm2017");class WR{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class HR{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new WR(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new WR(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new WR(e,this,this._ref)):{next:t.next?e=>t.next(new WR(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,r||void 0,n||void 0)}}class GR{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new $R(e,this._service))}get items(){return this._delegate.items.map(e=>new $R(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class $R{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=xR(this._delegate,e);return new $R(t,this.storage)}get root(){return new $R(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new $R(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new HR(qR(this._delegate,e,t),this)}putString(e,t=VN.RAW,r){this._throwIfRoot("putString");var n=jN(t,e),i=Object.assign({},r);return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new HR(new kR(this._delegate,new WN(n.data,!0),i),this)}listAll(){return AR(w(this._delegate)).then(e=>new GR(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,NR(t=w(t),e).then(e=>new GR(e,this.storage));var t}getMetadata(){return jR(this._delegate)}updateMetadata(e){return RR(w(this._delegate),e)}getDownloadURL(){return PR(w(this._delegate))}delete(){return this._throwIfRoot("delete"),DR(w(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw TN(e)}}class QR{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(YR(e))throw bN("ref() expected a child path but got a URL, use refFromURL instead.");return new $R(BR(this._delegate,e),this)}refFromURL(e){if(!YR(e))throw bN("refFromURL() expected a full URL but got a child path, use ref() instead.");try{kN.makeFromUrl(e,this._delegate.host)}catch(e){throw bN("refFromUrl() expected a valid full URL but got an invalid one.")}return new $R(BR(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){zR(this._delegate,e,t,r)}}function YR(e){return/^[A-Za-z]+:\/\//.test(e)}function JR(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new QR(r,n)}hN=lr,Sm={TaskState:wR,TaskEvent:yR,StringFormat:VN,Storage:QR,Reference:$R},hN.INTERNAL.registerComponent(new u("storage-compat",JR,"PUBLIC").setServiceProps(Sm).setMultipleInstances(!0)),hN.registerVersion("@firebase/storage-compat","0.3.22");function XR(e){if("loading"===document.readyState)return"loading";var t=lP();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function ZR(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:hP(n)+(n.classList&&n.classList.value&&n.classList.value.trim()&&n.classList.value.trim().length?"."+n.classList.value.trim().replace(/\s+/g,"."):"");if(r.length+i.length>(t||100)-1)return r||i;if(r=r?i+">"+r:i,n.id)break;e=n.parentNode}}catch(e){}return r}function eP(i,e){var a,o,s,l;a=function(e){r={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(n=(n=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||n[0])&&(r={largestShiftTarget:ZR(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:XR(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=yP(function(){function e(e){e.forEach(function(e){var t,r;e.hadRecentInput||(t=i[0],r=i[i.length-1],n&&e.startTime-r.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,i.push(e)):(n=e.value,i=[e]))}),n>r.value&&(r.value=n,r.entries=i,t())}var t,r=fP("CLS",0),n=0,i=[],s=gP("layout-shift",e);s&&(t=mP(a,r,AP,o.reportAllChanges),_P(function(){e(s.takeRecords()),t(!0)}),dP(function(){r=fP("CLS",n=0),t=mP(a,r,AP,o.reportAllChanges),vP(function(){return t()})}),setTimeout(t,0))}),l=l||{},kP(function(){var t,r=CP(),n=fP("FCP"),i=gP("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-pP(),0),n.entries.push(e),t(!0))})});i&&(t=mP(s,n,SP,l.reportAllChanges),dP(function(e){n=fP("FCP"),t=mP(s,n,SP,l.reportAllChanges),vP(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function tP(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},kP(function(){var e;OP();function t(t){jP(function(){t.forEach(qP);var e=UP();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=fP("INP"),n=gP("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=mP(s,r,BP,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),_P(function(){t(n.takeRecords()),i(!0)}),dP(function(){FP=xP(),MP.length=0,LP.clear(),r=fP("INP"),i=mP(s,r,BP,a.reportAllChanges)}))}))}function rP(e){zP=zP.concat(e),QP()}function nP(){10<GP.size&&GP.forEach(function(e,t){LP.has(t)||GP.delete(t)});var r=MP.map(function(e){return HP.get(e.entries[0])}),n=KP.length-50;KP=KP.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<KP.length;e++){var t=KP[e];YP(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=zP.length-1-50;zP=zP.filter(function(e,t){return e.startTime>WP&&s<t||i.has(e)}),$P=-1}function iP(l,e){oP=oP||gP("long-animation-frame",rP),tP(function(e){t=(e=e).entries[0],o=HP.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=YP(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||GP.get(t.interactionId),a=[t.startTime+t.duration,n].concat(i.map(function(e){return e.startTime+e.duration})),a=Math.max.apply(Math,a),s={interactionTarget:ZR(s),interactionTargetElement:s,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:a,processedEventEntries:o,longAnimationFrameEntries:i,inputDelay:r-t.startTime,processingDuration:n-r,presentationDelay:Math.max(a-n,0),loadState:XR(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function sP(h,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=lP())&&(a=t.activationStart||0,n=(r=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===r.url})[0],l=Math.max(0,t.responseStart-a),i=Math.max(l,n?(n.requestStart||n.startTime)-a:0),s=Math.max(i,n?n.responseEnd-a:0),a=Math.max(s,r.startTime-a),o={element:ZR(r.element),timeToFirstByte:l,resourceLoadDelay:i-l,resourceLoadDuration:s-i,elementRenderDelay:a-s,navigationEntry:t,lcpEntry:r},r.url&&(o.url=r.url),n)&&(o.lcpResourceEntry=n);var t,r,n,i,s,a,o,l=Object.assign(e,{attribution:o});h(l)},o=e||{},kP(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-pP(),0),i.entries=[e],t())})}var t,r,n=CP(),i=fP("LCP"),s=gP("largest-contentful-paint",e);s&&(t=mP(a,i,JP,o.reportAllChanges),r=yP(function(){XP[i.id]||(e(s.takeRecords()),s.disconnect(),XP[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return jP(r)},{once:!0,capture:!0})}),_P(r),dP(function(e){i=fP("LCP"),t=mP(a,i,JP,o.reportAllChanges),vP(function(){i.value=performance.now()-e.timeStamp,XP[i.id]=!0,t(!0)})}))})}var aP,oP,lP=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},hP=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},uP=-1,cP=function(){return uP},dP=function(t){addEventListener("pageshow",function(e){e.persisted&&(uP=e.timeStamp,t(e))},!0)},pP=function(){var e=lP();return e&&e.activationStart||0},fP=function(e,t){var r=lP(),n="navigate";return 0<=cP()?n="back-forward-cache":r&&(document.prerendering||0<pP()?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},gP=function(e,t,r){try{var n;if(PerformanceObserver.supportedEntryTypes.includes(e))return(n=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},r||{})),n}catch(e){}},mP=function(t,r,n,i){var s,a;return function(e){0<=r.value&&(e||i)&&((a=r.value-(s||0))||void 0===s)&&(s=r.value,r.delta=a,r.rating=(e=r.value)>n[1]?"poor":e>n[0]?"needs-improvement":"good",t(r))}},vP=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},_P=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},yP=function(e){var t=!1;return function(){t||(e(),t=!0)}},wP=-1,bP=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},IP=function(e){"hidden"===document.visibilityState&&-1<wP&&(wP="visibilitychange"===e.type?e.timeStamp:0,EP())},TP=function(){addEventListener("visibilitychange",IP,!0),addEventListener("prerenderingchange",IP,!0)},EP=function(){removeEventListener("visibilitychange",IP,!0),removeEventListener("prerenderingchange",IP,!0)},CP=function(){return wP<0&&(wP=bP(),TP(),dP(function(){setTimeout(function(){wP=bP(),TP()},0)})),{get firstHiddenTime(){return wP}}},kP=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},SP=[1800,3e3],AP=[.1,.25],NP=0,RP=1/0,PP=0,DP=function(e){e.forEach(function(e){e.interactionId&&(RP=Math.min(RP,e.interactionId),PP=Math.max(PP,e.interactionId),NP=PP?(PP-RP)/7+1:0)})},xP=function(){return aP?NP:performance.interactionCount||0},OP=function(){"interactionCount"in performance||(aP=aP||gP("event",DP,{type:"event",buffered:!0,durationThreshold:0}))},MP=[],LP=new Map,FP=0,UP=function(){var e=Math.min(MP.length-1,Math.floor((xP()-FP)/50));return MP[e]},VP=[],qP=function(t){var e,r;VP.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=MP[MP.length-1],((e=LP.get(t.interactionId))||MP.length<10||t.duration>r.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(r={id:t.interactionId,latency:t.duration,entries:[t]},LP.set(r.id,r),MP.push(r)),MP.sort(function(e,t){return t.latency-e.latency}),10<MP.length)&&MP.splice(10).forEach(function(e){return LP.delete(e.id)}))},jP=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=yP(e),"hidden"===document.visibilityState?e():(r=t(e),_P(e)),r},BP=[200,500],zP=[],KP=[],WP=0,HP=new WeakMap,GP=new Map,$P=-1,QP=function(){$P<0&&($P=jP(nP))},YP=(VP.push(function(e){e.interactionId&&e.target&&!GP.has(e.interactionId)&&GP.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;WP=Math.max(WP,e.processingEnd);for(var n=KP.length-1;0<=n;n--){var i=KP[n];if(Math.abs(r-i.renderTime)<=8){(t=i).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:r,entries:[e]},KP.push(t)),!e.interactionId&&"first-input"!==e.entryType||HP.set(e,t),QP()}),function(e,t){for(var r,n=[],i=0;r=zP[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),JP=[2500,4e3],XP={};let ZP="@firebase/performance",eD="0.7.6",tD=eD,rD="FB-PERF-TRACE-MEASURE",nD="@firebase/performance/config",iD="@firebase/performance/configexpire";var sD,t,r,aD,e="Performance";let oD=new we("performance",e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),lD=new tt(e);lD.logLevel=c.INFO;let hD,uD;class cD{constructor(e){if(!(this.window=e))throw oD.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=sP,this.onINP=iP,this.onCLS=eP}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,r){this.performance&&this.performance.measure&&this.performance.measure(e,t,r)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&_e()?!!me()||(lD.info("IndexedDB is not supported by current browser"),!1):(lD.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,r){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())r(t)}).observe({entryTypes:[e]})}static getInstance(){return hD=void 0===hD?new cD(uD):hD}}let dD;function pD(e,t){var r=e.length-t.length;if(r<0||1<r)throw oD.create("invalid String merger input");var n=[];for(let i=0;i<e.length;i++)n.push(e.charAt(i)),t.length>i&&n.push(t.charAt(i));return n.join("")}let fD;class gD{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=pD("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=pD("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return fD=void 0===fD?new gD:fD}}(t=sD=sD||{})[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN";let mD=["firebase_","google_","ga_"],vD=new RegExp("^[a-zA-Z]\\w*$");function _D(e){var t=null==(t=e.options)?void 0:t.appId;if(t)return t;throw oD.create("no app id")}let yD="0.0.1",wD={loggingEnabled:!0},bD="FIREBASE_INSTALLATIONS_AUTH";function ID(e,t){var n,i,r=(()=>{var e=cD.getInstance().localStorage;if(e){var t=e.getItem(iD);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(nD);if(t)try{return JSON.parse(t)}catch(e){}}}})();return r?(ED(r),Promise.resolve()):(i=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((n=e).installations).then(e=>{var t=(e=>{var t=null==(t=e.options)?void 0:t.projectId;if(t)return t;throw oD.create("no project id")})(n.app),r=(e=>{var t=null==(t=e.options)?void 0:t.apiKey;if(t)return t;throw oD.create("no api key")})(n.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+r,{method:"POST",headers:{Authorization:bD+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:_D(n.app),app_version:tD,sdk_version:yD})});return fetch(t).then(e=>{if(e.ok)return e.json();throw oD.create("RC response not ok")})}).catch(()=>{lD.info(TD)}).then(ED).then(e=>{var t;e=e,t=cD.getInstance().localStorage,e&&t&&(t.setItem(nD,JSON.stringify(e)),t.setItem(iD,String(Date.now()+60*gD.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let TD="Could not fetch config, will use default configs";function ED(e){var t,r;return e&&(t=gD.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=wD.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):wD.logSource&&(t.logSource=wD.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:wD.logEndPointUrl&&(t.logEndPointUrl=wD.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:wD.transportKey&&(t.transportKey=wD.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==wD.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=wD.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==wD.tracesSamplingRate&&(t.tracesSamplingRate=wD.tracesSamplingRate),t.logTraceAfterSampling=CD(t.tracesSamplingRate),t.logNetworkAfterSampling=CD(t.networkRequestsSamplingRate)),e}function CD(e){return Math.random()<=e}let kD=1,SD;function AD(e){var r;return kD=2,SD=SD||(r=e,(()=>{let r=cD.getInstance().document;return new Promise(t=>{if(r&&"complete"!==r.readyState){let e=()=>{"complete"===r.readyState&&(r.removeEventListener("readystatechange",e),t())};r.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=r.installations,(t=e.getId()).then(e=>{dD=e}),t;var e,t}).then(e=>ID(r,e)).then(()=>ND(),()=>ND()))}function ND(){kD=3}let RD=1e4,PD=1e3,DD=3,xD=DD,OD=[],MD=!1;function LD(e){setTimeout(()=>{xD<=0||(0<OD.length&&FD(),LD(RD))},e)}function FD(){let e=OD.splice(0,PD);var t,r,n=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:gD.getInstance().logSource,log_event:n};t=n,n=gD.getInstance().getFlTransportFullUrl(),r=JSON.stringify(t),(navigator.sendBeacon&&navigator.sendBeacon(n,r)?Promise.resolve():fetch(n,{method:"POST",body:r,keepalive:!0}).then()).then(()=>{xD=DD}).catch(()=>{OD=[...e,...OD],xD--,lD.info(`Tries left: ${xD}.`),LD(RD)})}function UD(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw oD.create("invalid cc log");OD=[...OD,e]}}function VD(){for(;0<OD.length;)FD()}let qD;function jD(e,t){(qD=qD||{send:UD(KD),flush:VD}).send(e,t)}function BD(e){var t=gD.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&cD.getInstance().requiredApisAvailable()&&(3===kD?zD(e):AD(e.performanceController).then(()=>zD(e),()=>zD(e)))}function zD(e){var t;dD&&(t=gD.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&jD(e,1)}function KD(e,t){var r,n;return 0===t?(r={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},r={application_info:WD(e.performanceController.app),network_request_metric:r},JSON.stringify(r)):(r={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(r.counters=t.counters),n=t.getAttributes(),0!==Object.keys(n).length&&(r.custom_attributes=n),n={application_info:WD(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function WD(e){return{google_app_id:_D(e),app_instance_id:dD,web_app_info:{sdk_version:tD,page_url:cD.getInstance().getUrl(),service_worker_status:null!=(t=cD.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(cD.getInstance().document.visibilityState){case"visible":return sD.VISIBLE;case"hidden":return sD.HIDDEN;default:return sD.UNKNOWN}})(),effective_connection_type:(()=>{var e=cD.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function HD(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=cD.getInstance().getTimeOrigin(),i=Math.floor(1e3*(s.startTime+i)),r=s.responseStart?Math.floor(1e3*(s.responseStart-s.startTime)):void 0,n=Math.floor(1e3*(s.responseEnd-s.startTime)),s={performanceController:e,url:s.name&&s.name.split("?")[0],responsePayloadBytes:s.transferSize,startTimeUs:i,timeToResponseInitiatedUs:r,timeToResponseCompletedUs:n},t=s,(i=gD.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&jD(t,0)}let GD=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class $D{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=cD.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=n||`${rD}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw oD.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw oD.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),BD(this)}record(e,t,r){if(e<=0)throw oD.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw oD.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),r&&r.attributes&&(this.customAttributes=Object.assign({},r.attributes)),r&&r.metrics)for(var n of Object.keys(r.metrics))isNaN(Number(r.metrics[n]))||(this.counters[n]=Math.floor(Number(r.metrics[n])));BD(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(n=e,i=this.name,0===n.length||100<n.length||!(i&&i.startsWith("_wt_")&&-1<GD.indexOf(n))&&n.startsWith("_"))throw oD.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=null!=t?t:0,(r=Math.floor(i))<i&&lD.info(`Metric value should be an Integer, setting the value as : ${r}.`),r)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var r,n,i=!(0===(r=e).length||40<r.length||mD.some(e=>r.startsWith(e))||!r.match(vD)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw oD.create("invalid attribute name",{attributeName:e});if(!s)throw oD.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,r,n,i){var s=cD.getInstance().getUrl();if(s){var s=new $D(e,"_wt_"+s,!0),a=Math.floor(1e3*cD.getInstance().getTimeOrigin());s.setStartTime(a),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));r&&((a=r.find(e=>"first-paint"===e.name))&&a.startTime&&s.putMetric("_fp",Math.floor(1e3*a.startTime)),(a=r.find(e=>"first-contentful-paint"===e.name))&&a.startTime&&s.putMetric("_fcp",Math.floor(1e3*a.startTime)),i)&&s.putMetric("_fid",Math.floor(1e3*i)),this.addWebVitalMetric(s,"_lcp","lcp_element",n.lcp),this.addWebVitalMetric(s,"_cls","cls_largestShiftTarget",n.cls),this.addWebVitalMetric(s,"_inp","inp_interactionTarget",n.inp),BD(s),qD&&qD.flush()}}static addWebVitalMetric(e,t,r,n){n&&(e.putMetric(t,Math.floor(1e3*n.value)),n.elementAttribution)&&e.putAttribute(r,n.elementAttribution)}static createUserTimingTrace(e,t){BD(new $D(e,t,!1,t))}}let QD={},YD=!1,JD;function XD(n){dD&&(setTimeout(()=>{{var t=n;let e=cD.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>ex(t)):e.document.addEventListener("unload",()=>ex(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&ex(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{JD=e}),e.onLCP(e=>{var t;QD.lcp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.element}}),e.onCLS(e=>{var t;QD.cls={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.largestShiftTarget}}),e.onINP(e=>{var t;QD.inp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=cD.getInstance();for(e of r.getEntriesByType("resource"))HD(t,e);r.setupObserver("resource",e=>HD(t,e))},0),setTimeout(()=>{var e,t=n,r=cD.getInstance();for(e of r.getEntriesByType("measure"))ZD(t,e);r.setupObserver("measure",e=>ZD(t,e))},0))}function ZD(e,t){var r=t.name;r.substring(0,rD.length)!==rD&&$D.createUserTimingTrace(e,r)}function ex(r){if(!YD){YD=!0;var n=cD.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{$D.createOobTrace(r,e,t,QD,JD)},0)}}class tx{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),cD.getInstance().requiredApisAvailable()?ve().then(e=>{e&&(MD||(LD(5500),MD=!0),AD(this).then(()=>XD(this),()=>XD(this)),this.initialized=!0)}).catch(e=>{lD.info("Environment doesn't support IndexedDB: "+e)}):lD.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){gD.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return gD.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){gD.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return gD.getInstance().dataCollectionEnabled}}let rx="[DEFAULT]";let nx=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==rx)throw oD.create("FB not default");if("undefined"==typeof window)throw oD.create("no window");e=window,uD=e;r=new tx(r,n);return r._init(t),r};Dt(new u("performance",nx,"PUBLIC")),d(ZP,eD),d(ZP,eD,"esm2017");class ix{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=w(t),new $D(t,e);var t}}function sx(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new ix(t,r)}(r=lr).INTERNAL.registerComponent(new u("performance-compat",sx,"PUBLIC")),r.registerVersion("@firebase/performance-compat","0.2.19");let ax="@firebase/remote-config";class ox{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let lx=new we("remoteconfig","Remote Config",{"already-initialized":"Remote Config already initialized","registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser","custom-signal-max-allowed-signals":"Setting more than {$maxSignals} custom signals is not supported."});let hx=["1","true","t","yes","y","on"];class ux{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=hx.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function cx(e){var t=w(e),[r,n]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(r&&r.config&&r.eTag&&r.eTag!==n)&&(await Promise.all([t._storageCache.setActiveConfig(r.config),t._storage.setActiveConfigEtag(r.eTag)]),!0)}function dx(e){let t=w(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function px(t){var r=w(t);let e=new ox;setTimeout(async()=>{e.abort()},r.settings.fetchTimeoutMillis);var n,i=r._storageCache.getCustomSignals();i&&r._logger.debug("Fetching config with custom signals: "+JSON.stringify(i));try{await r._client.fetch({cacheMaxAgeMillis:r.settings.minimumFetchIntervalMillis,signal:e,customSignals:i}),await r._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";i=(n=e)instanceof ye&&-1!==n.code.indexOf(t)?"throttle":"failure";throw await r._storageCache.setLastFetchStatus(i),e}}function fx(r){var e,t,n=w(r);return[e={},t={}]=[n._storageCache.getActiveConfig(),n.defaultConfig],Object.keys(Object.assign(Object.assign({},e),t)).reduce((e,t)=>(e[t]=gx(r,t),e),{})}function gx(e,t){var r=w(e),n=(r._isInitializationComplete||r._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),r._storageCache.getActiveConfig());return n&&void 0!==n[t]?new ux("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new ux("default",String(r.defaultConfig[t])):(r._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new ux("static"))}class mx{constructor(e,t,r,n){this.client=e,this.storage=t,this.storageCache=r,this.logger=n}isCachedDataFresh(e,t){var r;return t?(r=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${r}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r=r<=e}.`),r):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,r]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(r&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return r;e.eTag=r&&r.eTag;t=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&r.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(r),t}}class vx{constructor(e,t,r,n,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=r,this.projectId=n,this.apiKey=i,this.appId=s}async fetch(r){var e,[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":r.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:r.customSignals},n={method:"POST",headers:s,body:JSON.stringify(t)},s=fetch(i,n),t=new Promise((e,t)=>{r.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([s,t]),a=await s}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),lx.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let l,h;if(200===a.status){let e;try{e=await a.json()}catch(e){throw lx.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}l=e.entries,h=e.state}if("INSTANCE_STATE_UNSPECIFIED"===h?o=500:"NO_CHANGE"===h?o=304:"NO_TEMPLATE"!==h&&"EMPTY_CONFIG"!==h||(l={}),304!==o&&200!==o)throw lx.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l}}}class _x{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:r}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(lx.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var n=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),n}catch(e){if((e=>{var t;return e instanceof ye&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+He(r),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class yx{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,r,n,i){this.app=e,this._client=t,this._storageCache=r,this._storage=n,this._logger=i,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function wx(e,t){var r=e.target.error||void 0;return lx.create(t,{originalErrorMessage:r&&(null==r?void 0:r.message)})}let bx="app_namespace_store";class Ix{getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}getCustomSignals(){return this.get("custom_signals")}}class Tx extends Ix{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(wx(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(bx,{keyPath:"compositeKey"})}}catch(e){r(lx.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=r,this.openDbPromise=n}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([bx],"readwrite"),r=Cx(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",r,t),r}async getWithTransaction(s,a){return new Promise((r,t)=>{var e=a.objectStore(bx),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(wx(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(lx.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(bx),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(wx(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(lx.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([bx],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([bx],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([bx],"readwrite").objectStore(bx),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(wx(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(lx.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class Ex extends Ix{constructor(){super(...arguments),this.storage={}}async get(e){return Promise.resolve(this.storage[e])}async set(e,t){return this.storage[e]=t,Promise.resolve(void 0)}async delete(e){return this.storage[e]=void 0,Promise.resolve()}async setCustomSignals(e){var t=this.storage.custom_signals||{};return this.storage.custom_signals=Cx(e,t),Promise.resolve(this.storage.custom_signals)}}function Cx(e,t){var r=Object.assign(Object.assign({},t),e),r=Object.fromEntries(Object.entries(r).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(r).length)throw lx.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class kx{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),r=this.storage.getActiveConfig(),n=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await r),e=(t&&(this.activeConfig=t),await n);e&&(this.customSignals=e)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}async setCustomSignals(e){this.customSignals=await this.storage.setCustomSignals(e)}}async function Sx(){if(!me())return!1;try{return await ve()}catch(e){return!1}}Dt(new u("remote-config",function(e,{options:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:s,appId:a}=r.options;if(!i)throw lx.create("registration-project-id");if(!s)throw lx.create("registration-api-key");if(!a)throw lx.create("registration-app-id");var o=(null==t?void 0:t.templateId)||"firebase",l=me()?new Tx(a,r.name,o):new Ex,h=new kx(l),u=new tt(ax),n=(u.logLevel=c.ERROR,new vx(n,Vt,o,i,s,a)),o=new _x(n,l),i=new mx(o,l,h,u),s=new yx(r,i,h,l,u);return dx(s),s},"PUBLIC").setMultipleInstances(!0)),d(ax,"0.6.4"),d(ax,"0.6.4","esm2017");class Ax{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return cx(this._delegate)}ensureInitialized(){return dx(this._delegate)}fetch(){return px(this._delegate)}fetchAndActivate(){return(async e=>(await px(e=w(e)),cx(e)))(this._delegate)}getAll(){return fx(this._delegate)}getBoolean(e){return gx(w(this._delegate),e).asBoolean()}getNumber(e){return gx(w(this._delegate),e).asNumber()}getString(e){return gx(w(this._delegate),e).asString()}getValue(e){return gx(this._delegate,e)}setLogLevel(e){var t=this._delegate,r=w(t);switch(e){case"debug":r._logger.logLevel=c.DEBUG;break;case"silent":r._logger.logLevel=c.SILENT;break;default:r._logger.logLevel=c.ERROR}}}function Nx(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new Ax(r,n)}return(aD=lr).INTERNAL.registerComponent(new u("remoteConfig-compat",Nx,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Sx})),aD.registerVersion("@firebase/remote-config-compat","0.2.17"),console.warn(`
|
|
28
|
+
Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(l-o)+"ms\n"+` Removed ${e} documents in `+(h-l)+"ms\n"+`Total Duration: ${h-u}ms`),O.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function kT(e,t){return new CT(e,t)}class ST{constructor(e,t){this.db=e,this.garbageCollector=kT(this,t)}pr(e){let r=this.br(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}br(e){let t=0;return this.yr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}yr(e,r){return this.Sr(e,(e,t)=>r(t))}addReference(e,t,r){return AT(e,r)}removeReference(e,t,r){return AT(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return AT(e,t)}Dr(e,r){{var n=e,i=r;let t=!1;return gT(n).ne(e=>dT(n,e,i).next(e=>(e&&(t=!0),O.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.Sr(r,(t,e)=>{if(e<=n){let e=this.Dr(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,P.min()),wT(r).delete([0,Uv(t.path)])))});s.push(e)}}).next(()=>O.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return AT(e,t)}Sr(e,n){var t=wT(e);let i,s=xv.le;return t.te({index:d_},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==xv.le&&n(new D(qv(i)),s),s=r,i=t):s=xv.le}).next(()=>{s!==xv.le&&n(new D(qv(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function AT(e,t){return wT(e).put((e=e.currentSequenceNumber,{targetId:0,path:Uv(t.path),sequenceNumber:e}))}class NT{constructor(){this.changes=new Dw(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,Ky.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?O.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class RT{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return OT(e).put(r)}removeEntry(e,t,r){return OT(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],mI(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.vr(t,e)))}getEntry(e,r){let n=Ky.newInvalidDocument(r);return OT(e).te({index:t_,range:IDBKeyRange.only(MT(r))},(e,t)=>{n=this.Cr(r,t)}).next(()=>n)}Fr(e,r){let n={size:0,document:Ky.newInvalidDocument(r)};return OT(e).te({index:t_,range:IDBKeyRange.only(MT(r))},(e,t)=>{n={document:this.Cr(r,t),size:uT(t)}}).next(()=>n)}getEntries(e,t){let n=Ow;return this.Mr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r)}).next(()=>n)}Or(e,t){let n=Ow,i=new M(D.comparator);return this.Mr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r),i=i.insert(e,uT(t))}).next(()=>({documents:n,Nr:i}))}Mr(e,t,i){if(t.isEmpty())return O.resolve();let r=new L(FT),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(MT(r.first()),MT(r.last()))),s=r.getIterator(),a=s.getNext();return OT(e).te({index:t_,range:n},(e,t,r)=>{for(var n=D.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&FT(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.H(MT(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),mI(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return OT(e).J(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=Ow;for(let r of e){let e=this.Cr(D.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(Rw(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=Ow;var n=LT(t,r),a=LT(t,pv.max());return OT(e).te({index:n_,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Cr(D.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new xT(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return DT(e).get(a_).next(e=>(S(!!e,20021),e))}vr(e,t){return DT(e).put(a_,t)}Cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=eI(e.wt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=D.fromSegments(r.noDocument.path),t=_I(r.noDocument.readTime);n=Ky.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return k(56709);{let e=D.fromSegments(r.unknownDocument.path),t=_I(r.unknownDocument.version);n=Ky.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new ev(e[0],e[1]),P.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(P.min()))return e}return Ky.newInvalidDocument(e)}}function PT(e){return new RT(e)}class xT extends NT{constructor(e,t){super(),this.Br=e,this.trackRemovals=t,this.Lr=new Dw(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new L((e,t)=>R(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Lr.get(t);if(a.push(this.Br.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=gI(this.Br.serializer,r),i=(l=l.add(t.path.popLast()),uT(n));o+=i-e.size,a.push(this.Br.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=gI(this.Br.serializer,r.convertToNoDocument(P.min()));a.push(this.Br.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Br.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Br.updateMetadata(s,o)),O.waitFor(a)}getFromCache(e,t){return this.Br.Fr(e,t).next(e=>(this.Lr.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Br.Or(e,t).next(({documents:r,Nr:e})=>(e.forEach((e,t)=>{this.Lr.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function DT(e){return G_(e,s_)}function OT(e){return G_(e,Zv)}function MT(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function LT(e,t){var r=t.documentKey.path.toArray();return[e,mI(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function FT(e,t){var r=e.path.toArray(),n=t.path.toArray();let i=0;for(let s=0;s<r.length-2&&s<n.length-2;++s)if(i=R(r[s],n[s]))return i;return(i=R(r.length,n.length))||(i=R(r[r.length-2],n[n.length-2]))||R(r[r.length-1],n[n.length-1])}class UT{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class VT{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(t,r){let n=null;return this.documentOverlayCache.getOverlay(t,r).next(e=>(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&ob(n.mutation,e,ty.empty(),ev.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,V()).next(()=>e))}getLocalViewOfDocuments(e,t,r=V()){let n=Uw();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Lw();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=Uw();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,V()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=Ow,a=Uw(),o=Uw();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof ub)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),ob(r.mutation,t,r.mutation.getFieldMask(),ev.now())):a.set(t.key,ty.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var r;return o.set(e,new UT(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=Uw(),h=new M((e,t)=>e-t),u=V();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=l.get(e)||ty.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(h.get(n.batchId)||V()).add(e),h=h.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=h.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=Uw();r.forEach(e=>{var t;u.has(e)||(null!==(t=ab(o.get(e),l.get(e)))&&n.set(e,t),u=u.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return O.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,D.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Iw(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0<o-r.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-r.size):O.resolve(Uw());let n=sv,i=r;return e.next(e=>O.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?O.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,V())).next(e=>({batchId:n,changes:Fw(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new D(t)).next(e=>{let t=Lw();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=Lw();return this.indexManager.getCollectionParents(n,o).next(e=>O.forEach(e,e=>{t=i,e=e.child(o);var t,r=new _w(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,Ky.newInvalidDocument(r)))});let i=Lw();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&ob(r.mutation,t,ty.empty(),ev.now()),Rw(s,t)&&(i=i.insert(e,t))}),i})}}class qT{constructor(e){this.serializer=e,this.kr=new Map,this.qr=new Map}getBundleMetadata(e,t){return O.resolve(this.kr.get(t))}saveBundleMetadata(e,t){return this.kr.set(t.id,{id:t.id,version:t.version,createTime:zb(t.createTime)}),O.resolve()}getNamedQuery(e,t){return O.resolve(this.qr.get(t))}saveNamedQuery(e,t){return this.qr.set(t.name,{name:(t=t).name,query:II(t.bundledQuery),readTime:zb(t.readTime)}),O.resolve()}}class BT{constructor(){this.overlays=new M(D.comparator),this.Qr=new Map}getOverlay(e,t){return O.resolve(this.overlays.get(t))}getOverlays(e,t){let r=Uw();return O.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.St(r,n,t)}),O.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Qr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Qr.delete(r)),O.resolve()}getOverlaysForCollection(e,r,n){let i=Uw(),s=r.length+1,t=new D(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return O.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new M((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Uw(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=Uw(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return O.resolve(a)}St(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Qr.get(n.largestBatchId).delete(r.key);this.Qr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new _b(t,r));let i=this.Qr.get(t);void 0===i&&(i=V(),this.Qr.set(t,i)),this.Qr.set(t,i.add(r.key))}}class jT{constructor(){this.sessionToken=ny.EMPTY_BYTE_STRING}getSessionToken(e){return O.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,O.resolve()}}class zT{constructor(){this.$r=new L(KT.Ur),this.Kr=new L(KT.Wr)}isEmpty(){return this.$r.isEmpty()}addReference(e,t){var r=new KT(e,t);this.$r=this.$r.add(r),this.Kr=this.Kr.add(r)}Gr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.zr(new KT(e,t))}jr(e,t){e.forEach(e=>this.removeReference(e,t))}Hr(e){let t=new D(new x([])),r=new KT(t,e),n=new KT(t,e+1),i=[];return this.Kr.forEachInRange([r,n],e=>{this.zr(e),i.push(e.key)}),i}Jr(){this.$r.forEach(e=>this.zr(e))}zr(e){this.$r=this.$r.delete(e),this.Kr=this.Kr.delete(e)}Yr(e){var t=new D(new x([])),r=new KT(t,e),t=new KT(t,e+1);let n=V();return this.Kr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new KT(e,0),t=this.$r.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class KT{constructor(e,t){this.key=e,this.Zr=t}static Ur(e,t){return D.comparator(e.key,t.key)||R(e.Zr,t.Zr)}static Wr(e,t){return R(e.Zr,t.Zr)||D.comparator(e.key,t.key)}}class WT{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.nr=1,this.Xr=new L(KT.Ur)}checkEmpty(e){return O.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.nr,s=(this.nr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new mb(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Xr=this.Xr.add(new KT(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return O.resolve(s)}lookupMutationBatch(e,t){return O.resolve(this.ei(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.ti(t+1),r=r<0?0:r;return O.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return O.resolve(0===this.mutationQueue.length?Dv:this.nr-1)}getAllMutationBatches(e){return O.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new KT(t,0),n=new KT(t,Number.POSITIVE_INFINITY),i=[];return this.Xr.forEachInRange([r,n],e=>{var t=this.ei(e.Zr);i.push(t)}),O.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new L(R);return t.forEach(e=>{var t=new KT(e,0),r=new KT(e,Number.POSITIVE_INFINITY);this.Xr.forEachInRange([t,r],e=>{n=n.add(e.Zr)})}),O.resolve(this.ni(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;D.isDocumentKey(i)||(i=i.child(""));var s=new KT(new D(i),0);let a=new L(R);return this.Xr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Zr)),!0)},s),O.resolve(this.ni(a))}ni(e){let r=[];return e.forEach(e=>{var t=this.ei(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){S(0===this.ri(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Xr;return O.forEach(n.mutations,e=>{var t=new KT(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Xr=i})}sr(e){}containsKey(e,t){var r=new KT(t,0),r=this.Xr.firstAfterOrEqual(r);return O.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,O.resolve()}ri(e,t){return this.ti(e)}ti(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}ei(e){var t=this.ti(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class HT{constructor(e){this.ii=e,this.docs=new M(D.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.ii(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return O.resolve(r?r.document.mutableCopy():Ky.newInvalidDocument(t))}getEntries(e,t){let r=Ow;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():Ky.newInvalidDocument(e))}),O.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=Ow,a=r.path,t=new D(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||fv(dv(t),n)<=0||(i.has(t.key)||Rw(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return O.resolve(s)}getAllFromCollectionGroup(e,t,r,n){k(9500)}si(e,t){return O.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new GT(this)}getSize(e){return O.resolve(this.size)}}class GT extends NT{constructor(e){super(),this.Br=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Br.addEntry(r,t)):this.Br.removeEntry(e)}),O.waitFor(n)}getFromCache(e,t){return this.Br.getEntry(e,t)}getAllFromCache(e,t){return this.Br.getEntries(e,t)}}class $T{constructor(e){this.persistence=e,this.oi=new Dw(e=>dw(e),pw),this.lastRemoteSnapshotVersion=P.min(),this.highestTargetId=0,this._i=0,this.ai=new zT,this.targetCount=0,this.ui=mT.cr()}forEachTarget(e,r){return this.oi.forEach((e,t)=>r(t)),O.resolve()}getLastRemoteSnapshotVersion(e){return O.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return O.resolve(this._i)}allocateTargetId(e){return this.highestTargetId=this.ui.next(),O.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this._i&&(this._i=t),O.resolve()}Tr(e){this.oi.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.ui=new mT(t),this.highestTargetId=t),e.sequenceNumber>this._i&&(this._i=e.sequenceNumber)}addTargetData(e,t){return this.Tr(t),this.targetCount+=1,O.resolve()}updateTargetData(e,t){return this.Tr(t),O.resolve()}removeTargetData(e,t){return this.oi.delete(t.target),this.ai.Hr(t.targetId),--this.targetCount,O.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.oi.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.oi.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),O.waitFor(a).next(()=>s)}getTargetCount(e){return O.resolve(this.targetCount)}getTargetData(e,t){var r=this.oi.get(t)||null;return O.resolve(r)}addMatchingKeys(e,t,r){return this.ai.Gr(t,r),O.resolve()}removeMatchingKeys(t,e,r){this.ai.jr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),O.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.ai.Hr(t),O.resolve()}getMatchingKeysForTargetId(e,t){var r=this.ai.Yr(t);return O.resolve(r)}containsKey(e,t){return O.resolve(this.ai.containsKey(t))}}class QT{constructor(e,t){this.ci={},this.overlays={},this.li=new xv(0),this.hi=!1,this.hi=!0,this.Pi=new jT,this.referenceDelegate=e(this),this.Ti=new $T(this),this.indexManager=new JI,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Ii(e),new HT(e)),this.serializer=new fI(t),this.Ei=new qT(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.hi=!1,Promise.resolve()}get started(){return this.hi}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new BT,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.ci[e.toKey()];return r||(r=new WT(t,this.referenceDelegate),this.ci[e.toKey()]=r),r}getGlobalsCache(){return this.Pi}getTargetCache(){return this.Ti}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ei}runTransaction(e,t,r){C("MemoryPersistence","Starting transaction:",e);let n=new YT(this.li.next());return this.referenceDelegate.di(),r(n).next(e=>this.referenceDelegate.Ai(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ri(t,r){return O.or(Object.values(this.ci).map(e=>()=>e.containsKey(t,r)))}}class YT extends mv{constructor(e){super(),this.currentSequenceNumber=e}}class JT{constructor(e){this.persistence=e,this.Vi=new zT,this.mi=null}static fi(e){return new JT(e)}get gi(){if(this.mi)return this.mi;throw k(60996)}addReference(e,t,r){return this.Vi.addReference(r,t),this.gi.delete(r.toString()),O.resolve()}removeReference(e,t,r){return this.Vi.removeReference(r,t),this.gi.add(r.toString()),O.resolve()}markPotentiallyOrphaned(e,t){return this.gi.add(t.toString()),O.resolve()}removeTarget(e,t){this.Vi.Hr(t.targetId).forEach(e=>this.gi.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.gi.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}di(){this.mi=new Set}Ai(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return O.forEach(this.gi,e=>{let t=D.fromPath(e);return this.pi(r,t).next(e=>{e||n.removeEntry(t,P.min())})}).next(()=>(this.mi=null,n.apply(r)))}updateLimboDocument(e,t){return this.pi(e,t).next(e=>{e?this.gi.delete(t.toString()):this.gi.add(t.toString())})}Ii(e){return 0}pi(e,t){return O.or([()=>O.resolve(this.Vi.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ri(e,t)])}}class XT{constructor(e,t){this.persistence=e,this.yi=new Dw(e=>Uv(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=kT(this,t)}static fi(e,t){return new XT(e,t)}di(){}Ai(e){return O.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}pr(e){let r=this.br(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}br(e){let t=0;return this.yr(e,e=>{t++}).next(()=>t)}yr(r,n){return O.forEach(this.yi,(e,t)=>this.Dr(r,e,t).next(e=>e?O.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.si(e,t=>this.Dr(e,t,r).next(e=>{e||(n++,i.removeEntry(t,P.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.yi.set(t,e.currentSequenceNumber),O.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.yi.set(r,e.currentSequenceNumber),O.resolve()}removeReference(e,t,r){return this.yi.set(r,e.currentSequenceNumber),O.resolve()}updateLimboDocument(e,t){return this.yi.set(t,e.currentSequenceNumber),O.resolve()}Ii(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(Ey(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=py(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return oy(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Q_(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw k(13486,{value:e})}}(e.data.value)),t}Dr(e,t,r){return O.or([()=>this.persistence.Ri(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.yi.get(t);return O.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class ZT{constructor(e){this.serializer=e}q(t,e,r,n){let s=new yv("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(jv),(i=t).createObjectStore(Kv,{keyPath:"userId"}),i.createObjectStore(Wv,{keyPath:Hv,autoIncrement:!0}).createIndex(Gv,$v,{unique:!0}),i.createObjectStore(Xv),e0(t),t.createObjectStore(Bv));let a=O.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(u_),i.deleteObjectStore(o_),i.deleteObjectStore(g_),e0(t)),a=a.next(()=>{return e=s,t=e.store(g_),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:P.min().toTimestamp(),targetCount:0},t.put(f_,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(Wv).J().next(e=>{n.deleteObjectStore(Wv),n.createObjectStore(Wv,{keyPath:Hv,autoIncrement:!0}).createIndex(Gv,$v,{unique:!0});let t=i.store(Wv),r=e.map(e=>t.put(e));return O.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(__,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.wi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(s_),this.bi(s)))),r<7&&7<=n&&(a=a.next(()=>this.Si(s))),r<8&&8<=n&&(a=a.next(()=>this.Di(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.Ci(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(y_,{keyPath:"bundleId"}),t.createObjectStore(w_,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(P_,{keyPath:x_})).createIndex(D_,O_,{unique:!1}),e.createIndex(M_,L_,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Zv,{keyPath:e_})).createIndex(t_,r_),e.createIndex(n_,i_)}).next(()=>this.Fi(t,s)).next(()=>t.deleteObjectStore(Bv))),r<14&&14<=n&&(a=a.next(()=>this.Mi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(b_,{keyPath:"indexId",autoIncrement:!0}).createIndex(I_,"collectionGroup",{unique:!1}),e.createObjectStore(T_,{keyPath:E_}).createIndex(C_,k_,{unique:!1}),e.createObjectStore(S_,{keyPath:A_}).createIndex(N_,R_,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(T_).clear()}).next(()=>{e.objectStore(S_).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(F_,{keyPath:"name"})})),a=r<18&&18<=n&&ge()?a.next(()=>{e.objectStore(T_).clear()}).next(()=>{e.objectStore(S_).clear()}):a}bi(t){let r=0;return t.store(Bv).te((e,t)=>{r+=uT(t)}).next(()=>{var e={byteSize:r};return t.store(s_).put(a_,e)})}wi(n){let e=n.store(Kv),t=n.store(Wv);return e.J().next(e=>O.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,Dv],[r.userId,r.lastAcknowledgedBatchId]);return t.J(Gv,e).next(e=>O.forEach(e,e=>{S(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=yI(this.serializer,e);return hT(n,r.userId,t).next(()=>{})}))}))}Si(e){let a=e.store(u_),t=e.store(Bv);return e.store(g_).get(f_).next(i=>{let s=[];return t.te((e,t)=>{let r=new x(e),n=[0,Uv(r)];s.push(a.get(n).next(e=>e?O.resolve():(e=r,a.put({targetId:0,path:Uv(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>O.waitFor(s))})}Di(e,t){e.createObjectStore(m_,{keyPath:v_});let n=t.store(m_),i=new XI,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Uv(t)})}};return t.store(Bv).te({ee:!0},(e,t)=>{var r=new x(e);return s(r.popLast())}).next(()=>t.store(Xv).te({ee:!0},([,e],t)=>{var r=qv(e);return s(r.popLast())}))}Ci(e){let n=e.store(o_);return n.te((e,t)=>{var r=wI(t),r=bI(this.serializer,r);return n.put(r)})}Fi(e,s){let t=s.store(Bv),a=[];return t.te((e,t)=>{var r,n=s.store(Zv),i=((r=t).document?new D(x.fromString(r.document.name).popFirst(5)):r.noDocument?D.fromSegments(r.noDocument.path):r.unknownDocument?D.fromSegments(r.unknownDocument.path):k(36783)).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>O.waitFor(a))}Mi(e,s){let t=s.store(Wv),a=PT(this.serializer),o=new QT(JT.fi,this.serializer.wt);return t.J().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:V();yI(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),O.forEach(n,(e,t)=>{var r=new Rm(t),n=NI.bt(this.serializer,r),i=o.getIndexManager(r),r=cT.bt(r,this.serializer,i,o.referenceDelegate);return new VT(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new H_(s,xv.le),e).next()})})}}function e0(e){e.createObjectStore(u_,{keyPath:c_}).createIndex(d_,p_,{unique:!0}),e.createObjectStore(o_,{keyPath:"targetId"}).createIndex(l_,h_,{unique:!0}),e.createObjectStore(g_)}let t0="IndexedDbPersistence",r0="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class n0{constructor(e,t,r,n,i,s,a,o,l,h,u=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.xi=i,this.window=s,this.document=a,this.Oi=l,this.Ni=h,this.Bi=u,this.li=null,this.hi=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Li=null,this.inForeground=!1,this.ki=null,this.qi=null,this.Qi=Number.NEGATIVE_INFINITY,this.$i=e=>Promise.resolve(),!n0.C())throw new N(A.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new ST(this,n),this.Ui=t+"main",this.serializer=new fI(o),this.Ki=new wv(this.Ui,this.Bi,new ZT(this.serializer)),this.Pi=new PI,this.Ti=new vT(this.referenceDelegate,this.serializer),this.remoteDocumentCache=PT(this.serializer),this.Ei=new kI,this.window&&this.window.localStorage?this.Wi=this.window.localStorage:(this.Wi=null,!1===h&&Om(t0,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Gi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.zi(),this.ji(),this.Hi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Ti.getHighestSequenceNumber(e));throw new N(A.FAILED_PRECONDITION,r0)}).then(e=>{this.li=new xv(e,this.Oi)}).then(()=>{this.hi=!0}).catch(e=>(this.Ki&&this.Ki.close(),Promise.reject(e)))}Ji(t){return this.$i=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ki.U(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.xi.enqueueAndForget(async()=>{this.started&&await this.Gi()}))}Gi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>s0(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Yi(t).next(e=>{e||(this.isPrimary=!1,this.xi.enqueueRetryable(()=>this.$i(!1)))})}).next(()=>this.Zi(t)).next(e=>this.isPrimary&&!e?this.Xi(t).next(()=>!1):!!e&&this.es(t).next(()=>!0))).catch(e=>{if(Ev(e))return C(t0,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return C(t0,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.xi.enqueueRetryable(()=>this.$i(e)),this.isPrimary=e})}Yi(e){return i0(e).get(zv).next(e=>O.resolve(this.ts(e)))}ns(e){return s0(e).delete(this.clientId)}async rs(){if(this.isPrimary&&!this.ss(this.Qi,18e5)){this.Qi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=G_(e,__);return n.J().next(e=>{let t=this._s(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return O.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Wi)for(var t of e)this.Wi.removeItem(this.us(t.clientId))}}Hi(){this.qi=this.xi.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Gi().then(()=>this.rs()).then(()=>this.Hi()))}ts(e){return!!e&&e.ownerId===this.clientId}Zi(t){return this.Ni?O.resolve(!0):i0(t).get(zv).next(e=>{if(null!==e&&this.ss(e.leaseTimestampMs,5e3)&&!this.cs(e.ownerId)){if(this.ts(e)&&this.networkEnabled)return!0;if(!this.ts(e)){if(e.allowTabSynchronization)return!1;throw new N(A.FAILED_PRECONDITION,r0)}}return!(!this.networkEnabled||!this.inForeground)||s0(t).J().next(e=>void 0===this._s(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&C(t0,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.hi=!1,this.ls(),this.qi&&(this.qi.cancel(),this.qi=null),this.hs(),this.Ps(),await this.Ki.runTransaction("shutdown","readwrite",[jv,__],e=>{let t=new H_(e,xv.le);return this.Xi(t).next(()=>this.ns(t))}),this.Ki.close(),this.Ts()}_s(e,t){return e.filter(e=>this.ss(e.updateTimeMs,t)&&!this.cs(e.clientId))}Is(){return this.runTransaction("getActiveClients","readonly",e=>s0(e).J().next(e=>this._s(e,18e5).map(e=>e.clientId)))}get started(){return this.hi}getGlobalsCache(){return this.Pi}getMutationQueue(e,t){return cT.bt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Ti}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new tT(e,this.serializer.wt.databaseId)}getDocumentOverlayCache(e){return NI.bt(this.serializer,e)}getBundleCache(){return this.Ei}runTransaction(t,r,n){C(t0,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.Bi)?W_:17===e?K_:16===e?z_:15===e?j_:14===e?B_:13===e?q_:12===e?V_:11===e?U_:void k(60245);let a;return this.Ki.runTransaction(t,i,s,e=>(a=new H_(e,this.li?this.li.next():xv.le),"readwrite-primary"===r?this.Yi(a).next(e=>!!e||this.Zi(a)).next(e=>{if(e)return n(a);throw Om(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.xi.enqueueRetryable(()=>this.$i(!1)),new N(A.FAILED_PRECONDITION,gv)}).next(e=>this.es(a).next(()=>e)):this.Es(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Es(e){return i0(e).get(zv).next(e=>{if(null!==e&&this.ss(e.leaseTimestampMs,5e3)&&!this.cs(e.ownerId)&&!this.ts(e)&&!(this.Ni||this.allowTabSynchronization&&e.allowTabSynchronization))throw new N(A.FAILED_PRECONDITION,r0)})}es(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return i0(e).put(zv,t)}static C(){return wv.C()}Xi(e){let t=i0(e);return t.get(zv).next(e=>this.ts(e)?(C(t0,"Releasing primary lease."),t.delete(zv)):O.resolve())}ss(e,t){var r=Date.now();return!(e<r-t||r<e&&(Om(`Detected an update time that is in the future: ${e} > `+r),1))}zi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.ki=()=>{this.xi.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Gi()))},this.document.addEventListener("visibilitychange",this.ki),this.inForeground="visible"===this.document.visibilityState)}hs(){this.ki&&(this.document.removeEventListener("visibilitychange",this.ki),this.ki=null)}ji(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Li=()=>{this.ls();var e=/(?:Version|Mobile)\/1[456]/;fe()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.xi.enterRestrictedMode(!0),this.xi.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Li))}Ps(){this.Li&&(this.window.removeEventListener("pagehide",this.Li),this.Li=null)}cs(e){var t;try{var r=null!==(null==(t=this.Wi)?void 0:t.getItem(this.us(e)));return C(t0,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return Om(t0,"Failed to get zombied client id.",e),!1}}ls(){if(this.Wi)try{this.Wi.setItem(this.us(this.clientId),String(Date.now()))}catch(e){Om("Failed to set zombie client id.",e)}}Ts(){if(this.Wi)try{this.Wi.removeItem(this.us(this.clientId))}catch(e){}}us(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function i0(e){return G_(e,jv)}function s0(e){return G_(e,__)}function a0(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class o0{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.ds=r,this.As=n}static Rs(e,t){let r=V(),n=V();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new o0(e,t.fromCache,r,n)}}class l0{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class h0{constructor(){this.Vs=!1,this.fs=!1,this.gs=100,this.ps=fe()?8:0<bv(ae())?6:4}initialize(e,t){this.ys=e,this.indexManager=t,this.Vs=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.ws(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.bs(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new l0;return this.Ss(r,n,t).next(e=>{if(i.result=e,this.fs)return this.Ds(r,n,t,e.size)})}}).next(()=>i.result)}Ds(e,t,r,n){return r.documentReadCount<this.gs?(Dm()<=c.DEBUG&&C("QueryEngine","SDK will not create cache indexes for query:",Nw(t),"since it only creates cache indexes for collection contains","more than or equal to",this.gs,"documents"),O.resolve()):(Dm()<=c.DEBUG&&C("QueryEngine","Query:",Nw(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ps*n?(Dm()<=c.DEBUG&&C("QueryEngine","The SDK decides to create cache indexes for query:",Nw(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Ew(t))):O.resolve())}ws(i,s){if(bw(s))return O.resolve(null);let t=Ew(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=kw(s,null,"F"),t=Ew(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=V(...e);return this.ys.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.vs(s,r);return this.Cs(s,t,n,e.readTime)?this.ws(i,kw(s,null,"F")):this.Fs(i,t,s,e)}))})))}bs(r,n,i,s){return bw(n)||s.isEqual(P.min())?O.resolve(null):this.ys.getDocuments(r,i).next(e=>{var t=this.vs(n,e);return this.Cs(n,t,i,s)?O.resolve(null):(Dm()<=c.DEBUG&&C("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),Nw(n)),this.Fs(r,t,n,cv(s,sv)).next(e=>e))})}vs(r,e){let n=new L(xw(r));return e.forEach((e,t)=>{Rw(r,t)&&(n=n.add(t))}),n}Cs(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}Ss(e,t,r){return Dm()<=c.DEBUG&&C("QueryEngine","Using full collection scan to execute query:",Nw(t)),this.ys.getDocumentsMatchingQuery(e,t,pv.min(),r)}Fs(e,r,t,n){return this.ys.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let u0="LocalStore",c0=3e8;class d0{constructor(e,t,r,n){this.persistence=e,this.Ms=t,this.serializer=n,this.xs=new M(R),this.Os=new Dw(e=>dw(e),pw),this.Ns=new Map,this.Bs=e.getRemoteDocumentCache(),this.Ti=e.getTargetCache(),this.Ei=e.getBundleCache(),this.Ls(r)}Ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new VT(this.Bs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Bs.setIndexManager(this.indexManager),this.Ms.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.xs))}}function p0(e,t,r,n){return new d0(e,t,r,n)}async function f0(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.Ls(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=V();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({ks:e,removedBatchIds:t,addedBatchIds:r}))})})}function g0(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.Bs.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=O.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);S(null!==t,48541),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=V();for(let r=0;r<e.mutationResults.length;++r)0<e.mutationResults[r].transformResults.length&&(t=t.add(e.batch.mutations[r].key));return t})(n))).next(()=>i.localDocuments.getDocuments(e,t))})}function m0(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Ti.getLastRemoteSnapshotVersion(e))}function v0(e,h){let u=e,c=h.snapshotVersion,d=u.xs;return u.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=u.Bs.newChangeBuffer({trackRemovals:!0}),l=(d=u.xs,[]),t=(h.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(u.Ti.removeMatchingKeys(o,t.removedDocuments,r).next(()=>u.Ti.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==h.targetMismatches.get(r)?e=e.withResumeToken(ny.EMPTY_BYTE_STRING,P.min()).withLastLimboFreeSnapshotVersion(P.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,c)),d=d.insert(r,e),n=a,i=e,s=t,(0===n.resumeToken.approximateByteSize()||i.snapshotVersion.toMicroseconds()-n.snapshotVersion.toMicroseconds()>=c0||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(u.Ti.updateTargetData(o,e))}}),Ow),r=V();if(h.documentUpdates.forEach(e=>{h.resolvedLimboDocuments.has(e)&&l.push(u.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(_0(o,e,h.documentUpdates).next(e=>{t=e.qs,r=e.Qs})),!c.isEqual(P.min())){let e=u.Ti.getLastRemoteSnapshotVersion(o).next(e=>u.Ti.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return O.waitFor(l).next(()=>e.apply(o)).next(()=>u.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(u.xs=d,e))}function _0(e,s,t){let r=V(),a=V();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=Ow;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(P.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0<t.version.compareTo(r.version)||0===t.version.compareTo(r.version)&&r.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):C(u0,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{qs:i,Qs:a}})}function y0(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Ti.getTargetData(t,n).next(e=>e?(r=e,O.resolve(r)):i.Ti.allocateTargetId(t).next(e=>(r=new pI(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Ti.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.xs.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.xs=i.xs.insert(e.targetId,e),i.Os.set(n,e.targetId)),e})}async function w0(e,t,r){let n=e,i=n.xs.get(t),s=r?"readwrite":"readwrite-primary";try{r||await n.persistence.runTransaction("Release target",s,e=>n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!Ev(e))throw e;C(u0,`Failed to update sequence numbers for target ${t}: `+e)}n.xs=n.xs.remove(t),n.Os.delete(i.target)}function b0(e,a,o){let l=e,h=P.min(),u=V();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=Ew(a),(void 0!==(s=(i=e).Os.get(n))?O.resolve(i.xs.get(s)):i.Ti.getTargetData(r,n)).next(e=>{if(e)return h=e.lastLimboFreeSnapshotVersion,l.Ti.getMatchingKeysForTargetId(t,e.targetId).next(e=>{u=e})}).next(()=>l.Ms.getDocumentsMatchingQuery(t,a,o?h:P.min(),o?u:V())).next(e=>(E0(l,Pw(a),e),{documents:e,$s:u}));var e,r,n,i,s})}function I0(e,t){let r=e,n=r.Ti,i=r.xs.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.Rt(e,t).next(e=>e?e.target:null))}function T0(e,t){let r=e,n=r.Ns.get(t)||P.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.Bs.getAllFromCollectionGroup(e,t,cv(n,sv),Number.MAX_SAFE_INTEGER)).then(e=>(E0(r,t,e),e))}function E0(e,t,r){let n=e.Ns.get(t)||P.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Ns.set(t,n)}let C0="firestore_clients";function k0(e,t){return C0+`_${e}_`+t}let S0="firestore_mutations";function A0(e,t,r){let n=S0+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let N0="firestore_targets";function R0(e,t){return N0+`_${e}_`+t}let P0="SharedClientState";class x0{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Gs(e,t,r){var n=JSON.parse(r);let i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new N(n.error.code,n.error.message)),s?new x0(e,t,n.state,i):(Om(P0,`Failed to parse mutation state for ID '${t}': `+r),null)}zs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class D0{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Gs(e,t){var r=JSON.parse(t);let n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new N(r.error.code,r.error.message)),i?new D0(e,r.state,n):(Om(P0,`Failed to parse target state for ID '${e}': `+t),null)}zs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class O0{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Gs(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=Bw;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=Lv(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new O0(e,i):(Om(P0,`Failed to parse client data for instance '${e}': `+t),null)}}class M0{constructor(e,t){this.clientId=e,this.onlineState=t}static Gs(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new M0(t.clientId,t.onlineState):(Om(P0,"Failed to parse online state: "+e),null)}}class L0{constructor(){this.activeTargetIds=Bw}js(e){this.activeTargetIds=this.activeTargetIds.add(e)}Hs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}zs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class F0{constructor(e,t,r,n,i){this.window=e,this.xi=t,this.persistenceKey=r,this.Js=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Ys=this.Zs.bind(this),this.Xs=new M(R),this.started=!1,this.eo=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.no=k0(this.persistenceKey,this.Js),this.ro="firestore_sequence_number_"+this.persistenceKey,this.Xs=this.Xs.insert(this.Js,new L0),this.io=new RegExp(`^${C0}_${s}_([^_]*)$`),this.so=new RegExp(`^${S0}_${s}_(\\d+)(?:_(.*))?$`),this.oo=new RegExp(`^${N0}_${s}_(\\d+)$`),this._o="firestore_online_state_"+this.persistenceKey,this.ao="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Ys)}static C(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.Is();for(let r of e)if(r!==this.Js){let e=this.getItem(k0(this.persistenceKey,r));var t;e&&(t=O0.Gs(r,e))&&(this.Xs=this.Xs.insert(t.clientId,t))}this.uo();let r=this.storage.getItem(this._o);if(r){let e=this.co(r);e&&this.lo(e)}for(let e of this.eo)this.Zs(e);this.eo=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.ro,JSON.stringify(e))}getAllActiveQueryTargets(){return this.ho(this.Xs)}isActiveQueryTarget(r){let n=!1;return this.Xs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.Po(e,"pending")}updateMutationState(e,t,r){this.Po(e,t,r),this.To(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(R0(this.persistenceKey,t));var n;e&&(n=D0.Gs(t,e))&&(r=n.state)}return e&&this.Io.js(t),this.uo(),r}removeLocalQueryTarget(e){this.Io.Hs(e),this.uo()}isLocalQueryTarget(e){return this.Io.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(R0(this.persistenceKey,e))}updateQueryState(e,t,r){this.Eo(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.To(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Ao(e)}notifyBundleLoaded(e){this.Ro(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Ys),this.removeItem(this.no),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return C(P0,"READ",e,t),t}setItem(e,t){C(P0,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){C(P0,"REMOVE",e),this.storage.removeItem(e)}Zs(e){let t=e;t.storageArea===this.storage&&(C(P0,"EVENT",t.key,t.newValue),t.key===this.no?Om("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.xi.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.io.test(t.key))return null==t.newValue?(e=this.Vo(t.key),this.mo(e,null)):(e=this.fo(t.key,t.newValue))?this.mo(e.clientId,e):void 0;if(this.so.test(t.key)){if(null!==t.newValue){var e=this.po(t.key,t.newValue);if(e)return this.yo(e)}}else if(this.oo.test(t.key)){if(null!==t.newValue){var e=this.wo(t.key,t.newValue);if(e)return this.bo(e)}}else if(t.key===this._o){if(null!==t.newValue){var e=this.co(t.newValue);if(e)return this.lo(e)}}else t.key===this.ro?(e=(e=>{let t=xv.le;if(null!=e)try{var r=JSON.parse(e);S("number"==typeof r,30636,{So:e}),t=r}catch(e){Om(P0,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==xv.le&&this.sequenceNumberHandler(e):t.key===this.ao&&(e=this.Do(t.newValue),await Promise.all(e.map(e=>this.syncEngine.vo(e))))}}else this.eo.push(t)}))}get Io(){return this.Xs.get(this.Js)}uo(){this.setItem(this.no,this.Io.zs())}Po(e,t,r){var n=new x0(this.currentUser,e,t,r),i=A0(this.persistenceKey,this.currentUser,e);this.setItem(i,n.zs())}To(e){var t=A0(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Ao(e){var t={clientId:this.Js,onlineState:e};this.storage.setItem(this._o,JSON.stringify(t))}Eo(e,t,r){var n=R0(this.persistenceKey,e),i=new D0(e,t,r);this.setItem(n,i.zs())}Ro(e){var t=JSON.stringify(Array.from(e));this.setItem(this.ao,t)}Vo(e){var t=this.io.exec(e);return t?t[1]:null}fo(e,t){var r=this.Vo(e);return O0.Gs(r,t)}po(e,t){var r=this.so.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return x0.Gs(new Rm(r),n,t)}wo(e,t){var r=this.oo.exec(e),r=Number(r[1]);return D0.Gs(r,t)}co(e){return M0.Gs(e)}Do(e){return JSON.parse(e)}async yo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Co(e.batchId,e.state,e.error);C(P0,"Ignoring mutation for non-active user "+e.user.uid)}bo(e){return this.syncEngine.Fo(e.targetId,e.state,e.error)}mo(e,t){let r=t?this.Xs.insert(e,t):this.Xs.remove(e),n=this.ho(this.Xs),i=this.ho(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Mo(s,a).then(()=>{this.Xs=r})}lo(e){this.Xs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}ho(e){let r=Bw;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class U0{constructor(){this.xo=new L0,this.Oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.xo.js(e),this.Oo[e]||"not-current"}updateQueryState(e,t,r){this.Oo[e]=t}removeLocalQueryTarget(e){this.xo.Hs(e)}isLocalQueryTarget(e){return this.xo.activeTargetIds.has(e)}clearQueryState(e){delete this.Oo[e]}getAllActiveQueryTargets(){return this.xo.activeTargetIds}isActiveQueryTarget(e){return this.xo.activeTargetIds.has(e)}start(){return this.xo=new L0,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class V0{No(e){}shutdown(){}}let q0="ConnectivityMonitor";class B0{constructor(){this.Bo=()=>this.Lo(),this.ko=()=>this.qo(),this.Qo=[],this.$o()}No(e){this.Qo.push(e)}shutdown(){window.removeEventListener("online",this.Bo),window.removeEventListener("offline",this.ko)}$o(){window.addEventListener("online",this.Bo),window.addEventListener("offline",this.ko)}Lo(){C(q0,"Network connectivity changed: AVAILABLE");for(var e of this.Qo)e(0)}qo(){C(q0,"Network connectivity changed: UNAVAILABLE");for(var e of this.Qo)e(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let j0=null;function z0(){return null===j0?j0=268435456+Math.round(2147483648*Math.random()):j0++,"0x"+j0.toString(16)}let K0="RestConnection",W0={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class H0{constructor(e){this.Zo=e.Zo,this.Xo=e.Xo}e_(e){this.t_=e}n_(e){this.r_=e}i_(e){this.s_=e}onMessage(e){this.o_=e}close(){this.Xo()}send(e){this.Zo(e)}__(){this.t_()}a_(){this.r_()}u_(e){this.s_(e)}c_(e){this.o_(e)}}let G0="WebChannelConnection";class $0 extends class{get Uo(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Ko=t+"://"+e.host,this.Wo=`projects/${r}/databases/`+n,this.Go=this.databaseId.database===my?"project_id="+r:`project_id=${r}&database_id=`+n}zo(t,e,r,n,i){let s=z0(),a=this.jo(t,e.toUriEncodedString());C(K0,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Wo,"x-goog-request-params":this.Go},l=(this.Ho(o,n,i),new URL(a)).host,l=ee(l);return this.Jo(t,a,o,r,l).then(e=>(C(K0,`Received RPC '${t}' ${s}: `,e),e),e=>{throw Mm(K0,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Yo(e,t,r,n,i,s){return this.zo(e,t,r,n,i)}Ho(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+Pm,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}jo(e,t){var r=W0[e];return this.Ko+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.l_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}Jo(l,t,r,n,e){let h=z0();return new Promise((s,a)=>{let o=new vm;o.setWithCredentials(!0),o.listenOnce(ym.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case wm.NO_ERROR:var e=o.getResponseJson();C(G0,`XHR for RPC '${l}' ${h} received:`,JSON.stringify(e)),s(e);break;case wm.TIMEOUT:C(G0,`RPC '${l}' ${h} timed out`),a(new N(A.DEADLINE_EXCEEDED,"Request time out"));break;case wm.HTTP_ERROR:var t=o.getStatus();if(C(G0,`RPC '${l}' ${h} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=null==(e=Array.isArray(e)?e[0]:e)?void 0:e.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(A).indexOf(i)?i:A.UNKNOWN;a(new N(e,r.message))}else a(new N(A.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new N(A.UNAVAILABLE,"Connection failed."));break;default:k(9055,{h_:l,streamId:h,P_:o.getLastErrorCode(),T_:o.getLastError()})}}finally{C(G0,`RPC '${l}' ${h} completed.`)}var n,i});var e=JSON.stringify(n);C(G0,`RPC '${l}' ${h} sending request:`,n),o.send(t,"POST",e,r,15)})}I_(i,e,t){let s=z0(),r=[this.Ko,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Em(),a=Tm(),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},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Ho(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var h=r.join("");C(G0,`Creating RPC '${i}' stream ${s}: `+h,o);let u=n.createWebChannel(h,o),c=(this.E_(u),!1),d=!1,p=new H0({Zo:e=>{d?C(G0,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(C(G0,`Opening RPC '${i}' stream ${s} transport.`),u.open(),c=!0),C(G0,`RPC '${i}' stream ${s} sending:`,e),u.send(e))},Xo:()=>u.close()}),f=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(u,_m.EventType.OPEN,()=>{d||(C(G0,`RPC '${i}' stream ${s} transport opened.`),p.__())}),f(u,_m.EventType.CLOSE,()=>{d||(d=!0,C(G0,`RPC '${i}' stream ${s} transport closed`),p.u_(),this.d_(u))}),f(u,_m.EventType.ERROR,e=>{d||(d=!0,Mm(G0,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),p.u_(new N(A.UNAVAILABLE,"The operation could not be completed")))}),f(u,_m.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(S(!!t,16349),t),n=(null==n?void 0:n.error)||(null==(n=n[0])?void 0:n.error);if(n){C(G0,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=Cm[e];if(void 0!==t)return bb(t)})(e),r=n.message;void 0===t&&(t=A.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,p.u_(new N(t,r)),u.close()}else C(G0,`RPC '${i}' stream ${s} received:`,t),p.c_(t)}}),f(a,Im.STAT_EVENT,e=>{e.stat===bm.PROXY?C(G0,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===bm.NOPROXY&&C(G0,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{p.a_()},0),p}terminate(){this.l_.forEach(e=>e.close()),this.l_=[]}E_(e){this.l_.push(e)}d_(t){this.l_=this.l_.filter(e=>e===t)}}function Q0(){return"undefined"!=typeof window?window:null}function Y0(){return"undefined"!=typeof document?document:null}function J0(e){return new Vb(e,!0)}class X0{constructor(e,t,r=1e3,n=1.5,i=6e4){this.xi=e,this.timerId=t,this.A_=r,this.R_=n,this.V_=i,this.m_=0,this.f_=null,this.g_=Date.now(),this.reset()}reset(){this.m_=0}p_(){this.m_=this.V_}y_(e){this.cancel();var t=Math.floor(this.m_+this.w_()),r=Math.max(0,Date.now()-this.g_),n=Math.max(0,t-r);0<n&&C("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.m_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.f_=this.xi.enqueueAfterDelay(this.timerId,n,()=>(this.g_=Date.now(),e())),this.m_*=this.R_,this.m_<this.A_&&(this.m_=this.A_),this.m_>this.V_&&(this.m_=this.V_)}b_(){null!==this.f_&&(this.f_.skipDelay(),this.f_=null)}cancel(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}w_(){return(Math.random()-.5)*this.m_}}let Z0="PersistentStream";class eE{constructor(e,t,r,n,i,s,a,o){this.xi=e,this.S_=r,this.D_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.v_=0,this.C_=null,this.F_=null,this.stream=null,this.M_=0,this.x_=new X0(e,t)}O_(){return 1===this.state||5===this.state||this.N_()}N_(){return 2===this.state||3===this.state}start(){this.M_=0,4!==this.state?this.auth():this.B_()}async stop(){this.O_()&&await this.close(0)}L_(){this.state=0,this.x_.reset()}k_(){this.N_()&&null===this.C_&&(this.C_=this.xi.enqueueAfterDelay(this.S_,6e4,()=>this.q_()))}Q_(e){this.U_(),this.stream.send(e)}async q_(){if(this.N_())return this.close(0)}U_(){this.C_&&(this.C_.cancel(),this.C_=null)}K_(){this.F_&&(this.F_.cancel(),this.F_=null)}async close(e,t){this.U_(),this.K_(),this.x_.cancel(),this.v_++,4!==e?this.x_.reset():t&&t.code===A.RESOURCE_EXHAUSTED?(Om(t.toString()),Om("Using maximum backoff delay to prevent overloading the backend."),this.x_.p_()):t&&t.code===A.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.W_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.i_(t)}W_(){}auth(){this.state=1;let e=this.G_(this.v_),r=this.v_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.v_===r&&this.z_(e,t)},t=>{e(()=>{var e=new N(A.UNKNOWN,"Fetching auth token failed: "+t.message);return this.j_(e)})})}z_(e,t){let r=this.G_(this.v_);this.stream=this.H_(e,t),this.stream.e_(()=>{r(()=>this.listener.e_())}),this.stream.n_(()=>{r(()=>(this.state=2,this.F_=this.xi.enqueueAfterDelay(this.D_,1e4,()=>(this.N_()&&(this.state=3),Promise.resolve())),this.listener.n_()))}),this.stream.i_(e=>{r(()=>this.j_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.M_?this.J_(e):this.onNext(e))})}B_(){this.state=5,this.x_.y_(async()=>{this.state=0,this.start()})}j_(e){return C(Z0,"close with error: "+e),this.stream=null,this.close(4,e)}G_(t){return e=>{this.xi.enqueueAndForget(()=>this.v_===t?e():(C(Z0,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class tE extends eE{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}H_(e,t){return this.connection.I_("Listen",e,t)}J_(e){return this.onNext(e)}onNext(e){this.x_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(l=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===l?1:"REMOVE"===l?2:"CURRENT"===l?3:"RESET"===l?4:k(39313,{state:l}),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(S(void 0===l||"string"==typeof l,58123),ny.fromBase64String(l||"")):(S(void 0===l||l instanceof Buffer||l instanceof Uint8Array,16193),ny.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?A.UNKNOWN:bb(l.code),new N(a,l.message||""));r=new Pb(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,$b(e,n.document.name)),s=zb(n.document.updateTime),a=n.document.createTime?zb(n.document.createTime):P.min(),o=new zy({mapValue:{fields:n.document.fields}}),i=Ky.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new Nb(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,$b(e,n.document)),o=n.readTime?zb(n.readTime):P.min(),i=Ky.newNoDocument(s,o),s=n.removedTargetIds||[];r=new Nb([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,$b(e,o.document)),s=o.removedTargetIds||[];r=new Nb([],s,n,null)}else{if(!("filter"in t))return k(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new yb(i,o),n=e.targetId;r=new Rb(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?zb(r.readTime):P.min();return this.listener.Y_(t,r)}Z_(e){var t={},r=(t.database=Jb(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=fw(e)?{documents:iI(t,e)}:{query:sI(t,e).gt}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=jb(t,r.resumeToken);let e=qb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(P.min())){n.readTime=Bb(t,r.snapshotVersion.toTimestamp());let e=qb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),oI(this.serializer,e));r&&(t.labels=r),this.Q_(t)}X_(e){var t={};t.database=Jb(this.serializer),t.removeTarget=e,this.Q_(t)}}class rE extends eE{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get ea(){return 0<this.M_}start(){this.lastStreamToken=void 0,super.start()}W_(){this.ea&&this.ta([])}H_(e,t){return this.connection.I_("Write",e,t)}J_(e){return S(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,S(!e.writeResults||0===e.writeResults.length,55816),this.listener.na()}onNext(e){S(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.x_.reset();var t=nI(e.writeResults,e.commitTime),r=zb(e.commitTime);return this.listener.ra(r,t)}ia(){var e={};e.database=Jb(this.serializer),this.Q_(e)}ta(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>tI(this.serializer,e))};this.Q_(t)}}class nE extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.sa=!1}oa(){if(this.sa)throw new N(A.FAILED_PRECONDITION,"The client has already been terminated.")}zo(r,n,i,s){return this.oa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.zo(r,Wb(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===A.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new N(A.UNKNOWN,e.toString())})}Yo(r,n,i,s,a){return this.oa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Yo(r,Wb(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===A.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new N(A.UNKNOWN,e.toString())})}terminate(){this.sa=!0,this.connection.terminate()}}class iE{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this._a=0,this.aa=null,this.ua=!0}ca(){0===this._a&&(this.la("Unknown"),this.aa=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.aa=null,this.ha("Backend didn't respond within 10 seconds."),this.la("Offline"),Promise.resolve())))}Pa(e){"Online"===this.state?this.la("Unknown"):(this._a++,1<=this._a&&(this.Ta(),this.ha("Connection failed 1 times. Most recent error: "+e.toString()),this.la("Offline")))}set(e){this.Ta(),this._a=0,"Online"===e&&(this.ua=!1),this.la(e)}la(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}ha(e){var t=`Could not reach Cloud Firestore backend. ${e}
|
|
29
|
+
This 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.ua?(Om(t),this.ua=!1):C("OnlineStateTracker",t)}Ta(){null!==this.aa&&(this.aa.cancel(),this.aa=null)}}let sE="RemoteStore";class aE{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ia=[],this.Ea=new Map,this.da=new Set,this.Aa=[],this.Ra=i,this.Ra.No(e=>{r.enqueueAndForget(async()=>{var e;gE(this)&&(C(sE,"Restarting streams for network reachability change."),(e=this).da.add(4),await lE(e),e.Va.set("Unknown"),e.da.delete(4),await oE(e))})}),this.Va=new iE(r,n)}}async function oE(e){if(gE(e))for(var t of e.Aa)await t(!0)}async function lE(e){for(var t of e.Aa)await t(!1)}function hE(e,t){var r=e;r.Ea.has(t.targetId)||(r.Ea.set(t.targetId,t),fE(r)?pE(r):EE(r).N_()&&cE(r,t))}function uE(e,t){var r=e,n=EE(r);r.Ea.delete(t),n.N_()&&dE(r,t),0===r.Ea.size&&(n.N_()?n.k_():gE(r)&&r.Va.set("Unknown"))}function cE(e,t){var r;e.ma.Ke(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(P.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),EE(e).Z_(t)}function dE(e,t){e.ma.Ke(t),EE(e).X_(t)}function pE(t){t.ma=new Db({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),Rt:e=>t.Ea.get(e)||null,Pt:()=>t.datastore.serializer.databaseId}),EE(t).start(),t.Va.ca()}function fE(e){return gE(e)&&!EE(e).O_()&&0<e.Ea.size}function gE(e){return 0===e.da.size}function mE(e){e.ma=void 0}async function vE(e,t,r){if(!Ev(t))throw t;e.da.add(1),await lE(e),e.Va.set("Offline"),r=r||(()=>m0(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{C(sE,"Retrying IndexedDB access"),await r(),e.da.delete(1),await oE(e)})}function _E(t,r){return r().catch(e=>vE(t,e,r))}async function yE(e){var t,r,n,i,s=e,a=CE(s);let o=0<s.Ia.length?s.Ia[s.Ia.length-1].batchId:Dv;for(;gE(i=s)&&i.Ia.length<10;)try{let e=await((e,t)=>{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=Dv),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.Ia.length&&a.k_();break}o=e.batchId,t=s,r=e,n=void 0,t.Ia.push(r),(n=CE(t)).N_()&&n.ea&&n.ta(r.mutations)}catch(e){await vE(s,e)}wE(s)&&bE(s)}function wE(e){return gE(e)&&!CE(e).O_()&&0<e.Ia.length}function bE(e){CE(e).start()}async function IE(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),C(sE,"RemoteStore received new credentials"),gE(r));r.da.add(3),await lE(r),n&&r.Va.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.da.delete(3),await oE(r)}async function TE(e,t){var r=e;t?(r.da.delete(2),await oE(r)):(r.da.add(2),await lE(r),r.Va.set("Unknown"))}function EE(t){return t.fa||(t.fa=(e=t.datastore,r=t.asyncQueue,n={e_:(async function(e){e.Va.set("Online")}).bind(null,t),n_:(async function(r){r.Ea.forEach((e,t)=>{cE(r,e)})}).bind(null,t),i_:(async function(e,t){mE(e),fE(e)?(e.Va.Pa(t),pE(e)):e.Va.set("Unknown")}).bind(null,t),Y_:(async function(t,e,r){if(t.Va.set("Online"),e instanceof Pb&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Ea.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Ea.delete(n),i.ma.removeTarget(n))}catch(r){C(sE,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await vE(t,r)}else if(e instanceof Nb?t.ma.Xe(e):e instanceof Rb?t.ma.ot(e):t.ma.nt(e),!r.isEqual(P.min()))try{let e=await m0(t.localStore);0<=r.compareTo(e)&&(l=r,(h=(o=t).ma.It(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.Ea.get(t))&&o.Ea.set(t,r.withResumeToken(e.resumeToken,l))}),h.targetMismatches.forEach((e,t)=>{var r=o.Ea.get(e);r&&(o.Ea.set(e,r.withResumeToken(ny.EMPTY_BYTE_STRING,r.snapshotVersion)),dE(o,e),r=new pI(r.target,e,t,r.sequenceNumber),cE(o,r))}),await o.remoteSyncer.applyRemoteEvent(h))}catch(e){C(sE,"Failed to raise snapshot:",e),await vE(t,e)}var o,l,h}).bind(null,t)},(i=e).oa(),new tE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Aa.push(async e=>{e?(t.fa.L_(),fE(t)?pE(t):t.Va.set("Unknown")):(await t.fa.stop(),mE(t))})),t.fa;var e,r,n,i}function CE(t){return t.ga||(t.ga=(e=t.datastore,r=t.asyncQueue,n={e_:()=>Promise.resolve(),n_:(async function(e){CE(e).ia()}).bind(null,t),i_:(async function(e,t){if(t&&CE(e).ea){var r=e,n=t;if(wb(t=n.code)&&t!==A.ABORTED){let e=r.Ia.shift();CE(r).L_(),await _E(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await yE(r)}await 0}wE(e)&&bE(e)}).bind(null,t),na:(async function(e){var t,r=CE(e);for(t of e.Ia)r.ta(t.mutations)}).bind(null,t),ra:(async function(e,t,r){let n=e.Ia.shift(),i=vb.from(n,t,r);await _E(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await yE(e)}).bind(null,t)},(i=e).oa(),new rE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Aa.push(async e=>{e?(t.ga.L_(),await yE(t)):(await t.ga.stop(),0<t.Ia.length&&(C(sE,`Stopping write stream with ${t.Ia.length} pending writes`),t.Ia=[]))})),t.ga;var e,r,n,i}class kE{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new Um,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new kE(e,t,s,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new N(A.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function SE(e,t){if(Om("AsyncQueue",t+": "+e),Ev(e))return new N(A.UNAVAILABLE,t+": "+e);throw e}class AE{static emptySet(e){return new AE(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||D.comparator(e.key,t.key):(e,t)=>D.comparator(e.key,t.key),this.keyedMap=Lw(),this.sortedSet=new M(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof AE))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new AE;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class NE{constructor(){this.pa=new M(D.comparator)}track(e){var t=e.doc.key,r=this.pa.get(t);!r||0!==e.type&&3===r.type?this.pa=this.pa.insert(t,e):3===e.type&&1!==r.type?this.pa=this.pa.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.pa=this.pa.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.pa=this.pa.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.pa=this.pa.remove(t):1===e.type&&2===r.type?this.pa=this.pa.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.pa=this.pa.insert(t,{type:2,doc:e.doc}):k(63341,{Vt:e,ya:r})}wa(){let r=[];return this.pa.inorderTraversal((e,t)=>{r.push(t)}),r}}class RE{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new RE(e,t,AE.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&Sw(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n].type!==r[n].type||!t[n].doc.isEqual(r[n].doc))return!1;return!0}}class PE{constructor(){this.ba=void 0,this.Sa=[]}Da(){return this.Sa.some(e=>e.va())}}class xE{constructor(){this.queries=DE(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e,r,t,n;e=this,r=new N(A.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=DE(),n.forEach((e,t)=>{for(let e of t.Sa)e.onError(r)})}}function DE(){return new Dw(e=>Aw(e),Sw)}async function OE(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.Da()&&r.va()&&(n=2):(s=new PE,n=r.va()?0:1);try{switch(n){case 0:s.ba=await e.onListen(i,!0);break;case 1:s.ba=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=SE(t,`Initialization of query '${Nw(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.Sa.push(r),r.Fa(e.onlineState),s.ba&&r.Ma(s.ba)&&LE(e)}async function ME(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.Sa.indexOf(t);0<=e&&(s.Sa.splice(e,1),0===s.Sa.length?i=t.va()?0:1:!s.Da()&&t.va()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function LE(e){e.Ca.forEach(e=>{e.next()})}(km=km||{}).xa="default",km.Cache="cache";class FE{constructor(e,t,r){this.query=e,this.Oa=t,this.Na=!1,this.Ba=null,this.onlineState="Unknown",this.options=r||{}}Ma(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new RE(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Na?this.La(t)&&(this.Oa.next(t),e=!0):this.ka(t,this.onlineState)&&(this.qa(t),e=!0),this.Ba=t,e}onError(e){this.Oa.error(e)}Fa(e){this.onlineState=e;let t=!1;return this.Ba&&!this.Na&&this.ka(this.Ba,e)&&(this.qa(this.Ba),t=!0),t}ka(e,t){return!e.fromCache||!this.va()||(!this.options.Qa||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}La(e){var t;return 0<e.docChanges.length||(t=this.Ba&&this.Ba.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}qa(e){e=RE.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Na=!0,this.Oa.next(e)}va(){return this.options.source!==km.Cache}}class UE{constructor(e,t){this.$a=e,this.byteLength=t}Ua(){return"metadata"in this.$a}}class VE{constructor(e){this.serializer=e}Us(e){return $b(this.serializer,e)}Ks(e){return e.metadata.exists?eI(this.serializer,e.document,!1):Ky.newNoDocument(this.Us(e.metadata.name),this.Ws(e.metadata.readTime))}Ws(e){return zb(e)}}class qE{constructor(e,t,r){this.Ka=e,this.localStore=t,this.serializer=r,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=BE(e)}Wa(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.$a.namedQuery?this.queries.push(e.$a.namedQuery):e.$a.documentMetadata?(this.documents.push({metadata:e.$a.documentMetadata}),e.$a.documentMetadata.exists||++t,r=x.fromString(e.$a.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.$a.document&&(this.documents[this.documents.length-1].document=e.$a.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ga(e){let r=new Map,n=new VE(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.Us(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||V()).add(e);r.set(t,s)}}return r}async complete(){let e=await(async(r,n,e,t)=>{let i=r,s=V(),a=Ow;for(let r of e){let e=n.Us(r.metadata.name),t=(r.document&&(s=s.add(e)),n.Ks(r));t.setReadTime(n.Ws(r.metadata.readTime)),a=a.insert(e,t)}let o=i.Bs.newChangeBuffer({trackRemovals:!0}),l=await y0(i,(r=t,Ew(ww(x.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>_0(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Ti.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Ti.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.qs,e.Qs)).next(()=>e.qs)))})(this.localStore,new VE(this.serializer),this.documents,this.Ka.id),t=this.Ga(this.documents);for(let e of this.queries)await(async(e,r,n=V())=>{let i=await y0(e,Ew(II(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=zb(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Ei.saveNamedQuery(e,r):(t=i.withResumeToken(ny.EMPTY_BYTE_STRING,t),s.xs=s.xs.insert(t.targetId,t),s.Ti.updateTargetData(e,t).next(()=>s.Ti.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Ti.addMatchingKeys(e,n,i.targetId)).next(()=>s.Ei.saveNamedQuery(e,r)))})})(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,za:this.collectionGroups,ja:e}}}function BE(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class jE{constructor(e){this.key=e}}class zE{constructor(e){this.key=e}}class KE{constructor(e,t){this.query=e,this.Ha=t,this.Ja=null,this.hasCachedResults=!1,this.current=!1,this.Ya=V(),this.mutatedKeys=V(),this.Za=xw(e),this.Xa=new AE(this.Za)}get eu(){return this.Ha}tu(e,t){let o=t?t.nu:new NE,l=(t||this).Xa,h=(t||this).mutatedKeys,u=l,c=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,p="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=Rw(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.ru(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.Za(n,d)||p&&this.Za(n,p)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||p)&&(c=!0),a&&(h=n?(u=u.add(n),s?h.add(e):h.delete(e)):(u=u.delete(e),h.delete(e)))}),null!==this.query.limit)for(;u.size>this.query.limit;){let e="F"===this.query.limitType?u.last():u.first();u=u.delete(e.key),h=h.delete(e.key),o.track({type:1,doc:e})}return{Xa:u,nu:o,Cs:c,mutatedKeys:h}}ru(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.Xa,s=(this.Xa=e.Xa,this.mutatedKeys=e.mutatedKeys,e.nu.wa()),a=(s.sort((e,t)=>{return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return k(20277,{Vt:e})}})(r)-i(n)||this.Za(e.doc,t.doc);var r,n,i}),this.iu(r),n=null!=n&&n,t&&!n?this.su():[]),o=0===this.Ya.size&&this.current&&!n?1:0,l=o!==this.Ja;return this.Ja=o,0!==s.length||l?{snapshot:new RE(this.query,e.Xa,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),ou:a}:{ou:a}}Fa(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Xa:this.Xa,nu:new NE,mutatedKeys:this.mutatedKeys,Cs:!1},!1)):{ou:[]}}_u(e){return!this.Ha.has(e)&&!!this.Xa.has(e)&&!this.Xa.get(e).hasLocalMutations}iu(e){e&&(e.addedDocuments.forEach(e=>this.Ha=this.Ha.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ha=this.Ha.delete(e)),this.current=e.current)}su(){if(!this.current)return[];let t=this.Ya,r=(this.Ya=V(),this.Xa.forEach(e=>{this._u(e.key)&&(this.Ya=this.Ya.add(e.key))}),[]);return t.forEach(e=>{this.Ya.has(e)||r.push(new zE(e))}),this.Ya.forEach(e=>{t.has(e)||r.push(new jE(e))}),r}au(e){this.Ha=e.$s,this.Ya=V();var t=this.tu(e.documents);return this.applyChanges(t,!0)}uu(){return RE.fromInitialDocuments(this.query,this.Xa,this.mutatedKeys,0===this.Ja,this.hasCachedResults)}}let WE="SyncEngine";class HE{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class GE{constructor(e){this.key=e,this.cu=!1}}class $E{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.lu={},this.hu=new Dw(e=>Aw(e),Sw),this.Pu=new Map,this.Tu=new Set,this.Iu=new M(D.comparator),this.Eu=new Map,this.du=new zT,this.Au={},this.Ru=new Map,this.Vu=mT.lr(),this.onlineState="Unknown",this.mu=void 0}get isPrimaryClient(){return!0===this.mu}}async function QE(e,t,r,n){var i=await y0(e.localStore,Ew(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await YE(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&hE(e.remoteStore,i),o}async function YE(n,e,t,r,i){n.fu=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.tu(r);i.Cs&&(i=await b0(e.localStore,t.query,!1).then(({documents:e})=>t.view.tu(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return aC(e,t.targetId,s.ou),s.snapshot})(n,e,t,r);var s=await b0(n.localStore,e,!0),a=new KE(e,s.$s),s=a.tu(s.documents),o=Ab.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(aC(n,t,s.ou),new HE(e,t,a));return n.hu.set(e,o),n.Pu.has(t)?n.Pu.get(t).push(e):n.Pu.set(t,[e]),s.snapshot}async function JE(t,e,r){var n=pC(t);try{let t=await((e,i)=>{let s=e,a=ev.now(),o=i.reduce((e,t)=>e.add(t.key),V()),l,h;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=Ow,r=V();return s.Bs.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{l=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=Hw(i.transform,e||null);null!=t&&(n=null===n?zy.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new ub(r.key,e,function i(e){let s=[];return Q_(e.fields,(e,r)=>{var n=new iv([e]);if(Ly(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new ty(s)}(e.value.mapValue),nb.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(h=e).applyToLocalDocumentSet(l,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:h.batchId,changes:Fw(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Au[i.currentUser.toKey()];e=(e=e||new M(R)).insert(s,a),i.Au[i.currentUser.toKey()]=e}await lC(n,t.changes),await yE(n.remoteStore)}catch(t){let e=SE(t,"Failed to persist write");r.reject(e)}}async function XE(e,t){let n=e;try{let e=await v0(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Eu.get(t);r&&(S(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0<e.addedDocuments.size?r.cu=!0:0<e.modifiedDocuments.size?S(r.cu,14607):0<e.removedDocuments.size&&(S(r.cu,42227),r.cu=!1))}),await lC(n,e,t)}catch(e){await vv(e)}}function ZE(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.hu.forEach((e,t)=>{var r=t.view.Fa(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.Sa)e.Fa(a)&&(r=!0)}),r&&LE(o)}n.length&&s.lu.Y_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function eC(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(S(null!==e,37113),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);nC(n,t,r),rC(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await lC(n,e)}catch(r){await vv(r)}}async function tC(t,r){let n=t;gE(n.remoteStore)||C(WE,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===Dv?r.resolve():((i=n.Ru.get(e)||[]).push(r),n.Ru.set(e,i))}catch(t){let e=SE(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function rC(e,t){(e.Ru.get(t)||[]).forEach(e=>{e.resolve()}),e.Ru.delete(t)}function nC(e,t,r){var n=e;let i=n.Au[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Au[n.currentUser.toKey()]=i}}function iC(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Pu.get(e))t.hu.delete(n),r&&t.lu.gu(n,r);t.Pu.delete(e),t.isPrimaryClient&&t.du.Hr(e).forEach(e=>{t.du.containsKey(e)||sC(t,e)})}function sC(e,t){e.Tu.delete(t.path.canonicalString());var r=e.Iu.get(t);null!==r&&(uE(e.remoteStore,r),e.Iu=e.Iu.remove(t),e.Eu.delete(r),oC(e))}function aC(e,t,r){for(var n of r)n instanceof jE?(e.du.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.Iu.get(a)||i.Tu.has(o)||(C(WE,"New document in limbo: "+a),i.Tu.add(o),oC(i))):n instanceof zE?(C(WE,"Document no longer in limbo: "+n.key),e.du.removeReference(n.key,t),e.du.containsKey(n.key)||sC(e,n.key)):k(19791,{pu:n});var i,s,a,o}function oC(e){for(;0<e.Tu.size&&e.Iu.size<e.maxConcurrentLimboResolutions;){var t=e.Tu.values().next().value,t=(e.Tu.delete(t),new D(x.fromString(t))),r=e.Vu.next();e.Eu.set(r,new GE(t)),e.Iu=e.Iu.insert(t,r),hE(e.remoteStore,new pI(Ew(ww(t.path)),r,"TargetPurposeLimboResolution",xv.le))}}async function lC(e,t,i){let s=e,a=[],o=[],r=[];if(!s.hu.isEmpty()){s.hu.forEach((e,n)=>{r.push(s.fu(n,t,i).then(t=>{var r;if((t||i)&&s.isPrimaryClient){let e=t?!t.fromCache:null==(r=null==i?void 0:i.targetChanges.get(n.targetId))?void 0:r.current;s.sharedClientState.updateQueryState(n.targetId,e?"current":"not-current")}if(t){a.push(t);let e=o0.Rs(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.lu.Y_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>O.forEach(l,t=>O.forEach(t.ds,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>O.forEach(t.As,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!Ev(n))throw n;C(u0,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.xs.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.xs=i.xs.insert(n,r)}}}}}async function hC(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.tr(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):O.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await yE(i.remoteStore):"acknowledged"===r||"rejected"===r?(nC(i,t,n||null),rC(i,t),i.localStore.mutationQueue.sr(t)):k(6720,"Unknown batchState",{yu:r}),await lC(i,s)):C(WE,"Cannot apply mutation batch with id: "+t)}async function uC(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.Pu.get(r);if(e&&0!==e.length){t=await y0(a.localStore,Ew(e[0]));for(let r of e){let e=a.hu.get(r),t=(n=e,s=i=void 0,s=await b0((i=a).localStore,n.query,!0),s=n.view.au(s),i.isPrimaryClient&&aC(i,n.targetId,s.ou),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await I0(a.localStore,r);t=await y0(a.localStore,e),await YE(a,cC(e),r,!1,t.resumeToken)}o.push(t)}return a.lu.Y_(l),o}function cC(e){return yw(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function dC(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=XE.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Eu.get(t);if(r&&r.cu)return V().add(r.key);{let r=V(),e=n.Pu.get(t);if(e)for(let t of e){let e=n.hu.get(t);r=r.unionWith(e.view.eu)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Eu.get(n)),s=r&&r.key;if(s){let e=new M(D.comparator),t=(e=e.insert(s,Ky.newNoDocument(s,P.min())),V().add(s)),r=new Sb(P.min(),new Map,new M(R),e,t);await XE(i,r),i.Iu=i.Iu.remove(s),i.Eu.delete(n),oC(i)}else await w0(i.localStore,n,!1).then(()=>iC(i,n,t)).catch(vv)}).bind(null,t),t.lu.Y_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.Sa)e.Ma(r)&&(i=!0);t.ba=r}}i&&LE(n)}).bind(null,t.eventManager),t.lu.gu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.Sa)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function pC(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await g0(r.localStore,t);nC(r,n,null),rC(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await lC(r,e)}catch(e){await vv(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=eC.bind(null,t),t}function fC(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=zb(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Ei.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(BE(i));var s=new qE(i,e.localStore,r.serializer);let t=await r.wu();for(;t;){let e=await s.Wa(t);e&&n._updateProgress(e),t=await r.wu()}var a=await s.complete();return await lC(e,a.ja,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Ei.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.za)}catch(e){return Mm(WE,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class gC{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=J0(e.databaseInfo.databaseId),this.sharedClientState=this.bu(e),this.persistence=this.Su(e),await this.persistence.start(),this.localStore=this.Du(e),this.gcScheduler=this.vu(e,this.localStore),this.indexBackfillerScheduler=this.Cu(e,this.localStore)}vu(e,t){return null}Cu(e,t){return null}Du(e){return p0(this.persistence,new h0,e.initialUser,this.serializer)}Su(e){return new QT(JT.fi,this.serializer)}bu(e){return new U0}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}gC.provider={build:()=>new gC};class mC extends gC{constructor(e){super(),this.cacheSizeBytes=e}vu(e,t){S(this.persistence.referenceDelegate instanceof XT,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new ET(r,e.asyncQueue,t)}Su(e){let t=void 0!==this.cacheSizeBytes?lT.withCacheSize(this.cacheSizeBytes):lT.DEFAULT;return new QT(e=>XT.fi(e,t),this.serializer)}}class vC extends gC{constructor(e,t,r){super(),this.Fu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Fu.initialize(this,e),await pC(this.Fu.syncEngine),await yE(this.Fu.remoteStore),await this.persistence.Ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}Du(e){return p0(this.persistence,new h0,e.initialUser,this.serializer)}vu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new ET(r,e.asyncQueue,t)}Cu(e,t){var r=new Pv(t,this.persistence);return new Rv(e.asyncQueue,r)}Su(e){var t=a0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?lT.withCacheSize(this.cacheSizeBytes):lT.DEFAULT;return new n0(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Q0(),Y0(),this.serializer,this.sharedClientState,!!this.forceOwnership)}bu(e){return new U0}}class _C extends vC{constructor(e,t){super(e,t,!1),this.Fu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Fu.syncEngine;this.sharedClientState instanceof F0&&(this.sharedClientState.syncEngine={Co:hC.bind(null,t),Fo:(async function(e,r,n,t){var i=e;if(i.mu)C(WE,"Ignoring unexpected query state notification.");else{var s=i.Pu.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await T0(i.localStore,Pw(s[0])),t=Sb.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,ny.EMPTY_BYTE_STRING);await lC(i,e,t);break}case"rejected":await w0(i.localStore,r,!0),iC(i,r,t);break;default:k(64155,n)}}}).bind(null,t),Mo:(async function(e,t,n){let i=dC(e);if(i.mu){for(let r of t)if(i.Pu.has(r)&&i.sharedClientState.isActiveQueryTarget(r))C(WE,"Adding an already active target "+r);else{let e=await I0(i.localStore,r),t=await y0(i.localStore,e);await YE(i,cC(e),t.targetId,!1,t.resumeToken),hE(i.remoteStore,t)}for(let r of n)i.Pu.has(r)&&await w0(i.localStore,r,!1).then(()=>{uE(i.remoteStore,r),iC(i,r)}).catch(vv)}}).bind(null,t),Is:(function(e){return e.localStore.persistence.Is()}).bind(null,t),vo:(async function(e,t){let r=e;return T0(r.localStore,t).then(e=>lC(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ji(async e=>{{var t=this.Fu.syncEngine,s=e;let i=t;if(dC(i),pC(i),!0===s&&!0!==i.mu){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await uC(i,e.toArray());i.mu=!0,await TE(i.remoteStore,!0);for(let e of t)hE(i.remoteStore,e)}else if(!1===s&&!1!==i.mu){let r=[],n=Promise.resolve();i.Pu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(iC(i,t),w0(i.localStore,t,!0))),uE(i.remoteStore,t)}),await n,await uC(i,r);{s=i;let r=s;r.Eu.forEach((e,t)=>{uE(r.remoteStore,t)}),r.du.Jr(),r.Eu=new Map,r.Iu=new M(D.comparator)}i.mu=!1,await TE(i.remoteStore,!1)}}await 0,this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}bu(e){var t,r=Q0();if(F0.C(r))return t=a0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new F0(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new N(A.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class yC{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>ZE(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){C(WE,"User change. New user:",t.toKey());let e=await f0(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Ru.forEach(e=>{e.forEach(e=>{e.reject(new N(A.CANCELLED,n))})}),r.Ru.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await lC(i,e.ks)}}).bind(null,this.syncEngine),await TE(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new xE}createDatastore(e){var t,r,n,i=J0(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new $0(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new nE(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>ZE(this.syncEngine,e,0),i=new(B0.C()?B0:V0),new aE(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new $E(r,n,i,s,a,e),t&&(o.mu=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,C(sE,"RemoteStore shutting down."),t.da.add(5),await lE(t),t.Ra.shutdown(),await!t.Va.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function wC(t,r=10240){let n=0;return{async read(){var e;return n<t.byteLength?(e={value:t.slice(n,n+r),done:!1},n+=r,e):{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}yC.provider={build:()=>new yC};class bC{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Mu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Mu(this.observer.error,e):Om("Uncaught Error in snapshot listener:",e.toString()))}xu(){this.muted=!0}Mu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class IC{constructor(e,t){this.Ou=e,this.serializer=t,this.metadata=new Um,this.buffer=new Uint8Array,this.Nu=new TextDecoder("utf-8"),this.Bu().then(e=>{e&&e.Ua()?this.metadata.resolve(e.$a.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
|
|
30
|
+
`+JSON.stringify(null==e?void 0:e.$a)))},e=>this.metadata.reject(e))}close(){return this.Ou.cancel()}async getMetadata(){return this.metadata.promise}async wu(){return await this.getMetadata(),this.Bu()}async Bu(){var e,t,r=await this.Lu();return null===r?null:(t=this.Nu.decode(r),e=Number(t),isNaN(e)&&this.ku(`length string (${t}) is not valid number`),t=await this.qu(e),new UE(JSON.parse(t),r.length+e))}Qu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Lu(){for(;this.Qu()<0&&!await this.$u(););var e,t;return 0===this.buffer.length?null:((e=this.Qu())<0&&this.ku("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async qu(e){for(;this.buffer.length<e;)await this.$u()&&this.ku("Reached the end of bundle when more is expected.");var t=this.Nu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}ku(e){throw this.Ou.cancel(),new Error("Invalid bundle format: "+e)}async $u(){var e,t=await this.Ou.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class TC{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new N(A.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let l=e,r={documents:t.map(e=>Gb(l.serializer,e))},n=await l.Yo("BatchGetDocuments",l.serializer.databaseId,x.emptyPath(),r,t.length),h=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,S(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=$b(r,n.found.name),s=zb(n.found.updateTime),o=n.found.createTime?zb(n.found.createTime):P.min(),a=new zy({mapValue:{fields:n.found.fields}}),Ky.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,S(!!(n=e).missing,3894),S(!!n.readTime,22933),i=$b(r,n.missing),s=zb(n.readTime),Ky.newNoDocument(i,s)):k(7234,{result:e});h.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=h.get(e.toString());S(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new fb(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=D.fromPath(t);this.mutations.push(new gb(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>tI(t.serializer,e))};await t.zo("Commit",t.serializer.databaseId,x.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw k(50498,{Uu:e.constructor.name});t=P.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new N(A.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(P.min())?nb.exists(!1):nb.updateTime(t):nb.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return nb.exists(!0);if(t.isEqual(P.min()))throw new N(A.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return nb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class EC{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Ku=r.maxAttempts,this.x_=new X0(this.asyncQueue,"transaction_retry")}Wu(){--this.Ku,this.Gu()}Gu(){this.x_.y_(async()=>{let t=new TC(this.datastore),e=this.zu(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.ju(e)}))}).catch(e=>{this.ju(e)})})}zu(e){try{var t=this.updateFunction(e);return!Ov(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}ju(e){0<this.Ku&&this.Hu(e)?(--this.Ku,this.asyncQueue.enqueueAndForget(()=>(this.Gu(),Promise.resolve()))):this.deferred.reject(e)}Hu(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!wb(t))}}let CC="FirestoreClient";class kC{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=Rm.UNAUTHENTICATED,this.clientId=$m.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{C(CC,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(C(CC,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new Um;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=SE(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function SC(e,t){e.asyncQueue.verifyOperationInProgress(),C(CC,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await f0(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function AC(e,r){e.asyncQueue.verifyOperationInProgress();var t=await NC(e);C(CC,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>IE(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>IE(r.remoteStore,t)),e._onlineComponents=r}async function NC(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){C(CC,"Using user provided OfflineComponentProvider");try{await SC(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===A.FAILED_PRECONDITION||n.code===A.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;Mm("Error using user provided cache. Falling back to memory cache: "+r),await SC(t,new gC)}}else C(CC,"Using default OfflineComponentProvider"),await SC(t,new mC(void 0));var n;return t._offlineComponents}async function RC(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(C(CC,"Using user provided OnlineComponentProvider"),await AC(e,e._uninitializedComponentsProvider._online)):(C(CC,"Using default OnlineComponentProvider"),await AC(e,new yC))),e._onlineComponents}function PC(e){return NC(e).then(e=>e.persistence)}function xC(e){return NC(e).then(e=>e.localStore)}function DC(e){return RC(e).then(e=>e.remoteStore)}function OC(e){return RC(e).then(e=>e.syncEngine)}async function MC(e){var t=await RC(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=dC(e);let i;var s=n.hu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.uu()):await QE(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.hu.get(t),s=n.Pu.get(i.targetId);1<s.length?(n.Pu.set(i.targetId,s.filter(e=>!Sw(e,t))),n.hu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await w0(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&uE(n.remoteStore,i.targetId),iC(n,i.targetId)}).catch(vv)):(iC(n,i.targetId),await w0(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await QE(dC(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.hu.get(t),i=r.Pu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),uE(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function LC(r){return r.asyncQueue.enqueue(async()=>{var e=await PC(r),t=await DC(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.da.add(0),await lE(t),t.Va.set("Offline")})(t)})}function FC(e,t){let r=new Um;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new N(A.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=SE(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await xC(e),t,r)),r.promise}function UC(e,t,h={}){let u=new Um;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await MC(e),s=e.asyncQueue,a=t,o=h,l=u;let r=new bC({next:e=>{r.xu(),s.enqueueAndForget(()=>ME(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new N(A.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new N(A.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.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new FE(ww(a.path),r,{includeMetadataChanges:!0,Qa:!0});return OE(i,n)}}),u.promise}function VC(e,t){let r=new Um;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await b0(e,t,!0),i=new KE(t,n.$s),s=i.tu(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=SE(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await xC(e),t,r)),r.promise}function qC(o,l,h={}){let u=new Um;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await MC(o),i=o.asyncQueue,e=l,s=h,a=u;let t=new bC({next:e=>{t.xu(),i.enqueueAndForget(()=>ME(n,r)),e.fromCache&&"server"===s.source?a.reject(new N(A.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.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new FE(e,t,{includeMetadataChanges:!0,Qa:!0});return OE(n,r)}}),u.promise}function BC(r,e){let n=new bC(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await MC(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.xu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await MC(r),t=n,e.Ca.delete(t)})}}function jC(e,t,r,n){r=r,t=J0(t),s="string"==typeof r?Gm().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return wC(e,t);if(e instanceof ArrayBuffer)return wC(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new IC(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{fC(await OC(e),i,n)})}function zC(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await xC(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ei.getNamedQuery(e,r))}})}function KC(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let WC=new Map;function HC(e,t,r){if(!r)throw new N(A.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function GC(e,t,r,n){if(!0===t&&!0===n)throw new N(A.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function $C(e){if(!D.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function QC(e){if(D.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function YC(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":k(12329,{type:typeof e})}function q(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new N(A.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=YC(e);throw new N(A.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function JC(e,t){if(t<=0)throw new N(A.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let XC="firestore.googleapis.com";class ZC{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new N(A.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=XC,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new N(A.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}GC("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=KC(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new N(A.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class ek{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ZC({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new N(A.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new N(A.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 ZC(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new qm;switch(e.type){case"firstParty":return new Km(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new N(A.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=WC.get(e))&&(C("ComponentProvider","Removing Datastore"),WC.delete(e),t.terminate()),Promise.resolve();var e,t}}class tk{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new tk(this.firestore,e,this._query)}}class rk{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new nk(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new rk(this.firestore,e,this._key)}}class nk extends tk{constructor(e,t,r){super(e,t,ww(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new rk(this.firestore,null,new D(e))}withConverter(e){return new nk(this.firestore,e,this._path)}}function ik(e,t,...r){var n;if(e=w(e),HC("collection","path",t),e instanceof ek)return QC(n=x.fromString(t,...r)),new nk(e,null,n);if(e instanceof rk||e instanceof nk)return QC(n=e._path.child(x.fromString(t,...r))),new nk(e.firestore,null,n);throw new N(A.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function sk(e,t,...r){var n;if(e=w(e),HC("doc","path",t=1===arguments.length?$m.newId():t),e instanceof ek)return $C(n=x.fromString(t,...r)),new rk(e,null,new D(n));if(e instanceof rk||e instanceof nk)return $C(n=e._path.child(x.fromString(t,...r))),new rk(e.firestore,e instanceof nk?e.converter:null,new D(n));throw new N(A.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function ak(e,t){return e=w(e),t=w(t),(e instanceof rk||e instanceof nk)&&(t instanceof rk||t instanceof nk)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function ok(e,t){return e=w(e),t=w(t),e instanceof tk&&t instanceof tk&&e.firestore===t.firestore&&Sw(e._query,t._query)&&e.converter===t.converter}let lk="AsyncQueue";class hk{constructor(e=Promise.resolve()){this.Ju=[],this.Yu=!1,this.Zu=[],this.Xu=null,this.ec=!1,this.tc=!1,this.nc=[],this.x_=new X0(this,"async_queue_retry"),this.rc=()=>{var e=Y0();e&&C(lk,"Visibility state changed to "+e.visibilityState),this.x_.b_()},this.sc=e;var t=Y0();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.rc)}get isShuttingDown(){return this.Yu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.oc(),this._c(e)}enterRestrictedMode(e){var t;this.Yu||(this.Yu=!0,this.tc=e||!1,(t=Y0())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.rc))}enqueue(e){if(this.oc(),this.Yu)return new Promise(()=>{});let t=new Um;return this._c(()=>this.Yu&&this.tc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Ju.push(e),this.ac()))}async ac(){if(0!==this.Ju.length){try{await this.Ju[0](),this.Ju.shift(),this.x_.reset()}catch(e){if(!Ev(e))throw e;C(lk,"Operation failed with retryable error: "+e)}0<this.Ju.length&&this.x_.y_(()=>this.ac())}}_c(e){var t=this.sc.then(()=>(this.ec=!0,e().catch(e=>{throw this.Xu=e,this.ec=!1,Om("INTERNAL UNHANDLED ERROR: ",uk(e)),e}).then(e=>(this.ec=!1,e))));return this.sc=t}enqueueAfterDelay(e,t,r){this.oc(),-1<this.nc.indexOf(e)&&(t=0);var n=kE.createAndSchedule(this,e,t,r,e=>this.uc(e));return this.Zu.push(n),n}oc(){this.Xu&&k(47125,{cc:uk(this.Xu)})}verifyOperationInProgress(){}async lc(){for(var e;await(e=this.sc),e!==this.sc;);}hc(e){for(var t of this.Zu)if(t.timerId===e)return!0;return!1}Pc(t){return this.lc().then(()=>{this.Zu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.Zu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.lc()})}Tc(e){this.nc.push(e)}uc(e){var t=this.Zu.indexOf(e);this.Zu.splice(t,1)}}function uk(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function ck(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class dk{constructor(){this._progressObserver={},this._taskCompletionResolver=new Um,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var pk,fk;class gk extends ek{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new hk,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new hk(e),this._firestoreClient=void 0,await e)}}function mk(e){if(e._terminated)throw new N(A.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||vk(e),e._firestoreClient}function vk(e){var t,r,n,i,s,a=e._freezeSettings(),o=(i=e._databaseId,t=(null==(o=e._app)?void 0:o.options.appId)||"",r=e._persistenceKey,n=a,new gy(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,KC(n.experimentalLongPollingOptions),n.useFetchStreams,n.isUsingEmulator));e._componentsProvider||null!=(s=a.localCache)&&s._offlineComponentProvider&&null!=(s=a.localCache)&&s._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new kC(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(i=e._componentsProvider,s=null==i?void 0:i._online.build(),{_offline:null==i?void 0:i._offline.build(s),_online:s}))}function _k(e,t,r){if((e=q(e,gk))._firestoreClient||e._terminated)throw new N(A.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new N(A.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},vk(e)}function yk(r){if(r._initialized&&!r._terminated)throw new N(A.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new Um;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=a0(r._databaseId,r._persistenceKey),await(wv.C()?(t=e+"main",void await wv.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function wk(e){return(r=mk(e=q(e,gk))).asyncQueue.enqueue(async()=>{var e=await PC(r),t=await DC(r);return e.setNetworkEnabled(!0),(e=t).da.delete(0),oE(e)});var r}class bk{constructor(e){this._byteString=e}static fromBase64String(e){try{return new bk(ny.fromBase64String(e))}catch(e){throw new N(A.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new bk(ny.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class Ik{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new N(A.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new iv(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class Tk{constructor(e){this._methodName=e}}class Ek{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new N(A.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new N(A.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return R(this._lat,e._lat)||R(this._long,e._long)}}class Ck{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}}let kk=/^__.*__$/;class Sk{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new ub(e,this.data,this.fieldMask,t,this.fieldTransforms):new hb(e,this.data,t,this.fieldTransforms)}}class Ak{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new ub(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function Nk(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw k(40011,{Ic:e})}}class Rk{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Ec(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ic(){return this.settings.Ic}dc(e){return new Rk(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ac(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.dc({path:t,Rc:!1});return t.Vc(e),t}mc(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.dc({path:t,Rc:!1});return t.Ec(),t}fc(e){return this.dc({path:void 0,Rc:!0})}gc(e){return Yk(e,this.settings.methodName,this.settings.yc||!1,this.path,this.settings.wc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Ec(){if(this.path)for(let e=0;e<this.path.length;e++)this.Vc(this.path.get(e))}Vc(e){if(0===e.length)throw this.gc("Document fields must not be empty");if(Nk(this.Ic)&&kk.test(e))throw this.gc('Document fields cannot begin and end with "__"')}}class Pk{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||J0(e)}bc(e,t,r,n=!1){return new Rk({Ic:e,methodName:t,wc:r,path:iv.emptyPath(),Rc:!1,yc:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function xk(e){var t=e._freezeSettings(),r=J0(e._databaseId);return new Pk(e._databaseId,!!t.ignoreUndefinedProperties,r)}function Dk(e,n,i,t,r,s={}){var a=e.bc(s.merge||s.mergeFields?2:0,n,i,r),o=(Hk("Data must be an object, but it was:",a,t),Kk(t,a));let l,h;if(s.merge)l=new ty(a.fieldMask),h=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=Gk(n,r,i);if(!a.contains(e))throw new N(A.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);Jk(t,e)||t.push(e)}l=new ty(t),h=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,h=a.fieldTransforms;return new Sk(new zy(o),l,h)}class Ok extends Tk{_toFieldTransform(e){if(2!==e.Ic)throw 1===e.Ic?e.gc(this._methodName+"() can only appear at the top level of your update data"):e.gc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof Ok}}function Mk(e,t,r){return new Rk({Ic:3,wc:t.settings.wc,methodName:e._methodName,Rc:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Lk extends Tk{_toFieldTransform(e){return new tb(e.path,new Gw)}isEqual(e){return e instanceof Lk}}class Fk extends Tk{constructor(e,t){super(e),this.Sc=t}_toFieldTransform(e){let t=Mk(this,e,!0),r=this.Sc.map(e=>zk(e,t)),n=new $w(r);return new tb(e.path,n)}isEqual(e){return e instanceof Fk&&Ne(this.Sc,e.Sc)}}class Uk extends Tk{constructor(e,t){super(e),this.Sc=t}_toFieldTransform(e){let t=Mk(this,e,!0),r=this.Sc.map(e=>zk(e,t)),n=new Yw(r);return new tb(e.path,n)}isEqual(e){return e instanceof Uk&&Ne(this.Sc,e.Sc)}}class Vk extends Tk{constructor(e,t){super(e),this.Dc=t}_toFieldTransform(e){var t=new Xw(e.serializer,Kw(e.serializer,this.Dc));return new tb(e.path,t)}isEqual(e){return e instanceof Vk&&this.Dc===e.Dc}}function qk(e,i,s,t){let a=e.bc(1,i,s),o=(Hk("Data must be an object, but it was:",a,t),[]),l=zy.empty();Q_(t,(e,t)=>{var r=Qk(i,e,s),n=(t=w(t),a.mc(r));if(t instanceof Ok)o.push(r);else{let e=zk(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new ty(o);return new Ak(l,r,a.fieldTransforms)}function Bk(e,t,r,n,i,s){var a=e.bc(1,t,r),o=[Gk(t,n,r)],l=[i];if(s.length%2!=0)throw new N(A.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(Gk(t,s[p])),l.push(s[p+1]);var h=[],u=zy.empty();for(let f=o.length-1;0<=f;--f)if(!Jk(h,o[f])){let t=o[f];var c=w(l[f]);let r=a.mc(t);if(c instanceof Ok)h.push(t);else{let e=zk(c,r);null!=e&&(h.push(t),u.set(t,e))}}var d=new ty(h);return new Ak(u,d,a.fieldTransforms)}function jk(e,t,r,n=!1){return zk(r,e.bc(n?4:3,t))}function zk(e,r){if(Wk(e=w(e)))return Hk("Unsupported field value:",r,e),Kk(e,r);if(e instanceof Tk){{var t=e;var n=r;if(!Nk(n.Ic))throw n.gc(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.gc(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.Rc&&4!==r.Ic)throw r.gc("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=zk(s,a.fc(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=w(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Kw(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return h=ev.fromDate(t),{timestampValue:Bb(n.serializer,h)};if(t instanceof ev)return h=new ev(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:Bb(n.serializer,h)};if(t instanceof Ek)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof bk)return{bytesValue:jb(n.serializer,t._byteString)};if(t instanceof rk){var h=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(h))return{referenceValue:Kb(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.gc(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${h.projectId}/`+h.database)}if(t instanceof Ck)return e=t,l=n,{mapValue:{fields:{[_y]:{stringValue:by},[Iy]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.gc("VectorValues must only contain numeric values.");return jw(l.serializer,e)})}}}}};throw n.gc("Unsupported field value: "+YC(t))}function Kk(e,n){let i={};return Y_(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Q_(e,(e,t)=>{var r=zk(t,n.Ac(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function Wk(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ev||e instanceof Ek||e instanceof bk||e instanceof rk||e instanceof Tk||e instanceof Ck)}function Hk(e,t,r){var n,i;if(!Wk(r)||"object"!=typeof(i=r)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))throw"an object"===(n=YC(r))?t.gc(e+" a custom object"):t.gc(e+" "+n)}function Gk(e,t,r){if((t=w(t))instanceof Ik)return t._internalPath;if("string"==typeof t)return Qk(e,t);throw Yk("Field path arguments must be of type string or ",e,!1,void 0,r)}let $k=new RegExp("[~\\*/\\[\\]]");function Qk(t,r,n){if(0<=r.search($k))throw Yk(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Ik(...r.split("."))._internalPath}catch(e){throw Yk(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function Yk(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,l=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(l+=" (found",s&&(l+=" in field "+n),a&&(l+=" in document "+i),l+=")"),new N(A.INVALID_ARGUMENT,o+e+l)}function Jk(e,t){return e.some(e=>e.isEqual(t))}class Xk{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new rk(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Zk(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(eS("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Zk extends Xk{data(){return super.data()}}function eS(e,t){return"string"==typeof t?Qk(e,t):(t instanceof Ik?t:t._delegate)._internalPath}function tS(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new N(A.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class rS{}class nS extends rS{}function iS(e,t,...r){let n=[];t instanceof rS&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof sS).length;if(1<i||0<i&&0<s)throw new N(A.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(...)))`.");for(let t of n)e=t._apply(e);return e}class sS extends nS{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new sS(e,t,r)}_apply(e){var t=this._parse(e);return pS(e._query,t),new tk(e.firestore,e.converter,Cw(e._query,t))}_parse(e){var t=xk(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new N(A.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){dS(l,o);let e=[];for(let t of l)e.push(cS(a,n,t));r={arrayValue:{values:e}}}else r=cS(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||dS(l,o),r=jk(s,i,l,"in"===o||"not-in"===o);return F.create(e,o,r)}}}(class extends rS{});class aS extends nS{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new aS(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new N(A.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new N(A.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new $y(t,r)})(e._query,this._field,this._direction);return new tk(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new _w(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class oS extends nS{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new oS(e,t,r)}_apply(e){return new tk(e.firestore,e.converter,kw(e._query,this._limit,this._limitType))}}class lS extends nS{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new lS(e,t,r)}_apply(e){var t,r=uS(e,this.type,this._docOrFields,this._inclusive);return new tk(e.firestore,e.converter,(e=e._query,t=r,new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class hS extends nS{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new hS(e,t,r)}_apply(e){var t,r=uS(e,this.type,this._docOrFields,this._inclusive);return new tk(e.firestore,e.converter,(e=e._query,t=r,new _w(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function uS(e,r,n,i){if(n[0]=w(n[0]),n[0]instanceof Xk){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,h=i;if(!l)throw new N(A.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var u=[];for(let t of Tw(s))if(t.field.isKeyField())u.push(Py(a,l.key));else{let e=l.data.field(t.field);if(dy(e))throw new N(A.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new N(A.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}u.push(e)}return new Wy(u,h)}var t=xk(e.firestore),c=e._query,d=e.firestore._databaseId,p=t,f=r,g=n,o=i,m=c.explicitOrderBy;if(g.length>m.length)throw new N(A.INVALID_ARGUMENT,`Too many arguments provided to ${f}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var v=[];for(let y=0;y<g.length;y++){var _=g[y];if(m[y].field.isKeyField()){if("string"!=typeof _)throw new N(A.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${f}(), but got a `+typeof _);if(!Iw(c)&&-1!==_.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${f}() must be a plain document ID, but '${_}' contains a slash.`);let e=c.path.child(x.fromString(_));if(!D.isDocumentKey(e))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${f}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new D(e);v.push(Py(d,t))}else{let e=jk(p,f,_);v.push(e)}}return new Wy(v,o)}function cS(e,t,r){if("string"==typeof(r=w(r))){if(""===r)throw new N(A.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Iw(t)&&-1!==r.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(x.fromString(r));if(D.isDocumentKey(n))return Py(e,new D(n));throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof rk)return Py(e,r._key);throw new N(A.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${YC(r)}.`)}function dS(e,t){if(!Array.isArray(e)||0===e.length)throw new N(A.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function pS(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new N(A.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new N(A.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class fS{convertValue(e,t="none"){switch(Ey(e)){case 0:return null;case 1:return e.booleanValue;case 2:return ay(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(oy(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw k(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Q_(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=null==(t=null==(t=null==(t=e.fields)?void 0:t[Iy].arrayValue)?void 0:t.values)?void 0:t.map(e=>ay(e.doubleValue));return new Ck(t)}convertGeoPoint(e){return new Ek(ay(e.latitude),ay(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=py(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(fy(e));default:return null}}convertTimestamp(e){var t=sy(e);return new ev(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=x.fromString(e),n=(S(dI(r),9688,{name:e}),new vy(r.get(1),r.get(3))),r=new D(r.popFirst(5));return n.isEqual(t)||Om(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function gS(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class mS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new bk(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new rk(this.firestore,null,t)}}class vS{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class _S extends Xk{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new yS(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(eS("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class yS extends _S{data(e={}){return super.data(e)}}class wS{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new vS(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new yS(this._firestore,this._userDataWriter,e.key,e,new vS(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new N(A.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new yS(s._firestore,s._userDataWriter,e.doc.key,e.doc,new vS(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new yS(s._firestore,s._userDataWriter,e.doc.key,e.doc,new vS(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return k(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function bS(e,t){return e instanceof _S&&t instanceof _S?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof wS&&t instanceof wS&&e._firestore===t._firestore&&ok(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class IS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new bk(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new rk(this.firestore,null,t)}}function TS(e,t,r){e=q(e,rk);var n=q(e.firestore,gk),i=gS(e.converter,t,r);return kS(n,[Dk(xk(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,nb.none())])}function ES(e,t,r,...n){e=q(e,rk);var i=q(e.firestore,gk),s=xk(i);return kS(i,[("string"==typeof(t=w(t))||t instanceof Ik?Bk(s,"updateDoc",e._key,t,r,n):qk(s,"updateDoc",e._key,t)).toMutation(e._key,nb.exists(!0))])}function CS(n,...i){var t,r;n=w(n);let e={includeMetadataChanges:!1,source:"default"},s=0;"object"!=typeof i[s]||ck(i[s])||(e=i[s],s++);var a={includeMetadataChanges:e.includeMetadataChanges,source:e.source};if(ck(i[s])){let e=i[s];i[s]=null==(r=e.next)?void 0:r.bind(e),i[s+1]=null==(t=e.error)?void 0:t.bind(e),i[s+2]=null==(r=e.complete)?void 0:r.bind(e)}let o,l,h;if(n instanceof rk)l=q(n.firestore,gk),h=ww(n._key.path),o={next:e=>{i[s]&&i[s](SS(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=q(n,tk),r=(l=q(t.firestore,gk),h=t._query,new IS(l));o={next:e=>{i[s]&&i[s](new wS(l,r,t,e))},error:i[s+1],complete:i[s+2]},tS(n._query)}{var u=mk(l),c=h,d=a,p=o;let e=new bC(p),t=new FE(c,e,d);return u.asyncQueue.enqueueAndForget(async()=>OE(await MC(u),t)),()=>{e.xu(),u.asyncQueue.enqueueAndForget(async()=>ME(await MC(u),t))}}}function kS(t,r){{var n=mk(t),i=r;let e=new Um;return n.asyncQueue.enqueueAndForget(async()=>JE(await OC(n),i,e)),e.promise}}function SS(e,t,r){var n=r.docs.get(t._key),i=new IS(e);return new _S(e,i,t._key,n,new vS(r.hasPendingWrites,r.fromCache),t.converter)}let AS={maxAttempts:5};class NS{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=xk(e)}set(e,t,r){this._verifyNotCommitted();var n=RS(e,this._firestore),i=gS(n.converter,t,r),i=Dk(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,nb.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=RS(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof Ik?Bk(this._dataReader,"WriteBatch.update",i._key,t,r,n):qk(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,nb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=RS(e,this._firestore);return this._mutations=this._mutations.concat(new fb(t._key,nb.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new N(A.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function RS(e,t){if((e=w(e)).firestore!==t)throw new N(A.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class PS extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=xk(e)}get(e){let r=RS(e,this._firestore),n=new mS(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return k(24041);var t=e[0];if(t.isFoundDocument())return new Xk(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Xk(this._firestore,n,r._key,null,r.converter);throw k(18433,{doc:t})})}set(e,t,r){var n=RS(e,this._firestore),i=gS(n.converter,t,r),i=Dk(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=RS(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof Ik?Bk(this._dataReader,"Transaction.update",i._key,t,r,n):qk(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=RS(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=RS(e,this._firestore),r=new IS(this._firestore);return super.get(e).then(e=>new _S(this._firestore,r,t._key,e._document,new vS(!1,!1),t.converter))}}function xS(r,n,e){r=q(r,gk);var i=Object.assign(Object.assign({},AS),e);if(i.maxAttempts<1)throw new N(A.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=mk(r),a=e=>n(new PS(r,e)),o=i;let t=new Um;return s.asyncQueue.enqueueAndForget(async()=>{var e=await RC(s).then(e=>e.datastore);new EC(s.asyncQueue,e,o,a,t).Wu()}),t.promise}}pk=!0,ax=Vt,Pm=ax,xt(new u("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new gk(new jm(e.getProvider("auth-internal")),new Hm(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new vy(e.options.projectId,t);throw new N(A.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:pk},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),d(Nm,"4.7.17",hN),d(Nm,"4.7.17","esm2017");function DS(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new N("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function OS(){if("undefined"==typeof Uint8Array)throw new N("unimplemented","Uint8Arrays are not available in this environment.")}function MS(){if("undefined"==typeof atob)throw new N("unimplemented","Blobs are unavailable in Firestore in this environment.")}class LS{constructor(e){this._delegate=e}static fromBase64String(e){return MS(),new LS(bk.fromBase64String(e))}static fromUint8Array(e){return OS(),new LS(bk.fromUint8Array(e))}toBase64(){return MS(),this._delegate.toBase64()}toUint8Array(){return OS(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function FS(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class US{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};Mm("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return _k(e,yC.provider,{build:e=>new vC(e,t.cacheSizeBytes,null==n?void 0:n.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{Mm("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();_k(e,yC.provider,{build:e=>new _C(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return yk(e._delegate)}}class VS{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof vy||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||Mm("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(i,s,a={}){{var[i,s,a,o={}]=[this._delegate,i,s,a];i=q(i,ek);let e=ee(s),t=i._getSettings(),r=Object.assign(Object.assign({},t),{emulatorOptions:i._getEmulatorOptions()}),n=s+":"+a;e&&(te("https://"+n),se("Firestore",!0)),t.host!==XC&&t.host!==n&&Mm("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l=Object.assign(Object.assign({},t),{host:n,ssl:e,emulatorOptions:o});if(!Ne(l,r)&&(i._setSettings(l),o.mockUserToken)){let t,r;if("string"==typeof o.mockUserToken)t=o.mockUserToken,r=Rm.MOCK_USER;else{t=re(o.mockUserToken,null==(l=i._app)?void 0:l.options.projectId);let e=o.mockUserToken.sub||o.mockUserToken.user_id;if(!e)throw new N(A.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new Rm(e)}i._authCredentials=new Bm(new Vm(t,r))}}}enableNetwork(){return wk(this._delegate)}disableNetwork(){return LC(mk(q(this._delegate,gk)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,GC("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=mk(t=q(t,gk));let e=new Um;return r.asyncQueue.enqueueAndForget(async()=>tC(await OC(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,BC(mk(t=q(t,gk)),ck(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new N("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new ZS(this,ik(this._delegate,e))}catch(e){throw WS(e,"collection()","Firestore.collection()")}}doc(e){try{return new KS(this,sk(this._delegate,e))}catch(e){throw WS(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new YS(this,((e,t)=>{if(e=q(e,ek),HC("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new N(A.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new tk(e,null,(e=t,new _w(x.emptyPath(),e)))})(this._delegate,e))}catch(e){throw WS(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return xS(this._delegate,e=>t(new BS(this,e)))}batch(){return mk(this._delegate),new jS(new NS(this._delegate,e=>kS(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=mk(t=q(t,gk)),n=new dk,jC(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,zC(mk(t=q(t,gk)),e).then(e=>e?new tk(t,null,e.query):null).then(e=>e?new YS(this,e):null);var t}}class qS extends fS{constructor(e){super(),this.firestore=e}convertBytes(e){return new LS(new bk(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return KS.forKey(t,this.firestore,null)}}class BS{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}get(e){let t=e1(e);return this._delegate.get(t).then(e=>new $S(this._firestore,new _S(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=e1(e);return r?(DS("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=e1(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=e1(e);return this._delegate.delete(t),this}}class jS{constructor(e){this._delegate=e}set(e,t,r){var n=e1(e);return r?(DS("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=e1(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=e1(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class zS{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new yS(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new QS(this._firestore,r),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=zS.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new zS(e,new qS(e),t),n.set(t,i)),i}}zS.INSTANCES=new WeakMap;class KS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}static forPath(e,t,r){if(e.length%2!=0)throw new N("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new KS(t,new rk(t._delegate,r,new D(e)))}static forKey(e,t,r){return new KS(t,new rk(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new ZS(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new ZS(this.firestore,ik(this._delegate,e))}catch(e){throw WS(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=w(e))instanceof rk&&ak(this._delegate,e)}set(e,t){t=DS("DocumentReference.set",t);try{return t?TS(this._delegate,e,t):TS(this._delegate,e)}catch(e){throw WS(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?ES(this._delegate,e):ES(this._delegate,e,t,...r)}catch(e){throw WS(e,"updateDoc()","DocumentReference.update()")}}delete(){return kS(q((e=this._delegate).firestore,gk),[new fb(e._key,nb.none())]);var e}onSnapshot(...e){var t=HS(e),r=GS(e,e=>new $S(this.firestore,new _S(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return CS(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=q(t,rk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return FC(e,t._key).then(e=>new _S(r,n,t._key,e,new vS(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=q(t,rk);let r=q(t.firestore,gk);return UC(mk(r),t._key,{source:"server"}).then(e=>SS(r,t,e))}:t=>{t=q(t,rk);let r=q(t.firestore,gk);return UC(mk(r),t._key).then(e=>SS(r,t,e))})(this._delegate)).then(e=>new $S(this.firestore,new _S(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new KS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function WS(e,t,r){return e.message=e.message.replace(t,r),e}function HS(e){for(var t of e)if("object"==typeof t&&!FS(t))return t;return{}}function GS(e,t){let r,n,i;return i=FS(e[0])?e[0]:FS(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{i.next&&i.next(t(e))},error:null==(r=i.error)?void 0:r.bind(i),complete:null==(n=i.complete)?void 0:n.bind(i)}}class $S{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new KS(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return bS(this._delegate,e._delegate)}}class QS extends $S{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||k(57014,e),t}}class YS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new qS(e)}where(e,t,r){try{return new YS(this.firestore,iS(this._delegate,(n=r,i=t,s=eS("where",e),sS._create(s,i,n))))}catch(e){throw WS(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new YS(this.firestore,iS(this._delegate,([r,n="asc"]=[e,t],i=n,s=eS("orderBy",r),aS._create(s,i))))}catch(e){throw WS(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new YS(this.firestore,iS(this._delegate,(JC("limit",t=e),oS._create("limit",t,"F"))))}catch(e){throw WS(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new YS(this.firestore,iS(this._delegate,(JC("limitToLast",t=e),oS._create("limitToLast",t,"L"))))}catch(e){throw WS(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],lS._create("startAt",t,!0))))}catch(e){throw WS(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],lS._create("startAfter",t,!1))))}catch(e){throw WS(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],hS._create("endBefore",t,!1))))}catch(e){throw WS(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new YS(this.firestore,iS(this._delegate,([...t]=[...e],hS._create("endAt",t,!0))))}catch(e){throw WS(e,"endAt()","Query.endAt()")}var t}isEqual(e){return ok(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return VC(e,t._query).then(e=>new wS(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return qC(e,t._query,{source:"server"}).then(e=>new wS(r,n,t,e))}:t=>{t=q(t,tk);let r=q(t.firestore,gk),e=mk(r),n=new IS(r);return tS(t._query),qC(e,t._query).then(e=>new wS(r,n,t,e))})(this._delegate)).then(e=>new XS(this.firestore,new wS(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=HS(e),r=GS(e,e=>new XS(this.firestore,new wS(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return CS(this._delegate,t,r)}withConverter(e){return new YS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class JS{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new QS(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class XS{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new YS(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new QS(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new JS(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new QS(this._firestore,e))})}isEqual(e){return bS(this._delegate,e._delegate)}}class ZS extends YS{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new KS(this.firestore,e):null}doc(e){try{return void 0===e?new KS(this.firestore,sk(this._delegate)):new KS(this.firestore,sk(this._delegate,e))}catch(e){throw WS(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=q(e.firestore,gk),n=sk(e),i=gS(e.converter,t);return kS(r,[Dk(xk(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,nb.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new KS(this.firestore,e))}isEqual(e){return ak(this._delegate,e._delegate)}withConverter(e){return new ZS(this.firestore,e?this._delegate.withConverter(zS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function e1(e){return q(e,rk)}class t1{static serverTimestamp(){var e=new Lk("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new t1(e)}static delete(){var e=new Ok("deleteField");return e._methodName="FieldValue.delete",new t1(e)}static arrayUnion(...e){[...e]=[...e];var t=new Fk("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new t1(t)}static arrayRemove(...e){[...e]=[...e];var t=new Uk("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new t1(t)}static increment(e){e=e;var t=new Vk("increment",e);return t._methodName="FieldValue.increment",new t1(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let r1={Firestore:VS,GeoPoint:Ek,Timestamp:ev,Blob:LS,Transaction:BS,WriteBatch:jS,DocumentReference:KS,DocumentSnapshot:$S,Query:YS,QueryDocumentSnapshot:QS,QuerySnapshot:XS,CollectionReference:ZS,FieldPath:class RD{constructor(...e){this._delegate=new Ik(...e)}static documentId(){return new RD(iv.keyField().canonicalString())}isEqual(e){return(e=w(e))instanceof Ik&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:t1,setLogLevel:function(e){e=e,xm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=lr,fk=(e,t)=>new VS(e,t,new US),t.INTERNAL.registerComponent(new u("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return fk(t,r)},"PUBLIC").setServiceProps(Object.assign({},r1))),t.registerVersion("@firebase/firestore-compat","0.3.52");let n1="type.googleapis.com/google.protobuf.Int64Value",i1="type.googleapis.com/google.protobuf.UInt64Value";function s1(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function a1(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>a1(e));if("function"==typeof e||"object"==typeof e)return s1(e,e=>a1(e));throw new Error("Data cannot be encoded in JSON: "+e)}function o1(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case n1:case i1:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>o1(e)):"function"==typeof e||"object"==typeof e?s1(e,e=>o1(e)):e}let l1="functions",h1={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 u1 extends ye{constructor(e,t,r){super(l1+"/"+e,t||""),this.details=r,Object.setPrototypeOf(this,u1.prototype)}}function c1(e,t){let r=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),n=r,i=void 0;try{var s=t&&t.error;if(s){let e=s.status;if("string"==typeof e){if(!h1[e])return new u1("internal","internal");r=h1[e],n=e}var a=s.message;"string"==typeof a&&(n=a),void 0!==(i=s.details)&&(i=o1(i))}}catch(e){}return"ok"===r?null:new u1(r,n,i)}class d1{constructor(e,t,r,n){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||r.get().then(e=>this.messaging=e,()=>{}),this.appCheck||null!=n&&n.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let p1="us-central1",f1=/^data: (.*?)(?:\n|$)/;class g1{constructor(e,t,r,n,i=p1,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new d1(e,t,r,n),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin+("/"===a.pathname?"":a.pathname),this.region=p1}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function m1(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),_1(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),y1(r,n,e,t||{});var r,n},e}async function v1(e,t){var r={},n=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return n.authToken&&(r.Authorization="Bearer "+n.authToken),n.messagingToken&&(r["Firebase-Instance-ID-Token"]=n.messagingToken),null!==n.appCheckToken&&(r["X-Firebase-AppCheck"]=n.appCheckToken),r}async function _1(e,t,r,n){var i={data:r=a1(r)},s=await v1(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new u1("deadline-exceeded","deadline-exceeded"))},r)}),cancel:()=>{n&&clearTimeout(n)}}})(n.timeout||7e4),i=await Promise.race([(async(e,t,r,n)=>{r["Content-Type"]="application/json";let i;try{i=await n(e,{method:"POST",body:JSON.stringify(t),headers:r})}catch(e){return{status:0,json:null}}let s=null;try{s=await i.json()}catch(e){}return{status:i.status,json:s}})(t,i,s,e.fetchImpl),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new u1("cancelled","Firebase Functions instance was deleted.");s=c1(i.status,i.json);if(s)throw s;if(!i.json)throw new u1("internal","Response is not valid JSON object.");let o=i.json.data;if(void 0===(o=void 0===o?i.json.result:o))throw new u1("internal","Response is missing data field.");return{data:o1(o)}}async function y1(e,t,r,n){var i={data:r=a1(r)},s=await v1(e,n);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(i),headers:s,signal:null==n?void 0:n.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new u1("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=c1(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,l;i=new Promise((e,t)=>{o=e,l=t}),null!=(s=null==n?void 0:n.signal)&&s.addEventListener("abort",()=>{var e=new u1("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let h=((a,s,o,l)=>{let h=(e,t)=>{var r=e.match(f1);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(o1(i.result)):"message"in i?t.enqueue(o1(i.message)):"error"in i&&(n=c1(0,i),t.error(n),o(n))}catch(e){e instanceof u1&&(t.error(e),o(e))}}},u=new TextDecoder;return new ReadableStream({start(i){let s="";return async function r(){if(null!=l&&l.aborted){let e=new u1("cancelled","Request was cancelled");return i.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await a.read();if(e)s.trim()&&h(s.trim(),i),i.close();else{if(null==l||!l.aborted){let e=(s+=u.decode(t,{stream:!0})).split("\n");s=e.pop()||"";for(var n of e)n.trim()&&h(n.trim(),i);return r()}{let e=new u1("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof u1?e:c1(0,null);i.error(t),o(t)}}()},cancel(){return a.cancel()}})})(s,o,l,null==n?void 0:n.signal);return{stream:{[Symbol.asyncIterator](){let r=h.getReader();return{async next(){var{value:e,done:t}=await r.read();return{value:e,done:t}},async return(){return await r.cancel(),{done:!0,value:void 0}}}}},data:i}}let w1="@firebase/functions";function b1(e,t,r){var n;e=w(e),r=r,n=ee(t=t),e.emulatorOrigin=`http${n?"s":""}://${t}:`+r,n&&(te(e.emulatorOrigin),se("Functions",!0))}function I1(e,t,r){return n=w(e),i=t,s=r,(a=e=>_1(n,i,e,s||{})).stream=(e,t)=>y1(n,i,e,t||{}),a;var n,i,s,a}xt(new u(l1,(e,{instanceIdentifier:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new g1(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),d(w1,"0.12.8",r),d(w1,"0.12.8","esm2017");var T1,E1,C1;class k1{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return m1(w(this._delegate),e,t)}httpsCallableFromURL(e,t){return I1(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new ye("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new ye("functions","Port missing in origin provided to useFunctionsEmulator()");return b1(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return b1(this._delegate,e,t)}}let S1="us-central1",A1=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:null!=t?t:S1});return new k1(r,n)};ar={Functions:k1},lr.INTERNAL.registerComponent(new u("functions-compat",A1,"PUBLIC").setServiceProps(ar).setMultipleInstances(!0)),lr.registerVersion("@firebase/functions-compat","0.3.25");let N1="/firebase-messaging-sw.js",R1="/firebase-cloud-messaging-push-scope",P1="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",x1="https://fcmregistrations.googleapis.com/v1",D1="google.c.a.c_id",O1="google.c.a.c_l",M1="google.c.a.ts",L1="google.c.a.e",F1=1e4;function U1(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(ax=T1=T1||{}).PUSH_RECEIVED="push-received",ax.NOTIFICATION_CLICKED="notification-clicked";let V1="fcm_token_details_db",q1=5,B1="fcm_token_object_Store";async function j1(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(V1))return null;let l=null;return(await gt(V1,q1,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(B1)&&(i=await(a=n.objectStore(B1)).index("fcmSenderId").get(o),await a.clear(),i)&&(2===t?(a=i).auth&&a.p256dh&&a.endpoint&&(l={token:a.fcmToken,createTime:null!=(s=a.createTime)?s:Date.now(),subscriptionOptions:{auth:a.auth,p256dh:a.p256dh,endpoint:a.endpoint,swScope:a.swScope,vapidKey:"string"==typeof a.vapidKey?a.vapidKey:U1(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:U1(s.auth),p256dh:U1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:U1(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:U1(a.auth),p256dh:U1(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:U1(a.vapidKey)}}))}})).close(),await mt(V1),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(l)?l:null}let z1="firebase-messaging-database",K1=1,W1="firebase-messaging-store",H1=null;function G1(){return H1=H1||gt(z1,K1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(W1)}})}async function $1(e){var t=Y1(e),t=await(await G1()).transaction(W1).objectStore(W1).get(t);return t||((t=await j1(e.appConfig.senderId))?(await Q1(e,t),t):void 0)}async function Q1(e,t){var r=Y1(e),n=(await G1()).transaction(W1,"readwrite");return await n.objectStore(W1).put(t,r),await n.done,t}function Y1({appConfig:e}){return e.appId}let J1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function X1(e,t){var r={method:"DELETE",headers:await eA(e)};try{var n,i=await(await fetch(Z1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,J1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw J1.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Z1({projectId:e}){return x1+`/projects/${e}/registrations`}async function eA({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function tA({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==P1&&(i.web.applicationPubKey=n),i}let rA=6048e5;async function nA(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:U1(a.getKey("auth")),p256dh:U1(a.getKey("p256dh"))},o=await $1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+rA?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await eA(e),n=tA(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(Z1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw J1.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,J1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw J1.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await Q1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await X1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return sA(e.firebaseDependencies,a)}async function iA(e){var t,r=await $1(e.firebaseDependencies),r=(r&&(await X1(e.firebaseDependencies,r.token),r=Y1(e.firebaseDependencies),await(t=(await G1()).transaction(W1,"readwrite")).objectStore(W1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function sA(e,t){var r={token:await(async(e,t)=>{var r=await eA(e),n=tA(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(Z1(e.appConfig),r);i=await s.json()}catch(e){throw J1.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,J1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw J1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Q1(e,r),r.token}function aA(e){var t,r,n,i,s={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return n=s,(r=e).notification&&(n.notification={},(t=r.notification.title)&&(n.notification.title=t),(t=r.notification.body)&&(n.notification.body=t),(t=r.notification.image)&&(n.notification.image=t),t=r.notification.icon)&&(n.notification.icon=t),r=s,(n=e).data&&(r.data=n.data),r=s,((n=e).fcmOptions||null!=(i=n.notification)&&i.click_action)&&(r.fcmOptions={},(i=null!=(i=null==(i=n.fcmOptions)?void 0:i.link)?i:null==(i=n.notification)?void 0:i.click_action)&&(r.fcmOptions.link=i),i=null==(i=n.fcmOptions)?void 0:i.analytics_label)&&(r.fcmOptions.analyticsLabel=i),s}var oA="AzSCbw63g1R0nCw85jG8",lA="Iaya3yLKwmgvh7cF0q4",hA=[];for(let PD=0;PD<oA.length;PD++)hA.push(oA.charAt(PD)),PD<lA.length&&hA.push(lA.charAt(PD));function uA(e){return J1.create("missing-app-config-values",{valueName:e})}hA.join("");class cA{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw uA("App Configuration Object");if(!e.name)throw uA("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw uA(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}async function dA(e){try{e.swRegistration=await navigator.serviceWorker.register(N1,{scope:R1}),e.swRegistration.update().catch(()=>{}),t=e.swRegistration,await new Promise((r,e)=>{let n=setTimeout(()=>e(new Error(`Service worker not registered after ${F1} ms`)),F1),i=t.installing||t.waiting;t.active?(clearTimeout(n),r()):i?i.onstatechange=e=>{var t;"activated"===(null==(t=e.target)?void 0:t.state)&&(i.onstatechange=null,clearTimeout(n),r())}:(clearTimeout(n),e(new Error("No incoming service worker found.")))})}catch(e){throw J1.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}var t}async function pA(e,t){if(!navigator)throw J1.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw J1.create("permission-blocked");n=e,await!((r=null==t?void 0:t.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=P1));var r=e,n=null==t?void 0:t.serviceWorkerRegistration;if(n||r.swRegistration||await dA(r),n||!r.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw J1.create("invalid-sw-registration");r.swRegistration=n}return await 0,nA(e)}async function fA(e,t,r){var n=(e=>{switch(e){case T1.NOTIFICATION_CLICKED:return"notification_open";case T1.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[D1],message_name:r[O1],message_time:r[M1],message_device_time:Math.floor(Date.now()/1e3)})}async function gA(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===T1.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(aA(n)):e.onMessageHandler.next(aA(n))),"object"==typeof(t=r=n.data))&&t&&D1 in t&&"1"===r[L1]&&await fA(e,n.messageType,r)}let mA="@firebase/messaging",vA="0.12.21",_A=e=>{let t=new cA(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>gA(t,e)),t},yA=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>pA(t,e)}};function wA(e){return(async e=>{if(navigator)return e.swRegistration||await dA(e),iA(e);throw J1.create("only-available-in-window")})(e=w(e))}function bA(e,t){var r=e=w(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw J1.create("only-available-in-window")}xt(new u("messaging",_A,"PUBLIC")),xt(new u("messaging-internal",yA,"PRIVATE")),d(mA,vA),d(mA,vA,"esm2017");let IA="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",TA="https://fcmregistrations.googleapis.com/v1",EA="FCM_MSG",CA="google.c.a.c_id",kA=3,SA=1;function AA(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(hN=E1=E1||{})[hN.DATA_MESSAGE=1]="DATA_MESSAGE",hN[hN.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(t=C1=C1||{}).PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked";let NA="fcm_token_details_db",RA=5,PA="fcm_token_object_Store";async function xA(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(NA))return null;let l=null;return(await gt(NA,RA,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(PA)&&(i=await(a=n.objectStore(PA)).index("fcmSenderId").get(o),await a.clear(),i)&&(2===t?(a=i).auth&&a.p256dh&&a.endpoint&&(l={token:a.fcmToken,createTime:null!=(s=a.createTime)?s:Date.now(),subscriptionOptions:{auth:a.auth,p256dh:a.p256dh,endpoint:a.endpoint,swScope:a.swScope,vapidKey:"string"==typeof a.vapidKey?a.vapidKey:AA(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:AA(s.auth),p256dh:AA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:AA(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:AA(a.auth),p256dh:AA(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:AA(a.vapidKey)}}))}})).close(),await mt(NA),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(l)?l:null}let DA="firebase-messaging-database",OA=1,MA="firebase-messaging-store",LA=null;function FA(){return LA=LA||gt(DA,OA,{upgrade:(e,t)=>{0===t&&e.createObjectStore(MA)}})}async function UA(e){var t=qA(e),t=await(await FA()).transaction(MA).objectStore(MA).get(t);return t||((t=await xA(e.appConfig.senderId))?(await VA(e,t),t):void 0)}async function VA(e,t){var r=qA(e),n=(await FA()).transaction(MA,"readwrite");return await n.objectStore(MA).put(t,r),await n.done,t}function qA({appConfig:e}){return e.appId}let BA=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function jA(e,t){var r={method:"DELETE",headers:await KA(e)};try{var n,i=await(await fetch(zA(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,BA.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw BA.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function zA({projectId:e}){return TA+`/projects/${e}/registrations`}async function KA({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function WA({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==IA&&(i.web.applicationPubKey=n),i}let HA=6048e5;async function GA(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:AA(a.getKey("auth")),p256dh:AA(a.getKey("p256dh"))},o=await UA(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+HA?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await KA(e),n=WA(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(zA(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw BA.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,BA.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw BA.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await VA(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await jA(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return QA(e.firebaseDependencies,a)}async function $A(e){var t,r=await UA(e.firebaseDependencies),r=(r&&(await jA(e.firebaseDependencies,r.token),r=qA(e.firebaseDependencies),await(t=(await FA()).transaction(MA,"readwrite")).objectStore(MA).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function QA(e,t){var r={token:await(async(e,t)=>{var r=await KA(e),n=WA(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(zA(e.appConfig),r);i=await s.json()}catch(e){throw BA.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,BA.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw BA.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await VA(e,r),r.token}var YA="AzSCbw63g1R0nCw85jG8",JA="Iaya3yLKwmgvh7cF0q4",XA=[];for(let xD=0;xD<YA.length;xD++)XA.push(YA.charAt(xD)),xD<JA.length&&XA.push(JA.charAt(xD));async function ZA(e,t){var r=((e,t)=>{var r,n={};return e.from&&(n.project_number=e.from),e.fcmMessageId&&(n.message_id=e.fcmMessageId),n.instance_id=t,n.message_type=(e.notification?E1.DISPLAY_NOTIFICATION:E1.DATA_MESSAGE).toString(),n.sdk_platform=kA.toString(),n.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(n.collapse_key=e.collapse_key),n.event=SA.toString(),null!=(r=e.fcmOptions)&&r.analytics_label&&(n.analytics_label=null==(r=e.fcmOptions)?void 0:r.analytics_label),n})(t,await e.firebaseDependencies.installations.getId()),n=r,t=t.productId,r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:n}),t&&(r.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(r)}async function eN(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await ZA(t,r);var n,i,s,a=await rN();if(a.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=C1.PUSH_RECEIVED;for(o of e)o.postMessage(l)}else r.notification&&await(e=>{var t=e.actions,r=Notification.maxActions;return t&&r&&t.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`),self.registration.showNotification(null!=(t=e.title)?t:"",e)})((e=r,(a=Object.assign({},e.notification)).data={[EA]:e},a)),t&&t.onBackgroundMessageHandler&&(a={from:(e=r).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=a,(n=e).notification&&(i.notification={},(r=n.notification.title)&&(i.notification.title=r),(r=n.notification.body)&&(i.notification.body=r),(r=n.notification.image)&&(i.notification.image=r),r=n.notification.icon)&&(i.notification.icon=r),n=a,(i=e).data&&(n.data=i.data),n=a,((i=e).fcmOptions||null!=(s=i.notification)&&s.click_action)&&(n.fcmOptions={},(s=null!=(s=null==(s=i.fcmOptions)?void 0:s.link)?s:null==(s=i.notification)?void 0:s.click_action)&&(n.fcmOptions.link=s),s=null==(s=i.fcmOptions)?void 0:s.analytics_label)&&(n.fcmOptions.analyticsLabel=s),r=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(r):t.onBackgroundMessageHandler.next(r))}}async function tN(e){var t=null==(t=null==(t=e.notification)?void 0:t.data)?void 0:t[EA];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var r=(e=>{var t=null!=(t=null==(t=e.fcmOptions)?void 0:t.link)?t:null==(t=e.notification)?void 0:t.click_action;return t||((e=>"object"==typeof e&&e&&CA in e)(e.data)?self.location.origin:null)})(t);if(r){var n,i=new URL(r,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await(async e=>{var t;for(t of await rN()){var r=new URL(t.url,self.location.href);if(e.host===r.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(r),n=3e3,await new Promise(e=>{setTimeout(e,n)})),e)return t.messageType=C1.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function rN(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function nN(e){return BA.create("missing-app-config-values",{valueName:e})}XA.join("");class iN{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw nN("App Configuration Object");if(!e.name)throw nN("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw nN(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}let sN=e=>{let t=new iN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(eN(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var r;(r=e.newSubscription)?(r=await UA(t.firebaseDependencies),await $A(t),t.vapidKey=null!=(r=null==(r=null==r?void 0:r.subscriptionOptions)?void 0:r.vapidKey)?r:IA,await GA(t)):await $A(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(tN(e))}),t};function aN(e,t){var r=e=w(e),e=t;if(void 0!==self.document)throw BA.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}xt(new u("messaging-sw",sN,"PUBLIC"));var oN,lN,hN;class uN{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>pA(e=w(e),t))(this._delegate,e)}async deleteToken(){return wA(this._delegate)}onMessage(e){return bA(this._delegate,e)}onBackgroundMessage(e){return aN(this._delegate,e)}}let cN=e=>self&&"ServiceWorkerGlobalScope"in self?new uN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new uN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),dN={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?me()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&me()&&_e()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};lr.INTERNAL.registerComponent(new u("messaging-compat",cN,"PUBLIC").setServiceProps(dN)),lr.registerVersion("@firebase/messaging-compat","0.2.21");let pN="firebasestorage.googleapis.com",fN="storageBucket";class gN extends ye{constructor(e,t,r=0){super(mN(e),`Firebase Storage: ${t} (${mN(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,gN.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return mN(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+`
|
|
31
|
+
`+this.customData.serverResponse:this.message=this._baseMessage}}function mN(e){return"storage/"+e}function vN(){return new gN(oN.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function _N(){return new gN(oN.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function yN(){return new gN(oN.CANCELED,"User canceled the upload/download.")}function wN(){return new gN(oN.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function bN(e){return new gN(oN.INVALID_ARGUMENT,e)}function IN(){return new gN(oN.APP_DELETED,"The Firebase app was deleted.")}function TN(e){return new gN(oN.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function EN(e,t){return new gN(oN.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function CN(e){throw new gN(oN.INTERNAL_ERROR,"Internal error: "+e)}(r=oN=oN||{}).UNKNOWN="unknown",r.OBJECT_NOT_FOUND="object-not-found",r.BUCKET_NOT_FOUND="bucket-not-found",r.PROJECT_NOT_FOUND="project-not-found",r.QUOTA_EXCEEDED="quota-exceeded",r.UNAUTHENTICATED="unauthenticated",r.UNAUTHORIZED="unauthorized",r.UNAUTHORIZED_APP="unauthorized-app",r.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",r.INVALID_CHECKSUM="invalid-checksum",r.CANCELED="canceled",r.INVALID_EVENT_NAME="invalid-event-name",r.INVALID_URL="invalid-url",r.INVALID_DEFAULT_BUCKET="invalid-default-bucket",r.NO_DEFAULT_BUCKET="no-default-bucket",r.CANNOT_SLICE_BLOB="cannot-slice-blob",r.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",r.NO_DOWNLOAD_URL="no-download-url",r.INVALID_ARGUMENT="invalid-argument",r.INVALID_ARGUMENT_COUNT="invalid-argument-count",r.APP_DELETED="app-deleted",r.INVALID_ROOT_OPERATION="invalid-root-operation",r.INVALID_FORMAT="invalid-format",r.INTERNAL_ERROR="internal-error",r.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class kN{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=kN.makeFromUrl(t,e)}catch(e){return new kN(t,"")}if(""===r.path)return r;throw e=t,new gN(oN.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var n="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+n+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${n}/o(/([^?#]*).*)?$`,"i"),o=t===pN?"(?:storage.googleapis.com|storage.cloud.google.com)":t,l=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${o}/${n}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let d=0;d<l.length;d++){var h=l[d],u=h.regex.exec(e);if(u){var c=u[h.indices.bucket];let e=u[h.indices.path];e=e||"",r=new kN(c,e),h.postModify(r);break}}if(null==r)throw t=e,new gN(oN.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class SN{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function AN(e){return"string"==typeof e||e instanceof String}function NN(e){return RN()&&e instanceof Blob}function RN(){return"undefined"!=typeof Blob}function PN(e,t,r,n){if(n<t)throw bN(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw bN(`Invalid value for '${e}'. Expected ${r} or less.`)}function xN(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function DN(e){var t,r,n=encodeURIComponent;let i="?";for(t in e)e.hasOwnProperty(t)&&(r=n(t)+"="+n(e[t]),i=i+r+"&");return i=i.slice(0,-1)}function ON(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(ax=lN=lN||{})[ax.NO_ERROR=0]="NO_ERROR",ax[ax.NETWORK_ERROR=1]="NETWORK_ERROR",ax[ax.ABORT=2]="ABORT";class MN{constructor(e,t,r,n,i,s,a,o,l,h,u,c=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=l,this.progressCallback_=h,this.connectionFactory_=u,this.retry=c,this.isUsingEmulator=d,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(i,e)=>{if(e)i(!1,new LN(!1,null,!0));else{let r=this.connectionFactory_(),n=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;var e=r.getErrorCode()===lN.NO_ERROR,t=r.getStatus();!e||ON(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===lN.ABORT,i(!1,new LN(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new LN(e,r)))})}},t=(e,t)=>{var r=this.resolve_,n=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?r(s):r()}catch(e){n(e)}else null!==i?((s=vN()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?IN:yN)()):n(_N())};this.canceled_?t(0,new LN(!1,null,!0)):this.backoffId_=((t,r,e)=>{let n=1,i=null,s=null,a=!1,o=0;function l(){return 2===o}let h=!1;function u(...e){h||(h=!0,r.apply(null,e))}function c(e){i=setTimeout(()=>{i=null,t(p,l())},e)}function d(){s&&clearTimeout(s)}function p(e,...t){if(h)d();else if(e)d(),u.call(null,e,...t);else if(l()||a)d(),u.call(null,e,...t);else{n<64&&(n*=2);let e;c(e=1===o?(o=2,0):1e3*(n+Math.random()))}}let f=!1;function g(e){f||(f=!0,d(),h)||(null!==i?(e||(o=2),clearTimeout(i),c(0)):e||(o=1))}return c(0),s=setTimeout(()=>{g(a=!0)},e),g})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class LN{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function FN(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var n=new r;for(let e=0;e<t.length;e++)n.append(t[e]);return n.getBlob()}if(RN())return new Blob(t);throw new gN(oN.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function UN(e){if("undefined"==typeof atob)throw new gN(oN.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let VN={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class qN{constructor(e,t){this.data=e,this.contentType=t||null}}function BN(e,t){switch(e){case VN.RAW:return new qN(jN(t));case VN.BASE64:case VN.BASE64URL:return new qN(zN(e,t));case VN.DATA_URL:return new qN((r=t,(n=new KN(r)).base64?zN(VN.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw EN(VN.DATA_URL,"Malformed data URL.")}return jN(t)})(n.rest)),(r=t,new KN(r).contentType))}var r,n;throw vN()}function jN(t){var r,n,i=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);e<=127?i.push(e):e<=2047?i.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,n=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&n,i.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):i.push(239,191,189):56320==(64512&e)?i.push(239,191,189):i.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(i)}function zN(t,e){switch(t){case VN.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw EN(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case VN.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw EN(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=UN(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw EN(t,"Invalid character found")}var s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class KN{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw EN(VN.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,n,t=t[1]||null;null!=t&&(this.base64=(n=";base64",(r=t).length>=n.length&&r.substring(r.length-n.length)===n),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class WN{constructor(e,t){let r=0,n="";NN(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){var r,n,i,s;return NN(this.data_)?(r=this.data_,i=e,s=t,null===(r=(n=r).webkitSlice?n.webkitSlice(i,s):n.mozSlice?n.mozSlice(i,s):n.slice?n.slice(i,s):null)?null:new WN(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new WN(r,!0))}static getBlob(...e){if(RN())return i=e.map(e=>e instanceof WN?e.data_:e),new WN(FN.apply(null,i));{var i=e.map(e=>AN(e)?BN(VN.RAW,e).data:e.data_);let t=0,r=(i.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),n=0;return i.forEach(e=>{for(let t=0;t<e.length;t++)r[n++]=e[t]}),new WN(r,!0)}}uploadData(){return this.data_}}function HN(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function GN(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function $N(e,t){return t}class QN{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||$N}}let YN=null;function JN(){var e,t;return YN||((e=[]).push(new QN("bucket")),e.push(new QN("generation")),e.push(new QN("metageneration")),e.push(new QN("name","fullPath",!0)),(t=new QN("name")).xform=function(e,t){return!AN(t=t)||t.length<2?t:GN(t)},e.push(t),(t=new QN("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new QN("timeCreated")),e.push(new QN("updated")),e.push(new QN("md5Hash",null,!0)),e.push(new QN("cacheControl",null,!0)),e.push(new QN("contentDisposition",null,!0)),e.push(new QN("contentEncoding",null,!0)),e.push(new QN("contentLanguage",null,!0)),e.push(new QN("contentType",null,!0)),e.push(new QN("metadata","customMetadata",!0)),YN=e),YN}function XN(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new kN(e,t);return n._makeStorageReference(e)}})}function ZN(e,t,r){var n=HN(t);if(null===n)return null;var t=e,i=n,s=r,a={type:"file"},o=s.length;for(let h=0;h<o;h++){var l=s[h];a[l.local]=l.xform(a,i[l.server])}return XN(a,t),a}function eR(e,t){var r={},n=t.length;for(let s=0;s<n;s++){var i=t[s];i.writable&&(r[i.server]=e[i.local])}return JSON.stringify(r)}let tR="prefixes",rR="items";function nR(e,t,r){var n=HN(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[tR])for(var o of r[tR]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new kN(s,o));a.prefixes.push(o)}if(r[rR])for(var l of r[rR]){l=i._makeStorageReference(new kN(s,l.name));a.items.push(l)}return a}class iR{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function sR(e){if(!e)throw vN()}function aR(n,i){return function(e,t){var r=ZN(n,t,i);return sR(null!==r),r}}function oR(n,i){return function(e,t){var r=nR(n,i,t);return sR(null!==r),r}}function lR(o,n){return function(e,t){var r=ZN(o,t,n);sR(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=HN(t)))return null;if(!AN(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let n=encodeURIComponent;return r.split(",").map(e=>{var t=i.bucket,r=i.fullPath;return xN("/b/"+n(t)+"/o/"+n(r),s,a)+DN({alt:"media",token:e})})[0]}}}function hR(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new gN(oN.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new gN(oN.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new gN(oN.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new gN(oN.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function uR(n){let i=hR(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new gN(oN.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function cR(e,t,r){var n=xN(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new iR(n,"GET",aR(e,r),i);return n.errorHandler=uR(t),n}function dR(e,t,r){var n=Object.assign({},r);return n.fullPath=e.path,n.size=t.size(),n.contentType||(n.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),n}function pR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),l=(a["Content-Type"]="multipart/related; boundary="+o,dR(t,n,i)),h="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+eR(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",h=WN.getBlob(h,n,o);if(null===h)throw wN();o={name:l.fullPath},l=xN(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new iR(l,"POST",aR(e,r),s);return l.urlParams=o,l.headers=a,l.body=h.uploadData(),l.errorHandler=hR(t),l}class fR{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function gR(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){sR(!1)}return sR(!!r&&-1!==(t||["active"]).indexOf(r)),r}function mR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=dR(t,n,i),o={name:a.fullPath},s=xN(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+n.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=eR(a,r),h=e.maxUploadRetryTime;s=new iR(s,"POST",function(e){gR(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){sR(!1)}return sR(AN(t)),t},h);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=hR(t),s}function vR(e,t,r,i){var n=e.maxUploadRetryTime,n=new iR(r,"POST",function(e){var t=gR(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){sR(!1)}r||sR(!1);var n=Number(r);return sR(!isNaN(n)),new fR(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=hR(t),n}function _R(e,a,t,o,r,l,n,i){let h=new fR(0,0);if(n?(h.current=n.current,h.total=n.total):(h.current=0,h.total=o.size()),o.size()!==h.total)throw new gN(oN.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=h.total-h.current;let u=s;0<r&&(u=Math.min(u,r));var c=h.current,d=c+u;let p="";s={"X-Goog-Upload-Command":p=0===u?"finalize":s===u?"upload, finalize":"upload","X-Goog-Upload-Offset":""+h.current},c=o.slice(c,d);if(null===c)throw wN();d=a.maxUploadRetryTime,d=new iR(t,"POST",function(e,t){var r=gR(e,["active","final"]),n=h.current+u,i=o.size();let s;return s="final"===r?aR(a,l)(e,t):null,new fR(n,i,"final"===r,s)},d);return d.headers=s,d.body=c.uploadData(),d.progressCallback=i||null,d.errorHandler=hR(e),d}let yR={STATE_CHANGED:"state_changed"},wR={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function bR(e){switch(e){case"running":case"pausing":case"canceling":return wR.RUNNING;case"paused":return wR.PAUSED;case"success":return wR.SUCCESS;case"canceled":return wR.CANCELED;default:return wR.ERROR}}class IR{constructor(e,t,r){var n;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=r?r:void 0):(this.next=(n=e).next,this.error=n.error,this.complete=n.complete)}}function TR(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class ER extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=lN.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=lN.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=lN.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw CN("cannot .send() more than once");if(ee(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==i)for(var s in i)i.hasOwnProperty(s)&&this.xhr_.setRequestHeader(s,i[s].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw CN("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw CN("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw CN("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw CN("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function CR(){return new ER}class kR{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=JN(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(oN.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(ON(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=_N()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(oN.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=mR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let n=this._uploadUrl;this._resolveToken((e,t)=>{var r=vR(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let i=262144*this._chunkMultiplier,s=new fR(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=_R(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var n=this._ref.storage._makeRequest(r,CR,e,t,!1);(this._request=n).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=cR(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=pR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,CR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=yN(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=bR(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,n){let i=new IR(t||void 0,r||void 0,n||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(bR(this._state)){case wR.SUCCESS:TR(this._resolve.bind(null,this.snapshot))();break;case wR.CANCELED:case wR.ERROR:TR(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(bR(this._state)){case wR.RUNNING:case wR.PAUSED:e.next&&TR(e.next.bind(e,this.snapshot))();break;case wR.SUCCESS:e.complete&&TR(e.complete.bind(e))();break;case wR.CANCELED:case wR.ERROR:default:e.error&&TR(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class SR{constructor(e,t){this._service=e,t instanceof kN?this._location=t:this._location=kN.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new SR(e,t)}get root(){var e=new kN(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return GN(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new kN(this._location.bucket,r),new SR(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw TN(e)}}function AR(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await NR(t,i);r.prefixes.push(...s.prefixes);r.items.push(...s.items);null!=s.nextPageToken&&await e(t,r,s.nextPageToken)}(e,t).then(()=>t)}function NR(e,t){null!=t&&"number"==typeof t.maxResults&&PN("options.maxResults",1,1e3,t.maxResults);var r,n,i,s,a,o=t||{},l=(t=e.storage,r=e._location,n="/",i=o.pageToken,s=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",n&&0<n.length&&(o.delimiter=n),i&&(o.pageToken=i),s&&(o.maxResults=s),a=xN(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new iR(a,"GET",oR(t,r.bucket),l)).urlParams=o,a.errorHandler=hR(r),a);return e.storage.makeRequestWithTokens(l,CR)}function RR(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=JN(),s=xN(n.fullServerUrl(),r.host,r._protocol),a=eR(t,i),o=r.maxOperationRetryTime,(s=new iR(s,"PATCH",aR(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=uR(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,CR)}function PR(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=JN(),i=xN(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new iR(i,"GET",lR(t,n),s)).errorHandler=uR(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,CR).then(e=>{if(null===e)throw new gN(oN.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function xR(e){e._throwIfRoot("deleteObject");t=e.storage,n=xN((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new iR(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=uR(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,CR)}function DR(e,t){r=e._location.path,n=t.split("/").filter(e=>0<e.length).join("/");var r,n=0===r.length?n:r+"/"+n,n=new kN(e._location.bucket,n);return new SR(e.storage,n)}function OR(e,t){if(e instanceof FR){var r=e;if(null==r._bucket)throw new gN(oN.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+fN+"' property when initializing the app?");r=new SR(r,r._bucket);return null!=t?OR(r,t):r}return void 0!==t?DR(e,t):e}function MR(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof FR)return r=e,n=t,new SR(r,n);throw bN("To use ref(service, url), the first argument must be a Storage instance.")}return OR(e,t);var r,n}function LR(e,t){var r=null==t?void 0:t[fN];return null==r?null:kN.makeFromBucketSpec(r,e)}class FR{constructor(e,t,r,n,i,s=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=i,this._isUsingEmulator=s,this._bucket=null,this._host=pN,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?kN.makeFromBucketSpec(n,this._host):LR(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=kN.makeFromBucketSpec(this._url,e):this._bucket=LR(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){PN("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){PN("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new SR(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new SN(IN());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],u=DN(t.urlParams),u=t.url+u,c=Object.assign({},t.headers),h=c,(n=n)&&(h["X-Firebase-GMPID"]=n),h=c,null!==(n=i)&&0<n.length&&(h.Authorization="Firebase "+n),i=a,c["X-Firebase-Storage-Version"]="webjs/"+(null!=i?i:"AppManager"),h=c,null!==(n=r)&&(h["X-Firebase-AppCheck"]=n);let e=new MN(u,t.method,c,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,s,o,l);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,l,h,u,c}async makeRequestWithTokens(e,t){var[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let UR="@firebase/storage",VR="0.13.12";function qR(e,t,r){return e=w(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new kR(e,new WN(t),r)}function BR(e){return e=w(e),(e=e)._throwIfRoot("getMetadata"),t=cR(e.storage,e._location,JN()),e.storage.makeRequestWithTokens(t,CR);var t}function jR(e,t){return MR(e=w(e),t)}function zR(e,t,r,n={}){var i;[e,t,r,n={}]=[e,t,r,n],e.host=t+":"+r,(i=((i=ee(t))&&(te("https://"+e.host),se("Storage",!0)),e._isUsingEmulator=!0,e._protocol=i?"https":"http",n).mockUserToken)&&(e._overrideAuthToken="string"==typeof i?i:re(i,e.app.options.projectId))}function KR(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new FR(r,n,i,t,Vt)}xt(new u("storage",KR,"PUBLIC").setMultipleInstances(!0)),d(UR,VR,""),d(UR,VR,"esm2017");class WR{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class HR{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new WR(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new WR(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new WR(e,this,this._ref)):{next:t.next?e=>t.next(new WR(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,r||void 0,n||void 0)}}class GR{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new $R(e,this._service))}get items(){return this._delegate.items.map(e=>new $R(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class $R{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=DR(this._delegate,e);return new $R(t,this.storage)}get root(){return new $R(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new $R(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new HR(qR(this._delegate,e,t),this)}putString(e,t=VN.RAW,r){this._throwIfRoot("putString");var n=BN(t,e),i=Object.assign({},r);return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new HR(new kR(this._delegate,new WN(n.data,!0),i),this)}listAll(){return AR(w(this._delegate)).then(e=>new GR(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,NR(t=w(t),e).then(e=>new GR(e,this.storage));var t}getMetadata(){return BR(this._delegate)}updateMetadata(e){return RR(w(this._delegate),e)}getDownloadURL(){return PR(w(this._delegate))}delete(){return this._throwIfRoot("delete"),xR(w(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw TN(e)}}class QR{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(YR(e))throw bN("ref() expected a child path but got a URL, use refFromURL instead.");return new $R(jR(this._delegate,e),this)}refFromURL(e){if(!YR(e))throw bN("refFromURL() expected a full URL but got a child path, use ref() instead.");try{kN.makeFromUrl(e,this._delegate.host)}catch(e){throw bN("refFromUrl() expected a valid full URL but got an invalid one.")}return new $R(jR(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){zR(this._delegate,e,t,r)}}function YR(e){return/^[A-Za-z]+:\/\//.test(e)}function JR(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new QR(r,n)}hN=lr,Sm={TaskState:wR,TaskEvent:yR,StringFormat:VN,Storage:QR,Reference:$R},hN.INTERNAL.registerComponent(new u("storage-compat",JR,"PUBLIC").setServiceProps(Sm).setMultipleInstances(!0)),hN.registerVersion("@firebase/storage-compat","0.3.22");function XR(e){if("loading"===document.readyState)return"loading";var t=lP();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function ZR(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:hP(n)+(n.classList&&n.classList.value&&n.classList.value.trim()&&n.classList.value.trim().length?"."+n.classList.value.trim().replace(/\s+/g,"."):"");if(r.length+i.length>(t||100)-1)return r||i;if(r=r?i+">"+r:i,n.id)break;e=n.parentNode}}catch(e){}return r}function eP(i,e){var a,o,s,l;a=function(e){r={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(n=(n=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||n[0])&&(r={largestShiftTarget:ZR(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:XR(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=yP(function(){function e(e){e.forEach(function(e){var t,r;e.hadRecentInput||(t=i[0],r=i[i.length-1],n&&e.startTime-r.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,i.push(e)):(n=e.value,i=[e]))}),n>r.value&&(r.value=n,r.entries=i,t())}var t,r=fP("CLS",0),n=0,i=[],s=gP("layout-shift",e);s&&(t=mP(a,r,AP,o.reportAllChanges),_P(function(){e(s.takeRecords()),t(!0)}),dP(function(){r=fP("CLS",n=0),t=mP(a,r,AP,o.reportAllChanges),vP(function(){return t()})}),setTimeout(t,0))}),l=l||{},kP(function(){var t,r=CP(),n=fP("FCP"),i=gP("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-pP(),0),n.entries.push(e),t(!0))})});i&&(t=mP(s,n,SP,l.reportAllChanges),dP(function(e){n=fP("FCP"),t=mP(s,n,SP,l.reportAllChanges),vP(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function tP(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},kP(function(){var e;OP();function t(t){BP(function(){t.forEach(qP);var e=UP();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=fP("INP"),n=gP("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=mP(s,r,jP,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),_P(function(){t(n.takeRecords()),i(!0)}),dP(function(){FP=DP(),MP.length=0,LP.clear(),r=fP("INP"),i=mP(s,r,jP,a.reportAllChanges)}))}))}function rP(e){zP=zP.concat(e),QP()}function nP(){10<GP.size&&GP.forEach(function(e,t){LP.has(t)||GP.delete(t)});var r=MP.map(function(e){return HP.get(e.entries[0])}),n=KP.length-50;KP=KP.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<KP.length;e++){var t=KP[e];YP(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=zP.length-1-50;zP=zP.filter(function(e,t){return e.startTime>WP&&s<t||i.has(e)}),$P=-1}function iP(l,e){oP=oP||gP("long-animation-frame",rP),tP(function(e){t=(e=e).entries[0],o=HP.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=YP(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||GP.get(t.interactionId),a=[t.startTime+t.duration,n].concat(i.map(function(e){return e.startTime+e.duration})),a=Math.max.apply(Math,a),s={interactionTarget:ZR(s),interactionTargetElement:s,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:a,processedEventEntries:o,longAnimationFrameEntries:i,inputDelay:r-t.startTime,processingDuration:n-r,presentationDelay:Math.max(a-n,0),loadState:XR(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function sP(h,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=lP())&&(a=t.activationStart||0,n=(r=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===r.url})[0],l=Math.max(0,t.responseStart-a),i=Math.max(l,n?(n.requestStart||n.startTime)-a:0),s=Math.max(i,n?n.responseEnd-a:0),a=Math.max(s,r.startTime-a),o={element:ZR(r.element),timeToFirstByte:l,resourceLoadDelay:i-l,resourceLoadDuration:s-i,elementRenderDelay:a-s,navigationEntry:t,lcpEntry:r},r.url&&(o.url=r.url),n)&&(o.lcpResourceEntry=n);var t,r,n,i,s,a,o,l=Object.assign(e,{attribution:o});h(l)},o=e||{},kP(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-pP(),0),i.entries=[e],t())})}var t,r,n=CP(),i=fP("LCP"),s=gP("largest-contentful-paint",e);s&&(t=mP(a,i,JP,o.reportAllChanges),r=yP(function(){XP[i.id]||(e(s.takeRecords()),s.disconnect(),XP[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return BP(r)},{once:!0,capture:!0})}),_P(r),dP(function(e){i=fP("LCP"),t=mP(a,i,JP,o.reportAllChanges),vP(function(){i.value=performance.now()-e.timeStamp,XP[i.id]=!0,t(!0)})}))})}var aP,oP,lP=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},hP=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},uP=-1,cP=function(){return uP},dP=function(t){addEventListener("pageshow",function(e){e.persisted&&(uP=e.timeStamp,t(e))},!0)},pP=function(){var e=lP();return e&&e.activationStart||0},fP=function(e,t){var r=lP(),n="navigate";return 0<=cP()?n="back-forward-cache":r&&(document.prerendering||0<pP()?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},gP=function(e,t,r){try{var n;if(PerformanceObserver.supportedEntryTypes.includes(e))return(n=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},r||{})),n}catch(e){}},mP=function(t,r,n,i){var s,a;return function(e){0<=r.value&&(e||i)&&((a=r.value-(s||0))||void 0===s)&&(s=r.value,r.delta=a,r.rating=(e=r.value)>n[1]?"poor":e>n[0]?"needs-improvement":"good",t(r))}},vP=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},_P=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},yP=function(e){var t=!1;return function(){t||(e(),t=!0)}},wP=-1,bP=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},IP=function(e){"hidden"===document.visibilityState&&-1<wP&&(wP="visibilitychange"===e.type?e.timeStamp:0,EP())},TP=function(){addEventListener("visibilitychange",IP,!0),addEventListener("prerenderingchange",IP,!0)},EP=function(){removeEventListener("visibilitychange",IP,!0),removeEventListener("prerenderingchange",IP,!0)},CP=function(){return wP<0&&(wP=bP(),TP(),dP(function(){setTimeout(function(){wP=bP(),TP()},0)})),{get firstHiddenTime(){return wP}}},kP=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},SP=[1800,3e3],AP=[.1,.25],NP=0,RP=1/0,PP=0,xP=function(e){e.forEach(function(e){e.interactionId&&(RP=Math.min(RP,e.interactionId),PP=Math.max(PP,e.interactionId),NP=PP?(PP-RP)/7+1:0)})},DP=function(){return aP?NP:performance.interactionCount||0},OP=function(){"interactionCount"in performance||(aP=aP||gP("event",xP,{type:"event",buffered:!0,durationThreshold:0}))},MP=[],LP=new Map,FP=0,UP=function(){var e=Math.min(MP.length-1,Math.floor((DP()-FP)/50));return MP[e]},VP=[],qP=function(t){var e,r;VP.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=MP[MP.length-1],((e=LP.get(t.interactionId))||MP.length<10||t.duration>r.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(r={id:t.interactionId,latency:t.duration,entries:[t]},LP.set(r.id,r),MP.push(r)),MP.sort(function(e,t){return t.latency-e.latency}),10<MP.length)&&MP.splice(10).forEach(function(e){return LP.delete(e.id)}))},BP=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=yP(e),"hidden"===document.visibilityState?e():(r=t(e),_P(e)),r},jP=[200,500],zP=[],KP=[],WP=0,HP=new WeakMap,GP=new Map,$P=-1,QP=function(){$P<0&&($P=BP(nP))},YP=(VP.push(function(e){e.interactionId&&e.target&&!GP.has(e.interactionId)&&GP.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;WP=Math.max(WP,e.processingEnd);for(var n=KP.length-1;0<=n;n--){var i=KP[n];if(Math.abs(r-i.renderTime)<=8){(t=i).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:r,entries:[e]},KP.push(t)),!e.interactionId&&"first-input"!==e.entryType||HP.set(e,t),QP()}),function(e,t){for(var r,n=[],i=0;r=zP[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),JP=[2500,4e3],XP={};let ZP="@firebase/performance",ex="0.7.6",tx=ex,rx="FB-PERF-TRACE-MEASURE",nx="@firebase/performance/config",ix="@firebase/performance/configexpire";var sx,t,r,ax,e="Performance";let ox=new we("performance",e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),lx=new tt(e);lx.logLevel=c.INFO;let hx,ux;class cx{constructor(e){if(!(this.window=e))throw ox.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=sP,this.onINP=iP,this.onCLS=eP}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,r){this.performance&&this.performance.measure&&this.performance.measure(e,t,r)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&_e()?!!me()||(lx.info("IndexedDB is not supported by current browser"),!1):(lx.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,r){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())r(t)}).observe({entryTypes:[e]})}static getInstance(){return hx=void 0===hx?new cx(ux):hx}}let dx;function px(e,t){var r=e.length-t.length;if(r<0||1<r)throw ox.create("invalid String merger input");var n=[];for(let i=0;i<e.length;i++)n.push(e.charAt(i)),t.length>i&&n.push(t.charAt(i));return n.join("")}let fx;class gx{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=px("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=px("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return fx=void 0===fx?new gx:fx}}(t=sx=sx||{})[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN";let mx=["firebase_","google_","ga_"],vx=new RegExp("^[a-zA-Z]\\w*$");function _x(e){var t=null==(t=e.options)?void 0:t.appId;if(t)return t;throw ox.create("no app id")}let yx="0.0.1",wx={loggingEnabled:!0},bx="FIREBASE_INSTALLATIONS_AUTH";function Ix(e,t){var n,i,r=(()=>{var e=cx.getInstance().localStorage;if(e){var t=e.getItem(ix);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(nx);if(t)try{return JSON.parse(t)}catch(e){}}}})();return r?(Ex(r),Promise.resolve()):(i=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((n=e).installations).then(e=>{var t=(e=>{var t=null==(t=e.options)?void 0:t.projectId;if(t)return t;throw ox.create("no project id")})(n.app),r=(e=>{var t=null==(t=e.options)?void 0:t.apiKey;if(t)return t;throw ox.create("no api key")})(n.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+r,{method:"POST",headers:{Authorization:bx+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:_x(n.app),app_version:tx,sdk_version:yx})});return fetch(t).then(e=>{if(e.ok)return e.json();throw ox.create("RC response not ok")})}).catch(()=>{lx.info(Tx)}).then(Ex).then(e=>{var t;e=e,t=cx.getInstance().localStorage,e&&t&&(t.setItem(nx,JSON.stringify(e)),t.setItem(ix,String(Date.now()+60*gx.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let Tx="Could not fetch config, will use default configs";function Ex(e){var t,r;return e&&(t=gx.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=wx.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):wx.logSource&&(t.logSource=wx.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:wx.logEndPointUrl&&(t.logEndPointUrl=wx.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:wx.transportKey&&(t.transportKey=wx.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==wx.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=wx.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==wx.tracesSamplingRate&&(t.tracesSamplingRate=wx.tracesSamplingRate),t.logTraceAfterSampling=Cx(t.tracesSamplingRate),t.logNetworkAfterSampling=Cx(t.networkRequestsSamplingRate)),e}function Cx(e){return Math.random()<=e}let kx=1,Sx;function Ax(e){var r;return kx=2,Sx=Sx||(r=e,(()=>{let r=cx.getInstance().document;return new Promise(t=>{if(r&&"complete"!==r.readyState){let e=()=>{"complete"===r.readyState&&(r.removeEventListener("readystatechange",e),t())};r.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=r.installations,(t=e.getId()).then(e=>{dx=e}),t;var e,t}).then(e=>Ix(r,e)).then(()=>Nx(),()=>Nx()))}function Nx(){kx=3}let Rx=1e4,Px=1e3,xx=3,Dx=xx,Ox=[],Mx=!1;function Lx(e){setTimeout(()=>{Dx<=0||(0<Ox.length&&Fx(),Lx(Rx))},e)}function Fx(){let e=Ox.splice(0,Px);var t,r,n=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:gx.getInstance().logSource,log_event:n};t=n,n=gx.getInstance().getFlTransportFullUrl(),r=JSON.stringify(t),(navigator.sendBeacon&&navigator.sendBeacon(n,r)?Promise.resolve():fetch(n,{method:"POST",body:r,keepalive:!0}).then()).then(()=>{Dx=xx}).catch(()=>{Ox=[...e,...Ox],Dx--,lx.info(`Tries left: ${Dx}.`),Lx(Rx)})}function Ux(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw ox.create("invalid cc log");Ox=[...Ox,e]}}function Vx(){for(;0<Ox.length;)Fx()}let qx;function Bx(e,t){(qx=qx||{send:Ux(Kx),flush:Vx}).send(e,t)}function jx(e){var t=gx.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&cx.getInstance().requiredApisAvailable()&&(3===kx?zx(e):Ax(e.performanceController).then(()=>zx(e),()=>zx(e)))}function zx(e){var t;dx&&(t=gx.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&Bx(e,1)}function Kx(e,t){var r,n;return 0===t?(r={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},r={application_info:Wx(e.performanceController.app),network_request_metric:r},JSON.stringify(r)):(r={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(r.counters=t.counters),n=t.getAttributes(),0!==Object.keys(n).length&&(r.custom_attributes=n),n={application_info:Wx(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function Wx(e){return{google_app_id:_x(e),app_instance_id:dx,web_app_info:{sdk_version:tx,page_url:cx.getInstance().getUrl(),service_worker_status:null!=(t=cx.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(cx.getInstance().document.visibilityState){case"visible":return sx.VISIBLE;case"hidden":return sx.HIDDEN;default:return sx.UNKNOWN}})(),effective_connection_type:(()=>{var e=cx.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function Hx(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=cx.getInstance().getTimeOrigin(),i=Math.floor(1e3*(s.startTime+i)),r=s.responseStart?Math.floor(1e3*(s.responseStart-s.startTime)):void 0,n=Math.floor(1e3*(s.responseEnd-s.startTime)),s={performanceController:e,url:s.name&&s.name.split("?")[0],responsePayloadBytes:s.transferSize,startTimeUs:i,timeToResponseInitiatedUs:r,timeToResponseCompletedUs:n},t=s,(i=gx.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&Bx(t,0)}let Gx=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class $x{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=cx.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=n||`${rx}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw ox.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw ox.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),jx(this)}record(e,t,r){if(e<=0)throw ox.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw ox.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),r&&r.attributes&&(this.customAttributes=Object.assign({},r.attributes)),r&&r.metrics)for(var n of Object.keys(r.metrics))isNaN(Number(r.metrics[n]))||(this.counters[n]=Math.floor(Number(r.metrics[n])));jx(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(n=e,i=this.name,0===n.length||100<n.length||!(i&&i.startsWith("_wt_")&&-1<Gx.indexOf(n))&&n.startsWith("_"))throw ox.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=null!=t?t:0,(r=Math.floor(i))<i&&lx.info(`Metric value should be an Integer, setting the value as : ${r}.`),r)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var r,n,i=!(0===(r=e).length||40<r.length||mx.some(e=>r.startsWith(e))||!r.match(vx)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw ox.create("invalid attribute name",{attributeName:e});if(!s)throw ox.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,r,n,i){var s=cx.getInstance().getUrl();if(s){var s=new $x(e,"_wt_"+s,!0),a=Math.floor(1e3*cx.getInstance().getTimeOrigin());s.setStartTime(a),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));r&&((a=r.find(e=>"first-paint"===e.name))&&a.startTime&&s.putMetric("_fp",Math.floor(1e3*a.startTime)),(a=r.find(e=>"first-contentful-paint"===e.name))&&a.startTime&&s.putMetric("_fcp",Math.floor(1e3*a.startTime)),i)&&s.putMetric("_fid",Math.floor(1e3*i)),this.addWebVitalMetric(s,"_lcp","lcp_element",n.lcp),this.addWebVitalMetric(s,"_cls","cls_largestShiftTarget",n.cls),this.addWebVitalMetric(s,"_inp","inp_interactionTarget",n.inp),jx(s),qx&&qx.flush()}}static addWebVitalMetric(e,t,r,n){n&&(e.putMetric(t,Math.floor(1e3*n.value)),n.elementAttribution)&&e.putAttribute(r,n.elementAttribution)}static createUserTimingTrace(e,t){jx(new $x(e,t,!1,t))}}let Qx={},Yx=!1,Jx;function Xx(n){dx&&(setTimeout(()=>{{var t=n;let e=cx.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>eD(t)):e.document.addEventListener("unload",()=>eD(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&eD(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{Jx=e}),e.onLCP(e=>{var t;Qx.lcp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.element}}),e.onCLS(e=>{var t;Qx.cls={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.largestShiftTarget}}),e.onINP(e=>{var t;Qx.inp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=cx.getInstance();for(e of r.getEntriesByType("resource"))Hx(t,e);r.setupObserver("resource",e=>Hx(t,e))},0),setTimeout(()=>{var e,t=n,r=cx.getInstance();for(e of r.getEntriesByType("measure"))Zx(t,e);r.setupObserver("measure",e=>Zx(t,e))},0))}function Zx(e,t){var r=t.name;r.substring(0,rx.length)!==rx&&$x.createUserTimingTrace(e,r)}function eD(r){if(!Yx){Yx=!0;var n=cx.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{$x.createOobTrace(r,e,t,Qx,Jx)},0)}}class tD{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),cx.getInstance().requiredApisAvailable()?ve().then(e=>{e&&(Mx||(Lx(5500),Mx=!0),Ax(this).then(()=>Xx(this),()=>Xx(this)),this.initialized=!0)}).catch(e=>{lx.info("Environment doesn't support IndexedDB: "+e)}):lx.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){gx.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return gx.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){gx.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return gx.getInstance().dataCollectionEnabled}}let rD="[DEFAULT]";let nD=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==rD)throw ox.create("FB not default");if("undefined"==typeof window)throw ox.create("no window");e=window,ux=e;r=new tD(r,n);return r._init(t),r};xt(new u("performance",nD,"PUBLIC")),d(ZP,ex),d(ZP,ex,"esm2017");class iD{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=w(t),new $x(t,e);var t}}function sD(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new iD(t,r)}(r=lr).INTERNAL.registerComponent(new u("performance-compat",sD,"PUBLIC")),r.registerVersion("@firebase/performance-compat","0.2.19");let aD="@firebase/remote-config";class oD{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let lD=new we("remoteconfig","Remote Config",{"already-initialized":"Remote Config already initialized","registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser","custom-signal-max-allowed-signals":"Setting more than {$maxSignals} custom signals is not supported."});let hD=["1","true","t","yes","y","on"];class uD{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=hD.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function cD(e){var t=w(e),[r,n]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(r&&r.config&&r.eTag&&r.eTag!==n)&&(await Promise.all([t._storageCache.setActiveConfig(r.config),t._storage.setActiveConfigEtag(r.eTag)]),!0)}function dD(e){let t=w(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function pD(t){var r=w(t);let e=new oD;setTimeout(async()=>{e.abort()},r.settings.fetchTimeoutMillis);var n,i=r._storageCache.getCustomSignals();i&&r._logger.debug("Fetching config with custom signals: "+JSON.stringify(i));try{await r._client.fetch({cacheMaxAgeMillis:r.settings.minimumFetchIntervalMillis,signal:e,customSignals:i}),await r._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";i=(n=e)instanceof ye&&-1!==n.code.indexOf(t)?"throttle":"failure";throw await r._storageCache.setLastFetchStatus(i),e}}function fD(r){var e,t,n=w(r);return[e={},t={}]=[n._storageCache.getActiveConfig(),n.defaultConfig],Object.keys(Object.assign(Object.assign({},e),t)).reduce((e,t)=>(e[t]=gD(r,t),e),{})}function gD(e,t){var r=w(e),n=(r._isInitializationComplete||r._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),r._storageCache.getActiveConfig());return n&&void 0!==n[t]?new uD("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new uD("default",String(r.defaultConfig[t])):(r._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new uD("static"))}class mD{constructor(e,t,r,n){this.client=e,this.storage=t,this.storageCache=r,this.logger=n}isCachedDataFresh(e,t){var r;return t?(r=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${r}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r=r<=e}.`),r):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,r]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(r&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return r;e.eTag=r&&r.eTag;t=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&r.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(r),t}}class vD{constructor(e,t,r,n,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=r,this.projectId=n,this.apiKey=i,this.appId=s}async fetch(r){var e,[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":r.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:r.customSignals},n={method:"POST",headers:s,body:JSON.stringify(t)},s=fetch(i,n),t=new Promise((e,t)=>{r.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([s,t]),a=await s}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),lD.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let l,h;if(200===a.status){let e;try{e=await a.json()}catch(e){throw lD.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}l=e.entries,h=e.state}if("INSTANCE_STATE_UNSPECIFIED"===h?o=500:"NO_CHANGE"===h?o=304:"NO_TEMPLATE"!==h&&"EMPTY_CONFIG"!==h||(l={}),304!==o&&200!==o)throw lD.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l}}}class _D{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:r}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(lD.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var n=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),n}catch(e){if((e=>{var t;return e instanceof ye&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+He(r),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class yD{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,r,n,i){this.app=e,this._client=t,this._storageCache=r,this._storage=n,this._logger=i,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function wD(e,t){var r=e.target.error||void 0;return lD.create(t,{originalErrorMessage:r&&(null==r?void 0:r.message)})}let bD="app_namespace_store";class ID{getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}getCustomSignals(){return this.get("custom_signals")}}class TD extends ID{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(wD(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(bD,{keyPath:"compositeKey"})}}catch(e){r(lD.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=r,this.openDbPromise=n}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([bD],"readwrite"),r=CD(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",r,t),r}async getWithTransaction(s,a){return new Promise((r,t)=>{var e=a.objectStore(bD),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(wD(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(lD.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(bD),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(wD(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(lD.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([bD],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([bD],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([bD],"readwrite").objectStore(bD),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(wD(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(lD.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class ED extends ID{constructor(){super(...arguments),this.storage={}}async get(e){return Promise.resolve(this.storage[e])}async set(e,t){return this.storage[e]=t,Promise.resolve(void 0)}async delete(e){return this.storage[e]=void 0,Promise.resolve()}async setCustomSignals(e){var t=this.storage.custom_signals||{};return this.storage.custom_signals=CD(e,t),Promise.resolve(this.storage.custom_signals)}}function CD(e,t){var r=Object.assign(Object.assign({},t),e),r=Object.fromEntries(Object.entries(r).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(r).length)throw lD.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class kD{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),r=this.storage.getActiveConfig(),n=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await r),e=(t&&(this.activeConfig=t),await n);e&&(this.customSignals=e)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}async setCustomSignals(e){this.customSignals=await this.storage.setCustomSignals(e)}}async function SD(){if(!me())return!1;try{return await ve()}catch(e){return!1}}xt(new u("remote-config",function(e,{options:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:s,appId:a}=r.options;if(!i)throw lD.create("registration-project-id");if(!s)throw lD.create("registration-api-key");if(!a)throw lD.create("registration-app-id");var o=(null==t?void 0:t.templateId)||"firebase",l=me()?new TD(a,r.name,o):new ED,h=new kD(l),u=new tt(aD),n=(u.logLevel=c.ERROR,new vD(n,Vt,o,i,s,a)),o=new _D(n,l),i=new mD(o,l,h,u),s=new yD(r,i,h,l,u);return dD(s),s},"PUBLIC").setMultipleInstances(!0)),d(aD,"0.6.4"),d(aD,"0.6.4","esm2017");class AD{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return cD(this._delegate)}ensureInitialized(){return dD(this._delegate)}fetch(){return pD(this._delegate)}fetchAndActivate(){return(async e=>(await pD(e=w(e)),cD(e)))(this._delegate)}getAll(){return fD(this._delegate)}getBoolean(e){return gD(w(this._delegate),e).asBoolean()}getNumber(e){return gD(w(this._delegate),e).asNumber()}getString(e){return gD(w(this._delegate),e).asString()}getValue(e){return gD(this._delegate,e)}setLogLevel(e){var t=this._delegate,r=w(t);switch(e){case"debug":r._logger.logLevel=c.DEBUG;break;case"silent":r._logger.logLevel=c.SILENT;break;default:r._logger.logLevel=c.ERROR}}}function ND(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new AD(r,n)}return(ax=lr).INTERNAL.registerComponent(new u("remoteConfig-compat",ND,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:SD})),ax.registerVersion("@firebase/remote-config-compat","0.2.17"),console.warn(`
|
|
32
32
|
It looks like you're using the development build of the Firebase JS SDK.
|
|
33
33
|
When deploying Firebase apps to production, it is advisable to only import
|
|
34
34
|
the individual SDK components you intend to use.
|
|
@@ -37,5 +37,5 @@ For the CDN builds, these are available in the following manner
|
|
|
37
37
|
(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):
|
|
38
38
|
|
|
39
39
|
https://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js
|
|
40
|
-
`),lr.registerVersion("firebase","11.
|
|
40
|
+
`),lr.registerVersion("firebase","11.9.0","compat-cdn"),lr});
|
|
41
41
|
//# sourceMappingURL=firebase-compat.js.map
|