firebase 11.3.0 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/app/dist/esm/index.esm.js +1 -1
  2. package/app/dist/index.cjs.js +1 -1
  3. package/app/dist/index.mjs +1 -1
  4. package/compat/app/dist/esm/index.esm.js +1 -1
  5. package/compat/app/dist/index.cjs.js +1 -1
  6. package/compat/app/dist/index.mjs +1 -1
  7. package/compat/dist/esm/index.esm.js +2 -2
  8. package/compat/dist/index.node.cjs +2 -2
  9. package/compat/dist/index.rn.cjs.js +2 -2
  10. package/firebase-analytics.js +1 -1
  11. package/firebase-app-check.js +1 -1
  12. package/firebase-app-compat.js +2 -2
  13. package/firebase-app.js +5 -5
  14. package/firebase-auth-cordova.js +1 -1
  15. package/firebase-auth-web-extension.js +1 -1
  16. package/firebase-auth.js +1 -1
  17. package/firebase-compat.js +9 -9
  18. package/firebase-compat.js.map +1 -1
  19. package/firebase-data-connect.js +1 -1
  20. package/firebase-database.js +1 -1
  21. package/firebase-firestore-compat.js +5 -5
  22. package/firebase-firestore-compat.js.map +1 -1
  23. package/firebase-firestore-lite.js +1 -1
  24. package/firebase-firestore-lite.js.map +1 -1
  25. package/firebase-firestore.js +1 -1
  26. package/firebase-firestore.js.map +1 -1
  27. package/firebase-functions.js +1 -1
  28. package/firebase-installations.js +1 -1
  29. package/firebase-messaging-sw.js +1 -1
  30. package/firebase-messaging.js +1 -1
  31. package/firebase-performance-standalone-compat.js +5 -5
  32. package/firebase-performance.js +1 -1
  33. package/firebase-remote-config-compat.js.map +1 -1
  34. package/firebase-remote-config.js +1 -1
  35. package/firebase-remote-config.js.map +1 -1
  36. package/firebase-storage.js +1 -1
  37. package/firebase-vertexai.js +1 -1
  38. package/package.json +5 -5
@@ -1,9 +1,9 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(kd,Rd){try{!(function(){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let i=n(kd),s=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let 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(s(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,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 B;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class B extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let q=function(e){var t=s(e);return a.encodeByteArray(t,!0)},j=function(e){return q(e).replace(/\./g,"")},z=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};let G=()=>(()=>{if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")})().__FIREBASE_DEFAULTS__,K=()=>{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&&z(e[1]);return t&&JSON.parse(t)}},$=()=>{try{return G()||K()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}};function H(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function W(){return!(()=>{var e=null==(e=$())?void 0:e.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}})()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class Y extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,Y.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,X.prototype.create)}}class X{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(J,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new Y(i,s,r)}}let J=/\{\$([^}]+)}/g;function Z(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(!Z(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 _(e){return e&&e._delegate?e._delegate:e}class te{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}}var c;(t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT";let re={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},ne=c.INFO,ie={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},se=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=ie[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};var ae,oe,pr,yr,vr,wr,_r,br,Ir,Tr,m,le,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Er=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return m(h(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var c=o(0),l=o(1),d=o(16777216);function f(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function g(e){return-1==e.h}function m(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new u(r,~e.h).add(l)}function p(e,t){return e.add(m(t))}function y(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(c,c);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30<e.g.length){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!f(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=p(e,i.j(t)),new v(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);g(a)||0<a.l(e);)a=(s=h(r-=n)).j(t);f(s)&&(s=l),i=i.add(s),e=p(e,a)}return new v(i,e)}function _(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new u(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(f(this))return"0";if(g(this))return"-"+m(this).toString(e);for(var t=h(Math.pow(e,6)),r=this,n="";;){var i=w(r,t).g,s=((0<(r=p(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(f(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return g(e=p(this,e))?-1:f(e)?0:1},e.abs=function(){return g(this)?m(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(f(this)||f(e))return c;if(g(this))return g(e)?m(this).j(m(e)):m(m(this).j(e));if(g(e))return m(this.j(m(e)));if(this.l(d)<0&&e.l(d)<0)return h(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,y(r,2*n+2*i),r[2*n+2*i+1]+=s*l,y(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,y(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,y(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new u(r,0)},e.A=function(e){return w(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new u(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new u(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new u(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,oe=r,u.prototype.multiply=u.prototype.j,u.prototype.modulo=u.prototype.A,u.prototype.compare=u.prototype.l,u.prototype.toNumber=u.prototype.m,u.prototype.getBits=u.prototype.i,u.fromNumber=h,u.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 m(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=h(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=h(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(h(o));return i},ae=u}).apply(void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,N="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var k=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Er&&Er];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=k;t=t.split(".");for(var i=0;i<t.length-1;i++){var P=t[i];if(!(P in n))break e;n=n[P]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&N(n,t,{configurable:!0,writable:!0,value:r})}var U=U||{},R=this||self;function B(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function u(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function q(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function p(e,t,r){return(p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?q:j).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function G(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(B(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function L(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=R.navigator;return(e=e&&e.userAgent)||""}function Q(e){return Q[" "](e),e}Q[" "]=function(){};var $=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function H(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function W(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function X(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var J=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=J.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=R.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{R.setTimeout(()=>{throw e},0)})(e)}var t=J;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function h(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}h.prototype.s=!1,h.prototype.ma=function(){this.s||(this.s=!0,this.N())},h.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!R.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};R.addEventListener("test",r,t),R.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if($){e:{try{Q(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},f=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function ue(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function he(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),he(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function fe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=_e(n);return t&&t[f]?t.L(r,n,u(i)?!!i.capture:!!i,s):ge(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)fe(e,t[s],r,n,i);return null}return r=_e(r),e&&e[f]?e.K(t,r,u(n)?!!n.capture:!!n,i):ge(e,t,r,!1,n,i)}function ge(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=u(i)?!!i.capture:!!i,o=ve(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ye;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(pe(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function me(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[f]?ue(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(pe(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ve(t))?(ue(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function pe(e){return e in de?de[e]:de[e]="on"+e}function ye(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&me(e),r.call(n,t))}function ve(e){return(e=e[ce])instanceof le?e:null}var we="__closure_events_fn_"+(1e9*Math.random()>>>0);function _e(t){return"function"==typeof t?t:(t[we]||(t[we]=function(e){return t.handleEvent(e)}),t[we])}function g(){h.call(this),this.i=new le(this),(this.M=this).F=null}function m(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,X(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&ue(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=p(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=p(e.handleEvent,e)}return 2147483647<Number(t)?-1:R.setTimeout(e,t||0)}s(g,h),g.prototype[f]=!0,g.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=u(i)?!!i.capture:!!i,n=_e(n),t&&t[f]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=he(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&ve(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?he(r,n,i,s):t)?r[t]:null)&&me(n)}(this,e,t,r,n)},g.prototype.N=function(){if(g.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},g.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},g.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends h{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(R.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function y(e){h.call(this),this.h=e,this.g={}}s(y,h);var Ee=[];function Se(e){H(e.g,function(e,t){this.g.hasOwnProperty(t)&&me(e)},e),e.g={}}y.prototype.N=function(){y.aa.N.call(this),Se(this)},y.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var xe=R.JSON.stringify,Ae=R.JSON.parse,Ce=class{stringify(e){return R.JSON.stringify(e,void 0)}parse(e){return R.JSON.parse(e,void 0)}};function De(){}function Ne(e){return e.h||(e.h=e.i())}function ke(){}De.prototype.h=null;var Re={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Le(){c.call(this,"d")}function Me(){c.call(this,"c")}s(Le,c),s(Me,c);var v={},Oe=null;function Ve(){return Oe=Oe||new g}function Fe(e){c.call(this,v.La,e)}function Pe(){var e=Ve();m(e,new Fe(e))}function Ue(e,t){c.call(this,v.STAT_EVENT,e),this.stat=t}function M(e){var t=Ve();m(t,new Ue(t,e))}function Be(e,t){c.call(this,v.Ma,e),this.size=t}function qe(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return R.setTimeout(function(){e()},t)}function je(){this.g=!0}function O(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return xe(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}v.La="serverreachability",s(Fe,c),v.STAT_EVENT="statevent",s(Ue,c),v.Ma="timingevent",s(Be,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ge={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function Ke(){}function w(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new y(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new Qe}function Qe(){this.i=null,this.g="",this.h=!1}s(Ke,De),Ke.prototype.g=function(){return new XMLHttpRequest},Ke.prototype.i=function(){return{}};var $e=new Ke,He={},We={};function Ye(e,t,r){e.L=1,e.v=yt(b(t)),e.m=r,e.P=!0,Xe(e,null)}function Xe(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Nt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new Qe,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(p(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,u,h,c,s=0;s<i.length;s++){var d=fe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?W(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Pe(),a=e.i,o=e.u,l=e.A,u=e.l,h=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+u+") [attempt "+h+"]: "+o+"\n"+l+"\n"+e})}function Je(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=qe(p(e.ba,e),t)}function tt(e){e.B&&(R.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function V(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Se(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&&lt(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),M(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=qe(p(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else A(r,11)}else if(!e.K&&r.g!=e||ar(r),!L(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,u,h,c,d,f,g,m=i[t];r.T=m[0],m=m[1],2==r.G?"c"==m[0]?(r.K=m[1],r.ia=m[2],null!=(s=m[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=m[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=m[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=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&&(ut(h,h.h),h.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=hr(n,n.J?n.ia:null,n.W),d.K?(ht(n.h,d),f=d,(g=n.L)&&(f.I=g),f.B&&(tt(f),Ze(f)),n.g=d):rr(n),0<r.i.length&&Jt(r)):"stop"!=m[0]&&"close"!=m[0]||A(r,7):3==r.G&&("stop"==m[0]||"close"==m[0]?"stop"==m[0]?A(r,7):Wt(r):"noop"!=m[0]&&r.l&&r.l.ta(m),r.v=0)}Pe()}catch(e){}}w.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},w.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Qt(this.g)))){this.J||4!=t||7==r||Pe(),tt(this);var n=this.g.Z();this.X=n;t:if(Je(this)){var i=Qt(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){V(this),rt(this);var o="";break t}this.h.i=new R.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,S=this.i,x=this.u,A=this.A,C=this.l,D=this.R,N=t,k=n,S.info(function(){return"XMLHTTP RESP ("+C+") [ attempt "+D+"]: "+x+"\n"+A+"\n"+N+" "+k}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,u=this.g;if((l=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!L(l)){var h=l;break t}}h=null}if(!(n=h)){this.o=!1,this.s=3,M(12),V(this),rt(this);break e}O(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?We:(T=Number(I.substring(T,E)),isNaN(T)?He:(E+=1)+T>I.length?We:(I=I.slice(E,E+T),b.C=E+T,I)))==We){4==t&&(this.s=4,M(14),n=!1),O(this.i,this.l,null,"[Incomplete Response]");break}if(c==He){this.s=4,M(15),O(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}O(this.i,this.l,c,null),nt(this,c)}Je(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,M(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,M(11)):(O(this.i,this.l,o,"[Invalid Chunked Response]"),V(this),rt(this))}else O(this.i,this.l,o,null),nt(this,o);4==t&&V(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var f=this.g;var g,m,p,y={};f=(f.g&&2<=F(f)&&f.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<f.length;e++)L(f[e])||(g=(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})(f[e]),m=g[0],"string"==typeof(g=g[1])&&(g=g.trim(),p=y[m]||[],(y[m]=p).push(g)));var v,w=y,_=function(e){return e.join(", ")};for(v in w)_.call(void 0,w[v],v,w)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,M(12)):(this.s=0,M(13)),V(this),rt(this)}}}}catch(e){}var b,I,T,E,S,x,A,C,D,N,k},w.prototype.cancel=function(){this.J=!0,V(this)},w.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Pe(),M(17)),V(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=R.PerformanceNavigationTiming?0<(e=R.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(R.chrome&&R.chrome.loadTimes&&R.chrome.loadTimes()&&R.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ut(e,t){e.g?e.g.add(t):e.h=t}function ht(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return G(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(B(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(B(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(B(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var ft=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function _(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof _?(this.h=e.h,gt(this,e.j),this.o=e.o,this.g=e.g,mt(this,e.s),this.l=e.l,t=e.i,(r=new At).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),pt(this,r),this.m=e.m):e&&(t=String(e).match(ft))?(this.h=!1,gt(this,t[1]||"",!0),this.o=vt(t[2]||""),this.g=vt(t[3]||"",!0),mt(this,t[4]),this.l=vt(t[5]||"",!0),pt(this,t[6]||"",!0),this.m=vt(t[7]||"")):(this.h=!1,this.i=new At(null,this.h))}function b(e){return new _(e)}function gt(e,t,r){e.j=r?vt(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function mt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function pt(e,t,r){var n,i;t instanceof At?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(Ct(this,t),Nt(this,r,e))},n)),n.j=i):(r||(t=wt(t,St)),e.i=new At(t,e.h))}function I(e,t,r){e.i.set(t,r)}function yt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function vt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function wt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,_t),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function _t(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}_.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(wt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(wt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(wt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",wt(r,xt)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,St=/[#\?@]/g,xt=/#/g;function At(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function Ct(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Dt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Nt(e,t,r){Ct(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),G(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function S(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function kt(){this.g=new Ce}function Rt(e){this.l=e.Ub||null,this.j=e.eb||!1}function Lt(e,t){g.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Mt(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Ot(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Vt(e)}function Vt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return H(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Pt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function x(e){g.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=At.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Dt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Dt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Rt,De),Rt.prototype.g=function(){return new Lt(this.l,this.j)},Rt.prototype.i=(bt={},function(){return bt}),s(Lt,g),(e=Lt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Vt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||R).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Ot(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Vt(this)),this.g)&&(this.readyState=3,Vt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==R.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Mt(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Ot:Vt)(this),3==this.readyState)&&Mt(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Ot(this))},e.Qa=function(e){this.g&&(this.response=e,Ot(this))},e.ga=function(){this.g&&Ot(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Lt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(x,g);var Ut=/^https?$/i,Bt=["POST","PUT"];function qt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),Gt(e)}function jt(e){e.A||(e.A=!0,m(e,"complete"),m(e,"error"))}function zt(e){if(e.h&&void 0!==U&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(m(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(ft)[1]||null)&&R.self&&R.self.location&&(n=R.self.location.protocol.slice(0,-1)),r=!Ut.test(n?n.toLowerCase():"")),t=r),t)m(e,"complete"),m(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{Gt(e)}}}function Gt(e,t){if(e.g){Kt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||m(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Kt(e){e.I&&(R.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Qt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function $t(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Ht(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=$t("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=$t("baseRetryDelayMs",5e3,e),this.cb=$t("retryDelaySeedMs",1e4,e),this.Wa=$t("forwardChannelMaxRetries",2,e),this.wa=$t("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new kt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Wt(e){if(Xt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new w(e,e.j,t)).L=2,t.v=yt(b(r)),r=!1,R.navigator&&R.navigator.sendBeacon)try{r=R.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&R.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}ur(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Xt(e){Yt(e),e.u&&(R.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&R.clearTimeout(e.s),e.s=null)}function Jt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Pt(n,e.m,e.o),r=new w(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ut(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&H(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?p(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;u(e)&&(r=xe(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=qe(p(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(R.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new w(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Pt(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=yt(b(t)),r.m=null,r.P=!0,Xe(r,e)}function ar(e){null!=e.C&&(R.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ht(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,m(a=Ve(),new Be(a,s)),Jt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=qe(p(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:A(e,5);break;case 4:A(e,10);break;case 3:A(e,6);break;default:A(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function A(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=p(e.fb,e),n=!(i=e.Xa),i=new _(i||"//www.google.com/images/cleardot.gif"),R.location&&"http"==R.location.protocol||gt(i,"https"),yt(i),(n?(t,r)=>{var n=new je;if(R.Image){let e=new Image;e.onload=z(S,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(S,n,"TestLoadImage: error",!1,r,e),e.onabort=z(S,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(S,n,"TestLoadImage: timeout",!1,r,e),R.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),S(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?S(r,0,!0,t):S(r,0,!1,t)}).catch(()=>{clearTimeout(i),S(r,0,!1,t)})})(i.toString(),r)):M(2),e.G=0,e.l&&e.l.sa(t),ur(e),Xt(e)}function ur(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(K(e.ka,t),K(e.ka,e.i),e.h.i.length=0,G(e.i),e.i.length=0),e.l.ra())}function hr(e,t,r){var n,i,s=r instanceof _?b(r):new _(r);return""!=s.g?(t&&(s.g=t+"."+s.g),mt(s,s.s)):(s=(n=R.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new _(null),s&&gt(i,s),t&&(i.g=t),n&&mt(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new x(new Rt({eb:r})):new x(e.pa)).Ha(e.J),t}function dr(){}function fr(){}function C(e,t){g.call(this),this.g=new Ht(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!L(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!L(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new D(this)}function gr(e){Le.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 mr(){Me.call(this),this.status=1}function D(e){this.g=e}(e=x.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||$e).g(),this.v=this.o?Ne(this.o):Ne($e),this.g.onreadystatechange=p(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void qt(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=R.FormData&&e instanceof R.FormData,0<=Array.prototype.indexOf.call(Bt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Kt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){qt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,m(this,"complete"),m(this,"abort"),Gt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Gt(this,!0)),x.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Ae(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Ht.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){M(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=hr(this,null,this.W),Jt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new w(this,this.j,t);let e=this.o;if(this.S&&(e?X(e=W(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Pt(i,this.m,e)),ut(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=qe(p(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,M(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),M(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),M(2)):(this.j.info("Failed to ping google.com"),M(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},fr.prototype.g=function(e,t){return new C(e,t)},s(C,g),C.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},C.prototype.close=function(){Wt(this.g)},C.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=xe(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Jt(r)},C.prototype.N=function(){this.g.l=null,delete this.j,Wt(this.g),delete this.g,C.aa.N.call(this)},s(gr,Le),s(mr,Me),s(D,dr),D.prototype.ua=function(){m(this.g,"a")},D.prototype.ta=function(e){m(this.g,new gr(e))},D.prototype.sa=function(e){m(this.g,new mr)},D.prototype.ra=function(){m(this.g,"b")},fr.prototype.createWebChannel=fr.prototype.g,C.prototype.send=C.prototype.o,C.prototype.open=C.prototype.m,Tr=function(){return new fr},Ir=Ve,br=v,_r={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,wr=ze,Ge.COMPLETE="complete",vr=Ge,(ke.EventType=Re).OPEN="a",Re.CLOSE="b",Re.ERROR="c",Re.MESSAGE="d",g.prototype.listen=g.prototype.K,yr=ke,x.prototype.listenOnce=x.prototype.L,x.prototype.getLastError=x.prototype.Ka,x.prototype.getLastErrorCode=x.prototype.Ba,x.prototype.getStatus=x.prototype.Z,x.prototype.getResponseJson=x.prototype.Oa,x.prototype.getResponseText=x.prototype.oa,x.prototype.send=x.prototype.ea,x.prototype.setWithCredentials=x.prototype.Ha,pr=x}).apply(void 0!==Er?Er:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let ue="@firebase/firestore",he="4.7.7";class l{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}}l.UNAUTHENTICATED=new l(null),l.GOOGLE_CREDENTIALS=new l("google-credentials-uid"),l.FIRST_PARTY=new l("first-party-uid"),l.MOCK_USER=new l("mock-user");let ce="11.3.0",de=new class{constructor(e){this.name=e,this._logLevel=ne,this._logHandler=se,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?re[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}("@firebase/firestore");function fe(){return de.logLevel}function p(e,...t){var r;de.logLevel<=c.DEBUG&&(r=t.map(me),de.debug(`Firestore (${ce}): `+e,...r))}function d(e,...t){var r;de.logLevel<=c.ERROR&&(r=t.map(me),de.error(`Firestore (${ce}): `+e,...r))}function ge(e,...t){var r;de.logLevel<=c.WARN&&(r=t.map(me),de.warn(`Firestore (${ce}): `+e,...r))}function me(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function T(e="Unexpected state"){var t=`FIRESTORE (${ce}) INTERNAL ASSERTION FAILED: `+e;throw d(t),new Error(t)}function y(e){e||T()}let b={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class I extends Y{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class f{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class pe{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class ye{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(l.UNAUTHENTICATED))}shutdown(){}}class ve{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 we{constructor(e){this.t=e,this.currentUser=l.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new f,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new f,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.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(p("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new f))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(p("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken),new pe(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e),new l(e)}}class _e{constructor(e,t,r){this.l=e,this.h=t,this.P=r,this.type="FirstParty",this.user=l.FIRST_PARTY,this.T=new Map}I(){return this.P?this.P():null}get headers(){this.T.set("X-Goog-AuthUser",this.l);var e=this.I();return e&&this.T.set("Authorization",e),this.h&&this.T.set("X-Goog-Iam-Authorization-Token",this.h),this.T}}class be{constructor(e,t,r){this.l=e,this.h=t,this.P=r}getToken(){return Promise.resolve(new _e(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable(()=>t(l.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Ie{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 Te{constructor(e,t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null,this.V=null,Rd._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.V=e.settings.appCheckToken)}start(t,r){y(void 0===this.o);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.R;return this.R=e.token,p("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{p("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.A.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.A.getImmediate({optional:!0}))?i(e):p("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.V?Promise.resolve(new Ie(this.V)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token),this.R=e.token,new Ie(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Ee(){return new TextEncoder}class Se{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 E(e,t){return e<t?-1:t<e?1:0}function xe(e,t){var r=Ee().encode(e),n=Ee().encode(t);for(let i=0;i<Math.min(r.length,n.length);i++){let e=E(r[i],n[i]);if(0!==e)return e}return E(r.length,n.length)}function Ae(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Ce(e){return e+"\0"}let De=-62135596800;class h{static now(){return h.fromMillis(Date.now())}static fromDate(e){return h.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new h(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<De)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?E(this.nanoseconds,e.nanoseconds):E(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds-De;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class g{static fromTimestamp(e){return new g(e)}static min(){return new g(new h(0,0))}static max(){return new g(new h(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let Ne="__name__";class ke{constructor(e,t,r){void 0===t?t=0:t>e.length&&T(),void 0===r?r=e.length-t:r>e.length-t&&T(),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===ke.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof ke?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=ke.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return E(t.length,r.length)}static compareSegments(e,t){var r=ke.isNumericId(e),n=ke.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?ke.extractNumericId(e).compare(ke.extractNumericId(t)):xe(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return ae.fromString(e.substring(4,e.length-2))}}class S extends ke{construct(e,t,r){return new S(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new I(b.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new S(r)}static emptyPath(){return new S([])}}let Re=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class v extends ke{construct(e,t,r){return new v(e,t,r)}static isValidIdentifier(e){return Re.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=v.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Ne}static keyField(){return new v([Ne])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.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 I(b.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new I(b.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 I(b.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new v(e)}static emptyPath(){return new v([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(S.fromString(e))}static fromName(e){return new x(S.fromString(e).popFirst(5))}static empty(){return new x(S.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===S.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return S.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new S(e.slice()))}}let Le=-1;class Me{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Oe(e){return e.fields.find(e=>2===e.kind)}function Ve(e){return e.fields.filter(e=>2!==e.kind)}Me.UNKNOWN_ID=-1;class Fe{constructor(e,t){this.fieldPath=e,this.kind=t}}class Pe{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Pe(0,qe.min())}}function Ue(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=g.fromTimestamp(1e9===n?new h(r+1,0):new h(r,n));return new qe(r,x.empty(),t)}function Be(e){return new qe(e.readTime,e.key,Le)}class qe{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new qe(g.min(),x.empty(),Le)}static max(){return new qe(g.max(),x.empty(),Le)}}function je(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:E(e.largestBatchId,t.largestBatchId)}let ze="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Ge{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Ke(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==ze)throw e;p("LocalStore","Unexpectedly lost primary lease")}class w{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&&T(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new w((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 w?t:w.resolve(t)}catch(e){return w.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):w.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):w.reject(t)}static resolve(r){return new w((e,t)=>{e(r)})}static reject(r){return new w((e,t)=>{t(r)})}static waitFor(e){return new w((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=w.resolve(!1);for(let r of e)t=t.next(e=>e?w.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 w((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 w((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let Qe="SimpleDb";class $e{static open(e,t,r,n){try{return new $e(t,e.transaction(n,r))}catch(e){throw new Xe(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.m=new f,this.transaction.oncomplete=()=>{this.m.resolve()},this.transaction.onabort=()=>{e.error?this.m.reject(new Xe(r,e.error)):this.m.resolve()},this.transaction.onerror=e=>{var t=rt(e.target.error);this.m.reject(new Xe(r,t))}}get p(){return this.m.promise}abort(e){e&&this.m.reject(e),this.aborted||(p(Qe,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}S(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Ze(t)}}class He{static delete(e){return p(Qe,"Removing database:",e),et(window.indexedDB.deleteDatabase(e)).toPromise()}static D(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!He.v()&&(e=H(),t=0<(t=He.C(e))&&t<10,r=0<(r=We(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static v(){var e;return"undefined"!=typeof process&&"YES"===(null==(e=process.__PRIVATE_env)?void 0:e.F)}static M(e,t){return e.store(t)}static C(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.O=r,12.2===He.C(H())&&d("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 N(s){return this.db||(p(Qe,"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 Xe(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 I(b.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 I(b.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 Xe(s,t))},i.onupgradeneeded=e=>{p(Qe,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.O.B(t,i.transaction,e.oldVersion,this.version).next(()=>{p(Qe,"Database upgrade to version "+this.version+" complete")})}})),this.L&&(this.db.onversionchange=e=>this.L(e)),this.db}k(t){this.L=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.N(r);let t=$e.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.S(),e)).catch(e=>(t.abort(e),w.reject(e))).toPromise();return e.catch(()=>{}),await t.p,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(p(Qe,"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 We(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Ye{constructor(e){this.q=e,this.$=!1,this.U=null}get isDone(){return this.$}get K(){return this.U}set cursor(e){this.q=e}done(){this.$=!0}W(e){this.U=e}delete(){return et(this.q.delete())}}class Xe extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Je(e){return"IndexedDbTransactionError"===e.name}class Ze{constructor(e){this.store=e}put(e,t){let r;return et(r=void 0!==t?(p(Qe,"PUT",this.store.name,e,t),this.store.put(t,e)):(p(Qe,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return p(Qe,"ADD",this.store.name,e,e),et(this.store.add(e))}get(t){return et(this.store.get(t)).next(e=>(void 0===e&&(e=null),p(Qe,"GET",this.store.name,t,e),e))}delete(e){return p(Qe,"DELETE",this.store.name,e),et(this.store.delete(e))}count(){return p(Qe,"COUNT",this.store.name),et(this.store.count())}G(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 w((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.j(e,(e,t)=>{r.push(t)}).next(()=>r)}}H(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new w((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}J(e,t){p(Qe,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Y=!1,this.cursor(r));return this.j(r,(e,t,r)=>r.delete())}Z(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.j(n,t)}X(i){let e=this.cursor({});return new w((r,n)=>{e.onerror=e=>{var t=rt(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}j(e,s){let a=[];return new w((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Ye(n),r=s(n.primaryKey,n.value,t);if(r instanceof w){let e=r.catch(e=>(t.done(),w.reject(e)));a.push(e)}t.isDone?i():null===t.K?n.continue():n.continue(t.K)}else i()}}).next(()=>w.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.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function et(e){return new w((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=rt(e.target.error);n(t)}})}let tt=!1;function rt(e){let t=He.C(H());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 I("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 tt||(tt=!0,setTimeout(()=>{throw e},0)),e}}return e}let nt="IndexBackfiller";class it{constructor(e,t){this.asyncQueue=e,this.ee=t,this.task=null}start(){this.te(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}te(e){p(nt,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ee.ne();p(nt,"Documents written: "+e)}catch(e){Je(e)?p(nt,"Ignoring IndexedDB error during index backfill: ",e):await Ke(e)}await this.te(6e4)})}}class st{constructor(e,t){this.localStore=e,this.persistence=t}async ne(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.re(e,t))}re(e,t){let r=new Set,n=t,i=!0;return w.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return p(nt,"Processing collection: "+t),this.ie(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}ie(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.se(r,e)).next(e=>(p(nt,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}se(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Be(t);0<je(r,n)&&(n=r)}),new qe(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class at{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.oe(e),this._e=e=>t.writeSequenceNumber(e))}oe(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this._e&&this._e(e),e}}let ot=at.ae=-1;function lt(e){return null==e}function ut(e){return 0===e&&1/e==-1/0}function ht(e){return"number"==typeof e&&Number.isInteger(e)&&!ut(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let ct="";function o(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=dt(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 ct:r+="";break;default:r+=e}}return r})(e.get(r),t);return dt(t)}function dt(e){return e+ct+""}function ft(r){let e=r.length;if(y(2<=e),2===e)return y(r.charAt(0)===ct&&""===r.charAt(1)),S.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(ct,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&T(),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:T()}a=t+2}return new S(n)}let gt="remoteDocuments",mt="owner",pt="owner",yt="mutationQueues",vt="mutations",wt="batchId",_t="userMutationsIndex",bt=["userId","batchId"];function It(e,t){return[e,o(t)]}function Tt(e,t,r){return[e,o(t),r]}let Et={},St="documentMutations",xt="remoteDocumentsV14",At=["prefixPath","collectionGroup","readTime","documentId"],Ct="documentKeyIndex",Dt=["prefixPath","collectionGroup","documentId"],Nt="collectionGroupIndex",kt=["collectionGroup","readTime","prefixPath","documentId"],Rt="remoteDocumentGlobal",Lt="remoteDocumentGlobalKey",Mt="targets",Ot="queryTargetsIndex",Vt=["canonicalId","targetId"],Ft="targetDocuments",Pt=["targetId","path"],Ut="documentTargetsIndex",Bt=["path","targetId"],qt="targetGlobalKey",jt="targetGlobal",zt="collectionParents",Gt=["collectionId","parent"],Kt="clientMetadata",Qt="bundles",$t="namedQueries",Ht="indexConfiguration",Wt="collectionGroupIndex",Yt="indexState",Xt=["indexId","uid"],Jt="sequenceNumberIndex",Zt=["uid","sequenceNumber"],er="indexEntries",tr=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],rr="documentKeyIndex",nr=["indexId","uid","orderedDocumentKey"],ir="documentOverlays",sr=["userId","collectionPath","documentId"],ar="collectionPathOverlayIndex",or=["userId","collectionPath","largestBatchId"],lr="collectionGroupOverlayIndex",ur=["userId","collectionGroup","largestBatchId"],hr="globals",cr=[yt,vt,St,gt,Mt,mt,jt,Ft,Kt,Rt,zt,Qt,$t],dr=[...cr,ir],fr=[yt,vt,St,xt,Mt,mt,jt,Ft,Kt,Rt,zt,Qt,$t,ir],gr=fr,mr=[...gr,Ht,Yt,er],Sr=mr,xr=[...mr,hr];class Ar extends Ge{constructor(e,t){super(),this.ue=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return He.M(r.ue,t)}function Cr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Dr(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Nr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Rr.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Rr.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Rr.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 kr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new kr(this.root,e,this.comparator,!1)}getReverseIterator(){return new kr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new kr(this.root,e,this.comparator,!0)}}class kr{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 Rr{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Rr.RED,this.left=null!=n?n:Rr.EMPTY,this.right=null!=i?i:Rr.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new Rr(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 Rr.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 Rr.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,Rr.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,Rr.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 T();if(this.right.isRed())throw T();var e=this.left.check();if(e!==this.right.check())throw T();return e+(this.isRed()?0:1)}}Rr.EMPTY=null,Rr.RED=!0,Rr.BLACK=!1,Rr.EMPTY=new class{constructor(){this.size=0}get key(){throw T()}get value(){throw T()}get color(){throw T()}get left(){throw T()}get right(){throw T()}copy(e,t,r,n,i){return this}insert(e,t,r){return new Rr(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 C{constructor(e){this.comparator=e,this.data=new A(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 Lr(this.data.getIterator())}getIteratorFrom(e){return new Lr(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 C))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 C(this.comparator);return t.data=e,t}}class Lr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Mr(e){return e.hasNext()?e.getNext():void 0}class Or{constructor(e){(this.fields=e).sort(v.comparator)}static empty(){return new Or([])}unionWith(e){let t=new C(v.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new Or(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Ae(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class Vr extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class D{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 Vr("Invalid base64 string: "+e):e}})(e);return new D(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 D(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 E(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}D.EMPTY_BYTE_STRING=new D("");let Fr=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Pr(t){if(y(!!t),"string"!=typeof t)return{seconds:N(t.seconds),nanos:N(t.nanos)};{let e=0;var r=Fr.exec(t),r=(y(!!r),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 N(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function Ur(e){return"string"==typeof e?D.fromBase64String(e):D.fromUint8Array(e)}let Br="server_timestamp",qr="__type__",jr="__previous_value__",zr="__local_write_time__";function Gr(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[qr])?void 0:t.stringValue)===Br}function Kr(e){var t=e.mapValue.fields[jr];return Gr(t)?Kr(t):t}function Qr(e){var t=Pr(e.mapValue.fields[zr].timestampValue);return new h(t.seconds,t.nanos)}class $r{constructor(e,t,r,n,i,s,a,o,l){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}}let Hr="(default)";class Wr{constructor(e,t){this.projectId=e,this.database=t||Hr}static empty(){return new Wr("","")}get isDefaultDatabase(){return this.database===Hr}isEqual(e){return e instanceof Wr&&e.projectId===this.projectId&&e.database===this.database}}let Yr="__type__",Xr="__max__",Jr={mapValue:{fields:{__type__:{stringValue:Xr}}}},Zr="__vector__",en="value",tn={nullValue:"NULL_VALUE"};function rn(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Gr(e)?4:vn(e)?9007199254740991:pn(e)?10:11:T()}function nn(t,r){if(t===r)return!0;var n,i,s,a,o,e=rn(t);if(e!==rn(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return Qr(t).isEqual(Qr(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=Pr(i.timestampValue),o=Pr(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,Ur(t.bytesValue).isEqual(Ur(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,N((n=t).geoPointValue.latitude)===N(s.geoPointValue.latitude)&&N(n.geoPointValue.longitude)===N(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(u=t)&&"integerValue"in n?N(u.integerValue)===N(n.integerValue):"doubleValue"in u&&"doubleValue"in n&&((a=N(u.doubleValue))===(o=N(n.doubleValue))?ut(a)===ut(o):isNaN(a)&&isNaN(o));case 9:return Ae(t.arrayValue.values||[],r.arrayValue.values||[],nn);case 10:case 11:var l=t,u=r,h=l.mapValue.fields||{},c=u.mapValue.fields||{};if(Cr(h)!==Cr(c))return!1;for(let e in h)if(h.hasOwnProperty(e)&&(void 0===c[e]||!nn(h[e],c[e])))return!1;return!0;default:return T()}}function sn(e,t){return void 0!==(e.values||[]).find(e=>nn(e,t))}function an(e,n){if(e===n)return 0;var i,s,a,o,l,u,h,c,t=rn(e),r=rn(n);if(t!==r)return E(t,r);switch(t){case 0:case 9007199254740991:return 0;case 1:return E(e.booleanValue,n.booleanValue);case 2:return u=n,h=N((l=e).integerValue||l.doubleValue),c=N(u.integerValue||u.doubleValue),h<c?-1:c<h?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return on(e.timestampValue,n.timestampValue);case 4:return on(Qr(e),Qr(n));case 5:return xe(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,u=n.bytesValue,h=Ur(l),c=Ur(u),h.compareTo(c);case 7:var d=e.referenceValue,f=n.referenceValue,g=d.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=E(g[t],m[t]);if(0!==e)return e}return E(g.length,m.length);case 8:return d=e.geoPointValue,f=n.geoPointValue,0!==(o=E(N(d.latitude),N(f.latitude)))?o:E(N(d.longitude),N(f.longitude));case 9:return ln(e.arrayValue,n.arrayValue);case 10:return p=e.mapValue,i=n.mapValue,o=p.fields||{},s=i.fields||{},o=null==(o=o[en])?void 0:o.arrayValue,s=null==(s=s[en])?void 0:s.arrayValue,0!==(a=E((null==(a=null==o?void 0:o.values)?void 0:a.length)||0,(null==(a=null==s?void 0:s.values)?void 0:a.length)||0))?a:ln(o,s);case 11:var p=e.mapValue,y=n.mapValue;if(p===Jr.mapValue&&y===Jr.mapValue)return 0;if(p===Jr.mapValue)return 1;if(y===Jr.mapValue)return-1;var v=p.fields||{},w=Object.keys(v),_=y.fields||{},b=Object.keys(_);w.sort(),b.sort();for(let r=0;r<w.length&&r<b.length;++r){let e=xe(w[r],b[r]);if(0!==e)return e;var I=an(v[w[r]],_[b[r]]);if(0!==I)return I}return E(w.length,b.length);default:throw T()}}function on(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?E(e,t):(r=Pr(e),n=Pr(t),0!==(i=E(r.seconds,n.seconds))?i:E(r.nanos,n.nanos))}function ln(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=an(r[i],n[i]);if(e)return e}return E(r.length,n.length)}function un(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=Pr(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>Ur(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):T()}(e)}function hn(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function cn(e){return!!e&&"integerValue"in e}function dn(e){return!!e&&"arrayValue"in e}function fn(e){return e&&"nullValue"in e}function gn(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function mn(e){return e&&"mapValue"in e}function pn(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[Yr])?void 0:t.stringValue)===Zr}function yn(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){let r={mapValue:{fields:{}}};return Dr(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=yn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=yn(t.arrayValue.values[e]);return r}return Object.assign({},t)}function vn(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Xr}let wn={mapValue:{fields:{[Yr]:{stringValue:Zr},[en]:{arrayValue:{}}}}};function _n(e,t){var r=an(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function bn(e,t){var r=an(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class In{constructor(e){this.value=e}static empty(){return new In({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!mn(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()]=yn(t)}setAll(e){let r=v.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()]=yn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());mn(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return nn(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)];mn(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Dr(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new In(yn(this.value))}}class k{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 k(e,0,g.min(),g.min(),g.min(),In.empty(),0)}static newFoundDocument(e,t,r,n){return new k(e,1,t,g.min(),r,n,0)}static newNoDocument(e,t){return new k(e,2,t,g.min(),g.min(),In.empty(),0)}static newUnknownDocument(e,t){return new k(e,3,t,g.min(),g.min(),In.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(g.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=In.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=In.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=g.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 k&&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 k(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class Tn{constructor(e,t){this.position=e,this.inclusive=t}}function En(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):an(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Sn(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(!nn(e.position[r],t.position[r]))return!1;return!0}class xn{constructor(e,t="asc"){this.field=e,this.dir=t}}class An{}class R extends An{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 Mn(e,t,r):"array-contains"===t?new Pn(e,r):"in"===t?new Un(e,r):"not-in"===t?new Bn(e,r):"array-contains-any"===t?new qn(e,r):new R(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?On:Vn)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(an(t,this.value)):null!==t&&rn(this.value)===rn(t)&&this.matchesComparison(an(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 T()}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class L extends An{constructor(e,t){super(),this.filters=e,this.op=t,this.ce=null}static create(e,t){return new L(e,t)}matches(t){return Cn(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 Cn(e){return"and"===e.op}function Dn(e){return"or"===e.op}function Nn(e){return kn(e)&&Cn(e)}function kn(e){for(var t of e.filters)if(t instanceof L)return!1;return!0}function Rn(e,t){var r=e.filters.concat(t);return L.create(r,e.op)}function Ln(e){return e instanceof R?`${(t=e).field.canonicalString()} ${t.op} `+un(t.value):e instanceof L?(t=e).op.toString()+" {"+t.getFilters().map(Ln).join(" ,")+"}":"Filter";var t}class Mn extends R{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class On extends R{constructor(e,t){super(e,"in",t),this.keys=Fn(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class Vn extends R{constructor(e,t){super(e,"not-in",t),this.keys=Fn(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function Fn(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>x.fromName(e.referenceValue))}class Pn extends R{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return dn(t)&&sn(t.arrayValue,this.value)}}class Un extends R{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&sn(this.value.arrayValue,t)}}class Bn extends R{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!sn(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&!sn(this.value.arrayValue,t)}}class qn extends R{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!dn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>sn(this.value.arrayValue,e))}}class jn{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.le=null}}function zn(e,t=null,r=[],n=[],i=null,s=null,a=null){return new jn(e,t,r,n,i,s,a)}function Gn(e){var t=e;if(null===t.le){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 R?e.field.canonicalString()+e.op.toString()+un(e.value):Nn(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(","),lt(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>un(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>un(e)).join(",")),t.le=e}return t.le}function Kn(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 R?(r=e,(s=t)instanceof R&&r.op===s.op&&r.field.isEqual(s.field)&&nn(r.value,s.value)):e instanceof L?(r=e,(i=t)instanceof L&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void T();var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Sn(e.startAt,t.startAt)&&Sn(e.endAt,t.endAt)}function Qn(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function $n(e,t){return e.filters.filter(e=>e instanceof R&&e.field.isEqual(t))}function Hn(e,r,n){let i=tn,s=!0;for(let n of $n(e,r)){let e=tn,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?tn:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?hn(Wr.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?pn(a)?wn:{mapValue:{}}:T();break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=tn}_n({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];_n({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Wn(e,r,n){let i=Jr,s=!0;for(let n of $n(e,r)){let e=Jr,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?hn(Wr.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?wn:"mapValue"in a?pn(a)?{mapValue:{}}:Jr:T(),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=Jr}0<bn({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<bn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Yn{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.he=null,this.Pe=null,this.Te=null,this.startAt,this.endAt}}function Xn(e,t,r,n,i,s,a,o){return new Yn(e,t,r,n,i,s,a,o)}function Jn(e){return new Yn(e)}function Zn(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 ei(e){return null!==e.collectionGroup}function ti(e){let n=e;if(null===n.he){n.he=[];let t=new Set;for(var i of n.explicitOrderBy)n.he.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 C(v.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.he.push(new xn(e,r))}),t.has(v.keyField().canonicalString())||n.he.push(new xn(v.keyField(),r))}return n.he}function ri(e){var t=e;return t.Pe||(t.Pe=((e,t)=>{if("F"===e.limitType)return zn(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 xn(e.field,t)});var r=e.endAt?new Tn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new Tn(e.startAt.position,e.startAt.inclusive):null;return zn(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,ti(e))),t.Pe}function ni(e,t){var r=e.filters.concat([t]);return new Yn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function ii(e,t,r){return new Yn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function si(e,t){return Kn(ri(e),ri(t))&&e.limitType===t.limitType}function ai(e){return Gn(ri(e))+"|lt:"+e.limitType}function oi(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=>Ln(e)).join(", ")}]`),lt(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=>un(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>un(e)).join(","):t})`})(ri(e))}; limitType=${e.limitType})`}function li(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of ti(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=ti(s),i=En(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=ti(s),i=En(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function ui(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function hi(e){return(t,r)=>{let n=!1;for(var i of ti(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?an(n,i):T()})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return T()}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class ci{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){Dr(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Nr(this.inner)}size(){return this.innerSize}}let di=new A(x.comparator);let fi=new A(x.comparator);function gi(...e){let t=fi;for(var r of e)t=t.insert(r.key,r);return t}function mi(e){let r=fi;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function pi(){return new ci(e=>e.toString(),(e,t)=>e.isEqual(t))}let yi=new A(x.comparator),vi=new C(x.comparator);function M(...e){let t=vi;for(var r of e)t=t.add(r);return t}let wi=new C(E);function _i(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:ut(t)?"-0":t}}function bi(e){return{integerValue:""+e}}function Ii(e,t){return ht(t)?bi(t):_i(e,t)}class Ti{constructor(){this._=void 0}}function Ei(e,t){return e instanceof Ni?cn(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Si extends Ti{}class xi extends Ti{constructor(e){super(),this.elements=e}}function Ai(e,t){var r=Ri(t);for(let t of e.elements)r.some(e=>nn(e,t))||r.push(t);return{arrayValue:{values:r}}}class Ci extends Ti{constructor(e){super(),this.elements=e}}function Di(e,t){let r=Ri(t);for(let t of e.elements)r=r.filter(e=>!nn(e,t));return{arrayValue:{values:r}}}class Ni extends Ti{constructor(e,t){super(),this.serializer=e,this.Ie=t}}function ki(e){return N(e.integerValue||e.doubleValue)}function Ri(e){return dn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Li{constructor(e,t){this.field=e,this.transform=t}}class Mi{constructor(e,t){this.version=e,this.transformResults=t}}class O{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new O}static exists(e){return new O(void 0,e)}static updateTime(e){return new O(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 Oi(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class Vi{}function Fi(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new Ki(e.key,O.none()):new Bi(e.key,e.data,O.none());{var n,i=e.data,s=In.empty();let t=new C(v.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 qi(e.key,s,new Or(t.toArray()),O.none())}}function Pi(e,t,r,n){return e instanceof Bi?(s=t,a=r,o=n,Oi((i=e).precondition,s)?(l=i.value.clone(),u=Gi(i.fieldTransforms,o,s),l.setAll(u),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof qi?(i=t,o=r,s=n,Oi((a=e).precondition,i)?(u=Gi(a.fieldTransforms,s,i),(l=i.data).setAll(ji(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,Oi(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,u}function Ui(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&&Ae(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof xi&&t instanceof xi||e instanceof Ci&&t instanceof Ci?Ae(e.elements,t.elements,nn):e instanceof Ni&&t instanceof Ni?nn(e.Ie,t.Ie):e instanceof Si&&t instanceof Si)))))&&(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 Bi extends Vi{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 qi extends Vi{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 ji(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 zi(e,t,r){var n,i,s,a=new Map;y(e.length===r.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 xi?Ai(n,i):n instanceof Ci?Di(n,i):s))}return a}function Gi(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 Si?(o=o,u=a,h={fields:{[qr]:{stringValue:Br},[zr]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(u=u&&Gr(u)?Kr(u):u)&&(h.fields[jr]=u),{mapValue:h}):s instanceof xi?Ai(s,a):s instanceof Ci?Di(s,a):(h=Ei(o=s,a),l=ki(h)+ki(o.Ie),cn(h)&&cn(o.Ie)?bi(l):_i(o.serializer,l))))}return c}class Ki extends Vi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Qi extends Vi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class $i{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 Bi?(a=n,o=i,h=(s=r).value.clone(),l=zi(s.fieldTransforms,a,o.transformResults),h.setAll(l),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof qi?(s=n,a=i,Oi((o=r).precondition,s)?(l=zi(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(ji(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=Pi(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=Pi(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=pi();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=Fi(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(g.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),M())}isEqual(e){return this.batchId===e.batchId&&Ae(this.mutations,e.mutations,(e,t)=>Ui(e,t))&&Ae(this.baseMutations,e.baseMutations,(e,t)=>Ui(e,t))}}class Hi{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length);let n=yi;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Hi(e,t,r,n)}}class Wi{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{
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Nd,kd){try{!(function(){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let i=n(Nd),s=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let 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(s(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,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 B;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class B extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let q=function(e){var t=s(e);return a.encodeByteArray(t,!0)},j=function(e){return q(e).replace(/\./g,"")},K=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};let 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.")})().__FIREBASE_DEFAULTS__,G=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},Q=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&K(e[1]);return t&&JSON.parse(t)}},$=()=>{try{return z()||G()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}};function H(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function W(){return!(()=>{var e=null==(e=$())?void 0:e.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}})()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class Y extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,Y.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,X.prototype.create)}}class X{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(J,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new Y(i,s,r)}}let J=/\{\$([^}]+)}/g;function Z(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(!Z(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 _(e){return e&&e._delegate?e._delegate:e}class te{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}}var c;(t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT";let re={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},ne=c.INFO,ie={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},se=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=ie[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};var ae,oe,pr,yr,vr,wr,_r,br,Ir,Tr,m,le,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Er=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return m(h(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var c=o(0),l=o(1),d=o(16777216);function f(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function g(e){return-1==e.h}function m(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new u(r,~e.h).add(l)}function p(e,t){return e.add(m(t))}function y(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(c,c);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30<e.g.length){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!f(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=p(e,i.j(t)),new v(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);g(a)||0<a.l(e);)a=(s=h(r-=n)).j(t);f(s)&&(s=l),i=i.add(s),e=p(e,a)}return new v(i,e)}function _(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new u(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(f(this))return"0";if(g(this))return"-"+m(this).toString(e);for(var t=h(Math.pow(e,6)),r=this,n="";;){var i=w(r,t).g,s=((0<(r=p(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(f(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return g(e=p(this,e))?-1:f(e)?0:1},e.abs=function(){return g(this)?m(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(f(this)||f(e))return c;if(g(this))return g(e)?m(this).j(m(e)):m(m(this).j(e));if(g(e))return m(this.j(m(e)));if(this.l(d)<0&&e.l(d)<0)return h(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,y(r,2*n+2*i),r[2*n+2*i+1]+=s*l,y(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,y(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,y(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new u(r,0)},e.A=function(e){return w(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new u(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new u(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new u(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,oe=r,u.prototype.multiply=u.prototype.j,u.prototype.modulo=u.prototype.A,u.prototype.compare=u.prototype.l,u.prototype.toNumber=u.prototype.m,u.prototype.getBits=u.prototype.i,u.fromNumber=h,u.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 m(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=h(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=h(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(h(o));return i},ae=u}).apply(void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,N="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var k=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Er&&Er];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=k;t=t.split(".");for(var i=0;i<t.length-1;i++){var P=t[i];if(!(P in n))break e;n=n[P]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&N(n,t,{configurable:!0,writable:!0,value:r})}var U=U||{},R=this||self;function B(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function u(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function q(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function p(e,t,r){return(p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?q:j).apply(null,arguments)}function K(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function z(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 G(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(B(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function L(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=R.navigator;return(e=e&&e.userAgent)||""}function Q(e){return Q[" "](e),e}Q[" "]=function(){};var $=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function H(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function W(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function X(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var J=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=J.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=R.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{R.setTimeout(()=>{throw e},0)})(e)}var t=J;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function h(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}h.prototype.s=!1,h.prototype.ma=function(){this.s||(this.s=!0,this.N())},h.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!R.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};R.addEventListener("test",r,t),R.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if($){e:{try{Q(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},f=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function ue(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function he(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),he(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function fe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=_e(n);return t&&t[f]?t.L(r,n,u(i)?!!i.capture:!!i,s):ge(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)fe(e,t[s],r,n,i);return null}return r=_e(r),e&&e[f]?e.K(t,r,u(n)?!!n.capture:!!n,i):ge(e,t,r,!1,n,i)}function ge(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=u(i)?!!i.capture:!!i,o=ve(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ye;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(pe(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function me(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[f]?ue(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(pe(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ve(t))?(ue(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function pe(e){return e in de?de[e]:de[e]="on"+e}function ye(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&me(e),r.call(n,t))}function ve(e){return(e=e[ce])instanceof le?e:null}var we="__closure_events_fn_"+(1e9*Math.random()>>>0);function _e(t){return"function"==typeof t?t:(t[we]||(t[we]=function(e){return t.handleEvent(e)}),t[we])}function g(){h.call(this),this.i=new le(this),(this.M=this).F=null}function m(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,X(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&ue(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=p(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=p(e.handleEvent,e)}return 2147483647<Number(t)?-1:R.setTimeout(e,t||0)}s(g,h),g.prototype[f]=!0,g.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=u(i)?!!i.capture:!!i,n=_e(n),t&&t[f]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=he(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&ve(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?he(r,n,i,s):t)?r[t]:null)&&me(n)}(this,e,t,r,n)},g.prototype.N=function(){if(g.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},g.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},g.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends h{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(R.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function y(e){h.call(this),this.h=e,this.g={}}s(y,h);var Ee=[];function Se(e){H(e.g,function(e,t){this.g.hasOwnProperty(t)&&me(e)},e),e.g={}}y.prototype.N=function(){y.aa.N.call(this),Se(this)},y.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var xe=R.JSON.stringify,Ae=R.JSON.parse,Ce=class{stringify(e){return R.JSON.stringify(e,void 0)}parse(e){return R.JSON.parse(e,void 0)}};function De(){}function Ne(e){return e.h||(e.h=e.i())}function ke(){}De.prototype.h=null;var Re={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Le(){c.call(this,"d")}function Me(){c.call(this,"c")}s(Le,c),s(Me,c);var v={},Oe=null;function Ve(){return Oe=Oe||new g}function Fe(e){c.call(this,v.La,e)}function Pe(){var e=Ve();m(e,new Fe(e))}function Ue(e,t){c.call(this,v.STAT_EVENT,e),this.stat=t}function M(e){var t=Ve();m(t,new Ue(t,e))}function Be(e,t){c.call(this,v.Ma,e),this.size=t}function qe(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return R.setTimeout(function(){e()},t)}function je(){this.g=!0}function O(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return xe(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}v.La="serverreachability",s(Fe,c),v.STAT_EVENT="statevent",s(Ue,c),v.Ma="timingevent",s(Be,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var Ke={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},ze={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function Ge(){}function w(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new y(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new Qe}function Qe(){this.i=null,this.g="",this.h=!1}s(Ge,De),Ge.prototype.g=function(){return new XMLHttpRequest},Ge.prototype.i=function(){return{}};var $e=new Ge,He={},We={};function Ye(e,t,r){e.L=1,e.v=yt(b(t)),e.m=r,e.P=!0,Xe(e,null)}function Xe(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Nt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new Qe,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(p(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,u,h,c,s=0;s<i.length;s++){var d=fe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?W(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Pe(),a=e.i,o=e.u,l=e.A,u=e.l,h=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+u+") [attempt "+h+"]: "+o+"\n"+l+"\n"+e})}function Je(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=qe(p(e.ba,e),t)}function tt(e){e.B&&(R.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function V(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Se(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&&lt(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),M(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=qe(p(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else A(r,11)}else if(!e.K&&r.g!=e||ar(r),!L(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,u,h,c,d,f,g,m=i[t];r.T=m[0],m=m[1],2==r.G?"c"==m[0]?(r.K=m[1],r.ia=m[2],null!=(s=m[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=m[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=m[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=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&&(ut(h,h.h),h.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=hr(n,n.J?n.ia:null,n.W),d.K?(ht(n.h,d),f=d,(g=n.L)&&(f.I=g),f.B&&(tt(f),Ze(f)),n.g=d):rr(n),0<r.i.length&&Jt(r)):"stop"!=m[0]&&"close"!=m[0]||A(r,7):3==r.G&&("stop"==m[0]||"close"==m[0]?"stop"==m[0]?A(r,7):Wt(r):"noop"!=m[0]&&r.l&&r.l.ta(m),r.v=0)}Pe()}catch(e){}}w.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},w.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Qt(this.g)))){this.J||4!=t||7==r||Pe(),tt(this);var n=this.g.Z();this.X=n;t:if(Je(this)){var i=Qt(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){V(this),rt(this);var o="";break t}this.h.i=new R.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,S=this.i,x=this.u,A=this.A,C=this.l,D=this.R,N=t,k=n,S.info(function(){return"XMLHTTP RESP ("+C+") [ attempt "+D+"]: "+x+"\n"+A+"\n"+N+" "+k}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,u=this.g;if((l=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!L(l)){var h=l;break t}}h=null}if(!(n=h)){this.o=!1,this.s=3,M(12),V(this),rt(this);break e}O(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?We:(T=Number(I.substring(T,E)),isNaN(T)?He:(E+=1)+T>I.length?We:(I=I.slice(E,E+T),b.C=E+T,I)))==We){4==t&&(this.s=4,M(14),n=!1),O(this.i,this.l,null,"[Incomplete Response]");break}if(c==He){this.s=4,M(15),O(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}O(this.i,this.l,c,null),nt(this,c)}Je(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,M(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,M(11)):(O(this.i,this.l,o,"[Invalid Chunked Response]"),V(this),rt(this))}else O(this.i,this.l,o,null),nt(this,o);4==t&&V(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var f=this.g;var g,m,p,y={};f=(f.g&&2<=F(f)&&f.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<f.length;e++)L(f[e])||(g=(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})(f[e]),m=g[0],"string"==typeof(g=g[1])&&(g=g.trim(),p=y[m]||[],(y[m]=p).push(g)));var v,w=y,_=function(e){return e.join(", ")};for(v in w)_.call(void 0,w[v],v,w)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,M(12)):(this.s=0,M(13)),V(this),rt(this)}}}}catch(e){}var b,I,T,E,S,x,A,C,D,N,k},w.prototype.cancel=function(){this.J=!0,V(this)},w.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Pe(),M(17)),V(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=R.PerformanceNavigationTiming?0<(e=R.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(R.chrome&&R.chrome.loadTimes&&R.chrome.loadTimes()&&R.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ut(e,t){e.g?e.g.add(t):e.h=t}function ht(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(B(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(B(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(B(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var ft=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function _(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof _?(this.h=e.h,gt(this,e.j),this.o=e.o,this.g=e.g,mt(this,e.s),this.l=e.l,t=e.i,(r=new At).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),pt(this,r),this.m=e.m):e&&(t=String(e).match(ft))?(this.h=!1,gt(this,t[1]||"",!0),this.o=vt(t[2]||""),this.g=vt(t[3]||"",!0),mt(this,t[4]),this.l=vt(t[5]||"",!0),pt(this,t[6]||"",!0),this.m=vt(t[7]||"")):(this.h=!1,this.i=new At(null,this.h))}function b(e){return new _(e)}function gt(e,t,r){e.j=r?vt(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function mt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function pt(e,t,r){var n,i;t instanceof At?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(Ct(this,t),Nt(this,r,e))},n)),n.j=i):(r||(t=wt(t,St)),e.i=new At(t,e.h))}function I(e,t,r){e.i.set(t,r)}function yt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function vt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function wt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,_t),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function _t(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}_.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(wt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(wt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(wt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",wt(r,xt)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,St=/[#\?@]/g,xt=/#/g;function At(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function Ct(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Dt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Nt(e,t,r){Ct(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),z(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function S(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function kt(){this.g=new Ce}function Rt(e){this.l=e.Ub||null,this.j=e.eb||!1}function Lt(e,t){g.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Mt(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Ot(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Vt(e)}function Vt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return H(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Pt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function x(e){g.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=At.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Dt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Dt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Rt,De),Rt.prototype.g=function(){return new Lt(this.l,this.j)},Rt.prototype.i=(bt={},function(){return bt}),s(Lt,g),(e=Lt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Vt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||R).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Ot(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Vt(this)),this.g)&&(this.readyState=3,Vt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==R.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Mt(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Ot:Vt)(this),3==this.readyState)&&Mt(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Ot(this))},e.Qa=function(e){this.g&&(this.response=e,Ot(this))},e.ga=function(){this.g&&Ot(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Lt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(x,g);var Ut=/^https?$/i,Bt=["POST","PUT"];function qt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),zt(e)}function jt(e){e.A||(e.A=!0,m(e,"complete"),m(e,"error"))}function Kt(e){if(e.h&&void 0!==U&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(m(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(ft)[1]||null)&&R.self&&R.self.location&&(n=R.self.location.protocol.slice(0,-1)),r=!Ut.test(n?n.toLowerCase():"")),t=r),t)m(e,"complete"),m(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{zt(e)}}}function zt(e,t){if(e.g){Gt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||m(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Gt(e){e.I&&(R.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Qt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function $t(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Ht(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=$t("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=$t("baseRetryDelayMs",5e3,e),this.cb=$t("retryDelaySeedMs",1e4,e),this.Wa=$t("forwardChannelMaxRetries",2,e),this.wa=$t("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new kt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Wt(e){if(Xt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new w(e,e.j,t)).L=2,t.v=yt(b(r)),r=!1,R.navigator&&R.navigator.sendBeacon)try{r=R.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&R.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}ur(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Xt(e){Yt(e),e.u&&(R.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&R.clearTimeout(e.s),e.s=null)}function Jt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Pt(n,e.m,e.o),r=new w(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ut(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&H(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?p(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;u(e)&&(r=xe(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=qe(p(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(R.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new w(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Pt(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=yt(b(t)),r.m=null,r.P=!0,Xe(r,e)}function ar(e){null!=e.C&&(R.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ht(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,m(a=Ve(),new Be(a,s)),Jt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=qe(p(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:A(e,5);break;case 4:A(e,10);break;case 3:A(e,6);break;default:A(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function A(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=p(e.fb,e),n=!(i=e.Xa),i=new _(i||"//www.google.com/images/cleardot.gif"),R.location&&"http"==R.location.protocol||gt(i,"https"),yt(i),(n?(t,r)=>{var n=new je;if(R.Image){let e=new Image;e.onload=K(S,n,"TestLoadImage: loaded",!0,r,e),e.onerror=K(S,n,"TestLoadImage: error",!1,r,e),e.onabort=K(S,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=K(S,n,"TestLoadImage: timeout",!1,r,e),R.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),S(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?S(r,0,!0,t):S(r,0,!1,t)}).catch(()=>{clearTimeout(i),S(r,0,!1,t)})})(i.toString(),r)):M(2),e.G=0,e.l&&e.l.sa(t),ur(e),Xt(e)}function ur(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(G(e.ka,t),G(e.ka,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.ra())}function hr(e,t,r){var n,i,s=r instanceof _?b(r):new _(r);return""!=s.g?(t&&(s.g=t+"."+s.g),mt(s,s.s)):(s=(n=R.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new _(null),s&&gt(i,s),t&&(i.g=t),n&&mt(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new x(new Rt({eb:r})):new x(e.pa)).Ha(e.J),t}function dr(){}function fr(){}function C(e,t){g.call(this),this.g=new Ht(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!L(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!L(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new D(this)}function gr(e){Le.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 mr(){Me.call(this),this.status=1}function D(e){this.g=e}(e=x.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||$e).g(),this.v=this.o?Ne(this.o):Ne($e),this.g.onreadystatechange=p(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void qt(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=R.FormData&&e instanceof R.FormData,0<=Array.prototype.indexOf.call(Bt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Gt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){qt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,m(this,"complete"),m(this,"abort"),zt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),zt(this,!0)),x.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?Kt(this):this.bb())},e.bb=function(){Kt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Ae(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Ht.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){M(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=hr(this,null,this.W),Jt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new w(this,this.j,t);let e=this.o;if(this.S&&(e?X(e=W(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Pt(i,this.m,e)),ut(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=qe(p(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,M(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),M(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),M(2)):(this.j.info("Failed to ping google.com"),M(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},fr.prototype.g=function(e,t){return new C(e,t)},s(C,g),C.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},C.prototype.close=function(){Wt(this.g)},C.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=xe(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Jt(r)},C.prototype.N=function(){this.g.l=null,delete this.j,Wt(this.g),delete this.g,C.aa.N.call(this)},s(gr,Le),s(mr,Me),s(D,dr),D.prototype.ua=function(){m(this.g,"a")},D.prototype.ta=function(e){m(this.g,new gr(e))},D.prototype.sa=function(e){m(this.g,new mr)},D.prototype.ra=function(){m(this.g,"b")},fr.prototype.createWebChannel=fr.prototype.g,C.prototype.send=C.prototype.o,C.prototype.open=C.prototype.m,Tr=function(){return new fr},Ir=Ve,br=v,_r={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},Ke.NO_ERROR=0,Ke.TIMEOUT=8,Ke.HTTP_ERROR=6,wr=Ke,ze.COMPLETE="complete",vr=ze,(ke.EventType=Re).OPEN="a",Re.CLOSE="b",Re.ERROR="c",Re.MESSAGE="d",g.prototype.listen=g.prototype.K,yr=ke,x.prototype.listenOnce=x.prototype.L,x.prototype.getLastError=x.prototype.Ka,x.prototype.getLastErrorCode=x.prototype.Ba,x.prototype.getStatus=x.prototype.Z,x.prototype.getResponseJson=x.prototype.Oa,x.prototype.getResponseText=x.prototype.oa,x.prototype.send=x.prototype.ea,x.prototype.setWithCredentials=x.prototype.Ha,pr=x}).apply(void 0!==Er?Er:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let ue="@firebase/firestore",he="4.7.8";class l{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}}l.UNAUTHENTICATED=new l(null),l.GOOGLE_CREDENTIALS=new l("google-credentials-uid"),l.FIRST_PARTY=new l("first-party-uid"),l.MOCK_USER=new l("mock-user");let ce="11.3.1",de=new class{constructor(e){this.name=e,this._logLevel=ne,this._logHandler=se,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?re[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}("@firebase/firestore");function fe(){return de.logLevel}function p(e,...t){var r;de.logLevel<=c.DEBUG&&(r=t.map(me),de.debug(`Firestore (${ce}): `+e,...r))}function d(e,...t){var r;de.logLevel<=c.ERROR&&(r=t.map(me),de.error(`Firestore (${ce}): `+e,...r))}function ge(e,...t){var r;de.logLevel<=c.WARN&&(r=t.map(me),de.warn(`Firestore (${ce}): `+e,...r))}function me(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function T(e="Unexpected state"){var t=`FIRESTORE (${ce}) INTERNAL ASSERTION FAILED: `+e;throw d(t),new Error(t)}function y(e){e||T()}let b={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class I extends Y{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class f{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class pe{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class ye{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(l.UNAUTHENTICATED))}shutdown(){}}class ve{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 we{constructor(e){this.t=e,this.currentUser=l.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new f,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new f,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.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(p("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new f))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(p("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken),new pe(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e),new l(e)}}class _e{constructor(e,t,r){this.l=e,this.h=t,this.P=r,this.type="FirstParty",this.user=l.FIRST_PARTY,this.T=new Map}I(){return this.P?this.P():null}get headers(){this.T.set("X-Goog-AuthUser",this.l);var e=this.I();return e&&this.T.set("Authorization",e),this.h&&this.T.set("X-Goog-Iam-Authorization-Token",this.h),this.T}}class be{constructor(e,t,r){this.l=e,this.h=t,this.P=r}getToken(){return Promise.resolve(new _e(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable(()=>t(l.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Ie{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 Te{constructor(e,t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null,this.V=null,kd._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.V=e.settings.appCheckToken)}start(t,r){y(void 0===this.o);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.R;return this.R=e.token,p("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{p("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.A.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.A.getImmediate({optional:!0}))?i(e):p("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.V?Promise.resolve(new Ie(this.V)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token),this.R=e.token,new Ie(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class Ee{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 E(e,t){return e<t?-1:t<e?1:0}function Se(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function xe(e){return e+"\0"}let Ae=-62135596800;class h{static now(){return h.fromMillis(Date.now())}static fromDate(e){return h.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new h(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<Ae)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?E(this.nanoseconds,e.nanoseconds):E(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds-Ae;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class g{static fromTimestamp(e){return new g(e)}static min(){return new g(new h(0,0))}static max(){return new g(new h(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let Ce="__name__";class De{constructor(e,t,r){void 0===t?t=0:t>e.length&&T(),void 0===r?r=e.length-t:r>e.length-t&&T(),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===De.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof De?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=De.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return Math.sign(t.length-r.length)}static compareSegments(e,t){var r=De.isNumericId(e),n=De.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?De.extractNumericId(e).compare(De.extractNumericId(t)):e<t?-1:t<e?1:0}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return ae.fromString(e.substring(4,e.length-2))}}class S extends De{construct(e,t,r){return new S(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new I(b.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new S(r)}static emptyPath(){return new S([])}}let Ne=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class v extends De{construct(e,t,r){return new v(e,t,r)}static isValidIdentifier(e){return Ne.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=v.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Ce}static keyField(){return new v([Ce])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.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 I(b.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new I(b.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 I(b.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new v(e)}static emptyPath(){return new v([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(S.fromString(e))}static fromName(e){return new x(S.fromString(e).popFirst(5))}static empty(){return new x(S.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===S.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return S.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new S(e.slice()))}}let ke=-1;class Re{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Le(e){return e.fields.find(e=>2===e.kind)}function Me(e){return e.fields.filter(e=>2!==e.kind)}Re.UNKNOWN_ID=-1;class Oe{constructor(e,t){this.fieldPath=e,this.kind=t}}class Ve{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Ve(0,Ue.min())}}function Fe(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=g.fromTimestamp(1e9===n?new h(r+1,0):new h(r,n));return new Ue(r,x.empty(),t)}function Pe(e){return new Ue(e.readTime,e.key,ke)}class Ue{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Ue(g.min(),x.empty(),ke)}static max(){return new Ue(g.max(),x.empty(),ke)}}function Be(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:E(e.largestBatchId,t.largestBatchId)}let qe="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class je{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Ke(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==qe)throw e;p("LocalStore","Unexpectedly lost primary lease")}class w{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&&T(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new w((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 w?t:w.resolve(t)}catch(e){return w.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):w.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):w.reject(t)}static resolve(r){return new w((e,t)=>{e(r)})}static reject(r){return new w((e,t)=>{t(r)})}static waitFor(e){return new w((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=w.resolve(!1);for(let r of e)t=t.next(e=>e?w.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 w((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 w((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let ze="SimpleDb";class Ge{static open(e,t,r,n){try{return new Ge(t,e.transaction(n,r))}catch(e){throw new We(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.m=new f,this.transaction.oncomplete=()=>{this.m.resolve()},this.transaction.onabort=()=>{e.error?this.m.reject(new We(r,e.error)):this.m.resolve()},this.transaction.onerror=e=>{var t=et(e.target.error);this.m.reject(new We(r,t))}}get p(){return this.m.promise}abort(e){e&&this.m.reject(e),this.aborted||(p(ze,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}S(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Xe(t)}}class Qe{static delete(e){return p(ze,"Removing database:",e),Je(window.indexedDB.deleteDatabase(e)).toPromise()}static D(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!Qe.v()&&(e=H(),t=0<(t=Qe.C(e))&&t<10,r=0<(r=$e(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static v(){var e;return"undefined"!=typeof process&&"YES"===(null==(e=process.__PRIVATE_env)?void 0:e.F)}static M(e,t){return e.store(t)}static C(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.O=r,12.2===Qe.C(H())&&d("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 N(s){return this.db||(p(ze,"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 We(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 I(b.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 I(b.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 We(s,t))},i.onupgradeneeded=e=>{p(ze,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.O.B(t,i.transaction,e.oldVersion,this.version).next(()=>{p(ze,"Database upgrade to version "+this.version+" complete")})}})),this.L&&(this.db.onversionchange=e=>this.L(e)),this.db}k(t){this.L=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.N(r);let t=Ge.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.S(),e)).catch(e=>(t.abort(e),w.reject(e))).toPromise();return e.catch(()=>{}),await t.p,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(p(ze,"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 $e(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class He{constructor(e){this.q=e,this.$=!1,this.K=null}get isDone(){return this.$}get U(){return this.K}set cursor(e){this.q=e}done(){this.$=!0}W(e){this.K=e}delete(){return Je(this.q.delete())}}class We extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Ye(e){return"IndexedDbTransactionError"===e.name}class Xe{constructor(e){this.store=e}put(e,t){let r;return Je(r=void 0!==t?(p(ze,"PUT",this.store.name,e,t),this.store.put(t,e)):(p(ze,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return p(ze,"ADD",this.store.name,e,e),Je(this.store.add(e))}get(t){return Je(this.store.get(t)).next(e=>(void 0===e&&(e=null),p(ze,"GET",this.store.name,t,e),e))}delete(e){return p(ze,"DELETE",this.store.name,e),Je(this.store.delete(e))}count(){return p(ze,"COUNT",this.store.name),Je(this.store.count())}G(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 w((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.j(e,(e,t)=>{r.push(t)}).next(()=>r)}}H(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new w((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}J(e,t){p(ze,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Y=!1,this.cursor(r));return this.j(r,(e,t,r)=>r.delete())}Z(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.j(n,t)}X(i){let e=this.cursor({});return new w((r,n)=>{e.onerror=e=>{var t=et(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}j(e,s){let a=[];return new w((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new He(n),r=s(n.primaryKey,n.value,t);if(r instanceof w){let e=r.catch(e=>(t.done(),w.reject(e)));a.push(e)}t.isDone?i():null===t.U?n.continue():n.continue(t.U)}else i()}}).next(()=>w.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.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Je(e){return new w((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=et(e.target.error);n(t)}})}let Ze=!1;function et(e){let t=Qe.C(H());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 I("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 Ze||(Ze=!0,setTimeout(()=>{throw e},0)),e}}return e}let tt="IndexBackfiller";class rt{constructor(e,t){this.asyncQueue=e,this.ee=t,this.task=null}start(){this.te(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}te(e){p(tt,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ee.ne();p(tt,"Documents written: "+e)}catch(e){Ye(e)?p(tt,"Ignoring IndexedDB error during index backfill: ",e):await Ke(e)}await this.te(6e4)})}}class nt{constructor(e,t){this.localStore=e,this.persistence=t}async ne(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.re(e,t))}re(e,t){let r=new Set,n=t,i=!0;return w.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return p(tt,"Processing collection: "+t),this.ie(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}ie(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.se(r,e)).next(e=>(p(tt,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}se(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Pe(t);0<Be(r,n)&&(n=r)}),new Ue(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class it{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.oe(e),this._e=e=>t.writeSequenceNumber(e))}oe(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this._e&&this._e(e),e}}let st=it.ae=-1;function at(e){return null==e}function ot(e){return 0===e&&1/e==-1/0}function lt(e){return"number"==typeof e&&Number.isInteger(e)&&!ot(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let ut="";function o(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=ht(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 ut:r+="";break;default:r+=e}}return r})(e.get(r),t);return ht(t)}function ht(e){return e+ut+""}function ct(r){let e=r.length;if(y(2<=e),2===e)return y(r.charAt(0)===ut&&""===r.charAt(1)),S.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(ut,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&T(),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:T()}a=t+2}return new S(n)}let dt="remoteDocuments",ft="owner",gt="owner",mt="mutationQueues",pt="mutations",yt="batchId",vt="userMutationsIndex",wt=["userId","batchId"];function _t(e,t){return[e,o(t)]}function bt(e,t,r){return[e,o(t),r]}let It={},Tt="documentMutations",Et="remoteDocumentsV14",St=["prefixPath","collectionGroup","readTime","documentId"],xt="documentKeyIndex",At=["prefixPath","collectionGroup","documentId"],Ct="collectionGroupIndex",Dt=["collectionGroup","readTime","prefixPath","documentId"],Nt="remoteDocumentGlobal",kt="remoteDocumentGlobalKey",Rt="targets",Lt="queryTargetsIndex",Mt=["canonicalId","targetId"],Ot="targetDocuments",Vt=["targetId","path"],Ft="documentTargetsIndex",Pt=["path","targetId"],Ut="targetGlobalKey",Bt="targetGlobal",qt="collectionParents",jt=["collectionId","parent"],Kt="clientMetadata",zt="bundles",Gt="namedQueries",Qt="indexConfiguration",$t="collectionGroupIndex",Ht="indexState",Wt=["indexId","uid"],Yt="sequenceNumberIndex",Xt=["uid","sequenceNumber"],Jt="indexEntries",Zt=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],er="documentKeyIndex",tr=["indexId","uid","orderedDocumentKey"],rr="documentOverlays",nr=["userId","collectionPath","documentId"],ir="collectionPathOverlayIndex",sr=["userId","collectionPath","largestBatchId"],ar="collectionGroupOverlayIndex",or=["userId","collectionGroup","largestBatchId"],lr="globals",ur=[mt,pt,Tt,dt,Rt,ft,Bt,Ot,Kt,Nt,qt,zt,Gt],hr=[...ur,rr],cr=[mt,pt,Tt,Et,Rt,ft,Bt,Ot,Kt,Nt,qt,zt,Gt,rr],dr=cr,fr=[...dr,Qt,Ht,Jt],gr=fr,mr=[...fr,lr];class Sr extends je{constructor(e,t){super(),this.ue=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return Qe.M(r.ue,t)}function xr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Ar(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Cr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Nr.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Nr.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Nr.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 Dr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Dr(this.root,e,this.comparator,!1)}getReverseIterator(){return new Dr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Dr(this.root,e,this.comparator,!0)}}class Dr{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 Nr{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Nr.RED,this.left=null!=n?n:Nr.EMPTY,this.right=null!=i?i:Nr.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new Nr(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 Nr.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 Nr.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,Nr.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,Nr.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 T();if(this.right.isRed())throw T();var e=this.left.check();if(e!==this.right.check())throw T();return e+(this.isRed()?0:1)}}Nr.EMPTY=null,Nr.RED=!0,Nr.BLACK=!1,Nr.EMPTY=new class{constructor(){this.size=0}get key(){throw T()}get value(){throw T()}get color(){throw T()}get left(){throw T()}get right(){throw T()}copy(e,t,r,n,i){return this}insert(e,t,r){return new Nr(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 C{constructor(e){this.comparator=e,this.data=new A(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 kr(this.data.getIterator())}getIteratorFrom(e){return new kr(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 C))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 C(this.comparator);return t.data=e,t}}class kr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Rr(e){return e.hasNext()?e.getNext():void 0}class Lr{constructor(e){(this.fields=e).sort(v.comparator)}static empty(){return new Lr([])}unionWith(e){let t=new C(v.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new Lr(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Se(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class Mr extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class D{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 Mr("Invalid base64 string: "+e):e}})(e);return new D(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 D(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 E(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}D.EMPTY_BYTE_STRING=new D("");let Or=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Vr(t){if(y(!!t),"string"!=typeof t)return{seconds:N(t.seconds),nanos:N(t.nanos)};{let e=0;var r=Or.exec(t),r=(y(!!r),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 N(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function Fr(e){return"string"==typeof e?D.fromBase64String(e):D.fromUint8Array(e)}let Pr="server_timestamp",Ur="__type__",Br="__previous_value__",qr="__local_write_time__";function jr(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[Ur])?void 0:t.stringValue)===Pr}function Kr(e){var t=e.mapValue.fields[Br];return jr(t)?Kr(t):t}function zr(e){var t=Vr(e.mapValue.fields[qr].timestampValue);return new h(t.seconds,t.nanos)}class Gr{constructor(e,t,r,n,i,s,a,o,l){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}}let Qr="(default)";class $r{constructor(e,t){this.projectId=e,this.database=t||Qr}static empty(){return new $r("","")}get isDefaultDatabase(){return this.database===Qr}isEqual(e){return e instanceof $r&&e.projectId===this.projectId&&e.database===this.database}}let Hr="__type__",Wr="__max__",Yr={mapValue:{fields:{__type__:{stringValue:Wr}}}},Xr="__vector__",Jr="value",Zr={nullValue:"NULL_VALUE"};function en(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?jr(e)?4:pn(e)?9007199254740991:gn(e)?10:11:T()}function tn(t,r){if(t===r)return!0;var n,i,s,a,o,e=en(t);if(e!==en(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return zr(t).isEqual(zr(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=Vr(i.timestampValue),o=Vr(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,Fr(t.bytesValue).isEqual(Fr(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,N((n=t).geoPointValue.latitude)===N(s.geoPointValue.latitude)&&N(n.geoPointValue.longitude)===N(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(u=t)&&"integerValue"in n?N(u.integerValue)===N(n.integerValue):"doubleValue"in u&&"doubleValue"in n&&((a=N(u.doubleValue))===(o=N(n.doubleValue))?ot(a)===ot(o):isNaN(a)&&isNaN(o));case 9:return Se(t.arrayValue.values||[],r.arrayValue.values||[],tn);case 10:case 11:var l=t,u=r,h=l.mapValue.fields||{},c=u.mapValue.fields||{};if(xr(h)!==xr(c))return!1;for(let e in h)if(h.hasOwnProperty(e)&&(void 0===c[e]||!tn(h[e],c[e])))return!1;return!0;default:return T()}}function rn(e,t){return void 0!==(e.values||[]).find(e=>tn(e,t))}function nn(e,n){if(e===n)return 0;var i,s,a,o,l,u,h,c,t=en(e),r=en(n);if(t!==r)return E(t,r);switch(t){case 0:case 9007199254740991:return 0;case 1:return E(e.booleanValue,n.booleanValue);case 2:return u=n,h=N((l=e).integerValue||l.doubleValue),c=N(u.integerValue||u.doubleValue),h<c?-1:c<h?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return sn(e.timestampValue,n.timestampValue);case 4:return sn(zr(e),zr(n));case 5:return E(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,u=n.bytesValue,h=Fr(l),c=Fr(u),h.compareTo(c);case 7:var d=e.referenceValue,f=n.referenceValue,g=d.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=E(g[t],m[t]);if(0!==e)return e}return E(g.length,m.length);case 8:return d=e.geoPointValue,f=n.geoPointValue,0!==(o=E(N(d.latitude),N(f.latitude)))?o:E(N(d.longitude),N(f.longitude));case 9:return an(e.arrayValue,n.arrayValue);case 10:return p=e.mapValue,i=n.mapValue,o=p.fields||{},s=i.fields||{},o=null==(o=o[Jr])?void 0:o.arrayValue,s=null==(s=s[Jr])?void 0:s.arrayValue,0!==(a=E((null==(a=null==o?void 0:o.values)?void 0:a.length)||0,(null==(a=null==s?void 0:s.values)?void 0:a.length)||0))?a:an(o,s);case 11:var p=e.mapValue,y=n.mapValue;if(p===Yr.mapValue&&y===Yr.mapValue)return 0;if(p===Yr.mapValue)return 1;if(y===Yr.mapValue)return-1;var v=p.fields||{},w=Object.keys(v),_=y.fields||{},b=Object.keys(_);w.sort(),b.sort();for(let r=0;r<w.length&&r<b.length;++r){let e=E(w[r],b[r]);if(0!==e)return e;var I=nn(v[w[r]],_[b[r]]);if(0!==I)return I}return E(w.length,b.length);default:throw T()}}function sn(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?E(e,t):(r=Vr(e),n=Vr(t),0!==(i=E(r.seconds,n.seconds))?i:E(r.nanos,n.nanos))}function an(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=nn(r[i],n[i]);if(e)return e}return E(r.length,n.length)}function on(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=Vr(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>Fr(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):T()}(e)}function ln(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function un(e){return!!e&&"integerValue"in e}function hn(e){return!!e&&"arrayValue"in e}function cn(e){return e&&"nullValue"in e}function dn(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function fn(e){return e&&"mapValue"in e}function gn(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[Hr])?void 0:t.stringValue)===Xr}function mn(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){let r={mapValue:{fields:{}}};return Ar(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=mn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=mn(t.arrayValue.values[e]);return r}return Object.assign({},t)}function pn(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Wr}let yn={mapValue:{fields:{[Hr]:{stringValue:Xr},[Jr]:{arrayValue:{}}}}};function vn(e,t){var r=nn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function wn(e,t){var r=nn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class _n{constructor(e){this.value=e}static empty(){return new _n({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!fn(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()]=mn(t)}setAll(e){let r=v.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()]=mn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());fn(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return tn(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)];fn(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Ar(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new _n(mn(this.value))}}class k{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 k(e,0,g.min(),g.min(),g.min(),_n.empty(),0)}static newFoundDocument(e,t,r,n){return new k(e,1,t,g.min(),r,n,0)}static newNoDocument(e,t){return new k(e,2,t,g.min(),g.min(),_n.empty(),0)}static newUnknownDocument(e,t){return new k(e,3,t,g.min(),g.min(),_n.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(g.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=_n.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=_n.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=g.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 k&&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 k(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class bn{constructor(e,t){this.position=e,this.inclusive=t}}function In(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):nn(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Tn(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(!tn(e.position[r],t.position[r]))return!1;return!0}class En{constructor(e,t="asc"){this.field=e,this.dir=t}}class Sn{}class R extends Sn{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 Rn(e,t,r):"array-contains"===t?new Vn(e,r):"in"===t?new Fn(e,r):"not-in"===t?new Pn(e,r):"array-contains-any"===t?new Un(e,r):new R(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?Ln:Mn)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(nn(t,this.value)):null!==t&&en(this.value)===en(t)&&this.matchesComparison(nn(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 T()}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class L extends Sn{constructor(e,t){super(),this.filters=e,this.op=t,this.ce=null}static create(e,t){return new L(e,t)}matches(t){return xn(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 xn(e){return"and"===e.op}function An(e){return"or"===e.op}function Cn(e){return Dn(e)&&xn(e)}function Dn(e){for(var t of e.filters)if(t instanceof L)return!1;return!0}function Nn(e,t){var r=e.filters.concat(t);return L.create(r,e.op)}function kn(e){return e instanceof R?`${(t=e).field.canonicalString()} ${t.op} `+on(t.value):e instanceof L?(t=e).op.toString()+" {"+t.getFilters().map(kn).join(" ,")+"}":"Filter";var t}class Rn extends R{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class Ln extends R{constructor(e,t){super(e,"in",t),this.keys=On(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class Mn extends R{constructor(e,t){super(e,"not-in",t),this.keys=On(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function On(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>x.fromName(e.referenceValue))}class Vn extends R{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return hn(t)&&rn(t.arrayValue,this.value)}}class Fn extends R{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&rn(this.value.arrayValue,t)}}class Pn extends R{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!rn(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&!rn(this.value.arrayValue,t)}}class Un extends R{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!hn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>rn(this.value.arrayValue,e))}}class Bn{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.le=null}}function qn(e,t=null,r=[],n=[],i=null,s=null,a=null){return new Bn(e,t,r,n,i,s,a)}function jn(e){var t=e;if(null===t.le){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 R?e.field.canonicalString()+e.op.toString()+on(e.value):Cn(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(","),at(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>on(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>on(e)).join(",")),t.le=e}return t.le}function Kn(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 R?(r=e,(s=t)instanceof R&&r.op===s.op&&r.field.isEqual(s.field)&&tn(r.value,s.value)):e instanceof L?(r=e,(i=t)instanceof L&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void T();var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Tn(e.startAt,t.startAt)&&Tn(e.endAt,t.endAt)}function zn(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Gn(e,t){return e.filters.filter(e=>e instanceof R&&e.field.isEqual(t))}function Qn(e,r,n){let i=Zr,s=!0;for(let n of Gn(e,r)){let e=Zr,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Zr:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?ln($r.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?gn(a)?yn:{mapValue:{}}:T();break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Zr}vn({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];vn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function $n(e,r,n){let i=Yr,s=!0;for(let n of Gn(e,r)){let e=Yr,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?ln($r.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?yn:"mapValue"in a?gn(a)?{mapValue:{}}:Yr:T(),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=Yr}0<wn({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<wn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Hn{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.he=null,this.Pe=null,this.Te=null,this.startAt,this.endAt}}function Wn(e,t,r,n,i,s,a,o){return new Hn(e,t,r,n,i,s,a,o)}function Yn(e){return new Hn(e)}function Xn(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 Jn(e){return null!==e.collectionGroup}function Zn(e){let n=e;if(null===n.he){n.he=[];let t=new Set;for(var i of n.explicitOrderBy)n.he.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 C(v.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.he.push(new En(e,r))}),t.has(v.keyField().canonicalString())||n.he.push(new En(v.keyField(),r))}return n.he}function ei(e){var t=e;return t.Pe||(t.Pe=((e,t)=>{if("F"===e.limitType)return qn(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 En(e.field,t)});var r=e.endAt?new bn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new bn(e.startAt.position,e.startAt.inclusive):null;return qn(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Zn(e))),t.Pe}function ti(e,t){var r=e.filters.concat([t]);return new Hn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function ri(e,t,r){return new Hn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function ni(e,t){return Kn(ei(e),ei(t))&&e.limitType===t.limitType}function ii(e){return jn(ei(e))+"|lt:"+e.limitType}function si(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=>kn(e)).join(", ")}]`),at(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=>on(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>on(e)).join(","):t})`})(ei(e))}; limitType=${e.limitType})`}function ai(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Zn(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Zn(s),i=In(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Zn(s),i=In(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function oi(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function li(e){return(t,r)=>{let n=!1;for(var i of Zn(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?nn(n,i):T()})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return T()}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class ui{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){Ar(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Cr(this.inner)}size(){return this.innerSize}}let hi=new A(x.comparator);let ci=new A(x.comparator);function di(...e){let t=ci;for(var r of e)t=t.insert(r.key,r);return t}function fi(e){let r=ci;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function gi(){return new ui(e=>e.toString(),(e,t)=>e.isEqual(t))}let mi=new A(x.comparator),pi=new C(x.comparator);function M(...e){let t=pi;for(var r of e)t=t.add(r);return t}let yi=new C(E);function vi(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:ot(t)?"-0":t}}function wi(e){return{integerValue:""+e}}function _i(e,t){return lt(t)?wi(t):vi(e,t)}class bi{constructor(){this._=void 0}}function Ii(e,t){return e instanceof Ci?un(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Ti extends bi{}class Ei extends bi{constructor(e){super(),this.elements=e}}function Si(e,t){var r=Ni(t);for(let t of e.elements)r.some(e=>tn(e,t))||r.push(t);return{arrayValue:{values:r}}}class xi extends bi{constructor(e){super(),this.elements=e}}function Ai(e,t){let r=Ni(t);for(let t of e.elements)r=r.filter(e=>!tn(e,t));return{arrayValue:{values:r}}}class Ci extends bi{constructor(e,t){super(),this.serializer=e,this.Ie=t}}function Di(e){return N(e.integerValue||e.doubleValue)}function Ni(e){return hn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class ki{constructor(e,t){this.field=e,this.transform=t}}class Ri{constructor(e,t){this.version=e,this.transformResults=t}}class O{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new O}static exists(e){return new O(void 0,e)}static updateTime(e){return new O(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 Li(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class Mi{}function Oi(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new Ki(e.key,O.none()):new Pi(e.key,e.data,O.none());{var n,i=e.data,s=_n.empty();let t=new C(v.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 Ui(e.key,s,new Lr(t.toArray()),O.none())}}function Vi(e,t,r,n){return e instanceof Pi?(s=t,a=r,o=n,Li((i=e).precondition,s)?(l=i.value.clone(),u=ji(i.fieldTransforms,o,s),l.setAll(u),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof Ui?(i=t,o=r,s=n,Li((a=e).precondition,i)?(u=ji(a.fieldTransforms,s,i),(l=i.data).setAll(Bi(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,Li(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,u}function Fi(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&&Se(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Ei&&t instanceof Ei||e instanceof xi&&t instanceof xi?Se(e.elements,t.elements,tn):e instanceof Ci&&t instanceof Ci?tn(e.Ie,t.Ie):e instanceof Ti&&t instanceof Ti)))))&&(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 Pi extends Mi{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 Ui extends Mi{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 Bi(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 qi(e,t,r){var n,i,s,a=new Map;y(e.length===r.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 Ei?Si(n,i):n instanceof xi?Ai(n,i):s))}return a}function ji(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 Ti?(o=o,u=a,h={fields:{[Ur]:{stringValue:Pr},[qr]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(u=u&&jr(u)?Kr(u):u)&&(h.fields[Br]=u),{mapValue:h}):s instanceof Ei?Si(s,a):s instanceof xi?Ai(s,a):(h=Ii(o=s,a),l=Di(h)+Di(o.Ie),un(h)&&un(o.Ie)?wi(l):vi(o.serializer,l))))}return c}class Ki extends Mi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class zi extends Mi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class Gi{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 Pi?(a=n,o=i,h=(s=r).value.clone(),l=qi(s.fieldTransforms,a,o.transformResults),h.setAll(l),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof Ui?(s=n,a=i,Li((o=r).precondition,s)?(l=qi(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(Bi(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=Vi(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=Vi(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=gi();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=Oi(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(g.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),M())}isEqual(e){return this.batchId===e.batchId&&Se(this.mutations,e.mutations,(e,t)=>Fi(e,t))&&Se(this.baseMutations,e.baseMutations,(e,t)=>Fi(e,t))}}class Qi{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length);let n=mi;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Qi(e,t,r,n)}}class $i{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
2
2
  largestBatchId: ${this.largestBatchId},
3
3
  mutation: ${this.mutation.toString()}
4
- }`}}class Yi{constructor(e,t){this.count=e,this.unchangedNames=t}}function Xi(e){switch(e){case b.OK:return T();case b.CANCELLED:case b.UNKNOWN:case b.DEADLINE_EXCEEDED:case b.RESOURCE_EXHAUSTED:case b.INTERNAL:case b.UNAVAILABLE:case b.UNAUTHENTICATED:return!1;case b.INVALID_ARGUMENT:case b.NOT_FOUND:case b.ALREADY_EXISTS:case b.PERMISSION_DENIED:case b.FAILED_PRECONDITION:case b.ABORTED:case b.OUT_OF_RANGE:case b.UNIMPLEMENTED:case b.DATA_LOSS:return!0;default:return T()}}function Ji(e){if(void 0===e)return d("GRPC error has no .code"),b.UNKNOWN;switch(e){case m.OK:return b.OK;case m.CANCELLED:return b.CANCELLED;case m.UNKNOWN:return b.UNKNOWN;case m.DEADLINE_EXCEEDED:return b.DEADLINE_EXCEEDED;case m.RESOURCE_EXHAUSTED:return b.RESOURCE_EXHAUSTED;case m.INTERNAL:return b.INTERNAL;case m.UNAVAILABLE:return b.UNAVAILABLE;case m.UNAUTHENTICATED:return b.UNAUTHENTICATED;case m.INVALID_ARGUMENT:return b.INVALID_ARGUMENT;case m.NOT_FOUND:return b.NOT_FOUND;case m.ALREADY_EXISTS:return b.ALREADY_EXISTS;case m.PERMISSION_DENIED:return b.PERMISSION_DENIED;case m.FAILED_PRECONDITION:return b.FAILED_PRECONDITION;case m.ABORTED:return b.ABORTED;case m.OUT_OF_RANGE:return b.OUT_OF_RANGE;case m.UNIMPLEMENTED:return b.UNIMPLEMENTED;case m.DATA_LOSS:return b.DATA_LOSS;default:return T()}}(e=m=m||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";let Zi=new ae([4294967295,4294967295],0);function es(e){var t=Ee().encode(e),r=new oe;return r.update(t),new Uint8Array(r.digest())}function ts(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 ae([r,n],0),new ae([i,t],0)]}class rs{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new ns("Invalid padding: "+t);if(r<0)throw new ns("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new ns("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new ns("Invalid padding when bitmap length is 0: "+t);this.Ee=8*e.length-t,this.de=ae.fromNumber(this.Ee)}Ae(e,t,r){let n=e.add(t.multiply(ae.fromNumber(r)));return(n=1===n.compare(Zi)?new ae([n.getBits(0),n.getBits(1)],0):n).modulo(this.de).toNumber()}Re(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ee)return!1;let t=es(e),[r,n]=ts(t);for(let i=0;i<this.hashCount;i++){let e=this.Ae(r,n,i);if(!this.Re(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 rs(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.Ee){let e=es(i),[t,r]=ts(e);for(let n=0;n<this.hashCount;n++){let e=this.Ae(t,r,n);this.Ve(e)}}}Ve(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class ns extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class is{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,ss.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new is(g.min(),n,new A(E),di,M())}}class ss{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 ss(r,t,M(),M(),M())}}class as{constructor(e,t,r,n){this.me=e,this.removedTargetIds=t,this.key=r,this.fe=n}}class os{constructor(e,t){this.targetId=e,this.ge=t}}class ls{constructor(e,t,r=D.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class us{constructor(){this.pe=0,this.ye=ds(),this.we=D.EMPTY_BYTE_STRING,this.Se=!1,this.be=!0}get current(){return this.Se}get resumeToken(){return this.we}get De(){return 0!==this.pe}get ve(){return this.be}Ce(e){0<e.approximateByteSize()&&(this.be=!0,this.we=e)}Fe(){let r=M(),n=M(),i=M();return this.ye.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:T()}}),new ss(this.we,this.Se,r,n,i)}Me(){this.be=!1,this.ye=ds()}xe(e,t){this.be=!0,this.ye=this.ye.insert(e,t)}Oe(e){this.be=!0,this.ye=this.ye.remove(e)}Ne(){this.pe+=1}Be(){--this.pe,y(0<=this.pe)}Le(){this.be=!0,this.Se=!0}}class hs{constructor(e){this.ke=e,this.qe=new Map,this.Qe=di,this.$e=cs(),this.Ue=cs(),this.Ke=new A(E)}We(e){for(var t of e.me)e.fe&&e.fe.isFoundDocument()?this.Ge(t,e.fe):this.ze(t,e.key,e.fe);for(var r of e.removedTargetIds)this.ze(r,e.key,e.fe)}je(r){this.forEachTarget(r,e=>{var t=this.He(e);switch(r.state){case 0:this.Je(e)&&t.Ce(r.resumeToken);break;case 1:t.Be(),t.De||t.Me(),t.Ce(r.resumeToken);break;case 2:t.Be(),t.De||this.removeTarget(e);break;case 3:this.Je(e)&&(t.Le(),t.Ce(r.resumeToken));break;case 4:this.Je(e)&&(this.Ye(e),t.Ce(r.resumeToken));break;default:T()}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.qe.forEach((e,t)=>{this.Je(t)&&r(t)})}Ze(n){let i=n.targetId,e=n.ge.count,t=this.Xe(i);if(t){var r=t.target;if(Qn(r))if(0===e){let e=new x(r.path);this.ze(i,e,k.newNoDocument(e,g.min()))}else y(1===e);else{let r=this.et(i);if(r!==e){let e=this.tt(n),t=e?this.nt(e,n,r):1;if(0!==t){this.Ye(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(i,e)}}}}}tt(e){var t=e.ge.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=Ur(t).toUint8Array()}catch(e){if(e instanceof Vr)return ge("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 rs(i,r,n)}catch(e){return ge(e instanceof ns?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.Ee?null:s}nt(e,t,r){return t.ge.count===r-this.st(e,t.targetId)?0:2}st(r,n){var e=this.ke.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.ke.it(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.ze(n,e,null),i++)}),i}ot(n){let i=new Map,s=(this.qe.forEach((e,t)=>{var r=this.Xe(t);if(r){if(e.current&&Qn(r.target)){let e=new x(r.target.path);this._t(e).has(t)||this.ut(t,e)||this.ze(t,e,k.newNoDocument(e,n))}e.ve&&(i.set(t,e.Fe()),e.Me())}}),M());this.Ue.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.Xe(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.Qe.forEach((e,t)=>t.setReadTime(n));var e=new is(n,i,this.Ke,this.Qe,s);return this.Qe=di,this.$e=cs(),this.Ue=cs(),this.Ke=new A(E),e}Ge(e,t){var r;this.Je(e)&&(r=this.ut(e,t.key)?2:0,this.He(e).xe(t.key,r),this.Qe=this.Qe.insert(t.key,t),this.$e=this.$e.insert(t.key,this._t(t.key).add(e)),this.Ue=this.Ue.insert(t.key,this.ct(t.key).add(e)))}ze(e,t,r){var n;this.Je(e)&&(n=this.He(e),this.ut(e,t)?n.xe(t,1):n.Oe(t),this.Ue=this.Ue.insert(t,this.ct(t).delete(e)),this.Ue=this.Ue.insert(t,this.ct(t).add(e)),r)&&(this.Qe=this.Qe.insert(t,r))}removeTarget(e){this.qe.delete(e)}et(e){var t=this.He(e).Fe();return this.ke.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ne(e){this.He(e).Ne()}He(e){let t=this.qe.get(e);return t||(t=new us,this.qe.set(e,t)),t}ct(e){let t=this.Ue.get(e);return t||(t=new C(E),this.Ue=this.Ue.insert(e,t)),t}_t(e){let t=this.$e.get(e);return t||(t=new C(E),this.$e=this.$e.insert(e,t)),t}Je(e){var t=null!==this.Xe(e);return t||p("WatchChangeAggregator","Detected inactive target",e),t}Xe(e){var t=this.qe.get(e);return t&&t.De?null:this.ke.lt(e)}Ye(t){this.qe.set(t,new us),this.ke.getRemoteKeysForTarget(t).forEach(e=>{this.ze(t,e,null)})}ut(e,t){return this.ke.getRemoteKeysForTarget(e).has(t)}}function cs(){return new A(x.comparator)}function ds(){return new A(x.comparator)}let fs={asc:"ASCENDING",desc:"DESCENDING"},gs={"<":"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"},ms={and:"AND",or:"OR"};class ps{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ys(e,t){return e.useProto3Json||lt(t)?t:{value:t}}function vs(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 ws(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function V(e){return y(!!e),g.fromTimestamp((t=Pr(e),new h(t.seconds,t.nanos)));var t}function _s(e,t){return bs(e,t).canonicalString()}function bs(e,t){e=e;var r=new S(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function Is(e){var t=S.fromString(e);return y(js(t)),t}function Ts(e,t){return _s(e.databaseId,t.path)}function Es(e,t){var r=Is(t);if(r.get(1)!==e.databaseId.projectId)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(Cs(r))}function Ss(e,t){return _s(e.databaseId,t)}function xs(e){var t=Is(e);return 4===t.length?S.emptyPath():Cs(t)}function As(e){return new S(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Cs(e){return y(4<e.length&&"documents"===e.get(4)),e.popFirst(5)}function Ds(e,t,r){return{name:Ts(e,t),fields:r.value.mapValue.fields}}function Ns(e,t,r){var n=Es(e,t.name),i=V(t.updateTime),s=t.createTime?V(t.createTime):g.min(),a=new In({mapValue:{fields:t.fields}}),n=k.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function ks(e,t){let r;if(t instanceof Bi)r={update:Ds(e,t.key,t.value)};else if(t instanceof Ki)r={delete:Ts(e,t.key)};else if(t instanceof qi)r={update:Ds(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 Qi))return T();r={verify:Ts(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Si)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof xi)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Ci)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Ni)return{fieldPath:e.field.canonicalString(),increment:t.Ie};throw T()})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,vs(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:T())),r;var n}function Rs(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?O.updateTime(V(s.updateTime)):void 0!==s.exists?O.exists(s.exists):O.none():O.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)y("REQUEST_TIME"===r.setToServerValue),t=new Si;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new xi(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Ci(e)}else"increment"in r?t=new Ni(e,r.increment):T();var n=v.fromServerFormat(r.fieldPath);return new Li(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=Es(i,t.update.name),l=new In({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new Or(a.map(e=>v.fromServerFormat(e)));return new qi(o,l,e,r,n)}return new Bi(o,l,r,n)}if(t.delete){let e=Es(i,t.delete);return new Ki(e,r)}if(t.verify){let e=Es(i,t.verify);return new Qi(e,r)}return T()}function Ls(e,n){return e&&0<e.length?(y(void 0!==n),e.map(t=>{{var r=n;let e=t.updateTime?V(t.updateTime):V(r);return e.isEqual(g.min())&&(e=V(r)),new Mi(e,t.transformResults||[])}})):[]}function Ms(e,t){return{documents:[Ss(e,t.path)]}}function Os(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=Ss(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof R?(e=>{if("=="===e.op){if(gn(e.value))return{unaryFilter:{field:Bs(e.field),op:"IS_NAN"}};if(fn(e.value))return{unaryFilter:{field:Bs(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(gn(e.value))return{unaryFilter:{field:Bs(e.field),op:"IS_NOT_NAN"}};if(fn(e.value))return{unaryFilter:{field:Bs(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:Bs(e.field),op:Ps(e.op),value:e.value}}})(e):e instanceof L?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:Us(e.op),filters:t}}})(e):T()}(L.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:Bs((e=e).field),direction:(e=e.dir,fs[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=ys(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}),{ht:r,parent:i}}function Vs(e){let t=xs(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){y(1===i);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=qs(i.unaryFilter.field);return R.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=qs(i.unaryFilter.field);return R.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=qs(i.unaryFilter.field);return R.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=qs(i.unaryFilter.field);return R.create(n,"!=",{nullValue:"NULL_VALUE"});default:return T()}})(e):void 0!==e.fieldFilter?(e=>R.create(qs(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";default:return T()}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>L.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return T()}})(e.compositeFilter.op)))(e):T()}(e))instanceof L&&Nn(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new xn(qs(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,lt(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(u=(e=n.startAt,i=!!e.before,r=e.values||[],new Tn(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new Tn(i,r))),Xn(t,s,o,a,l,"F",u,h)}function Fs(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 T()}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function Ps(e){return gs[e]}function Us(e){return ms[e]}function Bs(e){return{fieldPath:e.canonicalString()}}function qs(e){return v.fromServerFormat(e.fieldPath)}function js(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class zs{constructor(e,t,r,n,i=g.min(),s=g.min(),a=D.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 zs(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new zs(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new zs(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new zs(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class Gs{constructor(e){this.Tt=e}}function Ks(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:Qs(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Ts(e=e.Tt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:vs(e,r.version.toTimestamp()),createTime:vs(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:$s(t.version)};else{if(!t.isUnknownDocument())return T();i.unknownDocument={path:n.path.toArray(),version:$s(t.version)}}return i}function Qs(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function $s(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function Hs(e){var t=new h(e.seconds,e.nanoseconds);return g.fromTimestamp(t)}function Ws(t,r){let e=(r.baseMutations||[]).map(e=>Rs(t.Tt,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=>Rs(t.Tt,e)),i=h.fromMillis(r.localWriteTimeMs);return new $i(r.batchId,i,e,n)}function Ys(e){var t,r=Hs(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?Hs(e.lastLimboFreeSnapshotVersion):g.min(),i=void 0!==e.query.documents?(y(1===(t=e.query).documents.length),ri(Jn(xs(t.documents[0])))):ri(Vs(e.query));return new zs(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,D.fromBase64String(e.resumeToken))}function Xs(e,t){var r=$s(t.snapshotVersion),n=$s(t.lastLimboFreeSnapshotVersion),i=Qn(t.target)?Ms(e.Tt,t.target):Os(e.Tt,t.target).ht,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:Gn(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function Js(e){var t=Vs({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?ii(t,t.limit,"L"):t}function Zs(e,t){return new Wi(t.largestBatchId,Rs(e.Tt,t.overlayMutation))}function ea(e,t){var r=t.path.lastSegment();return[e,o(t.path.popLast()),r]}function ta(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:$s(n.readTime),documentKey:o(n.documentKey.path),largestBatchId:n.largestBatchId}}class ra{getBundleMetadata(e,t){return na(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:Hs(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return na(e).put({bundleId:(e=t).id,createTime:$s(V(e.createTime)),version:e.version})}getNamedQuery(e,t){return ia(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:Js(e.bundledQuery),readTime:Hs(e.readTime)}})}saveNamedQuery(e,t){return ia(e).put({name:(e=t).name,readTime:$s(V(e.readTime)),bundledQuery:e.bundledQuery})}}function na(e){return r(e,Qt)}function ia(e){return r(e,$t)}class sa{constructor(e,t){this.serializer=e,this.userId=t}static It(e,t){var r=t.uid||"";return new sa(e,r)}getOverlay(e,t){return aa(e).get(ea(this.userId,t)).next(e=>e?Zs(this.serializer,e):null)}getOverlays(e,t){let r=pi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new Wi(i,t);s.push(this.Et(n,r))}),w.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(o(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(aa(r).J(ar,t))}),w.waitFor(i)}getOverlaysForCollection(e,t,r){let n=pi(),i=o(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return aa(e).G(ar,s).next(e=>{for(var t of e){let e=Zs(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=pi(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return aa(e).Z({index:lr,range:n},(e,t,r)=>{var n=Zs(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}Et(e,t){return aa(e).put(((e,t,r)=>{var[,n,i]=ea(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:ks(e.Tt,r.mutation)}})(this.serializer,this.userId,t))}}function aa(e){return r(e,ir)}class oa{dt(e){return r(e,hr)}getSessionToken(e){return this.dt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?D.fromUint8Array(t):D.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.dt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class la{constructor(){}At(e,t){this.Rt(e,t),t.Vt()}Rt(t,r){if("nullValue"in t)this.ft(r,5);else if("booleanValue"in t)this.ft(r,10),r.gt(t.booleanValue?1:0);else if("integerValue"in t)this.ft(r,15),r.gt(N(t.integerValue));else if("doubleValue"in t){var e=N(t.doubleValue);isNaN(e)?this.ft(r,13):(this.ft(r,15),ut(e)?r.gt(0):r.gt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.ft(r,20),"string"==typeof e&&(e=Pr(e)),r.yt(""+(e.seconds||"")),r.gt(e.nanos||0)}else"stringValue"in t?(this.wt(t.stringValue,r),this.St(r)):"bytesValue"in t?(this.ft(r,30),r.bt(Ur(t.bytesValue)),this.St(r)):"referenceValue"in t?this.Dt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.ft(r,45),r.gt(e.latitude||0),r.gt(e.longitude||0)):"mapValue"in t?vn(t)?this.ft(r,Number.MAX_SAFE_INTEGER):pn(t)?this.vt(t.mapValue,r):(this.Ct(t.mapValue,r),this.St(r)):"arrayValue"in t?(this.Ft(t.arrayValue,r),this.St(r)):T()}wt(e,t){this.ft(t,25),this.Mt(e,t)}Mt(e,t){t.yt(e)}Ct(e,t){var r=e.fields||{};this.ft(t,55);for(let e of Object.keys(r))this.wt(e,t),this.Rt(r[e],t)}vt(e,t){var r=e.fields||{},n=(this.ft(t,53),en),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.ft(t,15),t.gt(N(i)),this.wt(n,t),this.Rt(r[n],t)}Ft(e,t){var r=e.values||[];this.ft(t,50);for(let e of r)this.Rt(e,t)}Dt(e,t){this.ft(t,37),x.fromName(e).path.forEach(e=>{this.ft(t,60),this.Mt(e,t)})}ft(e,t){e.gt(t)}St(e){e.gt(2)}}la.xt=new la;function ua(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 ha{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Ot(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Nt(r.value),r=t.next();this.Bt()}Lt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.kt(r.value),r=t.next();this.qt()}Qt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Nt(e);else if(e<2048)this.Nt(960|e>>>6),this.Nt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Nt(480|e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e);else{let e=t.codePointAt(0);this.Nt(240|e>>>18),this.Nt(128|63&e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e)}}this.Bt()}$t(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.kt(e);else if(e<2048)this.kt(960|e>>>6),this.kt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.kt(480|e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e);else{let e=t.codePointAt(0);this.kt(240|e>>>18),this.kt(128|63&e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e)}}this.qt()}Ut(e){var t=this.Kt(e),r=ua(t);this.Wt(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]}Gt(e){var t=this.Kt(e),r=ua(t);this.Wt(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])}zt(){this.jt(255),this.jt(255)}Ht(){this.Jt(255),this.Jt(255)}reset(){this.position=0}seed(e){this.Wt(e.length),this.buffer.set(e,this.position),this.position+=e.length}Yt(){return this.buffer.slice(0,this.position)}Kt(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}Nt(e){var t=255&e;0==t?(this.jt(0),this.jt(255)):255==t?(this.jt(255),this.jt(0)):this.jt(t)}kt(e){var t=255&e;0==t?(this.Jt(0),this.Jt(255)):255==t?(this.Jt(255),this.Jt(0)):this.Jt(e)}Bt(){this.jt(0),this.jt(1)}qt(){this.Jt(0),this.Jt(1)}jt(e){this.Wt(1),this.buffer[this.position++]=e}Jt(e){this.Wt(1),this.buffer[this.position++]=~e}Wt(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 ca{constructor(e){this.Zt=e}bt(e){this.Zt.Ot(e)}yt(e){this.Zt.Qt(e)}gt(e){this.Zt.Ut(e)}Vt(){this.Zt.zt()}}class da{constructor(e){this.Zt=e}bt(e){this.Zt.Lt(e)}yt(e){this.Zt.$t(e)}gt(e){this.Zt.Gt(e)}Vt(){this.Zt.Ht()}}class fa{constructor(){this.Zt=new ha,this.Xt=new ca(this.Zt),this.en=new da(this.Zt)}seed(e){this.Zt.seed(e)}tn(e){return 0===e?this.Xt:this.en}Yt(){return this.Zt.Yt()}reset(){this.Zt.reset()}}class ga{constructor(e,t,r,n){this.indexId=e,this.documentKey=t,this.arrayValue=r,this.directionalValue=n}nn(){var e=this.directionalValue.length,t=0===e||255===this.directionalValue[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.directionalValue,0),t!==e?r.set([0],this.directionalValue.length):++r[r.length-1],new ga(this.indexId,this.documentKey,this.arrayValue,r)}}function ma(e,t){var r=e.indexId-t.indexId;return 0!=r||0!==(r=pa(e.arrayValue,t.arrayValue))||0!==(r=pa(e.directionalValue,t.directionalValue))?r:x.comparator(e.documentKey,t.documentKey)}function pa(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}class ya{constructor(e){this.rn=new C((e,t)=>v.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.sn=e.orderBy,this._n=[];for(var t of e.filters){let e=t;e.isInequality()?this.rn=this.rn.add(e):this._n.push(e)}}get an(){return 1<this.rn.size}un(e){if(y(e.collectionGroup===this.collectionId),this.an)return!1;let t=Oe(e);if(void 0!==t&&!this.cn(t))return!1;var r=Ve(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.cn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.rn.size){let t=this.rn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.ln(t,e)||!this.hn(this.sn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.sn.length||!this.hn(this.sn[s++],e))return!1}}return!0}Pn(){if(this.an)return null;let e=new C(v.comparator);var t,r,n=[];for(t of this._n)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new Fe(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new Fe(t.field,0))));for(r of this.sn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new Fe(r.field,"asc"===r.dir?0:1)));return new Me(Me.UNKNOWN_ID,this.collectionId,n,Pe.empty())}cn(e){for(var t of this._n)if(this.ln(t,e))return!0;return!1}ln(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)}hn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function va(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(y(e instanceof R||e instanceof L),e instanceof R)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=L.create(r,e.op);return n=Ea(n),ba(n)?n:(y(n instanceof L),y(Cn(n)),y(1<n.filters.length),n.filters.reduce((e,t)=>Ia(e,t)))}(function t(r){var n;if(y(r instanceof R||r instanceof L),r instanceof R){if(r instanceof Un){let e=(null==(n=null==(n=r.value.arrayValue)?void 0:n.values)?void 0:n.map(e=>R.create(r.field,"==",e)))||[];return L.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return L.create(e,r.op)}(e)),y(ba(t)),wa(t)||_a(t)?[t]:t.getFilters())}function wa(e){return e instanceof R}function _a(e){return e instanceof L&&Nn(e)}function ba(e){return wa(e)||_a(e)||(e=>{if(e instanceof L&&Dn(e)){for(var t of e.getFilters())if(!wa(t)&&!_a(t))return!1;return!0}return!1})(e)}function Ia(e,t){var r,n;return y(e instanceof R||e instanceof L),y(t instanceof R||t instanceof L),Ea(e instanceof R?t instanceof R?(r=e,n=t,L.create([r,n],"and")):Ta(e,t):t instanceof R?Ta(t,e):((e,t)=>{if(y(0<e.filters.length&&0<t.filters.length),Cn(e)&&Cn(t))return Rn(e,t.getFilters());let r=Dn(e)?e:t,n=Dn(e)?t:e,i=r.filters.map(e=>Ia(e,n));return L.create(i,"or")})(e,t))}function Ta(t,e){var r;return Cn(e)?Rn(e,t.getFilters()):(r=e.filters.map(e=>Ia(t,e)),L.create(r,"or"))}function Ea(t){if(y(t instanceof R||t instanceof L),t instanceof R)return t;var e=t.getFilters();if(1===e.length)return Ea(e[0]);if(kn(t))return t;let r=e.map(e=>Ea(e)),n=[];return r.forEach(e=>{e instanceof R?n.push(e):e instanceof L&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:L.create(n,t.op)}class Sa{constructor(){this.Tn=new xa}addToCollectionParentIndex(e,t){return this.Tn.add(t),w.resolve()}getCollectionParents(e,t){return w.resolve(this.Tn.getEntries(t))}addFieldIndex(e,t){return w.resolve()}deleteFieldIndex(e,t){return w.resolve()}deleteAllFieldIndexes(e){return w.resolve()}createTargetIndexes(e,t){return w.resolve()}getDocumentsMatchingTarget(e,t){return w.resolve(null)}getIndexType(e,t){return w.resolve(0)}getFieldIndexes(e,t){return w.resolve([])}getNextCollectionGroupToUpdate(e){return w.resolve(null)}getMinOffset(e,t){return w.resolve(qe.min())}getMinOffsetFromCollectionGroup(e,t){return w.resolve(qe.min())}updateCollectionGroup(e,t,r){return w.resolve()}updateIndexEntries(e,t){return w.resolve()}}class xa{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new C(S.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 C(S.comparator)).toArray()}}let Aa="IndexedDbIndexManager",Ca=new Uint8Array(0);class Da{constructor(e,t){this.databaseId=t,this.In=new xa,this.En=new ci(e=>Gn(e),(e,t)=>Kn(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.In.has(t)?w.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.In.add(t)}),n={collectionId:n,parent:o(r)},Na(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Ce(r),""],!1,!0);return Na(e).G(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(ft(t.parent))}return n})}addFieldIndex(e,r){let t=Ra(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=La(e);return i.next(e=>{t.put(ta(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=Ra(e),n=La(e),i=ka(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=Ra(e),r=ka(e),n=La(e);return t.J().next(()=>r.J()).next(()=>n.J())}createTargetIndexes(r,e){return w.forEach(this.dn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new ya(t).Pn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=ka(e),r=!0,n=new Map;return w.forEach(this.dn(c),t=>this.An(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let u=M(),h=[];return w.forEach(n,(e,t)=>{p(Aa,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Gn(c));var r,n=((t,e)=>{var r=Oe(e);if(void 0!==r)for(let e of $n(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 Ve(r))for(let e of $n(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 Ve(e)){let e=(0===r.kind?Hn:Wn)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new Tn(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of Ve(e)){let e=(0===r.kind?Wn:Hn)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new Tn(n,i)})(t,e),o=this.Rn(e,t,s),l=this.Rn(e,t,a),i=this.Vn(e,t,i),n=this.mn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return w.forEach(n,e=>d.H(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);u.has(t)||(u=u.add(t),h.push(t))})}))}).next(()=>h)}return w.resolve(null)})}dn(t){let e=this.En.get(t);return e||(e=0===t.filters.length?[t]:va(L.create(t.filters,"and")).map(e=>zn(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.En.set(t,e)),e}mn(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 f=0;f<e;++f){let t=s?this.fn(s[f/c]):Ca,e=this.gn(i,t,a[f%c],o),r=this.pn(i,t,l[f%c],u),n=h.map(e=>this.gn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}gn(e,t,r,n){var i=new ga(e,x.empty(),t,r);return n?i:i.nn()}pn(e,t,r,n){var i=new ga(e,x.empty(),t,r);return n?i.nn():i}An(e,t){let n=new ya(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.un(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.dn(t);return w.forEach(n,t=>this.An(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new C(v.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)}yn(e,t){var r,n=new fa;for(r of Ve(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.tn(r.kind);la.xt.At(e,i)}return n.Yt()}fn(e){var t=new fa;return la.xt.At(e,t.tn(0)),t.Yt()}wn(e,t){var r,n=new fa;return la.xt.At(hn(this.databaseId,t),n.tn(0===(r=Ve(e)).length?0:r[r.length-1].kind)),n.Yt()}Vn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new fa),0);for(var o of Ve(e)){let t=i[a++];for(let r of s)if(this.Sn(n,o.fieldPath)&&dn(t))s=this.bn(s,o,t);else{let e=r.tn(o.kind);la.xt.At(t,e)}}return this.Dn(s)}Rn(e,t,r){return this.Vn(e,t,r.position)}Dn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].Yt();return t}bn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new fa;e.seed(t.Yt()),la.xt.At(r,e.tn(n.kind)),s.push(e)}return s}Sn(e,t){return!!e.filters.find(e=>e instanceof R&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=Ra(e),n=La(e);return(t?r.G(Wt,IDBKeyRange.bound(t,t)):r.G()).next(e=>{let s=[];return w.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new Pe(e.sequenceNumber,new qe(Hs(e.readTime),new x(ft(e.documentKey)),e.largestBatchId)):Pe.empty(),n=t.fields.map(([e,t])=>new Fe(v.fromServerFormat(e),t)),new Me(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:E(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=Ra(e),s=La(e);return this.vn(e).next(t=>i.G(Wt,IDBKeyRange.bound(r,r)).next(e=>w.forEach(e,e=>s.put(ta(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return w.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?w.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),w.forEach(e,r=>this.Cn(i,t,r).next(e=>{var t=this.Fn(n,r);return e.isEqual(t)?w.resolve():this.Mn(i,n,r,e,t)}))))})}xn(e,t,r,n){return ka(e).put({indexId:n.indexId,uid:this.uid,arrayValue:n.arrayValue,directionalValue:n.directionalValue,orderedDocumentKey:this.wn(r,t.key),documentKey:t.key.path.toArray()})}On(e,t,r,n){return ka(e).delete([n.indexId,this.uid,n.arrayValue,n.directionalValue,this.wn(r,t.key),t.key.path.toArray()])}Cn(e,r,n){var t=ka(e);let i=new C(ma);return t.Z({index:rr,range:IDBKeyRange.only([n.indexId,this.uid,this.wn(n,r)])},(e,t)=>{i=i.add(new ga(n.indexId,r,t.arrayValue,t.directionalValue))}).next(()=>i)}Fn(t,r){let n=new C(ma);var i=this.yn(r,t);if(null!=i){let e=Oe(r);if(null!=e){var s=t.data.field(e.fieldPath);if(dn(s))for(let e of s.arrayValue.values||[])n=n.add(new ga(r.indexId,t.key,this.fn(e),i))}else n=n.add(new ga(r.indexId,t.key,Ca,i))}return n}Mn(t,r,s,e,a){p(Aa,"Updating index entries for document '%s'",r.key);let o=[];{var l=ma,u=e=>{o.push(this.xn(t,r,s,e))},h=e=>{o.push(this.On(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=Mr(c),i=Mr(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=Mr(d)):r?(h(n),n=Mr(c)):(n=Mr(c),i=Mr(d))}}return w.waitFor(o)}vn(e){let n=1;return La(e).Z({index:Jt,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)=>ma(e,t)).filter((e,t,r)=>!t||0!==ma(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=ma(s,r),t=ma(s,n);if(0===e)i[0]=r.nn();else if(0<e&&t<0)i.push(s),i.push(s.nn());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Nn(i[a],i[a+1]))return[];let e=[i[a].indexId,this.uid,i[a].arrayValue,i[a].directionalValue,Ca,[]],t=[i[a+1].indexId,this.uid,i[a+1].arrayValue,i[a+1].directionalValue,Ca,[]];s.push(IDBKeyRange.bound(e,t))}return s}Nn(e,t){return 0<ma(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(Ma)}getMinOffset(t,e){return w.mapArray(this.dn(e),e=>this.An(t,e).next(e=>e||T())).next(Ma)}}function Na(e){return r(e,zt)}function ka(e){return r(e,er)}function Ra(e){return r(e,Ht)}function La(e){return r(e,Yt)}function Ma(e){y(0!==e.length);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;je(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new qe(t.readTime,t.documentKey,r)}let Oa={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class Va{static withCacheSize(e){return new Va(e,Va.DEFAULT_COLLECTION_PERCENTILE,Va.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function Fa(t,r,n){let e=t.store(vt),i=t.store(St),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.Z({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{y(1===o)}));let u=[];for(let t of n.mutations){let e=Tt(r,t.key.path,n.batchId);s.push(i.delete(e)),u.push(t.key)}return w.waitFor(s).next(()=>u)}function Pa(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 T();t=e.noDocument}return JSON.stringify(t).length}Va.DEFAULT_COLLECTION_PERCENTILE=10,Va.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,Va.DEFAULT=new Va(41943040,Va.DEFAULT_COLLECTION_PERCENTILE,Va.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),Va.DISABLED=new Va(-1,0,0);class Ua{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Bn={}}static It(e,t,r,n){y(""!==e.uid);var i=e.isAuthenticated()?e.uid:"";return new Ua(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return qa(e).Z({index:_t,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,f,g){let m=ja(c),p=qa(c);return p.add({}).next(t=>{y("number"==typeof t);let e=new $i(t,d,f,g),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>ks(i.Tt,e)),l=a.mutations.map(e=>ks(i.Tt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let u=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));for(let h of g){let e=Tt(this.userId,h.key.path,t);u=u.add(h.key.path.popLast()),n.push(p.put(r)),n.push(m.put(e,Et))}return u.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Bn[t]=e.keys()}),w.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return qa(e).get(t).next(e=>e?(y(e.userId===this.userId),Ws(this.serializer,e)):null)}Ln(e,r){return this.Bn[r]?w.resolve(this.Bn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Bn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return qa(e).Z({index:_t,range:r},(e,t,r)=>{t.userId===this.userId&&(y(t.batchId>=n),i=Ws(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=ot;return qa(e).Z({index:_t,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,ot],[this.userId,Number.POSITIVE_INFINITY]);return qa(e).G(_t,t).next(e=>e.map(e=>Ws(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(a,o){let e=It(this.userId,o.path),t=IDBKeyRange.lowerBound(e),l=[];return ja(a).Z({range:t},(e,t,r)=>{var[n,i,s]=e,i=ft(i);if(n===this.userId&&o.path.isEqual(i))return qa(a).get(s).next(e=>{if(!e)throw T();y(e.userId===this.userId),l.push(Ws(this.serializer,e))});r.done()}).next(()=>l)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new C(E),r=[];return e.forEach(a=>{var e=It(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=ja(t).Z({range:e},(e,t,r)=>{var[n,i,s]=e,i=ft(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),w.waitFor(r).next(()=>this.kn(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=It(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new C(E);return ja(e).Z({range:n},(e,t,r)=>{var[n,i,s]=e,i=ft(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.kn(e,l))}kn(t,e){let r=[],n=[];return e.forEach(e=>{n.push(qa(t).get(e).next(e=>{if(null===e)throw T();y(e.userId===this.userId),r.push(Ws(this.serializer,e))}))}),w.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return Fa(t.ue,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.qn(r.batchId)}),w.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}qn(e){delete this.Bn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return w.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return ja(r).Z({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=ft(t[1]);n.push(e)}else r.done()}).next(()=>{y(0===n.length)})})}containsKey(e,t){return Ba(e,this.userId,t)}Qn(e){return za(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:ot,lastStreamToken:""})}}function Ba(e,s,t){let r=It(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return ja(e).Z({range:n,Y:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function qa(e){return r(e,vt)}function ja(e){return r(e,St)}function za(e){return r(e,yt)}class Ga{constructor(e){this.$n=e}next(){return this.$n+=2,this.$n}static Un(){return new Ga(0)}static Kn(){return new Ga(-1)}}class Ka{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.Wn(r).next(e=>{var t=new Ga(e.highestTargetId);return e.highestTargetId=t.next(),this.Gn(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.Wn(e).next(e=>g.fromTimestamp(new h(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.Wn(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.Wn(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.Gn(t,e)))}addTargetData(t,r){return this.zn(t,r).next(()=>this.Wn(t).next(e=>(e.targetCount+=1,this.jn(r,e),this.Gn(t,e))))}updateTargetData(e,t){return this.zn(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>Qa(t).delete(e.targetId)).next(()=>this.Wn(t)).next(e=>(y(0<e.targetCount),--e.targetCount,this.Gn(t,e)))}removeTargets(n,i,s){let a=0,o=[];return Qa(n).Z((e,t)=>{var r=Ys(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>w.waitFor(o)).next(()=>a)}forEachTarget(e,n){return Qa(e).Z((e,t)=>{var r=Ys(t);n(r)})}Wn(e){return $a(e).get(qt).next(e=>(y(null!==e),e))}Gn(e,t){return $a(e).put(qt,t)}zn(e,t){return Qa(e).put(Xs(this.serializer,t))}jn(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.Wn(e).next(e=>e.targetCount)}getTargetData(e,i){var t=Gn(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return Qa(e).Z({range:t,index:Ot},(e,t,r)=>{var n=Ys(t);Kn(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=Ha(r);return e.forEach(e=>{var t=o(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),w.waitFor(i)}removeMatchingKeys(r,e,n){let i=Ha(r);return w.forEach(e,e=>{var t=o(e.path);return w.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=Ha(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=Ha(e);let i=M();return n.Z({range:r,Y:!0},(e,t,r)=>{var n=ft(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=o(t.path),r=IDBKeyRange.bound([r],[Ce(r)],!1,!0);let n=0;return Ha(e).Z({index:Ut,Y:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}lt(e,t){return Qa(e).get(t).next(e=>e?Ys(e):null)}}function Qa(e){return r(e,Mt)}function $a(e){return r(e,jt)}function Ha(e){return r(e,Ft)}let Wa="LruGarbageCollector";function Ya([e,t],[r,n]){var i=E(e,r);return 0===i?E(t,n):i}class Xa{constructor(e){this.Hn=e,this.buffer=new C(Ya),this.Jn=0}Yn(){return++this.Jn}Zn(e){var t=[e,this.Yn()];if(this.buffer.size<this.Hn)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();Ya(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class Ja{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Xn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.er(6e4)}stop(){this.Xn&&(this.Xn.cancel(),this.Xn=null)}get started(){return null!==this.Xn}er(e){p(Wa,`Garbage collection scheduled in ${e}ms`),this.Xn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Xn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Je(e)?p(Wa,"Ignoring IndexedDB error during garbage collection: ",e):await Ke(e)}await this.er(3e5)})}}class Za{constructor(e,t){this.tr=e,this.params=t}calculateTargetCount(e,t){return this.tr.nr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return w.resolve(at.ae);let r=new Xa(t);return this.tr.forEachTarget(e,e=>r.Zn(e.sequenceNumber)).next(()=>this.tr.rr(e,e=>r.Zn(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.tr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.tr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector","Garbage collection skipped; disabled"),w.resolve(Oa)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),Oa):this.ir(t,r))}getCacheSize(e){return this.tr.getCacheSize(e)}ir(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(),fe()<=c.DEBUG&&p("LruGarbageCollector",`LRU Garbage Collection
4
+ }`}}class Hi{constructor(e,t){this.count=e,this.unchangedNames=t}}function Wi(e){switch(e){case b.OK:return T();case b.CANCELLED:case b.UNKNOWN:case b.DEADLINE_EXCEEDED:case b.RESOURCE_EXHAUSTED:case b.INTERNAL:case b.UNAVAILABLE:case b.UNAUTHENTICATED:return!1;case b.INVALID_ARGUMENT:case b.NOT_FOUND:case b.ALREADY_EXISTS:case b.PERMISSION_DENIED:case b.FAILED_PRECONDITION:case b.ABORTED:case b.OUT_OF_RANGE:case b.UNIMPLEMENTED:case b.DATA_LOSS:return!0;default:return T()}}function Yi(e){if(void 0===e)return d("GRPC error has no .code"),b.UNKNOWN;switch(e){case m.OK:return b.OK;case m.CANCELLED:return b.CANCELLED;case m.UNKNOWN:return b.UNKNOWN;case m.DEADLINE_EXCEEDED:return b.DEADLINE_EXCEEDED;case m.RESOURCE_EXHAUSTED:return b.RESOURCE_EXHAUSTED;case m.INTERNAL:return b.INTERNAL;case m.UNAVAILABLE:return b.UNAVAILABLE;case m.UNAUTHENTICATED:return b.UNAUTHENTICATED;case m.INVALID_ARGUMENT:return b.INVALID_ARGUMENT;case m.NOT_FOUND:return b.NOT_FOUND;case m.ALREADY_EXISTS:return b.ALREADY_EXISTS;case m.PERMISSION_DENIED:return b.PERMISSION_DENIED;case m.FAILED_PRECONDITION:return b.FAILED_PRECONDITION;case m.ABORTED:return b.ABORTED;case m.OUT_OF_RANGE:return b.OUT_OF_RANGE;case m.UNIMPLEMENTED:return b.UNIMPLEMENTED;case m.DATA_LOSS:return b.DATA_LOSS;default:return T()}}function Xi(){return new TextEncoder}(e=m=m||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";let Ji=new ae([4294967295,4294967295],0);function Zi(e){var t=Xi().encode(e),r=new oe;return r.update(t),new Uint8Array(r.digest())}function es(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 ae([r,n],0),new ae([i,t],0)]}class ts{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new rs("Invalid padding: "+t);if(r<0)throw new rs("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new rs("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new rs("Invalid padding when bitmap length is 0: "+t);this.Ee=8*e.length-t,this.de=ae.fromNumber(this.Ee)}Ae(e,t,r){let n=e.add(t.multiply(ae.fromNumber(r)));return(n=1===n.compare(Ji)?new ae([n.getBits(0),n.getBits(1)],0):n).modulo(this.de).toNumber()}Re(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ee)return!1;let t=Zi(e),[r,n]=es(t);for(let i=0;i<this.hashCount;i++){let e=this.Ae(r,n,i);if(!this.Re(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 ts(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.Ee){let e=Zi(i),[t,r]=es(e);for(let n=0;n<this.hashCount;n++){let e=this.Ae(t,r,n);this.Ve(e)}}}Ve(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class rs extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class ns{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,is.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new ns(g.min(),n,new A(E),hi,M())}}class is{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 is(r,t,M(),M(),M())}}class ss{constructor(e,t,r,n){this.me=e,this.removedTargetIds=t,this.key=r,this.fe=n}}class as{constructor(e,t){this.targetId=e,this.ge=t}}class os{constructor(e,t,r=D.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class ls{constructor(){this.pe=0,this.ye=cs(),this.we=D.EMPTY_BYTE_STRING,this.Se=!1,this.be=!0}get current(){return this.Se}get resumeToken(){return this.we}get De(){return 0!==this.pe}get ve(){return this.be}Ce(e){0<e.approximateByteSize()&&(this.be=!0,this.we=e)}Fe(){let r=M(),n=M(),i=M();return this.ye.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:T()}}),new is(this.we,this.Se,r,n,i)}Me(){this.be=!1,this.ye=cs()}xe(e,t){this.be=!0,this.ye=this.ye.insert(e,t)}Oe(e){this.be=!0,this.ye=this.ye.remove(e)}Ne(){this.pe+=1}Be(){--this.pe,y(0<=this.pe)}Le(){this.be=!0,this.Se=!0}}class us{constructor(e){this.ke=e,this.qe=new Map,this.Qe=hi,this.$e=hs(),this.Ke=hs(),this.Ue=new A(E)}We(e){for(var t of e.me)e.fe&&e.fe.isFoundDocument()?this.Ge(t,e.fe):this.ze(t,e.key,e.fe);for(var r of e.removedTargetIds)this.ze(r,e.key,e.fe)}je(r){this.forEachTarget(r,e=>{var t=this.He(e);switch(r.state){case 0:this.Je(e)&&t.Ce(r.resumeToken);break;case 1:t.Be(),t.De||t.Me(),t.Ce(r.resumeToken);break;case 2:t.Be(),t.De||this.removeTarget(e);break;case 3:this.Je(e)&&(t.Le(),t.Ce(r.resumeToken));break;case 4:this.Je(e)&&(this.Ye(e),t.Ce(r.resumeToken));break;default:T()}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.qe.forEach((e,t)=>{this.Je(t)&&r(t)})}Ze(n){let i=n.targetId,e=n.ge.count,t=this.Xe(i);if(t){var r=t.target;if(zn(r))if(0===e){let e=new x(r.path);this.ze(i,e,k.newNoDocument(e,g.min()))}else y(1===e);else{let r=this.et(i);if(r!==e){let e=this.tt(n),t=e?this.nt(e,n,r):1;if(0!==t){this.Ye(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ue=this.Ue.insert(i,e)}}}}}tt(e){var t=e.ge.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=Fr(t).toUint8Array()}catch(e){if(e instanceof Mr)return ge("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 ts(i,r,n)}catch(e){return ge(e instanceof rs?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.Ee?null:s}nt(e,t,r){return t.ge.count===r-this.st(e,t.targetId)?0:2}st(r,n){var e=this.ke.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.ke.it(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.ze(n,e,null),i++)}),i}ot(n){let i=new Map,s=(this.qe.forEach((e,t)=>{var r=this.Xe(t);if(r){if(e.current&&zn(r.target)){let e=new x(r.target.path);this._t(e).has(t)||this.ut(t,e)||this.ze(t,e,k.newNoDocument(e,n))}e.ve&&(i.set(t,e.Fe()),e.Me())}}),M());this.Ke.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.Xe(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.Qe.forEach((e,t)=>t.setReadTime(n));var e=new ns(n,i,this.Ue,this.Qe,s);return this.Qe=hi,this.$e=hs(),this.Ke=hs(),this.Ue=new A(E),e}Ge(e,t){var r;this.Je(e)&&(r=this.ut(e,t.key)?2:0,this.He(e).xe(t.key,r),this.Qe=this.Qe.insert(t.key,t),this.$e=this.$e.insert(t.key,this._t(t.key).add(e)),this.Ke=this.Ke.insert(t.key,this.ct(t.key).add(e)))}ze(e,t,r){var n;this.Je(e)&&(n=this.He(e),this.ut(e,t)?n.xe(t,1):n.Oe(t),this.Ke=this.Ke.insert(t,this.ct(t).delete(e)),this.Ke=this.Ke.insert(t,this.ct(t).add(e)),r)&&(this.Qe=this.Qe.insert(t,r))}removeTarget(e){this.qe.delete(e)}et(e){var t=this.He(e).Fe();return this.ke.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ne(e){this.He(e).Ne()}He(e){let t=this.qe.get(e);return t||(t=new ls,this.qe.set(e,t)),t}ct(e){let t=this.Ke.get(e);return t||(t=new C(E),this.Ke=this.Ke.insert(e,t)),t}_t(e){let t=this.$e.get(e);return t||(t=new C(E),this.$e=this.$e.insert(e,t)),t}Je(e){var t=null!==this.Xe(e);return t||p("WatchChangeAggregator","Detected inactive target",e),t}Xe(e){var t=this.qe.get(e);return t&&t.De?null:this.ke.lt(e)}Ye(t){this.qe.set(t,new ls),this.ke.getRemoteKeysForTarget(t).forEach(e=>{this.ze(t,e,null)})}ut(e,t){return this.ke.getRemoteKeysForTarget(e).has(t)}}function hs(){return new A(x.comparator)}function cs(){return new A(x.comparator)}let ds={asc:"ASCENDING",desc:"DESCENDING"},fs={"<":"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"},gs={and:"AND",or:"OR"};class ms{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ps(e,t){return e.useProto3Json||at(t)?t:{value:t}}function ys(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 vs(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function V(e){return y(!!e),g.fromTimestamp((t=Vr(e),new h(t.seconds,t.nanos)));var t}function ws(e,t){return _s(e,t).canonicalString()}function _s(e,t){e=e;var r=new S(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function bs(e){var t=S.fromString(e);return y(qs(t)),t}function Is(e,t){return ws(e.databaseId,t.path)}function Ts(e,t){var r=bs(t);if(r.get(1)!==e.databaseId.projectId)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(As(r))}function Es(e,t){return ws(e.databaseId,t)}function Ss(e){var t=bs(e);return 4===t.length?S.emptyPath():As(t)}function xs(e){return new S(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function As(e){return y(4<e.length&&"documents"===e.get(4)),e.popFirst(5)}function Cs(e,t,r){return{name:Is(e,t),fields:r.value.mapValue.fields}}function Ds(e,t,r){var n=Ts(e,t.name),i=V(t.updateTime),s=t.createTime?V(t.createTime):g.min(),a=new _n({mapValue:{fields:t.fields}}),n=k.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function Ns(e,t){let r;if(t instanceof Pi)r={update:Cs(e,t.key,t.value)};else if(t instanceof Ki)r={delete:Is(e,t.key)};else if(t instanceof Ui)r={update:Cs(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 zi))return T();r={verify:Is(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Ti)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof Ei)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof xi)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Ci)return{fieldPath:e.field.canonicalString(),increment:t.Ie};throw T()})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,ys(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:T())),r;var n}function ks(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?O.updateTime(V(s.updateTime)):void 0!==s.exists?O.exists(s.exists):O.none():O.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)y("REQUEST_TIME"===r.setToServerValue),t=new Ti;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new Ei(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new xi(e)}else"increment"in r?t=new Ci(e,r.increment):T();var n=v.fromServerFormat(r.fieldPath);return new ki(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=Ts(i,t.update.name),l=new _n({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new Lr(a.map(e=>v.fromServerFormat(e)));return new Ui(o,l,e,r,n)}return new Pi(o,l,r,n)}if(t.delete){let e=Ts(i,t.delete);return new Ki(e,r)}if(t.verify){let e=Ts(i,t.verify);return new zi(e,r)}return T()}function Rs(e,n){return e&&0<e.length?(y(void 0!==n),e.map(t=>{{var r=n;let e=t.updateTime?V(t.updateTime):V(r);return e.isEqual(g.min())&&(e=V(r)),new Ri(e,t.transformResults||[])}})):[]}function Ls(e,t){return{documents:[Es(e,t.path)]}}function Ms(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=Es(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof R?(e=>{if("=="===e.op){if(dn(e.value))return{unaryFilter:{field:Us(e.field),op:"IS_NAN"}};if(cn(e.value))return{unaryFilter:{field:Us(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(dn(e.value))return{unaryFilter:{field:Us(e.field),op:"IS_NOT_NAN"}};if(cn(e.value))return{unaryFilter:{field:Us(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:Us(e.field),op:Fs(e.op),value:e.value}}})(e):e instanceof L?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:Ps(e.op),filters:t}}})(e):T()}(L.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:Us((e=e).field),direction:(e=e.dir,ds[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=ps(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}),{ht:r,parent:i}}function Os(e){let t=Ss(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){y(1===i);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=Bs(i.unaryFilter.field);return R.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=Bs(i.unaryFilter.field);return R.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=Bs(i.unaryFilter.field);return R.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=Bs(i.unaryFilter.field);return R.create(n,"!=",{nullValue:"NULL_VALUE"});default:return T()}})(e):void 0!==e.fieldFilter?(e=>R.create(Bs(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";default:return T()}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>L.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return T()}})(e.compositeFilter.op)))(e):T()}(e))instanceof L&&Cn(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new En(Bs(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,at(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(u=(e=n.startAt,i=!!e.before,r=e.values||[],new bn(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new bn(i,r))),Wn(t,s,o,a,l,"F",u,h)}function Vs(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 T()}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function Fs(e){return fs[e]}function Ps(e){return gs[e]}function Us(e){return{fieldPath:e.canonicalString()}}function Bs(e){return v.fromServerFormat(e.fieldPath)}function qs(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class js{constructor(e,t,r,n,i=g.min(),s=g.min(),a=D.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 js(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new js(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new js(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new js(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class Ks{constructor(e){this.Tt=e}}function zs(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:Gs(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Is(e=e.Tt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:ys(e,r.version.toTimestamp()),createTime:ys(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:Qs(t.version)};else{if(!t.isUnknownDocument())return T();i.unknownDocument={path:n.path.toArray(),version:Qs(t.version)}}return i}function Gs(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function Qs(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function $s(e){var t=new h(e.seconds,e.nanoseconds);return g.fromTimestamp(t)}function Hs(t,r){let e=(r.baseMutations||[]).map(e=>ks(t.Tt,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=>ks(t.Tt,e)),i=h.fromMillis(r.localWriteTimeMs);return new Gi(r.batchId,i,e,n)}function Ws(e){var t,r=$s(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?$s(e.lastLimboFreeSnapshotVersion):g.min(),i=void 0!==e.query.documents?(y(1===(t=e.query).documents.length),ei(Yn(Ss(t.documents[0])))):ei(Os(e.query));return new js(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,D.fromBase64String(e.resumeToken))}function Ys(e,t){var r=Qs(t.snapshotVersion),n=Qs(t.lastLimboFreeSnapshotVersion),i=zn(t.target)?Ls(e.Tt,t.target):Ms(e.Tt,t.target).ht,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:jn(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function Xs(e){var t=Os({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?ri(t,t.limit,"L"):t}function Js(e,t){return new $i(t.largestBatchId,ks(e.Tt,t.overlayMutation))}function Zs(e,t){var r=t.path.lastSegment();return[e,o(t.path.popLast()),r]}function ea(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:Qs(n.readTime),documentKey:o(n.documentKey.path),largestBatchId:n.largestBatchId}}class ta{getBundleMetadata(e,t){return ra(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:$s(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return ra(e).put({bundleId:(e=t).id,createTime:Qs(V(e.createTime)),version:e.version})}getNamedQuery(e,t){return na(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:Xs(e.bundledQuery),readTime:$s(e.readTime)}})}saveNamedQuery(e,t){return na(e).put({name:(e=t).name,readTime:Qs(V(e.readTime)),bundledQuery:e.bundledQuery})}}function ra(e){return r(e,zt)}function na(e){return r(e,Gt)}class ia{constructor(e,t){this.serializer=e,this.userId=t}static It(e,t){var r=t.uid||"";return new ia(e,r)}getOverlay(e,t){return sa(e).get(Zs(this.userId,t)).next(e=>e?Js(this.serializer,e):null)}getOverlays(e,t){let r=gi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new $i(i,t);s.push(this.Et(n,r))}),w.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(o(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(sa(r).J(ir,t))}),w.waitFor(i)}getOverlaysForCollection(e,t,r){let n=gi(),i=o(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return sa(e).G(ir,s).next(e=>{for(var t of e){let e=Js(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=gi(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return sa(e).Z({index:ar,range:n},(e,t,r)=>{var n=Js(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}Et(e,t){return sa(e).put(((e,t,r)=>{var[,n,i]=Zs(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:Ns(e.Tt,r.mutation)}})(this.serializer,this.userId,t))}}function sa(e){return r(e,rr)}class aa{dt(e){return r(e,lr)}getSessionToken(e){return this.dt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?D.fromUint8Array(t):D.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.dt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class oa{constructor(){}At(e,t){this.Rt(e,t),t.Vt()}Rt(t,r){if("nullValue"in t)this.ft(r,5);else if("booleanValue"in t)this.ft(r,10),r.gt(t.booleanValue?1:0);else if("integerValue"in t)this.ft(r,15),r.gt(N(t.integerValue));else if("doubleValue"in t){var e=N(t.doubleValue);isNaN(e)?this.ft(r,13):(this.ft(r,15),ot(e)?r.gt(0):r.gt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.ft(r,20),"string"==typeof e&&(e=Vr(e)),r.yt(""+(e.seconds||"")),r.gt(e.nanos||0)}else"stringValue"in t?(this.wt(t.stringValue,r),this.St(r)):"bytesValue"in t?(this.ft(r,30),r.bt(Fr(t.bytesValue)),this.St(r)):"referenceValue"in t?this.Dt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.ft(r,45),r.gt(e.latitude||0),r.gt(e.longitude||0)):"mapValue"in t?pn(t)?this.ft(r,Number.MAX_SAFE_INTEGER):gn(t)?this.vt(t.mapValue,r):(this.Ct(t.mapValue,r),this.St(r)):"arrayValue"in t?(this.Ft(t.arrayValue,r),this.St(r)):T()}wt(e,t){this.ft(t,25),this.Mt(e,t)}Mt(e,t){t.yt(e)}Ct(e,t){var r=e.fields||{};this.ft(t,55);for(let e of Object.keys(r))this.wt(e,t),this.Rt(r[e],t)}vt(e,t){var r=e.fields||{},n=(this.ft(t,53),Jr),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.ft(t,15),t.gt(N(i)),this.wt(n,t),this.Rt(r[n],t)}Ft(e,t){var r=e.values||[];this.ft(t,50);for(let e of r)this.Rt(e,t)}Dt(e,t){this.ft(t,37),x.fromName(e).path.forEach(e=>{this.ft(t,60),this.Mt(e,t)})}ft(e,t){e.gt(t)}St(e){e.gt(2)}}oa.xt=new oa;function la(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 ua{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Ot(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Nt(r.value),r=t.next();this.Bt()}Lt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.kt(r.value),r=t.next();this.qt()}Qt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Nt(e);else if(e<2048)this.Nt(960|e>>>6),this.Nt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Nt(480|e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e);else{let e=t.codePointAt(0);this.Nt(240|e>>>18),this.Nt(128|63&e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e)}}this.Bt()}$t(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.kt(e);else if(e<2048)this.kt(960|e>>>6),this.kt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.kt(480|e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e);else{let e=t.codePointAt(0);this.kt(240|e>>>18),this.kt(128|63&e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e)}}this.qt()}Kt(e){var t=this.Ut(e),r=la(t);this.Wt(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]}Gt(e){var t=this.Ut(e),r=la(t);this.Wt(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])}zt(){this.jt(255),this.jt(255)}Ht(){this.Jt(255),this.Jt(255)}reset(){this.position=0}seed(e){this.Wt(e.length),this.buffer.set(e,this.position),this.position+=e.length}Yt(){return this.buffer.slice(0,this.position)}Ut(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}Nt(e){var t=255&e;0==t?(this.jt(0),this.jt(255)):255==t?(this.jt(255),this.jt(0)):this.jt(t)}kt(e){var t=255&e;0==t?(this.Jt(0),this.Jt(255)):255==t?(this.Jt(255),this.Jt(0)):this.Jt(e)}Bt(){this.jt(0),this.jt(1)}qt(){this.Jt(0),this.Jt(1)}jt(e){this.Wt(1),this.buffer[this.position++]=e}Jt(e){this.Wt(1),this.buffer[this.position++]=~e}Wt(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 ha{constructor(e){this.Zt=e}bt(e){this.Zt.Ot(e)}yt(e){this.Zt.Qt(e)}gt(e){this.Zt.Kt(e)}Vt(){this.Zt.zt()}}class ca{constructor(e){this.Zt=e}bt(e){this.Zt.Lt(e)}yt(e){this.Zt.$t(e)}gt(e){this.Zt.Gt(e)}Vt(){this.Zt.Ht()}}class da{constructor(){this.Zt=new ua,this.Xt=new ha(this.Zt),this.en=new ca(this.Zt)}seed(e){this.Zt.seed(e)}tn(e){return 0===e?this.Xt:this.en}Yt(){return this.Zt.Yt()}reset(){this.Zt.reset()}}class fa{constructor(e,t,r,n){this.indexId=e,this.documentKey=t,this.arrayValue=r,this.directionalValue=n}nn(){var e=this.directionalValue.length,t=0===e||255===this.directionalValue[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.directionalValue,0),t!==e?r.set([0],this.directionalValue.length):++r[r.length-1],new fa(this.indexId,this.documentKey,this.arrayValue,r)}}function ga(e,t){var r=e.indexId-t.indexId;return 0!=r||0!==(r=ma(e.arrayValue,t.arrayValue))||0!==(r=ma(e.directionalValue,t.directionalValue))?r:x.comparator(e.documentKey,t.documentKey)}function ma(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}class pa{constructor(e){this.rn=new C((e,t)=>v.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.sn=e.orderBy,this._n=[];for(var t of e.filters){let e=t;e.isInequality()?this.rn=this.rn.add(e):this._n.push(e)}}get an(){return 1<this.rn.size}un(e){if(y(e.collectionGroup===this.collectionId),this.an)return!1;let t=Le(e);if(void 0!==t&&!this.cn(t))return!1;var r=Me(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.cn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.rn.size){let t=this.rn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.ln(t,e)||!this.hn(this.sn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.sn.length||!this.hn(this.sn[s++],e))return!1}}return!0}Pn(){if(this.an)return null;let e=new C(v.comparator);var t,r,n=[];for(t of this._n)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new Oe(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new Oe(t.field,0))));for(r of this.sn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new Oe(r.field,"asc"===r.dir?0:1)));return new Re(Re.UNKNOWN_ID,this.collectionId,n,Ve.empty())}cn(e){for(var t of this._n)if(this.ln(t,e))return!0;return!1}ln(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)}hn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function ya(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(y(e instanceof R||e instanceof L),e instanceof R)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=L.create(r,e.op);return n=Ta(n),_a(n)?n:(y(n instanceof L),y(xn(n)),y(1<n.filters.length),n.filters.reduce((e,t)=>ba(e,t)))}(function t(r){var n;if(y(r instanceof R||r instanceof L),r instanceof R){if(r instanceof Fn){let e=(null==(n=null==(n=r.value.arrayValue)?void 0:n.values)?void 0:n.map(e=>R.create(r.field,"==",e)))||[];return L.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return L.create(e,r.op)}(e)),y(_a(t)),va(t)||wa(t)?[t]:t.getFilters())}function va(e){return e instanceof R}function wa(e){return e instanceof L&&Cn(e)}function _a(e){return va(e)||wa(e)||(e=>{if(e instanceof L&&An(e)){for(var t of e.getFilters())if(!va(t)&&!wa(t))return!1;return!0}return!1})(e)}function ba(e,t){var r,n;return y(e instanceof R||e instanceof L),y(t instanceof R||t instanceof L),Ta(e instanceof R?t instanceof R?(r=e,n=t,L.create([r,n],"and")):Ia(e,t):t instanceof R?Ia(t,e):((e,t)=>{if(y(0<e.filters.length&&0<t.filters.length),xn(e)&&xn(t))return Nn(e,t.getFilters());let r=An(e)?e:t,n=An(e)?t:e,i=r.filters.map(e=>ba(e,n));return L.create(i,"or")})(e,t))}function Ia(t,e){var r;return xn(e)?Nn(e,t.getFilters()):(r=e.filters.map(e=>ba(t,e)),L.create(r,"or"))}function Ta(t){if(y(t instanceof R||t instanceof L),t instanceof R)return t;var e=t.getFilters();if(1===e.length)return Ta(e[0]);if(Dn(t))return t;let r=e.map(e=>Ta(e)),n=[];return r.forEach(e=>{e instanceof R?n.push(e):e instanceof L&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:L.create(n,t.op)}class Ea{constructor(){this.Tn=new Sa}addToCollectionParentIndex(e,t){return this.Tn.add(t),w.resolve()}getCollectionParents(e,t){return w.resolve(this.Tn.getEntries(t))}addFieldIndex(e,t){return w.resolve()}deleteFieldIndex(e,t){return w.resolve()}deleteAllFieldIndexes(e){return w.resolve()}createTargetIndexes(e,t){return w.resolve()}getDocumentsMatchingTarget(e,t){return w.resolve(null)}getIndexType(e,t){return w.resolve(0)}getFieldIndexes(e,t){return w.resolve([])}getNextCollectionGroupToUpdate(e){return w.resolve(null)}getMinOffset(e,t){return w.resolve(Ue.min())}getMinOffsetFromCollectionGroup(e,t){return w.resolve(Ue.min())}updateCollectionGroup(e,t,r){return w.resolve()}updateIndexEntries(e,t){return w.resolve()}}class Sa{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new C(S.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 C(S.comparator)).toArray()}}let xa="IndexedDbIndexManager",Aa=new Uint8Array(0);class Ca{constructor(e,t){this.databaseId=t,this.In=new Sa,this.En=new ui(e=>jn(e),(e,t)=>Kn(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.In.has(t)?w.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.In.add(t)}),n={collectionId:n,parent:o(r)},Da(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[xe(r),""],!1,!0);return Da(e).G(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(ct(t.parent))}return n})}addFieldIndex(e,r){let t=ka(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=Ra(e);return i.next(e=>{t.put(ea(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=ka(e),n=Ra(e),i=Na(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=ka(e),r=Na(e),n=Ra(e);return t.J().next(()=>r.J()).next(()=>n.J())}createTargetIndexes(r,e){return w.forEach(this.dn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new pa(t).Pn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=Na(e),r=!0,n=new Map;return w.forEach(this.dn(c),t=>this.An(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let u=M(),h=[];return w.forEach(n,(e,t)=>{p(xa,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+jn(c));var r,n=((t,e)=>{var r=Le(e);if(void 0!==r)for(let e of Gn(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 Me(r))for(let e of Gn(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 Me(e)){let e=(0===r.kind?Qn:$n)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new bn(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of Me(e)){let e=(0===r.kind?$n:Qn)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new bn(n,i)})(t,e),o=this.Rn(e,t,s),l=this.Rn(e,t,a),i=this.Vn(e,t,i),n=this.mn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return w.forEach(n,e=>d.H(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);u.has(t)||(u=u.add(t),h.push(t))})}))}).next(()=>h)}return w.resolve(null)})}dn(t){let e=this.En.get(t);return e||(e=0===t.filters.length?[t]:ya(L.create(t.filters,"and")).map(e=>qn(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.En.set(t,e)),e}mn(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 f=0;f<e;++f){let t=s?this.fn(s[f/c]):Aa,e=this.gn(i,t,a[f%c],o),r=this.pn(i,t,l[f%c],u),n=h.map(e=>this.gn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}gn(e,t,r,n){var i=new fa(e,x.empty(),t,r);return n?i:i.nn()}pn(e,t,r,n){var i=new fa(e,x.empty(),t,r);return n?i.nn():i}An(e,t){let n=new pa(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.un(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.dn(t);return w.forEach(n,t=>this.An(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new C(v.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)}yn(e,t){var r,n=new da;for(r of Me(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.tn(r.kind);oa.xt.At(e,i)}return n.Yt()}fn(e){var t=new da;return oa.xt.At(e,t.tn(0)),t.Yt()}wn(e,t){var r,n=new da;return oa.xt.At(ln(this.databaseId,t),n.tn(0===(r=Me(e)).length?0:r[r.length-1].kind)),n.Yt()}Vn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new da),0);for(var o of Me(e)){let t=i[a++];for(let r of s)if(this.Sn(n,o.fieldPath)&&hn(t))s=this.bn(s,o,t);else{let e=r.tn(o.kind);oa.xt.At(t,e)}}return this.Dn(s)}Rn(e,t,r){return this.Vn(e,t,r.position)}Dn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].Yt();return t}bn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new da;e.seed(t.Yt()),oa.xt.At(r,e.tn(n.kind)),s.push(e)}return s}Sn(e,t){return!!e.filters.find(e=>e instanceof R&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=ka(e),n=Ra(e);return(t?r.G($t,IDBKeyRange.bound(t,t)):r.G()).next(e=>{let s=[];return w.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new Ve(e.sequenceNumber,new Ue($s(e.readTime),new x(ct(e.documentKey)),e.largestBatchId)):Ve.empty(),n=t.fields.map(([e,t])=>new Oe(v.fromServerFormat(e),t)),new Re(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:E(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=ka(e),s=Ra(e);return this.vn(e).next(t=>i.G($t,IDBKeyRange.bound(r,r)).next(e=>w.forEach(e,e=>s.put(ea(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return w.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?w.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),w.forEach(e,r=>this.Cn(i,t,r).next(e=>{var t=this.Fn(n,r);return e.isEqual(t)?w.resolve():this.Mn(i,n,r,e,t)}))))})}xn(e,t,r,n){return Na(e).put({indexId:n.indexId,uid:this.uid,arrayValue:n.arrayValue,directionalValue:n.directionalValue,orderedDocumentKey:this.wn(r,t.key),documentKey:t.key.path.toArray()})}On(e,t,r,n){return Na(e).delete([n.indexId,this.uid,n.arrayValue,n.directionalValue,this.wn(r,t.key),t.key.path.toArray()])}Cn(e,r,n){var t=Na(e);let i=new C(ga);return t.Z({index:er,range:IDBKeyRange.only([n.indexId,this.uid,this.wn(n,r)])},(e,t)=>{i=i.add(new fa(n.indexId,r,t.arrayValue,t.directionalValue))}).next(()=>i)}Fn(t,r){let n=new C(ga);var i=this.yn(r,t);if(null!=i){let e=Le(r);if(null!=e){var s=t.data.field(e.fieldPath);if(hn(s))for(let e of s.arrayValue.values||[])n=n.add(new fa(r.indexId,t.key,this.fn(e),i))}else n=n.add(new fa(r.indexId,t.key,Aa,i))}return n}Mn(t,r,s,e,a){p(xa,"Updating index entries for document '%s'",r.key);let o=[];{var l=ga,u=e=>{o.push(this.xn(t,r,s,e))},h=e=>{o.push(this.On(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=Rr(c),i=Rr(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=Rr(d)):r?(h(n),n=Rr(c)):(n=Rr(c),i=Rr(d))}}return w.waitFor(o)}vn(e){let n=1;return Ra(e).Z({index:Yt,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)=>ga(e,t)).filter((e,t,r)=>!t||0!==ga(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=ga(s,r),t=ga(s,n);if(0===e)i[0]=r.nn();else if(0<e&&t<0)i.push(s),i.push(s.nn());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Nn(i[a],i[a+1]))return[];let e=[i[a].indexId,this.uid,i[a].arrayValue,i[a].directionalValue,Aa,[]],t=[i[a+1].indexId,this.uid,i[a+1].arrayValue,i[a+1].directionalValue,Aa,[]];s.push(IDBKeyRange.bound(e,t))}return s}Nn(e,t){return 0<ga(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(La)}getMinOffset(t,e){return w.mapArray(this.dn(e),e=>this.An(t,e).next(e=>e||T())).next(La)}}function Da(e){return r(e,qt)}function Na(e){return r(e,Jt)}function ka(e){return r(e,Qt)}function Ra(e){return r(e,Ht)}function La(e){y(0!==e.length);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;Be(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new Ue(t.readTime,t.documentKey,r)}let Ma={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class Oa{static withCacheSize(e){return new Oa(e,Oa.DEFAULT_COLLECTION_PERCENTILE,Oa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function Va(t,r,n){let e=t.store(pt),i=t.store(Tt),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.Z({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{y(1===o)}));let u=[];for(let t of n.mutations){let e=bt(r,t.key.path,n.batchId);s.push(i.delete(e)),u.push(t.key)}return w.waitFor(s).next(()=>u)}function Fa(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 T();t=e.noDocument}return JSON.stringify(t).length}Oa.DEFAULT_COLLECTION_PERCENTILE=10,Oa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,Oa.DEFAULT=new Oa(41943040,Oa.DEFAULT_COLLECTION_PERCENTILE,Oa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),Oa.DISABLED=new Oa(-1,0,0);class Pa{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Bn={}}static It(e,t,r,n){y(""!==e.uid);var i=e.isAuthenticated()?e.uid:"";return new Pa(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return Ba(e).Z({index:vt,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,f,g){let m=qa(c),p=Ba(c);return p.add({}).next(t=>{y("number"==typeof t);let e=new Gi(t,d,f,g),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>Ns(i.Tt,e)),l=a.mutations.map(e=>Ns(i.Tt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let u=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));for(let h of g){let e=bt(this.userId,h.key.path,t);u=u.add(h.key.path.popLast()),n.push(p.put(r)),n.push(m.put(e,It))}return u.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Bn[t]=e.keys()}),w.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return Ba(e).get(t).next(e=>e?(y(e.userId===this.userId),Hs(this.serializer,e)):null)}Ln(e,r){return this.Bn[r]?w.resolve(this.Bn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Bn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return Ba(e).Z({index:vt,range:r},(e,t,r)=>{t.userId===this.userId&&(y(t.batchId>=n),i=Hs(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=st;return Ba(e).Z({index:vt,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,st],[this.userId,Number.POSITIVE_INFINITY]);return Ba(e).G(vt,t).next(e=>e.map(e=>Hs(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(a,o){let e=_t(this.userId,o.path),t=IDBKeyRange.lowerBound(e),l=[];return qa(a).Z({range:t},(e,t,r)=>{var[n,i,s]=e,i=ct(i);if(n===this.userId&&o.path.isEqual(i))return Ba(a).get(s).next(e=>{if(!e)throw T();y(e.userId===this.userId),l.push(Hs(this.serializer,e))});r.done()}).next(()=>l)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new C(E),r=[];return e.forEach(a=>{var e=_t(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=qa(t).Z({range:e},(e,t,r)=>{var[n,i,s]=e,i=ct(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),w.waitFor(r).next(()=>this.kn(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=_t(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new C(E);return qa(e).Z({range:n},(e,t,r)=>{var[n,i,s]=e,i=ct(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.kn(e,l))}kn(t,e){let r=[],n=[];return e.forEach(e=>{n.push(Ba(t).get(e).next(e=>{if(null===e)throw T();y(e.userId===this.userId),r.push(Hs(this.serializer,e))}))}),w.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return Va(t.ue,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.qn(r.batchId)}),w.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}qn(e){delete this.Bn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return w.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return qa(r).Z({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=ct(t[1]);n.push(e)}else r.done()}).next(()=>{y(0===n.length)})})}containsKey(e,t){return Ua(e,this.userId,t)}Qn(e){return ja(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:st,lastStreamToken:""})}}function Ua(e,s,t){let r=_t(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return qa(e).Z({range:n,Y:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function Ba(e){return r(e,pt)}function qa(e){return r(e,Tt)}function ja(e){return r(e,mt)}class Ka{constructor(e){this.$n=e}next(){return this.$n+=2,this.$n}static Kn(){return new Ka(0)}static Un(){return new Ka(-1)}}class za{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.Wn(r).next(e=>{var t=new Ka(e.highestTargetId);return e.highestTargetId=t.next(),this.Gn(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.Wn(e).next(e=>g.fromTimestamp(new h(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.Wn(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.Wn(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.Gn(t,e)))}addTargetData(t,r){return this.zn(t,r).next(()=>this.Wn(t).next(e=>(e.targetCount+=1,this.jn(r,e),this.Gn(t,e))))}updateTargetData(e,t){return this.zn(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>Ga(t).delete(e.targetId)).next(()=>this.Wn(t)).next(e=>(y(0<e.targetCount),--e.targetCount,this.Gn(t,e)))}removeTargets(n,i,s){let a=0,o=[];return Ga(n).Z((e,t)=>{var r=Ws(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>w.waitFor(o)).next(()=>a)}forEachTarget(e,n){return Ga(e).Z((e,t)=>{var r=Ws(t);n(r)})}Wn(e){return Qa(e).get(Ut).next(e=>(y(null!==e),e))}Gn(e,t){return Qa(e).put(Ut,t)}zn(e,t){return Ga(e).put(Ys(this.serializer,t))}jn(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.Wn(e).next(e=>e.targetCount)}getTargetData(e,i){var t=jn(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return Ga(e).Z({range:t,index:Lt},(e,t,r)=>{var n=Ws(t);Kn(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=$a(r);return e.forEach(e=>{var t=o(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),w.waitFor(i)}removeMatchingKeys(r,e,n){let i=$a(r);return w.forEach(e,e=>{var t=o(e.path);return w.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=$a(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=$a(e);let i=M();return n.Z({range:r,Y:!0},(e,t,r)=>{var n=ct(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=o(t.path),r=IDBKeyRange.bound([r],[xe(r)],!1,!0);let n=0;return $a(e).Z({index:Ft,Y:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}lt(e,t){return Ga(e).get(t).next(e=>e?Ws(e):null)}}function Ga(e){return r(e,Rt)}function Qa(e){return r(e,Bt)}function $a(e){return r(e,Ot)}let Ha="LruGarbageCollector";function Wa([e,t],[r,n]){var i=E(e,r);return 0===i?E(t,n):i}class Ya{constructor(e){this.Hn=e,this.buffer=new C(Wa),this.Jn=0}Yn(){return++this.Jn}Zn(e){var t=[e,this.Yn()];if(this.buffer.size<this.Hn)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();Wa(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class Xa{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Xn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.er(6e4)}stop(){this.Xn&&(this.Xn.cancel(),this.Xn=null)}get started(){return null!==this.Xn}er(e){p(Ha,`Garbage collection scheduled in ${e}ms`),this.Xn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Xn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Ye(e)?p(Ha,"Ignoring IndexedDB error during garbage collection: ",e):await Ke(e)}await this.er(3e5)})}}class Ja{constructor(e,t){this.tr=e,this.params=t}calculateTargetCount(e,t){return this.tr.nr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return w.resolve(it.ae);let r=new Ya(t);return this.tr.forEachTarget(e,e=>r.Zn(e.sequenceNumber)).next(()=>this.tr.rr(e,e=>r.Zn(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.tr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.tr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector","Garbage collection skipped; disabled"),w.resolve(Ma)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),Ma):this.ir(t,r))}getCacheSize(e){return this.tr.getCacheSize(e)}ir(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(),fe()<=c.DEBUG&&p("LruGarbageCollector",`LRU Garbage Collection
5
5
  Counted targets in ${a-h}ms
6
- 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`),w.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function eo(e,t){return new Za(e,t)}class to{constructor(e,t){this.db=e,this.garbageCollector=eo(this,t)}nr(e){let r=this.sr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}rr(e,r){return this._r(e,(e,t)=>r(t))}addReference(e,t,r){return ro(e,r)}removeReference(e,t,r){return ro(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return ro(e,t)}ar(e,r){{var n=e,i=r;let t=!1;return za(n).X(e=>Ba(n,e,i).next(e=>(e&&(t=!0),w.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this._r(r,(t,e)=>{if(e<=n){let e=this.ar(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,g.min()),Ha(r).delete([0,o(t.path)])))});s.push(e)}}).next(()=>w.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 ro(e,t)}_r(e,n){var t=Ha(e);let i,s=at.ae;return t.Z({index:Ut},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==at.ae&&n(new x(ft(i)),s),s=r,i=t):s=at.ae}).next(()=>{s!==at.ae&&n(new x(ft(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function ro(e,t){return Ha(e).put((e=e.currentSequenceNumber,{targetId:0,path:o(t.path),sequenceNumber:e}))}class no{constructor(){this.changes=new ci(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,k.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?w.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 io{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return lo(e).put(r)}removeEntry(e,t,r){return lo(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],Qs(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.ur(t,e)))}getEntry(e,r){let n=k.newInvalidDocument(r);return lo(e).Z({index:Ct,range:IDBKeyRange.only(uo(r))},(e,t)=>{n=this.cr(r,t)}).next(()=>n)}lr(e,r){let n={size:0,document:k.newInvalidDocument(r)};return lo(e).Z({index:Ct,range:IDBKeyRange.only(uo(r))},(e,t)=>{n={document:this.cr(r,t),size:Pa(t)}}).next(()=>n)}getEntries(e,t){let n=di;return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r)}).next(()=>n)}Pr(e,t){let n=di,i=new A(x.comparator);return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r),i=i.insert(e,Pa(t))}).next(()=>({documents:n,Tr:i}))}hr(e,t,i){if(t.isEmpty())return w.resolve();let r=new C(co),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(uo(r.first()),uo(r.last()))),s=r.getIterator(),a=s.getNext();return lo(e).Z({index:Ct,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&co(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.W(uo(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),Qs(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 lo(e).G(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=di;for(let r of e){let e=this.cr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(li(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=di;var n=ho(t,r),a=ho(t,qe.max());return lo(e).Z({index:Nt,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.cr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new ao(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return oo(e).get(Lt).next(e=>(y(!!e),e))}ur(e,t){return oo(e).put(Lt,t)}cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=Ns(e.Tt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=Hs(r.noDocument.readTime);n=k.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return T();{let e=x.fromSegments(r.unknownDocument.path),t=Hs(r.unknownDocument.version);n=k.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new h(e[0],e[1]),g.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(g.min()))return e}return k.newInvalidDocument(e)}}function so(e){return new io(e)}class ao extends no{constructor(e,t){super(),this.Ir=e,this.trackRemovals=t,this.Er=new ci(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Er.get(t);if(a.push(this.Ir.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=Ks(this.Ir.serializer,r),i=(l=l.add(t.path.popLast()),Pa(n));o+=i-e.size,a.push(this.Ir.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=Ks(this.Ir.serializer,r.convertToNoDocument(g.min()));a.push(this.Ir.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Ir.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Ir.updateMetadata(s,o)),w.waitFor(a)}getFromCache(e,t){return this.Ir.lr(e,t).next(e=>(this.Er.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Ir.Pr(e,t).next(({documents:r,Tr:e})=>(e.forEach((e,t)=>{this.Er.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function oo(e){return r(e,Rt)}function lo(e){return r(e,xt)}function uo(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function ho(e,t){var r=t.documentKey.path.toArray();return[e,Qs(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function co(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=E(r[s],n[s]))return i;return(i=E(r.length,n.length))||(i=E(r[r.length-2],n[n.length-2]))||E(r[r.length-1],n[n.length-1])}class fo{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class go{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&&Pi(n.mutation,e,Or.empty(),h.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,M()).next(()=>e))}getLocalViewOfDocuments(e,t,r=M()){let n=pi();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=gi();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=pi();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,M()))}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=di,a=pi(),o=pi();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof qi)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),Pi(r.mutation,t,r.mutation.getFieldMask(),h.now())):a.set(t.key,Or.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var r;return o.set(e,new fo(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=pi(),u=new A((e,t)=>e-t),h=M();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)||Or.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(u.get(n.batchId)||M()).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=pi();r.forEach(e=>{var t;h.has(e)||(null!==(t=Fi(o.get(e),l.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return w.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):ei(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):w.resolve(pi());let n=Le,i=r;return e.next(e=>w.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?w.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,M())).next(e=>({batchId:n,changes:mi(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=gi();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=gi();return this.indexManager.getCollectionParents(n,o).next(e=>w.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Yn(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,k.newInvalidDocument(r)))});let i=gi();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&Pi(r.mutation,t,Or.empty(),h.now()),li(s,t)&&(i=i.insert(e,t))}),i})}}class mo{constructor(e){this.serializer=e,this.dr=new Map,this.Ar=new Map}getBundleMetadata(e,t){return w.resolve(this.dr.get(t))}saveBundleMetadata(e,t){return this.dr.set(t.id,{id:t.id,version:t.version,createTime:V(t.createTime)}),w.resolve()}getNamedQuery(e,t){return w.resolve(this.Ar.get(t))}saveNamedQuery(e,t){return this.Ar.set(t.name,{name:(t=t).name,query:Js(t.bundledQuery),readTime:V(t.readTime)}),w.resolve()}}class po{constructor(){this.overlays=new A(x.comparator),this.Rr=new Map}getOverlay(e,t){return w.resolve(this.overlays.get(t))}getOverlays(e,t){let r=pi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.Et(r,n,t)}),w.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Rr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Rr.delete(r)),w.resolve()}getOverlaysForCollection(e,r,n){let i=pi(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return w.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new A((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=pi(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=pi(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return w.resolve(a)}Et(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Rr.get(n.largestBatchId).delete(r.key);this.Rr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new Wi(t,r));let i=this.Rr.get(t);void 0===i&&(i=M(),this.Rr.set(t,i)),this.Rr.set(t,i.add(r.key))}}class yo{constructor(){this.sessionToken=D.EMPTY_BYTE_STRING}getSessionToken(e){return w.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,w.resolve()}}class vo{constructor(){this.Vr=new C(u.mr),this.gr=new C(u.pr)}isEmpty(){return this.Vr.isEmpty()}addReference(e,t){var r=new u(e,t);this.Vr=this.Vr.add(r),this.gr=this.gr.add(r)}yr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.wr(new u(e,t))}Sr(e,t){e.forEach(e=>this.removeReference(e,t))}br(e){let t=new x(new S([])),r=new u(t,e),n=new u(t,e+1),i=[];return this.gr.forEachInRange([r,n],e=>{this.wr(e),i.push(e.key)}),i}Dr(){this.Vr.forEach(e=>this.wr(e))}wr(e){this.Vr=this.Vr.delete(e),this.gr=this.gr.delete(e)}vr(e){var t=new x(new S([])),r=new u(t,e),t=new u(t,e+1);let n=M();return this.gr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new u(e,0),t=this.Vr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class u{constructor(e,t){this.key=e,this.Cr=t}static mr(e,t){return x.comparator(e.key,t.key)||E(e.Cr,t.Cr)}static pr(e,t){return E(e.Cr,t.Cr)||x.comparator(e.key,t.key)}}class wo{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Fr=1,this.Mr=new C(u.mr)}checkEmpty(e){return w.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.Fr,s=(this.Fr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new $i(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Mr=this.Mr.add(new u(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return w.resolve(s)}lookupMutationBatch(e,t){return w.resolve(this.Or(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.Nr(t+1),r=r<0?0:r;return w.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return w.resolve(0===this.mutationQueue.length?ot:this.Fr-1)}getAllMutationBatches(e){return w.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new u(t,0),n=new u(t,Number.POSITIVE_INFINITY),i=[];return this.Mr.forEachInRange([r,n],e=>{var t=this.Or(e.Cr);i.push(t)}),w.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new C(E);return t.forEach(e=>{var t=new u(e,0),r=new u(e,Number.POSITIVE_INFINITY);this.Mr.forEachInRange([t,r],e=>{n=n.add(e.Cr)})}),w.resolve(this.Br(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new u(new x(i),0);let a=new C(E);return this.Mr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Cr)),!0)},s),w.resolve(this.Br(a))}Br(e){let r=[];return e.forEach(e=>{var t=this.Or(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){y(0===this.Lr(n.batchId,"removed")),this.mutationQueue.shift();let i=this.Mr;return w.forEach(n.mutations,e=>{var t=new u(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Mr=i})}qn(e){}containsKey(e,t){var r=new u(t,0),r=this.Mr.firstAfterOrEqual(r);return w.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,w.resolve()}Lr(e,t){return this.Nr(e)}Nr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Or(e){var t=this.Nr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class _o{constructor(e){this.kr=e,this.docs=new A(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.kr(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 w.resolve(r?r.document.mutableCopy():k.newInvalidDocument(t))}getEntries(e,t){let r=di;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():k.newInvalidDocument(e))}),w.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=di,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||je(Be(t),n)<=0||(i.has(t.key)||li(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return w.resolve(s)}getAllFromCollectionGroup(e,t,r,n){T()}qr(e,t){return w.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new bo(this)}getSize(e){return w.resolve(this.size)}}class bo extends no{constructor(e){super(),this.Ir=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Ir.addEntry(r,t)):this.Ir.removeEntry(e)}),w.waitFor(n)}getFromCache(e,t){return this.Ir.getEntry(e,t)}getAllFromCache(e,t){return this.Ir.getEntries(e,t)}}class Io{constructor(e){this.persistence=e,this.Qr=new ci(e=>Gn(e),Kn),this.lastRemoteSnapshotVersion=g.min(),this.highestTargetId=0,this.$r=0,this.Ur=new vo,this.targetCount=0,this.Kr=Ga.Un()}forEachTarget(e,r){return this.Qr.forEach((e,t)=>r(t)),w.resolve()}getLastRemoteSnapshotVersion(e){return w.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return w.resolve(this.$r)}allocateTargetId(e){return this.highestTargetId=this.Kr.next(),w.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.$r&&(this.$r=t),w.resolve()}zn(e){this.Qr.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.Kr=new Ga(t),this.highestTargetId=t),e.sequenceNumber>this.$r&&(this.$r=e.sequenceNumber)}addTargetData(e,t){return this.zn(t),this.targetCount+=1,w.resolve()}updateTargetData(e,t){return this.zn(t),w.resolve()}removeTargetData(e,t){return this.Qr.delete(t.target),this.Ur.br(t.targetId),--this.targetCount,w.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.Qr.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.Qr.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),w.waitFor(a).next(()=>s)}getTargetCount(e){return w.resolve(this.targetCount)}getTargetData(e,t){var r=this.Qr.get(t)||null;return w.resolve(r)}addMatchingKeys(e,t,r){return this.Ur.yr(t,r),w.resolve()}removeMatchingKeys(t,e,r){this.Ur.Sr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),w.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Ur.br(t),w.resolve()}getMatchingKeysForTargetId(e,t){var r=this.Ur.vr(t);return w.resolve(r)}containsKey(e,t){return w.resolve(this.Ur.containsKey(t))}}class To{constructor(e,t){this.Wr={},this.overlays={},this.Gr=new at(0),this.zr=!1,this.zr=!0,this.jr=new yo,this.referenceDelegate=e(this),this.Hr=new Io(this),this.indexManager=new Sa,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Jr(e),new _o(e)),this.serializer=new Gs(t),this.Yr=new mo(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.zr=!1,Promise.resolve()}get started(){return this.zr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new po,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.Wr[e.toKey()];return r||(r=new wo(t,this.referenceDelegate),this.Wr[e.toKey()]=r),r}getGlobalsCache(){return this.jr}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Yr}runTransaction(e,t,r){p("MemoryPersistence","Starting transaction:",e);let n=new Eo(this.Gr.next());return this.referenceDelegate.Zr(),r(n).next(e=>this.referenceDelegate.Xr(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}ei(t,r){return w.or(Object.values(this.Wr).map(e=>()=>e.containsKey(t,r)))}}class Eo extends Ge{constructor(e){super(),this.currentSequenceNumber=e}}class So{constructor(e){this.persistence=e,this.ti=new vo,this.ni=null}static ri(e){return new So(e)}get ii(){if(this.ni)return this.ni;throw T()}addReference(e,t,r){return this.ti.addReference(r,t),this.ii.delete(r.toString()),w.resolve()}removeReference(e,t,r){return this.ti.removeReference(r,t),this.ii.add(r.toString()),w.resolve()}markPotentiallyOrphaned(e,t){return this.ii.add(t.toString()),w.resolve()}removeTarget(e,t){this.ti.br(t.targetId).forEach(e=>this.ii.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.ii.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Zr(){this.ni=new Set}Xr(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return w.forEach(this.ii,e=>{let t=x.fromPath(e);return this.si(r,t).next(e=>{e||n.removeEntry(t,g.min())})}).next(()=>(this.ni=null,n.apply(r)))}updateLimboDocument(e,t){return this.si(e,t).next(e=>{e?this.ii.delete(t.toString()):this.ii.add(t.toString())})}Jr(e){return 0}si(e,t){return w.or([()=>w.resolve(this.ti.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.ei(e,t)])}}class xo{constructor(e,t){this.persistence=e,this.oi=new ci(e=>o(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=eo(this,t)}static ri(e,t){return new xo(e,t)}Zr(){}Xr(e){return w.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}nr(e){let r=this.sr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}rr(r,n){return w.forEach(this.oi,(e,t)=>this.ar(r,e,t).next(e=>e?w.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.qr(e,t=>this.ar(e,t,r).next(e=>{e||(n++,i.removeEntry(t,g.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}removeReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}updateLimboDocument(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}Jr(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(rn(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=Kr(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return Ur(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Dr(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw T()}}(e.data.value)),t}ar(e,t,r){return w.or([()=>this.persistence.ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.oi.get(t);return w.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class Ao{constructor(e){this.serializer=e}B(t,e,r,n){let s=new $e("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(mt),(i=t).createObjectStore(yt,{keyPath:"userId"}),i.createObjectStore(vt,{keyPath:wt,autoIncrement:!0}).createIndex(_t,bt,{unique:!0}),i.createObjectStore(St),Co(t),t.createObjectStore(gt));let a=w.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(Ft),i.deleteObjectStore(Mt),i.deleteObjectStore(jt),Co(t)),a=a.next(()=>{return e=s,t=e.store(jt),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:g.min().toTimestamp(),targetCount:0},t.put(qt,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(vt).G().next(e=>{n.deleteObjectStore(vt),n.createObjectStore(vt,{keyPath:wt,autoIncrement:!0}).createIndex(_t,bt,{unique:!0});let t=i.store(vt),r=e.map(e=>t.put(e));return w.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(Kt,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this._i(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(Rt),this.ai(s)))),r<7&&7<=n&&(a=a.next(()=>this.ui(s))),r<8&&8<=n&&(a=a.next(()=>this.ci(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.li(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(Qt,{keyPath:"bundleId"}),t.createObjectStore($t,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(ir,{keyPath:sr})).createIndex(ar,or,{unique:!1}),e.createIndex(lr,ur,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(xt,{keyPath:At})).createIndex(Ct,Dt),e.createIndex(Nt,kt)}).next(()=>this.hi(t,s)).next(()=>t.deleteObjectStore(gt))),r<14&&14<=n&&(a=a.next(()=>this.Pi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(Ht,{keyPath:"indexId",autoIncrement:!0}).createIndex(Wt,"collectionGroup",{unique:!1}),e.createObjectStore(Yt,{keyPath:Xt}).createIndex(Jt,Zt,{unique:!1}),e.createObjectStore(er,{keyPath:tr}).createIndex(rr,nr,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(Yt).clear()}).next(()=>{e.objectStore(er).clear()})),a=r<17&&17<=n?a.next(()=>{t.createObjectStore(hr,{keyPath:"name"})}):a}ai(t){let r=0;return t.store(gt).Z((e,t)=>{r+=Pa(t)}).next(()=>{var e={byteSize:r};return t.store(Rt).put(Lt,e)})}_i(n){let e=n.store(yt),t=n.store(vt);return e.G().next(e=>w.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,ot],[r.userId,r.lastAcknowledgedBatchId]);return t.G(_t,e).next(e=>w.forEach(e,e=>{y(e.userId===r.userId);var t=Ws(this.serializer,e);return Fa(n,r.userId,t).next(()=>{})}))}))}ui(e){let a=e.store(Ft),t=e.store(gt);return e.store(jt).get(qt).next(i=>{let s=[];return t.Z((e,t)=>{let r=new S(e),n=[0,o(r)];s.push(a.get(n).next(e=>e?w.resolve():(e=r,a.put({targetId:0,path:o(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>w.waitFor(s))})}ci(e,t){e.createObjectStore(zt,{keyPath:Gt});let n=t.store(zt),i=new xa,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:o(t)})}};return t.store(gt).Z({Y:!0},(e,t)=>{var r=new S(e);return s(r.popLast())}).next(()=>t.store(St).Z({Y:!0},([,e],t)=>{var r=ft(e);return s(r.popLast())}))}li(e){let n=e.store(Mt);return n.Z((e,t)=>{var r=Ys(t),r=Xs(this.serializer,r);return n.put(r)})}hi(e,s){let t=s.store(gt),a=[];return t.Z((e,t)=>{var r,n=s.store(xt),i=((r=t).document?new x(S.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):T()).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(()=>w.waitFor(a))}Pi(e,s){let t=s.store(vt),a=so(this.serializer),o=new To(So.ri,this.serializer.Tt);return t.G().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:M();Ws(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),w.forEach(n,(e,t)=>{var r=new l(t),n=sa.It(this.serializer,r),i=o.getIndexManager(r),r=Ua.It(r,this.serializer,i,o.referenceDelegate);return new go(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new Ar(s,at.ae),e).next()})})}}function Co(e){e.createObjectStore(Ft,{keyPath:Pt}).createIndex(Ut,Bt,{unique:!0}),e.createObjectStore(Mt,{keyPath:"targetId"}).createIndex(Ot,Vt,{unique:!0}),e.createObjectStore(jt)}let Do="IndexedDbPersistence",No="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 ko{constructor(e,t,r,n,i,s,a,o,l,u,h=17){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ti=i,this.window=s,this.document=a,this.Ii=l,this.Ei=u,this.di=h,this.Gr=null,this.zr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ai=null,this.inForeground=!1,this.Ri=null,this.Vi=null,this.mi=Number.NEGATIVE_INFINITY,this.fi=e=>Promise.resolve(),!ko.D())throw new I(b.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new to(this,n),this.gi=t+"main",this.serializer=new Gs(o),this.pi=new He(this.gi,this.di,new Ao(this.serializer)),this.jr=new oa,this.Hr=new Ka(this.referenceDelegate,this.serializer),this.remoteDocumentCache=so(this.serializer),this.Yr=new ra,this.window&&this.window.localStorage?this.yi=this.window.localStorage:(this.yi=null,!1===u&&d(Do,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.wi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Si(),this.bi(),this.Di(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Hr.getHighestSequenceNumber(e));throw new I(b.FAILED_PRECONDITION,No)}).then(e=>{this.Gr=new at(e,this.Ii)}).then(()=>{this.zr=!0}).catch(e=>(this.pi&&this.pi.close(),Promise.reject(e)))}Ci(t){return this.fi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.pi.k(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ti.enqueueAndForget(async()=>{this.started&&await this.wi()}))}wi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>Lo(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Fi(t).next(e=>{e||(this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)))})}).next(()=>this.Mi(t)).next(e=>this.isPrimary&&!e?this.xi(t).next(()=>!1):!!e&&this.Oi(t).next(()=>!0))).catch(e=>{if(Je(e))return p(Do,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return p(Do,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Ti.enqueueRetryable(()=>this.fi(e)),this.isPrimary=e})}Fi(e){return Ro(e).get(pt).next(e=>w.resolve(this.Ni(e)))}Bi(e){return Lo(e).delete(this.clientId)}async Li(){if(this.isPrimary&&!this.ki(this.mi,18e5)){this.mi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=r(e,Kt);return n.G().next(e=>{let t=this.qi(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return w.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.yi)for(var t of e)this.yi.removeItem(this.Qi(t.clientId))}}Di(){this.Vi=this.Ti.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.wi().then(()=>this.Li()).then(()=>this.Di()))}Ni(e){return!!e&&e.ownerId===this.clientId}Mi(t){return this.Ei?w.resolve(!0):Ro(t).get(pt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)){if(this.Ni(e)&&this.networkEnabled)return!0;if(!this.Ni(e)){if(e.allowTabSynchronization)return!1;throw new I(b.FAILED_PRECONDITION,No)}}return!(!this.networkEnabled||!this.inForeground)||Lo(t).G().next(e=>void 0===this.qi(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(Do,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.zr=!1,this.Ui(),this.Vi&&(this.Vi.cancel(),this.Vi=null),this.Ki(),this.Wi(),await this.pi.runTransaction("shutdown","readwrite",[mt,Kt],e=>{let t=new Ar(e,at.ae);return this.xi(t).next(()=>this.Bi(t))}),this.pi.close(),this.Gi()}qi(e,t){return e.filter(e=>this.ki(e.updateTimeMs,t)&&!this.$i(e.clientId))}zi(){return this.runTransaction("getActiveClients","readonly",e=>Lo(e).G().next(e=>this.qi(e,18e5).map(e=>e.clientId)))}get started(){return this.zr}getGlobalsCache(){return this.jr}getMutationQueue(e,t){return Ua.It(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new Da(e,this.serializer.Tt.databaseId)}getDocumentOverlayCache(e){return sa.It(this.serializer,e)}getBundleCache(){return this.Yr}runTransaction(t,r,n){p(Do,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=17===(e=this.di)?xr:16===e?Sr:15===e?mr:14===e?gr:13===e?fr:12===e?dr:11===e?cr:void T();let a;return this.pi.runTransaction(t,i,s,e=>(a=new Ar(e,this.Gr?this.Gr.next():at.ae),"readwrite-primary"===r?this.Fi(a).next(e=>!!e||this.Mi(a)).next(e=>{if(e)return n(a);throw d(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)),new I(b.FAILED_PRECONDITION,ze)}).next(e=>this.Oi(a).next(()=>e)):this.ji(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}ji(e){return Ro(e).get(pt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)&&!this.Ni(e)&&!(this.Ei||this.allowTabSynchronization&&e.allowTabSynchronization))throw new I(b.FAILED_PRECONDITION,No)})}Oi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return Ro(e).put(pt,t)}static D(){return He.D()}xi(e){let t=Ro(e);return t.get(pt).next(e=>this.Ni(e)?(p(Do,"Releasing primary lease."),t.delete(pt)):w.resolve())}ki(e,t){var r=Date.now();return!(e<r-t||r<e&&(d(`Detected an update time that is in the future: ${e} > `+r),1))}Si(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ri=()=>{this.Ti.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.wi()))},this.document.addEventListener("visibilitychange",this.Ri),this.inForeground="visible"===this.document.visibilityState)}Ki(){this.Ri&&(this.document.removeEventListener("visibilitychange",this.Ri),this.Ri=null)}bi(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Ai=()=>{this.Ui();var e=/(?:Version|Mobile)\/1[456]/;W()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ti.enterRestrictedMode(!0),this.Ti.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Ai))}Wi(){this.Ai&&(this.window.removeEventListener("pagehide",this.Ai),this.Ai=null)}$i(e){var t;try{var r=null!==(null==(t=this.yi)?void 0:t.getItem(this.Qi(e)));return p(Do,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return d(Do,"Failed to get zombied client id.",e),!1}}Ui(){if(this.yi)try{this.yi.setItem(this.Qi(this.clientId),String(Date.now()))}catch(e){d("Failed to set zombie client id.",e)}}Gi(){if(this.yi)try{this.yi.removeItem(this.Qi(this.clientId))}catch(e){}}Qi(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function Ro(e){return r(e,mt)}function Lo(e){return r(e,Kt)}function Mo(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class Oo{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Hi=r,this.Ji=n}static Yi(e,t){let r=M(),n=M();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 Oo(e,t.fromCache,r,n)}}class Vo{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Fo{constructor(){this.Zi=!1,this.Xi=!1,this.es=100,this.ts=W()?8:0<We(H())?6:4}initialize(e,t){this.ns=e,this.indexManager=t,this.Zi=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.rs(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ss(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new Vo;return this._s(r,n,t).next(e=>{if(i.result=e,this.Xi)return this.us(r,n,t,e.size)})}}).next(()=>i.result)}us(e,t,r,n){return r.documentReadCount<this.es?(fe()<=c.DEBUG&&p("QueryEngine","SDK will not create cache indexes for query:",oi(t),"since it only creates cache indexes for collection contains","more than or equal to",this.es,"documents"),w.resolve()):(fe()<=c.DEBUG&&p("QueryEngine","Query:",oi(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ts*n?(fe()<=c.DEBUG&&p("QueryEngine","The SDK decides to create cache indexes for query:",oi(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ri(t))):w.resolve())}rs(i,s){if(Zn(s))return w.resolve(null);let t=ri(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=ii(s,null,"F"),t=ri(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=M(...e);return this.ns.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.cs(s,r);return this.ls(s,t,n,e.readTime)?this.rs(i,ii(s,null,"F")):this.hs(i,t,s,e)}))})))}ss(r,n,i,s){return Zn(n)||s.isEqual(g.min())?w.resolve(null):this.ns.getDocuments(r,i).next(e=>{var t=this.cs(n,e);return this.ls(n,t,i,s)?w.resolve(null):(fe()<=c.DEBUG&&p("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),oi(n)),this.hs(r,t,n,Ue(s,Le)).next(e=>e))})}cs(r,e){let n=new C(hi(r));return e.forEach((e,t)=>{li(r,t)&&(n=n.add(t))}),n}ls(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}_s(e,t,r){return fe()<=c.DEBUG&&p("QueryEngine","Using full collection scan to execute query:",oi(t)),this.ns.getDocumentsMatchingQuery(e,t,qe.min(),r)}hs(e,r,t,n){return this.ns.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let Po="LocalStore",Uo=3e8;class Bo{constructor(e,t,r,n){this.persistence=e,this.Ps=t,this.serializer=n,this.Ts=new A(E),this.Is=new ci(e=>Gn(e),Kn),this.Es=new Map,this.ds=e.getRemoteDocumentCache(),this.Hr=e.getTargetCache(),this.Yr=e.getBundleCache(),this.As(r)}As(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new go(this.ds,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.ds.setIndexManager(this.indexManager),this.Ps.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Ts))}}function qo(e,t,r,n){return new Bo(e,t,r,n)}async function jo(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.As(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=M();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=>({Rs:e,removedBatchIds:t,addedBatchIds:r}))})})}function zo(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.ds.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=w.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);y(null!==t),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=M();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 Go(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Hr.getLastRemoteSnapshotVersion(e))}function Ko(e,u){let h=e,c=u.snapshotVersion,d=h.Ts;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.ds.newChangeBuffer({trackRemovals:!0}),l=(d=h.Ts,[]),t=(u.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(h.Hr.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.Hr.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==u.targetMismatches.get(r)?e=e.withResumeToken(D.EMPTY_BYTE_STRING,g.min()).withLastLimboFreeSnapshotVersion(g.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()>=Uo||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(h.Hr.updateTargetData(o,e))}}),di),r=M();if(u.documentUpdates.forEach(e=>{u.resolvedLimboDocuments.has(e)&&l.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(Qo(o,e,u.documentUpdates).next(e=>{t=e.Vs,r=e.fs})),!c.isEqual(g.min())){let e=h.Hr.getLastRemoteSnapshotVersion(o).next(e=>h.Hr.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return w.waitFor(l).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.Ts=d,e))}function Qo(e,s,t){let r=M(),a=M();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=di;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(g.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(Po,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{Vs:i,fs:a}})}function $o(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Hr.getTargetData(t,n).next(e=>e?(r=e,w.resolve(r)):i.Hr.allocateTargetId(t).next(e=>(r=new zs(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Hr.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Ts.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.Ts=i.Ts.insert(e.targetId,e),i.Is.set(n,e.targetId)),e})}async function Ho(e,t,r){let n=e,i=n.Ts.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(!Je(e))throw e;p(Po,`Failed to update sequence numbers for target ${t}: `+e)}n.Ts=n.Ts.remove(t),n.Is.delete(i.target)}function Wo(e,a,o){let l=e,u=g.min(),h=M();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=ri(a),(void 0!==(s=(i=e).Is.get(n))?w.resolve(i.Ts.get(s)):i.Hr.getTargetData(r,n)).next(e=>{if(e)return u=e.lastLimboFreeSnapshotVersion,l.Hr.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>l.Ps.getDocumentsMatchingQuery(t,a,o?u:g.min(),o?h:M())).next(e=>(Jo(l,ui(a),e),{documents:e,gs:h}));var e,r,n,i,s})}function Yo(e,t){let r=e,n=r.Hr,i=r.Ts.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.lt(e,t).next(e=>e?e.target:null))}function Xo(e,t){let r=e,n=r.Es.get(t)||g.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.ds.getAllFromCollectionGroup(e,t,Ue(n,Le),Number.MAX_SAFE_INTEGER)).then(e=>(Jo(r,t,e),e))}function Jo(e,t,r){let n=e.Es.get(t)||g.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Es.set(t,n)}let Zo="firestore_clients";function el(e,t){return Zo+`_${e}_`+t}let tl="firestore_mutations";function rl(e,t,r){let n=tl+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let nl="firestore_targets";function il(e,t){return nl+`_${e}_`+t}let sl="SharedClientState";class al{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Ss(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 I(n.error.code,n.error.message)),s?new al(e,t,n.state,i):(d(sl,`Failed to parse mutation state for ID '${t}': `+r),null)}bs(){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 ol{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Ss(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 I(r.error.code,r.error.message)),i?new ol(e,r.state,n):(d(sl,`Failed to parse target state for ID '${e}': `+t),null)}bs(){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 ll{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Ss(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=wi;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=ht(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new ll(e,i):(d(sl,`Failed to parse client data for instance '${e}': `+t),null)}}class ul{constructor(e,t){this.clientId=e,this.onlineState=t}static Ss(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new ul(t.clientId,t.onlineState):(d(sl,"Failed to parse online state: "+e),null)}}class hl{constructor(){this.activeTargetIds=wi}Ds(e){this.activeTargetIds=this.activeTargetIds.add(e)}vs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}bs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class cl{constructor(e,t,r,n,i){this.window=e,this.Ti=t,this.persistenceKey=r,this.Cs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Fs=this.Ms.bind(this),this.xs=new A(E),this.started=!1,this.Os=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Ns=el(this.persistenceKey,this.Cs),this.Bs="firestore_sequence_number_"+this.persistenceKey,this.xs=this.xs.insert(this.Cs,new hl),this.Ls=new RegExp(`^${Zo}_${s}_([^_]*)$`),this.ks=new RegExp(`^${tl}_${s}_(\\d+)(?:_(.*))?$`),this.qs=new RegExp(`^${nl}_${s}_(\\d+)$`),this.Qs="firestore_online_state_"+this.persistenceKey,this.$s="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Fs)}static D(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.zi();for(let r of e)if(r!==this.Cs){let e=this.getItem(el(this.persistenceKey,r));var t;e&&(t=ll.Ss(r,e))&&(this.xs=this.xs.insert(t.clientId,t))}this.Us();let r=this.storage.getItem(this.Qs);if(r){let e=this.Ks(r);e&&this.Ws(e)}for(let e of this.Os)this.Ms(e);this.Os=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Bs,JSON.stringify(e))}getAllActiveQueryTargets(){return this.Gs(this.xs)}isActiveQueryTarget(r){let n=!1;return this.xs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.zs(e,"pending")}updateMutationState(e,t,r){this.zs(e,t,r),this.js(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(il(this.persistenceKey,t));var n;e&&(n=ol.Ss(t,e))&&(r=n.state)}return e&&this.Hs.Ds(t),this.Us(),r}removeLocalQueryTarget(e){this.Hs.vs(e),this.Us()}isLocalQueryTarget(e){return this.Hs.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(il(this.persistenceKey,e))}updateQueryState(e,t,r){this.Js(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.js(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Ys(e)}notifyBundleLoaded(e){this.Zs(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Fs),this.removeItem(this.Ns),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return p(sl,"READ",e,t),t}setItem(e,t){p(sl,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){p(sl,"REMOVE",e),this.storage.removeItem(e)}Ms(e){let t=e;t.storageArea===this.storage&&(p(sl,"EVENT",t.key,t.newValue),t.key===this.Ns?d("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Ti.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.Ls.test(t.key))return null==t.newValue?(e=this.Xs(t.key),this.eo(e,null)):(e=this.no(t.key,t.newValue))?this.eo(e.clientId,e):void 0;if(this.ks.test(t.key)){if(null!==t.newValue){var e=this.ro(t.key,t.newValue);if(e)return this.io(e)}}else if(this.qs.test(t.key)){if(null!==t.newValue){var e=this.so(t.key,t.newValue);if(e)return this.oo(e)}}else if(t.key===this.Qs){if(null!==t.newValue){var e=this.Ks(t.newValue);if(e)return this.Ws(e)}}else t.key===this.Bs?(e=(e=>{let t=at.ae;if(null!=e)try{var r=JSON.parse(e);y("number"==typeof r),t=r}catch(e){d(sl,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==at.ae&&this.sequenceNumberHandler(e):t.key===this.$s&&(e=this._o(t.newValue),await Promise.all(e.map(e=>this.syncEngine.ao(e))))}}else this.Os.push(t)}))}get Hs(){return this.xs.get(this.Cs)}Us(){this.setItem(this.Ns,this.Hs.bs())}zs(e,t,r){var n=new al(this.currentUser,e,t,r),i=rl(this.persistenceKey,this.currentUser,e);this.setItem(i,n.bs())}js(e){var t=rl(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Ys(e){var t={clientId:this.Cs,onlineState:e};this.storage.setItem(this.Qs,JSON.stringify(t))}Js(e,t,r){var n=il(this.persistenceKey,e),i=new ol(e,t,r);this.setItem(n,i.bs())}Zs(e){var t=JSON.stringify(Array.from(e));this.setItem(this.$s,t)}Xs(e){var t=this.Ls.exec(e);return t?t[1]:null}no(e,t){var r=this.Xs(e);return ll.Ss(r,t)}ro(e,t){var r=this.ks.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return al.Ss(new l(r),n,t)}so(e,t){var r=this.qs.exec(e),r=Number(r[1]);return ol.Ss(r,t)}Ks(e){return ul.Ss(e)}_o(e){return JSON.parse(e)}async io(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.uo(e.batchId,e.state,e.error);p(sl,"Ignoring mutation for non-active user "+e.user.uid)}oo(e){return this.syncEngine.co(e.targetId,e.state,e.error)}eo(e,t){let r=t?this.xs.insert(e,t):this.xs.remove(e),n=this.Gs(this.xs),i=this.Gs(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.lo(s,a).then(()=>{this.xs=r})}Ws(e){this.xs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}Gs(e){let r=wi;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class dl{constructor(){this.ho=new hl,this.Po={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.ho.Ds(e),this.Po[e]||"not-current"}updateQueryState(e,t,r){this.Po[e]=t}removeLocalQueryTarget(e){this.ho.vs(e)}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){delete this.Po[e]}getAllActiveQueryTargets(){return this.ho.activeTargetIds}isActiveQueryTarget(e){return this.ho.activeTargetIds.has(e)}start(){return this.ho=new hl,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class fl{To(e){}shutdown(){}}let gl="ConnectivityMonitor";class ml{constructor(){this.Io=()=>this.Eo(),this.Ao=()=>this.Ro(),this.Vo=[],this.mo()}To(e){this.Vo.push(e)}shutdown(){window.removeEventListener("online",this.Io),window.removeEventListener("offline",this.Ao)}mo(){window.addEventListener("online",this.Io),window.addEventListener("offline",this.Ao)}Eo(){p(gl,"Network connectivity changed: AVAILABLE");for(var e of this.Vo)e(0)}Ro(){p(gl,"Network connectivity changed: UNAVAILABLE");for(var e of this.Vo)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let pl=null;function yl(){return null===pl?pl=268435456+Math.round(2147483648*Math.random()):pl++,"0x"+pl.toString(16)}let vl="RestConnection",wl={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class _l{constructor(e){this.Fo=e.Fo,this.Mo=e.Mo}xo(e){this.Oo=e}No(e){this.Bo=e}Lo(e){this.ko=e}onMessage(e){this.qo=e}close(){this.Mo()}send(e){this.Fo(e)}Qo(){this.Oo()}$o(){this.Bo()}Uo(e){this.ko(e)}Ko(e){this.qo(e)}}let bl="WebChannelConnection";class Il extends class{get fo(){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.po=t+"://"+e.host,this.yo=`projects/${r}/databases/`+n,this.wo=this.databaseId.database===Hr?"project_id="+r:`project_id=${r}&database_id=`+n}So(t,e,r,n,i){let s=yl(),a=this.bo(t,e.toUriEncodedString());p(vl,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.yo,"x-goog-request-params":this.wo};return this.Do(o,n,i),this.vo(t,a,o,r).then(e=>(p(vl,`Received RPC '${t}' ${s}: `,e),e),e=>{throw ge(vl,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Co(e,t,r,n,i,s){return this.So(e,t,r,n,i)}Do(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+ce,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}bo(e,t){var r=wl[e];return this.po+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}vo(l,t,r,n){let u=yl();return new Promise((s,a)=>{let o=new pr;o.setWithCredentials(!0),o.listenOnce(vr.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case wr.NO_ERROR:var e=o.getResponseJson();p(bl,`XHR for RPC '${l}' ${u} received:`,JSON.stringify(e)),s(e);break;case wr.TIMEOUT:p(bl,`RPC '${l}' ${u} timed out`),a(new I(b.DEADLINE_EXCEEDED,"Request time out"));break;case wr.HTTP_ERROR:var t=o.getStatus();if(p(bl,`RPC '${l}' ${u} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=null==(e=Array.isArray(e)?e[0]:e)?void 0:e.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(b).indexOf(i)?i:b.UNKNOWN;a(new I(e,r.message))}else a(new I(b.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new I(b.UNAVAILABLE,"Connection failed."));break;default:T()}}finally{p(bl,`RPC '${l}' ${u} completed.`)}var n,i});var e=JSON.stringify(n);p(bl,`RPC '${l}' ${u} sending request:`,n),o.send(t,"POST",e,r,15)})}Wo(i,e,t){let s=yl(),r=[this.po,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Tr(),a=Ir(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Do(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var u=r.join("");p(bl,`Creating RPC '${i}' stream ${s}: `+u,o);let h=n.createWebChannel(u,o),c=!1,d=!1,f=new _l({Fo:e=>{d?p(bl,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(p(bl,`Opening RPC '${i}' stream ${s} transport.`),h.open(),c=!0),p(bl,`RPC '${i}' stream ${s} sending:`,e),h.send(e))},Mo:()=>h.close()}),g=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return g(h,yr.EventType.OPEN,()=>{d||(p(bl,`RPC '${i}' stream ${s} transport opened.`),f.Qo())}),g(h,yr.EventType.CLOSE,()=>{d||(d=!0,p(bl,`RPC '${i}' stream ${s} transport closed`),f.Uo())}),g(h,yr.EventType.ERROR,e=>{d||(d=!0,ge(bl,`RPC '${i}' stream ${s} transport errored:`,e),f.Uo(new I(b.UNAVAILABLE,"The operation could not be completed")))}),g(h,yr.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(y(!!t),t),n=(null==n?void 0:n.error)||(null==(n=n[0])?void 0:n.error);if(n){p(bl,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=m[e];if(void 0!==t)return Ji(t)})(e),r=n.message;void 0===t&&(t=b.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,f.Uo(new I(t,r)),h.close()}else p(bl,`RPC '${i}' stream ${s} received:`,t),f.Ko(t)}}),g(a,br.STAT_EVENT,e=>{e.stat===_r.PROXY?p(bl,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===_r.NOPROXY&&p(bl,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{f.$o()},0),f}}function Tl(){return"undefined"!=typeof window?window:null}function El(){return"undefined"!=typeof document?document:null}function Sl(e){return new ps(e,!0)}class xl{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ti=e,this.timerId=t,this.Go=r,this.zo=n,this.jo=i,this.Ho=0,this.Jo=null,this.Yo=Date.now(),this.reset()}reset(){this.Ho=0}Zo(){this.Ho=this.jo}Xo(e){this.cancel();var t=Math.floor(this.Ho+this.e_()),r=Math.max(0,Date.now()-this.Yo),n=Math.max(0,t-r);0<n&&p("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.Ho} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.Jo=this.Ti.enqueueAfterDelay(this.timerId,n,()=>(this.Yo=Date.now(),e())),this.Ho*=this.zo,this.Ho<this.Go&&(this.Ho=this.Go),this.Ho>this.jo&&(this.Ho=this.jo)}t_(){null!==this.Jo&&(this.Jo.skipDelay(),this.Jo=null)}cancel(){null!==this.Jo&&(this.Jo.cancel(),this.Jo=null)}e_(){return(Math.random()-.5)*this.Ho}}let Al="PersistentStream";class Cl{constructor(e,t,r,n,i,s,a,o){this.Ti=e,this.n_=r,this.r_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.i_=0,this.s_=null,this.o_=null,this.stream=null,this.__=0,this.a_=new xl(e,t)}u_(){return 1===this.state||5===this.state||this.c_()}c_(){return 2===this.state||3===this.state}start(){this.__=0,4!==this.state?this.auth():this.l_()}async stop(){this.u_()&&await this.close(0)}h_(){this.state=0,this.a_.reset()}P_(){this.c_()&&null===this.s_&&(this.s_=this.Ti.enqueueAfterDelay(this.n_,6e4,()=>this.T_()))}I_(e){this.E_(),this.stream.send(e)}async T_(){if(this.c_())return this.close(0)}E_(){this.s_&&(this.s_.cancel(),this.s_=null)}d_(){this.o_&&(this.o_.cancel(),this.o_=null)}async close(e,t){this.E_(),this.d_(),this.a_.cancel(),this.i_++,4!==e?this.a_.reset():t&&t.code===b.RESOURCE_EXHAUSTED?(d(t.toString()),d("Using maximum backoff delay to prevent overloading the backend."),this.a_.Zo()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.A_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.Lo(t)}A_(){}auth(){this.state=1;let e=this.R_(this.i_),r=this.i_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.i_===r&&this.V_(e,t)},t=>{e(()=>{var e=new I(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.m_(e)})})}V_(e,t){let r=this.R_(this.i_);this.stream=this.f_(e,t),this.stream.xo(()=>{r(()=>this.listener.xo())}),this.stream.No(()=>{r(()=>(this.state=2,this.o_=this.Ti.enqueueAfterDelay(this.r_,1e4,()=>(this.c_()&&(this.state=3),Promise.resolve())),this.listener.No()))}),this.stream.Lo(e=>{r(()=>this.m_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.__?this.g_(e):this.onNext(e))})}l_(){this.state=5,this.a_.Xo(async()=>{this.state=0,this.start()})}m_(e){return p(Al,"close with error: "+e),this.stream=null,this.close(4,e)}R_(t){return e=>{this.Ti.enqueueAndForget(()=>this.i_===t?e():(p(Al,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class Dl extends Cl{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}f_(e,t){return this.connection.Wo("Listen",e,t)}g_(e){return this.onNext(e)}onNext(e){this.a_.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:T(),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(y(void 0===l||"string"==typeof l),D.fromBase64String(l||"")):(y(void 0===l||l instanceof Buffer||l instanceof Uint8Array),D.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?b.UNKNOWN:Ji(l.code),new I(a,l.message||""));r=new ls(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,Es(e,n.document.name)),s=V(n.document.updateTime),a=n.document.createTime?V(n.document.createTime):g.min(),o=new In({mapValue:{fields:n.document.fields}}),i=k.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new as(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,Es(e,n.document)),o=n.readTime?V(n.readTime):g.min(),i=k.newNoDocument(s,o),s=n.removedTargetIds||[];r=new as([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,Es(e,o.document)),s=o.removedTargetIds||[];r=new as([],s,n,null)}else{if(!("filter"in t))return T();{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new Yi(i,o),n=e.targetId;r=new os(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?V(r.readTime):g.min();return this.listener.p_(t,r)}y_(e){var t={},r=(t.database=As(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=Qn(e)?{documents:Ms(t,e)}:{query:Os(t,e).ht}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=ws(t,r.resumeToken);let e=ys(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(g.min())){n.readTime=vs(t,r.snapshotVersion.toTimestamp());let e=ys(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),Fs(this.serializer,e));r&&(t.labels=r),this.I_(t)}w_(e){var t={};t.database=As(this.serializer),t.removeTarget=e,this.I_(t)}}class Nl extends Cl{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 S_(){return 0<this.__}start(){this.lastStreamToken=void 0,super.start()}A_(){this.S_&&this.b_([])}f_(e,t){return this.connection.Wo("Write",e,t)}g_(e){return y(!!e.streamToken),this.lastStreamToken=e.streamToken,y(!e.writeResults||0===e.writeResults.length),this.listener.D_()}onNext(e){y(!!e.streamToken),this.lastStreamToken=e.streamToken,this.a_.reset();var t=Ls(e.writeResults,e.commitTime),r=V(e.commitTime);return this.listener.v_(r,t)}C_(){var e={};e.database=As(this.serializer),this.I_(e)}b_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>ks(this.serializer,e))};this.I_(t)}}class kl extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.F_=!1}M_(){if(this.F_)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.")}So(r,n,i,s){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.So(r,bs(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}Co(r,n,i,s,a){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Co(r,bs(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}terminate(){this.F_=!0,this.connection.terminate()}}class Rl{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.x_=0,this.O_=null,this.N_=!0}B_(){0===this.x_&&(this.L_("Unknown"),this.O_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.O_=null,this.k_("Backend didn't respond within 10 seconds."),this.L_("Offline"),Promise.resolve())))}q_(e){"Online"===this.state?this.L_("Unknown"):(this.x_++,1<=this.x_&&(this.Q_(),this.k_("Connection failed 1 times. Most recent error: "+e.toString()),this.L_("Offline")))}set(e){this.Q_(),this.x_=0,"Online"===e&&(this.N_=!1),this.L_(e)}L_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}k_(e){var t=`Could not reach Cloud Firestore backend. ${e}
7
- 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.N_?(d(t),this.N_=!1):p("OnlineStateTracker",t)}Q_(){null!==this.O_&&(this.O_.cancel(),this.O_=null)}}let Ll="RemoteStore";class Ml{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.U_=[],this.K_=new Map,this.W_=new Set,this.G_=[],this.z_=i,this.z_.To(e=>{r.enqueueAndForget(async()=>{var e;zl(this)&&(p(Ll,"Restarting streams for network reachability change."),(e=this).W_.add(4),await Vl(e),e.j_.set("Unknown"),e.W_.delete(4),await Ol(e))})}),this.j_=new Rl(r,n)}}async function Ol(e){if(zl(e))for(var t of e.G_)await t(!0)}async function Vl(e){for(var t of e.G_)await t(!1)}function Fl(e,t){var r=e;r.K_.has(t.targetId)||(r.K_.set(t.targetId,t),jl(r)?ql(r):Jl(r).c_()&&Ul(r,t))}function Pl(e,t){var r=e,n=Jl(r);r.K_.delete(t),n.c_()&&Bl(r,t),0===r.K_.size&&(n.c_()?n.P_():zl(r)&&r.j_.set("Unknown"))}function Ul(e,t){var r;e.H_.Ne(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(g.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),Jl(e).y_(t)}function Bl(e,t){e.H_.Ne(t),Jl(e).w_(t)}function ql(t){t.H_=new hs({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),lt:e=>t.K_.get(e)||null,it:()=>t.datastore.serializer.databaseId}),Jl(t).start(),t.j_.B_()}function jl(e){return zl(e)&&!Jl(e).u_()&&0<e.K_.size}function zl(e){return 0===e.W_.size}function Gl(e){e.H_=void 0}async function Kl(e,t,r){if(!Je(t))throw t;e.W_.add(1),await Vl(e),e.j_.set("Offline"),r=r||(()=>Go(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{p(Ll,"Retrying IndexedDB access"),await r(),e.W_.delete(1),await Ol(e)})}function Ql(t,r){return r().catch(e=>Kl(t,e,r))}async function $l(e){var t,r,n,i,s=e,a=Zl(s);let o=0<s.U_.length?s.U_[s.U_.length-1].batchId:ot;for(;zl(i=s)&&i.U_.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=ot),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.U_.length&&a.P_();break}o=e.batchId,t=s,r=e,n=void 0,t.U_.push(r),(n=Zl(t)).c_()&&n.S_&&n.b_(r.mutations)}catch(e){await Kl(s,e)}Hl(s)&&Wl(s)}function Hl(e){return zl(e)&&!Zl(e).u_()&&0<e.U_.length}function Wl(e){Zl(e).start()}async function Yl(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),p(Ll,"RemoteStore received new credentials"),zl(r));r.W_.add(3),await Vl(r),n&&r.j_.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.W_.delete(3),await Ol(r)}async function Xl(e,t){var r=e;t?(r.W_.delete(2),await Ol(r)):(r.W_.add(2),await Vl(r),r.j_.set("Unknown"))}function Jl(t){return t.J_||(t.J_=(e=t.datastore,r=t.asyncQueue,n={xo:(async function(e){e.j_.set("Online")}).bind(null,t),No:(async function(r){r.K_.forEach((e,t)=>{Ul(r,e)})}).bind(null,t),Lo:(async function(e,t){Gl(e),jl(e)?(e.j_.q_(t),ql(e)):e.j_.set("Unknown")}).bind(null,t),p_:(async function(t,e,r){if(t.j_.set("Online"),e instanceof ls&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.K_.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.K_.delete(n),i.H_.removeTarget(n))}catch(r){p(Ll,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await Kl(t,r)}else if(e instanceof as?t.H_.We(e):e instanceof os?t.H_.Ze(e):t.H_.je(e),!r.isEqual(g.min()))try{let e=await Go(t.localStore);0<=r.compareTo(e)&&(l=r,(u=(o=t).H_.ot(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.K_.get(t))&&o.K_.set(t,r.withResumeToken(e.resumeToken,l))}),u.targetMismatches.forEach((e,t)=>{var r=o.K_.get(e);r&&(o.K_.set(e,r.withResumeToken(D.EMPTY_BYTE_STRING,r.snapshotVersion)),Bl(o,e),r=new zs(r.target,e,t,r.sequenceNumber),Ul(o,r))}),await o.remoteSyncer.applyRemoteEvent(u))}catch(e){p(Ll,"Failed to raise snapshot:",e),await Kl(t,e)}var o,l,u}).bind(null,t)},(i=e).M_(),new Dl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.J_.h_(),jl(t)?ql(t):t.j_.set("Unknown")):(await t.J_.stop(),Gl(t))})),t.J_;var e,r,n,i}function Zl(t){return t.Y_||(t.Y_=(e=t.datastore,r=t.asyncQueue,n={xo:()=>Promise.resolve(),No:(async function(e){Zl(e).C_()}).bind(null,t),Lo:(async function(e,t){if(t&&Zl(e).S_){var r=e,n=t;if(Xi(t=n.code)&&t!==b.ABORTED){let e=r.U_.shift();Zl(r).h_(),await Ql(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await $l(r)}await 0}Hl(e)&&Wl(e)}).bind(null,t),D_:(async function(e){var t,r=Zl(e);for(t of e.U_)r.b_(t.mutations)}).bind(null,t),v_:(async function(e,t,r){let n=e.U_.shift(),i=Hi.from(n,t,r);await Ql(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await $l(e)}).bind(null,t)},(i=e).M_(),new Nl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.Y_.h_(),await $l(t)):(await t.Y_.stop(),0<t.U_.length&&(p(Ll,`Stopping write stream with ${t.U_.length} pending writes`),t.U_=[]))})),t.Y_;var e,r,n,i}class eu{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new f,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 eu(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 I(b.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function tu(e,t){if(d("AsyncQueue",t+": "+e),Je(e))return new I(b.UNAVAILABLE,t+": "+e);throw e}class ru{static emptySet(e){return new ru(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=gi(),this.sortedSet=new A(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 ru))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 ru;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class nu{constructor(){this.Z_=new A(x.comparator)}track(e){var t=e.doc.key,r=this.Z_.get(t);!r||0!==e.type&&3===r.type?this.Z_=this.Z_.insert(t,e):3===e.type&&1!==r.type?this.Z_=this.Z_.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.Z_=this.Z_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.Z_=this.Z_.remove(t):1===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):T()}X_(){let r=[];return this.Z_.inorderTraversal((e,t)=>{r.push(t)}),r}}class iu{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 iu(e,t,ru.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)&&si(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 su{constructor(){this.ea=void 0,this.ta=[]}na(){return this.ta.some(e=>e.ra())}}class au{constructor(){this.queries=ou(),this.onlineState="Unknown",this.ia=new Set}terminate(){var e,r,t,n;e=this,r=new I(b.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=ou(),n.forEach((e,t)=>{for(let e of t.ta)e.onError(r)})}}function ou(){return new ci(e=>ai(e),si)}async function lu(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.na()&&r.ra()&&(n=2):(s=new su,n=r.ra()?0:1);try{switch(n){case 0:s.ea=await e.onListen(i,!0);break;case 1:s.ea=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=tu(t,`Initialization of query '${oi(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.ta.push(r),r.sa(e.onlineState),s.ea&&r.oa(s.ea)&&hu(e)}async function uu(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.ta.indexOf(t);0<=e&&(s.ta.splice(e,1),0===s.ta.length?i=t.ra()?0:1:!s.na()&&t.ra()&&(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 hu(e){e.ia.forEach(e=>{e.next()})}(le=le||{})._a="default",le.Cache="cache";class cu{constructor(e,t,r){this.query=e,this.aa=t,this.ua=!1,this.ca=null,this.onlineState="Unknown",this.options=r||{}}oa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new iu(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.ua?this.la(t)&&(this.aa.next(t),e=!0):this.ha(t,this.onlineState)&&(this.Pa(t),e=!0),this.ca=t,e}onError(e){this.aa.error(e)}sa(e){this.onlineState=e;let t=!1;return this.ca&&!this.ua&&this.ha(this.ca,e)&&(this.Pa(this.ca),t=!0),t}ha(e,t){return!e.fromCache||!this.ra()||(!this.options.Ta||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}la(e){var t;return 0<e.docChanges.length||(t=this.ca&&this.ca.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}Pa(e){e=iu.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.ua=!0,this.aa.next(e)}ra(){return this.options.source!==le.Cache}}class du{constructor(e,t){this.Ia=e,this.byteLength=t}Ea(){return"metadata"in this.Ia}}class fu{constructor(e){this.serializer=e}ps(e){return Es(this.serializer,e)}ys(e){return e.metadata.exists?Ns(this.serializer,e.document,!1):k.newNoDocument(this.ps(e.metadata.name),this.ws(e.metadata.readTime))}ws(e){return V(e)}}class gu{constructor(e,t,r){this.da=e,this.localStore=t,this.serializer=r,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=mu(e)}Aa(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.Ia.namedQuery?this.queries.push(e.Ia.namedQuery):e.Ia.documentMetadata?(this.documents.push({metadata:e.Ia.documentMetadata}),e.Ia.documentMetadata.exists||++t,r=S.fromString(e.Ia.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.Ia.document&&(this.documents[this.documents.length-1].document=e.Ia.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ra(e){let r=new Map,n=new fu(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.ps(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||M()).add(e);r.set(t,s)}}return r}async complete(){let e=await(async(r,n,e,t)=>{let i=r,s=M(),a=di;for(let r of e){let e=n.ps(r.metadata.name),t=(r.document&&(s=s.add(e)),n.ys(r));t.setReadTime(n.ws(r.metadata.readTime)),a=a.insert(e,t)}let o=i.ds.newChangeBuffer({trackRemovals:!0}),l=await $o(i,(r=t,ri(Jn(S.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>Qo(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Hr.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Hr.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Vs,e.fs)).next(()=>e.Vs)))})(this.localStore,new fu(this.serializer),this.documents,this.da.id),t=this.Ra(this.documents);for(let e of this.queries)await(async(e,r,n=M())=>{let i=await $o(e,ri(Js(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=V(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Yr.saveNamedQuery(e,r):(t=i.withResumeToken(D.EMPTY_BYTE_STRING,t),s.Ts=s.Ts.insert(t.targetId,t),s.Hr.updateTargetData(e,t).next(()=>s.Hr.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Hr.addMatchingKeys(e,n,i.targetId)).next(()=>s.Yr.saveNamedQuery(e,r)))})})(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Va:this.collectionGroups,ma:e}}}function mu(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class pu{constructor(e){this.key=e}}class yu{constructor(e){this.key=e}}class vu{constructor(e,t){this.query=e,this.fa=t,this.ga=null,this.hasCachedResults=!1,this.current=!1,this.pa=M(),this.mutatedKeys=M(),this.ya=hi(e),this.wa=new ru(this.ya)}get Sa(){return this.fa}ba(e,t){let o=t?t.Da:new nu,l=(t||this).wa,u=(t||this).mutatedKeys,h=l,c=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,f="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=li(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.va(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.ya(n,d)||f&&this.ya(n,f)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||f)&&(c=!0),a&&(u=n?(h=h.add(n),s?u.add(e):u.delete(e)):(h=h.delete(e),u.delete(e)))}),null!==this.query.limit)for(;h.size>this.query.limit;){let e="F"===this.query.limitType?h.last():h.first();h=h.delete(e.key),u=u.delete(e.key),o.track({type:1,doc:e})}return{wa:h,Da:o,ls:c,mutatedKeys:u}}va(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.wa,s=(this.wa=e.wa,this.mutatedKeys=e.mutatedKeys,e.Da.X_()),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 T()}})(r)-i(n)||this.ya(e.doc,t.doc);var r,n,i}),this.Ca(r),n=null!=n&&n,t&&!n?this.Fa():[]),o=0===this.pa.size&&this.current&&!n?1:0,l=o!==this.ga;return this.ga=o,0!==s.length||l?{snapshot:new iu(this.query,e.wa,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),Ma:a}:{Ma:a}}sa(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({wa:this.wa,Da:new nu,mutatedKeys:this.mutatedKeys,ls:!1},!1)):{Ma:[]}}xa(e){return!this.fa.has(e)&&!!this.wa.has(e)&&!this.wa.get(e).hasLocalMutations}Ca(e){e&&(e.addedDocuments.forEach(e=>this.fa=this.fa.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.fa=this.fa.delete(e)),this.current=e.current)}Fa(){if(!this.current)return[];let t=this.pa,r=(this.pa=M(),this.wa.forEach(e=>{this.xa(e.key)&&(this.pa=this.pa.add(e.key))}),[]);return t.forEach(e=>{this.pa.has(e)||r.push(new yu(e))}),this.pa.forEach(e=>{t.has(e)||r.push(new pu(e))}),r}Oa(e){this.fa=e.gs,this.pa=M();var t=this.ba(e.documents);return this.applyChanges(t,!0)}Na(){return iu.fromInitialDocuments(this.query,this.wa,this.mutatedKeys,0===this.ga,this.hasCachedResults)}}let wu="SyncEngine";class _u{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class bu{constructor(e){this.key=e,this.Ba=!1}}class Iu{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.La={},this.ka=new ci(e=>ai(e),si),this.qa=new Map,this.Qa=new Set,this.$a=new A(x.comparator),this.Ua=new Map,this.Ka=new vo,this.Wa={},this.Ga=new Map,this.za=Ga.Kn(),this.onlineState="Unknown",this.ja=void 0}get isPrimaryClient(){return!0===this.ja}}async function Tu(e,t,r,n){var i=await $o(e.localStore,ri(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await Eu(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&Fl(e.remoteStore,i),o}async function Eu(n,e,t,r,i){n.Ha=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ba(r);i.ls&&(i=await Wo(e.localStore,t.query,!1).then(({documents:e})=>t.view.ba(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 Mu(e,t.targetId,s.Ma),s.snapshot})(n,e,t,r);var s=await Wo(n.localStore,e,!0),a=new vu(e,s.gs),s=a.ba(s.documents),o=ss.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(Mu(n,t,s.Ma),new _u(e,t,a));return n.ka.set(e,o),n.qa.has(t)?n.qa.get(t).push(e):n.qa.set(t,[e]),s.snapshot}async function Su(t,e,r){var n=qu(t);try{let t=await((e,i)=>{let s=e,a=h.now(),o=i.reduce((e,t)=>e.add(t.key),M()),l,u;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=di,r=M();return s.ds.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=Ei(i.transform,e||null);null!=t&&(n=null===n?In.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new qi(r.key,e,function i(e){let s=[];return Dr(e.fields,(e,r)=>{var n=new v([e]);if(mn(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new Or(s)}(e.value.mapValue),O.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:mi(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Wa[i.currentUser.toKey()];e=(e=e||new A(E)).insert(s,a),i.Wa[i.currentUser.toKey()]=e}await Vu(n,t.changes),await $l(n.remoteStore)}catch(t){let e=tu(t,"Failed to persist write");r.reject(e)}}async function xu(e,t){let n=e;try{let e=await Ko(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Ua.get(t);r&&(y(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),0<e.addedDocuments.size?r.Ba=!0:0<e.modifiedDocuments.size?y(r.Ba):0<e.removedDocuments.size&&(y(r.Ba),r.Ba=!1))}),await Vu(n,e,t)}catch(e){await Ke(e)}}function Au(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.ka.forEach((e,t)=>{var r=t.view.sa(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.ta)e.sa(a)&&(r=!0)}),r&&hu(o)}n.length&&s.La.p_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function Cu(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=>(y(null!==e),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);ku(n,t,r),Nu(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await Vu(n,e)}catch(r){await Ke(r)}}async function Du(t,r){let n=t;zl(n.remoteStore)||p(wu,"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===ot?r.resolve():((i=n.Ga.get(e)||[]).push(r),n.Ga.set(e,i))}catch(t){let e=tu(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function Nu(e,t){(e.Ga.get(t)||[]).forEach(e=>{e.resolve()}),e.Ga.delete(t)}function ku(e,t,r){var n=e;let i=n.Wa[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Wa[n.currentUser.toKey()]=i}}function Ru(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.qa.get(e))t.ka.delete(n),r&&t.La.Ja(n,r);t.qa.delete(e),t.isPrimaryClient&&t.Ka.br(e).forEach(e=>{t.Ka.containsKey(e)||Lu(t,e)})}function Lu(e,t){e.Qa.delete(t.path.canonicalString());var r=e.$a.get(t);null!==r&&(Pl(e.remoteStore,r),e.$a=e.$a.remove(t),e.Ua.delete(r),Ou(e))}function Mu(e,t,r){for(var n of r)n instanceof pu?(e.Ka.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.$a.get(a)||i.Qa.has(o)||(p(wu,"New document in limbo: "+a),i.Qa.add(o),Ou(i))):n instanceof yu?(p(wu,"Document no longer in limbo: "+n.key),e.Ka.removeReference(n.key,t),e.Ka.containsKey(n.key)||Lu(e,n.key)):T();var i,s,a,o}function Ou(e){for(;0<e.Qa.size&&e.$a.size<e.maxConcurrentLimboResolutions;){var t=e.Qa.values().next().value,t=(e.Qa.delete(t),new x(S.fromString(t))),r=e.za.next();e.Ua.set(r,new bu(t)),e.$a=e.$a.insert(t,r),Fl(e.remoteStore,new zs(ri(Jn(t.path)),r,"TargetPurposeLimboResolution",at.ae))}}async function Vu(e,t,i){let s=e,a=[],o=[],r=[];if(!s.ka.isEmpty()){s.ka.forEach((e,n)=>{r.push(s.Ha(n,t,i).then(t=>{var r;if((t||i)&&s.isPrimaryClient){let e=t?!t.fromCache:null==(r=null==i?void 0:i.targetChanges.get(n.targetId))?void 0:r.current;s.sharedClientState.updateQueryState(n.targetId,e?"current":"not-current")}if(t){a.push(t);let e=Oo.Yi(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.La.p_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>w.forEach(l,t=>w.forEach(t.Hi,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>w.forEach(t.Ji,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!Je(n))throw n;p(Po,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.Ts.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Ts=i.Ts.insert(n,r)}}}}}async function Fu(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.Ln(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):w.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await $l(i.remoteStore):"acknowledged"===r||"rejected"===r?(ku(i,t,n||null),Nu(i,t),i.localStore.mutationQueue.qn(t)):T(),await Vu(i,s)):p(wu,"Cannot apply mutation batch with id: "+t)}async function Pu(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.qa.get(r);if(e&&0!==e.length){t=await $o(a.localStore,ri(e[0]));for(let r of e){let e=a.ka.get(r),t=(n=e,s=i=void 0,s=await Wo((i=a).localStore,n.query,!0),s=n.view.Oa(s),i.isPrimaryClient&&Mu(i,n.targetId,s.Ma),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await Yo(a.localStore,r);t=await $o(a.localStore,e),await Eu(a,Uu(e),r,!1,t.resumeToken)}o.push(t)}return a.La.p_(l),o}function Uu(e){return Xn(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function Bu(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=xu.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Ua.get(t);if(r&&r.Ba)return M().add(r.key);{let r=M(),e=n.qa.get(t);if(e)for(let t of e){let e=n.ka.get(t);r=r.unionWith(e.view.Sa)}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.Ua.get(n)),s=r&&r.key;if(s){let e=new A(x.comparator),t=(e=e.insert(s,k.newNoDocument(s,g.min())),M().add(s)),r=new is(g.min(),new Map,new A(E),e,t);await xu(i,r),i.$a=i.$a.remove(s),i.Ua.delete(n),Ou(i)}else await Ho(i.localStore,n,!1).then(()=>Ru(i,n,t)).catch(Ke)}).bind(null,t),t.La.p_=(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.ta)e.oa(r)&&(i=!0);t.ea=r}}i&&hu(n)}).bind(null,t.eventManager),t.La.Ja=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.ta)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function qu(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await zo(r.localStore,t);ku(r,n,null),Nu(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await Vu(r,e)}catch(e){await Ke(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=Cu.bind(null,t),t}function ju(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=V(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Yr.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(mu(i));var s=new gu(i,e.localStore,r.serializer);let t=await r.Ya();for(;t;){let e=await s.Aa(t);e&&n._updateProgress(e),t=await r.Ya()}var a=await s.complete();return await Vu(e,a.ma,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Yr.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Va)}catch(e){return ge(wu,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class zu{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=Sl(e.databaseInfo.databaseId),this.sharedClientState=this.Za(e),this.persistence=this.Xa(e),await this.persistence.start(),this.localStore=this.eu(e),this.gcScheduler=this.tu(e,this.localStore),this.indexBackfillerScheduler=this.nu(e,this.localStore)}tu(e,t){return null}nu(e,t){return null}eu(e){return qo(this.persistence,new Fo,e.initialUser,this.serializer)}Xa(e){return new To(So.ri,this.serializer)}Za(e){return new dl}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}zu.provider={build:()=>new zu};class Gu extends zu{constructor(e){super(),this.cacheSizeBytes=e}tu(e,t){y(this.persistence.referenceDelegate instanceof xo);var r=this.persistence.referenceDelegate.garbageCollector;return new Ja(r,e.asyncQueue,t)}Xa(e){let t=void 0!==this.cacheSizeBytes?Va.withCacheSize(this.cacheSizeBytes):Va.DEFAULT;return new To(e=>xo.ri(e,t),this.serializer)}}class Ku extends zu{constructor(e,t,r){super(),this.ru=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.ru.initialize(this,e),await qu(this.ru.syncEngine),await $l(this.ru.remoteStore),await this.persistence.Ci(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}eu(e){return qo(this.persistence,new Fo,e.initialUser,this.serializer)}tu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new Ja(r,e.asyncQueue,t)}nu(e,t){var r=new st(t,this.persistence);return new it(e.asyncQueue,r)}Xa(e){var t=Mo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?Va.withCacheSize(this.cacheSizeBytes):Va.DEFAULT;return new ko(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Tl(),El(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Za(e){return new dl}}class Qu extends Ku{constructor(e,t){super(e,t,!1),this.ru=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.ru.syncEngine;this.sharedClientState instanceof cl&&(this.sharedClientState.syncEngine={uo:Fu.bind(null,t),co:(async function(e,r,n,t){var i=e;if(i.ja)p(wu,"Ignoring unexpected query state notification.");else{var s=i.qa.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await Xo(i.localStore,ui(s[0])),t=is.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,D.EMPTY_BYTE_STRING);await Vu(i,e,t);break}case"rejected":await Ho(i.localStore,r,!0),Ru(i,r,t);break;default:T()}}}).bind(null,t),lo:(async function(e,t,n){let i=Bu(e);if(i.ja){for(let r of t)if(i.qa.has(r)&&i.sharedClientState.isActiveQueryTarget(r))p(wu,"Adding an already active target "+r);else{let e=await Yo(i.localStore,r),t=await $o(i.localStore,e);await Eu(i,Uu(e),t.targetId,!1,t.resumeToken),Fl(i.remoteStore,t)}for(let r of n)i.qa.has(r)&&await Ho(i.localStore,r,!1).then(()=>{Pl(i.remoteStore,r),Ru(i,r)}).catch(Ke)}}).bind(null,t),zi:(function(e){return e.localStore.persistence.zi()}).bind(null,t),ao:(async function(e,t){let r=e;return Xo(r.localStore,t).then(e=>Vu(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ci(async e=>{{var t=this.ru.syncEngine,s=e;let i=t;if(Bu(i),qu(i),!0===s&&!0!==i.ja){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await Pu(i,e.toArray());i.ja=!0,await Xl(i.remoteStore,!0);for(let e of t)Fl(i.remoteStore,e)}else if(!1===s&&!1!==i.ja){let r=[],n=Promise.resolve();i.qa.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(Ru(i,t),Ho(i.localStore,t,!0))),Pl(i.remoteStore,t)}),await n,await Pu(i,r);{s=i;let r=s;r.Ua.forEach((e,t)=>{Pl(r.remoteStore,t)}),r.Ka.Dr(),r.Ua=new Map,r.$a=new A(x.comparator)}i.ja=!1,await Xl(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())})}Za(e){var t,r=Tl();if(cl.D(r))return t=Mo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new cl(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new I(b.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class $u{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=>Au(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){p(wu,"User change. New user:",t.toKey());let e=await jo(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Ga.forEach(e=>{e.forEach(e=>{e.reject(new I(b.CANCELLED,n))})}),r.Ga.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await Vu(i,e.Rs)}}).bind(null,this.syncEngine),await Xl(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new au}createDatastore(e){var t,r,n,i=Sl(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new Il(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new kl(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>Au(this.syncEngine,e,0),i=new(ml.D()?ml:fl),new Ml(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 Iu(r,n,i,s,a,e),t&&(o.ja=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,p(Ll,"RemoteStore shutting down."),t.W_.add(5),await Vl(t),t.z_.shutdown(),await!t.j_.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function Hu(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()}}$u.provider={build:()=>new $u};class Wu{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.iu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.iu(this.observer.error,e):d("Uncaught Error in snapshot listener:",e.toString()))}su(){this.muted=!0}iu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class Yu{constructor(e,t){this.ou=e,this.serializer=t,this.metadata=new f,this.buffer=new Uint8Array,this._u=new TextDecoder("utf-8"),this.au().then(e=>{e&&e.Ea()?this.metadata.resolve(e.Ia.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
8
- `+JSON.stringify(null==e?void 0:e.Ia)))},e=>this.metadata.reject(e))}close(){return this.ou.cancel()}async getMetadata(){return this.metadata.promise}async Ya(){return await this.getMetadata(),this.au()}async au(){var e,t,r=await this.uu();return null===r?null:(t=this._u.decode(r),e=Number(t),isNaN(e)&&this.cu(`length string (${t}) is not valid number`),t=await this.lu(e),new du(JSON.parse(t),r.length+e))}hu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async uu(){for(;this.hu()<0&&!await this.Pu(););var e,t;return 0===this.buffer.length?null:((e=this.hu())<0&&this.cu("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 lu(e){for(;this.buffer.length<e;)await this.Pu()&&this.cu("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}cu(e){throw this.ou.cancel(),new Error("Invalid bundle format: "+e)}async Pu(){var e,t=await this.ou.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class Xu{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 I(b.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=>Ts(l.serializer,e))},n=await l.Co("BatchGetDocuments",l.serializer.databaseId,S.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,y(!!(n=e).found),n.found.name,n.found.updateTime,i=Es(r,n.found.name),s=V(n.found.updateTime),o=n.found.createTime?V(n.found.createTime):g.min(),a=new In({mapValue:{fields:n.found.fields}}),k.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing),y(!!n.readTime),i=Es(r,n.missing),s=V(n.readTime),k.newNoDocument(i,s)):T();u.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=u.get(e.toString());y(!!t),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 Ki(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new Qi(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>ks(t.serializer,e))};await t.So("Commit",t.serializer.databaseId,S.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw T();t=g.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.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(g.min())?O.exists(!1):O.updateTime(t):O.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return O.exists(!0);if(t.isEqual(g.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return O.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Ju{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Tu=r.maxAttempts,this.a_=new xl(this.asyncQueue,"transaction_retry")}Iu(){--this.Tu,this.Eu()}Eu(){this.a_.Xo(async()=>{let t=new Xu(this.datastore),e=this.du(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Au(e)}))}).catch(e=>{this.Au(e)})})}du(e){try{var t=this.updateFunction(e);return!lt(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}}Au(e){0<this.Tu&&this.Ru(e)?(--this.Tu,this.asyncQueue.enqueueAndForget(()=>(this.Eu(),Promise.resolve()))):this.deferred.reject(e)}Ru(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!Xi(t))}}let Zu="FirestoreClient";class eh{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=l.UNAUTHENTICATED,this.clientId=Se.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{p(Zu,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(p(Zu,"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 f;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=tu(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function th(e,t){e.asyncQueue.verifyOperationInProgress(),p(Zu,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await jo(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function rh(e,r){e.asyncQueue.verifyOperationInProgress();var t=await nh(e);p(Zu,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>Yl(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Yl(r.remoteStore,t)),e._onlineComponents=r}async function nh(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){p(Zu,"Using user provided OfflineComponentProvider");try{await th(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;ge("Error using user provided cache. Falling back to memory cache: "+r),await th(t,new zu)}}else p(Zu,"Using default OfflineComponentProvider"),await th(t,new Gu(void 0));var n;return t._offlineComponents}async function ih(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(p(Zu,"Using user provided OnlineComponentProvider"),await rh(e,e._uninitializedComponentsProvider._online)):(p(Zu,"Using default OnlineComponentProvider"),await rh(e,new $u))),e._onlineComponents}function sh(e){return nh(e).then(e=>e.persistence)}function ah(e){return nh(e).then(e=>e.localStore)}function oh(e){return ih(e).then(e=>e.remoteStore)}function lh(e){return ih(e).then(e=>e.syncEngine)}async function uh(e){var t=await ih(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=Bu(e);let i;var s=n.ka.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.Na()):await Tu(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.ka.get(t),s=n.qa.get(i.targetId);1<s.length?(n.qa.set(i.targetId,s.filter(e=>!si(e,t))),n.ka.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await Ho(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&Pl(n.remoteStore,i.targetId),Ru(n,i.targetId)}).catch(Ke)):(Ru(n,i.targetId),await Ho(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Tu(Bu(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.ka.get(t),i=r.qa.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),Pl(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function hh(r){return r.asyncQueue.enqueue(async()=>{var e=await sh(r),t=await oh(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.W_.add(0),await Vl(t),t.j_.set("Offline")})(t)})}function ch(e,t){let r=new f;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 I(b.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=tu(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await ah(e),t,r)),r.promise}function dh(e,t,u={}){let h=new f;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await uh(e),s=e.asyncQueue,a=t,o=u,l=h;let r=new Wu({next:e=>{r.su(),s.enqueueAndForget(()=>uu(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new I(b.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new cu(Jn(a.path),r,{includeMetadataChanges:!0,Ta:!0});return lu(i,n)}}),h.promise}function fh(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await Wo(e,t,!0),i=new vu(t,n.gs),s=i.ba(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=tu(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await ah(e),t,r)),r.promise}function gh(o,l,u={}){let h=new f;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await uh(o),i=o.asyncQueue,e=l,s=u,a=h;let t=new Wu({next:e=>{t.su(),i.enqueueAndForget(()=>uu(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new cu(e,t,{includeMetadataChanges:!0,Ta:!0});return lu(n,r)}}),h.promise}function mh(r,e){let n=new Wu(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await uh(r),t=n,e.ia.add(t),void t.next();var e,t}),()=>{n.su(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await uh(r),t=n,e.ia.delete(t)})}}function ph(e,t,r,n){r=r,t=Sl(t),s="string"==typeof r?Ee().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return Hu(e,t);if(e instanceof ArrayBuffer)return Hu(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 Yu(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{ju(await lh(e),i,n)})}function yh(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await ah(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Yr.getNamedQuery(e,r))}})}function vh(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let wh=new Map;function _h(e,t,r){if(!r)throw new I(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function bh(e,t,r,n){if(!0===t&&!0===n)throw new I(b.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function Ih(e){if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Th(e){if(x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function Eh(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":T()}function F(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new I(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=Eh(e);throw new I(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function Sh(e,t){if(t<=0)throw new I(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let xh="firestore.googleapis.com";class Ah{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=xh,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}bh("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=vh(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class Ch{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 Ah({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new I(b.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 I(b.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Ah(e),void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new ye;switch(e.type){case"firstParty":return new be(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=wh.get(e))&&(p("ComponentProvider","Removing Datastore"),wh.delete(e),t.terminate()),Promise.resolve();var e,t}}function Dh(n,e,t,i={}){let s,r=(n=F(n,Ch))._getSettings(),a=e+":"+t;if(r.host!==xh&&r.host!==a&&ge("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),n._setSettings(Object.assign(Object.assign({},r),{host:a,ssl:!1})),i.mockUserToken){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=l.MOCK_USER;else{t=((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e),[j(JSON.stringify({alg:"none",type:"JWT"})),j(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,null==(s=n._app)?void 0:s.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new l(e)}n._authCredentials=new ve(new pe(t,r))}}class Nh{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new Nh(this.firestore,e,this._query)}}class P{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 kh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new P(this.firestore,e,this._key)}}class kh extends Nh{constructor(e,t,r){super(e,t,Jn(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 P(this.firestore,null,new x(e))}withConverter(e){return new kh(this.firestore,e,this._path)}}function Rh(e,t,...r){var n;if(e=_(e),_h("collection","path",t),e instanceof Ch)return Th(n=S.fromString(t,...r)),new kh(e,null,n);if(e instanceof P||e instanceof kh)return Th(n=e._path.child(S.fromString(t,...r))),new kh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Lh(e,t,...r){var n;if(e=_(e),_h("doc","path",t=1===arguments.length?Se.newId():t),e instanceof Ch)return Ih(n=S.fromString(t,...r)),new P(e,null,new x(n));if(e instanceof P||e instanceof kh)return Ih(n=e._path.child(S.fromString(t,...r))),new P(e.firestore,e instanceof kh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Mh(e,t){return e=_(e),t=_(t),(e instanceof P||e instanceof kh)&&(t instanceof P||t instanceof kh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function Oh(e,t){return e=_(e),t=_(t),e instanceof Nh&&t instanceof Nh&&e.firestore===t.firestore&&si(e._query,t._query)&&e.converter===t.converter}let Vh="AsyncQueue";class Fh{constructor(e=Promise.resolve()){this.Vu=[],this.mu=!1,this.fu=[],this.gu=null,this.pu=!1,this.yu=!1,this.wu=[],this.a_=new xl(this,"async_queue_retry"),this.Su=()=>{var e=El();e&&p(Vh,"Visibility state changed to "+e.visibilityState),this.a_.t_()},this.bu=e;var t=El();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Su)}get isShuttingDown(){return this.mu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.Du(),this.vu(e)}enterRestrictedMode(e){var t;this.mu||(this.mu=!0,this.yu=e||!1,(t=El())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Su))}enqueue(e){if(this.Du(),this.mu)return new Promise(()=>{});let t=new f;return this.vu(()=>this.mu&&this.yu?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Vu.push(e),this.Cu()))}async Cu(){if(0!==this.Vu.length){try{await this.Vu[0](),this.Vu.shift(),this.a_.reset()}catch(e){if(!Je(e))throw e;p(Vh,"Operation failed with retryable error: "+e)}0<this.Vu.length&&this.a_.Xo(()=>this.Cu())}}vu(e){var t=this.bu.then(()=>(this.pu=!0,e().catch(e=>{throw this.gu=e,this.pu=!1,d("INTERNAL UNHANDLED ERROR: ",(e=>{let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t})(e)),e}).then(e=>(this.pu=!1,e))));return this.bu=t}enqueueAfterDelay(e,t,r){this.Du(),-1<this.wu.indexOf(e)&&(t=0);var n=eu.createAndSchedule(this,e,t,r,e=>this.Fu(e));return this.fu.push(n),n}Du(){this.gu&&T()}verifyOperationInProgress(){}async Mu(){for(var e;await(e=this.bu),e!==this.bu;);}xu(e){for(var t of this.fu)if(t.timerId===e)return!0;return!1}Ou(t){return this.Mu().then(()=>{this.fu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.fu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Mu()})}Nu(e){this.wu.push(e)}Fu(e){var t=this.fu.indexOf(e);this.fu.splice(t,1)}}function Ph(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class Uh{constructor(){this._progressObserver={},this._taskCompletionResolver=new f,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var Bh,qh,t,jh;class U extends Ch{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new Fh,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new Fh(e),this._firestoreClient=void 0,await e)}}function zh(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||Gh(e),e._firestoreClient}function Gh(e){var t,r,n,i,s,a=e._freezeSettings(),o=(i=e._databaseId,t=(null==(o=e._app)?void 0:o.options.appId)||"",r=e._persistenceKey,n=a,new $r(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,vh(n.experimentalLongPollingOptions),n.useFetchStreams));e._componentsProvider||null!=(s=a.localCache)&&s._offlineComponentProvider&&null!=(s=a.localCache)&&s._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new eh(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(i=e._componentsProvider,s=null==i?void 0:i._online.build(),{_offline:null==i?void 0:i._offline.build(s),_online:s}))}function Kh(e,t,r){if((e=F(e,U))._firestoreClient||e._terminated)throw new I(b.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 I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},Gh(e)}function Qh(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new f;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=Mo(r._databaseId,r._persistenceKey),await(He.D()?(t=e+"main",void await He.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function $h(e){return(r=zh(e=F(e,U))).asyncQueue.enqueue(async()=>{var e=await sh(r),t=await oh(r);return e.setNetworkEnabled(!0),(e=t).W_.delete(0),Ol(e)});var r}class Hh{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Hh(D.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new Hh(D.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class Wh{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new I(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new v(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class Yh{constructor(e){this._methodName=e}}class Xh{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new I(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new I(b.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return E(this._lat,e._lat)||E(this._long,e._long)}}class Jh{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}}let Zh=/^__.*__$/;class ec{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new qi(e,this.data,this.fieldMask,t,this.fieldTransforms):new Bi(e,this.data,t,this.fieldTransforms)}}class tc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new qi(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function rc(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw T()}}class nc{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Bu(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Lu(){return this.settings.Lu}ku(e){return new nc(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}qu(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.$u(e),t}Uu(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.Bu(),t}Ku(e){return this.ku({path:void 0,Qu:!0})}Wu(e){return Tc(e,this.settings.methodName,this.settings.Gu||!1,this.path,this.settings.zu)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Bu(){if(this.path)for(let e=0;e<this.path.length;e++)this.$u(this.path.get(e))}$u(e){if(0===e.length)throw this.Wu("Document fields must not be empty");if(rc(this.Lu)&&Zh.test(e))throw this.Wu('Document fields cannot begin and end with "__"')}}class ic{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||Sl(e)}ju(e,t,r,n=!1){return new nc({Lu:e,methodName:t,zu:r,path:v.emptyPath(),Qu:!1,Gu:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function sc(e){var t=e._freezeSettings(),r=Sl(e._databaseId);return new ic(e._databaseId,!!t.ignoreUndefinedProperties,r)}function ac(e,n,i,t,r,s={}){var a=e.ju(s.merge||s.mergeFields?2:0,n,i,r),o=(wc("Data must be an object, but it was:",a,t),yc(t,a));let l,u;if(s.merge)l=new Or(a.fieldMask),u=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=_c(n,r,i);if(!a.contains(e))throw new I(b.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);Ec(t,e)||t.push(e)}l=new Or(t),u=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,u=a.fieldTransforms;return new ec(new In(o),l,u)}class oc extends Yh{_toFieldTransform(e){if(2!==e.Lu)throw 1===e.Lu?e.Wu(this._methodName+"() can only appear at the top level of your update data"):e.Wu(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof oc}}function lc(e,t,r){return new nc({Lu:3,zu:t.settings.zu,methodName:e._methodName,Qu:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class uc extends Yh{_toFieldTransform(e){return new Li(e.path,new Si)}isEqual(e){return e instanceof uc}}class hc extends Yh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=lc(this,e,!0),r=this.Hu.map(e=>pc(e,t)),n=new xi(r);return new Li(e.path,n)}isEqual(e){return e instanceof hc&&Z(this.Hu,e.Hu)}}class cc extends Yh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=lc(this,e,!0),r=this.Hu.map(e=>pc(e,t)),n=new Ci(r);return new Li(e.path,n)}isEqual(e){return e instanceof cc&&Z(this.Hu,e.Hu)}}class dc extends Yh{constructor(e,t){super(e),this.Ju=t}_toFieldTransform(e){var t=new Ni(e.serializer,Ii(e.serializer,this.Ju));return new Li(e.path,t)}isEqual(e){return e instanceof dc&&this.Ju===e.Ju}}function fc(e,i,s,t){let a=e.ju(1,i,s),o=(wc("Data must be an object, but it was:",a,t),[]),l=In.empty();Dr(t,(e,t)=>{var r=Ic(i,e,s),n=(t=_(t),a.Uu(r));if(t instanceof oc)o.push(r);else{let e=pc(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new Or(o);return new tc(l,r,a.fieldTransforms)}function gc(e,t,r,n,i,s){var a=e.ju(1,t,r),o=[_c(t,n,r)],l=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<s.length;f+=2)o.push(_c(t,s[f])),l.push(s[f+1]);var u=[],h=In.empty();for(let g=o.length-1;0<=g;--g)if(!Ec(u,o[g])){let t=o[g];var c=_(l[g]);let r=a.Uu(t);if(c instanceof oc)u.push(t);else{let e=pc(c,r);null!=e&&(u.push(t),h.set(t,e))}}var d=new Or(u);return new tc(h,d,a.fieldTransforms)}function mc(e,t,r,n=!1){return pc(r,e.ju(n?4:3,t))}function pc(e,r){if(vc(e=_(e)))return wc("Unsupported field value:",r,e),yc(e,r);if(e instanceof Yh){{var t=e;var n=r;if(!rc(n.Lu))throw n.Wu(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Wu(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.Qu&&4!==r.Lu)throw r.Wu("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=pc(s,a.Ku(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=_(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ii(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return u=h.fromDate(t),{timestampValue:vs(n.serializer,u)};if(t instanceof h)return u=new h(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:vs(n.serializer,u)};if(t instanceof Xh)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Hh)return{bytesValue:ws(n.serializer,t._byteString)};if(t instanceof P){var u=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(u))return{referenceValue:_s(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Wu(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${u.projectId}/`+u.database)}if(t instanceof Jh)return e=t,l=n,{mapValue:{fields:{[Yr]:{stringValue:Zr},[en]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Wu("VectorValues must only contain numeric values.");return _i(l.serializer,e)})}}}}};throw n.Wu("Unsupported field value: "+Eh(t))}function yc(e,n){let i={};return Nr(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Dr(e,(e,t)=>{var r=pc(t,n.qu(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function vc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof h||e instanceof Xh||e instanceof Hh||e instanceof P||e instanceof Yh||e instanceof Jh)}function wc(e,t,r){var n,i;if(!vc(r)||"object"!=typeof(i=r)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))throw"an object"===(n=Eh(r))?t.Wu(e+" a custom object"):t.Wu(e+" "+n)}function _c(e,t,r){if((t=_(t))instanceof Wh)return t._internalPath;if("string"==typeof t)return Ic(e,t);throw Tc("Field path arguments must be of type string or ",e,!1,void 0,r)}let bc=new RegExp("[~\\*/\\[\\]]");function Ic(t,r,n){if(0<=r.search(bc))throw Tc(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Wh(...r.split("."))._internalPath}catch(e){throw Tc(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function Tc(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 I(b.INVALID_ARGUMENT,o+e+l)}function Ec(e,t){return e.some(e=>e.isEqual(t))}class Sc{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 P(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new xc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(Ac("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class xc extends Sc{data(){return super.data()}}function Ac(e,t){return"string"==typeof t?Ic(e,t):(t instanceof Wh?t:t._delegate)._internalPath}function Cc(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Dc{}class Nc extends Dc{}function kc(e,t,...r){let n=[];t instanceof Dc&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof Rc).length;if(1<i||0<i&&0<s)throw new I(b.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class Rc extends Nc{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new Rc(e,t,r)}_apply(e){var t=this._parse(e);return Bc(e._query,t),new Nh(e.firestore,e.converter,ni(e._query,t))}_parse(e){var t=sc(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new I(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){Uc(l,o);let e=[];for(let t of l)e.push(Pc(a,n,t));r={arrayValue:{values:e}}}else r=Pc(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||Uc(l,o),r=mc(s,i,l,"in"===o||"not-in"===o);return R.create(e,o,r)}}}(class extends Dc{});class Lc extends Nc{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new Lc(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new xn(t,r)})(e._query,this._field,this._direction);return new Nh(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Yn(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class Mc extends Nc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new Mc(e,t,r)}_apply(e){return new Nh(e.firestore,e.converter,ii(e._query,this._limit,this._limitType))}}class Oc extends Nc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Oc(e,t,r)}_apply(e){var t,r=Fc(e,this.type,this._docOrFields,this._inclusive);return new Nh(e.firestore,e.converter,(e=e._query,t=r,new Yn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class Vc extends Nc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Vc(e,t,r)}_apply(e){var t,r=Fc(e,this.type,this._docOrFields,this._inclusive);return new Nh(e.firestore,e.converter,(e=e._query,t=r,new Yn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function Fc(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof Sc){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,u=i;if(!l)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of ti(s))if(t.field.isKeyField())h.push(hn(a,l.key));else{let e=l.data.field(t.field);if(Gr(e))throw new I(b.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 I(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}h.push(e)}return new Tn(h,u)}var t=sc(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w<m.length;w++){var v=m[w];if(p[w].field.isKeyField()){if("string"!=typeof v)throw new I(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${g}(), but got a `+typeof v);if(!ei(c)&&-1!==v.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${g}() must be a plain document ID, but '${v}' contains a slash.`);let e=c.path.child(S.fromString(v));if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${g}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);y.push(hn(d,t))}else{let e=mc(f,g,v);y.push(e)}}return new Tn(y,o)}function Pc(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new I(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!ei(t)&&-1!==r.indexOf("/"))throw new I(b.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(S.fromString(r));if(x.isDocumentKey(n))return hn(e,new x(n));throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof P)return hn(e,r._key);throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Eh(r)}.`)}function Uc(e,t){if(!Array.isArray(e)||0===e.length)throw new I(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function Bc(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 I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class qc{convertValue(e,t="none"){switch(rn(e)){case 0:return null;case 1:return e.booleanValue;case 2:return N(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(Ur(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw T()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Dr(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=null==(t=null==(t=null==(t=e.fields)?void 0:t[en].arrayValue)?void 0:t.values)?void 0:t.map(e=>N(e.doubleValue));return new Jh(t)}convertGeoPoint(e){return new Xh(N(e.latitude),N(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=Kr(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(Qr(e));default:return null}}convertTimestamp(e){var t=Pr(e);return new h(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=S.fromString(e),n=(y(js(r)),new Wr(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function jc(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class zc extends qc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Hh(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}class Gc{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class Kc extends Sc{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 Qc(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(Ac("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class Qc extends Kc{data(e={}){return super.data(e)}}class $c{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new Gc(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 Qc(this._firestore,this._userDataWriter,e.key,e,new Gc(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 I(b.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new Qc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Gc(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 Qc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Gc(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 T()}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function Hc(e,t){return e instanceof Kc&&t instanceof Kc?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 $c&&t instanceof $c&&e._firestore===t._firestore&&Oh(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class Wc extends qc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Hh(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}function Yc(e,t,r){e=F(e,P);var n=F(e.firestore,U),i=jc(e.converter,t,r);return Zc(n,[ac(sc(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,O.none())])}function Xc(e,t,r,...n){e=F(e,P);var i=F(e.firestore,U),s=sc(i);return Zc(i,[("string"==typeof(t=_(t))||t instanceof Wh?gc(s,"updateDoc",e._key,t,r,n):fc(s,"updateDoc",e._key,t)).toMutation(e._key,O.exists(!0))])}function Jc(n,...i){var t,r;n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0;"object"!=typeof i[s]||Ph(i[s])||(e=i[s],s++);var a={includeMetadataChanges:e.includeMetadataChanges,source:e.source};if(Ph(i[s])){let e=i[s];i[s]=null==(r=e.next)?void 0:r.bind(e),i[s+1]=null==(t=e.error)?void 0:t.bind(e),i[s+2]=null==(r=e.complete)?void 0:r.bind(e)}let o,l,u;if(n instanceof P)l=F(n.firestore,U),u=Jn(n._key.path),o={next:e=>{i[s]&&i[s](ed(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=F(n,Nh),r=(l=F(t.firestore,U),u=t._query,new Wc(l));o={next:e=>{i[s]&&i[s](new $c(l,r,t,e))},error:i[s+1],complete:i[s+2]},Cc(n._query)}{var h=zh(l),c=u,d=a,f=o;let e=new Wu(f),t=new cu(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>lu(await uh(h),t)),()=>{e.su(),h.asyncQueue.enqueueAndForget(async()=>uu(await uh(h),t))}}}function Zc(t,r){{var n=zh(t),i=r;let e=new f;return n.asyncQueue.enqueueAndForget(async()=>Su(await lh(n),i,e)),e.promise}}function ed(e,t,r){var n=r.docs.get(t._key),i=new Wc(e);return new Kc(e,i,t._key,n,new Gc(r.hasPendingWrites,r.fromCache),t.converter)}let td={maxAttempts:5};class rd{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=sc(e)}set(e,t,r){this._verifyNotCommitted();var n=nd(e,this._firestore),i=jc(n.converter,t,r),i=ac(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,O.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=nd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Wh?gc(this._dataReader,"WriteBatch.update",i._key,t,r,n):fc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,O.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=nd(e,this._firestore);return this._mutations=this._mutations.concat(new Ki(t._key,O.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 I(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function nd(e,t){if((e=_(e)).firestore!==t)throw new I(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class id extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=sc(e)}get(e){let r=nd(e,this._firestore),n=new zc(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return T();var t=e[0];if(t.isFoundDocument())return new Sc(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Sc(this._firestore,n,r._key,null,r.converter);throw T()})}set(e,t,r){var n=nd(e,this._firestore),i=jc(n.converter,t,r),i=ac(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=nd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Wh?gc(this._dataReader,"Transaction.update",i._key,t,r,n):fc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=nd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=nd(e,this._firestore),r=new Wc(this._firestore);return super.get(e).then(e=>new Kc(this._firestore,r,t._key,e._document,new Gc(!1,!1),t.converter))}}function sd(r,n,e){r=F(r,U);var i=Object.assign(Object.assign({},td),e);if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=zh(r),a=e=>n(new id(r,e)),o=i;let t=new f;return s.asyncQueue.enqueueAndForget(async()=>{var e=await ih(s).then(e=>e.datastore);new Ju(s.asyncQueue,e,o,a,t).Iu()}),t.promise}}qh=!0,t=Rd.SDK_VERSION,ce=t,Rd._registerComponent(new te("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new U(new we(e.getProvider("auth-internal")),new Te(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new Wr(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:qh},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Rd.registerVersion(ue,he,Bh),Rd.registerVersion(ue,he,"esm2017");function ad(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function od(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function ld(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class ud{constructor(e){this._delegate=e}static fromBase64String(e){return ld(),new ud(Hh.fromBase64String(e))}static fromUint8Array(e){return od(),new ud(Hh.fromUint8Array(e))}toBase64(){return ld(),this._delegate.toBase64()}toUint8Array(){return od(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function hd(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 cd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};ge("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return Kh(e,$u.provider,{build:e=>new Ku(e,t.cacheSizeBytes,null==n?void 0:n.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{ge("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();Kh(e,$u.provider,{build:e=>new Qu(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return Qh(e._delegate)}}class dd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof Wr||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||ge("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){Dh(this._delegate,e,t,r)}enableNetwork(){return $h(this._delegate)}disableNetwork(){return hh(zh(F(this._delegate,U)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,bh("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=zh(t=F(t,U));let e=new f;return r.asyncQueue.enqueueAndForget(async()=>Du(await lh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,mh(zh(t=F(t,U)),Ph(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new xd(this,Rh(this._delegate,e))}catch(e){throw vd(e,"collection()","Firestore.collection()")}}doc(e){try{return new yd(this,Lh(this._delegate,e))}catch(e){throw vd(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new Td(this,((e,t)=>{if(e=F(e,Ch),_h("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Nh(e,null,(e=t,new Yn(S.emptyPath(),e)))})(this._delegate,e))}catch(e){throw vd(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return sd(this._delegate,e=>t(new gd(this,e)))}batch(){return zh(this._delegate),new md(new rd(this._delegate,e=>Zc(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=zh(t=F(t,U)),n=new Uh,ph(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,yh(zh(t=F(t,U)),e).then(e=>e?new Nh(t,null,e.query):null).then(e=>e?new Td(this,e):null);var t}}class fd extends qc{constructor(e){super(),this.firestore=e}convertBytes(e){return new ud(new Hh(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return yd.forKey(t,this.firestore,null)}}class gd{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new fd(e)}get(e){let t=Ad(e);return this._delegate.get(t).then(e=>new bd(this._firestore,new Kc(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=Ad(e);return r?(ad("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Ad(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Ad(e);return this._delegate.delete(t),this}}class md{constructor(e){this._delegate=e}set(e,t,r){var n=Ad(e);return r?(ad("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Ad(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Ad(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class pd{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Qc(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new Id(this._firestore,r),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=pd.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new pd(e,new fd(e),t),n.set(t,i)),i}}pd.INSTANCES=new WeakMap;class yd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new fd(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new yd(t,new P(t._delegate,r,new x(e)))}static forKey(e,t,r){return new yd(t,new P(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new xd(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new xd(this.firestore,Rh(this._delegate,e))}catch(e){throw vd(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof P&&Mh(this._delegate,e)}set(e,t){t=ad("DocumentReference.set",t);try{return t?Yc(this._delegate,e,t):Yc(this._delegate,e)}catch(e){throw vd(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Xc(this._delegate,e):Xc(this._delegate,e,t,...r)}catch(e){throw vd(e,"updateDoc()","DocumentReference.update()")}}delete(){return Zc(F((e=this._delegate).firestore,U),[new Ki(e._key,O.none())]);var e}onSnapshot(...e){var t=wd(e),r=_d(e,e=>new bd(this.firestore,new Kc(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Jc(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U),e=zh(r),n=new Wc(r);return ch(e,t._key).then(e=>new Kc(r,n,t._key,e,new Gc(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U);return dh(zh(r),t._key,{source:"server"}).then(e=>ed(r,t,e))}:t=>{t=F(t,P);let r=F(t.firestore,U);return dh(zh(r),t._key).then(e=>ed(r,t,e))})(this._delegate)).then(e=>new bd(this.firestore,new Kc(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new yd(this.firestore,e?this._delegate.withConverter(pd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function vd(e,t,r){return e.message=e.message.replace(t,r),e}function wd(e){for(var t of e)if("object"==typeof t&&!hd(t))return t;return{}}function _d(e,t){let r,n,i;return i=hd(e[0])?e[0]:hd(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{i.next&&i.next(t(e))},error:null==(r=i.error)?void 0:r.bind(i),complete:null==(n=i.complete)?void 0:n.bind(i)}}class bd{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new yd(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 Hc(this._delegate,e._delegate)}}class Id extends bd{data(e){var t=this._delegate.data(e);return this._delegate._converter||void 0!==t||T(),t}}class Td{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new fd(e)}where(e,t,r){try{return new Td(this.firestore,kc(this._delegate,(n=r,i=t,s=Ac("where",e),Rc._create(s,i,n))))}catch(e){throw vd(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new Td(this.firestore,kc(this._delegate,([r,n="asc"]=[e,t],i=n,s=Ac("orderBy",r),Lc._create(s,i))))}catch(e){throw vd(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new Td(this.firestore,kc(this._delegate,(Sh("limit",t=e),Mc._create("limit",t,"F"))))}catch(e){throw vd(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new Td(this.firestore,kc(this._delegate,(Sh("limitToLast",t=e),Mc._create("limitToLast",t,"L"))))}catch(e){throw vd(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new Td(this.firestore,kc(this._delegate,([...t]=[...e],Oc._create("startAt",t,!0))))}catch(e){throw vd(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new Td(this.firestore,kc(this._delegate,([...t]=[...e],Oc._create("startAfter",t,!1))))}catch(e){throw vd(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new Td(this.firestore,kc(this._delegate,([...t]=[...e],Vc._create("endBefore",t,!1))))}catch(e){throw vd(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new Td(this.firestore,kc(this._delegate,([...t]=[...e],Vc._create("endAt",t,!0))))}catch(e){throw vd(e,"endAt()","Query.endAt()")}var t}isEqual(e){return Oh(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,Nh);let r=F(t.firestore,U),e=zh(r),n=new Wc(r);return fh(e,t._query).then(e=>new $c(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,Nh);let r=F(t.firestore,U),e=zh(r),n=new Wc(r);return gh(e,t._query,{source:"server"}).then(e=>new $c(r,n,t,e))}:t=>{t=F(t,Nh);let r=F(t.firestore,U),e=zh(r),n=new Wc(r);return Cc(t._query),gh(e,t._query).then(e=>new $c(r,n,t,e))})(this._delegate)).then(e=>new Sd(this.firestore,new $c(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=wd(e),r=_d(e,e=>new Sd(this.firestore,new $c(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Jc(this._delegate,t,r)}withConverter(e){return new Td(this.firestore,e?this._delegate.withConverter(pd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class Ed{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new Id(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class Sd{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new Td(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 Id(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new Ed(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new Id(this._firestore,e))})}isEqual(e){return Hc(this._delegate,e._delegate)}}class xd extends Td{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 yd(this.firestore,e):null}doc(e){try{return void 0===e?new yd(this.firestore,Lh(this._delegate)):new yd(this.firestore,Lh(this._delegate,e))}catch(e){throw vd(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=F(e.firestore,U),n=Lh(e),i=jc(e.converter,t);return Zc(r,[ac(sc(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,O.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new yd(this.firestore,e))}isEqual(e){return Mh(this._delegate,e._delegate)}withConverter(e){return new xd(this.firestore,e?this._delegate.withConverter(pd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Ad(e){return F(e,P)}class Cd{static serverTimestamp(){var e=new uc("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Cd(e)}static delete(){var e=new oc("deleteField");return e._methodName="FieldValue.delete",new Cd(e)}static arrayUnion(...e){[...e]=[...e];var t=new hc("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Cd(t)}static arrayRemove(...e){[...e]=[...e];var t=new cc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Cd(t)}static increment(e){e=e;var t=new dc("increment",e);return t._methodName="FieldValue.increment",new Cd(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let Dd={Firestore:dd,GeoPoint:Xh,Timestamp:h,Blob:ud,Transaction:gd,WriteBatch:md,DocumentReference:yd,DocumentSnapshot:bd,Query:Td,QueryDocumentSnapshot:Id,QuerySnapshot:Sd,CollectionReference:xd,FieldPath:class Nd{constructor(...e){this._delegate=new Wh(...e)}static documentId(){return new Nd(v.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof Wh&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Cd,setLogLevel:function(e){e=e,de.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=i.default,jh=(e,t)=>new dd(e,t,new cd),t.INTERNAL.registerComponent(new te("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return jh(t,r)},"PUBLIC").setServiceProps(Object.assign({},Dd))),t.registerVersion("@firebase/firestore-compat","0.3.42")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}});
6
+ 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`),w.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function Za(e,t){return new Ja(e,t)}class eo{constructor(e,t){this.db=e,this.garbageCollector=Za(this,t)}nr(e){let r=this.sr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}rr(e,r){return this._r(e,(e,t)=>r(t))}addReference(e,t,r){return to(e,r)}removeReference(e,t,r){return to(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return to(e,t)}ar(e,r){{var n=e,i=r;let t=!1;return ja(n).X(e=>Ua(n,e,i).next(e=>(e&&(t=!0),w.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this._r(r,(t,e)=>{if(e<=n){let e=this.ar(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,g.min()),$a(r).delete([0,o(t.path)])))});s.push(e)}}).next(()=>w.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 to(e,t)}_r(e,n){var t=$a(e);let i,s=it.ae;return t.Z({index:Ft},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==it.ae&&n(new x(ct(i)),s),s=r,i=t):s=it.ae}).next(()=>{s!==it.ae&&n(new x(ct(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function to(e,t){return $a(e).put((e=e.currentSequenceNumber,{targetId:0,path:o(t.path),sequenceNumber:e}))}class ro{constructor(){this.changes=new ui(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,k.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?w.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 no{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return oo(e).put(r)}removeEntry(e,t,r){return oo(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],Gs(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.ur(t,e)))}getEntry(e,r){let n=k.newInvalidDocument(r);return oo(e).Z({index:xt,range:IDBKeyRange.only(lo(r))},(e,t)=>{n=this.cr(r,t)}).next(()=>n)}lr(e,r){let n={size:0,document:k.newInvalidDocument(r)};return oo(e).Z({index:xt,range:IDBKeyRange.only(lo(r))},(e,t)=>{n={document:this.cr(r,t),size:Fa(t)}}).next(()=>n)}getEntries(e,t){let n=hi;return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r)}).next(()=>n)}Pr(e,t){let n=hi,i=new A(x.comparator);return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r),i=i.insert(e,Fa(t))}).next(()=>({documents:n,Tr:i}))}hr(e,t,i){if(t.isEmpty())return w.resolve();let r=new C(ho),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(lo(r.first()),lo(r.last()))),s=r.getIterator(),a=s.getNext();return oo(e).Z({index:xt,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&ho(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.W(lo(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),Gs(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 oo(e).G(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=hi;for(let r of e){let e=this.cr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(ai(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=hi;var n=uo(t,r),a=uo(t,Ue.max());return oo(e).Z({index:Ct,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.cr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new so(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return ao(e).get(kt).next(e=>(y(!!e),e))}ur(e,t){return ao(e).put(kt,t)}cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=Ds(e.Tt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=$s(r.noDocument.readTime);n=k.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return T();{let e=x.fromSegments(r.unknownDocument.path),t=$s(r.unknownDocument.version);n=k.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new h(e[0],e[1]),g.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(g.min()))return e}return k.newInvalidDocument(e)}}function io(e){return new no(e)}class so extends ro{constructor(e,t){super(),this.Ir=e,this.trackRemovals=t,this.Er=new ui(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Er.get(t);if(a.push(this.Ir.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=zs(this.Ir.serializer,r),i=(l=l.add(t.path.popLast()),Fa(n));o+=i-e.size,a.push(this.Ir.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=zs(this.Ir.serializer,r.convertToNoDocument(g.min()));a.push(this.Ir.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Ir.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Ir.updateMetadata(s,o)),w.waitFor(a)}getFromCache(e,t){return this.Ir.lr(e,t).next(e=>(this.Er.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Ir.Pr(e,t).next(({documents:r,Tr:e})=>(e.forEach((e,t)=>{this.Er.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function ao(e){return r(e,Nt)}function oo(e){return r(e,Et)}function lo(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function uo(e,t){var r=t.documentKey.path.toArray();return[e,Gs(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function ho(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=E(r[s],n[s]))return i;return(i=E(r.length,n.length))||(i=E(r[r.length-2],n[n.length-2]))||E(r[r.length-1],n[n.length-1])}class co{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class fo{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&&Vi(n.mutation,e,Lr.empty(),h.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,M()).next(()=>e))}getLocalViewOfDocuments(e,t,r=M()){let n=gi();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=di();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=gi();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,M()))}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=hi,a=gi(),o=gi();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof Ui)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),Vi(r.mutation,t,r.mutation.getFieldMask(),h.now())):a.set(t.key,Lr.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var r;return o.set(e,new co(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=gi(),u=new A((e,t)=>e-t),h=M();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)||Lr.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(u.get(n.batchId)||M()).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=gi();r.forEach(e=>{var t;h.has(e)||(null!==(t=Oi(o.get(e),l.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return w.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Jn(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):w.resolve(gi());let n=ke,i=r;return e.next(e=>w.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?w.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,M())).next(e=>({batchId:n,changes:fi(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=di();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=di();return this.indexManager.getCollectionParents(n,o).next(e=>w.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Hn(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,k.newInvalidDocument(r)))});let i=di();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&Vi(r.mutation,t,Lr.empty(),h.now()),ai(s,t)&&(i=i.insert(e,t))}),i})}}class go{constructor(e){this.serializer=e,this.dr=new Map,this.Ar=new Map}getBundleMetadata(e,t){return w.resolve(this.dr.get(t))}saveBundleMetadata(e,t){return this.dr.set(t.id,{id:t.id,version:t.version,createTime:V(t.createTime)}),w.resolve()}getNamedQuery(e,t){return w.resolve(this.Ar.get(t))}saveNamedQuery(e,t){return this.Ar.set(t.name,{name:(t=t).name,query:Xs(t.bundledQuery),readTime:V(t.readTime)}),w.resolve()}}class mo{constructor(){this.overlays=new A(x.comparator),this.Rr=new Map}getOverlay(e,t){return w.resolve(this.overlays.get(t))}getOverlays(e,t){let r=gi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.Et(r,n,t)}),w.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Rr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Rr.delete(r)),w.resolve()}getOverlaysForCollection(e,r,n){let i=gi(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return w.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new A((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=gi(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=gi(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return w.resolve(a)}Et(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Rr.get(n.largestBatchId).delete(r.key);this.Rr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new $i(t,r));let i=this.Rr.get(t);void 0===i&&(i=M(),this.Rr.set(t,i)),this.Rr.set(t,i.add(r.key))}}class po{constructor(){this.sessionToken=D.EMPTY_BYTE_STRING}getSessionToken(e){return w.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,w.resolve()}}class yo{constructor(){this.Vr=new C(u.mr),this.gr=new C(u.pr)}isEmpty(){return this.Vr.isEmpty()}addReference(e,t){var r=new u(e,t);this.Vr=this.Vr.add(r),this.gr=this.gr.add(r)}yr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.wr(new u(e,t))}Sr(e,t){e.forEach(e=>this.removeReference(e,t))}br(e){let t=new x(new S([])),r=new u(t,e),n=new u(t,e+1),i=[];return this.gr.forEachInRange([r,n],e=>{this.wr(e),i.push(e.key)}),i}Dr(){this.Vr.forEach(e=>this.wr(e))}wr(e){this.Vr=this.Vr.delete(e),this.gr=this.gr.delete(e)}vr(e){var t=new x(new S([])),r=new u(t,e),t=new u(t,e+1);let n=M();return this.gr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new u(e,0),t=this.Vr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class u{constructor(e,t){this.key=e,this.Cr=t}static mr(e,t){return x.comparator(e.key,t.key)||E(e.Cr,t.Cr)}static pr(e,t){return E(e.Cr,t.Cr)||x.comparator(e.key,t.key)}}class vo{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Fr=1,this.Mr=new C(u.mr)}checkEmpty(e){return w.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.Fr,s=(this.Fr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new Gi(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Mr=this.Mr.add(new u(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return w.resolve(s)}lookupMutationBatch(e,t){return w.resolve(this.Or(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.Nr(t+1),r=r<0?0:r;return w.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return w.resolve(0===this.mutationQueue.length?st:this.Fr-1)}getAllMutationBatches(e){return w.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new u(t,0),n=new u(t,Number.POSITIVE_INFINITY),i=[];return this.Mr.forEachInRange([r,n],e=>{var t=this.Or(e.Cr);i.push(t)}),w.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new C(E);return t.forEach(e=>{var t=new u(e,0),r=new u(e,Number.POSITIVE_INFINITY);this.Mr.forEachInRange([t,r],e=>{n=n.add(e.Cr)})}),w.resolve(this.Br(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new u(new x(i),0);let a=new C(E);return this.Mr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Cr)),!0)},s),w.resolve(this.Br(a))}Br(e){let r=[];return e.forEach(e=>{var t=this.Or(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){y(0===this.Lr(n.batchId,"removed")),this.mutationQueue.shift();let i=this.Mr;return w.forEach(n.mutations,e=>{var t=new u(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Mr=i})}qn(e){}containsKey(e,t){var r=new u(t,0),r=this.Mr.firstAfterOrEqual(r);return w.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,w.resolve()}Lr(e,t){return this.Nr(e)}Nr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Or(e){var t=this.Nr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class wo{constructor(e){this.kr=e,this.docs=new A(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.kr(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 w.resolve(r?r.document.mutableCopy():k.newInvalidDocument(t))}getEntries(e,t){let r=hi;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():k.newInvalidDocument(e))}),w.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=hi,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||Be(Pe(t),n)<=0||(i.has(t.key)||ai(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return w.resolve(s)}getAllFromCollectionGroup(e,t,r,n){T()}qr(e,t){return w.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new _o(this)}getSize(e){return w.resolve(this.size)}}class _o extends ro{constructor(e){super(),this.Ir=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Ir.addEntry(r,t)):this.Ir.removeEntry(e)}),w.waitFor(n)}getFromCache(e,t){return this.Ir.getEntry(e,t)}getAllFromCache(e,t){return this.Ir.getEntries(e,t)}}class bo{constructor(e){this.persistence=e,this.Qr=new ui(e=>jn(e),Kn),this.lastRemoteSnapshotVersion=g.min(),this.highestTargetId=0,this.$r=0,this.Kr=new yo,this.targetCount=0,this.Ur=Ka.Kn()}forEachTarget(e,r){return this.Qr.forEach((e,t)=>r(t)),w.resolve()}getLastRemoteSnapshotVersion(e){return w.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return w.resolve(this.$r)}allocateTargetId(e){return this.highestTargetId=this.Ur.next(),w.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.$r&&(this.$r=t),w.resolve()}zn(e){this.Qr.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.Ur=new Ka(t),this.highestTargetId=t),e.sequenceNumber>this.$r&&(this.$r=e.sequenceNumber)}addTargetData(e,t){return this.zn(t),this.targetCount+=1,w.resolve()}updateTargetData(e,t){return this.zn(t),w.resolve()}removeTargetData(e,t){return this.Qr.delete(t.target),this.Kr.br(t.targetId),--this.targetCount,w.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.Qr.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.Qr.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),w.waitFor(a).next(()=>s)}getTargetCount(e){return w.resolve(this.targetCount)}getTargetData(e,t){var r=this.Qr.get(t)||null;return w.resolve(r)}addMatchingKeys(e,t,r){return this.Kr.yr(t,r),w.resolve()}removeMatchingKeys(t,e,r){this.Kr.Sr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),w.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Kr.br(t),w.resolve()}getMatchingKeysForTargetId(e,t){var r=this.Kr.vr(t);return w.resolve(r)}containsKey(e,t){return w.resolve(this.Kr.containsKey(t))}}class Io{constructor(e,t){this.Wr={},this.overlays={},this.Gr=new it(0),this.zr=!1,this.zr=!0,this.jr=new po,this.referenceDelegate=e(this),this.Hr=new bo(this),this.indexManager=new Ea,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Jr(e),new wo(e)),this.serializer=new Ks(t),this.Yr=new go(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.zr=!1,Promise.resolve()}get started(){return this.zr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new mo,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.Wr[e.toKey()];return r||(r=new vo(t,this.referenceDelegate),this.Wr[e.toKey()]=r),r}getGlobalsCache(){return this.jr}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Yr}runTransaction(e,t,r){p("MemoryPersistence","Starting transaction:",e);let n=new To(this.Gr.next());return this.referenceDelegate.Zr(),r(n).next(e=>this.referenceDelegate.Xr(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}ei(t,r){return w.or(Object.values(this.Wr).map(e=>()=>e.containsKey(t,r)))}}class To extends je{constructor(e){super(),this.currentSequenceNumber=e}}class Eo{constructor(e){this.persistence=e,this.ti=new yo,this.ni=null}static ri(e){return new Eo(e)}get ii(){if(this.ni)return this.ni;throw T()}addReference(e,t,r){return this.ti.addReference(r,t),this.ii.delete(r.toString()),w.resolve()}removeReference(e,t,r){return this.ti.removeReference(r,t),this.ii.add(r.toString()),w.resolve()}markPotentiallyOrphaned(e,t){return this.ii.add(t.toString()),w.resolve()}removeTarget(e,t){this.ti.br(t.targetId).forEach(e=>this.ii.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.ii.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Zr(){this.ni=new Set}Xr(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return w.forEach(this.ii,e=>{let t=x.fromPath(e);return this.si(r,t).next(e=>{e||n.removeEntry(t,g.min())})}).next(()=>(this.ni=null,n.apply(r)))}updateLimboDocument(e,t){return this.si(e,t).next(e=>{e?this.ii.delete(t.toString()):this.ii.add(t.toString())})}Jr(e){return 0}si(e,t){return w.or([()=>w.resolve(this.ti.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.ei(e,t)])}}class So{constructor(e,t){this.persistence=e,this.oi=new ui(e=>o(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=Za(this,t)}static ri(e,t){return new So(e,t)}Zr(){}Xr(e){return w.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}nr(e){let r=this.sr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}rr(r,n){return w.forEach(this.oi,(e,t)=>this.ar(r,e,t).next(e=>e?w.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.qr(e,t=>this.ar(e,t,r).next(e=>{e||(n++,i.removeEntry(t,g.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}removeReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}updateLimboDocument(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}Jr(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(en(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=Kr(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return Fr(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Ar(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw T()}}(e.data.value)),t}ar(e,t,r){return w.or([()=>this.persistence.ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.oi.get(t);return w.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class xo{constructor(e){this.serializer=e}B(t,e,r,n){let s=new Ge("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(ft),(i=t).createObjectStore(mt,{keyPath:"userId"}),i.createObjectStore(pt,{keyPath:yt,autoIncrement:!0}).createIndex(vt,wt,{unique:!0}),i.createObjectStore(Tt),Ao(t),t.createObjectStore(dt));let a=w.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(Ot),i.deleteObjectStore(Rt),i.deleteObjectStore(Bt),Ao(t)),a=a.next(()=>{return e=s,t=e.store(Bt),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:g.min().toTimestamp(),targetCount:0},t.put(Ut,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(pt).G().next(e=>{n.deleteObjectStore(pt),n.createObjectStore(pt,{keyPath:yt,autoIncrement:!0}).createIndex(vt,wt,{unique:!0});let t=i.store(pt),r=e.map(e=>t.put(e));return w.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(Kt,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this._i(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(Nt),this.ai(s)))),r<7&&7<=n&&(a=a.next(()=>this.ui(s))),r<8&&8<=n&&(a=a.next(()=>this.ci(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.li(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(zt,{keyPath:"bundleId"}),t.createObjectStore(Gt,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(rr,{keyPath:nr})).createIndex(ir,sr,{unique:!1}),e.createIndex(ar,or,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Et,{keyPath:St})).createIndex(xt,At),e.createIndex(Ct,Dt)}).next(()=>this.hi(t,s)).next(()=>t.deleteObjectStore(dt))),r<14&&14<=n&&(a=a.next(()=>this.Pi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(Qt,{keyPath:"indexId",autoIncrement:!0}).createIndex($t,"collectionGroup",{unique:!1}),e.createObjectStore(Ht,{keyPath:Wt}).createIndex(Yt,Xt,{unique:!1}),e.createObjectStore(Jt,{keyPath:Zt}).createIndex(er,tr,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(Ht).clear()}).next(()=>{e.objectStore(Jt).clear()})),a=r<17&&17<=n?a.next(()=>{t.createObjectStore(lr,{keyPath:"name"})}):a}ai(t){let r=0;return t.store(dt).Z((e,t)=>{r+=Fa(t)}).next(()=>{var e={byteSize:r};return t.store(Nt).put(kt,e)})}_i(n){let e=n.store(mt),t=n.store(pt);return e.G().next(e=>w.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,st],[r.userId,r.lastAcknowledgedBatchId]);return t.G(vt,e).next(e=>w.forEach(e,e=>{y(e.userId===r.userId);var t=Hs(this.serializer,e);return Va(n,r.userId,t).next(()=>{})}))}))}ui(e){let a=e.store(Ot),t=e.store(dt);return e.store(Bt).get(Ut).next(i=>{let s=[];return t.Z((e,t)=>{let r=new S(e),n=[0,o(r)];s.push(a.get(n).next(e=>e?w.resolve():(e=r,a.put({targetId:0,path:o(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>w.waitFor(s))})}ci(e,t){e.createObjectStore(qt,{keyPath:jt});let n=t.store(qt),i=new Sa,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:o(t)})}};return t.store(dt).Z({Y:!0},(e,t)=>{var r=new S(e);return s(r.popLast())}).next(()=>t.store(Tt).Z({Y:!0},([,e],t)=>{var r=ct(e);return s(r.popLast())}))}li(e){let n=e.store(Rt);return n.Z((e,t)=>{var r=Ws(t),r=Ys(this.serializer,r);return n.put(r)})}hi(e,s){let t=s.store(dt),a=[];return t.Z((e,t)=>{var r,n=s.store(Et),i=((r=t).document?new x(S.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):T()).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(()=>w.waitFor(a))}Pi(e,s){let t=s.store(pt),a=io(this.serializer),o=new Io(Eo.ri,this.serializer.Tt);return t.G().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:M();Hs(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),w.forEach(n,(e,t)=>{var r=new l(t),n=ia.It(this.serializer,r),i=o.getIndexManager(r),r=Pa.It(r,this.serializer,i,o.referenceDelegate);return new fo(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new Sr(s,it.ae),e).next()})})}}function Ao(e){e.createObjectStore(Ot,{keyPath:Vt}).createIndex(Ft,Pt,{unique:!0}),e.createObjectStore(Rt,{keyPath:"targetId"}).createIndex(Lt,Mt,{unique:!0}),e.createObjectStore(Bt)}let Co="IndexedDbPersistence",Do="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 No{constructor(e,t,r,n,i,s,a,o,l,u,h=17){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ti=i,this.window=s,this.document=a,this.Ii=l,this.Ei=u,this.di=h,this.Gr=null,this.zr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ai=null,this.inForeground=!1,this.Ri=null,this.Vi=null,this.mi=Number.NEGATIVE_INFINITY,this.fi=e=>Promise.resolve(),!No.D())throw new I(b.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new eo(this,n),this.gi=t+"main",this.serializer=new Ks(o),this.pi=new Qe(this.gi,this.di,new xo(this.serializer)),this.jr=new aa,this.Hr=new za(this.referenceDelegate,this.serializer),this.remoteDocumentCache=io(this.serializer),this.Yr=new ta,this.window&&this.window.localStorage?this.yi=this.window.localStorage:(this.yi=null,!1===u&&d(Co,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.wi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Si(),this.bi(),this.Di(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Hr.getHighestSequenceNumber(e));throw new I(b.FAILED_PRECONDITION,Do)}).then(e=>{this.Gr=new it(e,this.Ii)}).then(()=>{this.zr=!0}).catch(e=>(this.pi&&this.pi.close(),Promise.reject(e)))}Ci(t){return this.fi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.pi.k(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ti.enqueueAndForget(async()=>{this.started&&await this.wi()}))}wi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>Ro(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Fi(t).next(e=>{e||(this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)))})}).next(()=>this.Mi(t)).next(e=>this.isPrimary&&!e?this.xi(t).next(()=>!1):!!e&&this.Oi(t).next(()=>!0))).catch(e=>{if(Ye(e))return p(Co,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return p(Co,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Ti.enqueueRetryable(()=>this.fi(e)),this.isPrimary=e})}Fi(e){return ko(e).get(gt).next(e=>w.resolve(this.Ni(e)))}Bi(e){return Ro(e).delete(this.clientId)}async Li(){if(this.isPrimary&&!this.ki(this.mi,18e5)){this.mi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=r(e,Kt);return n.G().next(e=>{let t=this.qi(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return w.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.yi)for(var t of e)this.yi.removeItem(this.Qi(t.clientId))}}Di(){this.Vi=this.Ti.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.wi().then(()=>this.Li()).then(()=>this.Di()))}Ni(e){return!!e&&e.ownerId===this.clientId}Mi(t){return this.Ei?w.resolve(!0):ko(t).get(gt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)){if(this.Ni(e)&&this.networkEnabled)return!0;if(!this.Ni(e)){if(e.allowTabSynchronization)return!1;throw new I(b.FAILED_PRECONDITION,Do)}}return!(!this.networkEnabled||!this.inForeground)||Ro(t).G().next(e=>void 0===this.qi(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(Co,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.zr=!1,this.Ki(),this.Vi&&(this.Vi.cancel(),this.Vi=null),this.Ui(),this.Wi(),await this.pi.runTransaction("shutdown","readwrite",[ft,Kt],e=>{let t=new Sr(e,it.ae);return this.xi(t).next(()=>this.Bi(t))}),this.pi.close(),this.Gi()}qi(e,t){return e.filter(e=>this.ki(e.updateTimeMs,t)&&!this.$i(e.clientId))}zi(){return this.runTransaction("getActiveClients","readonly",e=>Ro(e).G().next(e=>this.qi(e,18e5).map(e=>e.clientId)))}get started(){return this.zr}getGlobalsCache(){return this.jr}getMutationQueue(e,t){return Pa.It(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new Ca(e,this.serializer.Tt.databaseId)}getDocumentOverlayCache(e){return ia.It(this.serializer,e)}getBundleCache(){return this.Yr}runTransaction(t,r,n){p(Co,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=17===(e=this.di)?mr:16===e?gr:15===e?fr:14===e?dr:13===e?cr:12===e?hr:11===e?ur:void T();let a;return this.pi.runTransaction(t,i,s,e=>(a=new Sr(e,this.Gr?this.Gr.next():it.ae),"readwrite-primary"===r?this.Fi(a).next(e=>!!e||this.Mi(a)).next(e=>{if(e)return n(a);throw d(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)),new I(b.FAILED_PRECONDITION,qe)}).next(e=>this.Oi(a).next(()=>e)):this.ji(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}ji(e){return ko(e).get(gt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)&&!this.Ni(e)&&!(this.Ei||this.allowTabSynchronization&&e.allowTabSynchronization))throw new I(b.FAILED_PRECONDITION,Do)})}Oi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return ko(e).put(gt,t)}static D(){return Qe.D()}xi(e){let t=ko(e);return t.get(gt).next(e=>this.Ni(e)?(p(Co,"Releasing primary lease."),t.delete(gt)):w.resolve())}ki(e,t){var r=Date.now();return!(e<r-t||r<e&&(d(`Detected an update time that is in the future: ${e} > `+r),1))}Si(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ri=()=>{this.Ti.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.wi()))},this.document.addEventListener("visibilitychange",this.Ri),this.inForeground="visible"===this.document.visibilityState)}Ui(){this.Ri&&(this.document.removeEventListener("visibilitychange",this.Ri),this.Ri=null)}bi(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Ai=()=>{this.Ki();var e=/(?:Version|Mobile)\/1[456]/;W()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ti.enterRestrictedMode(!0),this.Ti.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Ai))}Wi(){this.Ai&&(this.window.removeEventListener("pagehide",this.Ai),this.Ai=null)}$i(e){var t;try{var r=null!==(null==(t=this.yi)?void 0:t.getItem(this.Qi(e)));return p(Co,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return d(Co,"Failed to get zombied client id.",e),!1}}Ki(){if(this.yi)try{this.yi.setItem(this.Qi(this.clientId),String(Date.now()))}catch(e){d("Failed to set zombie client id.",e)}}Gi(){if(this.yi)try{this.yi.removeItem(this.Qi(this.clientId))}catch(e){}}Qi(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function ko(e){return r(e,ft)}function Ro(e){return r(e,Kt)}function Lo(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class Mo{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Hi=r,this.Ji=n}static Yi(e,t){let r=M(),n=M();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 Mo(e,t.fromCache,r,n)}}class Oo{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Vo{constructor(){this.Zi=!1,this.Xi=!1,this.es=100,this.ts=W()?8:0<$e(H())?6:4}initialize(e,t){this.ns=e,this.indexManager=t,this.Zi=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.rs(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ss(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new Oo;return this._s(r,n,t).next(e=>{if(i.result=e,this.Xi)return this.us(r,n,t,e.size)})}}).next(()=>i.result)}us(e,t,r,n){return r.documentReadCount<this.es?(fe()<=c.DEBUG&&p("QueryEngine","SDK will not create cache indexes for query:",si(t),"since it only creates cache indexes for collection contains","more than or equal to",this.es,"documents"),w.resolve()):(fe()<=c.DEBUG&&p("QueryEngine","Query:",si(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ts*n?(fe()<=c.DEBUG&&p("QueryEngine","The SDK decides to create cache indexes for query:",si(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ei(t))):w.resolve())}rs(i,s){if(Xn(s))return w.resolve(null);let t=ei(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=ri(s,null,"F"),t=ei(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=M(...e);return this.ns.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.cs(s,r);return this.ls(s,t,n,e.readTime)?this.rs(i,ri(s,null,"F")):this.hs(i,t,s,e)}))})))}ss(r,n,i,s){return Xn(n)||s.isEqual(g.min())?w.resolve(null):this.ns.getDocuments(r,i).next(e=>{var t=this.cs(n,e);return this.ls(n,t,i,s)?w.resolve(null):(fe()<=c.DEBUG&&p("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),si(n)),this.hs(r,t,n,Fe(s,ke)).next(e=>e))})}cs(r,e){let n=new C(li(r));return e.forEach((e,t)=>{ai(r,t)&&(n=n.add(t))}),n}ls(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}_s(e,t,r){return fe()<=c.DEBUG&&p("QueryEngine","Using full collection scan to execute query:",si(t)),this.ns.getDocumentsMatchingQuery(e,t,Ue.min(),r)}hs(e,r,t,n){return this.ns.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let Fo="LocalStore",Po=3e8;class Uo{constructor(e,t,r,n){this.persistence=e,this.Ps=t,this.serializer=n,this.Ts=new A(E),this.Is=new ui(e=>jn(e),Kn),this.Es=new Map,this.ds=e.getRemoteDocumentCache(),this.Hr=e.getTargetCache(),this.Yr=e.getBundleCache(),this.As(r)}As(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new fo(this.ds,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.ds.setIndexManager(this.indexManager),this.Ps.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Ts))}}function Bo(e,t,r,n){return new Uo(e,t,r,n)}async function qo(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.As(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=M();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=>({Rs:e,removedBatchIds:t,addedBatchIds:r}))})})}function jo(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.ds.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=w.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);y(null!==t),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=M();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 Ko(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Hr.getLastRemoteSnapshotVersion(e))}function zo(e,u){let h=e,c=u.snapshotVersion,d=h.Ts;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.ds.newChangeBuffer({trackRemovals:!0}),l=(d=h.Ts,[]),t=(u.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(h.Hr.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.Hr.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==u.targetMismatches.get(r)?e=e.withResumeToken(D.EMPTY_BYTE_STRING,g.min()).withLastLimboFreeSnapshotVersion(g.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()>=Po||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(h.Hr.updateTargetData(o,e))}}),hi),r=M();if(u.documentUpdates.forEach(e=>{u.resolvedLimboDocuments.has(e)&&l.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(Go(o,e,u.documentUpdates).next(e=>{t=e.Vs,r=e.fs})),!c.isEqual(g.min())){let e=h.Hr.getLastRemoteSnapshotVersion(o).next(e=>h.Hr.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return w.waitFor(l).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.Ts=d,e))}function Go(e,s,t){let r=M(),a=M();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=hi;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(g.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(Fo,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{Vs:i,fs:a}})}function Qo(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Hr.getTargetData(t,n).next(e=>e?(r=e,w.resolve(r)):i.Hr.allocateTargetId(t).next(e=>(r=new js(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Hr.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Ts.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.Ts=i.Ts.insert(e.targetId,e),i.Is.set(n,e.targetId)),e})}async function $o(e,t,r){let n=e,i=n.Ts.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(!Ye(e))throw e;p(Fo,`Failed to update sequence numbers for target ${t}: `+e)}n.Ts=n.Ts.remove(t),n.Is.delete(i.target)}function Ho(e,a,o){let l=e,u=g.min(),h=M();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=ei(a),(void 0!==(s=(i=e).Is.get(n))?w.resolve(i.Ts.get(s)):i.Hr.getTargetData(r,n)).next(e=>{if(e)return u=e.lastLimboFreeSnapshotVersion,l.Hr.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>l.Ps.getDocumentsMatchingQuery(t,a,o?u:g.min(),o?h:M())).next(e=>(Xo(l,oi(a),e),{documents:e,gs:h}));var e,r,n,i,s})}function Wo(e,t){let r=e,n=r.Hr,i=r.Ts.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.lt(e,t).next(e=>e?e.target:null))}function Yo(e,t){let r=e,n=r.Es.get(t)||g.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.ds.getAllFromCollectionGroup(e,t,Fe(n,ke),Number.MAX_SAFE_INTEGER)).then(e=>(Xo(r,t,e),e))}function Xo(e,t,r){let n=e.Es.get(t)||g.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Es.set(t,n)}let Jo="firestore_clients";function Zo(e,t){return Jo+`_${e}_`+t}let el="firestore_mutations";function tl(e,t,r){let n=el+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let rl="firestore_targets";function nl(e,t){return rl+`_${e}_`+t}let il="SharedClientState";class sl{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Ss(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 I(n.error.code,n.error.message)),s?new sl(e,t,n.state,i):(d(il,`Failed to parse mutation state for ID '${t}': `+r),null)}bs(){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 al{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Ss(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 I(r.error.code,r.error.message)),i?new al(e,r.state,n):(d(il,`Failed to parse target state for ID '${e}': `+t),null)}bs(){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 ol{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Ss(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=yi;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=lt(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new ol(e,i):(d(il,`Failed to parse client data for instance '${e}': `+t),null)}}class ll{constructor(e,t){this.clientId=e,this.onlineState=t}static Ss(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new ll(t.clientId,t.onlineState):(d(il,"Failed to parse online state: "+e),null)}}class ul{constructor(){this.activeTargetIds=yi}Ds(e){this.activeTargetIds=this.activeTargetIds.add(e)}vs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}bs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class hl{constructor(e,t,r,n,i){this.window=e,this.Ti=t,this.persistenceKey=r,this.Cs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Fs=this.Ms.bind(this),this.xs=new A(E),this.started=!1,this.Os=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Ns=Zo(this.persistenceKey,this.Cs),this.Bs="firestore_sequence_number_"+this.persistenceKey,this.xs=this.xs.insert(this.Cs,new ul),this.Ls=new RegExp(`^${Jo}_${s}_([^_]*)$`),this.ks=new RegExp(`^${el}_${s}_(\\d+)(?:_(.*))?$`),this.qs=new RegExp(`^${rl}_${s}_(\\d+)$`),this.Qs="firestore_online_state_"+this.persistenceKey,this.$s="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Fs)}static D(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.zi();for(let r of e)if(r!==this.Cs){let e=this.getItem(Zo(this.persistenceKey,r));var t;e&&(t=ol.Ss(r,e))&&(this.xs=this.xs.insert(t.clientId,t))}this.Ks();let r=this.storage.getItem(this.Qs);if(r){let e=this.Us(r);e&&this.Ws(e)}for(let e of this.Os)this.Ms(e);this.Os=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Bs,JSON.stringify(e))}getAllActiveQueryTargets(){return this.Gs(this.xs)}isActiveQueryTarget(r){let n=!1;return this.xs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.zs(e,"pending")}updateMutationState(e,t,r){this.zs(e,t,r),this.js(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(nl(this.persistenceKey,t));var n;e&&(n=al.Ss(t,e))&&(r=n.state)}return e&&this.Hs.Ds(t),this.Ks(),r}removeLocalQueryTarget(e){this.Hs.vs(e),this.Ks()}isLocalQueryTarget(e){return this.Hs.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(nl(this.persistenceKey,e))}updateQueryState(e,t,r){this.Js(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.js(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Ys(e)}notifyBundleLoaded(e){this.Zs(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Fs),this.removeItem(this.Ns),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return p(il,"READ",e,t),t}setItem(e,t){p(il,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){p(il,"REMOVE",e),this.storage.removeItem(e)}Ms(e){let t=e;t.storageArea===this.storage&&(p(il,"EVENT",t.key,t.newValue),t.key===this.Ns?d("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Ti.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.Ls.test(t.key))return null==t.newValue?(e=this.Xs(t.key),this.eo(e,null)):(e=this.no(t.key,t.newValue))?this.eo(e.clientId,e):void 0;if(this.ks.test(t.key)){if(null!==t.newValue){var e=this.ro(t.key,t.newValue);if(e)return this.io(e)}}else if(this.qs.test(t.key)){if(null!==t.newValue){var e=this.so(t.key,t.newValue);if(e)return this.oo(e)}}else if(t.key===this.Qs){if(null!==t.newValue){var e=this.Us(t.newValue);if(e)return this.Ws(e)}}else t.key===this.Bs?(e=(e=>{let t=it.ae;if(null!=e)try{var r=JSON.parse(e);y("number"==typeof r),t=r}catch(e){d(il,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==it.ae&&this.sequenceNumberHandler(e):t.key===this.$s&&(e=this._o(t.newValue),await Promise.all(e.map(e=>this.syncEngine.ao(e))))}}else this.Os.push(t)}))}get Hs(){return this.xs.get(this.Cs)}Ks(){this.setItem(this.Ns,this.Hs.bs())}zs(e,t,r){var n=new sl(this.currentUser,e,t,r),i=tl(this.persistenceKey,this.currentUser,e);this.setItem(i,n.bs())}js(e){var t=tl(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Ys(e){var t={clientId:this.Cs,onlineState:e};this.storage.setItem(this.Qs,JSON.stringify(t))}Js(e,t,r){var n=nl(this.persistenceKey,e),i=new al(e,t,r);this.setItem(n,i.bs())}Zs(e){var t=JSON.stringify(Array.from(e));this.setItem(this.$s,t)}Xs(e){var t=this.Ls.exec(e);return t?t[1]:null}no(e,t){var r=this.Xs(e);return ol.Ss(r,t)}ro(e,t){var r=this.ks.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return sl.Ss(new l(r),n,t)}so(e,t){var r=this.qs.exec(e),r=Number(r[1]);return al.Ss(r,t)}Us(e){return ll.Ss(e)}_o(e){return JSON.parse(e)}async io(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.uo(e.batchId,e.state,e.error);p(il,"Ignoring mutation for non-active user "+e.user.uid)}oo(e){return this.syncEngine.co(e.targetId,e.state,e.error)}eo(e,t){let r=t?this.xs.insert(e,t):this.xs.remove(e),n=this.Gs(this.xs),i=this.Gs(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.lo(s,a).then(()=>{this.xs=r})}Ws(e){this.xs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}Gs(e){let r=yi;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class cl{constructor(){this.ho=new ul,this.Po={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.ho.Ds(e),this.Po[e]||"not-current"}updateQueryState(e,t,r){this.Po[e]=t}removeLocalQueryTarget(e){this.ho.vs(e)}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){delete this.Po[e]}getAllActiveQueryTargets(){return this.ho.activeTargetIds}isActiveQueryTarget(e){return this.ho.activeTargetIds.has(e)}start(){return this.ho=new ul,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class dl{To(e){}shutdown(){}}let fl="ConnectivityMonitor";class gl{constructor(){this.Io=()=>this.Eo(),this.Ao=()=>this.Ro(),this.Vo=[],this.mo()}To(e){this.Vo.push(e)}shutdown(){window.removeEventListener("online",this.Io),window.removeEventListener("offline",this.Ao)}mo(){window.addEventListener("online",this.Io),window.addEventListener("offline",this.Ao)}Eo(){p(fl,"Network connectivity changed: AVAILABLE");for(var e of this.Vo)e(0)}Ro(){p(fl,"Network connectivity changed: UNAVAILABLE");for(var e of this.Vo)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let ml=null;function pl(){return null===ml?ml=268435456+Math.round(2147483648*Math.random()):ml++,"0x"+ml.toString(16)}let yl="RestConnection",vl={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class wl{constructor(e){this.Fo=e.Fo,this.Mo=e.Mo}xo(e){this.Oo=e}No(e){this.Bo=e}Lo(e){this.ko=e}onMessage(e){this.qo=e}close(){this.Mo()}send(e){this.Fo(e)}Qo(){this.Oo()}$o(){this.Bo()}Ko(e){this.ko(e)}Uo(e){this.qo(e)}}let _l="WebChannelConnection";class bl extends class{get fo(){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.po=t+"://"+e.host,this.yo=`projects/${r}/databases/`+n,this.wo=this.databaseId.database===Qr?"project_id="+r:`project_id=${r}&database_id=`+n}So(t,e,r,n,i){let s=pl(),a=this.bo(t,e.toUriEncodedString());p(yl,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.yo,"x-goog-request-params":this.wo};return this.Do(o,n,i),this.vo(t,a,o,r).then(e=>(p(yl,`Received RPC '${t}' ${s}: `,e),e),e=>{throw ge(yl,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Co(e,t,r,n,i,s){return this.So(e,t,r,n,i)}Do(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+ce,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}bo(e,t){var r=vl[e];return this.po+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}vo(l,t,r,n){let u=pl();return new Promise((s,a)=>{let o=new pr;o.setWithCredentials(!0),o.listenOnce(vr.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case wr.NO_ERROR:var e=o.getResponseJson();p(_l,`XHR for RPC '${l}' ${u} received:`,JSON.stringify(e)),s(e);break;case wr.TIMEOUT:p(_l,`RPC '${l}' ${u} timed out`),a(new I(b.DEADLINE_EXCEEDED,"Request time out"));break;case wr.HTTP_ERROR:var t=o.getStatus();if(p(_l,`RPC '${l}' ${u} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=null==(e=Array.isArray(e)?e[0]:e)?void 0:e.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(b).indexOf(i)?i:b.UNKNOWN;a(new I(e,r.message))}else a(new I(b.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new I(b.UNAVAILABLE,"Connection failed."));break;default:T()}}finally{p(_l,`RPC '${l}' ${u} completed.`)}var n,i});var e=JSON.stringify(n);p(_l,`RPC '${l}' ${u} sending request:`,n),o.send(t,"POST",e,r,15)})}Wo(i,e,t){let s=pl(),r=[this.po,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Tr(),a=Ir(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Do(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var u=r.join("");p(_l,`Creating RPC '${i}' stream ${s}: `+u,o);let h=n.createWebChannel(u,o),c=!1,d=!1,f=new wl({Fo:e=>{d?p(_l,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(p(_l,`Opening RPC '${i}' stream ${s} transport.`),h.open(),c=!0),p(_l,`RPC '${i}' stream ${s} sending:`,e),h.send(e))},Mo:()=>h.close()}),g=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return g(h,yr.EventType.OPEN,()=>{d||(p(_l,`RPC '${i}' stream ${s} transport opened.`),f.Qo())}),g(h,yr.EventType.CLOSE,()=>{d||(d=!0,p(_l,`RPC '${i}' stream ${s} transport closed`),f.Ko())}),g(h,yr.EventType.ERROR,e=>{d||(d=!0,ge(_l,`RPC '${i}' stream ${s} transport errored:`,e),f.Ko(new I(b.UNAVAILABLE,"The operation could not be completed")))}),g(h,yr.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(y(!!t),t),n=(null==n?void 0:n.error)||(null==(n=n[0])?void 0:n.error);if(n){p(_l,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=m[e];if(void 0!==t)return Yi(t)})(e),r=n.message;void 0===t&&(t=b.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,f.Ko(new I(t,r)),h.close()}else p(_l,`RPC '${i}' stream ${s} received:`,t),f.Uo(t)}}),g(a,br.STAT_EVENT,e=>{e.stat===_r.PROXY?p(_l,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===_r.NOPROXY&&p(_l,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{f.$o()},0),f}}function Il(){return"undefined"!=typeof window?window:null}function Tl(){return"undefined"!=typeof document?document:null}function El(e){return new ms(e,!0)}class Sl{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ti=e,this.timerId=t,this.Go=r,this.zo=n,this.jo=i,this.Ho=0,this.Jo=null,this.Yo=Date.now(),this.reset()}reset(){this.Ho=0}Zo(){this.Ho=this.jo}Xo(e){this.cancel();var t=Math.floor(this.Ho+this.e_()),r=Math.max(0,Date.now()-this.Yo),n=Math.max(0,t-r);0<n&&p("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.Ho} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.Jo=this.Ti.enqueueAfterDelay(this.timerId,n,()=>(this.Yo=Date.now(),e())),this.Ho*=this.zo,this.Ho<this.Go&&(this.Ho=this.Go),this.Ho>this.jo&&(this.Ho=this.jo)}t_(){null!==this.Jo&&(this.Jo.skipDelay(),this.Jo=null)}cancel(){null!==this.Jo&&(this.Jo.cancel(),this.Jo=null)}e_(){return(Math.random()-.5)*this.Ho}}let xl="PersistentStream";class Al{constructor(e,t,r,n,i,s,a,o){this.Ti=e,this.n_=r,this.r_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.i_=0,this.s_=null,this.o_=null,this.stream=null,this.__=0,this.a_=new Sl(e,t)}u_(){return 1===this.state||5===this.state||this.c_()}c_(){return 2===this.state||3===this.state}start(){this.__=0,4!==this.state?this.auth():this.l_()}async stop(){this.u_()&&await this.close(0)}h_(){this.state=0,this.a_.reset()}P_(){this.c_()&&null===this.s_&&(this.s_=this.Ti.enqueueAfterDelay(this.n_,6e4,()=>this.T_()))}I_(e){this.E_(),this.stream.send(e)}async T_(){if(this.c_())return this.close(0)}E_(){this.s_&&(this.s_.cancel(),this.s_=null)}d_(){this.o_&&(this.o_.cancel(),this.o_=null)}async close(e,t){this.E_(),this.d_(),this.a_.cancel(),this.i_++,4!==e?this.a_.reset():t&&t.code===b.RESOURCE_EXHAUSTED?(d(t.toString()),d("Using maximum backoff delay to prevent overloading the backend."),this.a_.Zo()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.A_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.Lo(t)}A_(){}auth(){this.state=1;let e=this.R_(this.i_),r=this.i_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.i_===r&&this.V_(e,t)},t=>{e(()=>{var e=new I(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.m_(e)})})}V_(e,t){let r=this.R_(this.i_);this.stream=this.f_(e,t),this.stream.xo(()=>{r(()=>this.listener.xo())}),this.stream.No(()=>{r(()=>(this.state=2,this.o_=this.Ti.enqueueAfterDelay(this.r_,1e4,()=>(this.c_()&&(this.state=3),Promise.resolve())),this.listener.No()))}),this.stream.Lo(e=>{r(()=>this.m_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.__?this.g_(e):this.onNext(e))})}l_(){this.state=5,this.a_.Xo(async()=>{this.state=0,this.start()})}m_(e){return p(xl,"close with error: "+e),this.stream=null,this.close(4,e)}R_(t){return e=>{this.Ti.enqueueAndForget(()=>this.i_===t?e():(p(xl,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class Cl extends Al{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}f_(e,t){return this.connection.Wo("Listen",e,t)}g_(e){return this.onNext(e)}onNext(e){this.a_.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:T(),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(y(void 0===l||"string"==typeof l),D.fromBase64String(l||"")):(y(void 0===l||l instanceof Buffer||l instanceof Uint8Array),D.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?b.UNKNOWN:Yi(l.code),new I(a,l.message||""));r=new os(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,Ts(e,n.document.name)),s=V(n.document.updateTime),a=n.document.createTime?V(n.document.createTime):g.min(),o=new _n({mapValue:{fields:n.document.fields}}),i=k.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new ss(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,Ts(e,n.document)),o=n.readTime?V(n.readTime):g.min(),i=k.newNoDocument(s,o),s=n.removedTargetIds||[];r=new ss([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,Ts(e,o.document)),s=o.removedTargetIds||[];r=new ss([],s,n,null)}else{if(!("filter"in t))return T();{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new Hi(i,o),n=e.targetId;r=new as(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?V(r.readTime):g.min();return this.listener.p_(t,r)}y_(e){var t={},r=(t.database=xs(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=zn(e)?{documents:Ls(t,e)}:{query:Ms(t,e).ht}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=vs(t,r.resumeToken);let e=ps(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(g.min())){n.readTime=ys(t,r.snapshotVersion.toTimestamp());let e=ps(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),Vs(this.serializer,e));r&&(t.labels=r),this.I_(t)}w_(e){var t={};t.database=xs(this.serializer),t.removeTarget=e,this.I_(t)}}class Dl extends Al{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 S_(){return 0<this.__}start(){this.lastStreamToken=void 0,super.start()}A_(){this.S_&&this.b_([])}f_(e,t){return this.connection.Wo("Write",e,t)}g_(e){return y(!!e.streamToken),this.lastStreamToken=e.streamToken,y(!e.writeResults||0===e.writeResults.length),this.listener.D_()}onNext(e){y(!!e.streamToken),this.lastStreamToken=e.streamToken,this.a_.reset();var t=Rs(e.writeResults,e.commitTime),r=V(e.commitTime);return this.listener.v_(r,t)}C_(){var e={};e.database=xs(this.serializer),this.I_(e)}b_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>Ns(this.serializer,e))};this.I_(t)}}class Nl extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.F_=!1}M_(){if(this.F_)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.")}So(r,n,i,s){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.So(r,_s(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}Co(r,n,i,s,a){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Co(r,_s(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}terminate(){this.F_=!0,this.connection.terminate()}}class kl{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.x_=0,this.O_=null,this.N_=!0}B_(){0===this.x_&&(this.L_("Unknown"),this.O_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.O_=null,this.k_("Backend didn't respond within 10 seconds."),this.L_("Offline"),Promise.resolve())))}q_(e){"Online"===this.state?this.L_("Unknown"):(this.x_++,1<=this.x_&&(this.Q_(),this.k_("Connection failed 1 times. Most recent error: "+e.toString()),this.L_("Offline")))}set(e){this.Q_(),this.x_=0,"Online"===e&&(this.N_=!1),this.L_(e)}L_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}k_(e){var t=`Could not reach Cloud Firestore backend. ${e}
7
+ 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.N_?(d(t),this.N_=!1):p("OnlineStateTracker",t)}Q_(){null!==this.O_&&(this.O_.cancel(),this.O_=null)}}let Rl="RemoteStore";class Ll{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.K_=[],this.U_=new Map,this.W_=new Set,this.G_=[],this.z_=i,this.z_.To(e=>{r.enqueueAndForget(async()=>{var e;jl(this)&&(p(Rl,"Restarting streams for network reachability change."),(e=this).W_.add(4),await Ol(e),e.j_.set("Unknown"),e.W_.delete(4),await Ml(e))})}),this.j_=new kl(r,n)}}async function Ml(e){if(jl(e))for(var t of e.G_)await t(!0)}async function Ol(e){for(var t of e.G_)await t(!1)}function Vl(e,t){var r=e;r.U_.has(t.targetId)||(r.U_.set(t.targetId,t),ql(r)?Bl(r):Xl(r).c_()&&Pl(r,t))}function Fl(e,t){var r=e,n=Xl(r);r.U_.delete(t),n.c_()&&Ul(r,t),0===r.U_.size&&(n.c_()?n.P_():jl(r)&&r.j_.set("Unknown"))}function Pl(e,t){var r;e.H_.Ne(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(g.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),Xl(e).y_(t)}function Ul(e,t){e.H_.Ne(t),Xl(e).w_(t)}function Bl(t){t.H_=new us({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),lt:e=>t.U_.get(e)||null,it:()=>t.datastore.serializer.databaseId}),Xl(t).start(),t.j_.B_()}function ql(e){return jl(e)&&!Xl(e).u_()&&0<e.U_.size}function jl(e){return 0===e.W_.size}function Kl(e){e.H_=void 0}async function zl(e,t,r){if(!Ye(t))throw t;e.W_.add(1),await Ol(e),e.j_.set("Offline"),r=r||(()=>Ko(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{p(Rl,"Retrying IndexedDB access"),await r(),e.W_.delete(1),await Ml(e)})}function Gl(t,r){return r().catch(e=>zl(t,e,r))}async function Ql(e){var t,r,n,i,s=e,a=Jl(s);let o=0<s.K_.length?s.K_[s.K_.length-1].batchId:st;for(;jl(i=s)&&i.K_.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=st),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.K_.length&&a.P_();break}o=e.batchId,t=s,r=e,n=void 0,t.K_.push(r),(n=Jl(t)).c_()&&n.S_&&n.b_(r.mutations)}catch(e){await zl(s,e)}$l(s)&&Hl(s)}function $l(e){return jl(e)&&!Jl(e).u_()&&0<e.K_.length}function Hl(e){Jl(e).start()}async function Wl(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),p(Rl,"RemoteStore received new credentials"),jl(r));r.W_.add(3),await Ol(r),n&&r.j_.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.W_.delete(3),await Ml(r)}async function Yl(e,t){var r=e;t?(r.W_.delete(2),await Ml(r)):(r.W_.add(2),await Ol(r),r.j_.set("Unknown"))}function Xl(t){return t.J_||(t.J_=(e=t.datastore,r=t.asyncQueue,n={xo:(async function(e){e.j_.set("Online")}).bind(null,t),No:(async function(r){r.U_.forEach((e,t)=>{Pl(r,e)})}).bind(null,t),Lo:(async function(e,t){Kl(e),ql(e)?(e.j_.q_(t),Bl(e)):e.j_.set("Unknown")}).bind(null,t),p_:(async function(t,e,r){if(t.j_.set("Online"),e instanceof os&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.U_.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.U_.delete(n),i.H_.removeTarget(n))}catch(r){p(Rl,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await zl(t,r)}else if(e instanceof ss?t.H_.We(e):e instanceof as?t.H_.Ze(e):t.H_.je(e),!r.isEqual(g.min()))try{let e=await Ko(t.localStore);0<=r.compareTo(e)&&(l=r,(u=(o=t).H_.ot(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.U_.get(t))&&o.U_.set(t,r.withResumeToken(e.resumeToken,l))}),u.targetMismatches.forEach((e,t)=>{var r=o.U_.get(e);r&&(o.U_.set(e,r.withResumeToken(D.EMPTY_BYTE_STRING,r.snapshotVersion)),Ul(o,e),r=new js(r.target,e,t,r.sequenceNumber),Pl(o,r))}),await o.remoteSyncer.applyRemoteEvent(u))}catch(e){p(Rl,"Failed to raise snapshot:",e),await zl(t,e)}var o,l,u}).bind(null,t)},(i=e).M_(),new Cl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.J_.h_(),ql(t)?Bl(t):t.j_.set("Unknown")):(await t.J_.stop(),Kl(t))})),t.J_;var e,r,n,i}function Jl(t){return t.Y_||(t.Y_=(e=t.datastore,r=t.asyncQueue,n={xo:()=>Promise.resolve(),No:(async function(e){Jl(e).C_()}).bind(null,t),Lo:(async function(e,t){if(t&&Jl(e).S_){var r=e,n=t;if(Wi(t=n.code)&&t!==b.ABORTED){let e=r.K_.shift();Jl(r).h_(),await Gl(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await Ql(r)}await 0}$l(e)&&Hl(e)}).bind(null,t),D_:(async function(e){var t,r=Jl(e);for(t of e.K_)r.b_(t.mutations)}).bind(null,t),v_:(async function(e,t,r){let n=e.K_.shift(),i=Qi.from(n,t,r);await Gl(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await Ql(e)}).bind(null,t)},(i=e).M_(),new Dl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.Y_.h_(),await Ql(t)):(await t.Y_.stop(),0<t.K_.length&&(p(Rl,`Stopping write stream with ${t.K_.length} pending writes`),t.K_=[]))})),t.Y_;var e,r,n,i}class Zl{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new f,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 Zl(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 I(b.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function eu(e,t){if(d("AsyncQueue",t+": "+e),Ye(e))return new I(b.UNAVAILABLE,t+": "+e);throw e}class tu{static emptySet(e){return new tu(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=di(),this.sortedSet=new A(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 tu))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 tu;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class ru{constructor(){this.Z_=new A(x.comparator)}track(e){var t=e.doc.key,r=this.Z_.get(t);!r||0!==e.type&&3===r.type?this.Z_=this.Z_.insert(t,e):3===e.type&&1!==r.type?this.Z_=this.Z_.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.Z_=this.Z_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.Z_=this.Z_.remove(t):1===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):T()}X_(){let r=[];return this.Z_.inorderTraversal((e,t)=>{r.push(t)}),r}}class nu{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 nu(e,t,tu.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)&&ni(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 iu{constructor(){this.ea=void 0,this.ta=[]}na(){return this.ta.some(e=>e.ra())}}class su{constructor(){this.queries=au(),this.onlineState="Unknown",this.ia=new Set}terminate(){var e,r,t,n;e=this,r=new I(b.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=au(),n.forEach((e,t)=>{for(let e of t.ta)e.onError(r)})}}function au(){return new ui(e=>ii(e),ni)}async function ou(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.na()&&r.ra()&&(n=2):(s=new iu,n=r.ra()?0:1);try{switch(n){case 0:s.ea=await e.onListen(i,!0);break;case 1:s.ea=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=eu(t,`Initialization of query '${si(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.ta.push(r),r.sa(e.onlineState),s.ea&&r.oa(s.ea)&&uu(e)}async function lu(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.ta.indexOf(t);0<=e&&(s.ta.splice(e,1),0===s.ta.length?i=t.ra()?0:1:!s.na()&&t.ra()&&(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 uu(e){e.ia.forEach(e=>{e.next()})}(le=le||{})._a="default",le.Cache="cache";class hu{constructor(e,t,r){this.query=e,this.aa=t,this.ua=!1,this.ca=null,this.onlineState="Unknown",this.options=r||{}}oa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new nu(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.ua?this.la(t)&&(this.aa.next(t),e=!0):this.ha(t,this.onlineState)&&(this.Pa(t),e=!0),this.ca=t,e}onError(e){this.aa.error(e)}sa(e){this.onlineState=e;let t=!1;return this.ca&&!this.ua&&this.ha(this.ca,e)&&(this.Pa(this.ca),t=!0),t}ha(e,t){return!e.fromCache||!this.ra()||(!this.options.Ta||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}la(e){var t;return 0<e.docChanges.length||(t=this.ca&&this.ca.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}Pa(e){e=nu.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.ua=!0,this.aa.next(e)}ra(){return this.options.source!==le.Cache}}class cu{constructor(e,t){this.Ia=e,this.byteLength=t}Ea(){return"metadata"in this.Ia}}class du{constructor(e){this.serializer=e}ps(e){return Ts(this.serializer,e)}ys(e){return e.metadata.exists?Ds(this.serializer,e.document,!1):k.newNoDocument(this.ps(e.metadata.name),this.ws(e.metadata.readTime))}ws(e){return V(e)}}class fu{constructor(e,t,r){this.da=e,this.localStore=t,this.serializer=r,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=gu(e)}Aa(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.Ia.namedQuery?this.queries.push(e.Ia.namedQuery):e.Ia.documentMetadata?(this.documents.push({metadata:e.Ia.documentMetadata}),e.Ia.documentMetadata.exists||++t,r=S.fromString(e.Ia.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.Ia.document&&(this.documents[this.documents.length-1].document=e.Ia.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ra(e){let r=new Map,n=new du(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.ps(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||M()).add(e);r.set(t,s)}}return r}async complete(){let e=await(async(r,n,e,t)=>{let i=r,s=M(),a=hi;for(let r of e){let e=n.ps(r.metadata.name),t=(r.document&&(s=s.add(e)),n.ys(r));t.setReadTime(n.ws(r.metadata.readTime)),a=a.insert(e,t)}let o=i.ds.newChangeBuffer({trackRemovals:!0}),l=await Qo(i,(r=t,ei(Yn(S.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>Go(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Hr.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Hr.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Vs,e.fs)).next(()=>e.Vs)))})(this.localStore,new du(this.serializer),this.documents,this.da.id),t=this.Ra(this.documents);for(let e of this.queries)await(async(e,r,n=M())=>{let i=await Qo(e,ei(Xs(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=V(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Yr.saveNamedQuery(e,r):(t=i.withResumeToken(D.EMPTY_BYTE_STRING,t),s.Ts=s.Ts.insert(t.targetId,t),s.Hr.updateTargetData(e,t).next(()=>s.Hr.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Hr.addMatchingKeys(e,n,i.targetId)).next(()=>s.Yr.saveNamedQuery(e,r)))})})(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Va:this.collectionGroups,ma:e}}}function gu(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class mu{constructor(e){this.key=e}}class pu{constructor(e){this.key=e}}class yu{constructor(e,t){this.query=e,this.fa=t,this.ga=null,this.hasCachedResults=!1,this.current=!1,this.pa=M(),this.mutatedKeys=M(),this.ya=li(e),this.wa=new tu(this.ya)}get Sa(){return this.fa}ba(e,t){let o=t?t.Da:new ru,l=(t||this).wa,u=(t||this).mutatedKeys,h=l,c=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,f="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=ai(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.va(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.ya(n,d)||f&&this.ya(n,f)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||f)&&(c=!0),a&&(u=n?(h=h.add(n),s?u.add(e):u.delete(e)):(h=h.delete(e),u.delete(e)))}),null!==this.query.limit)for(;h.size>this.query.limit;){let e="F"===this.query.limitType?h.last():h.first();h=h.delete(e.key),u=u.delete(e.key),o.track({type:1,doc:e})}return{wa:h,Da:o,ls:c,mutatedKeys:u}}va(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.wa,s=(this.wa=e.wa,this.mutatedKeys=e.mutatedKeys,e.Da.X_()),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 T()}})(r)-i(n)||this.ya(e.doc,t.doc);var r,n,i}),this.Ca(r),n=null!=n&&n,t&&!n?this.Fa():[]),o=0===this.pa.size&&this.current&&!n?1:0,l=o!==this.ga;return this.ga=o,0!==s.length||l?{snapshot:new nu(this.query,e.wa,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),Ma:a}:{Ma:a}}sa(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({wa:this.wa,Da:new ru,mutatedKeys:this.mutatedKeys,ls:!1},!1)):{Ma:[]}}xa(e){return!this.fa.has(e)&&!!this.wa.has(e)&&!this.wa.get(e).hasLocalMutations}Ca(e){e&&(e.addedDocuments.forEach(e=>this.fa=this.fa.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.fa=this.fa.delete(e)),this.current=e.current)}Fa(){if(!this.current)return[];let t=this.pa,r=(this.pa=M(),this.wa.forEach(e=>{this.xa(e.key)&&(this.pa=this.pa.add(e.key))}),[]);return t.forEach(e=>{this.pa.has(e)||r.push(new pu(e))}),this.pa.forEach(e=>{t.has(e)||r.push(new mu(e))}),r}Oa(e){this.fa=e.gs,this.pa=M();var t=this.ba(e.documents);return this.applyChanges(t,!0)}Na(){return nu.fromInitialDocuments(this.query,this.wa,this.mutatedKeys,0===this.ga,this.hasCachedResults)}}let vu="SyncEngine";class wu{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class _u{constructor(e){this.key=e,this.Ba=!1}}class bu{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.La={},this.ka=new ui(e=>ii(e),ni),this.qa=new Map,this.Qa=new Set,this.$a=new A(x.comparator),this.Ka=new Map,this.Ua=new yo,this.Wa={},this.Ga=new Map,this.za=Ka.Un(),this.onlineState="Unknown",this.ja=void 0}get isPrimaryClient(){return!0===this.ja}}async function Iu(e,t,r,n){var i=await Qo(e.localStore,ei(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await Tu(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&Vl(e.remoteStore,i),o}async function Tu(n,e,t,r,i){n.Ha=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ba(r);i.ls&&(i=await Ho(e.localStore,t.query,!1).then(({documents:e})=>t.view.ba(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 Lu(e,t.targetId,s.Ma),s.snapshot})(n,e,t,r);var s=await Ho(n.localStore,e,!0),a=new yu(e,s.gs),s=a.ba(s.documents),o=is.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(Lu(n,t,s.Ma),new wu(e,t,a));return n.ka.set(e,o),n.qa.has(t)?n.qa.get(t).push(e):n.qa.set(t,[e]),s.snapshot}async function Eu(t,e,r){var n=Bu(t);try{let t=await((e,i)=>{let s=e,a=h.now(),o=i.reduce((e,t)=>e.add(t.key),M()),l,u;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=hi,r=M();return s.ds.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=Ii(i.transform,e||null);null!=t&&(n=null===n?_n.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new Ui(r.key,e,function i(e){let s=[];return Ar(e.fields,(e,r)=>{var n=new v([e]);if(fn(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new Lr(s)}(e.value.mapValue),O.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:fi(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Wa[i.currentUser.toKey()];e=(e=e||new A(E)).insert(s,a),i.Wa[i.currentUser.toKey()]=e}await Ou(n,t.changes),await Ql(n.remoteStore)}catch(t){let e=eu(t,"Failed to persist write");r.reject(e)}}async function Su(e,t){let n=e;try{let e=await zo(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Ka.get(t);r&&(y(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),0<e.addedDocuments.size?r.Ba=!0:0<e.modifiedDocuments.size?y(r.Ba):0<e.removedDocuments.size&&(y(r.Ba),r.Ba=!1))}),await Ou(n,e,t)}catch(e){await Ke(e)}}function xu(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.ka.forEach((e,t)=>{var r=t.view.sa(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.ta)e.sa(a)&&(r=!0)}),r&&uu(o)}n.length&&s.La.p_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function Au(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=>(y(null!==e),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);Nu(n,t,r),Du(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await Ou(n,e)}catch(r){await Ke(r)}}async function Cu(t,r){let n=t;jl(n.remoteStore)||p(vu,"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===st?r.resolve():((i=n.Ga.get(e)||[]).push(r),n.Ga.set(e,i))}catch(t){let e=eu(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function Du(e,t){(e.Ga.get(t)||[]).forEach(e=>{e.resolve()}),e.Ga.delete(t)}function Nu(e,t,r){var n=e;let i=n.Wa[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Wa[n.currentUser.toKey()]=i}}function ku(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.qa.get(e))t.ka.delete(n),r&&t.La.Ja(n,r);t.qa.delete(e),t.isPrimaryClient&&t.Ua.br(e).forEach(e=>{t.Ua.containsKey(e)||Ru(t,e)})}function Ru(e,t){e.Qa.delete(t.path.canonicalString());var r=e.$a.get(t);null!==r&&(Fl(e.remoteStore,r),e.$a=e.$a.remove(t),e.Ka.delete(r),Mu(e))}function Lu(e,t,r){for(var n of r)n instanceof mu?(e.Ua.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.$a.get(a)||i.Qa.has(o)||(p(vu,"New document in limbo: "+a),i.Qa.add(o),Mu(i))):n instanceof pu?(p(vu,"Document no longer in limbo: "+n.key),e.Ua.removeReference(n.key,t),e.Ua.containsKey(n.key)||Ru(e,n.key)):T();var i,s,a,o}function Mu(e){for(;0<e.Qa.size&&e.$a.size<e.maxConcurrentLimboResolutions;){var t=e.Qa.values().next().value,t=(e.Qa.delete(t),new x(S.fromString(t))),r=e.za.next();e.Ka.set(r,new _u(t)),e.$a=e.$a.insert(t,r),Vl(e.remoteStore,new js(ei(Yn(t.path)),r,"TargetPurposeLimboResolution",it.ae))}}async function Ou(e,t,i){let s=e,a=[],o=[],r=[];if(!s.ka.isEmpty()){s.ka.forEach((e,n)=>{r.push(s.Ha(n,t,i).then(t=>{var r;if((t||i)&&s.isPrimaryClient){let e=t?!t.fromCache:null==(r=null==i?void 0:i.targetChanges.get(n.targetId))?void 0:r.current;s.sharedClientState.updateQueryState(n.targetId,e?"current":"not-current")}if(t){a.push(t);let e=Mo.Yi(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.La.p_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>w.forEach(l,t=>w.forEach(t.Hi,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>w.forEach(t.Ji,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!Ye(n))throw n;p(Fo,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.Ts.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Ts=i.Ts.insert(n,r)}}}}}async function Vu(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.Ln(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):w.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await Ql(i.remoteStore):"acknowledged"===r||"rejected"===r?(Nu(i,t,n||null),Du(i,t),i.localStore.mutationQueue.qn(t)):T(),await Ou(i,s)):p(vu,"Cannot apply mutation batch with id: "+t)}async function Fu(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.qa.get(r);if(e&&0!==e.length){t=await Qo(a.localStore,ei(e[0]));for(let r of e){let e=a.ka.get(r),t=(n=e,s=i=void 0,s=await Ho((i=a).localStore,n.query,!0),s=n.view.Oa(s),i.isPrimaryClient&&Lu(i,n.targetId,s.Ma),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await Wo(a.localStore,r);t=await Qo(a.localStore,e),await Tu(a,Pu(e),r,!1,t.resumeToken)}o.push(t)}return a.La.p_(l),o}function Pu(e){return Wn(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function Uu(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=Su.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Ka.get(t);if(r&&r.Ba)return M().add(r.key);{let r=M(),e=n.qa.get(t);if(e)for(let t of e){let e=n.ka.get(t);r=r.unionWith(e.view.Sa)}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.Ka.get(n)),s=r&&r.key;if(s){let e=new A(x.comparator),t=(e=e.insert(s,k.newNoDocument(s,g.min())),M().add(s)),r=new ns(g.min(),new Map,new A(E),e,t);await Su(i,r),i.$a=i.$a.remove(s),i.Ka.delete(n),Mu(i)}else await $o(i.localStore,n,!1).then(()=>ku(i,n,t)).catch(Ke)}).bind(null,t),t.La.p_=(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.ta)e.oa(r)&&(i=!0);t.ea=r}}i&&uu(n)}).bind(null,t.eventManager),t.La.Ja=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.ta)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function Bu(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await jo(r.localStore,t);Nu(r,n,null),Du(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await Ou(r,e)}catch(e){await Ke(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=Au.bind(null,t),t}function qu(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=V(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Yr.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(gu(i));var s=new fu(i,e.localStore,r.serializer);let t=await r.Ya();for(;t;){let e=await s.Aa(t);e&&n._updateProgress(e),t=await r.Ya()}var a=await s.complete();return await Ou(e,a.ma,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Yr.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Va)}catch(e){return ge(vu,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class ju{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=El(e.databaseInfo.databaseId),this.sharedClientState=this.Za(e),this.persistence=this.Xa(e),await this.persistence.start(),this.localStore=this.eu(e),this.gcScheduler=this.tu(e,this.localStore),this.indexBackfillerScheduler=this.nu(e,this.localStore)}tu(e,t){return null}nu(e,t){return null}eu(e){return Bo(this.persistence,new Vo,e.initialUser,this.serializer)}Xa(e){return new Io(Eo.ri,this.serializer)}Za(e){return new cl}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}ju.provider={build:()=>new ju};class Ku extends ju{constructor(e){super(),this.cacheSizeBytes=e}tu(e,t){y(this.persistence.referenceDelegate instanceof So);var r=this.persistence.referenceDelegate.garbageCollector;return new Xa(r,e.asyncQueue,t)}Xa(e){let t=void 0!==this.cacheSizeBytes?Oa.withCacheSize(this.cacheSizeBytes):Oa.DEFAULT;return new Io(e=>So.ri(e,t),this.serializer)}}class zu extends ju{constructor(e,t,r){super(),this.ru=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.ru.initialize(this,e),await Bu(this.ru.syncEngine),await Ql(this.ru.remoteStore),await this.persistence.Ci(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}eu(e){return Bo(this.persistence,new Vo,e.initialUser,this.serializer)}tu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new Xa(r,e.asyncQueue,t)}nu(e,t){var r=new nt(t,this.persistence);return new rt(e.asyncQueue,r)}Xa(e){var t=Lo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?Oa.withCacheSize(this.cacheSizeBytes):Oa.DEFAULT;return new No(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Il(),Tl(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Za(e){return new cl}}class Gu extends zu{constructor(e,t){super(e,t,!1),this.ru=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.ru.syncEngine;this.sharedClientState instanceof hl&&(this.sharedClientState.syncEngine={uo:Vu.bind(null,t),co:(async function(e,r,n,t){var i=e;if(i.ja)p(vu,"Ignoring unexpected query state notification.");else{var s=i.qa.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await Yo(i.localStore,oi(s[0])),t=ns.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,D.EMPTY_BYTE_STRING);await Ou(i,e,t);break}case"rejected":await $o(i.localStore,r,!0),ku(i,r,t);break;default:T()}}}).bind(null,t),lo:(async function(e,t,n){let i=Uu(e);if(i.ja){for(let r of t)if(i.qa.has(r)&&i.sharedClientState.isActiveQueryTarget(r))p(vu,"Adding an already active target "+r);else{let e=await Wo(i.localStore,r),t=await Qo(i.localStore,e);await Tu(i,Pu(e),t.targetId,!1,t.resumeToken),Vl(i.remoteStore,t)}for(let r of n)i.qa.has(r)&&await $o(i.localStore,r,!1).then(()=>{Fl(i.remoteStore,r),ku(i,r)}).catch(Ke)}}).bind(null,t),zi:(function(e){return e.localStore.persistence.zi()}).bind(null,t),ao:(async function(e,t){let r=e;return Yo(r.localStore,t).then(e=>Ou(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ci(async e=>{{var t=this.ru.syncEngine,s=e;let i=t;if(Uu(i),Bu(i),!0===s&&!0!==i.ja){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await Fu(i,e.toArray());i.ja=!0,await Yl(i.remoteStore,!0);for(let e of t)Vl(i.remoteStore,e)}else if(!1===s&&!1!==i.ja){let r=[],n=Promise.resolve();i.qa.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(ku(i,t),$o(i.localStore,t,!0))),Fl(i.remoteStore,t)}),await n,await Fu(i,r);{s=i;let r=s;r.Ka.forEach((e,t)=>{Fl(r.remoteStore,t)}),r.Ua.Dr(),r.Ka=new Map,r.$a=new A(x.comparator)}i.ja=!1,await Yl(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())})}Za(e){var t,r=Il();if(hl.D(r))return t=Lo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new hl(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new I(b.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class Qu{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=>xu(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){p(vu,"User change. New user:",t.toKey());let e=await qo(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Ga.forEach(e=>{e.forEach(e=>{e.reject(new I(b.CANCELLED,n))})}),r.Ga.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await Ou(i,e.Rs)}}).bind(null,this.syncEngine),await Yl(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new su}createDatastore(e){var t,r,n,i=El(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new bl(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new Nl(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>xu(this.syncEngine,e,0),i=new(gl.D()?gl:dl),new Ll(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 bu(r,n,i,s,a,e),t&&(o.ja=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,p(Rl,"RemoteStore shutting down."),t.W_.add(5),await Ol(t),t.z_.shutdown(),await!t.j_.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function $u(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()}}Qu.provider={build:()=>new Qu};class Hu{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.iu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.iu(this.observer.error,e):d("Uncaught Error in snapshot listener:",e.toString()))}su(){this.muted=!0}iu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class Wu{constructor(e,t){this.ou=e,this.serializer=t,this.metadata=new f,this.buffer=new Uint8Array,this._u=new TextDecoder("utf-8"),this.au().then(e=>{e&&e.Ea()?this.metadata.resolve(e.Ia.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
8
+ `+JSON.stringify(null==e?void 0:e.Ia)))},e=>this.metadata.reject(e))}close(){return this.ou.cancel()}async getMetadata(){return this.metadata.promise}async Ya(){return await this.getMetadata(),this.au()}async au(){var e,t,r=await this.uu();return null===r?null:(t=this._u.decode(r),e=Number(t),isNaN(e)&&this.cu(`length string (${t}) is not valid number`),t=await this.lu(e),new cu(JSON.parse(t),r.length+e))}hu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async uu(){for(;this.hu()<0&&!await this.Pu(););var e,t;return 0===this.buffer.length?null:((e=this.hu())<0&&this.cu("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 lu(e){for(;this.buffer.length<e;)await this.Pu()&&this.cu("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}cu(e){throw this.ou.cancel(),new Error("Invalid bundle format: "+e)}async Pu(){var e,t=await this.ou.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class Yu{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 I(b.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=>Is(l.serializer,e))},n=await l.Co("BatchGetDocuments",l.serializer.databaseId,S.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,y(!!(n=e).found),n.found.name,n.found.updateTime,i=Ts(r,n.found.name),s=V(n.found.updateTime),o=n.found.createTime?V(n.found.createTime):g.min(),a=new _n({mapValue:{fields:n.found.fields}}),k.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing),y(!!n.readTime),i=Ts(r,n.missing),s=V(n.readTime),k.newNoDocument(i,s)):T();u.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=u.get(e.toString());y(!!t),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 Ki(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new zi(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>Ns(t.serializer,e))};await t.So("Commit",t.serializer.databaseId,S.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw T();t=g.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.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(g.min())?O.exists(!1):O.updateTime(t):O.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return O.exists(!0);if(t.isEqual(g.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return O.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Xu{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Tu=r.maxAttempts,this.a_=new Sl(this.asyncQueue,"transaction_retry")}Iu(){--this.Tu,this.Eu()}Eu(){this.a_.Xo(async()=>{let t=new Yu(this.datastore),e=this.du(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Au(e)}))}).catch(e=>{this.Au(e)})})}du(e){try{var t=this.updateFunction(e);return!at(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}}Au(e){0<this.Tu&&this.Ru(e)?(--this.Tu,this.asyncQueue.enqueueAndForget(()=>(this.Eu(),Promise.resolve()))):this.deferred.reject(e)}Ru(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!Wi(t))}}let Ju="FirestoreClient";class Zu{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=l.UNAUTHENTICATED,this.clientId=Ee.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{p(Ju,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(p(Ju,"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 f;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=eu(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function eh(e,t){e.asyncQueue.verifyOperationInProgress(),p(Ju,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await qo(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function th(e,r){e.asyncQueue.verifyOperationInProgress();var t=await rh(e);p(Ju,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>Wl(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Wl(r.remoteStore,t)),e._onlineComponents=r}async function rh(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){p(Ju,"Using user provided OfflineComponentProvider");try{await eh(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;ge("Error using user provided cache. Falling back to memory cache: "+r),await eh(t,new ju)}}else p(Ju,"Using default OfflineComponentProvider"),await eh(t,new Ku(void 0));var n;return t._offlineComponents}async function nh(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(p(Ju,"Using user provided OnlineComponentProvider"),await th(e,e._uninitializedComponentsProvider._online)):(p(Ju,"Using default OnlineComponentProvider"),await th(e,new Qu))),e._onlineComponents}function ih(e){return rh(e).then(e=>e.persistence)}function sh(e){return rh(e).then(e=>e.localStore)}function ah(e){return nh(e).then(e=>e.remoteStore)}function oh(e){return nh(e).then(e=>e.syncEngine)}async function lh(e){var t=await nh(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=Uu(e);let i;var s=n.ka.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.Na()):await Iu(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.ka.get(t),s=n.qa.get(i.targetId);1<s.length?(n.qa.set(i.targetId,s.filter(e=>!ni(e,t))),n.ka.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await $o(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&Fl(n.remoteStore,i.targetId),ku(n,i.targetId)}).catch(Ke)):(ku(n,i.targetId),await $o(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Iu(Uu(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.ka.get(t),i=r.qa.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),Fl(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function uh(r){return r.asyncQueue.enqueue(async()=>{var e=await ih(r),t=await ah(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.W_.add(0),await Ol(t),t.j_.set("Offline")})(t)})}function hh(e,t){let r=new f;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 I(b.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=eu(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await sh(e),t,r)),r.promise}function ch(e,t,u={}){let h=new f;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await lh(e),s=e.asyncQueue,a=t,o=u,l=h;let r=new Hu({next:e=>{r.su(),s.enqueueAndForget(()=>lu(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new I(b.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new hu(Yn(a.path),r,{includeMetadataChanges:!0,Ta:!0});return ou(i,n)}}),h.promise}function dh(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await Ho(e,t,!0),i=new yu(t,n.gs),s=i.ba(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=eu(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await sh(e),t,r)),r.promise}function fh(o,l,u={}){let h=new f;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await lh(o),i=o.asyncQueue,e=l,s=u,a=h;let t=new Hu({next:e=>{t.su(),i.enqueueAndForget(()=>lu(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new hu(e,t,{includeMetadataChanges:!0,Ta:!0});return ou(n,r)}}),h.promise}function gh(r,e){let n=new Hu(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await lh(r),t=n,e.ia.add(t),void t.next();var e,t}),()=>{n.su(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await lh(r),t=n,e.ia.delete(t)})}}function mh(e,t,r,n){r=r,t=El(t),s="string"==typeof r?Xi().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return $u(e,t);if(e instanceof ArrayBuffer)return $u(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 Wu(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{qu(await oh(e),i,n)})}function ph(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await sh(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Yr.getNamedQuery(e,r))}})}function yh(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let vh=new Map;function wh(e,t,r){if(!r)throw new I(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function _h(e,t,r,n){if(!0===t&&!0===n)throw new I(b.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function bh(e){if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Ih(e){if(x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function Th(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":T()}function F(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new I(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=Th(e);throw new I(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function Eh(e,t){if(t<=0)throw new I(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let Sh="firestore.googleapis.com";class xh{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=Sh,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}_h("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=yh(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class Ah{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 xh({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new I(b.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 I(b.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new xh(e),void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new ye;switch(e.type){case"firstParty":return new be(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=vh.get(e))&&(p("ComponentProvider","Removing Datastore"),vh.delete(e),t.terminate()),Promise.resolve();var e,t}}function Ch(n,e,t,i={}){let s,r=(n=F(n,Ah))._getSettings(),a=e+":"+t;if(r.host!==Sh&&r.host!==a&&ge("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),n._setSettings(Object.assign(Object.assign({},r),{host:a,ssl:!1})),i.mockUserToken){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=l.MOCK_USER;else{t=((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e),[j(JSON.stringify({alg:"none",type:"JWT"})),j(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,null==(s=n._app)?void 0:s.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new l(e)}n._authCredentials=new ve(new pe(t,r))}}class Dh{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new Dh(this.firestore,e,this._query)}}class P{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 Nh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new P(this.firestore,e,this._key)}}class Nh extends Dh{constructor(e,t,r){super(e,t,Yn(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 P(this.firestore,null,new x(e))}withConverter(e){return new Nh(this.firestore,e,this._path)}}function kh(e,t,...r){var n;if(e=_(e),wh("collection","path",t),e instanceof Ah)return Ih(n=S.fromString(t,...r)),new Nh(e,null,n);if(e instanceof P||e instanceof Nh)return Ih(n=e._path.child(S.fromString(t,...r))),new Nh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Rh(e,t,...r){var n;if(e=_(e),wh("doc","path",t=1===arguments.length?Ee.newId():t),e instanceof Ah)return bh(n=S.fromString(t,...r)),new P(e,null,new x(n));if(e instanceof P||e instanceof Nh)return bh(n=e._path.child(S.fromString(t,...r))),new P(e.firestore,e instanceof Nh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Lh(e,t){return e=_(e),t=_(t),(e instanceof P||e instanceof Nh)&&(t instanceof P||t instanceof Nh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function Mh(e,t){return e=_(e),t=_(t),e instanceof Dh&&t instanceof Dh&&e.firestore===t.firestore&&ni(e._query,t._query)&&e.converter===t.converter}let Oh="AsyncQueue";class Vh{constructor(e=Promise.resolve()){this.Vu=[],this.mu=!1,this.fu=[],this.gu=null,this.pu=!1,this.yu=!1,this.wu=[],this.a_=new Sl(this,"async_queue_retry"),this.Su=()=>{var e=Tl();e&&p(Oh,"Visibility state changed to "+e.visibilityState),this.a_.t_()},this.bu=e;var t=Tl();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Su)}get isShuttingDown(){return this.mu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.Du(),this.vu(e)}enterRestrictedMode(e){var t;this.mu||(this.mu=!0,this.yu=e||!1,(t=Tl())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Su))}enqueue(e){if(this.Du(),this.mu)return new Promise(()=>{});let t=new f;return this.vu(()=>this.mu&&this.yu?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Vu.push(e),this.Cu()))}async Cu(){if(0!==this.Vu.length){try{await this.Vu[0](),this.Vu.shift(),this.a_.reset()}catch(e){if(!Ye(e))throw e;p(Oh,"Operation failed with retryable error: "+e)}0<this.Vu.length&&this.a_.Xo(()=>this.Cu())}}vu(e){var t=this.bu.then(()=>(this.pu=!0,e().catch(e=>{throw this.gu=e,this.pu=!1,d("INTERNAL UNHANDLED ERROR: ",(e=>{let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t})(e)),e}).then(e=>(this.pu=!1,e))));return this.bu=t}enqueueAfterDelay(e,t,r){this.Du(),-1<this.wu.indexOf(e)&&(t=0);var n=Zl.createAndSchedule(this,e,t,r,e=>this.Fu(e));return this.fu.push(n),n}Du(){this.gu&&T()}verifyOperationInProgress(){}async Mu(){for(var e;await(e=this.bu),e!==this.bu;);}xu(e){for(var t of this.fu)if(t.timerId===e)return!0;return!1}Ou(t){return this.Mu().then(()=>{this.fu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.fu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Mu()})}Nu(e){this.wu.push(e)}Fu(e){var t=this.fu.indexOf(e);this.fu.splice(t,1)}}function Fh(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class Ph{constructor(){this._progressObserver={},this._taskCompletionResolver=new f,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var Uh,Bh,t,qh;class U extends Ah{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new Vh,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new Vh(e),this._firestoreClient=void 0,await e)}}function jh(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||Kh(e),e._firestoreClient}function Kh(e){var t,r,n,i,s,a=e._freezeSettings(),o=(i=e._databaseId,t=(null==(o=e._app)?void 0:o.options.appId)||"",r=e._persistenceKey,n=a,new Gr(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,yh(n.experimentalLongPollingOptions),n.useFetchStreams));e._componentsProvider||null!=(s=a.localCache)&&s._offlineComponentProvider&&null!=(s=a.localCache)&&s._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new Zu(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(i=e._componentsProvider,s=null==i?void 0:i._online.build(),{_offline:null==i?void 0:i._offline.build(s),_online:s}))}function zh(e,t,r){if((e=F(e,U))._firestoreClient||e._terminated)throw new I(b.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 I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},Kh(e)}function Gh(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new f;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=Lo(r._databaseId,r._persistenceKey),await(Qe.D()?(t=e+"main",void await Qe.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function Qh(e){return(r=jh(e=F(e,U))).asyncQueue.enqueue(async()=>{var e=await ih(r),t=await ah(r);return e.setNetworkEnabled(!0),(e=t).W_.delete(0),Ml(e)});var r}class $h{constructor(e){this._byteString=e}static fromBase64String(e){try{return new $h(D.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new $h(D.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class Hh{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new I(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new v(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class Wh{constructor(e){this._methodName=e}}class Yh{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new I(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new I(b.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return E(this._lat,e._lat)||E(this._long,e._long)}}class Xh{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}}let Jh=/^__.*__$/;class Zh{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new Ui(e,this.data,this.fieldMask,t,this.fieldTransforms):new Pi(e,this.data,t,this.fieldTransforms)}}class ec{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new Ui(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function tc(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw T()}}class rc{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Bu(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Lu(){return this.settings.Lu}ku(e){return new rc(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}qu(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.$u(e),t}Ku(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.Bu(),t}Uu(e){return this.ku({path:void 0,Qu:!0})}Wu(e){return Ic(e,this.settings.methodName,this.settings.Gu||!1,this.path,this.settings.zu)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Bu(){if(this.path)for(let e=0;e<this.path.length;e++)this.$u(this.path.get(e))}$u(e){if(0===e.length)throw this.Wu("Document fields must not be empty");if(tc(this.Lu)&&Jh.test(e))throw this.Wu('Document fields cannot begin and end with "__"')}}class nc{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||El(e)}ju(e,t,r,n=!1){return new rc({Lu:e,methodName:t,zu:r,path:v.emptyPath(),Qu:!1,Gu:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function ic(e){var t=e._freezeSettings(),r=El(e._databaseId);return new nc(e._databaseId,!!t.ignoreUndefinedProperties,r)}function sc(e,n,i,t,r,s={}){var a=e.ju(s.merge||s.mergeFields?2:0,n,i,r),o=(vc("Data must be an object, but it was:",a,t),pc(t,a));let l,u;if(s.merge)l=new Lr(a.fieldMask),u=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=wc(n,r,i);if(!a.contains(e))throw new I(b.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);Tc(t,e)||t.push(e)}l=new Lr(t),u=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,u=a.fieldTransforms;return new Zh(new _n(o),l,u)}class ac extends Wh{_toFieldTransform(e){if(2!==e.Lu)throw 1===e.Lu?e.Wu(this._methodName+"() can only appear at the top level of your update data"):e.Wu(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof ac}}function oc(e,t,r){return new rc({Lu:3,zu:t.settings.zu,methodName:e._methodName,Qu:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class lc extends Wh{_toFieldTransform(e){return new ki(e.path,new Ti)}isEqual(e){return e instanceof lc}}class uc extends Wh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=oc(this,e,!0),r=this.Hu.map(e=>mc(e,t)),n=new Ei(r);return new ki(e.path,n)}isEqual(e){return e instanceof uc&&Z(this.Hu,e.Hu)}}class hc extends Wh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=oc(this,e,!0),r=this.Hu.map(e=>mc(e,t)),n=new xi(r);return new ki(e.path,n)}isEqual(e){return e instanceof hc&&Z(this.Hu,e.Hu)}}class cc extends Wh{constructor(e,t){super(e),this.Ju=t}_toFieldTransform(e){var t=new Ci(e.serializer,_i(e.serializer,this.Ju));return new ki(e.path,t)}isEqual(e){return e instanceof cc&&this.Ju===e.Ju}}function dc(e,i,s,t){let a=e.ju(1,i,s),o=(vc("Data must be an object, but it was:",a,t),[]),l=_n.empty();Ar(t,(e,t)=>{var r=bc(i,e,s),n=(t=_(t),a.Ku(r));if(t instanceof ac)o.push(r);else{let e=mc(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new Lr(o);return new ec(l,r,a.fieldTransforms)}function fc(e,t,r,n,i,s){var a=e.ju(1,t,r),o=[wc(t,n,r)],l=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<s.length;f+=2)o.push(wc(t,s[f])),l.push(s[f+1]);var u=[],h=_n.empty();for(let g=o.length-1;0<=g;--g)if(!Tc(u,o[g])){let t=o[g];var c=_(l[g]);let r=a.Ku(t);if(c instanceof ac)u.push(t);else{let e=mc(c,r);null!=e&&(u.push(t),h.set(t,e))}}var d=new Lr(u);return new ec(h,d,a.fieldTransforms)}function gc(e,t,r,n=!1){return mc(r,e.ju(n?4:3,t))}function mc(e,r){if(yc(e=_(e)))return vc("Unsupported field value:",r,e),pc(e,r);if(e instanceof Wh){{var t=e;var n=r;if(!tc(n.Lu))throw n.Wu(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Wu(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.Qu&&4!==r.Lu)throw r.Wu("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=mc(s,a.Uu(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=_(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return _i(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return u=h.fromDate(t),{timestampValue:ys(n.serializer,u)};if(t instanceof h)return u=new h(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:ys(n.serializer,u)};if(t instanceof Yh)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof $h)return{bytesValue:vs(n.serializer,t._byteString)};if(t instanceof P){var u=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(u))return{referenceValue:ws(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Wu(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${u.projectId}/`+u.database)}if(t instanceof Xh)return e=t,l=n,{mapValue:{fields:{[Hr]:{stringValue:Xr},[Jr]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Wu("VectorValues must only contain numeric values.");return vi(l.serializer,e)})}}}}};throw n.Wu("Unsupported field value: "+Th(t))}function pc(e,n){let i={};return Cr(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Ar(e,(e,t)=>{var r=mc(t,n.qu(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function yc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof h||e instanceof Yh||e instanceof $h||e instanceof P||e instanceof Wh||e instanceof Xh)}function vc(e,t,r){var n,i;if(!yc(r)||"object"!=typeof(i=r)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))throw"an object"===(n=Th(r))?t.Wu(e+" a custom object"):t.Wu(e+" "+n)}function wc(e,t,r){if((t=_(t))instanceof Hh)return t._internalPath;if("string"==typeof t)return bc(e,t);throw Ic("Field path arguments must be of type string or ",e,!1,void 0,r)}let _c=new RegExp("[~\\*/\\[\\]]");function bc(t,r,n){if(0<=r.search(_c))throw Ic(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Hh(...r.split("."))._internalPath}catch(e){throw Ic(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function Ic(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 I(b.INVALID_ARGUMENT,o+e+l)}function Tc(e,t){return e.some(e=>e.isEqual(t))}class Ec{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 P(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Sc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(xc("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Sc extends Ec{data(){return super.data()}}function xc(e,t){return"string"==typeof t?bc(e,t):(t instanceof Hh?t:t._delegate)._internalPath}function Ac(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Cc{}class Dc extends Cc{}function Nc(e,t,...r){let n=[];t instanceof Cc&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof kc).length;if(1<i||0<i&&0<s)throw new I(b.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class kc extends Dc{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new kc(e,t,r)}_apply(e){var t=this._parse(e);return Uc(e._query,t),new Dh(e.firestore,e.converter,ti(e._query,t))}_parse(e){var t=ic(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new I(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){Pc(l,o);let e=[];for(let t of l)e.push(Fc(a,n,t));r={arrayValue:{values:e}}}else r=Fc(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||Pc(l,o),r=gc(s,i,l,"in"===o||"not-in"===o);return R.create(e,o,r)}}}(class extends Cc{});class Rc extends Dc{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new Rc(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new En(t,r)})(e._query,this._field,this._direction);return new Dh(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Hn(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class Lc extends Dc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new Lc(e,t,r)}_apply(e){return new Dh(e.firestore,e.converter,ri(e._query,this._limit,this._limitType))}}class Mc extends Dc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Mc(e,t,r)}_apply(e){var t,r=Vc(e,this.type,this._docOrFields,this._inclusive);return new Dh(e.firestore,e.converter,(e=e._query,t=r,new Hn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class Oc extends Dc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Oc(e,t,r)}_apply(e){var t,r=Vc(e,this.type,this._docOrFields,this._inclusive);return new Dh(e.firestore,e.converter,(e=e._query,t=r,new Hn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function Vc(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof Ec){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,u=i;if(!l)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of Zn(s))if(t.field.isKeyField())h.push(ln(a,l.key));else{let e=l.data.field(t.field);if(jr(e))throw new I(b.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 I(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}h.push(e)}return new bn(h,u)}var t=ic(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w<m.length;w++){var v=m[w];if(p[w].field.isKeyField()){if("string"!=typeof v)throw new I(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${g}(), but got a `+typeof v);if(!Jn(c)&&-1!==v.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${g}() must be a plain document ID, but '${v}' contains a slash.`);let e=c.path.child(S.fromString(v));if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${g}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);y.push(ln(d,t))}else{let e=gc(f,g,v);y.push(e)}}return new bn(y,o)}function Fc(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new I(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Jn(t)&&-1!==r.indexOf("/"))throw new I(b.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(S.fromString(r));if(x.isDocumentKey(n))return ln(e,new x(n));throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof P)return ln(e,r._key);throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Th(r)}.`)}function Pc(e,t){if(!Array.isArray(e)||0===e.length)throw new I(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function Uc(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 I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class Bc{convertValue(e,t="none"){switch(en(e)){case 0:return null;case 1:return e.booleanValue;case 2:return N(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(Fr(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw T()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Ar(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=null==(t=null==(t=null==(t=e.fields)?void 0:t[Jr].arrayValue)?void 0:t.values)?void 0:t.map(e=>N(e.doubleValue));return new Xh(t)}convertGeoPoint(e){return new Yh(N(e.latitude),N(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=Kr(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(zr(e));default:return null}}convertTimestamp(e){var t=Vr(e);return new h(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=S.fromString(e),n=(y(qs(r)),new $r(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function qc(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class jc extends Bc{constructor(e){super(),this.firestore=e}convertBytes(e){return new $h(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}class Kc{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class zc extends Ec{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 Gc(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(xc("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class Gc extends zc{data(e={}){return super.data(e)}}class Qc{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new Kc(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 Gc(this._firestore,this._userDataWriter,e.key,e,new Kc(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 I(b.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new Gc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Kc(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 Gc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Kc(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 T()}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function $c(e,t){return e instanceof zc&&t instanceof zc?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 Qc&&t instanceof Qc&&e._firestore===t._firestore&&Mh(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class Hc extends Bc{constructor(e){super(),this.firestore=e}convertBytes(e){return new $h(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}function Wc(e,t,r){e=F(e,P);var n=F(e.firestore,U),i=qc(e.converter,t,r);return Jc(n,[sc(ic(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,O.none())])}function Yc(e,t,r,...n){e=F(e,P);var i=F(e.firestore,U),s=ic(i);return Jc(i,[("string"==typeof(t=_(t))||t instanceof Hh?fc(s,"updateDoc",e._key,t,r,n):dc(s,"updateDoc",e._key,t)).toMutation(e._key,O.exists(!0))])}function Xc(n,...i){var t,r;n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0;"object"!=typeof i[s]||Fh(i[s])||(e=i[s],s++);var a={includeMetadataChanges:e.includeMetadataChanges,source:e.source};if(Fh(i[s])){let e=i[s];i[s]=null==(r=e.next)?void 0:r.bind(e),i[s+1]=null==(t=e.error)?void 0:t.bind(e),i[s+2]=null==(r=e.complete)?void 0:r.bind(e)}let o,l,u;if(n instanceof P)l=F(n.firestore,U),u=Yn(n._key.path),o={next:e=>{i[s]&&i[s](Zc(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=F(n,Dh),r=(l=F(t.firestore,U),u=t._query,new Hc(l));o={next:e=>{i[s]&&i[s](new Qc(l,r,t,e))},error:i[s+1],complete:i[s+2]},Ac(n._query)}{var h=jh(l),c=u,d=a,f=o;let e=new Hu(f),t=new hu(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>ou(await lh(h),t)),()=>{e.su(),h.asyncQueue.enqueueAndForget(async()=>lu(await lh(h),t))}}}function Jc(t,r){{var n=jh(t),i=r;let e=new f;return n.asyncQueue.enqueueAndForget(async()=>Eu(await oh(n),i,e)),e.promise}}function Zc(e,t,r){var n=r.docs.get(t._key),i=new Hc(e);return new zc(e,i,t._key,n,new Kc(r.hasPendingWrites,r.fromCache),t.converter)}let ed={maxAttempts:5};class td{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=ic(e)}set(e,t,r){this._verifyNotCommitted();var n=rd(e,this._firestore),i=qc(n.converter,t,r),i=sc(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,O.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=rd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Hh?fc(this._dataReader,"WriteBatch.update",i._key,t,r,n):dc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,O.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=rd(e,this._firestore);return this._mutations=this._mutations.concat(new Ki(t._key,O.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 I(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function rd(e,t){if((e=_(e)).firestore!==t)throw new I(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class nd extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=ic(e)}get(e){let r=rd(e,this._firestore),n=new jc(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return T();var t=e[0];if(t.isFoundDocument())return new Ec(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Ec(this._firestore,n,r._key,null,r.converter);throw T()})}set(e,t,r){var n=rd(e,this._firestore),i=qc(n.converter,t,r),i=sc(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=rd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Hh?fc(this._dataReader,"Transaction.update",i._key,t,r,n):dc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=rd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=rd(e,this._firestore),r=new Hc(this._firestore);return super.get(e).then(e=>new zc(this._firestore,r,t._key,e._document,new Kc(!1,!1),t.converter))}}function id(r,n,e){r=F(r,U);var i=Object.assign(Object.assign({},ed),e);if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=jh(r),a=e=>n(new nd(r,e)),o=i;let t=new f;return s.asyncQueue.enqueueAndForget(async()=>{var e=await nh(s).then(e=>e.datastore);new Xu(s.asyncQueue,e,o,a,t).Iu()}),t.promise}}Bh=!0,t=kd.SDK_VERSION,ce=t,kd._registerComponent(new te("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new U(new we(e.getProvider("auth-internal")),new Te(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new $r(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:Bh},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),kd.registerVersion(ue,he,Uh),kd.registerVersion(ue,he,"esm2017");function sd(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function ad(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function od(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class ld{constructor(e){this._delegate=e}static fromBase64String(e){return od(),new ld($h.fromBase64String(e))}static fromUint8Array(e){return ad(),new ld($h.fromUint8Array(e))}toBase64(){return od(),this._delegate.toBase64()}toUint8Array(){return ad(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function ud(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 hd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};ge("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return zh(e,Qu.provider,{build:e=>new zu(e,t.cacheSizeBytes,null==n?void 0:n.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{ge("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();zh(e,Qu.provider,{build:e=>new Gu(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return Gh(e._delegate)}}class cd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof $r||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||ge("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){Ch(this._delegate,e,t,r)}enableNetwork(){return Qh(this._delegate)}disableNetwork(){return uh(jh(F(this._delegate,U)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,_h("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=jh(t=F(t,U));let e=new f;return r.asyncQueue.enqueueAndForget(async()=>Cu(await oh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,gh(jh(t=F(t,U)),Fh(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new Sd(this,kh(this._delegate,e))}catch(e){throw yd(e,"collection()","Firestore.collection()")}}doc(e){try{return new pd(this,Rh(this._delegate,e))}catch(e){throw yd(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new Id(this,((e,t)=>{if(e=F(e,Ah),wh("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Dh(e,null,(e=t,new Hn(S.emptyPath(),e)))})(this._delegate,e))}catch(e){throw yd(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return id(this._delegate,e=>t(new fd(this,e)))}batch(){return jh(this._delegate),new gd(new td(this._delegate,e=>Jc(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=jh(t=F(t,U)),n=new Ph,mh(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,ph(jh(t=F(t,U)),e).then(e=>e?new Dh(t,null,e.query):null).then(e=>e?new Id(this,e):null);var t}}class dd extends Bc{constructor(e){super(),this.firestore=e}convertBytes(e){return new ld(new $h(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return pd.forKey(t,this.firestore,null)}}class fd{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new dd(e)}get(e){let t=xd(e);return this._delegate.get(t).then(e=>new _d(this._firestore,new zc(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=xd(e);return r?(sd("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=xd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=xd(e);return this._delegate.delete(t),this}}class gd{constructor(e){this._delegate=e}set(e,t,r){var n=xd(e);return r?(sd("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=xd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=xd(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class md{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Gc(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new bd(this._firestore,r),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=md.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new md(e,new dd(e),t),n.set(t,i)),i}}md.INSTANCES=new WeakMap;class pd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new dd(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new pd(t,new P(t._delegate,r,new x(e)))}static forKey(e,t,r){return new pd(t,new P(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new Sd(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new Sd(this.firestore,kh(this._delegate,e))}catch(e){throw yd(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof P&&Lh(this._delegate,e)}set(e,t){t=sd("DocumentReference.set",t);try{return t?Wc(this._delegate,e,t):Wc(this._delegate,e)}catch(e){throw yd(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Yc(this._delegate,e):Yc(this._delegate,e,t,...r)}catch(e){throw yd(e,"updateDoc()","DocumentReference.update()")}}delete(){return Jc(F((e=this._delegate).firestore,U),[new Ki(e._key,O.none())]);var e}onSnapshot(...e){var t=vd(e),r=wd(e,e=>new _d(this.firestore,new zc(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Xc(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U),e=jh(r),n=new Hc(r);return hh(e,t._key).then(e=>new zc(r,n,t._key,e,new Kc(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U);return ch(jh(r),t._key,{source:"server"}).then(e=>Zc(r,t,e))}:t=>{t=F(t,P);let r=F(t.firestore,U);return ch(jh(r),t._key).then(e=>Zc(r,t,e))})(this._delegate)).then(e=>new _d(this.firestore,new zc(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new pd(this.firestore,e?this._delegate.withConverter(md.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function yd(e,t,r){return e.message=e.message.replace(t,r),e}function vd(e){for(var t of e)if("object"==typeof t&&!ud(t))return t;return{}}function wd(e,t){let r,n,i;return i=ud(e[0])?e[0]:ud(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{i.next&&i.next(t(e))},error:null==(r=i.error)?void 0:r.bind(i),complete:null==(n=i.complete)?void 0:n.bind(i)}}class _d{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new pd(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 $c(this._delegate,e._delegate)}}class bd extends _d{data(e){var t=this._delegate.data(e);return this._delegate._converter||void 0!==t||T(),t}}class Id{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new dd(e)}where(e,t,r){try{return new Id(this.firestore,Nc(this._delegate,(n=r,i=t,s=xc("where",e),kc._create(s,i,n))))}catch(e){throw yd(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new Id(this.firestore,Nc(this._delegate,([r,n="asc"]=[e,t],i=n,s=xc("orderBy",r),Rc._create(s,i))))}catch(e){throw yd(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new Id(this.firestore,Nc(this._delegate,(Eh("limit",t=e),Lc._create("limit",t,"F"))))}catch(e){throw yd(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new Id(this.firestore,Nc(this._delegate,(Eh("limitToLast",t=e),Lc._create("limitToLast",t,"L"))))}catch(e){throw yd(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new Id(this.firestore,Nc(this._delegate,([...t]=[...e],Mc._create("startAt",t,!0))))}catch(e){throw yd(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new Id(this.firestore,Nc(this._delegate,([...t]=[...e],Mc._create("startAfter",t,!1))))}catch(e){throw yd(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new Id(this.firestore,Nc(this._delegate,([...t]=[...e],Oc._create("endBefore",t,!1))))}catch(e){throw yd(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new Id(this.firestore,Nc(this._delegate,([...t]=[...e],Oc._create("endAt",t,!0))))}catch(e){throw yd(e,"endAt()","Query.endAt()")}var t}isEqual(e){return Mh(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,Dh);let r=F(t.firestore,U),e=jh(r),n=new Hc(r);return dh(e,t._query).then(e=>new Qc(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,Dh);let r=F(t.firestore,U),e=jh(r),n=new Hc(r);return fh(e,t._query,{source:"server"}).then(e=>new Qc(r,n,t,e))}:t=>{t=F(t,Dh);let r=F(t.firestore,U),e=jh(r),n=new Hc(r);return Ac(t._query),fh(e,t._query).then(e=>new Qc(r,n,t,e))})(this._delegate)).then(e=>new Ed(this.firestore,new Qc(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=vd(e),r=wd(e,e=>new Ed(this.firestore,new Qc(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Xc(this._delegate,t,r)}withConverter(e){return new Id(this.firestore,e?this._delegate.withConverter(md.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class Td{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new bd(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class Ed{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new Id(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 bd(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new Td(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new bd(this._firestore,e))})}isEqual(e){return $c(this._delegate,e._delegate)}}class Sd extends Id{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 pd(this.firestore,e):null}doc(e){try{return void 0===e?new pd(this.firestore,Rh(this._delegate)):new pd(this.firestore,Rh(this._delegate,e))}catch(e){throw yd(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=F(e.firestore,U),n=Rh(e),i=qc(e.converter,t);return Jc(r,[sc(ic(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,O.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new pd(this.firestore,e))}isEqual(e){return Lh(this._delegate,e._delegate)}withConverter(e){return new Sd(this.firestore,e?this._delegate.withConverter(md.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function xd(e){return F(e,P)}class Ad{static serverTimestamp(){var e=new lc("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Ad(e)}static delete(){var e=new ac("deleteField");return e._methodName="FieldValue.delete",new Ad(e)}static arrayUnion(...e){[...e]=[...e];var t=new uc("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Ad(t)}static arrayRemove(...e){[...e]=[...e];var t=new hc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Ad(t)}static increment(e){e=e;var t=new cc("increment",e);return t._methodName="FieldValue.increment",new Ad(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let Cd={Firestore:cd,GeoPoint:Yh,Timestamp:h,Blob:ld,Transaction:fd,WriteBatch:gd,DocumentReference:pd,DocumentSnapshot:_d,Query:Id,QueryDocumentSnapshot:bd,QuerySnapshot:Ed,CollectionReference:Sd,FieldPath:class Dd{constructor(...e){this._delegate=new Hh(...e)}static documentId(){return new Dd(v.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof Hh&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Ad,setLogLevel:function(e){e=e,de.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=i.default,qh=(e,t)=>new cd(e,t,new hd),t.INTERNAL.registerComponent(new te("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return qh(t,r)},"PUBLIC").setServiceProps(Object.assign({},Cd))),t.registerVersion("@firebase/firestore-compat","0.3.43")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}});
9
9
  //# sourceMappingURL=firebase-firestore-compat.js.map