D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
ebrokers.online
/
node_modules
/
firebase
/
Filename :
firebase-compat.js
back
Copy
((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 j(t)},j=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 B;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 B 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){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch(e){return!1}}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)"> <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"/> </g> <defs> <clipPath id="clip0_6013_33858"> <rect width="24" height="24" fill="white"/> </clipPath> </defs>`):(l.innerHTML=`<g clip-path="url(#clip0_6083_34804)"> <path d="M11.4 15.2H12.6V11.2H11.4V15.2ZM12 10C12.1667 10 12.3056 9.94444 12.4167 9.83333C12.5389 9.71111 12.6 9.56667 12.6 9.4C12.6 9.23333 12.5389 9.09444 12.4167 8.98333C12.3056 8.86111 12.1667 8.8 12 8.8C11.8333 8.8 11.6889 8.86111 11.5667 8.98333C11.4556 9.09444 11.4 9.23333 11.4 9.4C11.4 9.56667 11.4556 9.71111 11.5667 9.83333C11.6889 9.94444 11.8333 10 12 10ZM12 18.4C11.1222 18.4 10.2944 18.2333 9.51667 17.9C8.73889 17.5667 8.05556 17.1111 7.46667 16.5333C6.88889 15.9444 6.43333 15.2611 6.1 14.4833C5.76667 13.7056 5.6 12.8778 5.6 12C5.6 11.1111 5.76667 10.2833 6.1 9.51667C6.43333 8.73889 6.88889 8.06111 7.46667 7.48333C8.05556 6.89444 8.73889 6.43333 9.51667 6.1C10.2944 5.76667 11.1222 5.6 12 5.6C12.8889 5.6 13.7167 5.76667 14.4833 6.1C15.2611 6.43333 15.9389 6.89444 16.5167 7.48333C17.1056 8.06111 17.5667 8.73889 17.9 9.51667C18.2333 10.2833 18.4 11.1111 18.4 12C18.4 12.8778 18.2333 13.7056 17.9 14.4833C17.5667 15.2611 17.1056 15.9444 16.5167 16.5333C15.9389 17.1111 15.2611 17.5667 14.4833 17.9C13.7167 18.2333 12.8889 18.4 12 18.4ZM12 17.2C13.4444 17.2 14.6722 16.6944 15.6833 15.6833C16.6944 14.6722 17.2 13.4444 17.2 12C17.2 10.5556 16.6944 9.32778 15.6833 8.31667C14.6722 7.30555 13.4444 6.8 12 6.8C10.5556 6.8 9.32778 7.30555 8.31667 8.31667C7.30556 9.32778 6.8 10.5556 6.8 12C6.8 13.4444 7.30556 14.6722 8.31667 15.6833C9.32778 16.6944 10.5556 17.2 12 17.2Z" fill="#212121"/> </g> <defs> <clipPath id="clip0_6083_34804"> <rect width="24" height="24" fill="white"/> </clipPath> </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 Se(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function ke(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 Le(e,t){var r=new Me(e,t);return r.subscribe.bind(r)}class Me{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.2",Et=new tt("@firebase/app");let Ct="[DEFAULT]",St={"@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"},kt=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 kt.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 Lt=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 Mt{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 Lt.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 Mt{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 Lt.create("server-app-deleted")}}let Vt="11.10.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 Lt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Lt.create("no-options");var s=kt.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Lt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Mt(r,n,o);return kt.set(i,s),s}function jt(e=Ct){var t=kt.get(e);if(!t&&e===Ct&&J())return qt();if(t)return t;throw Lt.create("no-app",{appName:e})}async function Bt(e){let t=!1;var r=e.name;kt.has(r)?(t=!0,kt.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=St[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 Lt.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 Lt.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=Lt.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=Lt.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:kt,_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(kt.values())},initializeApp:qt,initializeServerApp:function(e,t){if(("undefined"!=typeof window||he())&&!he())throw Lt.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 Lt.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:Le,ErrorFactory:we,deepExtend:W}),t}(),e=new tt("@firebase/app-compat");try{var or=H();void 0!==or.firebase&&(e.warn(` Warning: Firebase is already defined in the global scope. Please make sure Firebase library is only loaded once. `),hr=or.firebase.SDK_VERSION)&&0<=hr.indexOf("LITE")&&e.warn(` Warning: You are trying to load Firebase while using Firebase Performance standalone script. You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code. `)}catch(e){}let lr=ar;d("@firebase/app-compat","0.4.2",void 0);lr.registerVersion("firebase","11.10.0","app-compat");var or="@firebase/installations",hr="0.6.18";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 Sr(){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 kr(e){return e.appName+"!"+e.appId}let Ar=new Map;function Nr(e,t){var r=kr(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",Lr=null;function Mr(){return Lr=Lr||gt(Dr,xr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Or)}})}async function Fr(e,t){var r=kr(e),n=(await Mr()).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=kr(e),r=(await Mr()).transaction(Or,"readwrite");await r.objectStore(Or).delete(t),await r.done}async function Vr(e,t){var r=kr(e),n=(await Mr()).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:Sr(),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(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,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=k,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,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(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,Sn,kn=!1;function An(e){if(kn)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(!kn){{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);Sn=s,Cn=a,kn=!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})})(Sn,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})})(Sn,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})})(Sn,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 Ln(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})))})(Sn,wn[e.app.options.appId],t,r,n).catch(e=>sn.error(e))}let Mn="@firebase/analytics",Fn="0.10.17";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)=>Ln(n,e,t,r)}}catch(e){throw an.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),d(Mn,Fn),d(Mn,Fn,"esm2017");class Un{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Ln(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=Am=Am||{}).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:Am},lr.INTERNAL.registerComponent(new u("analytics-compat",Vn,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),lr.registerVersion("@firebase/analytics-compat","0.2.23");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(` Can't get debug token in production mode. `)}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 Si="https://www.google.com/recaptcha/api.js",ki="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=Si,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=ki,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=Mi(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=Mi(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 Li{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 Li&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Mi(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.1");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 Li?e:new Li({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:Li})),lr.registerVersion("@firebase/app-check-compat","0.3.26");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 Ss(e,t){return ms(e,"POST","/v1/accounts:lookup",t)}function ks(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=ks(this.lastLoginAt),this.creationTime=ks(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,Ss(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?Ls(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 Ls(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 Ms{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(),r=(r["Content-Type"]="application/x-www-form-urlencoded",{method:"POST",headers:r,body:e});return n.emulatorConfig&&ee(n.emulatorConfig.host)&&(r.credentials="include"),cs.fetch()(t,r)})).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 Ms;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 Ms,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:ks(As(i.auth_time)),issuedAtTime:ks(As(i.iat)),expirationTime:ks(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"),Ms.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 Ms,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?Ls(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||null!=i&&i.length),a=new Ms,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 Ss(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 Ss(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 Ss(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=Le(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 Sa(e,t){return Ca(e,t)}async function ka(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 La{constructor(){this.providerId=La.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)}}La.PROVIDER_ID="password",La.EMAIL_PASSWORD_SIGN_IN_METHOD="password",La.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Ma{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 Ma{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 Ma{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 So{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new So("enroll",e,t)}static _fromMfaPendingCredential(e){return new So("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 So._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!=(t=e.multiFactorSession)&&t.idToken)return So._fromIdtoken(e.multiFactorSession.idToken)}return null}}class ko{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=So._fromMfaPendingCredential(a.mfaPendingCredential);return new ko(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 So._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 Lo extends Do{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Lo.type="SESSION";let Mo=Lo;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,Ma),await n._initializationPromise,await bl(i=ul(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function Sl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(rs(n.auth,t,Ma),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 kl(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,Ma),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}$/,Ll=/^https?/;async function Ml(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:Ll.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 Ma){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",ke(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=Mo,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]=Ml(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.8",(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.8","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=Mo,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 Sh(){return("http:"===bh()||"https:"===bh()||ue()||Ih())&&!(ce()||le())&&Eh()&&!Ch()}function kh(){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=Mo,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 kh()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return xh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!kh()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Lh(e){return e.unwrap()}function Mh(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"),ko._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&&Mh(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(Lh(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,Ma),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)),kl(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,Ma);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)),Sl(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,Mo];case Ah.SESSION:return[Mo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Jo)||r.push(Jo),"undefined"!=typeof window)for(var n of[Oo,Mo])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(Sh(),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",ka,"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",Sa,"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=Mo;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),La.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=La.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(Sh(),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,Ma),i=ul(n,r),new vl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Oh))}async signInWithRedirect(e){return Bh(Sh(),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(Lh(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:La,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.28");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=Su(e),n=Su(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 Su(e){if(Au.test(e)){var t=Number(e);if(t>=Nu&&t<=Ru)return t}return null}function ku(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 Lu=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Mu="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===Mu)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&&Lu.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&&Lu.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),Vu(e,Mu,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_=ku(()=>{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),ku(()=>{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):ku(()=>{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=Se(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],ke(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 ke(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 Sc;function kc(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===Sc||e.isEmpty(),"priority of unexpected type."),g(e===Sc||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:"+kc(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 Lc{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 Mc(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 Lc(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=Se(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?Mc(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=Se(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),Mc(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:"+kc(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,Sc=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=Mc(n,Ec,e=>e.name,Cc),i?(r=Mc(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),Se(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();ku(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),ku(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 Sd(e,t,r,n){return Cd(new bd(t,r,n),e.serverCache)}function kd(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 Pd{static fromObject(e){let r=new Pd(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 Pd(null))}set(e,t){var r,n;return b(e)?new Pd(t,this.children):(n=_(e),r=(this.children.get(n)||new Pd(null)).set(y(e),t),n=this.children.insert(n,r),new Pd(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new Pd(null):new Pd(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 Pd(null):new Pd(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 Pd(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Pd(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 Pd(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 Dd{constructor(e){this.writeTree_=e}static empty(){return new Dd(new Pd(null))}}function xd(t,r,n){if(b(r))return new Dd(new Pd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Pd(n),s=t.writeTree_.setTree(r,s),new Dd(s);{var s=i.path;let e=i.value;i=oc(s,r);return e=e.updateChild(i,n),new Dd(t.writeTree_.set(s,e))}}function Od(e,r,t){let n=e;return Eu(t,(e,t)=>{n=xd(n,ac(r,e),t)}),n}function Ld(e,t){var r;return b(t)?Dd.empty():(r=e.writeTree_.setTree(t,new Pd(null)),new Dd(r))}function Md(e,t){return null!=Fd(e,t)}function Fd(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(oc(r.path,t)):null}function Ud(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 Vd(e,t){var r;return b(t)?e:null!=(r=Fd(e,t))?new Dd(new Pd(r)):new Dd(e.writeTree_.subtree(t))}function qd(e){return e.writeTree_.isEmpty()}function jd(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 ep(t,e)}function zd(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=Wd(e.allWrites,Kd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ld(t.visibleWrites,i.path):Eu(i.children,e=>{t.visibleWrites=Ld(t.visibleWrites,ac(i.path,e))}),!0)}function Kd(e){return e.visible}function Wd(e,t,r){let n=Dd.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 j("WriteRecord should have .snap or .children");uc(r,s)?(e=oc(r,s),n=Od(n,e,i.children)):uc(s,r)&&(b(e=oc(s,r))?n=Od(n,v(),i.children):(s=Se(i.children,_(e)))&&(i=s.getChild(y(e)),n=xd(n,v(),i)))}}}return n}function Hd(e,t,r,n,i){var s;return n||i?(s=Vd(e.visibleWrites,t),!i&&qd(s)?r:i||null!=r||Md(s,v())?jd(Wd(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=Fd(e.visibleWrites,t))?s:qd(s=Vd(e.visibleWrites,t))?r:null!=r||Md(s,v())?jd(s,r||T.EMPTY_NODE):null}function Gd(e,t,r,n){return Hd(e.writeTree,e.treePath,t,r,n)}function $d(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Fd(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=Vd(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=jd(Vd(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Ud(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Ud(Vd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function Qd(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:qd(s=Vd(i.visibleWrites,s))?n.getChild(t):jd(s,n.getChild(t));var i,s}function Yd(e,t){return r=e.writeTree,e=ac(e.treePath,t),Fd(r.visibleWrites,e);var r}function Jd(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=Vd(o.visibleWrites,e),c=Fd(u,v());if(null!=c)t=c;else{if(null==r)return[];t=jd(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 Xd(e,t,r){return n=e.writeTree,r=r,i=ac(e.treePath,e=t),null!=(s=Fd(n.visibleWrites,i))?s:r.isCompleteForChild(e)?jd(Vd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function Zd(e,t){return ep(ac(e.treePath,t),e.writeTree)}function ep(e,t){return{treePath:e,writeTree:t}}class tp{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 rp=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class np{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,Xd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Nd(this.viewCache_),n=Jd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function ip(e,t,r,n,i){var s=new tp;let a,o;if(r.type===eu.OVERWRITE){var l=r;a=l.source.fromUser?op(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),ap(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);lp(i,_(r))&&(h=op(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=ac(s,e);lp(i,_(r))||(h=op(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(),up(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!=Yd(s,i))return n;{var l=new np(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?Gd(s,Nd(n)):(u=n.serverCache.getNode(),g(u instanceof T,"serverChildren would be complete if leaf node"),$d(s,u)),t=r.filter.updateFullNode(h,e,a)}else{var u=_(i);let e=Xd(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=Gd(s,Nd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Yd(s,v()),Sd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Yd(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 ap(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new Pd(null);return h.getNode().forEachChild(yc,(e,t)=>{r=r.set(new f(e),t)}),up(e,t,i,r,s,a,l,o)}return t}{let n=new Pd(null);return r.foreach((e,t)=>{var r=ac(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),up(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=kd(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),sp(i,l,e,r,rp,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 sp(n,i,s,a,o,l){var h=i.eventCache;if(null!=Yd(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=$d(a,(u=Nd(i))instanceof T?u:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),u,l)):(u=Gd(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=Qd(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=Qd(a,s,h.getNode(),r))?h.getNode().getImmediateChild(u).updateChild(c,d):h.getNode().getImmediateChild(u)):Xd(a,u,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),u,e,c,o,l):h.getNode()}}return Sd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function ap(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,rp,null)}c=kd(t,h,l.isFullyInitialized()||b(r),u.filtersNodes());return sp(e,c,r,i,new np(i,c,s),o)}function op(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var u=new np(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=Sd(r,h,!0,t.filter.filtersNodes());else{var c=_(n);if(".priority"===c)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=Sd(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:Sd(r,t.filter.updateChild(o.getNode(),c,e,p,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function lp(e,t){return e.eventCache.isCompleteForChild(t)}function hp(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function up(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 Pd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;u.hasChild(e)&&(r=hp(0,i.serverCache.getNode().getImmediateChild(e),t),h=ap(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=hp(0,i.serverCache.getNode().getImmediateChild(e),t),h=ap(n,h,new f(e),r,s,a,o,l))}),h}class cp{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 dp(e){return 0===e.eventRegistrations_.length}function pp(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 fp(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=ip(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,gp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function gp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Td(e.eventGenerator_,t,r,i)}let mp;class vp{constructor(){this.views=new Map}}function _p(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."),fp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(fp(s,r,n,i));return e}}function yp(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=Gd(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?$d(n,i):T.EMPTY_NODE,!1);a=Cd(new bd(e,t,!1),new bd(i,s,!1));return new cp(r,a)}}function wp(e,t,n,i,s,r){var a=yp(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())),gp(i,r,a.getNode(),s)}}function bp(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=Sp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(pp(h,r,n)),dp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var u=e.views.get(i);u&&(a=a.concat(pp(u,r,n)),dp(u))&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query))}return o&&!Sp(e)&&s.push((g(mp,"Reference.ts has not been loaded"),new mp(t._repo,t._path))),{removed:s,events:a}}function Ip(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Tp(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 Ep(e,t){var r;return t._queryParams.loadsAllData()?kp(e):(r=t._queryIdentifier,e.views.get(r))}function Cp(e,t){return null!=Ep(e,t)}function Sp(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 Ap;let Np=1;class Rp{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Pd(null),this.pendingWriteTree_={visibleWrites:Dd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Pp(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?qp(e,new yd(fd(),t,r)):[]}function Dp(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=Od(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Pd.fromObject(r);return qp(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(zd(e.pendingWriteTree_,t)){let t=new Pd(null);return null!=n.snap?t=t.set(v(),!0):Eu(n.children,e=>{t=t.set(new f(e),!0)}),qp(e,new vd(n.path,t,r))}return[]}function Op(e,t,r){return qp(e,new yd(gd(),t,r))}function Lp(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Cp(o,t))){var h=bp(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)=>Sp(t));if(h&&!u){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&Sp(t))return[kp(t)];{let r=[];return t&&(r=Ip(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($p(p),zp(r,p),d.hashFn,d.onComplete)}}}!u&&0<o.length&&!i&&(h?r.listenProvider_.stopListening($p(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(Kp(e));r.listenProvider_.stopListening($p(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=Kp(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=Wp(e,n);return null!=a?(i=(a=Hp(a)).path,a=a.queryId,s=oc(i,t),Gp(e,i,new yd(md(a),s,r))):[]}function Fp(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||Tp(t,r),a=a||Sp(t)}),e.syncPointTree_.get(i));o?(a=a||Sp(o),s=s||Tp(o,v())):(o=new vp,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=Tp(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,u=Cp(o,t),c=(u||t._queryParams.loadsAllData()||(h=Kp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),c=Np++,e.queryToTagMap.set(h,c),e.tagToQueryMap.set(c,h)),Bd(e.pendingWriteTree_,i));let d=wp(o,t,r,c,s,l);return u||a||n||(h=Ep(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=zp(t,e),s=Bp(t,r),s=t.listenProvider_.startListening($p(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!Sp(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&&Sp(t))return[kp(t).query];{let r=[];return t&&(r=r.concat(Ip(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($p(o),zp(t,o))}}return s})(e,t,h))),d}function Up(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Tp(t,oc(e,n));if(r)return r});return Hd(r,n,i,t,!0)}function Vp(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=oc(e,n);i=i||Tp(t,r)}),e.syncPointTree_.get(n));r?i=i||Tp(r,v()):(r=new vp,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(yp(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function qp(e,t){return function a(t,o,l,h){{if(b(t.path))return jp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Tp(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=Zd(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(_p(e,t,h,l)):r}}}(t,e.syncPointTree_,null,Bd(e.pendingWriteTree_,v()))}function jp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Tp(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=Zd(o,e),i=s.operationForChild(e);i&&(l=l.concat(jp(i,t,r,n)))}),l=t?l.concat(_p(t,s,o,a)):l}function Bp(o,e){let l=e.query,h=zp(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=Wp(t,n))?(i=(a=Hp(a)).path,a=a.queryId,s=oc(i,r),Gp(t,i,new _d(md(a),s))):[]):(n=o,r=l._path,qp(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),Lp(o,l,null,i))}}}function zp(e,t){var r=Kp(t);return e.queryToTagMap.get(r)}function Kp(e){return e._path.toString()+"$"+e._queryIdentifier}function Wp(e,t){return e.tagToQueryMap.get(t)}function Hp(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 Gp(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 _p(n,r,i,null)}function $p(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Ap,"Reference.ts has not been loaded"),new Ap(e._repo,e._path)):e}class Qp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new Qp(t)}node(){return this.node_}}class Yp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=ac(this.path_,e);return new Yp(this.syncTree_,t)}node(){return Up(this.syncTree_,this.path_)}}let Jp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Xp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?Zp(e[".sv"],t,r):"object"==typeof e[".sv"]?ef(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},Zp=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},ef=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},tf=function(e,t,r,n){return nf(t,new Yp(r,e),n)},rf=function(e,t,r){return nf(e,new Qp(t),r)};function nf(e,n,i){var t,r,s=e.getPriority().val(),s=Xp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Xp(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=nf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class sf{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function af(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=Se(n.node.children,i)||{children:{},childCount:0};n=new sf(i,n,s),r=y(r),i=_(r)}return n}function of(e){return e.node.value}function lf(e,t){e.node.value=t,df(e)}function hf(e){return 0<e.node.childCount}function uf(r,n){Eu(r.node.children,(e,t)=>{n(new sf(e,r,t))})}function cf(e){return new f(null===e.parent?e.name:cf(e.parent)+"/"+e.name)}function df(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===of(e)&&!hf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,df(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,df(t)))}function pf(e,t,r,n){n&&void 0===t||Sf(Ue(e,"value"),t,r)}function ff(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(Sf(n,t,ac(s,r)),".priority"===nc(r)&&!Cf(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)&&!If(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 gf(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(!Cf(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function mf(e,t,r,n){if(!(n&&void 0===r||If(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 vf(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),kf(e,t,r,n)}function _f(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let yf=/[\[\].#$\/\u0000-\u001F\u007F]/,wf=/[\[\].#$\u0000-\u001F\u007F]/,bf=10485760,If=function(e){return"string"==typeof e&&0!==e.length&&!yf.test(e)},Tf=function(e){return"string"==typeof e&&0!==e.length&&!wf.test(e)},Ef=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Tf(e)},Cf=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!wu(e)||e&&"object"==typeof e&&Ce(e,".sv")},Sf=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>bf/3&&je(e)>bf)throw new Error(a+"contains a string greater than "+bf+" 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,!If(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),Sf(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||Tf(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Af=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!If(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Ef(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Nf{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Rf(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 Pf(e,t,r){Rf(e,r),xf(e,e=>hc(e,t))}function Df(e,t,r){Rf(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 Of="repo_interrupt",Lf=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 Nf,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=hd(),this.transactionQueueTree_=new sf,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Ff(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)=>{qf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>jf(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)=>{qf(a,e,t,r,n)},e=>{jf(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(),Bu[r]||(Bu[r]=e()),Bu[r]),a.infoData_=new ld,a.infoSyncTree_=new Rp({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Op(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),Bf(a,"connected",!1),a.serverSyncTree_=new Rp({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);Df(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Uf(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function Vf(e){return Jp({timestamp:Uf(e)})}function qf(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=Wp(t,i))?(o=(u=Hp(u)).path,u=u.queryId,l=oc(o,s),h=Pd.fromObject(a),Gp(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=Pd.fromObject(t),qp(s,new wd(gd(),a,l))):(h=Kc(r),Op(e.serverSyncTree_,c,h))).length&&(p=Zf(e,c)),Df(e.eventQueue_,p,d)}function jf(e,t){if(Bf(e,"connected",t),!1===t){var a=e;Qf(a,"onDisconnectEvents");let n=Vf(a),i=hd(),s=(cd(a.onDisconnect_,v(),(e,t)=>{var r=tf(e,t,a.serverSyncTree_,n);ud(i,e,r)}),[]);cd(i,v(),(e,t)=>{s=s.concat(Op(a.serverSyncTree_,e,t));var r=ng(a,e);Zf(a,r)}),a.onDisconnect_=hd(),Df(a.eventQueue_,v(),s)}}function Bf(e,t,r){var n=new f("/.info/"+t),i=Kc(r),i=(e.infoData_.updateSnapshot(n,i),Op(e.infoSyncTree_,n,i));Df(e.eventQueue_,n,i)}function zf(e){return e.nextWriteId_++}function Kf(n,i,e,t,s){Qf(n,"set",{path:i.toString(),value:e,priority:t});var r=Vf(n),a=Kc(e,t),o=Up(n.serverSyncTree_,i),o=rf(a,o,r);let l=zf(n);r=Pp(n.serverSyncTree_,i,o,l,!0),Rf(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));Df(n.eventQueue_,i,r),Yf(0,s,e,t)}),o=ng(n,i);Zf(n,o),Df(n.eventQueue_,o,[])}function Wf(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),Yf(0,i,e,t)})}function Hf(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),Yf(0,i,e,t)})}function Gf(e,t,r){let n;n=".info"===_(t._path)?Lp(e.infoSyncTree_,t,r):Lp(e.serverSyncTree_,t,r),Pf(e.eventQueue_,t._path,n)}function $f(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Of)}function Qf(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),mu(r,...t)}function Yf(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 Jf(e,t,r){return Up(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Xf(o,l=o.transactionQueueTree_){if(l||rg(o,l),of(l)){var h=tg(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=cf(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Jf(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=>{Qf(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();rg(u,af(u.transactionQueueTree_,c)),Xf(u,u.transactionQueueTree_),Df(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}Zf(u,c)}},n)}}else hf(l)&&uf(l,e=>{Xf(o,e)})}function Zf(e,t){var r=eg(e,t),n=cf(r),r=tg(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>=Lf)e=!0,t="maxretry",r=r.concat(xp(i.serverSyncTree_,h.currentWriteId,!0));else{var u=Jf(i,h.path,l),c=(h.currentInputSnapshot=u,s[n].update(u.val()));if(void 0!==c){Sf("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=Vf(i),u=rf(e,u,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=u,h.currentWriteId=zf(i),l.splice(l.indexOf(c),1),r=(r=r.concat(Pp(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))}Df(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)))}rg(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Pu(o[e]);Xf(i,i.transactionQueueTree_)}return n}function eg(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===of(n);)n=af(n,r),t=y(t),r=_(t);return n}function tg(e,t){var r=[];return function t(r,e,n){let i=of(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);uf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function rg(t,r){var n=of(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,lf(r,0<n.length?n:void 0)}uf(r,e=>{rg(t,e)})}function ng(t,e){var r=cf(eg(t,e)),n=af(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=>{ig(t,e)}),ig(t,n),function t(e,r,n,i){n&&!i&&r(e),uf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{ig(t,e)}),r}function ig(i,s){var a=of(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?lf(s,void 0):a.length=t+1,Df(i.eventQueue_,cf(s),e);for(let n=0;n<o.length;n++)Pu(o[n])}}let sg=function(e,t){var r=ag(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)}},ag=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}},og="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",lg=(()=>{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]=og.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+=og.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class hg{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 ug{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 cg{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 dg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Wf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){_f("OnDisconnect.remove",this._path);var e=new Z;return Hf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){_f("OnDisconnect.set",this._path),pf("OnDisconnect.set",e,this._path,!1);var t=new Z;return Hf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){_f("OnDisconnect.setWithPriority",this._path),pf("OnDisconnect.setWithPriority",e,this._path,!1),gf("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),Yf(0,a,e,t)})}return n.promise}update(e){_f("OnDisconnect.update",this._path),ff("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(()=>{}),ke(r)?(mu("onDisconnect().update() called with empty data. Don't do anything."),Yf(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)}),Yf(0,s,e,t)}),t.promise}}class pg{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 vg(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 pg&&(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 fg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function gg(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&&!Cf(t)||null!=r&&!Cf(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 mg(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 vg extends pg{constructor(e,t){super(e,t,new td,!1)}get parent(){var e=sc(this._path);return null===e?null:new vg(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class _g{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=bg(this.ref,e);return new _g(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 _g(t,bg(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 yg(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?bg(e._root,t):e._root}function wg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=sg(t,e._repo.repoInfo_.nodeAdmin),n=(Af("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+")"),yg(e,r.path.toString())}function bg(e,t){return(null===_((e=w(e))._path)?vf:kf)("child","path",t,!1),new vg(e._repo,ac(e._path,t))}function Ig(e,t){e=w(e),_f("set",e._path),pf("set",t,e._path,!1);var r=new Z;return Kf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Tg(e,t){ff("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));Qf(a,"update",{path:o.toString(),value:e});let r=!0,n=Vf(a),s={};if(Eu(e,(e,t)=>{r=!1,s[e]=tf(ac(o,e),Kc(t),a.serverSyncTree_,n)}),r)mu("update() called with empty data. Don't do anything."),Yf(0,l,"ok",void 0);else{let i=zf(a);var h=Dp(a.serverSyncTree_,o,s,i);Rf(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?Zf(a,o):o;Df(a.eventQueue_,n,r),Yf(0,l,e,t)}),Eu(e,e=>{var t=ng(a,ac(o,e));Zf(a,t)}),Df(a.eventQueue_,o,[])}}return i.promise}function Eg(t){t=w(t);var i,s,a,e=new cg(()=>{}),e=new Cg(e);return i=t._repo,s=t,a=e,(null!=(e=Vp(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Kc(e).withIndex(s._queryParams.getIndex());Fp(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Op(i.serverSyncTree_,s._path,r):(t=zp(i.serverSyncTree_,s),Mp(i.serverSyncTree_,s._path,r,t)),Df(i.eventQueue_,s._path,n),Lp(i.serverSyncTree_,s,a,null,!0),r},e=>(Qf(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new _g(e,new vg(t._repo,t._path),t._queryParams.getIndex()))}class Cg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new hg("value",this,new _g(e.snapshotNode,new vg(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 ug(this,e,t):null}matches(e){return e instanceof Cg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class Sg{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 ug(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=bg(new vg(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new hg(e.type,this,new _g(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 Sg&&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)=>{Gf(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new cg(t,s||void 0);let o="value"===e?new Cg(a):new Sg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Fp(r.infoSyncTree_,i,t):Fp(r.serverSyncTree_,i,t),Pf(r.eventQueue_,i._path,e)}return()=>Gf(n._repo,n,o)}function Ag(e,t,r,n){return kg(e,"value",t,r,n)}function Ng(e,t,r,n){kg(e,"child_added",t,r,n)}function Rg(e,t,r,n){kg(e,"child_changed",t,r,n)}function Pg(e,t,r,n){kg(e,"child_moved",t,r,n)}function Dg(e,t,r,n){kg(e,"child_removed",t,r,n)}function xg(e,t,r){let n=null;var i=r?new cg(r):null;"value"===t?n=new Cg(i):t&&(n=new Sg(t,i)),Gf(e._repo,e,n)}class Og{}class Lg extends Og{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){pf("endAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(mg(t),gg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new pg(e._repo,e._path,t,e._orderByCalled)}}class Mg extends Og{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){pf("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(mg(t),gg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new pg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Og{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){pf("startAt",this._value,e._path,!0);var t=rd(e._queryParams,this._value,this._key);if(mg(t),gg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new pg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Og{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){pf("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(mg(t),gg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new pg(e._repo,e._path,t,e._orderByCalled)}}class Vg extends Og{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 pg(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 qg extends Og{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 pg(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 jg extends Og{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){fg(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 gg(t),new pg(e._repo,e._path,t,!0)}}class Bg extends Og{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){fg(e,"orderByKey");var t=id(e._queryParams,yc);return gg(t),new pg(e._repo,e._path,t,!0)}}class zg extends Og{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){fg(e,"orderByPriority");var t=id(e._queryParams,I);return gg(t),new pg(e._repo,e._path,t,!0)}}class Kg extends Og{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){fg(e,"orderByValue");var t=id(e._queryParams,Gc);return gg(t),new pg(e._repo,e._path,t,!0)}}class Wg extends Og{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(pf("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 Lg(this._value,this._key)._apply(new Fg(this._value,this._key)._apply(e))}}function Hg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=vg,g(!mp,"__referenceConstructor has already been defined"),mp=t,t=vg,g(!Ap,"__referenceConstructor has already been defined"),Ap=t;let Gg="FIREBASE_DATABASE_EMULATOR_HOST",$g={},Qg=!1;function Yg(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"),sg(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[Gg]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=sg(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=(Af("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=$g[t.name];var s;return i||(i={},$g[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,Qg,r,n),i[e.toURLString()]=s})(o,e,u,new Du(e,r)));return new Jg(u,e)}class Jg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Ff(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new vg(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=$g[t])&&r[e.key]===e||vu(`Database ${t}(${e.repoInfo_}) has already been deleted.`),$f(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 Xg(){Qu.IS_TRANSPORT_INITIALIZED&&_u("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Zg(){Xg(),Wu.forceDisallow()}function em(){Xg(),$u.forceDisallow(),Wu.forceAllow()}function tm(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 rm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Of)}function nm(e,t){gu(e,t)}let im={".sv":"timestamp"};class sm{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function am(i,e,t){if(i=w(i),_f("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=Ag(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new _g(r,new vg(i._repo,i._path),I),s.resolve(new sm(t,n)))},l=n,h=r;Qf(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=Jf(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{Sf("transaction failed: Data returned ",u,n.path),n.status=0;var c=af(t.transactionQueueTree_,a),d=of(c)||[];d.push(n),lf(c,d);let e;"object"==typeof u&&null!==u&&Ce(u,".priority")?(e=Se(u,".priority"),g(Cf(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=Up(t.serverSyncTree_,a)||T.EMPTY_NODE,e=c.getPriority().val());d=Vf(t),c=Kc(u,e),u=rf(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=u,n.currentWriteId=zf(t),Pp(t.serverSyncTree_,a,u,n.currentWriteId,n.applyLocally));Df(t.eventQueue_,a,r),Xf(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})=>Yg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),d($h,"1.0.20",hD),d($h,"1.0.20","esm2017");function om(e){var t="FIREBASE WARNING: "+e;lm.warn(t)}let lm=new tt("@firebase/database-compat");class hm{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,om("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 um{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 cm{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 cm(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 cm(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 pm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class dm{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=dm.getCancelAndContextArgs_("Query.on",t,n);var a=(e,t)=>{r.call(s.context,new cm(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 Ag(this._delegate,a,o),r;case"child_added":return Ng(this._delegate,a,o),r;case"child_removed":return Dg(this._delegate,a,o),r;case"child_changed":return Rg(this._delegate,a,o),r;case"child_moved":return Pg(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 Eg(this._delegate).then(e=>new cm(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=dm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new cm(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":Ag(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":Dg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Rg(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Pg(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 dm(this.database,Hg(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 Vg(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new dm(this.database,Hg(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 qg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new dm(this.database,Hg(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 jg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new dm(this.database,Hg(this._delegate,new Bg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new dm(this.database,Hg(this._delegate,new zg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new dm(this.database,Hg(this._delegate,new Kg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new dm(this.database,Hg(this._delegate,([e=null,t]=[e,t],mf("startAt","key",t,!0),new Fg(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new dm(this.database,Hg(this._delegate,(e=e,t=t,mf("startAfter","key",t,!0),new Ug(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new dm(this.database,Hg(this._delegate,(e=e,t=t,mf("endAt","key",t,!0),new Lg(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new dm(this.database,Hg(this._delegate,(e=e,t=t,mf("endBefore","key",t,!0),new Mg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new dm(this.database,Hg(this._delegate,(e=e,t=t,mf("equalTo","key",t,!0),new Wg(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 dm)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 pm(this.database,new vg(this._delegate._repo,this._delegate._path))}}class pm extends dm{constructor(e,t){super(e,new pg(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 pm(this.database,bg(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new pm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new pm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=Ig(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,om("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.")}_f("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Tg(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(_f("setWithPriority",e._path),pf("setWithPriority",t,e._path,!1),gf("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return Kf(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,_f("remove",e._path);var e,r=Ig(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=am(this._delegate,e,{applyLocally:r}).then(e=>new um(e.committed,new cm(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),_f("setPriority",r._path),gf("setPriority",e,!1),n=new Z,Kf(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),_f("push",e._path),pf("push",t,e._path,!0);var r=Uf(e._repo),r=lg(r),n=bg(e,r);let i=bg(e,r),s;return s=null!=t?Ig(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 pm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new pm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return _f("Reference.onDisconnect",this._delegate._path),new hm(new dg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class fm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:Zg,forceLongPolling:em}}useEmulator(e,t,r={}){tm(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof pm?(t=wg(this._delegate,e.toString()),new pm(this,t)):(t=yg(this._delegate,e),new pm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=wg(this._delegate,e);return new pm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),$f(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),rm(this._delegate)}}fm.ServerValue={TIMESTAMP:im,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 fm(Yg(e,l,h,t,a),e),namespace:s}}});let gm=fm.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 fm(n,r)},"PUBLIC").setServiceProps({Reference:pm,Query:dm,Database:fm,DataSnapshot:cm,enableLogging:nm,INTERNAL:hr,ServerValue:gm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.0.11");var mm,vm,_m,ym,wm,bm,Im,Tm,Em,Cm,Sm,km,Am="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Nm=(!(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,vm=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},mm=h}).apply(void 0!==Am?Am:"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 Nm&&Nm];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 Se=D.JSON.stringify,ke=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 _={},Le=null;function Me(){return Le=Le||new f}function Fe(e){c.call(this,_.La,e)}function Ue(){var e=Me();g(e,new Fe(e))}function Ve(e,t){c.call(this,_.STAT_EVENT,e),this.stat=t}function O(e){var t=Me();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 L(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 Se(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 M(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 k(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]||k(r,7):3==r.G&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?k(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){M(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,S=this.u,k=this.A,A=this.l,N=this.R,R=t,P=n,C.info(function(){return"XMLHTTP RESP ("+A+") [ attempt "+N+"]: "+S+"\n"+k+"\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),M(this),rt(this);break e}L(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),L(this.i,this.l,null,"[Incomplete Response]");break}if(c==$e){this.s=4,O(15),L(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}L(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)):(L(this.i,this.l,o,"[Invalid Chunked Response]"),M(this),rt(this))}else L(this.i,this.l,o,null),nt(this,o);4==t&&M(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)),M(this),rt(this)}}}}catch(e){}var b,I,T,E,C,S,k,A,N,R,P},y.prototype.cancel=function(){this.J=!0,M(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)),M(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 kt).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 kt(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 kt?(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 kt(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,St)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,Ct=/[#\?@]/g,St=/#/g;function kt(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 Lt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Mt(e)}function Mt(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 S(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=kt.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,Mt(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,Lt(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,Mt(this)),this.g)&&(this.readyState=3,Mt(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?Lt:Mt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Lt(this))},e.Qa=function(e){this.g&&(this.response=e,Lt(this))},e.ga=function(){this.g&&Lt(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(S,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=Se(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=Me(),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:k(e,5);break;case 4:k(e,10);break;case 3:k(e,6);break;default:k(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function k(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 S(new Dt({eb:r})):new S(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=S.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)),S.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)),ke(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__=Se(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,Cm=function(){return new pr},Em=Me,Tm=_,Im={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,bm=ze,Ke.COMPLETE="complete",wm=Ke,(Pe.EventType=De).OPEN="a",De.CLOSE="b",De.ERROR="c",De.MESSAGE="d",f.prototype.listen=f.prototype.K,ym=Pe,S.prototype.listenOnce=S.prototype.L,S.prototype.getLastError=S.prototype.Ka,S.prototype.getLastErrorCode=S.prototype.Ba,S.prototype.getStatus=S.prototype.Z,S.prototype.getResponseJson=S.prototype.Oa,S.prototype.getResponseText=S.prototype.oa,S.prototype.send=S.prototype.ea,S.prototype.setWithCredentials=S.prototype.Ha,_m=S}).apply(void 0!==Nm?Nm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Rm="@firebase/firestore";class Pm{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}}Pm.UNAUTHENTICATED=new Pm(null),Pm.GOOGLE_CREDENTIALS=new Pm("google-credentials-uid"),Pm.FIRST_PARTY=new Pm("first-party-uid"),Pm.MOCK_USER=new Pm("mock-user");let Dm="11.10.0",xm=new tt("@firebase/firestore");function Om(){return xm.logLevel}function E(e,...t){var r;xm.logLevel<=c.DEBUG&&(r=t.map(Fm),xm.debug(`Firestore (${Dm}): `+e,...r))}function Lm(e,...t){var r;xm.logLevel<=c.ERROR&&(r=t.map(Fm),xm.error(`Firestore (${Dm}): `+e,...r))}function Mm(e,...t){var r;xm.logLevel<=c.WARN&&(r=t.map(Fm),xm.warn(`Firestore (${Dm}): `+e,...r))}function Fm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function C(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Um(e,n,r)}function Um(e,t,r){let n=`FIRESTORE (${Dm}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Lm(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Um(t,i,n)}let k={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 A extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Vm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class qm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class jm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Pm.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 zm{constructor(e){this.t=e,this.currentUser=Pm.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 Vm,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Vm,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{E("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):(E("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Vm))},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?(E("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new qm(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 Pm(e)}}class Km{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=Pm.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 Wm{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Km(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(Pm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Hm{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 Gm{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&&E("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,E("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{E("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):E("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Hm(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 Hm(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 $m(){return new TextEncoder}class Qm{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 N(e,t){return e<t?-1:t<e?1:0}function Ym(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 N(e[r],t[r]);return N(e.length,t.length)})((n=$m()).encode(Jm(e,r)),n.encode(Jm(t,r))))?n:N(i,s);r+=65535<i?2:1}return N(e.length,t.length)}function Jm(e,t){return 65535<e.codePointAt(t)?e.substring(t,t+2):e.substring(t,t+1)}function Xm(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Zm(e){return e+"\0"}let ev="__name__";class tv{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&C(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===tv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof tv?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=tv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return N(t.length,r.length)}static compareSegments(e,t){var r=tv.isNumericId(e),n=tv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?tv.extractNumericId(e).compare(tv.extractNumericId(t)):Ym(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return mm.fromString(e.substring(4,e.length-2))}}class R extends tv{construct(e,t,r){return new R(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 A(k.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new R(r)}static emptyPath(){return new R([])}}let rv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class nv extends tv{construct(e,t,r){return new nv(e,t,r)}static isValidIdentifier(e){return rv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=nv.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===ev}static keyField(){return new nv([ev])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new A(k.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 A(k.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new A(k.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 A(k.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new nv(e)}static emptyPath(){return new nv([])}}class P{constructor(e){this.path=e}static fromPath(e){return new P(R.fromString(e))}static fromName(e){return new P(R.fromString(e).popFirst(5))}static empty(){return new P(R.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===R.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return R.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new P(new R(e.slice()))}}function iv(e,t,r){if(!r)throw new A(k.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function sv(e,t,r,n){if(!0===t&&!0===n)throw new A(k.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function av(e){if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function ov(e){if(P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function lv(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function hv(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":C(12329,{type:typeof e})}function D(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new A(k.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=hv(e);throw new A(k.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function uv(e,t){if(t<=0)throw new A(k.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function cv(e,t){var r={typeString:e};return t&&(r.value=t),r}function dv(e,t){if(!lv(e))throw new A(k.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new A(k.INVALID_ARGUMENT,r);return 1}let pv=-62135596800;class x{static now(){return x.fromMillis(Date.now())}static fromDate(e){return x.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new x(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<pv)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new A(k.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?N(this.nanoseconds,e.nanoseconds):N(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:x._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(dv(e,x._jsonSchema))return new x(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-pv;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}x._jsonSchemaVersion="firestore/timestamp/1.0",x._jsonSchema={type:cv("string",x._jsonSchemaVersion),seconds:cv("number"),nanoseconds:cv("number")};class O{static fromTimestamp(e){return new O(e)}static min(){return new O(new x(0,0))}static max(){return new O(new x(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 fv=-1;class gv{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function mv(e){return e.fields.find(e=>2===e.kind)}function vv(e){return e.fields.filter(e=>2!==e.kind)}gv.UNKNOWN_ID=-1;class _v{constructor(e,t){this.fieldPath=e,this.kind=t}}class yv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new yv(0,Iv.min())}}function wv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=O.fromTimestamp(1e9===n?new x(r+1,0):new x(r,n));return new Iv(r,P.empty(),t)}function bv(e){return new Iv(e.readTime,e.key,fv)}class Iv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Iv(O.min(),P.empty(),fv)}static max(){return new Iv(O.max(),P.empty(),fv)}}function Tv(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=P.comparator(e.documentKey,t.documentKey))?r:N(e.largestBatchId,t.largestBatchId)}let Ev="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Cv{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Sv(e){if(e.code!==k.FAILED_PRECONDITION||e.message!==Ev)throw e;E("LocalStore","Unexpectedly lost primary lease")}class L{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&&C(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new L((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 L?t:L.resolve(t)}catch(e){return L.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):L.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):L.reject(t)}static resolve(r){return new L((e,t)=>{e(r)})}static reject(r){return new L((e,t)=>{t(r)})}static waitFor(e){return new L((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=L.resolve(!1);for(let r of e)t=t.next(e=>e?L.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 L((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 L((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let kv="SimpleDb";class Av{static open(e,t,r,n){try{return new Av(t,e.transaction(n,r))}catch(e){throw new Dv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Vm,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new Dv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=Fv(e.target.error);this.S.reject(new Dv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(E(kv,"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 Ov(t)}}class Nv{static delete(e){return E(kv,"Removing database:",e),Lv(H().indexedDB.deleteDatabase(e)).toPromise()}static C(){var e,t,r;return!(!me()||!Nv.F()&&(e=ae(),t=0<(t=Nv.M(e))&&t<10,r=0<(r=Rv(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===Nv.M(ae())&&Lm("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||(E(kv,"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 Dv(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 A(k.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 A(k.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 Dv(s,t))},i.onupgradeneeded=e=>{E(kv,'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(()=>{E(kv,"Database upgrade to version "+this.version+" complete")})}}),this.db.addEventListener("close",e=>{var t=e.target;this.L=t.version},{passive:!0})),this.db.addEventListener("versionchange",e=>{var t;null===e.newVersion&&(Mm('Received "versionchange" event with newVersion===null; notifying the registered DatabaseDeletedListener, if any'),null!=(t=this.databaseDeletedListener))&&t.call(this)},{passive:!0}),this.db}setDatabaseDeletedListener(e){if(this.databaseDeletedListener)throw new Error("setDatabaseDeletedListener() may only be called once, and it has already been called");this.databaseDeletedListener=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=Av.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.v(),e)).catch(e=>(t.abort(e),L.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(E(kv,"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 Rv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Pv{constructor(e){this.$=e,this.U=!1,this.K=null}get isDone(){return this.U}get W(){return this.K}set cursor(e){this.$=e}done(){this.U=!0}G(e){this.K=e}delete(){return Lv(this.$.delete())}}class Dv extends A{constructor(e,t){super(k.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function xv(e){return"IndexedDbTransactionError"===e.name}class Ov{constructor(e){this.store=e}put(e,t){let r;return Lv(r=void 0!==t?(E(kv,"PUT",this.store.name,e,t),this.store.put(t,e)):(E(kv,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return E(kv,"ADD",this.store.name,e,e),Lv(this.store.add(e))}get(t){return Lv(this.store.get(t)).next(e=>(void 0===e&&(e=null),E(kv,"GET",this.store.name,t,e),e))}delete(e){return E(kv,"DELETE",this.store.name,e),Lv(this.store.delete(e))}count(){return E(kv,"COUNT",this.store.name),Lv(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 L((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.J(e,(e,t)=>{r.push(t)}).next(()=>r)}}H(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new L((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Y(e,t){E(kv,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Z=!1,this.cursor(r));return this.J(r,(e,t,r)=>r.delete())}X(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.J(n,t)}ee(i){let e=this.cursor({});return new L((r,n)=>{e.onerror=e=>{var t=Fv(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()}})}J(e,s){let a=[];return new L((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Pv(n),r=s(n.primaryKey,n.value,t);if(r instanceof L){let e=r.catch(e=>(t.done(),L.reject(e)));a.push(e)}t.isDone?i():null===t.W?n.continue():n.continue(t.W)}else i()}}).next(()=>L.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.Z?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Lv(e){return new L((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=Fv(e.target.error);n(t)}})}let Mv=!1;function Fv(e){let t=Nv.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 A("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 Mv||(Mv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Uv="IndexBackfiller";class Vv{constructor(e,t){this.asyncQueue=e,this.te=t,this.task=null}start(){this.ne(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ne(e){E(Uv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.te.re();E(Uv,"Documents written: "+e)}catch(e){xv(e)?E(Uv,"Ignoring IndexedDB error during index backfill: ",e):await Sv(e)}await this.ne(6e4)})}}class qv{constructor(e,t){this.localStore=e,this.persistence=t}async re(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.ie(e,t))}ie(e,t){let r=new Set,n=t,i=!0;return L.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return E(Uv,"Processing collection: "+t),this.se(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}se(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.oe(r,e)).next(e=>(E(Uv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}oe(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=bv(t);0<Tv(r,n)&&(n=r)}),new Iv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class jv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this._e(e),this.ae=e=>t.writeSequenceNumber(e))}_e(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ae&&this.ae(e),e}}let Bv=jv.ue=-1;function zv(e){return null==e}function Kv(e){return 0===e&&1/e==-1/0}function Wv(e){return"number"==typeof e&&Number.isInteger(e)&&!Kv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Hv="";function Gv(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=$v(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 Hv:r+="";break;default:r+=e}}return r})(e.get(r),t);return $v(t)}function $v(e){return e+Hv+""}function Qv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Hv&&""===r.charAt(1),56145,{path:r}),R.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Hv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&C(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:C(61167,{path:r})}a=t+2}return new R(n)}let Yv="remoteDocuments",Jv="owner",Xv="owner",Zv="mutationQueues",e_="mutations",t_="batchId",r_="userMutationsIndex",n_=["userId","batchId"];function i_(e,t){return[e,Gv(t)]}function s_(e,t,r){return[e,Gv(t),r]}let a_={},o_="documentMutations",l_="remoteDocumentsV14",h_=["prefixPath","collectionGroup","readTime","documentId"],u_="documentKeyIndex",c_=["prefixPath","collectionGroup","documentId"],d_="collectionGroupIndex",p_=["collectionGroup","readTime","prefixPath","documentId"],f_="remoteDocumentGlobal",g_="remoteDocumentGlobalKey",m_="targets",v_="queryTargetsIndex",__=["canonicalId","targetId"],y_="targetDocuments",w_=["targetId","path"],b_="documentTargetsIndex",I_=["path","targetId"],T_="targetGlobalKey",E_="targetGlobal",C_="collectionParents",S_=["collectionId","parent"],k_="clientMetadata",A_="bundles",N_="namedQueries",R_="indexConfiguration",P_="collectionGroupIndex",D_="indexState",x_=["indexId","uid"],O_="sequenceNumberIndex",L_=["uid","sequenceNumber"],M_="indexEntries",F_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],U_="documentKeyIndex",V_=["indexId","uid","orderedDocumentKey"],q_="documentOverlays",j_=["userId","collectionPath","documentId"],B_="collectionPathOverlayIndex",z_=["userId","collectionPath","largestBatchId"],K_="collectionGroupOverlayIndex",W_=["userId","collectionGroup","largestBatchId"],H_="globals",G_=[Zv,e_,o_,Yv,m_,Jv,E_,y_,k_,f_,C_,A_,N_],$_=[...G_,q_],Q_=[Zv,e_,o_,l_,m_,Jv,E_,y_,k_,f_,C_,A_,N_,q_],Y_=Q_,J_=[...Y_,R_,D_,M_],X_=J_,Z_=[...J_,H_],ey=Z_;class ty extends Cv{constructor(e,t){super(),this.ce=e,this.currentSequenceNumber=t}}function ry(e,t){var r=e;return Nv.N(r.ce,t)}function ny(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function iy(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function sy(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class ay{constructor(e,t){this.comparator=e,this.root=t||ly.EMPTY}insert(e,t){return new ay(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,ly.BLACK,null,null))}remove(e){return new ay(this.comparator,this.root.remove(e,this.comparator).copy(null,null,ly.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 oy(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new oy(this.root,e,this.comparator,!1)}getReverseIterator(){return new oy(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new oy(this.root,e,this.comparator,!0)}}class oy{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 ly{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:ly.RED,this.left=null!=n?n:ly.EMPTY,this.right=null!=i?i:ly.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new ly(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 ly.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 ly.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,ly.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,ly.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 C(43730,{key:this.key,value:this.value});if(this.right.isRed())throw C(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw C(27949);return e+(this.isRed()?0:1)}}ly.EMPTY=null,ly.RED=!0,ly.BLACK=!1,ly.EMPTY=new class{constructor(){this.size=0}get key(){throw C(57766)}get value(){throw C(16141)}get color(){throw C(16727)}get left(){throw C(29726)}get right(){throw C(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new ly(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 M{constructor(e){this.comparator=e,this.data=new ay(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 hy(this.data.getIterator())}getIteratorFrom(e){return new hy(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 M))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 M(this.comparator);return t.data=e,t}}class hy{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function uy(e){return e.hasNext()?e.getNext():void 0}class cy{constructor(e){(this.fields=e).sort(nv.comparator)}static empty(){return new cy([])}unionWith(e){let t=new M(nv.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new cy(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Xm(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class dy extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class py{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 dy("Invalid base64 string: "+e):e}})(e);return new py(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 py(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 N(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}py.EMPTY_BYTE_STRING=new py("");let fy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function gy(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:my(t.seconds),nanos:my(t.nanos)};{let e=0;var r=fy.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 my(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function vy(e){return"string"==typeof e?py.fromBase64String(e):py.fromUint8Array(e)}let _y="server_timestamp",yy="__type__",wy="__previous_value__",by="__local_write_time__";function Iy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[yy])?void 0:t.stringValue)===_y}function Ty(e){var t=e.mapValue.fields[wy];return Iy(t)?Ty(t):t}function Ey(e){var t=gy(e.mapValue.fields[by].timestampValue);return new x(t.seconds,t.nanos)}class Cy{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 Sy="(default)";class ky{constructor(e,t){this.projectId=e,this.database=t||Sy}static empty(){return new ky("","")}get isDefaultDatabase(){return this.database===Sy}isEqual(e){return e instanceof ky&&e.projectId===this.projectId&&e.database===this.database}}let Ay="__type__",Ny="__max__",Ry={mapValue:{fields:{__type__:{stringValue:Ny}}}},Py="__vector__",Dy="value",xy={nullValue:"NULL_VALUE"};function Oy(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?Iy(e)?4:Qy(e)?9007199254740991:Gy(e)?10:11:C(28295,{value:e})}function Ly(t,r){if(t===r)return!0;var n,i,s,a,o,e=Oy(t);if(e!==Oy(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return Ey(t).isEqual(Ey(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=gy(i.timestampValue),o=gy(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,vy(t.bytesValue).isEqual(vy(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,my((n=t).geoPointValue.latitude)===my(s.geoPointValue.latitude)&&my(n.geoPointValue.longitude)===my(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?my(h.integerValue)===my(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=my(h.doubleValue))===(o=my(n.doubleValue))?Kv(a)===Kv(o):isNaN(a)&&isNaN(o));case 9:return Xm(t.arrayValue.values||[],r.arrayValue.values||[],Ly);case 10:case 11:var l=t,h=r,u=l.mapValue.fields||{},c=h.mapValue.fields||{};if(ny(u)!==ny(c))return!1;for(let e in u)if(u.hasOwnProperty(e)&&(void 0===c[e]||!Ly(u[e],c[e])))return!1;return!0;default:return C(52216,{left:t})}}function My(e,t){return void 0!==(e.values||[]).find(e=>Ly(e,t))}function Fy(e,n){if(e===n)return 0;var i,s,a,o,l,h,u,c,d=Oy(e),t=Oy(n);if(d!==t)return N(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return N(e.booleanValue,n.booleanValue);case 2:return h=n,u=my((l=e).integerValue||l.doubleValue),c=my(h.integerValue||h.doubleValue),u<c?-1:c<u?1:u===c?0:isNaN(u)?isNaN(c)?0:-1:1;case 3:return Uy(e.timestampValue,n.timestampValue);case 4:return Uy(Ey(e),Ey(n));case 5:return Ym(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,u=vy(l),c=vy(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=N(g[t],m[t]);if(0!==e)return e}return N(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=N(my(p.latitude),my(f.latitude)))?o:N(my(p.longitude),my(f.longitude));case 9:return Vy(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=null==(o=o[Dy])?void 0:o.arrayValue,s=null==(s=s[Dy])?void 0:s.arrayValue,0!==(a=N((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:Vy(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===Ry.mapValue&&_===Ry.mapValue)return 0;if(v===Ry.mapValue)return 1;if(_===Ry.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=Ym(w[r],I[r]);if(0!==e)return e;var T=Fy(y[w[r]],b[I[r]]);if(0!==T)return T}return N(w.length,I.length);default:throw C(23264,{le:d})}}function Uy(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?N(e,t):(r=gy(e),n=gy(t),0!==(i=N(r.seconds,n.seconds))?i:N(r.nanos,n.nanos))}function Vy(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Fy(r[i],n[i]);if(e)return e}return N(r.length,n.length)}function qy(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=gy(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>vy(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>P.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):C(61005,{value:e})}(e)}function jy(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function By(e){return!!e&&"integerValue"in e}function zy(e){return!!e&&"arrayValue"in e}function Ky(e){return e&&"nullValue"in e}function Wy(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Hy(e){return e&&"mapValue"in e}function Gy(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[Ay])?void 0:t.stringValue)===Py}function $y(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 iy(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=$y(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=$y(t.arrayValue.values[e]);return r}return Object.assign({},t)}function Qy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Ny}let Yy={mapValue:{fields:{[Ay]:{stringValue:Py},[Dy]:{arrayValue:{}}}}};function Jy(e,t){var r=Fy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Xy(e,t){var r=Fy(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(!Hy(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()]=$y(t)}setAll(e){let r=nv.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()]=$y(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Hy(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Ly(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)];Hy(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){iy(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new Zy($y(this.value))}}class ew{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 ew(e,0,O.min(),O.min(),O.min(),Zy.empty(),0)}static newFoundDocument(e,t,r,n){return new ew(e,1,t,O.min(),r,n,0)}static newNoDocument(e,t){return new ew(e,2,t,O.min(),O.min(),Zy.empty(),0)}static newUnknownDocument(e,t){return new ew(e,3,t,O.min(),O.min(),Zy.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(O.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=O.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 ew&&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 ew(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 tw{constructor(e,t){this.position=e,this.inclusive=t}}function rw(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()?P.comparator(P.fromName(s.referenceValue),r.key):Fy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function nw(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(!Ly(e.position[r],t.position[r]))return!1;return!0}class iw{constructor(e,t="asc"){this.field=e,this.dir=t}}class sw{}class F extends sw{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 dw(e,t,r):"array-contains"===t?new mw(e,r):"in"===t?new vw(e,r):"not-in"===t?new _w(e,r):"array-contains-any"===t?new yw(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?pw:fw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Fy(t,this.value)):null!==t&&Oy(this.value)===Oy(t)&&this.matchesComparison(Fy(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 C(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends sw{constructor(e,t){super(),this.filters=e,this.op=t,this.he=null}static create(e,t){return new U(e,t)}matches(t){return aw(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.he&&(this.he=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.he}getFilters(){return Object.assign([],this.filters)}}function aw(e){return"and"===e.op}function ow(e){return"or"===e.op}function lw(e){return hw(e)&&aw(e)}function hw(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function uw(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function cw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+qy(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(cw).join(" ,")+"}":"Filter";var t}class dw extends F{constructor(e,t,r){super(e,t,r),this.key=P.fromName(r.referenceValue)}matches(e){var t=P.comparator(e.key,this.key);return this.matchesComparison(t)}}class pw extends F{constructor(e,t){super(e,"in",t),this.keys=gw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class fw extends F{constructor(e,t){super(e,"not-in",t),this.keys=gw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function gw(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>P.fromName(e.referenceValue))}class mw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return zy(t)&&My(t.arrayValue,this.value)}}class vw extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&My(this.value.arrayValue,t)}}class _w extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!My(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!My(this.value.arrayValue,t)}}class yw extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!zy(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>My(this.value.arrayValue,e))}}class ww{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.Pe=null}}function bw(e,t=null,r=[],n=[],i=null,s=null,a=null){return new ww(e,t,r,n,i,s,a)}function Iw(e){var t=e;if(null===t.Pe){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()+qy(e.value):lw(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(","),zv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>qy(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>qy(e)).join(",")),t.Pe=e}return t.Pe}function Tw(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)&&Ly(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 C(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!nw(e.startAt,t.startAt)&&nw(e.endAt,t.endAt)}function Ew(e){return P.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Cw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function Sw(e,r,n){let i=xy,s=!0;for(let n of Cw(e,r)){let e=xy,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?xy:"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?jy(ky.empty(),P.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Gy(a)?Yy:{mapValue:{}}:C(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=xy}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 kw(e,r,n){let i=Ry,s=!0;for(let n of Cw(e,r)){let e=Ry,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?jy(ky.empty(),P.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Yy:"mapValue"in a?Gy(a)?{mapValue:{}}:Ry:C(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=Ry}0<Xy({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<Xy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Aw{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.Te=null,this.Ie=null,this.de=null,this.startAt,this.endAt}}function Nw(e,t,r,n,i,s,a,o){return new Aw(e,t,r,n,i,s,a,o)}function Rw(e){return new Aw(e)}function Pw(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 Dw(e){return null!==e.collectionGroup}function xw(e){let n=e;if(null===n.Te){n.Te=[];let t=new Set;for(var i of n.explicitOrderBy)n.Te.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 M(nv.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.Te.push(new iw(e,r))}),t.has(nv.keyField().canonicalString())||n.Te.push(new iw(nv.keyField(),r))}return n.Te}function Ow(e){var t=e;return t.Ie||(t.Ie=((e,t)=>{if("F"===e.limitType)return bw(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 iw(e.field,t)});var r=e.endAt?new tw(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new tw(e.startAt.position,e.startAt.inclusive):null;return bw(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,xw(e))),t.Ie}function Lw(e,t){var r=e.filters.concat([t]);return new Aw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Mw(e,t,r){return new Aw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Fw(e,t){return Tw(Ow(e),Ow(t))&&e.limitType===t.limitType}function Uw(e){return Iw(Ow(e))+"|lt:"+e.limitType}function Vw(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=>cw(e)).join(", ")}]`),zv(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=>qy(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>qy(e)).join(","):t})`})(Ow(e))}; limitType=${e.limitType})`}function qw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):P.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of xw(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=xw(s),i=rw(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=xw(s),i=rw(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function jw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Bw(e){return(t,r)=>{let n=!1;for(var i of xw(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?P.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Fy(n,i):C(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return C(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class zw{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){iy(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return sy(this.inner)}size(){return this.innerSize}}let Kw=new ay(P.comparator);let Ww=new ay(P.comparator);function Hw(...e){let t=Ww;for(var r of e)t=t.insert(r.key,r);return t}function Gw(e){let r=Ww;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function $w(){return new zw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Qw=new ay(P.comparator),Yw=new M(P.comparator);function V(...e){let t=Yw;for(var r of e)t=t.add(r);return t}let Jw=new M(N);function Xw(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:Kv(t)?"-0":t}}function Zw(e){return{integerValue:""+e}}function eb(e,t){return Wv(t)?Zw(t):Xw(e,t)}class tb{constructor(){this._=void 0}}function rb(e,t){return e instanceof lb?By(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class nb extends tb{}class ib extends tb{constructor(e){super(),this.elements=e}}function sb(e,t){var r=ub(t);for(let t of e.elements)r.some(e=>Ly(e,t))||r.push(t);return{arrayValue:{values:r}}}class ab extends tb{constructor(e){super(),this.elements=e}}function ob(e,t){let r=ub(t);for(let t of e.elements)r=r.filter(e=>!Ly(e,t));return{arrayValue:{values:r}}}class lb extends tb{constructor(e,t){super(),this.serializer=e,this.Ee=t}}function hb(e){return my(e.integerValue||e.doubleValue)}function ub(e){return zy(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class cb{constructor(e,t){this.field=e,this.transform=t}}class db{constructor(e,t){this.version=e,this.transformResults=t}}class pb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new pb}static exists(e){return new pb(void 0,e)}static updateTime(e){return new pb(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 fb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class gb{}function mb(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new Eb(e.key,pb.none()):new yb(e.key,e.data,pb.none());{var n,i=e.data,s=Zy.empty();let t=new M(nv.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 wb(e.key,s,new cy(t.toArray()),pb.none())}}function vb(e,t,r,n){return e instanceof yb?(s=t,a=r,o=n,fb((i=e).precondition,s)?(l=i.value.clone(),h=Tb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof wb?(i=t,o=r,s=n,fb((a=e).precondition,i)?(h=Tb(a.fieldTransforms,s,i),(l=i.data).setAll(bb(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,fb(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function _b(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&&Xm(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof ib&&t instanceof ib||e instanceof ab&&t instanceof ab?Xm(e.elements,t.elements,Ly):e instanceof lb&&t instanceof lb?Ly(e.Ee,t.Ee):e instanceof nb&&t instanceof nb)))))&&(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 yb extends gb{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 wb extends gb{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 bb(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 Ib(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Ae:r.length,Re: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 ib?sb(n,i):n instanceof ab?ob(n,i):s))}return a}function Tb(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 nb?(o=o,h=a,u={fields:{[yy]:{stringValue:_y},[by]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&Iy(h)?Ty(h):h)&&(u.fields[wy]=h),{mapValue:u}):s instanceof ib?sb(s,a):s instanceof ab?ob(s,a):(u=rb(o=s,a),l=hb(u)+hb(o.Ee),By(u)&&By(o.Ee)?Zw(l):Xw(o.serializer,l))))}return c}class Eb extends gb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Cb extends gb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class Sb{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 yb?(a=n,o=i,u=(s=r).value.clone(),l=Ib(s.fieldTransforms,a,o.transformResults),u.setAll(l),a.convertToFoundDocument(o.version,u).setHasCommittedMutations()):r instanceof wb?(s=n,a=i,fb((o=r).precondition,s)?(l=Ib(o.fieldTransforms,s,a.transformResults),(u=s.data).setAll(bb(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=vb(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=vb(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=$w();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=mb(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(O.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&Xm(this.mutations,e.mutations,(e,t)=>_b(e,t))&&Xm(this.baseMutations,e.baseMutations,(e,t)=>_b(e,t))}}class kb{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,{Ve:e.mutations.length,me:r.length});let n=Qw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new kb(e,t,r,n)}}class Ab{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{ largestBatchId: ${this.largestBatchId}, mutation: ${this.mutation.toString()} }`}}class Nb{constructor(e,t){this.count=e,this.unchangedNames=t}}function Rb(e){switch(e){case k.OK:return C(64938);case k.CANCELLED:case k.UNKNOWN:case k.DEADLINE_EXCEEDED:case k.RESOURCE_EXHAUSTED:case k.INTERNAL:case k.UNAVAILABLE:case k.UNAUTHENTICATED:return!1;case k.INVALID_ARGUMENT:case k.NOT_FOUND:case k.ALREADY_EXISTS:case k.PERMISSION_DENIED:case k.FAILED_PRECONDITION:case k.ABORTED:case k.OUT_OF_RANGE:case k.UNIMPLEMENTED:case k.DATA_LOSS:return!0;default:return C(15467,{code:e})}}function Pb(e){if(void 0===e)return Lm("GRPC error has no .code"),k.UNKNOWN;switch(e){case Sm.OK:return k.OK;case Sm.CANCELLED:return k.CANCELLED;case Sm.UNKNOWN:return k.UNKNOWN;case Sm.DEADLINE_EXCEEDED:return k.DEADLINE_EXCEEDED;case Sm.RESOURCE_EXHAUSTED:return k.RESOURCE_EXHAUSTED;case Sm.INTERNAL:return k.INTERNAL;case Sm.UNAVAILABLE:return k.UNAVAILABLE;case Sm.UNAUTHENTICATED:return k.UNAUTHENTICATED;case Sm.INVALID_ARGUMENT:return k.INVALID_ARGUMENT;case Sm.NOT_FOUND:return k.NOT_FOUND;case Sm.ALREADY_EXISTS:return k.ALREADY_EXISTS;case Sm.PERMISSION_DENIED:return k.PERMISSION_DENIED;case Sm.FAILED_PRECONDITION:return k.FAILED_PRECONDITION;case Sm.ABORTED:return k.ABORTED;case Sm.OUT_OF_RANGE:return k.OUT_OF_RANGE;case Sm.UNIMPLEMENTED:return k.UNIMPLEMENTED;case Sm.DATA_LOSS:return k.DATA_LOSS;default:return C(39323,{code:e})}}(e=Sm=Sm||{})[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 Db=new mm([4294967295,4294967295],0);function xb(e){var t=$m().encode(e),r=new vm;return r.update(t),new Uint8Array(r.digest())}function Ob(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 mm([r,n],0),new mm([i,t],0)]}class Lb{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new Mb("Invalid padding: "+t);if(r<0)throw new Mb("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new Mb("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new Mb("Invalid padding when bitmap length is 0: "+t);this.fe=8*e.length-t,this.ge=mm.fromNumber(this.fe)}pe(e,t,r){let n=e.add(t.multiply(mm.fromNumber(r)));return(n=1===n.compare(Db)?new mm([n.getBits(0),n.getBits(1)],0):n).modulo(this.ge).toNumber()}ye(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.fe)return!1;let t=xb(e),[r,n]=Ob(t);for(let i=0;i<this.hashCount;i++){let e=this.pe(r,n,i);if(!this.ye(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 Lb(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.fe){let e=xb(i),[t,r]=Ob(e);for(let n=0;n<this.hashCount;n++){let e=this.pe(t,r,n);this.we(e)}}}we(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class Mb extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Fb{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,Ub.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Fb(O.min(),n,new ay(N),Kw,V())}}class Ub{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 Ub(r,t,V(),V(),V())}}class Vb{constructor(e,t,r,n){this.Se=e,this.removedTargetIds=t,this.key=r,this.be=n}}class qb{constructor(e,t){this.targetId=e,this.De=t}}class jb{constructor(e,t,r=py.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Bb{constructor(){this.ve=0,this.Ce=Wb(),this.Fe=py.EMPTY_BYTE_STRING,this.Me=!1,this.xe=!0}get current(){return this.Me}get resumeToken(){return this.Fe}get Oe(){return 0!==this.ve}get Ne(){return this.xe}Be(e){0<e.approximateByteSize()&&(this.xe=!0,this.Fe=e)}Le(){let r=V(),n=V(),i=V();return this.Ce.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:C(38017,{changeType:t})}}),new Ub(this.Fe,this.Me,r,n,i)}ke(){this.xe=!1,this.Ce=Wb()}qe(e,t){this.xe=!0,this.Ce=this.Ce.insert(e,t)}Qe(e){this.xe=!0,this.Ce=this.Ce.remove(e)}$e(){this.ve+=1}Ue(){--this.ve,S(0<=this.ve,3241,{ve:this.ve})}Ke(){this.xe=!0,this.Me=!0}}class zb{constructor(e){this.We=e,this.Ge=new Map,this.ze=Kw,this.je=Kb(),this.Je=Kb(),this.He=new ay(N)}Ye(e){for(var t of e.Se)e.be&&e.be.isFoundDocument()?this.Ze(t,e.be):this.Xe(t,e.key,e.be);for(var r of e.removedTargetIds)this.Xe(r,e.key,e.be)}et(r){this.forEachTarget(r,e=>{var t=this.tt(e);switch(r.state){case 0:this.nt(e)&&t.Be(r.resumeToken);break;case 1:t.Ue(),t.Oe||t.ke(),t.Be(r.resumeToken);break;case 2:t.Ue(),t.Oe||this.removeTarget(e);break;case 3:this.nt(e)&&(t.Ke(),t.Be(r.resumeToken));break;case 4:this.nt(e)&&(this.rt(e),t.Be(r.resumeToken));break;default:C(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.Ge.forEach((e,t)=>{this.nt(t)&&r(t)})}it(n){let i=n.targetId,e=n.De.count,t=this.st(i);if(t){var r=t.target;if(Ew(r))if(0===e){let e=new P(r.path);this.Xe(i,e,ew.newNoDocument(e,O.min()))}else S(1===e,20013,{expectedCount:e});else{let r=this.ot(i);if(r!==e){let e=this._t(n),t=e?this.ut(e,n,r):1;if(0!==t){this.rt(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.He=this.He.insert(i,e)}}}}}_t(e){var t=e.De.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=vy(t).toUint8Array()}catch(e){if(e instanceof dy)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 Lb(i,r,n)}catch(e){return Mm(e instanceof Mb?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.fe?null:s}ut(e,t,r){return t.De.count===r-this.ht(e,t.targetId)?0:2}ht(r,n){var e=this.We.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.We.lt(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.Xe(n,e,null),i++)}),i}Pt(n){let i=new Map,s=(this.Ge.forEach((e,t)=>{var r=this.st(t);if(r){if(e.current&&Ew(r.target)){let e=new P(r.target.path);this.Tt(e).has(t)||this.It(t,e)||this.Xe(t,e,ew.newNoDocument(e,n))}e.Ne&&(i.set(t,e.Le()),e.ke())}}),V());this.Je.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.st(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.ze.forEach((e,t)=>t.setReadTime(n));var e=new Fb(n,i,this.He,this.ze,s);return this.ze=Kw,this.je=Kb(),this.Je=Kb(),this.He=new ay(N),e}Ze(e,t){var r;this.nt(e)&&(r=this.It(e,t.key)?2:0,this.tt(e).qe(t.key,r),this.ze=this.ze.insert(t.key,t),this.je=this.je.insert(t.key,this.Tt(t.key).add(e)),this.Je=this.Je.insert(t.key,this.dt(t.key).add(e)))}Xe(e,t,r){var n;this.nt(e)&&(n=this.tt(e),this.It(e,t)?n.qe(t,1):n.Qe(t),this.Je=this.Je.insert(t,this.dt(t).delete(e)),this.Je=this.Je.insert(t,this.dt(t).add(e)),r)&&(this.ze=this.ze.insert(t,r))}removeTarget(e){this.Ge.delete(e)}ot(e){var t=this.tt(e).Le();return this.We.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}$e(e){this.tt(e).$e()}tt(e){let t=this.Ge.get(e);return t||(t=new Bb,this.Ge.set(e,t)),t}dt(e){let t=this.Je.get(e);return t||(t=new M(N),this.Je=this.Je.insert(e,t)),t}Tt(e){let t=this.je.get(e);return t||(t=new M(N),this.je=this.je.insert(e,t)),t}nt(e){var t=null!==this.st(e);return t||E("WatchChangeAggregator","Detected inactive target",e),t}st(e){var t=this.Ge.get(e);return t&&t.Oe?null:this.We.Et(e)}rt(t){this.Ge.set(t,new Bb),this.We.getRemoteKeysForTarget(t).forEach(e=>{this.Xe(t,e,null)})}It(e,t){return this.We.getRemoteKeysForTarget(e).has(t)}}function Kb(){return new ay(P.comparator)}function Wb(){return new ay(P.comparator)}let Hb={asc:"ASCENDING",desc:"DESCENDING"},Gb={"<":"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"},$b={and:"AND",or:"OR"};class Qb{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Yb(e,t){return e.useProto3Json||zv(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 Xb(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function Zb(e){return S(!!e,49232),O.fromTimestamp((t=gy(e),new x(t.seconds,t.nanos)));var t}function eI(e,t){return tI(e,t).canonicalString()}function tI(e,t){e=e;var r=new R(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function rI(e){var t=R.fromString(e);return S(II(t),10190,{key:t.toString()}),t}function nI(e,t){return eI(e.databaseId,t.path)}function iI(e,t){var r=rI(t);if(r.get(1)!==e.databaseId.projectId)throw new A(k.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 A(k.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new P(lI(r))}function sI(e,t){return eI(e.databaseId,t)}function aI(e){var t=rI(e);return 4===t.length?R.emptyPath():lI(t)}function oI(e){return new R(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function lI(e){return S(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function hI(e,t,r){return{name:nI(e,t),fields:r.value.mapValue.fields}}function uI(e,t,r){var n=iI(e,t.name),i=Zb(t.updateTime),s=t.createTime?Zb(t.createTime):O.min(),a=new Zy({mapValue:{fields:t.fields}}),n=ew.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function cI(e,t){let r;if(t instanceof yb)r={update:hI(e,t.key,t.value)};else if(t instanceof Eb)r={delete:nI(e,t.key)};else if(t instanceof wb)r={update:hI(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 Cb))return C(16599,{Rt:t.type});r={verify:nI(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof nb)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof ib)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof ab)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof lb)return{fieldPath:e.field.canonicalString(),increment:t.Ee};throw C(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}:C(27497))),r;var n}function dI(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?pb.updateTime(Zb(s.updateTime)):void 0!==s.exists?pb.exists(s.exists):pb.none():pb.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 nb;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new ib(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new ab(e)}else"increment"in r?t=new lb(e,r.increment):C(16584,{proto:r});var n=nv.fromServerFormat(r.fieldPath);return new cb(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=iI(i,t.update.name),l=new Zy({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new cy(a.map(e=>nv.fromServerFormat(e)));return new wb(o,l,e,r,n)}return new yb(o,l,r,n)}if(t.delete){let e=iI(i,t.delete);return new Eb(e,r)}if(t.verify){let e=iI(i,t.verify);return new Cb(e,r)}return C(1463,{proto:t})}function pI(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(O.min())&&(e=Zb(r)),new db(e,t.transformResults||[])}})):[]}function fI(e,t){return{documents:[sI(e,t.path)]}}function gI(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=sI(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof F?(e=>{if("=="===e.op){if(Wy(e.value))return{unaryFilter:{field:wI(e.field),op:"IS_NAN"}};if(Ky(e.value))return{unaryFilter:{field:wI(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Wy(e.value))return{unaryFilter:{field:wI(e.field),op:"IS_NOT_NAN"}};if(Ky(e.value))return{unaryFilter:{field:wI(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:wI(e.field),op:_I(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:yI(e.op),filters:t}}})(e):C(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:wI((e=e).field),direction:(e=e.dir,Hb[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=Yb(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}),{Vt:r,parent:i}}function mI(e){let t=aI(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=bI(i.unaryFilter.field);return F.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=bI(i.unaryFilter.field);return F.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=bI(i.unaryFilter.field);return F.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=bI(i.unaryFilter.field);return F.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return C(61313);default:return C(60726)}})(e):void 0!==e.fieldFilter?(e=>F.create(bI(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 C(58110);default:return C(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 C(1026)}})(e.compositeFilter.op)))(e):C(30097,{filter:e})}(e))instanceof U&&lw(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new iw(bI(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,zv(i="object"==typeof e?e.value:e)?null:i)),null),u=(n.startAt&&(h=(e=n.startAt,i=!!e.before,r=e.values||[],new tw(r,i))),null);return n.endAt&&(u=(e=n.endAt,r=!e.before,i=e.values||[],new tw(i,r))),Nw(t,s,o,a,l,"F",h,u)}function vI(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 C(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function _I(e){return Gb[e]}function yI(e){return $b[e]}function wI(e){return{fieldPath:e.canonicalString()}}function bI(e){return nv.fromServerFormat(e.fieldPath)}function II(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class TI{constructor(e,t,r,n,i=O.min(),s=O.min(),a=py.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 TI(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new TI(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new TI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new TI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class EI{constructor(e){this.gt=e}}function CI(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:SI(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:nI(e=e.gt,(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:kI(t.version)};else{if(!t.isUnknownDocument())return C(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:kI(t.version)}}return i}function SI(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function kI(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function AI(e){var t=new x(e.seconds,e.nanoseconds);return O.fromTimestamp(t)}function NI(t,r){let e=(r.baseMutations||[]).map(e=>dI(t.gt,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=>dI(t.gt,e)),i=x.fromMillis(r.localWriteTimeMs);return new Sb(r.batchId,i,e,n)}function RI(e){var t,r=AI(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?AI(e.lastLimboFreeSnapshotVersion):O.min(),i=void 0!==e.query.documents?(t=e.query,S(1===(i=t.documents.length),1966,{count:i}),Ow(Rw(aI(t.documents[0])))):Ow(mI(e.query));return new TI(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,py.fromBase64String(e.resumeToken))}function PI(e,t){var r=kI(t.snapshotVersion),n=kI(t.lastLimboFreeSnapshotVersion),i=Ew(t.target)?fI(e.gt,t.target):gI(e.gt,t.target).Vt,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:Iw(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function DI(e){var t=mI({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Mw(t,t.limit,"L"):t}function xI(e,t){return new Ab(t.largestBatchId,dI(e.gt,t.overlayMutation))}function OI(e,t){var r=t.path.lastSegment();return[e,Gv(t.path.popLast()),r]}function LI(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:kI(n.readTime),documentKey:Gv(n.documentKey.path),largestBatchId:n.largestBatchId}}class MI{getBundleMetadata(e,t){return FI(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:AI(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return FI(e).put({bundleId:(e=t).id,createTime:kI(Zb(e.createTime)),version:e.version})}getNamedQuery(e,t){return UI(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:DI(e.bundledQuery),readTime:AI(e.readTime)}})}saveNamedQuery(e,t){return UI(e).put({name:(e=t).name,readTime:kI(Zb(e.readTime)),bundledQuery:e.bundledQuery})}}function FI(e){return ry(e,A_)}function UI(e){return ry(e,N_)}class VI{constructor(e,t){this.serializer=e,this.userId=t}static yt(e,t){var r=t.uid||"";return new VI(e,r)}getOverlay(e,t){return qI(e).get(OI(this.userId,t)).next(e=>e?xI(this.serializer,e):null)}getOverlays(e,t){let r=$w();return L.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 Ab(i,t);s.push(this.wt(n,r))}),L.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Gv(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(qI(r).Y(B_,t))}),L.waitFor(i)}getOverlaysForCollection(e,t,r){let n=$w(),i=Gv(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return qI(e).j(B_,s).next(e=>{for(var t of e){let e=xI(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=$w(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return qI(e).X({index:K_,range:n},(e,t,r)=>{var n=xI(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}wt(e,t){return qI(e).put(((e,t,r)=>{var[,n,i]=OI(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:cI(e.gt,r.mutation)}})(this.serializer,this.userId,t))}}function qI(e){return ry(e,q_)}class jI{St(e){return ry(e,H_)}getSessionToken(e){return this.St(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?py.fromUint8Array(t):py.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.St(e).put({name:"sessionToken",value:t.toUint8Array()})}}class BI{constructor(){}bt(e,t){this.Dt(e,t),t.vt()}Dt(t,r){if("nullValue"in t)this.Ct(r,5);else if("booleanValue"in t)this.Ct(r,10),r.Ft(t.booleanValue?1:0);else if("integerValue"in t)this.Ct(r,15),r.Ft(my(t.integerValue));else if("doubleValue"in t){var e=my(t.doubleValue);isNaN(e)?this.Ct(r,13):(this.Ct(r,15),Kv(e)?r.Ft(0):r.Ft(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Ct(r,20),"string"==typeof e&&(e=gy(e)),r.Mt(""+(e.seconds||"")),r.Ft(e.nanos||0)}else"stringValue"in t?(this.xt(t.stringValue,r),this.Ot(r)):"bytesValue"in t?(this.Ct(r,30),r.Nt(vy(t.bytesValue)),this.Ot(r)):"referenceValue"in t?this.Bt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Ct(r,45),r.Ft(e.latitude||0),r.Ft(e.longitude||0)):"mapValue"in t?Qy(t)?this.Ct(r,Number.MAX_SAFE_INTEGER):Gy(t)?this.Lt(t.mapValue,r):(this.kt(t.mapValue,r),this.Ot(r)):"arrayValue"in t?(this.qt(t.arrayValue,r),this.Ot(r)):C(19022,{Qt:t})}xt(e,t){this.Ct(t,25),this.$t(e,t)}$t(e,t){t.Mt(e)}kt(e,t){var r=e.fields||{};this.Ct(t,55);for(let e of Object.keys(r))this.xt(e,t),this.Dt(r[e],t)}Lt(e,t){var r=e.fields||{},n=(this.Ct(t,53),Dy),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.Ct(t,15),t.Ft(my(i)),this.xt(n,t),this.Dt(r[n],t)}qt(e,t){var r=e.values||[];this.Ct(t,50);for(let e of r)this.Dt(e,t)}Bt(e,t){this.Ct(t,37),P.fromName(e).path.forEach(e=>{this.Ct(t,60),this.$t(e,t)})}Ct(e,t){e.Ft(t)}Ot(e){e.Ft(2)}}BI.Ut=new BI;function zI(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 KI{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Kt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Wt(r.value),r=t.next();this.Gt()}zt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.jt(r.value),r=t.next();this.Jt()}Ht(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Wt(e);else if(e<2048)this.Wt(960|e>>>6),this.Wt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Wt(480|e>>>12),this.Wt(128|63&e>>>6),this.Wt(128|63&e);else{let e=t.codePointAt(0);this.Wt(240|e>>>18),this.Wt(128|63&e>>>12),this.Wt(128|63&e>>>6),this.Wt(128|63&e)}}this.Gt()}Yt(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.Jt()}Zt(e){var t=this.Xt(e),r=zI(t);this.en(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]}tn(e){var t=this.Xt(e),r=zI(t);this.en(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])}nn(){this.rn(255),this.rn(255)}sn(){this._n(255),this._n(255)}reset(){this.position=0}seed(e){this.en(e.length),this.buffer.set(e,this.position),this.position+=e.length}an(){return this.buffer.slice(0,this.position)}Xt(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}Wt(e){var t=255&e;0==t?(this.rn(0),this.rn(255)):255==t?(this.rn(255),this.rn(0)):this.rn(t)}jt(e){var t=255&e;0==t?(this._n(0),this._n(255)):255==t?(this._n(255),this._n(0)):this._n(e)}Gt(){this.rn(0),this.rn(1)}Jt(){this._n(0),this._n(1)}rn(e){this.en(1),this.buffer[this.position++]=e}_n(e){this.en(1),this.buffer[this.position++]=~e}en(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 WI{constructor(e){this.un=e}Nt(e){this.un.Kt(e)}Mt(e){this.un.Ht(e)}Ft(e){this.un.Zt(e)}vt(){this.un.nn()}}class HI{constructor(e){this.un=e}Nt(e){this.un.zt(e)}Mt(e){this.un.Yt(e)}Ft(e){this.un.tn(e)}vt(){this.un.sn()}}class GI{constructor(){this.un=new KI,this.cn=new WI(this.un),this.ln=new HI(this.un)}seed(e){this.un.seed(e)}hn(e){return 0===e?this.cn:this.ln}an(){return this.un.an()}reset(){this.un.reset()}}class $I{constructor(e,t,r,n){this.Pn=e,this.Tn=t,this.In=r,this.dn=n}En(){var e=this.dn.length,t=0===e||255===this.dn[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.dn,0),t!==e?r.set([0],this.dn.length):++r[r.length-1],new $I(this.Pn,this.Tn,this.In,r)}An(e,t,r){return{indexId:this.Pn,uid:e,arrayValue:JI(this.In),directionalValue:JI(this.dn),orderedDocumentKey:JI(t),documentKey:r.path.toArray()}}Rn(e,t,r){var n=this.An(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function QI(e,t){var r=e.Pn-t.Pn;return 0!=r||0!==(r=YI(e.In,t.In))||0!==(r=YI(e.dn,t.dn))?r:P.comparator(e.Tn,t.Tn)}function YI(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 XI(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.Vn=new M((e,t)=>nv.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.mn=e.orderBy,this.fn=[];for(var t of e.filters){let e=t;e.isInequality()?this.Vn=this.Vn.add(e):this.fn.push(e)}}get gn(){return 1<this.Vn.size}pn(e){if(S(e.collectionGroup===this.collectionId,49279),this.gn)return!1;let t=mv(e);if(void 0!==t&&!this.yn(t))return!1;var r=vv(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.yn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.Vn.size){let t=this.Vn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.wn(t,e)||!this.Sn(this.mn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.mn.length||!this.Sn(this.mn[s++],e))return!1}}return!0}bn(){if(this.gn)return null;let e=new M(nv.comparator);var t,r,n=[];for(t of this.fn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new _v(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new _v(t.field,0))));for(r of this.mn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new _v(r.field,"asc"===r.dir?0:1)));return new gv(gv.UNKNOWN_ID,this.collectionId,n,yv.empty())}yn(e){for(var t of this.fn)if(this.wn(t,e))return!0;return!1}wn(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)}Sn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function eT(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=aT(n),nT(n)?n:(S(n instanceof U,64498),S(aw(n),40251),S(1<n.filters.length,57927),n.filters.reduce((e,t)=>iT(e,t)))}(function t(r){var n;if(S(r instanceof F||r instanceof U,20012),r instanceof F){if(r instanceof vw){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(nT(t),7391),tT(t)||rT(t)?[t]:t.getFilters())}function tT(e){return e instanceof F}function rT(e){return e instanceof U&&lw(e)}function nT(e){return tT(e)||rT(e)||(e=>{if(e instanceof U&&ow(e)){for(var t of e.getFilters())if(!tT(t)&&!rT(t))return!1;return!0}return!1})(e)}function iT(e,t){var r,n;return S(e instanceof F||e instanceof U,38388),S(t instanceof F||t instanceof U,25473),aT(e instanceof F?t instanceof F?(r=e,n=t,U.create([r,n],"and")):sT(e,t):t instanceof F?sT(t,e):((e,t)=>{if(S(0<e.filters.length&&0<t.filters.length,48005),aw(e)&&aw(t))return uw(e,t.getFilters());let r=ow(e)?e:t,n=ow(e)?t:e,i=r.filters.map(e=>iT(e,n));return U.create(i,"or")})(e,t))}function sT(t,e){var r;return aw(e)?uw(e,t.getFilters()):(r=e.filters.map(e=>iT(t,e)),U.create(r,"or"))}function aT(t){if(S(t instanceof F||t instanceof U,11850),t instanceof F)return t;var e=t.getFilters();if(1===e.length)return aT(e[0]);if(hw(t))return t;let r=e.map(e=>aT(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 oT{constructor(){this.Dn=new lT}addToCollectionParentIndex(e,t){return this.Dn.add(t),L.resolve()}getCollectionParents(e,t){return L.resolve(this.Dn.getEntries(t))}addFieldIndex(e,t){return L.resolve()}deleteFieldIndex(e,t){return L.resolve()}deleteAllFieldIndexes(e){return L.resolve()}createTargetIndexes(e,t){return L.resolve()}getDocumentsMatchingTarget(e,t){return L.resolve(null)}getIndexType(e,t){return L.resolve(0)}getFieldIndexes(e,t){return L.resolve([])}getNextCollectionGroupToUpdate(e){return L.resolve(null)}getMinOffset(e,t){return L.resolve(Iv.min())}getMinOffsetFromCollectionGroup(e,t){return L.resolve(Iv.min())}updateCollectionGroup(e,t,r){return L.resolve()}updateIndexEntries(e,t){return L.resolve()}}class lT{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new M(R.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 M(R.comparator)).toArray()}}let hT="IndexedDbIndexManager",uT=new Uint8Array(0);class cT{constructor(e,t){this.databaseId=t,this.vn=new lT,this.Cn=new zw(e=>Iw(e),(e,t)=>Tw(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.vn.has(t)?L.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.vn.add(t)}),n={collectionId:n,parent:Gv(r)},dT(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Zm(r),""],!1,!0);return dT(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=fT(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=gT(e);return i.next(e=>{t.put(LI(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=fT(e),n=gT(e),i=pT(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=fT(e),r=pT(e),n=gT(e);return t.Y().next(()=>r.Y()).next(()=>n.Y())}createTargetIndexes(r,e){return L.forEach(this.Fn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new ZI(t).bn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=pT(e),r=!0,n=new Map;return L.forEach(this.Fn(c),t=>this.Mn(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let h=V(),u=[];return L.forEach(n,(e,t)=>{E(hT,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Iw(c));var r,n=((t,e)=>{var r=mv(e);if(void 0!==r)for(let e of Cw(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 vv(r))for(let e of Cw(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 vv(e)){let e=(0===r.kind?Sw:kw)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new tw(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of vv(e)){let e=(0===r.kind?kw:Sw)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new tw(n,i)})(t,e),o=this.xn(e,t,s),l=this.xn(e,t,a),i=this.On(e,t,i),n=this.Nn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return L.forEach(n,e=>d.H(e,c.limit).next(e=>{e.forEach(e=>{var t=P.fromSegments(e.documentKey);h.has(t)||(h=h.add(t),u.push(t))})}))}).next(()=>u)}return L.resolve(null)})}Fn(t){let e=this.Cn.get(t);return e||(e=0===t.filters.length?[t]:eT(U.create(t.filters,"and")).map(e=>bw(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Cn.set(t,e)),e}Nn(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.Bn(s[p/c]):uT,e=this.Ln(i,t,a[p%c],o),r=this.kn(i,t,l[p%c],h),n=u.map(e=>this.Ln(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}Ln(e,t,r,n){var i=new $I(e,P.empty(),t,r);return n?i:i.En()}kn(e,t,r,n){var i=new $I(e,P.empty(),t,r);return n?i.En():i}Mn(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.pn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.Fn(t);return L.forEach(n,t=>this.Mn(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new M(nv.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)}qn(e,t){var r,n=new GI;for(r of vv(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.hn(r.kind);BI.Ut.bt(e,i)}return n.an()}Bn(e){var t=new GI;return BI.Ut.bt(e,t.hn(0)),t.an()}Qn(e,t){var r,n=new GI;return BI.Ut.bt(jy(this.databaseId,t),n.hn(0===(r=vv(e)).length?0:r[r.length-1].kind)),n.an()}On(e,n,i){if(null===i)return[];let s=[],a=(s.push(new GI),0);for(var o of vv(e)){let t=i[a++];for(let r of s)if(this.$n(n,o.fieldPath)&&zy(t))s=this.Un(s,o,t);else{let e=r.hn(o.kind);BI.Ut.bt(t,e)}}return this.Kn(s)}xn(e,t,r){return this.On(e,t,r.position)}Kn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].an();return t}Un(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new GI;e.seed(t.an()),BI.Ut.bt(r,e.hn(n.kind)),s.push(e)}return s}$n(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=fT(e),n=gT(e);return(t?r.j(P_,IDBKeyRange.bound(t,t)):r.j()).next(e=>{let s=[];return L.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new yv(e.sequenceNumber,new Iv(AI(e.readTime),new P(Qv(e.documentKey)),e.largestBatchId)):yv.empty(),n=t.fields.map(([e,t])=>new _v(nv.fromServerFormat(e),t)),new gv(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:N(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=fT(e),s=gT(e);return this.Wn(e).next(t=>i.j(P_,IDBKeyRange.bound(r,r)).next(e=>L.forEach(e,e=>s.put(LI(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return L.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?L.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),L.forEach(e,r=>this.Gn(i,t,r).next(e=>{var t=this.zn(n,r);return e.isEqual(t)?L.resolve():this.jn(i,n,r,e,t)}))))})}Jn(e,t,r,n){return pT(e).put(n.An(this.uid,this.Qn(r,t.key),t.key))}Hn(e,t,r,n){return pT(e).delete(n.Rn(this.uid,this.Qn(r,t.key),t.key))}Gn(e,r,n){var t=pT(e);let i=new M(QI);return t.X({index:U_,range:IDBKeyRange.only([n.indexId,this.uid,JI(this.Qn(n,r))])},(e,t)=>{i=i.add(new $I(n.indexId,r,XI(t.arrayValue),XI(t.directionalValue)))}).next(()=>i)}zn(t,r){let n=new M(QI);var i=this.qn(r,t);if(null!=i){let e=mv(r);if(null!=e){var s=t.data.field(e.fieldPath);if(zy(s))for(let e of s.arrayValue.values||[])n=n.add(new $I(r.indexId,t.key,this.Bn(e),i))}else n=n.add(new $I(r.indexId,t.key,uT,i))}return n}jn(t,r,s,e,a){E(hT,"Updating index entries for document '%s'",r.key);let o=[];{var l=QI,h=e=>{o.push(this.Jn(t,r,s,e))},u=e=>{o.push(this.Hn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=uy(c),i=uy(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=uy(d)):r?(u(n),n=uy(c)):(n=uy(c),i=uy(d))}}return L.waitFor(o)}Wn(e){let n=1;return gT(e).X({index:O_,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)=>QI(e,t)).filter((e,t,r)=>!t||0!==QI(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=QI(s,r),t=QI(s,n);if(0===e)i[0]=r.En();else if(0<e&&t<0)i.push(s),i.push(s.En());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Yn(i[a],i[a+1]))return[];let e=i[a].Rn(this.uid,uT,P.empty()),t=i[a+1].Rn(this.uid,uT,P.empty());s.push(IDBKeyRange.bound(e,t))}return s}Yn(e,t){return 0<QI(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(mT)}getMinOffset(t,e){return L.mapArray(this.Fn(e),e=>this.Mn(t,e).next(e=>e||C(44426))).next(mT)}}function dT(e){return ry(e,C_)}function pT(e){return ry(e,M_)}function fT(e){return ry(e,R_)}function gT(e){return ry(e,D_)}function mT(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;Tv(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new Iv(t.readTime,t.documentKey,r)}let vT={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class _T{static withCacheSize(e){return new _T(e,_T.DEFAULT_COLLECTION_PERCENTILE,_T.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function yT(t,r,n){let e=t.store(e_),i=t.store(o_),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.X({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=s_(r,t.key.path,n.batchId);s.push(i.delete(e)),h.push(t.key)}return L.waitFor(s).next(()=>h)}function wT(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 C(14731);t=e.noDocument}return JSON.stringify(t).length}_T.DEFAULT_COLLECTION_PERCENTILE=10,_T.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,_T.DEFAULT=new _T(41943040,_T.DEFAULT_COLLECTION_PERCENTILE,_T.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),_T.DISABLED=new _T(-1,0,0);class bT{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Zn={}}static yt(e,t,r,n){S(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new bT(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return TT(e).X({index:r_,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,p,f){let g=ET(c),m=TT(c);return m.add({}).next(t=>{S("number"==typeof t,49019);let e=new Sb(t,d,p,f),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>cI(i.gt,e)),l=a.mutations.map(e=>cI(i.gt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let h=new M((e,t)=>N(e.canonicalString(),t.canonicalString()));for(let u of f){let e=s_(this.userId,u.key.path,t);h=h.add(u.key.path.popLast()),n.push(m.put(r)),n.push(g.put(e,a_))}return h.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Zn[t]=e.keys()}),L.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return TT(e).get(t).next(e=>e?(S(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),NI(this.serializer,e)):null)}Xn(e,r){return this.Zn[r]?L.resolve(this.Zn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Zn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return TT(e).X({index:r_,range:r},(e,t,r)=>{t.userId===this.userId&&(S(t.batchId>=n,47524,{er:n}),i=NI(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=Bv;return TT(e).X({index:r_,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,Bv],[this.userId,Number.POSITIVE_INFINITY]);return TT(e).j(r_,t).next(e=>e.map(e=>NI(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=i_(this.userId,l.path),t=IDBKeyRange.lowerBound(e),h=[];return ET(o).X({range:t},(t,e,r)=>{let[n,i,s]=t,a=Qv(i);if(n===this.userId&&l.path.isEqual(a))return TT(o).get(s).next(e=>{if(!e)throw C(61480,{tr:t,batchId:s});S(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),h.push(NI(this.serializer,e))});r.done()}).next(()=>h)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new M(N),r=[];return e.forEach(a=>{var e=i_(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=ET(t).X({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)}),L.waitFor(r).next(()=>this.nr(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=i_(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new M(N);return ET(e).X({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.nr(e,l))}nr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(TT(e).get(t).next(e=>{if(null===e)throw C(35274,{batchId:t});S(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(NI(this.serializer,e))}))}),L.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return yT(t.ce,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.rr(r.batchId)}),L.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}rr(e){delete this.Zn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return L.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return ET(r).X({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,{ir:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return IT(e,this.userId,t)}sr(e){return CT(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:Bv,lastStreamToken:""})}}function IT(e,s,t){let r=i_(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return ET(e).X({range:n,Z:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function TT(e){return ry(e,e_)}function ET(e){return ry(e,o_)}function CT(e){return ry(e,Zv)}class ST{constructor(e){this._r=e}next(){return this._r+=2,this._r}static ar(){return new ST(0)}static ur(){return new ST(-1)}}class kT{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.cr(r).next(e=>{var t=new ST(e.highestTargetId);return e.highestTargetId=t.next(),this.lr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.cr(e).next(e=>O.fromTimestamp(new x(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.cr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.cr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.lr(t,e)))}addTargetData(t,r){return this.hr(t,r).next(()=>this.cr(t).next(e=>(e.targetCount+=1,this.Pr(r,e),this.lr(t,e))))}updateTargetData(e,t){return this.hr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>AT(t).delete(e.targetId)).next(()=>this.cr(t)).next(e=>(S(0<e.targetCount,8065),--e.targetCount,this.lr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return AT(n).X((e,t)=>{var r=RI(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>L.waitFor(o)).next(()=>a)}forEachTarget(e,n){return AT(e).X((e,t)=>{var r=RI(t);n(r)})}cr(e){return NT(e).get(T_).next(e=>(S(null!==e,2888),e))}lr(e,t){return NT(e).put(T_,t)}hr(e,t){return AT(e).put(PI(this.serializer,t))}Pr(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.cr(e).next(e=>e.targetCount)}getTargetData(e,i){var t=Iw(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return AT(e).X({range:t,index:v_},(e,t,r)=>{var n=RI(t);Tw(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=RT(r);return e.forEach(e=>{var t=Gv(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),L.waitFor(i)}removeMatchingKeys(r,e,n){let i=RT(r);return L.forEach(e,e=>{var t=Gv(e.path);return L.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=RT(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=RT(e);let i=V();return n.X({range:r,Z:!0},(e,t,r)=>{var n=Qv(e[1]),n=new P(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Gv(t.path),r=IDBKeyRange.bound([r],[Zm(r)],!1,!0);let n=0;return RT(e).X({index:b_,Z:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}Et(e,t){return AT(e).get(t).next(e=>e?RI(e):null)}}function AT(e){return ry(e,m_)}function NT(e){return ry(e,E_)}function RT(e){return ry(e,y_)}let PT="LruGarbageCollector";function DT([e,t],[r,n]){var i=N(e,r);return 0===i?N(t,n):i}class xT{constructor(e){this.Tr=e,this.buffer=new M(DT),this.Ir=0}dr(){return++this.Ir}Er(e){var t=[e,this.dr()];if(this.buffer.size<this.Tr)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();DT(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class OT{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Ar=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Rr(6e4)}stop(){this.Ar&&(this.Ar.cancel(),this.Ar=null)}get started(){return null!==this.Ar}Rr(e){E(PT,`Garbage collection scheduled in ${e}ms`),this.Ar=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Ar=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){xv(e)?E(PT,"Ignoring IndexedDB error during garbage collection: ",e):await Sv(e)}await this.Rr(3e5)})}}class LT{constructor(e,t){this.Vr=e,this.params=t}calculateTargetCount(e,t){return this.Vr.mr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return L.resolve(jv.ue);let r=new xT(t);return this.Vr.forEachTarget(e,e=>r.Er(e.sequenceNumber)).next(()=>this.Vr.gr(e,e=>r.Er(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Vr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Vr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector","Garbage collection skipped; disabled"),L.resolve(vT)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),vT):this.pr(t,r))}getCacheSize(e){return this.Vr.getCacheSize(e)}pr(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?(E("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(),Om()<=c.DEBUG&&E("LruGarbageCollector",`LRU Garbage Collection Counted targets in ${a-u}ms 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`),L.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function MT(e,t){return new LT(e,t)}class FT{constructor(e,t){this.db=e,this.garbageCollector=MT(this,t)}mr(e){let r=this.yr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}yr(e){let t=0;return this.gr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}gr(e,r){return this.wr(e,(e,t)=>r(t))}addReference(e,t,r){return UT(e,r)}removeReference(e,t,r){return UT(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return UT(e,t)}Sr(e,r){{var n=e,i=r;let t=!1;return CT(n).ee(e=>IT(n,e,i).next(e=>(e&&(t=!0),L.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.wr(r,(t,e)=>{if(e<=n){let e=this.Sr(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,O.min()),RT(r).delete([0,Gv(t.path)])))});s.push(e)}}).next(()=>L.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 UT(e,t)}wr(e,n){var t=RT(e);let i,s=jv.ue;return t.X({index:b_},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==jv.ue&&n(new P(Qv(i)),s),s=r,i=t):s=jv.ue}).next(()=>{s!==jv.ue&&n(new P(Qv(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function UT(e,t){return RT(e).put((e=e.currentSequenceNumber,{targetId:0,path:Gv(t.path),sequenceNumber:e}))}class VT{constructor(){this.changes=new zw(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,ew.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?L.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 qT{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return KT(e).put(r)}removeEntry(e,t,r){return KT(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],SI(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.br(t,e)))}getEntry(e,r){let n=ew.newInvalidDocument(r);return KT(e).X({index:u_,range:IDBKeyRange.only(WT(r))},(e,t)=>{n=this.Dr(r,t)}).next(()=>n)}vr(e,r){let n={size:0,document:ew.newInvalidDocument(r)};return KT(e).X({index:u_,range:IDBKeyRange.only(WT(r))},(e,t)=>{n={document:this.Dr(r,t),size:wT(t)}}).next(()=>n)}getEntries(e,t){let n=Kw;return this.Cr(e,t,(e,t)=>{var r=this.Dr(e,t);n=n.insert(e,r)}).next(()=>n)}Fr(e,t){let n=Kw,i=new ay(P.comparator);return this.Cr(e,t,(e,t)=>{var r=this.Dr(e,t);n=n.insert(e,r),i=i.insert(e,wT(t))}).next(()=>({documents:n,Mr:i}))}Cr(e,t,i){if(t.isEmpty())return L.resolve();let r=new M(GT),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(WT(r.first()),WT(r.last()))),s=r.getIterator(),a=s.getNext();return KT(e).X({index:u_,range:n},(e,t,r)=>{for(var n=P.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&>(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.G(WT(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(),SI(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 KT(e).j(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=Kw;for(let r of e){let e=this.Dr(P.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(qw(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=Kw;var n=HT(t,r),a=HT(t,Iv.max());return KT(e).X({index:d_,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Dr(P.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 BT(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return zT(e).get(g_).next(e=>(S(!!e,20021),e))}br(e,t){return zT(e).put(g_,t)}Dr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=uI(e.gt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=P.fromSegments(r.noDocument.path),t=AI(r.noDocument.readTime);n=ew.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return C(56709);{let e=P.fromSegments(r.unknownDocument.path),t=AI(r.unknownDocument.version);n=ew.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new x(e[0],e[1]),O.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(O.min()))return e}return ew.newInvalidDocument(e)}}function jT(e){return new qT(e)}class BT extends VT{constructor(e,t){super(),this.Or=e,this.trackRemovals=t,this.Nr=new zw(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new M((e,t)=>N(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Nr.get(t);if(a.push(this.Or.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=CI(this.Or.serializer,r),i=(l=l.add(t.path.popLast()),wT(n));o+=i-e.size,a.push(this.Or.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=CI(this.Or.serializer,r.convertToNoDocument(O.min()));a.push(this.Or.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Or.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Or.updateMetadata(s,o)),L.waitFor(a)}getFromCache(e,t){return this.Or.vr(e,t).next(e=>(this.Nr.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Or.Fr(e,t).next(({documents:r,Mr:e})=>(e.forEach((e,t)=>{this.Nr.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function zT(e){return ry(e,f_)}function KT(e){return ry(e,l_)}function WT(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function HT(e,t){var r=t.documentKey.path.toArray();return[e,SI(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function GT(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=N(r[s],n[s]))return i;return(i=N(r.length,n.length))||(i=N(r[r.length-2],n[n.length-2]))||N(r[r.length-1],n[n.length-1])}class $T{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class QT{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&&vb(n.mutation,e,cy.empty(),x.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=$w();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Hw();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=$w();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=Kw,a=$w(),o=$w();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof wb)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),vb(r.mutation,t,r.mutation.getFieldMask(),x.now())):a.set(t.key,cy.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 $T(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=$w(),h=new ay((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)||cy.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=$w();r.forEach(e=>{var t;u.has(e)||(null!==(t=mb(o.get(e),l.get(e)))&&n.set(e,t),u=u.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return L.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,P.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Dw(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):L.resolve($w());let n=fv,i=r;return e.next(e=>L.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?L.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:Gw(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new P(t)).next(e=>{let t=Hw();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=Hw();return this.indexManager.getCollectionParents(n,o).next(e=>L.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Aw(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,ew.newInvalidDocument(r)))});let i=Hw();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&vb(r.mutation,t,cy.empty(),x.now()),qw(s,t)&&(i=i.insert(e,t))}),i})}}class YT{constructor(e){this.serializer=e,this.Br=new Map,this.Lr=new Map}getBundleMetadata(e,t){return L.resolve(this.Br.get(t))}saveBundleMetadata(e,t){return this.Br.set(t.id,{id:t.id,version:t.version,createTime:Zb(t.createTime)}),L.resolve()}getNamedQuery(e,t){return L.resolve(this.Lr.get(t))}saveNamedQuery(e,t){return this.Lr.set(t.name,{name:(t=t).name,query:DI(t.bundledQuery),readTime:Zb(t.readTime)}),L.resolve()}}class JT{constructor(){this.overlays=new ay(P.comparator),this.kr=new Map}getOverlay(e,t){return L.resolve(this.overlays.get(t))}getOverlays(e,t){let r=$w();return L.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.wt(r,n,t)}),L.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.kr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.kr.delete(r)),L.resolve()}getOverlaysForCollection(e,r,n){let i=$w(),s=r.length+1,t=new P(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 L.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new ay((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=$w(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=$w(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return L.resolve(a)}wt(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.kr.get(n.largestBatchId).delete(r.key);this.kr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new Ab(t,r));let i=this.kr.get(t);void 0===i&&(i=V(),this.kr.set(t,i)),this.kr.set(t,i.add(r.key))}}class XT{constructor(){this.sessionToken=py.EMPTY_BYTE_STRING}getSessionToken(e){return L.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,L.resolve()}}class ZT{constructor(){this.qr=new M(e0.Qr),this.$r=new M(e0.Ur)}isEmpty(){return this.qr.isEmpty()}addReference(e,t){var r=new e0(e,t);this.qr=this.qr.add(r),this.$r=this.$r.add(r)}Kr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Wr(new e0(e,t))}Gr(e,t){e.forEach(e=>this.removeReference(e,t))}zr(e){let t=new P(new R([])),r=new e0(t,e),n=new e0(t,e+1),i=[];return this.$r.forEachInRange([r,n],e=>{this.Wr(e),i.push(e.key)}),i}jr(){this.qr.forEach(e=>this.Wr(e))}Wr(e){this.qr=this.qr.delete(e),this.$r=this.$r.delete(e)}Jr(e){var t=new P(new R([])),r=new e0(t,e),t=new e0(t,e+1);let n=V();return this.$r.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new e0(e,0),t=this.qr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class e0{constructor(e,t){this.key=e,this.Hr=t}static Qr(e,t){return P.comparator(e.key,t.key)||N(e.Hr,t.Hr)}static Ur(e,t){return N(e.Hr,t.Hr)||P.comparator(e.key,t.key)}}class t0{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.er=1,this.Yr=new M(e0.Qr)}checkEmpty(e){return L.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.er,s=(this.er++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new Sb(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Yr=this.Yr.add(new e0(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return L.resolve(s)}lookupMutationBatch(e,t){return L.resolve(this.Zr(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.Xr(t+1),r=r<0?0:r;return L.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return L.resolve(0===this.mutationQueue.length?Bv:this.er-1)}getAllMutationBatches(e){return L.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new e0(t,0),n=new e0(t,Number.POSITIVE_INFINITY),i=[];return this.Yr.forEachInRange([r,n],e=>{var t=this.Zr(e.Hr);i.push(t)}),L.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new M(N);return t.forEach(e=>{var t=new e0(e,0),r=new e0(e,Number.POSITIVE_INFINITY);this.Yr.forEachInRange([t,r],e=>{n=n.add(e.Hr)})}),L.resolve(this.ei(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;P.isDocumentKey(i)||(i=i.child(""));var s=new e0(new P(i),0);let a=new M(N);return this.Yr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Hr)),!0)},s),L.resolve(this.ei(a))}ei(e){let r=[];return e.forEach(e=>{var t=this.Zr(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){S(0===this.ti(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Yr;return L.forEach(n.mutations,e=>{var t=new e0(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Yr=i})}rr(e){}containsKey(e,t){var r=new e0(t,0),r=this.Yr.firstAfterOrEqual(r);return L.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,L.resolve()}ti(e,t){return this.Xr(e)}Xr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Zr(e){var t=this.Xr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class r0{constructor(e){this.ni=e,this.docs=new ay(P.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.ni(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 L.resolve(r?r.document.mutableCopy():ew.newInvalidDocument(t))}getEntries(e,t){let r=Kw;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():ew.newInvalidDocument(e))}),L.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=Kw,a=r.path,t=new P(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||Tv(bv(t),n)<=0||(i.has(t.key)||qw(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return L.resolve(s)}getAllFromCollectionGroup(e,t,r,n){C(9500)}ri(e,t){return L.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new n0(this)}getSize(e){return L.resolve(this.size)}}class n0 extends VT{constructor(e){super(),this.Or=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Or.addEntry(r,t)):this.Or.removeEntry(e)}),L.waitFor(n)}getFromCache(e,t){return this.Or.getEntry(e,t)}getAllFromCache(e,t){return this.Or.getEntries(e,t)}}class i0{constructor(e){this.persistence=e,this.ii=new zw(e=>Iw(e),Tw),this.lastRemoteSnapshotVersion=O.min(),this.highestTargetId=0,this.si=0,this.oi=new ZT,this.targetCount=0,this._i=ST.ar()}forEachTarget(e,r){return this.ii.forEach((e,t)=>r(t)),L.resolve()}getLastRemoteSnapshotVersion(e){return L.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return L.resolve(this.si)}allocateTargetId(e){return this.highestTargetId=this._i.next(),L.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.si&&(this.si=t),L.resolve()}hr(e){this.ii.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this._i=new ST(t),this.highestTargetId=t),e.sequenceNumber>this.si&&(this.si=e.sequenceNumber)}addTargetData(e,t){return this.hr(t),this.targetCount+=1,L.resolve()}updateTargetData(e,t){return this.hr(t),L.resolve()}removeTargetData(e,t){return this.ii.delete(t.target),this.oi.zr(t.targetId),--this.targetCount,L.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.ii.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.ii.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),L.waitFor(a).next(()=>s)}getTargetCount(e){return L.resolve(this.targetCount)}getTargetData(e,t){var r=this.ii.get(t)||null;return L.resolve(r)}addMatchingKeys(e,t,r){return this.oi.Kr(t,r),L.resolve()}removeMatchingKeys(t,e,r){this.oi.Gr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),L.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.oi.zr(t),L.resolve()}getMatchingKeysForTargetId(e,t){var r=this.oi.Jr(t);return L.resolve(r)}containsKey(e,t){return L.resolve(this.oi.containsKey(t))}}class s0{constructor(e,t){this.ai={},this.overlays={},this.ui=new jv(0),this.ci=!1,this.ci=!0,this.li=new XT,this.referenceDelegate=e(this),this.hi=new i0(this),this.indexManager=new oT,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Pi(e),new r0(e)),this.serializer=new EI(t),this.Ti=new YT(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.ci=!1,Promise.resolve()}get started(){return this.ci}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.ai[e.toKey()];return r||(r=new t0(t,this.referenceDelegate),this.ai[e.toKey()]=r),r}getGlobalsCache(){return this.li}getTargetCache(){return this.hi}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ti}runTransaction(e,t,r){E("MemoryPersistence","Starting transaction:",e);let n=new a0(this.ui.next());return this.referenceDelegate.Ii(),r(n).next(e=>this.referenceDelegate.di(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ei(t,r){return L.or(Object.values(this.ai).map(e=>()=>e.containsKey(t,r)))}}class a0 extends Cv{constructor(e){super(),this.currentSequenceNumber=e}}class o0{constructor(e){this.persistence=e,this.Ai=new ZT,this.Ri=null}static Vi(e){return new o0(e)}get mi(){if(this.Ri)return this.Ri;throw C(60996)}addReference(e,t,r){return this.Ai.addReference(r,t),this.mi.delete(r.toString()),L.resolve()}removeReference(e,t,r){return this.Ai.removeReference(r,t),this.mi.add(r.toString()),L.resolve()}markPotentiallyOrphaned(e,t){return this.mi.add(t.toString()),L.resolve()}removeTarget(e,t){this.Ai.zr(t.targetId).forEach(e=>this.mi.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.mi.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ii(){this.Ri=new Set}di(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return L.forEach(this.mi,e=>{let t=P.fromPath(e);return this.fi(r,t).next(e=>{e||n.removeEntry(t,O.min())})}).next(()=>(this.Ri=null,n.apply(r)))}updateLimboDocument(e,t){return this.fi(e,t).next(e=>{e?this.mi.delete(t.toString()):this.mi.add(t.toString())})}Pi(e){return 0}fi(e,t){return L.or([()=>L.resolve(this.Ai.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ei(e,t)])}}class l0{constructor(e,t){this.persistence=e,this.gi=new zw(e=>Gv(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=MT(this,t)}static Vi(e,t){return new l0(e,t)}Ii(){}di(e){return L.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}mr(e){let r=this.yr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}yr(e){let t=0;return this.gr(e,e=>{t++}).next(()=>t)}gr(r,n){return L.forEach(this.gi,(e,t)=>this.Sr(r,e,t).next(e=>e?L.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.ri(e,t=>this.Sr(e,t,r).next(e=>{e||(n++,i.removeEntry(t,O.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.gi.set(t,e.currentSequenceNumber),L.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.gi.set(r,e.currentSequenceNumber),L.resolve()}removeReference(e,t,r){return this.gi.set(r,e.currentSequenceNumber),L.resolve()}updateLimboDocument(e,t){return this.gi.set(t,e.currentSequenceNumber),L.resolve()}Pi(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(Oy(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=Ty(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return vy(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 iy(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw C(13486,{value:e})}}(e.data.value)),t}Sr(e,t,r){return L.or([()=>this.persistence.Ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.gi.get(t);return L.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class h0{constructor(e){this.serializer=e}q(t,e,r,n){let s=new Av("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(Jv),(i=t).createObjectStore(Zv,{keyPath:"userId"}),i.createObjectStore(e_,{keyPath:t_,autoIncrement:!0}).createIndex(r_,n_,{unique:!0}),i.createObjectStore(o_),u0(t),t.createObjectStore(Yv));let a=L.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(y_),i.deleteObjectStore(m_),i.deleteObjectStore(E_),u0(t)),a=a.next(()=>{return e=s,t=e.store(E_),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:O.min().toTimestamp(),targetCount:0},t.put(T_,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(e_).j().next(e=>{n.deleteObjectStore(e_),n.createObjectStore(e_,{keyPath:t_,autoIncrement:!0}).createIndex(r_,n_,{unique:!0});let t=i.store(e_),r=e.map(e=>t.put(e));return L.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(k_,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.pi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(f_),this.yi(s)))),r<7&&7<=n&&(a=a.next(()=>this.wi(s))),r<8&&8<=n&&(a=a.next(()=>this.Si(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.bi(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(A_,{keyPath:"bundleId"}),t.createObjectStore(N_,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(q_,{keyPath:j_})).createIndex(B_,z_,{unique:!1}),e.createIndex(K_,W_,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(l_,{keyPath:h_})).createIndex(u_,c_),e.createIndex(d_,p_)}).next(()=>this.Di(t,s)).next(()=>t.deleteObjectStore(Yv))),r<14&&14<=n&&(a=a.next(()=>this.Ci(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(R_,{keyPath:"indexId",autoIncrement:!0}).createIndex(P_,"collectionGroup",{unique:!1}),e.createObjectStore(D_,{keyPath:x_}).createIndex(O_,L_,{unique:!1}),e.createObjectStore(M_,{keyPath:F_}).createIndex(U_,V_,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(D_).clear()}).next(()=>{e.objectStore(M_).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(H_,{keyPath:"name"})})),a=r<18&&18<=n&&ge()?a.next(()=>{e.objectStore(D_).clear()}).next(()=>{e.objectStore(M_).clear()}):a}yi(t){let r=0;return t.store(Yv).X((e,t)=>{r+=wT(t)}).next(()=>{var e={byteSize:r};return t.store(f_).put(g_,e)})}pi(n){let e=n.store(Zv),t=n.store(e_);return e.j().next(e=>L.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,Bv],[r.userId,r.lastAcknowledgedBatchId]);return t.j(r_,e).next(e=>L.forEach(e,e=>{S(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=NI(this.serializer,e);return yT(n,r.userId,t).next(()=>{})}))}))}wi(e){let a=e.store(y_),t=e.store(Yv);return e.store(E_).get(T_).next(i=>{let s=[];return t.X((e,t)=>{let r=new R(e),n=[0,Gv(r)];s.push(a.get(n).next(e=>e?L.resolve():(e=r,a.put({targetId:0,path:Gv(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>L.waitFor(s))})}Si(e,t){e.createObjectStore(C_,{keyPath:S_});let n=t.store(C_),i=new lT,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Gv(t)})}};return t.store(Yv).X({Z:!0},(e,t)=>{var r=new R(e);return s(r.popLast())}).next(()=>t.store(o_).X({Z:!0},([,e],t)=>{var r=Qv(e);return s(r.popLast())}))}bi(e){let n=e.store(m_);return n.X((e,t)=>{var r=RI(t),r=PI(this.serializer,r);return n.put(r)})}Di(e,s){let t=s.store(Yv),a=[];return t.X((e,t)=>{var r,n=s.store(l_),i=((r=t).document?new P(R.fromString(r.document.name).popFirst(5)):r.noDocument?P.fromSegments(r.noDocument.path):r.unknownDocument?P.fromSegments(r.unknownDocument.path):C(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(()=>L.waitFor(a))}Ci(e,s){let t=s.store(e_),a=jT(this.serializer),o=new s0(o0.Vi,this.serializer.gt);return t.j().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:V();NI(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),L.forEach(n,(e,t)=>{var r=new Pm(t),n=VI.yt(this.serializer,r),i=o.getIndexManager(r),r=bT.yt(r,this.serializer,i,o.referenceDelegate);return new QT(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new ty(s,jv.ue),e).next()})})}}function u0(e){e.createObjectStore(y_,{keyPath:w_}).createIndex(b_,I_,{unique:!0}),e.createObjectStore(m_,{keyPath:"targetId"}).createIndex(v_,__,{unique:!0}),e.createObjectStore(E_)}let c0="IndexedDbPersistence",d0="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 p0{constructor(e,t,r,n,i,s,a,o,l,h,u=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Fi=i,this.window=s,this.document=a,this.Mi=l,this.xi=h,this.Oi=u,this.ui=null,this.ci=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ni=null,this.inForeground=!1,this.Bi=null,this.Li=null,this.ki=Number.NEGATIVE_INFINITY,this.qi=e=>Promise.resolve(),!p0.C())throw new A(k.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new FT(this,n),this.Qi=t+"main",this.serializer=new EI(o),this.$i=new Nv(this.Qi,this.Oi,new h0(this.serializer)),this.li=new jI,this.hi=new kT(this.referenceDelegate,this.serializer),this.remoteDocumentCache=jT(this.serializer),this.Ti=new MI,this.window&&this.window.localStorage?this.Ui=this.window.localStorage:(this.Ui=null,!1===h&&Lm(c0,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ki().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Wi(),this.Gi(),this.zi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.hi.getHighestSequenceNumber(e));throw new A(k.FAILED_PRECONDITION,d0)}).then(e=>{this.ui=new jv(e,this.Mi)}).then(()=>{this.ci=!0}).catch(e=>(this.$i&&this.$i.close(),Promise.reject(e)))}ji(t){return this.qi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(e){this.$i.setDatabaseDeletedListener(e)}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Fi.enqueueAndForget(async()=>{this.started&&await this.Ki()}))}Ki(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>g0(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Ji(t).next(e=>{e||(this.isPrimary=!1,this.Fi.enqueueRetryable(()=>this.qi(!1)))})}).next(()=>this.Hi(t)).next(e=>this.isPrimary&&!e?this.Yi(t).next(()=>!1):!!e&&this.Zi(t).next(()=>!0))).catch(e=>{if(xv(e))return E(c0,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return E(c0,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Fi.enqueueRetryable(()=>this.qi(e)),this.isPrimary=e})}Ji(e){return f0(e).get(Xv).next(e=>L.resolve(this.Xi(e)))}es(e){return g0(e).delete(this.clientId)}async ts(){if(this.isPrimary&&!this.ns(this.ki,18e5)){this.ki=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=ry(e,k_);return n.j().next(e=>{let t=this.rs(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return L.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Ui)for(var t of e)this.Ui.removeItem(this.ss(t.clientId))}}zi(){this.Li=this.Fi.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Ki().then(()=>this.ts()).then(()=>this.zi()))}Xi(e){return!!e&&e.ownerId===this.clientId}Hi(t){return this.xi?L.resolve(!0):f0(t).get(Xv).next(e=>{if(null!==e&&this.ns(e.leaseTimestampMs,5e3)&&!this._s(e.ownerId)){if(this.Xi(e)&&this.networkEnabled)return!0;if(!this.Xi(e)){if(e.allowTabSynchronization)return!1;throw new A(k.FAILED_PRECONDITION,d0)}}return!(!this.networkEnabled||!this.inForeground)||g0(t).j().next(e=>void 0===this.rs(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&&E(c0,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.ci=!1,this.us(),this.Li&&(this.Li.cancel(),this.Li=null),this.cs(),this.ls(),await this.$i.runTransaction("shutdown","readwrite",[Jv,k_],e=>{let t=new ty(e,jv.ue);return this.Yi(t).next(()=>this.es(t))}),this.$i.close(),this.hs()}rs(e,t){return e.filter(e=>this.ns(e.updateTimeMs,t)&&!this._s(e.clientId))}Ps(){return this.runTransaction("getActiveClients","readonly",e=>g0(e).j().next(e=>this.rs(e,18e5).map(e=>e.clientId)))}get started(){return this.ci}getGlobalsCache(){return this.li}getMutationQueue(e,t){return bT.yt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.hi}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new cT(e,this.serializer.gt.databaseId)}getDocumentOverlayCache(e){return VI.yt(this.serializer,e)}getBundleCache(){return this.Ti}runTransaction(t,r,n){E(c0,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.Oi)?ey:17===e?Z_:16===e?X_:15===e?J_:14===e?Y_:13===e?Q_:12===e?$_:11===e?G_:void C(60245);let a;return this.$i.runTransaction(t,i,s,e=>(a=new ty(e,this.ui?this.ui.next():jv.ue),"readwrite-primary"===r?this.Ji(a).next(e=>!!e||this.Hi(a)).next(e=>{if(e)return n(a);throw Lm(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Fi.enqueueRetryable(()=>this.qi(!1)),new A(k.FAILED_PRECONDITION,Ev)}).next(e=>this.Zi(a).next(()=>e)):this.Ts(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Ts(e){return f0(e).get(Xv).next(e=>{if(null!==e&&this.ns(e.leaseTimestampMs,5e3)&&!this._s(e.ownerId)&&!this.Xi(e)&&!(this.xi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new A(k.FAILED_PRECONDITION,d0)})}Zi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return f0(e).put(Xv,t)}static C(){return Nv.C()}Yi(e){let t=f0(e);return t.get(Xv).next(e=>this.Xi(e)?(E(c0,"Releasing primary lease."),t.delete(Xv)):L.resolve())}ns(e,t){var r=Date.now();return!(e<r-t||r<e&&(Lm(`Detected an update time that is in the future: ${e} > `+r),1))}Wi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Bi=()=>{this.Fi.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Ki()))},this.document.addEventListener("visibilitychange",this.Bi),this.inForeground="visible"===this.document.visibilityState)}cs(){this.Bi&&(this.document.removeEventListener("visibilitychange",this.Bi),this.Bi=null)}Gi(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Ni=()=>{this.us();var e=/(?:Version|Mobile)\/1[456]/;fe()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Fi.enterRestrictedMode(!0),this.Fi.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Ni))}ls(){this.Ni&&(this.window.removeEventListener("pagehide",this.Ni),this.Ni=null)}_s(e){var t;try{var r=null!==(null==(t=this.Ui)?void 0:t.getItem(this.ss(e)));return E(c0,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return Lm(c0,"Failed to get zombied client id.",e),!1}}us(){if(this.Ui)try{this.Ui.setItem(this.ss(this.clientId),String(Date.now()))}catch(e){Lm("Failed to set zombie client id.",e)}}hs(){if(this.Ui)try{this.Ui.removeItem(this.ss(this.clientId))}catch(e){}}ss(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function f0(e){return ry(e,Jv)}function g0(e){return ry(e,k_)}function m0(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class v0{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Is=r,this.ds=n}static Es(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 v0(e,t.fromCache,r,n)}}class _0{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class y0{constructor(){this.As=!1,this.Rs=!1,this.Vs=100,this.fs=fe()?8:0<Rv(ae())?6:4}initialize(e,t){this.gs=e,this.indexManager=t,this.As=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.ps(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ys(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new _0;return this.ws(r,n,t).next(e=>{if(i.result=e,this.Rs)return this.Ss(r,n,t,e.size)})}}).next(()=>i.result)}Ss(e,t,r,n){return r.documentReadCount<this.Vs?(Om()<=c.DEBUG&&E("QueryEngine","SDK will not create cache indexes for query:",Vw(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Vs,"documents"),L.resolve()):(Om()<=c.DEBUG&&E("QueryEngine","Query:",Vw(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.fs*n?(Om()<=c.DEBUG&&E("QueryEngine","The SDK decides to create cache indexes for query:",Vw(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Ow(t))):L.resolve())}ps(i,s){if(Pw(s))return L.resolve(null);let t=Ow(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=Mw(s,null,"F"),t=Ow(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=V(...e);return this.gs.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.bs(s,r);return this.Ds(s,t,n,e.readTime)?this.ps(i,Mw(s,null,"F")):this.vs(i,t,s,e)}))})))}ys(r,n,i,s){return Pw(n)||s.isEqual(O.min())?L.resolve(null):this.gs.getDocuments(r,i).next(e=>{var t=this.bs(n,e);return this.Ds(n,t,i,s)?L.resolve(null):(Om()<=c.DEBUG&&E("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),Vw(n)),this.vs(r,t,n,wv(s,fv)).next(e=>e))})}bs(r,e){let n=new M(Bw(r));return e.forEach((e,t)=>{qw(r,t)&&(n=n.add(t))}),n}Ds(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)))}ws(e,t,r){return Om()<=c.DEBUG&&E("QueryEngine","Using full collection scan to execute query:",Vw(t)),this.gs.getDocumentsMatchingQuery(e,t,Iv.min(),r)}vs(e,r,t,n){return this.gs.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let w0="LocalStore",b0=3e8;class I0{constructor(e,t,r,n){this.persistence=e,this.Cs=t,this.serializer=n,this.Fs=new ay(N),this.Ms=new zw(e=>Iw(e),Tw),this.xs=new Map,this.Os=e.getRemoteDocumentCache(),this.hi=e.getTargetCache(),this.Ti=e.getBundleCache(),this.Ns(r)}Ns(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new QT(this.Os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Os.setIndexManager(this.indexManager),this.Cs.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Fs))}}function T0(e,t,r,n){return new I0(e,t,r,n)}async function E0(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.Ns(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=>({Bs:e,removedBatchIds:t,addedBatchIds:r}))})})}function C0(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.Os.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=L.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 S0(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.hi.getLastRemoteSnapshotVersion(e))}function k0(e,h){let u=e,c=h.snapshotVersion,d=u.Fs;return u.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=u.Os.newChangeBuffer({trackRemovals:!0}),l=(d=u.Fs,[]),t=(h.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(u.hi.removeMatchingKeys(o,t.removedDocuments,r).next(()=>u.hi.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==h.targetMismatches.get(r)?e=e.withResumeToken(py.EMPTY_BYTE_STRING,O.min()).withLastLimboFreeSnapshotVersion(O.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()>=b0||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(u.hi.updateTargetData(o,e))}}),Kw),r=V();if(h.documentUpdates.forEach(e=>{h.resolvedLimboDocuments.has(e)&&l.push(u.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(A0(o,e,h.documentUpdates).next(e=>{t=e.Ls,r=e.ks})),!c.isEqual(O.min())){let e=u.hi.getLastRemoteSnapshotVersion(o).next(e=>u.hi.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return L.waitFor(l).next(()=>e.apply(o)).next(()=>u.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(u.Fs=d,e))}function A0(e,s,t){let r=V(),a=V();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=Kw;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(O.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)):E(w0,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{Ls:i,ks:a}})}function N0(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.hi.getTargetData(t,n).next(e=>e?(r=e,L.resolve(r)):i.hi.allocateTargetId(t).next(e=>(r=new TI(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.hi.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Fs.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.Fs=i.Fs.insert(e.targetId,e),i.Ms.set(n,e.targetId)),e})}async function R0(e,t,r){let n=e,i=n.Fs.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(!xv(e))throw e;E(w0,`Failed to update sequence numbers for target ${t}: `+e)}n.Fs=n.Fs.remove(t),n.Ms.delete(i.target)}function P0(e,a,o){let l=e,h=O.min(),u=V();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=Ow(a),(void 0!==(s=(i=e).Ms.get(n))?L.resolve(i.Fs.get(s)):i.hi.getTargetData(r,n)).next(e=>{if(e)return h=e.lastLimboFreeSnapshotVersion,l.hi.getMatchingKeysForTargetId(t,e.targetId).next(e=>{u=e})}).next(()=>l.Cs.getDocumentsMatchingQuery(t,a,o?h:O.min(),o?u:V())).next(e=>(O0(l,jw(a),e),{documents:e,qs:u}));var e,r,n,i,s})}function D0(e,t){let r=e,n=r.hi,i=r.Fs.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.Et(e,t).next(e=>e?e.target:null))}function x0(e,t){let r=e,n=r.xs.get(t)||O.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.Os.getAllFromCollectionGroup(e,t,wv(n,fv),Number.MAX_SAFE_INTEGER)).then(e=>(O0(r,t,e),e))}function O0(e,t,r){let n=e.xs.get(t)||O.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.xs.set(t,n)}let L0="firestore_clients";function M0(e,t){return L0+`_${e}_`+t}let F0="firestore_mutations";function U0(e,t,r){let n=F0+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let V0="firestore_targets";function q0(e,t){return V0+`_${e}_`+t}let j0="SharedClientState";class B0{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Ks(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 A(n.error.code,n.error.message)),s?new B0(e,t,n.state,i):(Lm(j0,`Failed to parse mutation state for ID '${t}': `+r),null)}Ws(){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 z0{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Ks(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 A(r.error.code,r.error.message)),i?new z0(e,r.state,n):(Lm(j0,`Failed to parse target state for ID '${e}': `+t),null)}Ws(){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 K0{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Ks(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=Wv(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new K0(e,i):(Lm(j0,`Failed to parse client data for instance '${e}': `+t),null)}}class W0{constructor(e,t){this.clientId=e,this.onlineState=t}static Ks(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new W0(t.clientId,t.onlineState):(Lm(j0,"Failed to parse online state: "+e),null)}}class H0{constructor(){this.activeTargetIds=Jw}Gs(e){this.activeTargetIds=this.activeTargetIds.add(e)}zs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Ws(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class G0{constructor(e,t,r,n,i){this.window=e,this.Fi=t,this.persistenceKey=r,this.js=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Js=this.Hs.bind(this),this.Ys=new ay(N),this.started=!1,this.Zs=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Xs=M0(this.persistenceKey,this.js),this.eo="firestore_sequence_number_"+this.persistenceKey,this.Ys=this.Ys.insert(this.js,new H0),this.no=new RegExp(`^${L0}_${s}_([^_]*)$`),this.ro=new RegExp(`^${F0}_${s}_(\\d+)(?:_(.*))?$`),this.io=new RegExp(`^${V0}_${s}_(\\d+)$`),this.so="firestore_online_state_"+this.persistenceKey,this.oo="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Js)}static C(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.Ps();for(let r of e)if(r!==this.js){let e=this.getItem(M0(this.persistenceKey,r));var t;e&&(t=K0.Ks(r,e))&&(this.Ys=this.Ys.insert(t.clientId,t))}this._o();let r=this.storage.getItem(this.so);if(r){let e=this.ao(r);e&&this.uo(e)}for(let e of this.Zs)this.Hs(e);this.Zs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.eo,JSON.stringify(e))}getAllActiveQueryTargets(){return this.co(this.Ys)}isActiveQueryTarget(r){let n=!1;return this.Ys.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.lo(e,"pending")}updateMutationState(e,t,r){this.lo(e,t,r),this.ho(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(q0(this.persistenceKey,t));var n;e&&(n=z0.Ks(t,e))&&(r=n.state)}return e&&this.Po.Gs(t),this._o(),r}removeLocalQueryTarget(e){this.Po.zs(e),this._o()}isLocalQueryTarget(e){return this.Po.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(q0(this.persistenceKey,e))}updateQueryState(e,t,r){this.To(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.ho(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Io(e)}notifyBundleLoaded(e){this.Eo(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Js),this.removeItem(this.Xs),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return E(j0,"READ",e,t),t}setItem(e,t){E(j0,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){E(j0,"REMOVE",e),this.storage.removeItem(e)}Hs(e){let t=e;t.storageArea===this.storage&&(E(j0,"EVENT",t.key,t.newValue),t.key===this.Xs?Lm("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Fi.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.no.test(t.key))return null==t.newValue?(e=this.Ao(t.key),this.Ro(e,null)):(e=this.Vo(t.key,t.newValue))?this.Ro(e.clientId,e):void 0;if(this.ro.test(t.key)){if(null!==t.newValue){var e=this.mo(t.key,t.newValue);if(e)return this.fo(e)}}else if(this.io.test(t.key)){if(null!==t.newValue){var e=this.po(t.key,t.newValue);if(e)return this.yo(e)}}else if(t.key===this.so){if(null!==t.newValue){var e=this.ao(t.newValue);if(e)return this.uo(e)}}else t.key===this.eo?(e=(e=>{let t=jv.ue;if(null!=e)try{var r=JSON.parse(e);S("number"==typeof r,30636,{wo:e}),t=r}catch(e){Lm(j0,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==jv.ue&&this.sequenceNumberHandler(e):t.key===this.oo&&(e=this.So(t.newValue),await Promise.all(e.map(e=>this.syncEngine.bo(e))))}}else this.Zs.push(t)}))}get Po(){return this.Ys.get(this.js)}_o(){this.setItem(this.Xs,this.Po.Ws())}lo(e,t,r){var n=new B0(this.currentUser,e,t,r),i=U0(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Ws())}ho(e){var t=U0(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Io(e){var t={clientId:this.js,onlineState:e};this.storage.setItem(this.so,JSON.stringify(t))}To(e,t,r){var n=q0(this.persistenceKey,e),i=new z0(e,t,r);this.setItem(n,i.Ws())}Eo(e){var t=JSON.stringify(Array.from(e));this.setItem(this.oo,t)}Ao(e){var t=this.no.exec(e);return t?t[1]:null}Vo(e,t){var r=this.Ao(e);return K0.Ks(r,t)}mo(e,t){var r=this.ro.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return B0.Ks(new Pm(r),n,t)}po(e,t){var r=this.io.exec(e),r=Number(r[1]);return z0.Ks(r,t)}ao(e){return W0.Ks(e)}So(e){return JSON.parse(e)}async fo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Do(e.batchId,e.state,e.error);E(j0,"Ignoring mutation for non-active user "+e.user.uid)}yo(e){return this.syncEngine.vo(e.targetId,e.state,e.error)}Ro(e,t){let r=t?this.Ys.insert(e,t):this.Ys.remove(e),n=this.co(this.Ys),i=this.co(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Co(s,a).then(()=>{this.Ys=r})}uo(e){this.Ys.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}co(e){let r=Jw;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class $0{constructor(){this.Fo=new H0,this.Mo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.Fo.Gs(e),this.Mo[e]||"not-current"}updateQueryState(e,t,r){this.Mo[e]=t}removeLocalQueryTarget(e){this.Fo.zs(e)}isLocalQueryTarget(e){return this.Fo.activeTargetIds.has(e)}clearQueryState(e){delete this.Mo[e]}getAllActiveQueryTargets(){return this.Fo.activeTargetIds}isActiveQueryTarget(e){return this.Fo.activeTargetIds.has(e)}start(){return this.Fo=new H0,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class Q0{xo(e){}shutdown(){}}let Y0="ConnectivityMonitor";class J0{constructor(){this.Oo=()=>this.No(),this.Bo=()=>this.Lo(),this.ko=[],this.qo()}xo(e){this.ko.push(e)}shutdown(){window.removeEventListener("online",this.Oo),window.removeEventListener("offline",this.Bo)}qo(){window.addEventListener("online",this.Oo),window.addEventListener("offline",this.Bo)}No(){E(Y0,"Network connectivity changed: AVAILABLE");for(var e of this.ko)e(0)}Lo(){E(Y0,"Network connectivity changed: UNAVAILABLE");for(var e of this.ko)e(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let X0=null;function Z0(){return null===X0?X0=268435456+Math.round(2147483648*Math.random()):X0++,"0x"+X0.toString(16)}let eE="RestConnection",tE={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class rE{constructor(e){this.Ho=e.Ho,this.Yo=e.Yo}Zo(e){this.Xo=e}e_(e){this.t_=e}n_(e){this.r_=e}onMessage(e){this.i_=e}close(){this.Yo()}send(e){this.Ho(e)}s_(){this.Xo()}o_(){this.t_()}__(e){this.r_(e)}a_(e){this.i_(e)}}let nE="WebChannelConnection";class iE extends class{get Qo(){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.$o=t+"://"+e.host,this.Uo=`projects/${r}/databases/`+n,this.Ko=this.databaseId.database===Sy?"project_id="+r:`project_id=${r}&database_id=`+n}Wo(t,e,r,n,i){let s=Z0(),a=this.Go(t,e.toUriEncodedString());E(eE,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Uo,"x-goog-request-params":this.Ko},l=(this.zo(o,n,i),new URL(a)).host,l=ee(l);return this.jo(t,a,o,r,l).then(e=>(E(eE,`Received RPC '${t}' ${s}: `,e),e),e=>{throw Mm(eE,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Jo(e,t,r,n,i,s){return this.Wo(e,t,r,n,i)}zo(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+Dm,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)}Go(e,t){var r=tE[e];return this.$o+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.u_=[],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 _m;o.setWithCredentials(!0),o.listenOnce(wm.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case bm.NO_ERROR:var e=o.getResponseJson();E(nE,`XHR for RPC '${l}' ${h} received:`,JSON.stringify(e)),s(e);break;case bm.TIMEOUT:E(nE,`RPC '${l}' ${h} timed out`),a(new A(k.DEADLINE_EXCEEDED,"Request time out"));break;case bm.HTTP_ERROR:var t=o.getStatus();if(E(nE,`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(k).indexOf(i)?i:k.UNKNOWN;a(new A(e,r.message))}else a(new A(k.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new A(k.UNAVAILABLE,"Connection failed."));break;default:C(9055,{c_:l,streamId:h,l_:o.getLastErrorCode(),h_:o.getLastError()})}}finally{E(nE,`RPC '${l}' ${h} completed.`)}var n,i});var e=JSON.stringify(n);E(nE,`RPC '${l}' ${h} sending request:`,n),o.send(t,"POST",e,r,15)})}P_(i,e,t){let s=Z0(),r=[this.$o,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Cm(),a=Em(),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.zo(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var h=r.join("");E(nE,`Creating RPC '${i}' stream ${s}: `+h,o);let u=n.createWebChannel(h,o),c=(this.T_(u),!1),d=!1,p=new rE({Ho:e=>{d?E(nE,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(E(nE,`Opening RPC '${i}' stream ${s} transport.`),u.open(),c=!0),E(nE,`RPC '${i}' stream ${s} sending:`,e),u.send(e))},Yo:()=>u.close()}),f=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(u,ym.EventType.OPEN,()=>{d||(E(nE,`RPC '${i}' stream ${s} transport opened.`),p.s_())}),f(u,ym.EventType.CLOSE,()=>{d||(d=!0,E(nE,`RPC '${i}' stream ${s} transport closed`),p.__(),this.I_(u))}),f(u,ym.EventType.ERROR,e=>{d||(d=!0,Mm(nE,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),p.__(new A(k.UNAVAILABLE,"The operation could not be completed")))}),f(u,ym.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){E(nE,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=Sm[e];if(void 0!==t)return Pb(t)})(e),r=n.message;void 0===t&&(t=k.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,p.__(new A(t,r)),u.close()}else E(nE,`RPC '${i}' stream ${s} received:`,t),p.a_(t)}}),f(a,Tm.STAT_EVENT,e=>{e.stat===Im.PROXY?E(nE,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===Im.NOPROXY&&E(nE,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{p.o_()},0),p}terminate(){this.u_.forEach(e=>e.close()),this.u_=[]}T_(e){this.u_.push(e)}I_(t){this.u_=this.u_.filter(e=>e===t)}}function sE(){return"undefined"!=typeof window?window:null}function aE(){return"undefined"!=typeof document?document:null}function oE(e){return new Qb(e,!0)}class lE{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Fi=e,this.timerId=t,this.d_=r,this.E_=n,this.A_=i,this.R_=0,this.V_=null,this.m_=Date.now(),this.reset()}reset(){this.R_=0}f_(){this.R_=this.A_}g_(e){this.cancel();var t=Math.floor(this.R_+this.p_()),r=Math.max(0,Date.now()-this.m_),n=Math.max(0,t-r);0<n&&E("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.R_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.V_=this.Fi.enqueueAfterDelay(this.timerId,n,()=>(this.m_=Date.now(),e())),this.R_*=this.E_,this.R_<this.d_&&(this.R_=this.d_),this.R_>this.A_&&(this.R_=this.A_)}y_(){null!==this.V_&&(this.V_.skipDelay(),this.V_=null)}cancel(){null!==this.V_&&(this.V_.cancel(),this.V_=null)}p_(){return(Math.random()-.5)*this.R_}}let hE="PersistentStream";class uE{constructor(e,t,r,n,i,s,a,o){this.Fi=e,this.w_=r,this.S_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.b_=0,this.D_=null,this.v_=null,this.stream=null,this.C_=0,this.F_=new lE(e,t)}M_(){return 1===this.state||5===this.state||this.x_()}x_(){return 2===this.state||3===this.state}start(){this.C_=0,4!==this.state?this.auth():this.O_()}async stop(){this.M_()&&await this.close(0)}N_(){this.state=0,this.F_.reset()}B_(){this.x_()&&null===this.D_&&(this.D_=this.Fi.enqueueAfterDelay(this.w_,6e4,()=>this.L_()))}k_(e){this.q_(),this.stream.send(e)}async L_(){if(this.x_())return this.close(0)}q_(){this.D_&&(this.D_.cancel(),this.D_=null)}Q_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.q_(),this.Q_(),this.F_.cancel(),this.b_++,4!==e?this.F_.reset():t&&t.code===k.RESOURCE_EXHAUSTED?(Lm(t.toString()),Lm("Using maximum backoff delay to prevent overloading the backend."),this.F_.f_()):t&&t.code===k.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.U_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.n_(t)}U_(){}auth(){this.state=1;let e=this.K_(this.b_),r=this.b_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.b_===r&&this.W_(e,t)},t=>{e(()=>{var e=new A(k.UNKNOWN,"Fetching auth token failed: "+t.message);return this.G_(e)})})}W_(e,t){let r=this.K_(this.b_);this.stream=this.z_(e,t),this.stream.Zo(()=>{r(()=>this.listener.Zo())}),this.stream.e_(()=>{r(()=>(this.state=2,this.v_=this.Fi.enqueueAfterDelay(this.S_,1e4,()=>(this.x_()&&(this.state=3),Promise.resolve())),this.listener.e_()))}),this.stream.n_(e=>{r(()=>this.G_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.C_?this.j_(e):this.onNext(e))})}O_(){this.state=5,this.F_.g_(async()=>{this.state=0,this.start()})}G_(e){return E(hE,"close with error: "+e),this.stream=null,this.close(4,e)}K_(t){return e=>{this.Fi.enqueueAndForget(()=>this.b_===t?e():(E(hE,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class cE extends uE{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}z_(e,t){return this.connection.P_("Listen",e,t)}j_(e){return this.onNext(e)}onNext(e){this.F_.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:C(39313,{state:l}),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(S(void 0===l||"string"==typeof l,58123),py.fromBase64String(l||"")):(S(void 0===l||l instanceof Buffer||l instanceof Uint8Array,16193),py.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?k.UNKNOWN:Pb(l.code),new A(a,l.message||""));r=new jb(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,iI(e,n.document.name)),s=Zb(n.document.updateTime),a=n.document.createTime?Zb(n.document.createTime):O.min(),o=new Zy({mapValue:{fields:n.document.fields}}),i=ew.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new Vb(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,iI(e,n.document)),o=n.readTime?Zb(n.readTime):O.min(),i=ew.newNoDocument(s,o),s=n.removedTargetIds||[];r=new Vb([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,iI(e,o.document)),s=o.removedTargetIds||[];r=new Vb([],s,n,null)}else{if(!("filter"in t))return C(11601,{At:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new Nb(i,o),n=e.targetId;r=new qb(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):O.min();return this.listener.J_(t,r)}H_(e){var t={},r=(t.database=oI(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=Ew(e)?{documents:fI(t,e)}:{query:gI(t,e).Vt}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=Xb(t,r.resumeToken);let e=Yb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(O.min())){n.readTime=Jb(t,r.snapshotVersion.toTimestamp());let e=Yb(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),vI(this.serializer,e));r&&(t.labels=r),this.k_(t)}Y_(e){var t={};t.database=oI(this.serializer),t.removeTarget=e,this.k_(t)}}class dE extends uE{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 Z_(){return 0<this.C_}start(){this.lastStreamToken=void 0,super.start()}U_(){this.Z_&&this.X_([])}z_(e,t){return this.connection.P_("Write",e,t)}j_(e){return S(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,S(!e.writeResults||0===e.writeResults.length,55816),this.listener.ea()}onNext(e){S(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.F_.reset();var t=pI(e.writeResults,e.commitTime),r=Zb(e.commitTime);return this.listener.ta(r,t)}na(){var e={};e.database=oI(this.serializer),this.k_(e)}X_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>cI(this.serializer,e))};this.k_(t)}}class pE extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.ra=!1}ia(){if(this.ra)throw new A(k.FAILED_PRECONDITION,"The client has already been terminated.")}Wo(r,n,i,s){return this.ia(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Wo(r,tI(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===k.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new A(k.UNKNOWN,e.toString())})}Jo(r,n,i,s,a){return this.ia(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Jo(r,tI(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===k.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new A(k.UNKNOWN,e.toString())})}terminate(){this.ra=!0,this.connection.terminate()}}class fE{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.sa=0,this.oa=null,this._a=!0}aa(){0===this.sa&&(this.ua("Unknown"),this.oa=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.oa=null,this.ca("Backend didn't respond within 10 seconds."),this.ua("Offline"),Promise.resolve())))}la(e){"Online"===this.state?this.ua("Unknown"):(this.sa++,1<=this.sa&&(this.ha(),this.ca("Connection failed 1 times. Most recent error: "+e.toString()),this.ua("Offline")))}set(e){this.ha(),this.sa=0,"Online"===e&&(this._a=!1),this.ua(e)}ua(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}ca(e){var t=`Could not reach Cloud Firestore backend. ${e} 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._a?(Lm(t),this._a=!1):E("OnlineStateTracker",t)}ha(){null!==this.oa&&(this.oa.cancel(),this.oa=null)}}let gE="RemoteStore";class mE{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Pa=[],this.Ta=new Map,this.Ia=new Set,this.da=[],this.Ea=i,this.Ea.xo(e=>{r.enqueueAndForget(async()=>{var e;CE(this)&&(E(gE,"Restarting streams for network reachability change."),(e=this).Ia.add(4),await _E(e),e.Aa.set("Unknown"),e.Ia.delete(4),await vE(e))})}),this.Aa=new fE(r,n)}}async function vE(e){if(CE(e))for(var t of e.da)await t(!0)}async function _E(e){for(var t of e.da)await t(!1)}function yE(e,t){var r=e;r.Ta.has(t.targetId)||(r.Ta.set(t.targetId,t),EE(r)?TE(r):OE(r).x_()&&bE(r,t))}function wE(e,t){var r=e,n=OE(r);r.Ta.delete(t),n.x_()&&IE(r,t),0===r.Ta.size&&(n.x_()?n.B_():CE(r)&&r.Aa.set("Unknown"))}function bE(e,t){var r;e.Ra.$e(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(O.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),OE(e).H_(t)}function IE(e,t){e.Ra.$e(t),OE(e).Y_(t)}function TE(t){t.Ra=new zb({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),Et:e=>t.Ta.get(e)||null,lt:()=>t.datastore.serializer.databaseId}),OE(t).start(),t.Aa.aa()}function EE(e){return CE(e)&&!OE(e).M_()&&0<e.Ta.size}function CE(e){return 0===e.Ia.size}function SE(e){e.Ra=void 0}async function kE(e,t,r){if(!xv(t))throw t;e.Ia.add(1),await _E(e),e.Aa.set("Offline"),r=r||(()=>S0(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{E(gE,"Retrying IndexedDB access"),await r(),e.Ia.delete(1),await vE(e)})}function AE(t,r){return r().catch(e=>kE(t,e,r))}async function NE(e){var t,r,n,i,s=e,a=LE(s);let o=0<s.Pa.length?s.Pa[s.Pa.length-1].batchId:Bv;for(;CE(i=s)&&i.Pa.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=Bv),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.Pa.length&&a.B_();break}o=e.batchId,t=s,r=e,n=void 0,t.Pa.push(r),(n=LE(t)).x_()&&n.Z_&&n.X_(r.mutations)}catch(e){await kE(s,e)}RE(s)&&PE(s)}function RE(e){return CE(e)&&!LE(e).M_()&&0<e.Pa.length}function PE(e){LE(e).start()}async function DE(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),E(gE,"RemoteStore received new credentials"),CE(r));r.Ia.add(3),await _E(r),n&&r.Aa.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.Ia.delete(3),await vE(r)}async function xE(e,t){var r=e;t?(r.Ia.delete(2),await vE(r)):(r.Ia.add(2),await _E(r),r.Aa.set("Unknown"))}function OE(t){return t.Va||(t.Va=(e=t.datastore,r=t.asyncQueue,n={Zo:(async function(e){e.Aa.set("Online")}).bind(null,t),e_:(async function(r){r.Ta.forEach((e,t)=>{bE(r,e)})}).bind(null,t),n_:(async function(e,t){SE(e),EE(e)?(e.Aa.la(t),TE(e)):e.Aa.set("Unknown")}).bind(null,t),J_:(async function(t,e,r){if(t.Aa.set("Online"),e instanceof jb&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Ta.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Ta.delete(n),i.Ra.removeTarget(n))}catch(r){E(gE,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await kE(t,r)}else if(e instanceof Vb?t.Ra.Ye(e):e instanceof qb?t.Ra.it(e):t.Ra.et(e),!r.isEqual(O.min()))try{let e=await S0(t.localStore);0<=r.compareTo(e)&&(l=r,(h=(o=t).Ra.Pt(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.Ta.get(t))&&o.Ta.set(t,r.withResumeToken(e.resumeToken,l))}),h.targetMismatches.forEach((e,t)=>{var r=o.Ta.get(e);r&&(o.Ta.set(e,r.withResumeToken(py.EMPTY_BYTE_STRING,r.snapshotVersion)),IE(o,e),r=new TI(r.target,e,t,r.sequenceNumber),bE(o,r))}),await o.remoteSyncer.applyRemoteEvent(h))}catch(e){E(gE,"Failed to raise snapshot:",e),await kE(t,e)}var o,l,h}).bind(null,t)},(i=e).ia(),new cE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.Va.N_(),EE(t)?TE(t):t.Aa.set("Unknown")):(await t.Va.stop(),SE(t))})),t.Va;var e,r,n,i}function LE(t){return t.ma||(t.ma=(e=t.datastore,r=t.asyncQueue,n={Zo:()=>Promise.resolve(),e_:(async function(e){LE(e).na()}).bind(null,t),n_:(async function(e,t){if(t&&LE(e).Z_){var r=e,n=t;if(Rb(t=n.code)&&t!==k.ABORTED){let e=r.Pa.shift();LE(r).N_(),await AE(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await NE(r)}await 0}RE(e)&&PE(e)}).bind(null,t),ea:(async function(e){var t,r=LE(e);for(t of e.Pa)r.X_(t.mutations)}).bind(null,t),ta:(async function(e,t,r){let n=e.Pa.shift(),i=kb.from(n,t,r);await AE(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await NE(e)}).bind(null,t)},(i=e).ia(),new dE(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.ma.N_(),await NE(t)):(await t.ma.stop(),0<t.Pa.length&&(E(gE,`Stopping write stream with ${t.Pa.length} pending writes`),t.Pa=[]))})),t.ma;var e,r,n,i}class ME{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new Vm,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 ME(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 A(k.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 FE(e,t){if(Lm("AsyncQueue",t+": "+e),xv(e))return new A(k.UNAVAILABLE,t+": "+e);throw e}class UE{static emptySet(e){return new UE(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||P.comparator(e.key,t.key):(e,t)=>P.comparator(e.key,t.key),this.keyedMap=Hw(),this.sortedSet=new ay(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 UE))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 UE;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class VE{constructor(){this.fa=new ay(P.comparator)}track(e){var t=e.doc.key,r=this.fa.get(t);!r||0!==e.type&&3===r.type?this.fa=this.fa.insert(t,e):3===e.type&&1!==r.type?this.fa=this.fa.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.fa=this.fa.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.fa=this.fa.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.fa=this.fa.remove(t):1===e.type&&2===r.type?this.fa=this.fa.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.fa=this.fa.insert(t,{type:2,doc:e.doc}):C(63341,{At:e,ga:r})}pa(){let r=[];return this.fa.inorderTraversal((e,t)=>{r.push(t)}),r}}class qE{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 qE(e,t,UE.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)&&Fw(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 jE{constructor(){this.ya=void 0,this.wa=[]}Sa(){return this.wa.some(e=>e.ba())}}class BE{constructor(){this.queries=zE(),this.onlineState="Unknown",this.Da=new Set}terminate(){var e,r,t,n;e=this,r=new A(k.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=zE(),n.forEach((e,t)=>{for(let e of t.wa)e.onError(r)})}}function zE(){return new zw(e=>Uw(e),Fw)}async function KE(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.Sa()&&r.ba()&&(n=2):(s=new jE,n=r.ba()?0:1);try{switch(n){case 0:s.ya=await e.onListen(i,!0);break;case 1:s.ya=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=FE(t,`Initialization of query '${Vw(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.wa.push(r),r.va(e.onlineState),s.ya&&r.Ca(s.ya)&&HE(e)}async function WE(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.wa.indexOf(t);0<=e&&(s.wa.splice(e,1),0===s.wa.length?i=t.ba()?0:1:!s.Sa()&&t.ba()&&(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 HE(e){e.Da.forEach(e=>{e.next()})}(km=km||{}).Fa="default",km.Cache="cache";class GE{constructor(e,t,r){this.query=e,this.Ma=t,this.xa=!1,this.Oa=null,this.onlineState="Unknown",this.options=r||{}}Ca(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new qE(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.xa?this.Na(t)&&(this.Ma.next(t),e=!0):this.Ba(t,this.onlineState)&&(this.La(t),e=!0),this.Oa=t,e}onError(e){this.Ma.error(e)}va(e){this.onlineState=e;let t=!1;return this.Oa&&!this.xa&&this.Ba(this.Oa,e)&&(this.La(this.Oa),t=!0),t}Ba(e,t){return!e.fromCache||!this.ba()||(!this.options.ka||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Na(e){var t;return 0<e.docChanges.length||(t=this.Oa&&this.Oa.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}La(e){e=qE.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.xa=!0,this.Ma.next(e)}ba(){return this.options.source!==km.Cache}}class $E{constructor(e,t){this.qa=e,this.byteLength=t}Qa(){return"metadata"in this.qa}}class QE{constructor(e){this.serializer=e}Qs(e){return iI(this.serializer,e)}$s(e){return e.metadata.exists?uI(this.serializer,e.document,!1):ew.newNoDocument(this.Qs(e.metadata.name),this.Us(e.metadata.readTime))}Us(e){return Zb(e)}}class YE{constructor(e,t){this.$a=e,this.serializer=t,this.Ua=[],this.Ka=[],this.collectionGroups=new Set,this.progress=JE(e)}get queries(){return this.Ua}get documents(){return this.Ka}Wa(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.qa.namedQuery?this.Ua.push(e.qa.namedQuery):e.qa.documentMetadata?(this.Ka.push({metadata:e.qa.documentMetadata}),e.qa.documentMetadata.exists||++t,r=R.fromString(e.qa.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.qa.document&&(this.Ka[this.Ka.length-1].document=e.qa.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ga(e){let r=new Map,n=new QE(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.Qs(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 za(e){let t=await(async(r,n,e,t)=>{let i=r,s=V(),a=Kw;for(let r of e){let e=n.Qs(r.metadata.name),t=(r.document&&(s=s.add(e)),n.$s(r));t.setReadTime(n.Us(r.metadata.readTime)),a=a.insert(e,t)}let o=i.Os.newChangeBuffer({trackRemovals:!0}),l=await N0(i,(r=t,Ow(Rw(R.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>A0(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.hi.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.hi.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Ls,e.ks)).next(()=>e.Ls)))})(e,new QE(this.serializer),this.Ka,this.$a.id),r=this.Ga(this.documents);for(let t of this.Ua)await(async(e,r,n=V())=>{let i=await N0(e,Ow(DI(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.Ti.saveNamedQuery(e,r):(t=i.withResumeToken(py.EMPTY_BYTE_STRING,t),s.Fs=s.Fs.insert(t.targetId,t),s.hi.updateTargetData(e,t).next(()=>s.hi.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.hi.addMatchingKeys(e,n,i.targetId)).next(()=>s.Ti.saveNamedQuery(e,r)))})})(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ja:this.collectionGroups,Ja:t}}}function JE(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class XE{constructor(e){this.key=e}}class ZE{constructor(e){this.key=e}}class eC{constructor(e,t){this.query=e,this.Ha=t,this.Ya=null,this.hasCachedResults=!1,this.current=!1,this.Za=V(),this.mutatedKeys=V(),this.Xa=Bw(e),this.eu=new UE(this.Xa)}get tu(){return this.Ha}nu(e,t){let o=t?t.ru:new VE,l=(t||this).eu,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=qw(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.iu(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.Xa(n,d)||p&&this.Xa(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{eu:u,ru:o,Ds:c,mutatedKeys:h}}iu(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.eu,s=(this.eu=e.eu,this.mutatedKeys=e.mutatedKeys,e.ru.pa()),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 C(20277,{At:e})}})(r)-i(n)||this.Xa(e.doc,t.doc);var r,n,i}),this.su(r),n=null!=n&&n,t&&!n?this.ou():[]),o=0===this.Za.size&&this.current&&!n?1:0,l=o!==this.Ya;return this.Ya=o,0!==s.length||l?{snapshot:new qE(this.query,e.eu,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),_u:a}:{_u:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({eu:this.eu,ru:new VE,mutatedKeys:this.mutatedKeys,Ds:!1},!1)):{_u:[]}}au(e){return!this.Ha.has(e)&&!!this.eu.has(e)&&!this.eu.get(e).hasLocalMutations}su(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)}ou(){if(!this.current)return[];let t=this.Za,r=(this.Za=V(),this.eu.forEach(e=>{this.au(e.key)&&(this.Za=this.Za.add(e.key))}),[]);return t.forEach(e=>{this.Za.has(e)||r.push(new ZE(e))}),this.Za.forEach(e=>{t.has(e)||r.push(new XE(e))}),r}uu(e){this.Ha=e.qs,this.Za=V();var t=this.nu(e.documents);return this.applyChanges(t,!0)}cu(){return qE.fromInitialDocuments(this.query,this.eu,this.mutatedKeys,0===this.Ya,this.hasCachedResults)}}let tC="SyncEngine";class rC{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class nC{constructor(e){this.key=e,this.lu=!1}}class iC{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.hu={},this.Pu=new zw(e=>Uw(e),Fw),this.Tu=new Map,this.Iu=new Set,this.du=new ay(P.comparator),this.Eu=new Map,this.Au=new ZT,this.Ru={},this.Vu=new Map,this.mu=ST.ur(),this.onlineState="Unknown",this.fu=void 0}get isPrimaryClient(){return!0===this.fu}}async function sC(e,t,r,n){var i=await N0(e.localStore,Ow(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await aC(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&yE(e.remoteStore,i),o}async function aC(n,e,t,r,i){n.gu=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.nu(r);i.Ds&&(i=await P0(e.localStore,t.query,!1).then(({documents:e})=>t.view.nu(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 mC(e,t.targetId,s._u),s.snapshot})(n,e,t,r);var s=await P0(n.localStore,e,!0),a=new eC(e,s.qs),s=a.nu(s.documents),o=Ub.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(mC(n,t,s._u),new rC(e,t,a));return n.Pu.set(e,o),n.Tu.has(t)?n.Tu.get(t).push(e):n.Tu.set(t,[e]),s.snapshot}async function oC(t,e,r){var n=TC(t);try{let t=await((e,i)=>{let s=e,a=x.now(),o=i.reduce((e,t)=>e.add(t.key),V()),l,h;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=Kw,r=V();return s.Os.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=rb(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 wb(r.key,e,function i(e){let s=[];return iy(e.fields,(e,r)=>{var n=new nv([e]);if(Hy(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 cy(s)}(e.value.mapValue),pb.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:Gw(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Ru[i.currentUser.toKey()];e=(e=e||new ay(N)).insert(s,a),i.Ru[i.currentUser.toKey()]=e}await _C(n,t.changes),await NE(n.remoteStore)}catch(t){let e=FE(t,"Failed to persist write");r.reject(e)}}async function lC(e,t){let n=e;try{let e=await k0(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.lu=!0:0<e.modifiedDocuments.size?S(r.lu,14607):0<e.removedDocuments.size&&(S(r.lu,42227),r.lu=!1))}),await _C(n,e,t)}catch(e){await Sv(e)}}function hC(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.Pu.forEach((e,t)=>{var r=t.view.va(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.wa)e.va(a)&&(r=!0)}),r&&HE(o)}n.length&&s.hu.J_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function uC(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);pC(n,t,r),dC(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await _C(n,e)}catch(r){await Sv(r)}}async function cC(t,r){let n=t;CE(n.remoteStore)||E(tC,"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===Bv?r.resolve():((i=n.Vu.get(e)||[]).push(r),n.Vu.set(e,i))}catch(t){let e=FE(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function dC(e,t){(e.Vu.get(t)||[]).forEach(e=>{e.resolve()}),e.Vu.delete(t)}function pC(e,t,r){var n=e;let i=n.Ru[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Ru[n.currentUser.toKey()]=i}}function fC(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Tu.get(e))t.Pu.delete(n),r&&t.hu.pu(n,r);t.Tu.delete(e),t.isPrimaryClient&&t.Au.zr(e).forEach(e=>{t.Au.containsKey(e)||gC(t,e)})}function gC(e,t){e.Iu.delete(t.path.canonicalString());var r=e.du.get(t);null!==r&&(wE(e.remoteStore,r),e.du=e.du.remove(t),e.Eu.delete(r),vC(e))}function mC(e,t,r){for(var n of r)n instanceof XE?(e.Au.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.du.get(a)||i.Iu.has(o)||(E(tC,"New document in limbo: "+a),i.Iu.add(o),vC(i))):n instanceof ZE?(E(tC,"Document no longer in limbo: "+n.key),e.Au.removeReference(n.key,t),e.Au.containsKey(n.key)||gC(e,n.key)):C(19791,{yu:n});var i,s,a,o}function vC(e){for(;0<e.Iu.size&&e.du.size<e.maxConcurrentLimboResolutions;){var t=e.Iu.values().next().value,t=(e.Iu.delete(t),new P(R.fromString(t))),r=e.mu.next();e.Eu.set(r,new nC(t)),e.du=e.du.insert(t,r),yE(e.remoteStore,new TI(Ow(Rw(t.path)),r,"TargetPurposeLimboResolution",jv.ue))}}async function _C(e,t,i){let s=e,a=[],o=[],r=[];if(!s.Pu.isEmpty()){s.Pu.forEach((e,n)=>{r.push(s.gu(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=v0.Es(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.hu.J_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>L.forEach(l,t=>L.forEach(t.Is,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>L.forEach(t.ds,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!xv(n))throw n;E(w0,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.Fs.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Fs=i.Fs.insert(n,r)}}}}}async function yC(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.Xn(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):L.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await NE(i.remoteStore):"acknowledged"===r||"rejected"===r?(pC(i,t,n||null),dC(i,t),i.localStore.mutationQueue.rr(t)):C(6720,"Unknown batchState",{wu:r}),await _C(i,s)):E(tC,"Cannot apply mutation batch with id: "+t)}async function wC(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.Tu.get(r);if(e&&0!==e.length){t=await N0(a.localStore,Ow(e[0]));for(let r of e){let e=a.Pu.get(r),t=(n=e,s=i=void 0,s=await P0((i=a).localStore,n.query,!0),s=n.view.uu(s),i.isPrimaryClient&&mC(i,n.targetId,s._u),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await D0(a.localStore,r);t=await N0(a.localStore,e),await aC(a,bC(e),r,!1,t.resumeToken)}o.push(t)}return a.hu.J_(l),o}function bC(e){return Nw(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function IC(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=lC.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Eu.get(t);if(r&&r.lu)return V().add(r.key);{let r=V(),e=n.Tu.get(t);if(e)for(let t of e){let e=n.Pu.get(t);r=r.unionWith(e.view.tu)}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 ay(P.comparator),t=(e=e.insert(s,ew.newNoDocument(s,O.min())),V().add(s)),r=new Fb(O.min(),new Map,new ay(N),e,t);await lC(i,r),i.du=i.du.remove(s),i.Eu.delete(n),vC(i)}else await R0(i.localStore,n,!1).then(()=>fC(i,n,t)).catch(Sv)}).bind(null,t),t.hu.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.wa)e.Ca(r)&&(i=!0);t.ya=r}}i&&HE(n)}).bind(null,t.eventManager),t.hu.pu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.wa)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function TC(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await C0(r.localStore,t);pC(r,n,null),dC(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await _C(r,e)}catch(e){await Sv(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=uC.bind(null,t),t}function EC(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.Ti.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 YE(i,r.serializer);let t=await r.Su();for(;t;){let e=await s.Wa(t);e&&n._updateProgress(e),t=await r.Su()}var a=await s.za(e.localStore);return await _C(e,a.Ja,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Ti.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.ja)}catch(e){return Mm(tC,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class CC{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=oE(e.databaseInfo.databaseId),this.sharedClientState=this.bu(e),this.persistence=this.Du(e),await this.persistence.start(),this.localStore=this.vu(e),this.gcScheduler=this.Cu(e,this.localStore),this.indexBackfillerScheduler=this.Fu(e,this.localStore)}Cu(e,t){return null}Fu(e,t){return null}vu(e){return T0(this.persistence,new y0,e.initialUser,this.serializer)}Du(e){return new s0(o0.Vi,this.serializer)}bu(e){return new $0}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}CC.provider={build:()=>new CC};class SC extends CC{constructor(e){super(),this.cacheSizeBytes=e}Cu(e,t){S(this.persistence.referenceDelegate instanceof l0,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new OT(r,e.asyncQueue,t)}Du(e){let t=void 0!==this.cacheSizeBytes?_T.withCacheSize(this.cacheSizeBytes):_T.DEFAULT;return new s0(e=>l0.Vi(e,t),this.serializer)}}class kC extends CC{constructor(e,t,r){super(),this.Mu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Mu.initialize(this,e),await TC(this.Mu.syncEngine),await NE(this.Mu.remoteStore),await this.persistence.ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){return T0(this.persistence,new y0,e.initialUser,this.serializer)}Cu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new OT(r,e.asyncQueue,t)}Fu(e,t){var r=new qv(t,this.persistence);return new Vv(e.asyncQueue,r)}Du(e){var t=m0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?_T.withCacheSize(this.cacheSizeBytes):_T.DEFAULT;return new p0(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,sE(),aE(),this.serializer,this.sharedClientState,!!this.forceOwnership)}bu(e){return new $0}}class AC extends kC{constructor(e,t){super(e,t,!1),this.Mu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Mu.syncEngine;this.sharedClientState instanceof G0&&(this.sharedClientState.syncEngine={Do:yC.bind(null,t),vo:(async function(e,r,n,t){var i=e;if(i.fu)E(tC,"Ignoring unexpected query state notification.");else{var s=i.Tu.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await x0(i.localStore,jw(s[0])),t=Fb.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,py.EMPTY_BYTE_STRING);await _C(i,e,t);break}case"rejected":await R0(i.localStore,r,!0),fC(i,r,t);break;default:C(64155,n)}}}).bind(null,t),Co:(async function(e,t,n){let i=IC(e);if(i.fu){for(let r of t)if(i.Tu.has(r)&&i.sharedClientState.isActiveQueryTarget(r))E(tC,"Adding an already active target "+r);else{let e=await D0(i.localStore,r),t=await N0(i.localStore,e);await aC(i,bC(e),t.targetId,!1,t.resumeToken),yE(i.remoteStore,t)}for(let r of n)i.Tu.has(r)&&await R0(i.localStore,r,!1).then(()=>{wE(i.remoteStore,r),fC(i,r)}).catch(Sv)}}).bind(null,t),Ps:(function(e){return e.localStore.persistence.Ps()}).bind(null,t),bo:(async function(e,t){let r=e;return x0(r.localStore,t).then(e=>_C(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.ji(async e=>{{var t=this.Mu.syncEngine,s=e;let i=t;if(IC(i),TC(i),!0===s&&!0!==i.fu){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await wC(i,e.toArray());i.fu=!0,await xE(i.remoteStore,!0);for(let e of t)yE(i.remoteStore,e)}else if(!1===s&&!1!==i.fu){let r=[],n=Promise.resolve();i.Tu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(fC(i,t),R0(i.localStore,t,!0))),wE(i.remoteStore,t)}),await n,await wC(i,r);{s=i;let r=s;r.Eu.forEach((e,t)=>{wE(r.remoteStore,t)}),r.Au.jr(),r.Eu=new Map,r.du=new ay(P.comparator)}i.fu=!1,await xE(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=sE();if(G0.C(r))return t=m0(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new G0(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new A(k.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class NC{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=>hC(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){E(tC,"User change. New user:",t.toKey());let e=await E0(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Vu.forEach(e=>{e.forEach(e=>{e.reject(new A(k.CANCELLED,n))})}),r.Vu.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await _C(i,e.Bs)}}).bind(null,this.syncEngine),await xE(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new BE}createDatastore(e){var t,r,n,i=oE(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new iE(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new pE(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>hC(this.syncEngine,e,0),i=new(J0.C()?J0:Q0),new mE(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 iC(r,n,i,s,a,e),t&&(o.fu=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,E(gE,"RemoteStore shutting down."),t.Ia.add(5),await _E(t),t.Ea.shutdown(),await!t.Aa.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function RC(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()}}NC.provider={build:()=>new NC};class PC{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.xu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.xu(this.observer.error,e):Lm("Uncaught Error in snapshot listener:",e.toString()))}Ou(){this.muted=!0}xu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class DC{constructor(e,t){this.Nu=e,this.serializer=t,this.metadata=new Vm,this.buffer=new Uint8Array,this.Bu=new TextDecoder("utf-8"),this.Lu().then(e=>{e&&e.Qa()?this.metadata.resolve(e.qa.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is `+JSON.stringify(null==e?void 0:e.qa)))},e=>this.metadata.reject(e))}close(){return this.Nu.cancel()}async getMetadata(){return this.metadata.promise}async Su(){return await this.getMetadata(),this.Lu()}async Lu(){var e,t,r=await this.ku();return null===r?null:(t=this.Bu.decode(r),e=Number(t),isNaN(e)&&this.qu(`length string (${t}) is not valid number`),t=await this.Qu(e),new $E(JSON.parse(t),r.length+e))}$u(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async ku(){for(;this.$u()<0&&!await this.Uu(););var e,t;return 0===this.buffer.length?null:((e=this.$u())<0&&this.qu("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.Uu()&&this.qu("Reached the end of bundle when more is expected.");var t=this.Bu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}qu(e){throw this.Nu.cancel(),new Error("Invalid bundle format: "+e)}async Uu(){var e,t=await this.Nu.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 xC{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 A(k.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=>nI(l.serializer,e))},n=await l.Jo("BatchGetDocuments",l.serializer.databaseId,R.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=iI(r,n.found.name),s=Zb(n.found.updateTime),o=n.found.createTime?Zb(n.found.createTime):O.min(),a=new Zy({mapValue:{fields:n.found.fields}}),ew.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,S(!!(n=e).missing,3894),S(!!n.readTime,22933),i=iI(r,n.missing),s=Zb(n.readTime),ew.newNoDocument(i,s)):C(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 Eb(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=P.fromPath(t);this.mutations.push(new Cb(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>cI(t.serializer,e))};await t.Wo("Commit",t.serializer.databaseId,R.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw C(50498,{Wu:e.constructor.name});t=O.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new A(k.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(O.min())?pb.exists(!1):pb.updateTime(t):pb.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return pb.exists(!0);if(t.isEqual(O.min()))throw new A(k.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return pb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class OC{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Gu=r.maxAttempts,this.F_=new lE(this.asyncQueue,"transaction_retry")}zu(){--this.Gu,this.ju()}ju(){this.F_.g_(async()=>{let t=new xC(this.datastore),e=this.Ju(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Hu(e)}))}).catch(e=>{this.Hu(e)})})}Ju(e){try{var t=this.updateFunction(e);return!zv(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}}Hu(e){0<this.Gu&&this.Yu(e)?(--this.Gu,this.asyncQueue.enqueueAndForget(()=>(this.ju(),Promise.resolve()))):this.deferred.reject(e)}Yu(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!Rb(t))}}let LC="FirestoreClient";class MC{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=Pm.UNAUTHENTICATED,this.clientId=Qm.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{E(LC,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(E(LC,"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 Vm;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=FE(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function FC(e,t){e.asyncQueue.verifyOperationInProgress(),E(LC,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await E0(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>{Mm("Terminating Firestore due to IndexedDb database deletion"),e.terminate().then(()=>{E("Terminating Firestore due to IndexedDb database deletion completed successfully")}).catch(e=>{Mm("Terminating Firestore due to IndexedDb database deletion failed",e)})}),e._offlineComponents=t}async function UC(e,r){e.asyncQueue.verifyOperationInProgress();var t=await VC(e);E(LC,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>DE(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>DE(r.remoteStore,t)),e._onlineComponents=r}async function VC(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){E(LC,"Using user provided OfflineComponentProvider");try{await FC(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===k.FAILED_PRECONDITION||n.code===k.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 FC(t,new CC)}}else E(LC,"Using default OfflineComponentProvider"),await FC(t,new SC(void 0));var n;return t._offlineComponents}async function qC(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(E(LC,"Using user provided OnlineComponentProvider"),await UC(e,e._uninitializedComponentsProvider._online)):(E(LC,"Using default OnlineComponentProvider"),await UC(e,new NC))),e._onlineComponents}function jC(e){return VC(e).then(e=>e.persistence)}function BC(e){return VC(e).then(e=>e.localStore)}function zC(e){return qC(e).then(e=>e.remoteStore)}function KC(e){return qC(e).then(e=>e.syncEngine)}async function WC(e){var t=await qC(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=IC(e);let i;var s=n.Pu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.cu()):await sC(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Pu.get(t),s=n.Tu.get(i.targetId);1<s.length?(n.Tu.set(i.targetId,s.filter(e=>!Fw(e,t))),n.Pu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await R0(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&wE(n.remoteStore,i.targetId),fC(n,i.targetId)}).catch(Sv)):(fC(n,i.targetId),await R0(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await sC(IC(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Pu.get(t),i=r.Tu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),wE(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function HC(r){return r.asyncQueue.enqueue(async()=>{var e=await jC(r),t=await zC(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ia.add(0),await _E(t),t.Aa.set("Offline")})(t)})}function GC(e,t){let r=new Vm;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 A(k.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=FE(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await BC(e),t,r)),r.promise}function $C(e,t,h={}){let u=new Vm;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await WC(e),s=e.asyncQueue,a=t,o=h,l=u;let r=new PC({next:e=>{r.Ou(),s.enqueueAndForget(()=>WE(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new A(k.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new A(k.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 GE(Rw(a.path),r,{includeMetadataChanges:!0,ka:!0});return KE(i,n)}}),u.promise}function QC(e,t){let r=new Vm;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await P0(e,t,!0),i=new eC(t,n.qs),s=i.nu(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=FE(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await BC(e),t,r)),r.promise}function YC(o,l,h={}){let u=new Vm;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await WC(o),i=o.asyncQueue,e=l,s=h,a=u;let t=new PC({next:e=>{t.Ou(),i.enqueueAndForget(()=>WE(n,r)),e.fromCache&&"server"===s.source?a.reject(new A(k.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 GE(e,t,{includeMetadataChanges:!0,ka:!0});return KE(n,r)}}),u.promise}function JC(r,e){let n=new PC(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await WC(r),t=n,e.Da.add(t),void t.next();var e,t}),()=>{n.Ou(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await WC(r),t=n,e.Da.delete(t)})}}function XC(e,t,r,n){r=r,t=oE(t),s="string"==typeof r?$m().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return RC(e,t);if(e instanceof ArrayBuffer)return RC(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 DC(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{EC(await KC(e),i,n)})}function ZC(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await BC(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ti.getNamedQuery(e,r))}})}function eS(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let tS=new Map,rS="firestore.googleapis.com";class nS{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new A(k.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=rS,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 A(k.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}sv("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=eS(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new A(k.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 iS{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 nS({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new A(k.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 A(k.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 nS(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new jm;switch(e.type){case"firstParty":return new Wm(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new A(k.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=tS.get(e))&&(E("ComponentProvider","Removing Datastore"),tS.delete(e),t.terminate()),Promise.resolve();var e,t}}class sS{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new sS(this.firestore,e,this._query)}}class q{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 aS(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new q(this.firestore,e,this._key)}toJSON(){return{type:q._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(dv(t,q._jsonSchema))return new q(e,r||null,new P(R.fromString(t.referencePath)))}}q._jsonSchemaVersion="firestore/documentReference/1.0",q._jsonSchema={type:cv("string",q._jsonSchemaVersion),referencePath:cv("string")};class aS extends sS{constructor(e,t,r){super(e,t,Rw(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 q(this.firestore,null,new P(e))}withConverter(e){return new aS(this.firestore,e,this._path)}}function oS(e,t,...r){var n;if(e=w(e),iv("collection","path",t),e instanceof iS)return ov(n=R.fromString(t,...r)),new aS(e,null,n);if(e instanceof q||e instanceof aS)return ov(n=e._path.child(R.fromString(t,...r))),new aS(e.firestore,null,n);throw new A(k.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function lS(e,t,...r){var n;if(e=w(e),iv("doc","path",t=1===arguments.length?Qm.newId():t),e instanceof iS)return av(n=R.fromString(t,...r)),new q(e,null,new P(n));if(e instanceof q||e instanceof aS)return av(n=e._path.child(R.fromString(t,...r))),new q(e.firestore,e instanceof aS?e.converter:null,new P(n));throw new A(k.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function hS(e,t){return e=w(e),t=w(t),(e instanceof q||e instanceof aS)&&(t instanceof q||t instanceof aS)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function uS(e,t){return e=w(e),t=w(t),e instanceof sS&&t instanceof sS&&e.firestore===t.firestore&&Fw(e._query,t._query)&&e.converter===t.converter}let cS="AsyncQueue";class dS{constructor(e=Promise.resolve()){this.Zu=[],this.Xu=!1,this.ec=[],this.tc=null,this.nc=!1,this.rc=!1,this.sc=[],this.F_=new lE(this,"async_queue_retry"),this.oc=()=>{var e=aE();e&&E(cS,"Visibility state changed to "+e.visibilityState),this.F_.y_()},this._c=e;var t=aE();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.oc)}get isShuttingDown(){return this.Xu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.ac(),this.uc(e)}enterRestrictedMode(e){var t;this.Xu||(this.Xu=!0,this.rc=e||!1,(t=aE())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.oc))}enqueue(e){if(this.ac(),this.Xu)return new Promise(()=>{});let t=new Vm;return this.uc(()=>this.Xu&&this.rc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Zu.push(e),this.cc()))}async cc(){if(0!==this.Zu.length){try{await this.Zu[0](),this.Zu.shift(),this.F_.reset()}catch(e){if(!xv(e))throw e;E(cS,"Operation failed with retryable error: "+e)}0<this.Zu.length&&this.F_.g_(()=>this.cc())}}uc(e){var t=this._c.then(()=>(this.nc=!0,e().catch(e=>{throw this.tc=e,this.nc=!1,Lm("INTERNAL UNHANDLED ERROR: ",pS(e)),e}).then(e=>(this.nc=!1,e))));return this._c=t}enqueueAfterDelay(e,t,r){this.ac(),-1<this.sc.indexOf(e)&&(t=0);var n=ME.createAndSchedule(this,e,t,r,e=>this.lc(e));return this.ec.push(n),n}ac(){this.tc&&C(47125,{hc:pS(this.tc)})}verifyOperationInProgress(){}async Pc(){for(var e;await(e=this._c),e!==this._c;);}Tc(e){for(var t of this.ec)if(t.timerId===e)return!0;return!1}Ic(t){return this.Pc().then(()=>{this.ec.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.ec)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Pc()})}dc(e){this.sc.push(e)}lc(e){var t=this.ec.indexOf(e);this.ec.splice(t,1)}}function pS(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function fS(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 gS{constructor(){this._progressObserver={},this._taskCompletionResolver=new Vm,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 mS,vS;class _S extends iS{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new dS,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new dS(e),this._firestoreClient=void 0,await e)}}function yS(e){if(e._terminated)throw new A(k.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||wS(e),e._firestoreClient}function wS(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 Cy(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,eS(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 MC(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 bS(e,t,r){if((e=D(e,_S))._firestoreClient||e._terminated)throw new A(k.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 A(k.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},wS(e)}function IS(r){if(r._initialized&&!r._terminated)throw new A(k.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new Vm;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=m0(r._databaseId,r._persistenceKey),await(Nv.C()?(t=e+"main",void await Nv.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function TS(e){return(r=yS(e=D(e,_S))).asyncQueue.enqueue(async()=>{var e=await jC(r),t=await zC(r);return e.setNetworkEnabled(!0),(e=t).Ia.delete(0),vE(e)});var r}class ES{constructor(e){this._byteString=e}static fromBase64String(e){try{return new ES(py.fromBase64String(e))}catch(e){throw new A(k.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new ES(py.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:ES._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(dv(e,ES._jsonSchema))return ES.fromBase64String(e.bytes)}}ES._jsonSchemaVersion="firestore/bytes/1.0",ES._jsonSchema={type:cv("string",ES._jsonSchemaVersion),bytes:cv("string")};class CS{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new A(k.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new nv(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class SS{constructor(e){this._methodName=e}}class kS{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new A(k.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new A(k.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return N(this._lat,e._lat)||N(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:kS._jsonSchemaVersion}}static fromJSON(e){if(dv(e,kS._jsonSchema))return new kS(e.latitude,e.longitude)}}kS._jsonSchemaVersion="firestore/geoPoint/1.0",kS._jsonSchema={type:cv("string",kS._jsonSchemaVersion),latitude:cv("number"),longitude:cv("number")};class AS{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}toJSON(){return{type:AS._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(dv(e,AS._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new AS(e.vectorValues);throw new A(k.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}AS._jsonSchemaVersion="firestore/vectorValue/1.0",AS._jsonSchema={type:cv("string",AS._jsonSchemaVersion),vectorValues:cv("object")};let NS=/^__.*__$/;class RS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new wb(e,this.data,this.fieldMask,t,this.fieldTransforms):new yb(e,this.data,t,this.fieldTransforms)}}class PS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new wb(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function DS(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw C(40011,{Ec:e})}}class xS{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Ac(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ec(){return this.settings.Ec}Rc(e){return new xS(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Vc(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.Rc({path:t,mc:!1});return t.fc(e),t}gc(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.Rc({path:t,mc:!1});return t.Ac(),t}yc(e){return this.Rc({path:void 0,mc:!0})}wc(e){return ZS(e,this.settings.methodName,this.settings.Sc||!1,this.path,this.settings.bc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.fc(this.path.get(e))}fc(e){if(0===e.length)throw this.wc("Document fields must not be empty");if(DS(this.Ec)&&NS.test(e))throw this.wc('Document fields cannot begin and end with "__"')}}class OS{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||oE(e)}Dc(e,t,r,n=!1){return new xS({Ec:e,methodName:t,bc:r,path:nv.emptyPath(),mc:!1,Sc:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function LS(e){var t=e._freezeSettings(),r=oE(e._databaseId);return new OS(e._databaseId,!!t.ignoreUndefinedProperties,r)}function MS(e,n,i,t,r,s={}){var a=e.Dc(s.merge||s.mergeFields?2:0,n,i,r),o=(QS("Data must be an object, but it was:",a,t),GS(t,a));let l,h;if(s.merge)l=new cy(a.fieldMask),h=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=YS(n,r,i);if(!a.contains(e))throw new A(k.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);ek(t,e)||t.push(e)}l=new cy(t),h=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,h=a.fieldTransforms;return new RS(new Zy(o),l,h)}class FS extends SS{_toFieldTransform(e){if(2!==e.Ec)throw 1===e.Ec?e.wc(this._methodName+"() can only appear at the top level of your update data"):e.wc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof FS}}function US(e,t,r){return new xS({Ec:3,bc:t.settings.bc,methodName:e._methodName,mc:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class VS extends SS{_toFieldTransform(e){return new cb(e.path,new nb)}isEqual(e){return e instanceof VS}}class qS extends SS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=US(this,e,!0),r=this.vc.map(e=>HS(e,t)),n=new ib(r);return new cb(e.path,n)}isEqual(e){return e instanceof qS&&Ne(this.vc,e.vc)}}class jS extends SS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=US(this,e,!0),r=this.vc.map(e=>HS(e,t)),n=new ab(r);return new cb(e.path,n)}isEqual(e){return e instanceof jS&&Ne(this.vc,e.vc)}}class BS extends SS{constructor(e,t){super(e),this.Cc=t}_toFieldTransform(e){var t=new lb(e.serializer,eb(e.serializer,this.Cc));return new cb(e.path,t)}isEqual(e){return e instanceof BS&&this.Cc===e.Cc}}function zS(e,i,s,t){let a=e.Dc(1,i,s),o=(QS("Data must be an object, but it was:",a,t),[]),l=Zy.empty();iy(t,(e,t)=>{var r=XS(i,e,s),n=(t=w(t),a.gc(r));if(t instanceof FS)o.push(r);else{let e=HS(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new cy(o);return new PS(l,r,a.fieldTransforms)}function KS(e,t,r,n,i,s){var a=e.Dc(1,t,r),o=[YS(t,n,r)],l=[i];if(s.length%2!=0)throw new A(k.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(YS(t,s[p])),l.push(s[p+1]);var h=[],u=Zy.empty();for(let f=o.length-1;0<=f;--f)if(!ek(h,o[f])){let t=o[f];var c=w(l[f]);let r=a.gc(t);if(c instanceof FS)h.push(t);else{let e=HS(c,r);null!=e&&(h.push(t),u.set(t,e))}}var d=new cy(h);return new PS(u,d,a.fieldTransforms)}function WS(e,t,r,n=!1){return HS(r,e.Dc(n?4:3,t))}function HS(e,r){if($S(e=w(e)))return QS("Unsupported field value:",r,e),GS(e,r);if(e instanceof SS){{var t=e;var n=r;if(!DS(n.Ec))throw n.wc(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.wc(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.mc&&4!==r.Ec)throw r.wc("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=HS(s,a.yc(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 eb(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return h=x.fromDate(t),{timestampValue:Jb(n.serializer,h)};if(t instanceof x)return h=new x(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:Jb(n.serializer,h)};if(t instanceof kS)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof ES)return{bytesValue:Xb(n.serializer,t._byteString)};if(t instanceof q){var h=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(h))return{referenceValue:eI(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.wc(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${h.projectId}/`+h.database)}if(t instanceof AS)return e=t,l=n,{mapValue:{fields:{[Ay]:{stringValue:Py},[Dy]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.wc("VectorValues must only contain numeric values.");return Xw(l.serializer,e)})}}}}};throw n.wc("Unsupported field value: "+hv(t))}function GS(e,n){let i={};return sy(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):iy(e,(e,t)=>{var r=HS(t,n.Vc(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function $S(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof x||e instanceof kS||e instanceof ES||e instanceof q||e instanceof SS||e instanceof AS)}function QS(e,t,r){var n;if(!$S(r)||!lv(r))throw"an object"===(n=hv(r))?t.wc(e+" a custom object"):t.wc(e+" "+n)}function YS(e,t,r){if((t=w(t))instanceof CS)return t._internalPath;if("string"==typeof t)return XS(e,t);throw ZS("Field path arguments must be of type string or ",e,!1,void 0,r)}let JS=new RegExp("[~\\*/\\[\\]]");function XS(t,r,n){if(0<=r.search(JS))throw ZS(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new CS(...r.split("."))._internalPath}catch(e){throw ZS(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function ZS(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 A(k.INVALID_ARGUMENT,o+e+l)}function ek(e,t){return e.some(e=>e.isEqual(t))}class tk{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 q(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new rk(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(nk("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class rk extends tk{data(){return super.data()}}function nk(e,t){return"string"==typeof t?XS(e,t):(t instanceof CS?t:t._delegate)._internalPath}function ik(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new A(k.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class sk{}class ak extends sk{}function ok(e,t,...r){let n=[];t instanceof sk&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof lk).length;if(1<i||0<i&&0<s)throw new A(k.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 lk extends ak{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new lk(e,t,r)}_apply(e){var t=this._parse(e);return mk(e._query,t),new sS(e.firestore,e.converter,Lw(e._query,t))}_parse(e){var t=LS(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 A(k.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){gk(l,o);let e=[];for(let t of l)e.push(fk(a,n,t));r={arrayValue:{values:e}}}else r=fk(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||gk(l,o),r=WS(s,i,l,"in"===o||"not-in"===o);return F.create(e,o,r)}}}(class extends sk{});class hk extends ak{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new hk(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new iw(t,r)})(e._query,this._field,this._direction);return new sS(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Aw(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class uk extends ak{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new uk(e,t,r)}_apply(e){return new sS(e.firestore,e.converter,Mw(e._query,this._limit,this._limitType))}}class ck extends ak{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new ck(e,t,r)}_apply(e){var t,r=pk(e,this.type,this._docOrFields,this._inclusive);return new sS(e.firestore,e.converter,(e=e._query,t=r,new Aw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class dk extends ak{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new dk(e,t,r)}_apply(e){var t,r=pk(e,this.type,this._docOrFields,this._inclusive);return new sS(e.firestore,e.converter,(e=e._query,t=r,new Aw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function pk(e,r,n,i){if(n[0]=w(n[0]),n[0]instanceof tk){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,h=i;if(!l)throw new A(k.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var u=[];for(let t of xw(s))if(t.field.isKeyField())u.push(jy(a,l.key));else{let e=l.data.field(t.field);if(Iy(e))throw new A(k.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 A(k.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 tw(u,h)}var t=LS(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 A(k.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 A(k.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${f}(), but got a `+typeof _);if(!Dw(c)&&-1!==_.indexOf("/"))throw new A(k.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(R.fromString(_));if(!P.isDocumentKey(e))throw new A(k.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 P(e);v.push(jy(d,t))}else{let e=WS(p,f,_);v.push(e)}}return new tw(v,o)}function fk(e,t,r){if("string"==typeof(r=w(r))){if(""===r)throw new A(k.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Dw(t)&&-1!==r.indexOf("/"))throw new A(k.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(R.fromString(r));if(P.isDocumentKey(n))return jy(e,new P(n));throw new A(k.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 q)return jy(e,r._key);throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${hv(r)}.`)}function gk(e,t){if(!Array.isArray(e)||0===e.length)throw new A(k.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function mk(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 A(k.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new A(k.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class vk{convertValue(e,t="none"){switch(Oy(e)){case 0:return null;case 1:return e.booleanValue;case 2:return my(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(vy(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw C(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return iy(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[Dy].arrayValue)?void 0:t.values)?void 0:t.map(e=>my(e.doubleValue));return new AS(t)}convertGeoPoint(e){return new kS(my(e.latitude),my(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=Ty(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(Ey(e));default:return null}}convertTimestamp(e){var t=gy(e);return new x(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=R.fromString(e),n=(S(II(r),9688,{name:e}),new ky(r.get(1),r.get(3))),r=new P(r.popFirst(5));return n.isEqual(t)||Lm(`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 _k(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class yk extends vk{constructor(e){super(),this.firestore=e}convertBytes(e){return new ES(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}class wk{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class bk extends tk{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 Ik(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(nk("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=bk._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}bk._jsonSchemaVersion="firestore/documentSnapshot/1.0",bk._jsonSchema={type:cv("string",bk._jsonSchemaVersion),bundleSource:cv("string","DocumentSnapshot"),bundleName:cv("string"),bundle:cv("string")};class Ik extends bk{data(e={}){return super.data(e)}}class Tk{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new wk(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 Ik(this._firestore,this._userDataWriter,e.key,e,new wk(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 A(k.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 Ik(s._firestore,s._userDataWriter,e.doc.key,e.doc,new wk(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 Ik(s._firestore,s._userDataWriter,e.doc.key,e.doc,new wk(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 C(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=Tk._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=Qm.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function Ek(e,t){return e instanceof bk&&t instanceof bk?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 Tk&&t instanceof Tk&&e._firestore===t._firestore&&uS(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}Tk._jsonSchemaVersion="firestore/querySnapshot/1.0",Tk._jsonSchema={type:cv("string",Tk._jsonSchemaVersion),bundleSource:cv("string","QuerySnapshot"),bundleName:cv("string"),bundle:cv("string")};class Ck extends vk{constructor(e){super(),this.firestore=e}convertBytes(e){return new ES(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}function Sk(e,t,r){e=D(e,q);var n=D(e.firestore,_S),i=_k(e.converter,t,r);return Nk(n,[MS(LS(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,pb.none())])}function kk(e,t,r,...n){e=D(e,q);var i=D(e.firestore,_S),s=LS(i);return Nk(i,[("string"==typeof(t=w(t))||t instanceof CS?KS(s,"updateDoc",e._key,t,r,n):zS(s,"updateDoc",e._key,t)).toMutation(e._key,pb.exists(!0))])}function Ak(n,...i){var t,r;n=w(n);let e={includeMetadataChanges:!1,source:"default"},s=0;var a={includeMetadataChanges:(e="object"!=typeof i[s]||fS(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(fS(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 q)l=D(n.firestore,_S),h=Rw(n._key.path),o={next:e=>{i[s]&&i[s](Rk(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=D(n,sS),r=(l=D(t.firestore,_S),h=t._query,new Ck(l));o={next:e=>{i[s]&&i[s](new Tk(l,r,t,e))},error:i[s+1],complete:i[s+2]},ik(n._query)}{var u=yS(l),c=h,d=a,p=o;let e=new PC(p),t=new GE(c,e,d);return u.asyncQueue.enqueueAndForget(async()=>KE(await WC(u),t)),()=>{e.Ou(),u.asyncQueue.enqueueAndForget(async()=>WE(await WC(u),t))}}}function Nk(t,r){{var n=yS(t),i=r;let e=new Vm;return n.asyncQueue.enqueueAndForget(async()=>oC(await KC(n),i,e)),e.promise}}function Rk(e,t,r){var n=r.docs.get(t._key),i=new Ck(e);return new bk(e,i,t._key,n,new wk(r.hasPendingWrites,r.fromCache),t.converter)}let Pk={maxAttempts:5};class Dk{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=LS(e)}set(e,t,r){this._verifyNotCommitted();var n=xk(e,this._firestore),i=_k(n.converter,t,r),i=MS(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,pb.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=xk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof CS?KS(this._dataReader,"WriteBatch.update",i._key,t,r,n):zS(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,pb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=xk(e,this._firestore);return this._mutations=this._mutations.concat(new Eb(t._key,pb.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 A(k.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function xk(e,t){if((e=w(e)).firestore!==t)throw new A(k.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class Ok extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=LS(e)}get(e){let r=xk(e,this._firestore),n=new yk(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return C(24041);var t=e[0];if(t.isFoundDocument())return new tk(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new tk(this._firestore,n,r._key,null,r.converter);throw C(18433,{doc:t})})}set(e,t,r){var n=xk(e,this._firestore),i=_k(n.converter,t,r),i=MS(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=xk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof CS?KS(this._dataReader,"Transaction.update",i._key,t,r,n):zS(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=xk(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=xk(e,this._firestore),r=new Ck(this._firestore);return super.get(e).then(e=>new bk(this._firestore,r,t._key,e._document,new wk(!1,!1),t.converter))}}function Lk(r,n,e){r=D(r,_S);var i=Object.assign(Object.assign({},Pk),e);if(i.maxAttempts<1)throw new A(k.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=yS(r),a=e=>n(new Ok(r,e)),o=i;let t=new Vm;return s.asyncQueue.enqueueAndForget(async()=>{var e=await qC(s).then(e=>e.datastore);new OC(s.asyncQueue,e,o,a,t).zu()}),t.promise}}mS=!0,hD=Vt,Dm=hD,Dt(new u("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new _S(new zm(e.getProvider("auth-internal")),new Gm(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new ky(e.options.projectId,t);throw new A(k.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:mS},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),d(Rm,"4.8.0",dN),d(Rm,"4.8.0","esm2017");function Mk(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new A("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Fk(){if("undefined"==typeof Uint8Array)throw new A("unimplemented","Uint8Arrays are not available in this environment.")}function Uk(){if("undefined"==typeof atob)throw new A("unimplemented","Blobs are unavailable in Firestore in this environment.")}class Vk{constructor(e){this._delegate=e}static fromBase64String(e){return Uk(),new Vk(ES.fromBase64String(e))}static fromUint8Array(e){return Fk(),new Vk(ES.fromUint8Array(e))}toBase64(){return Uk(),this._delegate.toBase64()}toUint8Array(){return Fk(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function qk(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 jk{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 bS(e,NC.provider,{build:e=>new kC(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();bS(e,NC.provider,{build:e=>new AC(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return IS(e._delegate)}}class Bk{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof ky||(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=D(i,iS);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!==rS&&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=Pm.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 A(k.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new Pm(e)}i._authCredentials=new Bm(new qm(t,r))}}}enableNetwork(){return TS(this._delegate)}disableNetwork(){return HC(yS(D(this._delegate,_S)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,sv("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=yS(t=D(t,_S));let e=new Vm;return r.asyncQueue.enqueueAndForget(async()=>cC(await KC(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,JC(yS(t=D(t,_S)),fS(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new A("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new rA(this,oS(this._delegate,e))}catch(e){throw $k(e,"collection()","Firestore.collection()")}}doc(e){try{return new Gk(this,lS(this._delegate,e))}catch(e){throw $k(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new Zk(this,((e,t)=>{if(e=D(e,iS),iv("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new sS(e,null,(e=t,new Aw(R.emptyPath(),e)))})(this._delegate,e))}catch(e){throw $k(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return Lk(this._delegate,e=>t(new Kk(this,e)))}batch(){return yS(this._delegate),new Wk(new Dk(this._delegate,e=>Nk(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=yS(t=D(t,_S)),n=new gS,XC(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,ZC(yS(t=D(t,_S)),e).then(e=>e?new sS(t,null,e.query):null).then(e=>e?new Zk(this,e):null);var t}}class zk extends vk{constructor(e){super(),this.firestore=e}convertBytes(e){return new Vk(new ES(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Gk.forKey(t,this.firestore,null)}}class Kk{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new zk(e)}get(e){let t=nA(e);return this._delegate.get(t).then(e=>new Jk(this._firestore,new bk(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=nA(e);return r?(Mk("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=nA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=nA(e);return this._delegate.delete(t),this}}class Wk{constructor(e){this._delegate=e}set(e,t,r){var n=nA(e);return r?(Mk("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=nA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=nA(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Hk{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Ik(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new Xk(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=Hk.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Hk(e,new zk(e),t),n.set(t,i)),i}}Hk.INSTANCES=new WeakMap;class Gk{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new zk(e)}static forPath(e,t,r){if(e.length%2!=0)throw new A("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Gk(t,new q(t._delegate,r,new P(e)))}static forKey(e,t,r){return new Gk(t,new q(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new rA(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new rA(this.firestore,oS(this._delegate,e))}catch(e){throw $k(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=w(e))instanceof q&&hS(this._delegate,e)}set(e,t){t=Mk("DocumentReference.set",t);try{return t?Sk(this._delegate,e,t):Sk(this._delegate,e)}catch(e){throw $k(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?kk(this._delegate,e):kk(this._delegate,e,t,...r)}catch(e){throw $k(e,"updateDoc()","DocumentReference.update()")}}delete(){return Nk(D((e=this._delegate).firestore,_S),[new Eb(e._key,pb.none())]);var e}onSnapshot(...e){var t=Qk(e),r=Yk(e,e=>new Jk(this.firestore,new bk(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Ak(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=D(t,q);let r=D(t.firestore,_S),e=yS(r),n=new Ck(r);return GC(e,t._key).then(e=>new bk(r,n,t._key,e,new wk(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=D(t,q);let r=D(t.firestore,_S);return $C(yS(r),t._key,{source:"server"}).then(e=>Rk(r,t,e))}:t=>{t=D(t,q);let r=D(t.firestore,_S);return $C(yS(r),t._key).then(e=>Rk(r,t,e))})(this._delegate)).then(e=>new Jk(this.firestore,new bk(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Gk(this.firestore,e?this._delegate.withConverter(Hk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function $k(e,t,r){return e.message=e.message.replace(t,r),e}function Qk(e){for(var t of e)if("object"==typeof t&&!qk(t))return t;return{}}function Yk(e,t){let r,n,i;return i=qk(e[0])?e[0]:qk(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 Jk{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Gk(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 Ek(this._delegate,e._delegate)}}class Xk extends Jk{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||C(57014,e),t}}class Zk{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new zk(e)}where(e,t,r){try{return new Zk(this.firestore,ok(this._delegate,(n=r,i=t,s=nk("where",e),lk._create(s,i,n))))}catch(e){throw $k(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new Zk(this.firestore,ok(this._delegate,([r,n="asc"]=[e,t],i=n,s=nk("orderBy",r),hk._create(s,i))))}catch(e){throw $k(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new Zk(this.firestore,ok(this._delegate,(uv("limit",t=e),uk._create("limit",t,"F"))))}catch(e){throw $k(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new Zk(this.firestore,ok(this._delegate,(uv("limitToLast",t=e),uk._create("limitToLast",t,"L"))))}catch(e){throw $k(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new Zk(this.firestore,ok(this._delegate,([...t]=[...e],ck._create("startAt",t,!0))))}catch(e){throw $k(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new Zk(this.firestore,ok(this._delegate,([...t]=[...e],ck._create("startAfter",t,!1))))}catch(e){throw $k(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new Zk(this.firestore,ok(this._delegate,([...t]=[...e],dk._create("endBefore",t,!1))))}catch(e){throw $k(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new Zk(this.firestore,ok(this._delegate,([...t]=[...e],dk._create("endAt",t,!0))))}catch(e){throw $k(e,"endAt()","Query.endAt()")}var t}isEqual(e){return uS(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=D(t,sS);let r=D(t.firestore,_S),e=yS(r),n=new Ck(r);return QC(e,t._query).then(e=>new Tk(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=D(t,sS);let r=D(t.firestore,_S),e=yS(r),n=new Ck(r);return YC(e,t._query,{source:"server"}).then(e=>new Tk(r,n,t,e))}:t=>{t=D(t,sS);let r=D(t.firestore,_S),e=yS(r),n=new Ck(r);return ik(t._query),YC(e,t._query).then(e=>new Tk(r,n,t,e))})(this._delegate)).then(e=>new tA(this.firestore,new Tk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Qk(e),r=Yk(e,e=>new tA(this.firestore,new Tk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Ak(this._delegate,t,r)}withConverter(e){return new Zk(this.firestore,e?this._delegate.withConverter(Hk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class eA{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new Xk(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class tA{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new Zk(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 Xk(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new eA(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new Xk(this._firestore,e))})}isEqual(e){return Ek(this._delegate,e._delegate)}}class rA extends Zk{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 Gk(this.firestore,e):null}doc(e){try{return void 0===e?new Gk(this.firestore,lS(this._delegate)):new Gk(this.firestore,lS(this._delegate,e))}catch(e){throw $k(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=D(e.firestore,_S),n=lS(e),i=_k(e.converter,t);return Nk(r,[MS(LS(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,pb.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Gk(this.firestore,e))}isEqual(e){return hS(this._delegate,e._delegate)}withConverter(e){return new rA(this.firestore,e?this._delegate.withConverter(Hk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function nA(e){return D(e,q)}class iA{static serverTimestamp(){var e=new VS("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new iA(e)}static delete(){var e=new FS("deleteField");return e._methodName="FieldValue.delete",new iA(e)}static arrayUnion(...e){[...e]=[...e];var t=new qS("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new iA(t)}static arrayRemove(...e){[...e]=[...e];var t=new jS("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new iA(t)}static increment(e){e=e;var t=new BS("increment",e);return t._methodName="FieldValue.increment",new iA(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let sA={Firestore:Bk,GeoPoint:kS,Timestamp:x,Blob:Vk,Transaction:Kk,WriteBatch:Wk,DocumentReference:Gk,DocumentSnapshot:Jk,Query:Zk,QueryDocumentSnapshot:Xk,QuerySnapshot:tA,CollectionReference:rA,FieldPath:class xx{constructor(...e){this._delegate=new CS(...e)}static documentId(){return new xx(nv.keyField().canonicalString())}isEqual(e){return(e=w(e))instanceof CS&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:iA,setLogLevel:function(e){e=e,xm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=lr,vS=(e,t)=>new Bk(e,t,new jk),t.INTERNAL.registerComponent(new u("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return vS(t,r)},"PUBLIC").setServiceProps(Object.assign({},sA))),t.registerVersion("@firebase/firestore-compat","0.3.53");let aA="type.googleapis.com/google.protobuf.Int64Value",oA="type.googleapis.com/google.protobuf.UInt64Value";function lA(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function hA(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=>hA(e));if("function"==typeof e||"object"==typeof e)return lA(e,e=>hA(e));throw new Error("Data cannot be encoded in JSON: "+e)}function uA(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case aA:case oA: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=>uA(e)):"function"==typeof e||"object"==typeof e?lA(e,e=>uA(e)):e}let cA="functions",dA={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 pA extends ye{constructor(e,t,r){super(cA+"/"+e,t||""),this.details=r,Object.setPrototypeOf(this,pA.prototype)}}function fA(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(!dA[e])return new pA("internal","internal");r=dA[e],n=e}var a=s.message;"string"==typeof a&&(n=a),void 0!==(i=s.details)&&(i=uA(i))}}catch(e){}return"ok"===r?null:new pA(r,n,i)}class gA{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 mA="us-central1",vA=/^data: (.*?)(?:\n|$)/;class _A{constructor(e,t,r,n,i=mA,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new gA(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=mA}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 yA(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),bA(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),IA(r,n,e,t||{});var r,n},e}async function wA(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 bA(e,t,r,n){var i={data:r=hA(r)},s=await wA(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new pA("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 pA("cancelled","Firebase Functions instance was deleted.");s=fA(i.status,i.json);if(s)throw s;if(!i.json)throw new pA("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 pA("internal","Response is missing data field.");return{data:uA(o)}}async function IA(e,t,r,n){var i={data:r=hA(r)},s=await wA(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 pA("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=fA(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 pA("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let h=((a,s,o,l)=>{let h=(e,t)=>{var r=e.match(vA);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(uA(i.result)):"message"in i?t.enqueue(uA(i.message)):"error"in i&&(n=fA(0,i),t.error(n),o(n))}catch(e){e instanceof pA&&(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 pA("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 pA("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof pA?e:fA(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 TA="@firebase/functions";function EA(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 CA(e,t,r){return n=w(e),i=t,s=r,(a=e=>bA(n,i,e,s||{})).stream=(e,t)=>IA(n,i,e,t||{}),a;var n,i,s,a}Dt(new u(cA,(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 _A(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),d(TA,"0.12.9",r),d(TA,"0.12.9","esm2017");var SA,kA,AA;class NA{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return yA(w(this._delegate),e,t)}httpsCallableFromURL(e,t){return CA(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 EA(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return EA(this._delegate,e,t)}}let RA="us-central1",PA=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:null!=t?t:RA});return new NA(r,n)};ar={Functions:NA},lr.INTERNAL.registerComponent(new u("functions-compat",PA,"PUBLIC").setServiceProps(ar).setMultipleInstances(!0)),lr.registerVersion("@firebase/functions-compat","0.3.26");let DA="/firebase-messaging-sw.js",xA="/firebase-cloud-messaging-push-scope",OA="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",LA="https://fcmregistrations.googleapis.com/v1",MA="google.c.a.c_id",FA="google.c.a.c_l",UA="google.c.a.ts",VA="google.c.a.e",qA=1e4;function jA(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(hD=SA=SA||{}).PUSH_RECEIVED="push-received",hD.NOTIFICATION_CLICKED="notification-clicked";let BA="fcm_token_details_db",zA=5,KA="fcm_token_object_Store";async function WA(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(BA))return null;let l=null;return(await gt(BA,zA,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(KA)&&(i=await(a=n.objectStore(KA)).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:jA(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:jA(s.auth),p256dh:jA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:jA(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:jA(a.auth),p256dh:jA(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:jA(a.vapidKey)}}))}})).close(),await mt(BA),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 HA="firebase-messaging-database",GA=1,$A="firebase-messaging-store",QA=null;function YA(){return QA=QA||gt(HA,GA,{upgrade:(e,t)=>{0===t&&e.createObjectStore($A)}})}async function JA(e){var t=ZA(e),t=await(await YA()).transaction($A).objectStore($A).get(t);return t||((t=await WA(e.appConfig.senderId))?(await XA(e,t),t):void 0)}async function XA(e,t){var r=ZA(e),n=(await YA()).transaction($A,"readwrite");return await n.objectStore($A).put(t,r),await n.done,t}function ZA({appConfig:e}){return e.appId}let e1=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 t1(e,t){var r={method:"DELETE",headers:await n1(e)};try{var n,i=await(await fetch(r1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,e1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw e1.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function r1({projectId:e}){return LA+`/projects/${e}/registrations`}async function n1({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 i1({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==OA&&(i.web.applicationPubKey=n),i}let s1=6048e5;async function a1(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:jA(a.getKey("auth")),p256dh:jA(a.getKey("p256dh"))},o=await JA(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+s1?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await n1(e),n=i1(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(r1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw e1.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,e1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw e1.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await XA(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await t1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return l1(e.firebaseDependencies,a)}async function o1(e){var t,r=await JA(e.firebaseDependencies),r=(r&&(await t1(e.firebaseDependencies,r.token),r=ZA(e.firebaseDependencies),await(t=(await YA()).transaction($A,"readwrite")).objectStore($A).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function l1(e,t){var r={token:await(async(e,t)=>{var r=await n1(e),n=i1(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(r1(e.appConfig),r);i=await s.json()}catch(e){throw e1.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,e1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw e1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await XA(e,r),r.token}function h1(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 u1="AzSCbw63g1R0nCw85jG8",c1="Iaya3yLKwmgvh7cF0q4",d1=[];for(let Ox=0;Ox<u1.length;Ox++)d1.push(u1.charAt(Ox)),Ox<c1.length&&d1.push(c1.charAt(Ox));function p1(e){return e1.create("missing-app-config-values",{valueName:e})}d1.join("");class f1{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 p1("App Configuration Object");if(!e.name)throw p1("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw p1(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 g1(e){try{e.swRegistration=await navigator.serviceWorker.register(DA,{scope:xA}),e.swRegistration.update().catch(()=>{}),t=e.swRegistration,await new Promise((r,e)=>{let n=setTimeout(()=>e(new Error(`Service worker not registered after ${qA} ms`)),qA),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 e1.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}var t}async function m1(e,t){if(!navigator)throw e1.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw e1.create("permission-blocked");n=e,await!((r=null==t?void 0:t.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=OA));var r=e,n=null==t?void 0:t.serviceWorkerRegistration;if(n||r.swRegistration||await g1(r),n||!r.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw e1.create("invalid-sw-registration");r.swRegistration=n}return await 0,a1(e)}async function v1(e,t,r){var n=(e=>{switch(e){case SA.NOTIFICATION_CLICKED:return"notification_open";case SA.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[MA],message_name:r[FA],message_time:r[UA],message_device_time:Math.floor(Date.now()/1e3)})}async function _1(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===SA.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(h1(n)):e.onMessageHandler.next(h1(n))),"object"==typeof(t=r=n.data))&&t&&MA in t&&"1"===r[VA]&&await v1(e,n.messageType,r)}let y1="@firebase/messaging",w1="0.12.22",b1=e=>{let t=new f1(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>_1(t,e)),t},I1=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>m1(t,e)}};function T1(e){return(async e=>{if(navigator)return e.swRegistration||await g1(e),o1(e);throw e1.create("only-available-in-window")})(e=w(e))}function E1(e,t){var r=e=w(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw e1.create("only-available-in-window")}Dt(new u("messaging",b1,"PUBLIC")),Dt(new u("messaging-internal",I1,"PRIVATE")),d(y1,w1),d(y1,w1,"esm2017");let C1="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",S1="https://fcmregistrations.googleapis.com/v1",k1="FCM_MSG",A1="google.c.a.c_id",N1=3,R1=1;function P1(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(dN=kA=kA||{})[dN.DATA_MESSAGE=1]="DATA_MESSAGE",dN[dN.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(t=AA=AA||{}).PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked";let D1="fcm_token_details_db",x1=5,O1="fcm_token_object_Store";async function L1(o){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(D1))return null;let l=null;return(await gt(D1,x1,{upgrade:async(e,t,r,n)=>{var i,s,a;t<2||e.objectStoreNames.contains(O1)&&(i=await(a=n.objectStore(O1)).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:P1(a.vapidKey)}}):3===t?(s=i,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:P1(s.auth),p256dh:P1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:P1(s.vapidKey)}}):4===t&&(a=i,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:P1(a.auth),p256dh:P1(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:P1(a.vapidKey)}}))}})).close(),await mt(D1),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 M1="firebase-messaging-database",F1=1,U1="firebase-messaging-store",V1=null;function q1(){return V1=V1||gt(M1,F1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(U1)}})}async function j1(e){var t=z1(e),t=await(await q1()).transaction(U1).objectStore(U1).get(t);return t||((t=await L1(e.appConfig.senderId))?(await B1(e,t),t):void 0)}async function B1(e,t){var r=z1(e),n=(await q1()).transaction(U1,"readwrite");return await n.objectStore(U1).put(t,r),await n.done,t}function z1({appConfig:e}){return e.appId}let K1=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 W1(e,t){var r={method:"DELETE",headers:await G1(e)};try{var n,i=await(await fetch(H1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,K1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw K1.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function H1({projectId:e}){return S1+`/projects/${e}/registrations`}async function G1({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 $1({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==C1&&(i.web.applicationPubKey=n),i}let Q1=6048e5;async function Y1(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:P1(a.getKey("auth")),p256dh:P1(a.getKey("p256dh"))},o=await j1(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+Q1?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await G1(e),n=$1(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(H1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw K1.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,K1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw K1.create("token-update-no-token")})(e.firebaseDependencies,t),n=Object.assign(Object.assign({},t),{token:r,createTime:Date.now()});return await B1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await W1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return X1(e.firebaseDependencies,a)}async function J1(e){var t,r=await j1(e.firebaseDependencies),r=(r&&(await W1(e.firebaseDependencies,r.token),r=z1(e.firebaseDependencies),await(t=(await q1()).transaction(U1,"readwrite")).objectStore(U1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function X1(e,t){var r={token:await(async(e,t)=>{var r=await G1(e),n=$1(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(H1(e.appConfig),r);i=await s.json()}catch(e){throw K1.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw n=i.error.message,K1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw K1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await B1(e,r),r.token}var Z1="AzSCbw63g1R0nCw85jG8",eN="Iaya3yLKwmgvh7cF0q4",tN=[];for(let Lx=0;Lx<Z1.length;Lx++)tN.push(Z1.charAt(Lx)),Lx<eN.length&&tN.push(eN.charAt(Lx));async function rN(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?kA.DISPLAY_NOTIFICATION:kA.DATA_MESSAGE).toString(),n.sdk_platform=N1.toString(),n.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(n.collapse_key=e.collapse_key),n.event=R1.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 nN(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await rN(t,r);var n,i,s,a=await sN();if(a.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=AA.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={[k1]: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 iN(e){var t=null==(t=null==(t=e.notification)?void 0:t.data)?void 0:t[k1];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&&A1 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 sN()){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=AA.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function sN(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function aN(e){return K1.create("missing-app-config-values",{valueName:e})}tN.join("");class oN{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 aN("App Configuration Object");if(!e.name)throw aN("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw aN(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 lN=e=>{let t=new oN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(nN(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var r;(r=e.newSubscription)?(r=await j1(t.firebaseDependencies),await J1(t),t.vapidKey=null!=(r=null==(r=null==r?void 0:r.subscriptionOptions)?void 0:r.vapidKey)?r:C1,await Y1(t)):await J1(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(iN(e))}),t};function hN(e,t){var r=e=w(e),e=t;if(void 0!==self.document)throw K1.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}Dt(new u("messaging-sw",lN,"PUBLIC"));var uN,cN,dN;class pN{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>m1(e=w(e),t))(this._delegate,e)}async deleteToken(){return T1(this._delegate)}onMessage(e){return E1(this._delegate,e)}onBackgroundMessage(e){return hN(this._delegate,e)}}let fN=e=>self&&"ServiceWorkerGlobalScope"in self?new pN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new pN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),gN={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",fN,"PUBLIC").setServiceProps(gN)),lr.registerVersion("@firebase/messaging-compat","0.2.22");let mN="firebasestorage.googleapis.com",vN="storageBucket";class _N extends ye{constructor(e,t,r=0){super(yN(e),`Firebase Storage: ${t} (${yN(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,_N.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return yN(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+` `+this.customData.serverResponse:this.message=this._baseMessage}}function yN(e){return"storage/"+e}function wN(){return new _N(uN.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function bN(){return new _N(uN.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function IN(){return new _N(uN.CANCELED,"User canceled the upload/download.")}function TN(){return new _N(uN.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function EN(e){return new _N(uN.INVALID_ARGUMENT,e)}function CN(){return new _N(uN.APP_DELETED,"The Firebase app was deleted.")}function SN(e){return new _N(uN.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 kN(e,t){return new _N(uN.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function AN(e){throw new _N(uN.INTERNAL_ERROR,"Internal error: "+e)}(r=uN=uN||{}).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 NN{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=NN.makeFromUrl(t,e)}catch(e){return new NN(t,"")}if(""===r.path)return r;throw e=t,new _N(uN.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===mN?"(?: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 NN(c,e),h.postModify(r);break}}if(null==r)throw t=e,new _N(uN.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class RN{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function PN(e){return"string"==typeof e||e instanceof String}function DN(e){return xN()&&e instanceof Blob}function xN(){return"undefined"!=typeof Blob}function ON(e,t,r,n){if(n<t)throw EN(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw EN(`Invalid value for '${e}'. Expected ${r} or less.`)}function LN(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function MN(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 FN(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(hD=cN=cN||{})[hD.NO_ERROR=0]="NO_ERROR",hD[hD.NETWORK_ERROR=1]="NETWORK_ERROR",hD[hD.ABORT=2]="ABORT";class UN{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 VN(!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()===cN.NO_ERROR,t=r.getStatus();!e||FN(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===cN.ABORT,i(!1,new VN(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new VN(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=wN()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?CN:IN)()):n(bN())};this.canceled_?t(0,new VN(!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 VN{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function qN(...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(xN())return new Blob(t);throw new _N(uN.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function jN(e){if("undefined"==typeof atob)throw new _N(uN.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 BN={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class zN{constructor(e,t){this.data=e,this.contentType=t||null}}function KN(e,t){switch(e){case BN.RAW:return new zN(WN(t));case BN.BASE64:case BN.BASE64URL:return new zN(HN(e,t));case BN.DATA_URL:return new zN((r=t,(n=new GN(r)).base64?HN(BN.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw kN(BN.DATA_URL,"Malformed data URL.")}return WN(t)})(n.rest)),(r=t,new GN(r).contentType))}var r,n;throw wN()}function WN(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 HN(t,e){switch(t){case BN.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw kN(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case BN.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw kN(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=jN(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw kN(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 GN{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw kN(BN.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 $N{constructor(e,t){let r=0,n="";DN(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 DN(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 $N(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new $N(r,!0))}static getBlob(...e){if(xN())return i=e.map(e=>e instanceof $N?e.data_:e),new $N(qN.apply(null,i));{var i=e.map(e=>PN(e)?KN(BN.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 $N(r,!0)}}uploadData(){return this.data_}}function QN(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function YN(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function JN(e,t){return t}class XN{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||JN}}let ZN=null;function eR(){var e,t;return ZN||((e=[]).push(new XN("bucket")),e.push(new XN("generation")),e.push(new XN("metageneration")),e.push(new XN("name","fullPath",!0)),(t=new XN("name")).xform=function(e,t){return!PN(t=t)||t.length<2?t:YN(t)},e.push(t),(t=new XN("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new XN("timeCreated")),e.push(new XN("updated")),e.push(new XN("md5Hash",null,!0)),e.push(new XN("cacheControl",null,!0)),e.push(new XN("contentDisposition",null,!0)),e.push(new XN("contentEncoding",null,!0)),e.push(new XN("contentLanguage",null,!0)),e.push(new XN("contentType",null,!0)),e.push(new XN("metadata","customMetadata",!0)),ZN=e),ZN}function tR(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new NN(e,t);return n._makeStorageReference(e)}})}function rR(e,t,r){var n=QN(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 tR(a,t),a}function nR(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 iR="prefixes",sR="items";function aR(e,t,r){var n=QN(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[iR])for(var o of r[iR]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new NN(s,o));a.prefixes.push(o)}if(r[sR])for(var l of r[sR]){l=i._makeStorageReference(new NN(s,l.name));a.items.push(l)}return a}class oR{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 lR(e){if(!e)throw wN()}function hR(n,i){return function(e,t){var r=rR(n,t,i);return lR(null!==r),r}}function uR(n,i){return function(e,t){var r=aR(n,i,t);return lR(null!==r),r}}function cR(o,n){return function(e,t){var r=rR(o,t,n);lR(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=QN(t)))return null;if(!PN(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 LN("/b/"+n(t)+"/o/"+n(r),s,a)+MN({alt:"media",token:e})})[0]}}}function dR(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new _N(uN.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new _N(uN.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new _N(uN.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new _N(uN.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function pR(n){let i=dR(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new _N(uN.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function fR(e,t,r){var n=LN(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new oR(n,"GET",hR(e,r),i);return n.errorHandler=pR(t),n}function gR(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 mR(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,gR(t,n,i)),h="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+nR(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",h=$N.getBlob(h,n,o);if(null===h)throw TN();o={name:l.fullPath},l=LN(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new oR(l,"POST",hR(e,r),s);return l.urlParams=o,l.headers=a,l.body=h.uploadData(),l.errorHandler=dR(t),l}class vR{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function _R(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){lR(!1)}return lR(!!r&&-1!==(t||["active"]).indexOf(r)),r}function yR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=gR(t,n,i),o={name:a.fullPath},s=LN(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=nR(a,r),h=e.maxUploadRetryTime;s=new oR(s,"POST",function(e){_R(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){lR(!1)}return lR(PN(t)),t},h);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=dR(t),s}function wR(e,t,r,i){var n=e.maxUploadRetryTime,n=new oR(r,"POST",function(e){var t=_R(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){lR(!1)}r||lR(!1);var n=Number(r);return lR(!isNaN(n)),new vR(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=dR(t),n}function bR(e,a,t,o,r,l,n,i){let h=new vR(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 _N(uN.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 TN();d=a.maxUploadRetryTime,d=new oR(t,"POST",function(e,t){var r=_R(e,["active","final"]),n=h.current+u,i=o.size();let s;return s="final"===r?hR(a,l)(e,t):null,new vR(n,i,"final"===r,s)},d);return d.headers=s,d.body=c.uploadData(),d.progressCallback=i||null,d.errorHandler=dR(e),d}let IR={STATE_CHANGED:"state_changed"},TR={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function ER(e){switch(e){case"running":case"pausing":case"canceling":return TR.RUNNING;case"paused":return TR.PAUSED;case"success":return TR.SUCCESS;case"canceled":return TR.CANCELED;default:return TR.ERROR}}class CR{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 SR(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class kR extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=cN.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=cN.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=cN.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw AN("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 AN("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw AN("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw AN("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw AN("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 AR(){return new kR}class NR{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=eR(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(uN.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(FN(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=bN()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(uN.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=yR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,AR,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=wR(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,AR,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 vR(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=bR(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,AR,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=fR(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,AR,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=mR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,AR,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=IN(),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=ER(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 CR(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(ER(this._state)){case TR.SUCCESS:SR(this._resolve.bind(null,this.snapshot))();break;case TR.CANCELED:case TR.ERROR:SR(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(ER(this._state)){case TR.RUNNING:case TR.PAUSED:e.next&&SR(e.next.bind(e,this.snapshot))();break;case TR.SUCCESS:e.complete&&SR(e.complete.bind(e))();break;case TR.CANCELED:case TR.ERROR:default:e.error&&SR(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 RR{constructor(e,t){this._service=e,t instanceof NN?this._location=t:this._location=NN.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new RR(e,t)}get root(){var e=new NN(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return YN(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 NN(this._location.bucket,r),new RR(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw SN(e)}}function PR(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await DR(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 DR(e,t){null!=t&&"number"==typeof t.maxResults&&ON("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=LN(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new oR(a,"GET",uR(t,r.bucket),l)).urlParams=o,a.errorHandler=dR(r),a);return e.storage.makeRequestWithTokens(l,AR)}function xR(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=eR(),s=LN(n.fullServerUrl(),r.host,r._protocol),a=nR(t,i),o=r.maxOperationRetryTime,(s=new oR(s,"PATCH",hR(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=pR(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,AR)}function OR(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=eR(),i=LN(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new oR(i,"GET",cR(t,n),s)).errorHandler=pR(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,AR).then(e=>{if(null===e)throw new _N(uN.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function LR(e){e._throwIfRoot("deleteObject");t=e.storage,n=LN((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new oR(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=pR(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,AR)}function MR(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 NN(e._location.bucket,n);return new RR(e.storage,n)}function FR(e,t){if(e instanceof qR){var r=e;if(null==r._bucket)throw new _N(uN.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+vN+"' property when initializing the app?");r=new RR(r,r._bucket);return null!=t?FR(r,t):r}return void 0!==t?MR(e,t):e}function UR(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof qR)return r=e,n=t,new RR(r,n);throw EN("To use ref(service, url), the first argument must be a Storage instance.")}return FR(e,t);var r,n}function VR(e,t){var r=null==t?void 0:t[vN];return null==r?null:NN.makeFromBucketSpec(r,e)}class qR{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=mN,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?NN.makeFromBucketSpec(n,this._host):VR(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=NN.makeFromBucketSpec(this._url,e):this._bucket=VR(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){ON("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){ON("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 RR(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new RN(CN());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],u=MN(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 UN(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 jR="@firebase/storage",BR="0.13.14";function zR(e,t,r){return e=w(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new NR(e,new $N(t),r)}function KR(e){return e=w(e),(e=e)._throwIfRoot("getMetadata"),t=fR(e.storage,e._location,eR()),e.storage.makeRequestWithTokens(t,AR);var t}function WR(e,t){return UR(e=w(e),t)}function HR(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}/b`),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 GR(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new qR(r,n,i,t,Vt)}Dt(new u("storage",GR,"PUBLIC").setMultipleInstances(!0)),d(jR,BR,""),d(jR,BR,"esm2017");class $R{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 QR{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 $R(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new $R(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new $R(e,this,this._ref)):{next:t.next?e=>t.next(new $R(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 YR{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new JR(e,this._service))}get items(){return this._delegate.items.map(e=>new JR(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class JR{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=MR(this._delegate,e);return new JR(t,this.storage)}get root(){return new JR(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new JR(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new QR(zR(this._delegate,e,t),this)}putString(e,t=BN.RAW,r){this._throwIfRoot("putString");var n=KN(t,e),i=Object.assign({},r);return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new QR(new NR(this._delegate,new $N(n.data,!0),i),this)}listAll(){return PR(w(this._delegate)).then(e=>new YR(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,DR(t=w(t),e).then(e=>new YR(e,this.storage));var t}getMetadata(){return KR(this._delegate)}updateMetadata(e){return xR(w(this._delegate),e)}getDownloadURL(){return OR(w(this._delegate))}delete(){return this._throwIfRoot("delete"),LR(w(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw SN(e)}}class XR{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(ZR(e))throw EN("ref() expected a child path but got a URL, use refFromURL instead.");return new JR(WR(this._delegate,e),this)}refFromURL(e){if(!ZR(e))throw EN("refFromURL() expected a full URL but got a child path, use ref() instead.");try{NN.makeFromUrl(e,this._delegate.host)}catch(e){throw EN("refFromUrl() expected a valid full URL but got an invalid one.")}return new JR(WR(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){HR(this._delegate,e,t,r)}}function ZR(e){return/^[A-Za-z]+:\/\//.test(e)}function eP(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new XR(r,n)}dN=lr,Am={TaskState:TR,TaskEvent:IR,StringFormat:BN,Storage:XR,Reference:JR},dN.INTERNAL.registerComponent(new u("storage-compat",eP,"PUBLIC").setServiceProps(Am).setMultipleInstances(!0)),dN.registerVersion("@firebase/storage-compat","0.3.24");function tP(e){if("loading"===document.readyState)return"loading";var t=cP();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 rP(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:dP(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 nP(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:rP(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:tP(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=IP(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=vP("CLS",0),n=0,i=[],s=_P("layout-shift",e);s&&(t=yP(a,r,PP,o.reportAllChanges),bP(function(){e(s.takeRecords()),t(!0)}),gP(function(){r=vP("CLS",n=0),t=yP(a,r,PP,o.reportAllChanges),wP(function(){return t()})}),setTimeout(t,0))}),l=l||{},NP(function(){var t,r=AP(),n=vP("FCP"),i=_P("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-mP(),0),n.entries.push(e),t(!0))})});i&&(t=yP(s,n,RP,l.reportAllChanges),gP(function(e){n=vP("FCP"),t=yP(s,n,RP,l.reportAllChanges),wP(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function iP(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},NP(function(){var e;FP();function t(t){KP(function(){t.forEach(zP);var e=jP();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=vP("INP"),n=_P("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=yP(s,r,WP,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),bP(function(){t(n.takeRecords()),i(!0)}),gP(function(){qP=MP(),UP.length=0,VP.clear(),r=vP("INP"),i=yP(s,r,WP,a.reportAllChanges)}))}))}function sP(e){HP=HP.concat(e),XP()}function aP(){10<YP.size&&YP.forEach(function(e,t){VP.has(t)||YP.delete(t)});var r=UP.map(function(e){return QP.get(e.entries[0])}),n=GP.length-50;GP=GP.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<GP.length;e++){var t=GP[e];ZP(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=HP.length-1-50;HP=HP.filter(function(e,t){return e.startTime>$P&&s<t||i.has(e)}),JP=-1}function oP(l,e){uP=uP||_P("long-animation-frame",sP),iP(function(e){t=(e=e).entries[0],o=QP.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=ZP(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||YP.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:rP(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:tP(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function lP(h,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=cP())&&(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:rP(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||{},NP(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-mP(),0),i.entries=[e],t())})}var t,r,n=AP(),i=vP("LCP"),s=_P("largest-contentful-paint",e);s&&(t=yP(a,i,eD,o.reportAllChanges),r=IP(function(){tD[i.id]||(e(s.takeRecords()),s.disconnect(),tD[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return KP(r)},{once:!0,capture:!0})}),bP(r),gP(function(e){i=vP("LCP"),t=yP(a,i,eD,o.reportAllChanges),wP(function(){i.value=performance.now()-e.timeStamp,tD[i.id]=!0,t(!0)})}))})}var hP,uP,cP=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},dP=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},pP=-1,fP=function(){return pP},gP=function(t){addEventListener("pageshow",function(e){e.persisted&&(pP=e.timeStamp,t(e))},!0)},mP=function(){var e=cP();return e&&e.activationStart||0},vP=function(e,t){var r=cP(),n="navigate";return 0<=fP()?n="back-forward-cache":r&&(document.prerendering||0<mP()?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}},_P=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){}},yP=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))}},wP=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},bP=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},IP=function(e){var t=!1;return function(){t||(e(),t=!0)}},TP=-1,EP=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},CP=function(e){"hidden"===document.visibilityState&&-1<TP&&(TP="visibilitychange"===e.type?e.timeStamp:0,kP())},SP=function(){addEventListener("visibilitychange",CP,!0),addEventListener("prerenderingchange",CP,!0)},kP=function(){removeEventListener("visibilitychange",CP,!0),removeEventListener("prerenderingchange",CP,!0)},AP=function(){return TP<0&&(TP=EP(),SP(),gP(function(){setTimeout(function(){TP=EP(),SP()},0)})),{get firstHiddenTime(){return TP}}},NP=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},RP=[1800,3e3],PP=[.1,.25],DP=0,xP=1/0,OP=0,LP=function(e){e.forEach(function(e){e.interactionId&&(xP=Math.min(xP,e.interactionId),OP=Math.max(OP,e.interactionId),DP=OP?(OP-xP)/7+1:0)})},MP=function(){return hP?DP:performance.interactionCount||0},FP=function(){"interactionCount"in performance||(hP=hP||_P("event",LP,{type:"event",buffered:!0,durationThreshold:0}))},UP=[],VP=new Map,qP=0,jP=function(){var e=Math.min(UP.length-1,Math.floor((MP()-qP)/50));return UP[e]},BP=[],zP=function(t){var e,r;BP.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=UP[UP.length-1],((e=VP.get(t.interactionId))||UP.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]},VP.set(r.id,r),UP.push(r)),UP.sort(function(e,t){return t.latency-e.latency}),10<UP.length)&&UP.splice(10).forEach(function(e){return VP.delete(e.id)}))},KP=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=IP(e),"hidden"===document.visibilityState?e():(r=t(e),bP(e)),r},WP=[200,500],HP=[],GP=[],$P=0,QP=new WeakMap,YP=new Map,JP=-1,XP=function(){JP<0&&(JP=KP(aP))},ZP=(BP.push(function(e){e.interactionId&&e.target&&!YP.has(e.interactionId)&&YP.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;$P=Math.max($P,e.processingEnd);for(var n=GP.length-1;0<=n;n--){var i=GP[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]},GP.push(t)),!e.interactionId&&"first-input"!==e.entryType||QP.set(e,t),XP()}),function(e,t){for(var r,n=[],i=0;r=HP[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),eD=[2500,4e3],tD={};let rD="@firebase/performance",nD="0.7.7",iD=nD,sD="FB-PERF-TRACE-MEASURE",aD="@firebase/performance/config",oD="@firebase/performance/configexpire";var lD,t,r,hD,e="Performance";let uD=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."}),cD=new tt(e);cD.logLevel=c.INFO;let dD,pD;class fD{constructor(e){if(!(this.window=e))throw uD.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=lP,this.onINP=oP,this.onCLS=nP}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()||(cD.info("IndexedDB is not supported by current browser"),!1):(cD.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 dD=void 0===dD?new fD(pD):dD}}let gD;function mD(e,t){var r=e.length-t.length;if(r<0||1<r)throw uD.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 vD;class _D{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=mD("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=mD("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 vD=void 0===vD?new _D:vD}}(t=lD=lD||{})[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN";let yD=["firebase_","google_","ga_"],wD=new RegExp("^[a-zA-Z]\\w*$");function bD(e){var t=null==(t=e.options)?void 0:t.appId;if(t)return t;throw uD.create("no app id")}let ID="0.0.1",TD={loggingEnabled:!0},ED="FIREBASE_INSTALLATIONS_AUTH";function CD(e,t){var n,i,r=(()=>{var e=fD.getInstance().localStorage;if(e){var t=e.getItem(oD);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(aD);if(t)try{return JSON.parse(t)}catch(e){}}}})();return r?(kD(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 uD.create("no project id")})(n.app),r=(e=>{var t=null==(t=e.options)?void 0:t.apiKey;if(t)return t;throw uD.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:ED+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:bD(n.app),app_version:iD,sdk_version:ID})});return fetch(t).then(e=>{if(e.ok)return e.json();throw uD.create("RC response not ok")})}).catch(()=>{cD.info(SD)}).then(kD).then(e=>{var t;e=e,t=fD.getInstance().localStorage,e&&t&&(t.setItem(aD,JSON.stringify(e)),t.setItem(oD,String(Date.now()+60*_D.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let SD="Could not fetch config, will use default configs";function kD(e){var t,r;return e&&(t=_D.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=TD.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):TD.logSource&&(t.logSource=TD.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:TD.logEndPointUrl&&(t.logEndPointUrl=TD.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:TD.transportKey&&(t.transportKey=TD.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==TD.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=TD.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==TD.tracesSamplingRate&&(t.tracesSamplingRate=TD.tracesSamplingRate),t.logTraceAfterSampling=AD(t.tracesSamplingRate),t.logNetworkAfterSampling=AD(t.networkRequestsSamplingRate)),e}function AD(e){return Math.random()<=e}let ND=1,RD;function PD(e){var r;return ND=2,RD=RD||(r=e,(()=>{let r=fD.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=>{gD=e}),t;var e,t}).then(e=>CD(r,e)).then(()=>DD(),()=>DD()))}function DD(){ND=3}let xD=1e4,OD=1e3,LD=3,MD=LD,FD=[],UD=!1;function VD(e){setTimeout(()=>{MD<=0||(0<FD.length&&qD(),VD(xD))},e)}function qD(){let e=FD.splice(0,OD);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:_D.getInstance().logSource,log_event:n};t=n,n=_D.getInstance().getFlTransportFullUrl(),r=JSON.stringify(t),(navigator.sendBeacon&&navigator.sendBeacon(n,r)?Promise.resolve():fetch(n,{method:"POST",body:r,keepalive:!0}).then()).then(()=>{MD=LD}).catch(()=>{FD=[...e,...FD],MD--,cD.info(`Tries left: ${MD}.`),VD(xD)})}function jD(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw uD.create("invalid cc log");FD=[...FD,e]}}function BD(){for(;0<FD.length;)qD()}let zD;function KD(e,t){(zD=zD||{send:jD(GD),flush:BD}).send(e,t)}function WD(e){var t=_D.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&fD.getInstance().requiredApisAvailable()&&(3===ND?HD(e):PD(e.performanceController).then(()=>HD(e),()=>HD(e)))}function HD(e){var t;gD&&(t=_D.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&KD(e,1)}function GD(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:$D(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:$D(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function $D(e){return{google_app_id:bD(e),app_instance_id:gD,web_app_info:{sdk_version:iD,page_url:fD.getInstance().getUrl(),service_worker_status:null!=(t=fD.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(fD.getInstance().document.visibilityState){case"visible":return lD.VISIBLE;case"hidden":return lD.HIDDEN;default:return lD.UNKNOWN}})(),effective_connection_type:(()=>{var e=fD.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 QD(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=fD.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=_D.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&KD(t,0)}let YD=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class JD{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=fD.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||`${sD}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw uD.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw uD.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(),WD(this)}record(e,t,r){if(e<=0)throw uD.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw uD.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])));WD(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<YD.indexOf(n))&&n.startsWith("_"))throw uD.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=null!=t?t:0,(r=Math.floor(i))<i&&cD.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||yD.some(e=>r.startsWith(e))||!r.match(wD)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw uD.create("invalid attribute name",{attributeName:e});if(!s)throw uD.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=fD.getInstance().getUrl();if(s){var s=new JD(e,"_wt_"+s,!0),a=Math.floor(1e3*fD.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),WD(s),zD&&zD.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){WD(new JD(e,t,!1,t))}}let XD={},ZD=!1,ex;function tx(n){gD&&(setTimeout(()=>{{var t=n;let e=fD.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>nx(t)):e.document.addEventListener("unload",()=>nx(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&nx(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{ex=e}),e.onLCP(e=>{var t;XD.lcp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.element}}),e.onCLS(e=>{var t;XD.cls={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.largestShiftTarget}}),e.onINP(e=>{var t;XD.inp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=fD.getInstance();for(e of r.getEntriesByType("resource"))QD(t,e);r.setupObserver("resource",e=>QD(t,e))},0),setTimeout(()=>{var e,t=n,r=fD.getInstance();for(e of r.getEntriesByType("measure"))rx(t,e);r.setupObserver("measure",e=>rx(t,e))},0))}function rx(e,t){var r=t.name;r.substring(0,sD.length)!==sD&&JD.createUserTimingTrace(e,r)}function nx(r){if(!ZD){ZD=!0;var n=fD.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{JD.createOobTrace(r,e,t,XD,ex)},0)}}class ix{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),fD.getInstance().requiredApisAvailable()?ve().then(e=>{e&&(UD||(VD(5500),UD=!0),PD(this).then(()=>tx(this),()=>tx(this)),this.initialized=!0)}).catch(e=>{cD.info("Environment doesn't support IndexedDB: "+e)}):cD.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){_D.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return _D.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){_D.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return _D.getInstance().dataCollectionEnabled}}let sx="[DEFAULT]";let ax=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==sx)throw uD.create("FB not default");if("undefined"==typeof window)throw uD.create("no window");e=window,pD=e;r=new ix(r,n);return r._init(t),r};Dt(new u("performance",ax,"PUBLIC")),d(rD,nD),d(rD,nD,"esm2017");class ox{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 JD(t,e);var t}}function lx(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new ox(t,r)}(r=lr).INTERNAL.registerComponent(new u("performance-compat",lx,"PUBLIC")),r.registerVersion("@firebase/performance-compat","0.2.20");let hx="@firebase/remote-config";class ux{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let cx=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 dx=["1","true","t","yes","y","on"];class px{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=dx.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 fx(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 gx(e){let t=w(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function mx(t){var r=w(t);let e=new ux;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 vx(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]=_x(r,t),e),{})}function _x(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 px("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new px("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 px("static"))}class yx{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 wx{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"),cx.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 cx.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 cx.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l}}}class bx{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(cx.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 Ix{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 Tx(e,t){var r=e.target.error||void 0;return cx.create(t,{originalErrorMessage:r&&(null==r?void 0:r.message)})}let Ex="app_namespace_store";class Cx{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 Sx extends Cx{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(Tx(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(Ex,{keyPath:"compositeKey"})}}catch(e){r(cx.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([Ex],"readwrite"),r=Ax(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(Ex),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(Tx(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(cx.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(Ex),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(Tx(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(cx.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([Ex],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([Ex],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([Ex],"readwrite").objectStore(Ex),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(Tx(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(cx.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class kx extends Cx{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=Ax(e,t),Promise.resolve(this.storage.custom_signals)}}function Ax(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 cx.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class Nx{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 Rx(){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 cx.create("registration-project-id");if(!s)throw cx.create("registration-api-key");if(!a)throw cx.create("registration-app-id");var o=(null==t?void 0:t.templateId)||"firebase",l=me()?new Sx(a,r.name,o):new kx,h=new Nx(l),u=new tt(hx),n=(u.logLevel=c.ERROR,new wx(n,Vt,o,i,s,a)),o=new bx(n,l),i=new yx(o,l,h,u),s=new Ix(r,i,h,l,u);return gx(s),s},"PUBLIC").setMultipleInstances(!0)),d(hx,"0.6.5"),d(hx,"0.6.5","esm2017");class Px{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 fx(this._delegate)}ensureInitialized(){return gx(this._delegate)}fetch(){return mx(this._delegate)}fetchAndActivate(){return(async e=>(await mx(e=w(e)),fx(e)))(this._delegate)}getAll(){return vx(this._delegate)}getBoolean(e){return _x(w(this._delegate),e).asBoolean()}getNumber(e){return _x(w(this._delegate),e).asNumber()}getString(e){return _x(w(this._delegate),e).asString()}getValue(e){return _x(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 Dx(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new Px(r,n)}return(hD=lr).INTERNAL.registerComponent(new u("remoteConfig-compat",Dx,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Rx})),hD.registerVersion("@firebase/remote-config-compat","0.2.18"),console.warn(` It looks like you're using the development build of the Firebase JS SDK. When deploying Firebase apps to production, it is advisable to only import the individual SDK components you intend to use. For the CDN builds, these are available in the following manner (replace <PACKAGE> with the name of a component - i.e. auth, database, etc): https://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js `),lr.registerVersion("firebase","11.10.0","compat-cdn"),lr}); //# sourceMappingURL=firebase-compat.js.map