UNPKG

firebase

Version:

Firebase JavaScript library for web and Node.js

40 lines • 1.05 MB
((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 F=()=>{},L={NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},f=function(e,t){if(!e)throw M(t)},M=function(e){return new Error("Firebase Database ("+L.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},U=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},V={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 h=0;h<r.length;h+=3){var s=r[h],a=h+1<r.length,o=a?r[h+1]:0,l=h+2<r.length,u=l?r[h+2]:0;let e=(15&o)<<2|u>>6,t=63&u;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(U(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,u=i[e++];u<128?s[t++]=String.fromCharCode(u):191<u&&u<224?(a=i[e++],s[t++]=String.fromCharCode((31&u)<<6|63&a)):239<u&&u<365?(a=((7&u)<<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&u)<<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 G;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 G extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function H(e){var t=U(e);return V.encodeByteArray(t,!0)}let q=function(e){return H(e).replace(/\./g,"")},j=function(e){try{return V.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function K(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]=K(e[r],t[r]));return e}function z(){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 J=()=>z().__FIREBASE_DEFAULTS__,W=()=>{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&&j(e[1]);return t&&JSON.parse(t)}},Y=()=>{try{return F()||J()||W()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},$=()=>Y()?.config;var B,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,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={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},[q(JSON.stringify({alg:"none",type:"JWT"})),q(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}function te(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function re(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(te())}function ne(){var e=Y()?.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 ie(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function se(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ae(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function oe(){var e=te();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function le(){return!ne()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ue(){return!ne()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function he(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ce(){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=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function de(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class Be extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,Be.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,pe.prototype.create)}}class pe{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?((r,n)=>{try{let e=0,t="";for(;e<r.length;){var i=r.indexOf("{$",e);if(-1===i){t+=r.substring(e);break}var s=r.indexOf("}",i+2);if(-1===s){t+=r.substring(e);break}var a=r.substring(i+2,s),o=n[a];t+=r.substring(e,i)+(null!=o?String(o):`<${a}?>`),e=s+1}return t}catch(e){return r}})(i,r):"Error",i=this.serviceName+`: ${i} (${n}).`;return new Be(n,i,r)}}function fe(e){return JSON.parse(e)}function ge(e){return JSON.stringify(e)}function me(e){let t={},r={},n={},i="";try{var s=e.split(".");t=fe(j(s[0])||""),r=fe(j(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 ve(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function _e(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function ye(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 we(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(Ee(a)&&Ee(o)){if(!we(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Ee(e){return null!==e&&"object"==typeof e}function be(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 Ie(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Te{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],u,h;for(let B=0;B<80;B++){h=B<40?B<20?(u=o^s&(a^o),1518500249):(u=s^a^o,1859775393):B<60?(u=s&a|o&(s|a),2400959708):(u=s^a^o,3395469782);var c=(t<<5|t>>>27)+u+l+h+i[B]&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 Se(e,t){var r=new Ne(e,t);return r.subscribe.bind(r)}class Ne{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=ke),void 0===n.error&&(n.error=ke),void 0===n.complete&&(n.complete=ke);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 ke(){}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 Ae(e,t){return e+` failed: ${t} argument `}function Re(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ae(e,t)+"must be a valid function.")}function Oe(e,t,r){if(r&&("object"!=typeof r||null===r))throw new Error(Ae(e,t)+"must be a valid context object.")}let xe=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},Pe=1e3,Fe=2,Le=144e5,Me=.5;function Ue(e,t=Pe,r=Fe){var n=t*Math.pow(r,e),i=Math.round(Me*n*(Math.random()-.5)*2);return Math.min(Le,n+i)}function _(e){return e&&e._delegate?e._delegate:e}function Ve(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function Ge(e){return(await fetch(e,{credentials:"include"})).ok}class He{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 qe="[DEFAULT]";class je{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(e?.identifier),r=e?.optional??!1;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:qe})}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=qe){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=qe){return this.instances.has(e)}getOptions(e=qe){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=this.onInitCallbacks.get(r)??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{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===qe?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{}var n;return r||null}normalizeInstanceIdentifier(e=qe){return!this.component||this.component.multipleInstances?e:qe}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Ke{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 je(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let ze=[],Je=((P=B=B||{})[P.DEBUG=0]="DEBUG",P[P.VERBOSE=1]="VERBOSE",P[P.INFO=2]="INFO",P[P.WARN=3]="WARN",P[P.ERROR=4]="ERROR",P[P.SILENT=5]="SILENT",{debug:B.DEBUG,verbose:B.VERBOSE,info:B.INFO,warn:B.WARN,error:B.ERROR,silent:B.SILENT}),We=B.INFO,Qe={[B.DEBUG]:"log",[B.VERBOSE]:"log",[B.INFO]:"info",[B.WARN]:"warn",[B.ERROR]:"error"},Ye=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Qe[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}]  ${e.name}:`,...r)}};class $e{constructor(e){this.name=e,this._logLevel=We,this._logHandler=Ye,this._userLogHandler=null,ze.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in B))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,B.DEBUG,...e),this._logHandler(this,B.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,B.VERBOSE,...e),this._logHandler(this,B.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,B.INFO,...e),this._logHandler(this,B.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,B.WARN,...e),this._logHandler(this,B.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,B.ERROR,...e),this._logHandler(this,B.ERROR,...e)}}let Xe=(t,e)=>e.some(e=>t instanceof e),Ze,et;let tt=new WeakMap,rt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap;let at={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return rt.get(e);if("objectStoreNames"===t)return e.objectStoreNames||nt.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return ut(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 ot(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(et=et||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ht(this),e),ut(tt.get(this))}:function(...e){return ut(n.apply(ht(this),e))}:function(e,...t){var r=n.call(ht(this),e,...t);return nt.set(r,e.sort?e.sort():[e]),ut(r)}}function lt(e){var s,t;return"function"==typeof e?ot(e):(e instanceof IDBTransaction&&(s=e,rt.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)}),rt.set(s,t))),Xe(e,Ze=Ze||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,at):e)}function ut(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(ut(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&tt.set(e,s)}).catch(()=>{}),st.set(t,s),t):it.has(e)?it.get(e):((t=lt(e))!==e&&(it.set(e,t),st.set(t,e)),t)}let ht=e=>st.get(e);function ct(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=ut(a);return n&&a.addEventListener("upgradeneeded",e=>{n(ut(a.result),e.oldVersion,e.newVersion,ut(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 dt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),ut(r).then(()=>{})}let Bt=["get","getKey","getAll","getAllKeys","count"],pt=["put","add","delete","clear"],ft=new Map;function gt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(ft.get(t))return ft.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=pt.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||Bt.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]},ft.set(t,r),r):void 0}}at={...X=at,get:(e,t,r)=>gt(e,t)||X.get(e,t,r),has:(e,t)=>!!gt(e,t)||X.has(e,t)};class mt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let Ct="@firebase/app",vt="0.16.6",_t=new $e("@firebase/app");let yt="[DEFAULT]",wt={"@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/crashlytics":"fire-cls","@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"},Et=new Map,bt=new Map,Dt=new Map;function It(t,r){try{t.container.addComponent(r)}catch(e){_t.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Tt(e,t){e.container.addOrOverwriteComponent(t)}function St(e){var t,r,n=e.name;if(Dt.has(n))return _t.debug(`There were multiple attempts to register component ${n}.`),!1;Dt.set(n,e);for(t of Et.values())It(t,e);for(r of bt.values())It(r,e);return!0}function Nt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function kt(e){return void 0!==e.options}function At(e){return!kt(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function Rt(e){return null!=e&&void 0!==e.settings}let Ot=new pe("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 {$mismatchedParam}. Existing: '{$oldValue}'. New: '{$newValue}'.","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."}),xt=class{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new He("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 Ot.create("app-deleted",{appName:this._name})}};function Pt(e,t){var r=j(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 Ft extends xt{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={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Pt(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Pt(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,Gt(Ct,vt,"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(){this.isDeleted||Vt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Ot.create("server-app-deleted")}}let Lt="13.3.0";function Mt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:yt,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Ot.create("bad-app-name",{appName:String(i)});if(!(r=r||$()))throw Ot.create("no-options");var s=Et.get(i);if(s){if(we(r,s.options)){if(we(n,s.config))return s;throw Ot.create("duplicate-app",{appName:i,mismatchedParam:"config",oldValue:JSON.stringify(s.config),newValue:JSON.stringify(n)})}throw Ot.create("duplicate-app",{appName:i,mismatchedParam:"options",oldValue:JSON.stringify(s.options),newValue:JSON.stringify(r)})}var a,o=new Ke(i);for(a of Dt.values())o.addComponent(a);s=new xt(r,n,o);return Et.set(i,s),s}function Ut(e=yt){var t=Et.get(e);if(!t&&e===yt&&$())return Mt();if(t)return t;throw Ot.create("no-app",{appName:e})}async function Vt(e){let t=!1;var r=e.name;Et.has(r)?(t=!0,Et.delete(r)):bt.has(r)&&e.decRefCount()<=0&&(bt.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function Gt(e,t,r){let n=wt[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),_t.warn(i.join(" "))):St(new He(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Ht(e,t){if(null!==e&&"function"!=typeof e)throw Ot.create("invalid-log-argument");var r,s=e,n=t;for(r of ze){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>=(i??e.logLevel)&&s({level:B[t].toLowerCase(),message:n,args:r,type:e.name})}}}function qt(e){var t;t=e,ze.forEach(e=>{e.setLogLevel(t)})}let jt="firebase-heartbeat-database",Kt=1,zt="firebase-heartbeat-store",Jt=null;function Wt(){return Jt=Jt||ct(jt,Kt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(zt)}catch(e){console.warn(e)}}}).catch(e=>{throw Ot.create("idb-open",{originalErrorMessage:e.message})})}async function Qt(e,t){try{var r=(await Wt()).transaction(zt,"readwrite");await r.objectStore(zt).put(t,Yt(e)),await r.done}catch(e){e instanceof Be?_t.warn(e.message):(r=Ot.create("idb-set",{originalErrorMessage:e?.message}),_t.warn(r.message))}}function Yt(e){return e.name+"!"+e.options.appId}class $t{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new Zt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Xt();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){_t.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=Xt(),{heartbeatsToSend:t,unsentEntries:r}=((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),er(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),er(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=q(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return _t.warn(e),""}}}function Xt(){return(new Date).toISOString().substring(0,10)}class Zt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!he()&&ce().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Wt()).transaction(zt),r=await t.objectStore(zt).get(Yt(e));return await t.done,r}catch(e){e instanceof Be?_t.warn(e.message):(t=Ot.create("idb-get",{originalErrorMessage:e?.message}),_t.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Qt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Qt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function er(e){return q(JSON.stringify({version:2,heartbeats:e})).length}P="",St(new He("platform-logger",e=>new mt(e),"PRIVATE")),St(new He("heartbeat",e=>new $t(e),"PRIVATE")),Gt(Ct,vt,P),Gt(Ct,vt,"esm2020"),Gt("fire-js","");var tr=Object.freeze({__proto__:null,FirebaseError:Be,SDK_VERSION:Lt,_DEFAULT_ENTRY_NAME:yt,_addComponent:It,_addOrOverwriteComponent:Tt,_apps:Et,_clearComponents:function(){Dt.clear()},_components:Dt,_getProvider:Nt,_isFirebaseApp:kt,_isFirebaseServerApp:Rt,_isFirebaseServerAppSettings:At,_registerComponent:St,_removeServiceInstance:function(e,t,r=yt){Nt(e,t).clearInstance(r)},_serverApps:bt,deleteApp:Vt,getApp:Ut,getApps:function(){return Array.from(Et.values())},initializeApp:Mt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||ie())&&!ie())throw Ot.create("invalid-server-app-environment");let r,n=t||{};if(e&&(kt(e)?r=e.options:At(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||$()))throw Ot.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Ot.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=bt.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Ke(i);for(a of Dt.values())o.addComponent(a);s=new Ft(r,n,i,o),bt.set(i,s)}return s},onLog:Ht,registerVersion:Gt,setLogLevel:qt});class rr{constructor(e,t){this._delegate=e,this.firebase=t,It(e,new He("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),Vt(this._delegate)))}_getService(e,t=yt){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=yt){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){It(this._delegate,e)}_addOrOverwriteComponent(e){Tt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let nr=new pe("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 ir(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Mt(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:Gt,setLogLevel:qt,onLog:Ht,apps:null,SDK_VERSION:Lt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;St(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw nr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&K(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:tr}};function o(e){if(e=e||yt,Ce(s,e))return s[e];throw nr.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 sr=function e(){let t=ir(rr);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){K(t,e)},createSubscribe:Se,ErrorFactory:pe,deepExtend:K},t}(),ar=new $e("@firebase/app-compat");try{var or=z();void 0!==or.firebase&&(ar.warn(`
      Warning: Firebase is already defined in the global scope. Please make sure
      Firebase library is only loaded once.
    `),e=or.firebase.SDK_VERSION)&&0<=e.indexOf("LITE")&&ar.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{}let lr=sr;Gt("@firebase/app-compat","0.5.22",void 0);lr.registerVersion("firebase","13.3.0","app-compat");var or="@firebase/installations",e="0.6.24";let ur=1e4,hr="w:"+e,cr="FIS_v2",dr="https://firebaseinstallations.googleapis.com/v1",Br=36e5;let pr=new pe("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 fr(e){return e instanceof Be&&e.code.includes("request-failed")}function gr({projectId:e}){return dr+`/projects/${e}/installations`}function mr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function Cr(e,t){var r=(await t.json()).error;return pr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function vr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function _r(e,{refreshToken:t}){var r=vr(e);return r.append("Authorization",(e=t,cr+" "+e)),r}async function yr(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function wr(t){return new Promise(e=>{setTimeout(e,t)})}let Er=/^[cdef][\w-]{21}$/,br="";function Dr(){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:br}catch{return br}}function Ir(e){return e.appName+"!"+e.appId}let Tr=new Map;function Sr(e,t){var r=Ir(e),e=(Nr(r,t),r),r=Ar();r&&r.postMessage({key:e,fid:t}),Rr()}function Nr(e,t){var r=Tr.get(e);if(r)for(var n of r)n(t)}let kr=null;function Ar(){return!kr&&"BroadcastChannel"in self&&((kr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Nr(e.data.key,e.data.fid)}),kr}function Rr(){0===Tr.size&&kr&&(kr.close(),kr=null)}let Or="firebase-installations-database",xr=1,Pr="firebase-installations-store",Fr=null;function Lr(){return Fr=Fr||ct(Or,xr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Pr)}})}async function Mr(e,t){var r=Ir(e),n=(await Lr()).transaction(Pr,"readwrite"),i=n.objectStore(Pr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Sr(e,t.fid),t}async function Ur(e){var t=Ir(e),r=(await Lr()).transaction(Pr,"readwrite");await r.objectStore(Pr).delete(t),await r.done}async function Vr(e,t){var r=Ir(e),n=(await Lr()).transaction(Pr,"readwrite"),i=n.objectStore(Pr),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||Sr(e,a.fid),a}async function Gr(r){let n;var e=await Vr(r.appConfig,e=>{var t=qr(e||{fid:Dr(),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=gr(e);var i=vr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:cr,appId:e.appId,sdkVersion:hr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await yr(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:mr(s.authToken)};throw await Cr("Create Installation",i)})(t,r);return Mr(t.appConfig,e)}catch(e){throw fr(e)&&409===e.customData.serverCode?await Ur(t.appConfig):await Mr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(pr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Hr(e.appConfig);for(;1===t.registrationStatus;)await wr(100),t=await Hr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Gr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===br?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Hr(e){return Vr(e,e=>{if(e)return qr(e);throw pr.create("installation-not-found")})}function qr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ur<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function jr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=gr(i)+`/${s}/authTokens:generate`;var i,s,a=_r(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:hr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await yr(()=>fetch(n,l));if(a.ok)return mr(await a.json());throw await Cr("Generate Auth Token",a)}async function Kr(n,i=!1){let s;var e=await Vr(n.appConfig,e=>{if(!Jr(e))throw pr.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+Br})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await zr(e.appConfig);for(;1===r.authToken.requestStatus;)await wr(100),r=await zr(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={...t,authToken:r},s=(async(t,r)=>{try{var e=await jr(t,r),n={...r,authToken:e};return await Mr(t.appConfig,n),e}catch(e){var i;throw!fr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Mr(t.appConfig,i)):await Ur(t.appConfig),e}})(n,r),r;throw pr.create("app-offline")}return e});return s?await s:e.authToken}function zr(e){return Vr(e,e=>{var t,r;if(Jr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ur<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw pr.create("not-registered")})}function Jr(e){return void 0!==e&&2===e.registrationStatus}async function Wr(e,t=!1){var r=e,n=(await(!(n=(await Gr(r)).registrationPromise)||!await n),await Kr(r,t));return n.token}function Qr(t,i){let s=t.appConfig;{t=s;var r=i,n=(Ar(),Ir(t));let e=Tr.get(n);e||(e=new Set,Tr.set(n,e)),e.add(r)}return()=>{var e,t,r,n;e=s,t=i,r=Ir(e),(n=Tr.get(r))&&(n.delete(t),0===n.size&&Tr.delete(r),Rr())}}function Yr(e){return pr.create("missing-app-config-values",{valueName:e})}let $r="installations",Xr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Yr("App Configuration");if(!e.name)throw Yr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Yr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Nt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Zr=e=>{let t=Nt(e.getProvider("app").getImmediate(),$r).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Gr(t);return(n||Kr(t)).catch(console.error),r.fid})(t),getToken:e=>Wr(t,e)}};St(new He($r,Xr,"PUBLIC")),St(new He("installations-internal",Zr,"PRIVATE")),Gt(or,e),Gt(or,e,"esm2020");let en="analytics",tn="firebase_id",rn="origin",nn=6e4,sn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",an="https://www.googletagmanager.com/gtag/js",on=new $e("@firebase/analytics"),ln=new pe("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 un(e){var t;return e.startsWith(an)?e:(t=ln.create("invalid-gtag-resource",{gtagURL:e}),on.warn(t.message),"")}function hn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function cn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:un}),n=document.createElement("script"),i=an+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function dn(T,S,N,k){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=T,s=S,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 u=await hn(a);for(let t of e){var h=u.find(e=>e.measurementId===t),c=h&&s[h.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){on.error(e)}}else if("config"===e){var d,[B,p]=t,f=T,g=S,m=N,C=B,v=p,_=k[C];try{_?await g[_]:(d=(await hn(m)).find(e=>e.measurementId===C))&&await g[d.appId]}catch(e){on.error(e)}f("config",C,v)}else{var y,w,E,b,D,I;"consent"===e?([y,w]=t,T("consent",y,w)):"get"===e?([E,b,D]=t,T("get",E,b,D)):"set"===e?([I]=t,T("set",I)):T(e,...t)}}catch(e){on.error(e)}}}let Bn=30;let pn=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 fn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=sn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw ln.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function gn(e,t=pn){var{appId:r,apiKey:n,measurementId:i}=e.options;if(!r)throw ln.create("no-app-id");if(!n){if(i)return{measurementId:i,appId:r};throw ln.create("no-api-key")}var s=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let a=new vn;return setTimeout(async()=>{a.abort()},nn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=pn){let{appId:u,measurementId:h}=s;try{await mn(o,e)}catch(e){if(h)return on.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+h+` provided in the "measurementId" field in the local Firebase config. [${e?.message}]`),{appId:u,measurementId:h};throw e}try{let e=await fn(s);return l.deleteThrottleMetadata(u),e}catch(e){let t=e;if(!Cn(t)){if(l.deleteThrottleMetadata(u),h)return on.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+h+` provided in the "measurementId" field in the local Firebase config. [${t?.message}]`),{appId:u,measurementId:h};throw e}let r=503===Number(t?.customData?.httpStatus)?Ue(a,l.intervalMillis,Bn):Ue(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(u,n),on.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:r,apiKey:n,measurementId:i},s,a,t)}function mn(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(ln.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function Cn(e){var t;return!!(e instanceof Be&&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=gn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&on.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=>on.error(e)),e.push(o),(async()=>{if(!he())return on.warn(ln.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ce()}catch(e){return on.warn(ln.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),u=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(an)&&t.src.includes(e))return t})(s)||cn(s,o.measurementId),i("js",new Date),a?.config??{});return u[rn]="firebase",u.update=!0,null!=l&&(u[tn]=l),i("config",o.measurementId,u),o.measurementId}let yn=class{constructor(e){this.app=e}_delete(){return delete wn[this.app.options.appId],Promise.resolve()}},wn={},En=[],bn={},Dn="dataLayer",In="gtag",Tn,Sn,Nn=!1;function kn(e){if(Nn)throw ln.create("already-initialized");e.dataLayerName&&(Dn=e.dataLayerName),e.gtagName&&(In=e.gtagName)}function An(e,t,r){n=[],se()&&n.push("This is a browser extension environment."),de()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=ln.create("invalid-analytics-context",{errorInfo:n}),on.warn(n.message));var n=e.options.appId;if(!n)throw ln.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw ln.create("no-api-key");on.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 ln.create("already-exists",{id:n});if(!Nn){{var i=Dn;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]=dn(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(wn,En,bn,Dn,In);Sn=s,Tn=a,Nn=!0}return wn[n]=_n(e,En,bn,t,Tn,Dn,r),new yn(e)}async function Rn(){if(se())return!1;if(!de())return!1;if(!he())return!1;try{return await ce()}catch(e){return!1}}function On(e,t,r){e=_(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=>on.error(e))}function xn(e,t,r){e=_(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=>on.error(e))}function Pn(e,t,r){e=_(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=>on.error(e))}function Fn(e,t){e=_(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(wn[e.app.options.appId],t).catch(e=>on.error(e))}function Ln(e,t,r,n){e=_(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,{...n,send_to:s}))})(Sn,wn[e.app.options.appId],t,r,n).catch(e=>on.error(e))}let Mn="@firebase/analytics",Un="0.10.25";St(new He(en,(e,{options:t})=>An(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),St(new He("analytics-internal",function(e){try{let n=e.getProvider(en).getImmediate();return{logEvent:(e,t,r)=>Ln(n,e,t,r),setUserProperties:(e,t)=>Pn(n,e,t)}}catch(e){throw ln.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),Gt(Mn,Un),Gt(Mn,Un,"esm2020");class Vn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Ln(this._delegate,e,t,r)}setCurrentScreen(e,t){On(this._delegate,e,t)}setUserId(e,t){xn(this._delegate,e,t)}setUserProperties(e,t){Pn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Fn(this._delegate,e)}}(P=t=t||{}).ADD_SHIPPING_INFO="add_shipping_info",P.ADD_PAYMENT_INFO="add_payment_info",P.ADD_TO_CART="add_to_cart",P.ADD_TO_WISHLIST="add_to_wishlist",P.BEGIN_CHECKOUT="begin_checkout",P.CHECKOUT_PROGRESS="checkout_progress",P.EXCEPTION="exception",P.GENERATE_LEAD="generate_lead",P.LOGIN="login",P.PAGE_VIEW="page_view",P.PURCHASE="purchase",P.REFUND="refund",P.REMOVE_FROM_CART="remove_from_cart",P.SCREEN_VIEW="screen_view",P.SEARCH="search",P.SELECT_CONTENT="select_content",P.SELECT_ITEM="select_item",P.SELECT_PROMOTION="select_promotion",P.SET_CHECKOUT_OPTION="set_checkout_option",P.SHARE="share",P.SIGN_UP="sign_up",P.TIMING_COMPLETE="timing_complete",P.VIEW_CART="view_cart",P.VIEW_ITEM="view_item",P.VIEW_ITEM_LIST="view_item_list",P.VIEW_PROMOTION="view_promotion",P.VIEW_SEARCH_RESULTS="view_search_results";let Gn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new Vn(t,r)};ar={Analytics:Vn,settings:kn,isSupported:Rn,EventName:t},lr.INTERNAL.registerComponent(new He("analytics-compat",Gn,"PUBLIC").setServiceProps(ar).setMultipleInstances(!0)),lr.registerVersion("@firebase/analytics-compat","0.2.31");let Hn=new Map,qn={activated:!1,tokenObservers:[]},jn={initialized:!1,enabled:!1};function Kn(e){return Hn.get(e)||{...qn}}let zn="https://content-firebaseappcheck.googleapis.com/v1",Jn="exchangeDebugToken",Wn={RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class Qn{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 Yn=new pe("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 $n(e=!1){return e?self.grecaptcha?.enterprise:self.grecaptcha}function Xn(e){if(!Kn(e).activated)throw Yn.create("use-before-activation",{appName:e.name})}function Zn(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+=ei(r)+"d:"),n&&(s+=ei(n)+"h:"),s+=ei(i)+"m:"+ei(t)+"s"}function ei(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function ti({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 Yn.create("fetch-network-error",{originalErrorMessage:e?.message})}if(200!==s.status)throw Yn.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw Yn.create("fetch-parse-error",{originalErrorMessage: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 Yn.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ri(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${zn}/projects/${r}/apps/${n}:${Jn}?key=`+i,body:{debug_token:t}}}let ni="firebase-app-check-database",ii=1,si="firebase-app-check-store",ai="debug-token",oi=null;function li(){return oi=oi||new Promise((t,r)=>{try{var e=indexedDB.open(ni,ii);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(Yn.create("storage-open",{originalErrorMessage:e.target.error?.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(si,{keyPath:"compositeKey"})}}catch(e){r(Yn.create("storage-open",{originalErrorMessage:e?.message}))}})}async function ui(e,t){let n=(await li()).transaction(si,"readwrite"),i=n.objectStore(si).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{r(Yn.create("storage-set",{originalErrorMessage:e.target.error?.message}))}})}async function hi(e){let n=(await li()).transaction(si,"readonly"),i=n.objectStore(si).get(e);return new Promise((r,t)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},n.onerror=e=>{t(Yn.create("storage-get",{originalErrorMessage:e.target.error?.message}))}})}function ci(e){return e.options.appId+"-"+e.name}let di=new $e("@firebase/app-check");async function Bi(t){if(he()){let e=void 0;try{e=await hi(ci(t))}catch(e){di.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function pi(e,t){return he()?ui(ci(e),t).catch(e=>{di.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function fi(t){let e=void 0;try{e=await hi(ai)}catch(e){}if(e)return e;{var r=crypto.randomUUID();let e=`To use this token for app debugging, register it with your project.

`+`Firebase App Check debug token: ${r}

`;var n=t?.options.appId,i=t?.options.projectId;return e=e+(i&&n?`You can do so in the Firebase Console:
`+`https://console.firebase.google.com/project/${i}/appcheck/apps?selectedAppId=${n}

`+`Or using the Firebase CLI:
`+`firebase appcheck:debugtokens:create ${r} --project ${i} --app ${n}

`:`You will need to add it to your app's App Check settings in the Firebase Console for it to work.

`)+"Note: To keep your project secure, please revoke and delete this token using the\nFirebase Console or the CLI (`firebase appcheck:debugtokens:delete`) when you finish debugging.\n\nWarning: This debug token is a secret and should not be shared or uploaded to source code.\n\nDebug Token Guide: https://firebase.google.com/docs/app-check/web/debug-provider\nFirebase CLI install instructions: https://firebase.google.com/docs/cli\n",console.log(e),t=r,ui(ai,t).catch(e=>di.warn("Failed to persist debug token to IndexedDB. Error: "+e)),r}}function gi(){return jn.enabled}async function mi(){var e=jn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
            Can't get debug token in production mode.
        `)}let Ci={error:"UNKNOWN_ERROR"};async function vi(e,t=!1,r=!1){var n,i=e.app;Xn(i);let s=Kn(i),a=s.token,o=void 0;if(a&&!bi(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(bi(n)?a=n:await pi(i,void 0)),!t&&a&&bi(a))return{token:a.token};let l=!1;if(gi())try{var u=await mi(),h=(s.exchangeTokenPromise||(s.exchangeTokenPromise=ti(ri(i,u),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),await s.exchangeTokenPromise);return await pi(i,h),{token:(s.token=h).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),Di(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await Kn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),o=e}let c;return a?o?c=bi(a)?{token:a.token,internalError:o}:Di(o):(c={token:a.token},await pi(i,s.token=a)):c=Di(o),l&&Ei(i,c),c}function _i(t,e,r,n){var i=t.app,i=Kn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&bi(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=Kn(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=Kn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new Qn(async()=>{var e=Kn(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=Kn(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},Wn.RETRIAL_MIN_WAIT,Wn.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function Ei(e,t){var r;for(r of Kn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function bi(e){return 0<e.expireTimeMillis-Date.now()}function Di(e){return{token:(t=Ci,V.encodeString(JSON.stringify(t),!1)),error:e};var t}let Ii=class{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=Kn(this.app).tokenObservers;for(e of t)yi(this.app,e.next);return Promise.resolve()}};function Ti(t){return{getToken:e=>vi(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Xn(t),Kn(t)).provider;return gi()?{token:t=((t=ri(t,await mi())).body.limited_use=!0,await ti(t,e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken(!0)).token}})(t),addTokenListener:e=>_i(t,"INTERNAL",e),removeTokenListener:e=>yi(t.app,e)}}let Si="https://www.google.com/recaptcha/api.js",Ni="https://www.google.com/recaptcha/enterprise.js";function ki(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Oi(t);var e,s=$n(!1);return s?Ri(t,r,s,i,n):(e=()=>{var e=$n(!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 Ai(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Oi(t);var e,s=$n(!0);return s?Ri(t,r,s,i,n):(e=()=>{var e=$n(!0);if(!e)throw new Error("no recaptcha");Ri(t,r,e,i,n)},(s=document.createElement("script")).src=Ni+"?render=explicit",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:()=>{Kn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{Kn(e).reCAPTCHAState.succeeded=!1}}),(r=Kn(e)).reCAPTCHAState={...r.reCAPTCHAState,widgetId:t},o.resolve(s)})}function Oi(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function xi(n){Xn(n);let i=await Kn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=Kn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Pi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(e=!1){Ui(this._throttleData);var t=await xi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let r;try{var n=((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:zn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,t);e&&(n.body.limited_use=!0),r=await ti(n,this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Mi(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,r}initialize(e){this._app=e,this._heartbeatServiceProvider=Nt(e,"heartbeat"),ki(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Pi&&this._siteKey===e._siteKey}}class Fi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(e=!1){Ui(this._throttleData);var t=await xi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let r;try{var n=((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:zn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,t);e&&(n.body.limited_use=!0),r=await ti(n,this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Mi(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,r}initialize(e){this._app=e,this._heartbeatServiceProvider=Nt(e,"heartbeat"),Ai(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Fi&&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=me(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return{...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=Ue(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Ui(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw Yn.create("throttled",{time:Zn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Vi(e=Ut(),r){var t=Nt(e=_(e),"app-check");if(jn.initialized||(o=e,i=z(),(n=jn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(fi(o))),gi()&&mi().then(e=>{console.log("Firebase App Check debug token: "+e)}),t.isInitialized()){var n=t.getImmediate(),i=t.getOptions();if(i&&!!i.isTokenAutoRefreshEnabled==!!r.isTokenAutoRefreshEnabled&&i.provider?.isEqual(r.provider))return n;throw Yn.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,o,r=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(Hn.set(e,t),Hn.get(e)))(a,{...qn});t.activated=!0,t.provider=o,t.cachedTokenPromise=Bi(a).then(e=>(e&&bi(e)&&(t.token=e,Ei(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=r&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&r&&di.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return Kn(e).isTokenAutoRefreshEnabled&&_i(s,"INTERNAL",()=>{}),s}let Gi="app-check-internal";St(new He("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Ii(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(Gi).initialize()})),St(new He(Gi,e=>Ti(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),Gt("@firebase/app-check","0.13.1");let Hi=new pe("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 qi{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Pi(e):e instanceof Fi||e instanceof Pi||e instanceof Li?e:new Li({getToken:e.getToken}),this._delegate=Vi(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw Hi.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=Kn(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 Hi.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 Hi.create("use-before-activation",{appName:this.app.name})}}let ji=e=>{var t=e.getProvider("app-compat").getImmediate();return new qi(t)};lr.INTERNAL.registerComponent(new He("appCheck-compat",ji,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Fi,ReCaptchaV3Provider:Pi,CustomProvider:Li})),lr.registerVersion("@firebase/app-check-compat","0.4.7");let Ki={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",TWITTER:"twitter.com"},zi={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 Ji(){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 Wi(){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 Qi=Ji,Yi=new pe("auth","Firebase",Ji()),$i=new $e("@firebase/auth");function Xi(e,...t){$i.logLevel<=B.WARN&&$i.warn(`Auth (${Lt}): `+e,...t)}function Zi(e,...t){$i.logLevel<=B.ERROR&&$i.error(`Auth (${Lt}): `+e,...t)}function es(e,...t){throw ss(e,...t)}function ts(e,...t){return ss(e,...t)}function rs(e,t,r){var n={...Qi(),[t]:r};return new pe("auth","Firebase",n).create(t,{appName:e.name})}function ns(e){return rs(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function is(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&es(e,"argument-error"),rs(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function ss(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)):Yi.create(e,...t)}function g(e,t,...r){if(!e)throw ss(t,...r)}function as(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Zi(t),new Error(t)}function os(e,t){e||as(t)}function ls(){return"undefined"!=typeof self&&self.location?.href||""}function us(){return"http:"===hs()||"https:"===hs()}function hs(){return"undefined"!=typeof self&&self.location?.protocol||null}class cs{constructor(e,t){os((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=re()||ae()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(us()||se()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function ds(e,t){os(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class Bs{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 as("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 as("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 as("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ps={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"},fs=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],gs=new cs(3e4,6e4);function ms(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function Cs(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=be({...t,key:i.config.apiKey}).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),{method:s,headers:n,...e});return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="strict-origin-when-cross-origin"),i.emulatorConfig&&Ve(i.emulatorConfig.host)&&(n.credentials="include"),Bs.fetch()(await ys(i,i.config.apiHost,a,r),n)})}async function vs(t,e,r){t._canInitEmulator=!1;var n={...ps,...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 Es(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 Es(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw Es(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw Es(t,"user-disabled",a);var u=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw rs(t,u,l);es(t,u)}catch(e){if(e instanceof Be)throw e;es(t,"network-request-failed",{message:String(e)})}}async function _s(e,t,r,n,i={}){var s=await Cs(e,t,r,n,i);return"mfaPendingCredential"in s&&es(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?ds(e.config,i):e.config.apiScheme+"://"+i;if(fs.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(ts(this.auth,"network-request-failed")),gs.get())})}}function Es(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),ts(e,t,n));return n.customData._tokenResponse=r,n}function bs(e){return void 0!==e&&void 0!==e.getResponse}function Ds(e){return void 0!==e&&void 0!==e.enterprise}class Is{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 Ts(e,t){return Cs(e,"GET","/v2/recaptchaConfig",ms(e,t))}async function Ss(e,t){return Cs(e,"POST","/v1/accounts:lookup",t)}function Ns(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function ks(e){return 1e3*Number(e)}function As(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Zi("JWT malformed, contained fewer than 3 sections"),null;try{var i=j(r);return i?JSON.parse(i):(Zi("Failed to decode base64 JWT payload"),null)}catch(e){return Zi("Caught error parsing JWT payload as JSON",e?.toString()),null}}function Rs(e){var t=As(e);return g(t,"internal-error"),g(void 0!==t.exp,"internal-error"),g(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Os(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw xs(e)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}function xs(e){return e instanceof Be&&("auth/user-disabled"===e.code||"auth/user-token-expired"===e.code)}class Ps{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=(this.user.stsTokenManager.expirationTime??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"===e?.code&&this.schedule(!0))}this.schedule()}}class Fs{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ns(this.lastLoginAt),this.creationTime=Ns(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Ls(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Os(e,Ss(n,{idToken:i})),n=(g(i?.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),n.providerUserInfo?.length?Ms(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||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 Fs(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ms(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}class Us{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e5}updateFromServerResponse(e){g(e.idToken,"internal-error"),g(void 0!==e.idToken,"internal-error"),g(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){g(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?(g(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=be({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&&Ve(n.emulatorConfig.host)&&(r.credentials="include"),Bs.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 Us;return r&&(g("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(g("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(g("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 Us,this.toJSON())}_performRefresh(){return as("not implemented")}}function Vs(e,t){g("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Gs{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new Ps(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new Fs(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){var t=await Os(this,this.stsTokenManager.getToken(this.auth,e));return g(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=_(e),n=await r.getIdToken(t),i=As(n),s=(g(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),(r="object"==typeof i.firebase?i.firebase:void 0)?.sign_in_provider);return{claims:i,token:n,authTime:Ns(ks(i.auth_time)),issuedAtTime:Ns(ks(i.iat)),expirationTime:Ns(ks(i.exp)),signInProvider:s||null,signInSecondFactor:r?.sign_in_second_factor||null}})(this,e)}reload(){return(async e=>{var t=_(e);await Ls(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(g(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Gs({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){g(!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 Ls(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return Rt(this.auth.app)?Promise.reject(ns(this.auth)):(e=await this.getIdToken(),await Os(this,(async(e,t)=>Cs(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut())}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,u=t.lastLoginAt??void 0,{uid:h,emailVerified:c,isAnonymous:d,providerData:B,stsTokenManager:p}=t,p=(g(h&&p,e,"internal-error"),Us.fromJSON(this.name,p)),h=(g("string"==typeof h,e,"internal-error"),Vs(r,e.name),Vs(n,e.name),g("boolean"==typeof c,e,"internal-error"),g("boolean"==typeof d,e,"internal-error"),Vs(i,e.name),Vs(s,e.name),Vs(a,e.name),Vs(o,e.name),Vs(l,e.name),Vs(u,e.name),new Gs({uid:h,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:p,createdAt:l,lastLoginAt:u}));return B&&Array.isArray(B)&&(h.providerData=B.map(e=>({...e}))),o&&(h._redirectEventId=o),h}static async _fromIdTokenResponse(e,t,r=!1){var n=new Us,n=(n.updateFromServerResponse(t),new Gs({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Ls(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(g(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ms(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||i?.length),a=new Us,a=(a.updateFromIdToken(r),new Gs({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 Fs(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||i?.length)};return Object.assign(a,s),a}}let Hs=new Map;function qs(e){os(e instanceof Function,"Expected a class definition");var t=Hs.get(e);return t?os(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Hs.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 Ks=js;function zs(e,t,r){return`firebase:${e}:${t}:`+r}class Js{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);try{this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}catch{}}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(()=>{}))?Gs._fromGetAccountInfoResponse(this.auth,e,t):null:Gs._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(){try{this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}catch{}}static async create(r,e,t="authUser"){if(!e.length)return new Js(qs(Ks),r,t);let n=zs(t,r.config.apiKey,r.name),i=null,s=null,a=new Set;for(var o of e){let t=null;try{t=await o._get(n)}catch{a.add(o);continue}try{if(t){let e;if("string"==typeof t){var l=await Ss(r,{idToken:t}).catch(()=>{});if(!l)break;e=await Gs._fromGetAccountInfoResponse(r,l,t)}else e=Gs._fromJSON(r,t);i=e,s=o;break}}catch{}}var u=(await Promise.all(e.map(async e=>{try{if(await e._isAvailable())return e;e._lastProbeTimedOut&&a.add(e)}catch{return}}))).filter(e=>e);let h=u[0]||qs(Ks),c=null;s&&i&&(s!==h&&(c=i),h=s);u=u.filter(e=>e._shouldAllowMigration);return h._shouldAllowMigration&&u.length&&(h=u[0],c&&await h._set(n,c.toJSON()),await Promise.all(e.map(async e=>{if(e!==h&&!a.has(e))try{await e._remove(n)}catch{}}))),new Js(h,r,t)}}function Ws(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Xs(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Qs(t)?"Firefox":t.includes("silk/")?"Silk":ea(t)?"Blackberry":ta(t)?"Webos":Ys(t)?"Safari":!t.includes("chrome/")&&!$s(t)||t.includes("edge/")?Zs(t)?"Android":2===(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?.length?t[1]:"Other":"Chrome"}function Qs(e=te()){return/firefox\//i.test(e)}function Ys(e=te()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function $s(e=te()){return/crios\//i.test(e)}function Xs(e=te()){return/iemobile/i.test(e)}function Zs(e=te()){return/android/i.test(e)}function ea(e=te()){return/blackberry/i.test(e)}function ta(e=te()){return/webos/i.test(e)}function ra(e=te()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function na(e=te()){return ra(e)||Zs(e)||ta(e)||ea(e)||/windows phone/i.test(e)||Xs(e)}function ia(e,t=[]){let r;switch(e){case"Browser":r=Ws(te());break;case"Worker":r=Ws(te())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${Lt}/`+n}class sa{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:e?.message})}}}}class aa{constructor(e){var t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){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 oa{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 ua(this),this.idTokenSubscription=new ua(this),this.beforeStateQueue=new sa(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=Yi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=qs(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted){try{this.persistenceManager=await Js.create(this,e)}catch(e){Xi("Failed to initialize persistence: "+e),this.persistenceManager=await Js.create(this,[])}finally{this._resolvePersistenceManagerAvailable?.()}if(!this._deleted){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}try{await this.initializeCurrentUser(t)}catch(e){Xi("Failed to initialize current user: "+e)}this.lastNotifiedUid=this.currentUser?.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 Gs._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(Rt(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=this.redirectUser?._redirectEventId,r=s?._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||!n?.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return g(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 Ls(e)}catch(e){if(xs(e))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 Rt(this.app)?Promise.reject(ns(this)):((t=e?_(e):null)&&g(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&&g(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 Rt(this.app)?Promise.reject(ns(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return Rt(this.app)?Promise.reject(ns(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 Cs(e=this,"GET","/v2/passwordPolicy",ms(e,{})),t=new aa(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 pe("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 Cs(e=this,"POST","/v2/accounts:revokeToken",ms(e,t)))}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.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||(g(t=e&&qs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Js.create(this,[qs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=this.currentUser?.uid??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(g(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}).catch(e=>{if(!s)if("function"!=typeof r&&r.error)r.error(e);else{if(!n)throw e;n(e)}}),"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){if(this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,this.persistenceManager)try{e?await this.persistenceManager.setCurrentUser(e):await this.persistenceManager.removeCurrentUser()}catch(e){var t=rs(this,"internal-error","An internal AuthError has occurred: "+(e?.message||String(e)));throw t.customData={originalError:e},t}}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return g(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ia(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 this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader()),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e;return Rt(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:((e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken())?.error&&Xi("Error while retrieving App Check token: "+e.error),e?.token)}}function la(e){return _(e)}class ua{constructor(e){this.auth=e,this.observer=null,this.addObserver=Se(e=>this.observer=e)}get next(){return g(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let ha={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function ca(e){return ha.loadJS(e)}function da(e){return"__"+e+Math.floor(1e6*Math.random())}class Ba{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 ga(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t=e||1e12;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){return this._widgets.get(e||1e12)?.getResponse()||""}async execute(e){return this._widgets.get(e||1e12)?.execute(),""}}class pa{constructor(){this.enterprise=new fa}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class fa{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class ga{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;g(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 ma="NO_RECAPTCHA",Ca="onFirebaseAuthREInstanceReady";class va{constructor(e){this.type="recaptcha-enterprise",this.auth=la(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Ds(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(ma)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new pa).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)=>{Ts(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Is(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(async t=>{if(!e&&Ds(window.grecaptcha)&&va.scriptInjectionDeferred)await va.scriptInjectionDeferred.promise,s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=ha.recaptchaEnterpriseScript;0!==e.length&&(e+=t+("&onload="+Ca)),va.scriptInjectionDeferred=new Z,window[Ca]=()=>{va.scriptInjectionDeferred?.resolve()},ca(e).then(()=>va.scriptInjectionDeferred?.promise).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function _a(e,t,r,n=!1,i=!1){var s=new va(e);let a;if(i)a=ma;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s={...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 ya(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await _a(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 _a(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")?(t=await _a(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===r._getRecaptchaConfig()?.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 _a(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await _a(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function wa(e,t,r){var n=la(e),i=(g(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!!r?.disableWarnings),s=Ea(t),{host:a,port:o}=(e=>{var t,r=Ea(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:ba(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:ba(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,u={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function h(){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=u,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,Ve(a)?Ge(s+"//"+a+l):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",h):h()))):(g(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),g(we(u,n.config.emulator)&&we(o,n.emulatorConfig),n,"emulator-config-failed"))}function Ea(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function ba(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}va.scriptInjectionDeferred=null;class Da{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return as("not implemented")}_getIdTokenResponse(e){return as("not implemented")}_linkToIdToken(e,t){return as("not implemented")}_getReauthenticationResolver(e){return as("not implemented")}}async function Ia(e,t){return Cs(e,"POST","/v1/accounts:resetPassword",ms(e,t))}async function Ta(e,t){return Cs(e,"POST","/v1/accounts:signUp",t)}async function Sa(e,t){return _s(e,"POST","/v1/accounts:signInWithPassword",ms(e,t))}async function Na(e,t){return Cs(e,"POST","/v1/accounts:sendOobCode",ms(e,t))}async function ka(e,t){return Na(e,t)}async function Aa(e,t){return Na(e,t)}class Ra extends Da{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Ra(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Ra(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(t?.email&&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 ya(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Sa,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",ms(e,t)))(e,{email:this._email,oobCode:this._password});default:es(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return ya(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",ms(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:es(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Oa(e,t){return _s(e,"POST","/v1/accounts:signInWithIdp",ms(e,t))}class xa extends Da{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new xa(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):es("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;let{providerId:r,signInMethod:n,...i}="string"==typeof e?JSON.parse(e):e;return r&&n?((t=new xa(r,n)).idToken=i.idToken||void 0,t.accessToken=i.accessToken||void 0,t.secret=i.secret,t.nonce=i.nonce,t.pendingToken=i.pendingToken||null,t):null}_getIdTokenResponse(e){return Oa(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Oa(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Oa(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=be(e)),t}}async function Pa(e,t){return Cs(e,"POST","/v1/accounts:sendVerificationCode",ms(e,t))}let Fa={USER_NOT_FOUND:"user-not-found"};class La extends Da{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new La({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new La({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await _s(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t));if(r.temporaryProof)throw Es(e,"account-exists-with-different-credential",r);return r})(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,{...t,operation:"REAUTH"}),Fa))(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 La({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Ma{constructor(e){var t=De(Ie(e)),r=t.apiKey??null,n=t.oobCode??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}})(t.mode??null);g(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){t=De(Ie(e=e)).link,r=t?De(Ie(t)).deep_link_id:null;var t,r,n=((n=De(Ie(e)).deep_link_id)?De(Ie(n)).link:null)||n||r||t||e;try{return new Ma(n)}catch{return null}}}class Ua{constructor(){this.providerId=Ua.PROVIDER_ID}static credential(e,t){return Ra._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Ma.parseLink(t);return g(r,"argument-error"),Ra._fromEmailAndCode(e,r.code,r.tenantId)}}Ua.PROVIDER_ID="password",Ua.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ua.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Va{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 Ga extends Va{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ha extends Ga{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return g("providerId"in t&&"signInMethod"in t,"argument-error"),xa._fromParams(t)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return g(e.idToken||e.accessToken,"argument-error"),xa._fromParams({...e,providerId:this.providerId,signInMethod:this.providerId})}static credentialFromResult(e){return Ha.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ha.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 Ha(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class qa extends Ga{constructor(){super("facebook.com")}static credential(e){return xa._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return qa.credential(e.oauthAccessToken)}catch{return null}}}qa.FACEBOOK_SIGN_IN_METHOD="facebook.com",qa.PROVIDER_ID="facebook.com";class ja extends Ga{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return xa._fromParams({providerId:ja.PROVIDER_ID,signInMethod:ja.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return ja.credentialFromTaggedObject(e)}static credentialFromError(e){return ja.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return ja.credential(t,r)}catch{return null}}}ja.GOOGLE_SIGN_IN_METHOD="google.com",ja.PROVIDER_ID="google.com";class Ka extends Ga{constructor(){super("github.com")}static credential(e){return xa._fromParams({providerId:Ka.PROVIDER_ID,signInMethod:Ka.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Ka.credentialFromTaggedObject(e)}static credentialFromError(e){return Ka.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Ka.credential(e.oauthAccessToken)}catch{return null}}}Ka.GITHUB_SIGN_IN_METHOD="github.com",Ka.PROVIDER_ID="github.com";class za extends Da{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Oa(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Oa(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Oa(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 za(t,n):null}static _create(e,t){return new za(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Ja extends Va{constructor(e){g(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Ja.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Ja.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=za.fromJSON(e);return g(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 za._create(r,t)}catch(e){return null}}}class Wa extends Ga{constructor(){super("twitter.com")}static credential(e,t){return xa._fromParams({providerId:Wa.PROVIDER_ID,signInMethod:Wa.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Wa.credentialFromTaggedObject(e)}static credentialFromError(e){return Wa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Wa.credential(t,r)}catch{return null}}}async function Qa(e,t){return _s(e,"POST","/v1/accounts:signUp",ms(e,t))}Wa.TWITTER_SIGN_IN_METHOD="twitter.com",Wa.PROVIDER_ID="twitter.com";class Ya{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 Gs._fromIdTokenResponse(e,r,n),s=$a(r);return new Ya({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=$a(r);return new Ya({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function $a(e){return e.providerId||("phoneNumber"in e?"phone":null)}class Xa extends Be{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,Xa.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new Xa(e,t,r,n)}}function Za(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw Xa._fromErrorAndOperation(t,e,r,n);throw e})}function eo(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function to(e,t){var r=_(e),n=(await no(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await Cs(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=eo(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 ro(e,t,r=!1){var n=await Os(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ya._forOperation(e,"link",n)}async function no(e,t,r){await Ls(t);var n=!1===e?"provider-already-linked":"no-such-provider";g(eo(t.providerData).has(r)===e,t.auth,n)}async function io(e,t,r=!1){var n=e.auth;if(Rt(n.app))return Promise.reject(ns(n));var i="reauthenticate";try{var s=await Os(e,Za(n,i,t,e),r),a=(g(s.idToken,n,"internal-error"),As(s.idToken)),o=(g(a,n,"internal-error"),a).sub;return g(e.uid===o,n,"user-mismatch"),Ya._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===e?.code&&es(n,"user-mismatch"),e}}async function so(e,t,r=!1){var n;return Rt(e.app)?Promise.reject(ns(e)):(n=await Za(e,"signIn",t),n=await Ya._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function ao(e,t){return so(la(e),t)}async function oo(e,t){var r=_(e);return await no(!1,r,t.providerId),ro(r,t)}async function lo(e,t){return io(_(e),t)}async function uo(e,t){var r,n;return Rt(e.app)?Promise.reject(ns(e)):(n=await _s(r=la(e),"POST","/v1/accounts:signInWithCustomToken",ms(r,{token:t,returnSecureToken:!0})),n=await Ya._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class ho{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?co._fromServerResponse(e,t):"totpInfo"in t?Bo._fromServerResponse(e,t):es(e,"internal-error")}}class co extends ho{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new co(t)}}class Bo extends ho{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new Bo(t)}}function po(e,t,r){g(0<r.url?.length,e,"invalid-continue-uri"),g(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),g(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&&(g(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(g(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 fo(e){var t=la(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function go(e,t){await Cs(e=_(e),"POST","/v1/accounts:update",ms(e,{oobCode:t}))}async function mo(e,t){var r=_(e),n=await Ia(r,{oobCode:t}),i=n.requestType;switch(g(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":g(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":g(n.mfaInfo,r,"internal-error");default:g(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=ho._fromServerResponse(la(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 Co(e,t){var r=us()?ls():"http://localhost",r=(await Cs(e=_(e),"POST","/v1/accounts:createAuthUri",ms(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function vo(e,t){var r=_(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&po(r.auth,n,t),await Na(r.auth,n)).email;r!==e.email&&await e.reload()}async function _o(e,t,r){var n=_(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&po(n.auth,i,r),await Na(n.auth,i)).email;n!==e.email&&await e.reload()}async function yo(e,t){var r,n,{displayName:i,photoURL:s}=t;void 0===i&&void 0===s||(n=await(r=_(e)).getIdToken(),n=await Os(r,(async(e,t)=>Cs(e,"POST","/v1/accounts:update",t))(r.auth,{idToken:n,displayName:i,photoUrl:s,returnSecureToken:!0})),r.displayName=n.displayName||null,r.photoURL=n.photoUrl||null,(i=r.providerData.find(({providerId:e})=>"password"===e))&&(i.displayName=r.displayName,i.photoURL=r.photoURL),await r._updateTokensIfNecessary(n))}async function wo(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Os(e,(async(e,t)=>Cs(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class Eo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class bo extends Eo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class Do extends Eo{constructor(e,t){super(e,"facebook.com",t)}}class Io extends bo{constructor(e,t){super(e,"github.com",t,"string"==typeof t?.login?t?.login:null)}}class To extends Eo{constructor(e,t){super(e,"google.com",t)}}class So extends bo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function No(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&&n?.idToken){t=As(n.idToken)?.firebase?.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new Eo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new Do(a,s);case"github.com":return new Io(a,s);case"google.com":return new To(a,s);case"twitter.com":return new So(a,s,n.screenName||null);case"custom":case"anonymous":return new Eo(a,null);default:return new Eo(a,i,s)}}class ko{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new ko("enroll",e,t)}static _fromMfaPendingCredential(e){return new ko("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return ko._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return ko._fromIdtoken(e.multiFactorSession.idToken)}return null}}class Ao{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=la(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ho._fromServerResponse(s,e));g(a.mfaPendingCredential,s,"internal-error");let o=ko._fromMfaPendingCredential(a.mfaPendingCredential);return new Ao(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,{...a,idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var n=await Ya._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return g(i.user,s,"internal-error"),Ya._forOperation(i.user,i.operationType,r);default:es(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function Ro(e,t){return Cs(e,"POST","/v2/accounts/mfaEnrollment:start",ms(e,t))}class Oo{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ho._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new Oo(e)}async getSession(){return ko._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Os(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 Os(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},Cs(r,"POST","/v2/accounts/mfaEnrollment:withdraw",ms(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 xo=new WeakMap;let Po="__sak";class Fo{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{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 Lo extends Fo{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=na(),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);oe()&&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]}}Lo.type="LOCAL";let Mo=Lo;class Uo extends Fo{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Uo.type="SESSION";let Vo=Uo;class Go{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 Go(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];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 Ho(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Go.receivers=[];class qo{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,u;return new Promise((r,n)=>{let i=Ho("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));u={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(u),o.port1.addEventListener("message",u.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{u&&this.removeMessageHandler(u)})}}function jo(){return window}function Ko(){return void 0!==jo().WorkerGlobalScope&&"function"==typeof jo().importScripts}let zo="firebaseLocalStorageDb",Jo="firebaseLocalStorage",Wo="fbase_key",Qo="DB_TIMEOUT";class Yo{constructor(e){this.request=e}toPromise(i=2500){return new Promise((e,t)=>{let r=!1,n=setTimeout(()=>{if(!r){r=!0;try{this.request.transaction?.abort()}catch{}t(new Error(Qo))}},i);this.request.addEventListener("success",()=>{r||(r=!0,clearTimeout(n),e(this.request.result))}),this.request.addEventListener("error",()=>{r||(r=!0,clearTimeout(n),t(this.request.error))})})}}function $o(e,t){return e.transaction([Jo],t?"readwrite":"readonly").objectStore(Jo)}function Xo(){let o=indexedDB.open(zo,1);return new Promise((n,i)=>{let s=!1,a=setTimeout(()=>{s||(s=!0,i(new Error(Qo)))},2500);o.addEventListener("error",()=>{s||(s=!0,clearTimeout(a),i(o.error))}),o.addEventListener("upgradeneeded",()=>{var e=o.result;try{e.createObjectStore(Jo,{keyPath:Wo})}catch(e){s||(s=!0,clearTimeout(a),i(e))}}),o.addEventListener("success",async()=>{var e,t=o.result;if(s)t.close();else if(clearTimeout(a),t.objectStoreNames.contains(Jo))s=!0,n(t);else{t.close();try{e=indexedDB.deleteDatabase(zo),await new Yo(e).toPromise();var r=await Xo();s=!0,n(r)}catch(e){s||(s=!0,i(e))}}})})}async function Zo(e,t,r,n=2500){var i=$o(e,!0).put({fbase_key:t,value:r});return new Yo(i).toPromise(n)}function el(e,t,r=2500){var n=$o(e,!0).delete(t);return new Yo(n).toPromise(r)}class tl{registerLifecycleListeners(){"undefined"!=typeof window&&"function"==typeof window.addEventListener&&(window.addEventListener("pagehide",this.onPageHide),window.addEventListener("pageshow",this.onPageShow))}unregisterLifecycleListeners(){"undefined"!=typeof window&&"function"==typeof window.removeEventListener&&(window.removeEventListener("pagehide",this.onPageHide),window.removeEventListener("pageshow",this.onPageShow))}constructor(){this.type="LOCAL",this.dbPromise=null,this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.isClosing=!1,this.pendingWrites=0,this._lastProbeTimedOut=!1,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this.onPageHide=()=>{this.isClosing=!0,this.stopPolling(),this.dbPromise&&(this.dbPromise.then(e=>e.close()).catch(()=>{}),this.dbPromise=null)},this.onPageShow=()=>{this.isClosing&&(this.isClosing=!1,0<Object.keys(this.listeners).length)&&this.startPolling()},this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){if(this.dbPromise)return this.dbPromise;let e=Xo();return(this.dbPromise=e).catch(()=>{this.dbPromise===e&&(this.dbPromise=null)}),e}async _withRetries(e){let n=0;for(;;){let t,r=null;try{var i=this._openDb();return r=this.dbPromise,await e(t=await i)}catch(e){if(t)t.close(),r&&this.dbPromise===r&&(this.dbPromise=null);else if(this.dbPromise&&this.dbPromise===r){var s=this.dbPromise;this.dbPromise=null;try{(await s).close()}catch{}}if(e instanceof Error&&e.message===Qo||3<n++)throw e}}}async initializeServiceWorkerMessaging(){return Ko()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Go._getInstance(Ko()?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;this.activeServiceWorker=await(async()=>{if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}})(),this.activeServiceWorker&&(this.sender=new qo(this.activeServiceWorker),e=await this.sender._send("ping",{},800))&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){this._lastProbeTimedOut=!1;try{return indexedDB?(await this._withRetries(async e=>{await Zo(e,Po,"1",800),await el(e,Po,800)}),!0):!1}catch(e){this._lastProbeTimedOut=e instanceof Error&&e.message===Qo}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=>Zo(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){try{var e=await this._withRetries(e=>(async(e,t)=>{var r=$o(e,!1).get(t);return void 0===(r=await new Yo(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}catch(e){if(e instanceof Error&&e.message===Qo&&null!=this.localCache[t])return this.localCache[t];throw e}}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>el(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){if(this.isClosing)return[];try{var e=await this._withRetries(e=>{var t=$o(e,!1).getAll();return new Yo(t).toPromise()});if(this.isClosing)return[];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}catch(e){return this.isClosing||Xi("Firebase Auth cross-tab polling failed with error: "+e),[]}}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.registerLifecycleListeners()),this.listeners[e]||(this.listeners[e]=new Set,e in this.localCache)||this._get(e).catch(()=>{}),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(),this.unregisterLifecycleListeners())}}tl.type="LOCAL";let rl=tl;function nl(e,t){return Cs(e,"POST","/v2/accounts/mfaSignIn:start",ms(e,t))}let il=da("rcb"),sl=new cs(3e4,6e4);class al{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!jo().grecaptcha?.render}load(i,s=""){var e;return g((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&bs(jo().grecaptcha)?Promise.resolve(jo().grecaptcha):new Promise((t,r)=>{let n=jo().setTimeout(()=>{r(ts(i,"network-request-failed"))},sl.get());jo()[il]=()=>{jo().clearTimeout(n),delete jo()[il];var e=jo().grecaptcha;if(e&&bs(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(ts(i,"internal-error"))},ca(ha.recaptchaV2Script+"?"+be({onload:il,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(ts(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!jo().grecaptcha?.render&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class ol{async load(e){return new Ba(e)}clearedOneInstance(){}}let ll="recaptcha",ul={theme:"light",type:"image"},hl=class{constructor(e,t,r={...ul}){this.parameters=r,this.type=ll,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=la(e),this.isInvisible="invisible"===this.parameters.size,g("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;g(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?ol:al),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(){g(!this.parameters.sitekey,this.auth,"argument-error"),g(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),g("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=jo()[r])&&e(t)}}assertNotDestroyed(){g(!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(){g(us()&&!Ko(),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 Cs(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");g(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return g(this.recaptcha,this.auth,"internal-error"),this.recaptcha}};class cl{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=La._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function dl(t,r,n){if(!t._getRecaptchaConfig())try{e=la(t),i=await Ts(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Is(i),null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,await(!i.isAnyProviderEnabled()||!new va(e).verify().catch(()=>{}))}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}var e,i,s,a,o,l,u;try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(s=e.session,"phoneNumber"in e?(g("enroll"===s.type,t,"internal-error"),a={idToken:s.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await ya(t,a,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===ma?(g(n?.type===ll,e,"argument-error"),Ro(e,await Bl(e,t,n))):Ro(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(g("signin"===s.type,t,"internal-error"),g(o=e.multiFactorHint?.uid||e.multiFactorUid,t,"missing-multi-factor-info"),l={mfaPendingCredential:s.credential,mfaEnrollmentId:o,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await ya(t,l,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===ma?(g(n?.type===ll,e,"argument-error"),nl(e,await Bl(e,t,n))):nl(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(u={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await ya(t,u,"sendVerificationCode",async(e,t)=>t.captchaResponse===ma?(g(n?.type===ll,e,"argument-error"),Pa(e,await Bl(e,t,n))):Pa(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{n?._reset()}}async function Bl(e,t,r){g(r.type===ll,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(g("string"==typeof o,e,"argument-error"),{...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}let pl=class Yu{constructor(e){this.providerId=Yu.PROVIDER_ID,this.auth=la(e)}verifyPhoneNumber(e,t){return dl(this.auth,e,_(t))}static credential(e,t){return La._fromVerification(e,t)}static credentialFromResult(e){var t=e;return Yu.credentialFromTaggedObject(t)}static credentialFromError(e){return Yu.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?La._fromTokenResponse(t,r):null}};function fl(e,t){return t?qs(t):(g(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}pl.PROVIDER_ID="phone",pl.PHONE_SIGN_IN_METHOD="phone";class gl extends Da{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Oa(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Oa(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Oa(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 ml(e){return so(e.auth,new gl(e),e.bypassAuthState)}function Cl(e){var{auth:t,user:r}=e;return g(r,t,"internal-error"),io(r,new gl(e),e.bypassAuthState)}async function vl(e){var{auth:t,user:r}=e;return g(r,t,"internal-error"),ro(r,new gl(e),e.bypassAuthState)}class _l{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),this.pendingPromise&&(await this.onExecution(),this.pendingPromise)&&this.eventManager.registerConsumer(this)}catch(e){this.pendingPromise&&this.reject(e)}})}async onAuthEvent(e){if(this.pendingPromise){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 ml;case"linkViaPopup":case"linkViaRedirect":return vl;case"reauthViaPopup":case"reauthViaRedirect":return Cl;default:es(this.auth,"internal-error")}}resolve(e){os(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){os(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 yl=new cs(2e3,1e4);class wl extends _l{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,wl.currentPopupAction&&wl.currentPopupAction.cancel(),wl.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return g(e,this.auth,"internal-error"),e}async onExecution(){os(1===this.filter.length,"Popup operations only handle one event");var e=Ho();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(ts(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(ts(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,wl.currentPopupAction=null}pollUserCancellation(){let e=()=>{this.authWindow?.window?.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(ts(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,yl.get())};e()}}wl.currentPopupAction=null;let El="pendingRedirect",bl=new Map;class Dl extends _l{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=bl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=Nl(t),i=Sl(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)}bl.set(this.auth._key(),t)}return this.bypassAuthState||bl.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 Il(e,t){return Sl(e)._set(Nl(t),"true")}function Tl(e,t){bl.set(e._key(),t)}function Sl(e){return qs(e._redirectPersistence)}function Nl(e){return zs(El,e.config.apiKey,e.name)}function kl(e,t,r){return(async(e,t,r)=>{var n,i;return Rt(e.app)?Promise.reject(ns(e)):(n=la(e),is(e,t,Va),await n._initializationPromise,await Il(i=fl(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function Al(e,t,r){return(async(e,t,r)=>{var n=_(e);if(is(n.auth,t,Va),Rt(n.auth.app))return Promise.reject(ns(n.auth));await n.auth._initializationPromise;var i=fl(n.auth,r),s=(await Il(i,n.auth),await xl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function Rl(e,t,r){return(async(e,t,r)=>{var n=_(e),i=(is(n.auth,t,Va),await n.auth._initializationPromise,fl(n.auth,r)),s=(await no(!1,n,t.providerId),await Il(i,n.auth),await xl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Ol(e,t,r=!1){var n,i;return Rt(e.app)?Promise.reject(ns(e)):(i=fl(n=la(e),t),(i=await new Dl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function xl(e){var t=Ho(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Pl{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 Ll(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!Ll(e)?(r=e.error.code?.split("auth/")[1]||"internal-error",t.onError(ts(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(Fl(e))}saveEventToCache(e){this.cachedEventUids.add(Fl(e)),this.lastProcessedEventTime=Date.now()}}function Fl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function Ll({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===t?.code}async function Ml(e,t={}){return Cs(e,"GET","/v1/projects",t)}let Ul=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Vl=/^https?/;async function Gl(e){if(!e.config.emulator){var t,r=(await Ml(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=ls(),{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:Vl.test(n)&&(Ul.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch{}es(e,"unauthorized-domain")}}let Hl=new cs(3e4,6e4);function ql(){var t=jo().___jsl;if(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 jl(i){return new Promise((e,t)=>{function r(){ql(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{ql(),t(ts(i,"network-request-failed"))},timeout:Hl.get()})}if(jo().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else{var n;if(!jo().gapi?.load)return n=da("iframefcb"),jo()[n]=()=>{gapi.load?r():t(ts(i,"network-request-failed"))},ca(ha.gapiScript+"?onload="+n).catch(e=>t(e));r()}}).catch(e=>{throw Kl=null,e})}let Kl=null;let zl=new cs(5e3,15e3),Jl="__/auth/iframe",Wl="emulator/auth/iframe",Ql={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Yl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function $l(a){e=a;var e,t,r,n=await(Kl=Kl||jl(e)),i=jo().gapi;return g(i,a,"internal-error"),n.open({where:document.body,url:(g((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?ds(n,Wl):`https://${e.config.authDomain}/`+Jl,n={apiKey:n.apiKey,appName:e.name,v:Lt},(r=Yl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+be(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Ql,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=ts(a,"network-request-failed"),n=jo().setTimeout(()=>{t(r)},zl.get());function i(){jo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let Xl={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Zl{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function eu(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={...Xl,width:n.toString(),height:i.toString(),top:s,left:a},a=te().toLowerCase(),s=(r&&(o=$s(a)?"_blank":r),Qs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=te()]=[a],ra(n)&&window.navigator?.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 Zl(null);a=window.open(t||"",o,s);g(a,e,"popup-blocked");try{a.focus()}catch(e){}return new Zl(a)}let tu="__/auth/handler",ru="emulator/auth/handler",nu=encodeURIComponent("fac");async function iu(e,t,r,n,i,s){g(e.config.authDomain,e,"auth-domain-config-required"),g(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:Lt,eventId:i};if(t instanceof Va){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",_e(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Ga&&0<(c=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=c.join(",")),e.tenantId&&(a.tid=e.tenantId);var u,h=a;for(u of Object.keys(h))void 0===h[u]&&delete h[u];var c=await e._getAppCheckToken(),c=c?`#${nu}=`+encodeURIComponent(c):"";return`${r=[e.config][0],r.emulator?ds(r,ru):`https://${r.authDomain}/`+tu}?`+be(h).slice(1)+c}let su="webStorageSupport";class au{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Vo,this._completeRedirectFn=Ol,this._overrideRedirectResult=Tl}async _openPopup(e,t,r,n){return os(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()"),eu(e,await iu(e,t,r,ls(),n),Ho())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await iu(e,t,r,ls(),n);return jo().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):(os(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 $l(t);let r=new Pl(t);return e.register("authEvent",e=>(g(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(su,{type:su},e=>{var t=e?.[0]?.[su];void 0!==t&&n(!!t),es(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Gl(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return na()||Ys()||ra()}}let ou=au;class lu 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 as("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new lu(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},Cs(e,"POST","/v2/accounts/mfaEnrollment:finalize",ms(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},Cs(e,"POST","/v2/accounts/mfaSignIn:finalize",ms(e,t))}}class uu{constructor(){}static assertion(e){return lu._fromCredential(e)}}uu.FACTOR_ID="phone";sr="@firebase/auth",or="1.13.10";class hu{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t(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(){g(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var cu;function du(){return window}Y()?._authIdTokenMaxAge,ha={loadJS(n){return new Promise((e,r)=>{var t=document.createElement("script");t.setAttribute("src",n),t.onload=e,t.onerror=e=>{var t=ts("internal-error");t.customData=e,r(t)},t.type="text/javascript",t.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(t)})},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="},cu="Browser",St(new He("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=(g(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:cu,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ia(cu)}),a=new oa(r,n,i,s);return e=a,r=(t=t)?.persistence||[],r=(Array.isArray(r)?r:[r]).map(qs),t?.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,t?.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),St(new He("auth-internal",e=>{var t=la(e.getProvider("auth").getImmediate());return e=t,new hu(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),Gt(sr,or,(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}})(cu)),Gt(sr,or,"esm2020");async function Bu(e,t,r){var n=du().BuildInfo,i=(os(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(os(/[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 ra()?s.ibi=n.packageName:Zs()?s.apn=n.packageName:es(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,iu(e,r,t.type,void 0,t.eventId??void 0,s)}function pu(n){let i=du().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=te(),/(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 fu=20;class gu extends Pl{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 mu(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<fu;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:ts(e,"no-auth-event")}}async function Cu(e){var t=await _u()._get(yu(e));return t&&await _u()._remove(yu(e)),t}function vu(e,t){i=wu(t=t),r=i.link?decodeURIComponent(i.link):void 0,n=wu(r).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=wu(i).link||i||n||r||t;return i.includes("/__/auth/callback")?(n=(r=((n=wu(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(n.firebaseError)):null)?.code?.split("auth/")?.[1])?ts(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 _u(){return qs(Mo)}function yu(e){return zs("authEvent",e.config.apiKey,e.name)}function wu(e){var t,r;return e?.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class Eu{constructor(){this._redirectPersistence=Vo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Ol,this._overrideRedirectResult=Tl}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new gu(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){es(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,g("function"==typeof(s=du())?.universalLinks?.subscribe,i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),g(void 0!==s?.BuildInfo?.packageName,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),g("function"==typeof s?.cordova?.plugins?.browsertab?.openUrl,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),g("function"==typeof s?.cordova?.plugins?.browsertab?.isAvailable,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),g("function"==typeof s?.cordova?.InAppBrowser?.open,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),bl.clear(),await this._originValidation(e),mu(e,r,n)),a=(i=e,r=a,await _u()._set(yu(i),r),await Bu(e,a,t));return(async(a,o,l)=>{let u=du().cordova,h=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=u.plugins.browsertab?.close;"function"==typeof e&&e(),"function"==typeof l?.close&&l.close()}function i(){r=r||window.setTimeout(()=>{e(ts(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===document?.visibilityState&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Zs()&&document.addEventListener("visibilitychange",s,!1),h=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{h()}})(e,s,await pu(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=du().BuildInfo,r={};ra()?r.iosBundleId=t.packageName:Zs()?r.androidPackageName=t.packageName:es(e,"operation-not-supported-in-this-environment"),await Ml(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=du();let s=setTimeout(async()=>{await Cu(n),i.onEvent(Du())},500),a=async e=>{clearTimeout(s);var t=await Cu(n);let r=null;t&&e?.url&&(r=vu(t,e.url)),i.onEvent(r||Du())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";du().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let bu=Eu;function Du(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:ts("no-auth-event")}}function Iu(){return self?.location?.protocol||null}function Tu(e=te()){return!("file:"!==Iu()&&"ionic:"!==Iu()&&"capacitor:"!==Iu()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Su(e=te()){return oe()&&11===document?.documentMode||([e=te()]=[e],/Edge\/\d+/.test(e))}function Nu(){try{var e=self.localStorage,t=Ho();if(e)return e.setItem(t,"1"),e.removeItem(t),!Su()||he()}catch(e){return ku()&&he()}return!1}function ku(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function Au(){return("http:"===Iu()||"https:"===Iu()||se()||Tu())&&!(ae()||ne())&&Nu()&&!ku()}function Ru(){return Tu()&&"undefined"!=typeof document}let Ou={LOCAL:"local",NONE:"none",SESSION:"session"},xu=g,Pu="persistence";async function Fu(e){await e._initializationPromise;var t=Lu(),r=zs(Pu,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function Lu(){try{return("undefined"!=typeof window?window:null)?.sessionStorage||null}catch(e){return null}}let Mu=g;class Uu{constructor(){this.browserResolver=qs(ou),this.cordovaResolver=qs(bu),this.underlyingResolver=null,this._redirectPersistence=Vo,this._completeRedirectFn=Ol,this._overrideRedirectResult=Tl}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 Ru()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Mu(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!Ru()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Vu(e){return e.unwrap()}function Gu(e,t){var r,n,i,s=t.customData?._tokenResponse;"auth/multi-factor-auth-required"===t?.code?t.resolver=new Ku(e,(r=t,n=_(e),g((i=r).customData.operationType,n,"argument-error"),g(i.customData._serverResponse?.mfaPendingCredential,n,"argument-error"),Ao._fromError(n,i))):s&&(i=Hu(n=t))&&(n.credential=i,n.tenantId=s.tenantId||void 0,n.email=s.email||void 0,n.phoneNumber=s.phoneNumber||void 0)}function Hu(e){var t=(e instanceof Be?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof Be)&&"temporaryProof"in t&&"phoneNumber"in t)return pl.credentialFromResult(e);var r=t.providerId;if(!r||r===Ki.PASSWORD)return null;let n;switch(r){case Ki.GOOGLE:n=ja;break;case Ki.FACEBOOK:n=qa;break;case Ki.GITHUB:n=Ka;break;case Ki.TWITTER:n=Wa;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?za._create(r,o):xa._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Ha(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof Be?n.credentialFromError(e):n.credentialFromResult(e)}function qu(t,e){return e.catch(e=>{throw e instanceof Be&&Gu(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Hu(e),additionalUserInfo:No(e),user:zu.getOrCreate(r)}})}async function ju(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>qu(t,r.confirm(e))}}class Ku{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 qu(Vu(this.auth),this.resolver.resolveSignIn(e))}}let zu=class kE{constructor(e){var t;this._delegate=e,this.multiFactor=(t=_(e),xo.has(t)||xo.set(t,Oo._fromUser(t)),xo.get(t))}static getOrCreate(e){return kE.USER_MAP.has(e)||kE.USER_MAP.set(e,new kE(e)),kE.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 qu(this.auth,oo(this._delegate,e))}async linkWithPhoneNumber(e,t){return ju(this.auth,(async(e,t,r)=>{let n=_(e);await no(!1,n,"phone");var i=await dl(n.auth,t,_(r));return new cl(i,e=>oo(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return qu(this.auth,(async(e,t,r)=>{var n=_(e),i=(is(n.auth,t,Va),fl(n.auth,r));return new wl(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Uu))}async linkWithRedirect(e){return await Fu(la(this.auth)),Rl(this._delegate,e,Uu)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return qu(this.auth,lo(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return ju(this.auth,(async(e,t,r)=>{let n=_(e);var i;return Rt(n.auth.app)?Promise.reject(ns(n.auth)):(i=await dl(n.auth,t,_(r)),new cl(i,e=>lo(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return qu(this.auth,(async(e,t,r)=>{var n=_(e);if(Rt(n.auth.app))return Promise.reject(ts(n.auth,"operation-not-supported-in-this-environment"));is(n.auth,t,Va);var i=fl(n.auth,r);return new wl(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Uu))}async reauthenticateWithRedirect(e){return await Fu(la(this.auth)),Al(this._delegate,e,Uu)}sendEmailVerification(e){return vo(this._delegate,e)}async unlink(e){return await to(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,Rt((r=_(t)).auth.app)?Promise.reject(ns(r.auth)):wo(r,e,null);var t,r}updatePassword(e){return wo(_(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=_(e);if(Rt(r.auth.app))return Promise.reject(ns(r.auth));await ro(r,t)})(this._delegate,e)}updateProfile(e){return yo(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return _o(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}},Ju=(zu.USER_MAP=new WeakMap,g);class Wu{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,Ju(r,"invalid-api-key",{appName:e.name}),Ju(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Uu:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=Lu();if(!r)return[];var n=zs(Pu,e,t);switch(r.getItem(n)){case Ou.NONE:return[Ks];case Ou.LOCAL:return[rl,Vo];case Ou.SESSION:return[Vo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(rl)||r.push(rl),"undefined"!=typeof window)for(var n of[Mo,Vo])r.includes(n)||r.push(n);return r.includes(Ks)||r.push(Ks),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap(Wi)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?zu.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){wa(this._delegate,e,t)}applyActionCode(e){return go(this._delegate,e)}checkActionCode(e){return mo(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ia(_(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&fo(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return qu(this._delegate,(async(t,e,r)=>{var n,i;return Rt(t.app)?Promise.reject(ns(t)):(i=await ya(n=la(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Qa,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&fo(t),e}),i=await Ya._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return Co(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===Ma.parseLink(e)?.operation}async getRedirectResult(){Ju(Au(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Uu,await la(e)._initializationPromise;var e,t,r=await Ol(e,t,!1);return r?qu(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){la(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Qu(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Qu(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=la(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,g((t=r).handleCodeInApp,n,"argument-error"),t&&po(n,e,t),await ya(n,i,"getOobCode",Aa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=la(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&po(n,i,r),await ya(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,xu(Object.values(Ou).includes(r),t,"invalid-persistence-type"),ae()?xu(r!==Ou.SESSION,t,"unsupported-persistence-type"):ne()?xu(r===Ou.NONE,t,"unsupported-persistence-type"):ku()?xu(r===Ou.NONE||r===Ou.LOCAL&&he(),t,"unsupported-persistence-type"):xu(r===Ou.NONE||Nu(),t,"unsupported-persistence-type");let n;switch(e){case Ou.SESSION:n=Vo;break;case Ou.LOCAL:var i=await qs(rl)._isAvailable();n=i?rl:Mo;break;case Ou.NONE:n=Ks;break;default:return es("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return qu(this._delegate,(async e=>{var t,r;return Rt(e.app)?Promise.reject(ns(e)):(await(t=la(e))._initializationPromise,t.currentUser?.isAnonymous?new Ya({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Qa(t,{returnSecureToken:!0}),r=await Ya._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return qu(this._delegate,ao(this._delegate,e))}signInWithCustomToken(e){return qu(this._delegate,uo(this._delegate,e))}signInWithEmailAndPassword(e,t){return qu(this._delegate,(r=this._delegate,e=e,t=t,Rt(r.app)?Promise.reject(ns(r)):ao(_(r),Ua.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&fo(r),e})));var r}signInWithEmailLink(e,t){return qu(this._delegate,(async(e,t,r)=>{var n,i;return Rt(e.app)?Promise.reject(ns(e)):(n=_(e),g((i=Ua.credentialWithLink(t,r||ls()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),ao(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return ju(this._delegate,(async(e,t,r)=>{if(Rt(e.app))return Promise.reject(ns(e));let n=la(e);var i=await dl(n,t,_(r));return new cl(i,e=>ao(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return Ju(Au(),this._delegate,"operation-not-supported-in-this-environment"),qu(this._delegate,(async(e,t,r)=>{var n,i;return Rt(e.app)?Promise.reject(ts(e,"operation-not-supported-in-this-environment")):(n=la(e),is(e,t,Va),i=fl(n,r),new wl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Uu))}async signInWithRedirect(e){return Ju(Au(),this._delegate,"operation-not-supported-in-this-environment"),await Fu(this._delegate),kl(this._delegate,e,Uu)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await mo(_(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Qu(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&zu.getOrCreate(e)),error:t,complete:r}}Wu.Persistence=Ou;class Yu{static credential(e,t){return pl.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new pl(Vu(lr.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Yu.PHONE_SIGN_IN_METHOD=pl.PHONE_SIGN_IN_METHOD,Yu.PROVIDER_ID=pl.PROVIDER_ID;let $u=g;class Xu{constructor(e,t,r=lr.app()){$u(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new hl(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(P=lr).INTERNAL.registerComponent(new He("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new Wu(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:zi.EMAIL_SIGNIN,PASSWORD_RESET:zi.PASSWORD_RESET,RECOVER_EMAIL:zi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:zi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:zi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:zi.VERIFY_EMAIL}},EmailAuthProvider:Ua,FacebookAuthProvider:qa,GithubAuthProvider:Ka,GoogleAuthProvider:ja,OAuthProvider:Ha,SAMLAuthProvider:Ja,PhoneAuthProvider:Yu,PhoneMultiFactorGenerator:uu,RecaptchaVerifier:Xu,TwitterAuthProvider:Wa,Auth:Wu,AuthCredential:Da,Error:Be}).setInstantiationMode("LAZY").setMultipleInstances(!1)),P.registerVersion("@firebase/auth-compat","0.6.15");let Zu="@firebase/database",eh="";function th(e){eh=e}class rh{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),ge(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:fe(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class nh{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 ih(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 rh(t)}catch(e){}return new nh}function sh(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++,f(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 Te,t=(r.update(t),r.digest());return V.encodeByteArray(t)}function ah(t){return function(...e){_h(t,...e)}}function oh(...e){var t="FIREBASE INTERNAL ERROR: "+gh(...e);ph.error(t)}function lh(e,t){return e===t?0:e<t?-1:1}function uh(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+ge(t))}function hh(e){if("object"!=typeof e||null===e)return ge(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+ge(r[i])+":")+hh(e[r[i]]);return n+="}"}function ch(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 dh=ih("localStorage"),Bh=ih("sessionStorage"),ph=new $e("@firebase/database"),fh=(()=>{let e=1;return function(){return e++}})(),gh=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+=gh.apply(null,r):t+="object"==typeof r?ge(r):r,t+=" "}return t},mh=null,Ch=!0,vh=function(e,t){f(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(ph.logLevel=B.VERBOSE,mh=ph.log.bind(ph),t&&Bh.set("logging_enabled",!0)):"function"==typeof e?mh=e:(mh=null,Bh.remove("logging_enabled"))},_h=function(...e){var t;!0===Ch&&(Ch=!1,null===mh)&&!0===Bh.get("logging_enabled")&&vh(!0),mh&&(t=gh.apply(null,e),mh(t))},yh=function(...e){var t="FIREBASE FATAL ERROR: "+gh(...e);throw ph.error(t),new Error(t)},wh=function(...e){var t="FIREBASE WARNING: "+gh(...e);ph.warn(t)},Eh=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&wh("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},bh=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Dh="[MIN_NAME]",Ih="[MAX_NAME]",Th=function(e,t){var r,n;return e===t?0:e===Dh||t===Ih?-1:t===Dh||e===Ih?1:(r=kh(e),n=kh(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Sh(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Nh(e){f(!bh(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 kh(e){if(Rh.test(e)){var t=Number(e);if(t>=Oh&&t<=xh)return t}return null}function Ah(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 Rh=new RegExp("^-?(0*)\\d{1,10}$"),Oh=-2147483648,xh=2147483647,Ph=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw wh("Exception was thrown by user callback.",e),t},Math.floor(0))}};class Fh{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,Rt(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=t?.getImmediate({optional:!0}),this.appCheck||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){this.appCheckProvider?.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){wh(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Lh{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?(_h("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/.',wh(e)}}class Mh{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Mh.OWNER="owner";let Uh=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Vh="websocket",Gh="long_polling";class Hh{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=dh.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())&&dh.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 qh(e,t,r){f("string"==typeof t,"typeof type must == string"),f("object"==typeof r,"typeof params must == object");let n;if(t===Vh)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Gh)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 Sh(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class jh{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return K(void 0,this.counters_)}}let Kh={},zh={};function Jh(e){var t=e.toString();return Kh[t]||(Kh[t]=new jh),Kh[t]}class Wh{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]&&Ph(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Qh{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_=ah(e),this.stats_=Jh(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),qh(t,Gh,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Wh(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 Yh((...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&&Uh.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(){Qh.forceAllow_=!0}static forceDisallow(){Qh.forceDisallow_=!0}static isAvailable(){return!!Qh.forceAllow_||!(Qh.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=ge(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),H(t)),r=ch(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=ge(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Yh{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=fh(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Yh.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){_h("frame writing exception"),e.stack&&_h(e.stack),_h(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||_h("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=()=>{_h("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let $h=null;"undefined"!=typeof MozWebSocket?$h=MozWebSocket:"undefined"!=typeof WebSocket&&($h=WebSocket);class Xh{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_=ah(this.connId),this.stats_=Jh(t),this.connURL=Xh.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&&Uh.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),qh(e,Vh,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,dh.set("previous_websocket_failure",!0);try{L.NODE_ADMIN,this.mySock=new $h(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(){Xh.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!==$h&&!Xh.forceDisallow_}static previouslyFailed(){return dh.isInMemoryStorage||!0===dh.get("previous_websocket_failure")}markConnectionHealthy(){dh.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=fe(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(f(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=ge(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),ch(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)}}}Xh.responsesRequiredToBeHealthy=2,Xh.healthyTimeout=3e4;class Zh{static get ALL_TRANSPORTS(){return[Qh,Xh]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=Xh&&Xh.isAvailable();let r=t&&!Xh.previouslyFailed();if(e.webSocketOnly&&(t||wh("wss:// URL used, but browser isn't known to support websockets.  Trying anyway."),r=!0),r)this.transports_=[Xh];else{var n,i=this.transports_=[];for(n of Zh.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Zh.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}}Zh.globalTransportInitialized_=!1;class ec{constructor(e,t,r,n,i,s,a,o,l,u){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=u,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=ah("c:"+this.id+":"),this.transportManager_=new Zh(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_=Ah(()=>{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=uh("t",e),r=uh("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=uh("t",e),r=uh("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=uh("t",e);if("d"in e){var r=e.d;if("h"===t){var n={...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?oh("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):oh("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&&wh("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),Ah(()=>{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):Ah(()=>{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()&&(dh.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 tc{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){}}var rc,e=class{constructor(e){this.allowedEvents_=e,this.listeners_={},f(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){f(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}};class nc extends e{static getInstance(){return new nc}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||re()||(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 f("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let ic=32,sc=768;class ac{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 oc(){return new ac("")}function lc(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function uc(e){return e.pieces_.length-e.pieceNum_}function hc(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new ac(e.pieces_,t)}function cc(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function dc(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function Bc(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 ac(t,0)}function pc(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof ac)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 ac(r,0)}function fc(e){return e.pieceNum_>=e.pieces_.length}function gc(e,t){var r=lc(e),n=lc(t);if(null===r)return t;if(r===n)return gc(hc(e),hc(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function mc(e,t){var r=dc(e,0),n=dc(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Th(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function Cc(e,t){if(uc(e)!==uc(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 vc(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(uc(e)>uc(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class _c{constructor(e,t){this.errorPrefix_=t,this.parts_=dc(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=xe(this.parts_[r]);yc(this)}}function yc(e){if(e.byteLength_>sc)throw new Error(e.errorPrefix_+"has a key path longer than "+sc+" bytes ("+e.byteLength_+").");if(e.parts_.length>ic)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+ic+") or object contains a cycle "+wc(e))}function wc(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}let Ec=class dU extends e{static getInstance(){return new dU}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 f("visible"===e,"Unknown event type: "+e),[this.visible_]}};class bc extends tc{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=bc.nextPersistentConnectionId_++,this.log_=ah("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)throw new Error("Auth override specified in options, but not supported on non Node.js platforms");Ec.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&nc.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(ge(i)),f(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),f(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),f(!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=(bc.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=ve(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),wh("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=me(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=me(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),f(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: "+ge(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):oh("Unrecognized action received from server: "+ge(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){f(!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+":"+bc.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){f(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[u,h]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?_h("getToken() completed but was canceled"):(_h("getToken() completed. Creating connection."),this.authToken_=u&&u.accessToken,this.appCheckToken_=h&&h.token,r=new ec(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{wh(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&wh(e),o())}}}interrupt(e){_h("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){_h("Resuming connection for reason: "+e),delete this.interruptReasons_[e],_e(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=>hh(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new ac(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){_h("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){_h("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."+eh.replace(/\./g,"-")]=1,re()?e["framework.cordova"]=1:ae()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=nc.getInstance().currentlyOnline();return _e(this.interruptReasons_)&&e}}bc.nextPersistentConnectionId_=0,bc.nextConnectionId_=0;class Dc{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new Dc(e,t)}}class Ic{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new Dc(Dh,e),n=new Dc(Dh,t);return 0!==this.compare(r,n)}minPost(){return Dc.MIN}}let Tc;class Sc extends Ic{static get __EMPTY_NODE(){return Tc}static set __EMPTY_NODE(e){Tc=e}compare(e,t){return Th(e.name,t.name)}isDefinedOn(e){throw M("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return Dc.MIN}maxPost(){return new Dc(Ih,Tc)}makePost(e,t){return f("string"==typeof e,"KeyIndex indexValue must always be a string."),new Dc(e,Tc)}toString(){return".key"}}let Nc=new Sc,kc=class{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})}},Ac=class NC{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:NC.RED,this.left=null!=n?n:Oc.EMPTY_NODE,this.right=null!=i?i:Oc.EMPTY_NODE}copy(e,t,r,n,i){return new NC(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 Oc.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 Oc.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,NC.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,NC.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)}};Ac.RED=!0,Ac.BLACK=!1;class Rc{copy(e,t,r,n,i){return this}insert(e,t,r){return new Ac(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}}let Oc=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,Ac.BLACK,null,null))}remove(e){return new TC(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Ac.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 kc(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new kc(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new kc(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new kc(this.root_,null,this.comparator_,!0,e)}};function xc(e,t){return Th(e.name,t.name)}function Pc(e,t){return Th(e,t)}Oc.EMPTY_NODE=new Rc;let Fc;function Lc(e){return"number"==typeof e?"number:"+Nh(e):"string:"+e}function Mc(e){var t;e.isLeafNode()?(t=e.val(),f("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):f(e===Fc||e.isEmpty(),"priority of unexpected type."),f(e===Fc||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Uc;class Vc{static set __childrenNodeConstructor(e){Uc=e}static get __childrenNodeConstructor(){return Uc}constructor(e,t=Vc.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,f(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Mc(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Vc(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Vc.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return fc(e)?this:".priority"===lc(e)?this.priorityNode_:Vc.__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:Vc.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=lc(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(f(".priority"!==r||1===uc(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Vc.__childrenNodeConstructor.EMPTY_NODE.updateChild(hc(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:"+Lc(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Nh(this.value_):this.value_),this.lazyHash_=sh(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Vc.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Vc.__childrenNodeConstructor?-1:(f(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Vc.VALUE_TYPE_ORDER.indexOf(t),i=Vc.VALUE_TYPE_ORDER.indexOf(r);return f(0<=n,"Unknown leaf type: "+t),f(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_)}}Vc.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Gc,Hc;class qc extends Ic{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Th(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return Dc.MIN}maxPost(){return new Dc(Ih,new Vc("[PRIORITY-POST]",Hc))}makePost(e,t){var r=Gc(e);return new Dc(t,new Vc("[PRIORITY-POST]",r))}toString(){return".priority"}}let jc=new qc,Kc=Math.log(2);class zc{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Kc,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 Jc(l,e,u,t){l.sort(e);let h=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=u?u(s):s,new Ac(a,s.node,Ac.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=h(e,i),n=h(i+1,t),s=l[i],a=u?u(s):s,new Ac(a,s.node,Ac.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,h(1+r,n)),r=l[r],i=u?u(r):r,e=new Ac(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,Ac.BLACK):(t(n,Ac.BLACK),t(n,Ac.RED))}return a})(new zc(l.length));return new Oc(t||e,r)}let Wc,Qc={};class Yc{static get Default(){return f((Qc,jc),"ChildrenNode.ts has not been loaded"),Wc=Wc||new Yc({".priority":Qc},{".priority":jc})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=ve(this.indexes_,e);if(t)return t instanceof Oc?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){f(e!==Nc,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(Dc.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Jc(r,e.getCompare()):Qc;var o=e.toString(),l={...this.indexSet_},u=(l[o]=e,{...this.indexes_});return u[o]=a,new Yc(u,l)}addToIndexes(s,a){var e=ye(this.indexes_,(t,e)=>{var r=ve(this.indexSet_,e);if(f(r,"Missing index implementation for "+e),t===Qc){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(Dc.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Jc(n,r.getCompare())}return Qc}{r=a.get(s.name);let e=t;return(e=r?e.remove(new Dc(s.name,r)):e).insert(s,s.node)}});return new Yc(e,this.indexSet_)}removeFromIndexes(r,n){var e=ye(this.indexes_,e=>{var t;return e!==Qc&&(t=n.get(r.name))?e.remove(new Dc(r.name,t)):e});return new Yc(e,this.indexSet_)}}let $c;class m{static get EMPTY_NODE(){return $c=$c||new m(new Oc(Pc),null,Yc.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Mc(this.priorityNode_),this.children_.isEmpty()&&f(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||$c}updatePriority(e){return this.children_.isEmpty()?this:new m(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?$c:t}getChild(e){var t=lc(e);return null===t?this:this.getImmediateChild(t).getChild(hc(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(f(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new Dc(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()?$c:this.priorityNode_;return new m(e,i,t)}}updateChild(e,t){var r,n=lc(e);return null===n?t:(f(".priority"!==lc(e)||1===uc(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(hc(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(jc,(e,t)=>{n[e]=t.val(r),i++,a&&m.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:"+Lc(this.getPriority().val())+":"),this.forEachChild(jc,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":sh(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new Dc(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 Dc(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 Dc(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,Dc.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,Dc.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===Zc?-1:0}withIndex(e){var t;return e===Nc||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new m(this.children_,this.priorityNode_,t))}isIndexed(e){return e===Nc||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(jc),i=r.getIterator(jc);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===Nc?null:this.indexMap_.get(e.toString())}}m.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class Xc extends m{constructor(){super(new Oc(Pc),m.EMPTY_NODE,Yc.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return m.EMPTY_NODE}isEmpty(){return!1}}let Zc=new Xc,ed=(Object.defineProperties(Dc,{MIN:{value:new Dc(Dh,m.EMPTY_NODE)},MAX:{value:new Dc(Ih,Zc)}}),Sc.__EMPTY_NODE=m.EMPTY_NODE,Vc.__childrenNodeConstructor=m,P=Zc,Fc=P,P=Zc,Hc=P,!0);function td(s,e=null){if(null===s)return m.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),f(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 Vc(t,td(e));if(s instanceof Array||!ed){let n=m.EMPTY_NODE;return Sh(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=td(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(td(e))}{let n=[],i=!1;return Sh(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=td(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new Dc(e,r)))}),0===n.length?m.EMPTY_NODE:(t=Jc(n,xc,e=>e.name,Pc),i?(r=Jc(n,jc.getCompare()),new m(t,td(e),new Yc({".priority":r},{".priority":jc}))):new m(t,td(e),Yc.Default))}}Gc=td;class rd extends Ic{constructor(e){super(),this.indexPath_=e,f(!fc(e)&&".priority"!==lc(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?Th(e.name,t.name):r}makePost(e,t){var r=td(e),r=m.EMPTY_NODE.updateChild(this.indexPath_,r);return new Dc(t,r)}maxPost(){var e=m.EMPTY_NODE.updateChild(this.indexPath_,Zc);return new Dc(Ih,e)}toString(){return dc(this.indexPath_,0).join("/")}}class nd extends Ic{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Th(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return Dc.MIN}maxPost(){return Dc.MAX}makePost(e,t){var r=td(e);return new Dc(t,r)}toString(){return".value"}}let id=new nd;function sd(e){return{type:"value",snapshotNode:e}}function ad(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function od(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function ld(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class ud{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){f(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(od(t,a)):f(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(ad(t,r)):s.trackChildChange(ld(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(jc,(e,t)=>{r.hasChild(e)||i.trackChildChange(od(e,t))}),r.isLeafNode()||r.forEachChild(jc,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(ld(e,t,r)):i.trackChildChange(ad(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?m.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class hd{constructor(e){this.indexedFilter_=new ud(e.getIndex()),this.index_=e.getIndex(),this.startPost_=hd.getStartPost_(e),this.endPost_=hd.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 Dc(t,r))||(r=m.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?m.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(m.EMPTY_NODE),this);return t.forEachChild(jc,(e,t)=>{i.matches(new Dc(e,t))||(n=n.updateImmediateChild(e,m.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 cd{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 hd(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 Dc(t,r))||(r=m.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=m.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=m.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(m.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,m.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=(f(a.numChildren()===this.limit_,""),new Dc(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),u=this.rangedFilter_.matches(o);if(a.hasChild(t)){var h=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 u&&!r.isEmpty()&&0<=c?(null!=i&&i.trackChildChange(ld(t,r,h)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(od(t,h)),c=a.updateImmediateChild(t,m.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(ad(e.name,e.node)),c.updateImmediateChild(e.name,e.node)):c)}return!r.isEmpty()&&u&&0<=s(l,o)?(null!=i&&(i.trackChildChange(od(l.name,l.node)),i.trackChildChange(ad(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,m.EMPTY_NODE)):e}}class dd{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_=jc}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return f(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return f(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Dh}hasEnd(){return this.endSet_}getIndexEndValue(){return f(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return f(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Ih}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return f(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_===jc}copy(){var e=new dd;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 Bd(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 pd(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 fd(e,t){var r=e.copy();return r.index_=t,r}function gd(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===jc?"$priority":t.index_===id?"$value":t.index_===Nc?"$key":(f(t.index_ instanceof rd,"Unrecognized index type!"),t.index_.toString()),n.orderBy=ge(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=ge(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+ge(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=ge(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+ge(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function md(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_!==jc&&(r.i=t.index_.toString()),r}class Cd extends tc{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(f(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_=ah("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),Cd.getListenId_(e,n)),o={};this.listens_[a]=o;var r=gd(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),ve(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=Cd.getListenId_(e,t);delete this.listens_[r]}get(e){var t=gd(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+be(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=fe(n.responseText)}catch(e){wh("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&wh("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class vd{constructor(){this.rootNode_=m.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function _d(){return{value:null,children:new Map}}function yd(e,t,r){var n;fc(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=lc(t),e.children.has(n)||e.children.set(n,_d()),yd(e.children.get(n),t=hc(t),r))}function wd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{wd(t,new ac(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class Ed{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r={...e};return this.last_&&Sh(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class bd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new Ed(e);var r=1e4+2e4*Math.random();Ah(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Sh(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Ah(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function Dd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Id(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function Td(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(P=rc=rc||{})[P.OVERWRITE=0]="OVERWRITE",P[P.MERGE=1]="MERGE",P[P.ACK_USER_WRITE=2]="ACK_USER_WRITE",P[P.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class Sd{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=rc.ACK_USER_WRITE,this.source=Dd()}operationForChild(e){var t;return fc(this.path)?null!=this.affectedTree.value?(f(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new ac(e)),new Sd(oc(),t,this.revert)):(f(lc(this.path)===e,"operationForChild called for unrelated child."),new Sd(hc(this.path),this.affectedTree,this.revert))}}class Nd{constructor(e,t){this.source=e,this.path=t,this.type=rc.LISTEN_COMPLETE}operationForChild(e){return fc(this.path)?new Nd(this.source,oc()):new Nd(this.source,hc(this.path))}}class kd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=rc.OVERWRITE}operationForChild(e){return fc(this.path)?new kd(this.source,oc(),this.snap.getImmediateChild(e)):new kd(this.source,hc(this.path),this.snap)}}class Ad{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=rc.MERGE}operationForChild(e){var t;return fc(this.path)?(t=this.children.subtree(new ac(e))).isEmpty()?null:t.value?new kd(this.source,oc(),t.value):new Ad(this.source,oc(),t):(f(lc(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new Ad(this.source,hc(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class Rd{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 fc(e)?this.isFullyInitialized()&&!this.filtered_:(t=lc(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Od{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function xd(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}))}),Pd(r,i,"child_removed",e,n,t),Pd(r,i,"child_added",e,n,t),Pd(r,i,"child_moved",s,n,t),Pd(r,i,"child_changed",e,n,t),Pd(r,i,"value",e,n,t),i}function Pd(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 M("Should only compare child_ events.");var n=new Dc(e.childName,e.snapshotNode),i=new Dc(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 Fd(e,t){return{eventCache:e,serverCache:t}}function Ld(e,t,r,n){return Fd(new Rd(t,r,n),e.serverCache)}function Md(e,t,r,n){return Fd(e.eventCache,new Rd(t,r,n))}function Ud(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Vd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Gd;class Hd{static fromObject(e){let r=new Hd(null);return Sh(e,(e,t)=>{r=r.set(new ac(e),t)}),r}constructor(e,t=Gd=Gd||new Oc(lh)){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:oc(),value:this.value}:!fc(e)&&(r=lc(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(hc(e),t))?{path:pc(new ac(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return fc(e)?this:(t=lc(e),null!==(t=this.children.get(t))?t.subtree(hc(e)):new Hd(null))}set(e,t){var r,n;return fc(e)?new Hd(t,this.children):(n=lc(e),r=(this.children.get(n)||new Hd(null)).set(hc(e),t),n=this.children.insert(n,r),new Hd(this.value,n))}remove(t){if(fc(t))return this.children.isEmpty()?new Hd(null):new Hd(null,this.children);var r=lc(t),n=this.children.get(r);if(n){n=n.remove(hc(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new Hd(null):new Hd(this.value,e)}return this}get(e){var t;return fc(e)?this.value:(t=lc(e),(t=this.children.get(t))?t.get(hc(e)):null)}setTree(t,r){if(fc(t))return r;{var n=lc(t),i=(this.children.get(n)||new Hd(null)).setTree(hc(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Hd(this.value,e)}}fold(e){return this.fold_(oc(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(pc(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,oc(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!fc(e)&&(i=lc(e),n=this.children.get(i))?n.findOnPath_(hc(e),pc(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,oc(),t)}foreachOnPath_(e,t,r){var n,i;return fc(e)?this:(this.value&&r(t,this.value),n=lc(e),(i=this.children.get(n))?i.foreachOnPath_(hc(e),pc(t,n),r):new Hd(null))}foreach(e){this.foreach_(oc(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(pc(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class qd{constructor(e){this.writeTree_=e}static empty(){return new qd(new Hd(null))}}function jd(t,r,n){if(fc(r))return new qd(new Hd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Hd(n),s=t.writeTree_.setTree(r,s),new qd(s);{var s=i.path;let e=i.value;i=gc(s,r);return e=e.updateChild(i,n),new qd(t.writeTree_.set(s,e))}}function Kd(e,r,t){let n=e;return Sh(t,(e,t)=>{n=jd(n,pc(r,e),t)}),n}function zd(e,t){var r;return fc(t)?qd.empty():(r=e.writeTree_.setTree(t,new Hd(null)),new qd(r))}function Jd(e,t){return null!=Wd(e,t)}function Wd(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(gc(r.path,t)):null}function Qd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(jc,(e,t)=>{r.push(new Dc(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new Dc(e,t.value))}),r}function Yd(e,t){var r;return fc(t)?e:null!=(r=Wd(e,t))?new qd(new Hd(r)):new qd(e.writeTree_.subtree(t))}function $d(e){return e.writeTree_.isEmpty()}function Xd(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?(f(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(pc(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(pc(i,".priority"),r)}}}(oc(),e.writeTree_,t)}function Zd(e,t){return cB(t,e)}function eB(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);f(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 vc(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&vc(pc(e.path,r),t))return 1})(l,i.path)?s=!1:vc(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=rB(e.allWrites,tB,oc()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=zd(t.visibleWrites,i.path):Sh(i.children,e=>{t.visibleWrites=zd(t.visibleWrites,pc(i.path,e))}),!0)}function tB(e){return e.visible}function rB(e,t,r){let n=qd.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)vc(r,s)?(e=gc(r,s),n=jd(n,e,i.snap)):vc(s,r)&&(e=gc(s,r),n=jd(n,oc(),i.snap.getChild(e)));else{if(!i.children)throw M("WriteRecord should have .snap or .children");vc(r,s)?(e=gc(r,s),n=Kd(n,e,i.children)):vc(s,r)&&(fc(e=gc(s,r))?n=Kd(n,oc(),i.children):(s=ve(i.children,lc(e)))&&(i=s.getChild(hc(e)),n=jd(n,oc(),i)))}}}return n}function nB(e,t,r,n,i){var s;return n||i?(s=Yd(e.visibleWrites,t),!i&&$d(s)?r:i||null!=r||Jd(s,oc())?Xd(rB(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(vc(e.path,t)||vc(t,e.path))},t),r||m.EMPTY_NODE):null):null!=(s=Wd(e.visibleWrites,t))?s:$d(s=Yd(e.visibleWrites,t))?r:null!=r||Jd(s,oc())?Xd(s,r||m.EMPTY_NODE):null}function iB(e,t,r,n){return nB(e.writeTree,e.treePath,t,r,n)}function sB(e,t){{var r=e.writeTree;e=e.treePath;let i=m.EMPTY_NODE;var n=Wd(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(jc,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=Yd(r.visibleWrites,e);t.forEachChild(jc,(e,t)=>{var r=Xd(Yd(n,new ac(e)),t);i=i.updateImmediateChild(e,r)}),Qd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Qd(Yd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function aB(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,f(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=pc(e,t),Jd(i.visibleWrites,s)?null:$d(s=Yd(i.visibleWrites,s))?n.getChild(t):Xd(s,n.getChild(t));var i,s}function oB(e,t){return r=e.writeTree,e=pc(e.treePath,t),Wd(r.visibleWrites,e);var r}function lB(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),u=i;n=s,i=a;let t;var h=Yd(o.visibleWrites,e),c=Wd(h,oc());if(null!=c)t=c;else{if(null==r)return[];t=Xd(h,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],B=i.getCompare(),p=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=p.getNext();for(;e&&d.length<u;)0!==B(e,l)&&d.push(e),e=p.getNext();return d}}}function uB(e,t,r){return n=e.writeTree,r=r,i=pc(e.treePath,e=t),null!=(s=Wd(n.visibleWrites,i))?s:r.isCompleteForChild(e)?Xd(Yd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function hB(e,t){return cB(pc(e.treePath,t),e.writeTree)}function cB(e,t){return{treePath:e,writeTree:t}}class dB{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(f("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),f(".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,ld(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,od(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,ad(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw M("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,ld(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let BB=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class pB{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 Rd(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,uB(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Vd(this.viewCache_),n=lB(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function fB(e,t,r,n,i){var s=new dB;let a,o;if(r.type===rc.OVERWRITE){var l=r;a=l.source.fromUser?CB(e,t,l.path,l.snap,n,i,s):(f(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!fc(l.path),mB(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===rc.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let u=i;return e.foreach((e,t)=>{var r=pc(s,e);vB(i,lc(r))&&(u=CB(n,u,r,t,a,o,l))}),e.foreach((e,t)=>{var r=pc(s,e);vB(i,lc(r))||(u=CB(n,u,r,t,a,o,l))}),u})(e,t,l.path,l.children,n,i,s):(f(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),yB(e,t,l.path,l.children,n,i,o,s))}else if(r.type===rc.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=oB(s,i))return n;{var l=new pB(s,n,e),u=n.eventCache.getNode();let t;if(fc(i)||".priority"===lc(i)){let e;e=e=n.serverCache.isFullyInitialized()?iB(s,Vd(n)):(h=n.serverCache.getNode(),f(h instanceof m,"serverChildren would be complete if leaf node"),sB(s,h)),t=r.filter.updateFullNode(u,e,a)}else{var h=lc(i);let e=uB(s,h,n.serverCache);null==e&&n.serverCache.isCompleteForChild(h)&&(e=u.getImmediateChild(h)),(t=null!=e?r.filter.updateChild(u,h,e,hc(i),l,a):n.eventCache.getNode().hasChild(h)?r.filter.updateChild(u,h,m.EMPTY_NODE,hc(i),l,a):u).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=iB(s,Vd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=oB(s,oc()),Ld(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=oB(s,i))return t;let l=t.serverCache.isFiltered(),u=t.serverCache;if(null!=r.value){if(fc(i)&&u.isFullyInitialized()||u.isCompleteForPath(i))return mB(e,t,i,u.getNode().getChild(i),s,a,l,o);if(fc(i)){let r=new Hd(null);return u.getNode().forEachChild(Nc,(e,t)=>{r=r.set(new ac(e),t)}),yB(e,t,i,r,s,a,l,o)}return t}{let n=new Hd(null);return r.foreach((e,t)=>{var r=pc(i,e);u.isCompleteForPath(r)&&(n=n.set(e,u.getNode().getChild(r)))}),yB(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==rc.LISTEN_COMPLETE)throw M("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Md(t,l.getNode(),l.isFullyInitialized()||fc(e),l.isFiltered()),gB(i,l,e,r,BB,n))}var u,h,s=s.getChanges(),i=t,e=a,r=s,c=e.eventCache;return c.isFullyInitialized()&&(u=c.getNode().isLeafNode()||c.getNode().isEmpty(),h=Ud(i),0<r.length||!i.eventCache.isFullyInitialized()||u&&!c.getNode().equals(h)||!c.getNode().getPriority().equals(h.getPriority()))&&r.push(sd(Ud(e))),{viewCache:a,changes:s}}function gB(n,i,s,a,o,l){var u=i.eventCache;if(null!=oB(a,s))return i;{let t,r;if(fc(s))f(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(h=sB(a,(h=Vd(i))instanceof m?h:m.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),h,l)):(h=iB(a,Vd(i)),n.filter.updateFullNode(i.eventCache.getNode(),h,l));else{var h=lc(s);if(".priority"===h){f(1===uc(s),"Can't have a priority with additional path components");var c=u.getNode(),d=aB(a,s,c,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(c,d):u.getNode()}else{c=hc(s);let e;e=u.isCompleteForChild(h)?(r=i.serverCache.getNode(),null!=(d=aB(a,s,u.getNode(),r))?u.getNode().getImmediateChild(h).updateChild(c,d):u.getNode().getImmediateChild(h)):uB(a,h,i.serverCache),t=null!=e?n.filter.updateChild(u.getNode(),h,e,c,o,l):u.getNode()}}return Ld(i,t,u.isFullyInitialized()||fc(s),n.filter.filtersNodes())}}function mB(e,t,r,n,i,s,a,o){var l=t.serverCache;let u;var h=a?e.filter:e.filter.getIndexedFilter();if(fc(r))u=h.updateFullNode(l.getNode(),n,null);else if(h.filtersNodes()&&!l.isFiltered()){var c=l.getNode().updateChild(r,n);u=h.updateFullNode(l.getNode(),c,null)}else{c=lc(r);if(!l.isCompleteForPath(r)&&1<uc(r))return t;var d=hc(r),B=l.getNode().getImmediateChild(c).updateChild(d,n);u=".priority"===c?h.updatePriority(l.getNode(),B):h.updateChild(l.getNode(),c,B,d,BB,null)}c=Md(t,u,l.isFullyInitialized()||fc(r),h.filtersNodes());return gB(e,c,r,i,new pB(i,c,s),o)}function CB(t,r,n,i,e,s,a){var o=r.eventCache;let l,u;var h=new pB(e,r,s);if(fc(n))u=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=Ld(r,u,!0,t.filter.filtersNodes());else{var c=lc(n);if(".priority"===c)u=t.filter.updatePriority(r.eventCache.getNode(),i),l=Ld(r,u,o.isFullyInitialized(),o.isFiltered());else{var d,B=hc(n),p=o.getNode().getImmediateChild(c);let e;e=fc(B)?i:null!=(d=h.getCompleteChild(c))?".priority"===cc(B)&&d.getChild(Bc(B)).isEmpty()?d:d.updateChild(B,i):m.EMPTY_NODE,l=p.equals(e)?r:Ld(r,t.filter.updateChild(o.getNode(),c,e,B,h,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function vB(e,t){return e.eventCache.isCompleteForChild(t)}function _B(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function yB(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let u=i,r,h=(r=fc(e)?t:new Hd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;h.hasChild(e)&&(r=_B(0,i.serverCache.getNode().getImmediateChild(e),t),u=mB(n,u,new ac(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;h.hasChild(e)||r||(r=_B(0,i.serverCache.getNode().getImmediateChild(e),t),u=mB(n,u,new ac(e),r,s,a,o,l))}),u}class wB{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new ud(r.getIndex()),r=(e=r).loadsAllData()?new ud(e.getIndex()):new(e.hasLimit()?cd:hd)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(m.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(m.EMPTY_NODE,s.getNode(),null),a=new Rd(a,i.isFullyInitialized(),n.filtersNodes()),i=new Rd(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Fd(i,a),this.eventGenerator_=new Od(this.query_)}get query(){return this.query_}}function EB(e){return 0===e.eventRegistrations_.length}function bB(n,i,s){let a=[];if(s){f(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 DB(e,t,r,n){t.type===rc.MERGE&&null!==t.source.queryId&&(f(Vd(e.viewCache_),"We should always have a full cache before handling merges"),f(Ud(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=fB(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,f(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),f(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),f(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,IB(e,s.changes,s.viewCache.eventCache.getNode(),null)}function IB(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return xd(e.eventGenerator_,t,r,i)}let TB;class SB{constructor(){this.views=new Map}}function NB(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),f(null!=e,"SyncTree gave us an op for an invalid query."),DB(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(DB(s,r,n,i));return e}}function kB(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=iB(n,s?i:null),t=!1;t=!!e||(e=i instanceof m?sB(n,i):m.EMPTY_NODE,!1);a=Fd(new Rd(e,t,!1),new Rd(i,s,!1));return new wB(r,a)}}function AB(e,t,n,i,s,r){var a=kB(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(jc,(e,t)=>{r.push(ad(e,t))}),a.isFullyInitialized()&&r.push(sd(a.getNode())),IB(i,r,a.getNode(),s)}}function RB(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=LB(e);if("default"===i)for(var[l,u]of e.views.entries())a=a.concat(bB(u,r,n)),EB(u)&&(e.views.delete(l),u.query._queryParams.loadsAllData()||s.push(u.query));else{var h=e.views.get(i);h&&(a=a.concat(bB(h,r,n)),EB(h))&&(e.views.delete(i),h.query._queryParams.loadsAllData()||s.push(h.query))}return o&&!LB(e)&&s.push((f(TB,"Reference.ts has not been loaded"),new TB(t._repo,t._path))),{removed:s,events:a}}function OB(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function xB(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Vd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!fc(s)&&!n.getImmediateChild(lc(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function PB(e,t){var r;return t._queryParams.loadsAllData()?MB(e):(r=t._queryIdentifier,e.views.get(r))}function FB(e,t){return null!=PB(e,t)}function LB(e){return null!=MB(e)}function MB(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let UB;let VB=1;class GB{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Hd(null),this.pendingWriteTree_={visibleWrites:qd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function HB(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,f(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=jd(s.visibleWrites,a,o)),s.lastWriteId=n,i?$B(e,new kd(Dd(),t,r)):[]}function qB(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,f(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=Kd(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Hd.fromObject(r);return $B(e,new Ad(Dd(),t,o))}function jB(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(eB(e.pendingWriteTree_,t)){let t=new Hd(null);return null!=n.snap?t=t.set(oc(),!0):Sh(n.children,e=>{t=t.set(new ac(e),!0)}),$B(e,new Sd(n.path,t,r))}return[]}function KB(e,t,r){return $B(e,new kd(Id(),t,r))}function zB(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||FB(o,t))){var u=RB(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),u.removed);if(l=u.events,!s){var u=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),h=r.syncPointTree_.findOnPath(a,(e,t)=>LB(t));if(u&&!h){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&LB(t))return[MB(t)];{let r=[];return t&&(r=OB(t)),Sh(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<c.length;++e){var d=c[e],B=d.query,d=ZB(r,d);r.listenProvider_.startListening(sp(B),ep(r,B),d.hashFn,d.onComplete)}}}!h&&0<o.length&&!i&&(u?r.listenProvider_.stopListening(sp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(tp(e));r.listenProvider_.stopListening(sp(e),t)}))}var p=r,f=o;for(let e=0;e<f.length;++e){var g,m=f[e];m._queryParams.loadsAllData()||(m=tp(m),g=p.queryToTagMap.get(m),p.queryToTagMap.delete(m),p.tagToQueryMap.delete(g))}}return l}function JB(e,t,r,n){var i,s,a=rp(e,n);return null!=a?(i=(a=np(a)).path,a=a.queryId,s=gc(i,t),ip(e,i,new kd(Td(a),s,r))):[]}function WB(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=gc(e,i);s=s||xB(t,r),a=a||LB(t)}),e.syncPointTree_.get(i));o?(a=a||LB(o),s=s||xB(o,oc())):(o=new SB,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=m.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=xB(t,oc());r&&(s=s.updateImmediateChild(e,r))}));var u,h=FB(o,t),c=(h||t._queryParams.loadsAllData()||(u=tp(t),f(!e.queryToTagMap.has(u),"View does not exist, but we have a tag"),c=VB++,e.queryToTagMap.set(u,c),e.tagToQueryMap.set(c,u)),Zd(e.pendingWriteTree_,i));let d=AB(o,t,r,c,s,l);return h||a||n||(u=PB(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=ep(t,e),s=ZB(t,r),s=t.listenProvider_.startListening(sp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)f(!LB(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!fc(e)&&t&&LB(t))return[MB(t).query];{let r=[];return t&&(r=r.concat(OB(t).map(e=>e.query))),Sh(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(sp(o),ep(t,o))}}return s})(e,t,u))),d}function QB(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=xB(t,gc(e,n));if(r)return r});return nB(r,n,i,t,!0)}function YB(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=gc(e,n);i=i||xB(t,r)}),e.syncPointTree_.get(n));r?i=i||xB(r,oc()):(r=new SB,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new Rd(i,!0,!1):null,o=Zd(e.pendingWriteTree_,t._path);return Ud(kB(r,t,o,s?a.getNode():m.EMPTY_NODE,s).viewCache_)}function $B(e,t){return function a(t,o,l,u){{if(fc(t.path))return XB(t,o,l,u);{let e=o.get(oc()),r=(null==l&&null!=e&&(l=xB(e,oc())),[]),n=lc(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=hB(u,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(NB(e,t,u,l)):r}}}(t,e.syncPointTree_,null,Zd(e.pendingWriteTree_,oc()))}function XB(s,e,a,o){var t=e.get(oc());null==a&&null!=t&&(a=xB(t,oc()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=hB(o,e),i=s.operationForChild(e);i&&(l=l.concat(XB(i,t,r,n)))}),l=t?l.concat(NB(t,s,o,a)):l}function ZB(o,e){let l=e.query,u=ep(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||m.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?u?(t=o,r=l._path,n=u,(a=rp(t,n))?(i=(a=np(a)).path,a=a.queryId,s=gc(i,r),ip(t,i,new Nd(Td(a),s))):[]):(n=o,r=l._path,$B(n,new Nd(Id(),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),zB(o,l,null,i))}}}function ep(e,t){var r=tp(t);return e.queryToTagMap.get(r)}function tp(e){return e._path.toString()+"$"+e._queryIdentifier}function rp(e,t){return e.tagToQueryMap.get(t)}function np(e){var t=e.indexOf("$");return f(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new ac(e.substr(0,t))}}function ip(e,t,r){var n=e.syncPointTree_.get(t),i=(f(n,"Missing sync point for query tag that we're tracking"),Zd(e.pendingWriteTree_,t));return NB(n,r,i,null)}function sp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(f(UB,"Reference.ts has not been loaded"),new UB(e._repo,e._path)):e}class ap{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new ap(t)}node(){return this.node_}}class op{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=pc(this.path_,e);return new op(this.syncTree_,t)}node(){return QB(this.syncTree_,this.path_)}}let lp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},up=function(e,t,r){return e&&"object"==typeof e?(f(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?hp(e[".sv"],t,r):"object"==typeof e[".sv"]?cp(e[".sv"],t):void f(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},hp=function(e,t,r){if("timestamp"===e)return r.timestamp;f(!1,"Unexpected server value: "+e)},cp=function(e,t,r){e.hasOwnProperty("increment")||f(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&f(!1,"Unexpected increment value: "+n),t.node());return f(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},dp=function(e,t,r,n){return pp(t,new op(r,e),n)},Bp=function(e,t,r){return pp(e,new ap(t),r)};function pp(e,n,i){var t,r,s=e.getPriority().val(),s=up(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=up(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Vc(t,td(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Vc(s))),r.forEachChild(jc,(e,t)=>{var r=pp(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class fp{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function gp(e,t){let r=t instanceof ac?t:new ac(t),n=e,i=lc(r);for(;null!==i;){var s=ve(n.node.children,i)||{children:{},childCount:0};n=new fp(i,n,s),r=hc(r),i=lc(r)}return n}function mp(e){return e.node.value}function Cp(e,t){e.node.value=t,wp(e)}function vp(e){return 0<e.node.childCount}function _p(r,n){Sh(r.node.children,(e,t)=>{n(new fp(e,r,t))})}function yp(e){return new ac(null===e.parent?e.name:yp(e.parent)+"/"+e.name)}function wp(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===mp(e)&&!vp(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,wp(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,wp(t)))}function Ep(e,t,r,n){n&&void 0===t||Fp(Ae(e,"value"),t,r)}function bp(e,t,n,r){let i=Ae(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(i+" must be an object containing the children to replace.");let s=[];Sh(t,(e,t)=>{var r=new ac(e);if(Fp(i,t,pc(n,r)),".priority"===cc(r)&&!Pp(t))throw new Error(i+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");s.push(r)});{var a=i,o=s;let t,r;for(t=0;t<o.length;t++){var l=dc(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!Rp(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(mc);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&vc(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}function Dp(e,t,r){if(bh(t))throw new Error(Ae(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Pp(t))throw new Error(Ae(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}function Ip(e,t,r,n){if(void 0!==r&&!Rp(r))throw new Error(Ae(e,t)+'was an invalid key = "'+r+'".  Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function Tp(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),Lp(e,t,r)}function Sp(e,t){if(".info"===lc(t))throw new Error(e+" failed = Can't modify data under /.info/")}let Np=/[\[\].#$\/\u0000-\u001F\u007F]/,kp=/[\[\].#$\u0000-\u001F\u007F]/,Ap=10485760,Rp=function(e){return"string"==typeof e&&0!==e.length&&!Np.test(e)},Op=function(e){return"string"==typeof e&&0!==e.length&&!kp.test(e)},xp=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Op(e)},Pp=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!bh(e)||e&&"object"==typeof e&&Ce(e,".sv")},Fp=function(a,e,t){let o=t instanceof ac?new _c(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+wc(o));if("function"==typeof e)throw new Error(a+"contains a function "+wc(o)+" with contents = "+e.toString());if(bh(e))throw new Error(a+"contains "+e.toString()+" "+wc(o));if("string"==typeof e&&e.length>Ap/3&&xe(e)>Ap)throw new Error(a+"contains a string greater than "+Ap+" utf8 bytes "+wc(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Sh(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!Rp(e)))throw new Error(a+" contains an invalid key ("+e+") "+wc(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_+=xe(e),yc(r),Fp(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=xe(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+wc(o)+" in addition to actual children.")}},Lp=function(e,t,r,n){if(!Op(r))throw new Error(Ae(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Mp=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!Rp(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!xp(r))throw new Error(Ae(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Up{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Vp(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||Cc(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 Gp(e,t,r){Vp(e,r),qp(e,e=>Cc(e,t))}function Hp(e,t,r){Vp(e,r),qp(e,e=>vc(e,t)||vc(t,e))}function qp(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(),mh&&_h("event: "+a.toString()),Ph(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let jp="repo_interrupt",Kp=25;class zp{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 Up,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=_d(),this.transactionQueueTree_=new fp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Jp(a,e,t){if(a.stats_=Jh(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 Cd(a.repoInfo_,(e,t,r,n)=>{Yp(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>$p(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{ge(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new bc(a.repoInfo_,e,(e,t,r,n)=>{Yp(a,e,t,r,n)},e=>{$p(a,e)},e=>{var r;r=a,Sh(e,(e,t)=>{Xp(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 bd(a.stats_,a.server_),r=a.repoInfo_.toString(),zh[r]||(zh[r]=e()),zh[r]),a.infoData_=new vd,a.infoSyncTree_=new GB({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=KB(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),Xp(a,"connected",!1),a.serverSyncTree_=new GB({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);Hp(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Wp(e){var t=e.infoData_.getNode(new ac(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function Qp(e){return lp({timestamp:Wp(e)})}function Yp(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,u,h,c=new ac(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],B=c;0<(d=i?n?(h=ye(r,e=>td(e)),t=e.serverSyncTree_,s=c,a=h,(h=rp(t,i))?(o=(h=np(h)).path,h=h.queryId,l=gc(o,s),u=Hd.fromObject(a),ip(t,o,new Ad(Td(h),l,u))):[]):(o=td(r),JB(e.serverSyncTree_,c,o,i)):n?(h=ye(r,e=>td(e)),s=e.serverSyncTree_,a=c,t=h,l=Hd.fromObject(t),$B(s,new Ad(Id(),a,l))):(u=td(r),KB(e.serverSyncTree_,c,u))).length&&(B=hf(e,c)),Hp(e.eventQueue_,B,d)}function $p(e,t){if(Xp(e,"connected",t),!1===t){var a=e;af(a,"onDisconnectEvents");let n=Qp(a),i=_d(),s=(wd(a.onDisconnect_,oc(),(e,t)=>{var r=dp(e,t,a.serverSyncTree_,n);yd(i,e,r)}),[]);wd(i,oc(),(e,t)=>{s=s.concat(KB(a.serverSyncTree_,e,t));var r=pf(a,e);hf(a,r)}),a.onDisconnect_=_d(),Hp(a.eventQueue_,oc(),s)}}function Xp(e,t,r){var n=new ac("/.info/"+t),i=td(r),i=(e.infoData_.updateSnapshot(n,i),KB(e.infoSyncTree_,n,i));Hp(e.eventQueue_,n,i)}function Zp(e){return e.nextWriteId_++}function ef(n,i,e,t,s){af(n,"set",{path:i.toString(),value:e,priority:t});var r=Qp(n),a=td(e,t),o=QB(n.serverSyncTree_,i),o=Bp(a,o,r);let l=Zp(n);r=HB(n.serverSyncTree_,i,o,l,!0),Vp(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||wh("set at "+i+" failed: "+e),jB(n.serverSyncTree_,l,!r));Hp(n.eventQueue_,i,r),of(0,s,e,t)}),o=pf(n,i);hf(n,o),Hp(n.eventQueue_,o,[])}function tf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return fc(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(jc,(e,t)=>{yd(r,new ac(e),t)}),e(r,t)):!(0<r.children.size)||(n=lc(t),t=hc(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),of(0,i,e,t)})}function rf(r,n,e,i){let s=td(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&yd(r.onDisconnect_,n,s),of(0,i,e,t)})}function nf(e,t,r){let n;n=".info"===lc(t._path)?zB(e.infoSyncTree_,t,r):zB(e.serverSyncTree_,t,r),Gp(e.eventQueue_,t._path,n)}function sf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(jp)}function af(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),_h(r,...t)}function of(e,n,i,s){n&&Ph(()=>{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 lf(e,t,r){return QB(e.serverSyncTree_,t,r)||m.EMPTY_NODE}function uf(o,l=o.transactionQueueTree_){if(l||Bf(o,l),mp(l)){var u=df(o,l),e=(f(0<u.length,"Sending zero length transaction queue"),u.every(e=>0===e.status));if(e){var h=o;var c=yp(l);var d=u;let e=d.map(e=>e.currentWriteId),t=lf(h,c,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var B=d[a],p=(f(0===B.status,"tryToSendTransactionQueue_: items in queue should all be run."),B.status=1,B.retryCount++,gc(c,B.path));r=r.updateChild(p,B.currentOutputSnapshotRaw)}let i=r.val(!0),s=c;h.server_.put(s.toString(),i,t=>{af(h,"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(jB(h.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();Bf(h,gp(h.transactionQueueTree_,c)),uf(h,h.transactionQueueTree_),Hp(h.eventQueue_,c,r);for(let t=0;t<n.length;t++)Ph(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{wh("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}hf(h,c)}},n)}}else vp(l)&&_p(l,e=>{uf(o,e)})}function hf(e,t){var r=cf(e,t),n=yp(r),r=df(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 u=s[n],h=gc(a,u.path);let e=!1,t;if(f(null!==h,"rerunTransactionsUnderNode_: relativePath should not be null."),4===u.status)e=!0,t=u.abortReason,r=r.concat(jB(i.serverSyncTree_,u.currentWriteId,!0));else if(0===u.status)if(u.retryCount>=Kp)e=!0,t="maxretry",r=r.concat(jB(i.serverSyncTree_,u.currentWriteId,!0));else{var h=lf(i,u.path,l),c=(u.currentInputSnapshot=h,s[n].update(h.val()));if(void 0!==c){Fp("transaction failed: Data returned ",c,u.path);let e=td(c);"object"==typeof c&&null!=c&&Ce(c,".priority")||(e=e.updatePriority(h.getPriority()));var c=u.currentWriteId,d=Qp(i),h=Bp(e,h,d);u.currentOutputSnapshotRaw=e,u.currentOutputSnapshotResolved=h,u.currentWriteId=Zp(i),l.splice(l.indexOf(c),1),r=(r=r.concat(HB(i.serverSyncTree_,u.path,h,u.currentWriteId,u.applyLocally))).concat(jB(i.serverSyncTree_,c,!0))}else e=!0,t="nodata",r=r.concat(jB(i.serverSyncTree_,u.currentWriteId,!0))}Hp(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)))}Bf(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Ph(o[e]);uf(i,i.transactionQueueTree_)}return n}function cf(e,t){let r,n=e.transactionQueueTree_;for(r=lc(t);null!==r&&void 0===mp(n);)n=gp(n,r),t=hc(t),r=lc(t);return n}function df(e,t){var r=[];return function t(r,e,n){let i=mp(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);_p(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function Bf(t,r){var n=mp(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,Cp(r,0<n.length?n:void 0)}_p(r,e=>{Bf(t,e)})}function pf(t,e){var r=yp(cf(t,e)),n=gp(t.transactionQueueTree_,e);return((e,t)=>{let r=e.parent;for(;null!==r;){if(t(r))return;r=r.parent}})(n,e=>{ff(t,e)}),ff(t,n),function t(e,r,n){n&&r(e),_p(e,e=>{t(e,r,!0)})}(n,e=>{ff(t,e)}),r}function ff(i,s){var a=mp(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3===a[r].status?(f(t===r-1,"All SENT_NEEDS_ABORT items should be at beginning of queue."),t=r):1===a[r].status?(f(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(f(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(jB(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null)));-1===t?Cp(s,void 0):a.length=t+1,Hp(i.eventQueue_,yp(s),e);for(let n=0;n<o.length;n++)Ph(o[n])}}let gf=function(e,t){var r=mf(e),n=r.namespace,i=("firebase.com"===r.domain&&yh(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||yh("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||Eh(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Hh(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new ac(r.pathString)}},mf=function(n){let i="",s="",a="",o="",l="",u=!0,h="https",c=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(h=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]):wh(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),B=(0<=(e=i.indexOf(":"))?(u="https"===h||"wss"===h,c=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===B.toLowerCase()?s="localhost":B.split(".").length<=2?s=B:(B=i.indexOf("."),a=i.substring(0,B).toLowerCase(),s=i.substring(B+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:c,domain:s,subdomain:a,secure:u,scheme:h,pathString:o,namespace:l}},Cf="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",vf=(()=>{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]=Cf.charAt(e%64),e=Math.floor(e/64);f(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+=Cf.charAt(a[r]);return f(20===i.length,"nextPushId: Length should be 20."),i}})();class _f{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+":"+ge(this.snapshot.exportVal())}}class yf{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 wf{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return f(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}}let Ef=class{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return tf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Sp("OnDisconnect.remove",this._path);var e=new Z;return rf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Sp("OnDisconnect.set",this._path),Ep("OnDisconnect.set",e,this._path,!1);var t=new Z;return rf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){Sp("OnDisconnect.setWithPriority",this._path),Ep("OnDisconnect.setWithPriority",e,this._path,!1),Dp("OnDisconnect.setWithPriority",t);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=td(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&yd(i.onDisconnect_,s,r),of(0,a,e,t)})}return n.promise}update(e){Sp("OnDisconnect.update",this._path),bp("OnDisconnect.update",e,this._path);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),_e(r)?(_h("onDisconnect().update() called with empty data.  Don't do anything."),of(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Sh(r,(e,t)=>{var r=td(t);yd(n.onDisconnect_,pc(i,e),r)}),of(0,s,e,t)}),t.promise}};class bf{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return fc(this._path)?null:cc(this._path)}get ref(){return new Sf(this._repo,this._path)}get _queryIdentifier(){var e=md(this._queryParams),e=hh(e);return"{}"===e?"default":e}get _queryObject(){return md(this._queryParams)}isEqual(e){var t,r,n;return(e=_(e))instanceof bf&&(t=this._repo===e._repo,r=Cc(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 Df(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function If(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===Nc){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()!==Dh)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Ih)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===jc){if(null!=t&&!Pp(t)||null!=r&&!Pp(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(f(e.getIndex()instanceof rd||e.getIndex()===id,"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 Tf(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 Sf extends bf{constructor(e,t){super(e,t,new dd,!1)}get parent(){var e=Bc(this._path);return null===e?null:new Sf(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}let Nf=class yg{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 ac(e),r=Rf(this.ref,e);return new yg(this._node.getChild(t),r,jc)}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 yg(t,Rf(this.ref,e),jc)))}hasChild(e){var t=new ac(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 kf(e,t){return(e=_(e))._checkNotDeleted("ref"),void 0!==t?Rf(e._root,t):e._root}function Af(e,t){(e=_(e))._checkNotDeleted("refFromURL");var r=gf(t,e._repo.repoInfo_.nodeAdmin),n=(Mp("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||yh("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),kf(e,r.path.toString())}function Rf(e,t){return(null===lc((e=_(e))._path)?Tp:Lp)("child","path",t),new Sf(e._repo,pc(e._path,t))}function Of(e,t){e=_(e),Sp("set",e._path),Ep("set",t,e._path,!1);var r=new Z;return ef(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function xf(e,t){bp("update",t,e._path);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));af(a,"update",{path:o.toString(),value:e});let r=!0,n=Qp(a),s={};if(Sh(e,(e,t)=>{r=!1,s[e]=dp(pc(o,e),td(t),a.serverSyncTree_,n)}),r)_h("update() called with empty data.  Don't do anything."),of(0,l,"ok",void 0);else{let i=Zp(a);var u=qB(a.serverSyncTree_,o,s,i);Vp(a.eventQueue_,u),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||wh("update at "+o+" failed: "+e),jB(a.serverSyncTree_,i,!r)),n=0<r.length?hf(a,o):o;Hp(a.eventQueue_,n,r),of(0,l,e,t)}),Sh(e,e=>{var t=pf(a,pc(o,e));hf(a,t)}),Hp(a.eventQueue_,o,[])}}return i.promise}function Pf(t){t=_(t);var i,s,a,e=new wf(()=>{}),e=new Ff(e);return i=t._repo,s=t,a=e,(null!=(e=YB(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=td(e).withIndex(s._queryParams.getIndex());WB(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?KB(i.serverSyncTree_,s._path,r):(t=ep(i.serverSyncTree_,s),JB(i.serverSyncTree_,s._path,r,t)),Hp(i.eventQueue_,s._path,n),zB(i.serverSyncTree_,s,a,null,!0),r},e=>(af(i,"get for query "+ge(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new Nf(e,new Sf(t._repo,t._path),t._queryParams.getIndex()))}class Ff{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new _f("value",this,new Nf(e.snapshotNode,new Sf(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 yf(this,e,t):null}matches(e){return e instanceof Ff&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class Lf{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 yf(this,e,t):null}createEvent(e,t){f(null!=e.childName,"Child events should have a childName.");var r=Rf(new Sf(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new _f(e.type,this,new Nf(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 Lf&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function Mf(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)=>{nf(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new wf(t,s||void 0);let o="value"===e?new Ff(a):new Lf(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===lc(i._path)?WB(r.infoSyncTree_,i,t):WB(r.serverSyncTree_,i,t),Gp(r.eventQueue_,i._path,e)}return()=>nf(n._repo,n,o)}function Uf(e,t,r,n){return Mf(e,"value",t,r,n)}function Vf(e,t,r,n){Mf(e,"child_added",t,r,n)}function Gf(e,t,r,n){Mf(e,"child_changed",t,r,n)}function Hf(e,t,r,n){Mf(e,"child_moved",t,r,n)}function qf(e,t,r,n){Mf(e,"child_removed",t,r,n)}function jf(e,t,r){let n=null;var i=r?new wf(r):null;"value"===t?n=new Ff(i):t&&(n=new Lf(t,i)),nf(e._repo,e,n)}var t=class{};let Kf=class extends t{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){Ep("endAt",this._value,e._path,!0);var t=pd(e._queryParams,this._value,this._key);if(Tf(t),If(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new bf(e._repo,e._path,t,e._orderByCalled)}};class zf extends t{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){Ep("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===Nc||r?pd(e,t,r):pd(e,t,Dh)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(Tf(t),If(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new bf(e._repo,e._path,t,e._orderByCalled)}}let Jf=class extends t{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){Ep("startAt",this._value,e._path,!0);var t=Bd(e._queryParams,this._value,this._key);if(Tf(t),If(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new bf(e._repo,e._path,t,e._orderByCalled)}};class Wf extends t{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){Ep("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===Nc||r?Bd(e,t,r):Bd(e,t,Ih)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(Tf(t),If(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new bf(e._repo,e._path,t,e._orderByCalled)}}class Qf extends t{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 bf(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 Yf extends t{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 bf(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 $f extends t{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Df(e,"orderByChild");var t=new ac(this._path);if(fc(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new rd(t),t=fd(e._queryParams,t);return If(t),new bf(e._repo,e._path,t,!0)}}class Xf extends t{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){Df(e,"orderByKey");var t=fd(e._queryParams,Nc);return If(t),new bf(e._repo,e._path,t,!0)}}class Zf extends t{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){Df(e,"orderByPriority");var t=fd(e._queryParams,jc);return If(t),new bf(e._repo,e._path,t,!0)}}class eg extends t{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){Df(e,"orderByValue");var t=fd(e._queryParams,id);return If(t),new bf(e._repo,e._path,t,!0)}}class tg extends t{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(Ep("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 Kf(this._value,this._key)._apply(new Jf(this._value,this._key)._apply(e))}}function rg(e,...t){let r=_(e);for(var n of t)r=n._apply(r);return r}P=Sf,f(!TB,"__referenceConstructor has already been defined"),TB=P,P=Sf,f(!UB,"__referenceConstructor has already been defined"),UB=P;let ng="FIREBASE_DATABASE_EMULATOR_HOST",ig={},sg=!1;function ag(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||yh("Can't determine Firebase Database URL. Be sure to include  a Project ID when calling firebase.initializeApp()."),_h("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),gf(s,i)),o=a.repoInfo,l,u=void 0;(u="undefined"!=typeof process&&process.env?process.env[ng]:u)?(l=!0,s=`http://${u}?ns=`+o.namespace,a=gf(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var h=i&&l?new Mh(Mh.OWNER):new Lh(e.name,e.options,t),h=(Mp("Invalid Firebase Database URL",a),fc(a.path)||yh("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=ig[t.name];var s;return i||(i={},ig[t.name]=i),(s=i[e.toURLString()])&&yh("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new zp(e,sg,r,n),i[e.toURLString()]=s})(o,e,h,new Fh(e,r)));return new og(h,e)}let og=class{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Jp(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new Sf(this._repo,oc())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=ig[t])&&r[e.key]===e||yh(`Database ${t}(${e.repoInfo_}) has already been deleted.`),sf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&yh("Cannot call "+e+" on a deleted database.")}};function lg(){Zh.IS_TRANSPORT_INITIALIZED&&wh("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function ug(){lg(),Qh.forceDisallow()}function hg(){lg(),Xh.forceDisallow(),Qh.forceAllow()}function cg(e,t,r,n={}){(e=_(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&we(n,a.repoInfo_.emulatorOptions))return;yh("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&yh('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 Mh(Mh.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:ee(n.mockUserToken,e.app.options.projectId),o=new Mh(i)),Ve(t)&&Ge(t),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=Ve(e.substring(0,i)),r.repoInfo_=new Hh(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function dg(e){(e=_(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(jp)}function Bg(e,t){vh(e,t)}let pg={".sv":"timestamp"};let fg=class{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function gg(i,e,t){if(i=_(i),Sp("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=t?.applyLocally??!0;let s=new Z;var n=Uf(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new Nf(r,new Sf(i._repo,i._path),jc),s.resolve(new fg(t,n)))},l=n,u=r;af(t,"transaction on "+a);var h,n={path:a,update:e,onComplete:o,status:null,order:fh(),applyLocally:u,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=lf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(h=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{Fp("transaction failed: Data returned ",h,n.path),n.status=0;var c=gp(t.transactionQueueTree_,a),d=mp(c)||[];d.push(n),Cp(c,d);let e;"object"==typeof h&&null!==h&&Ce(h,".priority")?(e=ve(h,".priority"),f(Pp(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=QB(t.serverSyncTree_,a)||m.EMPTY_NODE,e=c.getPriority().val());d=Qp(t),c=td(h,e),h=Bp(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=h,n.currentWriteId=Zp(t),HB(t.serverSyncTree_,a,h,n.currentWriteId,n.applyLocally));Hp(t.eventQueue_,a,r),uf(t,t.transactionQueueTree_)}return s.promise}bc.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},bc.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},th(Lt),St(new He("database",(e,{instanceIdentifier:t})=>ag(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),Gt(Zu,"1.1.6",VM),Gt(Zu,"1.1.6","esm2020");function mg(e){var t="FIREBASE WARNING: "+e;Cg.warn(t)}let Cg=new $e("@firebase/database-compat");class vg{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Re("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),Re("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),Re("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),Re("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,mg("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.")}Re("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class _g{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 yg{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),Lp("DataSnapshot.child","path",e),new yg(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),Lp("DataSnapshot.hasChild","path",e),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),Re("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new yg(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 Eg(this._database,this._delegate.ref)}get ref(){return this.getRef()}}let wg=class GR{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){l("Query.on",2,4,arguments.length),Re("Query.on","callback",r,!1);let i=GR.getCancelAndContextArgs_("Query.on",t,n);var s=(e,t)=>{r.call(i.context,new yg(this.database,e),t)},a=(s.userCallback=r,s.context=i.context,i.cancel?.bind(i.context));switch(e){case"value":return Uf(this._delegate,s,a),r;case"child_added":return Vf(this._delegate,s,a),r;case"child_removed":return qf(this._delegate,s,a),r;case"child_changed":return Gf(this._delegate,s,a),r;case"child_moved":return Hf(this._delegate,s,a),r;default:throw new Error(Ae("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;if(void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ae(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Re("Query.off","callback",t,!0),Oe("Query.off","context",r),t?((n=()=>{}).userCallback=t,n.context=r,jf(this._delegate,e,n)):jf(this._delegate,e)}get(){return Pf(this._delegate).then(e=>new yg(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Re("Query.once","callback",n,!0);let i=GR.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new yg(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":Uf(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Vf(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":qf(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Gf(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Hf(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ae("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 GR(this.database,rg(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 Qf(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new GR(this.database,rg(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 Yf(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new GR(this.database,rg(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 Lp("orderByChild","path",e),new $f(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new GR(this.database,rg(this._delegate,new Xf))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new GR(this.database,rg(this._delegate,new Zf))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new GR(this.database,rg(this._delegate,new eg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new GR(this.database,rg(this._delegate,([e=null,t]=[e,t],Ip("startAt","key",t),new Jf(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new GR(this.database,rg(this._delegate,(e=e,t=t,Ip("startAfter","key",t),new Wf(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new GR(this.database,rg(this._delegate,(e=e,t=t,Ip("endAt","key",t),new Kf(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new GR(this.database,rg(this._delegate,(e=e,t=t,Ip("endBefore","key",t),new zf(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new GR(this.database,rg(this._delegate,(e=e,t=t,Ip("equalTo","key",t),new tg(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 GR)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,Re(e,"cancel",n.cancel,!0),n.context=r,Oe(e,"context",n.context);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ae(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new Eg(this.database,new Sf(this._delegate._repo,this._delegate._path))}},Eg=class uL extends wg{constructor(e,t){super(e,new bf(t._repo,t._path,new dd,!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 uL(this.database,Rf(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new uL(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new uL(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Re("Reference.set","onComplete",t,!0);var r=Of(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,mg("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.")}Sp("Reference.update",this._delegate._path),Re("Reference.update","onComplete",r,!0);var e=xf(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Re("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(Sp("setWithPriority",e._path),Ep("setWithPriority",t,e._path,!1),Dp("setWithPriority",r),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return ef(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),Re("Reference.remove","onComplete",t,!0);e=this._delegate,Sp("remove",e._path);var e,r=Of(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Re("Reference.transaction","transactionUpdate",e,!1),Re("Reference.transaction","onComplete",t,!0);var n="Reference.transaction",i="applyLocally",s=r;if(void 0!==s&&"boolean"!=typeof s)throw new Error(Ae(n,i)+"must be a boolean.");var a=gg(this._delegate,e,{applyLocally:r}).then(e=>new _g(e.committed,new yg(this.database,e.snapshot)));return t&&a.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),a}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Re("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=_(r),Sp("setPriority",r._path),Dp("setPriority",e),n=new Z,ef(r._repo,pc(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),Re("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=_(e),Sp("push",e._path),Ep("push",t,e._path,!0);var r=Wp(e._repo),r=vf(r),n=Rf(e,r);let i=Rf(e,r),s;return s=null!=t?Of(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 uL(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new uL(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return Sp("Reference.onDisconnect",this._delegate._path),new vg(new Ef(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}};class bg{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:ug,forceLongPolling:hg}}useEmulator(e,t,r={}){cg(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof Eg?(t=Af(this._delegate,e.toString()),new Eg(this,t)):(t=kf(this._delegate,e),new Eg(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=Af(this._delegate,e);return new Eg(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=_(e=this._delegate))._checkNotDeleted("goOffline"),sf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),dg(this._delegate)}}bg.ServerValue={TIMESTAMP:pg,increment:e=>({".sv":{increment:e}})};ar=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){th(r);var o=new Ke("database-standalone"),l=new je("auth-internal",o);l.setComponent(new He("auth-internal",()=>n,"PRIVATE"));let u=void 0;return i&&(u=new je("app-check-internal",o)).setComponent(new He("app-check-internal",()=>i,"PRIVATE")),{instance:new bg(ag(e,l,u,t,a),e),namespace:s}}});let Dg=bg.ServerValue;(P=lr).INTERNAL.registerComponent(new He("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new bg(n,r)},"PUBLIC").setServiceProps({Reference:Eg,Query:wg,Database:bg,DataSnapshot:yg,enableLogging:Bg,INTERNAL:ar,ServerValue:Dg}).setMultipleInstances(!0)),P.registerVersion("@firebase/database-compat","2.1.8");var Ig,Tg,sr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Sg(e,t,r){"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}function Ng(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e===t&&n:t.has(e))return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e);throw new TypeError("Cannot read private member from an object whose class did not declare it")}!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}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=t+(s^r&(i^s))+n[0]+3614090360&4294967295;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<<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 l(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=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.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.v=function(e,t){var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.C;let i=this.h,s=0;for(;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.A=function(){var t=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var r=1;r<t.length-8;++r)t[r]=0;for(var r=8*this.o,n=t.length-8;n<t.length;++n)t[n]=255&r,r/=256;for(this.v(t),t=Array(16),n=r=0;n<4;++n)for(let e=0;e<32;e+=8)t[r++]=this.g[n]>>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new l([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new l([0|e],e<0?-1:0);var t,r,n}function u(e){if(isNaN(e)||!isFinite(e))return h;if(e<0)return f(u(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new l(t,0)}var h=o(0),c=o(1),d=o(16777216);function B(t){if(0==t.h){for(let e=0;e<t.g.length;e++)if(0!=t.g[e])return;return 1}}function p(e){return-1==e.h}function f(e){var t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new l(r,~e.h).add(c)}function g(e,t){return e.add(f(t))}function m(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function C(e,t){this.g=e,this.h=t}function v(e,t){if(B(t))throw Error("division by zero");if(B(e))return new C(h,h);if(p(e))return t=v(f(e),t),new C(f(t.g),f(t.h));if(p(t))return t=v(e,f(t)),new C(f(t.g),t.h);if(30<e.g.length){if(p(e)||p(t))throw Error("slowDivide_ only works with positive integers.");for(var r=c,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=y(r,1),s=y(n,1),n=y(n,2),r=y(r,2);!B(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=y(n,1),r=y(r,1)}return t=g(e,i.j(t)),new C(i,t)}for(i=h;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);p(a)||0<a.l(e);)a=(s=u(r-=n)).j(t);B(s)&&(s=c),i=i.add(s),e=g(e,a)}return new C(i,e)}function _(e){var t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new l(r,e.h)}function y(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let 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 l(i,e.h)}(e=l.prototype).m=function(){if(p(this))return-f(this).m();let e=0,t=1;for(let n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*t,t*=4294967296}return e},e.toString=function(t){if((t=t||10)<2||36<t)throw Error("radix out of range: "+t);if(B(this))return"0";if(p(this))return"-"+f(this).toString(t);var r=u(Math.pow(t,6)),n=this;let i="";for(;;){var s=v(n,r).g;let e=((0<(n=g(n,s.j(r))).g.length?n.g[0]:n.h)>>>0).toString(t);if(B(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return p(e=g(this,e))?-1:B(e)?0:1},e.abs=function(){return p(this)?f(this):this},e.add=function(e){var t=Math.max(this.g.length,e.g.length),r=[];let n=0;for(let a=0;a<=t;a++){var i=n+(65535&this.i(a))+(65535&e.i(a)),s=(i>>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new l(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(B(this)||B(t))return h;if(p(this))return p(t)?f(this).j(f(t)):f(f(this).j(t));if(p(t))return f(this.j(f(t)));if(this.l(d)<0&&t.l(d)<0)return u(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let e=0;e<t.g.length;e++){var i=this.i(n)>>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,m(r,2*n+2*e),r[2*n+2*e+1]+=i*o,m(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,m(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,m(r,2*n+2*e+2)}for(t=0;t<e;t++)r[t]=r[2*t+1]<<16|r[2*t];for(t=e;t<2*e;t++)r[t]=0;return new l(r,0)},e.B=function(e){return v(this,e).h},e.and=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new l(r,this.h&e.h)},e.or=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new l(r,this.h|e.h)},e.xor=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new l(r,this.h^e.h)},r.prototype.digest=r.prototype.A,r.prototype.reset=r.prototype.u,r.prototype.update=r.prototype.v,Tg=r,l.prototype.multiply=l.prototype.j,l.prototype.modulo=l.prototype.B,l.prototype.compare=l.prototype.l,l.prototype.toNumber=l.prototype.m,l.prototype.getBits=l.prototype.i,l.fromNumber=u,l.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 f(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');var n=u(Math.pow(r,8));let i=h;for(let o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),a=parseInt(t.substring(o,o+s),r);i=(s<8?(s=u(Math.pow(r,s)),i.j(s)):i=i.j(n)).add(u(a))}return i},Ig=l}).apply(void 0!==sr?sr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var kg,Ag,Rg,Og,xg,Pg,Fg,Lg,Mg,Ug,Vg,Gg,Hg,qg,jg,u,Kg,E,zg,Jg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},b=(!(function(){var e,F=Object.defineProperty;var L=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Jg&&Jg];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);function M(e,t){if(t)e:{var r=L;e=e.split(".");for(var n=0;n<e.length-1;n++){var i=e[n];if(!(i in r))break e;r=r[i]}(t=t(n=r[e=e[e.length-1]]))!=n&&null!=t&&F(r,e,{configurable:!0,writable:!0,value:t})}}M("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),M("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),M("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var U=U||{},N=this||self;function V(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function G(e,t,r){return e.call.apply(e.bind,arguments)}function m(e,t,r){return(m=G).apply(null,arguments)}function H(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 t(e,s){function t(){}t.prototype=s.prototype,e.Z=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Ob=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)}}var q="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function j(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 K(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if("array"==(n="object"!=(n=typeof r)?n:r?Array.isArray(r)?"array":n:"null")||"object"==n&&"number"==typeof r.length){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)}}var z=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 J,e=>e.reset());class J{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 r,n=!1,W=new class{constructor(){this.h=this.g=null}add(e,t){var r=z.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},Q=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(Y)}};function Y(){for(var e;e=(()=>{let e=W,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=>{N.setTimeout(()=>{throw e},0)})(e)}var t=z;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var $=(()=>{if(!N.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};N.addEventListener("test",r,t),N.removeEventListener("test",r,t)}catch(e){}return e})();function k(e){return/^[\s\xa0]*$/.test(e)}function s(e,t){o.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}t(s,o),s.prototype.init=function(e,t){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,(this.i=e).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var X="closure_listenable_"+(1e6*Math.random()|0),Z=0;function ee(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=++Z,this.da=this.fa=!1}function te(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function re(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function ne(e){var t,r={};for(t in e)r[t]=e[t];return r}let ie="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function se(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<ie.length;e++)r=ie[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}function ae(e){this.src=e,this.g={},this.h=0}function oe(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)&&(te(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function le(e,t,r,n){for(let s=0;s<e.length;++s){var i=e[s];if(!i.da&&i.listener==t&&i.capture==!!r&&i.ha==n)return s}return-1}ae.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),le(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ee(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ue="closure_lm_"+(1e6*Math.random()|0),he={};function ce(r,n,i,s,a){if(Array.isArray(n)){for(let e=0;e<n.length;e++)ce(r,n[e],i,s,a);return null}if(i=me(i),r&&r[X])return r.J(n,i,!!V(s)&&!!s.capture,a);{var o=r,l=n,u=i,h=!1,c=s,d=a;if(!l)throw Error("Invalid event type");let e=V(c)?!!c.capture:!!c,t=fe(o);if(t||(o[ue]=t=new ae(o)),!(u=t.add(l,u,h,e,d)).proxy)if(h=(()=>{let r=pe;return function e(t){return r.call(e.src,e.listener,t)}})(),(u.proxy=h).src=o,h.listener=u,o.addEventListener)void 0===(c=$?c:e)&&(c=!1),o.addEventListener(l.toString(),h,c);else if(o.attachEvent)o.attachEvent(Be(l.toString()),h);else{if(!o.addListener||!o.removeListener)throw Error("addEventListener and attachEvent are unavailable.");o.addListener(h)}return u}}function de(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[X]?oe(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(Be(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=fe(t))?(oe(r,e),0==r.h&&(r.src=null,t[ue]=null)):te(e)))}function Be(e){return e in he?he[e]:he[e]="on"+e}function pe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&de(e),r.call(n,t))}function fe(e){return(e=e[ue])instanceof ae?e:null}var ge="__closure_events_fn_"+(1e9*Math.random()>>>0);function me(t){return"function"==typeof t?t:(t[ge]||(t[ge]=function(e){return t.handleEvent(e)}),t[ge])}function a(){i.call(this),this.i=new ae(this),(this.M=this).G=null}function l(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,se(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=Ce(s=t.g=r[a],i,!0,t)&&n;if(n=Ce(s=t.g=e,i,!0,t)&&n,n=Ce(s,i,!1,t)&&n,r)for(a=0;a<r.length;a++)n=Ce(s=t.g=r[a],i,!1,t)&&n}function Ce(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let l=0;l<t.length;++l){var s,a,o=t[l];o&&!o.da&&o.capture==r&&(s=o.listener,a=o.ha||o.src,o.fa&&oe(e.i,o),i=!1!==s.call(a,n)&&i)}return i&&!n.defaultPrevented}function ve(e){e.g=((e,t)=>{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:N.setTimeout(e,t||0)})(()=>{e.g=null,e.i&&(e.i=!1,ve(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[X]=!0,a.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=V(i)?!!i.capture:!!i,n=me(n),t&&t[X]?(t=t.i,(a=String(r).toString())in t.g&&-1<(n=le(r=t.g[a],n,i,s))&&(te(r[n]),Array.prototype.splice.call(r,n,1),0==r.length)&&(delete t.g[a],t.h--)):(t=t&&fe(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?le(r,n,i,s):t)?r[t]:null)&&de(n)}(this,e,t,r,n)},a.prototype.N=function(){if(a.Z.N.call(this),this.i){var t,r=this.i;for(t in r.g){var n=r.g[t];for(let e=0;e<n.length;e++)te(n[e]);delete r.g[t],r.h--}}this.G=null},a.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},a.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class _e extends i{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:ve(this)}N(){super.N(),this.g&&(N.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function u(e){i.call(this),this.h=e,this.g={}}t(u,i);var ye=[];function we(e){re(e.g,function(e,t){this.g.hasOwnProperty(t)&&de(e)},e),e.g={}}u.prototype.N=function(){u.Z.N.call(this),we(this)},u.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ee=N.JSON.stringify,be=N.JSON.parse,De=class{stringify(e){return N.JSON.stringify(e,void 0)}parse(e){return N.JSON.parse(e,void 0)}};function Ie(){}function Te(){}var Se={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function Ne(){o.call(this,"d")}function ke(){o.call(this,"c")}t(Ne,o),t(ke,o);var h={},Ae=null;function Re(){return Ae=Ae||new a}function Oe(e){o.call(this,h.Ia,e)}function xe(){var e=Re();l(e,new Oe(e))}function Pe(e,t){o.call(this,h.STAT_EVENT,e),this.stat=t}function A(e){var t=Re();l(t,new Pe(t,e))}function Fe(e,t){o.call(this,h.Ja,e),this.size=t}function C(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return N.setTimeout(function(){e()},t)}function c(){this.g=!0}function R(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(let e=1;e<i.length;e++)i[e]=""}}}return Ee(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}h.Ia="serverreachability",t(Oe,o),h.STAT_EVENT="statevent",t(Pe,o),h.Ja="timingevent",t(Fe,o),c.prototype.ua=function(){this.g=!1},c.prototype.info=function(){};var Le={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Me={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function Ue(){}function d(e){return encodeURIComponent(String(e))}function B(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new u(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new Ve}function Ve(){this.i=null,this.g="",this.h=!1}t(Ue,Ie),Ue.prototype.g=function(){return new XMLHttpRequest};var Ge=new Ue,He={},qe={};function je(e,t,r){e.M=1,e.A=ot(f(t)),e.u=r,e.R=!0,Ke(e,null)}function Ke(e,t){e.F=Date.now(),Je(e),e.B=f(e.A);var a,o,l,u,h,c,r=e.B,n=e.S,i=(Array.isArray(n)||(n=[String(n)]),vt(r.i,"t",n),e.C=0,r=e.j.L,e.h=new Ve,e.g=er(e.j,r?t:null,!e.u),0<e.P&&(e.O=new _e(m(e.Y,e,e.g),e.P)),t=e.V,r=e.g,n=e.ba,"readystatechange");Array.isArray(i)||(i&&(ye[0]=i.toString()),i=ye);for(let d=0;d<i.length;d++){var s=ce(r,i[d],n||t.handleEvent,!1,t.h||t);if(!s)break;t.g[s.key]=s}t=e.J?ne(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),xe(),a=e.i,o=e.v,l=e.B,u=e.l,h=e.S,c=e.u,a.info(function(){if(a.g)if(c){var t="",r=c.split("&");for(let e=0;e<r.length;e++){var n,i,s=r[e].split("=");1<s.length&&(n=s[0],s=s[1],t=2<=(i=n.split("_")).length&&"type"==i[1]?t+(n+"=")+s+"&":t+(n+"=redacted&"))}}else t=null;else t=c;return"XMLHTTP REQ ("+u+") [attempt "+h+"]: "+o+"\n"+l+"\n"+t})}function ze(e){return e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function Je(e){e.T=Date.now()+e.H,We(e,e.H)}function We(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=C(m(e.aa,e),t)}function Qe(e){e.D&&(N.clearTimeout(e.D),e.D=null)}function O(e){0==e.j.I||e.K||Yt(e.j,e)}function x(e){Qe(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,we(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function Ye(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||tt(r.h,e)))if(!e.L&&tt(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g){if(!(r.g.F+3e3<e.F))break e;Qt(r),Ut(r)}zt(r),A(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=C(m(r.Va,r),6e3));et(r.h)<=1&&r.ta&&(r.ta=void 0)}else I(r,11)}else if(!e.L&&r.g!=e||Qt(r),!k(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,u,h,c,d,B,p,f=i[t],g=f[0];g<=r.K||(r.K=g,f=f[1],2==r.I?"c"==f[0]?(r.M=f[1],r.ba=f[2],null!=(s=f[3])&&(r.ka=s,r.j.info("VER="+r.ka)),null!=(a=f[4])&&(r.za=a,r.j.info("SVER="+r.za)),null!=(o=f[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.O=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(u=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(h=n.h).g||-1==u.indexOf("spdy")&&-1==u.indexOf("quic")&&-1==u.indexOf("h2")||(h.j=h.l,h.g=new Set,h.h&&(rt(h,h.h),h.h=null)),n.G)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.wa=c,_(n.J,n.G,c)),r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),d=e,(n=r).na=Zt(n,n.L?n.ba:null,n.W),d.L?(nt(n.h,d),B=d,(p=n.O)&&(B.H=p),B.D&&(Qe(B),Je(B)),n.g=d):Kt(n),0<r.i.length&&Gt(r)):"stop"!=f[0]&&"close"!=f[0]||I(r,7):3==r.I&&("stop"==f[0]||"close"==f[0]?"stop"==f[0]?I(r,7):Mt(r):"noop"!=f[0]&&r.l&&r.l.qa(f),r.A=0))}xe()}catch(e){}}B.prototype.ba=function(e){e=e.target;var t=this.O;t&&3==P(e)?t.j():this.Y(e)},B.prototype.Y=function(e){try{if(e==this.g)e:{var t=P(this.g),r=this.g.ya();this.g.ca();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.la()||Pt(this.g)))){this.K||4!=t||7==r||xe(),Qe(this);var n,i,s=this.g.ca(),a=(this.X=s,(e=>{if(!ze(e))return e.g.la();var t=Pt(e.g);if(""===t)return"";let r="",n=t.length,i=4==P(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return x(e),O(e),"";e.h.i=new N.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g})(this));if(this.o=200==s,w=this.i,E=this.v,b=this.B,D=this.l,I=this.S,T=t,S=s,w.info(function(){return"XMLHTTP RESP ("+D+") [ attempt "+I+"]: "+E+"\n"+b+"\n"+T+" "+S}),this.o){if(this.U&&!this.L){t:{if(this.g){var o,l=this.g;if((o=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!k(o)){var u=o;break t}}u=null}if(!(e=u)){this.o=!1,this.m=3,A(12),x(this),O(this);break e}R(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,Ye(this,e)}if(this.R){for(e=!0;!this.K&&this.C<a.length;){if(v=a,y=_=void 0,_=(C=this).C,(n=-1==(y=v.indexOf("\n",_))?qe:(_=Number(v.substring(_,y)),isNaN(_)?He:(y+=1)+_>v.length?qe:(v=v.slice(y,y+_),C.C=y+_,v)))==qe){4==t&&(this.m=4,A(14),e=!1),R(this.i,this.l,null,"[Incomplete Response]");break}if(n==He){this.m=4,A(15),R(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}R(this.i,this.l,n,null),Ye(this,n)}ze(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,A(16),e=!1),this.o=this.o&&e,e?0<a.length&&!this.W&&(this.W=!0,(i=this.j).g==this)&&i.aa&&!i.P&&(i.j.info("Great, no buffering proxy detected. Bytes received: "+a.length),Jt(i),i.P=!0,A(11)):(R(this.i,this.l,a,"[Invalid Chunked Response]"),x(this),O(this))}else R(this.i,this.l,a,null),Ye(this,a);4==t&&x(this),this.o&&!this.K&&(4==t?Yt(this.j,this):(this.o=!1,Je(this)))}else{{var h=this.g;var c,d,B,p={};h=(h.g&&2<=P(h)&&h.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<h.length;e++)k(h[e])||(c=(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})(h[e]),d=c[0],"string"==typeof(c=c[1])&&(c=c.trim(),B=p[d]||[],(p[d]=B).push(c)));var f,g=p,m=function(e){return e.join(", ")};for(f in g)m.call(void 0,g[f],f,g)}400==s&&0<a.indexOf("Unknown SID")?(this.m=3,A(12)):(this.m=0,A(13)),x(this),O(this)}}}}catch(e){}var C,v,_,y,w,E,b,D,I,T,S},B.prototype.cancel=function(){this.K=!0,x(this)},B.prototype.aa=function(){this.D=null;var e,t,r=Date.now();0<=r-this.T?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(xe(),A(17)),x(this),this.m=2,O(this)):We(this,this.T-r)};var $e=class{constructor(e,t){this.g=e,this.map=t}};function Xe(e){this.l=e||10,e=N.PerformanceNavigationTiming?0<(e=N.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(N.chrome&&N.chrome.loadTimes&&N.chrome.loadTimes()&&N.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 Ze(e){return e.h||e.g&&e.g.size>=e.j}function et(e){return e.h?1:e.g?e.g.size:0}function tt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function rt(e,t){e.g?e.g.add(t):e.h=t}function nt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function it(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return j(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Xe.prototype.cancel=function(){if(this.i=it(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 st=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function p(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof p?(this.l=e.l,g(this,e.j),this.o=e.o,this.g=e.g,v(this,e.u),this.h=e.h,at(this,_t(e.i)),this.m=e.m):e&&(t=String(e).match(st))?(this.l=!1,g(this,t[1]||"",!0),this.o=y(t[2]||""),this.g=y(t[3]||"",!0),v(this,t[4]),this.h=y(t[5]||"",!0),at(this,t[6]||"",!0),this.m=y(t[7]||"")):(this.l=!1,this.i=new ft(null,this.l))}function f(e){return new p(e)}function g(e,t,r){e.j=r?y(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function v(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof ft?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(w(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(gt(this,t),vt(this,r,e))},n)),n.j=i):(r||(t=lt(t,Bt)),e.i=new ft(t,e.l))}function _(e,t,r){e.i.set(t,r)}function ot(e){return _(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function y(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function lt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ut),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ut(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}p.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(lt(t,ht,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(lt(t,ht,!0),"@"),e.push(d(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.u))||e.push(":",String(r)),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(lt(r,"/"==r.charAt(0)?dt:ct,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",lt(r,pt)),e.join("")},p.prototype.resolve=function(e){var t=f(this);let r=!!e.j;r?g(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)v(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e<i.length;){var a=i[e++];"."==a?n&&e==i.length&&s.push(""):".."==a?((1<s.length||1==s.length&&""!=s[0])&&s.pop(),n&&e==i.length&&s.push("")):(s.push(a),n=!0)}n=s.join("/")}else n=i;return r?t.h=n:r=""!==e.i.toString(),r?at(t,_t(e.i)):r=!!e.m,r&&(t.m=e.m),t};var ht=/[#\/\?@]/g,ct=/[#\?:]/g,dt=/[#\?]/g,Bt=/[#\?@]/g,pt=/#/g;function ft(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function w(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var n=r.i,i=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(n){n=n.split("&");for(let r=0;r<n.length;r++){var s=n[r].indexOf("=");let e,t=null;0<=s?(e=n[r].substring(0,s),t=n[r].substring(s+1)):e=n[r],i(e,t?decodeURIComponent(t.replace(/\+/g," ")):"")}}}}function gt(e,t){w(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function mt(e,t){return w(e),t=E(e,t),e.g.has(t)}function Ct(e,t){w(e);let r=[];if("string"==typeof t)mt(e,t)&&(r=r.concat(e.g.get(E(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function vt(e,t,r){gt(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),j(r)),e.h+=r.length)}function _t(e){var t=new ft;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function b(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function yt(){this.g=new De}function wt(e){this.i=e.Sb||null,this.h=e.ab||!1}function Et(e,t){a.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function bt(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function Dt(e){e.readyState=4,e.l=null,e.j=null,e.B=null,It(e)}function It(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Tt(e){let r="";return re(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function St(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Tt(r),"string"==typeof e?null!=r&&d(r):_(e,t,r))}function D(e){a.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(e=ft.prototype).add=function(e,t){w(this),this.i=null,e=E(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){w(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.set=function(e,t){return w(this),this.i=null,mt(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=Ct(this,e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";var r=[],e=Array.from(this.g.keys());for(let s=0;s<e.length;s++){var n=d(i=e[s]),i=Ct(this,i);for(let t=0;t<i.length;t++){let e=n;""!==i[t]&&(e+="="+d(i[t])),r.push(e)}}return this.i=r.join("&")},t(wt,Ie),wt.prototype.g=function(){return new Et(this.i,this.h)},t(Et,a),(e=Et.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,It(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;var t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||N).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Dt(this)),this.readyState=0},e.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,It(this)),this.g)&&(this.readyState=3,It(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==N.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;bt(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=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.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Dt:It)(this),3==this.readyState)&&bt(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,Dt(this))},e.Na=function(e){this.g&&(this.response=e,Dt(this))},e.ga=function(){this.g&&Dt(this)},e.setRequestHeader=function(e,t){this.A.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(Et.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(D,a);var Nt=/^https?$/i,kt=["POST","PUT"];function At(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,Rt(e),xt(e)}function Rt(e){e.A||(e.A=!0,l(e,"complete"),l(e,"error"))}function Ot(t){if(t.h&&void 0!==U)if(t.v&&4==P(t))setTimeout(t.Ca.bind(t),0);else if(l(t,"readystatechange"),4==P(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(st)[1]||null;!e&&N.self&&N.self.location&&(e=N.self.location.protocol.slice(0,-1)),r=!Nt.test(e?e.toLowerCase():"")}e=r}if(e)l(t,"complete"),l(t,"success");else{t.o=6;try{var s=2<P(t)?t.g.statusText:""}catch(e){s=""}t.l=s+" ["+t.ca()+"]",Rt(t)}}finally{xt(t)}}}function xt(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);var r=e.g;e.g=null,t||l(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function P(e){return e.g?e.g.readyState:0}function Pt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Ft(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Lt(e){this.za=0,this.i=[],this.j=new c,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Ft("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Ft("baseRetryDelayMs",5e3,e),this.Za=Ft("retryDelaySeedMs",1e4,e),this.Ta=Ft("forwardChannelMaxRetries",2,e),this.va=Ft("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new Xe(e&&e.concurrentRequestLimit),this.Ba=new yt,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function Mt(e){if(Vt(e),3==e.I){var t=e.V++,r=f(e.J);if(_(r,"SID",e.M),_(r,"RID",t),_(r,"TYPE","terminate"),qt(e,r),(t=new B(e,e.j,t)).M=2,t.A=ot(f(r)),r=!1,N.navigator&&N.navigator.sendBeacon)try{r=N.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&N.Image&&((new Image).src=t.A,r=!0),r||(t.g=er(t.j,null),t.g.ea(t.A)),t.F=Date.now(),Je(t)}Xt(e)}function Ut(e){e.g&&(Jt(e),e.g.cancel(),e.g=null)}function Vt(e){Ut(e),e.v&&(N.clearTimeout(e.v),e.v=null),Qt(e),e.h.cancel(),e.m&&("number"==typeof e.m&&N.clearTimeout(e.m),e.m=null)}function Gt(e){var t;Ze(e.h)||e.m||(e.m=!0,t=e.Ea,r||Q(),n||(r(),n=!0),W.add(t,e),e.D=0)}function Ht(e,t){var r=t?t.l:e.V++,n=f(e.J);_(n,"SID",e.M),_(n,"RID",r),_(n,"AID",e.K),qt(e,n),e.u&&e.o&&St(n,e.u,e.o),r=new B(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=jt(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),rt(e.h,r),je(r,n,t)}function qt(e,r){e.H&&re(e.H,function(e,t){_(r,t,e)}),e.l&&re({},function(e,t){_(r,t,e)})}function jt(e,t,i){i=Math.min(e.i.length,i);var s=e.l?m(e.l.Ka,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{o="req"+o+"_"||"";try{var u,h,c=l instanceof Map?l:Object.entries(l);for([u,h]of c){let e=h;V(h)&&(e=Ee(h)),a.push(o+u+"="+encodeURIComponent(e))}}catch(e){throw a.push(o+"type="+encodeURIComponent("_badmap")),e}}catch(e){s&&s(l)}}if(e){c=a.join("&");break e}}c=void 0}return e=e.i.splice(0,i),t.G=e,c}function Kt(e){var t;e.g||e.v||(e.Y=1,t=e.Da,r||Q(),n||(r(),n=!0),W.add(t,e),e.A=0)}function zt(e){return!(e.g||e.v||3<=e.A)&&(e.Y++,e.v=C(m(e.Da,e),$t(e,e.A)),e.A++,1)}function Jt(e){null!=e.B&&(N.clearTimeout(e.B),e.B=null)}function Wt(e){e.g=new B(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=f(e.na),r=(_(t,"RID","rpc"),_(t,"SID",e.M),_(t,"AID",e.K),_(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&_(t,"TO",e.ia),_(t,"TYPE","xmlhttp"),qt(e,t),e.u&&e.o&&St(t,e.u,e.o),e.O&&(e.g.H=e.O),e.g);e=e.ba,r.M=1,r.A=ot(f(t)),r.u=null,r.R=!0,Ke(r,e)}function Qt(e){null!=e.C&&(N.clearTimeout(e.C),e.C=null)}function Yt(e,t){var r,n,i,s=null;if(e.g==t){Qt(e),Jt(e),e.g=null;var a=2}else{if(!tt(e.h,t))return;s=t.G,nt(e.h,t),a=1}if(0!=e.I)if(t.o)(1==a?(s=t.u?t.u.length:0,t=Date.now()-t.F,r=e.D,l(a=Re(),new Fe(a,s)),Gt):Kt)(e);else if(3==(r=t.m)||0==r&&0<t.X||(1!=a||(i=t,et((n=e).h)>=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=C(m(n.Ea,n,i),$t(n,n.D)),n.D++,0)))&&(2!=a||!zt(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:I(e,5);break;case 4:I(e,10);break;case 3:I(e,6);break;default:I(e,2)}}function $t(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function I(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=m(e.bb,e),n=!(i=e.Ua),i=new p(i||"//www.google.com/images/cleardot.gif"),N.location&&"http"==N.location.protocol||g(i,"https"),ot(i),(n?(t,r)=>{var n=new c;if(N.Image){let e=new Image;e.onload=H(b,n,"TestLoadImage: loaded",!0,r,e),e.onerror=H(b,n,"TestLoadImage: error",!1,r,e),e.onabort=H(b,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=H(b,n,"TestLoadImage: timeout",!1,r,e),N.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new c,n=new AbortController,i=setTimeout(()=>{n.abort(),b(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?b(r,0,!0,t):b(r,0,!1,t)}).catch(()=>{clearTimeout(i),b(r,0,!1,t)})})(i.toString(),r)):A(2),e.I=0,e.l&&e.l.pa(t),Xt(e),Vt(e)}function Xt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=it(e.h)).length&&0==e.i.length||(K(e.ja,t),K(e.ja,e.i),e.h.i.length=0,j(e.i),e.i.length=0),e.l.oa())}function Zt(e,t,r){var n,i,s=r instanceof p?f(r):new p(r);return""!=s.g?(t&&(s.g=t+"."+s.g),v(s,s.u)):(s=(n=N.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new p(null),s&&g(i,s),t&&(i.g=t),n&&v(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&_(s,r,t),_(s,"VER",e.ka),qt(e,s),s}function er(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new D(new wt({ab:r})):new D(e.ma)).Fa(e.L),t}function tr(){}function rr(){}function T(e,t){a.call(this),this.g=new Lt(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!k(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!k(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new S(this)}function nr(e){Ne.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 ir(){ke.call(this),this.status=1}function S(e){this.g=e}(e=D.prototype).Fa=function(e){this.H=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.o=0,this.A=!1,this.h=!0,this.g=(this.L||Ge).g(),this.g.onreadystatechange=q(m(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void At(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=N.FormData&&e instanceof N.FormData,0<=Array.prototype.indexOf.call(kt,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.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(e),this.v=!1}catch(e){At(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,l(this,"complete"),l(this,"abort"),xt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),xt(this,!0)),D.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Ot(this):this.Xa())},e.Xa=function(){Ot(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2<P(this)?this.g.status:-1}catch(e){return-1}},e.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.La=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),be(t)},e.ya=function(){return this.o},e.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Lt.prototype).ka=8,e.I=1,e.connect=function(e,t,r,n){A(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=Zt(this,null,this.W),Gt(this)},e.Ea=function(t){if(this.m)if(this.m=null,1==this.I){if(!t){this.V=Math.floor(1e5*Math.random()),t=this.V++;var r=new B(this,this.j,t);let e=this.o;if(this.U&&(e?se(e=ne(e),this.U):e=this.U),null!==this.u||this.R||(r.J=e,e=null),this.S)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=jt(this,r,n),_(i=f(this.J),"RID",t),_(i,"CVER",22),this.G&&_(i,"X-HTTP-Session-Id",this.G),qt(this,i),e&&(this.R?n="headers="+d(Tt(e))+"&"+n:this.u&&St(i,this.u,e)),rt(this.h,r),this.Ra&&_(i,"TYPE","init"),this.S?(_(i,"$req",n),_(i,"SID","null"),r.U=!0,je(r,i,null)):je(r,i,n),this.I=2}}else 3==this.I&&(t?Ht(this,t):0==this.i.length||Ze(this.h)||Ht(this))},e.Da=function(){var e;this.v=null,Wt(this),this.aa&&!(this.P||null==this.g||this.T<=0)&&(e=4*this.T,this.j.info("BP detection timer enabled: "+e),this.B=C(m(this.Wa,this),e))},e.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,A(10),Ut(this),Wt(this))},e.Va=function(){null!=this.C&&(this.C=null,Ut(this),zt(this),A(19))},e.bb=function(e){e?(this.j.info("Successfully pinged google.com"),A(2)):(this.j.info("Failed to ping google.com"),A(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=tr.prototype).ra=function(){},e.qa=function(){},e.pa=function(){},e.oa=function(){},e.isActive=function(){return!0},e.Ka=function(){},rr.prototype.g=function(e,t){return new T(e,t)},t(T,a),T.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},T.prototype.close=function(){Mt(this.g)},T.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=Ee(e),e=t),r.i.push(new $e(r.Ya++,e)),3==r.I&&Gt(r)},T.prototype.N=function(){this.g.l=null,delete this.j,Mt(this.g),delete this.g,T.Z.N.call(this)},t(nr,Ne),t(ir,ke),t(S,tr),S.prototype.ra=function(){l(this.g,"a")},S.prototype.qa=function(e){l(this.g,new nr(e))},S.prototype.pa=function(e){l(this.g,new ir)},S.prototype.oa=function(){l(this.g,"b")},rr.prototype.createWebChannel=rr.prototype.g,T.prototype.send=T.prototype.o,T.prototype.open=T.prototype.m,Lg=function(){return new rr},Fg=Re,Pg=h,xg={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},Le.NO_ERROR=0,Le.TIMEOUT=8,Le.HTTP_ERROR=6,Og=Le,Me.COMPLETE="complete",Rg=Me,(Te.EventType=Se).OPEN="a",Se.CLOSE="b",Se.ERROR="c",Se.MESSAGE="d",a.prototype.listen=a.prototype.J,Ag=Te,D.prototype.listenOnce=D.prototype.K,D.prototype.getLastError=D.prototype.Ha,D.prototype.getLastErrorCode=D.prototype.ya,D.prototype.getStatus=D.prototype.ca,D.prototype.getResponseJson=D.prototype.La,D.prototype.getResponseText=D.prototype.la,D.prototype.send=D.prototype.ea,D.prototype.setWithCredentials=D.prototype.Fa,kg=D}).apply(void 0!==Jg?Jg:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),(e=class{}).FOLD_CASE=1,e.LITERAL=2,e.CLASS_NL=4,e.DOT_NL=8,e.ONE_LINE=16,e.NON_GREEDY=32,e.PERL_X=64,e.UNICODE_GROUPS=128,e.WAS_DOLLAR=256,e.LOOKBEHIND=512,e.MATCH_NL=e.CLASS_NL|e.DOT_NL,e.PERL=e.CLASS_NL|e.ONE_LINE|e.PERL_X|e.UNICODE_GROUPS,e.POSIX=0,e.UNANCHORED=0,e.ANCHOR_START=1,e.ANCHOR_BOTH=2,e);let Wg={CASE_INSENSITIVE:1,DOTALL:2,MULTILINE:4,DISABLE_UNICODE_GROUPS:8,LONGEST_MATCH:16,LOOKBEHINDS:512},Qg=new Int32Array(128),Yg=new Int32Array(128),$g=65535;for(let _U=0;_U<128;_U++)97<=_U&&_U<=122?Qg[_U]=_U-32:Qg[_U]=_U,65<=_U&&_U<=90?Yg[_U]=_U+32:Yg[_U]=_U;Sg(t=class{static toUpperCase(e){var t,r,n;return e<128?Qg[e]:(r=(t=String.fromCodePoint(e).toUpperCase()).codePointAt(0)>$g?2:1,t.length>r||(n=(r=String.fromCodePoint(t.codePointAt(0)).toLowerCase()).codePointAt(0)>$g?2:1,r.length>n)||r.codePointAt(0)!==e?e:t.codePointAt(0))}static toLowerCase(e){var t,r,n;return e<128?Yg[e]:(r=(t=String.fromCodePoint(e).toLowerCase()).codePointAt(0)>$g?2:1,t.length>r||(n=(r=String.fromCodePoint(t.codePointAt(0)).toUpperCase()).codePointAt(0)>$g?2:1,r.length>n)||r.codePointAt(0)!==e?e:t.codePointAt(0))}},"Codepoint"),t.CODES=new Map([["",7],["\b",8],["\t",9],["\n",10],["\v",11],["\f",12],["\r",13],[" ",32],['"',34],["$",36],["&",38],["'",39],["(",40],[")",41],["*",42],["+",43],["-",45],[".",46],["0",48],["1",49],["2",50],["3",51],["4",52],["5",53],["6",54],["7",55],["8",56],["9",57],[":",58],["<",60],[">",62],["?",63],["A",65],["B",66],["C",67],["F",70],["P",80],["Q",81],["U",85],["Z",90],["[",91],["\\",92],["]",93],["^",94],["_",95],["`",96],["a",97],["b",98],["f",102],["i",105],["m",109],["n",110],["r",114],["s",115],["t",116],["v",118],["x",120],["z",122],["{",123],["|",124],["}",125]]);var v=t,r=class{constructor(e,t=!1){this.data=e,this.isStride1=t,this.SIZE=t?2:3}getLo(e){return this.data[e*this.SIZE]}getHi(e){return this.data[e*this.SIZE+1]}getStride(e){return this.isStride1?1:this.data[e*this.SIZE+2]}get length(){return this.data.length/this.SIZE}};let Xg=new Uint8Array(256);for(let yU=0;yU<64;yU++)Xg["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-".charCodeAt(yU)]=yU;let Zg=e=>{var t=[];let r=0,n=0;for(let s=0;s<e.length;s++){var i=Xg[e.charCodeAt(s)];r|=(31&i)<<n,0==(32&i)?(t.push(r),r=0,n=0):n+=5}return t},n=(e,t)=>{var r=Zg(e),n=t?r.length/2:r.length/3,i=new Uint32Array(3*n);let s=0,a=0;for(let o=0;o<n;o++)s+=r[a++],i[3*o]=s,s+=r[a++],i[3*o+1]=s,i[3*o+2]=t?1:r[a++];return i},em=class{constructor(e){this.initializer=e,this.cache=new Map}has(e){return e in this.initializer}get(e){var t;return this.cache.has(e)?this.cache.get(e):(t=(t=this.initializer[e])?t():null,this.cache.set(e,t),t)}};Sg(ar=class{static get CASE_ORBIT(){return this._CASE_ORBIT||(this._CASE_ORBIT=(e=>{var t=Zg(e),r=new Map;let n=0;for(let s=0;s<t.length;s+=2){n+=t[s];var i=t[s+1];r.set(n,n+(i>>>1^-(1&i)))}return r})("rCgCIgCY+rQI4QiCuuBLgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCCgCBgCBgCBgCBgCBgCBgCB+7OB-BB-BB-BB-BB-BBskQB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BC-BB-BB-BB-BB-BB-BB-BByHBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBxHBCBBBCBBBCBBB3SBmMBkNBCBBBCBBB8MBCBBB6MB6MBCBBC+EB0MB2MBCBBB6MB+MBiGBmNBiNBCBBBmKBikzCBmNBqNBkIBsNBCBBBCBBBCBBB0NBCBBB0NDCBBB0NBCBBByNByNBCBBBCBBB2NBCBBDCBBCwDFCBCBDBCBCBDBCBCBDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB9EBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCCBCBDBCBBBhGBvDBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBjICCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBH2iVBCBBBlKBwiVB+jVB+jVBCBBBlMBqEBuEBCBBBCBBBCBBBCBBBCBBB+hVB4hVB8hVBjNB7MC5MB5MCzMC1MB+0yCE5MB20yCC9MBu2yCBwyyCBo0yCChNBlNBo0yCBu-UBi0yCDlNC6-UBpNDrNIu+UDzNCm0yCBzNE0yyCBzNBpEBxNBxNBtEG1NLqxyCBkxyCnFoFrBCBBBCBBDCBBEkIBkIBkICoHHsCCqCBqCBqCCgEC+DB+DBmkOBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCC+BBgCBgCBgCBgCBgCBgCBgCBgCBrCBpCBpCBpCBmjOB-BB8BB-BB-BBgEB-BB-BByBBqgOBsDB-BBtwBB-BB-BB-BBsBBgDBCB-BB-BB-BBeB-BB-BB61OB-BB-BB-DB9DB9DBQB7DBmCE9CBrDBPBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBrFB-EBOBnHB3FB-FCCBBBNBCBBCjIBjIBjIBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgFBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB8kMB-BB6kMB-BB-BB-BB-BB-BB-BB-BB-BB-BBokMB-BB-BBkkMBkkMB-BB-BB-BB-BB-BB-BB-BB4jMB-BB-BB-BB-BB-BB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EB-EBCBBBCBoiMBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBJCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBeBCBBBCBBBCBBBCBBBCBBBCBBBCBBBdBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBCgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDL-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-C64CgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOBgmOCgmOGgmODg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FBg8FDg8FBg8FBg8FhVg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBg9rCBQBQBQBQBQBQDPBPBPBPBPBPjkC7mMB5mMBnmMBjmMBCBlmMB3lMBpiMBk8kCBCBBG-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FB-7FD-7FB-7FB-7F6FoglCEsuHRwjlCyDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCB0DBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBG1DD97OCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQDPBPBPBPBPBPEQCQCQCQCPCPCPCPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPB0EB0EBsFBsFBsFBsFBoGBoGBgIBgIBgHBgHB8HB8HDQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQBQBQBQBQBQBQBPBPBPBPBPBPBPBPBQBQCSFPBPBzEBzEBRCxnOFSFrFBrFBrFBrFBREQBQClkOFPBPBnGBnGFQBQCljOCODPBPB-GB-GBNHSF-HB-HB7HB7HBRqJ53OE9tQBrmQH4Bc3BSgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBgBBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfECBByZ0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BB0BBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzBBzB34BgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDBgDB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CB-CBCBBBt-UBruHBt+UB1iVBviVBCBBBCBBBCBBB3hVB5-UB9hVB7hVCCBBCCBBI9jVB9jVBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBICBBBCBBECBBN-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOB-lOC-lOG-lOzoeCBBBCBBBCBBBCBBBCBBBCBl8kCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBTCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBnECBBBCBBBCBBBCBBBCBBBCBBBCBBDCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBKCBBBCBBBnglCBCBBBCBBBCBBBCBBBCBBECBBBvyyCDCBBBCBBBgDCCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBn0yCB90yCB10yCBh0yCBn0yCCjxyCBzyyCBpxyCBg6BBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBB-CBl0yCBvjlCBCBBBCBBBt2yCBCBBBCBBBCBBBCBBBCBBBCBBBCBBBCBBBhkzCZCBB9a-5Bd-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCB-8rCm6TCBB7gBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCH-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BmlBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvChDwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCBwCFvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvCBvC1DuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCBuCCuCBuCBuCBuCBuCBuCBuCCuCBuCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCBtCCtCBtCBtCBtCBtCBtCBtCCtCBtCk2BgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEBgEO-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-DB-D+CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCL-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-B74CgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhrVgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCBgCB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BB-BhB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BB2BD1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BB1BtxekCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBkCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjCBjC")),this._CASE_ORBIT}static get Print(){return this._Print||(this._Print=new r(n("hB9CBjBLBCpWBDFBFGBCCCBSBCsMBClBBDxBBDCBC2BBJaBFFBSVBC-FBCvBBD6BBDkDBP6BBDwBBDOBCbBDCCBJBGfBIqCBCgFBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYBDCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPBLCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGBCCBCHBDBBDVBCGBCBBCEBDIBDBBDCBICBFBBCEBDRBLBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBGMBCCBCWBCPBDIBCCBCDBIBBCCBCBBDDBDJBIVBCCBCWBCJBCEBDIBCCBCDBIBBGCBCDBDJBCCBNMBCCBCyBBCCBCFBFPBDZBCCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBN5BBFcBmBBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDBhBnCBCjBBFmBBCjBBCOBCMBmBlGBCGGD4LBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBH1CBDFBD-TBCbBE4CBIVBKXBKTBNMBCCBCBBN9CBDJBHJBHNBCKBH4CBIqBBGlCBLeBCLBFLBFEEBoBBDEBMrBBFZBHKBE9BBDgCBCcBDKBHJBHNBDtBBDLBVsCBClFBJ7BBEOBE9BBGqBBDKBJqBBG1QBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBSXBJuBBSBBDaBCMBEhBBPgBBQrEBF5UBXKBWz4BBD9LBGsBBCGGD3BBIBBPXBKGBCGBCGBCGBCGBCGBCGBCGBC9DBjBZBC4CBN1GBbPBC+BBC1CBDmDBGqBBC9CBC1CBKvBBCszcBE2BBK7KBV3FBJ8GBV7BBEJBH3BBJlCBJLBHzDBMdBEtCBCKBFgBBC2BBKNBDJBDmDBZbBLFBDFBDFBKGBCGBC7BBF9DBDJBHj9KBNWBFwBBloItLBDpDBnBGBNEBGZBCEBCCCBCCBCCBoUBhBpBBHyBBCSBCDBFEBCmEBF9FBEFBDFBDFBDCBEGBCGBOBBDLBCZBCSBCBBCOBDNBjB6DBGCBFsBBE3CBCMBEwBwBBsBBjEcBEwBBQbBFjBBKdBGqBBGdBCkBBFNBrB9EBDJBHjBBFjBBFnBBJzBBMLBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBCnCBJIBxBSBCBBGgBBEaBGaBnB3BBFTBDxBBCBBGHBCCBCcBDCBFJBIIBI-BBhBmBBFLBK1BBEcBDaBGZBIDBNGBxCoCB4ByBBOyBBItBBJJBHlBBEcBJBBxGeBCpBBCCBDBBRFBJIBiBtBBJpBBXZBnBbBVWBKtCBFjBBK9BBCEBOYBIJBH0BBCRBJmBBK-CBCTBMRBCuBB-BGBCCCBCBCOBCKBH6BBGJBHDBCHBDBBDVBCGBCBBCEBCJBDBBDCBDHHGGBDGBEEBMJBCDDClBBCJBCDDCDBCJBCBBJBBe7CBCEBfnCBJJBnF1BBDlBBjBkCBMJBHMBU5BBHJBHTBdaBDOBFWB6F7BBlDyCBNHBDDDBGBCBBCdBCBBDLBKJBnCHBDtBBDKBcnCBJyCBOoCBIJB3CHB5ChBBPJBHIBCsBBCNBLcBEfBDVBCNBqCGBCBBCrBBECCBCCBHBJJBHFBCBBCkBBCBBCFBIJBHrBBFJB3HYBIQBCoBBEcB2CQQBwBBO6cBnDuDBCEBMjGBtyCiDBOvhBBRVBL68DBGmSB61G5BBn2B4RBIeBCJBFwCBCJBHdBDFBLlCBLJBCGBCUBGSBxN5BBnG6CBGYBDYBtBqCBF4BBIQBhCEBMGBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBDDBh7D8HBEzNBHWBQQBQtBBDWBKzDB9B1HBLmBBDpCBJvDBWlCB7DTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBD9VBQEBCOBxiBeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBENBDJBFBBhKeBS5BBGxOxOBoBB3GqBBFhGhGBdBCVBJBBhHGBCDBCBBCOBCkGBDPBqBrCBFJBFBByYjCBtC8BBjGDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBBvIrBBFjDBNOBDOBCOBCkBBLtFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBmgB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIBnkzVvHB",!1))),this._Print}static get Upper(){return this.CATEGORIES.get("Lu")}},"UnicodeTables"),ar._CASE_ORBIT=null,ar._Print=null,ar.CATEGORIES=new em({C:()=>new r(n("AfBgDgBBOrWrWBHHBCBICCVuMuMnBBBzBBBE4B4BBGBcDBHQBXhGhGxBBB8BBBmDNB8BBByBBBQddBCCMEBhBGBsCiFiFJBBDBBXIICCBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBPMMBEB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKMMBDBbEByBPBDBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCB-FCBHBBHBBHBBECBIIIBLBDBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIB-BGGBLBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMBxhBPBXJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBF-6DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBrCHBxDUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIlkzVBxHvw-FB",!1)),Cc:()=>new r(n("AfgDgB",!0)),Cf:()=>new r(n("tFzqBzqBBEBXhGhGyBhMhMBxCxCs5D9-B9-BBDBbEByBEBCJBw03B6H6HBBBimEQQj7IPBhjiBDBwmFHBn0rYffB+CB",!1)),Cn:()=>new r(n("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBDBvzIBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-BB---BBB---BBB",!1)),Co:()=>new r(n("gg4B-nGh4hc9--BD9--B",!0)),Cs:()=>new r(n("gg2B--B",!0)),L:()=>new r(n("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICCiEEBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoCaBFDBuBqBBkBBBCiDBCQQBIIBLLBBBDRRCdBe4CBMZZBfBKBBFGGBUBFKKEYYBXBIKBGXBCGBRpBB7B1BBETTIJBQPBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNGB7BBBCCCBDBCXBCCCBIBCBBKDDBDBCWWBCBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNSSBkBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBkBFFkC4CBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBzC+C+CBtBBSHB3BdBOBBLrBBbjBBqBCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBhC1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBF1B1BB8zC8zCBjHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBxC2O2OBrBrBBDBGBBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBReBDlCByBIBDmDBDxCBVQBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBdRRBDBCJBLEBCoBBYCBCHBVWBEEEBwBBCEEBDDBDBDCCZCBDKBICBNFBDFBDFBKGBCGBCqBBCNBHyDBej9KBNWBFwBBloItLBDpDBnBGBNEBGCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBxB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOjBBnBbBKWB7HpBBHBBRFB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB1D-BBgBHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBqBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBGjCjCBLBhCBBCPPBNNB0mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBn7F0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFBmI9BBzEsBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCCBCBBCGBDEBKBBhHGBCDBCBBCOBCkGB8BjCBI1lB1lBBCBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),LC:()=>new r(n("hCZBHZB7BLLBVBCeBCiGBCDBFvGBDZBhGDBDBBECBCHHCCBCCCBSBCyCBCqEBJlFBClBBKoBB44ClBBCGGDqBBDCBhV1CBDFBjkCKBGqBBDCBhCrBBgCMBChBBmD1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGBmIFFDJBCEEBDBHGCBCBCFBFDDBCBGEBF1B1BB8zC8zCB6DBDmDBHDBEBBNlBBCGGzoetBBTbBnEtCBCWBEDBCsCBZBBE2Z2ZBpBBGIBIvCBh6TGBNEBqgBZBHZBmlBvCBhDjBBFjBB1DKBCOBCGBCBBCKBCOBCGBCBBk2ByBBOyBB+CVBLVB74C-BBhrV-BBhBYBDYBtpZ0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BJBCTBHFB2uCjCB",!1)),Ll:()=>new r(n("hDZB7BqBqBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDZBiGCCEEEBBBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBDCB5XFBjkCIBC2D2DBqBBgCMBChBBnD0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBBzIEEBEEcKFDBBJDBF2B2Bs1CvBBCEEBGCFCCBCCBEBGiDCBIICFFNlBBCGG0oesBCUaCoEMCBBBC+BCBGBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCbEE2ZqBBGIBIvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFB4vChBB",!1)),Lm:()=>new r(n("wVRBFLBPEBICCmEGG-OnHnHlFBBuIBBFgBgBKEEhFoFoF1mBgEgE2R72B72BsDkTkTxOFBvF+BBOjBjBBjBByVOORMBg-CBByHgGgG2OsBsBBDBGiDiDB+C+CBBB34bjnBjnBBEBvIzDzDdBB6DIBxCYYpDDBEBB2OXXqEtDtDWBBoDDBKngVngVuBBBh-BFBCpBBCIB0sBhBhB2K04D04DnrTDB9PCBpBBBnRMBhCBBCPPB9-P9-PBCBCGBCBByhM9BBqGGBud0Q0QsSAB",!1)),Lo:()=>new r(n("qFQQhIFFBCBxGBB7ZaBFDBuBfBCJBkBBBCiDBCZZBLLBBBDRRCdBe4CBMZZBfBWVBrBYBIKBGXBCGBRoBB8B1BBETTIJBROBFHBDBBDVBCGBCEEBCBERROBBCCBPBBLJJBEBFBBDVBCGBCBBCBBCBBgBDBCUUBBBRIBCCBCVBCGBCBBCEBETTQBBYMMBGBDBBDVBCGBCBBCEBEffBCCBBBQSSCFBECBCDBEBBCCCBEEBEEBBBELBX1B1BBGBCCBCWBCPBEbbBBBCBBDBBfFFBGBCCBCWBCJBCEBEffBBBCBBQBBSIBCCBCoBBDRRGCBJCBZFBGRBEXBCIBCDDBFB7BvBBCBBNFB8BBBCCCBDBCXBCCCBIBCBBKDDBDBYDBhBgCgCBGBCjBBcEB0DqBBVRRBEBFDBEEEBIIBBBFMBNyDyDBnKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPByDrTBDQBCZBGqCBHHBIRBOSBPRBPMBCCBQzBBpBkCkCBhBBC0BBIEBDhBBCGGBkCBLeByBdBDEBMrBBFZB3BWBK0BBxFuBBSHB3BdBOBBLrBBbjBBqBCBLdByDDBCFBCBBE7hB7hBBCB4-C3BBZWBKGBCGBCGBCGBCGBCGBCGBCGBoR2B2BF1CBJCCB4CBFGGBpBBC9CBSfBxBPBhQ-tGBhC0wUBC2jBBkCnBBJrIBFPBLBBjCyByBBkCBqFoDoDEGBCCBCDBCWBezBBPxBB-BFBECCBMMBaBLWBacBIuBBuBEBDIBLEBCoBBYCBCHBVPBCFBEEEBwBBCEEBDDBDBDCCZBBEKBIPPBEBDFBDFBKGBCGByEiBBej9KBNWBFwBBloItLBDpDBkCCCBIBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBqDJBCsBBDeBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmMcBEwBBwBfBOTBCHBHlBBLdBDjBBFHBhEtCBjDnBBJzBB9CzBBN2JBKVBLHB5EFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCQQBCBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4FjBBnBDBCxJxJBoBBHBBRCBCBB5BcBLJJBUBrBRBvBUBcWBN0BB6BBBDOOBrBBhBYBbjBBeDDJiBBENNBuBBPDBWCCkBRBCYBUBBgCGBCCCBCBCOBCJBIuBBnBHBDBBDVBCGBCBBCEBETTNEBfJBCDDClBBCaaCtBtBBzBBTDBVCBfvBBVBBC5F5FBtBBqBDBlBvBBV8B8BBpBBOoCoCBZBmBGB6FrBB0GHBDDDBGBCBBCXBQCC-CHBDmBBRCCdLLBmBBIWWMtBBUTTBnCBoGgBBgBIBCkBBSyByBBcBxDGBCBBClBBWaaBEBCBBCfBPYYBnBBCBBlISBQCCBLBChBB9DwCwCB4cBnHjGBtyCgDBQvhBBSFBa68DBGmSB61GdBj3B4RBIeBSuCBSdBTvBB0BUBGSB0NnBB2MqCBGwFwFB0mHBqBfBiDyDBuwIiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBxzI2P2PBrBBiBiKiKBcBTrBBlPaBmHdBDwGwGBdBCCBCBBCGBDEBKiHiHBFBCDBCBBCOBCkGB8pBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQBlqE-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Lt:()=>new r(n("lOGDnB2sH2sHBGBJHBJHBNQQwBAB",!1)),Lu:()=>new r(n("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBG+B+B9zCvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBB",!1)),M:()=>new r(n("gYvDB0IGBoIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCgBB3BCBCRBCGBLBBeCB5BCCBFBDBBDCBKLLBbbDCB5BCCBDBFBBDCBEffBEEMCB5BCCBGBCCBCCBVBBXFBCCB5BCCBFBDBBDCBICBLBBf8B8BBDBECBCDBKpBpBBDB4BCCBFBCCBCDBIBBMBBeCB5BCCBFBCCBCDBIBBMBBQNNBCB4BBBCGBCCBCDBKLLBeeBBBnCFFBEBCCCBGBTBB+BDDBFBNHBjDDDBHBMGBqCBBcECFBByBTBCBBGKBCjBBKlDlDBSBYDBFCBCCBDGBEDBOLBCLLBCBgWCBzdDBdCBeBBfBBhCfBKuBuBBBBC2D2DBjBjB3DLBFLB8GEB6BJBCcBDxBxBBsBBDLBVEBwBQBnBIBNCBfMB5BNBxBTB5ECBCUBFHHDCBnG-BBxWgBB--CCBuEhDhDBeBrRFBqDBB1udDBCJBhBBBxCBBxIEEFYYBDBF0C0CBzBzBBQBbRBOnBnBBGBaMBtBDBwBNBlBkCkCBMBNJJBuBuBBBBzBCCBBBDBBGBBCqBqBBDBGBBtHHBCBBx5TiXiXBOBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB7DCB2BOBqBDDBLLBCBuBKBI+B+BBBBlBNBRBBtBNNBBBxBNBJDBCBB9CLBHDD+ELBWDB4BBBCGBDBBDCBKLLBDDBFBEEBkCIBCDDCDBCEBCPPBzCzCBQBYyCyCBSBsHGBDIBcBBzCQBrDMBmDOBhIOB2HFBCBBDDBCCCBuEuEBFBDGBEddBIBpBGBCDBJKKBJBvBPBnGHBoGHBCHBzCVBCNB7DFBECCBCCBFBCjCjCBDBCBBCEB8KDBKBBCxBxBBFBEEBYmnFmnFHOBpmLRBhuCEB8BGB5gBCCB1BBIDByCMMBslTslTBizEizEBsBBDWB-QEBEFBJHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),Mc:()=>new r(n("joC4B4BDCBJDBCBBzBBB7BCBHBBDBBLsBsB7BCBjC7B7BBBBJCCB2B2BB7B7BCHHBDDBLLnDBBCBBECBCCBLqBqBBBB+BDB+BBB7BCCBDBDBBCBBKBBdPPB7B7BBBBGCBCCBLrBrBBsCsCBBBHHBTBBrKBBgCsFsFBFFHDDBaaBLLBBBDGBWBBDFBDLLBBB5zBffiEIIBGBCBB7KDBDCBFBBCFBhHBB7BCCKCCBJJBEByExBxBGCCBDBCBB+BffFBBD9B9BDCBCEEBxBxBBGBJBBsFWW35EBB0-dBBD5C5CBzBzBBOBvEBBwBxBxBBFFBDDBBBvDBBDBBZuBuBCuDuDDBBGuHuHBCCBCCBCC0gZCCgEuBuBBBBFBB0DZZB8B8BxBCBKBBO+C+CBBBEBBCrFrFBBBgBBB7BBBCDBDBBDCBKLLB1C1CBBBIDDCDBCBBCmDmDBBBJBBErDrDBBBHCCBCBDuHuHBBBHDBDyDyDBBBJBBCuDuDCBBHoDoDCBBFmImIBBBK4H4HBEBCBBFDDCvEvEBBBJDBF1C1CeBB-BqGqGECCoGPPrDIID2G2GBDBFBBC-K-KBNNxBBBJBBCpvQpvQBBBlxD2BBpDBB0rYBBHFB",!1)),Me:()=>new r(n("okBBB1xF-wB-wBBCBCCBsshBCB",!1)),Mn:()=>new r(n("gYvDB0IEBqIsBBCCCBCCBCCpCKBxBUBRmDmDBFBDFBDBBCDBkBffBZB8CKB7BIBKZZBCBCIBCCBCEBsBCB8BIBrBXBCfB4BCCFHBFEEBFBLBBe7B7BFDBJVVBbbDBB6BFFBFFBDDBBBEffBEEMBB6BFFBDBCBBFVVBXXBEBC7B7BDCCBCBJIIBMMBff+BNNzBEE4BCCBBBGCBCDBIBBMBBe7B7BDHHGBBVBBdBB6BBBFDBJVVBeepCIIBBBC7C7CDGBNHBjDDDBHBMGBqCBBcEC4BNBCEBCBBGKBCjBBKnDnDBCBCFBCBBDBBaBBFCBRDBODDBHHQgWgWBBBzdCBeBBfBBfBBhCBBCGBJDDBJBKuBuBBBBC2D2DBjBjB3DCBFBBKHHBBB8GBBD7B7BCGBCCCDHBHJBDxBxBBMBCeBDLBVDBxBCCBDBCGGpBIBNBBhBDBDBBCCB5BCCBEECCB7BHBDBB5ECBCMBCGBFHHEBBnG-BBxWMBFEEBKB--CCBuEhDhDBeBrRDBsDBB1udFFBIBhBBBxCBBxIEEFaaBGG4EBBbRBOnBnBBGBaKBvBCBxBDDBCBDBBoBkCkCBEBDBBDBBNJJwB0B0BCCBDBBGBBCrBrBBJJvHDDFx5Tx5TiXPBRPBuejHjH2EEBn0BCBCBBGDBpBCBFmFmFB+R+RBCBiCEB+JBBuCFBnCKByBDB8D3B3BBNBqBDDBLLBBByBDBDBBI+B+BBBBlBEBCHB-BNNB1B1BBHBLDBDgDgDBBBDCCBHHD+E+EEHBWBB6BBBEmBmBBFBEEBnCFBOECPBB2CHBDCBCYY1CFBCFFBCCBvHvHBCBHBBCBBcBB2CHBDCCBrDrDCDDBEBCmDmDCDDBCBCEBkIIBCBBhIBBCFFxEDBDBBFhBhBBIBpBFBDDBJKKBEBDCBvBMBCBBnGCCBBBCqGqGBFBCFBCzCzCBUBDGBCBBCBB7DFBECCBCCBFBCpCpCBEEC8K8KBMMB1B1BBDBGCCYmnFmnFHOBpmLLBECBhuCEB8BGB5gBgCgCBCByC5lT5lTBizEizEBsBBDWBhRCBSHBDGBfDB1ECB89B2BBFxBBJPPXEBCOBxqBGBCQBDGBCBBCEBlDhFhFBFB4L+B+BBCB9PDB-HBB0HDDIBBG7O7OBFBuDGB29lYvHB",!1)),N:()=>new r(n("wBJB5DBBGDDBBBitBJBnEJBnGJB9MJB3DJBFFBtDJB3DJB3DJBDFBvDMB0DJBJGBoDJBpDGBISBuDJBhDJB3DJBnCTBtIJBnCJBwWTBybCBwHJBHJBXJBtJJBhEKBmFJBHJB3FJB3CJBnEJBHJB3gBEEBEBHJBnGyBBDEB3W7BBvCVB3TdBqrBqYqYaIBPCB4KDBrEJBfHBCOBhBJBoBOBh7cJB9FJBhKFB7EJBnBJBnGJBXJB3CJB3MJB34UJBuPsBBN4BBSBB2KaBlBDBeJJnEEBrGJBvdHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBxBJBHJB3IeB-EJBrBDBxDGBnEdBhEJB9BJBxEJBITB8HJB3KJB3DJB3LJBnDJBHTBtCLBlNSB+CJB3UJB3CcBkHJBnCJB3BJBnLJBnDUBshBuDBimPJBnpCJB3CJBnEJBCGBvQJBnIWB+KCB6nXJBnuBTBNTBtDYB2iBxBBhqCJBnNJB3PJB4HJBtWIBhEJB4Y6BBCCBCDBtCsBBCOBjeMBk3CJB",!1)),Nd:()=>new r(n("wBJnxBJnEJnGJ9MJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJ3DJhDJ3DJnCJ3IJnCJn6BJnBJtJJhEJnFJHJ3FJ3CJnEJHJnuiBJnVJnBJnGJXJ3CJ3MJ34UJnsBJnkCJHJ9YJhEJ9BJxEJ3IJ3KJ3DJ3LJnDJHTtCJnNJnDJ3UJ3CJ3HJnCJ3BJnLJ3uQJnpCJ3CJnEJ3QJ37XJ12CxBhqCJnNJ3PJ4HJ2aJ30EJ",!0)),Nl:()=>new r(n("u3FCBwzCiBBDDB-zDaaBHBPCBs1dJBxyW0BBtOJJnEEBrhIuDBm8SCB",!1)),No:()=>new r(n("yFBBGDDBBB2pCFB5LFB5DCBmEGB6GGBSIByNJB2hBTB0jBJBhP20B20BEFBHJBnGPBqB3W3WB6BBvCVB3TdBqrB1kB1kBBCBrEJBfHBCOBhBJBoBOBxrdFBymWsBBiCDBSBB2KaBlBDB1pBHBaGBoBIBsCEBXFBhFBBDPBDtBBhCIB1BBBfCBsCEBpDHBZHBqBGBrKFBhLeB-EJBrBDBxDGBnETB8LTBmqBBBvNIBobSB0aUBn8SGB-YWBqhZTBNTBtDYBvqFIBid6BBCCBCDBtCsBBCOBjeMB",!1)),P:()=>new r(n("hBCBCFBCDBLBBEBBbCBCccCkBkBGEELBBEEE-VJJzOFBqBBB0BCCDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCmBmBBCBoCrCrCBDBFBBwDFBsFlTlTBHB4EuTuTtBBBvCCBoCBB+ECBCCBmBKB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBM9Z9ZBWBJTBCMBCLBfBBPBB6TDBeBB+hBNBwCBBgBJB0MVBgCDBhBBB8XDBCBBxDwEwEBtBBCfBDLBkNCBFJBDLBRNNjD7C7CjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HzqUzqUBxGxGBIBXiBBCNBCFFCBB2ECBCFBCDBLBBEBBbCBCccCCCBFB7MCB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDByO-J-JjBlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Pc:()=>new r(n("-Cg-Hg-HBUU-u3BBBZCBwHAB",!1)),Pd:()=>new r(n("tB9qB9qB0BiyDiyDmgBqgCqgCBEBiwDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Pe:()=>new r(n("pB0B0BgB+1D+1DC-6B-6BqtC4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECtBGCtNICEGCDBB-ozB6G6GeOCESSCCCrF0B0BgBGD",!1)),Pf:()=>new r(n("7F+6H+6HEddpuDCCFDDQEE",!1)),Pi:()=>new r(n("rFt7Ht7HDBBDaapuDCCFDDQEE",!1)),Po:()=>new r(n("hBCBCCBDECBLLBEEBcclCGGPBBI-V-VJzOzOBEBqB3B3BDDDtBBBVBBCBBOCCBBBrCDBnDsBsBBMBqHCB3BOBgBmImIBLLtE5D5D6DnMnMNwLwL7CLLBpFpFBNBCxDxDrCEBFBBwDFBsFlTlTBHBmY9D9DBBBoCBB+ECBCCBmBFBCDB6JBB5GBBhEGBCFBhFBBLGBdCB9DDB8BEB-BBBhCHBMjajaBJJBGBJIBDDBDCBEKBCCCBIB7kDDBCBBxDwEwEBFFBBBDDDBHBCBBCDDBLLBDBCJBDDBCCCBLBDCBtNCB6B+F+FjgdBBuICBkDLL0DFB9LDB3CBBpBCBCyByBBwBwBiDMBRBB9DDB-DBBRBB6HlxUlxUBFBDXXVBBDDBECBCDBICBHCCB2E2EBBBCCBDECBLLBEEBcclBDDB7M7MBBB9UxBxB-MoXoXoGgBgBxIIBnBxDxDBFBjCGB6CDB0ZlElEBDBtBDB+FGBuDBBCDB-DDBxBBBwCDBFOOCCB5CFBsDrJrJBCCBzDzDBDBLBBCpDpD7HWBqDCBdMBtCjEjEBBB9HpIpIBBB8E9C9CBGB0CCBCEB+CJB4GgDgDBDBrBBBmUBBrCMBwFxjBxjBBDB97CBB8zOBBmEiCiCBDBJpRpRBBBoJDBoK9lT9lTovHEB07C-a-aBAB",!1)),Ps:()=>new r(n("oBzBzBgB-1D-1DC-6B-6B-rCEEnB4B4BQ7T7TCff-hBMCxChBhBCGC1MUChCCCiBmhBmhBCECaTTCECtNICEGCDipzBipzB4GeeCMCESSCCCrFzBzBgBEEDAB",!1)),S:()=>new r(n("kBHHRCBgBCCcCCkBEBCBBDCCBCBDEEfgBgBrODBNNBGGBCCCBPB2DPPBxDxDsErIrIBBB3DCBDDDBvGvGLUUB4H4HIBBpEqLqLBHHB2H2H-DjEjEBGBlEwGwGqBmGmGiGCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WuLuLlL+E+EBgBBiLJBKIBhiBCCBBBMCBOCBOCBOBBmCOOoBCBOCBUhBB-BBBCDBCBBLCCBBBGFBCECFMMBFFBDBGDBC7B7BBFFB2LBFcBD+HBXKByCtCBXnTBtBwBBDeBLyMBX+BBFfBD1LBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBB8CBB0HBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BB6RWBKBBoDBB+EDBLDB+RCBiHPPB+9T+9TpEgBBuLPBhCBB3BHBtBDBjDCCBBBD7E7EHRRBBBgBCCcCCiEGBCGBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSmWmWBiKiKBGBnjC2kC2kCBbBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQQBgDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBrbaagBaagBaagBaagBaa9B-PB4BDBzBHBCNBCBBp2BwNwNttCEE+DiOiOBvIvIBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Sc:()=>new r(n("kB+D+DBCBqnB8D8DzPBBzPBBI2H2HoImSmS8sClmClmCBgBB37hBkuVkuVtD7E7E8GBBEBB3-HDB-4wBxtCxtC",!1)),Sk:()=>new r(n("+CCCoCHHFEEqQDBNNBGGBCCCBPB2DPPBjoBjoB15FCCBBBMCBOCBOCBOBB9kEBBkzdWBKBBoDBBxePPBniUniUBPB8bCCjF4g9B4g9BBDB",!1)),Sm:()=>new r(n("rBRRBBB+BCCuBFFmBgBgB-XwQwQBBB8xGOOoBCBOCBsEoBoBBDBHlClCBDBGBBFGDIgBgBBDDCgBgBBqIBhBBB7CffBXBpBFB2OKK3BHBwDxKxKBDBDeBLPBhIiEBX+BBFfBDhIBxBUBDFB9+zB5Z5ZCCBlFRRBBB+BCCkEHHBCBitDBBhrwBx+Bx+BagBgBagBgBagBgBagBgBat5Ft5FB-uC-uCBHB",!1)),So:()=>new r(n("mFDDFCCyerIrIBgEgEBvGvGLUUB4H4HkQ2L2LjEFBClElEwGqBqBoMCBQCCBBBDFBVECmEHBCFBCBBGDBmGBBxXJB0WzWzW+EhBBiLJBKIBksBBBCDBCBBLCCBHHBEBCECFMMBPPCBBC7B7BBKKBDBDDBCBBCBBCGBCeBDBBCCCBdBtIHBFTBDGBDwCBCdBanBBHnCBXKByCtCBX2FBCIBC1BBJuDBC3HBtBrBBhC-HBhQvBBWBBHmBBDpEBmHFBmLBBvBZBC4CBN1GBbPBFOOBNNWBBHBBxKBBFJBhBlBBKRRBdBMdBJQQBeBLmBBQ-JBhuG-BBx0V2BBibDBLBBC+R+RBBBqqUPBuLPBhCBB3BHBuBCBlPEEFBBOBB6JIB6BQBDCBCMBEwBwBBrBB7zBBBwSpgBpgBBGBnjC2kC2kCBGBFQBr6SDBG3qU3qUk7DvHBLCBEzNBHWBQPBhDzDB9B1HBLmBBD7BBGCBXBBIdBF8BBWhCBE7F7FB1CBqlB-PB4BDBzBHBCNBCBBp2B96C96CiEyWyWBqBBFjDBNOBDOBCOBCkBBYgFB5BcBOrBBFIBIBBPFB7E6HBG4WBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBB-B3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBC7CBLAB",!1)),Z:()=>new r(n("gBgEgEgvFgsCgsCBJBeBBGwBwBh9DAB",!1)),Zl:()=>new r(n("ohIA",!0)),Zp:()=>new r(n("phIA",!0)),Zs:()=>new r(n("gBgEgEgvFgsCgsCBJBlBwBwBh9DAB",!1)),ASCII_Hex_Digit:()=>new r(n("wBJIFbF",!0)),Alphabetic:()=>new r(n("hCZBHZBwBLLFGGBVBCeBCpOBFLBPEBICC3CeeBQBCBBDDBCHHCCBCCCBSBCyCBCqEBJlFBClBBDHHBnBBoBNBCCCBCCBCCJaBFDBeKBG3BBCGBPlDBCHBFHBFCBLCBDRRBuBBOkDBZgBBKBBFGGBWBDSBUYBIKBGXBCGBIJJBoBBLLBEGBHrCBCPBCCBFOBOSBCHBDBBDVBCGBCEEBCBEHBDBBDBBCJJFBBCEBNBBLFFBBBCFBFBBDVBCGBCBBCBBCBBFEBFBBDBBFIIBCBCSSBEBMCBCIBCCBCVBCGBCBBCEBEIBCCBCBBEQQBCBWDBFCBCHBDBBDVBCGBCBBCEBEHBDBBDBBKBBFBBCEBORRBCCBEBECBCDBEBBCCCBEEBEEBBBELBFEBECBCCBEHHpBMBCCBCWBCPBEHBCCBCCBJBBCCBCBBDDBdDBCHBCCBCWBCJBCEBEHBCCBCCBJBBGCBCDBOCBNMBCCBCoBBDHBCCBCCBCGGBCBIEBXFBCCBCRBEXBCIBCDDBFBJFBCCCBGBTBBO5BBGGBH0B0BBECBDBCXBCCCBRBCCBDEBCHHPDBhBgCgCBGBCjBBFSBFPBCjBBkC2BBCDDBDBR-BBLDBDlBBCGGDqBBCsKBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBmBPBR1CBDFBErTBDQBCZBGqCBEKBITBMUBNTBNMBCCBCBBNzBBDSBPFFkC4CBIqBBGlCBLeBCLBFIBYdBDEBMrBBFZB3BbBF+BBDTBzBYYBMMBBByBzBBCOBCHB0BpBBDDBLrBBCKBP2BBXCBLjBBDKBGqBBDCBqBDBCFBCBBEGGB+FBUhBBM1IBDFBDlBBDFBDHBCGCBdBD0BBCGBCEEBBBCGBEDBDFBFMBGCBCGB1DOORMBmDFFDJBCEEBDBHGCBCBCKBDDBGEBFSSBnBBuZzBB34BkHBHDBEBBNlBBCGGD3BBIRRBVBKGBCGBCGBCGBCGBCGBCGBCGBCfBwB2O2OBBBaIBIEBDEBF1CBHCBC5CBCDBGqBBC9CBSfBxBPBhQ-tGBhCs0VBkCtBBDsIBEPBLBBVuBBGHBEwDBoBIBDmDBDxCBVUBCgBBZzBBNjCBCtBtBBEBECCBBBLgBBGiBBOcBEyBBCLBQRRBOBLEBC2BBKNBTWBEkCBCCCZCBDPBDDBMFBDFBDFBKGBCGBCqBBCNBH6DBWj9KBNWBFwBBloItLBDpDBnBGBNEBGLBCMBCEBCCCBCCBCCBqDBiBqLBT-BBD1BBpBLB1DEBCmEBlBZBHZBM4CBEFBDFBDFBDCBkBLBCZBCSBCBBCOBDNBjB6DBmC0BBsIcBEwBBwBfBOdBGqBBGdBDjBBFHBCEBrB9EBTjBBFjBBFnBBJzBBNKBCOBCGBCBBCKBCOBCGBCBBEzBBN2JBKVBLHBZFBCpBBCIBmCFBDCCBqBBCBBEDDBVBLWBKeBiCSBCBBLVBLZBHZBnB3BBHBBhCDBCBBGHBCCBCcBrBcBEcBkBHBCbBc1BBLVBLSBORBvDoCB4ByBBOyBBOnBBjBbBEGGBVB7HpBBCBBEBBRFBzBCBEcBLJJBUBrBRBvBUBcWBKlCBsBEBL4BBKOOBXBYyBBSDBJiBBEKKB+BBCDBKBBLCCkBRBChBBDHHBCB-BGBCCCBCBCOBCJBI4BBYDBCHBDBBDVBCGBCBBCEBEHBDBBDBBEHHGGBdJBCDDClBBCJBCDDCDBCBBECCtBhCBCCBCDBVCBfhCBDBBC5F5FB0BBDGBaFBjB+BBCEE8B1BBDoCoCBZBDNBWGB6F4BBoD-BBgBHBDDDBGBCBBCdBCBBDBBDDB+CHBDtBBDFBCCCBccBxBBDJBSnCBGTTBnCBoDHB5CgBBgBIBCsBBCGBCyByBBcBDVBCNBqCGBCBBCrBBECCBCCBBBCDDBZZBEBCBBCkBBCBBCDBCYYBqBBlIWBKQBCoBBECBwDwCwCB4cBnDuDBSjGBtyCgDBQvhBBSFBa68DBGmSB61GuBBy2B4RBIeBSuCBSdBTvBBRDBgBUBGSBxNsBB0G-BBhBYBDYBtBqCBF4BBIQBhCBBCNNBFBK1mHBqBfBiDyDB+vIDBCGBCBBCiJBQeeBBBDPPBCBJrMBloCqDBGMBEIBIJBFi7Fi7FBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDYBCYBCeBCYBCeBCYBCeBCYBCeBCYBCHB15BeBHFB2GGBCQBDGBCBBCEBG9BBiBxDxDBrBBLGBRiKiKBcBTrBBlPbBlHdBDwGwGBdBCVBJBBhHGBCDBCBBCOBCkGB8BjCBEEE1lBDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1TZBHZBHZB3zD-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Dash:()=>new r(n("tB9qB9qB0BiyDiyDmgBqgCqgCBEB+BoBoBQnMnMlgDDDgBBBFdd-NUUwDxszBxszBBmBmBLqFqFhzD-J-J",!1)),Emoji:()=>new r(n("jBHHGJBwDFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDrGrGhFBBNBBPDDBIBsCZBCBBYVVDIBWBBvFhBBDvDBDBBCCBDyCBDCBCmIBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDDBEJBECCBEEDJBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Emoji_Component:()=>new r(n("jBHHGJB0+H2G2Gsp3B3+8B3+8BBYB8PEBxtBDBtzhY-CB",!1)),Emoji_Modifier:()=>new r(n("7-8DE",!0)),Emoji_Modifier_Base:()=>new r(n("9wJ8G8GRDB4jzD9B9BBBBDDDBBB2DBBDKBWSBEFFBBBCCBICCZqGqGBFFWFFBvFvFBBBEEB0CRRBBBKMMgSDDJHBHKKBIBDCB5B+B+BBCCBCCSCBCMBmHCBrBIB",!1)),Emoji_Presentation:()=>new r(n("64IBBuGDBEDDqQBBWBBzBLBsBUUOJJBSSBGGBJJGWWIBBCFFDIIFBBdkBkBCFFBBBC+B+BBBBZPP8aBB0BFFvlxDrGrG-FDDBIBsCZBCZZVDDBDBCCBWBBvFgBBNIBClCBCVBNqBBFEBNQBEEEBlCBCCCB5FBD+BBODBCXBTbbBOO3C0CBxBlCBHEEBBBDDBEDBMBBIIBkHLBF8I8IBtBBCJBC4FBxDMBEKBE4BBCFFBOBDLBFJB",!1)),Extended_Pictographic:()=>new r(n("pFFFu8HNN5GXX7CFBQBBwLBBNnFnFaKBFCBoGoHoHBLLK7B7BBCBCEBKGDBDDFDDCBBDIEBJJBBBGCCGLBMBBDCCBCCTDDBTTBEBCCCBEEBGGDBBFBBMBBGBBDGGBECBVVBGGBEBCDBDFFDDDBEBCDDCCCHEEHLLBQQDFFCFFBBBCMMBxBxBBBBKeP1LBBwOCBUBB0BFF7mBNN6SCCrrvDoBoBBCBlDLBQBBQPPBmBmBBIBxDBBNBBPDDBIBU3BBcOBLVVDIBCDBKWBH7FBDvDBDBBCCBDyCBDCBCDBG9HBC+BBMFBCXBIBBDHBNDDBCBDFFBOOBDDJBBKGGBBBNCBJCBDCCFHHEHHB0CBxBlCBGHBDQBECCBEBDMB7GlBBNDB5BHBLFBpBHBfBBNDBDNBKmBBNuBBCJBC4FB5CHBPxEBhI9fB",!1)),Hex_Digit:()=>new r(n("wBJIFbFq1-BJIFbF",!0)),Lowercase:()=>new r(n("hDZBwBLLFlBlBBWBCHBC2BCBQCBuBCDECBBBDCCDEEBFFDEEBBBDDDCCCDCCBCCDEECDDBDDBBBHGDCOCBSCBDDCEEC4BCBFBDDDBCCFICBjCBDiBBIBBfEBhDsBsBCEEDDBTccBhBBCBBECBCWCBDBCGDB0B0BBuBBCgBCK0BCDMCBgDCxBoBBo6CqBBCDB5XFBjkCIBC2D2DB+FBiC0ECBHBCgDCBHBJFBLHBJHBJFBLHBJHBJNBDHBJHBJHBJEBCBBHEEBBBCBBJDBDBBJHBLCBCBB6DOORMBuDEEBEEcKFDBBJDBFiBiBBOBFsasaBYBn6BvBBCEEBGCFCCBCCBGBEiDCBIICFFNlBBCGG0oesBCUaCBBBmEMCBBBC8BCBIBCCCDICFCCDCCBBBCSCGGGCMCFCCDOCWDBCCCBBB2ZqBBCNBHvCBh6TGBNEBqhBZBumBnBBpEjBB8EKBCOBCGBCBBkODDBBBCpBBCIBmoByBB+DVB75CfBhsVfB8BYBnqZZBbGBCRBbZBbDBCCCBFBCKBbZBbZBbZBbZBbZBbZBbZBbZBbbBdYBCFBbYBCFBbYBCFBbYBCFBbYBCFBC15B15BBIBCTBHFBmI9BB1lChBB",!1)),Math:()=>new r(n("rBRRBBBgBeeCuBuBFmBmBgB5W5WBBBDbbBDDBBBwQCBuwGccBBBMEEOPPBCBWEBMEBiCMBFEEBFFBDBTFFDJBCDDBEBHEEBDDBCCBBBCFBENBClClCBWBCFBCBBFBBFfBCHHBPPBqIBJDBVBB7CffBZBCZZMGB+NBBNJBFFBFBBDBBEEBPCCDFBMHBGBB6BCCeDBKCBxK-BBhI-PBxBUBDFB9+zB4Z4ZBEBCjFjFRCBeCCeCCkEHHBCBitDBBhrwBwoBwoBBzCBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBBhwFDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB-uCIB",!1)),Quotation_Mark:()=>new r(n("iBFFkEQQ96HHBaBBowDqOqOBCBOCBixzBDB+FFF7CBB",!1)),Terminal_Punctuation:()=>new r(n("hBLLCMMBEE-ZJJiQ6B6BpCPPCCB1FsBsBBJBCsHsHB3B3BBEBCHBgBmImIB1nB1nBBtFtFFFB4JBB2YHBmY9D9DBBBoCBB+ECBEoBoBBCBDBB7JBBjLDBjFBBLBBCCBeCB8FEB-BBBldYYBKKBBBwlDCBzJOOFLLCBBEBBtNBB8ndBBuICBkHEB-LBB3CBBgD4E4EBBB0ECBgERRB6H6HnxUDDB6B6BBBBCDBqFLLCMMBEEiCDD7hBxBxBnkBoGoG3JBB5EFBlCFB6CDB5dEBtBDB+FGBxDDBgECBiEBBHRRB5C5CBDBtDrJrJB2D2DBBBNBBnLDBEOBqDBB6HCBmQCC8HBB4CBBFBB-MCBuBmUmUBrCrCBspBspBBDB6vRBBmEiCiCBBBLqRqRBoJoJBnwTnwTovHDB",!1)),Uppercase:()=>new r(n("hCZBmDWBCGBiB2BCDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIJDCMCDQCDDDCCBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBDDBBBEWCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBpCDBNDBNDBNEBMDBnIFFECBDCBDEEBDBHGCBCBDDBLBBGbbBOBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoqZZBbZBbZBbCCBGDBDDBCBCHBbZBbBBCDBDHBCGBcBBCDBCEBCEEBFBcZBbZBbZBbZBbZBbZBfYBiBYBiBYBiBYBiBYBiB2pE2pEBgBBvgCZBHZBHZB",!1)),White_Space:()=>new r(n("JEBTlDlDbgvFgvFgsCKBeBBGwBwBh9DAB",!1))}),ar.SCRIPTS=new em({Adlam:()=>new r(n("go6DrCFJFB",!0)),Ahom:()=>new r(n("g4lCaDOFW",!0)),Anatolian_Hieroglyphs:()=>new r(n("ggxCmS",!0)),Arabic:()=>new r(n("gwBEBCFBCNBCCBCfBCJBMZBCrDBChBBxCvBBxHhBBGqCBCcBxy8BtPBDvEBhBPBxDEBCmEBk7DeBkCFBJIBiBFBh43BDBCaBCBBCDDCJBCDBCCCHFFCECBBBCBBCDDCICBCCDDBCGBCDBCDBCCCBIBCQBGCBCEBCQB1BBB",!1)),Armenian:()=>new r(n("xpBlBDxBDCks9BE",!0)),Avestan:()=>new r(n("g4iC1BEG",!0)),Balinese:()=>new r(n("g4GsCCxB",!0)),Bamum:()=>new r(n("g1pB3CpowB4R",!0)),Bassa_Vah:()=>new r(n("w26CdDF",!0)),Batak:()=>new r(n("g+GzBJD",!0)),Bengali:()=>new r(n("gsCDBCHBDBBDVBCGBCEEBCBDIBDBBDDBJFFBCCBDBDYB",!1)),Beria_Erfe:()=>new r(n("g17CYDY",!0)),Bhaiksuki:()=>new r(n("ggnCICsBCNLc",!0)),Bopomofo:()=>new r(n("qXB6wLqBxDf",!0)),Brahmi:()=>new r(n("ggkCtCFjBKA",!0)),Braille:()=>new r(n("ggK-H",!0)),Buginese:()=>new r(n("gwGbDB",!0)),Buhid:()=>new r(n("g6FT",!0)),Canadian_Aboriginal:()=>new r(n("ggF-TxRlC7tgCP",!0)),Carian:()=>new r(n("g1gCwB",!0)),Caucasian_Albanian:()=>new r(n("wphCzBMA",!0)),Chakma:()=>new r(n("gokC0BCR",!0)),Cham:()=>new r(n("gwqB2BKNDJDD",!0)),Cherokee:()=>new r(n("g9E1CDFz7lBvC",!0)),Chorasmian:()=>new r(n("w9jCb",!0)),Common:()=>new r(n("AgCBbFBbuBBCOBCEBYgBgBiOmBBGEBDTB1DKKHCC+THHPEEhB9E9ElQiEiEB6mB6mB2MDBjJwvBwvBBBBoCBBsGBBCumBumBOIIBCBCFBCCBDmYmYBKBD2CBCKBEKBCOBShBB-BlBBCCBDFBCaBCQBqBCBF5UBXKBW-cBhIzTBDpEBhQ9CBzMUBCCCBXBQHBFDB8CBBE7C7CB0E0EBOBhBlBBKxBxBB+BBgBwCBwB5C5CBmFBhuG-BBhoWhBBnDCBmFJB1HhFhFsMPPBzuUzuUBxGxGBIBXiBBCSBCDB0ECCBeBbFBbKBLuBuBBhChCBFBCGBLEBjICBFsBBEIBxCMB0BsBBlHaBltuBDB96D8HBEzNBHWBQQBgDzDB9B1HBLmBBD9BBEQBJBBIdBF8BB2GTBNTBN2CBKYBoE0CBCmCBCBBDDDBDDBCBCLBCCCBFBCgCBCDBDHBCGBCbBCDBCEBCEEBFBCzKBDjJBDxBByjFjCBtC8BBjWrBBFjDBNOBDOBCOBCkBBLtFB5BZBCBBOrBBFIBIBBPFB7E4eBEQBEMBE5GBHLBFQQBKBF3BBJJBHnBBJdBDLBFBBPIBoB3KBJNBDMBEKBE4BBCFFBOBDLBFJBIyEBCmDBnghYffB+CB",!1)),Coptic:()=>new r(n("ifNxkKzDGG",!0)),Cuneiform:()=>new r(n("ggoC5cnDuDCEMjG",!0)),Cypriot:()=>new r(n("ggiCFBDCCBqBBCBBEDD",!1)),Cypro_Minoan:()=>new r(n("w8rCiD",!0)),Cyrillic:()=>new r(n("ggBkEBDoFBx6FKBhFtCtCojEfBhie-CBv8VBBhw4B9BBiBAB",!1)),Deseret:()=>new r(n("gghCvC",!0)),Devanagari:()=>new r(n("goCwCFODZh7nBfhwcJ",!0)),Dives_Akuru:()=>new r(n("gomCGBDDDBGBCBBCdBCBBDLBKJB",!1)),Dogra:()=>new r(n("ggmC7B",!0)),Duployan:()=>new r(n("ggvDqDGMEIIJDD",!0)),Egyptian_Hieroglyphs:()=>new r(n("ggsC1iBL68D",!0)),Elbasan:()=>new r(n("gohCnB",!0)),Elymaic:()=>new r(n("g-jCW",!0)),Ethiopic:()=>new r(n("gwEoCBCDBDGBCCCBCBDoBBCDBDgBBCDBDGBCCCBCBDOBC4BBCDBDiCBDfBEZBnvGWBKGBCGBCGBCGBCGBCGBCGBCGBjpfFBDFBDFBKGBCGBylvCGBCDBCBBCOB",!1)),Garay:()=>new r(n("gqjClBEcJB",!0)),Georgian:()=>new r(n("glElBBCGGDqBBCDBx8CqBBDCBhiElBBCGG",!1)),Glagolitic:()=>new r(n("ggL-Ch9sDGCQDGCBCE",!0)),Gothic:()=>new r(n("w5gCa",!0)),Grantha:()=>new r(n("g4kCDBCHBDBBDVBCGBCBBCEBDIBDBBDCBDHHGGBDGBEEB",!1)),Greek:()=>new r(n("wbDBCCBDDBCFFCCCBBBCCCBSBC+BBPPBnpGEBzBEBFEB1ChKhKBUBDFBDlBBDFBDHBCGCBdBD0BBCOBCNBDFBCSBDCBCIBoJ-xiB-xiB7uVuCBSgj0Bgj0BBkCB",!1)),Gujarati:()=>new r(n("h0CCBCIBCCBCVBCGBCBBCEBDJBCCBCCBDQQBCBDLBIGB",!1)),Gunjala_Gondi:()=>new r(n("grnCFCBCkBCBCFIJ",!0)),Gurmukhi:()=>new r(n("hwCCBCFBFBBDVBCGBCBBCBBCBBDCCBDBFBBDCBEIIBCBCIIBPB",!1)),Gurung_Khema:()=>new r(n("go4C5B",!0)),Han:()=>new r(n("g0LZBC4CBN1GBwBCCaIBPDBle-tGBhC-vUBhoWtLBDpDBpodBBNGBqgkB-2pBBhB9oEBDt0FBDwpHBQtTBjtC9QBjvBq6EBGppIB",!1)),Hangul:()=>new r(n("goE-HvxHBiI9CyDeiCei3dckUj9KNWFwBl9JeEFDFDFDC",!0)),Hanifi_Rohingya:()=>new r(n("gojCnBJJ",!0)),Hanunoo:()=>new r(n("g5FU",!0)),Hatran:()=>new r(n("gniCSCBGE",!0)),Hebrew:()=>new r(n("xsB2BBJaBFFBpp9BZBCEBCCCBCCBCCBIB",!1)),Hiragana:()=>new r(n("hiM1CBHCBi7-C+IBTeeBBBulQAB",!1)),Imperial_Aramaic:()=>new r(n("giiCVCI",!0)),Inherited:()=>new r(n("gYvDB2IBBlOKBbhXhXBCB8qEtBBDLBlPCBCMBCGBFHHEBBnG-BBtQBBjGgBB65DDBsDBBmrzBPBRNBwejHjH7iEl+uBl+uBBsBBDWBhRCBSHBDGBfDBz6rYvHB",!1)),Inscriptional_Pahlavi:()=>new r(n("g7iCSGH",!0)),Inscriptional_Parthian:()=>new r(n("g6iCVDH",!0)),Javanese:()=>new r(n("gsqBtCDJFB",!0)),Kaithi:()=>new r(n("gkkCiCLA",!0)),Kannada:()=>new r(n("gkDMCCCWCJCEDICCCDIBGCCDDJCC",!0)),Katakana:()=>new r(n("hlM5CBDCBxHPBxGuBBC3CBvgzBJBCsBBzisBDBCGBCBBCgJgJBBBzBPPBCB",!1)),Kawi:()=>new r(n("g4nCQCoBEc",!0)),Kayah_Li:()=>new r(n("goqBtBCA",!0)),Kharoshthi:()=>new r(n("gwiCDCBGHCCCcDCFJII",!0)),Khitan_Small_Script:()=>new r(n("k-7C84G84GB0OBqBAB",!1)),Khmer:()=>new r(n("g8F9CDJHJnPf",!0)),Khojki:()=>new r(n("gwkCRCuB",!0)),Khudawadi:()=>new r(n("w1kC6BGJ",!0)),Kirat_Rai:()=>new r(n("gq7C5B",!0)),Lao:()=>new r(n("h0DBBCCCBDBCXBCCCBVBDEBCCCBFBCJBDDB",!1)),Latin:()=>new r(n("hCZBHZBwBQQGWBCeBCgOBoBEB8wGlBBHwBBGDBGMBClCBiC-HByLOORMBuEBBHccSoBB42CfBj1elDBExCBVOBxZqBBCIBCDB38TGB7gBZBHZBmhCFBCpBBCIBm61BeBHFB",!1)),Lepcha:()=>new r(n("ggH3BEOEC",!0)),Limbu:()=>new r(n("goGeBCLBFLBFEEBKB",!1)),Linear_A:()=>new r(n("gwhC2JKVLH",!0)),Linear_B:()=>new r(n("gggCLCZCSCBCODNjB6D",!0)),Lisu:()=>new r(n("wmpBvBx1eA",!0)),Lycian:()=>new r(n("g0gCc",!0)),Lydian:()=>new r(n("gpiCZGA",!0)),Mahajani:()=>new r(n("wqkCmB",!0)),Makasar:()=>new r(n("g3nCY",!0)),Malayalam:()=>new r(n("goDMCCCyBCCCFFPDZ",!0)),Mandaic:()=>new r(n("giCbDA",!0)),Manichaean:()=>new r(n("g2iCmBFL",!0)),Marchen:()=>new r(n("wjnCfDVCN",!0)),Masaram_Gondi:()=>new r(n("gonCGBCBBCrBBECCBCCBHBJJB",!1)),Medefaidrin:()=>new r(n("gy7C6C",!0)),Meetei_Mayek:()=>new r(n("g3qBWqGtBDJ",!0)),Mende_Kikakui:()=>new r(n("gg6DkGDP",!0)),Meroitic_Cursive:()=>new r(n("gtiCXFTDtB",!0)),Meroitic_Hieroglyphs:()=>new r(n("gsiCf",!0)),Miao:()=>new r(n("g47CqCF4BIQ",!0)),Modi:()=>new r(n("gwlCkCMJ",!0)),Mongolian:()=>new r(n("ggGBBDCCBSBH4CBIqBB2t-BMB",!1)),Mro:()=>new r(n("gy6CeCJFB",!0)),Multani:()=>new r(n("g0kCGBCCCBCBCOBCKB",!1)),Myanmar:()=>new r(n("ggE-EhqmBeiDfxibT",!0)),Nabataean:()=>new r(n("gkiCeJI",!0)),Nag_Mundari:()=>new r(n("wm5DpB",!0)),Nandinagari:()=>new r(n("gtmCHDtBDK",!0)),New_Tai_Lue:()=>new r(n("gsGrBFZHKEB",!0)),Newa:()=>new r(n("gglC7CCE",!0)),Nko:()=>new r(n("g+B6BDC",!0)),Nushu:()=>new r(n("h-7CvsQvsQBqMB",!1)),Nyiakeng_Puachue_Hmong:()=>new r(n("go4DsBENDJFB",!0)),Ogham:()=>new r(n("g0Fc",!0)),Ol_Chiki:()=>new r(n("wiHvB",!0)),Ol_Onal:()=>new r(n("wu5DqBFA",!0)),Old_Hungarian:()=>new r(n("gkjCyBOyBIF",!0)),Old_Italic:()=>new r(n("g4gCjBKC",!0)),Old_North_Arabian:()=>new r(n("g0iCf",!0)),Old_Permic:()=>new r(n("w6gCqB",!0)),Old_Persian:()=>new r(n("g9gCjBFN",!0)),Old_Sogdian:()=>new r(n("g4jCnB",!0)),Old_South_Arabian:()=>new r(n("gziCf",!0)),Old_Turkic:()=>new r(n("ggjCoC",!0)),Old_Uyghur:()=>new r(n("w7jCZ",!0)),Oriya:()=>new r(n("h4CCCHDBDVCGCBCEDIDBDCICFBCEDR",!0)),Osage:()=>new r(n("wlhCjBFjB",!0)),Osmanya:()=>new r(n("gkhCdDJ",!0)),Pahawh_Hmong:()=>new r(n("g46ClCLJCGCUGS",!0)),Palmyrene:()=>new r(n("gjiCf",!0)),Pau_Cin_Hau:()=>new r(n("g2mC4B",!0)),Phags_Pa:()=>new r(n("giqB3B",!0)),Phoenician:()=>new r(n("goiCbEA",!0)),Psalter_Pahlavi:()=>new r(n("g8iCRIDNG",!0)),Rejang:()=>new r(n("wpqBjBMA",!0)),Runic:()=>new r(n("g1FqCEK",!0)),Samaritan:()=>new r(n("ggCtBDO",!0)),Saurashtra:()=>new r(n("gkqBlCJL",!0)),Sharada:()=>new r(n("gskC-ChsCH",!0)),Shavian:()=>new r(n("wihCvB",!0)),Siddham:()=>new r(n("gslC1BDlB",!0)),Sidetic:()=>new r(n("gqiCZ",!0)),SignWriting:()=>new r(n("gg2DrUQECO",!0)),Sinhala:()=>new r(n("hsDCBCRBEXBCIBCDDBFBEFFBEBCCCBGBHJBDCBt-gCTB",!1)),Sogdian:()=>new r(n("w5jCpB",!0)),Sora_Sompeng:()=>new r(n("wmkCYIJ",!0)),Soyombo:()=>new r(n("wymCyC",!0)),Sundanese:()=>new r(n("g8G-BhIH",!0)),Sunuwar:()=>new r(n("g+mChBPJ",!0)),Syloti_Nagri:()=>new r(n("ggqBsB",!0)),Syriac:()=>new r(n("g4BNC7BDCxIK",!0)),Tagalog:()=>new r(n("g4FVKA",!0)),Tagbanwa:()=>new r(n("g7FMCCCB",!0)),Tai_Le:()=>new r(n("wqGdDE",!0)),Tai_Tham:()=>new r(n("gxG+BCcDKHJHN",!0)),Tai_Viet:()=>new r(n("g0qBiCZE",!0)),Tai_Yo:()=>new r(n("g25DeCVJB",!0)),Takri:()=>new r(n("g0lC5BHJ",!0)),Tamil:()=>new r(n("i8CBBCFBECBCDBEBBCCCBEEBEEBBBELBFEBECBCDBDHHPUBm+kCxBBOAB",!1)),Tangsa:()=>new r(n("wz6CuCCJ",!0)),Tangut:()=>new r(n("g-7CgBgBB+3GBhQeBiDyDB",!1)),Telugu:()=>new r(n("ggDMCCCWCPDICCCDIBCCCBDDDJII",!0)),Thaana:()=>new r(n("g8BxB",!0)),Thai:()=>new r(n("hwD5BGb",!0)),Tibetan:()=>new r(n("g4DnCCjBFmBCjBCOCGFB",!0)),Tifinagh:()=>new r(n("wpL3BIBPA",!0)),Tirhuta:()=>new r(n("gklCnCJJ",!0)),Todhri:()=>new r(n("guhCzB",!0)),Tolong_Siki:()=>new r(n("wtnCrBFJ",!0)),Toto:()=>new r(n("w04De",!0)),Tulu_Tigalari:()=>new r(n("g8kCJBCDDClBBCJBCDDCDBCJBCBBJBB",!1)),Ugaritic:()=>new r(n("g8gCdCA",!0)),Unknown:()=>new r(n("4bBBHDBICCVuMuMnBBBzBBBE4B4BBGBcDBHKBvI9B9BBmDmDBMB8BBByBBBQddBCCMEBjBEBuHJJBDDBXXICCBBBFBBKBBDBBFHBCDBDGGBaaBEEHDBDBBXIIDGDBCCGDBDBBECBCGBFCCBFBSJBEKKEXXIDDGBBLIEBCCBNBFBBNGBIEEJBBDBBXIIDGGBKKBDDBEEBFBEDBDGGBTTBIBDHHBBBEFFBBBDCCDCBDCBECBNDBGCBEFFBCCBEBCNBWEBOEEYRRBKKEFFBFBDEEDBBFBBLGBXEEYLLGBBKEEFGBDEBEFFBLLELBOEE0BEEHDBRBBbEETCBZKKCBBICBCDBHCCJFBLBBELB7BDBekBBDCCGZZCYYBGGCIILBBFfBpClBlBBCBoBlBlBQOOBjBBnGCCBDBCBB6LFFBIICFFBqBqBFBBiBFFBIICFFBQQ6BFFBkCkCBhBhBBBBbFB3CBBHBB+UCB6CGBXIBZIBVLBOEEDLB-CBBLFBLFBbFB6CGBsBEBnCJBgBNNBCBNDBCCBrBBBGKBtBDBbFBMCB-BBBiCeeBMMBEBLFBPBBvBBBNTBuCnFnFBGB9BCBQCB-BEBsBBBMHBsBEB3QBBHBBnBBBHBBJGCgBBB2BQQPBBHUUBEEKmDmDNBBcOOBBBjBNBiBOBtEDB7UVBMUB14BBB-LEBuBCCBDBCBB5BGBDNBZIBI4BI-DhBBb6C6CBKB3GZBxC3C3CBoDoDBDBsB-C-C3CIBxBuzcuzcBBB4BIB9KTB5FHB+GTB9BCBLFB5BHBnCHBNFB1DKBfCBvCMMBCBiB4B4BBHBPBBLBBoDXBdJBHBBHBBHIBIII9BDB-DBBLFBl9KLBYDByBjoIBvLBBrDlBBILBGEBbGGCGDrUfBrBFB0BUUFDBGoEoEBCC-FCBHBBHBBHBBECBIIIBIBGBBNbbUDDQBBPhBB8DEBEDBuBCB5COOBBBCuBBvBhEBeCByBOBdDBlBIBfEBsBEBfmBmBBCBPpBB-EBBLFBlBDBlBDBpBHB1BKBNQQIDDMQQIDDBBB1BLB4JIBXJBJXBHrBrBKkCBHBBCtBtBDCBCBBYpCpCBGBKvBBUDDBDBiBCBcEBclBB5BDBVBBzBDDBDBJEEeBBEDBLGBKGBhCfBoBDBNIB3BCBeBBcEBbGBFLBIvCBqC2BB0BMB0BGBvBHBLFBnBCBeHBDvGBgBrBrBEBBDPBHHBKgBBvBHBrBVBblBBdTBYIBvCDBlBIBlCJBCBBaGBLFB2BTTBGBoBIBhDVVBJBTwBwBB8BBICCFQQMFB8BEBLFBFJJBDDBXXIDDGLLBDDBEEBCCBEBCEBIBBICBGKBLCCBCCnBLLCBBCFFLDDBGBDcB9CGGBcBpCHBLlFB3BBBnBhBBmCKBLFBOSB7BFBLFBVbBcBBQDBY4FB9BjDB0CLBJBBCBBJDDfDDBNNBHBLlCBJBBvBBBMaBpCHB0CMBqCGBL1CBJ3CBjBNBLFBKuBuBPJBeCBhBBBXPPBnCBIDDtBCBCDDKHBLFBHDDmBDDHGBLFBtBDBL1HBaGBSqBqBBBBe0CBCOBzBMB8clDBwDGGBJBlGryCBkDMB3iBJB88DEBoS41GB7Bl2BB6RGBgBLLBCByCLLBEBfBBHJBnCJBLIIWEBUvNB7BlGB8CEBaBBarBBsCDB6BGBS-BBGKBIIB3mHoBBhBgDB0D8vIBFIIDkJkJBNBCcBEBBCNBFHBtMjoCBsDEBOCBKGBLBBJ76DB+HCB1NFBYOBSOBvBBBYIB1D7BB3HJBoBBBjGUBnC5DBVLBVLB4CIBamEB2CoCoCDBBCBBDBBFNNCIIiCFFBJJIddFGGCCBI1K1KBlJlJB-V-VBNBGQQBuiBBgBFBH0GBISSBIIDGGBDB-BgBBCvDBuBCBPBBLDBD-JBgBQB7BEBCvOBrB1GBsBDBC-FBgBXXBGBD-GBIFFDQQmGBBRoBBtCDBLDBDwYBlCrCB+BhGBFccDCCBCCLFFCCCBEBCDBCECEDDCBBCICDCCBFFIKFCLLSEBEGGSzBBDtIBtBDBlDLBQBBQQQmBJBvF3BBeMBtBDBKGBDNBH5EB6eCBSCBOCB7GFBNDBCOBNDB5BHBLFBpBHBfBBNDBDNBKmBB5KHBPBBOCBMCB6BCCBCBRBBNDBLGB0EoDoDBjgBBh3pBfB-oEBBv0FBBypHOBvThtCB-QhvBBs6EEBrpIm8yVBCdBhD-DBxHvw-FB",!1)),Vai:()=>new r(n("gopBrJ",!0)),Vithkuqi:()=>new r(n("wrhCKCOCGCBCKCOCGCB",!0)),Wancho:()=>new r(n("g24D5BGA",!0)),Warang_Citi:()=>new r(n("glmCyCNA",!0)),Yezidi:()=>new r(n("g0jCpBCCDB",!0)),Yi:()=>new r(n("ggoBskBE2B",!0)),Zanabazar_Square:()=>new r(n("gwmCnC",!0))}),ar.FOLD_CATEGORIES=new em({L:()=>new r(n("laA",!0)),LC:()=>new r(n("laA",!0)),Ll:()=>new r(n("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGC3HrBrBCEEJHHCCBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHxC9zC9zCBuBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Lt:()=>new r(n("kOCCBCCBCClBCCtsHHBJHBJHBMQQwBAB",!1)),Lu:()=>new r(n("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpL2B2Bs1CvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1)),M:()=>new r(n("5cgBgBlgHAB",!1)),Mn:()=>new r(n("5cgBgBlgHAB",!1)),Emoji:()=>new r(n("8mJA",!0)),Extended_Pictographic:()=>new r(n("8mJA",!0)),Lowercase:()=>new r(n("hCZBmDWBCGBiBuBCEECDOCDuBCBECEBBCCCBCCBBBDDBCBBCCBEBBCBBCECBCCDCCBCCBBBCCCBEEIBBCBBCBBCOCDQCDBBCCCBBBC4BCIBBCBBDCCBCBCGCiJCCEJJHCCBBBCCCBCCBPBCIBkBJJCUCGDDCBBDyBBxBgBCK2BCBMCD+CCDlBBq6ClBBCGGzW1CB0kCHHBpBBDCBhK0ECKgDCKHBJFBLHBJHBJFBMGCJHBZHBJHBJHBJEBMEBMDBNEBMEBqJEEBHHuBPBUzZzZBYBx5BvBBxBCCBBBDGCBCBCDDJCBCgDCJCCFuqeuqeCqBCUaCoEMCE8BCLECBICFCCDCCEUCBDBCEBCOCBCBCCCBQCZs5Vs5VBYBmmBnBBpEjBB9EKBCOBCGBCBBr3ByBB+EVB75CfBhsVfBhCYBoyehBB",!1)),Math:()=>new r(n("ycGDCHHFMMDDDCHHFAB",!1)),Uppercase:()=>new r(n("hDZB7BqBqBBWBCHBCuBCEECDOCDsBCDECBBBDCCDEEGDDECBDDDCCCDFFDEECDDECCGBBCBBCBBCOCBSCDBBCEECkBCEQCJDDBCCFICBEBCBBCCCBEEBCCBCBCEBDCCBDDIDDCBBEFBGLLBnFnFsBCCEEEBBBvBDBCdBCBBECBCWCBDBCGD1BvBBCgBCK0BCDMCBgDCyBlBBq6CqBBDCB5XFBjkCIBCvHvHERRzD0ECGGGC8CCBHBJFBLHBJHBJFBMGCJHBJNBzBBBNSSBPPBEEpLiBiBBOBFsasaBYBn6BvBBCEEBGCHDDLiDCJCCFNNBkBBCGG0oesBCUaCoEMCE8BCLCCDICFFFCBBDSCMOCFCCDOCb9a9advCBi8UZBumBnBBpEjBB8EKBCOBCGBCBBk4ByBB+DVB75CfBhsVfB8BYBvyehBB",!1))}),ar.FOLD_SCRIPT=new em({Common:()=>new r(n("8cgBgB",!1)),Greek:()=>new r(n("1FwUwU",!1)),Inherited:()=>new r(n("5cgBgBlgHAB",!1))});var tm=ar,C=((Mg=class{static is32(e,t){let r=0,n=e.length;for(;r<n;){var i=r+Math.floor((n-r)/2),s=e.getLo(i),a=e.getHi(i);if(s<=t&&t<=a)return(t-s)%e.getStride(i)==0;t<s?n=i:r=i+1}return!1}static is(t,r){if(r<=Mg.MAX_LATIN1){for(let e=0;e<t.length;e++){var n;if(!(r>t.getHi(e)))return!(r<(n=t.getLo(e)))&&(r-n)%t.getStride(e)==0}return!1}return 0<t.length&&r>=t.getLo(0)&&Mg.is32(t,r)}static isUpper(e){var t;return e<=Mg.MAX_LATIN1?(t=String.fromCodePoint(e)).toUpperCase()===t&&t.toLowerCase()!==t:Mg.is(tm.Upper,e)}static isPrint(e){return e<=Mg.MAX_LATIN1?32<=e&&e<Mg.MAX_ASCII||161<=e&&173!==e:Mg.is(tm.Print,e)}static simpleFold(e){var t;return tm.CASE_ORBIT.has(e)?tm.CASE_ORBIT.get(e):(t=v.toLowerCase(e))!==e?t:v.toUpperCase(e)}static equalsIgnoreCase(t,r){if(t===r)return!0;if(!(t<0||r<0)){if(t<=Mg.MAX_ASCII&&r<=Mg.MAX_ASCII)return 65<=t&&t<=90&&(t|=32),65<=r&&r<=90&&(r|=32),t===r;for(let e=Mg.simpleFold(t);e!==t;e=Mg.simpleFold(e))if(e===r)return!0}return!1}}).MAX_RUNE=1114111,Mg.MAX_ASCII=127,Mg.MAX_LATIN1=255,Mg.MAX_BMP=65535,Mg.MIN_FOLD=65,Mg.MAX_FOLD=125251,Mg.MIN_HIGH_SURROGATE=55296,Mg.MAX_HIGH_SURROGATE=56319,Mg.MIN_LOW_SURROGATE=56320,Mg.MAX_LOW_SURROGATE=57343,Mg.MIN_SUPPLEMENTARY_CODE_POINT=65536,Mg);let rm=new Uint8Array(256);for(let wU=0;wU<256;wU++)rm[wU]=97<=wU&&wU<=122||65<=wU&&wU<=90||48<=wU&&wU<=57||95===wU?1:0;let nm=null,im=null;(Ug=class{static emptyInts(){return[]}static isByteArray(e){return Array.isArray(e)||e instanceof Uint8Array}static isalnum(e){return v.CODES.get("0")<=e&&e<=v.CODES.get("9")||v.CODES.get("a")<=e&&e<=v.CODES.get("z")||v.CODES.get("A")<=e&&e<=v.CODES.get("Z")}static unhex(e){return v.CODES.get("0")<=e&&e<=v.CODES.get("9")?e-v.CODES.get("0"):v.CODES.get("a")<=e&&e<=v.CODES.get("f")?e-v.CODES.get("a")+10:v.CODES.get("A")<=e&&e<=v.CODES.get("F")?e-v.CODES.get("A")+10:-1}static escapeRune(e){let t="";if(C.isPrint(e))0<=Ug.METACHARACTERS.indexOf(String.fromCodePoint(e))&&(t+="\\"),t+=String.fromCodePoint(e);else switch(e){case v.CODES.get('"'):t+='\\"';break;case v.CODES.get("\\"):t+="\\\\";break;case v.CODES.get("\t"):t+="\\t";break;case v.CODES.get("\n"):t+="\\n";break;case v.CODES.get("\r"):t+="\\r";break;case v.CODES.get("\b"):t+="\\b";break;case v.CODES.get("\f"):t+="\\f";break;default:var r=e.toString(16);e<256?(t+="\\x",1===r.length&&(t+="0"),t+=r):t+=`\\x{${r}}`}return t}static stringToRunes(e){var t=String(e),r=[];let n=0;for(;n<t.length;){var i=t.codePointAt(n);r.push(i),n+=i>C.MAX_BMP?2:1}return r}static runeToString(e){return String.fromCodePoint(e)}static isWordRune(e){return e<256&&1===rm[e]}static emptyOpContext(e,t){let r=0;return e<0&&(r|=Ug.EMPTY_BEGIN_TEXT|Ug.EMPTY_BEGIN_LINE),10===e&&(r|=Ug.EMPTY_BEGIN_LINE),t<0&&(r|=Ug.EMPTY_END_TEXT|Ug.EMPTY_END_LINE),10===t&&(r|=Ug.EMPTY_END_LINE),Ug.isWordRune(e)!==Ug.isWordRune(t)?r|=Ug.EMPTY_WORD_BOUNDARY:r|=Ug.EMPTY_NO_WORD_BOUNDARY,r}static quoteMeta(e){return e.split("").map(e=>0<=Ug.METACHARACTERS.indexOf(e)?"\\"+e:e).join("")}static charCount(e){return e>C.MAX_BMP?2:1}static toArray(e){var t=e.length,r=new Array(t);for(let n=0;n<t;n++)r[n]=e[n];return r}static stringToUtf8ByteArray(i){if(globalThis.TextEncoder)return nm=nm||new TextEncoder,Ug.toArray(nm.encode(i));{let t=[],r=0;for(let n=0;n<i.length;n++){let e=i.charCodeAt(n);e<128?t[r++]=e:(e<2048?t[r++]=e>>6|192:((64512&e)===C.MIN_HIGH_SURROGATE&&n+1<i.length&&(64512&i.charCodeAt(n+1))===C.MIN_LOW_SURROGATE?(e=C.MIN_SUPPLEMENTARY_CODE_POINT+((1023&e)<<10)+(1023&i.charCodeAt(++n)),t[r++]=e>>18|240,t[r++]=e>>12&63|128):t[r++]=e>>12|224,t[r++]=e>>6&63|128),t[r++]=63&e|128)}return t}}static utf8ByteArrayToString(n){var e;if(globalThis.TextDecoder)return im=im||new TextDecoder("utf-8"),e=n instanceof Uint8Array?n:new Uint8Array(n),im.decode(e);{let e=[],t=0,r=0;for(;t<n.length;){var i,s,a,o=n[t++];o<128?e[r++]=String.fromCharCode(o):191<o&&o<224?(i=n[t++],e[r++]=String.fromCharCode((31&o)<<6|63&i)):239<o&&o<365?(i=((7&o)<<18|(63&n[t++])<<12|(63&n[t++])<<6|63&n[t++])-C.MIN_SUPPLEMENTARY_CODE_POINT,e[r++]=String.fromCharCode(C.MIN_HIGH_SURROGATE+(i>>10)),e[r++]=String.fromCharCode(C.MIN_LOW_SURROGATE+(1023&i))):(s=n[t++],a=n[t++],e[r++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&a))}return e.join("")}}}).METACHARACTERS="\\.+*?()|[]{}^$",Ug.EMPTY_BEGIN_LINE=1,Ug.EMPTY_END_LINE=2,Ug.EMPTY_BEGIN_TEXT=4,Ug.EMPTY_END_TEXT=8,Ug.EMPTY_WORD_BOUNDARY=16,Ug.EMPTY_NO_WORD_BOUNDARY=32,Ug.EMPTY_ALL=-1;var y=Ug,sr=(e=[],t=0)=>{var r=Object.create(null);for(let s=0;s<e.length;s++){var n=e[s],i=t+s;r[n]=i,r[i]=n}return Object.freeze(r)},sm=((Vg=class{getEncoding(){throw Error("not implemented")}asCharSequence(){throw Error("not implemented")}asBytes(){throw Error("not implemented")}length(){throw Error("not implemented")}isUTF8Encoding(){return this.getEncoding()===Vg.Encoding.UTF_8}isUTF16Encoding(){return this.getEncoding()===Vg.Encoding.UTF_16}}).Encoding=sr(["UTF_16","UTF_8"]),Vg),am=class extends sm{constructor(e=null){super(),this.bytes=e}getEncoding(){return sm.Encoding.UTF_8}asCharSequence(){return y.utf8ByteArrayToString(this.bytes)}asBytes(){return this.bytes}length(){return this.bytes.length}},om=class extends sm{constructor(e=null){super(),this.charSequence=e}getEncoding(){return sm.Encoding.UTF_16}asCharSequence(){return this.charSequence}asBytes(){return y.stringToUtf8ByteArray(this.charSequence.toString())}length(){return this.charSequence.length}},lm=class{static utf16(e){return new om(e)}static utf8(e){return y.isByteArray(e)?new am(e):new am(y.stringToUtf8ByteArray(e))}},um=class{static EOF(){return-8}constructor(){this.end=0}canCheckPrefix(){return!0}endPos(){return this.end}hasString(){return!1}hasAnyString(){return!1}prefixLength(){return 0}},hm=class extends um{constructor(e,t=0,r=e.length){super(),this.bytes=e,this.start=t,this.end=r}hasString(e,t){var r,n=e.bytes;return 0===n.length||-1!==(r=this.indexOf(this.bytes,n,this.start+t))&&r<=this.end-n.length}hasAnyString(e,t){return!!e.ac8&&e.ac8.searchUTF8(this.bytes,this.start+t,this.end)}step(e){var t,r,n,i;return(e+=this.start)>=this.end?um.EOF():(t=255&this.bytes[e])<128?t<<3|1:194<=t&&t<=223&&e+1<this.end?128!=(192&(r=255&this.bytes[e+1]))?t<<3|1:((31&t)<<6|63&r)<<3|2:224<=t&&t<=239&&e+2<this.end?128!=(192&(r=255&this.bytes[e+1]))||128!=(192&(n=255&this.bytes[e+2]))?t<<3|1:((15&t)<<12|(63&r)<<6|63&n)<<3|3:!(240<=t&&t<=244&&e+3<this.end)||128!=(192&(r=255&this.bytes[e+1]))||128!=(192&(n=255&this.bytes[e+2]))||128!=(192&(i=255&this.bytes[e+3]))?t<<3|1:((7&t)<<18|(63&r)<<12|(63&n)<<6|63&i)<<3|4}index(e,t){t+=this.start;var r=this.indexOf(this.bytes,e.prefixUTF8,t);return r<0?r:r-t}context(r){let n=-1;if((r+=this.start)>this.start&&r<=this.end){let t=r-1;if(128<=(n=this.bytes[t--])){let e=r-4;for(e<this.start&&(e=this.start);t>=e&&128==(192&this.bytes[t]);)t--;t<this.start&&(t=this.start),n=this.step(t-this.start)>>3}}var e=r<this.end?this.step(r-this.start)>>3:-1;return y.emptyOpContext(n,e)}indexOf(r,n,e=0){var i=n.length;if(0===i)return e<=this.end?e:-1;var s=n[0],a=this.end-i,o="function"==typeof r.indexOf;let l=e;for(;l<=a;){if(o){if(-1===(l=r.indexOf(s,l))||l>a)return-1}else{for(;l<=a&&r[l]!==s;)l++;if(l>a)return-1}let e=!0;for(let t=1;t<i;t++)if(r[l+t]!==n[t]){e=!1;break}if(e)return l;l++}return-1}prefixLength(e){return e.prefixUTF8.length}},cm=class extends um{constructor(e,t=0,r=e.length){super(),this.charSequence=e,this.start=t,this.end=r}hasString(e,t){var r=this.charSequence.indexOf(e.str,this.start+t);return-1!==r&&r<=this.end-e.str.length}hasAnyString(e,t){return!!e.ac16&&e.ac16.searchUTF16(this.charSequence,this.start+t,this.end)}step(e){var t,r;return(e+=this.start)>=this.end?um.EOF():!((t=this.charSequence.charCodeAt(e))<C.MIN_HIGH_SURROGATE||t>C.MAX_HIGH_SURROGATE||e+1>=this.end)&&(r=this.charSequence.charCodeAt(e+1))>=C.MIN_LOW_SURROGATE&&r<=C.MAX_LOW_SURROGATE?1024*(t-C.MIN_HIGH_SURROGATE)+(r-C.MIN_LOW_SURROGATE)+C.MIN_SUPPLEMENTARY_CODE_POINT<<3|2:t<<3|1}index(e,t){t+=this.start;var r=this.charSequence.indexOf(e.prefix,t);return r<0||r>this.end-e.prefix.length?-1:r-t}context(e){var t=(e+=this.start)>this.start&&e<=this.end?this.charSequence.charCodeAt(e-1):-1,r=e<this.end?this.charSequence.charCodeAt(e):-1;return y.emptyOpContext(t,r)}prefixLength(e){return e.prefix.length}},dm=class{static fromUTF8(e,t=0,r=e.length){return new hm(e,t,r)}static fromUTF16(e,t=0,r=e.length){return new cm(e,t,r)}},e=class extends Error{constructor(e){super(e),this.name="RE2JSException"}},Bm=class extends e{constructor(e,t=null){let r="error parsing regexp: "+e;t&&(r+=`: \`${t}\``),super(r),this.name="RE2JSSyntaxException",this.message=r,this.error=e,this.input=t}getDescription(){return this.error}getPattern(){return this.input}},pm=class extends e{constructor(e){super(e),this.name="RE2JSCompileException"}},fm=class extends e{constructor(e){super(e),this.name="RE2JSGroupException"}},gm=class extends e{constructor(e){super(e),this.name="RE2JSFlagsException"}},mm=class extends e{constructor(e){super(e),this.name="RE2JSInternalException"}},Cm=((Gg=class{static quoteReplacement(e,t=!1){return t?e.indexOf("\\")<0&&e.indexOf("$")<0?e:e.split("").map(e=>{var t=e.codePointAt(0);return t===v.CODES.get("\\")||t===v.CODES.get("$")?"\\"+e:e}).join(""):e.indexOf("$")<0?e:e.split("").map(e=>e.codePointAt(0)===v.CODES.get("$")?"$$":e).join("")}constructor(e,t){if(null===e)throw new Error("pattern is null");this.patternInput=e;var r=this.patternInput.re2();this.patternGroupCount=r.numberOfCapturingGroups(),this.groups=[],this.namedGroups=r.namedGroups,this.numberOfInstructions=r.numberOfInstructions(),t instanceof sm?this.resetMatcherInput(t):y.isByteArray(t)?this.resetMatcherInput(lm.utf8(t)):this.resetMatcherInput(lm.utf16(t))}pattern(){return this.patternInput}reset(){return this.matcherInputLength=this.matcherInput.length(),this.appendPos=0,this.hasMatch=!1,this.hasGroups=!1,this.anchorFlag=0,this}resetMatcherInput(e){if(null===e)throw new Error("input is null");return this.matcherInput=e,this.reset(),this}start(e=0){if("string"==typeof e){var t=this.namedGroups[e];if(!Number.isFinite(t))throw new fm(`group '${e}' not found`);e=t}return this.loadGroup(e),this.groups[2*e]}end(e=0){if("string"==typeof e){var t=this.namedGroups[e];if(!Number.isFinite(t))throw new fm(`group '${e}' not found`);e=t}return this.loadGroup(e),this.groups[2*e+1]}programSize(){return this.numberOfInstructions}group(e=0){if("string"==typeof e){var t=this.namedGroups[e];if(!Number.isFinite(t))throw new fm(`group '${e}' not found`);e=t}var t=this.start(e),r=this.end(e);return t<0&&r<0?null:this.substring(t,r)}getNamedGroups(){if(!this.hasMatch)throw new fm("perhaps no match attempted");var e,t=Object.create(null);for(e of Object.keys(this.namedGroups))t[e]=this.group(e);return t}groupCount(){return this.patternGroupCount}loadGroup(e){if(e<0||e>this.patternGroupCount)throw new fm("Group index out of bounds: "+e);if(!this.hasMatch)throw new fm("perhaps no match attempted");if(0!==e&&!this.hasGroups){var t=this.matcherInputLength,t=this.patternInput.re2().matchMachineInput(this.matcherInput,this.groups[0],t,this.anchorFlag,1+this.patternGroupCount);if(!t[0])throw new fm("inconsistency in matching group data");this.groups=t[1],this.hasGroups=!0}}matches(){return this.genMatch(0,b.ANCHOR_BOTH)}lookingAt(){return this.genMatch(0,b.ANCHOR_START)}find(e=null){if(null!==e){if(e<0||e>this.matcherInputLength)throw new fm("start index out of bounds: "+e);return this.reset(),this.genMatch(e,0)}var t;return e=0,this.hasMatch&&(e=this.groups[1],this.groups[0]===this.groups[1])&&((t=(this.matcherInput.isUTF16Encoding()?dm.fromUTF16(this.matcherInput.asCharSequence(),0,this.matcherInputLength):dm.fromUTF8(this.matcherInput.asBytes(),0,this.matcherInputLength)).step(e))<0?e++:e+=7&t),this.genMatch(e,b.UNANCHORED)}genMatch(e,t){var r=this.patternInput.re2().matchMachineInput(this.matcherInput,e,this.matcherInputLength,t,1);return!!r[0]&&(this.groups=r[1],this.hasMatch=!0,this.hasGroups=0===this.patternGroupCount,this.anchorFlag=t,!0)}substring(e,t){return this.matcherInput.isUTF8Encoding()?y.utf8ByteArrayToString(this.matcherInput.asBytes().slice(e,t)):this.matcherInput.asCharSequence().substring(e,t).toString()}inputLength(){return this.matcherInputLength}appendReplacement(e,t=!1){let r="";var n=this.start(),i=this.end();return this.appendPos<n&&(r+=this.substring(this.appendPos,n)),this.appendPos=i,r+=t?this.appendReplacementInternalJava(e):this.appendReplacementInternalJs(e)}appendReplacementInternalJava(r){let n="",i=0;var s=r.length;for(let l=0;l<s-1;l++)if(r.codePointAt(l)===v.CODES.get("\\"))i<l&&(n+=r.substring(i,l)),l++,i=l;else if(r.codePointAt(l)===v.CODES.get("$")){let t=r.codePointAt(l+1);if(v.CODES.get("0")<=t&&t<=v.CODES.get("9")){let e=t-v.CODES.get("0");for(i<l&&(n+=r.substring(i,l)),l+=2;l<s&&!((t=r.codePointAt(l))<v.CODES.get("0")||t>v.CODES.get("9")||10*e+t-v.CODES.get("0")>this.patternGroupCount);l++)e=10*e+t-v.CODES.get("0");if(e>this.patternGroupCount)throw new fm("n > number of groups: "+e);var a=this.group(e);null!==a&&(n+=a),i=l,l--}else if(t===v.CODES.get("{")){i<l&&(n+=r.substring(i,l));let e=++l+1;for(;e<r.length&&r.codePointAt(e)!==v.CODES.get("}")&&r.codePointAt(e)!==v.CODES.get(" ");)e++;if(e===r.length||r.codePointAt(e)!==v.CODES.get("}"))throw new fm("named capture group is missing trailing '}'");var a=r.substring(l+1,e),o=this.group(a);null!==o&&(n+=o),i=e+1,l=e}}return i<s&&(n+=r.substring(i,s)),n}appendReplacementInternalJs(r){let n="",i=0;var s=r.length;for(let u=0;u<s-1;u++)if(r.codePointAt(u)===v.CODES.get("$")){let t=r.codePointAt(u+1);if(v.CODES.get("$")===t){i<u&&(n+=r.substring(i,u)),n+="$",u++,i=u+1;continue}if(v.CODES.get("&")===t){i<u&&(n+=r.substring(i,u));var a=this.group(0);n+=null!==a?a:"$&",u++,i=u+1;continue}if(v.CODES.get("`")===t){i<u&&(n+=r.substring(i,u)),n+=this.substring(0,this.start(0)),u++,i=u+1;continue}if(v.CODES.get("'")===t){i<u&&(n+=r.substring(i,u)),n+=this.substring(this.end(0),this.matcherInputLength),u++,i=u+1;continue}if(v.CODES.get("1")<=t&&t<=v.CODES.get("9")){let e=t-v.CODES.get("0");for(i<u&&(n+=r.substring(i,u)),u+=2;u<s&&!((t=r.codePointAt(u))<v.CODES.get("0")||t>v.CODES.get("9")||10*e+t-v.CODES.get("0")>this.patternGroupCount);u++)e=10*e+t-v.CODES.get("0");if(e>this.patternGroupCount){n+="$"+e,i=u,u--;continue}a=this.group(e);null!==a&&(n+=a),i=u,u--;continue}if(t===v.CODES.get("<")){i<u&&(n+=r.substring(i,u));let e=++u+1;for(;e<r.length&&r.codePointAt(e)!==v.CODES.get(">")&&r.codePointAt(e)!==v.CODES.get(" ");)e++;if(e===r.length||r.codePointAt(e)!==v.CODES.get(">")){n+=r.substring(u-1,e+1),i=e+1,u=e;continue}var o,l=r.substring(u+1,e);Object.prototype.hasOwnProperty.call(this.namedGroups,l)?null!==(o=this.group(l))&&(n+=o):n+=`$<${l}>`,i=e+1,u=e;continue}}return i<s&&(n+=r.substring(i,s)),n}appendTail(){return this.substring(this.appendPos,this.matcherInputLength)}replaceAll(e,t=!1){return this.replace(e,!0,t)}replaceFirst(e,t=!1){return this.replace(e,!1,t)}replace(e,t=!0,r=!1){let n="";this.reset();var i="function"==typeof e,s=0<Object.keys(this.namedGroups).length;let a=null;if(i){if(this.groupCount()>=Gg.MAX_REPLACER_ARGS)throw new fm("Too many capture groups to safely invoke replacer function");a=this.matcherInput.isUTF8Encoding()?this.matcherInput.asBytes():this.matcherInput.asCharSequence()}for(;this.find()&&(n+=i?this.appendReplacementFunc(e,s,a):this.appendReplacement(e,r),t););return n+=this.appendTail()}appendReplacementFunc(e,t,r){let n="";var i=this.start(),s=this.end(),s=(this.appendPos<i&&(n+=this.substring(this.appendPos,i)),this.appendPos=s,this.buildReplacerArgs(i,t,r));return n+=String(e(...s))}buildReplacerArgs(e,t,r){var n=[this.group(0)],i=this.groupCount();for(let l=1;l<=i;l++){var s=this.start(l);n.push(s<0?void 0:this.substring(s,this.end(l)))}if(n.push(e),n.push(r),t){var a,o=this.getNamedGroups();for(a in o)null===o[a]&&(o[a]=void 0);n.push(o)}return n}}).MAX_REPLACER_ARGS=65535,Gg),w=((Hg=class{static isRuneOp(e){return Hg.RUNE<=e&&e<=Hg.RUNE_ANY_NOT_NL}static escapeRunes(e){let t='"';for(var r of e)t+=y.escapeRune(r);return t+='"'}constructor(e){this.op=e,this.out=0,this.arg=0,this.runes=[],this.next=null}matchRune(t){if(1===this.runes.length)return s=this.runes[0],0!=(this.arg&b.FOLD_CASE)?C.equalsIgnoreCase(s,t):t===s;var r=this.runes.length;if(0===r)return!1;if(2===r||4===r||6===r||8===r){for(let e=0;e<r;e+=2){if(t<this.runes[e])return!1;if(t<=this.runes[e+1])return!0}return!1}let e=0,n=r>>1;for(;1<n;){var i=n>>1;e+=this.runes[e+i<<1]<=t?i:0,n-=i}var s=(e+=this.runes[e<<1]<=t?1:0)-1;return 0<=s&&t<=this.runes[s<<1|1]}matchRunePos(t){if(1===this.runes.length)return s=this.runes[0],0!=(this.arg&b.FOLD_CASE)?C.equalsIgnoreCase(s,t)?0:-1:t===s?0:-1;var r=this.runes.length;if(0===r)return-1;if(2===r||4===r||6===r||8===r){for(let e=0;e<r;e+=2){if(t<this.runes[e])return-1;if(t<=this.runes[e+1])return Math.floor(e/2)}return-1}let e=0,n=r>>1;for(;1<n;){var i=n>>1;e+=this.runes[e+i<<1]<=t?i:0,n-=i}var s=(e+=this.runes[e<<1]<=t?1:0)-1;return 0<=s&&t<=this.runes[s<<1|1]?s:-1}toString(){switch(this.op){case Hg.ALT:return`alt -> ${this.out}, `+this.arg;case Hg.ALT_MATCH:return`altmatch -> ${this.out}, `+this.arg;case Hg.CAPTURE:return`cap ${this.arg} -> `+this.out;case Hg.EMPTY_WIDTH:return`empty ${this.arg} -> `+this.out;case Hg.MATCH:return"match"+(0!==this.arg?" "+this.arg:"");case Hg.FAIL:return"fail";case Hg.NOP:return"nop -> "+this.out;case Hg.LB_WRITE:return`lbwrite ${this.arg} -> `+this.out;case Hg.LB_CHECK:return`lbcheck ${this.arg} -> `+this.out;case Hg.RUNE:return null===this.runes?"rune <null>":["rune ",Hg.escapeRunes(this.runes),0!=(this.arg&b.FOLD_CASE)?"/i":""," -> ",this.out].join("");case Hg.RUNE1:return`rune1 ${Hg.escapeRunes(this.runes)} -> `+this.out;case Hg.RUNE_ANY:return"any -> "+this.out;case Hg.RUNE_ANY_NOT_NL:return"anynotnl -> "+this.out;default:throw new Error("unhandled case in Inst.toString")}}}).ALT=1,Hg.ALT_MATCH=2,Hg.CAPTURE=3,Hg.EMPTY_WIDTH=4,Hg.FAIL=5,Hg.MATCH=6,Hg.NOP=7,Hg.RUNE=8,Hg.RUNE1=9,Hg.RUNE_ANY=10,Hg.RUNE_ANY_NOT_NL=11,Hg.LB_WRITE=12,Hg.LB_CHECK=13,Hg),vm=class{constructor(){this.inst=null,this.cap=null}},_m=class{constructor(e){this.sparse=new Int32Array(e),this.densePcs=new Int32Array(e),this.denseThreads=new Array(e),this.size=0}contains(e){var t=this.sparse[e];return t<this.size&&this.densePcs[t]===e}isEmpty(){return 0===this.size}add(e){var t=this.size++;return this.sparse[e]=t,this.denseThreads[t]=null,this.densePcs[t]=e,t}clear(){for(let e=0;e<this.size;e++)this.denseThreads[e]=null;this.size=0}toString(){let e="{";for(let t=0;t<this.size;t++)0!==t&&(e+=", "),e+=this.densePcs[t];return e+="}"}},ym=((qg=class{static fromRE2(e){var t=new qg;return t.prog=e.prog,t.re2=e,t.q0=new _m(t.prog.numInst()),t.q1=new _m(t.prog.numInst()),t.pool=[],t.poolSize=0,t.matched=!1,t.matchcap=new Int32Array(t.prog.numCap<2?2:t.prog.numCap),t.ncap=0,t}static fromMachine(e){return qg.fromRE2(e.re2)}constructor(){this.prog=null,this.re2=null,this.q0=null,this.q1=null,this.pool=[],this.poolSize=0,this.matched=!1,this.matchcap=null,this.ncap=0,this.lbTable=null}init(e){(this.ncap=e)>this.matchcap.length?this.initNewCap(e):this.resetCap(),0<this.prog.numLb&&((!this.lbTable||this.lbTable.length<this.prog.numLb+1)&&(this.lbTable=new Int32Array(this.prog.numLb+1)),this.lbTable.fill(-1))}resetCap(){for(let e=0;e<this.poolSize;e++)this.pool[e].cap.fill(-1)}initNewCap(e){for(let t=0;t<this.poolSize;t++)this.pool[t].cap=new Int32Array(e).fill(-1);this.matchcap=new Int32Array(e).fill(-1)}submatches(){return 0===this.ncap?y.emptyInts():y.toArray(this.matchcap.subarray(0,this.ncap))}alloc(e){if(0===this.poolSize){var t=this.matchcap.length;for(let e=0;e<qg.THREADS_CHUNK_SIZE;e++){let e=new vm;e.cap=new Int32Array(t),this.pool[this.poolSize++]=e}}this.poolSize--;let r=this.pool[this.poolSize];return r.inst=e,r}freeQueue(e,t=0){for(let n=t;n<e.size;n++){var r=e.denseThreads[n];null!==r&&(this.pool[this.poolSize++]=r)}e.clear()}freeThread(e){this.pool[this.poolSize++]=e}match(e,t,r){var n=this.re2.cond;if(n===y.EMPTY_ALL)return!1;if((r===b.ANCHOR_START||r===b.ANCHOR_BOTH)&&0!==t)return!1;this.matched=!1,this.matchcap.fill(-1);let i=0<this.prog.numLb?0:t;var s=t;let a=this.q0,o=this.q1,l=e.step(i),u=l>>3,h=7&l,c=-1,d=0;l!==um.EOF()&&(l=e.step(i+h),c=l>>3,d=7&l);let B;for(B=0===i?y.emptyOpContext(-1,u):e.context(i);;){if(a.isEmpty()){if(0!=(n&y.EMPTY_BEGIN_TEXT)&&0!==i)break;if((r===b.ANCHOR_START||r===b.ANCHOR_BOTH)&&0!==i)break;if(this.matched)break;if(0===this.prog.numLb&&0!==this.re2.prefix.length&&c!==this.re2.prefixRune&&e.canCheckPrefix()){var p=e.index(this.re2,i);if(p<0)break;i+=p,l=e.step(i),u=l>>3,h=7&l,l=e.step(i+h),c=l>>3,d=7&l}}if(0===i&&0<this.prog.numLb)for(let e=0;e<this.prog.lbStarts.length;e++)this.add(a,this.prog.lbStarts[e],i,this.matchcap,B,null);this.matched||0!==i&&r!==b.UNANCHORED||i>=s&&(0<this.ncap&&(this.matchcap[0]=i),this.add(a,this.prog.start,i,this.matchcap,B,null));p=i+h;if(B=e.context(p),this.step(a,o,i,p,u,B,r,i===e.endPos()),0===h)break;if(0===this.ncap&&this.matched)break;i+=h,u=c,h=d,-1!==u&&(l=e.step(i+h),c=l>>3,d=7&l);var f=a;a=o,o=f}return this.freeQueue(o),this.matched}matchSet(n,e,i){var t=this.re2.cond;if(t===y.EMPTY_ALL)return[];if((i===b.ANCHOR_START||i===b.ANCHOR_BOTH)&&0!==e)return[];let s=0<this.prog.numLb?0:e;var a=e;let o=this.q0,l=this.q1,u=n.step(s),h=u>>3,c=7&u,d=-1,B=0,p=(u!==um.EOF()&&(u=n.step(s+c),d=u>>3,B=7&u),0===s?y.emptyOpContext(-1,h):n.context(s));for(var f=new Set;;){if(o.isEmpty()){if(0!=(t&y.EMPTY_BEGIN_TEXT)&&0!==s)break;if((i===b.ANCHOR_START||i===b.ANCHOR_BOTH)&&0!==s)break}if(0===s&&0<this.prog.numLb)for(let e=0;e<this.prog.lbStarts.length;e++)this.add(o,this.prog.lbStarts[e],s,this.matchcap,p,null);0!==s&&i!==b.UNANCHORED||s>=a&&this.add(o,this.prog.start,s,this.matchcap,p,null);var g=s+c;p=n.context(g);for(let r=0;r<o.size;r++){let t=o.denseThreads[r];if(null!==t){var m=t.inst;let e=!1;switch(m.op){case w.MATCH:i===b.ANCHOR_BOTH&&s!==n.endPos()||f.add(m.arg);break;case w.RUNE:e=m.matchRune(h);break;case w.RUNE1:e=h===m.runes[0];break;case w.RUNE_ANY:e=!0;break;case w.RUNE_ANY_NOT_NL:e=h!==v.CODES.get("\n");break;default:throw new mm("bad inst")}null!==(t=e?this.add(l,m.out,g,t.cap,p,t):t)&&(this.freeThread(t),o.denseThreads[r]=null)}}if(o.clear(),0===c)break;s+=c,h=d,c=B,-1!==h&&(u=n.step(s+c),d=u>>3,B=7&u);var C=o;o=l,l=C}return this.freeQueue(l),Array.from(f).sort((e,t)=>e-t)}step(r,n,i,s,a,o,l,u){var h=this.re2.longest;for(let d=0;d<r.size;d++){let t=r.denseThreads[d];if(null!==t)if(h&&this.matched&&0<this.ncap&&this.matchcap[0]<t.cap[0])this.freeThread(t);else{var c=t.inst;let e=!1;switch(c.op){case w.MATCH:l===b.ANCHOR_BOTH&&!u||(0<this.ncap&&(!h||!this.matched||this.matchcap[1]<i)&&(t.cap[1]=i,this.matchcap.set(t.cap.subarray(0,this.ncap))),h||this.freeQueue(r,d+1),this.matched=!0);break;case w.RUNE:e=c.matchRune(a);break;case w.RUNE1:e=a===c.runes[0];break;case w.RUNE_ANY:e=!0;break;case w.RUNE_ANY_NOT_NL:e=a!==v.CODES.get("\n");break;default:throw new mm("bad inst")}null!==(t=e?this.add(n,c.out,s,t.cap,o,t):t)&&(this.freeThread(t),r.denseThreads[d]=null)}}r.clear()}add(e,t,r,n,i,s){for(;;){if(0===t)return s;if(e.contains(t))return s;var a,o=e.add(t),l=this.prog.inst[t];switch(l.op){case w.FAIL:return s;case w.ALT:case w.ALT_MATCH:s=this.add(e,l.out,r,n,i,s),t=l.arg;continue;case w.EMPTY_WIDTH:if(0!=(l.arg&~i))return s;t=l.out;continue;case w.NOP:t=l.out;continue;case w.CAPTURE:if(l.arg<this.ncap)return a=n[l.arg],n[l.arg]=r,this.add(e,l.out,r,n,i,null),n[l.arg]=a,s;t=l.out;continue;case w.LB_WRITE:this.lbTable[Math.abs(l.arg)]=r,t=l.out;continue;case w.LB_CHECK:if(0<l.arg){if(this.lbTable[l.arg]===r){t=l.out;continue}}else if(this.lbTable[-l.arg]!==r){t=l.out;continue}return s;case w.MATCH:case w.RUNE:case w.RUNE1:case w.RUNE_ANY:case w.RUNE_ANY_NOT_NL:if(null===s?s=this.alloc(l):s.inst=l,0<this.ncap&&s.cap!==n)for(let e=0;e<this.ncap;e++)s.cap[e]=n[e];return e.denseThreads[o]=s,s=null;default:throw new Error("unhandled")}}}}).THREADS_CHUNK_SIZE=128,qg);let wm=e=>{let t=-2128831035;for(let r=0;r<e.length;r++)t^=e[r],t=Math.imul(t,16777619);return t};var Em=class{constructor(e,t,r=[]){this.nfaStates=e,this.isMatch=t,this.matchIDs=r,this.nextLatin1=new Array(C.MAX_LATIN1+1).fill(null),this.nextLatin1Anchored=new Array(C.MAX_LATIN1+1).fill(null),this.transKeys=[],this.transVals=[],this.lastSeen=0}},bm=((jg=class{constructor(e,t=8388608){this.prog=e,this.stateCache=new Map,this.stateCount=0,this.startState=null,this.stateLimit=Math.max(1,Math.floor(t/jg.STATE_MEMORY_ESTIMATE)),this.cacheClears=0,this.failed=!1,this.clock=0}computeClosure(e){var t=new Set,r=[...e];let n=!1;for(var i=[];0<r.length;){var s=r.pop();if(!t.has(s)){t.add(s);var a=this.prog.getInst(s);switch(a.op){case w.MATCH:n=!0,i.includes(a.arg)||i.push(a.arg);break;case w.ALT:case w.ALT_MATCH:r.push(a.out),r.push(a.arg);break;case w.NOP:case w.CAPTURE:r.push(a.out);break;case w.EMPTY_WIDTH:case w.LB_WRITE:case w.LB_CHECK:return null}}}var o=Int32Array.from(t).sort();return i.sort((e,t)=>e-t),{pcs:o,isMatch:n,matchIDs:i}}getState(e){var t=this.computeClosure(e);if(!t)return null;var r=t.pcs,n=wm(r);let i=this.stateCache.get(n);if(i)for(let t=0;t<i.length;t++){let e=i[t];if(((e,t)=>{if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0})(e.nfaStates,r))return e.lastSeen=++this.clock,e}else i=[],this.stateCache.set(n,i);if(this.failed)return null;if(this.stateCount>=this.stateLimit){if(this.cacheClears++,this.cacheClears>=jg.MAX_CACHE_CLEARS)return this.failed=!0,this.stateCache.clear(),this.stateCount=0,this.startState=null;this.evictCache(),(i=this.stateCache.get(n))||(i=[],this.stateCache.set(n,i))}let s=new Em(r,t.isMatch,t.matchIDs);return s.lastSeen=++this.clock,i.push(s),this.stateCount++,s}evictCache(){var t,r=[];for(t of this.stateCache.values())for(let e=0;e<t.length;e++)r.push(t[e]);r.sort((e,t)=>e.lastSeen-t.lastSeen);var e=Math.max(1,Math.floor(this.stateLimit/2)),n=r.slice(r.length-e),e=new Set(n);this.stateCache.clear();for(let a=this.stateCount=0;a<n.length;a++){var i=n[a],s=(i.nextLatin1.fill(null),i.nextLatin1Anchored.fill(null),i.transKeys.length=0,i.transVals.length=0,wm(i.nfaStates));let e=this.stateCache.get(s);e||(e=[],this.stateCache.set(s,e)),e.push(i),this.stateCount++}this.startState&&!e.has(this.startState)&&(this.startState=null)}step(t,r,n){if(r<=C.MAX_LATIN1)if(n===b.UNANCHORED){var e=t.nextLatin1[r];if(null!==e)return e}else{e=t.nextLatin1Anchored[r];if(null!==e)return e}else{var i=r+(n===b.UNANCHORED?0:C.MAX_RUNE+1),s=t.transKeys,a=s.length;for(let e=0;e<a;e++)if(s[e]===i)return t.transVals[e]}var o=[];for(let h=0;h<t.nfaStates.length;h++){var l=t.nfaStates[h],l=this.prog.getInst(l);w.isRuneOp(l.op)&&l.matchRune(r)&&o.push(l.out)}n===b.UNANCHORED&&o.push(this.prog.start);var u,e=this.getState(o);return r<=C.MAX_LATIN1?n===b.UNANCHORED?t.nextLatin1[r]=e:t.nextLatin1Anchored[r]=e:(u=r+(n===b.UNANCHORED?0:C.MAX_RUNE+1),t.transKeys.push(u),t.transVals.push(e)),e}match(r,n,i){if(i!==b.ANCHOR_START&&i!==b.ANCHOR_BOTH||0===n){if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;var s=r.endPos();let e=this.startState;if(e.isMatch){if(i!==b.ANCHOR_BOTH)return!0;if(n===s)return!0}let t=n;for(;t<s;){var a=r.step(t),o=a>>3,a=7&a;if(0==a)break;if(null===(e=i===b.UNANCHORED&&o<=C.MAX_LATIN1&&e.nextLatin1[o]||this.step(e,o,i)))return null;if(e.lastSeen=++this.clock,e.isMatch){if(i!==b.ANCHOR_BOTH)return!0;if(t+a===s)return!0}if(0===e.nfaStates.length&&i!==b.UNANCHORED)return!1;t+=a}}return!1}matchSet(e,t,r){if((r===b.ANCHOR_START||r===b.ANCHOR_BOTH)&&0!==t)return[];if(!this.startState&&(this.startState=this.getState([this.prog.start]),!this.startState))return null;let n=e.endPos(),i=this.startState,s=new Set;var a=(e,t)=>{e.isMatch&&(r===b.ANCHOR_BOTH?t===n&&e.matchIDs.forEach(e=>s.add(e)):e.matchIDs.forEach(e=>s.add(e)))};a(i,t);let o=t;for(;o<n;){var l=e.step(o),u=l>>3,l=7&l;if(0==l)break;if(null===(i=r===b.UNANCHORED&&u<=C.MAX_LATIN1&&i.nextLatin1[u]||this.step(i,u,r)))return null;if(i.lastSeen=++this.clock,o+=l,a(i,o),0===i.nfaStates.length&&r!==b.UNANCHORED)break}return Array.from(s).sort((e,t)=>e-t)}}).MAX_CACHE_CLEARS=5,jg.STATE_MEMORY_ESTIMATE=838,jg);var Dm=class{constructor(){this.end=0,this.cap=new Int32Array(0),this.matchcap=new Int32Array(0),this.ncap=0,this.jobPc=new Int32Array(256),this.jobArg=new Uint8Array(256),this.jobPos=new Int32Array(256),this.jobLen=0,this.visited=new Uint32Array(0)}reset(e,t,r){this.end=t,this.jobLen=0,this.ncap=r;var n=e.numInst()*(t+1)+32-1>>>5;this.visited.length<n?this.visited=new Uint32Array(n):this.visited.fill(0,0,n),this.cap.length<r?this.cap=new Int32Array(r).fill(-1):this.cap.fill(-1,0,r),this.matchcap.length<r?this.matchcap=new Int32Array(r).fill(-1):this.matchcap.fill(-1,0,r)}shouldVisit(e,t){var r=e*(this.end+1)+t,n=r>>>5,r=1<<(31&r);return 0==(this.visited[n]&r)&&(this.visited[n]|=r,!0)}push(e,t,r,n){var i,s;e.prog.getInst(t).op!==w.FAIL&&(n||this.shouldVisit(t,r))&&(this.jobLen>=this.jobPc.length&&(i=2*this.jobPc.length,(s=new Int32Array(i)).set(this.jobPc),this.jobPc=s,(s=new Uint8Array(i)).set(this.jobArg),this.jobArg=s,(s=new Int32Array(i)).set(this.jobPos),this.jobPos=s),this.jobPc[this.jobLen]=t,this.jobArg[this.jobLen]=n?1:0,this.jobPos[this.jobLen]=r,this.jobLen++)}tryBacktrack(i,s,e,t,a){var o=i.longest;for(this.push(i,e,t,!1);0<this.jobLen;){this.jobLen--;let e=this.jobPc[this.jobLen],t=1===this.jobArg[this.jobLen],r=this.jobPos[this.jobLen],n=!0;for(;;){if(!n&&!this.shouldVisit(e,r))break;n=!1;var l=i.prog.getInst(e);switch(l.op){case w.FAIL:throw new mm("unexpected InstFail");case w.ALT:if(t){t=!1,e=l.arg;continue}this.push(i,e,r,!0),e=l.out;continue;case w.ALT_MATCH:var u=i.prog.getInst(l.out);if(w.isRuneOp(u.op)){this.push(i,l.arg,r,!1),e=l.arg,r=this.end;continue}this.push(i,l.out,this.end,!1),e=l.out;continue;case w.RUNE:u=s.step(r);if(u===um.EOF())break;if(!l.matchRune(u>>3))break;r+=7&u,e=l.out;continue;case w.RUNE1:var h=s.step(r);if(h===um.EOF())break;if(h>>3!==l.runes[0])break;r+=7&h,e=l.out;continue;case w.RUNE_ANY_NOT_NL:h=s.step(r);if(h===um.EOF())break;if(h>>3==10)break;r+=7&h,e=l.out;continue;case w.RUNE_ANY:var c=s.step(r);if(c===um.EOF())break;r+=7&c,e=l.out;continue;case w.CAPTURE:if(t){this.cap[l.arg]=r;break}l.arg<this.ncap&&(this.push(i,e,this.cap[l.arg],!0),this.cap[l.arg]=r),e=l.out;continue;case w.EMPTY_WIDTH:c=s.context(r);if(0!=(l.arg&~c))break;e=l.out;continue;case w.NOP:e=l.out;continue;case w.MATCH:if(a!==b.ANCHOR_BOTH||r===this.end){if(0===this.ncap)return!0;1<this.ncap&&(this.cap[1]=r);var d=this.matchcap[1];if((-1===d||o&&0<r&&r>d)&&this.matchcap.set(this.cap),!o)return!0;if(r===this.end)return!0}break;case w.LB_WRITE:case w.LB_CHECK:throw new mm("Backtracker cannot evaluate Lookbehind instructions");default:throw new mm("bad inst")}break}}return o&&1<this.matchcap.length&&0<=this.matchcap[1]}};let Im=[];var Tm=class Tm{static shouldBacktrack(e){return e.numInst()<=500}static maxBitStateLen(e){return Tm.shouldBacktrack(e)?Math.floor(262144/e.numInst()):0}static execute(t,r,n,i,e){var s=t.cond;if(s===y.EMPTY_ALL)return null;if((i===b.ANCHOR_START||i===b.ANCHOR_BOTH)&&0!==n)return null;if(0!=(s&y.EMPTY_BEGIN_TEXT)&&0!==n)return null;var a=0<Im.length?Im.pop():new Dm,o=r.endPos();a.reset(t.prog,o,e);let l=!1;if(0!=(s&y.EMPTY_BEGIN_TEXT)||i===b.ANCHOR_START||i===b.ANCHOR_BOTH)0<a.ncap&&(a.cap[0]=n),a.tryBacktrack(t,r,t.prog.start,n,i)&&(l=!0);else{let e=-1;for(;n<=o&&0!==e;n+=e){if(0<t.prefix.length){var u=r.index(t,n);if(u<0)break;n+=u}if(0<a.ncap&&(a.cap[0]=n),a.tryBacktrack(t,r,t.prog.start,n,i)){l=!0;break}u=r.step(n);e=u===um.EOF()?0:7&u}}return l?(s=0===e?[]:y.toArray(a.matchcap.subarray(0,e)),Im.push(a),s):(Im.push(a),null)}},Sm=class{constructor(e){this.sparse=new Uint32Array(e),this.dense=new Uint32Array(e),this.size=0,this.nextIndex=0}empty(){return this.nextIndex>=this.size}next(){return this.dense[this.nextIndex++]}clear(){this.size=0,this.nextIndex=0}contains(e){return e<this.sparse.length&&this.sparse[e]<this.size&&this.dense[this.sparse[e]]===e}insert(e){this.contains(e)||this.insertNew(e)}insertNew(e){e>=this.sparse.length||(this.sparse[e]=this.size,this.dense[this.size]=e,this.size++)}};var Nm=class{constructor(e){this.start=e.start,this.numCap=e.numCap,this.inst=new Array(e.inst.length);for(let n=0;n<e.inst.length;n++){var t=e.inst[n],r=new w(t.op);r.out=t.out,r.arg=t.arg,r.runes=t.runes?t.runes.slice():[],r.next=null,this.inst[n]=r}}};var km=class km{static compile(e){if(0===e.start)return null;if(0<e.numLb)return null;var t=e.inst[e.start];if(t.op!==w.EMPTY_WIDTH||0==(t.arg&y.EMPTY_BEGIN_TEXT))return null;let r=!1;for(let s=0;s<e.inst.length;s++)if(e.inst[s].op===w.ALT||e.inst[s].op===w.ALT_MATCH){r=!0;break}for(let a=0;a<e.inst.length;a++){var n=e.inst[a],i=e.inst[n.out].op;switch(n.op){case w.ALT:case w.ALT_MATCH:if(i===w.MATCH||e.inst[n.arg].op===w.MATCH)return null;break;case w.EMPTY_WIDTH:if(i!==w.MATCH)break;if((n.arg&y.EMPTY_END_TEXT)===y.EMPTY_END_TEXT)continue;return null;default:if(i===w.MATCH&&r)return null}}return null!==(t=(e=>{if(1e3<=e.inst.length)return null;let h=new Sm(e.inst.length),c=new Sm(e.inst.length),d=new Array(e.inst.length),B=new Array(e.inst.length).fill(!1),p=t=>{let r=!0;var n=e.inst[t];if(c.contains(t))return!0;switch(c.insert(t),n.op){case w.ALT:case w.ALT_MATCH:{r=p(n.out)&&p(n.arg);let e=B[n.out];var i=B[n.arg];if(e&&i)return!1;i&&(s=n.out,n.out=n.arg,n.arg=s,e,e=i,0),e&&(B[t]=!0,n.op=w.ALT_MATCH);var s=((i,s,a,o)=>{var e=i.length,t=s.length;let l=0,u=0,h=[],c=[],r=!0,d=-1;for(var n=e=>{var t=e?i:s,r=e?l:u,n=e?a:o;return!(0<d&&t[r]<=h[d]||(h.push(t[r],t[r+1]),e?l+=2:u+=2,d+=2,c.push(n),0))};l<e||u<t;)if(!(r=!(u>=t)&&(l>=e||s[u]<i[l])?n(!1):n(!0)))return null;return{merged:h,next:c}})(d[n.out]||[],d[n.arg]||[],n.out,n.arg);if(!s)return!1;d[t]=s.merged,n.next=new Uint32Array(s.next);break}case w.CAPTURE:case w.EMPTY_WIDTH:case w.NOP:r=p(n.out),B[t]=B[n.out],d[t]=d[n.out]?d[n.out].slice():[],n.next=new Uint32Array(Math.floor(d[t].length/2)+1).fill(n.out);break;case w.MATCH:case w.FAIL:B[t]=n.op===w.MATCH;break;case w.RUNE:if(B[t]=!1,!(n.next&&0<n.next.length))if(h.insert(n.out),n.runes&&0!==n.runes.length){var a=[];if(1===n.runes.length&&0!=(n.arg&b.FOLD_CASE)){var o=n.runes[0];a.push(o,o);for(let e=C.simpleFold(o);e!==o;e=C.simpleFold(e))a.push(e,e);a.sort((e,t)=>e-t)}else for(let e=0;e<n.runes.length;e++)a.push(n.runes[e]);d[t]=a,n.next=new Uint32Array(Math.floor(a.length/2)+1).fill(n.out),n.op=w.RUNE}else d[t]=[],n.next=new Uint32Array([n.out]);break;case w.RUNE1:if(B[t]=!1,!(n.next&&0<n.next.length)){h.insert(n.out);var l=[];if(0!=(n.arg&b.FOLD_CASE)){var u=n.runes[0];l.push(u,u);for(let e=C.simpleFold(u);e!==u;e=C.simpleFold(e))l.push(e,e);l.sort((e,t)=>e-t)}else l.push(n.runes[0],n.runes[0]);d[t]=l,n.next=new Uint32Array(Math.floor(l.length/2)+1).fill(n.out),n.op=w.RUNE}break;case w.RUNE_ANY:B[t]=!1,n.next&&0<n.next.length||(h.insert(n.out),d[t]=[0,C.MAX_RUNE],n.next=new Uint32Array([n.out]));break;case w.RUNE_ANY_NOT_NL:B[t]=!1,n.next&&0<n.next.length||(h.insert(n.out),d[t]=[0,9,11,C.MAX_RUNE],n.next=new Uint32Array(Math.floor(d[t].length/2)+1).fill(n.out))}return r};for(h.clear(),h.insert(e.start);!h.empty();)if(c.clear(),!p(h.next()))return null;for(let t=0;t<e.inst.length;t++)d[t]&&(e.inst[t].runes=d[t]);return e})((e=>{var t=new Nm(e);for(let o=0;o<t.inst.length;o++){var a=t.inst[o];if(a.op===w.ALT||a.op===w.ALT_MATCH){let n="out",i="arg",s=t.inst[a[i]];if(s.op===w.ALT||s.op===w.ALT_MATCH||(n="arg",i="out",(s=t.inst[a[i]]).op===w.ALT)||s.op===w.ALT_MATCH){var r=t.inst[a[n]];if(r.op!==w.ALT&&r.op!==w.ALT_MATCH){let e="out",t="arg",r=!1;s.out===o?r=!0:s.arg===o&&(r=!0,e="arg",t="out"),r&&(s[e]=a[n]),a[n]===s[e]&&(a[i]=s[t])}}}}return t})(e)))&&((e,t)=>{for(let n=0;n<t.inst.length;n++){var r=t.inst[n];switch(r.op){case w.ALT:case w.ALT_MATCH:case w.RUNE:break;case w.CAPTURE:case w.EMPTY_WIDTH:case w.NOP:case w.MATCH:case w.FAIL:e.inst[n].next=null;break;case w.RUNE1:case w.RUNE_ANY:case w.RUNE_ANY_NOT_NL:e.inst[n].next=null,e.inst[n].op=r.op,e.inst[n].runes=r.runes?r.runes.slice():[]}}})(t,e),t}static next(e,t){var r=e.matchRunePos(t);return 0<=r?e.next[r]:e.op===w.ALT_MATCH?e.out:0}static execute(e,t,r,n,i){var s=e.onepass;if(!s)return null;var a=new Int32Array(i).fill(-1);let o=!1;var l,u=t.step(r);let h=u>>3,c=7&u,d=um.EOF(),B=-1,p=0,f=(u!==um.EOF()&&(d=t.step(r+c))!==um.EOF()&&(B=d>>3,p=7&d),0===r?y.emptyOpContext(-1,h):t.context(r)),g=s.start;for(;;){switch(l=s.inst[g],g=l.out,l.op){case w.MATCH:return n===b.ANCHOR_BOTH&&r!==t.endPos()?null:(o=!0,0<a.length&&(a[0]=0,a[1]=r),0===i?[]:y.toArray(a));case w.RUNE:if(l.matchRune(h))break;return null;case w.RUNE1:if(h!==l.runes[0])return null;break;case w.RUNE_ANY:break;case w.RUNE_ANY_NOT_NL:if(10===h)return null;break;case w.ALT:case w.ALT_MATCH:g=km.next(l,h);continue;case w.FAIL:return null;case w.NOP:continue;case w.EMPTY_WIDTH:if(0!=(l.arg&~f))return null;continue;case w.CAPTURE:l.arg<a.length&&(a[l.arg]=r);continue;default:throw new mm("bad inst")}if(0===c)break;f=y.emptyOpContext(h,B),r+=c,h=B,c=p,-1!==h&&(d=t.step(r+c),p=d!==um.EOF()?(B=d>>3,7&d):(B=-1,0))}return o?0===i?[]:y.toArray(a):null}},D=((u=class{static isPseudoOp(e){return e>=u.Op.LEFT_PAREN}static emptySubs(){return[]}static quoteIfHyphen(e){return e===v.CODES.get("-")?"\\":""}static fromRegexp(e){var t=new u(e.op);return t.flags=e.flags,t.subs=e.subs,t.runes=e.runes,t.cap=e.cap,t.min=e.min,t.max=e.max,t.name=e.name,t.namedGroups=e.namedGroups,t.lb=e.lb,t}constructor(e){this.op=e,this.flags=0,this.subs=u.emptySubs(),this.runes=[],this.min=0,this.max=0,this.cap=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}reinit(){this.flags=0,this.subs=u.emptySubs(),this.runes=[],this.cap=0,this.min=0,this.max=0,this.name=null,this.namedGroups=Object.create(null),this.lb=0}toString(){return this.appendTo()}appendTo(){let t="";switch(this.op){case u.Op.NO_MATCH:t+="[^\\x00-\\x{10FFFF}]";break;case u.Op.EMPTY_MATCH:t+="(?:)";break;case u.Op.STAR:case u.Op.PLUS:case u.Op.QUEST:case u.Op.REPEAT:var e=this.subs[0];switch(e.op>u.Op.CAPTURE||e.op===u.Op.LITERAL&&1<e.runes.length?t+=`(?:${e.appendTo()})`:t+=e.appendTo(),this.op){case u.Op.STAR:t+="*";break;case u.Op.PLUS:t+="+";break;case u.Op.QUEST:t+="?";break;case u.Op.REPEAT:t+="{"+this.min,this.min!==this.max&&(t+=",",0<=this.max)&&(t+=this.max),t+="}"}0!=(this.flags&b.NON_GREEDY)&&(t+="?");break;case u.Op.CONCAT:for(var r of this.subs)r.op===u.Op.ALTERNATE?t+=`(?:${r.appendTo()})`:t+=r.appendTo();break;case u.Op.ALTERNATE:{let e="";for(var n of this.subs)t+=e,e="|",t+=n.appendTo();break}case u.Op.LITERAL:0!=(this.flags&b.FOLD_CASE)&&(t+="(?i:");for(var i of this.runes)t+=y.escapeRune(i);0!=(this.flags&b.FOLD_CASE)&&(t+=")");break;case u.Op.ANY_CHAR_NOT_NL:t+="(?-s:.)";break;case u.Op.ANY_CHAR:t+="(?s:.)";break;case u.Op.PLB:t+=`(?<=${this.subs[0].appendTo()})`;break;case u.Op.NLB:t+=`(?<!${this.subs[0].appendTo()})`;break;case u.Op.CAPTURE:null===this.name||0===this.name.length?t+="(":t+=`(?P<${this.name}>`,this.subs[0].op!==u.Op.EMPTY_MATCH&&(t+=this.subs[0].appendTo()),t+=")";break;case u.Op.BEGIN_TEXT:t+="\\A";break;case u.Op.END_TEXT:0!=(this.flags&b.WAS_DOLLAR)?t+="(?-m:$)":t+="\\z";break;case u.Op.BEGIN_LINE:t+="^";break;case u.Op.END_LINE:t+="$";break;case u.Op.WORD_BOUNDARY:t+="\\b";break;case u.Op.NO_WORD_BOUNDARY:t+="\\B";break;case u.Op.CHAR_CLASS:if(this.runes.length%2!=0)t+="[invalid char class]";else{if(t+="[",0===this.runes.length)t+="^\\x00-\\x{10FFFF}";else if(0===this.runes[0]&&this.runes[this.runes.length-1]===C.MAX_RUNE){t+="^";for(let e=1;e<this.runes.length-1;e+=2){var s=this.runes[e]+1,a=this.runes[e+1]-1;t=(t+=u.quoteIfHyphen(s))+y.escapeRune(s),s!==a&&(t=(t=(t+="-")+u.quoteIfHyphen(a))+y.escapeRune(a))}}else for(let e=0;e<this.runes.length;e+=2){var o=this.runes[e],l=this.runes[e+1];t=(t+=u.quoteIfHyphen(o))+y.escapeRune(o),o!==l&&(t=(t=(t+="-")+u.quoteIfHyphen(l))+y.escapeRune(l))}t+="]"}break;default:t+=this.op}return t}maxCap(){let e=0;if(this.op===u.Op.CAPTURE&&(e=this.cap),null!==this.subs)for(var t of this.subs){t=t.maxCap();e<t&&(e=t)}return e}equals(t){if(!(null!==t&&t instanceof u))return!1;if(this.op!==t.op)return!1;switch(this.op){case u.Op.END_TEXT:if((this.flags&b.WAS_DOLLAR)!=(t.flags&b.WAS_DOLLAR))return!1;break;case u.Op.LITERAL:case u.Op.CHAR_CLASS:if(null!==this.runes||null!==t.runes){if(null===this.runes||null===t.runes)return!1;if(this.runes.length!==t.runes.length)return!1;for(let e=0;e<this.runes.length;e++)if(this.runes[e]!==t.runes[e])return!1}break;case u.Op.ALTERNATE:case u.Op.CONCAT:if(this.subs.length!==t.subs.length)return!1;for(let e=0;e<this.subs.length;++e)if(!this.subs[e].equals(t.subs[e]))return!1;break;case u.Op.STAR:case u.Op.PLUS:case u.Op.QUEST:if((this.flags&b.NON_GREEDY)==(t.flags&b.NON_GREEDY)&&this.subs[0].equals(t.subs[0]))break;return!1;case u.Op.REPEAT:if((this.flags&b.NON_GREEDY)==(t.flags&b.NON_GREEDY)&&this.min===t.min&&this.max===t.max&&this.subs[0].equals(t.subs[0]))break;return!1;case u.Op.CAPTURE:if(this.cap===t.cap&&(null===this.name?null===t.name:this.name===t.name)&&this.subs[0].equals(t.subs[0]))break;return!1;case u.Op.PLB:case u.Op.NLB:if(this.lb===t.lb&&this.subs[0].equals(t.subs[0]))break;return!1}return!0}}).Op=sr(["NO_MATCH","EMPTY_MATCH","LITERAL","CHAR_CLASS","ANY_CHAR_NOT_NL","ANY_CHAR","BEGIN_LINE","END_LINE","BEGIN_TEXT","END_TEXT","WORD_BOUNDARY","NO_WORD_BOUNDARY","CAPTURE","STAR","PLUS","QUEST","REPEAT","CONCAT","ALTERNATE","PLB","NLB","LEFT_PAREN","VERTICAL_BAR"]),u),Am=class{constructor(e){this.next=[Object.create(null)],this.fail=[0],this.match=[!1];for(var r of e){let e=0;for(let t=0;t<r.length;t++){var n=r[t];n in this.next[e]||(this.next.push(Object.create(null)),this.fail.push(0),this.match.push(!1),this.next[e][n]=this.next.length-1),e=this.next[e][n]}this.match[e]=!0}var t,i,s=[];for(t in this.next[0])Object.prototype.hasOwnProperty.call(this.next[0],t)&&(i=this.next[0][t],this.fail[i]=0,s.push(i));for(;0<s.length;){var a,o=s.shift();for(a in this.next[o])if(Object.prototype.hasOwnProperty.call(this.next[o],a)){var l=this.next[o][a];let e=this.fail[o];for(;0!==e&&!(a in this.next[e]);)e=this.fail[e];a in this.next[e]?this.fail[l]=this.next[e][a]:this.fail[l]=0,this.match[l]=this.match[l]||this.match[this.fail[l]],s.push(l)}}}searchUTF16(e,t,r){let n=0;for(let s=t;s<r;s++){for(var i=e.charCodeAt(s);0!==n&&!(i in this.next[n]);)n=this.fail[n];if(i in this.next[n]&&(n=this.next[n][i]),this.match[n])return!0}return!1}searchUTF8(e,t,r){let n=0;for(let s=t;s<r;s++){for(var i=e[s];0!==n&&!(i in this.next[n]);)n=this.fail[n];if(i in this.next[n]&&(n=this.next[n][i]),this.match[n])return!0}return!1}},Rm=((Kg=class{constructor(e){this.type=e,this.subs=[],this.str="",this.bytes=null,this.ac16=null,this.ac8=null}eval(r,n){switch(this.type){case Kg.Type.NONE:return!0;case Kg.Type.EXACT:return r.hasString(this,n);case Kg.Type.AND:for(let e=0;e<this.subs.length;e++)if(!this.subs[e].eval(r,n))return!1;return!0;case Kg.Type.OR:if(this.ac16&&this.ac8)return r.hasAnyString(this,n);for(let t=0;t<this.subs.length;t++)if(this.subs[t].eval(r,n))return!0;return!1;default:return!0}}}).Type={NONE:0,EXACT:1,AND:2,OR:3},Kg),Om=class Om{static build(e){var t=Om.fromRegexp(e);return Om.simplify(t)}static fromRegexp(r){if(!r)return new Rm(Rm.Type.NONE);switch(r.op){case D.Op.PLB:case D.Op.NLB:case D.Op.NO_MATCH:case D.Op.EMPTY_MATCH:case D.Op.BEGIN_LINE:case D.Op.END_LINE:case D.Op.BEGIN_TEXT:case D.Op.END_TEXT:case D.Op.WORD_BOUNDARY:case D.Op.NO_WORD_BOUNDARY:case D.Op.CHAR_CLASS:case D.Op.ANY_CHAR_NOT_NL:case D.Op.ANY_CHAR:return new Rm(Rm.Type.NONE);case D.Op.LITERAL:{if(0===r.runes.length||0!=(r.flags&b.FOLD_CASE))return new Rm(Rm.Type.NONE);var n=new Rm(Rm.Type.EXACT);let e="";for(let t=0;t<r.runes.length;t++)e+=String.fromCodePoint(r.runes[t]);return n.str=e,n.bytes=y.stringToUtf8ByteArray(n.str),n}case D.Op.CAPTURE:case D.Op.PLUS:return Om.fromRegexp(r.subs[0]);case D.Op.REPEAT:return 1<=r.min?Om.fromRegexp(r.subs[0]):new Rm(Rm.Type.NONE);case D.Op.CONCAT:var e,t=new Rm(Rm.Type.AND);for(e of r.subs)t.subs.push(Om.fromRegexp(e));return t;case D.Op.ALTERNATE:var i,s=new Rm(Rm.Type.OR);for(i of r.subs)s.subs.push(Om.fromRegexp(i));return s;default:return new Rm(Rm.Type.NONE)}}static simplify(t){if(t.type!==Rm.Type.EXACT&&t.type!==Rm.Type.NONE){if(t.type===Rm.Type.AND){var e,r=[];for(e of t.subs){var n=Om.simplify(e);if(n.type!==Rm.Type.NONE)if(n.type===Rm.Type.AND)for(let e=0;e<n.subs.length;e++)r.push(n.subs[e]);else r.push(n)}return 0===r.length?new Rm(Rm.Type.NONE):1===r.length?r[0]:(t.subs=r,t)}if(t.type===Rm.Type.OR){var i,s=[];for(i of t.subs){var a=Om.simplify(i);if(a.type===Rm.Type.NONE)return new Rm(Rm.Type.NONE);if(a.type===Rm.Type.OR)for(let e=0;e<a.subs.length;e++)s.push(a.subs[e]);else s.push(a)}if(0===s.length)return new Rm(Rm.Type.NONE);if(1===s.length)return s[0];var o,l,u=new Set,h=[];for(o of s)o.type===Rm.Type.EXACT?u.has(o.str)||(u.add(o.str),h.push(o)):h.push(o);let e=!0;for(l of t.subs=h)if(l.type!==Rm.Type.EXACT){e=!1;break}e&&1<h.length&&(t.ac16=new Am(h.map(e=>{var t=[];for(let r=0;r<e.str.length;r++)t.push(e.str.charCodeAt(r));return t})),t.ac8=new Am(h.map(e=>e.bytes)))}}return t}},xm=class{constructor(e=0,t=0){this.head=e,this.tail=t}},Pm=class{constructor(){this.inst=[],this.start=0,this.numCap=2,this.lbStarts=[],this.numLb=0}getInst(e){return this.inst[e]}numInst(){return this.inst.length}addInst(e){this.inst.push(new w(e))}skipNop(e){let t=this.inst[e];for(;t.op===w.NOP||t.op===w.CAPTURE;)e=(t=this.inst[e]).out;return t}prefix(){let e="",t=this.skipNop(this.start);if(w.isRuneOp(t.op)&&1===t.runes.length)for(;w.isRuneOp(t.op)&&1===t.runes.length&&0==(t.arg&b.FOLD_CASE);)e+=String.fromCodePoint(t.runes[0]),t=this.skipNop(t.out);return[t.op===w.MATCH,e]}startCond(){let e=0,t=this.start;e:for(;;){var r=this.inst[t];switch(r.op){case w.EMPTY_WIDTH:e|=r.arg;break;case w.FAIL:return-1;case w.CAPTURE:case w.NOP:break;default:break e}t=r.out}return e}patch(e,t){let r=e.head;for(;0!==r;){var n=this.inst[r>>1];0==(1&r)?(r=n.out,n.out=t):(r=n.arg,n.arg=t)}}append(e,t){var r;return 0===e.head?t:0===t.head?e:(r=this.inst[e.tail>>1],0==(1&e.tail)?r.out=t.head:r.arg=t.head,new xm(e.head,t.tail))}toString(){let e="";for(let r=0;r<this.inst.length;r++){var t=e.length;e+=r,r===this.start&&(e+="*"),e=(e+="        ".substring(e.length-t))+this.inst[r]+"\n"}return e}},Fm=class{constructor(e=0,t=new xm,r=!1){this.i=e,this.out=t,this.nullable=r}},Lm=class Lm{static ANY_RUNE_NOT_NL(){return[0,v.CODES.get("\n")-1,v.CODES.get("\n")+1,C.MAX_RUNE]}static ANY_RUNE(){return[0,C.MAX_RUNE]}static compileRegexp(e){var t=new Lm,r=t.compile(e);return t.prog.patch(r.out,t.newInst(w.MATCH).i),t.prog.start=r.i,t.prog}static compileSet(n){var i=new Lm;if(0===n.length)i.prog.start=i.newInst(w.FAIL).i;else{var s=[];for(let t=0;t<n.length;t++){var a=i.compile(n[t]),o=i.newInst(w.MATCH);i.prog.getInst(o.i).arg=t,i.prog.patch(a.out,o.i),s.push(a.i)}let e=s[0];for(let r=1;r<s.length;r++){var l=i.newInst(w.ALT),u=i.prog.getInst(l.i);u.out=e,u.arg=s[r],e=l.i}i.prog.start=e}return i.prog}constructor(){this.prog=new Pm,this.newInst(w.FAIL)}newInst(e){return this.prog.addInst(e),new Fm(this.prog.numInst()-1,new xm,!0)}nop(){var e=this.newInst(w.NOP);return e.out=new xm(e.i<<1,e.i<<1),e}fail(){return new Fm}cap(e){var t=this.newInst(w.CAPTURE);return t.out=new xm(t.i<<1,t.i<<1),this.prog.getInst(t.i).arg=e,this.prog.numCap<e+1&&(this.prog.numCap=e+1),t}cat(e,t){return 0===e.i||0===t.i?this.fail():(this.prog.patch(e.out,t.i),new Fm(e.i,t.out,e.nullable&&t.nullable))}alt(e,t){var r,n;return 0===e.i?t:0===t.i?e:(r=this.newInst(w.ALT),(n=this.prog.getInst(r.i)).out=e.i,n.arg=t.i,r.out=this.prog.append(e.out,t.out),r.nullable=e.nullable||t.nullable,r)}loop(e,t){var r=this.newInst(w.ALT),n=this.prog.getInst(r.i);return t?(n.arg=e.i,r.out=new xm(r.i<<1,r.i<<1)):(n.out=e.i,r.out=new xm(r.i<<1|1,r.i<<1|1)),this.prog.patch(e.out,r.i),r}quest(e,t){var r=this.newInst(w.ALT),n=this.prog.getInst(r.i);return t?(n.arg=e.i,r.out=new xm(r.i<<1,r.i<<1)):(n.out=e.i,r.out=new xm(r.i<<1|1,r.i<<1|1)),r.out=this.prog.append(r.out,e.out),r}star(e,t){return e.nullable?this.quest(this.plus(e,t),t):this.loop(e,t)}plus(e,t){return new Fm(e.i,this.loop(e,t).out,e.nullable)}empty(e){var t=this.newInst(w.EMPTY_WIDTH);return this.prog.getInst(t.i).arg=e,t.out=new xm(t.i<<1,t.i<<1),t}rune(e,t){var r=this.newInst(w.RUNE),n=(r.nullable=!1,this.prog.getInst(r.i));return n.runes=e,t&=b.FOLD_CASE,1===e.length&&C.simpleFold(e[0])!==e[0]||(t&=~b.FOLD_CASE),n.arg=t,r.out=new xm(r.i<<1,r.i<<1),0==(t&b.FOLD_CASE)&&1===e.length||2===e.length&&e[0]===e[1]?n.op=w.RUNE1:2===e.length&&0===e[0]&&e[1]===C.MAX_RUNE?n.op=w.RUNE_ANY:4===e.length&&0===e[0]&&e[1]===v.CODES.get("\n")-1&&e[2]===v.CODES.get("\n")+1&&e[3]===C.MAX_RUNE&&(n.op=w.RUNE_ANY_NOT_NL),r}lookBehind(e,t){var r=this.newInst(w.LB_WRITE),n=(this.prog.getInst(r.i).arg=t,this.rune(Lm.ANY_RUNE(),0)),n=this.star(n,!0),n=this.cat(n,e),r=(this.prog.patch(n.out,r.i),this.newInst(w.LB_CHECK));return this.prog.getInst(r.i).arg=t,this.prog.lbStarts.push(n.i),Math.abs(t)>this.prog.numLb&&(this.prog.numLb=Math.abs(t)),r.out=new xm(r.i<<1,r.i<<1),r}compile(t){switch(t.op){case D.Op.NO_MATCH:return this.fail();case D.Op.EMPTY_MATCH:return this.nop();case D.Op.LITERAL:if(0===t.runes.length)return this.nop();{let e=null;for(var r of t.runes){r=this.rune([r],t.flags);e=null===e?r:this.cat(e,r)}return e}case D.Op.CHAR_CLASS:return this.rune(t.runes,t.flags);case D.Op.ANY_CHAR_NOT_NL:return this.rune(Lm.ANY_RUNE_NOT_NL(),0);case D.Op.ANY_CHAR:return this.rune(Lm.ANY_RUNE(),0);case D.Op.BEGIN_LINE:return this.empty(y.EMPTY_BEGIN_LINE);case D.Op.END_LINE:return this.empty(y.EMPTY_END_LINE);case D.Op.BEGIN_TEXT:return this.empty(y.EMPTY_BEGIN_TEXT);case D.Op.END_TEXT:return this.empty(y.EMPTY_END_TEXT);case D.Op.WORD_BOUNDARY:return this.empty(y.EMPTY_WORD_BOUNDARY);case D.Op.NO_WORD_BOUNDARY:return this.empty(y.EMPTY_NO_WORD_BOUNDARY);case D.Op.PLB:case D.Op.NLB:return this.lookBehind(this.compile(t.subs[0]),t.lb);case D.Op.CAPTURE:var e=this.cap(t.cap<<1),n=this.compile(t.subs[0]),i=this.cap(t.cap<<1|1);return this.cat(this.cat(e,n),i);case D.Op.STAR:return this.star(this.compile(t.subs[0]),0!=(t.flags&b.NON_GREEDY));case D.Op.PLUS:return this.plus(this.compile(t.subs[0]),0!=(t.flags&b.NON_GREEDY));case D.Op.QUEST:return this.quest(this.compile(t.subs[0]),0!=(t.flags&b.NON_GREEDY));case D.Op.CONCAT:if(0===t.subs.length)return this.nop();{let e=null;for(var s of t.subs){s=this.compile(s);e=null===e?s:this.cat(e,s)}return e}case D.Op.ALTERNATE:if(0===t.subs.length)return this.nop();{let e=null;for(var a of t.subs){a=this.compile(a);e=null===e?a:this.alt(e,a)}return e}default:throw new pm("regexp: unhandled case in compile")}}},Mm=class Mm{static simplify(n){if(null===n)return null;switch(n.op){case D.Op.PLB:case D.Op.NLB:case D.Op.CAPTURE:var i=Mm.simplify(n.subs[0]);return i!==n.subs[0]?((e=D.fromRegexp(n)).runes=[],e.subs=[i],e):n;case D.Op.CONCAT:case D.Op.ALTERNATE:{var r=[];let t=!1;for(let e=0;e<n.subs.length;e++){var s=n.subs[e],a=Mm.simplify(s);if(a!==s&&(t=!0),n.op===D.Op.CONCAT){if(a.op===D.Op.NO_MATCH)return new D(D.Op.NO_MATCH);if(a.op===D.Op.EMPTY_MATCH){t=!0;continue}if(a.op===D.Op.CONCAT){t=!0;for(let e=0;e<a.subs.length;e++)r.push(a.subs[e]);continue}}else if(n.op===D.Op.ALTERNATE){if(a.op===D.Op.NO_MATCH){t=!0;continue}if(a.op===D.Op.ALTERNATE){t=!0;for(let e=0;e<a.subs.length;e++)r.push(a.subs[e]);continue}}r.push(a)}return t?0===r.length?new D(n.op===D.Op.CONCAT?D.Op.EMPTY_MATCH:D.Op.NO_MATCH):1===r.length?r[0]:((i=D.fromRegexp(n)).runes=[],i.subs=r,i):n}case D.Op.CHAR_CLASS:return null===n.runes?n:0===n.runes.length?new D(D.Op.NO_MATCH):2===n.runes.length&&0===n.runes[0]&&n.runes[1]===C.MAX_RUNE?new D(D.Op.ANY_CHAR):4===n.runes.length&&0===n.runes[0]&&n.runes[1]===v.CODES.get("\n")-1&&n.runes[2]===v.CODES.get("\n")+1&&n.runes[3]===C.MAX_RUNE?new D(D.Op.ANY_CHAR_NOT_NL):n;case D.Op.STAR:case D.Op.PLUS:case D.Op.QUEST:var e=Mm.simplify(n.subs[0]);return Mm.simplify1(n.op,n.flags,e,n);case D.Op.REPEAT:{if(0===n.min&&0===n.max)return new D(D.Op.EMPTY_MATCH);var o=Mm.simplify(n.subs[0]);if(-1===n.max){if(0===n.min)return Mm.simplify1(D.Op.STAR,n.flags,o,null);if(1===n.min)return Mm.simplify1(D.Op.PLUS,n.flags,o,null);var i=new D(D.Op.CONCAT),t=[];for(let e=0;e<n.min-1;e++)t.push(o);return t.push(Mm.simplify1(D.Op.PLUS,n.flags,o,null)),i.subs=t.slice(0),Mm.simplify(i)}if(1===n.min&&1===n.max)return o;let r=null;if(0<n.min){r=[];for(let e=0;e<n.min;e++)r.push(o)}if(n.min<n.max){let e=Mm.simplify1(D.Op.QUEST,n.flags,o,null);for(let t=n.min+1;t<n.max;t++){var l=new D(D.Op.CONCAT);l.subs=[o,e],e=Mm.simplify1(D.Op.QUEST,n.flags,l,null)}if(null===r)return e;r.push(e)}return null!==r?((e=new D(D.Op.CONCAT)).subs=r.slice(0),Mm.simplify(e)):new D(D.Op.NO_MATCH)}}return n}static simplify1(e,t,r,n){var i;return r.op===D.Op.EMPTY_MATCH?r:r.op===D.Op.NO_MATCH?e===D.Op.PLUS?r:new D(D.Op.EMPTY_MATCH):e===r.op&&(t&b.NON_GREEDY)==(r.flags&b.NON_GREEDY)?r:null!==n&&n.op===e&&(n.flags&b.NON_GREEDY)==(t&b.NON_GREEDY)&&r===n.subs[0]?n:((i=new D(e)).flags=t,i.subs=[r],i)}},t=class{constructor(e,t){this.sign=e,this.cls=t}},ar=[48,57],e=[9,10,12,13,32,32],sr=[48,57,65,90,95,95,97,122];let Um=new Map([["\\d",new t(1,ar)],["\\D",new t(-1,ar)],["\\s",new t(1,e)],["\\S",new t(-1,e)],["\\w",new t(1,sr)],["\\W",new t(-1,sr)]]);var ar=[48,57,65,90,97,122],e=[65,90,97,122],sr=[0,127],Vm=[9,9,32,32],Gm=[0,31,127,127],Hm=[48,57],qm=[33,126],jm=[97,122],Km=[32,126],zm=[33,47,58,64,91,96,123,126],Jm=[9,13,32,32],Wm=[65,90],Qm=[48,57,65,90,95,95,97,122],Ym=[48,57,65,70,97,102];let $m=new Map([["[:alnum:]",new t(1,ar)],["[:^alnum:]",new t(-1,ar)],["[:alpha:]",new t(1,e)],["[:^alpha:]",new t(-1,e)],["[:ascii:]",new t(1,sr)],["[:^ascii:]",new t(-1,sr)],["[:blank:]",new t(1,Vm)],["[:^blank:]",new t(-1,Vm)],["[:cntrl:]",new t(1,Gm)],["[:^cntrl:]",new t(-1,Gm)],["[:digit:]",new t(1,Hm)],["[:^digit:]",new t(-1,Hm)],["[:graph:]",new t(1,qm)],["[:^graph:]",new t(-1,qm)],["[:lower:]",new t(1,jm)],["[:^lower:]",new t(-1,jm)],["[:print:]",new t(1,Km)],["[:^print:]",new t(-1,Km)],["[:punct:]",new t(1,zm)],["[:^punct:]",new t(-1,zm)],["[:space:]",new t(1,Jm)],["[:^space:]",new t(-1,Jm)],["[:upper:]",new t(1,Wm)],["[:^upper:]",new t(-1,Wm)],["[:word:]",new t(1,Qm)],["[:^word:]",new t(-1,Qm)],["[:xdigit:]",new t(1,Ym)],["[:^xdigit:]",new t(-1,Ym)]]);var Xm,Zm,eC,tC,rC,nC,a,iC,sC,aC=class aC{static charClassToString(e,t){let r="[";for(let s=0;s<t;s+=2){0<s&&(r+=" ");var n=e[s],i=e[s+1];r+=n===i?"0x"+n.toString(16):`0x${n.toString(16)}-0x`+i.toString(16)}return r+="]"}static cmp(e,t,r,n){var i=e[t]-r;return 0!=i?i:n-e[t+1]}static qsortIntPair(e,t,r){var n,i=-2&((t+r)/2|0),s=e[i],a=e[1+i];let o=t,l=r;for(;o<=l;){for(;o<r&&aC.cmp(e,o,s,a)<0;)o+=2;for(;l>t&&0<aC.cmp(e,l,s,a);)l-=2;o<=l&&(o!==l&&(n=e[o],e[o]=e[l],e[l]=n,n=e[o+1],e[o+1]=e[l+1],e[l+1]=n),o+=2,l-=2)}t<l&&aC.qsortIntPair(e,t,l),o<r&&aC.qsortIntPair(e,o,r)}constructor(e=y.emptyInts()){this.r=e,this.len=e.length}toArray(){return this.len===this.r.length?this.r:this.r.slice(0,this.len)}cleanClass(){if(!(this.len<4)){aC.qsortIntPair(this.r,0,this.len-2);let e=2;for(let t=2;t<this.len;t+=2){var r=this.r[t],n=this.r[t+1];r<=this.r[e-1]+1?n>this.r[e-1]&&(this.r[e-1]=n):(this.r[e]=r,this.r[e+1]=n,e+=2)}this.len=e}return this}appendLiteral(e,t){return 0!=(t&b.FOLD_CASE)?this.appendFoldedRange(e,e):this.appendRange(e,e)}appendRange(t,r){if(0<this.len)for(let e=2;e<=4;e+=2)if(this.len>=e){var n=this.r[this.len-e],i=this.r[this.len-e+1];if(t<=i+1&&n<=r+1)return t<n&&(this.r[this.len-e]=t),i<r&&(this.r[this.len-e+1]=r),this}return this.r[this.len++]=t,this.r[this.len++]=r,this}appendFoldedRange(e,t){if(e<=C.MIN_FOLD&&t>=C.MAX_FOLD)return this.appendRange(e,t);if(t<C.MIN_FOLD||e>C.MAX_FOLD)return this.appendRange(e,t);e<C.MIN_FOLD&&(this.appendRange(e,C.MIN_FOLD-1),e=C.MIN_FOLD),t>C.MAX_FOLD&&(this.appendRange(C.MAX_FOLD+1,t),t=C.MAX_FOLD);for(let r=e;r<=t;r++){this.appendRange(r,r);for(let e=C.simpleFold(r);e!==r;e=C.simpleFold(e))this.appendRange(e,e)}return this}appendClass(e){for(let t=0;t<e.length;t+=2)this.appendRange(e[t],e[t+1]);return this}appendFoldedClass(e){for(let t=0;t<e.length;t+=2)this.appendFoldedRange(e[t],e[t+1]);return this}appendNegatedClass(e){let t=0;for(let i=0;i<e.length;i+=2){var r=e[i],n=e[i+1];t<=r-1&&this.appendRange(t,r-1),t=n+1}return t<=C.MAX_RUNE&&this.appendRange(t,C.MAX_RUNE),this}appendTable(e){for(let i=0;i<e.length;++i){var t=e.getLo(i),r=e.getHi(i),n=e.getStride(i);if(1===n)this.appendRange(t,r);else for(let e=t;e<=r;e+=n)this.appendRange(e,e)}return this}appendNegatedTable(e){let t=0;for(let s=0;s<e.length;++s){var r=e.getLo(s),n=e.getHi(s),i=e.getStride(s);if(1===i)t<=r-1&&this.appendRange(t,r-1),t=n+1;else for(let e=r;e<=n;e+=i)t<=e-1&&this.appendRange(t,e-1),t=e+1}return t<=C.MAX_RUNE&&this.appendRange(t,C.MAX_RUNE),this}appendTableWithSign(e,t){return t<0?this.appendNegatedTable(e):this.appendTable(e)}negateClass(){let e=0,t=0;for(let i=0;i<this.len;i+=2){var r=this.r[i],n=this.r[i+1];e<=r-1&&(this.r[t]=e,this.r[t+1]=r-1,t+=2),e=n+1}return this.len=t,e<=C.MAX_RUNE&&(this.r[this.len++]=e,this.r[this.len++]=C.MAX_RUNE),this}appendClassWithSign(e,t){return t<0?this.appendNegatedClass(e):this.appendClass(e)}appendGroup(e,t){let r=e.cls;return t&&(r=(new aC).appendFoldedClass(r).cleanClass().toArray()),this.appendClassWithSign(r,e.sign)}toString(){return aC.charClassToString(this.r,this.len)}},oC=class{constructor(e){this.str=e,this.position=0}pos(){return this.position}rewindTo(e){this.position=e}more(){return this.position<this.str.length}peek(){return this.str.codePointAt(this.position)}skip(e){this.position+=e}skipString(e){this.position+=e.length}pop(){var e=this.str.codePointAt(this.position);return this.position+=y.charCount(e),e}lookingAt(e){return this.str.startsWith(e,this.position)}rest(){return this.str.substring(this.position)}from(e){return this.str.substring(e,this.position)}toString(){return this.rest()}},lC=((E=class{static unicodeTable(e){return"Any"===e?{tab:E.ANY_TABLE,fold:E.ANY_TABLE,sign:1}:"Ascii"===e?{tab:E.ASCII_TABLE,fold:E.ASCII_FOLD_TABLE,sign:1}:"Assigned"===e?{tab:tm.CATEGORIES.get("Cn"),fold:tm.CATEGORIES.get("Cn"),sign:-1}:"Lc"===e?{tab:tm.CATEGORIES.get("LC"),fold:tm.FOLD_CATEGORIES.get("LC"),sign:1}:tm.CATEGORIES.has(e)?{tab:tm.CATEGORIES.get(e),fold:tm.FOLD_CATEGORIES.get(e),sign:1}:tm.SCRIPTS.has(e)?{tab:tm.SCRIPTS.get(e),fold:tm.FOLD_SCRIPT.get(e),sign:1}:null}static minFoldRune(e){if(e<C.MIN_FOLD||e>C.MAX_FOLD)return e;let t=e;var r=e;for(e=C.simpleFold(e);e!==r;e=C.simpleFold(e))t>e&&(t=e);return t}static leadingRegexp(e){var t;return e.op===D.Op.EMPTY_MATCH?null:e.op===D.Op.CONCAT&&0<e.subs.length?(t=e.subs[0]).op===D.Op.EMPTY_MATCH?null:t:e}static literalRegexp(e,t){var r=new D(D.Op.LITERAL);return r.flags=t,r.runes=y.stringToRunes(e),r}static parse(e,t){return new E(e,t).parseInternal()}static parseRepeat(e){var t=e.pos();if(!e.more()||!e.lookingAt("{"))return-1;e.skip(1);var r=E.parseInt(e);if(-1===r)return-1;if(!e.more())return-1;let n;if(e.lookingAt(",")){if(e.skip(1),!e.more())return-1;if(e.lookingAt("}"))n=-1;else if(-1===(n=E.parseInt(e)))return-1}else n=r;if(!e.more()||!e.lookingAt("}"))return-1;if(e.skip(1),r<0||1e3<r||-2===n||1e3<n||0<=n&&r>n)throw new Bm(E.ERR_INVALID_REPEAT_SIZE,e.from(t));return r<<16|n&C.MAX_BMP}static isValidCaptureName(e){if(0===e.length)return!1;for(let r=0;r<e.length;r++){var t=e.codePointAt(r);if(t!==v.CODES.get("_")&&!y.isalnum(t))return!1}return!0}static parseInt(e){for(var t=e.pos();e.more()&&e.peek()>=v.CODES.get("0")&&e.peek()<=v.CODES.get("9");)e.skip(1);t=e.from(t);return 0===t.length||1<t.length&&t.codePointAt(0)===v.CODES.get("0")?-1:8<t.length?-2:parseInt(t,10)}static isCharClass(e){return e.op===D.Op.LITERAL&&1===e.runes.length||e.op===D.Op.CHAR_CLASS||e.op===D.Op.ANY_CHAR_NOT_NL||e.op===D.Op.ANY_CHAR}static matchRune(t,r){switch(t.op){case D.Op.LITERAL:return 1===t.runes.length&&t.runes[0]===r;case D.Op.CHAR_CLASS:for(let e=0;e<t.runes.length;e+=2)if(t.runes[e]<=r&&r<=t.runes[e+1])return!0;return!1;case D.Op.ANY_CHAR_NOT_NL:return r!==v.CODES.get("\n");case D.Op.ANY_CHAR:return!0}return!1}static mergeCharClass(e,t){switch(e.op){case D.Op.ANY_CHAR:break;case D.Op.ANY_CHAR_NOT_NL:E.matchRune(t,v.CODES.get("\n"))&&(e.op=D.Op.ANY_CHAR);break;case D.Op.CHAR_CLASS:t.op===D.Op.LITERAL?e.runes=new aC(e.runes).appendLiteral(t.runes[0],t.flags).toArray():e.runes=new aC(e.runes).appendClass(t.runes).toArray();break;case D.Op.LITERAL:t.runes[0]===e.runes[0]&&t.flags===e.flags||(e.op=D.Op.CHAR_CLASS,e.runes=(new aC).appendLiteral(e.runes[0],e.flags).appendLiteral(t.runes[0],t.flags).toArray())}}static parseEscape(r){var e=r.pos();if(r.skip(1),!r.more())throw new Bm(E.ERR_TRAILING_BACKSLASH);let n=r.pop();e:switch(n){case v.CODES.get("1"):case v.CODES.get("2"):case v.CODES.get("3"):case v.CODES.get("4"):case v.CODES.get("5"):case v.CODES.get("6"):case v.CODES.get("7"):if(!r.more()||r.peek()<v.CODES.get("0")||r.peek()>v.CODES.get("7"))break;case v.CODES.get("0"):{let e=n-v.CODES.get("0");for(let t=1;t<3&&!(!r.more()||r.peek()<v.CODES.get("0")||r.peek()>v.CODES.get("7"));t++)e=8*e+r.peek()-v.CODES.get("0"),r.skip(1);return e}case v.CODES.get("x"):if(!r.more())break;if((n=r.pop())===v.CODES.get("{")){let e=0,t=0;for(;;){if(!r.more())break e;if((n=r.pop())===v.CODES.get("}"))break;var i=y.unhex(n);if(i<0)break e;if((t=16*t+i)>C.MAX_RUNE)break e;e++}if(0===e)break;return t}var t=y.unhex(n);if(!r.more())break;n=r.pop();var s=y.unhex(n);if(t<0||s<0)break;return 16*t+s;case v.CODES.get("a"):return v.CODES.get("");case v.CODES.get("f"):return v.CODES.get("\f");case v.CODES.get("n"):return v.CODES.get("\n");case v.CODES.get("r"):return v.CODES.get("\r");case v.CODES.get("t"):return v.CODES.get("\t");case v.CODES.get("v"):return v.CODES.get("\v");default:if(n<=C.MAX_ASCII&&!y.isalnum(n))return n}throw new Bm(E.ERR_INVALID_ESCAPE,r.from(e))}static parseClassChar(e,t){if(e.more())return e.lookingAt("\\")?E.parseEscape(e):e.pop();throw new Bm(E.ERR_MISSING_BRACKET,e.from(t))}static concatRunes(e,t){for(let r=0;r<t.length;r++)e.push(t[r]);return e}static hasCapture(e){if(null!==e){if(e.op===D.Op.CAPTURE)return!0;if(e.subs)for(var t of e.subs)if(E.hasCapture(t))return!0}return!1}constructor(e,t=0){this.wholeRegexp=e,this.flags=t,this.numCap=0,this.namedGroups=Object.create(null),this.stack=[],this.free=null,this.numRegexp=0,this.numRunes=0,this.repeats=0,this.height=null,this.size=null,this.nlb=0}newRegexp(e){let t=this.free;return null!==t&&null!==t.subs&&0<t.subs.length?(this.free=t.subs[0],t.reinit(),t.op=e):(t=new D(e),this.numRegexp+=1),t}reuse(e){null!==this.height&&this.height.has(e)&&this.height.delete(e),null!==e.subs&&0<e.subs.length&&(e.subs[0]=this.free),this.free=e}checkLimits(e){if(this.numRunes>E.MAX_RUNES)throw new Bm(E.ERR_LARGE);this.checkSize(e),this.checkHeight(e)}checkSize(t){if(null===this.size){if(0===this.repeats&&(this.repeats=1),t.op===D.Op.REPEAT){let e=t.max;(e=(e=-1===e?t.min:e)<=0?1:e)>Math.floor(E.MAX_SIZE/this.repeats)?this.repeats=E.MAX_SIZE:this.repeats*=e}if(this.numRegexp<Math.floor(E.MAX_SIZE/this.repeats))return;this.size=new Map;for(var e of this.stack)this.checkSize(e)}if(this.calcSize(t,!0)>E.MAX_SIZE)throw new Bm(E.ERR_LARGE)}calcSize(e,t=!1){if(!t&&null!==this.size&&this.size.has(e))return this.size.get(e);let r=0;switch(e.op){case D.Op.LITERAL:r=e.runes.length;break;case D.Op.PLB:case D.Op.NLB:case D.Op.CAPTURE:case D.Op.STAR:r=2+this.calcSize(e.subs[0]);break;case D.Op.PLUS:case D.Op.QUEST:r=1+this.calcSize(e.subs[0]);break;case D.Op.CONCAT:for(var n of e.subs)r+=this.calcSize(n);break;case D.Op.ALTERNATE:for(var i of e.subs)r+=this.calcSize(i);1<e.subs.length&&(r=r+e.subs.length-1);break;case D.Op.REPEAT:var s=this.calcSize(e.subs[0]);-1!==e.max?r=e.max*s+(e.max-e.min):r=0===e.min?2+s:1+e.min*s}return r=Math.max(1,r),null===this.size&&(this.size=new Map),this.size.set(e,r),r}checkHeight(e){if(!(this.numRegexp<E.MAX_HEIGHT)){if(null===this.height){this.height=new Map;for(var t of this.stack)this.checkHeight(t)}if(this.calcHeight(e,!0)>E.MAX_HEIGHT)throw new Bm(E.ERR_NESTING_DEPTH)}}calcHeight(e,t=!1){if(!t&&null!==this.height&&this.height.has(e))return this.height.get(e);let r=1;for(var n of e.subs){n=this.calcHeight(n);r<1+n&&(r=1+n)}return null===this.height&&(this.height=new Map),this.height.set(e,r),r}pop(){return this.stack.pop()}popToPseudo(){var e=this.stack.length;let t=e;for(;0<t&&!D.isPseudoOp(this.stack[t-1].op);)t--;e=this.stack.slice(t,e);return this.stack=this.stack.slice(0,t),e}push(e){if(this.numRunes+=e.runes.length,e.op===D.Op.CHAR_CLASS&&2===e.runes.length&&e.runes[0]===e.runes[1]){if(this.maybeConcat(e.runes[0],this.flags&~b.FOLD_CASE))return null;e.op=D.Op.LITERAL,e.runes=[e.runes[0]],e.flags=this.flags&~b.FOLD_CASE}else if(e.op===D.Op.CHAR_CLASS&&4===e.runes.length&&e.runes[0]===e.runes[1]&&e.runes[2]===e.runes[3]&&C.simpleFold(e.runes[0])===e.runes[2]&&C.simpleFold(e.runes[2])===e.runes[0]||e.op===D.Op.CHAR_CLASS&&2===e.runes.length&&e.runes[0]+1===e.runes[1]&&C.simpleFold(e.runes[0])===e.runes[1]&&C.simpleFold(e.runes[1])===e.runes[0]){if(this.maybeConcat(e.runes[0],this.flags|b.FOLD_CASE))return null;e.op=D.Op.LITERAL,e.runes=[e.runes[0]],e.flags=this.flags|b.FOLD_CASE}else this.maybeConcat(-1,0);return this.stack.push(e),this.checkLimits(e),e}maybeConcat(e,t){var r=this.stack.length;if(!(r<2)){var n=this.stack[r-1],r=this.stack[r-2];if(n.op===D.Op.LITERAL&&r.op===D.Op.LITERAL&&(n.flags&b.FOLD_CASE)==(r.flags&b.FOLD_CASE)){if(r.runes=E.concatRunes(r.runes,n.runes),0<=e)return n.runes=[e],n.flags=t,!0;this.pop(),this.reuse(n)}}return!1}newLiteral(e,t){var r=this.newRegexp(D.Op.LITERAL);return 0!=((r.flags=t)&b.FOLD_CASE)&&(e=E.minFoldRune(e)),r.runes=[e],r}literal(e){this.push(this.newLiteral(e,this.flags))}op(e){var t=this.newRegexp(e);return t.flags=this.flags,this.push(t)}repeat(e,t,r,n,i,s){let a=this.flags;if(0!=(a&b.PERL_X)&&(i.more()&&i.lookingAt("?")&&(i.skip(1),a^=b.NON_GREEDY),-1!==s))throw new Bm(E.ERR_INVALID_REPEAT_OP,i.from(s));var o=this.stack.length;if(0===o)throw new Bm(E.ERR_MISSING_REPEAT_ARGUMENT,i.from(n));var l=this.stack[o-1];if(D.isPseudoOp(l.op))throw new Bm(E.ERR_MISSING_REPEAT_ARGUMENT,i.from(n));var u=this.newRegexp(e);if(u.min=t,u.max=r,u.flags=a,u.subs=[l],this.stack[o-1]=u,this.checkLimits(u),e===D.Op.REPEAT&&(2<=t||2<=r)&&!this.repeatIsValid(u,1e3))throw new Bm(E.ERR_INVALID_REPEAT_SIZE,i.from(n))}repeatIsValid(t,r){if(t.op===D.Op.REPEAT){let e=t.max;if(0===e)return!0;if((e=e<0?t.min:e)>r)return!1;0<e&&(r=Math.trunc(r/e))}for(var e of t.subs)if(!this.repeatIsValid(e,r))return!1;return!0}concat(){this.maybeConcat(-1,0);var e=this.popToPseudo();return 0===e.length?this.push(this.newRegexp(D.Op.EMPTY_MATCH)):this.push(this.collapse(e,D.Op.CONCAT))}alternate(){var e=this.popToPseudo();return 0<e.length&&this.cleanAlt(e[e.length-1]),0===e.length?this.push(this.newRegexp(D.Op.NO_MATCH)):this.push(this.collapse(e,D.Op.ALTERNATE))}cleanAlt(e){e.op===D.Op.CHAR_CLASS&&(e.runes=new aC(e.runes).cleanClass().toArray(),2===e.runes.length&&0===e.runes[0]&&e.runes[1]===C.MAX_RUNE?(e.runes=[],e.op=D.Op.ANY_CHAR):4===e.runes.length&&0===e.runes[0]&&e.runes[1]===v.CODES.get("\n")-1&&e.runes[2]===v.CODES.get("\n")+1&&e.runes[3]===C.MAX_RUNE&&(e.runes=[],e.op=D.Op.ANY_CHAR_NOT_NL))}collapse(e,t){if(1===e.length)return e[0];let r=0;for(var n of e)r+=n.op===t?n.subs.length:1;var i,s,a=new Array(r).fill(null);let o=0;for(i of e)if(i.op===t){for(let e=0;e<i.subs.length;e++)a[o++]=i.subs[e];this.reuse(i)}else a[o++]=i;let l=this.newRegexp(t);return l.subs=a,t===D.Op.ALTERNATE&&(l.subs=this.factor(l.subs),1===l.subs.length)&&(l=(s=l).subs[0],this.reuse(s)),l}factor(i){if(i.length<2)return i;let s=0,a=i.length,o=0,l=null,u=0,h=0,c=0;for(let _=0;_<=a;_++){let t=null,r=0,n=0;if(_<a){let e=i[s+_];if((e=e.op===D.Op.CONCAT&&0<e.subs.length?e.subs[0]:e).op===D.Op.LITERAL&&(t=e.runes,r=e.runes.length,n=e.flags&b.FOLD_CASE),n===h){let e=0;for(;e<u&&e<r&&l[e]===t[e];)e++;if(0<e){u=e;continue}}}if(_!==c)if(_===c+1)i[o++]=i[s+c];else{var d=this.newRegexp(D.Op.LITERAL);d.flags=h,d.runes=l.slice(0,u);for(let e=c;e<_;e++)i[s+e]=this.removeLeadingString(i[s+e],u),this.checkLimits(i[s+e]);var B=this.collapse(i.slice(s+c,s+_),D.Op.ALTERNATE),p=this.newRegexp(D.Op.CONCAT);p.subs=[d,B],i[o++]=p}c=_,l=t,u=r,h=n}a=o,s=0,c=0;let t=null;for(let y=o=0;y<=a;y++){let e=null;if(!(y<a&&(e=E.leadingRegexp(i[s+y]),null!==t)&&t.equals(e)&&(E.isCharClass(t)||t.op===D.Op.REPEAT&&t.min===t.max&&E.isCharClass(t.subs[0])))){if(y!==c)if(y===c+1)i[o++]=i[s+c];else{var r=t;for(let e=c;e<y;e++){var n=e!==c;i[s+e]=this.removeLeadingRegexp(i[s+e],n),this.checkLimits(i[s+e])}var f=this.collapse(i.slice(s+c,s+y),D.Op.ALTERNATE),g=this.newRegexp(D.Op.CONCAT);g.subs=[r,f],i[o++]=g}c=y,t=e}}a=o,s=0,c=0;for(let w=o=0;w<=a;w++)if(!(w<a&&E.isCharClass(i[s+w]))){if(w!==c){if(w!==c+1){let e=c;for(let t=c+1;t<w;t++){var m=i[s+e],C=i[s+t];(m.op<C.op||m.op===C.op&&(null!==m.runes?m.runes.length:0)<(null!==C.runes?C.runes.length:0))&&(e=t)}var v=i[s+c];i[s+c]=i[s+e],i[s+e]=v;for(let r=c+1;r<w;r++)E.mergeCharClass(i[s+c],i[s+r]),this.reuse(i[s+r]);this.cleanAlt(i[s+c])}i[o++]=i[s+c]}w<a&&(i[o++]=i[s+w]),c=w+1}a=o,s=0,c=0;for(let e=o=0;e<a;++e)e+1<a&&i[s+e].op===D.Op.EMPTY_MATCH&&i[s+e+1].op===D.Op.EMPTY_MATCH||(i[o++]=i[s+e]);return a=o,s=0,i.slice(s,a)}removeLeadingString(e,t){if(e.op===D.Op.CONCAT&&0<e.subs.length){var r=this.removeLeadingString(e.subs[0],t);if((e.subs[0]=r).op===D.Op.EMPTY_MATCH)switch(this.reuse(r),e.subs.length){case 0:case 1:e.op=D.Op.EMPTY_MATCH,e.subs=D.emptySubs();break;case 2:var n=e;e=e.subs[1],this.reuse(n);break;default:e.subs=e.subs.slice(1,e.subs.length)}}else e.op===D.Op.LITERAL&&(e.runes=e.runes.slice(t,e.runes.length),0===e.runes.length)&&(e.op=D.Op.EMPTY_MATCH);return e}removeLeadingRegexp(e,t){if(e.op===D.Op.CONCAT&&0<e.subs.length){switch(t&&this.reuse(e.subs[0]),e.subs=e.subs.slice(1,e.subs.length),e.subs.length){case 0:e.op=D.Op.EMPTY_MATCH,e.subs=D.emptySubs();break;case 1:var r=e;e=e.subs[0],this.reuse(r)}return e}return t&&this.reuse(e),this.newRegexp(D.Op.EMPTY_MATCH)}parseInternal(){if(0!=(this.flags&b.LITERAL))return E.literalRegexp(this.wholeRegexp,this.flags);let r=-1,n=-1,i=-1;for(var s=new oC(this.wholeRegexp);s.more();){let t=-1;e:switch(s.peek()){case v.CODES.get("("):if(0!=(this.flags&b.LOOKBEHIND)){if(s.lookingAt("(?<=")){this.parsePosLookBehind(),s.skip(4);break}if(s.lookingAt("(?<!")){this.parseNegLookBehind(),s.skip(4);break}}0!=(this.flags&b.PERL_X)&&s.lookingAt("(?")?this.parsePerlFlags(s):(this.op(D.Op.LEFT_PAREN).cap=++this.numCap,s.skip(1));break;case v.CODES.get("|"):this.parseVerticalBar(),s.skip(1);break;case v.CODES.get(")"):this.parseRightParen(),s.skip(1);break;case v.CODES.get("^"):0!=(this.flags&b.ONE_LINE)?this.op(D.Op.BEGIN_TEXT):this.op(D.Op.BEGIN_LINE),s.skip(1);break;case v.CODES.get("$"):0!=(this.flags&b.ONE_LINE)?this.op(D.Op.END_TEXT).flags|=b.WAS_DOLLAR:this.op(D.Op.END_LINE),s.skip(1);break;case v.CODES.get("."):0!=(this.flags&b.DOT_NL)?this.op(D.Op.ANY_CHAR):this.op(D.Op.ANY_CHAR_NOT_NL),s.skip(1);break;case v.CODES.get("["):this.parseClass(s);break;case v.CODES.get("*"):case v.CODES.get("+"):case v.CODES.get("?"):{t=s.pos();let e=null;switch(s.pop()){case v.CODES.get("*"):e=D.Op.STAR;break;case v.CODES.get("+"):e=D.Op.PLUS;break;case v.CODES.get("?"):e=D.Op.QUEST}this.repeat(e,n,i,t,s,r);break}case v.CODES.get("{"):t=s.pos();var e=E.parseRepeat(s);e<0?(s.rewindTo(t),this.literal(s.pop())):(n=e>>16,i=(e&C.MAX_BMP)<<16>>16,this.repeat(D.Op.REPEAT,n,i,t,s,r));break;case v.CODES.get("\\"):var a=s.pos();if(s.skip(1),0!=(this.flags&b.PERL_X)&&s.more())switch(s.pop()){case v.CODES.get("A"):this.op(D.Op.BEGIN_TEXT);break e;case v.CODES.get("b"):this.op(D.Op.WORD_BOUNDARY);break e;case v.CODES.get("B"):this.op(D.Op.NO_WORD_BOUNDARY);break e;case v.CODES.get("C"):throw new Bm(E.ERR_INVALID_ESCAPE,"\\C");case v.CODES.get("Q"):{let e=s.rest();var o=e.indexOf("\\E");0<=o?(e=e.substring(0,o),s.skipString(e),s.skipString("\\E")):s.skipString(e);let t=0;for(;t<e.length;){var l=e.codePointAt(t);this.literal(l),t+=y.charCount(l)}break e}case v.CODES.get("z"):this.op(D.Op.END_TEXT);break e;default:s.rewindTo(a)}else s.rewindTo(a);var u=this.newRegexp(D.Op.CHAR_CLASS);if(u.flags=this.flags,s.lookingAt("\\p")||s.lookingAt("\\P")){e=new aC;if(this.parseUnicodeClass(s,e)){u.runes=e.toArray(),this.push(u);break}}var h=new aC;this.parsePerlClassEscape(s,h)?(u.runes=h.toArray(),this.push(u)):(s.rewindTo(a),this.reuse(u),this.literal(E.parseEscape(s)));break;default:this.literal(s.pop())}r=t}if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),1!==this.stack.length)throw new Bm(E.ERR_MISSING_PAREN,this.wholeRegexp);return this.stack[0].namedGroups=this.namedGroups,this.stack[0]}parsePerlFlags(n){var i=n.pos(),e=n.rest();if(!e.startsWith("(?P<")&&!e.startsWith("(?<")){n.skip(2);let e=this.flags,t=1,r=!1;e:for(;n.more();){var s=n.pop();switch(s){case v.CODES.get("i"):e|=b.FOLD_CASE,r=!0;break;case v.CODES.get("m"):e&=~b.ONE_LINE,r=!0;break;case v.CODES.get("s"):e|=b.DOT_NL,r=!0;break;case v.CODES.get("U"):e|=b.NON_GREEDY,r=!0;break;case v.CODES.get("-"):if(t<0)break e;t=-1,e=~e,r=!1;break;case v.CODES.get(":"):case v.CODES.get(")"):if(t<0){if(!r)break e;e=~e}return s===v.CODES.get(":")&&this.op(D.Op.LEFT_PAREN),void(this.flags=e);default:break e}}throw new Bm(E.ERR_INVALID_PERL_OP,n.from(i))}var i="P"===e.charAt(2)?4:3,t=e.indexOf(">");if(t<0)throw new Bm(E.ERR_INVALID_NAMED_CAPTURE,e);var r=e.substring(i,t);if(n.skipString(r),n.skip(1+i),!E.isValidCaptureName(r))throw new Bm(E.ERR_INVALID_NAMED_CAPTURE,e.substring(0,t+1));i=this.op(D.Op.LEFT_PAREN);if(i.cap=++this.numCap,this.namedGroups[r])throw new Bm(E.ERR_DUPLICATE_NAMED_CAPTURE,r);this.namedGroups[r]=this.numCap,i.name=r}parsePosLookBehind(){var e=this.newRegexp(D.Op.LEFT_PAREN);return e.flags=this.flags,e.lb=++this.nlb,this.push(e)}parseNegLookBehind(){var e=this.newRegexp(D.Op.LEFT_PAREN);return e.flags=this.flags,e.lb=-++this.nlb,this.push(e)}parseVerticalBar(){this.concat(),this.swapVerticalBar()||this.op(D.Op.VERTICAL_BAR)}swapVerticalBar(){var r=this.stack.length;if(3<=r&&this.stack[r-2].op===D.Op.VERTICAL_BAR&&E.isCharClass(this.stack[r-1])&&E.isCharClass(this.stack[r-3])){let e=this.stack[r-1],t=this.stack[r-3];return e.op>t.op&&(n=t,t=e,e=n,this.stack[r-3]=t),E.mergeCharClass(t,e),this.reuse(e),this.pop(),!0}if(2<=r){var n=this.stack[r-1],e=this.stack[r-2];if(e.op===D.Op.VERTICAL_BAR)return 3<=r&&this.cleanAlt(this.stack[r-3]),this.stack[r-2]=n,this.stack[r-1]=e,!0}return!1}parseRightParen(){if(this.concat(),this.swapVerticalBar()&&this.pop(),this.alternate(),this.stack.length<2)throw new Bm(E.ERR_UNEXPECTED_PAREN,this.wholeRegexp);var e=this.pop(),t=this.pop();if(t.op!==D.Op.LEFT_PAREN)throw new Bm(E.ERR_UNEXPECTED_PAREN,this.wholeRegexp);if(this.flags=t.flags,0!==t.lb){if(E.hasCapture(e))throw new Bm(E.ERR_INVALID_CAPTURE_IN_LOOKBEHIND,this.wholeRegexp);0<t.lb?t.op=D.Op.PLB:t.op=D.Op.NLB,t.subs=[e],this.push(t)}else 0===t.cap?this.push(e):(t.op=D.Op.CAPTURE,t.subs=[e],this.push(t))}parsePerlClassEscape(e,t){var r=e.pos();if(0==(this.flags&b.PERL_X)||!e.more()||e.pop()!==v.CODES.get("\\")||!e.more())return!1;e.pop();r=e.from(r),r=Um.has(r)?Um.get(r):null;return null!==r&&(t.appendGroup(r,0!=(this.flags&b.FOLD_CASE)),!0)}parseNamedClass(e,t){var r=e.rest(),n=r.indexOf(":]");if(n<0)return!1;r=r.substring(0,n+2),e.skipString(r),n=$m.has(r)?$m.get(r):null;if(null===n)throw new Bm(E.ERR_INVALID_CHAR_RANGE,r);return t.appendGroup(n,0!=(this.flags&b.FOLD_CASE)),!0}parseUnicodeClass(e,t){var r=e.pos();if(0==(this.flags&b.UNICODE_GROUPS)||!e.lookingAt("\\p")&&!e.lookingAt("\\P"))return!1;e.skip(1);let n=1;if(e.pop()===v.CODES.get("P")&&(n=-1),!e.more())throw e.rewindTo(r),new Bm(E.ERR_INVALID_CHAR_RANGE,e.rest());let i;if((s=e.pop())!==v.CODES.get("{"))i=y.runeToString(s);else{var s=e.rest(),a=s.indexOf("}");if(a<0)throw e.rewindTo(r),new Bm(E.ERR_INVALID_CHAR_RANGE,e.rest());i=s.substring(0,a),e.skipString(i),e.skip(1)}0!==i.length&&i.codePointAt(0)===v.CODES.get("^")&&(n=0-n,i=i.substring(1));s=E.unicodeTable(i);if(null===s)throw new Bm(E.ERR_INVALID_CHAR_RANGE,e.from(r));s.sign<0&&(n=0-n);a=s.tab,r=s.fold;return 0==(this.flags&b.FOLD_CASE)||null===r?t.appendTableWithSign(a,n):(s=(new aC).appendTable(a).appendTable(r).cleanClass().toArray(),t.appendClassWithSign(s,n)),!0}parseClass(t){var r=t.pos(),e=(t.skip(1),this.newRegexp(D.Op.CHAR_CLASS)),n=(e.flags=this.flags,new aC);let i=1,s=(t.more()&&t.lookingAt("^")&&(i=-1,t.skip(1),0==(this.flags&b.CLASS_NL))&&n.appendRange(v.CODES.get("\n"),v.CODES.get("\n")),!0);for(;!t.more()||t.peek()!==v.CODES.get("]")||s;){if(t.more()&&t.lookingAt("-")&&0==(this.flags&b.PERL_X)&&!s){var a=t.rest();if("-"===a||!a.startsWith("-]"))throw t.rewindTo(r),new Bm(E.ERR_INVALID_CHAR_RANGE,t.rest())}s=!1;a=t.pos();if(t.lookingAt("[:")){if(this.parseNamedClass(t,n))continue;t.rewindTo(a)}if(!this.parseUnicodeClass(t,n)&&!this.parsePerlClassEscape(t,n)){t.rewindTo(a);var o=E.parseClassChar(t,r);let e=o;if(t.more()&&t.lookingAt("-"))if(t.skip(1),t.more()&&t.lookingAt("]"))t.skip(-1);else if((e=E.parseClassChar(t,r))<o)throw new Bm(E.ERR_INVALID_CHAR_RANGE,t.from(a));0==(this.flags&b.FOLD_CASE)?n.appendRange(o,e):n.appendFoldedRange(o,e)}}t.skip(1),n.cleanClass(),i<0&&n.negateClass(),e.runes=n.toArray(),this.push(e)}}).ERR_INTERNAL_ERROR="regexp/syntax: internal error",E.ERR_INVALID_CHAR_RANGE="invalid character class range",E.ERR_INVALID_ESCAPE="invalid escape sequence",E.ERR_INVALID_NAMED_CAPTURE="invalid named capture",E.ERR_INVALID_PERL_OP="invalid or unsupported Perl syntax",E.ERR_INVALID_REPEAT_OP="invalid nested repetition operator",E.ERR_INVALID_REPEAT_SIZE="invalid repeat count",E.ERR_MISSING_BRACKET="missing closing ]",E.ERR_MISSING_PAREN="missing closing )",E.ERR_MISSING_REPEAT_ARGUMENT="missing argument to repetition operator",E.ERR_TRAILING_BACKSLASH="trailing backslash at end of expression",E.ERR_DUPLICATE_NAMED_CAPTURE="duplicate capture group name",E.ERR_UNEXPECTED_PAREN="unexpected )",E.ERR_NESTING_DEPTH="expression nests too deeply",E.ERR_LARGE="expression too large",E.ERR_INVALID_CAPTURE_IN_LOOKBEHIND="invalid capture in lookbehind",E.MAX_HEIGHT=1e3,E.MAX_SIZE=3355443,E.MAX_RUNES=33554432,E.ANY_TABLE=new r(new Uint32Array([0,C.MAX_RUNE,1])),E.ASCII_TABLE=new r(new Uint32Array([0,127,1])),E.ASCII_FOLD_TABLE=new r(new Uint32Array([0,127,1,383,383,1,8490,8490,1])),E),uC=class{constructor(e){this.value=e}get(){return this.value}set(e){this.value=e}compareAndSet(e,t){return this.value===e&&(this.value=t,!0)}},hC=class hC{static initTest(e){var t=hC.compile(e),r=new hC(t.expr,t.prog,t.numSubexp,t.longest);return r.cond=t.cond,r.prefix=t.prefix,r.prefixUTF8=t.prefixUTF8,r.prefixComplete=t.prefixComplete,r.prefixRune=t.prefixRune,r.prefilter=t.prefilter,r}static compile(e){return hC.compileImpl(e,b.PERL,!1)}static compilePOSIX(e){return hC.compileImpl(e,b.POSIX,!0)}static compileImpl(e,t,r){let n=lC.parse(e,t);var i=n.maxCap(),s=(n=Mm.simplify(n),Om.build(n)),a=Lm.compileRegexp(n),i=new hC(e,a,i,r),[s,a]=(i.prefilter=s.type===Rm.Type.NONE?null:s,a.prefix());return i.prefixComplete=s,i.prefix=a,i.prefixUTF8=y.stringToUtf8ByteArray(i.prefix),0<i.prefix.length&&(i.prefixRune=i.prefix.codePointAt(0)),i.namedGroups=n.namedGroups,i}static match(e,t){return hC.compile(e).match(t)}constructor(e,t,r=0,n=0){this.expr=e,this.prog=t,this.numSubexp=r,this.longest=n,this.cond=t.startCond(),this.prefix=null,this.prefixUTF8=null,this.prefixComplete=!1,this.prefixRune=0,this.pooled=new uC,this.dfa=new bm(this.prog),this.onepass=km.compile(this.prog),this.prefilter=null}matchPrefixComplete(e,t,r,n){if((r===b.ANCHOR_START||r===b.ANCHOR_BOTH)&&0!==t)return null;let i=-1,s=-1;var a=e.prefixLength(this);if(r===b.UNANCHORED){var o=e.index(this,t);if(o<0)return null;i=t+o,s=i+a}else if(r===b.ANCHOR_BOTH){if(e.endPos()!==a)return null;if(0!==e.index(this,0))return null;i=0,s=a}else if(r===b.ANCHOR_START){if(0!==e.index(this,0))return null;i=0,s=a}return i<0?null:0<n?((o=new Int32Array(n).fill(-1))[0]=i,o[1]=s,Array.from(o)):[]}executeEngine(e,t,r,n){if(this.prefixComplete&&(0===n||0===this.numSubexp))return this.matchPrefixComplete(e,t,r,n);if(null!==this.prefilter&&r===b.UNANCHORED&&!this.prefilter.eval(e,t))return null;if(null!==this.onepass)return km.execute(this,e,t,r,n);if(0<n)return 0===this.prog.numLb&&e.endPos()<=Tm.maxBitStateLen(this.prog)?Tm.execute(this,e,t,r,n):this.doExecuteNFA(e,t,r,n);if(0===this.prog.numLb){var i=this.dfa.match(e,t,r);if(null!==i)return i?[]:null;if(e.endPos()<=Tm.maxBitStateLen(this.prog))return Tm.execute(this,e,t,r,n)}return this.doExecuteNFA(e,t,r,n)}numberOfCapturingGroups(){return this.numSubexp}numberOfInstructions(){return this.prog.numInst()}get(){let e;for(;(e=this.pooled.get())&&!this.pooled.compareAndSet(e,e.next););return e}reset(){this.pooled.set(null)}put(e,t){var r;for(this.pooled.get();r=this.pooled.get(),!t&&r&&(e=ym.fromMachine(e),t=!0),e.next!==r&&(e.next=r),!this.pooled.compareAndSet(r,e););}toString(){return this.expr}doExecuteNFA(e,t,r,n){let i=this.get(),s=!1;i?null!==i.next&&(i=ym.fromMachine(i),s=!0):(i=ym.fromRE2(this),s=!0),i.init(n);var a=i.match(e,t,r)?i.submatches():null;return this.put(i,s),a}match(e){return null!==this.executeEngine(dm.fromUTF16(e),0,b.UNANCHORED,0)}matchWithGroup(e,t,r,n,i){return e instanceof sm||(e=y.isByteArray(e)?lm.utf8(e):lm.utf16(e)),this.matchMachineInput(e,t,r,n,i)}matchMachineInput(e,t,r,n,i){var s;return r<t||(s=e.isUTF16Encoding()?dm.fromUTF16(e.asCharSequence(),0,r):dm.fromUTF8(e.asBytes(),0,r),null===(s=this.executeEngine(s,t,n,2*i)))?[!1,null]:[!0,s]}matchUTF8(e){return null!==this.executeEngine(dm.fromUTF8(e),0,b.UNANCHORED,0)}replaceAll(e,t){return this.replaceAllFunc(e,()=>t,2*e.length+1)}replaceFirst(e,t){return this.replaceAllFunc(e,()=>t,1)}replaceAllFunc(e,t,r){let n=0,i=0,s="";var a=dm.fromUTF16(e);let o=0;for(;i<=e.length;){var l=this.executeEngine(a,i,b.UNANCHORED,2);if(null===l||0===l.length)break;s+=e.substring(n,l[0]),(l[1]>n||0===l[0])&&(s+=t(e.substring(l[0],l[1])),o++),n=l[1];var u=7&a.step(i);if(i+u>l[1]?i+=u:i+1>l[1]?i++:i=l[1],o>=r)break}return s+=e.substring(n)}pad(t){if(null===t)return null;var r=2*(1+this.numSubexp);if(t.length<r){var n=new Array(r).fill(-1);for(let e=0;e<t.length;e++)n[e]=t[e];t=n}return t}allMatches(t,e,r=e=>e){var n=[],i=t.endPos();e<0&&(e=i+1);let s=0,a=0,o=-1;for(;a<e&&s<=i;){var l,u=this.executeEngine(t,s,b.UNANCHORED,this.prog.numCap);if(null===u||0===u.length)break;let e=!0;u[1]===s?(u[0]===o&&(e=!1),(l=t.step(s))<0?s=i+1:s+=7&l):s=u[1],o=u[1],e&&(n.push(r(this.pad(u))),a++)}return n}findUTF8(e){var t=this.executeEngine(dm.fromUTF8(e),0,b.UNANCHORED,2);return null===t?null:e.slice(t[0],t[1])}findUTF8Index(e){var t=this.executeEngine(dm.fromUTF8(e),0,b.UNANCHORED,2);return null===t?null:t.slice(0,2)}find(e){var t=this.executeEngine(dm.fromUTF16(e),0,b.UNANCHORED,2);return null===t?"":e.substring(t[0],t[1])}findIndex(e){return this.executeEngine(dm.fromUTF16(e),0,b.UNANCHORED,2)}findUTF8Submatch(e){var t=this.executeEngine(dm.fromUTF8(e),0,b.UNANCHORED,this.prog.numCap);if(null===t)return null;var r=new Array(1+this.numSubexp).fill(null);for(let n=0;n<r.length;n++)2*n<t.length&&0<=t[2*n]&&(r[n]=e.slice(t[2*n],t[2*n+1]));return r}findUTF8SubmatchIndex(e){return this.pad(this.executeEngine(dm.fromUTF8(e),0,b.UNANCHORED,this.prog.numCap))}findSubmatch(e){var t=this.executeEngine(dm.fromUTF16(e),0,b.UNANCHORED,this.prog.numCap);if(null===t)return null;var r=new Array(1+this.numSubexp).fill(null);for(let n=0;n<r.length;n++)2*n<t.length&&0<=t[2*n]&&(r[n]=e.substring(t[2*n],t[2*n+1]));return r}findSubmatchIndex(e){return this.pad(this.executeEngine(dm.fromUTF16(e),0,b.UNANCHORED,this.prog.numCap))}findAllUTF8(t,e){var r=this.allMatches(dm.fromUTF8(t),e,e=>t.slice(e[0],e[1]));return 0===r.length?null:r}findAllUTF8Index(e,t){var r=this.allMatches(dm.fromUTF8(e),t,e=>e.slice(0,2));return 0===r.length?null:r}findAll(t,e){var r=this.allMatches(dm.fromUTF16(t),e,e=>t.substring(e[0],e[1]));return 0===r.length?null:r}findAllIndex(e,t){var r=this.allMatches(dm.fromUTF16(e),t,e=>e.slice(0,2));return 0===r.length?null:r}findAllUTF8Submatch(n,e){var t=this.allMatches(dm.fromUTF8(n),e,e=>{var t=new Array(e.length/2|0).fill(null);for(let r=0;r<t.length;r++)0<=e[2*r]&&(t[r]=n.slice(e[2*r],e[2*r+1]));return t});return 0===t.length?null:t}findAllUTF8SubmatchIndex(e,t){var r=this.allMatches(dm.fromUTF8(e),t);return 0===r.length?null:r}findAllSubmatch(n,e){var t=this.allMatches(dm.fromUTF16(n),e,e=>{var t=new Array(e.length/2|0).fill(null);for(let r=0;r<t.length;r++)0<=e[2*r]&&(t[r]=n.substring(e[2*r],e[2*r+1]));return t});return 0===t.length?null:t}findAllSubmatchIndex(e,t){var r=this.allMatches(dm.fromUTF16(e),t);return 0===r.length?null:r}},cC=(class{},b.UNANCHORED,b.ANCHOR_START,b.ANCHOR_BOTH,class cC{static isHexadecimal(e){return"0"<=e&&e<="9"||"A"<=e&&e<="F"||"a"<=e&&e<="f"}static translate(i){let e="";if(i instanceof RegExp&&(i.ignoreCase&&(e+="i"),i.multiline&&(e+="m"),i.dotAll&&(e+="s"),i=i.source),"string"!=typeof i)return i;let s="",a=!1;var o=i.length;0===o&&(s="(?:)",a=!0);let t=!1,l=0;for(;l<o;){let e=i[l];if("\\"===e){if(l+1<o)switch(e=i[l+1]){case"\\":s+="\\\\",l+=2;continue;case"c":if(l+2<o){var r=i[l+2].charCodeAt(0);if(65<=r&&r<=90||97<=r&&r<=122){r=r%32;s=(s=(s+="\\x")+(r>>4).toString(16).toUpperCase())+(15&r).toString(16).toUpperCase(),l+=3,a=!0;continue}}s+="c",l+=2,a=!0;continue;case"u":if(l+2<o)if("{"===i[l+2]){let e=l+3,t=!1,r=!1;for(;e<o;){var n=i[e];if("}"===n){r=!0;break}if(!cC.isHexadecimal(n))break;t=!0,e++}if(r&&t){s+="\\x",l+=2,a=!0;continue}}else if(l+5<o){let e=!0;for(let t=0;t<4;t++)if(!cC.isHexadecimal(i[l+2+t])){e=!1;break}if(e){s+="\\x{"+i.substring(l+2,l+6)+"}",l+=6,a=!0;continue}}s+="u",l+=2,a=!0;continue;case"x":{let n=!1;if(l+2<o&&"{"===i[l+2]){let e=l+3,t=!1,r=!1;for(;e<o;){var u=i[e];if("}"===u){r=!0;break}if(!cC.isHexadecimal(u))break;t=!0,e++}r&&t&&(n=!0)}else l+3<o&&cC.isHexadecimal(i[l+2])&&cC.isHexadecimal(i[l+3])&&(n=!0);n?(s+="\\x",l+=2):(s+="x",l+=2,a=!0);continue}case"n":case"r":case"t":case"a":case"f":case"v":case"d":case"D":case"s":case"S":case"w":case"W":case"b":case"B":case"p":case"P":case"A":case"z":case"Q":case"E":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":s+="\\"+e,l+=2;continue;default:var h,r=i.codePointAt(l+1);48<=r&&r<=57||65<=r&&r<=90||97<=r&&r<=122?(h=y.charCount(r),s+=i.substring(l+1,l+1+h),l+=h+1,a=!0):(s+="\\",h=y.charCount(r),s+=i.substring(l+1,l+1+h),l+=h+1);continue}}else{if("/"===e){s+="\\/",l+=1,a=!0;continue}if("["===e)t=!0;else if("]"===e)t=!1;else if(!t&&"("===e&&l+2<o&&"?"===i[l+1]&&"<"===i[l+2]&&l+3<o&&!"=!>)".includes(i[l+3])){s+="(?P<",l+=3,a=!0;continue}}var c=i.codePointAt(l),c=y.charCount(c);s+=i.substring(l,l+c),l+=c}var d=a?s:i;return 0<e.length?`(?${e})`+d:d}}),dC=((zg=class{static quote(e){return y.quoteMeta(e)}static quoteReplacement(e,t=!1){return Cm.quoteReplacement(e,t)}static translateRegExp(e){return cC.translate(e)}static compile(e,t=0){let r=e;if(0!=(t&zg.CASE_INSENSITIVE)&&(r="(?i)"+r),0!=(t&zg.DOTALL)&&(r="(?s)"+r),0!=(t&zg.MULTILINE)&&(r="(?m)"+r),0!=(t&~(zg.MULTILINE|zg.DOTALL|zg.CASE_INSENSITIVE|zg.DISABLE_UNICODE_GROUPS|zg.LONGEST_MATCH|zg.LOOKBEHINDS)))throw new gm("Flags should only be a combination of MULTILINE, DOTALL, CASE_INSENSITIVE, DISABLE_UNICODE_GROUPS, LONGEST_MATCH, LOOKBEHINDS");let n=b.PERL;0!=(t&zg.DISABLE_UNICODE_GROUPS)&&(n&=~b.UNICODE_GROUPS),0!=(t&zg.LOOKBEHINDS)&&(n|=b.LOOKBEHIND);var i=new zg(e,t);return i.re2Input=hC.compileImpl(r,n,0!=(t&zg.LONGEST_MATCH)),i}static matches(e,t){return zg.compile(e).testExact(t)}static initTest(e,t,r){if(null==e)throw new Error("pattern is null");if(null==r)throw new Error("re2 is null");var n=new zg(e,t);return n.re2Input=r,n}constructor(e,t){this.patternInput=e,this.flagsInput=t,this.re2Input=null}reset(){this.re2Input.reset()}flags(){return this.flagsInput}pattern(){return this.patternInput}re2(){return this.re2Input}matches(e){return this.testExact(e)}matcher(e){return y.isByteArray(e)&&(e=lm.utf8(e)),new Cm(this,e)}test(e){return y.isByteArray(e)?this.re2Input.matchUTF8(e):this.re2Input.match(e)}testExact(e){var t=y.isByteArray(e)?dm.fromUTF8(e):dm.fromUTF16(e);return null!==this.re2Input.executeEngine(t,0,b.ANCHOR_BOTH,0)}split(e,t=0){var r=this.matcher(e),n=[];let i=0,s=0;for(;r.find();){if(0===s&&0===r.end());else{if(0<t&&n.length===t-1)break;if(s===r.start()){if(0===t){i+=1,s=r.end();continue}}else for(;0<i;)n.push(""),--i;n.push(r.substring(s,r.start()))}s=r.end()}if(0===t&&s!==r.inputLength()){for(;0<i;)n.push(""),--i;n.push(r.substring(s,r.inputLength()))}return 0===t&&0!==n.length||n.push(r.substring(s,r.inputLength())),n}*matchAll(t){for(var r=this.matcher(t);r.find();){var n=[r.group(0)];for(let e=1;e<=r.groupCount();e++){var i=r.group(e);n.push(null===i?void 0:i)}n.index=r.start(0),n.input=t;var s=this.namedGroups();if(0<Object.keys(s).length){var a,o=r.getNamedGroups();for(a in o)null===o[a]&&(o[a]=void 0);n.groups=o}else n.groups=void 0;yield n}}toString(){return this.patternInput}programSize(){return this.re2Input.numberOfInstructions()}groupCount(){return this.re2Input.numberOfCapturingGroups()}namedGroups(){return this.re2Input.namedGroups}equals(e){return this===e||null!==e&&this.constructor===e.constructor&&this.flagsInput===e.flagsInput&&this.patternInput===e.patternInput}}).CASE_INSENSITIVE=Wg.CASE_INSENSITIVE,zg.DOTALL=Wg.DOTALL,zg.MULTILINE=Wg.MULTILINE,zg.DISABLE_UNICODE_GROUPS=Wg.DISABLE_UNICODE_GROUPS,zg.LONGEST_MATCH=Wg.LONGEST_MATCH,zg.LOOKBEHINDS=Wg.LOOKBEHINDS,zg);let BC="13.3.0";let pC=new $e("@firebase/firestore");function fC(){return pC.logLevel}function p(e,...t){var r;pC.logLevel<=B.DEBUG&&(r=t.map(CC),pC.debug(`Firestore (${BC}): `+e,...r))}function gC(e,...t){var r;pC.logLevel<=B.ERROR&&(r=t.map(CC),pC.error(`Firestore (${BC}): `+e,...r))}function mC(e,...t){var r;pC.logLevel<=B.WARN&&(r=t.map(CC),pC.warn(`Firestore (${BC}): `+e,...r))}function CC(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function I(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,vC(e,n,r)}function vC(e,t,r){let n=`FIRESTORE (${BC}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw gC(n),new Error(n)}function T(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||vC(t,i,n)}class _C{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 S(e,t){return e<t?-1:t<e?1:0}function yC(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return bC(e)===bC(t)?S(e,t):bC(e)?1:-1}return S(r.length,n.length)}let wC=55296,EC=57343;function bC(e){var t=e.charCodeAt(0);return t>=wC&&t<=EC}function DC(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function IC(e){return e+"\0"}class TC{constructor(e,t){this.comparator=e,this.root=t||NC.EMPTY}insert(e,t){return new TC(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,NC.BLACK,null,null))}remove(e){return new TC(this.comparator,this.root.remove(e,this.comparator).copy(null,null,NC.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 SC(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new SC(this.root,e,this.comparator,!1)}getReverseIterator(){return new SC(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new SC(this.root,e,this.comparator,!0)}}class SC{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 NC{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:NC.RED,this.left=null!=n?n:NC.EMPTY,this.right=null!=i?i:NC.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new NC(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 NC.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 NC.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,NC.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,NC.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 I(43730,{key:this.key,value:this.value});if(this.right.isRed())throw I(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw I(27949);return e+(this.isRed()?0:1)}}NC.EMPTY=null,NC.RED=!0,NC.BLACK=!1,NC.EMPTY=new class{constructor(){this.size=0}get key(){throw I(57766)}get value(){throw I(16141)}get color(){throw I(16727)}get left(){throw I(29726)}get right(){throw I(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new NC(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 kC{constructor(e){this.comparator=e,this.data=new TC(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 AC(this.data.getIterator())}getIteratorFrom(e){return new AC(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 kC))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 kC(this.comparator);return t.data=e,t}}class AC{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function RC(e){return e.hasNext()?e.getNext():void 0}let N={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"},k=class extends Be{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}},OC="__name__";class xC{constructor(e,t,r){void 0===t?t=0:t>e.length&&I(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&I(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===xC.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof xC?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=xC.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return S(t.length,r.length)}static compareSegments(e,t){var r=xC.isNumericId(e),n=xC.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?xC.extractNumericId(e).compare(xC.extractNumericId(t)):yC(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return Ig.fromString(e.substring(4,e.length-2))}}class PC extends xC{construct(e,t,r){return new PC(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toStringWithLeadingSlash(){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 k(N.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new PC(r)}static emptyPath(){return new PC([])}}let FC=/^[_a-zA-Z][_a-zA-Z0-9]*$/,LC=class zR extends xC{construct(e,t,r){return new zR(e,t,r)}static isValidIdentifier(e){return FC.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=zR.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===OC}static keyField(){return new zR([OC])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new k(N.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 k(N.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new k(N.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 k(N.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new zR(e)}static emptyPath(){return new zR([])}};class MC{constructor(e){(this.fields=e).sort(LC.comparator)}static empty(){return new MC([])}unionWith(e){let t=new kC(LC.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new MC(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return DC(this.fields,e.fields,(e,t)=>e.isEqual(t))}}function UC(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function VC(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function GC(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e){this.path=e}static fromPath(e){return new A(PC.fromString(e))}static fromName(e){return new A(PC.fromString(e).popFirst(5))}static empty(){return new A(PC.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===PC.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return PC.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new A(new PC(e.slice()))}}function HC(e,t,r){if(!r)throw new k(N.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function qC(e,t,r,n){if(!0===t&&!0===n)throw new k(N.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function jC(e){if(!A.isDocumentKey(e))throw new k(N.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function KC(e){if(A.isDocumentKey(e))throw new k(N.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function zC(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function JC(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":I(12329,{type:typeof e})}function WC(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new k(N.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=JC(e);throw new k(N.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function QC(e,t){if(t<=0)throw new k(N.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function YC(e,t){var r={typeString:e};return t&&(r.value=t),r}function $C(e,t){if(!zC(e))throw new k(N.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,a=t[n].optional;if(!(n in e)){if(a)continue;r=`JSON missing required field: '${n}'`;break}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 k(N.INVALID_ARGUMENT,r);return 1}let XC=-62135596800;class ZC{static now(){return ZC.fromMillis(Date.now())}static fromDate(e){return ZC.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new ZC(t,r)}static fromInstant(e){if(e&&"bigint"==typeof e.t)return ZC._fromEpochNanoseconds(e.t);throw new k(N.INVALID_ARGUMENT,"Invalid Temporal.Instant object provided.")}static _fromEpochNanoseconds(e){let t,r;var n;return r=0n<=e?(t=Number(e/1000000000n),Number(e%1000000000n)):0n===(n=e%1000000000n)?(t=Number(e/1000000000n),0):(t=Number(e/1000000000n-1n),Number(n+1000000000n)),new ZC(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new k(N.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new k(N.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<XC)throw new k(N.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new k(N.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}toInstant(){var e;if("undefined"!=typeof Temporal&&Temporal.Instant)return e=1000000000n*BigInt(this.seconds)+BigInt(this.nanoseconds),Temporal.Instant.__PRIVATE_fromEpochNanoseconds(e);throw new k(N.FAILED_PRECONDITION,"The Temporal object is not available in the current environment.")}_compareTo(e){return this.seconds===e.seconds?S(this.nanoseconds,e.nanoseconds):S(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:ZC._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if($C(e,ZC._jsonSchema))return new ZC(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-XC;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}ZC._jsonSchemaVersion="firestore/timestamp/1.0",ZC._jsonSchema={type:YC("string",ZC._jsonSchemaVersion),seconds:YC("number"),nanoseconds:YC("number")};class ev extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class tv{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 ev("Invalid base64 string: "+e):e}})(e);return new tv(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 tv(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 S(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}tv.EMPTY_BYTE_STRING=new tv("");let rv=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function nv(t){if(T(!!t,39018),"string"!=typeof t)return{seconds:iv(t.seconds),nanos:iv(t.nanos)};{let e=0;var r=rv.exec(t),r=(T(!!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 iv(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function sv(e){return"string"==typeof e?tv.fromBase64String(e):tv.fromUint8Array(e)}let av="server_timestamp",ov="__type__",lv="__previous_value__",uv="__local_write_time__";function hv(e){return(e?.mapValue?.fields||{})[ov]?.stringValue===av}function cv(e){var t=e.mapValue.fields[lv];return hv(t)?cv(t):t}function dv(e){var t=nv(e.mapValue.fields[uv].timestampValue);return new ZC(t.seconds,t.nanos)}class Bv{constructor(e,t,r,n,i,s,a,o,l,u,h,c,d){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=u,this.apiKey=h,this._customHeaders=c,this.grpcFlowControlWindow=d}}let pv="(default)";class fv{constructor(e,t){this.projectId=e,this.database=t||pv}static empty(){return new fv("","")}get isDefaultDatabase(){return this.database===pv}isEqual(e){return e instanceof fv&&e.projectId===this.projectId&&e.database===this.database}}class h{constructor(){this.exponent=0,this.i=0n,this.o=0n,this.u=new Array(4).fill(0n),this.l=new Array(6).fill(0n),this.h=new Array(6).fill(0n),this.T=new Array(6).fill(0n),this.P=new Array(12).fill(0n)}static I(e,t){var r=new h;return r.parse(e,t),r}parse(e,t){t+=e.length-1,this.exponent=0,this.i=0n,this.o=0n;var r=this.T,n=this.R(e,r);0==n&&this.isEmpty(r)||(t+=n)<h.A||(t>h.V?this.exponent=Number(h.m):(n=this.p(t,r),this.S(t,n,r)))}R(t,e){for(let a=0;a<6;a++)e[a]=0n;let r=0;for(;r<t.length&&0==t[r];)r+=1;if(r==t.length)return 0;let n=-r;if(t.length-r>h.v){var i=5<=t[h.v],s=new Array(h.v).fill(0);for(let e=0;e<h.v;e++)s[e]=t[e+r];i&&(n+=this.D(s)),t=s,r=0}for(let o=t.length-1;o>=r;o--)e[0]|=BigInt(t[o])<<32n,this.C(e);return n}C(e){var t=e.length;for(let n=0;n<t;n++){var r=e[n]%10n;e[n]=e[n]/10n,n+1<t&&(e[n+1]+=r<<32n)}}isEmpty(e){for(let t=0;t<e.length;t++)if(0n!=e[t])return!1;return!0}D(e){for(let t=e.length-1;0<=t;t--){if(9!=e[t])return e[t]=e[t]+1,0;e[t]=0}return e[0]=1}p(e,t){var r=t[0]<<31n|t[1]>>1n,r=Number(r)/h.F;return Math.floor(Number(e)*h.O+this.log2(r))}log2(e){return h.M*Math.log(e)}S(e,t,r){var n=this.u,i=(this.N(-t,n),this.P);this.B(r,n,i),this.L(i),BigInt(n[0])!=BigInt(-e)&&this.L(i),(t=(t+=this.$(i))+h.U)<=0||(t+=this.k(i),BigInt(t)>=h.m?this.exponent=Number(h.m):(this.exponent=Number(t),this.i=(i[0]<<32n)+i[1]&0xffffffffffffffffn,this.o=(i[2]<<32n)+i[3]&0xffffffffffffffffn))}N(i,s){if(0==i)this.q(h.K[0],s);else{let e=h.K,t=(i<0&&(i=-i,e=h.W),h.G),r=32,n=!0;for(;0<i;)i>=t&&(n?(this.q(e[r],s),n=!1):this.j(s,e[r],s),i-=t),--r,t*=.5}}q(e,t){for(let r=0;r<t.length;r++)t[r]=e[r]}j(e,t,r){this.H(e,t,this.P);var n=this.J(this.P);this.Y(this.P,r),r[0]=e[0]+t[0]+BigInt(n)}H(e,t,r){for(let i=0;i<r.length;i++)r[i]=0n;this.Z(e,this.l),this.Z(t,this.h);for(let s=5;0<=s;s--)for(let e=5;0<=e;e--){var n=this.l[s]*this.h[e];r[e+s+1]=r[e+s+1]+(n&h.X)&0xffffffffffffffffn,r[e+s]=r[e+s]+(n>>32n)&0xffffffffffffffffn}for(let a=11;1<=a;a--)r[a-1]=r[a-1]+(r[a]>>32n)&0xffffffffffffffffn,r[a]&=h.X}J(e){let t=0;for(;this.ee(e);)this.L(e),--t;return t}ee(t){if(t[0]<0x19999999n)return!0;if(!(0x19999999n<t[0]))for(let e=1;e<t.length;e++){if(t[e]<0x99999999n)return!0;if(0x99999999n<t[e])return!1}return!1}B(t,e,r){for(let a=0;a<r.length;a++)r[a]=0n;var n=this.h,i=(this.Z(e,n),t.length);for(let o=i-1;0<=o;o--)for(let e=i-1;0<=e;e--){var s=t[o]*n[e];r[e+o+1]=r[e+o+1]+(s&h.X)&0xffffffffffffffffn,r[e+o]=r[e+o]+(s>>32n)&0xffffffffffffffffn}for(let l=11;1<=l;l--)r[l-1]=r[l-1]+(r[l]>>32n)&0xffffffffffffffffn,r[l]&=h.X}L(e){var t=e.length-1;e[0]&=h.X,e[t]*=10n;for(let r=t-1;0<=r;r--)e[r]=10n*e[r]+(e[r+1]>>32n)&0xffffffffffffffffn,e[r+1]&=h.X}$(e){var t=31-h.te(e[0]);return 0!=t&&this.ne(e,t),t}k(e){return this.re(e,5,100n),this.re(e,4,0x80000000n),0n!=(e[0]&h.ie<<1n)?(this.ne(e,1),1):0}Y(e,t){t[1]=(e[0]<<32n)+e[1],t[2]=(e[2]<<32n)+e[3],t[3]=(e[4]<<32n)+e[5]}Z(e,t){t[0]=e[1]>>32n,t[1]=e[1]&h.X,t[2]=e[2]>>32n,t[3]=e[2]&h.X,t[4]=e[3]>>32n,t[5]=e[3]&h.X}ne(t,r){var n=t.length-1,i=BigInt(32-Math.abs(r));if(0<r){var s=BigInt(r);for(let e=1+n-1;1<=e;e--)t[e]=t[e]>>s|t[e-1]<<i&h.X;t[0]=t[0]>>s}else if(r<0){var a=BigInt(-r);t[0]=0xffffffffffffffffn&(t[0]<<a|t[1]>>i);for(let e=1;e<n;e++)t[e]=0xffffffffffffffffn&(t[e]<<a&h.X|t[e+1]>>i);t[n]=t[n]<<a&h.X}}re(e,t,r){var n=t;e[n]=e[n]+r&0xffffffffffffffffn;for(let i=n+1-1;1<=i&&0n!=(e[i]&h.ie);i--)e[i]&=h.X,e[i-1]+=1n}static te(e){var t=Number(e>>32n);return 0==t?32+Math.clz32(Number(BigInt.asUintN(32,e))):Math.clz32(t)}}h.v=59,h.V=646456993,h.A=-646457032,h.F=0xccccccccccccd00,h.se=0x8000000000000000n,h.G=2147483648,h.X=0x00000000ffffffffn,h.ie=0xffffffff00000000n,h.O=Math.log(10)/Math.log(2),h.M=1/Math.log(2),h.U=2147483647,h.m=0xffffffffn,h.K=[[1n,0x1999999999999999n,0x9999999999999999n,0x999999999999999an],[1n,0x3333333333333333n,0x3333333333333333n,0x3333333333333334n],[1n,0x6666666666666666n,0x6666666666666666n,0x6666666666666667n],[2n,0x28f5c28f5c28f5c2n,0x8f5c28f5c28f5c28n,0xf5c28f5c28f5c290n],[3n,0x4189374bc6a7ef9dn,0xb22d0e5604189374n,0xbc6a7ef9db22d0e6n],[5n,0xa7c5ac471b478423n,0x0fcf80dc33721d53n,0xcddd6e04c0592104n],[10n,0x6df37f675ef6eadfn,0x5ab9a2072d44268dn,0x97df837e6748956en],[20n,0x2f394219248446ban,0xa23d2ec729af3d61n,0x0607aa0167dd94cbn],[39n,0x571cbec554b60dbbn,0xd5f64baf0506840dn,0x451db70d5904029bn],[78n,0x1da48ce468e7c702n,0x6520247d3556476dn,0x1469caf6db224cfan],[155n,0x2252f0e5b39769dcn,0x9ae2eea30ca3ade0n,0xeeaa3c08dfe84e30n],[309n,0x2e055c9a3f6ba793n,0x16583a816eb60a59n,0x22c4b0826cf1ebf7n],[617n,0x52bb45e9cf23f17fn,0x7688c07606e50364n,0xb34479aa9d449a57n],[1234n,0x1abc81c8ff5f846cn,0x8f5e3c9853e38c97n,0x45060097f3bf9296n],[2467n,0x1bec53b510daa7b4n,0x48369ed77dbb0eb1n,0x3b05587b2187b41en],[4933n,0x1e75063a5ba91326n,0x8abfb8e460016ae3n,0x28008702d29e8a3cn],[9865n,0x243c5d8bb5c5fa55n,0x40c6d248c5881915n,0x4c0fd99fd5befc22n],[19729n,0x334a5570c3f4ef3cn,0xa13c36c43f979c90n,0xda7ac473555fb7a8n],[39457n,0x66c304445dd98f3bn,0xa8c293a20e47a41bn,0x4c5b03dc12604964n],[78914n,0x293ffbf5fb028cc4n,0x89d3e5ff44238406n,0x369a339e1bfe8c9bn],[157827n,0x427792fbb68e5d20n,0x7b297cd9fc154b62n,0xf09142114aa9a20cn],[315653n,0xac92bc65ad5c08fcn,0x00beeb115a566c19n,0x4ba882d8a4622437n],[631306n,0x745581440f92e80en,0x4da822cf7f896f41n,0x509d598678164ecdn],[1262612n,0x34dd99b4c69523a5n,0x64bc2e8f0d8b1044n,0xb03b1c96da5dd349n],[2525223n,0x6d2bbea9d6d25a08n,0xa0a4606a88e96b70n,0x182063bbc2fe8520n],[5050446n,0x2e8e47d63bfdd6e3n,0x2b55fa8976eaa3e9n,0x1a6b9d3086412a73n],[10100891n,0x54aa68efa1d719dfn,0xd8505806612c5c8fn,0xad068837fee8b43an],[20201782n,0x1c00464ccb7bae77n,0x9e3877784c77982cn,0xd94af3b61717404fn],[40403563n,0x1ea099c8be2b6cd0n,0x8bfb6d539fa50466n,0x6d3bc37e69a84218n],[80807125n,0x24a457f466ce8d18n,0xf2c8f3b81bc6bb59n,0xa78c757692e02d49n],[161614249n,0x347256677aba6b53n,0x3fbf90d30611a67cn,0x1e039d87e0bdb32bn],[323228497n,0x6b727daf0fd3432an,0x71f71121f9e4200fn,0x8fcd9942d486c10cn],[646456994n,0x2d18e84484d91f78n,0x4079bfe7829dec6fn,0x21551643e365abc6n]],h.W=[[1n,0x1999999999999999n,0x9999999999999999n,0x999999999999999an],[0n,0x8000000000000000n,0x0000000000000000n,0x0000000000000000n],[0n,0x4000000000000000n,0x0000000000000000n,0x0000000000000001n],[-1n,0xa000000000000000n,0x0000000000000000n,0x0000000000000000n],[-2n,0x6400000000000000n,0x0000000000000000n,0x0000000000000000n],[-4n,0x2710000000000000n,0x0000000000000000n,0x0000000000000001n],[-9n,0x3b9aca0000000000n,0x0000000000000000n,0x0000000000000001n],[-19n,0x8ac7230489e80000n,0x0000000000000000n,0x0000000000000000n],[-38n,0x4b3b4ca85a86c47an,0x098a224000000000n,0x0000000000000001n],[-77n,0xdd15fe86affad912n,0x49ef0eb713f39eben,0xaa987b6e6fd2a002n],[-154n,0xbeeefb584aff8603n,0xaafb550ffacfd8fan,0x5ca47e4f88d45371n],[-308n,0x8e679c2f5e44ff8fn,0x570f09eaa7ea7648n,0x5961db50c6d2b888n],[-616n,0x4f371b3399fc2ab0n,0x8170041c9feb05aan,0xc7c343447c75bcf6n],[-1233n,0xf51e928179013fd3n,0xde4bd12cde4d985cn,0x4a573ca6f94bff14n],[-2466n,0xeab388127bccaff7n,0x1667639142b9fbaen,0x775ec9995e1039fbn],[-4932n,0xd72cb2a95c7ef6ccn,0xe81bf1e825ba7515n,0xc2feb521d6cb5dcdn],[-9864n,0xb4dc1be6604502dcn,0xd491079b8eef6535n,0x578d3965d24de84dn],[-19728n,0x7fc6447bee60ea43n,0x2548da5c8b125b27n,0x5f42d1142f41d349n],[-39456n,0x3fc65180f88af8fbn,0x6a6915f383349413n,0x063c3708b6ceb291n],[-78913n,0x9ee0197c8dcd55bfn,0x2b2b9b942c38f4a2n,0x0f8ba634e9c706aen],[-157826n,0x629963a25b8b2d79n,0xd00b9d2286f70876n,0xe97004700c3644fcn],[-315652n,0x25f9cc308ceef4f3n,0x40f19543911a4546n,0xa2cd389452cfc366n],[-631305n,0x385597b0d47e76b8n,0x1b9f67e103bf2329n,0xc3119848595985f7n],[-1262611n,0x7bf795d276c12f66n,0x66a61d62a446659an,0xa1a4d73bebf093d5n],[-2525222n,0x3c07d96ab1ed7799n,0xcb7355c22cc05ac0n,0x4ffc0ab73b1f6a49n],[-5050445n,0x8cc4cd8c3edefb9an,0x6c8ff86a90a97e0cn,0x166cfddbf98b71bfn],[-10100890n,0x4d67d81cc88e1228n,0x1d7cfb06666b79b3n,0x7b916728aaa4e70dn],[-20201781n,0xea0c55494e7a552dn,0xb88cb9484bb86c61n,0x8d44893c610bb7dfn],[-40403562n,0xd5fa8c821ec0c24an,0xa80e46e764e0f8b0n,0xa7276bfa432fac7en],[-80807124n,0xb2dae307426f6791n,0xc970b82f58b12918n,0x0472592f7f39190en],[-161614248n,0x7cf51edd8a15f1c9n,0x656dab3498f8e697n,0x12daa2a80e53c807n],[-323228496n,0x3cfe609ab5883c50n,0xbec8b5d22b198871n,0xe18477703b4622b4n],[-646456993n,0x9152447b9d7cda9an,0x3b4d3f6110d77aadn,0xfa81bad1c394adb4n]];class o{constructor(e,t,r,n){this.negative=e,this._e=t,this.i=r,this.o=n}exponent(){return this._e-h.U}oe(){return 0===this._e&&0n===this.i&&0n===this.o}ae(){return this._e===Ng(o,Xm,"f",Zm)&&0n===this.i&&0n===this.o}isNaN(){return this._e===Ng(o,Xm,"f",Zm)&&!(0n===this.i&&0n===this.o)}compareTo(e){if(this.isNaN())return e.isNaN()?0:1;if(e.isNaN())return-1;let t,r;if(this.negative){if(!e.negative)return-1;t=1,r=-1}else{if(e.negative)return 1;t=-1,r=1}return this._e<e._e?t:this._e>e._e?r:this.i<e.i?t:this.i>e.i?r:this.o<e.o?t:this.o>e.o?r:0}debug(){return(this.negative?"+":"-")+Ng(o,Xm,"m",eC).call(o,this.i)+Ng(o,Xm,"m",eC).call(o,this.o)+"*2^"+this.exponent()}static fromNumber(e){if(isNaN(e))return o.NaN;if(!isFinite(e))return e<0?o.ue:o.ce;if(0===e)return 0<Math.sign(1/e)?o.le:o.Ee;var t=new DataView(new ArrayBuffer(8)),t=(t.setFloat64(0,e),t.getBigUint64(0));let r=BigInt.asUintN(64,t<<12n),n=2047&Number(t>>52n);if(0===n){let e=h.te(r);r=e<63?r<<BigInt(e+1):0n,n=-e}return new o(e<0,Ng(o,Xm,"m",nC).call(o,n-1023),r,0n)}static fromString(n){if("NaN"===n)return o.NaN;if("-Infinity"===n)return o.ue;if("Infinity"===n||"+Infinity"===n)return o.ce;var t=new Array(n.length).fill(0);let i=0,r=0,s=0,e=!1;for("-"===n[i]?(e=!0,i++):"+"===n[i]&&i++;Ng(o,Xm,"m",tC).call(o,n,i);)t[r++]=Ng(o,Xm,"m",rC).call(o,n,i++);if("."===n[i]){let e=++i;for(;Ng(o,Xm,"m",tC).call(o,n,i);)t[r++]=Ng(o,Xm,"m",rC).call(o,n,i++);s=e-i}if("e"===n[i]||"E"===n[i]){let e=0,t=1,r=("-"===n[++i]?(t=-1,i++):"+"===n[i]&&i++,i);for(;Ng(o,Xm,"m",tC).call(o,n,i);)if(e=10*e+Ng(o,Xm,"m",rC).call(o,n,i++),9<i-r)throw new Error("Exponent too large "+n);if(i===r)throw new Error("Invalid number "+n);s+=e*t}if(0===r||i!==n.length)throw new Error("Invalid number "+n);var a=h.I(t.slice(0,r),s);return new o(e,a.exponent,a.i,a.o)}}Xm=o,eC=function(e){return e.toString(16).padStart(16,"0")},tC=function(e,t){var r=e.codePointAt(t);return void 0!==r&&48<=r&&r<=57},rC=function(e,t){return e.codePointAt(t)-48},nC=function(e){return e+h.U},Zm={value:Number(h.m)},o.le=new o(!1,0,0n,0n),o.Ee=new o(!0,0,0n,0n),o.NaN=new o(!1,Ng(o,Xm,"f",Zm),1n<<63n,0n),o.ue=new o(!0,Ng(o,Xm,"f",Zm),0n,0n),o.ce=new o(!1,Ng(o,Xm,"f",Zm),0n,0n),new o(!0,Ng(o,Xm,"m",nC).call(o,63),0n,0n),new o(!1,Ng(o,Xm,"m",nC).call(o,0),0n,0n),new o(!0,Ng(o,Xm,"m",nC).call(o,0),0n,0n);let gv=-1;function mv(e){return null==e}function Cv(e){return 0===e&&1/e==-1/0}function vv(e){return"number"==typeof e&&Number.isInteger(e)&&!Cv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}function _v(e){return"string"==typeof e}let yv="__type__",wv="__vector__",Ev="value",bv="__min__",Dv="__max__",Iv="__regex__",Tv="pattern",Sv="options",Nv="__oid__",kv="__int__",Av="__decimal128__",Rv="__request_timestamp__",Ov="seconds",xv="increment",Pv="__binary__",Fv={nullValue:"NULL_VALUE"},Lv={mapValue:{fields:{__type__:{stringValue:Dv}}}},Mv={mapValue:{fields:{[yv]:{stringValue:wv},[Ev]:{arrayValue:{}}}}},Uv={mapValue:{fields:{[bv]:{nullValue:"NULL_VALUE"}}}},Vv={mapValue:{fields:{[Dv]:{nullValue:"NULL_VALUE"}}}},Gv={mapValue:{fields:{[Nv]:{stringValue:""}}}},Hv={mapValue:{fields:{[Rv]:{mapValue:{fields:{[Ov]:{integerValue:0},[xv]:{integerValue:0}}}}}}},qv={mapValue:{fields:{[Iv]:{mapValue:{fields:{[Tv]:{stringValue:""},[Sv]:{stringValue:""}}}}}}},jv=((ar=a=a||{}).he="regexValue",ar.Te="bsonObjectIdValue",ar.Pe="int32Value",ar.Ie="decimal128Value",ar.Re="bsonTimestampValue",ar.Ae="bsonBinaryValue",ar.Ve="minKeyValue",ar.de="maxKeyValue",ar.fe="maxValue",ar.me="vectorValue",ar.pe="serverTimestampValue",ar.ge="regularMapValue",{[wv]:a.me,[Dv]:a.fe,server_timestamp:a.pe}),Kv={[Iv]:a.he,[Nv]:a.Te,[kv]:a.Pe,[Av]:a.Ie,[Rv]:a.Re,[Pv]:a.Ae,[bv]:a.Ve,[Dv]:a.de},zv=new Set(Object.values(Kv)),Jv={booleanValue:!0},Wv={booleanValue:!1};function Qv(e){if("nullValue"in e)return 0;if("booleanValue"in e)return 2;if("integerValue"in e||"doubleValue"in e)return 3;if("timestampValue"in e)return 4;if("stringValue"in e)return 7;if("bytesValue"in e)return 8;if("referenceValue"in e)return 9;if("geoPointValue"in e)return 11;if("arrayValue"in e)return 13;if(!("mapValue"in e))return I(28295,{value:e});switch(b_(e)){case a.pe:return 6;case a.fe:return 9007199254740991;case a.me:return 14;case a.he:return 12;case a.Te:return 10;case a.Pe:case a.Ie:return 3;case a.Re:return 5;case a.Ae:return 8;case a.Ve:return 1;case a.de:return 16;default:return 15}}function Yv(r,n,i){if(r===n)return!0;var t,s,a,o,e=Qv(r);if(e!==Qv(n))return!1;switch(e){case 0:case 9007199254740991:case 16:case 1:return!0;case 2:return r.booleanValue===n.booleanValue;case 6:return dv(r).isEqual(dv(n));case 4:return s=n,"string"==typeof(t=r).timestampValue&&"string"==typeof s.timestampValue&&t.timestampValue.length===s.timestampValue.length?t.timestampValue===s.timestampValue:(a=nv(t.timestampValue),o=nv(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 7:return r.stringValue===n.stringValue;case 8:return 0===l_(r,n);case 9:return r.referenceValue===n.referenceValue;case 11:return t=n,iv((s=r).geoPointValue.latitude)===iv(t.geoPointValue.latitude)&&iv(s.geoPointValue.longitude)===iv(t.geoPointValue.longitude);case 3:{var l=r;var u=n;var h=i;if(m_(l)&&m_(u))return 0===r_(l,u);if("integerValue"in l&&"integerValue"in u||C_(l)&&C_(u))return Zv(l)===Zv(u);let e,t;if("doubleValue"in l&&"doubleValue"in u)e=iv(l.doubleValue),t=iv(u.doubleValue);else{if(!h?.ye)return!1;e=iv(l.integerValue??l.doubleValue),t=iv(u.integerValue??u.doubleValue)}return e===t?!!h?.we||Cv(e)===Cv(t):!(void 0!==h&&!h.be)&&isNaN(e)&&isNaN(t);return}case 13:return DC(r.arrayValue.values||[],n.arrayValue.values||[],(e,t)=>Yv(e,t,i));case 14:case 15:var c=r,l=n,d=i,B=c.mapValue.fields||{},p=l.mapValue.fields||{};if(UC(B)!==UC(p))return!1;for(let e in B)if(B.hasOwnProperty(e)&&(void 0===p[e]||!Yv(B[e],p[e],d)))return!1;return!0;case 5:return 0===a_(r,n);case 12:return 0===u_(r,n);case 10:return 0===h_(r,n);default:return I(52216,{left:r})}}function $v(e,t){return void 0!==(e.values||[]).find(e=>Yv(e,t))}function Xv(e,n){if(e===n)return 0;var i,s,a,o,l=Qv(e),t=Qv(n);if(l!==t)return S(l,t);switch(l){case 0:case 1:case 16:case 9007199254740991:return 0;case 2:return S(e.booleanValue,n.booleanValue);case 3:return t_(e,n);case 4:return i_(e.timestampValue,n.timestampValue);case 6:return i_(dv(e),dv(n));case 7:return yC(e.stringValue,n.stringValue);case 8:return l_(e,n);case 9:var u=e.referenceValue,h=n.referenceValue,c=u.split("/"),d=h.split("/");for(let t=0;t<c.length&&t<d.length;t++){let e=S(c[t],d[t]);if(0!==e)return e}return S(c.length,d.length);case 11:return u=e.geoPointValue,h=n.geoPointValue,0!==(o=S(iv(u.latitude),iv(h.latitude)))?o:S(iv(u.longitude),iv(h.longitude));case 13:return s_(e.arrayValue,n.arrayValue);case 14:return B=e.mapValue,i=n.mapValue,o=B.fields||{},s=i.fields||{},o=o[Ev]?.arrayValue,s=s[Ev]?.arrayValue,0!==(a=S(o?.values?.length||0,s?.values?.length||0))?a:s_(o,s);case 15:var B=e.mapValue,p=n.mapValue;if(B===Lv.mapValue&&p===Lv.mapValue)return 0;if(B===Lv.mapValue)return 1;if(p===Lv.mapValue)return-1;var f=B.fields||{},g=Object.keys(f),m=p.fields||{},C=Object.keys(m);g.sort(),C.sort();for(let r=0;r<g.length&&r<C.length;++r){let e=yC(g[r],C[r]);if(0!==e)return e;var v=Xv(f[g[r]],m[C[r]]);if(0!==v)return v}return S(g.length,C.length);case 5:return a_(e,n);case 12:return u_(e,n);case 10:return h_(e,n);default:throw I(23264,{Se:l})}}function Zv(e){return iv(C_(e)?e.mapValue.fields[kv].integerValue:e.integerValue||e.doubleValue)}function e_(e){return e.mapValue.fields[Av].stringValue}function t_(e,t){var r,n;return m_(e)||m_(t)?r_(e,t):(r=Zv(e),n=Zv(t),isNaN(r)?isNaN(n)?0:-1:isNaN(n)?1:S(r,n))}function r_(e,t){var r=n_(e),n=n_(t);return r.oe()&&n.oe()?0:r.isNaN()?n.isNaN()?0:-1:n.isNaN()?1:r.compareTo(n)}function n_(e){return m_(e)?o.fromString(e_(e)):o.fromNumber(Zv(e))}function i_(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?S(e,t):(r=nv(e),n=nv(t),0!==(i=S(r.seconds,n.seconds))?i:S(r.nanos,n.nanos))}function s_(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Xv(r[i],n[i]);if(void 0!==e&&0!==e)return e}return S(r.length,n.length)}function a_(e,t){var r=e.mapValue.fields?.[Rv].mapValue?.fields?.[Ov],n=t.mapValue.fields?.[Rv].mapValue?.fields?.[Ov],i=e.mapValue.fields?.[Rv].mapValue?.fields?.[xv],s=t.mapValue.fields?.[Rv].mapValue?.fields?.[xv],r=t_(r,n);return 0!==r?r:t_(i,s)}function o_(e){if("bytesValue"in e)return{subtype:0,bytes:sv(e.bytesValue)};var t=((e.mapValue?.fields)?.[Pv])?.bytesValue;if(!t)throw new Error("Received incorrect value for BsonBinaryData");t=sv(t).toUint8Array();if(0===t.length)throw new Error("Received empty bytesValue for BsonBinaryData");var r=t[0],t=t.slice(1);return{subtype:r,bytes:tv.fromUint8Array(t)}}function l_(e,t){var r=o_(e),n=o_(t);return r.subtype!==n.subtype?r.subtype<n.subtype?-1:1:r.bytes.compareTo(n.bytes)}function u_(e,t){var r=e.mapValue.fields,n=r?.[Iv]?.mapValue?.fields?.[Tv]?.stringValue??"",r=r?.[Iv]?.mapValue?.fields?.[Sv]?.stringValue??"",i=t.mapValue.fields,s=i?.[Iv]?.mapValue?.fields?.[Tv]?.stringValue??"",i=i?.[Iv]?.mapValue?.fields?.[Sv]?.stringValue??"",n=yC(n,s);return 0!==n?n:S(r,i)}function h_(e,t){return yC(e.mapValue.fields?.[Nv]?.stringValue??"",t.mapValue.fields?.[Nv]?.stringValue??"")}function c_(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=nv(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>sv(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>A.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):I(61005,{value:e})}(e)}function d_(e){switch(Qv(e)){case 0:case 2:return 4;case 3:return m_(e)?16:8;case 4:case 11:return 16;case 6:var t=cv(e);return t?16+d_(t):16;case 7:return 2*e.stringValue.length;case 8:return"bytesValue"in e?sv(e.bytesValue).approximateByteSize():B_(e.mapValue);case 9:return e.referenceValue.length;case 13:return(e.arrayValue.values||[]).reduce((e,t)=>e+d_(t),0);case 14:case 15:case 12:case 10:case 5:case 1:case 16:return B_(e.mapValue);default:throw I(13486,{value:e})}}function B_(e){let r=0;return VC(e.fields,(e,t)=>{r+=e.length+d_(t)}),r}function p_(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function f_(e){return!!e&&"integerValue"in e}function g_(e){return!!e&&"doubleValue"in e}function m_(e){var t;return!!e.mapValue?.fields&&1===UC(t=e.mapValue.fields)&&t[Av]&&!!t[Av].stringValue}function C_(e){var t;return!!e.mapValue?.fields&&1===UC(t=e.mapValue.fields)&&void 0!==t[kv]?.integerValue}function v_(e){return f_(e)||g_(e)||e&&C_(e)||e&&m_(e)}function __(e){return!!e&&"arrayValue"in e}function y_(e){return e&&"nullValue"in e}function w_(e){return g_(e)&&isNaN(Number(e.doubleValue))||m_(e)&&"NaN"===e_(e)}function E_(e){return e&&"mapValue"in e}function b_(e){if(!e.mapValue?.fields)return a.ge;var t=e.mapValue.fields,r=t[yv]?.stringValue;if(r&&jv[r])return jv[r];if(1!==UC(t))return a.ge;{let e=Object.keys(t);return Kv[e[0]]??a.ge}}function D_(e){return(e?.mapValue?.fields||{})[yv]?.stringValue===wv}function I_(e){return(e?.mapValue?.fields||{})[Ev]?.arrayValue}function T_(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return VC(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=T_(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=T_(t.arrayValue.values[e]);return r}return{...t}}function S_(e,t){var r=Xv(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function N_(e,t){var r=Xv(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class k_{constructor(e){this.value=e}static empty(){return new k_({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!E_(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()]=T_(t)}setAll(e){let r=LC.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()]=T_(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());E_(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Yv(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)];E_(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){VC(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new k_(T_(this.value))}}function A_(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:Cv(t)?"-0":t}}function R_(e){return{integerValue:""+e}}function O_(e,t){return vv(t)?R_(t):A_(e,t)}class x_{constructor(){this._=void 0}}function P_(e,t){return e instanceof H_?v_(t)?t:{integerValue:0}:null}class F_ extends x_{}class L_ extends x_{constructor(e){super(),this.elements=e}}function M_(e,t){var r=z_(t);for(let t of e.elements)r.some(e=>Yv(e,t))||r.push(t);return{arrayValue:{values:r}}}class U_ extends x_{constructor(e){super(),this.elements=e}}function V_(e,t){let r=z_(t);for(let t of e.elements)r=r.filter(e=>!Yv(e,t));return{arrayValue:{values:r}}}class G_ extends x_{constructor(e,t){super(),this.serializer=e,this.xe=t}}class H_ extends G_{}class q_ extends G_{}class j_ extends G_{}function K_(e){return f_(e)?iv(e.integerValue):g_(e)?iv(e.doubleValue):C_(e)?iv(e.mapValue.fields[kv].integerValue):m_(e)?parseFloat(e.mapValue.fields[Av].stringValue):0}function z_(e){return __(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class J_{constructor(e,t){this.field=e,this.transform=t}}class W_{constructor(e,t){this.version=e,this.transformResults=t}}class Q_{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new Q_}static exists(e){return new Q_(void 0,e)}static updateTime(e){return new Q_(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 Y_(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class $_{}function X_(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new ay(e.key,Q_.none()):new ty(e.key,e.data,Q_.none());{var n,i=e.data,s=k_.empty();let t=new kC(LC.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 ry(e.key,s,new MC(t.toArray()),Q_.none())}}function Z_(e,t,r,n){return e instanceof ty?(s=t,a=r,o=n,Y_((i=e).precondition,s)?(l=i.value.clone(),u=sy(i.fieldTransforms,o,s),l.setAll(u),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof ry?(i=t,o=r,s=n,Y_((a=e).precondition,i)?(u=sy(a.fieldTransforms,s,i),(l=i.data).setAll(ny(a)),l.setAll(u),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,Y_(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,u}function ey(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&&DC(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof L_&&t instanceof L_||e instanceof U_&&t instanceof U_?DC(e.elements,t.elements,Yv):e instanceof H_&&t instanceof H_||e instanceof q_&&t instanceof q_||e instanceof j_&&t instanceof j_?Yv(e.xe,t.xe):e instanceof F_&&t instanceof F_)))))&&(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 ty extends $_{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 ry extends $_{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 ny(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 iy(e,t,r){var n,i,s,a=new Map;T(e.length===r.length,32656,{ve:r.length,De:e.length});for(let h=0;h<r.length;h++){var o=e[h],l=o.transform,u=t.data.field(o.field);a.set(o.field,(n=l,i=u,s=r[h],n instanceof L_?M_(n,i):n instanceof U_?V_(n,i):s))}return a}function sy(e,r,n){var i,s,a,o,l,u,h,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,h=u=l=void 0,s instanceof F_?(o=o,u=a,h={fields:{[ov]:{stringValue:av},[uv]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(u=u&&hv(u)?cv(u):u)&&(h.fields[lv]=u),{mapValue:h}):s instanceof L_?M_(s,a):s instanceof U_?V_(s,a):s instanceof H_?(h=P_(o=s,a),l=K_(h)+K_(o.xe),m_(h)||m_(o.xe)?{mapValue:{fields:{[Av]:{stringValue:l.toString()}}}}:C_(h)?g_(o.xe)?{doubleValue:l}:f_(o.xe)?{integerValue:l.toString()}:{mapValue:{fields:{[kv]:R_(l)}}}:f_(h)&&(f_(o.xe)||C_(o.xe))?R_(l):A_(o.serializer,l)):s instanceof q_?(u=s,!v_(o=a)||w_(u.xe)||!w_(o)&&t_(u.xe,o)<0?u.xe:o):s instanceof j_?(o=s,!v_(s=a)||w_(o.xe)||!w_(s)&&0<t_(o.xe,s)?o.xe:s):void 0))}return c}class ay extends $_{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class oy extends $_{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class ly{constructor(e,t){this.position=e,this.inclusive=t}}function uy(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()?A.comparator(A.fromName(s.referenceValue),r.key):Xv(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function hy(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(!Yv(e.position[r],t.position[r]))return!1;return!0}class cy{}class dy extends cy{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 _y(e,t,r):"array-contains"===t?new by(e,r):"in"===t?new Dy(e,r):"not-in"===t?new Iy(e,r):"array-contains-any"===t?new Ty(e,r):new dy(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?yy:wy)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Xv(t,this.value)):null!==t&&Qv(this.value)===Qv(t)&&this.matchesComparison(Xv(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 I(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class By extends cy{constructor(e,t){super(),this.filters=e,this.op=t,this.Ce=null}static create(e,t){return new By(e,t)}matches(t){return py(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Ce&&(this.Ce=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Ce}getFilters(){return Object.assign([],this.filters)}}function py(e){return"and"===e.op}function fy(e){return"or"===e.op}function gy(e){return my(e)&&py(e)}function my(e){for(var t of e.filters)if(t instanceof By)return!1;return!0}function Cy(e,t){var r=e.filters.concat(t);return By.create(r,e.op)}function vy(e){return e instanceof dy?`${(t=e).field.canonicalString()} ${t.op} `+c_(t.value):e instanceof By?(t=e).op.toString()+" {"+t.getFilters().map(vy).join(" ,")+"}":"Filter";var t}class _y extends dy{constructor(e,t,r){super(e,t,r),this.key=A.fromName(r.referenceValue)}matches(e){var t=A.comparator(e.key,this.key);return this.matchesComparison(t)}}class yy extends dy{constructor(e,t){super(e,"in",t),this.keys=Ey(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class wy extends dy{constructor(e,t){super(e,"not-in",t),this.keys=Ey(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function Ey(e,t){return(t.arrayValue?.values||[]).map(e=>A.fromName(e.referenceValue))}class by extends dy{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return __(t)&&$v(t.arrayValue,this.value)}}class Dy extends dy{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&$v(this.value.arrayValue,t)}}class Iy extends dy{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!$v(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!$v(this.value.arrayValue,t)}}class Ty extends dy{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!__(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>$v(this.value.arrayValue,e))}}class Sy{constructor(e,t="asc"){this.field=e,this.dir=t}}class R{static fromTimestamp(e){return new R(e)}static min(){return new R(new ZC(0,0))}static max(){return new R(new ZC(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}}class Ny{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 Ny(e,0,R.min(),R.min(),R.min(),k_.empty(),0)}static newFoundDocument(e,t,r,n){return new Ny(e,1,t,R.min(),r,n,0)}static newNoDocument(e,t){return new Ny(e,2,t,R.min(),R.min(),k_.empty(),0)}static newUnknownDocument(e,t){return new Ny(e,3,t,R.min(),R.min(),k_.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(R.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=k_.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=k_.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=R.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 Ny&&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 Ny(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}})`}}let ky=-1;class Ay{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Ry(e){return e.fields.find(e=>2===e.kind)}function Oy(e){return e.fields.filter(e=>2!==e.kind)}Ay.UNKNOWN_ID=-1;class xy{constructor(e,t){this.fieldPath=e,this.kind=t}}class Py{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Py(0,My.min())}}function Fy(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=R.fromTimestamp(1e9===n?new ZC(r+1,0):new ZC(r,n));return new My(r,A.empty(),t)}function Ly(e){return new My(e.readTime,e.key,ky)}class My{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new My(R.min(),A.empty(),ky)}static max(){return new My(R.max(),A.empty(),ky)}}function Uy(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=A.comparator(e.documentKey,t.documentKey))?r:S(e.largestBatchId,t.largestBatchId)}class Vy{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.Fe=null}}function Gy(e,t=null,r=[],n=[],i=null,s=null,a=null){return new Vy(e,t,r,n,i,s,a)}function Hy(e){var t=e;if(null===t.Fe){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 dy?e.field.canonicalString()+e.op.toString()+c_(e.value):gy(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(","),mv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>c_(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>c_(e)).join(",")),t.Fe=e}return t.Fe}function qy(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 dy?(r=e,(s=t)instanceof dy&&r.op===s.op&&r.field.isEqual(s.field)&&Yv(r.value,s.value)):e instanceof By?(r=e,(i=t)instanceof By&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void I(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!hy(e.startAt,t.startAt)&&hy(e.endAt,t.endAt)}function jy(e){return e.isCorePipeline}function Ky(e){return!!e.path&&A.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function zy(e,t){return e.filters.filter(e=>e instanceof dy&&e.field.isEqual(t))}function Jy(e,r,n){let i=Fv,s=!0;for(let n of zy(e,r)){let e=Fv,t=!0;switch(n.op){case"<":case"<=":e=(e=>{if("nullValue"in e)return Fv;if("booleanValue"in e)return{booleanValue:!1};if("integerValue"in e||"doubleValue"in e)return{doubleValue:NaN};if("timestampValue"in e)return{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}};if("stringValue"in e)return{stringValue:""};if("bytesValue"in e)return{bytesValue:""};if("referenceValue"in e)return p_(fv.empty(),A.empty());if("geoPointValue"in e)return{geoPointValue:{latitude:-90,longitude:-180}};if("arrayValue"in e)return{arrayValue:{}};if(!("mapValue"in e))return I(35942,{value:e});switch(b_(e)){case a.me:return Mv;case a.Te:return Gv;case a.Re:return Hv;case a.Ae:return{bytesValue:""};case a.he:return qv;case a.Pe:case a.Ie:return{doubleValue:NaN};case a.Ve:return Uv;case a.de:return Vv;default:return{mapValue:{}}}})(n.value);break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Uv}S_({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];S_({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Wy(e,r,n){let i=Lv,s=!0;for(let n of zy(e,r)){let e=Lv,t=!0;switch(n.op){case">=":case">":e=(e=>{if("nullValue"in e)return Uv;if("booleanValue"in e)return{doubleValue:NaN};if("integerValue"in e||"doubleValue"in e)return{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}};if("timestampValue"in e)return Hv;if("stringValue"in e)return{bytesValue:""};if("bytesValue"in e)return p_(fv.empty(),A.empty());if("referenceValue"in e)return Gv;if("geoPointValue"in e)return qv;if("arrayValue"in e)return Mv;if(!("mapValue"in e))return I(61959,{value:e});switch(b_(e)){case a.me:return{mapValue:{}};case a.Te:return{geoPointValue:{latitude:-90,longitude:-180}};case a.Re:return{stringValue:""};case a.Ae:return p_(fv.empty(),A.empty());case a.he:return{arrayValue:{}};case a.Pe:case a.Ie:return{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}};case a.Ve:return{booleanValue:!1};case a.de:return Lv;default:return Vv}})(n.value),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=Vv}0<N_({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}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<N_({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Qy{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.Oe=null,this.Me=null,this.Ne=null,this.startAt,this.endAt}}function Yy(e,t,r,n,i,s,a,o){return new Qy(e,t,r,n,i,s,a,o)}function $y(e){return new Qy(e)}function Xy(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 Zy(e){return null!==e.collectionGroup}function ew(e){let n=e;if(null===n.Oe){n.Oe=[];let t=new Set;for(var i of n.explicitOrderBy)n.Oe.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 kC(LC.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.Oe.push(new Sy(e,r))}),t.has(LC.keyField().canonicalString())||n.Oe.push(new Sy(LC.keyField(),r))}return n.Oe}function tw(e){var t=e;return t.Me||(t.Me=((e,t)=>{if("F"===e.limitType)return Gy(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 Sy(e.field,t)});var r=e.endAt?new ly(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new ly(e.startAt.position,e.startAt.inclusive):null;return Gy(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,ew(e))),t.Me}function rw(e,t){var r=e.filters.concat([t]);return new Qy(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function nw(e,t,r){return new Qy(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function iw(e,t){return qy(tw(e),tw(t))&&e.limitType===t.limitType}function sw(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=>vy(e)).join(", ")}]`),mv(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=>c_(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>c_(e)).join(","):t})`})(tw(e))}; limitType=${e.limitType})`}function aw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):A.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of ew(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return!1;return!0})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return!1;return!0})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=ew(s),i=uy(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=ew(s),i=uy(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function ow(e){return(t,r)=>{let n=!1;for(var i of ew(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?A.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Xv(n,i):I(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return I(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class lw{constructor(e,t){this.count=e,this.unchangedNames=t}}function uw(e){switch(e){case N.OK:return I(64938);case N.CANCELLED:case N.UNKNOWN:case N.DEADLINE_EXCEEDED:case N.RESOURCE_EXHAUSTED:case N.INTERNAL:case N.UNAVAILABLE:case N.UNAUTHENTICATED:return!1;case N.INVALID_ARGUMENT:case N.NOT_FOUND:case N.ALREADY_EXISTS:case N.PERMISSION_DENIED:case N.FAILED_PRECONDITION:case N.ABORTED:case N.OUT_OF_RANGE:case N.UNIMPLEMENTED:case N.DATA_LOSS:return!0;default:return I(15467,{code:e})}}function hw(e){if(void 0===e)return gC("GRPC error has no .code"),N.UNKNOWN;switch(e){case iC.OK:return N.OK;case iC.CANCELLED:return N.CANCELLED;case iC.UNKNOWN:return N.UNKNOWN;case iC.DEADLINE_EXCEEDED:return N.DEADLINE_EXCEEDED;case iC.RESOURCE_EXHAUSTED:return N.RESOURCE_EXHAUSTED;case iC.INTERNAL:return N.INTERNAL;case iC.UNAVAILABLE:return N.UNAVAILABLE;case iC.UNAUTHENTICATED:return N.UNAUTHENTICATED;case iC.INVALID_ARGUMENT:return N.INVALID_ARGUMENT;case iC.NOT_FOUND:return N.NOT_FOUND;case iC.ALREADY_EXISTS:return N.ALREADY_EXISTS;case iC.PERMISSION_DENIED:return N.PERMISSION_DENIED;case iC.FAILED_PRECONDITION:return N.FAILED_PRECONDITION;case iC.ABORTED:return N.ABORTED;case iC.OUT_OF_RANGE:return N.OUT_OF_RANGE;case iC.UNIMPLEMENTED:return N.UNIMPLEMENTED;case iC.DATA_LOSS:return N.DATA_LOSS;default:return I(39323,{code:e})}}(e=iC=iC||{})[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";class cw{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){VC(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return GC(this.inner)}size(){return this.innerSize}}let dw=new TC(A.comparator);let Bw=new TC(A.comparator);function pw(...e){let t=Bw;for(var r of e)t=t.insert(r.key,r);return t}function fw(e){let r=Bw;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function gw(){return new cw(e=>e.toString(),(e,t)=>e.isEqual(t))}let mw=new TC(A.comparator),Cw=new kC(A.comparator);function O(...e){let t=Cw;for(var r of e)t=t.add(r);return t}let vw=new kC(S);function _w(){return new TextEncoder}let yw=new Ig([4294967295,4294967295],0);function ww(e){var t=_w().encode(e),r=new Tg;return r.update(t),new Uint8Array(r.digest())}function Ew(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 Ig([r,n],0),new Ig([i,t],0)]}class bw{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new Dw("Invalid padding: "+t);if(r<0)throw new Dw("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new Dw("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new Dw("Invalid padding when bitmap length is 0: "+t);this.Be=8*e.length-t,this.Le=Ig.fromNumber(this.Be)}$e(e,t,r){let n=e.add(t.multiply(Ig.fromNumber(r)));return(n=1===n.compare(yw)?new Ig([n.getBits(0),n.getBits(1)],0):n).modulo(this.Le).toNumber()}Ue(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Be)return!1;let t=ww(e),[r,n]=Ew(t);for(let i=0;i<this.hashCount;i++){let e=this.$e(r,n,i);if(!this.Ue(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 bw(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.Be){let e=ww(i),[t,r]=Ew(e);for(let n=0;n<this.hashCount;n++){let e=this.$e(t,r,n);this.ke(e)}}}ke(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class Dw extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Iw{constructor(e,t,r,n,i,s){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.augmentedDocumentUpdates=i,this.resolvedLimboDocuments=s}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,Tw.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Iw(R.min(),n,new TC(S),dw,dw,O())}}class Tw{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 Tw(r,t,O(),O(),O())}}class Sw{constructor(e,t,r,n){this.Qe=e,this.removedTargetIds=t,this.key=r,this.qe=n}}class Nw{constructor(e,t){this.targetId=e,this.Ke=t}}class kw{constructor(e,t,r=tv.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Aw{constructor(e){this.targetId=e,this.We=0,this.Ge=Pw(),this.je=tv.EMPTY_BYTE_STRING,this.ze=!1,this.He=!0}get current(){return this.ze}get resumeToken(){return this.je}get Je(){return 0!==this.We}get Ye(){return this.He}Ze(e){0<e.approximateByteSize()&&(this.He=!0,this.je=e)}Xe(){let r=O(),n=O(),i=O();return this.Ge.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:I(38017,{changeType:t})}}),new Tw(this.je,this.ze,r,n,i)}et(){this.He=!1,this.Ge=Pw()}tt(e,t){this.He=!0,this.Ge=this.Ge.insert(e,t)}nt(e){this.He=!0,this.Ge=this.Ge.remove(e)}rt(){this.We+=1}it(){--this.We,T(0<=this.We,3241,{We:this.We,targetId:this.targetId})}st(){this.He=!0,this.ze=!0}}let Rw="WatchChangeAggregator";class Ow{constructor(e){this._t=e,this.ot=new Map,this.ut=dw,this.ct=xw(),this.lt=dw,this.Et=xw(),this.ht=new TC(S)}Tt(e){for(var t of e.Qe)e.qe&&e.qe.isFoundDocument()?this.Pt(t,e.qe):this.It(t,e.key,e.qe);for(var r of e.removedTargetIds)this.It(r,e.key,e.qe)}Rt(r){this.forEachTarget(r,e=>{var t=this.ot.get(e);if(t)switch(r.state){case 0:this.At(e)&&t.Ze(r.resumeToken);break;case 1:t.it(),t.Je||t.et(),t.Ze(r.resumeToken);break;case 2:t.it(),t.Je||this.removeTarget(e);break;case 3:this.At(e)&&(t.st(),t.Ze(r.resumeToken));break;case 4:this.At(e)&&(this.Vt(e),t.Ze(r.resumeToken));break;default:I(56790,{state:r.state})}else p(Rw,`handleTargetChange received targetChange for untracked target ID (${e}) with state (${r.state})`)})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.ot.forEach((e,t)=>{this.At(t)&&r(t)})}dt(e){return jy(e)?"documents"===e.getPipelineSourceType()&&1===e.getPipelineDocuments()?.length:Ky(e)}ft(n){let i=n.targetId,e=n.Ke.count,t=this.gt(i);if(t){var r=t.target;if(this.dt(r))if(0===e){let e=new A(jy(r)?PC.fromString(r.getPipelineDocuments()[0]):r.path);this.It(i,e,Ny.newNoDocument(e,R.min()))}else T(1===e,20013,"Single document existence filter with count: "+e);else{let r=this.yt(i);if(r!==e){let e=this.wt(n),t=e?this.bt(e,n,r):1;if(0!==t){this.Vt(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.ht=this.ht.insert(i,e)}}}}}wt(e){var t=e.Ke.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=sv(t).toUint8Array()}catch(e){if(e instanceof ev)return mC("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 bw(i,r,n)}catch(e){return mC(e instanceof Dw?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.Be?null:s}bt(e,t,r){return t.Ke.count===r-this.vt(e,t.targetId)?0:2}vt(r,n){var e=this._t.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this._t.xt(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.It(n,e,null),i++)}),i}Dt(i){let t=new Map,n=(this.ot.forEach((e,r)=>{var n=this.gt(r);if(n){if(e.current&&this.dt(n.target)){let e=jy(n.target)?PC.fromString(n.target.getPipelineDocuments()[0]):n.target.path,t=new A(e);this.Ct(t).has(r)||this.Ft(r,t)||this.It(r,t,Ny.newNoDocument(t,i))}e.Ye&&(t.set(r,e.Xe()),e.et())}}),O());this.Et.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.gt(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(n=n.add(e))}),this.ut.forEach((e,t)=>t.setReadTime(i)),this.lt.forEach((e,t)=>t.setReadTime(i));var e=new Iw(i,t,this.ht,this.ut,this.lt,n);return this.ut=dw,this.ct=xw(),this.lt=dw,this.Et=xw(),this.ht=new TC(S),e}Pt(e,t){var r,n=this.ot.get(e);n&&this.At(e)?(r=this.Ft(e,t.key)?2:0,n.tt(t.key,r),jy(this.gt(e).target)&&"exact"!==this.gt(e).target.getPipelineFlavor()?this.lt=this.lt.insert(t.key,t):this.ut=this.ut.insert(t.key,t),this.ct=this.ct.insert(t.key,this.Ct(t.key).add(e)),this.Et=this.Et.insert(t.key,this.Ot(t.key).add(e))):p(Rw,`addDocumentToTarget received document for unknown inactive target (${e})`)}It(e,t,r){var n=this.ot.get(e);n&&this.At(e)?(this.Ft(e,t)?n.tt(t,1):n.nt(t),this.Et=this.Et.insert(t,this.Ot(t).delete(e)),this.Et=this.Et.insert(t,this.Ot(t).add(e)),r&&(jy(this.gt(e).target)&&"exact"!==this.gt(e).target.getPipelineFlavor()?this.lt=this.lt.insert(t,r):this.ut=this.ut.insert(t,r))):p(Rw,`removeDocumentFromTarget received document for unknown or inactive target (${e})`)}removeTarget(e){this.ot.delete(e)}yt(e){var t=this.ot.get(e);return t?(t=t.Xe(),this._t.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size):0}rt(e){let t=this.ot.get(e);t||(p(Rw,"recordPendingTargetRequest set up tracking for target ID "+e),t=new Aw(e),this.ot.set(e,t)),t.rt()}Ot(e){let t=this.Et.get(e);return t||(t=new kC(S),this.Et=this.Et.insert(e,t)),t}Ct(e){let t=this.ct.get(e);return t||(t=new kC(S),this.ct=this.ct.insert(e,t)),t}At(e){var t=null!==this.gt(e);return t||p(Rw,"Detected inactive target",e),t}gt(e){var t=this.ot.get(e);return void 0===t||t.Je?null:this._t.Mt(e)}Vt(t){this.ot.set(t,new Aw(t)),this._t.getRemoteKeysForTarget(t).forEach(e=>{this.It(t,e,null)})}Ft(e,t){return this._t.getRemoteKeysForTarget(e).has(t)}}function xw(){return new TC(A.comparator)}function Pw(){return new TC(A.comparator)}let Fw={asc:"ASCENDING",desc:"DESCENDING"},Lw={"<":"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"},Mw={and:"AND",or:"OR"};class Uw{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Vw(e,t){return e.useProto3Json||mv(t)?t:{value:t}}function Gw(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 Hw(e){var t=nv(e);return new ZC(t.seconds,t.nanos)}function qw(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function jw(e,t){return Gw(e,t.toTimestamp())}function Kw(e){return T(!!e,49232),R.fromTimestamp(Hw(e))}function zw(e,t){return Jw(e,t).canonicalString()}function Jw(e,t){e=e;var r=new PC(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function Ww(e){var t=PC.fromString(e);return T(fE(t),10190,{key:t.toString()}),t}function Qw(e,t){return zw(e.databaseId,t.path)}function Yw(e,t){var r=Ww(t);if(r.get(1)!==e.databaseId.projectId)throw new k(N.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 k(N.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new A(eE(r))}function $w(e,t){return zw(e.databaseId,t)}function Xw(e){var t=Ww(e);return 4===t.length?PC.emptyPath():eE(t)}function Zw(e){return new PC(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function eE(e){return T(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function tE(e,t,r){return{name:Qw(e,t),fields:r.value.mapValue.fields}}function rE(e,t,r){var n=Yw(e,t.name),i=Kw(t.updateTime),s=t.createTime?Kw(t.createTime):R.min(),a=new k_({mapValue:{fields:t.fields}}),n=Ny.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function nE(e,t){let r;if(t instanceof ty)r={update:tE(e,t.key,t.value)};else if(t instanceof ay)r={delete:Qw(e,t.key)};else if(t instanceof ry)r={update:tE(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 oy))return I(16599,{Bt:t.type});r={verify:Qw(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof F_)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof L_)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof U_)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof H_)return{fieldPath:e.field.canonicalString(),increment:t.xe};if(t instanceof q_)return{fieldPath:e.field.canonicalString(),minimum:t.xe};if(t instanceof j_)return{fieldPath:e.field.canonicalString(),maximum:t.xe};throw I(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:jw(e,t.updateTime)}:void 0!==t.exists?{exists:t.exists}:I(27497))),r}function iE(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?Q_.updateTime(Kw(s.updateTime)):void 0!==s.exists?Q_.exists(s.exists):Q_.none():Q_.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)T("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new F_;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new L_(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new U_(e)}else"increment"in r?t=new H_(e,r.increment):"minimum"in r?t=new q_(e,r.minimum):"maximum"in r?t=new j_(e,r.maximum):I(16584,{proto:r});var n=LC.fromServerFormat(r.fieldPath);return new J_(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=Yw(i,t.update.name),l=new k_({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new MC(a.map(e=>LC.fromServerFormat(e)));return new ry(o,l,e,r,n)}return new ty(o,l,r,n)}if(t.delete){let e=Yw(i,t.delete);return new ay(e,r)}if(t.verify){let e=Yw(i,t.verify);return new oy(e,r)}return I(1463,{proto:t})}function sE(e,n){return e&&0<e.length?(T(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?Kw(t.updateTime):Kw(r);return e.isEqual(R.min())&&(e=Kw(r)),new W_(e,t.transformResults||[])}})):[]}function aE(e,t){return{documents:[$w(e,t.path)]}}function oE(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=$w(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof dy?(e=>{if("=="===e.op){if(w_(e.value))return{unaryFilter:{field:BE(e.field),op:"IS_NAN"}};if(y_(e.value))return{unaryFilter:{field:BE(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(w_(e.value))return{unaryFilter:{field:BE(e.field),op:"IS_NOT_NAN"}};if(y_(e.value))return{unaryFilter:{field:BE(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:BE(e.field),op:cE(e.op),value:e.value}}})(e):e instanceof By?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:dE(e.op),filters:t}}})(e):I(54877,{filter:e})}(By.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:BE((e=e).field),direction:(e=e.dir,Fw[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=Vw(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}),{Lt:r,parent:i}}function lE(e){let t=Xw(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){T(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=pE(i.unaryFilter.field);return dy.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=pE(i.unaryFilter.field);return dy.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=pE(i.unaryFilter.field);return dy.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=pE(i.unaryFilter.field);return dy.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return I(61313);default:return I(60726)}})(e):void 0!==e.fieldFilter?(e=>dy.create(pE(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 I(58110);default:return I(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>By.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return I(1026)}})(e.compositeFilter.op)))(e):I(30097,{filter:e})}(e))instanceof By&&gy(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new Sy(pE(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),u=(n.limit&&(l=(e=n.limit,mv(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(u=(e=n.startAt,i=!!e.before,r=e.values||[],new ly(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new ly(i,r))),Yy(t,s,o,a,l,"F",u,h)}function uE(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 I(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function hE(t,e){return{structuredPipeline:{pipeline:{stages:e.stages.map(e=>e._toProto(t))}}}}function cE(e){return Lw[e]}function dE(e){return Mw[e]}function BE(e){return{fieldPath:e.canonicalString()}}function pE(e){return LC.fromServerFormat(e.fieldPath)}function fE(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}function gE(e){return e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}function mE(r,e){let n={fields:{}};return e.forEach((e,t)=>{if("string"!=typeof t)throw new Error("Cannot encode map with non-string key: "+t);n.fields[t]=e._toProto(r)}),{mapValue:n}}function CE(e){return{stringValue:e}}function vE(e){return new Uw(e,!0)}class _E{constructor(e){this.value=e}isEqual(e){return this.value===e.value}}class yE{constructor(e,t){if(this.seconds=e,this.increment=t,!Number.isInteger(e)||e<0||4294967295<e)throw new Error("BsonTimestamp 'seconds' must be in the range of a 32-bit unsigned integer (0-4294967295).");if(!Number.isInteger(t)||t<0||4294967295<t)throw new Error("BsonTimestamp 'increment' must be in the range of a 32-bit unsigned integer (0-4294967295).")}isEqual(e){return this.seconds===e.seconds&&this.increment===e.increment}}class wE{constructor(e,t=0){if(this.subtype=t,!Number.isInteger(t)||t<0||255<t)throw new k(N.INVALID_ARGUMENT,"The subtype for Bytes must be a value in the inclusive [0, 255] range.");this._byteString=e}static fromBase64String(e,t=0){try{return new wE(tv.fromBase64String(e),t)}catch(e){throw new k(N.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e,t=0){return new wE(tv.fromUint8Array(e),t)}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}get data(){return this.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+", subtype: "+this.subtype+")"}isEqual(e){return this.subtype===e.subtype&&this._byteString.isEqual(e._byteString)}toJSON(){var e={type:wE._jsonSchemaVersion,bytes:this.toBase64()};return 0!==this.subtype&&(e.subtype=this.subtype),e}static fromJSON(e){var t;if($C(e,wE._jsonSchema))return t=e.subtype??0,wE.fromBase64String(e.bytes,t)}}wE._jsonSchemaVersion="firestore/bytes/1.0",wE._jsonSchema={type:YC("string",wE._jsonSchemaVersion),bytes:YC("string"),subtype:{...YC("number"),optional:!0}};class EE{constructor(e){this.stringValue=e,this.value=o.fromString(e)}isEqual(e){return!(!this.value.oe()||!e.value.oe())||0===this.value.compareTo(e.value)}toJSON(){return{Ut:{stringValue:this.stringValue}}}}let bE=class{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new k(N.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new LC(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}};let DE=class{constructor(e){this._methodName=e}};class IE{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new k(N.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new k(N.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 S(this._lat,e._lat)||S(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:IE._jsonSchemaVersion}}static fromJSON(e){if($C(e,IE._jsonSchema))return new IE(e.latitude,e.longitude)}}IE._jsonSchemaVersion="firestore/geoPoint/1.0",IE._jsonSchema={type:YC("string",IE._jsonSchemaVersion),latitude:YC("number"),longitude:YC("number")};class TE{constructor(e){this.value=e}isEqual(e){return this.value===e.value}}class SE{constructor(){this.type="MaxKey"}static instance(){return SE.MAX_KEY_VALUE_INSTANCE||(SE.MAX_KEY_VALUE_INSTANCE=new SE),SE.MAX_KEY_VALUE_INSTANCE}}SE.MAX_KEY_VALUE_INSTANCE=null;class NE{constructor(){this.type="MinKey"}static instance(){return NE.MIN_KEY_VALUE_INSTANCE||(NE.MIN_KEY_VALUE_INSTANCE=new NE),NE.MIN_KEY_VALUE_INSTANCE}}NE.MIN_KEY_VALUE_INSTANCE=null;class kE{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}}kE.UNAUTHENTICATED=new kE(null),kE.GOOGLE_CREDENTIALS=new kE("google-credentials-uid"),kE.FIRST_PARTY=new kE("first-party-uid"),kE.MOCK_USER=new kE("mock-user");class AE{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class RE{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class OE{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(kE.UNAUTHENTICATED))}shutdown(){}}class xE{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 PE{constructor(e){this.kt=e,this.currentUser=kE.UNAUTHENTICATED,this.Qt=0,this.forceRefresh=!1,this.auth=null}start(t,r){T(void 0===this.qt,42304);let n=this.Qt,i=e=>this.Qt!==n?(n=this.Qt,r(e)):Promise.resolve(),s=new AE,a=(this.qt=()=>{this.Qt++,this.currentUser=this.Kt(),s.resolve(),s=new AE,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{p("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.qt&&(this.auth.addAuthTokenListener(this.qt),a())};this.kt.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.kt.getImmediate({optional:!0}))?o(e):(p("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new AE))},0),a()}getToken(){let t=this.Qt,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.Qt!==t?(p("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(T("string"==typeof e.accessToken,31837,{Wt:e}),new RE(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.qt&&this.auth.removeAuthTokenListener(this.qt),this.qt=void 0}Kt(){var e=this.auth&&this.auth.getUid();return T(null===e||"string"==typeof e,2055,{Gt:e}),new kE(e)}}class FE{constructor(e,t,r){this.jt=e,this.zt=t,this.Ht=r,this.type="FirstParty",this.user=kE.FIRST_PARTY,this.Jt=new Map}Yt(){return this.Ht?this.Ht():null}get headers(){this.Jt.set("X-Goog-AuthUser",this.jt);var e=this.Yt();return e&&this.Jt.set("Authorization",e),this.zt&&this.Jt.set("X-Goog-Iam-Authorization-Token",this.zt),this.Jt}}class LE{constructor(e,t,r){this.jt=e,this.zt=t,this.Ht=r}getToken(){return Promise.resolve(new FE(this.jt,this.zt,this.Ht))}start(e,t){e.enqueueRetryable(()=>t(kE.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class ME{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 UE{constructor(e,t){this.Zt=t,this.forceRefresh=!1,this.appCheck=null,this.Xt=null,this.en=null,Rt(e)&&e.settings.appCheckToken&&(this.en=e.settings.appCheckToken)}start(t,r){T(void 0===this.qt,3512);let n=e=>{null!=e.error&&p("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.Xt;return this.Xt=e.token,p("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.qt=e=>{t.enqueueRetryable(()=>n(e))},e=>{p("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.qt&&this.appCheck.addTokenListener(this.qt)});this.Zt.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.Zt.getImmediate({optional:!0}))?i(e):p("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.en?Promise.resolve(new ME(this.en)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(T("string"==typeof e.token,44558,{tokenResult:e}),this.Xt=e.token,new ME(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.qt&&this.appCheck.removeTokenListener(this.qt),this.qt=void 0}}function VE(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}class GE{tn(e){}shutdown(){}}let HE="ConnectivityMonitor";class qE{constructor(){this.nn=()=>this.rn(),this.sn=()=>this._n(),this.an=[],this.un()}tn(e){this.an.push(e)}shutdown(){window.removeEventListener("online",this.nn),window.removeEventListener("offline",this.sn)}un(){window.addEventListener("online",this.nn),window.addEventListener("offline",this.sn)}rn(){p(HE,"Network connectivity changed: AVAILABLE");for(var e of this.an)e(0)}_n(){p(HE,"Network connectivity changed: UNAVAILABLE");for(var e of this.an)e(1)}static cn(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let jE=null;function KE(){return null===jE?jE=268435456+Math.round(2147483648*Math.random()):jE++,"0x"+jE.toString(16)}let zE="RestConnection",JE={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class WE{constructor(e){this.fn=e.fn,this.mn=e.mn}pn(e){this.gn=e}yn(e){this.wn=e}bn(e){this.Sn=e}onMessage(e){this.xn=e}close(){this.mn()}send(e){this.fn(e)}vn(){this.gn()}Dn(){this.wn()}Cn(e){this.Sn(e)}Fn(e){this.xn(e)}}let QE="WebChannelConnection",YE=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};class $E extends class{get En(){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.hn=t+"://"+e.host,this.Tn=`projects/${r}/databases/`+n,this.Pn=this.databaseId.database===pv?"project_id="+r:`project_id=${r}&database_id=`+n}In(t,e,r,n,i){let s=KE(),a=this.Rn(t,e.toUriEncodedString());p(zE,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Tn,"x-goog-request-params":this.Pn},l=(this.An(o,n,i),new URL(a)).host,l=Ve(l);return this.Vn(t,a,o,r,l).then(e=>(p(zE,`Received RPC '${t}' ${s}: `,e),e),e=>{throw mC(zE,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}dn(e,t,r,n,i,s){return this.In(e,t,r,n,i)}An(r,t,n){if(r["X-Goog-Api-Client"]="gl-js/ fire/"+BC,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach((e,t)=>r[t]=e),n&&n.headers.forEach((e,t)=>r[t]=e),this.databaseInfo._customHeaders)for(let e of Object.keys(this.databaseInfo._customHeaders))r[e]=this.databaseInfo._customHeaders[e]}Rn(e,t){var r=JE[e];let n=this.hn+`/v1/${t}:`+r;return n=this.databaseInfo.apiKey?n+"?key="+encodeURIComponent(this.databaseInfo.apiKey):n}terminate(){}}{constructor(e){super(e),this.On=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}static Mn(){var e;$E.Nn||(e=Fg(),YE(e,Pg.STAT_EVENT,e=>{e.stat===xg.PROXY?p(QE,"STAT_EVENT: detected buffering proxy"):e.stat===xg.NOPROXY&&p(QE,"STAT_EVENT: detected no buffering proxy")}),$E.Nn=!0)}Vn(l,t,r,n,e){let u=KE();return new Promise((s,a)=>{let o=new kg;o.setWithCredentials(!0),o.listenOnce(Rg.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case Og.NO_ERROR:var e=o.getResponseJson();p(QE,`XHR for RPC '${l}' ${u} received:`,JSON.stringify(e)),s(e);break;case Og.TIMEOUT:p(QE,`RPC '${l}' ${u} timed out`),a(new k(N.DEADLINE_EXCEEDED,"Request time out"));break;case Og.HTTP_ERROR:var t=o.getStatus();if(p(QE,`RPC '${l}' ${u} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=(e=Array.isArray(e)?e[0]:e)?.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(N).indexOf(i)?i:N.UNKNOWN;a(new k(e,r.message))}else a(new k(N.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new k(N.UNAVAILABLE,"Connection failed."));break;default:I(9055,{Bn:l,streamId:u,Ln:o.getLastErrorCode(),$n:o.getLastError()})}}finally{p(QE,`RPC '${l}' ${u} completed.`)}var n,i});var e=JSON.stringify(n);p(QE,`RPC '${l}' ${u} sending request:`,n),o.send(t,"POST",e,r,15)})}Un(i,e,t){let s=KE(),r=[this.hn,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=this.createWebChannelTransport(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},o=this.longPollingOptions.timeoutSeconds;void 0!==o&&(a.longPollingTimeout=Math.round(1e3*o)),this.useFetchStreams&&(a.useFetchStreams=!0),this.An(a.initMessageHeaders,e,t),a.encodeInitMessageHeaders=!0;var l=r.join("");p(QE,`Creating RPC '${i}' stream ${s}: `+l,a);let u=n.createWebChannel(l,a),h=(this.kn(u),!1),c=!1,d=new WE({fn:e=>{c?p(QE,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(h||(p(QE,`Opening RPC '${i}' stream ${s} transport.`),u.open(),h=!0),p(QE,`RPC '${i}' stream ${s} sending:`,e),u.send(e))},mn:()=>u.close()});return YE(u,Ag.EventType.OPEN,()=>{c||(p(QE,`RPC '${i}' stream ${s} transport opened.`),d.vn())}),YE(u,Ag.EventType.CLOSE,()=>{c||(c=!0,p(QE,`RPC '${i}' stream ${s} transport closed`),d.Cn(),this.Qn(u))}),YE(u,Ag.EventType.ERROR,e=>{c||(c=!0,mC(QE,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),d.Cn(new k(N.UNAVAILABLE,"The operation could not be completed")))}),YE(u,Ag.EventType.MESSAGE,e=>{if(!c){var t=e.data[0],n=(T(!!t,16349),t),n=n?.error||n[0]?.error;if(n){p(QE,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=iC[e];if(void 0!==t)return hw(t)})(e),r=n.message;"NOT_FOUND"===e&&r.includes("database")&&r.includes("does not exist")&&r.includes(this.databaseId.database)&&mC(`Database '${this.databaseId.database}' not found. Please check your project configuration.`),void 0===t&&(t=N.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),c=!0,d.Cn(new k(t,r)),u.close()}else p(QE,`RPC '${i}' stream ${s} received:`,t),d.Fn(t)}}),$E.Mn(),setTimeout(()=>{d.Dn()},0),d}terminate(){this.On.forEach(e=>e.close()),this.On=[]}kn(e){this.On.push(e)}Qn(t){this.On=this.On.filter(e=>e===t)}An(e,t,r){super.An(e,t,r),this.databaseInfo.apiKey&&(e["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return Lg()}}$E.Nn=!1;class XE{constructor(e,t,r=1e3,n=1.5,i=6e4){this.qn=e,this.timerId=t,this.Kn=r,this.Wn=n,this.Gn=i,this.jn=0,this.zn=null,this.Hn=Date.now(),this.reset()}reset(){this.jn=0}Jn(){this.jn=this.Gn}Yn(e){this.cancel();var t=Math.floor(this.jn+this.Zn()),r=Math.max(0,Date.now()-this.Hn),n=Math.max(0,t-r);0<n&&p("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.jn} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.zn=this.qn.enqueueAfterDelay(this.timerId,n,()=>(this.Hn=Date.now(),e())),this.jn*=this.Wn,this.jn<this.Kn&&(this.jn=this.Kn),this.jn>this.Gn&&(this.jn=this.Gn)}Xn(){null!==this.zn&&(this.zn.skipDelay(),this.zn=null)}cancel(){null!==this.zn&&(this.zn.cancel(),this.zn=null)}Zn(){return(Math.random()-.5)*this.jn}}let ZE="PersistentStream";class e0{constructor(e,t,r,n,i,s,a,o){this.qn=e,this.er=r,this.tr=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.nr=0,this.rr=null,this.ir=null,this.stream=null,this.sr=0,this._r=new XE(e,t)}ar(){return 1===this.state||5===this.state||this.ur()}ur(){return 2===this.state||3===this.state}start(){this.sr=0,4!==this.state?this.auth():this.cr()}async stop(){this.ar()&&await this.close(0)}lr(){this.state=0,this._r.reset()}Er(){this.ur()&&null===this.rr&&(this.rr=this.qn.enqueueAfterDelay(this.er,6e4,()=>this.hr()))}Tr(e){this.Pr(),this.stream.send(e)}async hr(){if(this.ur())return this.close(0)}Pr(){this.rr&&(this.rr.cancel(),this.rr=null)}Ir(){this.ir&&(this.ir.cancel(),this.ir=null)}async close(e,t){this.Pr(),this.Ir(),this._r.cancel(),this.nr++,4!==e?this._r.reset():t&&t.code===N.RESOURCE_EXHAUSTED?(gC(t.toString()),gC("Using maximum backoff delay to prevent overloading the backend."),this._r.Jn()):t&&t.code===N.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.Rr(),this.stream.close(),this.stream=null),this.state=e,await this.listener.bn(t)}Rr(){}auth(){this.state=1;let e=this.Ar(this.nr),r=this.nr;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.nr===r&&this.Vr(e,t)},t=>{e(()=>{var e=new k(N.UNKNOWN,"Fetching auth token failed: "+t.message);return this.dr(e)})})}Vr(e,t){let r=this.Ar(this.nr);this.stream=this.mr(e,t),this.stream.pn(()=>{r(()=>this.listener.pn())}),this.stream.yn(()=>{r(()=>(this.state=2,this.ir=this.qn.enqueueAfterDelay(this.tr,1e4,()=>(this.ur()&&(this.state=3),Promise.resolve())),this.listener.yn()))}),this.stream.bn(e=>{r(()=>this.dr(e))}),this.stream.onMessage(e=>{r(()=>1==++this.sr?this.pr(e):this.onNext(e))})}cr(){this.state=5,this._r.Yn(async()=>{this.state=0,this.start()})}dr(e){return p(ZE,"close with error: "+e),this.stream=null,this.close(4,e)}Ar(t){return e=>{this.qn.enqueueAndForget(()=>this.nr===t?e():(p(ZE,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class t0 extends e0{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}mr(e,t){return this.connection.Un("Listen",e,t)}pr(e){return this.onNext(e)}onNext(e){this._r.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:I(39313,{state:l}),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(T(void 0===l||"string"==typeof l,58123),tv.fromBase64String(l||"")):(T(void 0===l||l instanceof Buffer||l instanceof Uint8Array,16193),tv.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?N.UNKNOWN:hw(l.code),new k(a,l.message||""));r=new kw(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,Yw(e,n.document.name)),s=Kw(n.document.updateTime),a=n.document.createTime?Kw(n.document.createTime):R.min(),o=new k_({mapValue:{fields:n.document.fields}}),i=Ny.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new Sw(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,Yw(e,n.document)),o=n.readTime?Kw(n.readTime):R.min(),i=Ny.newNoDocument(s,o),s=n.removedTargetIds||[];r=new Sw([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,Yw(e,o.document)),s=o.removedTargetIds||[];r=new Sw([],s,n,null)}else{if(!("filter"in t))return I(11601,{Nt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new lw(i,o),n=e.targetId;r=new Nw(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?Kw(r.readTime):R.min();return this.listener.gr(t,r)}yr(e){var t={},r=(t.database=Zw(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=jy(e)?{pipelineQuery:hE(t,e)}:Ky(e)?{documents:aE(t,e)}:{query:oE(t,e).Lt}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=qw(t,r.resumeToken);let e=Vw(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(R.min())){n.readTime=Gw(t,r.snapshotVersion.toTimestamp());let e=Vw(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),uE(this.serializer,e));r&&(t.labels=r),this.Tr(t)}wr(e){var t={};t.database=Zw(this.serializer),t.removeTarget=e,this.Tr(t)}}class r0 extends e0{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 br(){return 0<this.sr}start(){this.lastStreamToken=void 0,super.start()}Rr(){this.br&&this.Sr([])}mr(e,t){return this.connection.Un("Write",e,t)}pr(e){return T(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,T(!e.writeResults||0===e.writeResults.length,55816),this.listener.vr()}onNext(e){T(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this._r.reset();var t=sE(e.writeResults,e.commitTime),r=Kw(e.commitTime);return this.listener.Dr(r,t)}Cr(){var e={};e.database=Zw(this.serializer),this.Tr(e)}Sr(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>nE(this.serializer,e))};this.Tr(t)}}class n0 extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.Fr=!1}Or(){if(this.Fr)throw new k(N.FAILED_PRECONDITION,"The client has already been terminated.")}In(r,n,i,s){return this.Or(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.In(r,Jw(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===N.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(N.UNKNOWN,e.toString())})}dn(r,n,i,s,a){return this.Or(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.dn(r,Jw(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===N.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(N.UNKNOWN,e.toString())})}terminate(){this.Fr=!0,this.connection.terminate()}}let i0=new Map;let s0={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class a0{static withCacheSize(e){return new a0(e,a0.DEFAULT_COLLECTION_PERCENTILE,a0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}a0.DEFAULT_COLLECTION_PERCENTILE=10,a0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,a0.DEFAULT=new a0(41943040,a0.DEFAULT_COLLECTION_PERCENTILE,a0.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),a0.DISABLED=new a0(-1,0,0);class o0{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.Mr(e),this.Nr=e=>t.writeSequenceNumber(e))}Mr(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.Nr&&this.Nr(e),e}}o0.Br=-1;let l0="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class u0{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function h0(e){if(e.code!==N.FAILED_PRECONDITION||e.message!==l0)throw e;p("LocalStore","Unexpectedly lost primary lease")}class x{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&I(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new x((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 x?t:x.resolve(t)}catch(e){return x.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):x.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):x.reject(t)}static resolve(r){return new x((e,t)=>{e(r)})}static reject(r){return new x((e,t)=>{t(r)})}static waitFor(e){return new x((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=x.resolve(!1);for(let r of e)t=t.next(e=>e?x.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 x((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 x((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let c0="SimpleDb";class d0{static open(e,t,r,n){try{return new d0(t,e.transaction(n,r))}catch(e){throw new g0(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.Lr=new AE,this.transaction.oncomplete=()=>{this.Lr.resolve()},this.transaction.onabort=()=>{e.error?this.Lr.reject(new g0(r,e.error)):this.Lr.resolve()},this.transaction.onerror=e=>{var t=y0(e.target.error);this.Lr.reject(new g0(r,t))}}get $r(){return this.Lr.promise}abort(e){e&&this.Lr.reject(e),this.aborted||(p(c0,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}Ur(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new C0(t)}}class B0{static delete(e){return p(c0,"Removing database:",e),v0(z().indexedDB.deleteDatabase(e)).toPromise()}static cn(){var e,t,r;return!(!he()||!B0.kr()&&(e=te(),t=0<(t=B0.Qr(e))&&t<10,r=0<(r=p0(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static kr(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static qr(e,t){return e.store(t)}static Qr(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.Kr=r,this.Wr=null,12.2===B0.Qr(te())&&gC("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 Gr(s){return this.db||(p(c0,"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 g0(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 k(N.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 k(N.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 g0(s,t))},i.onupgradeneeded=e=>{p(c0,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.Kr.jr(t,i.transaction,e.oldVersion,this.version).next(()=>{p(c0,"Database upgrade to version "+this.version+" complete")})}})),this.zr&&(this.db.onversionchange=e=>this.zr(e)),this.db}Hr(t){this.zr=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.Gr(r);let t=d0.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.Ur(),e)).catch(e=>(t.abort(e),x.reject(e))).toPromise();return e.catch(()=>{}),await t.$r,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(p(c0,"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 p0(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class f0{constructor(e){this.Jr=e,this.Yr=!1,this.Zr=null}get isDone(){return this.Yr}get Xr(){return this.Zr}set cursor(e){this.Jr=e}done(){this.Yr=!0}ei(e){this.Zr=e}delete(){return v0(this.Jr.delete())}}class g0 extends k{constructor(e,t){super(N.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function m0(e){return"IndexedDbTransactionError"===e.name}class C0{constructor(e){this.store=e}put(e,t){let r;return v0(r=void 0!==t?(p(c0,"PUT",this.store.name,e,t),this.store.put(t,e)):(p(c0,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return p(c0,"ADD",this.store.name,e,e),v0(this.store.add(e))}get(t){return v0(this.store.get(t)).next(e=>(void 0===e&&(e=null),p(c0,"GET",this.store.name,t,e),e))}delete(e){return p(c0,"DELETE",this.store.name,e),v0(this.store.delete(e))}count(){return p(c0,"COUNT",this.store.name),v0(this.store.count())}ti(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 x((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.ni(e,(e,t)=>{r.push(t)}).next(()=>r)}}ri(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new x((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}ii(e,t){p(c0,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.si=!1,this.cursor(r));return this.ni(r,(e,t,r)=>r.delete())}_i(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.ni(n,t)}oi(i){let e=this.cursor({});return new x((r,n)=>{e.onerror=e=>{var t=y0(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()}})}ni(e,s){let a=[];return new x((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new f0(n),r=s(n.primaryKey,n.value,t);if(r instanceof x){let e=r.catch(e=>(t.done(),x.reject(e)));a.push(e)}t.isDone?i():null===t.Xr?n.continue():n.continue(t.Xr)}else i()}}).next(()=>x.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.si?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function v0(e){return new x((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=y0(e.target.error);n(t)}})}let _0=!1;function y0(e){let t=B0.Qr(te());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 k("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 _0||(_0=!0,setTimeout(()=>{throw e},0)),e}}return e}let w0="LruGarbageCollector";function E0([e,t],[r,n]){var i=S(e,r);return 0===i?S(t,n):i}class b0{constructor(e){this.ai=e,this.buffer=new kC(E0),this.ui=0}ci(){return++this.ui}li(e){var t=[e,this.ci()];if(this.buffer.size<this.ai)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();E0(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class D0{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Ei=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.hi(6e4)}stop(){this.Ei&&(this.Ei.cancel(),this.Ei=null)}get started(){return null!==this.Ei}hi(e){p(w0,`Garbage collection scheduled in ${e}ms`),this.Ei=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Ei=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){m0(e)?p(w0,"Ignoring IndexedDB error during garbage collection: ",e):await h0(e)}await this.hi(3e5)})}}class I0{constructor(e,t){this.Ti=e,this.params=t}calculateTargetCount(e,t){return this.Ti.Pi(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return x.resolve(o0.Br);let r=new b0(t);return this.Ti.forEachTarget(e,e=>r.li(e.sequenceNumber)).next(()=>this.Ti.Ii(e,e=>r.li(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Ti.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Ti.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector","Garbage collection skipped; disabled"),x.resolve(s0)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),s0):this.Ri(t,r))}getCacheSize(e){return this.Ti.getCacheSize(e)}Ri(t,r){let n,i,s,a,o,l,u,h=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(p("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=>(u=Date.now(),fC()<=B.DEBUG&&p("LruGarbageCollector",`LRU Garbage Collection
	Counted targets in ${a-h}ms
	Determined least recently used ${i} in `+(o-a)+"ms\n"+`	Removed ${s} targets in `+(l-o)+"ms\n"+`	Removed ${e} documents in `+(u-l)+"ms\n"+`Total Duration: ${u-h}ms`),x.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function T0(e,t){return new I0(e,t)}let S0="firestore.googleapis.com";class N0{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new k(N.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=S0,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,e._customHeaders&&(this._customHeaders={...e._customHeaders}),void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new k(N.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}qC("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=VE(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new k(N.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new k(N.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30<t.timeoutSeconds)throw new k(N.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}if(this.useFetchStreams=!!e.useFetchStreams,void 0!==e.grpcFlowControlWindow){if("number"!=typeof e.grpcFlowControlWindow||e.grpcFlowControlWindow<=0||2147483647<e.grpcFlowControlWindow||!Number.isInteger(e.grpcFlowControlWindow))throw new k(N.INVALID_ARGUMENT,"grpcFlowControlWindow must be a positive integer and cannot exceed 2147483647");this.grpcFlowControlWindow=e.grpcFlowControlWindow}}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&&this.grpcFlowControlWindow===e.grpcFlowControlWindow&&((r,n)=>{if(r!==n){if(!r||!n)return!1;let e=Object.keys(r),t=Object.keys(n);if(e.length!==t.length)return!1;for(let t of e)if(r[t]!==n[t])return!1}return!0})(this._customHeaders,e._customHeaders);var t,r}}let k0=class{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 N0({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new k(N.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 k(N.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 N0(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new OE;switch(e.type){case"firstParty":return new LE(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new k(N.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=i0.get(e))&&(p("ComponentProvider","Removing Datastore"),i0.delete(e),t.terminate()),Promise.resolve();var e,t}};let A0=class GR{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new GR(this.firestore,e,this._query)}};class R0{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 O0(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new R0(this.firestore,e,this._key)}toJSON(){return{type:R0._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if($C(t,R0._jsonSchema))return new R0(e,r||null,new A(PC.fromString(t.referencePath)))}}R0._jsonSchemaVersion="firestore/documentReference/1.0",R0._jsonSchema={type:YC("string",R0._jsonSchemaVersion),referencePath:YC("string")};class O0 extends A0{constructor(e,t,r){super(e,t,$y(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 R0(this.firestore,null,new A(e))}withConverter(e){return new O0(this.firestore,e,this._path)}}function x0(e,t,...r){var n;if(e=_(e),HC("collection","path",t),e instanceof k0)return KC(n=PC.fromString(t,...r)),new O0(e,null,n);if(e instanceof R0||e instanceof O0)return KC(n=e._path.child(PC.fromString(t,...r))),new O0(e.firestore,null,n);throw new k(N.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function P0(e,t,...r){var n;if(e=_(e),HC("doc","path",t=1===arguments.length?_C.newId():t),e instanceof k0)return jC(n=PC.fromString(t,...r)),new R0(e,null,new A(n));if(e instanceof R0||e instanceof O0)return jC(n=e._path.child(PC.fromString(t,...r))),new R0(e.firestore,e instanceof O0?e.converter:null,new A(n));throw new k(N.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function F0(e,t){return e=_(e),t=_(t),(e instanceof R0||e instanceof O0)&&(t instanceof R0||t instanceof O0)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function L0(e,t){return e=_(e),t=_(t),e instanceof A0&&t instanceof A0&&e.firestore===t.firestore&&iw(e._query,t._query)&&e.converter===t.converter}class M0{constructor(e,t){this.pattern=e,this.options=t}isEqual(e){return this.pattern===e.pattern&&this.options===e.options}}class U0{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:U0._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if($C(e,U0._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new U0(e.vectorValues);throw new k(N.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}U0._jsonSchemaVersion="firestore/vectorValue/1.0",U0._jsonSchema={type:YC("string",U0._jsonSchemaVersion),vectorValues:YC("object")};let V0=/^__.*__$/;class G0{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new ry(e,this.data,this.fieldMask,t,this.fieldTransforms):new ty(e,this.data,t,this.fieldTransforms)}}class H0{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new ry(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function q0(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw I(40011,{dataSource:e})}}class j0{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.validatePath(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(e){return new j0({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePathSegment(e),t}childContextForFieldPath(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePath(),t}childContextForArray(e){return this.contextWith({path:void 0,arrayElement:!0})}createError(e){return cb(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}validatePath(){if(this.path)for(let e=0;e<this.path.length;e++)this.validatePathSegment(this.path.get(e))}validatePathSegment(e){if(0===e.length)throw this.createError("Document fields must not be empty");if(q0(this.dataSource)&&V0.test(e))throw this.createError('Document fields cannot begin and end with "__"')}}class K0{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||vE(e)}createContext(e,t,r,n=!1){return new j0({dataSource:e,methodName:t,targetDoc:r,path:LC.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function z0(e){var t=e._freezeSettings(),r=vE(e._databaseId);return new K0(e._databaseId,!!t.ignoreUndefinedProperties,r)}function J0(e,n,i,t,r,s={}){var a=e.createContext(s.merge||s.mergeFields?2:0,n,i,r),o=(ob("Data must be an object, but it was:",a,t),ib(t,a));let l,u;if(s.merge)l=new MC(a.fieldMask),u=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=lb(n,r,i);if(!a.contains(e))throw new k(N.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);db(t,e)||t.push(e)}l=new MC(t),u=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,u=a.fieldTransforms;return new G0(new k_(o),l,u)}class W0 extends DE{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.createError(this._methodName+"() can only appear at the top level of your update data"):e.createError(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof W0}}function Q0(e,t,r){return new j0({dataSource:3,targetDoc:t.settings.targetDoc,methodName:e._methodName,arrayElement:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Y0 extends DE{_toFieldTransform(e){return new J_(e.path,new F_)}isEqual(e){return e instanceof Y0}}class $0 extends DE{constructor(e,t){super(e),this.Ai=t}_toFieldTransform(e){let t=Q0(this,e,!0),r=this.Ai.map(e=>nb(e,t)),n=new L_(r);return new J_(e.path,n)}isEqual(e){return e instanceof $0&&we(this.Ai,e.Ai)}}class X0 extends DE{constructor(e,t){super(e),this.Ai=t}_toFieldTransform(e){let t=Q0(this,e,!0),r=this.Ai.map(e=>nb(e,t)),n=new U_(r);return new J_(e.path,n)}isEqual(e){return e instanceof X0&&we(this.Ai,e.Ai)}}class Z0 extends DE{constructor(e,t){super(e),this.Vi=t}_toFieldTransform(e){var t=new H_(e.serializer,O_(e.serializer,this.Vi));return new J_(e.path,t)}isEqual(e){return e instanceof Z0&&(this.Vi===e.Vi||Number.isNaN(this.Vi)&&Number.isNaN(e.Vi))}}function eb(e,i,s,t){let a=e.createContext(1,i,s),o=(ob("Data must be an object, but it was:",a,t),[]),l=k_.empty();VC(t,(e,t)=>{var r=hb(i,e,s),n=(t=_(t),a.childContextForFieldPath(r));if(t instanceof W0)o.push(r);else{let e=nb(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new MC(o);return new H0(l,r,a.fieldTransforms)}function tb(e,t,r,n,i,s){var a=e.createContext(1,t,r),o=[lb(t,n,r)],l=[i];if(s.length%2!=0)throw new k(N.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let B=0;B<s.length;B+=2)o.push(lb(t,s[B])),l.push(s[B+1]);var u=[],h=k_.empty();for(let p=o.length-1;0<=p;--p)if(!db(u,o[p])){let t=o[p];var c=_(l[p]);let r=a.childContextForFieldPath(t);if(c instanceof W0)u.push(t);else{let e=nb(c,r);null!=e&&(u.push(t),h.set(t,e))}}var d=new MC(u);return new H0(h,d,a.fieldTransforms)}function rb(e,t,r,n=!1){return nb(r,e.createContext(n?4:3,t))}function nb(e,r){if(ab(e=_(e)))return ob("Unsupported field value:",r,e),ib(e,r);if(e instanceof DE){{var n=e;var i=r;if(!q0(i.dataSource))throw i.createError(n._methodName+"() can only be used with update() and set()");if(!i.path)throw i.createError(n._methodName+"() is not currently supported inside arrays");var t=n._toFieldTransform(i);t&&i.fieldTransforms.push(t)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.arrayElement&&4!==r.dataSource)throw r.createError("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=nb(s,a.childContextForArray(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,u,h,c,d,B,n=e,i=r;if(null===(n=_(n)))return{nullValue:"NULL_VALUE"};if("number"==typeof n)return O_(i.serializer,n);if("boolean"==typeof n)return{booleanValue:n};if("string"==typeof n)return{stringValue:n};if(n instanceof Date){let e=ZC.fromDate(n);return{timestampValue:Gw(i.serializer,e)}}if(n instanceof ZC){let e=new ZC(n.seconds,1e3*Math.floor(n.nanoseconds/1e3));return{timestampValue:Gw(i.serializer,e)}}if(sb(n)){let e=ZC.fromInstant(n),t=new ZC(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:Gw(i.serializer,t)}}if(n instanceof IE)return{geoPointValue:{latitude:n.latitude,longitude:n.longitude}};if(n instanceof wE)return 0===n.subtype?{bytesValue:qw(i.serializer,n._byteString)}:(c=i.serializer,h=(l=n).toUint8Array(),(t=new Uint8Array(h.length+1))[0]=l.subtype,t.set(h,1),{mapValue:{fields:{[Pv]:{bytesValue:qw(c,tv.fromUint8Array(t))}}}});if(n instanceof R0){let e=i.databaseId,t=n.firestore._databaseId;if(t.isEqual(e))return{referenceValue:zw(n.firestore._databaseId||i.databaseId,n._key.path)};throw i.createError(`Document reference is for database ${t.projectId}/${t.database} but should be for database ${e.projectId}/`+e.database)}if(n instanceof U0)return u=i,h=(l=n)instanceof U0?l.toArray():l,{mapValue:{fields:{[yv]:{stringValue:wv},[Ev]:{arrayValue:{values:h.map(e=>{if("number"!=typeof e)throw u.createError("VectorValues must only contain numeric values.");return A_(u.serializer,e)})}}}}};if(n instanceof M0)return c=n,{mapValue:{fields:{[Iv]:{mapValue:{fields:{[Tv]:{stringValue:c.pattern},[Sv]:{stringValue:c.options}}}}}}};if(n instanceof _E)return d=n,{mapValue:{fields:{[Nv]:{stringValue:d.value}}}};if(n instanceof TE)return d=n,{mapValue:{fields:{[kv]:R_(d.value)}}};if(n instanceof EE)return B=n,{mapValue:{fields:{[Av]:{stringValue:B.stringValue}}}};if(n instanceof yE)return B=n,{mapValue:{fields:{[Rv]:{mapValue:{fields:{[Ov]:R_(B.seconds),[xv]:R_(B.increment)}}}}}};if(n instanceof NE)return{mapValue:{fields:{[bv]:{nullValue:"NULL_VALUE"}}}};if(n instanceof SE)return{mapValue:{fields:{[Dv]:{nullValue:"NULL_VALUE"}}}};if(gE(n))return n._toProto(i.serializer);throw i.createError("Unsupported field value: "+JC(n))}function ib(e,n){let i={};return GC(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):VC(e,(e,t)=>{var r=nb(t,n.childContextForField(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function sb(e){return"object"==typeof e&&null!==e&&("undefined"!=typeof Temporal&&"function"==typeof Temporal.Instant&&e instanceof Temporal.Instant||"Temporal.Instant"===e[Symbol.toStringTag]&&"bigint"==typeof e.t)}function ab(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ZC||e instanceof IE||e instanceof wE||e instanceof R0||e instanceof DE||e instanceof U0||e instanceof NE||e instanceof SE||e instanceof TE||e instanceof EE||e instanceof M0||e instanceof _E||e instanceof yE||sb(e)||gE(e))}function ob(e,t,r){var n;if(!ab(r)||!zC(r))throw"an object"===(n=JC(r))?t.createError(e+" a custom object"):t.createError(e+" "+n)}function lb(e,t,r){if((t=_(t))instanceof bE)return t._internalPath;if("string"==typeof t)return hb(e,t);throw cb("Field path arguments must be of type string or ",e,!1,void 0,r)}let ub=new RegExp("[~\\*/\\[\\]]");function hb(t,r,n){if(0<=r.search(ub))throw cb(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new bE(...r.split("."))._internalPath}catch(e){throw cb(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function cb(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 k(N.INVALID_ARGUMENT,o+e+l)}function db(e,t){return e.some(e=>e.isEqual(t))}function Bb(e){return"function"==typeof e._readUserData}class pb{constructor(e){this.optionDefinitions=e}_getKnownOptions(t,r){var n,i=k_.empty();for(n in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(n)){var s=this.optionDefinitions[n];if(n in t){var a=t[n];let e;s.nestedOptions&&zC(a)?e={mapValue:{fields:new pb(s.nestedOptions).getOptionsProto(r,a)}}:a&&(e=nb(a,r)??void 0),e&&i.set(LC.fromServerFormat(s.serverName),e)}}return i}getOptionsProto(r,e,t){var n=this._getKnownOptions(e,r);if(t){let e=new Map(((e,t)=>{var r,n=[];for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.push(t(e[r],r,e));return n})(t,(e,t)=>[LC.fromServerFormat(t),void 0!==e?nb(e,r):null]));n.setAll(e)}return n.value.mapValue.fields??{}}}function i(e){return e instanceof mb?e:zC(e)?(e=>{var t,r=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t=e[n],r.push(Db(n)),r.push(i(t)));return new s("map",r,"map")})(e):e instanceof Array?((e,t)=>new s("array",e.map(e=>i(e)),t))(e,"array"):Ib(e,void 0)}function fb(e){if(e instanceof mb)return e;if(e instanceof U0)return Db(e);if(Array.isArray(e))return Db((t=e,new U0(t)));var t;throw new Error("Unsupported value: "+typeof e)}function gb(e){return(_v(e)?Eb:i)(e)}class mb{constructor(){this._protoValueType="ProtoValue"}add(e){return new s("add",[this,i(e)],"add")}asBoolean(){if(this instanceof Tb)return this;if(this instanceof bb)return new Nb(this);if(this instanceof wb)return new kb(this);if(this instanceof s)return new Sb(this);throw new k("invalid-argument",`Conversion of type ${typeof this} to BooleanExpression not supported.`)}subtract(e){return new s("subtract",[this,i(e)],"subtract")}multiply(e){return new s("multiply",[this,i(e)],"multiply")}divide(e){return new s("divide",[this,i(e)],"divide")}mod(e){return new s("mod",[this,i(e)],"mod")}equal(e){return new s("equal",[this,i(e)],"equal").asBoolean()}notEqual(e){return new s("not_equal",[this,i(e)],"notEqual").asBoolean()}lessThan(e){return new s("less_than",[this,i(e)],"lessThan").asBoolean()}lessThanOrEqual(e){return new s("less_than_or_equal",[this,i(e)],"lessThanOrEqual").asBoolean()}greaterThan(e){return new s("greater_than",[this,i(e)],"greaterThan").asBoolean()}greaterThanOrEqual(e){return new s("greater_than_or_equal",[this,i(e)],"greaterThanOrEqual").asBoolean()}arrayConcat(e,...t){var r=[e,...t].map(e=>i(e));return new s("array_concat",[this,...r],"arrayConcat")}arrayContains(e){return new s("array_contains",[this,i(e)],"arrayContains").asBoolean()}arrayContainsAll(e){var t=Array.isArray(e)?new yb(e.map(i),"arrayContainsAll"):e;return new s("array_contains_all",[this,t],"arrayContainsAll").asBoolean()}arrayContainsAny(e){var t=Array.isArray(e)?new yb(e.map(i),"arrayContainsAny"):e;return new s("array_contains_any",[this,t],"arrayContainsAny").asBoolean()}arrayReverse(){return new s("array_reverse",[this])}arrayLength(){return new s("array_length",[this],"arrayLength")}equalAny(e){var t=Array.isArray(e)?new yb(e.map(i),"equalAny"):e;return new s("equal_any",[this,t],"equalAny").asBoolean()}notEqualAny(e){var t=Array.isArray(e)?new yb(e.map(i),"notEqualAny"):e;return new s("not_equal_any",[this,t],"notEqualAny").asBoolean()}exists(){return new s("exists",[this],"exists").asBoolean()}charLength(){return new s("char_length",[this],"charLength")}like(e){return new s("like",[this,i(e)],"like").asBoolean()}regexContains(e){return new s("regex_contains",[this,i(e)],"regexContains").asBoolean()}regexFind(e){return new s("regex_find",[this,i(e)],"regexFind")}regexFindAll(e){return new s("regex_find_all",[this,i(e)],"regexFindAll")}regexMatch(e){return new s("regex_match",[this,i(e)],"regexMatch").asBoolean()}stringContains(e){return new s("string_contains",[this,i(e)],"stringContains").asBoolean()}startsWith(e){return new s("starts_with",[this,i(e)],"startsWith").asBoolean()}endsWith(e){return new s("ends_with",[this,i(e)],"endsWith").asBoolean()}toLower(){return new s("to_lower",[this],"toLower")}toUpper(){return new s("to_upper",[this],"toUpper")}trim(e){var t=[this];return e&&t.push(i(e)),new s("trim",t,"trim")}ltrim(e){var t=[this];return e&&t.push(i(e)),new s("ltrim",t,"ltrim")}rtrim(e){var t=[this];return e&&t.push(i(e)),new s("rtrim",t,"rtrim")}type(){return new s("type",[this])}isType(e){return new s("is_type",[this,Db(e)],"isType").asBoolean()}stringConcat(e,...t){var r=[e,...t].map(i);return new s("string_concat",[this,...r],"stringConcat")}stringIndexOf(e){return new s("string_index_of",[this,i(e)],"stringIndexOf")}stringRepeat(e){return new s("string_repeat",[this,i(e)],"stringRepeat")}stringReplaceAll(e,t){return new s("string_replace_all",[this,i(e),i(t)],"stringReplaceAll")}stringReplaceOne(e,t){return new s("string_replace_one",[this,i(e),i(t)],"stringReplaceOne")}concat(e,...t){var r=[e,...t].map(i);return new s("concat",[this,...r],"concat")}reverse(){return new s("reverse",[this],"reverse")}arrayFilter(e,t){return new s("array_filter",[this,i(e),t],"arrayFilter")}arrayTransform(e,t){return new s("array_transform",[this,i(e),t],"arrayTransform")}arrayTransformWithIndex(e,t,r){return new s("array_transform",[this,i(e),i(t),r],"arrayTransformWithIndex")}arraySlice(e,t){var r=[this,i(e)];return void 0!==t&&r.push(i(t)),new s("array_slice",r,"arraySlice")}arrayFirst(){return new s("array_first",[this],"arrayFirst")}arrayFirstN(e){return new s("array_first_n",[this,i(e)],"arrayFirstN")}arrayLast(){return new s("array_last",[this],"arrayLast")}arrayLastN(e){return new s("array_last_n",[this,i(e)],"arrayLastN")}arrayMaximum(){return new s("maximum",[this],"arrayMaximum")}arrayMaximumN(e){return new s("maximum_n",[this,i(e)],"arrayMaximumN")}arrayMinimum(){return new s("minimum",[this],"arrayMinimum")}arrayMinimumN(e){return new s("minimum_n",[this,i(e)],"arrayMinimumN")}arrayIndexOf(e){return new s("array_index_of",[this,i(e),i("first")],"arrayIndexOf")}arrayLastIndexOf(e){return new s("array_index_of",[this,i(e),i("last")],"arrayLastIndexOf")}arrayIndexOfAll(e){return new s("array_index_of_all",[this,i(e)],"arrayIndexOfAll")}byteLength(){return new s("byte_length",[this],"byteLength")}ceil(){return new s("ceil",[this])}floor(){return new s("floor",[this])}abs(){return new s("abs",[this])}exp(){return new s("exp",[this])}mapGet(e){return new s("map_get",[this,Db(e)],"mapGet")}mapSet(e,t,...r){var n=[this,i(e),i(t),...r.map(i)];return new s("map_set",n,"mapSet")}mapKeys(){return new s("map_keys",[this],"mapKeys")}mapValues(){return new s("map_values",[this],"mapValues")}mapEntries(){return new s("map_entries",[this],"mapEntries")}getField(e){return new s("get_field",[this,i(e)],"get_field")}count(){return Cb._create("count",[this],"count")}sum(){return Cb._create("sum",[this],"sum")}average(){return Cb._create("average",[this],"average")}minimum(){return Cb._create("minimum",[this],"minimum")}maximum(){return Cb._create("maximum",[this],"maximum")}first(){return Cb._create("first",[this],"first")}last(){return Cb._create("last",[this],"last")}arrayAgg(){return Cb._create("array_agg",[this],"arrayAgg")}arrayAggDistinct(){return Cb._create("array_agg_distinct",[this],"arrayAggDistinct")}countDistinct(){return Cb._create("count_distinct",[this],"countDistinct")}logicalMaximum(e,...t){var r=[e,...t];return new s("maximum",[this,...r.map(i)],"logicalMaximum")}logicalMinimum(e,...t){var r=[e,...t];return new s("minimum",[this,...r.map(i)],"minimum")}vectorLength(){return new s("vector_length",[this],"vectorLength")}cosineDistance(e){return new s("cosine_distance",[this,fb(e)],"cosineDistance")}dotProduct(e){return new s("dot_product",[this,fb(e)],"dotProduct")}euclideanDistance(e){return new s("euclidean_distance",[this,fb(e)],"euclideanDistance")}unixMicrosToTimestamp(){return new s("unix_micros_to_timestamp",[this],"unixMicrosToTimestamp")}timestampToUnixMicros(){return new s("timestamp_to_unix_micros",[this],"timestampToUnixMicros")}unixMillisToTimestamp(){return new s("unix_millis_to_timestamp",[this],"unixMillisToTimestamp")}timestampToUnixMillis(){return new s("timestamp_to_unix_millis",[this],"timestampToUnixMillis")}unixSecondsToTimestamp(){return new s("unix_seconds_to_timestamp",[this],"unixSecondsToTimestamp")}timestampToUnixSeconds(){return new s("timestamp_to_unix_seconds",[this],"timestampToUnixSeconds")}timestampAdd(e,t){return new s("timestamp_add",[this,i(e),i(t)],"timestampAdd")}timestampSubtract(e,t){return new s("timestamp_subtract",[this,i(e),i(t)],"timestampSubtract")}timestampDiff(e,t){return new s("timestamp_diff",[this,gb(e),i(t)],"timestampDiff")}timestampExtract(e,t){var r=[this,i(e)];return t&&r.push(i(t)),new s("timestamp_extract",r,"timestampExtract")}documentId(){return new s("document_id",[this],"documentId")}parent(){return new s("parent",[this],"parent")}substring(e,t){var r=i(e);return new s("substring",void 0===t?[this,r]:[this,r,i(t)],"substring")}arrayGet(e){return new s("array_get",[this,i(e)],"arrayGet")}isError(){return new s("is_error",[this],"isError").asBoolean()}ifError(e){var t=new s("if_error",[this,i(e)],"ifError");return e instanceof Tb?t.asBoolean():t}isAbsent(){return new s("is_absent",[this],"isAbsent").asBoolean()}mapRemove(e){return new s("map_remove",[this,i(e)],"mapRemove")}mapMerge(e,...t){var r=i(e),n=t.map(i);return new s("map_merge",[this,r,...n],"mapMerge")}pow(e){return new s("pow",[this,i(e)])}trunc(e){return void 0===e?new s("trunc",[this]):new s("trunc",[this,i(e)],"trunc")}round(e){return void 0===e?new s("round",[this]):new s("round",[this,i(e)],"round")}collectionId(){return new s("collection_id",[this])}length(){return new s("length",[this])}ln(){return new s("ln",[this])}sqrt(){return new s("sqrt",[this])}stringReverse(){return new s("string_reverse",[this])}ifAbsent(e){return new s("if_absent",[this,i(e)],"ifAbsent")}ifNull(e){return new s("if_null",[this,i(e)],"ifNull")}coalesce(e,...t){return new s("coalesce",[this,i(e),...t.map(i)],"coalesce")}join(e){return new s("join",[this,i(e)],"join")}log10(){return new s("log10",[this])}arraySum(){return new s("sum",[this])}split(e){return new s("split",[this,i(e)])}timestampTruncate(e,t){var r=[this,i(e)];return t&&r.push(i(t)),new s("timestamp_trunc",r)}ascending(){return new Ab(gb(this),"ascending","ascending")}descending(){return new Ab(gb(this),"descending","descending")}as(e){return new _b(this,e,"as")}}let Cb=class yM{constructor(e,t){this.name=e,this.params=t,this.exprType="AggregateFunction",this._protoValueType="ProtoValue"}static _create(e,t,r){var n=new yM(e,t);return n._methodName=r,n}as(e){return new vb(this,e,"as")}over(e){return new xb(this.name,this.params,new Ob(e),"over")}_toProto(t){return{functionValue:{name:this.name,args:this.params.map(e=>e._toProto(t))}}}_readUserData(t){t=this._methodName?t.contextWith({methodName:this._methodName}):t,this.params.forEach(e=>e._readUserData(t))}};class vb{constructor(e,t,r){this.aggregate=e,this.alias=t,this._methodName=r}_readUserData(e){this.aggregate._readUserData(e)}}class _b{constructor(e,t,r){this.expr=e,this.alias=t,this._methodName=r,this.exprType="AliasedExpression",this.selectable=!0}_readUserData(e){this.expr._readUserData(e)}}class yb extends mb{constructor(e,t){super(),this.di=e,this._methodName=t,this.expressionType="ListOfExpressions"}_toProto(t){return{arrayValue:{values:this.di.map(e=>e._toProto(t))}}}_readUserData(t){this.di.forEach(e=>e._readUserData(t))}}class wb extends mb{constructor(e,t){super(),this.fieldPath=e,this._methodName=t,this.expressionType="Field",this.selectable=!0}get _fieldPath(){return this.fieldPath}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}geoDistance(e){return new s("geo_distance",[this,i(e)],"geoDistance")}_toProto(e){return{fieldReferenceValue:this.fieldPath.canonicalString()}}_readUserData(e){}}function Eb(e){return e=e,t="field",new wb("string"==typeof e?OC===e?new bE(OC)._internalPath:lb("field",e):e._internalPath,t);var t}class bb extends mb{constructor(e,t){super(),this.value=e,this._methodName=t,this.expressionType="Constant"}static _fromProto(e){var t=new bb(e,void 0);return t._protoValue=e,t}_toProto(e){return T(void 0!==this._protoValue,237),this._protoValue}_getValue(){return this._protoValue}_readUserData(e){var t,r,n,i;e=this._methodName?e.contextWith({methodName:this._methodName}):e,"object"==typeof(t=this._protoValue)&&null!==t&&("nullValue"in t&&(null===t.nullValue||"NULL_VALUE"===t.nullValue)||"booleanValue"in t&&(null===t.booleanValue||"boolean"==typeof t.booleanValue)||"integerValue"in t&&(null===t.integerValue||"number"==typeof t.integerValue||"string"==typeof t.integerValue)||"doubleValue"in t&&(null===t.doubleValue||"number"==typeof t.doubleValue)||"timestampValue"in t&&(null===t.timestampValue||"object"==typeof(i=t.timestampValue)&&null!==i&&"seconds"in i&&(null===i.seconds||"number"==typeof i.seconds||"string"==typeof i.seconds)&&"nanos"in i&&(null===i.nanos||"number"==typeof i.nanos))||"stringValue"in t&&(null===t.stringValue||"string"==typeof t.stringValue)||"bytesValue"in t&&(null===t.bytesValue||t.bytesValue instanceof Uint8Array)||"referenceValue"in t&&(null===t.referenceValue||"string"==typeof t.referenceValue)||"geoPointValue"in t&&(null===t.geoPointValue||"object"==typeof(i=t.geoPointValue)&&null!==i&&"latitude"in i&&(null===i.latitude||"number"==typeof i.latitude)&&"longitude"in i&&(null===i.longitude||"number"==typeof i.longitude))||"arrayValue"in t&&(null===t.arrayValue||"object"==typeof(n=t.arrayValue)&&null!==n&&"values"in n&&(null===n.values||Array.isArray(n.values)))||"mapValue"in t&&(null===t.mapValue||"object"==typeof(n=t.mapValue)&&null!==n&&"fields"in n&&(null===n.fields||zC(n.fields)))||"fieldReferenceValue"in t&&(null===t.fieldReferenceValue||"string"==typeof t.fieldReferenceValue)||"functionValue"in t&&(null===t.functionValue||"object"==typeof(r=t.functionValue)&&null!==r&&"name"in r&&(null===r.name||"string"==typeof r.name)&&"args"in r&&(null===r.args||Array.isArray(r.args)))||"pipelineValue"in t&&(null===t.pipelineValue||"object"==typeof(r=t.pipelineValue)&&null!==r&&"stages"in r&&(null===r.stages||Array.isArray(r.stages))))||(this._protoValue=nb(this.value,e))}}function Db(e){return Ib(e,"constant")}function Ib(e,t){var r=new bb(e,t);return"boolean"==typeof e?new Nb(r):r}let s=class extends mb{constructor(e,t,r,n){super(),this.name=e,this.params=t,this.expressionType="Function",(this._optionsProto=void 0)!==r&&(this._methodName=r),void 0!==n&&(this._options=n)}get _optionsUtil(){return new pb({})}_toProto(t){var e={functionValue:{name:this.name,args:this.params.map(e=>e._toProto(t))}};return this._optionsProto&&(e.functionValue.options=this._optionsProto),e}_readUserData(t){t=this._methodName?t.contextWith({methodName:this._methodName}):t,this.params.forEach(e=>e._readUserData(t)),this._options&&(this._optionsProto=this._optionsUtil.getOptionsProto(t,this._options))}};class Tb extends mb{get _methodName(){return this._expr._methodName}countIf(){return Cb._create("count_if",[this],"countIf")}not(){return new s("not",[this],"not").asBoolean()}conditional(e,t){return new s("conditional",[this,e,t],"conditional")}ifError(e){var t=i(e),r=new s("if_error",[this,t],"ifError");return t instanceof Tb?r.asBoolean():r}_toProto(e){return this._expr._toProto(e)}_readUserData(e){this._expr._readUserData(e)}}class Sb extends Tb{constructor(e){super(),this._expr=e,this.expressionType="Function"}}class Nb extends Tb{constructor(e){super(),this._expr=e,this.expressionType="Constant"}_getValue(){return this._expr._getValue()}}class kb extends Tb{constructor(e){super(),this._expr=e,this.expressionType="Field"}}class Ab{constructor(e,t,r){this.expr=e,this.direction=t,this._methodName=r,this._protoValueType="ProtoValue"}_toProto(e){return{mapValue:{fields:{direction:CE(this.direction),expression:this.expr._toProto(e)}}}}_readUserData(e){this.expr._readUserData(e)}}function Rb(e){return e instanceof mb}let Ob=class{constructor(e){this._protoValueType="ProtoValue";var t=e.sort;this.partition=(e.partition??[]).map(gb),this.sort=void 0===t?[]:Array.isArray(t)?t:[t],this.documents=e.documents,this.range=e.range}_toProto(t){var e={};return 0<this.partition.length&&(e.partition={arrayValue:{values:this.partition.map(e=>e._toProto(t))}}),0<this.sort.length&&(e.sort={arrayValue:{values:this.sort.map(e=>e._toProto(t))}}),void 0!==this.documents&&(e.documents=this.frameToProto(t,this.documents)),void 0!==this.range&&(e.range=this.frameToProto(t,this.range)),{mapValue:{fields:e}}}_readUserData(t){this.partition.forEach(e=>e._readUserData(t)),this.sort.forEach(e=>e._readUserData(t));for(var e of[this.documents,this.range])void 0!==e&&(Rb(e.preceding)&&e.preceding._readUserData(t),Rb(e.following)&&e.following._readUserData(t),void 0!==(e=e.unit)&&Rb(e))&&e._readUserData(t)}frameToProto(e,t){var r={},n=(void 0!==t.preceding&&(r.preceding=this.frameBoundToProto(e,t.preceding,"preceding")),void 0!==t.following&&(r.following=this.frameBoundToProto(e,t.following,"following")),t.unit);return void 0!==n&&(r.unit=_v(n)?CE(n):n._toProto(e)),{mapValue:{fields:r}}}frameBoundToProto(e,t,r){if("number"==typeof t)return O_(e,t);if(_v(t))return CE(t);if(Rb(t))return t._toProto(e);throw new k("invalid-argument",`Invalid window frame bound: '${r}'. Expected a number, 'current', 'unbounded', or an Expression.`)}};class xb{constructor(e,t=[],r,n){this.name=e,this.params=t,this.window=r,this._methodName=n,this.exprType="WindowFunction",this._protoValueType="ProtoValue"}over(e){return new xb(this.name,this.params,new Ob(e),this._methodName??"over")}as(e){return new Pb(this,e,"as")}_toProto(t){var e={functionValue:{name:this.name,args:this.params.map(e=>e._toProto(t))}};return void 0===this.window?e:{functionValue:{name:"over",args:[e,this.window._toProto(t)]}}}_readUserData(t){t=this._methodName?t.contextWith({methodName:this._methodName}):t,this.params.forEach(e=>e._readUserData(t)),this.window?._readUserData(t)}}class Pb{constructor(e,t,r){this.windowFunction=e,this.alias=t,this._methodName=r}_readUserData(e){this.windowFunction._readUserData(e)}}class Fb{constructor(e){this.optionsProto=void 0,{rawOptions:this.rawOptions,...this.knownOptions}=e}_readUserData(e){this.optionsProto=this._optionsUtil.getOptionsProto(e,this.knownOptions,this.rawOptions)}_toProto(e){return{name:this._name,options:this.optionsProto}}}let Lb=class extends Fb{get _name(){return"add_fields"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.fields=e}_toProto(e){return{...super._toProto(e),args:[mE(e,this.fields)]}}_readUserData(e){super._readUserData(e),Qb(this.fields,e)}},Mb=class extends Fb{get _name(){return"aggregate"}get _optionsUtil(){return new pb({})}constructor(e,t,r){super(r),this.groups=e,this.accumulators=t}_toProto(e){return{...super._toProto(e),args:[mE(e,this.accumulators),mE(e,this.groups)]}}_readUserData(e){super._readUserData(e),Qb(this.groups,e),Qb(this.accumulators,e)}},Ub=class extends Fb{get _name(){return"distinct"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.groups=e}_toProto(e){return{...super._toProto(e),args:[mE(e,this.groups)]}}_readUserData(e){super._readUserData(e),Qb(this.groups,e)}};class Vb extends Fb{get _name(){return"collection"}get _optionsUtil(){return new pb({forceIndex:{serverName:"force_index"}})}constructor(e,t){var r;super(t),this.pi=(r="string"==typeof(t=e)?t:t.path).startsWith("/")?r:"/"+r}_toProto(e){return{...super._toProto(e),args:[{referenceValue:this.pi}]}}_readUserData(e){super._readUserData(e)}}class Gb extends Fb{get _name(){return"collection_group"}get _optionsUtil(){return new pb({forceIndex:{serverName:"force_index"}})}constructor(e,t){super(t),this.collectionId=e}_toProto(e){return{...super._toProto(e),args:[{referenceValue:""},{stringValue:this.collectionId}]}}_readUserData(e){super._readUserData(e)}}class Hb extends Fb{get _name(){return"database"}get _optionsUtil(){return new pb({})}_toProto(e){return{...super._toProto(e)}}_readUserData(e){super._readUserData(e)}}class qb extends Fb{get _name(){return"documents"}get _optionsUtil(){return new pb({})}constructor(e,t){if(super(t),!e||0===e.length)throw new k(N.INVALID_ARGUMENT,"Empty document paths are not allowed in DocumentsSource");var r=e.map(e=>e.startsWith("/")?e:"/"+e),n=new Set(r);if(n.size!==r.length)throw new k(N.INVALID_ARGUMENT,"Duplicate document paths are not allowed in DocumentsSource");this.gi=r,this.yi=n}_toProto(e){return{...super._toProto(e),args:this.gi.map(e=>({referenceValue:e}))}}_readUserData(e){super._readUserData(e)}}let jb=class extends Fb{get _name(){return"where"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.condition=e}_toProto(e){return{...super._toProto(e),args:[this.condition._toProto(e)]}}_readUserData(e){super._readUserData(e),Qb(this.condition,e)}},Kb=class extends Fb{get _name(){return"limit"}get _optionsUtil(){return new pb({})}constructor(e,t){T(!isNaN(e)&&e!==1/0&&e!==-1/0,34860),super(t),this.limit=e}_toProto(e){return{...super._toProto(e),args:[O_(e,this.limit)]}}},zb=class extends Fb{get _name(){return"offset"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.offset=e}_toProto(e){return{...super._toProto(e),args:[O_(e,this.offset)]}}},Jb=class extends Fb{get _name(){return"select"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.selections=e}_toProto(e){return{...super._toProto(e),args:[mE(e,this.selections)]}}_readUserData(e){super._readUserData(e),Qb(this.selections,e)}},Wb=class extends Fb{get _name(){return"sort"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.orderings=e}_toProto(t){return{...super._toProto(t),args:this.orderings.map(e=>e._toProto(t))}}_readUserData(e){super._readUserData(e),Qb(this.orderings,e)}};function Qb(e,t){Bb(e)?e._readUserData(t):Array.isArray(e)?e.forEach(e=>e._readUserData(t)):e instanceof Map?e.forEach(e=>e._readUserData(t)):Object.values(e).forEach(e=>e._readUserData(t))}(class gM extends Fb{get _name(){return"replace_with"}get _optionsUtil(){return new pb({})}constructor(e,t){super(t),this.map=e}_toProto(e){return{...super._toProto(e),args:[this.map._toProto(e),CE(gM.bi)]}}_readUserData(e){super._readUserData(e),Qb(this.map,e)}}).bi="full_replace";class Yb{constructor(e,t,r){this.serializer=e,this.stages=t,this.listenOptions=r,this.isCorePipeline=!0}getPipelineCollection(){return Xb(this)}getPipelineCollectionGroup(){return Zb(this)}getPipelineCollectionId(){return eD(this)}getPipelineDocuments(){return tD(this)}getPipelineFlavor(){{var n=this;let r="exact";return n.stages.forEach((e,t)=>{e._name!==Ub.name&&e._name!==Mb.name||(r="keyless"),e._name===Jb.name&&"exact"===r&&(r="augmented"),e._name===Lb.name&&t<n.stages.length-1&&"exact"===r&&(r="augmented")}),r}}getPipelineSourceType(){return $b(this)}}function $b(e){var t=e.stages[0];return t instanceof Vb||t instanceof Gb||t instanceof Hb||t instanceof qb?t._name:"unknown"}function Xb(e){if("collection"===$b(e))return e.stages[0].pi}function Zb(e){if("collection_group"===$b(e))return e.stages[0].collectionId}function eD(e){switch($b(e)){case"collection":return PC.fromString(Xb(e)).lastSegment();case"collection_group":return Zb(e);default:return}}function tD(e){if("documents"===$b(e))return e.stages[0].gi}class c{constructor(e,t){this.type=e,this.value=t}static Oi(){return new c("ERROR",void 0)}static Mi(){return new c("UNSET",void 0)}static Ni(){return new c("NULL",Fv)}static newValue(e){return y_(e)?new c("NULL",Fv):(t=e)&&"booleanValue"in t?new c("BOOLEAN",e):f_(e)?new c("INT",e):g_(e)?new c("DOUBLE",e):(t=e)&&"timestampValue"in t&&t.timestampValue?new c("TIMESTAMP",e):(t=e)&&"stringValue"in t?new c("STRING",e):(t=e)&&"bytesValue"in t?new c("BYTES",e):e.referenceValue?new c("REFERENCE",e):e.geoPointValue?new c("GEO_POINT",e):__(e)?new c("ARRAY",e):D_(e)?new c("VECTOR",e):E_(e)?new c("MAP",e):new c("ERROR",void 0);var t}Bi(){return"ERROR"===this.type||"UNSET"===this.type}Li(){return"NULL"===this.type}}function rD(e){if(!e.Bi())return e.value}function nD(e){return e instanceof Tb?e._expr:e}function d(e){if((e=nD(e))instanceof wb)return new iD(e);if(e instanceof bb)return new sD(e);if(e instanceof yb)return new aD(e);if(e instanceof s){if("add"===e.name)return new BD(e);if("subtract"===e.name)return new pD(e);if("multiply"===e.name)return new fD(e);if("divide"===e.name)return new gD(e);if("mod"===e.name)return new mD(e);if("and"===e.name)return new CD(e);if("equal"===e.name)return new xD(e);if("not_equal"===e.name)return new PD(e);if("less_than"===e.name)return new FD(e);if("less_than_or_equal"===e.name)return new LD(e);if("greater_than"===e.name)return new MD(e);if("greater_than_or_equal"===e.name)return new UD(e);if("array_concat"===e.name)return new VD(e);if("array_reverse"===e.name)return new GD(e);if("array_contains"===e.name)return new HD(e);if("array_contains_all"===e.name)return new qD(e);if("array_contains_any"===e.name)return new jD(e);if("array_length"===e.name)return new KD(e);if("array_element"===e.name)return new zD(e);if("equal_any"===e.name)return new wD(e);if("not_equal_any"===e.name)return new ED(e);if("is_nan"===e.name)return new bD(e);if("is_not_nan"===e.name)return new DD(e);if("is_null"===e.name)return new ID(e);if("is_not_null"===e.name)return new TD(e);if("is_error"===e.name)return new SD(e);if("exists"===e.name)return new ND(e);if("not"===e.name)return new vD(e);if("or"===e.name)return new _D(e);if("xor"===e.name)return new yD(e);if("conditional"===e.name)return new kD(e);if("maximum"===e.name)return new AD(e);if("minimum"===e.name)return new RD(e);if("reverse"===e.name)return new JD(e);if("replace_first"===e.name)return new WD(e);if("replace_all"===e.name)return new QD(e);if("char_length"===e.name)return new YD(e);if("byte_length"===e.name)return new $D(e);if("like"===e.name)return new ZD(e);if("regex_contains"===e.name)return new eI(e);if("regex_match"===e.name)return new tI(e);if("string_contains"===e.name)return new rI(e);if("starts_with"===e.name)return new nI(e);if("ends_with"===e.name)return new iI(e);if("to_lower"===e.name)return new sI(e);if("to_upper"===e.name)return new aI(e);if("trim"===e.name)return new oI(e);if("string_concat"===e.name)return new lI(e);if("map_get"===e.name)return new uI(e);if("cosine_distance"===e.name)return new cI(e);if("dot_product"===e.name)return new dI(e);if("euclidean_distance"===e.name)return new BI(e);if("vector_length"===e.name)return new pI(e);if("unix_micros_to_timestamp"===e.name)return new NI(e);if("timestamp_to_unix_micros"===e.name)return new OI(e);if("unix_millis_to_timestamp"===e.name)return new kI(e);if("timestamp_to_unix_millis"===e.name)return new xI(e);if("unix_seconds_to_timestamp"===e.name)return new AI(e);if("timestamp_to_unix_seconds"===e.name)return new PI(e);if("timestamp_add"===e.name)return new LI(e);if("timestamp_subtract"===e.name)return new MI(e)}throw new Error("Unknown Expr : "+e)}class iD{constructor(e){this.expr=e}evaluate(e,t){var r;return this.expr.fieldName===OC?c.newValue({referenceValue:Qw(e.serializer,t.key)}):"__update_time__"===this.expr.fieldName?c.newValue({timestampValue:jw(e.serializer,t.version)}):"__create_time__"===this.expr.fieldName?c.newValue({timestampValue:jw(e.serializer,t.createTime)}):(r=t.data.field(this.expr._fieldPath))?hv(r)?c.newValue(((e,t)=>{if("estimate"===e.serverTimestampBehavior)return{timestampValue:jw(e.serializer,R.fromTimestamp(dv(t)))};if("previous"===e.serverTimestampBehavior){let e=cv(t);if(e)return e}return{nullValue:"NULL_VALUE"}})(e,r)):c.newValue(r):c.Mi()}}class sD{constructor(e){this.expr=e}evaluate(e,t){return c.newValue(this.expr._getValue())}}class aD{constructor(e){this.expr=e}evaluate(t,r){var e=this.expr.di.map(e=>d(e).evaluate(t,r));return e.some(e=>e.Bi())?c.Oi():c.newValue({arrayValue:{values:e.map(e=>e.value)}})}}function oD(e){return g_(e)?Number(e.doubleValue):Number(e.integerValue)}function lD(e){return BigInt(e.integerValue)}let uD=BigInt("0x7fffffffffffffff"),hD=-BigInt("0x8000000000000000");class cD{constructor(e){this.expr=e}evaluate(t,r){T(2<=this.expr.params.length,24778);let n=d(this.expr.params[0]).evaluate(t,r),e=d(this.expr.params[1]).evaluate(t,r),i=this.$i(n,e);for(let n of this.expr.params.slice(2)){let e=d(n).evaluate(t,r);i=this.$i(i,e)}return i}$i(e,t){if(!e.Bi()&&!t.Bi()){if(e.Li()||t.Li())return c.Ni();var r=e.value,n=t.value;if((g_(r)||f_(r))&&(g_(n)||f_(n))){if(g_(r)||g_(n)){let e=this.Ui(r,n);return e?c.newValue(e):c.Oi()}if(f_(r)&&f_(n)){let e=this.ki(r,n);return void 0===e?c.Oi():"number"==typeof e?c.newValue({doubleValue:e}):e<hD||e>uD?c.Oi():c.newValue({integerValue:""+e})}}}return c.Oi()}}function dD(r,n){{if(Qv(r)!==Qv(n))return"TYPE_MISMATCH";if(w_(r)||w_(n))return"NOT_EQ";if(y_(r)&&y_(n))return"EQ";if(y_(r)||y_(n))return"NULL";if(__(r)&&__(n)){var i=r.arrayValue,s=n.arrayValue;if(i.values?.length!==s.values?.length)return"NOT_EQ";let e=!1;for(let t=0;t<(i.values?.length??0);t++){var a=i.values[t],o=s.values[t];switch(dD(a,o)){case"EQ":break;case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":e=!0;break;default:I(44609,{Qi:a,qi:o})}}return e?"NULL":"EQ"}if(D_(r)&&D_(n)||E_(r)&&E_(n)){var l=r.mapValue,u=n.mapValue,h=l.fields||{},c=u.fields||{};if(UC(h)!==UC(c))return"NOT_EQ";let e=!1;for(let t in h)if(h.hasOwnProperty(t)){if(void 0===c[t])return"NOT_EQ";switch(dD(h[t],c[t])){case"NOT_EQ":case"TYPE_MISMATCH":return"NOT_EQ";case"NULL":e=!0}}return e?"NULL":"EQ"}return Yv(r,n,{be:!1,ye:!0,we:!0})?"EQ":"NOT_EQ"}}class BD extends cD{ki(e,t){return lD(e)+lD(t)}Ui(e,t){return{doubleValue:oD(e)+oD(t)}}}class pD extends cD{constructor(e){super(e),this.expr=e}ki(e,t){return lD(e)-lD(t)}Ui(e,t){return{doubleValue:oD(e)-oD(t)}}}class fD extends cD{constructor(e){super(e),this.expr=e}ki(e,t){return lD(e)*lD(t)}Ui(e,t){return{doubleValue:oD(e)*oD(t)}}}class gD extends cD{constructor(e){super(e),this.expr=e}ki(e,t){var r=lD(t);if(r!==BigInt(0))return lD(e)/r}Ui(e,t){var r=oD(t);return 0===r?{doubleValue:Cv(r)?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY}:{doubleValue:oD(e)/r}}}class mD extends cD{constructor(e){super(e),this.expr=e}ki(e,t){var r=lD(t);if(r!==BigInt(0))return lD(e)%r}Ui(e,t){var r=oD(t);if(0!==r)return{doubleValue:oD(e)%r}}}class CD{constructor(e){this.expr=e}evaluate(e,t){let r=!1,n=!1;for(var i of this.expr.params){var s=d(i).evaluate(e,t);switch(s.type){case"BOOLEAN":if(s.value?.booleanValue)break;return c.newValue(Wv);case"NULL":n=!0;break;default:r=!0}}return r?c.Oi():n?c.Ni():c.newValue(Jv)}}class vD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,9634);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"BOOLEAN":return c.newValue({booleanValue:!r.value?.booleanValue});case"NULL":return c.Ni();default:return c.Oi()}}}class _D{constructor(e){this.expr=e}evaluate(e,t){let r=!1,n=!1;for(var i of this.expr.params){var s=d(i).evaluate(e,t);switch(s.type){case"BOOLEAN":if(s.value?.booleanValue)return c.newValue(Jv);break;case"NULL":n=!0;break;default:r=!0}}return r?c.Oi():n?c.Ni():c.newValue(Wv)}}class yD{constructor(e){this.expr=e}evaluate(e,t){let r=!1,n=!1;for(var i of this.expr.params){var s=d(i).evaluate(e,t);switch(s.type){case"BOOLEAN":r=yD.xor(r,!!s.value?.booleanValue);break;case"NULL":n=!0;break;default:return c.Oi()}}return n?c.Ni():c.newValue({booleanValue:r})}static xor(e,t){return(e||t)&&!(e&&t)}}class wD{constructor(e){this.expr=e}evaluate(e,t){T(2===this.expr.params.length,55094);let r=!1;var n=d(this.expr.params[0]).evaluate(e,t);switch(n.type){case"NULL":r=!0;break;case"ERROR":case"UNSET":return c.Oi()}var i=d(this.expr.params[1]).evaluate(e,t);switch(i.type){case"ARRAY":break;case"NULL":r=!0;break;default:return c.Oi()}if(r)return c.Ni();for(let e of i.value?.arrayValue?.values??[])switch(y_(n.value)&&y_(e)?"EQ":dD(n.value,e)){case"EQ":return c.newValue(Jv);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":r=!0;break;default:I(44608,{value:n.value,candidate:e})}return r?c.Ni():c.newValue(Wv)}}class ED{constructor(e){this.expr=e}evaluate(e,t){return new vD(new s("not",[new s("equal_any",this.expr.params)])).evaluate(e,t)}}class bD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,23322);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"INT":return c.newValue(Wv);case"DOUBLE":return c.newValue({booleanValue:isNaN(oD(r.value))});case"NULL":return c.Ni();default:return c.Oi()}}}class DD{constructor(e){this.expr=e}evaluate(e,t){return T(1===this.expr.params.length,50406),new vD(new s("not",[new s("is_nan",this.expr.params)])).evaluate(e,t)}}class ID{constructor(e){this.expr=e}evaluate(e,t){switch(T(1===this.expr.params.length,23123),d(this.expr.params[0]).evaluate(e,t).type){case"NULL":return c.newValue(Jv);case"UNSET":case"ERROR":return c.Oi();default:return c.newValue(Wv)}}}class TD{constructor(e){this.expr=e}evaluate(e,t){return T(1===this.expr.params.length,23167),new vD(new s("not",[new s("is_null",this.expr.params)])).evaluate(e,t)}}class SD{constructor(e){this.expr=e}evaluate(e,t){return T(1===this.expr.params.length,5228),"ERROR"===d(this.expr.params[0]).evaluate(e,t).type?c.newValue(Jv):c.newValue(Wv)}}class ND{constructor(e){this.expr=e}evaluate(e,t){switch(T(1===this.expr.params.length,6877),d(this.expr.params[0]).evaluate(e,t).type){case"ERROR":return c.Oi();case"UNSET":return c.newValue(Wv);default:return c.newValue(Jv)}}}class kD{constructor(e){this.expr=e}evaluate(e,t){T(3===this.expr.params.length,11706);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"BOOLEAN":return(r.value?.booleanValue?d(this.expr.params[1]):d(this.expr.params[2])).evaluate(e,t);case"NULL":return d(this.expr.params[2]).evaluate(e,t);default:return c.Oi()}}}class AD{constructor(e){this.expr=e}evaluate(t,r){var e=this.expr.params.map(e=>d(e).evaluate(t,r));let n;for(let t of e)switch(t.type){case"ERROR":case"UNSET":case"NULL":continue;default:n=void 0===n||0<Xv(t.value,n.value)?t:n}return void 0===n?c.Ni():n}}class RD{constructor(e){this.expr=e}evaluate(t,r){var e=this.expr.params.map(e=>d(e).evaluate(t,r));let n;for(let t of e)switch(t.type){case"ERROR":case"UNSET":case"NULL":continue;default:n=void 0===n||Xv(t.value,n.value)<0?t:n}return void 0===n?c.Ni():n}}class OD{constructor(e){this.expr=e}evaluate(e,t){T(2===this.expr.params.length,31033,this.expr.name+"() function should have exactly 2 params");var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"ERROR":case"UNSET":return c.Oi()}var n=d(this.expr.params[1]).evaluate(e,t);switch(n.type){case"ERROR":case"UNSET":return c.Oi()}return this.Ki(r,n)}}class xD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){if(e.Li()&&t.Li())return c.newValue(Jv);if(e.Li()||t.Li())return c.newValue(Wv);if(w_(e.value)||w_(t.value))return c.newValue(Wv);if(Qv(e.value)!==Qv(t.value))return c.newValue(Wv);switch(dD(e.value,t.value)){case"EQ":return c.newValue(Jv);case"NOT_EQ":return c.newValue(Wv);case"NULL":return c.Ni();default:I(44615,{left:e,right:t})}}}class PD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){switch(dD(e.value,t.value)){case"EQ":return c.newValue(Wv);case"NOT_EQ":case"TYPE_MISMATCH":return c.newValue(Jv);case"NULL":return c.Ni();default:I(44614,{left:e,right:t})}}}class FD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){return Qv(e.value)!==Qv(t.value)||w_(e.value)||w_(t.value)?c.newValue(Wv):c.newValue({booleanValue:Xv(e.value,t.value)<0})}}class LD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){return Qv(e.value)!==Qv(t.value)||w_(e.value)||w_(t.value)?c.newValue(Wv):"EQ"===dD(e.value,t.value)?c.newValue(Jv):c.newValue({booleanValue:Xv(e.value,t.value)<0})}}class MD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){return Qv(e.value)!==Qv(t.value)||w_(e.value)||w_(t.value)?c.newValue(Wv):c.newValue({booleanValue:0<Xv(e.value,t.value)})}}class UD extends OD{constructor(e){super(e),this.expr=e}Ki(e,t){return Qv(e.value)!==Qv(t.value)||w_(e.value)||w_(t.value)?c.newValue(Wv):"EQ"===dD(e.value,t.value)?c.newValue(Jv):c.newValue({booleanValue:0<Xv(e.value,t.value)})}}class VD{constructor(e){this.expr=e}evaluate(e,t){throw new Error("Unimplemented")}}class GD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,216);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"NULL":return c.Ni();case"ARRAY":{let e=r.value.arrayValue?.values??[];return c.newValue({arrayValue:{values:[...e].reverse()}})}default:return c.Oi()}}}class HD{constructor(e){this.expr=e}evaluate(e,t){return T(2===this.expr.params.length,52884),new wD(new s("eq_any",[this.expr.params[1],this.expr.params[0]])).evaluate(e,t)}}class qD{constructor(e){this.expr=e}evaluate(r,e){T(2===this.expr.params.length,1392);let n=!1,t=d(this.expr.params[0]).evaluate(r,e);switch(t.type){case"ARRAY":break;case"NULL":n=!0;break;default:return c.Oi()}var i=d(this.expr.params[1]).evaluate(r,e);switch(i.type){case"ARRAY":break;case"NULL":n=!0;break;default:return c.Oi()}if(n)return c.Ni();var i=i.value?.arrayValue?.values??[],s=t.value?.arrayValue?.values??[];for(let r of i){let e=!1;n=!1;for(let t of s){switch(y_(r)&&y_(t)?"EQ":dD(r,t)){case"EQ":e=!0;break;case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":n=!0;break;default:I(44613,{value:t,search:r})}if(e)break}if(!e)return c.newValue(Wv)}return c.newValue(Jv)}}class jD{constructor(e){this.expr=e}evaluate(t,e){T(2===this.expr.params.length,2680);let r=!1;var n=d(this.expr.params[0]).evaluate(t,e);switch(n.type){case"ARRAY":break;case"NULL":r=!0;break;default:return c.Oi()}var i=d(this.expr.params[1]).evaluate(t,e);switch(i.type){case"ARRAY":break;case"NULL":r=!0;break;default:return c.Oi()}if(r)return c.Ni();var s=i.value?.arrayValue?.values??[];for(let t of n.value?.arrayValue?.values??[])for(let e of s)switch(y_(t)&&y_(e)?"EQ":dD(t,e)){case"EQ":return c.newValue(Jv);case"NOT_EQ":case"TYPE_MISMATCH":break;case"NULL":r=!0;break;default:I(60403,{value:t,search:e})}return r?c.Ni():c.newValue(Wv)}}class KD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,38605);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"NULL":return c.Ni();case"ARRAY":return c.newValue({integerValue:""+(r.value?.arrayValue?.values?.length??0)});default:return c.Oi()}}}class zD{constructor(e){this.expr=e}evaluate(e,t){throw new Error("Unimplemented")}}class JD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,1508);var n=d(this.expr.params[0]).evaluate(e,t);switch(n.type){case"NULL":return c.Ni();case"BYTES":{let t=n.value?.bytesValue;if("string"!=typeof t)return c.newValue({bytesValue:new Uint8Array(t).reverse()});{let e=tv.fromBase64String(t).toUint8Array();return e.reverse(),c.newValue({bytesValue:tv.fromUint8Array(e).toBase64()})}}case"STRING":{let e=n.value?.stringValue,t=new Intl.__PRIVATE_Segmenter(void 0,{granularity:"grapheme"}).segment(e),r=Array.from(t,e=>e.segment).reverse();return c.newValue({stringValue:r.join("")})}default:return c.Oi()}}}class WD{constructor(e){this.expr=e}evaluate(e,t){throw new Error("Unimplemented")}}class QD{constructor(e){this.expr=e}evaluate(e,t){throw new Error("Unimplemented")}}class YD{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,19400);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"NULL":return c.Ni();case"STRING":{let e=(e=>{let t=0;for(let i=0;i<e.length;i++){var r,n=e.codePointAt(i);if(void 0===n)return;if(n<=65535)55296<=n&&n<=57343&&n<=56319&&void 0!==(r=e.codePointAt(i+1))&&56320<=r&&r<=57343?(t+=1,i++):t+=1;else{if(!(n<=1114111))return;t+=1,i++}}return t})(r.value.stringValue);return void 0===e?c.Oi():c.newValue({integerValue:e})}default:return c.Oi()}}}class $D{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,8486);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"BYTES":{let e=r.value?.bytesValue;return"string"==typeof e?c.newValue({integerValue:tv.fromBase64String(e).toUint8Array().length}):c.newValue({integerValue:new Uint8Array(e).length})}case"STRING":{let e=(e=>{let t=0;for(let i=0;i<e.length;i++){var r=e.codePointAt(i);if(void 0===r)return;if(55296<=r&&r<=57343){if(!(r<=56319))return;var n=e.codePointAt(i+1);if(void 0===n||!(56320<=n&&n<=57343))return;t+=4,i++}else if(r<=127)t+=1;else if(r<=2047)t+=2;else if(r<=65535)t+=3;else{if(!(r<=1114111))return;t+=4,i++}}return t})(r.value?.stringValue);return void 0===e?c.Oi():c.newValue({integerValue:e})}case"NULL":return c.Ni();default:return c.Oi()}}}class XD{constructor(e){this.expr=e}evaluate(e,t){T(2===this.expr.params.length,39773,this.expr.name+"() function should have exactly two parameters");let r=!1;var n=d(this.expr.params[0]).evaluate(e,t);switch(n.type){case"STRING":break;case"NULL":r=!0;break;default:return c.Oi()}var i=d(this.expr.params[1]).evaluate(e,t);switch(i.type){case"STRING":break;case"NULL":r=!0;break;default:return c.Oi()}return r?c.Ni():this.Wi(n.value?.stringValue,i.value?.stringValue)}}class ZD extends XD{Wi(e,t){try{var r=(e=>{let t="";for(let n=0;n<e.length;n++){var r=e.charAt(n);switch(r){case"_":t+=".";break;case"%":t+=".*";break;case"\\":case".":case"*":case"?":case"+":case"^":case"$":case"|":case"(":case")":case"[":case"]":case"{":case"}":t+="\\"+r;break;default:t+=r}}return"^"+t+"$"})(t),n=dC.compile(r);return c.newValue({booleanValue:n.matches(e)})}catch(e){return mC(`Invalid LIKE pattern converted to regex: ${t}, returning error. Error: `+e),c.Oi()}}}class eI extends XD{Wi(e,t){try{var r=dC.compile(t);return c.newValue({booleanValue:r.test(e)})}catch(e){return mC(`Invalid regex pattern found in regex_contains: ${t}, returning error`),c.Oi()}}}class tI extends XD{Wi(e,t){try{return c.newValue({booleanValue:dC.compile(t).matches(e)})}catch(e){return mC(`Invalid regex pattern found in regex_match: ${t}, returning error`),c.Oi()}}}class rI extends XD{Wi(e,t){return c.newValue({booleanValue:e.includes(t)})}}class nI extends XD{Wi(e,t){return c.newValue({booleanValue:e.startsWith(t)})}}class iI extends XD{Wi(e,t){return c.newValue({booleanValue:e.endsWith(t)})}}class sI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,29079);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"STRING":return c.newValue({stringValue:r.value?.stringValue?.toLowerCase()});case"NULL":return c.Ni();default:return c.Oi()}}}class aI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,60487);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"STRING":return c.newValue({stringValue:r.value?.stringValue?.toUpperCase()});case"NULL":return c.Ni();default:return c.Oi()}}}class oI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,28544);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"STRING":return c.newValue({stringValue:r.value?.stringValue?.trim()});case"NULL":return c.Ni();default:return c.Oi()}}}class lI{constructor(e){this.expr=e}evaluate(t,r){var e=this.expr.params.map(e=>d(e).evaluate(t,r));let n="",i=!1;for(let t of e)switch(t.type){case"STRING":n+=t.value.stringValue;break;case"NULL":i=!0;break;default:return c.Oi()}return i?c.Ni():c.newValue({stringValue:n})}}class uI{constructor(e){this.expr=e}evaluate(e,t){T(2===this.expr.params.length,4483);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"UNSET":return c.Mi();case"MAP":break;default:return c.Oi()}var n=d(this.expr.params[1]).evaluate(e,t);return"STRING"!==n.type?c.Oi():void 0===(r=r.value?.mapValue?.fields?.[n.value?.stringValue])?c.Mi():c.newValue(r)}}class hI{constructor(e){this.expr=e}evaluate(e,t){T(2===this.expr.params.length,25231,this.expr.name+"() function should have exactly 2 params");let r=!1;var n=d(this.expr.params[0]).evaluate(e,t);switch(n.type){case"VECTOR":break;case"NULL":r=!0;break;default:return c.Oi()}var i=d(this.expr.params[1]).evaluate(e,t);switch(i.type){case"VECTOR":break;case"NULL":r=!0;break;default:return c.Oi()}return r?c.Ni():(n=I_(n.value),i=I_(i.value),void 0===n||void 0===i||n.values?.length!==i.values?.length||void 0===(n=this.Gi(n,i))||isNaN(n)?c.Oi():c.newValue({doubleValue:n}))}}class cI extends hI{Gi(e,t){var a=e?.values??[],o=t?.values??[];if(0!==a.length){let r=0,n=0,i=0;for(let s=0;s<a.length;s++){if(!v_(a[s])||!v_(o[s]))return;let e=oD(a[s]),t=oD(o[s]);r+=e*t,n+=e*e,i+=t*t}let e=Math.sqrt(n)*Math.sqrt(i);if(0!==e)return 1-Math.max(-1,Math.min(1,r/e))}}}class dI extends hI{Gi(e,t){var r=e?.values??[],n=t?.values??[];if(0===r.length)return 0;let i=0;for(let s=0;s<r.length;s++){if(!v_(r[s])||!v_(n[s]))return;i+=oD(r[s])*oD(n[s])}return i}}class BI extends hI{Gi(e,t){var r=e?.values??[],n=t?.values??[];if(0===r.length)return 0;let i=0;for(let s=0;s<r.length;s++){if(!v_(r[s])||!v_(n[s]))return;let e=oD(r[s]),t=oD(n[s]);i+=Math.pow(e-t,2)}return Math.sqrt(i)}}class pI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,39044);var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"VECTOR":{let e=I_(r.value);return c.newValue({integerValue:e?.values?.length??0})}case"NULL":return c.Ni();default:return c.Oi()}}}let fI=BigInt(-62135596800),gI=BigInt(253402300799),mI=BigInt(1e3),CI=BigInt(1e6),vI=fI*mI,_I=gI*mI+BigInt(999),yI=fI*CI,wI=gI*CI+BigInt(999999);function EI(e){return e>=yI&&e<=wI}function bI(e){return e>=fI&&e<=gI}function DI(e,t){var r=BigInt(e);return!(r<fI||r>gI||t<0||1e9<=t||r===fI&&0!==t||r===gI&&999999999<t)}function II(e,t){return t<0?{seconds:e-1,nanos:t+1e9}:{seconds:e,nanos:t}}function TI(e){return BigInt(e.seconds)*CI+BigInt(Math.trunc(e.nanoseconds/1e3))}class SI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,49262,this.expr.name+"() function should have exactly one parameter");var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"INT":return this.toTimestamp(BigInt(r.value.integerValue));case"NULL":return c.Ni();default:return c.Oi()}}}class NI extends SI{toTimestamp(e){var t,r;return EI(e)&&DI(t=(r=II(Number(e/CI),Number(e%CI*BigInt(1e3)))).seconds,r=r.nanos)?c.newValue({timestampValue:{seconds:t,nanos:r}}):c.Oi()}}class kI extends SI{toTimestamp(e){var t,r,n;return(t=e)>=vI&&t<=_I&&DI(r=(n=II(Number(e/mI),Number(e%mI*BigInt(1e6)))).seconds,n=n.nanos)?c.newValue({timestampValue:{seconds:r,nanos:n}}):c.Oi()}}class AI extends SI{toTimestamp(e){var t;return bI(e)?(t=Number(e),c.newValue({timestampValue:{seconds:t,nanos:0}})):c.Oi()}}class RI{constructor(e){this.expr=e}evaluate(e,t){T(1===this.expr.params.length,1265,this.expr.name+"() function should have exactly one parameter");var r=d(this.expr.params[0]).evaluate(e,t);switch(r.type){case"TIMESTAMP":break;case"NULL":return c.Ni();default:return c.Oi()}r=Hw(r.value.timestampValue);return DI(r.seconds,r.nanoseconds)?this.ji(r):c.Oi()}}class OI extends RI{ji(e){var t=TI(e);return EI(t)?c.newValue({integerValue:""+t.toString()}):c.Oi()}}class xI extends RI{ji(e){var t=TI(e),r=t/BigInt(1e3),t=t%BigInt(1e3);return r>BigInt(0)||t===BigInt(0)?c.newValue({integerValue:r.toString()}):c.newValue({integerValue:(r-BigInt(1)).toString()})}}class PI extends RI{ji(e){var t=BigInt(e.seconds);return bI(t)?c.newValue({integerValue:t.toString()}):c.Oi()}}class FI{constructor(e){this.expr=e}evaluate(e,t){T(3===this.expr.params.length,2775,this.expr.name+"() function should have exactly 3 parameters");let r=!1;var n=d(this.expr.params[0]).evaluate(e,t);switch(n.type){case"TIMESTAMP":break;case"NULL":r=!0;break;default:return c.Oi()}var i=d(this.expr.params[1]).evaluate(e,t);let s;switch(i.type){case"STRING":if(void 0===(s=(e=>{switch(e){case"microsecond":return"microsecond";case"millisecond":return"millisecond";case"second":return"second";case"minute":return"minute";case"hour":return"hour";case"day":return"day";default:return}})(i.value.stringValue)))return c.Oi();break;case"NULL":r=!0;break;default:return c.Oi()}var a=d(this.expr.params[2]).evaluate(e,t);switch(a.type){case"INT":break;case"NULL":r=!0;break;default:return c.Oi()}if(r)return c.Ni();var o=BigInt(a.value.integerValue);let l;try{switch(s){case"microsecond":l=o;break;case"millisecond":l=o*BigInt(1e3);break;case"second":l=o*BigInt(1e6);break;case"minute":l=o*BigInt(6e7);break;case"hour":l=o*BigInt(36e8);break;case"day":l=o*BigInt(864e8);break;default:return c.Oi()}if("microsecond"!==s&&o!==BigInt(0)&&l/o!==BigInt(this.zi(s)))return c.Oi()}catch(e){return mC("Error during timestamp arithmetic: "+e),c.Oi()}var a=Hw(n.value.timestampValue);return DI(a.seconds,a.nanoseconds)&&(n=TI(a),EI(a=this.Hi(n,l)))&&(n=Number(a/CI),DI(n=(a=a%CI)<0?n-1:n,a=Number((a<0?a+CI:a)*BigInt(1e3))))?c.newValue({timestampValue:{seconds:n,nanos:a}}):c.Oi()}zi(e){switch(e){case"millisecond":return 1e3;case"second":return 1e6;case"minute":return 6e7;case"hour":return 36e8;case"day":return 864e8;default:return 1}}}class LI extends FI{Hi(e,t){return e+t}}class MI extends FI{Hi(e,t){return e-t}}function UI(e){if((e=nD(e))instanceof wb)return`fld(${e.fieldName})`;if(e instanceof bb)return`cst(${t=e.value,null===t?"null":"number"==typeof t?t.toString():"string"==typeof t?`"${t}"`:t instanceof R0?`ref(${t.path})`:t instanceof U0?`vec(${JSON.stringify(t)})`:JSON.stringify(t)})`;var t;if(e instanceof s)return`fn(${e.name},[${e.params.map(UI).join(",")}])`;if("ListOfExpressions"===e.expressionType)return`list([${e.di.map(UI).join(",")}])`;throw new Error("Unrecognized expr "+JSON.stringify(e,null,2))}function VI(e){return""+Array.from(e.entries()).sort().map(([e,t])=>e+"="+UI(t)).join(",")}function GI(e){return e.stages.map(t=>{var e;if(t instanceof Lb)return`${t._name}(${VI(t.fields)})`;if(t instanceof Mb){let e=`${t._name}(${VI(t.accumulators)})`;return 0<t.groups.size&&(e+=`grouping(${VI(t.groups)})`),e}if(t instanceof Ub)return`${t._name}(${VI(t.groups)})`;if(t instanceof Vb)return t._name+`(${t.pi})`;if(t instanceof Gb)return t._name+`(${t.collectionId})`;if(t instanceof Hb)return t._name+"()";if(t instanceof qb)return`${t._name}(${t.gi.sort()})`;if(t instanceof jb)return`${t._name}(${UI(t.condition)})`;if(t instanceof Kb)return t._name+`(${t.limit})`;if(t instanceof Wb)return`${t._name}(${e=t.orderings,e.map(e=>""+UI(e.expr)+e.direction).join(",")})`;throw new Error("Unrecognized stage "+t._name)}).join("|")}function HI(e,t){return GI(e)===GI(t)}function qI(e){return e instanceof Yb}function jI(e){return(qI(e)?GI:sw)(e)}function KI(e){return qI(e)?GI(e):Hy(tw(e=e))+"|lt:"+e.limitType}function zI(e,t){return e instanceof Yb&&t instanceof Yb?HI(e,t):!(e instanceof Yb&&!(t instanceof Yb)||!(e instanceof Yb)&&t instanceof Yb)&&iw(e,t)}function JI(e){return(jy(e)?GI:Hy)(e)}function WI(e,t){return e instanceof Yb&&t instanceof Yb?HI(e,t):!(e instanceof Yb&&!(t instanceof Yb)||!(e instanceof Yb)&&t instanceof Yb)&&qy(e,t)}function QI(e,t){var r=(e=>{let t=!1;var r,n=[];for(r of e)if(r instanceof Wb)if(t=!0,r.orderings.some(e=>e.expr instanceof wb&&e.expr.fieldName===OC))n.push(r);else{let e=r.orderings.map(e=>e);e.push(Eb(OC).ascending()),n.push(new Wb(e,{}))}else r instanceof Kb&&(t||(n.push(new Wb([Eb(OC).ascending()],{})),t=!0)),n.push(r);return t||n.push(new Wb([Eb(OC).ascending()],{})),n})(e.stages);if(e.userDataReader){let t=e.userDataReader.createContext(3,"toCorePipeline");r.forEach(e=>e._readUserData(t))}return new Yb(e.userDataReader.serializer,r,t)}class YI{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,u=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var h=this.mutations[c];h.key.isEqual(e.key)&&(r=h,n=e,i=u[c],l=h=o=a=s=void 0,r instanceof ty?(a=n,o=i,h=(s=r).value.clone(),l=iy(s.fieldTransforms,a,o.transformResults),h.setAll(l),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof ry?(s=n,a=i,Y_((o=r).precondition,s)?(l=iy(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(ny(o)),h.setAll(l),s.convertToFoundDocument(a.version,h).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=Z_(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=Z_(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=gw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=X_(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(R.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),O())}isEqual(e){return this.batchId===e.batchId&&DC(this.mutations,e.mutations,(e,t)=>ey(e,t))&&DC(this.baseMutations,e.baseMutations,(e,t)=>ey(e,t))}}class $I{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){T(e.mutations.length===r.length,58842,{Ji:e.mutations.length,Yi:r.length});let n=mw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new $I(e,t,r,n)}}let XI="";function ZI(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=eT(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 XI:r+="";break;default:r+=e}}return r})(e.get(r),t);return eT(t)}function eT(e){return e+XI+""}function tT(r){let e=r.length;if(T(2<=e,64408,{path:r}),2===e)return T(r.charAt(0)===XI&&""===r.charAt(1),56145,{path:r}),PC.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(XI,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&I(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:I(61167,{path:r})}a=t+2}return new PC(n)}let rT="remoteDocuments",nT="owner",iT="owner",sT="mutationQueues",aT="mutations",oT="batchId",lT="userMutationsIndex",uT=["userId","batchId"];function hT(e,t){return[e,ZI(t)]}function cT(e,t,r){return[e,ZI(t),r]}let dT={},BT="documentMutations",pT="remoteDocumentsV14",fT=["prefixPath","collectionGroup","readTime","documentId"],gT="documentKeyIndex",mT=["prefixPath","collectionGroup","documentId"],CT="collectionGroupIndex",vT=["collectionGroup","readTime","prefixPath","documentId"],_T="remoteDocumentGlobal",yT="remoteDocumentGlobalKey",wT="targets",ET="queryTargetsIndex",bT=["canonicalId","targetId"],DT="targetDocuments",IT=["targetId","path"],TT="documentTargetsIndex",ST=["path","targetId"],NT="targetGlobalKey",kT="targetGlobal",AT="collectionParents",RT=["collectionId","parent"],OT="clientMetadata",xT="bundles",PT="namedQueries",FT="indexConfiguration",LT="collectionGroupIndex",MT="indexState",UT=["indexId","uid"],VT="sequenceNumberIndex",GT=["uid","sequenceNumber"],HT="indexEntries",qT=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],jT="documentKeyIndex",KT=["indexId","uid","orderedDocumentKey"],zT="documentOverlays",JT=["userId","collectionPath","documentId"],WT="collectionPathOverlayIndex",QT=["userId","collectionPath","largestBatchId"],YT="collectionGroupOverlayIndex",$T=["userId","collectionGroup","largestBatchId"],XT="globals",ZT=[sT,aT,BT,rT,wT,nT,kT,DT,OT,_T,AT,xT,PT],eS=[...ZT,zT],tS=[sT,aT,BT,pT,wT,nT,kT,DT,OT,_T,AT,xT,PT,zT],rS=tS,nS=[...rS,FT,MT,HT],iS=nS,sS=[...nS,XT],aS=sS;function oS(t,r,n){let e=t.store(aT),i=t.store(BT),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e._i({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{T(1===o,47070,{batchId:n.batchId})}));let u=[];for(let t of n.mutations){let e=cT(r,t.key.path,n.batchId);s.push(i.delete(e)),u.push(t.key)}return x.waitFor(s).next(()=>u)}function lS(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 I(14731);t=e.noDocument}return JSON.stringify(t).length}class uS extends u0{constructor(e,t){super(),this.Zi=e,this.currentSequenceNumber=t}}function hS(e,t){var r=e;return B0.qr(r.Zi,t)}class cS{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 dS{constructor(e,t,r,n,i=R.min(),s=R.min(),a=tv.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 dS(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new dS(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new dS(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new dS(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class BS{constructor(e){this.Xi=e}}function pS(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:fS(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Qw(e=e.Xi,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:Gw(e,r.version.toTimestamp()),createTime:Gw(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:gS(t.version)};else{if(!t.isUnknownDocument())return I(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:gS(t.version)}}return i}function fS(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function gS(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function mS(e){var t=new ZC(e.seconds,e.nanoseconds);return R.fromTimestamp(t)}function CS(t,r){let e=(r.baseMutations||[]).map(e=>iE(t.Xi,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=>iE(t.Xi,e)),i=ZC.fromMillis(r.localWriteTimeMs);return new YI(r.batchId,i,e,n)}function vS(e,t){var r,n,i=mS(t.readTime),s=void 0!==t.lastLimboFreeSnapshotVersion?mS(t.lastLimboFreeSnapshotVersion):R.min(),a=void 0!==t.query.structuredPipeline?(r=t.query,e=e.Xi,T(0<((n=r.structuredPipeline)?.pipeline?.stages??[]).length,1845),n=n?.pipeline?.stages.map(DS),new Yb(e,n)):void 0!==t.query.documents?(r=t.query,T(1===(n=r.documents.length),1966,{count:n}),tw($y(Xw(r.documents[0])))):tw(lE(t.query));return new dS(a,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,i,s,tv.fromBase64String(t.resumeToken))}function _S(e,t){var r=gS(t.snapshotVersion),n=gS(t.lastLimboFreeSnapshotVersion),i=jy(t.target)?hE(e.Xi,t.target):Ky(t.target)?aE(e.Xi,t.target):oE(e.Xi,t.target).Lt,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:JI(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function yS(e){var t=lE({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?nw(t,t.limit,"L"):t}function wS(e,t){return new cS(t.largestBatchId,iE(e.Xi,t.overlayMutation))}function ES(e,t){var r=t.path.lastSegment();return[e,ZI(t.path.popLast()),r]}function bS(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:gS(n.readTime),documentKey:ZI(n.documentKey.path),largestBatchId:n.largestBatchId}}function DS(e){switch(e.name){case"collection":return new Vb(e.args[0].referenceValue,{});case"collection_group":return new Gb(e.args[1].stringValue,{});case"database":return new Hb({});case"documents":return new qb(e.args.map(e=>e.referenceValue),{});case"where":return new jb(IS(e.args[0]),{});case"limit":var t=e.args[0].integerValue??e.args[0].doubleValue;return new Kb("number"==typeof t?t:Number(t),{});case"sort":return new Wb(e.args.map(e=>{return t=e.mapValue?.fields,new Ab(IS(t.expression),t.direction?.stringValue,"orderingFromProto");var t}),{});default:throw new Error(`Stage type: ${e.name} not supported.`)}}function IS(e){return e.fieldReferenceValue?new wb(lb("_exprFromProto",e.fieldReferenceValue),"_exprFromProto"):e.functionValue?(t=e,new s(t.functionValue.name,t.functionValue.args?.map(IS)||[])):bb._fromProto(e);var t}class TS{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.es={}}static ts(e,t,r,n){T(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new TS(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return NS(e)._i({index:lT,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,B,p){let f=kS(c),g=NS(c);return g.add({}).next(t=>{T("number"==typeof t,49019);let e=new YI(t,d,B,p),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>nE(i.Xi,e)),l=a.mutations.map(e=>nE(i.Xi,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let u=new kC((e,t)=>S(e.canonicalString(),t.canonicalString()));for(let h of p){let e=cT(this.userId,h.key.path,t);u=u.add(h.key.path.popLast()),n.push(g.put(r)),n.push(f.put(e,dT))}return u.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.es[t]=e.keys()}),x.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return NS(e).get(t).next(e=>e?(T(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),CS(this.serializer,e)):null)}ns(e,r){return this.es[r]?x.resolve(this.es[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.es[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return NS(e)._i({index:lT,range:r},(e,t,r)=>{t.userId===this.userId&&(T(t.batchId>=n,47524,{rs:n}),i=CS(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=gv;return NS(e)._i({index:lT,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,gv],[this.userId,Number.POSITIVE_INFINITY]);return NS(e).ti(lT,t).next(e=>e.map(e=>CS(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=hT(this.userId,l.path),t=IDBKeyRange.lowerBound(e),u=[];return kS(o)._i({range:t},(t,e,r)=>{let[n,i,s]=t,a=tT(i);if(n===this.userId&&l.path.isEqual(a))return NS(o).get(s).next(e=>{if(!e)throw I(61480,{ss:t,batchId:s});T(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),u.push(CS(this.serializer,e))});r.done()}).next(()=>u)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new kC(S),r=[];return e.forEach(a=>{var e=hT(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=kS(t)._i({range:e},(e,t,r)=>{var[n,i,s]=e,i=tT(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),x.waitFor(r).next(()=>this._s(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=hT(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new kC(S);return kS(e)._i({range:n},(e,t,r)=>{var[n,i,s]=e,i=tT(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this._s(e,l))}_s(e,t){let r=[],n=[];return t.forEach(t=>{n.push(NS(e).get(t).next(e=>{if(null===e)throw I(35274,{batchId:t});T(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(CS(this.serializer,e))}))}),x.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return oS(t.Zi,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.us(r.batchId)}),x.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}us(e){delete this.es[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return x.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return kS(r)._i({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=tT(t[1]);n.push(e)}else r.done()}).next(()=>{T(0===n.length,56720,{cs:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return SS(e,this.userId,t)}ls(e){return AS(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:gv,lastStreamToken:""})}}function SS(e,s,t){let r=hT(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return kS(e)._i({range:n,si:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function NS(e){return hS(e,aT)}function kS(e){return hS(e,BT)}function AS(e){return hS(e,sT)}class RS{getBundleMetadata(e,t){return OS(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:mS(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return OS(e).put({bundleId:(e=t).id,createTime:gS(Kw(e.createTime)),version:e.version})}getNamedQuery(e,t){return xS(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:yS(e.bundledQuery),readTime:mS(e.readTime)}})}saveNamedQuery(e,t){return xS(e).put({name:(e=t).name,readTime:gS(Kw(e.readTime)),bundledQuery:e.bundledQuery})}}function OS(e){return hS(e,xT)}function xS(e){return hS(e,PT)}class PS{constructor(e,t){this.serializer=e,this.userId=t}static ts(e,t){var r=t.uid||"";return new PS(e,r)}getOverlay(e,t){return FS(e).get(ES(this.userId,t)).next(e=>e?wS(this.serializer,e):null)}getOverlays(e,t){let r=gw();return x.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}getAllOverlays(e,n){let i=gw();return FS(e)._i((e,t)=>{var r=wS(this.serializer,t);r.largestBatchId>n&&i.set(r.getKey(),r)}).next(()=>i)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new cS(i,t);s.push(this.Es(n,r))}),x.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(ZI(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(FS(r).ii(WT,t))}),x.waitFor(i)}getOverlaysForCollection(e,t,r){let n=gw(),i=ZI(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return FS(e).ti(WT,s).next(e=>{for(var t of e){let e=wS(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=gw(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return FS(e)._i({index:YT,range:n},(e,t,r)=>{var n=wS(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}Es(e,t){return FS(e).put(((e,t,r)=>{var[,n,i]=ES(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:nE(e.Xi,r.mutation)}})(this.serializer,this.userId,t))}}function FS(e){return hS(e,zT)}class LS{hs(e){return hS(e,XT)}getSessionToken(e){return this.hs(e).get("sessionToken").next(e=>{var t=e?.value;return t?tv.fromUint8Array(t):tv.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.hs(e).put({name:"sessionToken",value:t.toUint8Array()})}}class MS{constructor(){}Ts(e,t){this.Ps(e,t),t.Is()}Ps(e,t){if("nullValue"in e)this.Rs(t,5);else if("booleanValue"in e)this.Rs(t,10),t.As(e.booleanValue?1:0);else if("integerValue"in e)this.Rs(t,15),t.As(iv(e.integerValue));else if("doubleValue"in e){var r=iv(e.doubleValue);this.Vs(r,t)}else if("timestampValue"in e)this.ds(e.timestampValue,t);else if("stringValue"in e)this.fs(e.stringValue,t),this.ps(t);else if("bytesValue"in e)this.Rs(t,30),t.gs(sv(e.bytesValue)),this.ps(t);else if("referenceValue"in e)this.ys(e.referenceValue,t);else if("geoPointValue"in e)this.ws(e.geoPointValue,t);else if("mapValue"in e){r=b_(e);if(r===a.fe)this.Rs(t,Number.MAX_SAFE_INTEGER);else if(r===a.me)this.bs(e.mapValue,t);else if(r===a.de)this.Rs(t,999);else if(r===a.Ve)this.Rs(t,7);else if(r===a.Ae){var n=sv(((e.mapValue?.fields)?.[Pv])?.bytesValue).toUint8Array();if(0===n[0]){let e=n.slice(1);this.Rs(t,30),t.gs(tv.fromUint8Array(e)),this.ps(t)}else this.Ss(e.mapValue,t)}else r===a.he?this.xs(e.mapValue,t):r===a.Re?this.vs(e.mapValue,t):r===a.Te?this.Ds(e.mapValue,t):r===a.Pe?this.Cs(e.mapValue,t):r===a.Ie?(n=parseFloat(e.mapValue.fields[Av].stringValue),this.Vs(n,t)):(this.Fs(e.mapValue,t),this.ps(t))}else"arrayValue"in e?(this.Os(e.arrayValue,t),this.ps(t)):I(19022,{Ms:e})}fs(e,t){this.Rs(t,25),this.Ns(e,t)}Ns(e,t){t.Bs(e)}Vs(e,t){isNaN(e)?this.Rs(t,13):(this.Rs(t,15),Cv(e)?t.As(0):t.As(e))}Cs(e,t){this.Rs(t,15),t.As(iv(e.fields[kv].integerValue))}ds(e,t){this.Rs(t,20),"string"==typeof e&&(e=nv(e)),t.Bs(""+(e.seconds||"")),t.As(e.nanos||0)}ws(e,t){this.Rs(t,45),t.As(e.latitude||0),t.As(e.longitude||0)}Fs(e,t){var r=e.fields||{};this.Rs(t,55);for(let e of Object.keys(r))this.fs(e,t),this.Ps(r[e],t)}bs(e,t){var r=e.fields||{},n=(this.Rs(t,53),Ev),i=r[n].arrayValue?.values?.length||0;this.Rs(t,15),t.As(iv(i)),this.fs(n,t),this.Ps(r[n],t)}Os(e,t){var r=e.values||[];this.Rs(t,50);for(let e of r)this.Ps(e,t)}ys(e,t){this.Rs(t,37);var r=e.split("/").filter(e=>0<e.length);A.fromSegments(r.slice(5)).path.forEach(e=>{this.Rs(t,60),this.Ns(e,t)})}Rs(e,t){e.As(t)}ps(e){e.As(2)}vs(e,t){this.Rs(t,22);var r=e.fields||{};r&&this.Fs(r[Rv].mapValue,t)}Ds(e,t){this.Rs(t,43);var r=(e.fields||{})[Nv]?.stringValue||"";t.gs(sv(r))}Ss(e,t){this.Rs(t,31);var r=(e.fields||{})[Pv]?.bytesValue||"";t.gs(sv(r)),this.ps(t)}xs(e,t){this.Rs(t,47);var r=(e.fields||{})[Iv]?.mapValue?.fields||{};r&&(t.Bs(r[Tv]?.stringValue||""),t.Bs(r[Sv]?.stringValue||"")),this.ps(t)}}MS.Ls=new MS;function US(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 VS{constructor(){this.buffer=new Uint8Array(1024),this.position=0}$s(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Us(r.value),r=t.next();this.ks()}Qs(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.qs(r.value),r=t.next();this.Ks()}Ws(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Us(e);else if(e<2048)this.Us(960|e>>>6),this.Us(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Us(480|e>>>12),this.Us(128|63&e>>>6),this.Us(128|63&e);else{let e=t.codePointAt(0);this.Us(240|e>>>18),this.Us(128|63&e>>>12),this.Us(128|63&e>>>6),this.Us(128|63&e)}}this.ks()}Gs(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.qs(e);else if(e<2048)this.qs(960|e>>>6),this.qs(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.qs(480|e>>>12),this.qs(128|63&e>>>6),this.qs(128|63&e);else{let e=t.codePointAt(0);this.qs(240|e>>>18),this.qs(128|63&e>>>12),this.qs(128|63&e>>>6),this.qs(128|63&e)}}this.Ks()}js(e){var t=this.zs(e),r=US(t);this.Hs(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]}Js(e){var t=this.zs(e),r=US(t);this.Hs(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])}Ys(){this.Zs(255),this.Zs(255)}Xs(){this.e_(255),this.e_(255)}reset(){this.position=0}seed(e){this.Hs(e.length),this.buffer.set(e,this.position),this.position+=e.length}t_(){return this.buffer.slice(0,this.position)}zs(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}Us(e){var t=255&e;0==t?(this.Zs(0),this.Zs(255)):255==t?(this.Zs(255),this.Zs(0)):this.Zs(t)}qs(e){var t=255&e;0==t?(this.e_(0),this.e_(255)):255==t?(this.e_(255),this.e_(0)):this.e_(e)}ks(){this.Zs(0),this.Zs(1)}Ks(){this.e_(0),this.e_(1)}Zs(e){this.Hs(1),this.buffer[this.position++]=e}e_(e){this.Hs(1),this.buffer[this.position++]=~e}Hs(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 GS{constructor(e){this.n_=e}gs(e){this.n_.$s(e)}Bs(e){this.n_.Ws(e)}As(e){this.n_.js(e)}Is(){this.n_.Ys()}}class HS{constructor(e){this.n_=e}gs(e){this.n_.Qs(e)}Bs(e){this.n_.Gs(e)}As(e){this.n_.Js(e)}Is(){this.n_.Xs()}}class qS{constructor(){this.n_=new VS,this.ascending=new GS(this.n_),this.descending=new HS(this.n_)}seed(e){this.n_.seed(e)}r_(e){return 0===e?this.ascending:this.descending}t_(){return this.n_.t_()}reset(){this.n_.reset()}}class jS{constructor(e,t,r,n){this.i_=e,this.s_=t,this.__=r,this.o_=n}a_(){var e=this.o_.length,t=0===e||255===this.o_[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.o_,0),t!==e?r.set([0],this.o_.length):++r[r.length-1],new jS(this.i_,this.s_,this.__,r)}u_(e,t,r){return{indexId:this.i_,uid:e,arrayValue:JS(this.__),directionalValue:JS(this.o_),orderedDocumentKey:JS(t),documentKey:r.path.toArray()}}c_(e,t,r){var n=this.u_(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function KS(e,t){var r=e.i_-t.i_;return 0!=r||0!==(r=zS(e.__,t.__))||0!==(r=zS(e.o_,t.o_))?r:A.comparator(e.s_,t.s_)}function zS(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 JS(r){if(ue()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function WS(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 QS{constructor(e){this.l_=new kC((e,t)=>LC.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.E_=e.orderBy,this.h_=[];for(var t of e.filters){let e=t;e.isInequality()?this.l_=this.l_.add(e):this.h_.push(e)}}get T_(){return 1<this.l_.size}P_(e){if(T(e.collectionGroup===this.collectionId,49279),this.T_)return!1;let t=Ry(e);if(void 0!==t&&!this.I_(t))return!1;var r=Oy(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.I_(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.l_.size){let t=this.l_.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.R_(t,e)||!this.A_(this.E_[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.E_.length||!this.A_(this.E_[s++],e))return!1}}return!0}V_(){if(this.T_)return null;let e=new kC(LC.comparator);var t,r,n=[];for(t of this.h_)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new xy(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new xy(t.field,0))));for(r of this.E_)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new xy(r.field,"asc"===r.dir?0:1)));return new Ay(Ay.UNKNOWN_ID,this.collectionId,n,Py.empty())}I_(e){for(var t of this.h_)if(this.R_(t,e))return!0;return!1}R_(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)}A_(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function YS(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(T(e instanceof dy||e instanceof By,34018),e instanceof dy)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=By.create(r,e.op);return n=rN(n),ZS(n)?n:(T(n instanceof By,64498),T(py(n),40251),T(1<n.filters.length,57927),n.filters.reduce((e,t)=>eN(e,t)))}(function t(r){if(T(r instanceof dy||r instanceof By,20012),r instanceof dy){if(r instanceof Dy){let e=r.value.arrayValue?.values?.map(e=>dy.create(r.field,"==",e))||[];return By.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return By.create(e,r.op)}(e)),T(ZS(t),7391),$S(t)||XS(t)?[t]:t.getFilters())}function $S(e){return e instanceof dy}function XS(e){return e instanceof By&&gy(e)}function ZS(e){return $S(e)||XS(e)||(e=>{if(e instanceof By&&fy(e)){for(var t of e.getFilters())if(!$S(t)&&!XS(t))return!1;return!0}return!1})(e)}function eN(e,t){var r,n;return T(e instanceof dy||e instanceof By,38388),T(t instanceof dy||t instanceof By,25473),rN(e instanceof dy?t instanceof dy?(r=e,n=t,By.create([r,n],"and")):tN(e,t):t instanceof dy?tN(t,e):((e,t)=>{if(T(0<e.filters.length&&0<t.filters.length,48005),py(e)&&py(t))return Cy(e,t.getFilters());let r=fy(e)?e:t,n=fy(e)?t:e,i=r.filters.map(e=>eN(e,n));return By.create(i,"or")})(e,t))}function tN(t,e){var r;return py(e)?Cy(e,t.getFilters()):(r=e.filters.map(e=>eN(t,e)),By.create(r,"or"))}function rN(t){if(T(t instanceof dy||t instanceof By,11850),t instanceof dy)return t;var e=t.getFilters();if(1===e.length)return rN(e[0]);if(my(t))return t;let r=e.map(e=>rN(e)),n=[];return r.forEach(e=>{e instanceof dy?n.push(e):e instanceof By&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:By.create(n,t.op)}class nN{constructor(){this.d_=new iN}addToCollectionParentIndex(e,t){return this.d_.add(t),x.resolve()}getCollectionParents(e,t){return x.resolve(this.d_.getEntries(t))}addFieldIndex(e,t){return x.resolve()}deleteFieldIndex(e,t){return x.resolve()}deleteAllFieldIndexes(e){return x.resolve()}createTargetIndexes(e,t){return x.resolve()}getDocumentsMatchingTarget(e,t){return x.resolve(null)}getIndexType(e,t){return x.resolve(0)}getFieldIndexes(e,t){return x.resolve([])}getNextCollectionGroupToUpdate(e){return x.resolve(null)}getMinOffset(e,t){return x.resolve(My.min())}getMinOffsetFromCollectionGroup(e,t){return x.resolve(My.min())}updateCollectionGroup(e,t,r){return x.resolve()}updateIndexEntries(e,t){return x.resolve()}}class iN{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new kC(PC.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 kC(PC.comparator)).toArray()}}let sN="IndexedDbIndexManager",aN=new Uint8Array(0);class oN{constructor(e,t){this.databaseId=t,this.f_=new iN,this.m_=new cw(e=>Hy(e),(e,t)=>qy(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.f_.has(t)?x.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.f_.add(t)}),n={collectionId:n,parent:ZI(r)},lN(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[IC(r),""],!1,!0);return lN(e).ti(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(tT(t.parent))}return n})}addFieldIndex(e,r){let t=hN(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=cN(e);return i.next(e=>{t.put(bS(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=hN(e),n=cN(e),i=uN(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=hN(e),r=uN(e),n=cN(e);return t.ii().next(()=>r.ii()).next(()=>n.ii())}createTargetIndexes(r,e){return x.forEach(this.p_(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new QS(t).V_();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=uN(e),r=!0,n=new Map;return x.forEach(this.p_(c),t=>this.g_(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let u=O(),h=[];return x.forEach(n,(e,t)=>{p(sN,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Hy(c));var r,n=((t,e)=>{var r=Ry(e);if(void 0!==r)for(let e of zy(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 Oy(r))for(let e of zy(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 Oy(e)){let e=(0===r.kind?Jy:Wy)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new ly(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of Oy(e)){let e=(0===r.kind?Wy:Jy)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new ly(n,i)})(t,e),o=this.y_(e,t,s),l=this.y_(e,t,a),i=this.w_(e,t,i),n=this.b_(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return x.forEach(n,e=>d.ri(e,c.limit).next(e=>{e.forEach(e=>{var t=A.fromSegments(e.documentKey);u.has(t)||(u=u.add(t),h.push(t))})}))}).next(()=>h)}return x.resolve(null)})}p_(t){let e=this.m_.get(t);return e||(e=0===t.filters.length?[t]:YS(By.create(t.filters,"and")).map(e=>Gy(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.m_.set(t,e)),e}b_(i,s,a,o,l,u,h){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),c=e/(null!=s?s.length:1),d=[];for(let B=0;B<e;++B){let t=s?this.S_(s[B/c]):aN,e=this.x_(i,t,a[B%c],o),r=this.v_(i,t,l[B%c],u),n=h.map(e=>this.x_(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}x_(e,t,r,n){var i=new jS(e,A.empty(),t,r);return n?i:i.a_()}v_(e,t,r,n){var i=new jS(e,A.empty(),t,r);return n?i.a_():i}g_(e,t){let n=new QS(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.P_(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.p_(t);return x.forEach(n,t=>this.g_(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new kC(LC.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)}D_(e,t){var r,n=new qS;for(r of Oy(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.r_(r.kind);MS.Ls.Ts(e,i)}return n.t_()}S_(e){var t=new qS;return MS.Ls.Ts(e,t.r_(0)),t.t_()}C_(e,t){var r,n=new qS;return MS.Ls.Ts(p_(this.databaseId,t),n.r_(0===(r=Oy(e)).length?0:r[r.length-1].kind)),n.t_()}w_(e,n,i){if(null===i)return[];let s=[],a=(s.push(new qS),0);for(var o of Oy(e)){let t=i[a++];for(let r of s)if(this.F_(n,o.fieldPath)&&__(t))s=this.O_(s,o,t);else{let e=r.r_(o.kind);MS.Ls.Ts(t,e)}}return this.M_(s)}y_(e,t,r){return this.w_(e,t,r.position)}M_(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].t_();return t}O_(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new qS;e.seed(t.t_()),MS.Ls.Ts(r,e.r_(n.kind)),s.push(e)}return s}F_(e,t){return!!e.filters.find(e=>e instanceof dy&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=hN(e),n=cN(e);return(t?r.ti(LT,IDBKeyRange.bound(t,t)):r.ti()).next(e=>{let s=[];return x.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new Py(e.sequenceNumber,new My(mS(e.readTime),new A(tT(e.documentKey)),e.largestBatchId)):Py.empty(),n=t.fields.map(([e,t])=>new xy(LC.fromServerFormat(e),t)),new Ay(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:S(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=hN(e),s=cN(e);return this.N_(e).next(t=>i.ti(LT,IDBKeyRange.bound(r,r)).next(e=>x.forEach(e,e=>s.put(bS(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return x.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?x.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),x.forEach(e,r=>this.B_(i,t,r).next(e=>{var t=this.L_(n,r);return e.isEqual(t)?x.resolve():this.U_(i,n,r,e,t)}))))})}k_(e,t,r,n){return uN(e).put(n.u_(this.uid,this.C_(r,t.key),t.key))}Q_(e,t,r,n){return uN(e).delete(n.c_(this.uid,this.C_(r,t.key),t.key))}B_(e,r,n){var t=uN(e);let i=new kC(KS);return t._i({index:jT,range:IDBKeyRange.only([n.indexId,this.uid,JS(this.C_(n,r))])},(e,t)=>{i=i.add(new jS(n.indexId,r,WS(t.arrayValue),WS(t.directionalValue)))}).next(()=>i)}L_(t,r){let n=new kC(KS);var i=this.D_(r,t);if(null!=i){let e=Ry(r);if(null!=e){var s=t.data.field(e.fieldPath);if(__(s))for(let e of s.arrayValue.values||[])n=n.add(new jS(r.indexId,t.key,this.S_(e),i))}else n=n.add(new jS(r.indexId,t.key,aN,i))}return n}U_(t,r,s,e,a){p(sN,"Updating index entries for document '%s'",r.key);let o=[];{var l=KS,u=e=>{o.push(this.k_(t,r,s,e))},h=e=>{o.push(this.Q_(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=RC(c),i=RC(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?(u(i),i=RC(d)):r?(h(n),n=RC(c)):(n=RC(c),i=RC(d))}}return x.waitFor(o)}N_(e){let n=1;return cN(e)._i({index:VT,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)=>KS(e,t)).filter((e,t,r)=>!t||0!==KS(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=KS(s,r),t=KS(s,n);if(0===e)i[0]=r.a_();else if(0<e&&t<0)i.push(s),i.push(s.a_());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.q_(i[a],i[a+1]))return[];let e=i[a].c_(this.uid,aN,A.empty()),t=i[a+1].c_(this.uid,aN,A.empty());s.push(IDBKeyRange.bound(e,t))}return s}q_(e,t){return 0<KS(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(dN)}getMinOffset(t,e){return x.mapArray(this.p_(e),e=>this.g_(t,e).next(e=>e||I(44426))).next(dN)}}function lN(e){return hS(e,AT)}function uN(e){return hS(e,HT)}function hN(e){return hS(e,FT)}function cN(e){return hS(e,MT)}function dN(e){T(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;Uy(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new My(t.readTime,t.documentKey,r)}class BN{constructor(e){this.K_=e}next(){return this.K_+=2,this.K_}static W_(){return new BN(0)}static G_(){return new BN(-1)}}class pN{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.j_(r).next(e=>{var t=new BN(e.highestTargetId);return e.highestTargetId=t.next(),this.z_(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.j_(e).next(e=>R.fromTimestamp(new ZC(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.j_(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.j_(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.z_(t,e)))}addTargetData(t,r){return this.H_(t,r).next(()=>this.j_(t).next(e=>(e.targetCount+=1,this.J_(r,e),this.z_(t,e))))}updateTargetData(e,t){return this.H_(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>fN(t).delete(e.targetId)).next(()=>this.j_(t)).next(e=>(T(0<e.targetCount,8065),--e.targetCount,this.z_(t,e)))}removeTargets(n,i,s){let a=0,o=[];return fN(n)._i((e,t)=>{var r=vS(this.serializer,t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>x.waitFor(o)).next(()=>a)}forEachTarget(e,n){return fN(e)._i((e,t)=>{var r=vS(this.serializer,t);n(r)})}j_(e){return gN(e).get(NT).next(e=>(T(null!==e,2888),e))}z_(e,t){return gN(e).put(NT,t)}H_(e,t){return fN(e).put(_S(this.serializer,t))}J_(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.j_(e).next(e=>e.targetCount)}getTargetData(e,i){var t=JI(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return fN(e)._i({range:t,index:ET},(e,t,r)=>{var n=vS(this.serializer,t);WI(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=mN(r);return e.forEach(e=>{var t=ZI(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),x.waitFor(i)}removeMatchingKeys(r,e,n){let i=mN(r);return x.forEach(e,e=>{var t=ZI(e.path);return x.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=mN(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=mN(e);let i=O();return n._i({range:r,si:!0},(e,t,r)=>{var n=tT(e[1]),n=new A(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=ZI(t.path),r=IDBKeyRange.bound([r],[IC(r)],!1,!0);let n=0;return mN(e)._i({index:TT,si:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}Mt(e,t){return fN(e).get(t).next(e=>e?vS(this.serializer,e):null)}}function fN(e){return hS(e,wT)}function gN(e){return hS(e,kT)}function mN(e){return hS(e,DT)}class CN{constructor(e,t){this.db=e,this.garbageCollector=T0(this,t)}Pi(e){let r=this.Y_(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}Y_(e){let t=0;return this.Ii(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}Ii(e,r){return this.Z_(e,(e,t)=>r(t))}addReference(e,t,r){return vN(e,r)}removeReference(e,t,r){return vN(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return vN(e,t)}X_(e,r){{var n=e,i=r;let t=!1;return AS(n).oi(e=>SS(n,e,i).next(e=>(e&&(t=!0),x.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.Z_(r,(t,e)=>{if(e<=n){let e=this.X_(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,R.min()),mN(r).delete([0,ZI(t.path)])))});s.push(e)}}).next(()=>x.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 vN(e,t)}Z_(e,n){var t=mN(e);let i,s=o0.Br;return t._i({index:TT},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==o0.Br&&n(new A(tT(i)),s),s=r,i=t):s=o0.Br}).next(()=>{s!==o0.Br&&n(new A(tT(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function vN(e,t){return mN(e).put((e=e.currentSequenceNumber,{targetId:0,path:ZI(t.path),sequenceNumber:e}))}function _N(e,t){let r=t;for(let t of e.stages)r=((t,r,n)=>{var i,s,a,o,l;if(r instanceof Vb)return i=r,n.filter(e=>e.isFoundDocument()&&"/"+e.key.getCollectionPath().canonicalString()===i.pi);if(r instanceof jb)return s=t,a=r,n.filter(e=>{var t=rD(d(a.condition).evaluate(s,e));return void 0!==t&&Yv(t,Jv)});if(r instanceof Gb)return o=r,n.filter(e=>e.isFoundDocument()&&e.key.getCollectionPath().lastSegment()===o.collectionId);if(r instanceof Hb)return n.filter(e=>e.isFoundDocument());if(r instanceof qb)return l=r,n.filter(e=>e.isFoundDocument()&&l.yi.has(e.key.path.toStringWithLeadingSlash()));if(r instanceof Kb)return n.slice(0,r.limit);if(r instanceof Wb){var u=t,t=n;let e=r.orderings.map(e=>({eo:d(e.expr),direction:e.direction}));return[...t].sort((n,i)=>{for(var{eo:s,direction:a}of e){let e=rD(s.evaluate(u,n)),t=rD(s.evaluate(u,i)),r=Xv(e??Fv,t??Fv);if(0!==r)return"ascending"===a?r:-r}return 0})}throw new Error("Unknown stage: "+r._name)})({serializer:e.serializer,serverTimestampBehavior:e.listenOptions?.serverTimestampBehavior},t,r);return r}function yN(e,t){return 0<_N(e,[t]).length}function wN(e,t){return(qI(e)?yN:aw)(e,t)}function EN(a){let e=(e=>{for(let r=e.stages.length-1;0<=r;r--){var t=e.stages[r];if(t instanceof Wb)return t.orderings}throw new Error("Pipeline must contain at least one Sort stage")})(a);return(n,i)=>{for(var s of e){let e=rD(d(s.expr).evaluate({serializer:a.serializer},n)),t=rD(d(s.expr).evaluate({serializer:a.serializer},i)),r=Xv(e||Fv,t||Fv);if(0!==r)return"ascending"===s.direction?r:-r}return 0}}function bN(e){for(let r=e.stages.length-1;0<=r;r--){var t=e.stages[r];if(t instanceof Kb)return{limit:t.limit}}}class DN{constructor(){this.changes=new cw(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,Ny.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?x.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class IN{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return kN(e).put(r)}removeEntry(e,t,r){return kN(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],fS(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.no(t,e)))}getEntry(e,r){let n=Ny.newInvalidDocument(r);return kN(e)._i({index:gT,range:IDBKeyRange.only(AN(r))},(e,t)=>{n=this.ro(r,t)}).next(()=>n)}io(e,r){let n={size:0,document:Ny.newInvalidDocument(r)};return kN(e)._i({index:gT,range:IDBKeyRange.only(AN(r))},(e,t)=>{n={document:this.ro(r,t),size:lS(t)}}).next(()=>n)}getEntries(e,t){let n=dw;return this.so(e,t,(e,t)=>{var r=this.ro(e,t);n=n.insert(e,r)}).next(()=>n)}getAllEntries(e){let n=dw;return kN(e)._i((e,t)=>{var r=this.ro(A.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);n=n.insert(r.key,r)}).next(()=>n)}_o(e,t){let n=dw,i=new TC(A.comparator);return this.so(e,t,(e,t)=>{var r=this.ro(e,t);n=n.insert(e,r),i=i.insert(e,lS(t))}).next(()=>({documents:n,oo:i}))}so(e,t,i){if(t.isEmpty())return x.resolve();let r=new kC(ON),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(AN(r.first()),AN(r.last()))),s=r.getIterator(),a=s.getNext();return kN(e)._i({index:gT,range:n},(e,t,r)=>{for(var n=A.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&ON(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.ei(AN(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=qI(n)?PC.fromString(Xb(n)):n.path,a=[r.popLast().toArray(),r.lastSegment(),fS(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 kN(e).ti(IDBKeyRange.bound(a,r,!0)).next(e=>{s?.incrementDocumentReadCount(e.length);let t=dw;for(let r of e){let e=this.ro(A.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(wN(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=dw;var n=RN(t,r),a=RN(t,My.max());return kN(e)._i({index:CT,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.ro(A.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 SN(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return NN(e).get(yT).next(e=>(T(!!e,20021),e))}no(e,t){return NN(e).put(yT,t)}ro(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=rE(e.Xi,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=A.fromSegments(r.noDocument.path),t=mS(r.noDocument.readTime);n=Ny.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return I(56709);{let e=A.fromSegments(r.unknownDocument.path),t=mS(r.unknownDocument.version);n=Ny.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new ZC(e[0],e[1]),R.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(R.min()))return e}return Ny.newInvalidDocument(e)}}function TN(e){return new IN(e)}class SN extends DN{constructor(e,t){super(),this.ao=e,this.trackRemovals=t,this.uo=new cw(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new kC((e,t)=>S(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.uo.get(t);if(a.push(this.ao.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=pS(this.ao.serializer,r),i=(l=l.add(t.path.popLast()),lS(n));o+=i-e.size,a.push(this.ao.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=pS(this.ao.serializer,r.convertToNoDocument(R.min()));a.push(this.ao.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.ao.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.ao.updateMetadata(s,o)),x.waitFor(a)}getFromCache(e,t){return this.ao.io(e,t).next(e=>(this.uo.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.ao._o(e,t).next(({documents:r,oo:e})=>(e.forEach((e,t)=>{this.uo.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function NN(e){return hS(e,_T)}function kN(e){return hS(e,pT)}function AN(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function RN(e,t){var r=t.documentKey.path.toArray();return[e,fS(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function ON(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=S(r[s],n[s]))return i;return(i=S(r.length,n.length))||(i=S(r[r.length-2],n[n.length-2]))||S(r[r.length-1],n[n.length-1])}class xN{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class PN{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&&Z_(n.mutation,e,MC.empty(),ZC.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,O()).next(()=>e))}getLocalViewOfDocuments(e,t,r=O()){let n=gw();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=pw();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=gw();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,O()))}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=dw,a=gw(),r=gw();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof ry)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),Z_(r.mutation,t,r.mutation.getFieldMask(),ZC.now())):a.set(t.key,MC.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>r.set(e,new xN(t,a.get(e)??null))),r))}recalculateAndSaveOverlays(a,o){let l=gw(),u=new TC((e,t)=>e-t),h=O();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)||MC.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(u.get(n.batchId)||O()).add(e),u=u.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=u.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=gw();r.forEach(e=>{var t;h.has(e)||(null!==(t=X_(o.get(e),l.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return x.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 qI(t)?this.getDocumentsMatchingPipeline(e,t,r,n):(i=t,A.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Zy(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):x.resolve(gw());let n=ky,i=r;return e.next(e=>x.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?x.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,O())).next(e=>({batchId:n,changes:fw(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new A(t)).next(e=>{let t=pw();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=pw();return this.indexManager.getCollectionParents(n,o).next(e=>x.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Qy(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,r,n,i){let s;return this.documentOverlayCache.getOverlaysForCollection(t,r.path,n.largestBatchId).next(e=>(s=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,r,n,s,i))).next(e=>this.retrieveMatchingLocalDocuments(s,e,e=>aw(r,e)))}getDocumentsMatchingPipeline(a,o,l,u){if("collection_group"===$b(o)){let i=Zb(o),s=pw();return this.indexManager.getCollectionParents(a,i).next(e=>x.forEach(e,e=>{t=o,r=e.child(i),n=t.stages.map(e=>e instanceof Gb?new Vb(r.canonicalString(),{}):e);var t,r,n=new Yb(t.serializer,n);return this.getDocumentsMatchingPipeline(a,n,l,u).next(e=>{e.forEach((e,t)=>{s=s.insert(e,t)})})}).next(()=>s))}{let r;return this.getOverlaysForPipeline(a,o,l.largestBatchId).next(e=>{switch(r=e,$b(o)){case"collection":return this.remoteDocumentCache.getDocumentsMatchingQuery(a,o,l,r,u);case"documents":let e=O();for(let t of tD(o))e=e.add(A.fromPath(t));return this.remoteDocumentCache.getEntries(a,e);case"database":return this.remoteDocumentCache.getAllEntries(a);default:throw new k("invalid-argument","Invalid pipeline source to execute offline: "+GI(o))}}).next(e=>this.retrieveMatchingLocalDocuments(r,e,e=>yN(o,e)))}}retrieveMatchingLocalDocuments(n,i,s){n.forEach((e,t)=>{var r=t.getKey();null===i.get(r)&&(i=i.insert(r,Ny.newInvalidDocument(r)))});let a=pw();return i.forEach((e,t)=>{var r=n.get(e);void 0!==r&&Z_(r.mutation,t,MC.empty(),ZC.now()),s(t)&&(a=a.insert(e,t))}),a}getOverlaysForPipeline(e,t,r){switch($b(t)){case"collection":return this.documentOverlayCache.getOverlaysForCollection(e,PC.fromString(Xb(t)),r);case"collection_group":throw new k("invalid-argument","Unexpected collection group pipeline: "+GI(t));case"documents":return this.documentOverlayCache.getOverlays(e,tD(t).map(e=>A.fromPath(e)));case"database":return this.documentOverlayCache.getAllOverlays(e,r);default:throw new k("invalid-argument","Failed to get overlays for pipeline: "+GI(t))}}}class FN{constructor(e){this.serializer=e,this.co=new Map,this.lo=new Map}getBundleMetadata(e,t){return x.resolve(this.co.get(t))}saveBundleMetadata(e,t){return this.co.set(t.id,{id:t.id,version:t.version,createTime:Kw(t.createTime)}),x.resolve()}getNamedQuery(e,t){return x.resolve(this.lo.get(t))}saveNamedQuery(e,t){return this.lo.set(t.name,{name:(t=t).name,query:yS(t.bundledQuery),readTime:Kw(t.readTime)}),x.resolve()}}class LN{constructor(){this.overlays=new TC(A.comparator),this.Eo=new Map}getOverlay(e,t){return x.resolve(this.overlays.get(t))}getOverlays(e,t){let r=gw();return x.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}getAllOverlays(e,r){let n=gw();return this.overlays.forEach((e,t)=>{t.largestBatchId>r&&n.set(e,t)}),x.resolve(n)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.Es(r,n,t)}),x.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Eo.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Eo.delete(r)),x.resolve()}getOverlaysForCollection(e,r,n){let i=gw(),s=r.length+1,t=new A(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 x.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new TC((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=gw(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=gw(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return x.resolve(a)}Es(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Eo.get(n.largestBatchId).delete(r.key);this.Eo.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new cS(t,r));let i=this.Eo.get(t);void 0===i&&(i=O(),this.Eo.set(t,i)),this.Eo.set(t,i.add(r.key))}}class MN{constructor(){this.sessionToken=tv.EMPTY_BYTE_STRING}getSessionToken(e){return x.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,x.resolve()}}class UN{constructor(){this.ho=new kC(VN.To),this.Po=new kC(VN.Io)}isEmpty(){return this.ho.isEmpty()}addReference(e,t){var r=new VN(e,t);this.ho=this.ho.add(r),this.Po=this.Po.add(r)}Ro(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Ao(new VN(e,t))}Vo(e,t){e.forEach(e=>this.removeReference(e,t))}fo(e){let t=new A(new PC([])),r=new VN(t,e),n=new VN(t,e+1),i=[];return this.Po.forEachInRange([r,n],e=>{this.Ao(e),i.push(e.key)}),i}mo(){this.ho.forEach(e=>this.Ao(e))}Ao(e){this.ho=this.ho.delete(e),this.Po=this.Po.delete(e)}po(e){var t=new A(new PC([])),r=new VN(t,e),t=new VN(t,e+1);let n=O();return this.Po.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new VN(e,0),t=this.ho.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class VN{constructor(e,t){this.key=e,this.yo=t}static To(e,t){return A.comparator(e.key,t.key)||S(e.yo,t.yo)}static Io(e,t){return S(e.yo,t.yo)||A.comparator(e.key,t.key)}}class GN{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.rs=1,this.wo=new kC(VN.To)}checkEmpty(e){return x.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.rs,s=(this.rs++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new YI(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.wo=this.wo.add(new VN(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return x.resolve(s)}lookupMutationBatch(e,t){return x.resolve(this.bo(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.So(t+1),r=r<0?0:r;return x.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return x.resolve(0===this.mutationQueue.length?gv:this.rs-1)}getAllMutationBatches(e){return x.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new VN(t,0),n=new VN(t,Number.POSITIVE_INFINITY),i=[];return this.wo.forEachInRange([r,n],e=>{var t=this.bo(e.yo);i.push(t)}),x.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new kC(S);return t.forEach(e=>{var t=new VN(e,0),r=new VN(e,Number.POSITIVE_INFINITY);this.wo.forEachInRange([t,r],e=>{n=n.add(e.yo)})}),x.resolve(this.xo(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;A.isDocumentKey(i)||(i=i.child(""));var s=new VN(new A(i),0);let a=new kC(S);return this.wo.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.yo)),!0)},s),x.resolve(this.xo(a))}xo(e){let r=[];return e.forEach(e=>{var t=this.bo(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){T(0===this.vo(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.wo;return x.forEach(n.mutations,e=>{var t=new VN(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.wo=i})}us(e){}containsKey(e,t){var r=new VN(t,0),r=this.wo.firstAfterOrEqual(r);return x.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,x.resolve()}vo(e,t){return this.So(e)}So(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}bo(e){var t=this.So(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class HN{constructor(e){this.Do=e,this.docs=new TC(A.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.Do(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 x.resolve(r?r.document.mutableCopy():Ny.newInvalidDocument(t))}getEntries(e,t){let r=dw;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():Ny.newInvalidDocument(e))}),x.resolve(r)}getAllEntries(e){let r=dw;return this.docs.forEach((e,t)=>{r=r.insert(e,t.document)}),x.resolve(r)}getDocumentsMatchingQuery(e,t,r,n){let i,s,a=(s=qI(t)?(i=PC.fromString(Xb(t)),e=>yN(t,e)):(i=t.path,e=>aw(t,e)),dw);for(var o=new A(i.child("__id-9223372036854775808__")),l=this.docs.getIteratorFrom(o);l.hasNext();){let{key:e,value:{document:t}}=l.getNext();if(!i.isPrefixOf(e.path))break;e.path.length>i.length+1||Uy(Ly(t),r)<=0||(n.has(t.key)||s(t))&&(a=a.insert(t.key,t.mutableCopy()))}return x.resolve(a)}getAllFromCollectionGroup(e,t,r,n){I(9500)}Co(e,t){return x.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new qN(this)}getSize(e){return x.resolve(this.size)}}class qN extends DN{constructor(e){super(),this.ao=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.ao.addEntry(r,t)):this.ao.removeEntry(e)}),x.waitFor(n)}getFromCache(e,t){return this.ao.getEntry(e,t)}getAllFromCache(e,t){return this.ao.getEntries(e,t)}}class jN{constructor(e){this.persistence=e,this.Fo=new cw(e=>JI(e),WI),this.lastRemoteSnapshotVersion=R.min(),this.highestTargetId=0,this.Oo=0,this.Mo=new UN,this.targetCount=0,this.No=BN.W_()}forEachTarget(e,r){return this.Fo.forEach((e,t)=>r(t)),x.resolve()}getLastRemoteSnapshotVersion(e){return x.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return x.resolve(this.Oo)}allocateTargetId(e){return this.highestTargetId=this.No.next(),x.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.Oo&&(this.Oo=t),x.resolve()}H_(e){this.Fo.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.No=new BN(t),this.highestTargetId=t),e.sequenceNumber>this.Oo&&(this.Oo=e.sequenceNumber)}addTargetData(e,t){return this.H_(t),this.targetCount+=1,x.resolve()}updateTargetData(e,t){return this.H_(t),x.resolve()}removeTargetData(e,t){return this.Fo.delete(t.target),this.Mo.fo(t.targetId),--this.targetCount,x.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.Fo.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.Fo.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),x.waitFor(a).next(()=>s)}getTargetCount(e){return x.resolve(this.targetCount)}getTargetData(e,t){var r=this.Fo.get(t)||null;return x.resolve(r)}addMatchingKeys(e,t,r){return this.Mo.Ro(t,r),x.resolve()}removeMatchingKeys(t,e,r){this.Mo.Vo(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),x.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Mo.fo(t),x.resolve()}getMatchingKeysForTargetId(e,t){var r=this.Mo.po(t);return x.resolve(r)}containsKey(e,t){return x.resolve(this.Mo.containsKey(t))}}class KN{constructor(e,t){this.Bo={},this.overlays={},this.Lo=new o0(0),this.$o=!1,this.$o=!0,this.Uo=new MN,this.referenceDelegate=e(this),this.ko=new jN(this),this.indexManager=new nN,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Qo(e),new HN(e)),this.serializer=new BS(t),this.qo=new FN(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.$o=!1,Promise.resolve()}get started(){return this.$o}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new LN,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.Bo[e.toKey()];return r||(r=new GN(t,this.referenceDelegate),this.Bo[e.toKey()]=r),r}getGlobalsCache(){return this.Uo}getTargetCache(){return this.ko}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.qo}runTransaction(e,t,r){p("MemoryPersistence","Starting transaction:",e);let n=new zN(this.Lo.next());return this.referenceDelegate.Ko(),r(n).next(e=>this.referenceDelegate.Wo(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Go(t,r){return x.or(Object.values(this.Bo).map(e=>()=>e.containsKey(t,r)))}}class zN extends u0{constructor(e){super(),this.currentSequenceNumber=e}}class JN{constructor(e){this.persistence=e,this.jo=new UN,this.zo=null}static Ho(e){return new JN(e)}get Jo(){if(this.zo)return this.zo;throw I(60996)}addReference(e,t,r){return this.jo.addReference(r,t),this.Jo.delete(r.toString()),x.resolve()}removeReference(e,t,r){return this.jo.removeReference(r,t),this.Jo.add(r.toString()),x.resolve()}markPotentiallyOrphaned(e,t){return this.Jo.add(t.toString()),x.resolve()}removeTarget(e,t){this.jo.fo(t.targetId).forEach(e=>this.Jo.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.Jo.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ko(){this.zo=new Set}Wo(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return x.forEach(this.Jo,e=>{let t=A.fromPath(e);return this.Yo(r,t).next(e=>{e||n.removeEntry(t,R.min())})}).next(()=>(this.zo=null,n.apply(r)))}updateLimboDocument(e,t){return this.Yo(e,t).next(e=>{e?this.Jo.delete(t.toString()):this.Jo.add(t.toString())})}Qo(e){return 0}Yo(e,t){return x.or([()=>x.resolve(this.jo.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Go(e,t)])}}class WN{constructor(e,t){this.persistence=e,this.Zo=new cw(e=>ZI(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=T0(this,t)}static Ho(e,t){return new WN(e,t)}Ko(){}Wo(e){return x.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}Pi(e){let r=this.Y_(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}Y_(e){let t=0;return this.Ii(e,e=>{t++}).next(()=>t)}Ii(r,n){return x.forEach(this.Zo,(e,t)=>this.X_(r,e,t).next(e=>e?x.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.Co(e,t=>this.X_(e,t,r).next(e=>{e||(n++,i.removeEntry(t,R.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.Zo.set(t,e.currentSequenceNumber),x.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.Zo.set(r,e.currentSequenceNumber),x.resolve()}removeReference(e,t,r){return this.Zo.set(r,e.currentSequenceNumber),x.resolve()}updateLimboDocument(e,t){return this.Zo.set(t,e.currentSequenceNumber),x.resolve()}Qo(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=d_(e.data.value)),t}X_(e,t,r){return x.or([()=>this.persistence.Go(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.Zo.get(t);return x.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class QN{constructor(e){this.serializer=e}jr(t,e,r,n){let s=new d0("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(nT),(i=t).createObjectStore(sT,{keyPath:"userId"}),i.createObjectStore(aT,{keyPath:oT,autoIncrement:!0}).createIndex(lT,uT,{unique:!0}),i.createObjectStore(BT),YN(t),t.createObjectStore(rT));let a=x.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(DT),i.deleteObjectStore(wT),i.deleteObjectStore(kT),YN(t)),a=a.next(()=>{return e=s,t=e.store(kT),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:R.min().toTimestamp(),targetCount:0},t.put(NT,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(aT).ti().next(e=>{n.deleteObjectStore(aT),n.createObjectStore(aT,{keyPath:oT,autoIncrement:!0}).createIndex(lT,uT,{unique:!0});let t=i.store(aT),r=e.map(e=>t.put(e));return x.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(OT,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.Xo(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(_T),this.ea(s)))),r<7&&7<=n&&(a=a.next(()=>this.ta(s))),r<8&&8<=n&&(a=a.next(()=>this.na(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.ra(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(xT,{keyPath:"bundleId"}),t.createObjectStore(PT,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(zT,{keyPath:JT})).createIndex(WT,QT,{unique:!1}),e.createIndex(YT,$T,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(pT,{keyPath:fT})).createIndex(gT,mT),e.createIndex(CT,vT)}).next(()=>this.ia(t,s)).next(()=>t.deleteObjectStore(rT))),r<14&&14<=n&&(a=a.next(()=>this.sa(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(FT,{keyPath:"indexId",autoIncrement:!0}).createIndex(LT,"collectionGroup",{unique:!1}),e.createObjectStore(MT,{keyPath:UT}).createIndex(VT,GT,{unique:!1}),e.createObjectStore(HT,{keyPath:qT}).createIndex(jT,KT,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(MT).clear()}).next(()=>{e.objectStore(HT).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(XT,{keyPath:"name"})})),a=r<18&&18<=n&&ue()?a.next(()=>{e.objectStore(MT).clear()}).next(()=>{e.objectStore(HT).clear()}):a}ea(t){let r=0;return t.store(rT)._i((e,t)=>{r+=lS(t)}).next(()=>{var e={byteSize:r};return t.store(_T).put(yT,e)})}Xo(n){let e=n.store(sT),t=n.store(aT);return e.ti().next(e=>x.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,gv],[r.userId,r.lastAcknowledgedBatchId]);return t.ti(lT,e).next(e=>x.forEach(e,e=>{T(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=CS(this.serializer,e);return oS(n,r.userId,t).next(()=>{})}))}))}ta(e){let a=e.store(DT),t=e.store(rT);return e.store(kT).get(NT).next(i=>{let s=[];return t._i((e,t)=>{let r=new PC(e),n=[0,ZI(r)];s.push(a.get(n).next(e=>e?x.resolve():(e=r,a.put({targetId:0,path:ZI(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>x.waitFor(s))})}na(e,t){e.createObjectStore(AT,{keyPath:RT});let n=t.store(AT),i=new iN,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:ZI(t)})}};return t.store(rT)._i({si:!0},(e,t)=>{var r=new PC(e);return s(r.popLast())}).next(()=>t.store(BT)._i({si:!0},([,e],t)=>{var r=tT(e);return s(r.popLast())}))}ra(e){let n=e.store(wT);return n._i((e,t)=>{var r=vS(this.serializer,t),r=_S(this.serializer,r);return n.put(r)})}ia(e,s){let t=s.store(rT),a=[];return t._i((e,t)=>{var r,n=s.store(pT),i=((r=t).document?new A(PC.fromString(r.document.name).popFirst(5)):r.noDocument?A.fromSegments(r.noDocument.path):r.unknownDocument?A.fromSegments(r.unknownDocument.path):I(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(()=>x.waitFor(a))}sa(e,s){let t=s.store(aT),a=TN(this.serializer),o=new KN(JN.Ho,this.serializer.Xi);return t.ti().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??O();CS(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),x.forEach(r,(e,t)=>{var r=new kE(t),n=PS.ts(this.serializer,r),i=o.getIndexManager(r),r=TS.ts(r,this.serializer,i,o.referenceDelegate);return new PN(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new uS(s,o0.Br),e).next()})})}}function YN(e){e.createObjectStore(DT,{keyPath:IT}).createIndex(TT,ST,{unique:!0}),e.createObjectStore(wT,{keyPath:"targetId"}).createIndex(ET,bT,{unique:!0}),e.createObjectStore(kT)}let $N="IndexedDbPersistence",XN="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 ZN{constructor(e,t,r,n,i,s,a,o,l,u,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.qn=i,this.window=s,this.document=a,this._a=l,this.oa=u,this.aa=h,this.Lo=null,this.$o=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ua=null,this.inForeground=!1,this.ca=null,this.la=null,this.Ea=Number.NEGATIVE_INFINITY,this.ha=e=>Promise.resolve(),!ZN.cn())throw new k(N.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new CN(this,n),this.Ta=t+"main",this.serializer=new BS(o),this.Pa=new B0(this.Ta,this.aa,new QN(this.serializer)),this.Uo=new LS,this.ko=new pN(this.referenceDelegate,this.serializer),this.remoteDocumentCache=TN(this.serializer),this.qo=new RS,this.window&&this.window.localStorage?this.Ia=this.window.localStorage:(this.Ia=null,!1===u&&gC($N,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ra().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Aa(),this.Va(),this.da(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.ko.getHighestSequenceNumber(e));throw new k(N.FAILED_PRECONDITION,XN)}).then(e=>{this.Lo=new o0(e,this._a)}).then(()=>{this.$o=!0}).catch(e=>(this.Pa&&this.Pa.close(),Promise.reject(e)))}fa(t){return this.ha=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Pa.Hr(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.qn.enqueueAndForget(async()=>{this.started&&await this.Ra()}))}Ra(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>tk(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.ma(t).next(e=>{e||(this.isPrimary=!1,this.qn.enqueueRetryable(()=>this.ha(!1)))})}).next(()=>this.pa(t)).next(e=>this.isPrimary&&!e?this.ga(t).next(()=>!1):!!e&&this.ya(t).next(()=>!0))).catch(e=>{if(m0(e))return p($N,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return p($N,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.qn.enqueueRetryable(()=>this.ha(e)),this.isPrimary=e})}ma(e){return ek(e).get(iT).next(e=>x.resolve(this.wa(e)))}ba(e){return tk(e).delete(this.clientId)}async Sa(){if(this.isPrimary&&!this.xa(this.Ea,18e5)){this.Ea=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=hS(e,OT);return n.ti().next(e=>{let t=this.va(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return x.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Ia)for(var t of e)this.Ia.removeItem(this.Da(t.clientId))}}da(){this.la=this.qn.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Ra().then(()=>this.Sa()).then(()=>this.da()))}wa(e){return!!e&&e.ownerId===this.clientId}pa(t){return this.oa?x.resolve(!0):ek(t).get(iT).next(e=>{if(null!==e&&this.xa(e.leaseTimestampMs,5e3)&&!this.Ca(e.ownerId)){if(this.wa(e)&&this.networkEnabled)return!0;if(!this.wa(e)){if(e.allowTabSynchronization)return!1;throw new k(N.FAILED_PRECONDITION,XN)}}return!(!this.networkEnabled||!this.inForeground)||tk(t).ti().next(e=>void 0===this.va(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&&p($N,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.$o=!1,this.Fa(),this.la&&(this.la.cancel(),this.la=null),this.Oa(),this.Ma(),await this.Pa.runTransaction("shutdown","readwrite",[nT,OT],e=>{let t=new uS(e,o0.Br);return this.ga(t).next(()=>this.ba(t))}),this.Pa.close(),this.Na()}va(e,t){return e.filter(e=>this.xa(e.updateTimeMs,t)&&!this.Ca(e.clientId))}Ba(){return this.runTransaction("getActiveClients","readonly",e=>tk(e).ti().next(e=>this.va(e,18e5).map(e=>e.clientId)))}get started(){return this.$o}getGlobalsCache(){return this.Uo}getMutationQueue(e,t){return TS.ts(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.ko}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new oN(e,this.serializer.Xi.databaseId)}getDocumentOverlayCache(e){return PS.ts(this.serializer,e)}getBundleCache(){return this.qo}runTransaction(t,r,n){p($N,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.aa)?aS:17===e?sS:16===e?iS:15===e?nS:14===e?rS:13===e?tS:12===e?eS:11===e?ZT:void I(60245);let a;return this.Pa.runTransaction(t,i,s,e=>(a=new uS(e,this.Lo?this.Lo.next():o0.Br),"readwrite-primary"===r?this.ma(a).next(e=>!!e||this.pa(a)).next(e=>{if(e)return n(a);throw gC(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.qn.enqueueRetryable(()=>this.ha(!1)),new k(N.FAILED_PRECONDITION,l0)}).next(e=>this.ya(a).next(()=>e)):this.La(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}La(e){return ek(e).get(iT).next(e=>{if(null!==e&&this.xa(e.leaseTimestampMs,5e3)&&!this.Ca(e.ownerId)&&!this.wa(e)&&!(this.oa||this.allowTabSynchronization&&e.allowTabSynchronization))throw new k(N.FAILED_PRECONDITION,XN)})}ya(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return ek(e).put(iT,t)}static cn(){return B0.cn()}ga(e){let t=ek(e);return t.get(iT).next(e=>this.wa(e)?(p($N,"Releasing primary lease."),t.delete(iT)):x.resolve())}xa(e,t){var r=Date.now();return!(e<r-t||r<e&&(gC(`Detected an update time that is in the future: ${e} > `+r),1))}Aa(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.ca=()=>{this.qn.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Ra()))},this.document.addEventListener("visibilitychange",this.ca),this.inForeground="visible"===this.document.visibilityState)}Oa(){this.ca&&(this.document.removeEventListener("visibilitychange",this.ca),this.ca=null)}Va(){"function"==typeof this.window?.addEventListener&&(this.ua=()=>{this.Fa();var e=/(?:Version|Mobile)\/1[456]/;le()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.qn.enterRestrictedMode(!0),this.qn.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.ua))}Ma(){this.ua&&(this.window.removeEventListener("pagehide",this.ua),this.ua=null)}Ca(e){try{var t=null!==this.Ia?.getItem(this.Da(e));return p($N,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return gC($N,"Failed to get zombied client id.",e),!1}}Fa(){if(this.Ia)try{this.Ia.setItem(this.Da(this.clientId),String(Date.now()))}catch(e){gC("Failed to set zombie client id.",e)}}Na(){if(this.Ia)try{this.Ia.removeItem(this.Da(this.clientId))}catch(e){}}Da(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function ek(e){return hS(e,nT)}function tk(e){return hS(e,OT)}function rk(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class nk{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.$a=r,this.Ua=n}static ka(e,t){let r=O(),n=O();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 nk(e,t.fromCache,r,n)}}function ik(e,t){return A.comparator(e.key,t.key)}class sk{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class ak{constructor(){this.Qa=!1,this.qa=!1,this.Ka=100,this.Wa=le()?8:0<p0(te())?6:4}initialize(e,t){this.Ga=e,this.indexManager=t,this.Qa=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.ja(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.za(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new sk;return this.Ha(r,n,t).next(e=>{if(i.result=e,this.qa)return this.Ja(r,n,t,e.size)})}}).next(()=>i.result)}Ja(e,t,r,n){return qI(t)?x.resolve():r.documentReadCount<this.Ka?(fC()<=B.DEBUG&&p("QueryEngine","SDK will not create cache indexes for query:",sw(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Ka,"documents"),x.resolve()):(fC()<=B.DEBUG&&p("QueryEngine","Query:",sw(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.Wa*n?(fC()<=B.DEBUG&&p("QueryEngine","The SDK decides to create cache indexes for query:",sw(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,tw(t))):x.resolve())}ja(i,e){if(qI(e))return x.resolve(null);let s=e;if(Xy(s))return x.resolve(null);let t=tw(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=nw(s,null,"F"),t=tw(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=O(...e);return this.Ga.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.Ya(s,r);return this.Za(s,t,n,e.readTime)?this.ja(i,nw(s,null,"F")):this.Xa(i,t,s,e)}))})))}za(r,n,i,s){return(qI(n)?e=>{for(var t of e.stages){if(t instanceof Kb||t instanceof zb)return;if(t instanceof jb&&!(t.condition instanceof Sb&&"exists"===t.condition._expr.name&&t.condition._expr.params[0]instanceof wb&&t.condition._expr.params[0].fieldName===OC))return}return 1}:Xy)(n)||s.isEqual(R.min())?x.resolve(null):this.Ga.getDocuments(r,i).next(e=>{var t=this.Ya(n,e);return this.Za(n,t,i,s)?x.resolve(null):(fC()<=B.DEBUG&&p("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),jI(n)),this.Xa(r,t,n,Fy(s,ky)).next(e=>e))})}Ya(t,e){let r,n;return n=qI(t)?(r=new kC(ik),e=>yN(t,e)):(r=new kC(ow(t)),e=>aw(t,e)),e.forEach((e,t)=>{n(t)&&(r=r.add(t))}),r}Za(e,t,r,n){var i;return qI(e)?e.stages.some(e=>e instanceof Kb||e instanceof zb):null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}Ha(e,t,r){return fC()<=B.DEBUG&&p("QueryEngine","Using full collection scan to execute query:",jI(t)),this.Ga.getDocumentsMatchingQuery(e,t,My.min(),r)}Xa(e,r,t,n){return this.Ga.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let ok="LocalStore",lk=3e8;class uk{constructor(e,t,r,n){this.persistence=e,this.eu=t,this.serializer=n,this.tu=new TC(S),this.nu=new cw(e=>JI(e),WI),this.ru=new Map,this.iu=e.getRemoteDocumentCache(),this.ko=e.getTargetCache(),this.qo=e.getBundleCache(),this.su(r)}su(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new PN(this.iu,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.iu.setIndexManager(this.indexManager),this.eu.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.tu))}}function hk(e,t,r,n){return new uk(e,t,r,n)}async function ck(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.su(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=O();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=>({_u:e,removedBatchIds:t,addedBatchIds:r}))})})}function dk(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.iu.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=x.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);T(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=O();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 Bk(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.ko.getLastRemoteSnapshotVersion(e))}function pk(e,u){let h=e,c=u.snapshotVersion,d=h.tu;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.iu.newChangeBuffer({trackRemovals:!0}),l=(d=h.tu,[]),t=(u.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(h.ko.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.ko.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==u.targetMismatches.get(r)?e=e.withResumeToken(tv.EMPTY_BYTE_STRING,R.min()).withLastLimboFreeSnapshotVersion(R.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()>=lk||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(h.ko.updateTargetData(o,e))}}),dw),r=O();if(u.documentUpdates.forEach(e=>{u.resolvedLimboDocuments.has(e)&&l.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(fk(o,e,u.documentUpdates).next(e=>{t=e.ou,r=e.au})),!c.isEqual(R.min())){let e=h.ko.getLastRemoteSnapshotVersion(o).next(e=>h.ko.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return x.waitFor(l).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.tu=d,e))}function fk(e,s,t){let r=O(),a=O();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=dw;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(R.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)):p(ok,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{ou:i,au:a}})}function gk(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.ko.getTargetData(t,n).next(e=>e?(r=e,x.resolve(r)):i.ko.allocateTargetId(t).next(e=>(r=new dS(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.ko.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.tu.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.tu=i.tu.insert(e.targetId,e),i.nu.set(n,e.targetId)),e})}async function mk(e,t,r){let n=e,i=n.tu.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(!m0(e))throw e;p(ok,`Failed to update sequence numbers for target ${t}: `+e)}n.tu=n.tu.remove(t),n.nu.delete(i.target)}function Ck(e,a,o){let l=e,u=R.min(),h=O();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=qI(a)?a:tw(a),(void 0!==(s=(i=e).nu.get(n))?x.resolve(i.tu.get(s)):i.ko.getTargetData(r,n)).next(e=>{if(e)return u=e.lastLimboFreeSnapshotVersion,l.ko.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>l.eu.getDocumentsMatchingQuery(t,a,o?u:R.min(),o?h:O())).next(e=>(yk(l,e),{documents:e,uu:h}));var e,r,n,i,s})}function vk(e,t){let r=e,n=r.ko,i=r.tu.get(t);return i?Promise.resolve(i.target??null):r.persistence.runTransaction("Get target data","readonly",e=>n.Mt(e,t).next(e=>e?.target??null))}function _k(e,t){let r=e,n=r.ru.get(t)||R.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.iu.getAllFromCollectionGroup(e,t,Fy(n,ky),Number.MAX_SAFE_INTEGER)).then(e=>(yk(r,e),e))}function yk(i,e){e.forEach((e,t)=>{var r=t.key.getCollectionGroup(),n=i.ru.get(r)||R.min();0<t.readTime.compareTo(n)&&i.ru.set(r,t.readTime)})}class wk{constructor(e,t){this.hu=e,this.byteLength=t}Tu(){return"metadata"in this.hu}}function Ek(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()}}class bk{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.Pu=0,this.Iu=null,this.Ru=!0}Au(){0===this.Pu&&(this.Vu("Unknown"),this.Iu=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.Iu=null,this.du("Backend didn't respond within 10 seconds."),this.Vu("Offline"),Promise.resolve())))}fu(e){"Online"===this.state?this.Vu("Unknown"):(this.Pu++,1<=this.Pu&&(this.mu(),this.du("Connection failed 1 times. Most recent error: "+e.toString()),this.Vu("Offline")))}set(e){this.mu(),this.Pu=0,"Online"===e&&(this.Ru=!1),this.Vu(e)}Vu(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}du(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.Ru?(gC(t),this.Ru=!1):p("OnlineStateTracker",t)}mu(){null!==this.Iu&&(this.Iu.cancel(),this.Iu=null)}}let Dk="RemoteStore";class Ik{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.pu=[],this.gu=new Map,this.yu=new Map,this.wu=new Map,this.bu=new BN(1e3),this.Su=new BN(1001),this.xu=new Set,this.vu=[],this.Du=i,this.Du.tn(e=>{r.enqueueAndForget(async()=>{var e;Fk(this)&&(p(Dk,"Restarting streams for network reachability change."),(e=this).xu.add(4),await Sk(e),e.Cu.set("Unknown"),e.xu.delete(4),await Tk(e))})}),this.Cu=new bk(r,n)}}async function Tk(e){if(Fk(e))for(var t of e.vu)await t(!0)}async function Sk(e){for(var t of e.vu)await t(!1)}function Nk(e,t){return e.yu.get(t)||void 0}function kk(e,t){var r,n,i,s=e,a=Nk(s,t.targetId);void 0!==a&&s.gu.has(a)||(void 0!==(a=Nk(e=s,r=t.targetId))&&e.wu.delete(a),n=e,a=(r%2!=0?n.Su:n.bu).next(),e.yu.set(r,a),e.wu.set(a,r),a=a,p(Dk,"remoteStoreListen mapping SDK target ID to remote",t.targetId,a),i=new dS(t.target,a,t.purpose,t.sequenceNumber,t.snapshotVersion,t.lastLimboFreeSnapshotVersion,t.resumeToken),s.gu.set(a,i),Pk(s)?xk(s):zk(s).ur()&&Rk(s,i))}function Ak(e,t){var r=e,n=zk(r),i=Nk(r,t);p(Dk,"remoteStoreUnlisten removing mapping of SDK target ID to remote",t,i),r.gu.delete(i),r.yu.delete(t),r.wu.delete(i),n.ur()&&Ok(r,i),0===r.gu.size&&(n.ur()?n.Er():Fk(r)&&r.Cu.set("Unknown"))}function Rk(e,t){if(e.Fu.rt(t.targetId),0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(R.min())){var r=e.wu.get(t.targetId);if(void 0===r)return p(Dk,"SDK target ID not found for remote ID: "+t.targetId);r=e.remoteSyncer.getRemoteKeysForTarget(r).size;t=t.withExpectedCount(r)}zk(e).yr(t)}function Ok(e,t){e.Fu.rt(t),zk(e).wr(t)}function xk(r){r.Fu=new Ow({getRemoteKeysForTarget:e=>{var t=r.wu.get(e);return void 0!==t?r.remoteSyncer.getRemoteKeysForTarget(t):O()},Mt:e=>r.gu.get(e)||null,xt:()=>r.datastore.serializer.databaseId}),zk(r).start(),r.Cu.Au()}function Pk(e){return Fk(e)&&!zk(e).ar()&&0<e.gu.size}function Fk(e){return 0===e.xu.size}function Lk(e){e.Fu=void 0}async function Mk(t,e,r){if(t.Cu.set("Online"),e instanceof kw&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds){if(i.gu.has(n)){let e=i.wu.get(n);void 0!==e&&(await i.remoteSyncer.rejectListen(e,a),i.yu.delete(e),i.wu.delete(n)),i.gu.delete(n)}i.Fu.removeTarget(n)}}catch(r){p(Dk,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await Uk(t,r)}else if(e instanceof Sw?t.Fu.Tt(e):e instanceof Nw?t.Fu.ft(e):t.Fu.Rt(e),!r.isEqual(R.min()))try{let e=await Bk(t.localStore);0<=r.compareTo(e)&&(l=r,(u=(o=t).Fu.Dt(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.gu.get(t))&&o.gu.set(t,r.withResumeToken(e.resumeToken,l))}),u.targetMismatches.forEach((e,t)=>{var r=o.gu.get(e);r&&(o.gu.set(e,r.withResumeToken(tv.EMPTY_BYTE_STRING,r.snapshotVersion)),Ok(o,e),r=new dS(r.target,e,t,r.sequenceNumber),Rk(o,r))}),u=((n,e)=>{let i=new Map,s=(e.targetChanges.forEach((e,t)=>{var r=n.wu.get(t);void 0!==r&&i.set(r,e)}),new TC(S));return e.targetMismatches.forEach((e,t)=>{var r=n.wu.get(e);void 0!==r&&(s=s.insert(r,t))}),new Iw(e.snapshotVersion,i,s,e.documentUpdates,e.augmentedDocumentUpdates,e.resolvedLimboDocuments)})(o,u),await o.remoteSyncer.applyRemoteEvent(u))}catch(e){p(Dk,"Failed to raise snapshot:",e),await Uk(t,e)}var o,l,u}async function Uk(e,t,r){if(!m0(t))throw t;e.xu.add(1),await Sk(e),e.Cu.set("Offline"),r=r||(()=>Bk(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{p(Dk,"Retrying IndexedDB access"),await r(),e.xu.delete(1),await Tk(e)})}function Vk(t,r){return r().catch(e=>Uk(t,e,r))}async function Gk(e){var t,r,n,i,s=e,a=Jk(s);let o=0<s.pu.length?s.pu[s.pu.length-1].batchId:gv;for(;Fk(i=s)&&i.pu.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=gv),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.pu.length&&a.Er();break}o=e.batchId,t=s,r=e,n=void 0,t.pu.push(r),(n=Jk(t)).ur()&&n.br&&n.Sr(r.mutations)}catch(e){await Uk(s,e)}Hk(s)&&qk(s)}function Hk(e){return Fk(e)&&!Jk(e).ar()&&0<e.pu.length}function qk(e){Jk(e).start()}async function jk(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),p(Dk,"RemoteStore received new credentials"),Fk(r));r.xu.add(3),await Sk(r),n&&r.Cu.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.xu.delete(3),await Tk(r)}async function Kk(e,t){var r=e;t?(r.xu.delete(2),await Tk(r)):(r.xu.add(2),await Sk(r),r.Cu.set("Unknown"))}function zk(t){return t.Ou||(t.Ou=(e=t.datastore,r=t.asyncQueue,n={pn:(async function(e){e.Cu.set("Online")}).bind(null,t),yn:(async function(r){r.gu.forEach((e,t)=>{Rk(r,e)})}).bind(null,t),bn:(async function(e,t){Lk(e),Pk(e)?(e.Cu.fu(t),xk(e)):e.Cu.set("Unknown")}).bind(null,t),gr:Mk.bind(null,t)},(i=e).Or(),new t0(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.vu.push(async e=>{e?(t.Ou.lr(),Pk(t)?xk(t):t.Cu.set("Unknown")):(await t.Ou.stop(),Lk(t))})),t.Ou;var e,r,n,i}function Jk(t){return t.Mu||(t.Mu=(e=t.datastore,r=t.asyncQueue,n={pn:()=>Promise.resolve(),yn:(async function(e){Jk(e).Cr()}).bind(null,t),bn:(async function(e,t){if(t&&Jk(e).br){var r=e,n=t;if(uw(t=n.code)&&t!==N.ABORTED){let e=r.pu.shift();Jk(r).lr(),await Vk(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await Gk(r)}await 0}Hk(e)&&qk(e)}).bind(null,t),vr:(async function(e){var t,r=Jk(e);for(t of e.pu)r.Sr(t.mutations)}).bind(null,t),Dr:(async function(e,t,r){let n=e.pu.shift(),i=$I.from(n,t,r);await Vk(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await Gk(e)}).bind(null,t)},(i=e).Or(),new r0(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.vu.push(async e=>{e?(t.Mu.lr(),await Gk(t)):(await t.Mu.stop(),0<t.pu.length&&(p(Dk,`Stopping write stream with ${t.pu.length} pending writes`),t.pu=[]))})),t.Mu;var e,r,n,i}class Wk{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Nu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Nu(this.observer.error,e):gC("Uncaught Error in snapshot listener:",e.toString()))}Bu(){this.muted=!0}Nu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class Qk{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new AE,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 Qk(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 k(N.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 Yk(e,t){if(gC("AsyncQueue",t+": "+e),m0(e))return new k(N.UNAVAILABLE,t+": "+e);throw e}class $k{constructor(e,t){this.Lu=e,this.serializer=t,this.metadata=new AE,this.buffer=new Uint8Array,this.$u=new TextDecoder("utf-8"),this.Uu().then(e=>{e&&e.Tu()?this.metadata.resolve(e.hu.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
             `+JSON.stringify(e?.hu)))},e=>this.metadata.reject(e))}close(){return this.Lu.cancel()}async getMetadata(){return this.metadata.promise}async ku(){return await this.getMetadata(),this.Uu()}async Uu(){var e,t,r=await this.Qu();return null===r?null:(t=this.$u.decode(r),e=Number(t),isNaN(e)&&this.qu(`length string (${t}) is not valid number`),t=await this.Ku(e),new wk(JSON.parse(t),r.length+e))}Wu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Qu(){for(;this.Wu()<0&&!await this.Gu(););var e,t;return 0===this.buffer.length?null:((e=this.Wu())<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 Ku(e){for(;this.buffer.length<e;)await this.Gu()&&this.qu("Reached the end of bundle when more is expected.");var t=this.$u.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}qu(e){throw this.Lu.cancel(),new Error("Invalid bundle format: "+e)}async Gu(){var e,t=await this.Lu.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}}let Xk="IndexBackfiller";class Zk{constructor(e,t){this.asyncQueue=e,this.zu=t,this.task=null}start(){this.Hu(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}Hu(e){p(Xk,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.zu.Ju();p(Xk,"Documents written: "+e)}catch(e){m0(e)?p(Xk,"Ignoring IndexedDB error during index backfill: ",e):await h0(e)}await this.Hu(6e4)})}}class e1{constructor(e,t){this.localStore=e,this.persistence=t}async Ju(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.Yu(e,t))}Yu(e,t){let r=new Set,n=t,i=!0;return x.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return p(Xk,"Processing collection: "+t),this.Zu(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}Zu(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.Xu(r,e)).next(e=>(p(Xk,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}Xu(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Ly(t);0<Uy(r,n)&&(n=r)}),new My(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}let t1="firestore_clients";function r1(e,t){return t1+`_${e}_`+t}let n1="firestore_mutations";function i1(e,t,r){let n=n1+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let s1="firestore_targets";function a1(e,t){return s1+`_${e}_`+t}let o1="SharedClientState";class l1{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static ec(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 k(n.error.code,n.error.message)),s?new l1(e,t,n.state,i):(gC(o1,`Failed to parse mutation state for ID '${t}': `+r),null)}tc(){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 u1{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static ec(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 k(r.error.code,r.error.message)),i?new u1(e,r.state,n):(gC(o1,`Failed to parse target state for ID '${e}': `+t),null)}tc(){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 h1{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static ec(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=vw;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=vv(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new h1(e,i):(gC(o1,`Failed to parse client data for instance '${e}': `+t),null)}}class c1{constructor(e,t){this.clientId=e,this.onlineState=t}static ec(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new c1(t.clientId,t.onlineState):(gC(o1,"Failed to parse online state: "+e),null)}}class d1{constructor(){this.activeTargetIds=vw}nc(e){this.activeTargetIds=this.activeTargetIds.add(e)}rc(e){this.activeTargetIds=this.activeTargetIds.delete(e)}tc(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class B1{constructor(e,t,r,n,i){this.window=e,this.qn=t,this.persistenceKey=r,this.sc=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this._c=this.oc.bind(this),this.ac=new TC(S),this.started=!1,this.uc=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.cc=r1(this.persistenceKey,this.sc),this.lc="firestore_sequence_number_"+this.persistenceKey,this.ac=this.ac.insert(this.sc,new d1),this.Ec=new RegExp(`^${t1}_${s}_([^_]*)$`),this.hc=new RegExp(`^${n1}_${s}_(\\d+)(?:_(.*))?$`),this.Tc=new RegExp(`^${s1}_${s}_(\\d+)$`),this.Pc="firestore_online_state_"+this.persistenceKey,this.Ic="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this._c)}static cn(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.Ba();for(let r of e)if(r!==this.sc){let e=this.getItem(r1(this.persistenceKey,r));var t;e&&(t=h1.ec(r,e))&&(this.ac=this.ac.insert(t.clientId,t))}this.Rc();let r=this.storage.getItem(this.Pc);if(r){let e=this.Ac(r);e&&this.Vc(e)}for(let e of this.uc)this.oc(e);this.uc=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.lc,JSON.stringify(e))}getAllActiveQueryTargets(){return this.dc(this.ac)}isActiveQueryTarget(r){let n=!1;return this.ac.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.fc(e,"pending")}updateMutationState(e,t,r){this.fc(e,t,r),this.mc(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(a1(this.persistenceKey,t));var n;e&&(n=u1.ec(t,e))&&(r=n.state)}return e&&this.gc.nc(t),this.Rc(),r}removeLocalQueryTarget(e){this.gc.rc(e),this.Rc()}isLocalQueryTarget(e){return this.gc.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(a1(this.persistenceKey,e))}updateQueryState(e,t,r){this.yc(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.mc(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.wc(e)}notifyBundleLoaded(e){this.bc(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this._c),this.removeItem(this.cc),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return p(o1,"READ",e,t),t}setItem(e,t){p(o1,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){p(o1,"REMOVE",e),this.storage.removeItem(e)}oc(e){let t=e;t.storageArea===this.storage&&(p(o1,"EVENT",t.key,t.newValue),t.key===this.cc?gC("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.qn.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.Ec.test(t.key))return null==t.newValue?(e=this.Sc(t.key),this.xc(e,null)):(e=this.vc(t.key,t.newValue))?this.xc(e.clientId,e):void 0;if(this.hc.test(t.key)){if(null!==t.newValue){var e=this.Dc(t.key,t.newValue);if(e)return this.Cc(e)}}else if(this.Tc.test(t.key)){if(null!==t.newValue){var e=this.Fc(t.key,t.newValue);if(e)return this.Oc(e)}}else if(t.key===this.Pc){if(null!==t.newValue){var e=this.Ac(t.newValue);if(e)return this.Vc(e)}}else t.key===this.lc?(e=(e=>{let t=o0.Br;if(null!=e)try{var r=JSON.parse(e);T("number"==typeof r,30636,{Mc:e}),t=r}catch(e){gC(o1,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==o0.Br&&this.sequenceNumberHandler(e):t.key===this.Ic&&(e=this.Nc(t.newValue),await Promise.all(e.map(e=>this.syncEngine.Bc(e))))}}else this.uc.push(t)}))}get gc(){return this.ac.get(this.sc)}Rc(){this.setItem(this.cc,this.gc.tc())}fc(e,t,r){var n=new l1(this.currentUser,e,t,r),i=i1(this.persistenceKey,this.currentUser,e);this.setItem(i,n.tc())}mc(e){var t=i1(this.persistenceKey,this.currentUser,e);this.removeItem(t)}wc(e){var t={clientId:this.sc,onlineState:e};this.storage.setItem(this.Pc,JSON.stringify(t))}yc(e,t,r){var n=a1(this.persistenceKey,e),i=new u1(e,t,r);this.setItem(n,i.tc())}bc(e){var t=JSON.stringify(Array.from(e));this.setItem(this.Ic,t)}Sc(e){var t=this.Ec.exec(e);return t?t[1]:null}vc(e,t){var r=this.Sc(e);return h1.ec(r,t)}Dc(e,t){var r=this.hc.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return l1.ec(new kE(r),n,t)}Fc(e,t){var r=this.Tc.exec(e),r=Number(r[1]);return u1.ec(r,t)}Ac(e){return c1.ec(e)}Nc(e){return JSON.parse(e)}async Cc(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Lc(e.batchId,e.state,e.error);p(o1,"Ignoring mutation for non-active user "+e.user.uid)}Oc(e){return this.syncEngine.$c(e.targetId,e.state,e.error)}xc(e,t){let r=t?this.ac.insert(e,t):this.ac.remove(e),n=this.dc(this.ac),i=this.dc(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Uc(s,a).then(()=>{this.ac=r})}Vc(e){this.ac.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}dc(e){let r=vw;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class p1{constructor(){this.kc=new d1,this.Qc={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.kc.nc(e),this.Qc[e]||"not-current"}updateQueryState(e,t,r){this.Qc[e]=t}removeLocalQueryTarget(e){this.kc.rc(e)}isLocalQueryTarget(e){return this.kc.activeTargetIds.has(e)}clearQueryState(e){delete this.Qc[e]}getAllActiveQueryTargets(){return this.kc.activeTargetIds}isActiveQueryTarget(e){return this.kc.activeTargetIds.has(e)}start(){return this.kc=new d1,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}function f1(){return"undefined"!=typeof window?window:null}function g1(){return"undefined"!=typeof document?document:null}class m1{static emptySet(e){return new m1(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||A.comparator(e.key,t.key):(e,t)=>A.comparator(e.key,t.key),this.keyedMap=pw(),this.sortedSet=new TC(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 m1))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 m1;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class C1{constructor(){this.qc=new TC(A.comparator)}track(e){var t=e.doc.key,r=this.qc.get(t);!r||0!==e.type&&3===r.type?this.qc=this.qc.insert(t,e):3===e.type&&1!==r.type?this.qc=this.qc.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.qc=this.qc.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.qc=this.qc.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.qc=this.qc.remove(t):1===e.type&&2===r.type?this.qc=this.qc.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.qc=this.qc.insert(t,{type:2,doc:e.doc}):I(63341,{Nt:e,Kc:r})}Wc(){let r=[];return this.qc.inorderTraversal((e,t)=>{r.push(t)}),r}}class v1{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 v1(e,t,m1.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)&&zI(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 _1{constructor(){this.Gc=void 0,this.jc=[]}zc(){return this.jc.some(e=>e.Hc())}}class y1{constructor(){this.queries=w1(),this.onlineState="Unknown",this.Jc=new Set}terminate(){var e,r,t,n;e=this,r=new k(N.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=w1(),n.forEach((e,t)=>{for(let e of t.jc)e.onError(r)})}}function w1(){return new cw(e=>KI(e),zI)}async function E1(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.zc()&&r.Hc()&&(n=2):(s=new _1,n=r.Hc()?0:1);try{switch(n){case 0:s.Gc=await e.onListen(i,!0);break;case 1:s.Gc=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=Yk(t,`Initialization of query '${(qI(r.query)?GI:sw)(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.jc.push(r),r.Yc(e.onlineState),s.Gc&&r.Zc(s.Gc)&&D1(e)}async function b1(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.jc.indexOf(t);0<=e&&(s.jc.splice(e,1),0===s.jc.length?i=t.Hc()?0:1:!s.zc()&&t.Hc()&&(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 D1(e){e.Jc.forEach(e=>{e.next()})}(VM=sC=sC||{}).Default="default",VM.Cache="cache";class I1{constructor(e,t,r){this.query=e,this.Xc=t,this.el=!1,this.tl=null,this.onlineState="Unknown",this.options=r||{}}Zc(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new v1(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.el?this.nl(t)&&(this.Xc.next(t),e=!0):this.rl(t,this.onlineState)&&(this.il(t),e=!0),this.tl=t,e}onError(e){this.Xc.error(e)}Yc(e){this.onlineState=e;let t=!1;return this.tl&&!this.el&&this.rl(this.tl,e)&&(this.il(this.tl),t=!0),t}rl(e,t){return!e.fromCache||!this.Hc()||(!this.options.waitForSyncWhenOnline||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}nl(e){var t;return 0<e.docChanges.length||(t=this.tl&&this.tl.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}il(e){e=v1.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.el=!0,this.Xc.next(e)}Hc(){return this.options.source!==sC.Cache}}class T1{constructor(e){this.serializer=e}cu(e){return Yw(this.serializer,e)}lu(e){return e.metadata.exists?rE(this.serializer,e.document,!1):Ny.newNoDocument(this.cu(e.metadata.name),this.Eu(e.metadata.readTime))}Eu(e){return Kw(e)}}class S1{constructor(e,t){this.sl=e,this.serializer=t,this._l=[],this.ol=[],this.collectionGroups=new Set,this.progress=N1(e)}get queries(){return this._l}get documents(){return this.ol}al(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.hu.namedQuery?this._l.push(e.hu.namedQuery):e.hu.documentMetadata?(this.ol.push({metadata:e.hu.documentMetadata}),e.hu.documentMetadata.exists||++t,r=PC.fromString(e.hu.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.hu.document&&(this.ol[this.ol.length-1].document=e.hu.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}ul(e){let r=new Map,n=new T1(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.cu(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||O()).add(e);r.set(t,s)}}return r}async cl(e){let t=await(async(r,n,e,t)=>{let i=r,s=O(),a=dw;for(let r of e){let e=n.cu(r.metadata.name),t=(r.document&&(s=s.add(e)),n.lu(r));t.setReadTime(n.Eu(r.metadata.readTime)),a=a.insert(e,t)}let o=i.iu.newChangeBuffer({trackRemovals:!0}),l=await gk(i,(r=t,tw($y(PC.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>fk(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.ko.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.ko.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.ou,e.au)).next(()=>e.ou)))})(e,new T1(this.serializer),this.ol,this.sl.id),r=this.ul(this.documents);for(let t of this._l)await(async(e,r,n=O())=>{let i=await gk(e,tw(yS(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=Kw(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.qo.saveNamedQuery(e,r):(t=i.withResumeToken(tv.EMPTY_BYTE_STRING,t),s.tu=s.tu.insert(t.targetId,t),s.ko.updateTargetData(e,t).next(()=>s.ko.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.ko.addMatchingKeys(e,n,i.targetId)).next(()=>s.qo.saveNamedQuery(e,r)))})})(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ll:this.collectionGroups,El:t}}}function N1(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class k1{constructor(e){this.key=e}}class A1{constructor(e){this.key=e}}class R1{constructor(e,t){this.query=e,this.hl=t,this.Tl=null,this.hasCachedResults=!1,this.current=!1,this.Pl=O(),this.mutatedKeys=O(),this.Il=(qI(e)?EN:ow)(e),this.Rl=new m1(this.Il)}get Al(){return this.hl}Vl(e,t){let o=t?t.dl:new C1,l=(t||this).Rl,u=(t||this).mutatedKeys,h=l,c=!1,[d,B]=this.fl(this.query,l);e.inorderTraversal((e,t)=>{var r=l.get(e),n=wN(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.ml(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.Il(n,d)||B&&this.Il(n,B)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||B)&&(c=!0),a&&(u=n?(h=h.add(n),s?u.add(e):u.delete(e)):(h=h.delete(e),u.delete(e)))});var r=this.pl(this.query);if(r)if(qI(this.query)){let t=[],e=(h.forEach(e=>t.push(e)),_N(this.query,t)),r=new m1(EN(this.query));for(let t of e)r=r.add(t);h.forEach(e=>{r.has(e.key)||(u=u.delete(e.key),o.track({type:1,doc:e}))}),h=r}else{let t=this.gl(this.query);for(;h.size>r;){let e="F"===t?h.last():h.first();h=h.delete(e.key),u=u.delete(e.key),o.track({type:1,doc:e})}}return{Rl:h,dl:o,Za:c,mutatedKeys:u}}pl(e){return qI(e)?bN(e)?.limit:e.limit||void 0}gl(e){var t;return qI(e)?(t=bN(e))&&t.limit<0?"L":"F":e.limitType}fl(e,t){var r;return qI(e)?(r=bN(e)?.limit,[t.size===r?t.last():null,null]):["F"===e.limitType&&t.size===this.pl(this.query)?t.last():null,"L"===e.limitType&&t.size===this.pl(this.query)?t.first():null]}ml(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.Rl,s=(this.Rl=e.Rl,this.mutatedKeys=e.mutatedKeys,e.dl.Wc()),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 I(20277,{Nt:e})}})(r)-i(n)||this.Il(e.doc,t.doc);var r,n,i}),this.yl(r),n=n??!1,t&&!n?this.wl():[]),o=0===this.Pl.size&&this.current&&!n?1:0,l=o!==this.Tl;return this.Tl=o,0!==s.length||l?{snapshot:new v1(this.query,e.Rl,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),bl:a}:{bl:a}}Yc(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Rl:this.Rl,dl:new C1,mutatedKeys:this.mutatedKeys,Za:!1},!1)):{bl:[]}}Sl(e){return!this.hl.has(e)&&!!this.Rl.has(e)&&!this.Rl.get(e).hasLocalMutations}yl(e){e&&(e.addedDocuments.forEach(e=>this.hl=this.hl.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.hl=this.hl.delete(e)),this.current=e.current)}wl(){if(!this.current)return[];let t=this.Pl,r=(this.Pl=O(),this.Rl.forEach(e=>{this.Sl(e.key)&&(this.Pl=this.Pl.add(e.key))}),[]);return t.forEach(e=>{this.Pl.has(e)||r.push(new A1(e))}),this.Pl.forEach(e=>{t.has(e)||r.push(new k1(e))}),r}xl(e){this.hl=e.uu,this.Pl=O();var t=this.Vl(e.documents);return this.applyChanges(t,!0)}vl(){return v1.fromInitialDocuments(this.query,this.Rl,this.mutatedKeys,0===this.Tl,this.hasCachedResults)}}let O1="SyncEngine";class x1{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class P1{constructor(e){this.key=e,this.Dl=!1}}class F1{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.Cl={},this.Fl=new cw(e=>KI(e),zI),this.Ol=new Map,this.Ml=new Set,this.Nl=new TC(A.comparator),this.Bl=new Map,this.Ll=new UN,this.$l={},this.Ul=new Map,this.kl=BN.G_(),this.onlineState="Unknown",this.Ql=void 0}get isPrimaryClient(){return!0===this.Ql}}async function L1(e,t,r,n){var i=await gk(e.localStore,qI(t)?t:tw(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await M1(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&kk(e.remoteStore,i),o}async function M1(n,e,t,r,i){n.ql=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.Vl(r);i.Za&&(i=await Ck(e.localStore,t.query,!1).then(({documents:e})=>t.view.Vl(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 W1(e,t.targetId,s.bl),s.snapshot})(n,e,t,r);var s=await Ck(n.localStore,e,!0),a=new R1(e,s.uu),s=a.Vl(s.documents),o=Tw.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(W1(n,t,s.bl),new x1(e,t,a));return n.Fl.set(e,o),n.Ol.has(t)?n.Ol.get(t).push(e):n.Ol.set(t,[e]),s.snapshot}async function U1(t,e,r){var n=rA(t);try{let t=await((e,i)=>{let s=e,a=ZC.now(),o=i.reduce((e,t)=>e.add(t.key),O()),l,u;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=dw,r=O();return s.iu.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=P_(i.transform,e||null);null!=t&&(n=null===n?k_.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new ry(r.key,e,function i(e){let s=[];return VC(e.fields,(e,r)=>{var n=new LC([e]);if(E_(r)&&(e=r,!zv.has(b_(e)))){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 MC(s)}(e.value.mapValue),Q_.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(u=e).applyToLocalDocumentSet(l,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:u.batchId,changes:fw(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.$l[i.currentUser.toKey()];e=(e=e||new TC(S)).insert(s,a),i.$l[i.currentUser.toKey()]=e}await Y1(n,t.changes),await Gk(n.remoteStore)}catch(t){let e=Yk(t,"Failed to persist write");r.reject(e)}}async function V1(e,t){let n=e;try{let e=await pk(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Bl.get(t);r&&(T(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0<e.addedDocuments.size?r.Dl=!0:0<e.modifiedDocuments.size?T(r.Dl,14607):0<e.removedDocuments.size&&(T(r.Dl,42227),r.Dl=!1))}),await Y1(n,e,t)}catch(e){await h0(e)}}function G1(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.Fl.forEach((e,t)=>{var r=t.view.Yc(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.jc)e.Yc(a)&&(r=!0)}),r&&D1(o)}n.length&&s.Cl.gr(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function H1(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=>(T(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);K1(n,t,r),j1(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await Y1(n,e)}catch(r){await h0(r)}}async function q1(t,r){let n=t;Fk(n.remoteStore)||p(O1,"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===gv?r.resolve():((i=n.Ul.get(e)||[]).push(r),n.Ul.set(e,i))}catch(t){let e=Yk(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function j1(e,t){(e.Ul.get(t)||[]).forEach(e=>{e.resolve()}),e.Ul.delete(t)}function K1(e,t,r){var n=e;let i=n.$l[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.$l[n.currentUser.toKey()]=i}}function z1(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Ol.get(e))t.Fl.delete(n),r&&t.Cl.Kl(n,r);t.Ol.delete(e),t.isPrimaryClient&&t.Ll.fo(e).forEach(e=>{t.Ll.containsKey(e)||J1(t,e)})}function J1(e,t){e.Ml.delete(t.path.canonicalString());var r=e.Nl.get(t);null!==r&&(Ak(e.remoteStore,r),e.Nl=e.Nl.remove(t),e.Bl.delete(r),Q1(e))}function W1(e,t,r){for(var n of r)n instanceof k1?(e.Ll.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.Nl.get(a)||i.Ml.has(o)||(p(O1,"New document in limbo: "+a),i.Ml.add(o),Q1(i))):n instanceof A1?(p(O1,"Document no longer in limbo: "+n.key),e.Ll.removeReference(n.key,t),e.Ll.containsKey(n.key)||J1(e,n.key)):I(19791,{Wl:n});var i,s,a,o}function Q1(e){for(;0<e.Ml.size&&e.Nl.size<e.maxConcurrentLimboResolutions;){var t=e.Ml.values().next().value,t=(e.Ml.delete(t),new A(PC.fromString(t))),r=e.kl.next();e.Bl.set(r,new P1(t)),e.Nl=e.Nl.insert(t,r),kk(e.remoteStore,new dS(tw($y(t.path)),r,"TargetPurposeLimboResolution",o0.Br))}}async function Y1(e,t,n){let s=e,i=[],a=[],o=[];if(!s.Fl.isEmpty()){s.Fl.forEach((e,r)=>{o.push(s.ql(r,t,n).then(e=>{var t;(e||n)&&s.isPrimaryClient&&(t=e?!e.fromCache:n?.targetChanges.get(r.targetId)?.current,s.sharedClientState.updateQueryState(r.targetId,t?"current":"not-current")),e&&(i.push(e),t=nk.ka(r.targetId,e),a.push(t))}))}),await Promise.all(o),s.Cl.gr(i);{var r=s.localStore,l=a;let i=r;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>x.forEach(l,t=>x.forEach(t.$a,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>x.forEach(t.Ua,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(r){if(!m0(r))throw r;p(ok,"Failed to update sequence numbers: "+r)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.tu.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.tu=i.tu.insert(n,r)}}}}}async function $1(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.ns(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):x.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await Gk(i.remoteStore):"acknowledged"===r||"rejected"===r?(K1(i,t,n||null),j1(i,t),i.localStore.mutationQueue.us(t)):I(6720,"Unknown batchState",{Gl:r}),await Y1(i,s)):p(O1,"Cannot apply mutation batch with id: "+t)}async function X1(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.Ol.get(r);if(e&&0!==e.length){t=await gk(a.localStore,qI(e[0])?e[0]:tw(e[0]));for(let r of e){let e=a.Fl.get(r),t=(n=e,s=i=void 0,s=await Ck((i=a).localStore,n.query,!0),s=n.view.xl(s),i.isPrimaryClient&&W1(i,n.targetId,s.bl),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await vk(a.localStore,r);t=await gk(a.localStore,e),await M1(a,Z1(e),r,!1,t.resumeToken)}o.push(t)}return a.Cl.gr(l),o}function Z1(e){return jy(e)?e:Yy(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}async function eA(e,r,n,t){var i=e;if(i.Ql)p(O1,"Ignoring unexpected query state notification.");else{var s,a=i.Ol.get(r);if(a&&0<a.length)switch(n){case"current":case"not-current":{let e;if(qI(a[0]))switch($b(a[0])){case"collection_group":case"collection":e=await _k(i.localStore,eD(a[0]));break;case"documents":e=await((e,t)=>{let r=e,n=O(...tD(t).map(e=>A.fromPath(e)));return r.persistence.runTransaction("Get documents for pipeline","readonly",e=>r.iu.getEntries(e,n)).then(e=>e)})(i.localStore,a[0]);break;default:mC(""),e=pw()}else e=await _k(i.localStore,(s=a[0]).collectionGroup||(s.path.length%2==1?s.path.lastSegment():s.path.get(s.path.length-2)));let t=Iw.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,tv.EMPTY_BYTE_STRING);await Y1(i,e,t);break}case"rejected":await mk(i.localStore,r,!0),z1(i,r,t);break;default:I(64155,n)}}}function tA(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=V1.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Bl.get(t);if(r&&r.Dl)return O().add(r.key);{let r=O(),e=n.Ol.get(t);if(e)for(let t of e??[]){let e=n.Fl.get(t);r=r.unionWith(e.view.Al)}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.Bl.get(n)),s=r&&r.key;if(s){let e=new TC(A.comparator),t=(e=e.insert(s,Ny.newNoDocument(s,R.min())),O().add(s)),r=new Iw(R.min(),new Map,new TC(S),e,dw,t);await V1(i,r),i.Nl=i.Nl.remove(s),i.Bl.delete(n),Q1(i)}else await mk(i.localStore,n,!1).then(()=>z1(i,n,t)).catch(h0)}).bind(null,t),t.Cl.gr=(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.jc)e.Zc(r)&&(i=!0);t.Gc=r}}i&&D1(n)}).bind(null,t.eventManager),t.Cl.Kl=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.jc)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function rA(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await dk(r.localStore,t);K1(r,n,null),j1(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await Y1(r,e)}catch(e){await h0(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=H1.bind(null,t),t}function nA(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=Kw(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.qo.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(N1(i));var s=new S1(i,r.serializer);let t=await r.ku();for(;t;){let e=await s.al(t);e&&n._updateProgress(e),t=await r.ku()}var a=await s.cl(e.localStore);return await Y1(e,a.El,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.qo.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.ll)}catch(e){return mC(O1,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class iA{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=vE(e.databaseInfo.databaseId),this.sharedClientState=this.jl(e),this.persistence=this.zl(e),await this.persistence.start(),this.localStore=this.Hl(e),this.gcScheduler=this.Jl(e,this.localStore),this.indexBackfillerScheduler=this.Yl(e,this.localStore)}Jl(e,t){return null}Yl(e,t){return null}Hl(e){return hk(this.persistence,new ak,e.initialUser,this.serializer)}zl(e){return new KN(JN.Ho,this.serializer)}jl(e){return new p1}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}iA.provider={build:()=>new iA};class sA extends iA{constructor(e){super(),this.cacheSizeBytes=e}Jl(e,t){T(this.persistence.referenceDelegate instanceof WN,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new D0(r,e.asyncQueue,t)}zl(e){let t=void 0!==this.cacheSizeBytes?a0.withCacheSize(this.cacheSizeBytes):a0.DEFAULT;return new KN(e=>WN.Ho(e,t),this.serializer)}}class aA extends iA{constructor(e,t,r){super(),this.Zl=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Zl.initialize(this,e),await rA(this.Zl.syncEngine),await Gk(this.Zl.remoteStore),await this.persistence.fa(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}Hl(e){return hk(this.persistence,new ak,e.initialUser,this.serializer)}Jl(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new D0(r,e.asyncQueue,t)}Yl(e,t){var r=new e1(t,this.persistence);return new Zk(e.asyncQueue,r)}zl(e){var t=rk(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?a0.withCacheSize(this.cacheSizeBytes):a0.DEFAULT;return new ZN(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,f1(),g1(),this.serializer,this.sharedClientState,!!this.forceOwnership)}jl(e){return new p1}}class oA extends aA{constructor(e,t){super(e,t,!1),this.Zl=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Zl.syncEngine;this.sharedClientState instanceof B1&&(this.sharedClientState.syncEngine={Lc:$1.bind(null,t),$c:eA.bind(null,t),Uc:(async function(e,t,n){let i=tA(e);if(i.Ql){for(let r of t)if(i.Ol.has(r)&&i.sharedClientState.isActiveQueryTarget(r))p(O1,"Adding an already active target "+r);else{let e=await vk(i.localStore,r),t=await gk(i.localStore,e);await M1(i,Z1(e),t.targetId,!1,t.resumeToken),kk(i.remoteStore,t)}for(let r of n)i.Ol.has(r)&&await mk(i.localStore,r,!1).then(()=>{Ak(i.remoteStore,r),z1(i,r)}).catch(h0)}}).bind(null,t),Ba:(function(e){return e.localStore.persistence.Ba()}).bind(null,t),Bc:(async function(e,t){let r=e;return _k(r.localStore,t).then(e=>Y1(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.fa(async e=>{{var t=this.Zl.syncEngine,s=e;let i=t;if(tA(i),rA(i),!0===s&&!0!==i.Ql){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await X1(i,e.toArray());i.Ql=!0,await Kk(i.remoteStore,!0);for(let e of t)kk(i.remoteStore,e)}else if(!1===s&&!1!==i.Ql){let r=[],n=Promise.resolve();i.Ol.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(z1(i,t),mk(i.localStore,t,!0))),Ak(i.remoteStore,t)}),await n,await X1(i,r);{s=i;let r=s;r.Bl.forEach((e,t)=>{Ak(r.remoteStore,t)}),r.Ll.mo(),r.Bl=new Map,r.Nl=new TC(A.comparator)}i.Ql=!1,await Kk(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())})}jl(e){var t,r=f1();if(B1.cn(r))return t=rk(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new B1(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new k(N.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class lA{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=>G1(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){p(O1,"User change. New user:",t.toKey());let e=await ck(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Ul.forEach(e=>{e.forEach(e=>{e.reject(new k(N.CANCELLED,n))})}),r.Ul.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await Y1(i,e._u)}}).bind(null,this.syncEngine),await Kk(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new y1}createDatastore(e){var t,r,n,i=vE(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new $E(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new n0(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>G1(this.syncEngine,e,0),i=new(qE.cn()?qE:GE),new Ik(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 F1(r,n,i,s,a,e),t&&(o.Ql=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,p(Dk,"RemoteStore shutting down."),t.xu.add(5),await Sk(t),t.Du.shutdown(),await!t.Cu.set("Unknown"),this.datastore?.terminate(),this.eventManager?.terminate()}}lA.provider={build:()=>new lA};let uA=class{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 k(N.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=>Qw(l.serializer,e))},n=await l.dn("BatchGetDocuments",l.serializer.databaseId,PC.emptyPath(),r,t.length),u=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,T(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=Yw(r,n.found.name),s=Kw(n.found.updateTime),o=n.found.createTime?Kw(n.found.createTime):R.min(),a=new k_({mapValue:{fields:n.found.fields}}),Ny.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,T(!!(n=e).missing,3894),T(!!n.readTime,22933),i=Yw(r,n.missing),s=Kw(n.readTime),Ny.newNoDocument(i,s)):I(7234,{result:e});u.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=u.get(e.toString());T(!!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 ay(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=A.fromPath(t);this.mutations.push(new oy(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>nE(t.serializer,e))};await t.In("Commit",t.serializer.databaseId,PC.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw I(50498,{Xl:e.constructor.name});t=R.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new k(N.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(R.min())?Q_.exists(!1):Q_.updateTime(t):Q_.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return Q_.exists(!0);if(t.isEqual(R.min()))throw new k(N.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Q_.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}};class hA{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.eE=r.maxAttempts,this._r=new XE(this.asyncQueue,"transaction_retry")}tE(){--this.eE,this.nE()}nE(){this._r.Yn(async()=>{let t=new uA(this.datastore),e=this.rE(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.iE(e)}))}).catch(e=>{this.iE(e)})})}rE(e){try{var t=this.updateFunction(e);return!mv(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}}iE(e){0<this.eE&&this.sE(e)?(--this.eE,this.asyncQueue.enqueueAndForget(()=>(this.nE(),Promise.resolve()))):this.deferred.reject(e)}sE(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!uw(t))}}let cA="FirestoreClient";class dA{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=kE.UNAUTHENTICATED,this.clientId=_C.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{p(cA,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(p(cA,"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 AE;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=Yk(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function BA(e,t){e.asyncQueue.verifyOperationInProgress(),p(cA,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await ck(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function pA(e,r){e.asyncQueue.verifyOperationInProgress();var t=await fA(e);p(cA,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>jk(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>jk(r.remoteStore,t)),e._onlineComponents=r}async function fA(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){p(cA,"Using user provided OfflineComponentProvider");try{await BA(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===N.FAILED_PRECONDITION||n.code===N.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;mC("Error using user provided cache. Falling back to memory cache: "+r),await BA(t,new iA)}}else p(cA,"Using default OfflineComponentProvider"),await BA(t,new sA(void 0));var n;return t._offlineComponents}async function gA(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(p(cA,"Using user provided OnlineComponentProvider"),await pA(e,e._uninitializedComponentsProvider._online)):(p(cA,"Using default OnlineComponentProvider"),await pA(e,new lA))),e._onlineComponents}function mA(e){return fA(e).then(e=>e.persistence)}function CA(e){return fA(e).then(e=>e.localStore)}function vA(e){return gA(e).then(e=>e.remoteStore)}function _A(e){return gA(e).then(e=>e.syncEngine)}async function yA(e){var t=await gA(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=tA(e);let i;var s=n.Fl.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.vl()):await L1(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Fl.get(t),s=n.Ol.get(i.targetId);1<s.length?(n.Ol.set(i.targetId,s.filter(e=>!zI(e,t))),n.Fl.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await mk(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&Ak(n.remoteStore,i.targetId),z1(n,i.targetId)}).catch(h0)):(z1(n,i.targetId),await mk(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await L1(tA(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Fl.get(t),i=r.Ol.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),Ak(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function wA(r){return r.asyncQueue.enqueue(async()=>{var e=await mA(r),t=await vA(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.xu.add(0),await Sk(t),t.Cu.set("Offline")})(t)})}function EA(e,t){let r=new AE;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 k(N.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=Yk(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await CA(e),t,r)),r.promise}function bA(e,t,u={}){let h=new AE;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await yA(e),s=e.asyncQueue,a=t,o=u,l=h;let r=new Wk({next:e=>{r.Bu(),s.enqueueAndForget(()=>b1(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new k(N.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new k(N.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 I1($y(a.path),r,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return E1(i,n)}}),h.promise}function DA(e,t){let r=new AE;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await Ck(e,t,!0),i=new R1(t,n.uu),s=i.Vl(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=Yk(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await CA(e),t,r)),r.promise}function IA(o,l,u={}){let h=new AE;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await yA(o),i=o.asyncQueue,e=l,s=u,a=h;let t=new Wk({next:e=>{t.Bu(),i.enqueueAndForget(()=>b1(n,r)),e.fromCache&&"server"===s.source?a.reject(new k(N.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 I1(!1?QI(e):e,t,{includeMetadataChanges:!0,waitForSyncWhenOnline:!0});return E1(n,r)}}),h.promise}function TA(r,e){let n=new Wk(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await yA(r),t=n,e.Jc.add(t),void t.next();var e,t}),()=>{n.Bu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await yA(r),t=n,e.Jc.delete(t)})}}function SA(t,r,n){let i=new AE;return t.asyncQueue.enqueueAndForget(async()=>{var e=await gA(t).then(e=>e.datastore);new hA(t.asyncQueue,e,n,r,i).tE()}),i.promise}function NA(e,t,r,n){r=r,t=vE(t),s="string"==typeof r?_w().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return Ek(e,t);if(e instanceof ArrayBuffer)return Ek(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 $k(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{nA(await _A(e),i,n)})}function kA(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await CA(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.qo.getNamedQuery(e,r))}})}let AA=class{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 R0(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new RA(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){var t=this._document.data.field(lb("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}},RA=class extends AA{data(){return super.data()}};class OA{convertValue(e,t="none"){switch(Qv(e)){case 0:return null;case 2:return e.booleanValue;case 3:if("mapValue"in e){if(C_(e))return this.convertToInt32Value(e.mapValue);if(m_(e))return this.convertToDecimal128Value(e.mapValue)}return iv(e.integerValue||e.doubleValue);case 4:return this.convertTimestamp(e.timestampValue);case 6:return this.convertServerTimestamp(e,t);case 7:return e.stringValue;case 8:return"bytesValue"in e?this.convertBytes(sv(e.bytesValue)):this.convertToBytesWithSubtype(e.mapValue);case 9:return this.convertReference(e.referenceValue);case 11:return this.convertGeoPoint(e.geoPointValue);case 13:return this.convertArray(e.arrayValue,t);case 15:return this.convertObject(e.mapValue,t);case 14:return this.convertVectorValue(e.mapValue);case 12:return this.convertToRegexValue(e.mapValue);case 10:return this.convertToBsonObjectId(e.mapValue);case 5:return this.convertToBsonTimestamp(e.mapValue);case 16:return SE.instance();case 1:return NE.instance();default:throw I(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return VC(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[Ev].arrayValue?.values?.map(e=>iv(e.doubleValue));return new U0(t)}convertToBsonObjectId(e){var t=e.fields?.[Nv]?.stringValue??"";return new _E(t)}convertToBytesWithSubtype(e){var t=(e.fields?.[Pv])?.bytesValue;if(!t)throw new Error("Received incorrect bytesValue for Bytes with subtype");t=sv(t).toUint8Array();if(0===t.length)throw new Error("Received empty bytesValue for Bytes with subtype");var r=t[0],t=t.slice(1);return new wE(tv.fromUint8Array(t),r)}convertToBsonTimestamp(e){var t=e.fields?.[Rv],r=Number(t?.mapValue?.fields?.[Ov]?.integerValue),t=Number(t?.mapValue?.fields?.[xv]?.integerValue);return new yE(r,t)}convertToRegexValue(e){var t=e.fields?.[Iv]?.mapValue?.fields?.[Tv]?.stringValue??"",r=e.fields?.[Iv]?.mapValue?.fields?.[Sv]?.stringValue??"";return new M0(t,r)}convertToInt32Value(e){var t=Number(e.fields?.[kv]?.integerValue);return new TE(t)}convertToDecimal128Value(e){var t=e.fields?.[Av]?.stringValue??"";return new EE(t)}convertGeoPoint(e){return new IE(iv(e.latitude),iv(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=cv(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(dv(e));default:return null}}convertTimestamp(e){var t=nv(e);return new ZC(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=PC.fromString(e),n=(T(fE(r),9688,{name:e}),new fv(r.get(1),r.get(3))),r=new A(r.popFirst(5));return n.isEqual(t)||gC(`A document reference to ${r} refers to 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 xA(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class PA extends OA{constructor(e){super(),this.firestore=e}convertBytes(e){return new wE(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new R0(this.firestore,null,t)}}let FA="AsyncQueue";class LA{constructor(e=Promise.resolve()){this._E=[],this.oE=!1,this.aE=[],this.uE=null,this.cE=!1,this.lE=!1,this.EE=[],this._r=new XE(this,"async_queue_retry"),this.hE=()=>{var e=g1();e&&p(FA,"Visibility state changed to "+e.visibilityState),this._r.Xn()},this.TE=e;var t=g1();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.hE)}get isShuttingDown(){return this.oE}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.PE(),this.IE(e)}enterRestrictedMode(e){var t;this.oE||(this.oE=!0,this.lE=e||!1,(t=g1())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.hE))}enqueue(e){if(this.PE(),this.oE)return new Promise(()=>{});let t=new AE;return this.IE(()=>this.oE&&this.lE?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this._E.push(e),this.RE()))}async RE(){if(0!==this._E.length){try{await this._E[0](),this._E.shift(),this._r.reset()}catch(e){if(!m0(e))throw e;p(FA,"Operation failed with retryable error: "+e)}0<this._E.length&&this._r.Yn(()=>this.RE())}}IE(e){var t=this.TE.then(()=>(this.cE=!0,e().catch(e=>{throw this.uE=e,this.cE=!1,gC("INTERNAL UNHANDLED ERROR: ",MA(e)),e}).then(e=>(this.cE=!1,e))));return this.TE=t}enqueueAfterDelay(e,t,r){this.PE(),-1<this.EE.indexOf(e)&&(t=0);var n=Qk.createAndSchedule(this,e,t,r,e=>this.AE(e));return this.aE.push(n),n}PE(){this.uE&&I(47125,{VE:MA(this.uE)})}verifyOperationInProgress(){}async dE(){for(var e;await(e=this.TE),e!==this.TE;);}fE(e){for(var t of this.aE)if(t.timerId===e)return!0;return!1}mE(t){return this.dE().then(()=>{this.aE.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.aE)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.dE()})}pE(e){this.EE.push(e)}AE(e){var t=this.aE.indexOf(e);this.aE.splice(t,1)}}function MA(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}class UA{constructor(){this._progressObserver={},this._taskCompletionResolver=new AE,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}class VA extends k0{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new LA,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new LA(e),this._firestoreClient=void 0,await e)}}function GA(e){if(e._terminated)throw new k(N.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||HA(e),e._firestoreClient}function HA(e){var t,r,n,i,s,a=e._freezeSettings(),o=(s=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=e._app?.options.apiKey,i=a,new Bv(s,t,r,i.host,i.ssl,i.experimentalForceLongPolling,i.experimentalAutoDetectLongPolling,VE(i.experimentalLongPollingOptions),i.useFetchStreams,i.isUsingEmulator,n,i._customHeaders,i.grpcFlowControlWindow));e._componentsProvider||a.localCache?._offlineComponentProvider&&a.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new dA(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}function qA(e,t,r){if((e=WC(e,VA))._firestoreClient||e._terminated)throw new k(N.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 k(N.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},HA(e)}function jA(r){if(r._initialized&&!r._terminated)throw new k(N.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new AE;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=rk(r._databaseId,r._persistenceKey),await(B0.cn()?(t=e+"main",void await B0.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function KA(e){return(r=GA(e=WC(e,VA))).asyncQueue.enqueue(async()=>{var e=await mA(r),t=await vA(r);return e.setNetworkEnabled(!0),(e=t).xu.delete(0),Tk(e)});var r}class zA extends OA{constructor(e){super(),this.firestore=e}convertBytes(e){return new wE(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new R0(this.firestore,null,t)}}class JA{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}let WA=class UR extends AA{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 QA(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(lb("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new k(N.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=UR._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}},QA=(WA._jsonSchemaVersion="firestore/documentSnapshot/1.0",WA._jsonSchema={type:YC("string",WA._jsonSchemaVersion),bundleSource:YC("string","DocumentSnapshot"),bundleName:YC("string"),bundle:YC("string")},class extends WA{data(e={}){return super.data(e)}}),YA=class qR{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new JA(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 QA(this._firestore,this._userDataWriter,e.key,e,new JA(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 k(N.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=>{qI(s._snapshot.query)?EN(s._snapshot.query):ow(s.query._query);var t=new QA(s._firestore,s._userDataWriter,e.doc.key,e.doc,new JA(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 QA(s._firestore,s._userDataWriter,e.doc.key,e.doc,new JA(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 I(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 k(N.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=qR._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=_C.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 $A(e,t){return e instanceof WA&&t instanceof WA?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 YA&&t instanceof YA&&e._firestore===t._firestore&&L0(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}function XA(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new k(N.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}YA._jsonSchemaVersion="firestore/querySnapshot/1.0",YA._jsonSchema={type:YC("string",YA._jsonSchemaVersion),bundleSource:YC("string","QuerySnapshot"),bundleName:YC("string"),bundle:YC("string")};class ZA{}class eR extends ZA{}function tR(e,t,...r){let n=[];t instanceof ZA&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof rR).length;if(1<i||0<i&&0<s)throw new k(N.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 rR extends eR{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new rR(e,t,r)}_apply(e){var t=this._parse(e);return hR(e._query,t),new A0(e.firestore,e.converter,rw(e._query,t))}_parse(e){var t=z0(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;var u=l,h=o;if("number"==typeof u&&isNaN(u)&&"=="!==h&&"!="!==h&&"array-contains"!==h)throw new Error("Invalid query. You can only perform '==' and '!=' comparisons on NaN.");if(null===u&&"=="!==h&&"!="!==h&&"array-contains"!==h)throw new Error("Invalid query. You can only perform '==' and '!=' comparisons on Null.");if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new k(N.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){uR(l,o);let e=[];for(let t of l)e.push(lR(a,n,t));r={arrayValue:{values:e}}}else r=lR(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||uR(l,o),r=rb(s,i,l,"in"===o||"not-in"===o);return dy.create(e,o,r)}}}(class extends ZA{});class nR extends eR{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new nR(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new k(N.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new k(N.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Sy(t,r)})(e._query,this._field,this._direction);return new A0(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Qy(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class iR extends eR{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new iR(e,t,r)}_apply(e){return new A0(e.firestore,e.converter,nw(e._query,this._limit,this._limitType))}}class sR extends eR{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new sR(e,t,r)}_apply(e){var t,r=oR(e,this.type,this._docOrFields,this._inclusive);return new A0(e.firestore,e.converter,(e=e._query,t=r,new Qy(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class aR extends eR{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new aR(e,t,r)}_apply(e){var t,r=oR(e,this.type,this._docOrFields,this._inclusive);return new A0(e.firestore,e.converter,(e=e._query,t=r,new Qy(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function oR(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof AA){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,u=i;if(!l)throw new k(N.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of ew(s))if(t.field.isKeyField())h.push(p_(a,l.key));else{let e=l.data.field(t.field);if(hv(e))throw new k(N.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 k(N.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.`)}h.push(e)}return new ly(h,u)}var t=z0(e.firestore),c=e._query,d=e.firestore._databaseId,B=t,p=r,f=n,o=i,g=c.explicitOrderBy;if(f.length>g.length)throw new k(N.INVALID_ARGUMENT,`Too many arguments provided to ${p}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var m=[];for(let v=0;v<f.length;v++){var C=f[v];if(g[v].field.isKeyField()){if("string"!=typeof C)throw new k(N.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${p}(), but got a `+typeof C);if(!Zy(c)&&-1!==C.indexOf("/"))throw new k(N.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${p}() must be a plain document ID, but '${C}' contains a slash.`);let e=c.path.child(PC.fromString(C));if(!A.isDocumentKey(e))throw new k(N.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${p}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new A(e);m.push(p_(d,t))}else{let e=rb(B,p,C);m.push(e)}}return new ly(m,o)}function lR(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new k(N.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Zy(t)&&-1!==r.indexOf("/"))throw new k(N.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(PC.fromString(r));if(A.isDocumentKey(n))return p_(e,new A(n));throw new k(N.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 R0)return p_(e,r._key);throw new k(N.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${JC(r)}.`)}function uR(e,t){if(!Array.isArray(e)||0===e.length)throw new k(N.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function hR(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 k(N.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new k(N.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function cR(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}}let dR={maxAttempts:5},BR=class{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=z0(e)}set(e,t,r){this._verifyNotCommitted();var n=pR(e,this._firestore),i=xA(n.converter,t,r),i=J0(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,Q_.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=pR(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof bE?tb(this._dataReader,"WriteBatch.update",i._key,t,r,n):eb(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,Q_.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=pR(e,this._firestore);return this._mutations=this._mutations.concat(new ay(t._key,Q_.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 k(N.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}};function pR(e,t){if((e=_(e)).firestore!==t)throw new k(N.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}var fR,gR,sr=class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=z0(e)}get(e){let r=pR(e,this._firestore),n=new PA(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return I(24041);var t=e[0];if(t.isFoundDocument())return new AA(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new AA(this._firestore,n,r._key,null,r.converter);throw I(18433,{doc:t})})}set(e,t,r){var n=pR(e,this._firestore),i=xA(n.converter,t,r),i=J0(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=pR(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof bE?tb(this._dataReader,"Transaction.update",i._key,t,r,n):eb(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=pR(e,this._firestore);return this._transaction.delete(t._key),this}};let mR=class extends sr{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=pR(e,this._firestore),r=new zA(this._firestore);return super.get(e).then(e=>new WA(this._firestore,r,t._key,e._document,new JA(!1,!1),t.converter))}};function CR(e,t,r){e=WC(e,R0);var n=WC(e.firestore,VA),i=xA(e.converter,t,r);return yR(n,[J0(z0(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,Q_.none())])}function vR(e,t,r,...n){e=WC(e,R0);var i=WC(e.firestore,VA),s=z0(i);return yR(i,[("string"==typeof(t=_(t))||t instanceof bE?tb(s,"updateDoc",e._key,t,r,n):eb(s,"updateDoc",e._key,t)).toMutation(e._key,Q_.exists(!0))])}function _R(n,...i){n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||cR(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(cR(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,l;if(n instanceof R0)o=WC(n.firestore,VA),l=$y(n._key.path),a={next:e=>{i[s]&&i[s](wR(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=WC(n,A0),r=(o=WC(t.firestore,VA),l=t._query,new zA(o));a={next:e=>{i[s]&&i[s](new YA(o,r,t,e))},error:i[s+1],complete:i[s+2]},XA(n._query)}var u=GA(o);{var h=u,c=l,d=r,B=a;let e=new Wk(B),t=new I1(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>E1(await yA(h),t)),()=>{e.Bu(),h.asyncQueue.enqueueAndForget(async()=>b1(await yA(h),t))}}}function yR(e,t){var r=GA(e);{var n=r,i=t;let e=new AE;return n.asyncQueue.enqueueAndForget(async()=>U1(await _A(n),i,e)),e.promise}}function wR(e,t,r){var n=r.docs.get(t._key),i=new zA(e);return new WA(e,i,t._key,n,new JA(r.hasPendingWrites,r.fromCache),t.converter)}let ER="@firebase/firestore";fR=!0,P=Lt,BC=P,St(new He("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new VA(new PE(e.getProvider("auth-internal")),new UE(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new fv(e.options.projectId,t);throw new k(N.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:fR,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Gt(ER,"4.20.0",KP),Gt(ER,"4.20.0","esm2020");function bR(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new k("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function DR(){if("undefined"==typeof Uint8Array)throw new k("unimplemented","Uint8Arrays are not available in this environment.")}function IR(){if("undefined"==typeof atob)throw new k("unimplemented","Blobs are unavailable in Firestore in this environment.")}let TR=class Blob{constructor(e){this._delegate=e}static fromBase64String(e){return IR(),new Blob(wE.fromBase64String(e))}static fromUint8Array(e){return DR(),new Blob(wE.fromUint8Array(e))}toBase64(){return IR(),this._delegate.toBase64()}toUint8Array(){return DR(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}};function SR(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 NR{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};mC("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return qA(e,lA.provider,{build:e=>new aA(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{mC("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();qA(e,lA.provider,{build:e=>new oA(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return jA(e._delegate)}}class kR{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof fv||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||mC("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(i,s,a={}){{var[i,s,a,o={}]=[this._delegate,i,s,a];i=WC(i,k0);let e=Ve(s),t=i._getSettings(),r={...t,emulatorOptions:i._getEmulatorOptions()},n=s+":"+a;e&&Ge("https://"+n),t.host!==S0&&t.host!==n&&mC("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l={...t,host:n,ssl:e,emulatorOptions:o};if(!we(l,r)&&(i._setSettings(l),o.mockUserToken)){let t,r;if("string"==typeof o.mockUserToken)t=o.mockUserToken,r=kE.MOCK_USER;else{t=ee(o.mockUserToken,i._app?.options.projectId);let e=o.mockUserToken.sub||o.mockUserToken.user_id;if(!e)throw new k(N.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new kE(e)}i._authCredentials=new xE(new RE(t,r))}}}enableNetwork(){return KA(this._delegate)}disableNetwork(){return wA(GA(WC(this._delegate,VA)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,qC("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=GA(t=WC(t,VA));let e=new AE;return r.asyncQueue.enqueueAndForget(async()=>q1(await _A(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,TA(GA(t=WC(t,VA)),cR(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new k("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new jR(this,x0(this._delegate,e))}catch(e){throw FR(e,"collection()","Firestore.collection()")}}doc(e){try{return new PR(this,P0(this._delegate,e))}catch(e){throw FR(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new GR(this,((e,t)=>{if(e=WC(e,k0),HC("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new k(N.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new A0(e,null,(e=t,new Qy(PC.emptyPath(),e)))})(this._delegate,e))}catch(e){throw FR(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){var r=this._delegate,n=e=>t(new RR(this,e)),e=void 0,i=(r=WC(r,VA),{...dR,...e});if(i.maxAttempts<1)throw new k(N.INVALID_ARGUMENT,"Max attempts must be at least 1");return SA(GA(r),e=>n(new mR(r,e)),i)}batch(){return GA(this._delegate),new OR(new BR(this._delegate,e=>yR(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=GA(t=WC(t,VA)),n=new UA,NA(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,kA(GA(t=WC(t,VA)),e).then(e=>e?new A0(t,null,e.query):null).then(e=>e?new GR(this,e):null);var t}}class AR extends OA{constructor(e){super(),this.firestore=e}convertBytes(e){return new TR(new wE(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return PR.forKey(t,this.firestore,null)}}class RR{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new AR(e)}get(e){let t=KR(e);return this._delegate.get(t).then(e=>new UR(this._firestore,new WA(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=KR(e);return r?(bR("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=KR(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=KR(e);return this._delegate.delete(t),this}}class OR{constructor(e){this._delegate=e}set(e,t,r){var n=KR(e);return r?(bR("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=KR(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=KR(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class xR{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new QA(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new VR(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=xR.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new xR(e,new AR(e),t),n.set(t,i)),i}}xR.INSTANCES=new WeakMap;class PR{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new AR(e)}static forPath(e,t,r){if(e.length%2!=0)throw new k("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new PR(t,new R0(t._delegate,r,new A(e)))}static forKey(e,t,r){return new PR(t,new R0(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new jR(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new jR(this.firestore,x0(this._delegate,e))}catch(e){throw FR(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof R0&&F0(this._delegate,e)}set(e,t){t=bR("DocumentReference.set",t);try{return t?CR(this._delegate,e,t):CR(this._delegate,e)}catch(e){throw FR(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?vR(this._delegate,e):vR(this._delegate,e,t,...r)}catch(e){throw FR(e,"updateDoc()","DocumentReference.update()")}}delete(){return yR(WC((e=this._delegate).firestore,VA),[new ay(e._key,Q_.none())]);var e}onSnapshot(...e){var t=LR(e),r=MR(e,e=>new UR(this.firestore,new WA(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return _R(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=WC(t,R0);let r=WC(t.firestore,VA),e=GA(r),n=new zA(r);return EA(e,t._key).then(e=>new WA(r,n,t._key,e,new JA(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=WC(t,R0);let r=WC(t.firestore,VA),e=GA(r);return bA(e,t._key,{source:"server"}).then(e=>wR(r,t,e))}:t=>{t=WC(t,R0);let r=WC(t.firestore,VA),e=GA(r);return bA(e,t._key).then(e=>wR(r,t,e))})(this._delegate)).then(e=>new UR(this.firestore,new WA(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new PR(this.firestore,e?this._delegate.withConverter(xR.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function FR(e,t,r){return e.message=e.message.replace(t,r),e}function LR(e){for(var t of e)if("object"==typeof t&&!SR(t))return t;return{}}function MR(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=SR(e[0])?e[0]:SR(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]}).error?.bind(r),complete:r.complete?.bind(r)}}class UR{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new PR(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 $A(this._delegate,e._delegate)}}class VR extends UR{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||I(57014,e),t}}class GR{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new AR(e)}where(e,t,r){try{return new GR(this.firestore,tR(this._delegate,(n=r,i=t,s=lb("where",e),rR._create(s,i,n))))}catch(e){throw FR(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new GR(this.firestore,tR(this._delegate,([r,n="asc"]=[e,t],i=n,s=lb("orderBy",r),nR._create(s,i))))}catch(e){throw FR(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new GR(this.firestore,tR(this._delegate,(QC("limit",t=e),iR._create("limit",t,"F"))))}catch(e){throw FR(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new GR(this.firestore,tR(this._delegate,(QC("limitToLast",t=e),iR._create("limitToLast",t,"L"))))}catch(e){throw FR(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new GR(this.firestore,tR(this._delegate,([...t]=[...e],sR._create("startAt",t,!0))))}catch(e){throw FR(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new GR(this.firestore,tR(this._delegate,([...t]=[...e],sR._create("startAfter",t,!1))))}catch(e){throw FR(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new GR(this.firestore,tR(this._delegate,([...t]=[...e],aR._create("endBefore",t,!1))))}catch(e){throw FR(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new GR(this.firestore,tR(this._delegate,([...t]=[...e],aR._create("endAt",t,!0))))}catch(e){throw FR(e,"endAt()","Query.endAt()")}var t}isEqual(e){return L0(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=WC(t,A0);let r=WC(t.firestore,VA),e=GA(r),n=new zA(r);return DA(e,t._query).then(e=>new YA(r,n,t,e))}:"server"===e?.source?t=>{t=WC(t,A0);let r=WC(t.firestore,VA),e=GA(r),n=new zA(r);return IA(e,t._query,{source:"server"}).then(e=>new YA(r,n,t,e))}:t=>{t=WC(t,A0);let r=WC(t.firestore,VA),e=GA(r),n=new zA(r);return XA(t._query),IA(e,t._query).then(e=>new YA(r,n,t,e))})(this._delegate)).then(e=>new qR(this.firestore,new YA(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=LR(e),r=MR(e,e=>new qR(this.firestore,new YA(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return _R(this._delegate,t,r)}withConverter(e){return new GR(this.firestore,e?this._delegate.withConverter(xR.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class HR{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new VR(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class qR{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new GR(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 VR(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new HR(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new VR(this._firestore,e))})}isEqual(e){return $A(this._delegate,e._delegate)}}class jR extends GR{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 PR(this.firestore,e):null}doc(e){try{return void 0===e?new PR(this.firestore,P0(this._delegate)):new PR(this.firestore,P0(this._delegate,e))}catch(e){throw FR(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=WC(e.firestore,VA),n=P0(e),i=xA(e.converter,t),s=z0(e.firestore);return yR(r,[J0(s,"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,Q_.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new PR(this.firestore,e))}isEqual(e){return F0(this._delegate,e._delegate)}withConverter(e){return new jR(this.firestore,e?this._delegate.withConverter(xR.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function KR(e){return WC(e,R0)}class zR{constructor(...e){this._delegate=new bE(...e)}static documentId(){return new zR(LC.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof bE&&this._delegate._internalPath.isEqual(e._internalPath)}}class JR{static serverTimestamp(){var e=new Y0("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new JR(e)}static delete(){var e=new W0("deleteField");return e._methodName="FieldValue.delete",new JR(e)}static arrayUnion(...e){[...e]=[...e];var t=new $0("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new JR(t)}static arrayRemove(...e){[...e]=[...e];var t=new X0("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new JR(t)}static increment(e){e=e;var t=new Z0("increment",e);return t._methodName="FieldValue.increment",new JR(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let WR={Firestore:kR,GeoPoint:IE,Timestamp:ZC,Blob:TR,Transaction:RR,WriteBatch:OR,DocumentReference:PR,DocumentSnapshot:UR,Query:GR,QueryDocumentSnapshot:VR,QuerySnapshot:qR,CollectionReference:jR,FieldPath:zR,FieldValue:JR,setLogLevel:function(e){e=e,pC.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};VM=lr,gR=(e,t)=>new kR(e,t,new NR),VM.INTERNAL.registerComponent(new He("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return gR(t,r)},"PUBLIC").setServiceProps({...WR})),VM.registerVersion("@firebase/firestore-compat","0.4.18");let QR="type.googleapis.com/google.protobuf.Int64Value",YR="type.googleapis.com/google.protobuf.UInt64Value";function $R(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function XR(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=>XR(e));if("function"==typeof e||"object"==typeof e)return $R(e,e=>XR(e));throw new Error("Data cannot be encoded in JSON: "+e)}function ZR(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case QR:case YR: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=>ZR(e)):"function"==typeof e||"object"==typeof e?$R(e,e=>ZR(e)):e}let eO="functions",tO={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 rO extends Be{constructor(e,t,r,n){super(eO+"/"+e,t||"",null!=n?{url:n}:void 0),this.details=r,Object.setPrototypeOf(this,rO.prototype)}}function nO(e,t,r){let n=(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),i=n,s=void 0;try{var a=t&&t.error;if(a){var o=a.status;if("string"==typeof o){if(!tO[o])return new rO("internal",`Unknown backend error status: ${o} [${e}]`,void 0,r);n=tO[o],i="Backend error status: "+o}var l=a.message;"string"==typeof l&&(i=l),void 0!==(s=a.details)&&(s=ZR(s))}}catch(e){}return"ok"===n?null:new rO(n,i+` [${e}]`,s,r)}class iO{constructor(e,t,r,n){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,Rt(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||n?.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{return(await this.auth.getToken())?.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 sO="us-central1",aO=/^data: (.*?)(?:\n|$)/;let oO=class{constructor(e,t,r,n,i=sO,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new iO(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=sO}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 lO(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),cO(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),dO(r,n,e,t||{});var r,n},e}function uO(e){return e.emulatorOrigin&&Ve(e.emulatorOrigin)?"include":void 0}async function hO(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 cO(e,t,r,n){var i={data:r=XR(r)},s=await hO(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new rO("deadline-exceeded","deadline-exceeded"))},r)}),cancel:()=>{n&&clearTimeout(n)}}})(n.timeout||7e4),i=await Promise.race([(async(e,t,r,n,i)=>{r["Content-Type"]="application/json";let s;try{s=await n(e,{method:"POST",body:JSON.stringify(t),headers:r,credentials:uO(i)})}catch(e){return{status:0,json:null}}let a=null;try{a=await s.json()}catch(e){}return{status:s.status,json:a}})(t,i,s,e.fetchImpl,e),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new rO("cancelled","Firebase Functions instance was deleted.");s=nO(i.status,i.json,t);if(s)throw s;if(!i.json)throw new rO("internal","Response is not valid JSON object.",void 0,t);let o=i.json.data;if(void 0===(o=void 0===o?i.json.result:o))throw new rO("internal","Response is missing data field.",void 0,t);return{data:ZR(o)}}async function dO(e,r,t,n){var i={data:t=XR(t)},s=await hO(e,n);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=await e.fetchImpl(r,{method:"POST",body:JSON.stringify(i),headers:s,signal:n?.signal,credentials:uO(e)})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new rO("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=nO(0,null,r);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}),n?.signal?.addEventListener("abort",()=>{var e=new rO("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let u=((a,s,o,l,u)=>{let h=(e,t)=>{var r=e.match(aO);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(ZR(i.result)):"message"in i?t.enqueue(ZR(i.message)):"error"in i&&(n=nO(0,i,u),t.error(n),o(n))}catch(e){e instanceof rO&&(t.error(e),o(e))}}},c=new TextDecoder;return new ReadableStream({start(i){let s="";return async function r(){if(l?.aborted){let e=new rO("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(!l?.aborted){let e=(s+=c.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 rO("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof rO?e:nO(0,null,u);i.error(t),o(t)}}()},cancel(){return a.cancel()}})})(s,o,l,n?.signal,r);return{stream:{[Symbol.asyncIterator](){let r=u.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 BO="@firebase/functions";function pO(e,t,r){var n;e=_(e),r=r,n=Ve(t=t),e.emulatorOrigin=`http${n?"s":""}://${t}:`+r,n&&Ge(e.emulatorOrigin+"/backends")}function fO(e,t,r){return n=_(e),i=t,s=r,(a=e=>cO(n,i,e,s||{})).stream=(e,t)=>dO(n,i,e,t||{}),a;var n,i,s,a}St(new He(eO,(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 oO(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),Gt(BO,"0.14.0",GM),Gt(BO,"0.14.0","esm2020");var gO,mO,CO;class vO{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return lO(_(this._delegate),e,t)}httpsCallableFromURL(e,t){return fO(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new Be("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new Be("functions","Port missing in origin provided to useFunctionsEmulator()");return pO(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return pO(this._delegate,e,t)}}let _O="us-central1",yO=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:t??_O});return new vO(r,n)};Vm={Functions:vO},lr.INTERNAL.registerComponent(new He("functions-compat",yO,"PUBLIC").setServiceProps(Vm).setMultipleInstances(!0)),lr.registerVersion("@firebase/functions-compat","0.5.0");let wO="/firebase-messaging-sw.js",EO="/firebase-cloud-messaging-push-scope",bO="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",DO="https://fcmregistrations.googleapis.com/v1",IO="google.c.a.c_id",TO="google.c.a.c_l",SO="google.c.a.ts",NO="google.c.a.e",kO=1e4;function AO(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function RO(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}(P=gO=gO||{}).PUSH_RECEIVED="push-received",P.NOTIFICATION_CLICKED="notification-clicked",P.FID_REGISTERED="fid-registered";let OO="fcm_token_details_db",xO=5,PO="fcm_token_object_Store";async function FO(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(OO))return null;let o=null;return(await ct(OO,xO,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(PO)&&(i=await(s=n.objectStore(PO)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:AO(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:AO(s.auth),p256dh:AO(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:AO(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:AO(s.auth),p256dh:AO(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:AO(s.vapidKey)}}))}})).close(),await dt(OO),await dt("fcm_vapid_details_db"),await dt("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})(o)?o:null}let LO=new pe("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.","fid-registration-failed":"A problem occurred while creating an FCM registration via FID: {$errorInfo}","fid-unregister-failed":"A problem occurred while unregistering the FCM registration via FID: {$errorInfo}","fid-registration-idb-schema-unavailable":"Unable to read or persist FID registration metadata because the messaging IndexedDB schema is unavailable (for example, the database could not be upgraded to the latest version).","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.","invalid-on-registered-handler":"No onRegistered callback handler was provided or registered. Implement onRegistered() before register()."}),MO="firebase-messaging-database",UO=2,VO="firebase-messaging-store",GO="firebase-messaging-fid-registration-store",HO={openDB:ct,deleteDB:dt},qO=null;function jO(i){return{upgrade:(e,t)=>{var r=e,n=i;switch(t){case 0:if(r.createObjectStore(VO),1===n)break;case 1:2===n&&r.createObjectStore(GO)}},blocked:()=>{},blocking:(e,t,r)=>{qO=null,r.target?.close()},terminated:()=>{qO=null}}}function KO(){var e;return qO||(e=HO.openDB(MO,UO,jO(2)),qO=e.catch(()=>HO.openDB(MO,UO-1,jO(1)))),qO}function zO(e,t){return e.objectStoreNames.contains(t)}function JO(e){if(!zO(e,GO))throw LO.create("fid-registration-idb-schema-unavailable")}async function WO(e){var t=$O(e),t=await(await KO()).transaction(VO).objectStore(VO).get(t);return t||((t=await FO(e.appConfig.senderId))?(await QO(e,t),t):void 0)}async function QO(e,t){var r=$O(e),n=await KO(),i=[VO],s=zO(n,GO),n=(s&&i.push(GO),n.transaction(i,"readwrite"));return await n.objectStore(VO).put(t,r),s&&await n.objectStore(GO).delete(r),await n.done,t}async function YO(e){var t=$O(e),r=await KO();return JO(r),r.transaction(GO).objectStore(GO).get(t)}function $O({appConfig:e}){return e.appId}let XO="@firebase/messaging",ZO="0.13.3",ex=3,tx=1e3;async function rx(e,t){var r=await ax(e),n=ox(t,e.appConfig.appName,!0);let i={method:"POST",headers:r,body:JSON.stringify(n)},s;try{s=await(async(e,t,r)=>{let n;for(let i=0;i<t;i++)try{return await e()}catch(e){if(n=e,i<t-1){let t=r*Math.pow(2,i);await new Promise(e=>setTimeout(e,t))}}throw n})(()=>fetch(sx(e.appConfig),i),ex,tx)}catch(e){throw LO.create("fid-registration-failed",{errorInfo:e?.toString()})}if(s.ok)return{responseFid:await(async e=>{var t=await e.text();if(!t.trim())throw LO.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is empty"});let r;try{r=JSON.parse(t)}catch{throw LO.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is not valid JSON"})}if("string"!=typeof(t=r.name)||0===t.length)throw LO.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response did not include a non-empty name"});if(-1!==(t=(e=t).indexOf(nx))){t=e.slice(t+nx.length);if(0<t.length)return t}throw LO.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response name is not a valid registration resource name"})})(s)};let a;try{a=await s.json()}catch(e){throw LO.create("fid-registration-failed",{errorInfo:s.statusText})}r=a.error?.message??s.statusText;throw LO.create("fid-registration-failed",{errorInfo:r})}let nx="/registrations/";async function ix(e,t){var r={method:"DELETE",headers:await ax(e)};try{var n,i=await(await fetch(sx(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,LO.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw LO.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function sx({projectId:e}){return DO+`/projects/${e}/registrations`}async function ax({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 ox({p256dh:e,auth:t,endpoint:r,vapidKey:n,swScope:i},s,a){var o={web:{origin:((e,t)=>{try{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e))return new URL(e).host}catch{}try{if("undefined"!=typeof self&&self.location?.href)return new URL(e,self.location.origin).host}catch{}return"undefined"!=typeof self&&self.location?.host?self.location.host:t})(i,s),endpoint:r,auth:t,p256dh:e}};return a&&(o.fcm_sdk_version=ZO),n!==bO&&(o.web.applicationPubKey=n),o}let lx=6048e5;async function ux(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:RO(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:AO(a.getKey("auth")),p256dh:AO(a.getKey("p256dh"))},o=await WO(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+lx?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await ax(e),n=ox(t.subscriptionOptions,e.appConfig.appName,!1),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(sx(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw LO.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,LO.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw LO.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await QO(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await ix(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return dx(e.firebaseDependencies,a)}async function hx(e,t){var r,n;await ix(e.firebaseDependencies,t.token),r=$O(e.firebaseDependencies),await(n=(await KO()).transaction(VO,"readwrite")).objectStore(VO).delete(r),await n.done,await Bx(e.firebaseDependencies)}async function cx(e){var r=(await YO(e.firebaseDependencies).catch(()=>{}))?.fid;if(r){{var n=e.firebaseDependencies;var i=r;var s={method:"DELETE",headers:await ax(n)};let t;try{t=await fetch(sx(n.appConfig)+"/"+i,s)}catch(e){throw LO.create("fid-unregister-failed",{errorInfo:e?.toString()})}if(!t.ok)try{throw(await t.json()).error?.message??t.statusText}catch(e){throw LO.create("fid-unregister-failed",{errorInfo:"string"==typeof e&&e||t.statusText||e?.toString()})}}await 0}await Bx(e.firebaseDependencies),r&&(n=r,s=e.onUnregisteredHandler)&&("function"==typeof s?s(n):s.next(n))}async function dx(e,t){var r={token:await(async(e,t)=>{var r=await ax(e),n=ox(t,e.appConfig.appName,!1),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(sx(e.appConfig),r);i=await s.json()}catch(e){throw LO.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,LO.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw LO.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await QO(e,r),r.token}async function Bx(e){try{t=$O(e),JO(r=await KO()),await(r=r.transaction(GO,"readwrite")).objectStore(GO).delete(t),await r.done}catch{}var t,r}async function px(e){try{e.swRegistration=await navigator.serviceWorker.register(wO,{scope:EO}),e.swRegistration.update().catch(()=>{}),i=e.swRegistration,await new Promise((t,e)=>{let r=setTimeout(()=>e(new Error(`Service worker not registered after ${kO} ms`)),kO),n=i.installing||i.waiting;i.active?(clearTimeout(r),t()):n?n.onstatechange=e=>{"activated"===e.target?.state&&(n.onstatechange=null,clearTimeout(r),t())}:(clearTimeout(r),e(new Error("No incoming service worker found.")))})}catch(e){throw LO.create("failed-service-worker-registration",{browserErrorMessage:e?.message})}var i}async function fx(e,t){if(t||e.swRegistration||await px(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw LO.create("invalid-sw-registration");e.swRegistration=t}}async function gx(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=bO)}let mx=3;async function Cx(e,t){var r=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:RO(t)})})(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:r.endpoint,auth:AO(r.getKey("auth")),p256dh:AO(r.getKey("p256dh"))},i=e.firebaseDependencies.installations;for(let a=0;a<mx;a++){var s=(await rx(e.firebaseDependencies,n)).responseFid;if(s===t)return;a<mx-1&&await i.getToken(!0)}throw LO.create("fid-registration-failed",{errorInfo:"CreateRegistration response FID does not match Firebase Installation ID"})}let vx=6048e5;async function _x(s,e){if(!navigator)throw LO.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw LO.create("permission-blocked");if(!s.onRegisteredHandler)throw LO.create("invalid-on-registered-handler");await gx(s,e?.vapidKey),await fx(s,e?.serviceWorkerRegistration);var t=s._registerNotifyChain.catch(()=>{});return s._registerNotifyChain=t.then(async()=>{var e,t,r=await s.firebaseDependencies.installations.getId(),n=await YO(s.firebaseDependencies),i=Date.now(),n=((!n||n.fid!==r||i>=n.lastRegisterTime+vx)&&(await Cx(s,r),t=s.firebaseDependencies,e={fid:r,lastRegisterTime:i,vapidKey:s.vapidKey},n=$O(t),JO(i=await KO()),await(i=i.transaction([VO,GO],"readwrite")).objectStore(GO).put(e,n),await i.objectStore(VO).delete(n),await i.done,await e),s.onRegisteredHandler);if(!n)throw LO.create("invalid-on-registered-handler");t=r,(i=s.onRegisteredHandler)&&("function"==typeof i?i(t):i.next(t))}),s._registerNotifyChain}function yx(e){var t,r,n,i={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return r=i,(t=e).notification&&(r.notification={},(n=t.notification.title)&&(r.notification.title=n),(n=t.notification.body)&&(r.notification.body=n),(n=t.notification.image)&&(r.notification.image=n),n=t.notification.icon)&&(r.notification.icon=n),t=i,(r=e).data&&(t.data=r.data),t=i,((r=e).fcmOptions||r.notification?.click_action)&&(t.fcmOptions={},(n=r.fcmOptions?.link??r.notification?.click_action)&&(t.fcmOptions.link=n),n=r.fcmOptions?.analytics_label)&&(t.fcmOptions.analyticsLabel=n),i}function wx(e){return LO.create("missing-app-config-values",{valueName:e})}let Ex=class{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.onRegisteredHandler=null,this.onUnregisteredHandler=null,this._registerNotifyChain=Promise.resolve(),this._fidChangeUnsubscribe=null,this.logEvents=[],this.logQueue={state:"stopped"};var n=(e=>{if(!e||!e.options)throw wx("App Configuration Object");if(!e.name)throw wx("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw wx(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 this._fidChangeUnsubscribe&&(this._fidChangeUnsubscribe(),this._fidChangeUnsubscribe=null),"scheduled"===this.logQueue.state&&clearTimeout(this.logQueue.timerId),this.logQueue={state:"stopped"},Promise.resolve()}};async function bx(e,t){if(!navigator)throw LO.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw LO.create("permission-blocked");return await gx(e,t?.vapidKey),await fx(e,t?.serviceWorkerRegistration),ux(e)}async function Dx(e,t,r){var n=(e=>{switch(e){case gO.NOTIFICATION_CLICKED:return"notification_open";case gO.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[IO],message_name:r[TO],message_time:r[SO],message_device_time:Math.floor(Date.now()/1e3)})}async function Ix(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===gO.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(yx(n)):e.onMessageHandler.next(yx(n))),e.onRegisteredHandler&&n.messageType===gO.FID_REGISTERED&&(r=n.fid,"function"==typeof e.onRegisteredHandler?e.onRegisteredHandler(r):e.onRegisteredHandler.next(r)),"object"==typeof(t=r=n.data))&&t&&IO in t&&"1"===r[NO]&&await Dx(e,n.messageType,r)}let Tx=e=>{let t=new Ex(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));var r;return navigator.serviceWorker.addEventListener("message",e=>Ix(t,e)),t._fidChangeUnsubscribe=(r=t,Qr(e.getProvider("installations").getImmediate(),()=>{(async()=>{r.onRegisteredHandler&&await YO(r.firebaseDependencies)&&await _x(r).catch(()=>{})})()})),t},Sx=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>bx(t,e),register:e=>_x(t,e)}};async function Nx(e){if(navigator)return e.swRegistration||await px(e),(async e=>{var t=await WO(e.firebaseDependencies);return t?await hx(e,t):await cx(e),!(t=await e.swRegistration.pushManager.getSubscription())||t.unsubscribe()})(e);throw LO.create("only-available-in-window")}function kx(e,t){var r=e=_(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw LO.create("only-available-in-window")}St(new He("messaging",Tx,"PUBLIC")),St(new He("messaging-internal",Sx,"PRIVATE")),Gt(XO,ZO),Gt(XO,ZO,"esm2020");let Ax="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Rx="https://fcmregistrations.googleapis.com/v1",Ox="FCM_MSG",xx="google.c.a.c_id",Px=1e3,Fx=3,Lx=864e5,Mx=5e3,Ux=1249,Vx=3,Gx=1;function Hx(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function qx(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}(KP=mO=mO||{})[KP.DATA_MESSAGE=1]="DATA_MESSAGE",KP[KP.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(VM=CO=CO||{}).PUSH_RECEIVED="push-received",VM.NOTIFICATION_CLICKED="notification-clicked",VM.FID_REGISTERED="fid-registered";let jx="fcm_token_details_db",Kx=5,zx="fcm_token_object_Store";async function Jx(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(jx))return null;let o=null;return(await ct(jx,Kx,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(zx)&&(i=await(s=n.objectStore(zx)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:Hx(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:Hx(s.auth),p256dh:Hx(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:Hx(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:Hx(s.auth),p256dh:Hx(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:Hx(s.vapidKey)}}))}})).close(),await dt(jx),await dt("fcm_vapid_details_db"),await dt("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})(o)?o:null}let Wx=new pe("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.","fid-registration-failed":"A problem occurred while creating an FCM registration via FID: {$errorInfo}","fid-unregister-failed":"A problem occurred while unregistering the FCM registration via FID: {$errorInfo}","fid-registration-idb-schema-unavailable":"Unable to read or persist FID registration metadata because the messaging IndexedDB schema is unavailable (for example, the database could not be upgraded to the latest version).","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.","invalid-on-registered-handler":"No onRegistered callback handler was provided or registered. Implement onRegistered() before register()."}),Qx="firebase-messaging-database",Yx=2,$x="firebase-messaging-store",Xx="firebase-messaging-fid-registration-store",Zx={openDB:ct,deleteDB:dt},eP=null;function tP(i){return{upgrade:(e,t)=>{var r=e,n=i;switch(t){case 0:if(r.createObjectStore($x),1===n)break;case 1:2===n&&r.createObjectStore(Xx)}},blocked:()=>{},blocking:(e,t,r)=>{eP=null,r.target?.close()},terminated:()=>{eP=null}}}function rP(){var e;return eP||(e=Zx.openDB(Qx,Yx,tP(2)),eP=e.catch(()=>Zx.openDB(Qx,Yx-1,tP(1)))),eP}function nP(e,t){return e.objectStoreNames.contains(t)}function iP(e){if(!nP(e,Xx))throw Wx.create("fid-registration-idb-schema-unavailable")}async function sP(e){var t=lP(e),t=await(await rP()).transaction($x).objectStore($x).get(t);return t||((t=await Jx(e.appConfig.senderId))?(await aP(e,t),t):void 0)}async function aP(e,t){var r=lP(e),n=await rP(),i=[$x],s=nP(n,Xx),n=(s&&i.push(Xx),n.transaction(i,"readwrite"));return await n.objectStore($x).put(t,r),s&&await n.objectStore(Xx).delete(r),await n.done,t}async function oP(e){var t=lP(e),r=await rP();return iP(r),r.transaction(Xx).objectStore(Xx).get(t)}function lP({appConfig:e}){return e.appId}let uP="0.13.3",hP=3,cP=1e3;async function dP(e,t){var r=await gP(e),n=mP(t,e.appConfig.appName,!0);let i={method:"POST",headers:r,body:JSON.stringify(n)},s;try{s=await(async(e,t,r)=>{let n;for(let i=0;i<t;i++)try{return await e()}catch(e){if(n=e,i<t-1){let t=r*Math.pow(2,i);await new Promise(e=>setTimeout(e,t))}}throw n})(()=>fetch(fP(e.appConfig),i),hP,cP)}catch(e){throw Wx.create("fid-registration-failed",{errorInfo:e?.toString()})}if(s.ok)return{responseFid:await(async e=>{var t=await e.text();if(!t.trim())throw Wx.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is empty"});let r;try{r=JSON.parse(t)}catch{throw Wx.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is not valid JSON"})}if("string"!=typeof(t=r.name)||0===t.length)throw Wx.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response did not include a non-empty name"});if(-1!==(t=(e=t).indexOf(BP))){t=e.slice(t+BP.length);if(0<t.length)return t}throw Wx.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response name is not a valid registration resource name"})})(s)};let a;try{a=await s.json()}catch(e){throw Wx.create("fid-registration-failed",{errorInfo:s.statusText})}r=a.error?.message??s.statusText;throw Wx.create("fid-registration-failed",{errorInfo:r})}let BP="/registrations/";async function pP(e,t){var r={method:"DELETE",headers:await gP(e)};try{var n,i=await(await fetch(fP(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,Wx.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw Wx.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function fP({projectId:e}){return Rx+`/projects/${e}/registrations`}async function gP({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 mP({p256dh:e,auth:t,endpoint:r,vapidKey:n,swScope:i},s,a){var o={web:{origin:((e,t)=>{try{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e))return new URL(e).host}catch{}try{if("undefined"!=typeof self&&self.location?.href)return new URL(e,self.location.origin).host}catch{}return"undefined"!=typeof self&&self.location?.host?self.location.host:t})(i,s),endpoint:r,auth:t,p256dh:e}};return a&&(o.fcm_sdk_version=uP),n!==Ax&&(o.web.applicationPubKey=n),o}let CP=6048e5;async function vP(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:qx(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:Hx(a.getKey("auth")),p256dh:Hx(a.getKey("p256dh"))},o=await sP(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+CP?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await gP(e),n=mP(t.subscriptionOptions,e.appConfig.appName,!1),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(fP(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw Wx.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Wx.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw Wx.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await aP(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await pP(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return EP(e.firebaseDependencies,a)}async function _P(e,t){var r,n;await pP(e.firebaseDependencies,t.token),r=lP(e.firebaseDependencies),await(n=(await rP()).transaction($x,"readwrite")).objectStore($x).delete(r),await n.done,await bP(e.firebaseDependencies)}async function yP(e){var r=(await oP(e.firebaseDependencies).catch(()=>{}))?.fid;if(r){{var n=e.firebaseDependencies;var i=r;var s={method:"DELETE",headers:await gP(n)};let t;try{t=await fetch(fP(n.appConfig)+"/"+i,s)}catch(e){throw Wx.create("fid-unregister-failed",{errorInfo:e?.toString()})}if(!t.ok)try{throw(await t.json()).error?.message??t.statusText}catch(e){throw Wx.create("fid-unregister-failed",{errorInfo:"string"==typeof e&&e||t.statusText||e?.toString()})}}await 0}await bP(e.firebaseDependencies),r&&(n=r,s=e.onUnregisteredHandler)&&("function"==typeof s?s(n):s.next(n))}async function wP(e){var t=await sP(e.firebaseDependencies),t=(t?await _P(e,t):await yP(e),await e.swRegistration.pushManager.getSubscription());return!t||t.unsubscribe()}async function EP(e,t){var r={token:await(async(e,t)=>{var r=await gP(e),n=mP(t,e.appConfig.appName,!1),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(fP(e.appConfig),r);i=await s.json()}catch(e){throw Wx.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Wx.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw Wx.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await aP(e,r),r.token}async function bP(e){try{t=lP(e),iP(r=await rP()),await(r=r.transaction(Xx,"readwrite")).objectStore(Xx).delete(t),await r.done}catch{}var t,r}let DP=3;async function IP(e,t){var r=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:qx(t)})})(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:r.endpoint,auth:Hx(r.getKey("auth")),p256dh:Hx(r.getKey("p256dh"))},i=e.firebaseDependencies.installations;for(let a=0;a<DP;a++){var s=(await dP(e.firebaseDependencies,n)).responseFid;if(s===t)return;a<DP-1&&await i.getToken(!0)}throw Wx.create("fid-registration-failed",{errorInfo:"CreateRegistration response FID does not match Firebase Installation ID"})}async function TP(e){var t,r,n,i,s=await oP(e.firebaseDependencies).catch(()=>{});if(s)return t=e,await!((n=s.vapidKey)?t.vapidKey=n:t.vapidKey||(t.vapidKey=Ax)),s=await e.firebaseDependencies.installations.getId(),await IP(e,s),n=e.firebaseDependencies,t={fid:s,lastRegisterTime:Date.now(),vapidKey:e.vapidKey},i=lP(n),iP(r=await rP()),await(r=r.transaction([$x,Xx],"readwrite")).objectStore(Xx).put(t,i),await r.objectStore($x).delete(i),await r.done,await t,n=s,(i=e.onRegisteredHandler)&&("function"==typeof i?i(n):i.next(n)),s}let SP="https://play.google.com/log?format=json_proto3",NP=0,kP=((e,t)=>{var r=[];for(let n=0;n<e.length;n++)r.push(e.charAt(n)),n<t.length&&r.push(t.charAt(n));return r.join("")})("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");function AP(a,e){"scheduled"===a.logQueue.state&&clearTimeout(a.logQueue.timerId),a.logQueue={state:"stopped"},a.deliveryMetricsExportedToBigQueryEnabled?a.logQueue={state:"scheduled",timerId:setTimeout(async()=>{if(a.logQueue={state:"flushing"},!a.logEvents.length)return AP(a,Lx);var e=a,t=e.logEvents;e.logEvents=[];for(let s=0,r=t.length;s<r;s+=Px){var n=t.slice(s,s+Px);if(!n.length)break;var i=(e=>{var t={};return t.log_source=Ux.toString(),t.log_event=e,t})(n);let r=0,e={};do{try{if((e=await fetch(SP.concat("&key=",kP),{method:"POST",body:JSON.stringify(i)})).ok||!e.ok&&!RP(e))break;if(!e.ok&&RP(e))throw new Error("a retriable Non-200 code is returned in fetch to Firelog endpoint. Retry")}catch(e){if(r===Fx)break}let t;try{t=Number((await e.json()).nextRequestWaitMillis)}catch(e){t=Mx}await new Promise(e=>setTimeout(e,t)),r++}while(r<Fx)}AP(e,e.logEvents.length?NP:Lx)},e)}:a.logEvents=[]}function RP(e){var t=e.status;return 429===t||500===t||503===t||504===t}async function OP(e,t){var r=((e,t)=>{var r={};return e.from&&(r.project_number=e.from),e.fcmMessageId&&(r.message_id=e.fcmMessageId),r.instance_id=t,r.message_type=(e.notification?mO.DISPLAY_NOTIFICATION:mO.DATA_MESSAGE).toString(),r.sdk_platform=Vx.toString(),r.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(r.collapse_key=e.collapse_key),r.event=Gx.toString(),e.fcmOptions?.analytics_label&&(r.analytics_label=e.fcmOptions?.analytics_label),r})(t,await e.firebaseDependencies.installations.getId()),n=e,i=r,t=t.productId,r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:i}),t&&(r.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),n.logEvents.push(r),"stopped"===(i=e).logQueue.state&&0<i.logEvents.length&&AP(i,NP)}async function xP(e,t){t.swRegistration||(t.swRegistration=self.registration);var r=e.newSubscription;if(r)if(await oP(t.firebaseDependencies).catch(()=>{})){r=await TP(t).catch(()=>{});if(r){var n=await MP();if(LP(n)){var i,e=n,s=r,a={isFirebaseMessaging:!0,messageType:CO.FID_REGISTERED,fid:s};for(i of e)i.postMessage(a)}}}else{n=await sP(t.firebaseDependencies);await wP(t),t.vapidKey=n?.subscriptionOptions?.vapidKey??Ax,await vP(t)}else await wP(t)}async function PP(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await OP(t,r);var n,i,s,a=await MP();if(LP(a)){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=CO.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(e.title??"",e)})(((a={...(e=r).notification}).data={[Ox]:e},a)),t&&t.onBackgroundMessageHandler&&(a={from:(e=r).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=a,(n=e).notification&&(i.notification={},(s=n.notification.title)&&(i.notification.title=s),(s=n.notification.body)&&(i.notification.body=s),(s=n.notification.image)&&(i.notification.image=s),s=n.notification.icon)&&(i.notification.icon=s),n=a,(i=e).data&&(n.data=i.data),n=a,((i=e).fcmOptions||i.notification?.click_action)&&(n.fcmOptions={},(s=i.fcmOptions?.link??i.notification?.click_action)&&(n.fcmOptions.link=s),s=i.fcmOptions?.analytics_label)&&(n.fcmOptions.analyticsLabel=s),r=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(r):t.onBackgroundMessageHandler.next(r))}}async function FP(e){var t=e.notification?.data?.[Ox];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var r=(e=>{var t=e.fcmOptions?.link??e.notification?.click_action;return t||((e=>"object"==typeof e&&e&&xx 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 MP()){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=CO.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function LP(e){return e.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))}function MP(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function UP(e){return Wx.create("missing-app-config-values",{valueName:e})}class VP{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.onRegisteredHandler=null,this.onUnregisteredHandler=null,this._registerNotifyChain=Promise.resolve(),this._fidChangeUnsubscribe=null,this.logEvents=[],this.logQueue={state:"stopped"};var n=(e=>{if(!e||!e.options)throw UP("App Configuration Object");if(!e.name)throw UP("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw UP(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 this._fidChangeUnsubscribe&&(this._fidChangeUnsubscribe(),this._fidChangeUnsubscribe=null),"scheduled"===this.logQueue.state&&clearTimeout(this.logQueue.timerId),this.logQueue={state:"stopped"},Promise.resolve()}}let GP=e=>{let t=new VP(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(PP(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil(xP(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(FP(e))}),t};function HP(e,t){var r=e=_(e),e=t;if(void 0!==self.document)throw Wx.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}St(new He("messaging-sw",GP,"PUBLIC"));var qP,jP,KP;class zP{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>bx(e=_(e),t))(this._delegate,e)}async deleteToken(){return Nx(_(this._delegate))}onMessage(e){return kx(this._delegate,e)}onBackgroundMessage(e){return HP(this._delegate,e)}}let JP=e=>self&&"ServiceWorkerGlobalScope"in self?new zP(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new zP(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),WP={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?he()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&he()&&de()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};lr.INTERNAL.registerComponent(new He("messaging-compat",JP,"PUBLIC").setServiceProps(WP)),lr.registerVersion("@firebase/messaging-compat","0.2.30");let QP="firebasestorage.googleapis.com",YP="storageBucket";class $P extends Be{constructor(e,t,r=0){super(XP(e),`Firebase Storage: ${t} (${XP(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,$P.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return XP(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 XP(e){return"storage/"+e}function ZP(){return new $P(qP.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function eF(){return new $P(qP.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function tF(){return new $P(qP.CANCELED,"User canceled the upload/download.")}function rF(){return new $P(qP.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function nF(e){return new $P(qP.INVALID_ARGUMENT,e)}function iF(){return new $P(qP.APP_DELETED,"The Firebase app was deleted.")}function sF(e){return new $P(qP.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 aF(e,t){return new $P(qP.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function oF(e){throw new $P(qP.INTERNAL_ERROR,"Internal error: "+e)}(GM=qP=qP||{}).UNKNOWN="unknown",GM.OBJECT_NOT_FOUND="object-not-found",GM.BUCKET_NOT_FOUND="bucket-not-found",GM.PROJECT_NOT_FOUND="project-not-found",GM.QUOTA_EXCEEDED="quota-exceeded",GM.UNAUTHENTICATED="unauthenticated",GM.UNAUTHORIZED="unauthorized",GM.UNAUTHORIZED_APP="unauthorized-app",GM.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",GM.INVALID_CHECKSUM="invalid-checksum",GM.CANCELED="canceled",GM.INVALID_EVENT_NAME="invalid-event-name",GM.INVALID_URL="invalid-url",GM.INVALID_DEFAULT_BUCKET="invalid-default-bucket",GM.NO_DEFAULT_BUCKET="no-default-bucket",GM.CANNOT_SLICE_BLOB="cannot-slice-blob",GM.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",GM.NO_DOWNLOAD_URL="no-download-url",GM.INVALID_ARGUMENT="invalid-argument",GM.INVALID_ARGUMENT_COUNT="invalid-argument-count",GM.APP_DELETED="app-deleted",GM.INVALID_ROOT_OPERATION="invalid-root-operation",GM.INVALID_FORMAT="invalid-format",GM.INTERNAL_ERROR="internal-error",GM.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class lF{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=lF.makeFromUrl(t,e)}catch(e){return new lF(t,"")}if(""===r.path)return r;throw e=t,new $P(qP.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===QP?"(?: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 u=l[d],h=u.regex.exec(e);if(h){var c=h[u.indices.bucket];let e=h[u.indices.path];e=e||"",r=new lF(c,e),u.postModify(r);break}}if(null==r)throw t=e,new $P(qP.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class uF{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function hF(e){return"string"==typeof e||e instanceof String}function cF(e){return dF()&&e instanceof Blob}function dF(){return"undefined"!=typeof Blob}function BF(e,t,r,n){if(n<t)throw nF(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw nF(`Invalid value for '${e}'. Expected ${r} or less.`)}function pF(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function fF(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 gF(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(P=jP=jP||{})[P.NO_ERROR=0]="NO_ERROR",P[P.NETWORK_ERROR=1]="NETWORK_ERROR",P[P.ABORT=2]="ABORT";class mF{constructor(e,t,r,n,i,s,a,o,l,u,h,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_=u,this.connectionFactory_=h,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 CF(!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()===jP.NO_ERROR,t=r.getStatus();!e||gF(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===jP.ABORT,i(!1,new CF(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new CF(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=ZP()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?iF:tF)()):n(eF())};this.canceled_?t(0,new CF(!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 u=!1;function h(...e){u||(u=!0,r.apply(null,e))}function c(e){i=setTimeout(()=>{i=null,t(B,l())},e)}function d(){s&&clearTimeout(s)}function B(e,...t){if(u)d();else if(e)d(),h.call(null,e,...t);else if(l()||a)d(),h.call(null,e,...t);else{n<64&&(n*=2);let e;c(e=1===o?(o=2,0):1e3*(n+Math.random()))}}let p=!1;function f(e){p||(p=!0,d(),u)||(null!==i?(e||(o=2),clearTimeout(i),c(0)):e||(o=1))}return c(0),s=setTimeout(()=>{f(a=!0)},e),f})(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 CF{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function vF(...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(dF())return new Blob(t);throw new $P(qP.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function _F(e){if("undefined"==typeof atob)throw new $P(qP.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 yF={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class wF{constructor(e,t){this.data=e,this.contentType=t||null}}function EF(e,t){switch(e){case yF.RAW:return new wF(bF(t));case yF.BASE64:case yF.BASE64URL:return new wF(DF(e,t));case yF.DATA_URL:return new wF((r=t,(n=new IF(r)).base64?DF(yF.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw aF(yF.DATA_URL,"Malformed data URL.")}return bF(t)})(n.rest)),(r=t,new IF(r).contentType))}var r,n;throw ZP()}function bF(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 DF(t,e){switch(t){case yF.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw aF(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case yF.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw aF(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=_F(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw aF(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 IF{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw aF(yF.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 TF{constructor(e,t){let r=0,n="";cF(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 cF(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 TF(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new TF(r,!0))}static getBlob(...e){if(dF())return i=e.map(e=>e instanceof TF?e.data_:e),new TF(vF.apply(null,i));{var i=e.map(e=>hF(e)?EF(yF.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 TF(r,!0)}}uploadData(){return this.data_}}function SF(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function NF(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function kF(e,t){return t}class AF{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||kF}}let RF=null;function OF(){var e,t;return RF||((e=[]).push(new AF("bucket")),e.push(new AF("generation")),e.push(new AF("metageneration")),e.push(new AF("name","fullPath",!0)),(t=new AF("name")).xform=function(e,t){return!hF(t=t)||t.length<2?t:NF(t)},e.push(t),(t=new AF("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new AF("timeCreated")),e.push(new AF("updated")),e.push(new AF("md5Hash",null,!0)),e.push(new AF("cacheControl",null,!0)),e.push(new AF("contentDisposition",null,!0)),e.push(new AF("contentEncoding",null,!0)),e.push(new AF("contentLanguage",null,!0)),e.push(new AF("contentType",null,!0)),e.push(new AF("metadata","customMetadata",!0)),RF=e),RF}function xF(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new lF(e,t);return n._makeStorageReference(e)}})}function PF(e,t,r){var n=SF(t);if(null===n)return null;var t=e,i=n,s=r,a={type:"file"},o=s.length;for(let u=0;u<o;u++){var l=s[u];a[l.local]=l.xform(a,i[l.server])}return xF(a,t),a}function FF(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 LF="prefixes",MF="items";function UF(e,t,r){var n=SF(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[LF])for(var o of r[LF]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new lF(s,o));a.prefixes.push(o)}if(r[MF])for(var l of r[MF]){l=i._makeStorageReference(new lF(s,l.name));a.items.push(l)}return a}class VF{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 GF(e){if(!e)throw ZP()}function HF(n,i){return function(e,t){var r=PF(n,t,i);return GF(null!==r),r}}function qF(n,i){return function(e,t){var r=UF(n,i,t);return GF(null!==r),r}}function jF(o,n){return function(e,t){var r=PF(o,t,n);GF(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=SF(t)))return null;if(!hF(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 pF("/b/"+n(t)+"/o/"+n(r),s,a)+fF({alt:"media",token:e})})[0]}}}function KF(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new $P(qP.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new $P(qP.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new $P(qP.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new $P(qP.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function zF(n){let i=KF(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new $P(qP.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function JF(e,t,r){var n=pF(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new VF(n,"GET",HF(e,r),i);return n.errorHandler=zF(t),n}function WF(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 QF(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,WF(t,n,i)),u="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+FF(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",u=TF.getBlob(u,n,o);if(null===u)throw rF();o={name:l.fullPath},l=pF(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new VF(l,"POST",HF(e,r),s);return l.urlParams=o,l.headers=a,l.body=u.uploadData(),l.errorHandler=KF(t),l}class YF{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function $F(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){GF(!1)}return GF(!!r&&-1!==(t||["active"]).indexOf(r)),r}function XF(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=WF(t,n,i),o={name:a.fullPath},s=pF(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=FF(a,r),u=e.maxUploadRetryTime;s=new VF(s,"POST",function(e){$F(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){GF(!1)}return GF(hF(t)),t},u);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=KF(t),s}function ZF(e,t,r,i){var n=e.maxUploadRetryTime,n=new VF(r,"POST",function(e){var t=$F(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){GF(!1)}r||GF(!1);var n=Number(r);return GF(!isNaN(n)),new YF(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=KF(t),n}function eL(e,a,t,o,r,l,n,i){let u=new YF(0,0);if(n?(u.current=n.current,u.total=n.total):(u.current=0,u.total=o.size()),o.size()!==u.total)throw new $P(qP.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=u.total-u.current;let h=s;0<r&&(h=Math.min(h,r));var c=u.current,d=c+h;let B="";s={"X-Goog-Upload-Command":B=0===h?"finalize":s===h?"upload, finalize":"upload","X-Goog-Upload-Offset":""+u.current},c=o.slice(c,d);if(null===c)throw rF();d=a.maxUploadRetryTime,d=new VF(t,"POST",function(e,t){var r=$F(e,["active","final"]),n=u.current+h,i=o.size();let s;return s="final"===r?HF(a,l)(e,t):null,new YF(n,i,"final"===r,s)},d);return d.headers=s,d.body=c.uploadData(),d.progressCallback=i||null,d.errorHandler=KF(e),d}let tL={STATE_CHANGED:"state_changed"},rL={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function nL(e){switch(e){case"running":case"pausing":case"canceling":return rL.RUNNING;case"paused":return rL.PAUSED;case"success":return rL.SUCCESS;case"canceled":return rL.CANCELED;default:return rL.ERROR}}class iL{constructor(e,t,r){var n;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=t??void 0,this.complete=r??void 0):(this.next=(n=e).next,this.error=n.error,this.complete=n.complete)}}function sL(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class aL extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=jP.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=jP.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=jP.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw oF("cannot .send() more than once");if(Ve(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 oF("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw oF("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw oF("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw oF("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 oL(){return new aL}class lL{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=OF(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(qP.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(gF(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=eF()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(qP.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=XF(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,oL,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=ZF(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,oL,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 YF(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=eL(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,oL,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=JF(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,oL,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=QF(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,oL,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=tF(),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=nL(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 iL(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(nL(this._state)){case rL.SUCCESS:sL(this._resolve.bind(null,this.snapshot))();break;case rL.CANCELED:case rL.ERROR:sL(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(nL(this._state)){case rL.RUNNING:case rL.PAUSED:e.next&&sL(e.next.bind(e,this.snapshot))();break;case rL.SUCCESS:e.complete&&sL(e.complete.bind(e))();break;case rL.CANCELED:case rL.ERROR:default:e.error&&sL(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 uL{constructor(e,t){this._service=e,t instanceof lF?this._location=t:this._location=lF.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new uL(e,t)}get root(){var e=new lF(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return NF(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 lF(this._location.bucket,r),new uL(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw sF(e)}}function hL(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await cL(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 cL(e,t){null!=t&&"number"==typeof t.maxResults&&BF("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+"/",0<n.length&&(o.delimiter=n),i&&(o.pageToken=i),s&&(o.maxResults=s),a=pF(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new VF(a,"GET",qF(t,r.bucket),l)).urlParams=o,a.errorHandler=KF(r),a);return e.storage.makeRequestWithTokens(l,oL)}function dL(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=OF(),s=pF(n.fullServerUrl(),r.host,r._protocol),a=FF(t,i),o=r.maxOperationRetryTime,(s=new VF(s,"PATCH",HF(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=zF(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,oL)}function BL(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=OF(),i=pF(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new VF(i,"GET",jF(t,n),s)).errorHandler=zF(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,oL).then(e=>{if(null===e)throw new $P(qP.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function pL(e){e._throwIfRoot("deleteObject");t=e.storage,n=pF((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new VF(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=zF(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,oL)}function fL(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 lF(e._location.bucket,n);return new uL(e.storage,n)}function gL(e,t){if(e instanceof vL){var r=e;if(null==r._bucket)throw new $P(qP.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+YP+"' property when initializing the app?");r=new uL(r,r._bucket);return null!=t?gL(r,t):r}return void 0!==t?fL(e,t):e}function mL(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof vL)return r=e,n=t,new uL(r,n);throw nF("To use ref(service, url), the first argument must be a Storage instance.")}return gL(e,t);var r,n}function CL(e,t){var r=t?.[YP];return null==r?null:lF.makeFromBucketSpec(r,e)}class vL{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=QP,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?lF.makeFromBucketSpec(n,this._host):CL(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=lF.makeFromBucketSpec(this._url,e):this._bucket=CL(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){BF("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){BF("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 Rt(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 uL(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new uF(iF());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],h=fF(t.urlParams),h=t.url+h,c=Object.assign({},t.headers),u=c,(n=n)&&(u["X-Firebase-GMPID"]=n),u=c,null!==(n=i)&&0<n.length&&(u.Authorization="Firebase "+n),c["X-Firebase-Storage-Version"]="webjs/"+(a??"AppManager"),i=c,null!==(u=r)&&(i["X-Firebase-AppCheck"]=u);let e=new mF(h,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,u,h,c}async makeRequestWithTokens(e,t){var[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let _L="@firebase/storage";function yL(e,t,r){return e=_(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new lL(e,new TF(t),r)}function wL(e){return e=_(e),(e=e)._throwIfRoot("getMetadata"),t=JF(e.storage,e._location,OF()),e.storage.makeRequestWithTokens(t,oL);var t}function EL(e,t){return mL(e=_(e),t)}function bL(e,t,r,n={}){var i;[e,t,r,n={}]=[e,t,r,n],e.host=t+":"+r,(i=((i=Ve(t))&&Ge(`https://${e.host}/b`).catch(()=>{}),e._isUsingEmulator=!0,e._protocol=i?"https":"http",n).mockUserToken)&&(e._overrideAuthToken="string"==typeof i?i:ee(i,e.app.options.projectId))}function DL(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new vL(r,n,i,t,Lt)}St(new He("storage",DL,"PUBLIC").setMultipleInstances(!0)),Gt(_L,"0.14.6",""),Gt(_L,"0.14.6","esm2020");class IL{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 TL{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 IL(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new IL(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new IL(e,this,this._ref)):{next:t.next?e=>t.next(new IL(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 SL{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new NL(e,this._service))}get items(){return this._delegate.items.map(e=>new NL(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class NL{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=fL(this._delegate,e);return new NL(t,this.storage)}get root(){return new NL(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new NL(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new TL(yL(this._delegate,e,t),this)}putString(e,t=yF.RAW,r){this._throwIfRoot("putString");var n=EF(t,e),i={...r};return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new TL(new lL(this._delegate,new TF(n.data,!0),i),this)}listAll(){return hL(_(this._delegate)).then(e=>new SL(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,cL(t=_(t),e).then(e=>new SL(e,this.storage));var t}getMetadata(){return wL(this._delegate)}updateMetadata(e){return dL(_(this._delegate),e)}getDownloadURL(){return BL(_(this._delegate))}delete(){return this._throwIfRoot("delete"),pL(_(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw sF(e)}}class kL{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(AL(e))throw nF("ref() expected a child path but got a URL, use refFromURL instead.");return new NL(EL(this._delegate,e),this)}refFromURL(e){if(!AL(e))throw nF("refFromURL() expected a full URL but got a child path, use ref() instead.");try{lF.makeFromUrl(e,this._delegate.host)}catch(e){throw nF("refFromUrl() expected a valid full URL but got an invalid one.")}return new NL(EL(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){bL(this._delegate,e,t,r)}}function AL(e){return/^[A-Za-z]+:\/\//.test(e)}function RL(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new kL(r,n)}KP=lr,Gm={TaskState:rL,TaskEvent:tL,StringFormat:yF,Storage:kL,Reference:NL},KP.INTERNAL.registerComponent(new He("storage-compat",RL,"PUBLIC").setServiceProps(Gm).setMultipleInstances(!0)),KP.registerVersion("@firebase/storage-compat","0.4.6");function OL(e){if("loading"===document.readyState)return"loading";var t=jL();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 xL(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:KL(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 PL(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:xL(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:OL(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=eM(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=QL("CLS",0),n=0,i=[],s=YL("layout-shift",e);s&&(t=$L(a,r,uM,o.reportAllChanges),ZL(function(){e(s.takeRecords()),t(!0)}),JL(function(){r=QL("CLS",n=0),t=$L(a,r,uM,o.reportAllChanges),XL(function(){return t()})}),setTimeout(t,0))}),l=l||{},oM(function(){var t,r=aM(),n=QL("FCP"),i=YL("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-WL(),0),n.entries.push(e),t(!0))})});i&&(t=$L(s,n,lM,l.reportAllChanges),JL(function(e){n=QL("FCP"),t=$L(s,n,lM,l.reportAllChanges),XL(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function FL(e){e.forEach(function(e){e.interactionId&&(cM=Math.min(cM,e.interactionId),dM=Math.max(dM,e.interactionId),hM=dM?(dM-cM)/7+1:0)})}function LL(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},oM(function(){var e;pM();function t(t){yM(function(){t.forEach(_M);var e=CM();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=QL("INP"),n=YL("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=$L(s,r,wM,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),ZL(function(){t(n.takeRecords()),i(!0)}),JL(function(){mM=BM(),fM.length=0,gM.clear(),r=QL("INP"),i=$L(s,r,wM,a.reportAllChanges)}))}))}function ML(e){EM=EM.concat(e),NM()}function UL(){10<TM.size&&TM.forEach(function(e,t){gM.has(t)||TM.delete(t)});var r=fM.map(function(e){return IM.get(e.entries[0])}),n=bM.length-50;bM=bM.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<bM.length;e++){var t=bM[e];kM(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=EM.length-1-50;EM=EM.filter(function(e,t){return e.startTime>DM&&s<t||i.has(e)}),SM=-1}function VL(l,e){qL=qL||YL("long-animation-frame",ML),LL(function(e){t=(e=e).entries[0],o=IM.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=kM(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||TM.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:xL(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:OL(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function GL(u,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=jL())&&(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:xL(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});u(l)},o=e||{},oM(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-WL(),0),i.entries=[e],t())})}var t,r,n=aM(),i=QL("LCP"),s=YL("largest-contentful-paint",e);s&&(t=$L(a,i,AM,o.reportAllChanges),r=eM(function(){RM[i.id]||(e(s.takeRecords()),s.disconnect(),RM[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return yM(r)},{once:!0,capture:!0})}),ZL(r),JL(function(e){i=QL("LCP"),t=$L(a,i,AM,o.reportAllChanges),XL(function(){i.value=performance.now()-e.timeStamp,RM[i.id]=!0,t(!0)})}))})}var HL,qL,jL=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},KL=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},zL=-1,JL=function(t){addEventListener("pageshow",function(e){e.persisted&&(zL=e.timeStamp,t(e))},!0)},WL=function(){var e=jL();return e&&e.activationStart||0},QL=function(e,t){var r=jL(),n="navigate";return 0<=zL?n="back-forward-cache":r&&(document.prerendering||0<WL()?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}},YL=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){}},$L=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))}},XL=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},ZL=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},eM=function(e){var t=!1;return function(){t||(e(),t=!0)}},tM=-1,rM=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},nM=function(e){"hidden"===document.visibilityState&&-1<tM&&(tM="visibilitychange"===e.type?e.timeStamp:0,sM())},iM=function(){addEventListener("visibilitychange",nM,!0),addEventListener("prerenderingchange",nM,!0)},sM=function(){removeEventListener("visibilitychange",nM,!0),removeEventListener("prerenderingchange",nM,!0)},aM=function(){return tM<0&&(tM=rM(),iM(),JL(function(){setTimeout(function(){tM=rM(),iM()},0)})),{get firstHiddenTime(){return tM}}},oM=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},lM=[1800,3e3],uM=[.1,.25],hM=0,cM=1/0,dM=0,BM=function(){return HL?hM:performance.interactionCount||0},pM=function(){"interactionCount"in performance||(HL=HL||YL("event",FL,{type:"event",buffered:!0,durationThreshold:0}))},fM=[],gM=new Map,mM=0,CM=function(){var e=Math.min(fM.length-1,Math.floor((BM()-mM)/50));return fM[e]},vM=[],_M=function(t){var e,r;vM.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=fM[fM.length-1],((e=gM.get(t.interactionId))||fM.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]},gM.set(r.id,r),fM.push(r)),fM.sort(function(e,t){return t.latency-e.latency}),10<fM.length)&&fM.splice(10).forEach(function(e){return gM.delete(e.id)}))},yM=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=eM(e),"hidden"===document.visibilityState?e():(r=t(e),ZL(e)),r},wM=[200,500],EM=[],bM=[],DM=0,IM=new WeakMap,TM=new Map,SM=-1,NM=function(){SM<0&&(SM=yM(UL))},kM=(vM.push(function(e){e.interactionId&&e.target&&!TM.has(e.interactionId)&&TM.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;DM=Math.max(DM,e.processingEnd);for(var n=bM.length-1;0<=n;n--){var i=bM[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]},bM.push(t)),!e.interactionId&&"first-input"!==e.entryType||IM.set(e,t),NM()}),function(e,t){for(var r,n=[],i=0;r=EM[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),AM=[2500,4e3],RM={};let OM="@firebase/performance",xM="0.7.14",PM=xM,FM="FB-PERF-TRACE-MEASURE",LM="@firebase/performance/config",MM="@firebase/performance/configexpire";var UM,VM,GM,P,Hm="Performance";let HM=new pe("performance",Hm,{"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."}),qM=new $e(Hm);qM.logLevel=B.INFO;let jM,KM;class zM{constructor(e){if(!(this.window=e))throw HM.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=GL,this.onINP=VL,this.onCLS=PL}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&&de()?!!he()||(qM.info("IndexedDB is not supported by current browser"),!1):(qM.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 jM=void 0===jM?new zM(KM):jM}}let JM;function WM(e,t){var r=e.length-t.length;if(r<0||1<r)throw HM.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 QM;class YM{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=WM("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=WM("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12,this.logMaxFlushSize=40}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return QM=void 0===QM?new YM:QM}}(VM=UM=UM||{})[VM.UNKNOWN=0]="UNKNOWN",VM[VM.VISIBLE=1]="VISIBLE",VM[VM.HIDDEN=2]="HIDDEN";let $M=["firebase_","google_","ga_"],XM=new RegExp("^[a-zA-Z]\\w*$");function ZM(e){var t=e.options?.appId;if(t)return t;throw HM.create("no app id")}let e2="0.0.1",t2={loggingEnabled:!0},r2="FIREBASE_INSTALLATIONS_AUTH";function n2(e,t){var n,i,r=(()=>{var e=zM.getInstance().localStorage;if(e){var t=e.getItem(MM);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(LM);if(t)try{return JSON.parse(t)}catch{}}}})();return r?(s2(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=e.options?.projectId;if(t)return t;throw HM.create("no project id")})(n.app),r=(e=>{var t=e.options?.apiKey;if(t)return t;throw HM.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:r2+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:ZM(n.app),app_version:PM,sdk_version:e2})});return fetch(t).then(e=>{if(e.ok)return e.json();throw HM.create("RC response not ok")})}).catch(()=>{qM.info(i2)}).then(s2).then(e=>{var t;e=e,t=zM.getInstance().localStorage,e&&t&&(t.setItem(LM,JSON.stringify(e)),t.setItem(MM,String(Date.now()+60*YM.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let i2="Could not fetch config, will use default configs";function s2(e){var t,r;return e&&(t=YM.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=t2.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):t2.logSource&&(t.logSource=t2.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:t2.logEndPointUrl&&(t.logEndPointUrl=t2.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:t2.transportKey&&(t.transportKey=t2.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==t2.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=t2.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==t2.tracesSamplingRate&&(t.tracesSamplingRate=t2.tracesSamplingRate),r.fpr_log_max_flush_size?t.logMaxFlushSize=Number(r.fpr_log_max_flush_size):t2.logMaxFlushSize&&(t.logMaxFlushSize=t2.logMaxFlushSize),t.logTraceAfterSampling=a2(t.tracesSamplingRate),t.logNetworkAfterSampling=a2(t.networkRequestsSamplingRate)),e}function a2(e){return Math.random()<=e}let o2=1,l2;function u2(e){var r;return o2=2,l2=l2||(r=e,(()=>{let r=zM.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=>{JM=e}),t;var e,t}).then(e=>n2(r,e)).then(()=>h2(),()=>h2()))}function h2(){o2=3}let c2=1e4,d2=1e3,B2=3,p2=65536,f2=new TextEncoder,g2=B2,m2=[],C2=!1;function v2(e){setTimeout(()=>{if(!(g2<=0)){if(0<m2.length){let e=m2.splice(0,d2),t=_2(e);(e=>{var t=YM.getInstance().getFlTransportFullUrl();return f2.encode(e).length<=p2&&navigator.sendBeacon&&navigator.sendBeacon(t,e)?Promise.resolve():fetch(t,{method:"POST",body:e})})(t).then(()=>{g2=B2}).catch(()=>{m2=[...e,...m2],g2--,qM.info(`Tries left: ${g2}.`),v2(c2)})}v2(c2)}},e)}function _2(e){var t=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),t={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:YM.getInstance().logSource,log_event:t};return JSON.stringify(t)}function y2(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw HM.create("invalid cc log");m2=[...m2,e]}}function w2(){for(var e,t=YM.getInstance().getFlTransportFullUrl();0<m2.length;){var r=m2.splice(-YM.getInstance().logMaxFlushSize),n=_2(r);if(!navigator.sendBeacon||!navigator.sendBeacon(t,n)){m2=[...m2,...r];break}}0<m2.length&&(e=_2(m2),fetch(t,{method:"POST",body:e}).catch(()=>{qM.info("Failed flushing queued events.")}))}let E2;function b2(e,t){(E2=E2||{send:y2(T2),flush:w2}).send(e,t)}function D2(e){var t=YM.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&zM.getInstance().requiredApisAvailable()&&(3===o2?I2(e):u2(e.performanceController).then(()=>I2(e),()=>I2(e)))}function I2(e){var t;JM&&(t=YM.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&b2(e,1)}function T2(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:S2(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:S2(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function S2(e){return{google_app_id:ZM(e),app_instance_id:JM,web_app_info:{sdk_version:PM,page_url:zM.getInstance().getUrl(),service_worker_status:(t=zM.getInstance().navigator)?.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(zM.getInstance().document.visibilityState){case"visible":return UM.VISIBLE;case"hidden":return UM.HIDDEN;default:return UM.UNKNOWN}})(),effective_connection_type:(()=>{var e=zM.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 N2(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=zM.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=YM.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&b2(t,0)}let k2=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class A2{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=zM.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||`${FM}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw HM.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw HM.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(),D2(this)}record(e,t,r){if(e<=0)throw HM.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw HM.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={...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])));D2(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<k2.indexOf(n))&&n.startsWith("_"))throw HM.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=t??0,(r=Math.floor(i))<i&&qM.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||$M.some(e=>r.startsWith(e))||!r.match(XM)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw HM.create("invalid attribute name",{attributeName:e});if(!s)throw HM.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{...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=zM.getInstance().getUrl();if(s){var s=new A2(e,"_wt_"+s,!0),a=Math.floor(1e3*zM.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),D2(s),E2&&E2.flush()}}static addWebVitalMetric(e,t,r,n){n&&(e.putMetric(t,Math.floor(1e3*n.value)),n.elementAttribution)&&(100<n.elementAttribution.length?e.putAttribute(r,n.elementAttribution.substring(0,100)):e.putAttribute(r,n.elementAttribution))}static createUserTimingTrace(e,t){D2(new A2(e,t,!1,t))}}let R2={},O2=!1,x2;function P2(n){JM&&(setTimeout(()=>{{var t=n;let e=zM.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>L2(t)):e.document.addEventListener("unload",()=>L2(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&L2(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{x2=e}),e.onLCP(e=>{R2.lcp={value:e.value,elementAttribution:e.attribution?.element}}),e.onCLS(e=>{R2.cls={value:e.value,elementAttribution:e.attribution?.largestShiftTarget}}),e.onINP(e=>{R2.inp={value:e.value,elementAttribution:e.attribution?.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=zM.getInstance();for(e of r.getEntriesByType("resource"))N2(t,e);r.setupObserver("resource",e=>N2(t,e))},0),setTimeout(()=>{var e,t=n,r=zM.getInstance();for(e of r.getEntriesByType("measure"))F2(t,e);r.setupObserver("measure",e=>F2(t,e))},0))}function F2(e,t){var r=t.name;r.substring(0,FM.length)!==FM&&A2.createUserTimingTrace(e,r)}function L2(r){if(!O2){O2=!0;var n=zM.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{A2.createOobTrace(r,e,t,R2,x2)},0)}}class M2{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==e?.dataCollectionEnabled&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==e?.instrumentationEnabled&&(this.instrumentationEnabled=e.instrumentationEnabled),zM.getInstance().requiredApisAvailable()?ce().then(e=>{e&&(C2||(v2(5500),C2=!0),u2(this).then(()=>P2(this),()=>P2(this)),this.initialized=!0)}).catch(e=>{qM.info("Environment doesn't support IndexedDB: "+e)}):qM.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){YM.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return YM.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){YM.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return YM.getInstance().dataCollectionEnabled}}let U2="[DEFAULT]";let V2=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==U2)throw HM.create("FB not default");if("undefined"==typeof window)throw HM.create("no window");e=window,KM=e;r=new M2(r,n);return r._init(t),r};St(new He("performance",V2,"PUBLIC")),Gt(OM,xM),Gt(OM,xM,"esm2020");class G2{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=_(t),new A2(t,e);var t}}function H2(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new G2(t,r)}(GM=lr).INTERNAL.registerComponent(new He("performance-compat",H2,"PUBLIC")),GM.registerVersion("@firebase/performance-compat","0.2.27");let q2="@firebase/remote-config";class j2{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let K2=new pe("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.","stream-error":"The stream was not able to connect to the backend: {$originalErrorMessage}.","realtime-unavailable":"The Realtime service is unavailable: {$originalErrorMessage}","update-message-invalid":"The stream invalidation message was unparsable: {$originalErrorMessage}","update-not-fetched":"Unable to fetch the latest config: {$originalErrorMessage}","analytics-unavailable":"Connection to Firebase Analytics failed: {$originalErrorMessage}"});let z2=["1","true","t","yes","y","on"];class J2{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=z2.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}}class W2{constructor(e){this.storage=e._storage,this.logger=e._logger,this.analyticsProvider=e._analyticsProvider}async updateActiveExperiments(e){var t=await this.storage.getActiveExperiments()||new Set,r=this.createExperimentInfoMap(e);return this.addActiveExperiments(r),this.removeInactiveExperiments(t,r),this.storage.setActiveExperiments(new Set(r.keys()))}createExperimentInfoMap(e){var t,r=new Map;for(t of e)r.set(t.experimentId,t);return r}addActiveExperiments(e){var t,r,n={};for([t,r]of e.entries())n["firebase"+t]=r.variantId;this.addExperimentToAnalytics(n)}removeInactiveExperiments(e,t){var r,n={};for(r of e)t.has(r)||(n["firebase"+r]=null);this.addExperimentToAnalytics(n)}addExperimentToAnalytics(e){if(0!==Object.keys(e).length)try{var t=this.analyticsProvider.getImmediate({optional:!0});t?(t.setUserProperties(e),t.logEvent("set_firebase_experiment_state")):this.logger.warn("Analytics import failed. Verify if you have imported Firebase Analytics in your app code.")}catch(e){throw K2.create("analytics-unavailable",{originalErrorMessage:e?.message})}}}async function Q2(e){var t=_(e),[r,n]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(r&&r.config&&r.eTag&&r.templateVersion&&r.eTag!==n)&&(n=new W2(t).updateActiveExperiments(r.experiments||[]),await Promise.all([t._storageCache.setActiveConfig(r.config),t._storage.setActiveConfigEtag(r.eTag),t._storage.setActiveConfigTemplateVersion(r.templateVersion),n]),!0)}function Y2(e){let t=_(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function $2(t){var r=_(t);let e=new j2;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 Be&&-1!==n.code.indexOf(t)?"throttle":"failure";throw await r._storageCache.setLastFetchStatus(i),e}}function X2(r){var e,t,n=_(r);return[e={},t={}]=[n._storageCache.getActiveConfig(),n.defaultConfig],Object.keys({...e,...t}).reduce((e,t)=>(e[t]=Z2(r,t),e),{})}function Z2(e,t){var r=_(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 J2("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new J2("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 J2("static"))}class eU{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 tU{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"===e?.name&&(t="fetch-timeout"),K2.create(t,{originalErrorMessage:e?.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let l,u,h,c,d;if(200===a.status){let e;try{e=await a.json()}catch(e){throw K2.create("fetch-client-parse",{originalErrorMessage:e?.message})}l=e.entries,u=e.state,h=e.templateVersion,c=e.experimentDescriptions,d=e.rolloutMetadata}if("INSTANCE_STATE_UNSPECIFIED"===u?o=500:"NO_CHANGE"===u?o=304:"NO_TEMPLATE"!==u&&"EMPTY_CONFIG"!==u||(l={},c=[],d=[]),304!==o&&200!==o)throw K2.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l,templateVersion:h,experiments:c,rollouts:d}}}class rU{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(K2.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 Be&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+Ue(r),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class nU{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,r,n,i,s,a){this.app=e,this._client=t,this._storageCache=r,this._storage=n,this._logger=i,this._realtimeHandler=s,this._analyticsProvider=a,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function iU(e,t){var r=e.target.error||void 0;return K2.create(t,{originalErrorMessage:r&&r?.message})}let sU="app_namespace_store";class aU{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)}getActiveExperiments(){return this.get("active_experiments")}setActiveExperiments(e){return this.set("active_experiments",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")}getRealtimeBackoffMetadata(){return this.get("realtime_backoff_metadata")}setRealtimeBackoffMetadata(e){return this.set("realtime_backoff_metadata",e)}getActiveConfigTemplateVersion(){return this.get("last_known_template_version")}setActiveConfigTemplateVersion(e){return this.set("last_known_template_version",e)}}class oU extends aU{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(iU(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(sU,{keyPath:"compositeKey"})}}catch(e){r(K2.create("storage-open",{originalErrorMessage:e?.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=r,this.openDbPromise=n}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([sU],"readwrite"),r=uU(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(sU),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(iU(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(K2.create("storage-get",{originalErrorMessage:e?.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(sU),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(iU(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(K2.create("storage-set",{originalErrorMessage:e?.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([sU],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([sU],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([sU],"readwrite").objectStore(sU),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(iU(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(K2.create("storage-delete",{originalErrorMessage:e?.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class lU extends aU{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=uU(e,t),Promise.resolve(this.storage.custom_signals)}}function uU(e,t){var r={...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 K2.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class hU{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)}}class cU{constructor(e){this.allowedEvents_=e,this.listeners_={},f(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){f(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class dU extends cU{static getInstance(){return new dU}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 f("visible"===e,"Unknown event type: "+e),[this.visible_]}}let BU="featureDisabled",pU="retryIntervalSeconds",fU="latestTemplateVersionNumber";class gU{constructor(e,t,r,n,i,s,a,o,l,u){this.firebaseInstallations=e,this.storage=t,this.sdkVersion=r,this.namespace=n,this.projectId=i,this.apiKey=s,this.appId=a,this.logger=o,this.storageCache=l,this.cachingClient=u,this.observers=new Set,this.isConnectionActive=!1,this.isRealtimeDisabled=!1,this.httpRetriesRemaining=8,this.isInBackground=!1,this.decoder=new TextDecoder("utf-8"),this.isClosingConnection=!1,this.propagateError=t=>this.observers.forEach(e=>e.error?.(t)),this.isStatusCodeRetryable=e=>!e||[408,429,502,503,504].includes(e),this.setRetriesRemaining(),dU.getInstance().on("visible",this.onVisibilityChange,this)}async setRetriesRemaining(){var e=(await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0;this.httpRetriesRemaining=Math.max(8-e,1)}async updateBackoffMetadataWithLastFailedStreamConnectionTime(e){var t=((await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0)+1,r=Ue(t,6e4,2);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(e.getTime()+r),numFailedStreams:t})}async updateBackoffMetadataWithRetryInterval(e){var t=Date.now(),t=new Date(t+1e3*e);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:t,numFailedStreams:0}),await this.retryHttpConnectionWhenBackoffEnds()}async closeRealtimeHttpConnection(){if(!this.isClosingConnection){this.isClosingConnection=!0;try{this.reader&&await this.reader.cancel()}catch(e){this.logger.debug("Failed to cancel the reader, connection was lost.")}finally{this.reader=void 0}this.controller&&(await this.controller.abort(),this.controller=void 0),this.isClosingConnection=!1}}async resetRealtimeBackoff(){await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(-1),numFailedStreams:0})}resetRetryCount(){this.httpRetriesRemaining=8}async establishRealtimeConnection(e,t,r,n){var i=await this.storage.getActiveConfigEtag(),s=await this.storage.getActiveConfigTemplateVersion(),i={"X-Goog-Api-Key":this.apiKey,"X-Goog-Firebase-Installations-Auth":r,"Content-Type":"application/json",Accept:"application/json","If-None-Match":i||"*","Content-Encoding":"gzip"},s={project:this.projectId,namespace:this.namespace,lastKnownVersionNumber:s,appId:this.appId,sdkVersion:this.sdkVersion,appInstanceId:t};return await fetch(e,{method:"POST",headers:i,body:JSON.stringify(s),signal:n})}getRealtimeUrl(){var e=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfigrealtime.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:streamFetchInvalidations?key=`+this.apiKey;return new URL(e)}async createRealtimeConnection(){var[e,t]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken(!1)]),r=(this.controller=new AbortController,this.getRealtimeUrl());return await this.establishRealtimeConnection(r,e,t,this.controller.signal)}async retryHttpConnectionWhenBackoffEnds(){let e=await this.storage.getRealtimeBackoffMetadata();e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0};var t=new Date(e.backoffEndTimeMillis).getTime(),r=Date.now(),t=Math.max(0,t-r);await this.makeRealtimeHttpConnection(t)}setIsHttpConnectionRunning(e){this.isConnectionActive=e}checkAndSetHttpConnectionFlagIfNotRunning(){var e=this.canEstablishStreamConnection();return e&&this.setIsHttpConnectionRunning(!0),e}fetchResponseIsUpToDate(e,t){return null!=e.config&&e.templateVersion?e.templateVersion>=t:"success"===this.storageCache.getLastFetchStatus()}parseAndValidateConfigUpdateMessage(e){var t=e.indexOf("{"),r=e.indexOf("}",t);return t<0||r<0||r<=t?"":e.substring(t,r+1)}isEventListenersEmpty(){return 0===this.observers.size}getRandomInt(e){return Math.floor(Math.random()*e)}executeAllListenerCallbacks(t){this.observers.forEach(e=>e.next(t))}getChangedParams(e,t,r,n){var i,s,a,o,l=new Set,u=new Set(Object.keys(e||{})),h=new Set(Object.keys(t||{})),c=r.experiments||[],d=n?.experiments||[],B=this.createExperimentsMap(c),p=this.createExperimentsMap(d),c=r.rollouts||[],d=n?.rollouts||[],f=this.createRolloutsMap(c),g=this.createRolloutsMap(d);for(i of u)h.has(i)&&e[i]===t[i]?(B.has(i)!==p.has(i)||(s=B.get(i),a=p.get(i),s&&a&&!this.areExperimentsEqual(s,a))||f.has(i)!==g.has(i)||(s=f.get(i),a=g.get(i),s&&a&&!this.areRolloutsEqual(s,a)))&&l.add(i):l.add(i);for(o of h)u.has(o)||l.add(o);return l}areExperimentsEqual(e,t){return e.experimentId===t.experimentId&&e.variantId===t.variantId&&e.timeToLiveMillis===t.timeToLiveMillis&&e.triggerTimeoutMillis===t.triggerTimeoutMillis}areRolloutsEqual(e,t){if(e.size!==t.size)return!1;for(var[r,n]of e)if(t.get(r)!==n)return!1;return!0}createExperimentsMap(e){var t,r=new Map;for(t of e)if(t.affectedParameterKeys&&!t.experimentId.startsWith("_exp_rollout"))for(var n of t.affectedParameterKeys)r.set(n,t);return r}createRolloutsMap(e){var t,r=new Map;for(t of e){var n,i=t.rolloutId,s=t.variantId;for(n of t.affectedParameterKeys||[]){let e=r.get(n);e||(e=new Map,r.set(n,e)),e.set(i,s)}}return r}async fetchLatestConfig(e,r){var n=e-1,i=3-n,s=this.storageCache.getCustomSignals(),a=(s&&this.logger.debug("Fetching config with custom signals: "+JSON.stringify(s)),new j2);try{var o,l={cacheMaxAgeMillis:0,signal:a,customSignals:s,fetchType:"REALTIME",fetchAttempt:i},u=await this.storage.getLastSuccessfulFetchResponse(),h=await this.cachingClient.fetch(l);let t=await this.storage.getActiveConfig();if(this.fetchResponseIsUpToDate(h,r))if(null==h.config)this.logger.debug("The fetch succeeded, but the backend had no updates.");else{null==t&&(t={});let e=this.getChangedParams(h.config,t,h,u);0===e.size?this.logger.debug("Config was fetched, but no params changed."):(o={getUpdatedKeys(){return new Set(e)}},this.executeAllListenerCallbacks(o))}else this.logger.debug("Fetched template version is the same as SDK's current version. Retrying fetch."),await this.autoFetch(n,r)}catch(e){a=e instanceof Error?e.message:String(e),s=K2.create("update-not-fetched",{originalErrorMessage:"Failed to auto-fetch config update: "+a});this.propagateError(s)}}async autoFetch(e,r){var t;if(0===e)t=K2.create("update-not-fetched",{originalErrorMessage:"Unable to fetch the latest version of the template."}),this.propagateError(t);else{let t=1e3*this.getRandomInt(4);await new Promise(e=>setTimeout(e,t)),await this.fetchLatestConfig(e,r)}}async handleNotifications(e){let t="";for(;;){var{done:r,value:n}=await e.read();if(r)break;if(r=this.decoder.decode(n,{stream:!0}),t+=r,r.includes("}")&&0!==(t=this.parseAndValidateConfigUpdateMessage(t)).length){try{var i,s,a,o=JSON.parse(t);if(this.isEventListenersEmpty())break;if(BU in o&&!0===o[BU]){var l=K2.create("realtime-unavailable",{originalErrorMessage:"The server is temporarily unavailable. Try again in a few minutes."});this.propagateError(l);break}fU in o&&(i=await this.storage.getActiveConfigTemplateVersion(),s=Number(o[fU]),i)&&i<s&&await this.autoFetch(3,s),pU in o&&(a=Number(o[pU]),await this.updateBackoffMetadataWithRetryInterval(a))}catch(e){this.logger.debug("Unable to parse latest config update message.",e);n=e instanceof Error?e.message:String(e);this.propagateError(K2.create("update-message-invalid",{originalErrorMessage:n}))}t=""}}}async listenForNotifications(e){try{await this.handleNotifications(e)}catch(e){this.isInBackground||this.logger.debug("Real-time connection was closed due to an exception.")}}async prepareAndBeginRealtimeHttpStream(){if(this.checkAndSetHttpConnectionFlagIfNotRunning()){let e=await this.storage.getRealtimeBackoffMetadata();var r=(e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0}).backoffEndTimeMillis.getTime();if(Date.now()<r)await this.retryHttpConnectionWhenBackoffEnds();else{let e,t;try{e=await this.createRealtimeConnection(),t=e.status,e.ok&&e.body&&(this.resetRetryCount(),await this.resetRealtimeBackoff(),n=e.body.getReader(),this.reader=n,await this.listenForNotifications(n))}catch(e){this.isInBackground?this.resetRetryCount():this.logger.debug("Exception connecting to real-time RC backend. Retrying the connection...:",e)}finally{var n,r=this.isInBackground;await this.closeRealtimeHttpConnection(),this.setIsHttpConnectionRunning(!1),this.isInBackground||(r?(this.resetRetryCount(),await this.retryHttpConnectionWhenBackoffEnds()):((n=void 0===t||this.isStatusCodeRetryable(t))&&await this.updateBackoffMetadataWithLastFailedStreamConnectionTime(new Date),n||e?.ok?await this.retryHttpConnectionWhenBackoffEnds():(r="Unable to connect to the server. HTTP status code: "+t,n=K2.create("stream-error",{originalErrorMessage:r}),this.propagateError(n))))}}}}canEstablishStreamConnection(){var e=0<this.observers.size,t=!this.isRealtimeDisabled,r=!this.isConnectionActive,n=!this.isInBackground;return e&&t&&r&&n}async makeRealtimeHttpConnection(t){var e;this.canEstablishStreamConnection()&&(0<this.httpRetriesRemaining?(this.httpRetriesRemaining--,await new Promise(e=>setTimeout(e,t)),this.prepareAndBeginRealtimeHttpStream()):this.isInBackground||(e=K2.create("stream-error",{originalErrorMessage:"Unable to connect to the server. Check your connection and try again."}),this.propagateError(e)))}async beginRealtime(){0<this.observers.size&&await this.makeRealtimeHttpConnection(0)}addObserver(e){this.observers.add(e),this.beginRealtime()}removeObserver(e){this.observers.has(e)&&this.observers.delete(e)}async onVisibilityChange(e){this.isInBackground=!e,e?await this.beginRealtime():await this.closeRealtimeHttpConnection()}}async function mU(){if(!he())return!1;try{return await ce()}catch(e){return!1}}St(new He("remote-config",function(e,{options:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),i=e.getProvider("analytics-internal"),{projectId:s,apiKey:a,appId:o}=r.options;if(!s)throw K2.create("registration-project-id");if(!a)throw K2.create("registration-api-key");if(!o)throw K2.create("registration-app-id");var l=t?.templateId||"firebase",u=he()?new oU(o,r.name,l):new lU,h=new hU(u),c=new $e(q2),d=(c.logLevel=B.ERROR,new tU(n,Lt,l,s,a,o)),d=new rU(d,u),d=new eU(d,u,h,c),n=new gU(n,u,Lt,l,s,a,o,c,h,d),l=new nU(r,d,h,u,c,n,i);return Y2(l),l},"PUBLIC").setMultipleInstances(!0)),Gt(q2,"0.10.0"),Gt(q2,"0.10.0","esm2020");class CU{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 Q2(this._delegate)}ensureInitialized(){return Y2(this._delegate)}fetch(){return $2(this._delegate)}fetchAndActivate(){return(async e=>(await $2(e=_(e)),Q2(e)))(this._delegate)}getAll(){return X2(this._delegate)}getBoolean(e){return Z2(_(this._delegate),e).asBoolean()}getNumber(e){return Z2(_(this._delegate),e).asNumber()}getString(e){return Z2(_(this._delegate),e).asString()}getValue(e){return Z2(this._delegate,e)}setLogLevel(e){var t=this._delegate,r=_(t);switch(e){case"debug":r._logger.logLevel=B.DEBUG;break;case"silent":r._logger.logLevel=B.SILENT;break;default:r._logger.logLevel=B.ERROR}}}function vU(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new CU(r,n)}return(P=lr).INTERNAL.registerComponent(new He("remoteConfig-compat",vU,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:mU})),P.registerVersion("@firebase/remote-config-compat","0.2.31"),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","13.3.0","compat-cdn"),lr});
//# sourceMappingURL=firebase-compat.js.map