element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

4732.js (397312B)


      1 /*! For license information please see 4732.js.LICENSE.txt */
      2 (self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[4732],{"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/membership.ts"(e,t,n){"use strict";n.d(t,{O:()=>r});let r=function(e){return e.Ban="ban",e.Invite="invite",e.Join="join",e.Knock="knock",e.Leave="leave",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/read_receipts.ts"(e,t,n){"use strict";n.d(t,{L:()=>r,S:()=>s});let r=function(e){return e.Read="m.read",e.FullyRead="m.fully_read",e.ReadPrivate="m.read.private",e}({});const s="main"},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/requests.ts"(e,t,n){"use strict";function r(e){return(!("parent_delay_id"in e)||"string"==typeof e.parent_delay_id)&&("delay"in e&&"number"!=typeof e.delay||("delay"in e||"parent_delay_id"in e))}n.d(t,{U:()=>r,e:()=>s});let s=function(e){return e.Cancel="cancel",e.Restart="restart",e.Send="send",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/search.ts"(e,t,n){"use strict";n.d(t,{g:()=>r});let r=function(e){return e.Recent="recent",e.Rank="rank",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/NamespacedValue.ts"(e,t,n){"use strict";n.d(t,{M6:()=>i,qr:()=>o,xu:()=>s});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(e,t){if(this.stable=e,this.unstable=t,!this.unstable&&!this.stable)throw new Error("One of stable or unstable values must be supplied")}get name(){return this.stable?this.stable:this.unstable}get altName(){return this.stable?this.unstable:null}get names(){const e=[this.name],t=this.altName;return t&&e.push(t),e}matches(e){return this.name===e||this.altName===e}findIn(e){let t;return this.name&&(t=null==e?void 0:e[this.name]),!t&&this.altName&&(t=null==e?void 0:e[this.altName]),t}includedIn(e){let t=!1;return this.name&&(t=e.includes(this.name)),!t&&this.altName&&(t=e.includes(this.altName)),t}}class i extends s{constructor(...e){super(...e),(0,r.A)(this,"preferUnstable",!1)}setPreferUnstable(e){this.preferUnstable=e}get name(){return this.stable&&!this.preferUnstable?this.stable:this.unstable}}class o extends s{constructor(e,t){if(super(e,t),!this.unstable)throw new Error("Unstable value must be supplied")}get name(){return this.unstable}get altName(){return this.stable}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/ReEmitter.ts"(e,t,n){"use strict";n.d(t,{K:()=>s,Q:()=>i});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(e){(0,r.A)(this,"reEmitters",new WeakMap),this.target=e}reEmit(e,t){let n=this.reEmitters.get(e);n||(n=new Map,this.reEmitters.set(e,n));for(const r of t){if(n.has(r))continue;const t=(...t)=>{"error"===r&&0===this.target.listenerCount("error")||this.target.emit(r,...t,e)};e.on(r,t),n.set(r,t)}}stopReEmitting(e,t){const n=this.reEmitters.get(e);if(n){for(const r of t)e.off(r,n.get(r)),n.delete(r);0===n.size&&this.reEmitters.delete(e)}}}class i extends s{constructor(e){super(e)}reEmit(e,t){super.reEmit(e,t)}stopReEmitting(e,t){super.stopReEmitting(e,t)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/ToDeviceMessageQueue.ts"(e,t,n){"use strict";n.d(t,{k:()=>l});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/scheduler.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sync.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts");class l{constructor(e,t){(0,r.A)(this,"sending",!1),(0,r.A)(this,"running",!0),(0,r.A)(this,"retryTimeout",null),(0,r.A)(this,"retryAttempts",0),(0,r.A)(this,"sendQueue",async()=>{if(null!==this.retryTimeout&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.sending||!this.running)return;let e;this.logger.debug("Attempting to send queued to-device messages"),this.sending=!0;try{for(;this.running&&(e=await this.client.store.getOldestToDeviceBatch(),null!==e);)await this.sendBatch(e),await this.client.store.removeToDeviceBatch(e.id),this.retryAttempts=0;if(!this.running)return;this.logger.debug("All queued to-device messages sent")}catch(t){++this.retryAttempts;const n=o.b.RETRY_BACKOFF_RATELIMIT(null,this.retryAttempts,t);if(-1===n)return void(4===Math.floor(t.httpStatus/100)?(this.logger.error("Fatal error when sending to-device message - dropping to-device batch!",t),await this.client.store.removeToDeviceBatch(e.id)):this.logger.info("Automatic retry limit reached for to-device messages."));this.logger.info(`Failed to send batch of to-device messages. Will retry in ${n}ms`,t),this.retryTimeout=setTimeout(this.sendQueue,n)}finally{this.sending=!1}}),(0,r.A)(this,"onResumedSync",(e,t)=>{e===a.Lm.Syncing&&t!==a.Lm.Syncing&&(this.logger.info("Resuming queue after resumed sync"),this.sendQueue())}),this.client=e,this.logger=t}start(){this.running=!0,this.sendQueue(),this.client.on(i.AU.Sync,this.onResumedSync)}stop(){this.running=!1,null!==this.retryTimeout&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.client.removeListener(i.AU.Sync,this.onResumedSync)}async queueBatch(e){const t=[];for(let n=0;n<e.batch.length;n+=20){const r={eventType:e.eventType,batch:e.batch.slice(n,n+20),txnId:this.client.makeTxnId()};t.push(r);const i=r.batch.map(e=>`${e.userId}/${e.deviceId} (msgid ${e.payload[s.wt]})`);this.logger.info(`Enqueuing batch of to-device messages. type=${e.eventType} txnid=${r.txnId}`,i)}await this.client.store.saveToDeviceBatches(t),this.sendQueue()}async sendBatch(e){const t=new d.kG(()=>new Map);for(const n of e.batch)t.getOrCreate(n.userId).set(n.deviceId,n.payload);this.logger.info(`Sending batch of ${e.batch.length} to-device messages with ID ${e.id} and txnId ${e.txnId}`),await this.client.sendToDevice(e.eventType,t,e.txnId)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/base64.ts"(e,t,n){"use strict";function r(e,t){if("function"==typeof e.toBase64)return e.toBase64(t);let n=btoa(e.reduce((e,t)=>e+String.fromCharCode(t),""));return t.omitPadding&&(n=n.replace(/={1,2}$/,"")),"base64url"===t.alphabet&&(n=n.replace(/\+/g,"-").replace(/\//g,"_")),n}function s(e){return r(e,{alphabet:"base64",omitPadding:!1})}function i(e){return r(e,{alphabet:"base64",omitPadding:!0})}function o(e){return r(e,{alphabet:"base64url",omitPadding:!0})}function a(e){return function(e,t){return"function"==typeof Uint8Array.fromBase64?Uint8Array.fromBase64(e,t):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}(e.replace(/-/g,"+").replace(/_/g,"/"),{alphabet:"base64",lastChunkHandling:"loose"})}n.d(t,{A4:()=>o,PP:()=>i,WG:()=>s,y4:()=>a})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/capabilityPoller.ts"(e,t,n){"use strict";n.d(t,{N:()=>o});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts");class o extends s.X{constructor(e,t,n){super(),(0,r.A)(this,"cached",void 0),(0,r.A)(this,"retryTimeout",void 0),(0,r.A)(this,"refreshTimeout",void 0),(0,r.A)(this,"poll",async()=>{this.logger.debug("Checking capabilites");try{const e=this.cached;await this.fetch(),this.clearTimeouts(),this.refreshTimeout=globalThis.setTimeout(this.poll,216e5),this.logger.debug(`Fetched new server ${this.name}`),this.cached&&!(0,i.ky)(e,this.cached)&&this.emit("update",this.cached)}catch(e){this.clearTimeouts();const t=Math.floor(3e4+5e3*Math.random());this.retryTimeout=globalThis.setTimeout(this.poll,t),this.logger.warn(`Failed to refresh ${this.name}: retrying in ${t}ms`,e)}}),this.logger=e,this.http=t,this.name=n}start(){this.poll().then()}stop(){this.clearTimeouts()}getCached(){return this.cached}clearTimeouts(){this.refreshTimeout&&(clearInterval(this.refreshTimeout),this.refreshTimeout=void 0),this.retryTimeout&&(clearTimeout(this.retryTimeout),this.retryTimeout=void 0)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/common-crypto/CryptoBackend.ts"(e,t,n){"use strict";n.d(t,{O:()=>s});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s extends Error{constructor(e,t,n){super(t),(0,r.A)(this,"detailedString",void 0),this.code=e,this.name="DecryptionError",this.detailedString=function(e,t){let n=e.name+"[msg: "+e.message;t&&(n+=", "+Object.keys(t).map(e=>e+": "+t[e]).join(", "));return n+="]",n}(this,n)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/content-repo.ts"(e,t,n){"use strict";n.d(t,{y:()=>i});const r=/^(?:(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|(?:\[[\dA-Fa-f:.]{2,45}])|(?:[A-Za-z\d\-.]{1,255}))(?::\d{1,5})?$/;const s=/^[\w-]+$/;function i(e,t,n,i,o,a=!1,d,l,c){if("string"!=typeof t||!t)return"";if(!t.startsWith("mxc://"))return a?t:"";const[u,m,...p]=t.slice(6).split("/");if(p.length>0||!function(e){const t=r.exec(e);return(null==t?void 0:t[0])===e}(u)||!function(e){const t=s.exec(e);return(null==t?void 0:t[0])===e}(m))return"";let h;l&&(d=!0);const g=!!n||!!i||!!o?"thumbnail":"download";h=l?`/_matrix/client/v1/media/${g}`:`/_matrix/media/v3/${g}`;const f=new URL(`${h}/${u}/${m}`,e);return n&&f.searchParams.set("width",Math.round(n).toString()),i&&f.searchParams.set("height",Math.round(i).toString()),o&&f.searchParams.set("method",o),void 0!==c&&f.searchParams.set("animated",String(c)),"boolean"==typeof d&&f.searchParams.set("allow_redirect",JSON.stringify(d)),f.href}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/crypto-api/CryptoEvent.ts"(e,t,n){"use strict";n.d(t,{c:()=>r});let r=function(e){return e.UserTrustStatusChanged="userTrustStatusChanged",e.KeyBackupStatus="crypto.keyBackupStatus",e.KeyBackupFailed="crypto.keyBackupFailed",e.KeyBackupSessionsRemaining="crypto.keyBackupSessionsRemaining",e.KeyBackupDecryptionKeyCached="crypto.keyBackupDecryptionKeyCached",e.VerificationRequestReceived="crypto.verificationRequestReceived",e.WillUpdateDevices="crypto.willUpdateDevices",e.DevicesUpdated="crypto.devicesUpdated",e.KeysChanged="crossSigning.keysChanged",e.LegacyCryptoStoreMigrationProgress="crypto.legacyCryptoStoreMigrationProgress",e.DehydratedDeviceCreated="dehydration.DehydratedDeviceCreated",e.DehydratedDeviceUploaded="dehydration.DehydratedDeviceUploaded",e.RehydrationStarted="dehydration.RehydrationStarted",e.RehydrationProgress="dehydration.RehydrationProgress",e.RehydrationCompleted="dehydration.RehydrationCompleted",e.RehydrationError="dehydration.RehydrationError",e.DehydrationKeyCached="dehydration.DehydrationKeyCached",e.DehydratedDeviceRotationError="dehydration.DehydratedDeviceRotationError",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/crypto-api/key-passphrase.ts"(e,t,n){"use strict";n.d(t,{w:()=>r});async function r(e,t,n,r=256){if(!globalThis.crypto.subtle||!TextEncoder)throw new Error("Password-based backup is not available on this platform");const s=await globalThis.crypto.subtle.importKey("raw",(new TextEncoder).encode(e),{name:"PBKDF2"},!1,["deriveBits"]),i=await globalThis.crypto.subtle.deriveBits({name:"PBKDF2",salt:(new TextEncoder).encode(t),iterations:n,hash:"SHA-512"},s,r);return new Uint8Array(i)}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/digest.ts"(e,t,n){"use strict";async function r(e){if(!globalThis.crypto.subtle)throw new Error("Crypto.subtle is not available: insecure context?");const t=(new TextEncoder).encode(e),n=await globalThis.crypto.subtle.digest("SHA-256",t);return new Uint8Array(n)}n.d(t,{s:()=>r})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/event-mapper.ts"(e,t,n){"use strict";n.d(t,{t:()=>d});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts");function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function d(e,t){let n=Boolean(t.preventReEmit);const r=!1!==t.decrypt;return function t(o){const d=e.getRoom(o.room_id);let l;d&&void 0===o.state_key&&(l=d.findEventById(o.event_id)),!l||l.status?l=new s.kl(o):(l.setUnsigned(a(a({},l.getUnsigned()),o.unsigned)),n=!0);const c=l.getServerAggregatedRelation(i.zZ.Replace);if(null!=c&&c.content){const e=t(c);l.makeReplaced(e)}const u=null==d?void 0:d.findThreadForEvent(l);return u&&l.setThread(u),l.isEncrypted()&&(n||e.reEmitter.reEmit(l,[s.OQ.Decrypted]),r&&e.decryptEventIfNeeded(l)),n||(e.reEmitter.reEmit(l,[s.OQ.Replaced,s.OQ.VisibilityChange]),null==d||d.reEmitter.reEmit(l,[s.OQ.BeforeRedaction])),l}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/feature.ts"(e,t,n){"use strict";n.d(t,{Tj:()=>r,Xj:()=>s,yk:()=>o});let r=function(e){return e[e.Stable=0]="Stable",e[e.Unstable=1]="Unstable",e[e.Unsupported=2]="Unsupported",e}({}),s=function(e){return e.Thread="Thread",e.ThreadUnreadNotifications="ThreadUnreadNotifications",e.LoginTokenRequest="LoginTokenRequest",e.RelationBasedRedactions="RelationBasedRedactions",e.AccountDataDeletion="AccountDataDeletion",e.RelationsRecursion="RelationsRecursion",e.IntentionalMentions="IntentionalMentions",e}({});const i={[s.Thread]:{unstablePrefixes:["org.matrix.msc3440"],matrixVersion:"v1.3"},[s.ThreadUnreadNotifications]:{unstablePrefixes:["org.matrix.msc3771","org.matrix.msc3773"],matrixVersion:"v1.4"},[s.LoginTokenRequest]:{unstablePrefixes:["org.matrix.msc3882"]},[s.RelationBasedRedactions]:{unstablePrefixes:["org.matrix.msc3912"]},[s.AccountDataDeletion]:{unstablePrefixes:["org.matrix.msc3391"]},[s.RelationsRecursion]:{unstablePrefixes:["org.matrix.msc3981"],matrixVersion:"v1.10"},[s.IntentionalMentions]:{unstablePrefixes:["org.matrix.msc3952_intentional_mentions"],matrixVersion:"v1.7"}};async function o(e){const t=new Map;for(const[d,l]of Object.entries(i)){var n,s,o,a;const i=null!==(n=null===(s=e.versions)||void 0===s?void 0:s.includes(l.matrixVersion||""))&&void 0!==n&&n,c=null!==(o=null===(a=l.unstablePrefixes)||void 0===a?void 0:a.every(t=>{var n;return!0===(null===(n=e.unstable_features)||void 0===n?void 0:n[t])}))&&void 0!==o&&o;i?t.set(d,r.Stable):c?t.set(d,r.Unstable):t.set(d,r.Unsupported)}return t}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/filter-component.ts"(e,t,n){"use strict";n.d(t,{i:()=>s});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/thread.ts");class s{constructor(e,t){this.filterJson=e,this.userId=t}check(e){var t,n;const s=(null===(t=e.getUnsigned())||void 0===t?void 0:t["m.relations"])||{},i=Object.keys(s),o=[];return this.userId&&null!=s&&null!==(n=s[r.RN.name])&&void 0!==n&&n.current_user_participated&&o.push(this.userId),this.checkFields(e.getRoomId(),e.getSender(),e.getType(),!!e.getContent()&&void 0!==e.getContent().url,i,o)}toJSON(){return Object.fromEntries(Object.entries({types:this.filterJson.types,not_types:this.filterJson.not_types,rooms:this.filterJson.rooms,not_rooms:this.filterJson.not_rooms,senders:this.filterJson.senders,not_senders:this.filterJson.not_senders,contains_url:this.filterJson.contains_url,[r.o1.name]:this.filterJson[r.o1.name],[r.H.name]:this.filterJson[r.H.name]}).filter(([e,t])=>t))}checkFields(e,t,n,s,i,o){const a={rooms:function(t){return e===t},senders:function(e){return t===e},types:function(e){return function(e,t){if(t.endsWith("*")){const n=t.slice(0,-1);return e.slice(0,n.length)===n}return e===t}(n,e)}};for(const e in a){const t=a[e],n="not_"+e,r=this.filterJson[n];if(null!=r&&r.some(t))return!1;const s=this.filterJson[e];if(s&&!s.some(t))return!1}const d=this.filterJson.contains_url;if(void 0!==d&&d!==s)return!1;const l=this.filterJson[r.H.name];if(void 0!==l&&!this.arrayMatchesFilter(l,i))return!1;const c=this.filterJson[r.o1.name];return!(void 0!==c&&!this.arrayMatchesFilter(c,o))}arrayMatchesFilter(e,t){return t.length>0&&e.every(e=>t.includes(e))}filter(e){return e.filter(this.check,this)}limit(){return void 0!==this.filterJson.limit?this.filterJson.limit:10}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/errors.ts"(e,t,n){"use strict";n.d(t,{DW:()=>m,FS:()=>u,Hl:()=>a,Rc:()=>c,Vc:()=>p,a_:()=>h,eM:()=>l,up:()=>d});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/NamespacedValue.ts");function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class a extends Error{constructor(e,t,n){super(e),this.httpStatus=t,this.httpHeaders=n}isRateLimitError(){return 429===this.httpStatus}getRetryAfterMs(){var e;const t=null===(e=this.httpHeaders)||void 0===e?void 0:e.get("Retry-After");if(null!=t){if(/^\d+$/.test(t)){const e=1e3*Number.parseInt(t);if(!Number.isFinite(e))throw new Error("Retry-After header integer value is too large");return e}const e=new Date(t);if(e.toUTCString()!==t)throw new Error("Retry-After header value is not a valid HTTP-date or non-negative decimal integer");return e.getTime()-Date.now()}return null}}class d extends a{constructor(e={},t,n,s,i){let o=e.error||"Unknown message";t&&(o=`[${t}] ${o}`),n&&(o=`${o} (${n})`),super(`MatrixError: ${o}`,t,i),(0,r.A)(this,"errcode",void 0),(0,r.A)(this,"error",void 0),(0,r.A)(this,"data",void 0),this.url=n,this.event=s,this.errcode=e.errcode,this.error=e.error,this.name=e.errcode||"Unknown error code",this.data=e}isRateLimitError(){return"M_LIMIT_EXCEEDED"===this.errcode||("M_UNKNOWN"===this.errcode||void 0===this.errcode)&&super.isRateLimitError()}getRetryAfterMs(){const e=super.getRetryAfterMs();if(null!==e)return e;if("M_LIMIT_EXCEEDED"===this.errcode&&"retry_after_ms"in this.data){if(!Number.isInteger(this.data.retry_after_ms))throw new Error("retry_after_ms is not an integer");return this.data.retry_after_ms}return null}asWidgetApiErrorData(){var e,t,n,r;const s={};if(this.httpHeaders)for(const[e,t]of this.httpHeaders)s[e]=t;return{http_status:null!==(e=this.httpStatus)&&void 0!==e?e:400,http_headers:s,url:null!==(t=this.url)&&void 0!==t?t:"",response:o({errcode:null!==(n=this.errcode)&&void 0!==n?n:"M_UNKNOWN",error:null!==(r=this.data.error)&&void 0!==r?r:"Unknown message"},this.data)}}static fromWidgetApiErrorData(e){return new d(e.response,e.http_status,e.url,void 0,new Headers(e.http_headers))}}function l(e,t){if(!(e instanceof a&&e.isRateLimitError()))return t;try{var n;return null!==(n=e.getRetryAfterMs())&&void 0!==n?n:t}catch{return t}}class c extends Error{constructor(e,t){super(e+(t?`: ${t.message}`:""))}get name(){return"ConnectionError"}}class u extends Error{constructor(e){var t;super(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"")}get name(){return"TokenRefreshError"}}class m extends Error{constructor(e){var t;super(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"")}get name(){return"TokenRefreshLogoutError"}}const p=new s.xu(null,"ORG.MATRIX.MSC4387_SAFETY");class h extends d{constructor(...e){super(...e),(0,r.A)(this,"harms",void 0),(0,r.A)(this,"expiry",void 0);const t=e[0];this.harms=new Set(t&&"harms"in t&&Array.isArray(t.harms)?t.harms:[]),this.message=`${super.message} (${[...this.harms].join(", ")})`,t&&"expiry"in t&&"number"==typeof t.expiry&&(this.expiry=new Date(t.expiry))}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/fetch.ts"(e,t,n){"use strict";n.d(t,{H:()=>p});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/method.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/errors.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/interface.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/utils.ts");let l=function(e){return e.Success="success",e.Failure="failure",e.Logout="logout",e}({});class c{constructor(e){(0,r.A)(this,"tokenRefreshPromise",void 0),(0,r.A)(this,"latestTokenRefreshExpiry",void 0),this.opts=e}async prepareForRequest(){return await this.refreshIfNeeded(),{accessToken:this.opts.accessToken,refreshToken:this.opts.refreshToken,expiry:this.latestTokenRefreshExpiry}}async refreshIfNeeded(){if(this.tokenRefreshPromise)return this.tokenRefreshPromise;if(!this.latestTokenRefreshExpiry)return;this.latestTokenRefreshExpiry.getTime()-Date.now()<=500&&await this._handleUnknownToken()}async handleUnknownToken(e,t){return this._handleUnknownToken(e,t)}async _handleUnknownToken(e,t){if(null!=e&&e.expiry){if(e.expiry.getTime()-Date.now()>=6e4)return l.Logout}if(!e||(null==e?void 0:e.accessToken)===this.opts.accessToken){var n;null!==(n=this.tokenRefreshPromise)&&void 0!==n||(this.tokenRefreshPromise=this.doTokenRefresh(t));try{return await this.tokenRefreshPromise}finally{this.tokenRefreshPromise=void 0}}return l.Success}async doTokenRefresh(e){var t;if(!this.opts.refreshToken||!this.opts.tokenRefreshFunction)return null===(t=this.opts.logger)||void 0===t||t.error("Unable to refresh token - no refresh token or refresh function"),l.Logout;e&&e>1&&await(0,s.yy)(1e3*Math.min(32,2**e));try{var n,r;null===(n=this.opts.logger)||void 0===n||n.debug("Attempting to refresh token");const{accessToken:e,refreshToken:t,expiry:s}=await this.opts.tokenRefreshFunction(this.opts.refreshToken);return this.opts.accessToken=e,this.opts.refreshToken=t,this.latestTokenRefreshExpiry=s,null===(r=this.opts.logger)||void 0===r||r.debug("... token refresh complete, new token expiry:",s),l.Success}catch(e){var i,a;return e instanceof o.DW||e instanceof o.up?(null===(a=this.opts.logger)||void 0===a||a.error("Failed to refresh token",e),l.Logout):(null===(i=this.opts.logger)||void 0===i||i.warn("Failed to refresh token",e),l.Failure)}}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class p{constructor(e,t){var n;if((0,r.A)(this,"abortController",new AbortController),(0,r.A)(this,"tokenRefresher",void 0),this.eventEmitter=e,this.opts=t,(0,s.UB)(t,["baseUrl","prefix"]),!t.onlyData)throw new Error("Constructing FetchHttpApi without `onlyData=true` is no longer supported.");t.useAuthorizationHeader=null===(n=t.useAuthorizationHeader)||void 0===n||n,this.tokenRefresher=new c(t)}abort(){this.abortController.abort(),this.abortController=new AbortController}fetch(e,t){return this.opts.fetchFn?this.opts.fetchFn(e,t):globalThis.fetch(e,t)}setIdBaseUrl(e){this.opts.idBaseUrl=e}idServerRequest(e,t,n,r,s){if(!this.opts.idBaseUrl)throw new Error("No identity server base URL set");let o,a;e===i.I.Get?o=n:a=n;const d=this.getUrl(t,o,r,this.opts.idBaseUrl),l={json:!0,headers:{}};return s&&(l.headers.Authorization=`Bearer ${s}`),this.requestOtherUrl(e,d,a,l)}authedRequest(e,t,n={},r,s={}){return this.doAuthedRequest(1,e,t,n,r,s)}async doAuthedRequest(e,t,n,r,i,d={}){const c=(0,s.A4)(d);c.abortSignal=d.abortSignal;const u=await this.tokenRefresher.prepareForRequest();u.accessToken&&(this.opts.useAuthorizationHeader?(c.headers||(c.headers={}),c.headers.Authorization||(c.headers.Authorization=`Bearer ${u.accessToken}`),r.access_token&&delete r.access_token):r.access_token||(r.access_token=u.accessToken));try{return await this.request(t,n,r,i,c)}catch(s){if(!(s instanceof o.up))throw s;if("M_UNKNOWN_TOKEN"===s.errcode){const m=await this.tokenRefresher.handleUnknownToken(u,e);if(m===l.Success)return this.doAuthedRequest(e+1,t,n,r,i,d);if(m===l.Failure)throw new o.FS(s);null!=c&&c.inhibitLogoutEmit||this.eventEmitter.emit(a.X.SessionLoggedOut,s)}else"M_CONSENT_NOT_GIVEN"==s.errcode&&this.eventEmitter.emit(a.X.NoConsent,s.message,s.data.consent_uri);throw s}}request(e,t,n,r,s){const i=this.getUrl(t,n,null==s?void 0:s.prefix,null==s?void 0:s.baseUrl);return this.requestOtherUrl(e,i,r,s)}async requestOtherUrl(e,t,n,r={}){var s,i,a,l;if(void 0!==r.json&&void 0!==r.rawResponseBody)throw new Error("Invalid call to `FetchHttpApi` sets both `opts.json` and `opts.rawResponseBody`");const c=this.sanitizeUrlForLogs(t);null===(s=this.opts.logger)||void 0===s||s.debug(`FetchHttpApi: --\x3e ${e} ${c}`);const u=Object.assign({},r.headers||{}),m=!r.rawResponseBody&&!1!==r.json;m&&(u.Accept||(u.Accept="application/json"));const p=null!==(i=r.localTimeoutMs)&&void 0!==i?i:this.opts.localTimeoutMs,h=null!==(a=r.keepAlive)&&void 0!==a&&a,g=[this.abortController.signal];let f;void 0!==p&&g.push((0,d._)(p)),r.abortSignal&&g.push(r.abortSignal),!1!==r.json&&(null==n||null===(l=n.constructor)||void 0===l?void 0:l.name)===Object.name?(f=JSON.stringify(n),u["Content-Type"]||(u["Content-Type"]="application/json")):f=n;const{signal:v,cleanup:y}=(0,d.JG)(g),_="Authorization"in u?void 0:"no-cache";let b;const w=Date.now();try{var k;b=await this.fetch(t,{signal:v,method:e,body:f,headers:u,mode:"cors",redirect:"follow",referrer:"",referrerPolicy:"no-referrer",cache:_,credentials:"omit",keepalive:h,priority:r.priority}),null===(k=this.opts.logger)||void 0===k||k.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-w}ms ${b.status}]`)}catch(t){var S;if(null===(S=this.opts.logger)||void 0===S||S.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-w}ms ${t}]`),"AbortError"===t.name)throw t;throw new o.Rc("fetch failed",t)}finally{y()}if(!b.ok)throw(0,d.xy)(b,await b.text());return r.rawResponseBody?await b.blob():m?await b.json():await b.text()}sanitizeUrlForLogs(e){try{let t;t="string"==typeof e?new URL(e):e;const n=new URLSearchParams;for(const e of t.searchParams.keys())n.append(e,"xxx");const r=n.toString(),s=r?`?${r}`:"";return t.origin+t.pathname+s}catch{return"??"}}getUrl(e,t,n,r){const i=null!=r?r:this.opts.baseUrl,o=i.endsWith("/")?i.slice(0,-1):i,a=new URL(o+(null!=n?n:this.opts.prefix)+e);if(this.opts.extraParams||t){const e=m(m({},this.opts.extraParams),t);(0,s.hm)(e,a.searchParams)}return a}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/interface.ts"(e,t,n){"use strict";n.d(t,{X:()=>r});let r=function(e){return e.SessionLoggedOut="Session.logged_out",e.NoConsent="no_consent",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/method.ts"(e,t,n){"use strict";n.d(t,{I:()=>r});let r=function(e){return e.Get="GET",e.Put="PUT",e.Post="POST",e.Delete="DELETE",e.Options="OPTIONS",e.Head="HEAD",e.Patch="PATCH",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/prefix.ts"(e,t,n){"use strict";n.d(t,{Pw:()=>s,iD:()=>r,zs:()=>i});let r=function(e){return e.V1="/_matrix/client/v1",e.V3="/_matrix/client/v3",e.Unstable="/_matrix/client/unstable",e}({}),s=function(e){return e.V2="/_matrix/identity/v2",e}({}),i=function(e){return e.V1="/_matrix/media/v1",e.V3="/_matrix/media/v3",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/utils.ts"(e,t,n){"use strict";n.d(t,{JG:()=>d,Y6:()=>u,_:()=>a,fZ:()=>m,xy:()=>l});var r=n("../../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/errors.ts");function a(e){const t=new AbortController;return setTimeout(()=>{t.abort()},e),t.signal}function d(e){const t=new AbortController;function n(){for(const t of e)t.removeEventListener("abort",r)}function r(){t.abort(),n()}for(const t of e){if(t.aborted){r();break}t.addEventListener("abort",r)}return{signal:t.signal,cleanup:n}}function l(e,t){var n,s;const i=c(e)?new Headers(e.getAllResponseHeaders().trim().split(/[\r\n]+/).map(e=>{const t=e.indexOf(":");return[e.substring(0,t),e.substring(t+1)]})):e.headers;let a;try{a=function(e){const t=e.get("Content-Type");return null===t?null:(0,r.qg)(t)}(i)}catch(e){return e}if("application/json"===(null===(n=a)||void 0===n?void 0:n.type)&&t){const n=JSON.parse(t);return n.errcode&&o.Vc.matches(n.errcode)?new o.a_(n,e.status,c(e)?e.responseURL:e.url,void 0,i):new o.up(n,e.status,c(e)?e.responseURL:e.url,void 0,i)}return"text/plain"===(null===(s=a)||void 0===s?void 0:s.type)?new o.Hl(`Server returned ${e.status} error: ${t}`,e.status,i):new o.Hl(`Server returned ${e.status} error`,e.status,i)}function c(e){return"getResponseHeader"in e}async function u(e,t){let n=0,r=null;for(;n<e;)try{if(n>0){const e=1e3*Math.pow(2,n);s.vF.log(`network operation failed ${n} times, retrying in ${e}ms...`),await(0,i.yy)(e)}return await t()}catch(e){if(!(e instanceof o.Rc))throw e;n+=1,r=e}throw r}function m(e,t,n){return t>4||e instanceof o.Rc&&!n||e.httpStatus&&4===Math.floor(e.httpStatus/100)&&429!==e.httpStatus||"AbortError"===e.name||"M_TOO_LARGE"===e.name?-1:(0,o.eM)(e,1e3*Math.pow(2,t))}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/indexeddb-helpers.ts"(e,t,n){"use strict";function r(e,t){return new Promise((n,r)=>{let s=!0;const i=e.open(t);i.onupgradeneeded=()=>{s=!1},i.onblocked=()=>r(i.error),i.onsuccess=()=>{i.result.close(),s||e.deleteDatabase(t),n(s)},i.onerror=()=>r(i.error)})}n.d(t,{t:()=>r})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/EncryptionManager.ts"(e,t,n){"use strict";function r(e){return`${e.userId}:${e.deviceId}(${e.memberId})`}n.d(t,{_:()=>r})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"(e,t,n){"use strict";n.d(t,{u:()=>r});let r=function(e){return e.ReceivedKeys="received_keys",e.NotSupportedError="not_supported_error",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/IMembershipManager.ts"(e,t,n){"use strict";n.d(t,{e:()=>r});let r=function(e){return e.StatusChanged="StatusChanged",e.ProbablyLeft="ProbablyLeft",e.DelayIdChanged="DelayIdChanged",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/MembershipManager.ts"(e,t,n){"use strict";n.d(t,{T6:()=>b,Wm:()=>S,fT:()=>E});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/p-retry@8.0.0/node_modules/p-retry/index.js"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/errors.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/CallMembership.ts");let l=function(e){return e.Disconnected="Disconnected",e.Connecting="Connecting",e.Connected="Connected",e.Disconnecting="Disconnecting",e.Unknown="Unknown",e}({});var c=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts");class u{constructor(e,t){(0,r.A)(this,"logger",void 0),(0,r.A)(this,"running",!1),(0,r.A)(this,"wakeup",e=>{this.logger.error("Cannot call wakeup before calling `startWithJoin()`")}),(0,r.A)(this,"_actions",[]),this.membershipLoopHandler=e,this.logger=(null!=t?t:a.vF).getChild("[NewMembershipActionScheduler]")}get actions(){return this._actions}async startWithJoin(){if(this.running)this.logger.error("Cannot call startWithJoin() on NewMembershipActionScheduler while already running");else{this.running=!0,this._actions=[{ts:Date.now(),type:b.SendDelayedEvent}];try{for(;this._actions.length>0;){this._actions.sort((e,t)=>e.ts-t.ts);const e=this._actions[0];let t;const n=new Promise(e=>{this.wakeup=n=>{t=n,e()}});e.ts>Date.now()&&await Promise.race([n,(0,c.yy)(e.ts-Date.now())]);let r={};if(!t){this.logger.debug(`Current MembershipManager processing: ${e.type}\nQueue:`,this._actions,`\nDate.now: "${Date.now()}`);try{r=await this.membershipLoopHandler(e.type)}catch(e){throw new Error(`The MembershipManager shut down because of the end condition: ${e}`,{cause:e})}}this._actions.splice(0,1);const s=null!=t?t:r;"replace"in s?this._actions=s.replace:"insert"in s&&this._actions.push(...s.insert)}}finally{this.running=!1}this.logger.debug("Leave MembershipManager ActionScheduler loop (no more actions)")}}initiateJoin(){var e;null===(e=this.wakeup)||void 0===e||e.call(this,{replace:[{ts:Date.now(),type:b.SendDelayedEvent}]})}initiateLeave(){var e;null===(e=this.wakeup)||void 0===e||e.call(this,{replace:[{ts:Date.now(),type:b.SendScheduledDelayedLeaveEvent}]})}}var m=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),p=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/errors.ts"),h=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/IMembershipManager.ts"),g=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/utils.ts");const f=e=>"livekit"===e.type&&"livekit_service_url"in e;function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const _=36e5;let b=function(e){return e.SendDelayedEvent="SendDelayedEvent",e.SendJoinEvent="SendJoinEvent",e.RestartDelayedEvent="RestartDelayedEvent",e.UpdateExpiry="UpdateExpiry",e.SendScheduledDelayedLeaveEvent="SendScheduledDelayedLeaveEvent",e.SendLeaveEvent="SendLeaveEvent",e}({});function w(e,t){return{insert:[{ts:Date.now()+(null!=t?t:0),type:e}]}}function k(e,t){return{replace:[{ts:Date.now()+(null!=t?t:0),type:e}]}}class S extends m.X{isActivated(){return this.activated}isJoined(){return this.isActivated()}join(e,t,n){this.scheduler.running?this.logger.error("MembershipManager is already running. Ignoring join request."):(this.fociPreferred=e,this.rtcTransport=t,this.leavePromiseResolvers=void 0,this.activated=!0,this.oldStatus=this.status,this.state=S.defaultState,this.scheduler.startWithJoin().catch(e=>{this.logger.error("MembershipManager stopped because: ",e),null==n||n(e)}).finally(()=>{var e;(this.activated=!1,this.oldStatus&&this.oldStatus!==this.status&&this.emit(h.e.StatusChanged,this.oldStatus,this.status),this.scheduler.running)||(null===(e=this.leavePromiseResolvers)||void 0===e||e.resolve(!0),this.leavePromiseResolvers=void 0)}))}leave(e){return this.scheduler.running?(this.leavePromiseResolvers||(this.leavePromiseResolvers=Promise.withResolvers(),this.activated=!1,this.scheduler.initiateLeave(),e&&setTimeout(()=>{var e;return null===(e=this.leavePromiseResolvers)||void 0===e?void 0:e.resolve(!1)},e)),this.leavePromiseResolvers.promise):(this.logger.warn("Called MembershipManager.leave() even though the MembershipManager is not running"),Promise.resolve(!0))}onRTCSessionMemberUpdate(e){if(!this.isActivated())return Promise.resolve();if(this._ownMembership=e.find(e=>((e,t,n)=>e.sender===t&&e.deviceId===n)(e,this.userId,this.deviceId)),!this._ownMembership){const e=[b.SendDelayedEvent,b.SendJoinEvent];this.logger.warn("Missing own membership: force re-join"),this.state.hasMemberStateEvent=!1,this.scheduler.actions.some(t=>e.includes(t.type))?this.logger.error("tried adding another `SendDelayedEvent` actions even though we already have one in the Queue\nActionQueueOnMemberUpdate:",this.scheduler.actions):this.scheduler.initiateJoin()}return Promise.resolve()}async updateCallIntent(e){if(!this.activated||!this.ownMembership)throw Error("You cannot update your intent before joining the call");this.ownMembership.callIntent!==e&&(this.callIntent=e,await this.sendJoinEvent())}constructor(e,t,n,s,o){super(),(0,r.A)(this,"activated",!1),(0,r.A)(this,"logger",void 0),(0,r.A)(this,"callIntent",void 0),(0,r.A)(this,"leavePromiseResolvers",void 0),(0,r.A)(this,"_ownMembership",void 0),(0,r.A)(this,"oldStatus",void 0),(0,r.A)(this,"scheduler",void 0),(0,r.A)(this,"state",void 0),(0,r.A)(this,"deviceId",void 0),(0,r.A)(this,"userId",void 0),(0,r.A)(this,"stateKey",void 0),(0,r.A)(this,"rtcTransport",void 0),(0,r.A)(this,"fociPreferred",void 0),(0,r.A)(this,"delayedLeaveEventDelayMsOverride",void 0),(0,r.A)(this,"clientSendDelayedDisconnectMembership",()=>this.client._unstable_sendDelayedStateEvent(this.room.roomId,{delay:this.delayedLeaveEventDelayMs},i.Bx.GroupCallMemberPrefix,{},this.stateKey)),(0,r.A)(this,"clientSendMembership",e=>this.client.sendStateEvent(this.room.roomId,i.Bx.GroupCallMemberPrefix,e,this.stateKey)),this.joinConfig=e,this.room=t,this.client=n,this.slotDescription=s,this.logger=(null!=o?o:a.vF).getChild("[MembershipManager]");const[d,l]=[this.client.getUserId(),this.client.getDeviceId()];if(null===d)throw Error("Missing userId in client");if(null===l)throw Error("Missing deviceId in client");this.deviceId=l,this.userId=d,this.stateKey=this.makeMembershipStateKey(d,l),this.state=S.defaultState,this.callIntent=null==e?void 0:e.callIntent,this.scheduler=new u(e=>(this.oldStatus&&(this.logger.debug(`MembershipManager applied action changes. Status: ${this.oldStatus} -> ${this.status}`),this.oldStatus!==this.status&&this.emit(h.e.StatusChanged,this.oldStatus,this.status)),this.oldStatus=this.status,this.logger.debug(`MembershipManager before processing action. status=${this.oldStatus}`),this.membershipLoopHandler(e)),this.logger)}get ownMembership(){return this._ownMembership}static get defaultState(){return{hasMemberStateEvent:!1,delayId:void 0,startTime:0,rateLimitRetries:new Map,networkErrorRetries:new Map,expireUpdateIterations:1,probablyLeft:!1}}get networkErrorRetryMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.networkErrorRetryMs)&&void 0!==e?e:3e3}get membershipEventExpiryMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.membershipEventExpiryMs)&&void 0!==e?e:d.F}get membershipEventExpiryHeadroomMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.membershipEventExpiryHeadroomMs)&&void 0!==e?e:5e3}computeNextExpiryActionTs(e){return this.state.startTime+Math.min(this.membershipEventExpiryMs,_)*e-this.membershipEventExpiryHeadroomMs}get delayedLeaveEventDelayMs(){var e,t,n;return null!==(e=null!==(t=this.delayedLeaveEventDelayMsOverride)&&void 0!==t?t:null===(n=this.joinConfig)||void 0===n?void 0:n.delayedLeaveEventDelayMs)&&void 0!==e?e:8e3}get delayedLeaveEventRestartMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.delayedLeaveEventRestartMs)&&void 0!==e?e:5e3}get maximumRateLimitRetryCount(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.maximumRateLimitRetryCount)&&void 0!==e?e:10}get maximumNetworkErrorRetryCount(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.maximumNetworkErrorRetryCount)&&void 0!==e?e:10}get delayedLeaveEventRestartLocalTimeoutMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.delayedLeaveEventRestartLocalTimeoutMs)&&void 0!==e?e:2e3}async membershipLoopHandler(e){switch(e){case b.SendDelayedEvent:return this.state.delayId?this.cancelKnownDelayIdBeforeSendDelayedEvent(this.state.delayId):this.sendOrResendDelayedLeaveEvent();case b.RestartDelayedEvent:return this.state.delayId?this.restartDelayedEvent(this.state.delayId):w(b.SendDelayedEvent);case b.SendScheduledDelayedLeaveEvent:return this.state.hasMemberStateEvent?this.state.delayId?this.sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(this.state.delayId):w(b.SendLeaveEvent):{replace:[]};case b.SendJoinEvent:return this.sendJoinEvent();case b.UpdateExpiry:return this.updateExpiryOnJoinedEvent();case b.SendLeaveEvent:return this.state.hasMemberStateEvent?this.sendFallbackLeaveEvent():{replace:[]}}}async sendOrResendDelayedLeaveEvent(){return await this.clientSendDelayedDisconnectMembership().then(e=>(this.state.expectedServerDelayLeaveTs=Date.now()+this.delayedLeaveEventDelayMs,this.setAndEmitProbablyLeft(!1),this.resetRateLimitCounter(b.SendDelayedEvent),this.setAndEmitDelayId(e.delay_id),this.state.hasMemberStateEvent?w(b.RestartDelayedEvent,this.delayedLeaveEventRestartMs):w(b.SendJoinEvent))).catch(e=>{const t=b.SendDelayedEvent;if(this.manageMaxDelayExceededSituation(e))return w(t);const n=this.actionUpdateFromErrors(e,t,"_unstable_sendDelayedStateEvent");if(n)return n;if(this.state.hasMemberStateEvent){if(this.isUnsupportedDelayedEndpoint(e))return{};throw Error("Could not send delayed event, even though delayed events are supported. "+e)}return this.isUnsupportedDelayedEndpoint(e)?this.logger.info("Not using delayed event because the endpoint is not supported"):this.logger.info("Not using delayed event because: "+e),w(b.SendJoinEvent)})}async cancelKnownDelayIdBeforeSendDelayedEvent(e){return await this.client._unstable_cancelScheduledDelayedEvent(e).then(()=>(this.setAndEmitDelayId(void 0),this.resetRateLimitCounter(b.SendDelayedEvent),k(b.SendDelayedEvent))).catch(e=>{const t=b.SendDelayedEvent,n=this.actionUpdateFromErrors(e,t,"cancelScheduledDelayedEvent");if(n)return n;if(this.isNotFoundError(e))return this.setAndEmitDelayId(void 0),k(t);if(this.isUnsupportedDelayedEndpoint(e))return k(b.SendJoinEvent);throw Error("We failed to cancel a delayed event where we already had a delay id with an error we cannot automatically handle")})}setAndEmitProbablyLeft(e){this.state.probablyLeft!==e&&(this.state.probablyLeft=e,this.emit(h.e.ProbablyLeft,this.state.probablyLeft))}setAndEmitDelayId(e){this.state.delayId!==e&&(this.state.delayId=e,this.emit(h.e.DelayIdChanged,this.state.delayId))}async restartDelayedEvent(e){const t=this.state.expectedServerDelayLeaveTs?this.state.expectedServerDelayLeaveTs-Date.now():void 0,n=new Promise((e,n)=>{setTimeout(()=>{n(new s.lc("Restart delayed event timed out before the HS responded"))},void 0===t||this.state.probablyLeft?this.delayedLeaveEventRestartLocalTimeoutMs:Math.min(this.delayedLeaveEventRestartLocalTimeoutMs,t))});return await Promise.race([this.client._unstable_restartScheduledDelayedEvent(e),n]).then(()=>(this.state.expectedServerDelayLeaveTs=Date.now()+this.delayedLeaveEventDelayMs,this.resetRateLimitCounter(b.RestartDelayedEvent),this.setAndEmitProbablyLeft(!1),w(b.RestartDelayedEvent,this.delayedLeaveEventRestartMs))).catch(e=>{this.state.expectedServerDelayLeaveTs&&this.state.expectedServerDelayLeaveTs<=Date.now()&&this.setAndEmitProbablyLeft(!0);const t=b.RestartDelayedEvent;if(this.isNotFoundError(e))return this.setAndEmitDelayId(void 0),w(b.SendDelayedEvent);if(this.isUnsupportedDelayedEndpoint(e))return{};const n=this.actionUpdateFromErrors(e,t,"restartScheduledDelayedEvent");if(n)return n;throw Error("Could not restart delayed event, even though delayed events are supported. "+e)})}async sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(e){return await this.client._unstable_sendScheduledDelayedEvent(e).then(()=>(this.state.hasMemberStateEvent=!1,this.setAndEmitDelayId(void 0),this.resetRateLimitCounter(b.SendScheduledDelayedLeaveEvent),{replace:[]})).catch(e=>{const t=b.SendLeaveEvent;if(this.isUnsupportedDelayedEndpoint(e))return{};if(this.isNotFoundError(e))return this.setAndEmitDelayId(void 0),w(t);const n=this.actionUpdateFromErrors(e,t,"sendScheduledDelayedEvent");return n||(this.logger.warn("Encountered unexpected error during SendScheduledDelayedLeaveEvent. Falling back to SendLeaveEvent",e),w(t))})}async sendJoinEvent(){return await this.clientSendMembership(this.makeMyMembership(this.membershipEventExpiryMs)).then(()=>{this.setAndEmitProbablyLeft(!1),this.state.startTime=Date.now(),this.state.expireUpdateIterations=1,this.state.hasMemberStateEvent=!0,this.resetRateLimitCounter(b.SendJoinEvent);return{replace:[...this.scheduler.actions.filter(e=>e.type!==b.UpdateExpiry&&e.type!==b.SendJoinEvent),{ts:Date.now(),type:b.RestartDelayedEvent},{ts:this.computeNextExpiryActionTs(this.state.expireUpdateIterations),type:b.UpdateExpiry}]}}).catch(e=>{const t=this.actionUpdateFromErrors(e,b.SendJoinEvent,"sendStateEvent");if(t)return t;throw e})}async updateExpiryOnJoinedEvent(){const e=this.state.expireUpdateIterations+1;return await this.clientSendMembership(this.makeMyMembership(this.membershipEventExpiryMs*e)).then(()=>(this.resetRateLimitCounter(b.UpdateExpiry),this.state.expireUpdateIterations=e,{insert:[{ts:this.computeNextExpiryActionTs(e),type:b.UpdateExpiry}]})).catch(e=>{const t=this.actionUpdateFromErrors(e,b.UpdateExpiry,"sendStateEvent");if(t)return t;throw e})}async sendFallbackLeaveEvent(){return await this.clientSendMembership({}).then(()=>(this.resetRateLimitCounter(b.SendLeaveEvent),this.state.hasMemberStateEvent=!1,{replace:[]})).catch(e=>{const t=this.actionUpdateFromErrors(e,b.SendLeaveEvent,"sendStateEvent");if(t)return t;throw e})}makeMembershipStateKey(e,t){const n=this.slotDescription.application,r=`${e}_${t}_${n}${"m.call"===n&&"ROOM"===this.slotDescription.id?"":this.slotDescription.id}`;return/^org\.matrix\.msc(3757|3779)\b/.exec(this.room.getVersion())?r:`_${r}`}makeMyMembership(e){var t,n;const r=this.ownMembership,s="m.call"===this.slotDescription.application&&"ROOM"===this.slotDescription.id,i=void 0===this.rtcTransport?{focus_active:{type:"livekit",focus_selection:"oldest_membership"},foci_preferred:null!==(t=this.fociPreferred)&&void 0!==t?t:[]}:{focus_active:{type:"livekit",focus_selection:"multi_sfu"},foci_preferred:[this.rtcTransport,...null!==(n=this.fociPreferred)&&void 0!==n?n:[]]};return y(y({application:this.slotDescription.application,call_id:s?"":this.slotDescription.id,scope:"m.room",device_id:this.deviceId,membershipID:`${this.userId}:${this.deviceId}`,expires:e,"m.call.intent":this.callIntent},i),void 0!==r?{created_ts:r.createdTs()}:void 0)}isNotFoundError(e){return e instanceof o.up&&"M_NOT_FOUND"===e.errcode}manageMaxDelayExceededSituation(e){if(e instanceof o.up&&"M_UNKNOWN"===e.errcode&&"M_MAX_DELAY_EXCEEDED"===e.data["org.matrix.msc4140.errcode"]){const t=e.data["org.matrix.msc4140.max_delay"];return"number"==typeof t&&this.delayedLeaveEventDelayMs>t&&(this.delayedLeaveEventDelayMsOverride=t),this.logger.warn("Retry sending delayed disconnection event due to server timeout limitations:",e),!0}return!1}actionUpdateFromErrors(e,t,n){const r=this.actionUpdateFromRateLimitError(e,n,t);if(r)return r;const s=this.actionUpdateFromNetworkErrorRetry(e,t);return s||void 0}actionUpdateFromRateLimitError(e,t,n){var r;if(!(e instanceof o.Hl||e instanceof o.up)||!e.isRateLimitError())return;const s=null!==(r=this.state.rateLimitRetries.get(n))&&void 0!==r?r:0;if(s<this.maximumRateLimitRetryCount){let t;const r=5e3;try{var i;t=null!==(i=e.getRetryAfterMs())&&void 0!==i?i:r,this.logger.info(`Rate limited by server, retrying in ${t}ms`)}catch(e){this.logger.warn(`Error while retrieving a rate-limit retry delay, retrying after default delay of ${r}`,e),t=r}return this.state.rateLimitRetries.set(n,s+1),w(n,t)}throw Error("Exceeded maximum retries for "+n+" attempts (client."+t+")",{cause:e})}actionUpdateFromNetworkErrorRetry(e,t){var n;const r=null!==(n=this.state.networkErrorRetries.get(t))&&void 0!==n?n:0,s=this.networkErrorRetryMs/1e3+"s",i="("+r+"/"+this.maximumNetworkErrorRetryCount+")";let a=this.networkErrorRetryMs;if(e instanceof Error&&"AbortError"===e.name)a=0,this.logger.warn("Network local timeout error while sending event, immediate retry ("+i+")",e);else if(e instanceof Error&&e.message.includes("updating delayed event"))this.logger.warn("delayed event update timeout error, retrying in "+s+" "+i,e);else if(e instanceof o.Rc)this.logger.warn("Network connection error while sending event, retrying in "+s+" "+i,e);else{if(!((e instanceof o.Hl||e instanceof o.up)&&"number"==typeof e.httpStatus&&e.httpStatus>=500&&e.httpStatus<600))return;this.logger.warn("Server error while sending event, retrying in "+s+" "+i,e)}if(r<this.maximumNetworkErrorRetryCount)return this.state.networkErrorRetries.set(t,r+1),w(t,a);throw Error("Reached maximum ("+this.maximumNetworkErrorRetryCount+") retries cause by: "+e)}isUnsupportedDelayedEndpoint(e){return e instanceof p.qK}resetRateLimitCounter(e){this.state.rateLimitRetries.set(e,0),this.state.networkErrorRetries.set(e,0)}get status(){const e=this.scheduler.actions;if(1===e.length){const{type:t}=e[0];switch(t){case b.SendDelayedEvent:case b.SendJoinEvent:return l.Connecting;case b.UpdateExpiry:return l.Connected;case b.SendScheduledDelayedLeaveEvent:case b.SendLeaveEvent:return l.Disconnecting}}else if(2===e.length){const t=e.map(e=>e.type);if((t.includes(b.RestartDelayedEvent)||t.includes(b.SendDelayedEvent)&&this.state.hasMemberStateEvent)&&t.includes(b.UpdateExpiry))return l.Connected}else if(3===e.length){const t=e.map(e=>e.type);if(2===t.filter(e=>e===b.RestartDelayedEvent).length&&t.includes(b.UpdateExpiry))return l.Connected}return this.scheduler.running?(this.logger.error("MembershipManager has an unknown state. Actions: ",e),l.Unknown):l.Disconnected}get probablyLeft(){return this.state.probablyLeft}get delayId(){return this.state.delayId}}class E extends S{constructor(e,t,n,s,o,a){super(e,t,n,s,a),(0,r.A)(this,"clientSendDelayedDisconnectMembership",()=>this.clientWithSticky._unstable_sendStickyDelayedEvent(this.room.roomId,_,{delay:this.delayedLeaveEventDelayMs},null,i.Bx.RTCMembership,{msc4354_sticky_key:this.memberId})),(0,r.A)(this,"clientSendMembership",e=>this.clientWithSticky._unstable_sendStickyEvent(this.room.roomId,_,null,i.Bx.RTCMembership,y(y({},e),{},{msc4354_sticky_key:this.memberId}))),this.clientWithSticky=n,this.memberId=o}actionUpdateFromErrors(e,t,n){var r;return super.actionUpdateFromErrors(e,t,null!==(r=E.nameMap.get(n))&&void 0!==r?r:"unknown")}makeMyMembership(){const e=this.ownMembership,t=f(this.rtcTransport)?this.rtcTransport:void 0,n=null!=e&&e.eventId?{"m.relation":{rel_type:i.zZ.Reference,event_id:null==e?void 0:e.eventId}}:{};return y({application:y({type:this.slotDescription.application},this.callIntent?{"m.call.intent":this.callIntent}:{}),slot_id:(0,g.Ds)(this.slotDescription),rtc_transports:t?[{type:t.type,livekit_service_url:t.livekit_service_url}]:[],member:{device_id:this.deviceId,user_id:this.userId,id:this.memberId},versions:[]},n)}}(0,r.A)(E,"nameMap",new Map([["sendStateEvent","_unstable_sendStickyEvent"],["sendDelayedStateEvent","_unstable_sendStickyDelayedEvent"]]))},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/RTCEncryptionManager.ts"(e,t,n){"use strict";n.d(t,{a:()=>c});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/EncryptionManager.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/base64.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/utils.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/rtc.ts");class c{constructor(e,t,n,s,o,a){(0,r.A)(this,"manageMediaKeys",!1),(0,r.A)(this,"useHashedRtcBackendIdentity",!1),(0,r.A)(this,"ownRtcBackendIdentityCache",void 0),(0,r.A)(this,"participantKeyRings",new Map),(0,r.A)(this,"outboundSession",null),(0,r.A)(this,"currentKeyDistributionPromise",null),(0,r.A)(this,"useKeyDelay",5e3),(0,r.A)(this,"keyRotationGracePeriodMs",1e4),(0,r.A)(this,"needToEnsureKeyAgain",!1),(0,r.A)(this,"keyBuffer",new d.Uo),(0,r.A)(this,"logger",void 0),(0,r.A)(this,"rtcIdentityProvider",void 0),(0,r.A)(this,"keysWithoutMatchingRTCMembership",[]),(0,r.A)(this,"onNewKeyReceived",(e,t,n,r)=>{var s,o;if(!this.manageMediaKeys)return void(null===(o=this.logger)||void 0===o||o.warn(`Received key over transport ${e.userId}:${e.deviceId} at index ${n} but media keys are disabled`));null===(s=this.logger)||void 0===s||s.debug(`Received key over transport ${e.userId}:${e.deviceId} at index ${n}`);const a={key:(0,i.y4)(t),membership:e,keyIndex:n,creationTS:r};var d;this.keyBuffer.isOutdated(e,a)?null===(d=this.logger)||void 0===d||d.info(`Received an out of order key for ${e.userId}:${e.deviceId}, dropping it`):this.addKeyToParticipant(a.key,a.keyIndex,a.membership)}),this.ownMembership=e,this.getMemberships=t,this.transport=n,this.onEncryptionKeysChanged=s,this.logger=null==o?void 0:o.getChild("[EncryptionManager]"),this.rtcIdentityProvider=null!=a?a:l.t}async getOwnRtcBackendIdentity(){if(this.ownRtcBackendIdentityCache)return this.ownRtcBackendIdentityCache;if(this.useHashedRtcBackendIdentity){var e;const{userId:t,deviceId:n,memberId:r}=this.ownMembership;null===(e=this.logger)||void 0===e||e.info(`Computing RTC backend identity for ${t}:${n}:${r} (SHOULD ONLY BE CALLED ONCE)`),this.ownRtcBackendIdentityCache=await this.rtcIdentityProvider(t,n,r)}else this.ownRtcBackendIdentityCache=`${this.ownMembership.userId}:${this.ownMembership.deviceId}`;return this.ownRtcBackendIdentityCache}getEncryptionKeys(){return new Map(this.participantKeyRings)}checkKeysWithoutMatchingRTCMembership(){const e=this.keysWithoutMatchingRTCMembership;this.keysWithoutMatchingRTCMembership=[],e.forEach(e=>{this.addKeyToParticipant(e.key,e.keyIndex,e.membership)})}addKeyToParticipant(e,t,n){const r=this.getMemberships().find(e=>e.userId===n.userId&&e.deviceId===n.deviceId);var s;if(!r)return null===(s=this.logger)||void 0===s||s.info(`No matching RTC membership for key from ${n.userId}:${n.deviceId}, delaying key addition`),void this.keysWithoutMatchingRTCMembership.push({key:e,keyIndex:t,membership:n});this.addKeyToParticipantWithBackendIdentity(e,t,n,r.rtcBackendIdentity)}addKeyToParticipantWithBackendIdentity(e,t,n,r){const i=(0,s._)(n);this.participantKeyRings.has(i)||this.participantKeyRings.set(i,[]),this.participantKeyRings.get(i).push({key:e,keyIndex:t,membership:n,rtcBackendIdentity:r}),this.onEncryptionKeysChanged(e,t,n,r)}join(e){var t,n,r,s,i;this.manageMediaKeys=null===(t=null==e?void 0:e.manageMediaKeys)||void 0===t||t,this.useHashedRtcBackendIdentity=null!==(n=null==e?void 0:e.unstableSendStickyEvents)&&void 0!==n&&n,this.useKeyDelay=null!==(r=null==e?void 0:e.useKeyDelay)&&void 0!==r?r:1e3,this.keyRotationGracePeriodMs=null!==(s=null==e?void 0:e.keyRotationGracePeriodMs)&&void 0!==s?s:1e4,this.transport.on(o.u.ReceivedKeys,this.onNewKeyReceived),this.getOwnRtcBackendIdentity(),null===(i=this.logger)||void 0===i||i.info("Joining room"),this.transport.start()}leave(){this.transport.off(o.u.ReceivedKeys,this.onNewKeyReceived),this.transport.stop(),this.participantKeyRings.clear()}ensureKeyDistribution(){var e,t;this.manageMediaKeys&&(null==this.currentKeyDistributionPromise?(null===(e=this.logger)||void 0===e||e.debug("No active rollout, start a new one"),this.currentKeyDistributionPromise=this.rolloutOutboundKey().then(()=>{var e,t;(null===(e=this.logger)||void 0===e||e.debug("Rollout completed"),this.currentKeyDistributionPromise=null,this.needToEnsureKeyAgain)&&(null===(t=this.logger)||void 0===t||t.debug("New Rollout needed"),this.needToEnsureKeyAgain=!1,this.ensureKeyDistribution())})):(null===(t=this.logger)||void 0===t||t.debug("Rollout in progress, a new rollout will be started after the current one"),this.needToEnsureKeyAgain=!0))}onMembershipsUpdate(e=[]){var t;null===(t=this.logger)||void 0===t||t.trace("onMembershipsUpdate"),this.ensureKeyDistribution(),this.checkKeysWithoutMatchingRTCMembership()}async rolloutOutboundKey(){var e,t;if(null==this.outboundSession){const e={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:0};this.outboundSession=e,this.addKeyToParticipantWithBackendIdentity(e.key,e.keyId,this.ownMembership,await this.getOwnRtcBackendIdentity())}const n=this.getMemberships().filter(e=>null!=e.sender).map(e=>({userId:e.sender,deviceId:e.deviceId,membershipTs:e.createdTs()}));let r=null!==(e=null===(t=this.outboundSession)||void 0===t?void 0:t.sharedWith)&&void 0!==e?e:[];r=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs!=t.membershipTs));const s=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),o=n.filter(e=>!r.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs));let d,l=[],c=!1;if(s.length>0){const e=this.createNewOutboundSession();c=!0,l=n,d=e}else{if(!(o.length>0))return;{const e=Date.now()-this.outboundSession.creationTS;if(e<this.keyRotationGracePeriodMs){var u;null===(u=this.logger)||void 0===u||u.debug(`New joiners detected, but the key is recent enough (age:${e}), keeping it`),l=o,d=this.outboundSession}else{var m;null===(m=this.logger)||void 0===m||m.debug("New joiners detected, rotating the key");const e=this.createNewOutboundSession();c=!0,l=n,d=e}}}try{var p,h,g,f;if(null===(p=this.logger)||void 0===p||p.trace("Sending key..."),await this.transport.sendKey((0,i.WG)(d.key),d.keyId,l),d.sharedWith.push(...l),null===(h=this.logger)||void 0===h||h.trace(`key index:${d.keyId} sent to ${d.sharedWith.map(e=>`${e.userId}:${e.deviceId}`).join(",")}`),c)null===(g=this.logger)||void 0===g||g.trace(`Delay Rollout for key:${d.keyId}...`),await(0,a.yy)(this.useKeyDelay),null===(f=this.logger)||void 0===f||f.trace(`...Delayed rollout of index:${d.keyId} `),this.addKeyToParticipantWithBackendIdentity(d.key,d.keyId,this.ownMembership,await this.getOwnRtcBackendIdentity())}catch(e){var v;null===(v=this.logger)||void 0===v||v.error("Failed to rollout key",e)}}createNewOutboundSession(){var e;const t={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:this.nextKeyIndex()};return null===(e=this.logger)||void 0===e||e.info(`creating new outbound key index:${t.keyId}`),this.outboundSession=t,t}nextKeyIndex(){return this.outboundSession?(this.outboundSession.keyId+1)%256:0}generateRandomKey(){const e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),e}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/ToDeviceKeyTransport.ts"(e,t,n){"use strict";n.d(t,{i:()=>c});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts");class l extends Error{constructor(e){super(e)}get name(){return"NotSupportedError"}}class c extends s.X{setParentLogger(e){this.logger=e.getChild("[ToDeviceKeyTransport]")}constructor(e,t,n,s,i){super(),(0,r.A)(this,"logger",o.vF),(0,r.A)(this,"onToDeviceEvent",e=>{if(e.getType()!==d.Bx.CallEncryptionKeysPrefix)return;const t=this.getValidEventContent(e);t&&e.getSender()&&this.receiveCallKeyEvent(e.getSender(),t)}),this.membership=e,this.roomId=t,this.client=n,this.statistics=s,this.setParentLogger(null!=i?i:o.vF)}start(){this.client.on(a.AU.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.off(a.AU.ToDeviceEvent,this.onToDeviceEvent)}async sendKey(e,t,n){const r={keys:{index:t,key:e},room_id:this.roomId,member:{claimed_device_id:this.membership.deviceId,id:this.membership.memberId},session:{call_id:"",application:"m.call",scope:"m.room"},sent_ts:Date.now()},s=n.map(e=>({userId:e.userId,deviceId:e.deviceId})).filter(e=>!(e.userId==this.membership.userId&&e.deviceId==this.membership.deviceId));s.length>0?(await this.client.encryptAndSendToDevice(d.Bx.CallEncryptionKeysPrefix,s,r).catch(e=>{const t=e.message;if(t.includes("unknown variant")&&t.includes("send_to_device")||t.includes("not supported"))throw new l("The widget driver does not support to-device encryption")}),this.statistics.counters.roomEventEncryptionKeysSent+=1):this.logger.warn("No targets found for sending key")}receiveCallKeyEvent(e,t){var n;this.statistics.counters.roomEventEncryptionKeysReceived+=1;const r=Date.now(),s=r-("number"==typeof t.sent_ts?t.sent_ts:r);this.statistics.totals.roomEventEncryptionKeysReceivedTotalAge+=s;const o=`${e}:${t.member.claimed_device_id}`;this.emit(i.u.ReceivedKeys,{userId:e,deviceId:t.member.claimed_device_id,memberId:null!==(n=t.member.id)&&void 0!==n?n:o},t.keys.key,t.keys.index,r)}getValidEventContent(e){const t=e.getContent(),n=t.room_id;if(n)if(n===this.roomId)if(t.keys&&t.keys.key&&"number"==typeof t.keys.index){if(t.member&&t.member.claimed_device_id)return t;this.logger.warn("Malformed Event: Missing claimed_device_id")}else this.logger.warn("Malformed Event: Missing keys field");else this.logger.warn("Malformed Event: Mismatch roomId");else this.logger.warn("Malformed Event: invalid call encryption keys event, no roomId")}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/common.ts"(e,t,n){"use strict";n.d(t,{y:()=>r});class r extends AggregateError{constructor(e,t){super(t,`Does not match ${e}:\n${t.join("\n")}`),this.type=e}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/index.ts"(e,t,n){"use strict";n.d(t,{yK:()=>r.y,mB:()=>i.m,oi:()=>s,tL:()=>i.t});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/common.ts");const s=e=>{var t;const n=" - ",s=[];if("string"!=typeof e.device_id&&s.push(n+"device_id must be string"),"string"!=typeof e.call_id&&s.push(n+"call_id must be string"),"string"!=typeof e.application&&s.push(n+"application must be a string"),void 0===e.focus_active&&s.push(n+"focus_active has an invalid type"),"string"!=typeof(null===(t=e.focus_active)||void 0===t?void 0:t.type)&&s.push(n+"focus_active.type must be a string"),void 0===e.foci_preferred||Array.isArray(e.foci_preferred)&&e.foci_preferred.every(e=>"object"==typeof e&&null!==e&&"string"==typeof e.type)||s.push(n+"foci_preferred must be an array of transport objects"),void 0!==e.created_ts&&"number"!=typeof e.created_ts&&s.push(n+"created_ts must be number"),void 0!==e.scope&&"string"!=typeof e.scope&&s.push(n+"scope must be string"),void 0!==e["m.call.intent"]&&"string"!=typeof e["m.call.intent"]&&s.push(n+"m.call.intent must be a string"),s.length)throw new r.y("SessionMembership",s);return!0};var i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/rtc.ts")},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/rtc.ts"(e,t,n){"use strict";n.d(t,{m:()=>d,t:()=>l});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-member.ts"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/membershipData/common.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/digest.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/base64.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/utils.ts");const d=(e,t)=>{var n,i;const o=[],d=" - ",l=`${null==e||null===(n=e.application)||void 0===n?void 0:n.type}#`;if("string"!=typeof e.slot_id)o.push(d+"slot_id must be string");else if(e.slot_id.startsWith(l))try{(0,a.nr)(e.slot_id)}catch(e){o.push(d+"slot_id was badly formed"+(e instanceof Error?`: ${e.message}`:""))}else o.push(d+`slot_id must start with ${l}`);if("object"!=typeof e.member||null===e.member?o.push(d+"member must be an object"):("string"!=typeof e.member.user_id?o.push(d+"member.user_id must be string"):r.sh.test(e.member.user_id)?e.member.user_id!==t&&o.push(d+"member.user_id must match the sender"):o.push(d+"member.user_id must be a valid mxid"),"string"!=typeof e.member.device_id&&o.push(d+"member.device_id must be string"),"string"!=typeof e.member.id&&o.push(d+"member.id must be string")),"object"!=typeof e.application||null===e.application?o.push(d+"application must be an object"):"string"!=typeof e.application.type?o.push(d+"application.type must be a string"):e.application.type.includes("#")&&o.push(d+'application.type must not include "#"'),void 0!==e.rtc_transports&&Array.isArray(e.rtc_transports)){for(const t of e.rtc_transports)if("object"!=typeof t||null===t||"string"!=typeof t.type){o.push(d+"rtc_transports entries must be objects with a string type");break}}else o.push(d+"rtc_transports must be an array");if(void 0!==e.versions&&Array.isArray(e.versions)?e.versions.every(e=>"string"==typeof e)||o.push(d+"versions must be an array of strings"):o.push(d+"versions must be an array"),void 0===(null!==(i=e.sticky_key)&&void 0!==i?i:e.msc4354_sticky_key)&&o.push(d+"sticky_key or msc4354_sticky_key must be a defined"),void 0!==e.sticky_key&&"string"!=typeof e.sticky_key&&o.push(d+"sticky_key must be a string"),void 0!==e.msc4354_sticky_key&&"string"!=typeof e.msc4354_sticky_key&&o.push(d+"msc4354_sticky_key must be a string"),void 0!==e.sticky_key&&void 0!==e.msc4354_sticky_key&&e.sticky_key!==e.msc4354_sticky_key&&o.push(d+"sticky_key and msc4354_sticky_key must be equal if both are defined"),void 0!==e["m.relates_to"]){const t=e["m.relates_to"];"object"!=typeof t||null===t?o.push(d+"m.relates_to must be an object if provided"):("string"!=typeof t.event_id&&o.push(d+"m.relates_to.event_id must be a string"),"m.reference"!==t.rel_type&&o.push(d+"m.relates_to.rel_type must be m.reference"))}if(o.length)throw new s.y("RtcMembership",o);return!0};async function l(e,t,n){const r=JSON.stringify([e,t,n]),s=await(0,i.s)(r);return(0,o.PP)(s)}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/utils.ts"(e,t,n){"use strict";n.d(t,{Ds:()=>a,Uo:()=>i,nr:()=>o});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/matrixrtc/EncryptionManager.ts");class i{constructor(){(0,r.A)(this,"tsBuffer",new Map)}isOutdated(e,t){var n;const r=(0,s._)(e);this.tsBuffer.has(r)||this.tsBuffer.set(r,new Map);const i=null===(n=this.tsBuffer.get(r))||void 0===n?void 0:n.get(t.keyIndex);return!!(i&&i>t.creationTS)||(this.tsBuffer.get(r).set(t.keyIndex,t.creationTS),!1)}}function o(e){const[t,n,...r]=e.split("#");if(r.length)throw Error("MatrixRTC Slot IDs *must* only contain two components seperated by one '#'. Additional '#' characters detected.");return{application:t,id:n}}function a(e){return`${e.application}#${e.id}`}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/MSC3089TreeSpace.ts"(e,t,n){"use strict";n.d(t,{mG:()=>g,wZ:()=>v});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event-timeline.ts");function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class c{constructor(e,t,n){this.client=e,this.indexEvent=t,this.directory=n}get id(){const e=this.indexEvent.getStateKey();if(!e)throw new Error("State key not found for branch");return e}get isActive(){return!0===this.indexEvent.getContent().active}get version(){var e;return null!==(e=this.indexEvent.getContent().version)&&void 0!==e?e:1}get roomId(){return this.indexEvent.getRoomId()}async delete(){await this.client.sendStateEvent(this.roomId,s.iK.name,{},this.id),await this.client.redactEvent(this.roomId,this.id);const e=(await this.getVersionHistory())[1];e&&await e.delete()}getName(){return this.indexEvent.getContent().name||"Unnamed File"}async setName(e){await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{name:e}),this.id)}isLocked(){return this.indexEvent.getContent().locked||!1}async setLocked(e){await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{locked:e}),this.id)}async getFileInfo(){const e=(await this.getFileEvent()).getOriginalContent().file,t=this.client.mxcUrlToHttp(e.url);if(!t)throw new Error(`No HTTP URL available for ${e.url}`);return{info:e,httpUrl:t}}async getFileEvent(){const e=this.client.getRoom(this.roomId);if(!e)throw new Error("Unknown room");let t=e.getUnfilteredTimelineSet().findEventById(this.id);for(;!t&&e.getLiveTimeline().getState(a.q.BACKWARDS).paginationToken;)await this.client.scrollback(e,100),t=e.getUnfilteredTimelineSet().findEventById(this.id);if(!t)throw new Error("Failed to find event");return await this.client.decryptEventIfNeeded(t),t}async createNewVersion(e,t,n,r){const i=await this.directory.createFile(e,t,n,l(l({},r),{},{"m.new_content":!0,"m.relates_to":{rel_type:s.zZ.Replace,event_id:this.id}}));return await this.client.sendStateEvent(this.roomId,s.iK.name,{active:!0,name:e,version:this.version+1},i.event_id),await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{active:!1}),this.id),i}async getVersionHistory(){const e=[];e.push(this);const t=this.client.getRoom(this.roomId);if(!t)throw new Error("Invalid or unknown room");const n=[...t.getLiveTimeline().getEvents()].reverse();let r,s=await this.getFileEvent();do{if(r=n.find(e=>e.replacingEventId()===s.getId()),r){const t=this.directory.getFile(r.getId());if(!t)break;e.push(t),s=r}}while(r);return e}}var u=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/index.ts"),m=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/membership.ts");function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const g={invite:100,kick:100,ban:100,redact:50,state_default:50,events_default:50,users_default:0,events:{[s.Bx.RoomPowerLevels]:100,[s.Bx.RoomHistoryVisibility]:100,[s.Bx.RoomTombstone]:100,[s.Bx.RoomEncryption]:100,[s.Bx.RoomName]:50,[s.Bx.RoomMessage]:50,[s.Bx.RoomMessageEncrypted]:50,[s.Bx.Sticker]:50},users:{}};let f=function(e){return e.Viewer="viewer",e.Editor="editor",e.Owner="owner",e}({});class v{constructor(e,t){if((0,r.A)(this,"room",void 0),this.client=e,this.roomId=t,this.room=this.client.getRoom(this.roomId),!this.room)throw new Error("Unknown room")}get id(){return this.roomId}get isTopLevel(){const e=this.room.currentState.getStateEvents(s.Bx.SpaceParent);return null==e||!e.length||e.every(e=>{var t;return!(null!==(t=e.getContent())&&void 0!==t&&t.via)})}async setName(e){await this.client.sendStateEvent(this.roomId,s.Bx.RoomName,{name:e},"")}async invite(e,t=!0){const n=[this.retryInvite(e)];t&&n.push(...this.getDirectories().map(n=>n.invite(e,t))),await Promise.all(n)}async retryInvite(e){await(0,o.CC)(()=>this.client.invite(this.roomId,e),e=>!(e instanceof u.up&&"M_FORBIDDEN"===e.errcode))}async setPermissions(e,t){var n;const r=this.room.currentState.getStateEvents(s.Bx.RoomPowerLevels,"");if(Array.isArray(r))throw new Error("Unexpected return type for power levels");const i=(null==r?void 0:r.getContent())||{},o=i.users_default||0,a=i.events_default||50,d=(null===(n=i.events)||void 0===n?void 0:n[s.Bx.RoomPowerLevels])||100,l=i.users||{};switch(t){case f.Viewer:l[e]=o;break;case f.Editor:l[e]=a;break;case f.Owner:l[e]=d;break;default:throw new Error("Invalid role: "+t)}i.users=l,await this.client.sendStateEvent(this.roomId,s.Bx.RoomPowerLevels,i,"")}getPermissions(e){var t,n;const r=this.room.currentState.getStateEvents(s.Bx.RoomPowerLevels,"");if(Array.isArray(r))throw new Error("Unexpected return type for power levels");const i=(null==r?void 0:r.getContent())||{},o=i.users_default||0,a=i.events_default||50,d=(null===(t=i.events)||void 0===t?void 0:t[s.Bx.RoomPowerLevels])||100,l=(null===(n=i.users)||void 0===n?void 0:n[e])||o;return l>=d?f.Owner:l>=a?f.Editor:f.Viewer}async createDirectory(e){const t=await this.client.unstableCreateFileTree(e);return await this.client.sendStateEvent(this.roomId,s.Bx.SpaceChild,{via:[this.client.getDomain()]},t.roomId),await this.client.sendStateEvent(t.roomId,s.Bx.SpaceParent,{via:[this.client.getDomain()]},this.roomId),t}getDirectories(){const e=[],t=this.room.currentState.getStateEvents(s.Bx.SpaceChild);for(const n of t)try{const t=n.getStateKey();if(t){const n=this.client.unstableGetFileTreeSpace(t);n&&e.push(n)}}catch(e){i.vF.warn("Unable to create tree space instance for listing. Are we joined?",e)}return e}getDirectory(e){return this.getDirectories().find(t=>t.roomId===e)}async delete(){const e=this.getDirectories();for(const t of e)await t.delete();const t=[m.O.Invite,m.O.Knock,m.O.Join],n=this.room.currentState.getStateEvents(s.Bx.RoomMember);for(const e of n){if(e.getStateKey()!==this.client.getUserId()&&t.includes(e.getContent().membership)){const t=e.getStateKey();if(!t)throw new Error("State key not found for branch");await this.client.kick(this.roomId,t,"Room deleted")}}await this.client.leave(this.roomId)}getOrderedChildren(e){const t=e.map(e=>({roomId:e.getStateKey(),order:e.getContent().order})).filter(e=>e.roomId);return t.sort((e,t)=>{if(e.order&&!t.order)return-1;if(!e.order&&t.order)return 1;if(e.order||t.order)return(0,o.aw)(e.order,t.order);{var n,r,i,a;const d=this.client.getRoom(e.roomId),l=this.client.getRoom(t.roomId);if(!d||!l)return(0,o.aw)(e.roomId,t.roomId);const c=null!==(n=null===(r=d.currentState.getStateEvents(s.Bx.RoomCreate,""))||void 0===r?void 0:r.getTs())&&void 0!==n?n:0,u=null!==(i=null===(a=l.currentState.getStateEvents(s.Bx.RoomCreate,""))||void 0===a?void 0:a.getTs())&&void 0!==i?i:0;return c===u?(0,o.aw)(e.roomId,t.roomId):c-u}}),t}getParentRoom(){const e=this.room.currentState.getStateEvents(s.Bx.SpaceParent)[0];if(!e)throw new Error("Expected to have a parent in a non-top level space");const t=e.getStateKey();if(!t)throw new Error("No state key found for parent");const n=this.client.getRoom(t);if(!n)throw new Error("Unable to locate room for parent");return n}getOrder(){if(this.isTopLevel)return-1;const e=this.getParentRoom().currentState.getStateEvents(s.Bx.SpaceChild);return this.getOrderedChildren(e).findIndex(e=>e.roomId===this.roomId)}async setOrder(e){var t;if(this.isTopLevel)throw new Error("Cannot set order of top level spaces currently");const n=this.getParentRoom(),r=n.currentState.getStateEvents(s.Bx.SpaceChild),i=this.getOrderedChildren(r);e=Math.max(Math.min(e,i.length-1),0);const a=this.getOrder()<e;a&&e===i.length-1?e--:a||0!==e||e++;const d=i[a?e:e-1],l=i[a?e+1:e];let c=o.Mf[0],u=!1;if(d)if(e===i.length-1)null!=l&&l.order&&(c=(0,o.$9)(l.order));else{const e=null==d?void 0:d.order,t=null==l?void 0:l.order;e&&t?c=e===t?(0,o.$9)(e):(0,o.sy)(e,t):e?c=(0,o.$9)(e):t?c=(0,o.zR)(t):u=!0}else null!=l&&l.order&&(c=(0,o.zR)(l.order));if(u){let t;for(let r=0;r<=e;r++){const e=i[r];if(0===r&&(t=e.order),e.order)t=e.order;else{var m;t=t?(0,o.$9)(t):o.Mf[0];const r=n.currentState.getStateEvents(s.Bx.SpaceChild,e.roomId),i=null!==(m=null==r?void 0:r.getContent())&&void 0!==m?m:{via:[this.client.getDomain()]};await this.client.sendStateEvent(n.roomId,s.Bx.SpaceChild,h(h({},i),{},{order:t}),e.roomId)}}t&&(c=(0,o.$9)(t))}const p=n.currentState.getStateEvents(s.Bx.SpaceChild,this.roomId),g=null!==(t=null==p?void 0:p.getContent())&&void 0!==t?t:{via:[this.client.getDomain()]};await this.client.sendStateEvent(n.roomId,s.Bx.SpaceChild,h(h({},g),{},{order:c}),this.roomId)}async createFile(e,t,n,r){const{content_uri:i}=await this.client.uploadContent(t,{includeFilename:!1});n.url=i;const o={msgtype:s.Wr.File,body:e,url:i,file:n};(r=null!=r?r:{})["m.new_content"]&&(r["m.new_content"]=o);const a=await this.client.sendMessage(this.roomId,h(h(h({},r),o),{},{[s.ID.name]:{}}));return await this.client.sendStateEvent(this.roomId,s.iK.name,{active:!0,name:e},a.event_id),a}getFile(e){const t=this.room.currentState.getStateEvents(s.iK.name,e);return t?new c(this.client,t,this):null}listFiles(){return this.listAllFiles().filter(e=>e.isActive)}listAllFiles(){var e;return(null!==(e=this.room.currentState.getStateEvents(s.iK.name))&&void 0!==e?e:[]).map(e=>new c(this.client,e,this))}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/compare-event-ordering.ts"(e,t,n){"use strict";n.d(t,{s:()=>s});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts");function s(e,t,n){const s=e.findEventById(t),o=e.findEventById(n);if(!s||!o)return null;const a=(0,r.fN)(s),d=(0,r.fN)(o);return a&&d?function(e,t,n,r,s){const o=e.getUnfilteredTimelineSet(),a=o.compareEventOrdering(t,n);if(null!==a)return a;const d=o.getTimelineForEvent(t);if(d===o.getLiveTimeline())return 1;const l=o.getTimelineForEvent(n);if(l===o.getLiveTimeline())return-1;return i(r,s)}(e,t,n,s,o):function(e,t,n,s){const o=(0,r.Xb)(n),a=(0,r.Xb)(s),d=n.getThread();return d&&o===a?d.timelineSet.compareEventOrdering(e,t):i(n,s)}(t,n,s,o)}function i(e,t){const n=e.getTs(),r=t.getTs();return n<r?-1:n>r?1:0}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event-context.ts"(e,t,n){"use strict";n.d(t,{y:()=>i});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event-timeline.ts");class i{constructor(e){(0,r.A)(this,"timeline",void 0),(0,r.A)(this,"ourEventIndex",0),(0,r.A)(this,"paginateTokens",{[s.O.Backward]:null,[s.O.Forward]:null}),this.ourEvent=e,this.timeline=[e]}getEvent(){return this.timeline[this.ourEventIndex]}getTimeline(){return this.timeline}getOurEventIndex(){return this.ourEventIndex}getPaginateToken(e=!1){return this.paginateTokens[e?s.O.Backward:s.O.Forward]}setPaginateToken(e,t=!1){this.paginateTokens[t?s.O.Backward:s.O.Forward]=null!=e?e:null}addEvents(e,t=!1){t?(this.timeline=e.concat(this.timeline),this.ourEventIndex+=e.length):this.timeline=this.timeline.concat(e)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event-status.ts"(e,t,n){"use strict";n.d(t,{f:()=>r});let r=function(e){return e.NOT_SENT="not_sent",e.ENCRYPTING="encrypting",e.SENDING="sending",e.QUEUED="queued",e.SENT="sent",e.CANCELLED="cancelled",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/invites-ignorer-types.ts"(e,t,n){"use strict";n.d(t,{Jo:()=>a,NG:()=>i,Q5:()=>o,fx:()=>s});var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/index.js");const s=new r.UnstableValue("m.policies","org.matrix.msc3847.policies"),i=new r.UnstableValue("m.ignore.invites","org.matrix.msc3847.ignore.invites");let o=function(e){return e.Ban="m.ban",e}({}),a=function(e){return e.User="m.policy.user",e.Room="m.policy.room",e.Server="m.policy.server",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/read-receipt.ts"(e,t,n){"use strict";n.d(t,{D:()=>h,h:()=>g});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/read_receipts.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room.ts"),c=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),u=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts");function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function h(e,t,n,r=!1){return new a.kl({content:{[t.getId()]:{[n]:{[e]:p({ts:t.getTs()},!r&&{thread_id:(0,u.Xb)(t)})}}},type:d.Bx.Receipt,room_id:t.getRoomId()})}class g extends i.X{constructor(...e){super(...e),(0,r.A)(this,"receipts",new o.kG(()=>new Map)),(0,r.A)(this,"receiptCacheByEventId",new Map)}getReadReceiptForUserId(e,t=!1,n=s.L.Read){var r,i;const[o,a]=null!==(r=null===(i=this.receipts.get(n))||void 0===i?void 0:i.get(e))&&void 0!==r?r:[null,null];return t?o:null!=a?a:o}compareReceipts(e,t){var n;return null!==(n=this.getUnfilteredTimelineSet().compareEventOrdering(e.eventId,t.eventId))&&void 0!==n?n:e.data.ts-t.data.ts}getEventReadUpTo(e,t=!1){const n=this.getLatestReceipt(e,t);return n&&this.receiptPointsAtConsistentEvent(n)?n.eventId:null}receiptPointsAtConsistentEvent(e){var t;const n=this.findEventById(e.eventId);if(!n)return!1;if(null===(t=e.data)||void 0===t||!t.thread_id)return!0;if(e.data.thread_id===s.S){if((0,u.fN)(n))return!0}else if(n.threadRootId===e.data.thread_id)return!0;return c.vF.warn(`Ignoring receipt because its thread_id (${e.data.thread_id}) disagrees with the thread root (${n.threadRootId}) of the referenced event (event ID = ${e.eventId})`),!1}getLatestReceipt(e,t){var n,r;const i=this.getReadReceiptForUserId(e,t,s.L.Read),o=this.getReadReceiptForUserId(e,t,s.L.ReadPrivate);let a;return null!=i&&i.eventId&&null!=o&&o.eventId&&(a=this.compareReceipts(i,o)),a?null!==(r=a<0?o:i)&&void 0!==r?r:null:null!==(n=null!=o?o:i)&&void 0!==n?n:null}addReceiptToStructure(e,t,n,r,s){var i,o;const a=this.receipts.getOrCreate(t);let d=a.get(n);d||(d=[null,null],a.set(n,d));let l=d[0];var c;s&&(l=null!==(c=d[1])&&void 0!==c?c:d[0]);const u={eventId:e,data:r};if(l){if(this.compareReceipts(l,u)>=0)return}const m=s?d[0]:u,p=s?u:d[1];let h=null;m&&p&&(h=this.getUnfilteredTimelineSet().compareEventOrdering(m.eventId,p.eventId));const g=null===h||h<0,f=null!==(i=d[1])&&void 0!==i?i:d[0];s&&g?d[1]=u:s||(d[0]=u,g||(d[1]=null));if(f!==(null!==(o=d[1])&&void 0!==o?o:d[0])){if(f&&this.receiptCacheByEventId.get(f.eventId)){const e=f.eventId;this.receiptCacheByEventId.set(e,this.receiptCacheByEventId.get(e).filter(e=>e.type!==t||e.userId!==n)),this.receiptCacheByEventId.get(e).length<1&&this.receiptCacheByEventId.delete(e)}this.receiptCacheByEventId.get(e)||this.receiptCacheByEventId.set(e,[]),this.receiptCacheByEventId.get(e).push({userId:n,type:t,data:r})}}getReceiptsForEvent(e){return this.receiptCacheByEventId.get(e.getId())||[]}fixupNotifications(e){const t=this.getReadReceiptForUserId(e,!1),n=this.timeline[this.timeline.length-1];n&&(null==t?void 0:t.eventId)===n.getId()&&e===n.getSender()&&(this.setUnread(l.X5.Total,0),this.setUnread(l.X5.Highlight,0))}addLocalEchoReceipt(e,t,n,r=!1){this.addReceipt(h(e,t,n,r),!0)}getUsersReadUpTo(e){return this.getReceiptsForEvent(e).filter(function(e){return(0,o.ll)(e.type)}).map(function(e){return e.userId})}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/relations-container.ts"(e,t,n){"use strict";n.d(t,{t:()=>o});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/relations.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event.ts");class o{constructor(e,t){(0,r.A)(this,"relations",new Map),this.client=e,this.room=t}getChildEventsForEvent(e,t,n){var r;return null===(r=this.relations.get(e))||void 0===r||null===(r=r.get(t))||void 0===r?void 0:r.get(n)}getAllChildEventsForEvent(e){var t;const n=null!==(t=this.relations.get(e))&&void 0!==t?t:new Map,r=[];for(const e of n.values())for(const t of e.values())r.push(...t.getRelations());return r}aggregateParentEvent(e){const t=this.relations.get(e.getId());if(t)for(const n of t.values())for(const t of n.values())t.setTargetEvent(e)}aggregateChildEvent(e,t){if(e.isRedacted()||e.status===i.fb.CANCELLED)return;const n=e.getRelation();if(!n)return;const r=()=>{e.isDecryptionFailure()?e.once(i.OQ.Decrypted,r):this.aggregateChildEvent(e,t)};if(e.isBeingDecrypted()||e.shouldAttemptDecryption())return void e.once(i.OQ.Decrypted,r);const{event_id:o,rel_type:a}=n,d=e.getType();let l=this.relations.get(o);l||(l=new Map,this.relations.set(o,l));let c=l.get(a);c||(c=new Map,l.set(a,c));let u=c.get(d);if(!u){var m,p,h;u=new s.s(a,d,this.client),c.set(d,u);const e=null!==(m=this.room)&&void 0!==m?m:null==t?void 0:t.room,n=null!==(p=null!==(h=null==t?void 0:t.findEventById(o))&&void 0!==h?h:null==e?void 0:e.findEventById(o))&&void 0!==p?p:null==e?void 0:e.getPendingEvent(o);n&&u.setTargetEvent(n)}u.addEvent(e)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-receipts.ts"(e,t,n){"use strict";n.d(t,{$:()=>d});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/read_receipts.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts");class d{constructor(e){(0,r.A)(this,"room",void 0),(0,r.A)(this,"threadedReceipts",void 0),(0,r.A)(this,"unthreadedReceipts",void 0),(0,r.A)(this,"danglingReceipts",void 0),(0,r.A)(this,"onTimelineEvent",e=>{const t=e.getId();if(!t)return;const n=this.danglingReceipts.remove(t);null==n||n.forEach(e=>{e.receipt.thread_id?this.threadedReceipts.set(e.receipt.thread_id,e.eventId,e.receiptType,e.userId,e.receipt.ts,e.synthetic):this.unthreadedReceipts.set(t,e.receiptType,e.userId,e.receipt.ts,e.synthetic)})}),this.room=e,this.threadedReceipts=new p(e),this.unthreadedReceipts=new m(e),this.danglingReceipts=new h,e.on(o.u9.Timeline,this.onTimelineEvent)}add(e,t){for(const[n,r]of Object.entries(e))for(const[e,s]of Object.entries(r))for(const[r,i]of Object.entries(s)){this.room.findEventById(n)?i.thread_id?this.threadedReceipts.set(i.thread_id,n,e,r,i.ts,t):this.unthreadedReceipts.set(n,e,r,i.ts,t):this.danglingReceipts.add(new c(n,e,r,i,t))}}hasUserReadEvent(e,t){const n=this.unthreadedReceipts.get(e);if(n&&f(n.eventId,t,this.room))return!0;const r=this.room.findEventById(t);if(!r)return a.vF.warn(`hasUserReadEvent event ID ${t} not found in room ${this.room.roomId}: this shouldn't happen!`),!1;const s=(0,i.Xb)(r),o=this.threadedReceipts.get(s,e);return!(!o||!f(o.eventId,t,this.room))||!!this.userSentLatestEventInThread(s,e)}userSentLatestEventInThread(e,t){var n;const r=e===s.S?this.room.getLiveTimeline().getEvents():null===(n=this.room.getThread(e))||void 0===n?void 0:n.timeline;return!!(r&&r.length>0&&r[r.length-1].getSender()===t)}}class l{constructor(e,t,n){this.eventId=e,this.receiptType=t,this.ts=n}}class c{constructor(e,t,n,r,s){this.eventId=e,this.receiptType=t,this.userId=n,this.receipt=r,this.synthetic=s}}class u{constructor(e){(0,r.A)(this,"room",void 0),(0,r.A)(this,"real",void 0),(0,r.A)(this,"synthetic",void 0),this.room=e,this.real=void 0,this.synthetic=void 0}set(e,t){e?this.synthetic=t:this.real=t,this.synthetic&&this.real&&f(this.real.eventId,this.synthetic.eventId,this.room)&&(this.synthetic=void 0)}get(){var e;return null!==(e=this.synthetic)&&void 0!==e?e:this.real}getByType(e){return e?this.synthetic:this.real}}class m{constructor(e){(0,r.A)(this,"room",void 0),(0,r.A)(this,"data",void 0),this.room=e,this.data=new Map}set(e,t,n,r,s){const i=g(this.data,n,()=>new u(this.room)),o=i.getByType(s);o&&function(e,t,n){const r=n.compareEventOrdering(e,t);return null!==r&&r>0}(o.eventId,e,this.room)||i.set(s,new l(e,t,r))}get(e){var t;return null===(t=this.data.get(e))||void 0===t?void 0:t.get()}}class p{constructor(e){(0,r.A)(this,"room",void 0),(0,r.A)(this,"data",void 0),this.room=e,this.data=new Map}set(e,t,n,r,s,i){g(this.data,e,()=>new m(this.room)).set(t,n,r,s,i)}get(e,t){var n;return null===(n=this.data.get(e))||void 0===n?void 0:n.get(t)}}class h{constructor(){(0,r.A)(this,"data",new Map)}add(e){g(this.data,e.eventId,()=>[]).push(e)}remove(e){const t=this.data.get(e);return this.data.delete(e),t}}function g(e,t,n){const r=e.get(t);if(r)return r;{const r=n();return e.set(t,r),r}}function f(e,t,n){const r=n.compareEventOrdering(e,t);return null!==r&&r>=0}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-retention.ts"(e,t,n){"use strict";n.d(t,{Y:()=>c});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-state.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/retention.ts");class c{constructor(e,t,n){(0,r.A)(this,"maxRetention",null),(0,r.A)(this,"retentionTimeout",void 0),(0,r.A)(this,"logger",void 0),(0,r.A)(this,"handleRetentionUpdate",async()=>{const e=null!==this.maxRetention;try{await this.recalculateRetention(this.room.currentState)}catch(e){return void this.logger.warn("Failed to recalculate retention policy",e)}e!==(null!==this.maxRetention)&&(this.logger.info("retention recalculated to be",this.maxRetention),this.maxRetention?this.room.on(i.u9.Timeline,this.timelineUpdated):this.room.off(i.u9.Timeline,this.timelineUpdated))}),(0,r.A)(this,"recalculateRetention",async e=>{var t,n,r,s,i;const o=e.getStateEvents(l.S.name).find(e=>""===e.getStateKey()),a=e.getStateEvents(l.S.altName).find(e=>""===e.getStateKey()),d=this.retentionService.getCached(),c=null==d||null===(t=d.policies)||void 0===t?void 0:t[this.room.roomId],u=null!==(n=null==o?void 0:o.getContent())&&void 0!==n?n:null==a?void 0:a.getContent(),m=null!==(r=null!=c?c:u)&&void 0!==r?r:null==d||null===(s=d.policies)||void 0===s?void 0:s["*"];if(!m)return void(this.maxRetention=null);const p=!c&&u;let{max_lifetime:h}=m;var g,f,v;if(!h&&p&&(h=null==d||null===(g=d.limits)||void 0===g||null===(g=g.max_lifetime)||void 0===g?void 0:g.min,!h))return void(this.maxRetention=null);if("number"!=typeof h)throw Error(`max_lifetime must be a number, got "${h}"`);if(h<0||!Number.isInteger(h))throw Error(`max_lifetime must be >= 0, got ${h}`);(this.maxRetention=h,p&&null!=d&&null!==(i=d.limits)&&void 0!==i&&i.max_lifetime)&&(this.maxRetention=Math.max(this.maxRetention,null!==(f=d.limits.max_lifetime.min)&&void 0!==f?f:0),this.maxRetention=Math.min(this.maxRetention,null!==(v=d.limits.max_lifetime.max)&&void 0!==v?v:Number.MAX_SAFE_INTEGER));this.processTimeline()}),(0,r.A)(this,"timelineUpdated",()=>{this.logger.info("timelineUpdated"),this.scheduleTimelineCheck(200)}),(0,r.A)(this,"scheduleTimelineCheck",e=>{this.retentionTimeout&&clearTimeout(this.retentionTimeout),this.retentionTimeout=setTimeout(()=>{this.processTimeline(),this.retentionTimeout=void 0},e)}),this.room=e,this.retentionService=t,this.store=n,this.logger=a.vF.getChild(`RetentionPolicy ${e.roomId}`),e.on(o.f.Events,e=>{""!==e.getStateKey()||"org.matrix.msc1763.retention"!==e.getType()&&"m.room.retention"!==e.getType()||this.handleRetentionUpdate()}),this.retentionService.on("update",()=>{this.logger.info("Got global retention policy update!"),this.handleRetentionUpdate()}),this.handleRetentionUpdate()}shouldEventBeRetained(e){if(!this.maxRetention)return!0;const t=Date.now()-this.maxRetention;return e.getTs()>t}processTimeline(){if(!this.maxRetention)return;this.logger.info("Running processTimeline");const e=Date.now()-this.maxRetention,t=this.room.getLiveTimeline().getEvents().filter(e=>void 0===e.getStateKey()&&!e.isRedacted()&&"m.room.redaction"!==e.getType()),n=t.filter(t=>t.getTs()<e),[r]=t.filter(t=>t.getTs()>=e).sort((e,t)=>e.getTs()-t.getTs());if(r){const e=r.getTs()+this.maxRetention-Date.now();this.logger.info(`Next expiry scheduled for ${e}`),this.scheduleTimelineCheck(e)}if(0!==n.length){this.logger.info(`Found ${n.length} expired events`);for(const e of n)this.room.tryApplyRedaction(new s.kl({type:d.Bx.RoomRedaction,sender:e.getSender(),event_id:"$synthetic_redaction",room_id:this.room.roomId,redacts:e.getId(),content:{reason:"Retention policy"},origin_server_ts:Date.now(),unsigned:{}}));this.store.removeEventsFromRoom(this.room.roomId,n.map(e=>e.getId())).catch(e=>{this.logger.warn("Failed to remove events from store",e)})}else this.logger.info("Found no expired events")}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-summary.ts"(e,t,n){"use strict";n.d(t,{c:()=>r});class r{constructor(e,t){this.roomId=e}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/oidc/discovery.ts"(e,t,n){"use strict";n.d(t,{P:()=>c,k:()=>l});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/oidc-client-ts@3.5.0/node_modules/oidc-client-ts/dist/umd/oidc-client-ts.js"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/oidc/validate.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/index.ts");function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const l=async e=>{const t=new URL(".well-known/openid-configuration",e),n=await fetch(t,{method:o.IT.Get,signal:(0,o._)(5e3)}),r=await n.json();return c(r)},c=async e=>{const t=(0,i.EZ)(e),n=new s.OidcClientSettingsStore({authority:t.issuer,metadata:t,redirect_uri:"",client_id:""}),r=new s.MetadataService(n);return d(d({},t),{},{signingKeys:t.jwks_uri?await r.getSigningKeys():null})}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/oidc/error.ts"(e,t,n){"use strict";n.d(t,{u:()=>r});let r=function(e){return e.NotSupported="OIDC authentication not supported",e.Misconfigured="OIDC is misconfigured",e.General="Something went wrong with OIDC discovery",e.OpSupport="Configured OIDC OP does not support required functions",e.DynamicRegistrationNotSupported="Dynamic registration not supported",e.DynamicRegistrationFailed="Dynamic registration failed",e.DynamicRegistrationInvalid="Dynamic registration invalid response",e.CodeExchangeFailed="Failed to exchange code for token",e.InvalidBearerTokenResponse="Invalid bearer token response",e.InvalidIdToken="Invalid ID token",e.MissingOrInvalidStoredState="State required to finish logging in is not found in storage.",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/pushprocessor.ts"(e,t,n){"use strict";n.d(t,{j:()=>f});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/PushRules.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts");function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const l=[i.Ji.Override,i.Ji.ContentSpecific,i.Ji.RoomSpecific,i.Ji.SenderSpecific,i.Ji.Underride],c={".m.rule.is_room_mention":{rule_id:".m.rule.is_room_mention",default:!0,enabled:!0,conditions:[{kind:i.wp.EventPropertyIs,key:"content.m\\.mentions.room",value:!0},{kind:i.wp.SenderNotificationPermission,key:"room"}],actions:[i.YU.Notify,{set_tweak:i.QN.Highlight}]},".m.rule.reaction":{rule_id:".m.rule.reaction",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:"m.reaction"}],actions:[i.YU.DontNotify]},".org.matrix.msc3786.rule.room.server_acl":{rule_id:".org.matrix.msc3786.rule.room.server_acl",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:o.Bx.RoomServerAcl},{kind:i.wp.EventMatch,key:"state_key",pattern:""}],actions:[]}},u=Symbol("UserDefinedRules"),m=[i.kq.Master,u,i.kq.SuppressNotices,i.kq.InviteToSelf,i.kq.MemberEvent,i.kq.IsUserMention,i.kq.ContainsDisplayName,i.kq.IsRoomMention,i.kq.AtRoomNotification,i.kq.Tombstone,".m.rule.reaction",".m.rule.room.server_acl",".org.matrix.msc3786.rule.room.server_acl",".m.rule.suppress_edits"],p={".org.matrix.msc3914.rule.room.call":{rule_id:".org.matrix.msc3914.rule.room.call",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:"org.matrix.msc3401.call"},{kind:i.wp.CallStarted}],actions:[i.YU.Notify,{set_tweak:i.QN.Sound,value:"default"}]}},h=[u,i.kq.IncomingCall,".org.matrix.msc3914.rule.room.call",i.kq.EncryptedDM,i.kq.DM,i.kq.Message,i.kq.EncryptedMessage];function g(e,t,n,r,s){const i=n.filter(e=>e.default),o=n.filter(e=>!e.default);function a(n){n===u?l.push(...o):n in r?(e.warn(`Adding default global ${t} push rule ${n}`),l.push(r[n])):e.warn(`Missing default global ${t} push rule ${n}`)}let d=0;const l=[];for(const e of i){const t=s.indexOf(e.rule_id);if(-1!==t){for(;t>d;){a(s[d]),d+=1}l.push(e),d+=1}else l.push(e)}for(const e of s.slice(d))a(e);return l}class f{constructor(e){(0,r.A)(this,"parsedKeys",new Map),this.client=e}static actionListToActionsObject(e){const t={notify:!1,tweaks:{}};for(const n of e)n===i.YU.Notify?t.notify=!0:"object"==typeof n&&(void 0===n.value&&(n.value=!0),t.tweaks[n.set_tweak]=n.value);return t}static rewriteDefaultRules(e,t,n=void 0){let r=JSON.parse(JSON.stringify(t));return r||(r={}),r.global||(r.global={}),r.global.override||(r.global.override=[]),r.global.underride||(r.global.underride=[]),r.global.override=g(e,i.Ji.Override,r.global.override,c,m),r.global.underride=g(e,i.Ji.Underride,r.global.underride,p,h),r}static getPushRuleGlobRegex(e,t=!1,n="i"){const[r,i]=t?["(?<=^|\\W)","(?=\\W|$)"]:["^","$"],o=`${t}-${n}-${e}`;return f.cachedGlobToRegex[o]||(f.cachedGlobToRegex[o]=new RegExp(r+"("+(0,s.dn)(e)+")"+i,n)),f.cachedGlobToRegex[o]}updateCachedPushRuleKeys(e){e||(e={}),e.global||(e.global={}),e.global.override||(e.global.override=[]),e.global.room||(e.global.room=[]),e.global.sender||(e.global.sender=[]),e.global.underride||(e.global.underride=[]);const t=new Set(this.parsedKeys.keys());for(const n of[e.global.override,e.global.room,e.global.sender,e.global.underride])for(const e of n)if(e.conditions)for(const n of e.conditions)n.kind===i.wp.EventMatch&&(t.delete(n.key),this.parsedKeys.set(n.key,f.partsForDottedKey(n.key)));t.forEach(e=>this.parsedKeys.delete(e))}matchingRuleFromKindSet(e,t){for(const n of l){const r=t[n];if(r)for(const t of r){if(!t.enabled)continue;const r=this.templateRuleToRaw(n,t);if(r&&this.ruleMatchesEvent(r,e))return d(d({},t),{},{kind:n})}}return null}templateRuleToRaw(e,t){const n={rule_id:t.rule_id,actions:t.actions,conditions:[]};switch(e){case i.Ji.Underride:case i.Ji.Override:n.conditions=t.conditions;break;case i.Ji.RoomSpecific:if(!t.rule_id)return null;n.conditions.push({kind:i.wp.EventMatch,key:"room_id",value:t.rule_id});break;case i.Ji.SenderSpecific:if(!t.rule_id)return null;n.conditions.push({kind:i.wp.EventMatch,key:"user_id",value:t.rule_id});break;case i.Ji.ContentSpecific:if(!t.pattern)return null;n.conditions.push({kind:i.wp.EventMatch,key:"content.body",pattern:t.pattern})}return n}eventFulfillsCondition(e,t){switch(e.kind){case i.wp.EventMatch:return this.eventFulfillsEventMatchCondition(e,t);case i.wp.EventPropertyIs:return this.eventFulfillsEventPropertyIsCondition(e,t);case i.wp.EventPropertyContains:return this.eventFulfillsEventPropertyContains(e,t);case i.wp.ContainsDisplayName:return this.eventFulfillsDisplayNameCondition(e,t);case i.wp.RoomMemberCount:return this.eventFulfillsRoomMemberCountCondition(e,t);case i.wp.SenderNotificationPermission:return this.eventFulfillsSenderNotifPermCondition(e,t);case i.wp.CallStarted:case i.wp.CallStartedPrefix:return this.eventFulfillsCallStartedCondition(e,t)}return!1}eventFulfillsSenderNotifPermCondition(e,t){const n=e.key;if(!n)return!1;const r=this.client.getRoom(t.getRoomId());return!(null==r||!r.currentState)&&r.currentState.mayTriggerNotifOfType(n,t.getSender())}eventFulfillsRoomMemberCountCondition(e,t){if(!e.is)return!1;const n=this.client.getRoom(t.getRoomId());if(!n||!n.currentState||!n.currentState.members)return!1;const r=n.currentState.getJoinedMemberCount(),s=e.is.match(/^([=<>]*)(\d*)$/);if(!s)return!1;const i=s[1],o=parseInt(s[2]);if(isNaN(o))return!1;switch(i){case"":case"==":return r==o;case"<":return r<o;case">":return r>o;case"<=":return r<=o;case">=":return r>=o;default:return!1}}eventFulfillsDisplayNameCondition(e,t){var n;let r=t.getContent();if(t.isEncrypted()&&t.getClearContent()&&(r=t.getClearContent()),!r||!r.body||"string"!=typeof r.body)return!1;const i=this.client.getRoom(t.getRoomId()),o=null==i||null===(n=i.currentState)||void 0===n?void 0:n.getMember(this.client.credentials.userId);if(!o)return!1;const a=o.name,d=new RegExp("(^|\\W)"+(0,s.Nt)(a)+"(\\W|$)","i");return r.body.search(d)>-1}eventFulfillsEventMatchCondition(e,t){if(!e.key)return!1;const n=this.valueForDottedKey(e.key,t);if("string"!=typeof n)return!1;if(e.value)return e.value===n;if("string"!=typeof e.pattern)return!1;const r=f.getPushRuleGlobRegex(e.pattern,"content.body"===e.key);return!!n.match(r)}eventFulfillsEventPropertyIsCondition(e,t){return!(!e.key||void 0===e.value)&&e.value===this.valueForDottedKey(e.key,t)}eventFulfillsEventPropertyContains(e,t){if(!e.key||void 0===e.value)return!1;const n=this.valueForDottedKey(e.key,t);return!!Array.isArray(n)&&n.includes(e.value)}eventFulfillsCallStartedCondition(e,t){return["m.ring","m.prompt"].includes(t.getContent()["m.intent"])&&!("m.terminated"in t.getContent())&&(t.getPrevContent()["m.terminated"]!==t.getContent()["m.terminated"]||(0,s.ky)(t.getPrevContent(),{}))}static partsForDottedKey(e){const t=[];let n="",r=!1;for(const s of e)r?(n+="\\"===s||"."===s?s:"\\"+s,r=!1):"."==s?(t.push(n),n=""):"\\"==s?r=!0:n+=s;return r&&(n+="\\"),t.push(n),t}valueForDottedKey(e,t){let n,r=this.parsedKeys.get(e);void 0===r&&(r=f.partsForDottedKey(e),this.parsedKeys.set(e,r));const i=r[0];let o=0;for("content"===i?(n=t.getContent(),++o):"type"===i?(n=t.getType(),++o):n=t.event;o<r.length;++o){if((0,s.hX)(n))return;n=n[r[o]]}return n}matchingRuleForEventWithRulesets(e,t){return t?e.getSender()===this.client.getSafeUserId()?null:this.matchingRuleFromKindSet(e,t.global):null}pushActionsForEventAndRulesets(e,t){const n=this.matchingRuleForEventWithRulesets(e,t);if(!n)return{};const r=f.actionListToActionsObject(n.actions);return void 0===r.tweaks.highlight&&(r.tweaks.highlight=n.kind==i.Ji.ContentSpecific),{actions:r,rule:n}}ruleMatchesEvent(e,t){var n;return(!this.client.supportsIntentionalMentions()||void 0===t.getContent()["m.mentions"]||e.rule_id!==i.kq.ContainsUserName&&e.rule_id!==i.kq.ContainsDisplayName&&e.rule_id!==i.kq.AtRoomNotification)&&!(null!==(n=e.conditions)&&void 0!==n&&n.some(e=>!this.eventFulfillsCondition(e,t)))}actionsForEvent(e){const{actions:t}=this.pushActionsForEventAndRulesets(e,this.client.pushRules);return t||{}}actionsAndRuleForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules)}getPushRuleById(e){var t;const n=this.getPushRuleAndKindById(e);return null!==(t=null==n?void 0:n.rule)&&void 0!==t?t:null}getPushRuleAndKindById(e){for(const n of["global"]){var t;if(void 0!==(null===(t=this.client.pushRules)||void 0===t?void 0:t[n]))for(const t of l)if(void 0!==this.client.pushRules[n][t])for(const r of this.client.pushRules[n][t])if(r.rule_id===e)return{rule:r,kind:t}}return null}}(0,r.A)(f,"cachedGlobToRegex",{})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/realtime-callbacks.ts"(e,t,n){"use strict";n.d(t,{D:()=>l,w:()=>d});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts");let s,i=0;const o=[],a=function(...e){};function d(e,t,...n){(t=t||0)<0&&(t=0);const r=Date.now()+t,s=i++,a={runAt:r,func:e,params:n,key:s},d=function(e,t){let n=0,r=e.length;for(;n<r;){const s=n+r>>1;t(e[s])>0?r=s:n=s+1}return n}(o,function(e){return e.runAt-r});return o.splice(d,0,a),c(),s}function l(e){if(0===o.length)return;let t;for(t=0;t<o.length;t++){if(o[t].key==e){o.splice(t,1);break}}0===t&&c()}function c(){s&&globalThis.clearTimeout(s);const e=o[0];if(!e)return;const t=Date.now(),n=Math.min(e.runAt-t,1e3);s=globalThis.setTimeout(u,n)}function u(){const e=Date.now(),t=[];for(;;){const n=o[0];if(!n||n.runAt>e)break;const r=o.shift();a(r.key),t.push(r)}c();for(const e of t)try{e.func.apply(globalThis,e.params)}catch(e){r.vF.error("Uncaught exception in callback function",e)}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/retentionPolicy.ts"(e,t,n){"use strict";n.d(t,{C:()=>o});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/capabilityPoller.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/index.ts");class o extends s.N{constructor(e,t){super(e,t,"retention policy"),(0,r.A)(this,"fetch",async()=>{const e=await this.http.authedRequest(i.IT.Get,"/retention/configuration",void 0,void 0,{prefix:`${i.iD.Unstable}/org.matrix.msc1763`});return this.cached=e,this.cached})}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/rust-crypto/constants.ts"(e,t,n){"use strict";n.d(t,{J:()=>r});const r="matrix-js-sdk"},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/service-types.ts"(e,t,n){"use strict";n.d(t,{S:()=>r});let r=function(e){return e.IS="SERVICE_TYPE_IS",e.IM="SERVICE_TYPE_IM",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sliding-sync-sdk.ts"(e,t,n){"use strict";n.d(t,{m:()=>w});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/event-timeline.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sync.ts"),c=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/http-api/index.ts"),u=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sliding-sync.ts"),m=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),p=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-state.ts"),h=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-member.ts"),g=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/membership.ts");class f{constructor(e){this.crypto=e}name(){return"e2ee"}when(){return u.HY.PreProcess}async onRequest(e){return e&&(i.vF.log("ExtensionE2EE: invalidating all device lists due to missing 'pos'"),await this.crypto.markAllTrackedUsersAsDirty()),{enabled:!0}}async onResponse(e){e.device_lists&&await this.crypto.processDeviceLists(e.device_lists),await this.crypto.processKeyCounts(e.device_one_time_keys_count,e.device_unused_fallback_key_types||e["org.matrix.msc2732.device_unused_fallback_key_types"]),this.crypto.onSyncCompleted({})}}class v{constructor(e,t){(0,r.A)(this,"nextBatch",null),this.client=e,this.cryptoCallbacks=t}name(){return"to_device"}when(){return u.HY.PreProcess}async onRequest(e){return{since:null!==this.nextBatch?this.nextBatch:void 0,limit:100,enabled:!0}}async onResponse(e){const t=e.events||[];let n;n=this.cryptoCallbacks?await this.cryptoCallbacks.preprocessToDeviceMessages(t):t.map(e=>({message:e,encryptionInfo:null})),(0,l.pq)(n,this.client),this.nextBatch=e.next_batch}}class y{constructor(e){this.client=e}name(){return"account_data"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){e.global&&e.global.length>0&&this.processGlobalAccountData(e.global);for(const t in e.rooms){const n=k(this.client,t,e.rooms[t]),r=this.client.getRoom(t);r?(r.addAccountData(n),n.forEach(e=>{this.client.emit(d.AU.Event,e)})):i.vF.warn("got account data for room but room doesn't exist on client:",t)}}processGlobalAccountData(e){const t=k(this.client,void 0,e),n=t.reduce((e,t)=>(e[t.getType()]=this.client.store.getAccountData(t.getType()),e),{});this.client.store.storeAccountDataEvents(t),t.forEach(e=>{if(e.getType()===m.Bx.PushRules){const t=e.getContent();this.client.setPushRules(t)}const t=n[e.getType()];return this.client.emit(d.AU.AccountData,e,t),e})}}class _{constructor(e){this.client=e}name(){return"typing"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){if(null!=e&&e.rooms)for(const t in e.rooms)S(this.client,t,[e.rooms[t]])}}class b{constructor(e){this.client=e}name(){return"receipts"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){if(null!=e&&e.rooms)for(const t in e.rooms)S(this.client,t,[e.rooms[t]])}}class w{constructor(e,t,n,i){(0,r.A)(this,"opts",void 0),(0,r.A)(this,"syncOpts",void 0),(0,r.A)(this,"syncState",null),(0,r.A)(this,"syncStateData",void 0),(0,r.A)(this,"lastPos",null),(0,r.A)(this,"failCount",0),(0,r.A)(this,"notifEvents",[]),this.slidingSync=e,this.client=t,this.opts=(0,l.Bn)(n),this.syncOpts=(0,l.Fe)(i),t.getNotifTimelineSet()&&t.reEmitter.reEmit(t.getNotifTimelineSet(),[s.u9.Timeline,s.u9.TimelineReset]),this.slidingSync.on(u.cQ.Lifecycle,this.onLifecycle.bind(this)),this.slidingSync.on(u.cQ.RoomData,this.onRoomData.bind(this));const o=[new v(this.client,this.syncOpts.cryptoCallbacks),new y(this.client),new _(this.client),new b(this.client)];this.syncOpts.cryptoCallbacks&&o.push(new f(this.syncOpts.cryptoCallbacks)),o.forEach(e=>{this.slidingSync.registerExtension(e)})}async onRoomData(e,t){let n=this.client.store.getRoom(e);if(!n){if(!t.initial)return void this.syncOpts.logger.debug("initial flag not set but no stored room exists for room ",e,t);n=(0,l.M)(this.client,e,this.opts)}await this.processRoomData(this.client,n,t)}onLifecycle(e,t,n){switch(n&&this.syncOpts.logger.debug("onLifecycle",e,n),e){case u.ns.Complete:if(this.purgeNotifications(),!t)break;this.lastPos||this.updateSyncState(l.Lm.Prepared,{oldSyncToken:void 0,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.updateSyncState(l.Lm.Syncing,{oldSyncToken:this.lastPos,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.lastPos=t.pos;break;case u.ns.RequestFinished:if(n){if(this.failCount+=1,this.updateSyncState(this.failCount>3?l.Lm.Error:l.Lm.Reconnecting,{error:new c.up(n)}),this.shouldAbortSync(new c.up(n)))return}else this.failCount=0,this.syncOpts.logger.debug(`SlidingSyncState.RequestFinished with ${Object.keys((null==t?void 0:t.rooms)||[]).length} rooms`)}}async syncLeftRooms(){return[]}async peek(e){return null}stopPeeking(){}setPresence(e){}getSyncState(){return this.syncState}getSyncStateData(){var e;return null!==(e=this.syncStateData)&&void 0!==e?e:null}createRoom(e){const{timelineSupport:t}=this.client,n=new s.Wv(e,this.client,this.client.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:t});return this.client.reEmitter.reEmit(n,[s.u9.Name,s.u9.Redaction,s.u9.RedactionCancelled,s.u9.Receipt,s.u9.Tags,s.u9.LocalEchoUpdated,s.u9.AccountData,s.u9.MyMembership,s.u9.Timeline,s.u9.TimelineReset]),this.registerStateListeners(n),n}registerStateListeners(e){this.client.reEmitter.reEmit(e.currentState,[p.f.Events,p.f.Members,p.f.NewMember,p.f.Update]),e.currentState.on(p.f.NewMember,(e,t,n)=>{var r;n.user=null!==(r=this.client.getUser(n.userId))&&void 0!==r?r:void 0,this.client.reEmitter.reEmit(n,[h.o5.Name,h.o5.Typing,h.o5.PowerLevel,h.o5.Membership])})}shouldAbortSync(e){return"M_UNKNOWN_TOKEN"===e.errcode&&(this.syncOpts.logger.warn("Token no longer valid - assuming logout"),this.stop(),this.updateSyncState(l.Lm.Error,{error:e}),!0)}async processRoomData(e,t,n){n=function(e,t,n){if(!n.name)return n;for(const e of n.required_state)if(e.type===m.Bx.RoomName&&""===e.state_key)return e.content={name:n.name},n;return n.required_state.push({event_id:"$fake-sliding-sync-name-event-"+t,state_key:"",type:m.Bx.RoomName,content:{name:n.name},sender:e.getUserId(),origin_server_ts:(new Date).getTime()}),n}(e,t.roomId,n);const r=k(this.client,t.roomId,n.required_state);let i=k(this.client,t.roomId,n.timeline,!1);const l=[];if(n.limited||n.initial){const e=new Set;t.getLiveTimeline().getEvents().forEach(t=>{e.add(t.getId())});const r=[],s=[];let o=!1;for(let t=i.length-1;t>=0;t--){const n=i[t];e.has(n.getId())?o=!0:o?r.push(n):s.unshift(n)}i=s,r.length>0&&t.addEventsToTimeline(r,!0,!1,t.getLiveTimeline(),n.prev_batch)}const c=t.hasEncryptionStateEvent();if(null!=n.notification_count&&t.setUnreadNotificationCount(s.X5.Total,n.notification_count),null!=n.highlight_count&&(!c||c&&t.getUnreadNotificationCount(s.X5.Highlight)<=0)&&t.setUnreadNotificationCount(s.X5.Highlight,n.highlight_count),n.bump_stamp&&t.setBumpStamp(n.bump_stamp),Number.isInteger(n.invited_count)&&t.currentState.setInvitedMemberCount(n.invited_count),Number.isInteger(n.joined_count)&&t.currentState.setJoinedMemberCount(n.joined_count),n.invite_state){const e=k(this.client,t.roomId,n.invite_state);return await this.injectRoomEvents(t,e),n.initial&&(t.recalculate(),this.client.store.storeRoom(t),this.client.emit(d.AU.Room,t)),void e.forEach(e=>{this.client.emit(d.AU.Event,e)})}var u;n.limited&&t.getLiveTimeline().setPaginationToken(null!==(u=n.prev_batch)&&void 0!==u?u:null,a.q.BACKWARDS);await this.injectRoomEvents(t,r,i,n.num_live),t.addEphemeralEvents(l),t.updateMyMembership(g.O.Join),t.setMSC4186SummaryData(n.heroes,n.joined_count,n.invited_count),t.recalculate(),n.initial&&(e.store.storeRoom(t),e.emit(d.AU.Room,t)),this.addNotifications(i);const p=async n=>{e.emit(d.AU.Event,n),n.isState()&&n.getType()==m.Bx.RoomEncryption&&this.syncOpts.cryptoCallbacks&&await this.syncOpts.cryptoCallbacks.onCryptoEvent(t,n)};await(0,o.d8)(r,p),await(0,o.d8)(i,p),l.forEach(function(t){e.emit(d.AU.Event,t)}),t.decryptCriticalEvents()}async injectRoomEvents(e,t,n=[],r=0){const s=e.getLiveTimeline(),i=0==s.getEvents().length;if(i){for(const e of t)this.client.getPushActionsForEvent(e);s.initialiseState(t)}i||(e.oldState.setStateEvents(t),e.currentState.setStateEvents(t));let o=[];r>0&&(o=n.slice(-1*r),n=n.slice(0,-1*o.length)),await e.addLiveEvents(n,{fromCache:!0,addToState:!1}),o.length>0&&await e.addLiveEvents(o,{fromCache:!1,addToState:!1}),e.recalculate(),this.resolveInvites(e)}resolveInvites(e){if(!e||!this.opts.resolveInvitesToProfiles)return;const t=this.client;e.getMembersWithMembership(g.O.Invite).forEach(function(n){if(n.requestedProfileInfo)return;n.requestedProfileInfo=!0;const r=t.getUser(n.userId);let s;s=r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId),s.then(function(t){const r=n.events.member;r.getContent().membership===g.O.Invite&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))},function(e){})})}retryImmediately(){return!0}async sync(){for(this.syncOpts.logger.debug("Sliding sync init loop");!this.client.isGuest();)try{this.syncOpts.logger.debug("Getting push rules...");const e=await this.client.getPushRules();this.syncOpts.logger.debug("Got push rules"),this.client.pushRules=e;break}catch(e){if(this.syncOpts.logger.error("Getting push rules failed",e),this.shouldAbortSync(e))return}await this.slidingSync.start()}stop(){this.syncOpts.logger.debug("SyncApi.stop"),this.slidingSync.stop()}updateSyncState(e,t){const n=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(d.AU.Sync,this.syncState,n,t)}addNotifications(e){if(this.client.getNotifTimelineSet())for(const t of e){const e=this.client.getPushActionsForEvent(t);e&&e.notify&&e.tweaks&&e.tweaks.highlight&&this.notifEvents.push(t)}}purgeNotifications(){this.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),this.notifEvents.forEach(e=>{var t;null===(t=this.client.getNotifTimelineSet())||void 0===t||t.addLiveEvent(e,{addToState:!1})}),this.notifEvents=[]}}function k(e,t,n,r=!0){const s=e.getEventMapper({decrypt:r});return n.map(function(e){return e.room_id=t,s(e)})}function S(e,t,n){const r=k(e,t,n),s=e.getRoom(t);s?(s.addEphemeralEvents(r),r.forEach(t=>{e.emit(d.AU.Event,t)})):i.vF.warn("got ephemeral events for room but room doesn't exist on client:",t)}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/store/indexeddb-local-backend.ts"(e,t,n){"use strict";n.d(t,{k:()=>h});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sync-accumulator.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/indexeddb-helpers.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts");const d=[e=>{e.createObjectStore("users",{keyPath:["userId"]}),e.createObjectStore("accountData",{keyPath:["type"]}),e.createObjectStore("sync",{keyPath:["clobber"]})},e=>{e.createObjectStore("oob_membership_events",{keyPath:["room_id","state_key"]}).createIndex("room","room_id")},e=>{e.createObjectStore("client_options",{keyPath:["clobber"]})},e=>{e.createObjectStore("to_device_queue",{autoIncrement:!0})},e=>{e.createObjectStore("user_profile",{keyPath:["userId"]})}],l=d.length;function c(e,t,n){const r=e.openCursor(t);return new Promise((t,s)=>{const i=[];r.onerror=()=>{s(new Error(`selectQuery failed for ${e.name}`,{cause:r.error}))},r.onsuccess=()=>{const e=r.result;e?(i.push(n(e)),e.continue()):t(i)}})}function u(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(){n(e.error)}})}function m(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(){n(e.error)}})}function p(e){return m(e).then(t=>e.result)}class h{static exists(e,t){return t="matrix-js-sdk:"+(t||"default"),(0,o.t)(e,t)}constructor(e,t="default"){(0,r.A)(this,"dbName",void 0),(0,r.A)(this,"syncAccumulator",void 0),(0,r.A)(this,"db",void 0),(0,r.A)(this,"disconnected",!0),(0,r.A)(this,"_isNewlyCreated",!1),(0,r.A)(this,"syncToDatabasePromise",void 0),(0,r.A)(this,"pendingUserPresenceData",[]),this.indexedDB=e,this.dbName="matrix-js-sdk:"+t,this.syncAccumulator=new s.w}connect(e){if(!this.disconnected)return a.vF.log("LocalIndexedDBStoreBackend.connect: already connected or connecting"),Promise.resolve();this.disconnected=!1,a.vF.log("LocalIndexedDBStoreBackend.connect: connecting...");const t=this.indexedDB.open(this.dbName,l);return t.onupgradeneeded=e=>{const n=t.result,r=e.oldVersion;a.vF.log(`LocalIndexedDBStoreBackend.connect: upgrading from ${r}`),r<1&&(this._isNewlyCreated=!0),d.forEach((e,t)=>{r<=t&&e(n)})},t.onblocked=()=>{a.vF.log("can't yet open LocalIndexedDBStoreBackend because it is open elsewhere")},a.vF.log("LocalIndexedDBStoreBackend.connect: awaiting connection..."),m(t).then(async()=>{a.vF.log("LocalIndexedDBStoreBackend.connect: connected"),this.db=t.result,this.db.onversionchange=()=>{var e;null===(e=this.db)||void 0===e||e.close(),this.disconnected=!0,this.db=void 0},this.db.onclose=()=>{this.disconnected=!0,this.db=void 0,null==e||e()},await this.init()})}isNewlyCreated(){return Promise.resolve(this._isNewlyCreated)}init(){return Promise.all([this.loadAccountData(),this.loadSyncData()]).then(([e,t])=>{a.vF.log("LocalIndexedDBStoreBackend: loaded initial data"),this.syncAccumulator.accumulate({next_batch:t.nextBatch,rooms:t.roomsData,account_data:{events:e}},!0)})}getOutOfBandMembers(e){return new Promise((t,n)=>{const r=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),s=IDBKeyRange.only(e),i=r.openCursor(s),o=[];let a=!1;i.onsuccess=()=>{const e=i.result;if(!e)return o.length||a?t(o):t(null);const n=e.value;n.oob_written?a=!0:o.push(n),e.continue()},i.onerror=e=>{n(e)}}).then(t=>(a.vF.log(`LL: got ${null==t?void 0:t.length} membershipEvents from storage for room ${e} ...`),t))}async setOutOfBandMembers(e,t){a.vF.log(`LL: backend about to store ${t.length} members for ${e}`);const n=this.db.transaction(["oob_membership_events"],"readwrite"),r=n.objectStore("oob_membership_events");t.forEach(e=>{r.put(e)});const s={room_id:e,oob_written:!0,state_key:0};r.put(s),await u(n),a.vF.log(`LL: backend done storing for ${e}!`)}async clearOutOfBandMembers(e){const t=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),n=IDBKeyRange.only(e),r=p(t.openKeyCursor(n,"next")).then(e=>{var t;return null==e||null===(t=e.primaryKey)||void 0===t?void 0:t[1]}),s=p(t.openKeyCursor(n,"prev")).then(e=>{var t;return null==e||null===(t=e.primaryKey)||void 0===t?void 0:t[1]}),[i,o]=await Promise.all([r,s]),d=this.db.transaction(["oob_membership_events"],"readwrite").objectStore("oob_membership_events"),l=IDBKeyRange.bound([e,i],[e,o]);var c;a.vF.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,i],[e,o]),await(c=d.delete(l),new Promise((e,t)=>{c.onsuccess=()=>e(c),c.onerror=e=>t(e)}))}clearDatabase(){return new Promise(e=>{var t;a.vF.log(`Removing indexeddb instance: ${this.dbName}`),null===(t=this.db)||void 0===t||t.close();const n=this.indexedDB.deleteDatabase(this.dbName);n.onblocked=()=>{a.vF.log(`can't yet delete indexeddb ${this.dbName} because it is open elsewhere`)},n.onerror=()=>{var t;a.vF.warn(`unable to delete js-sdk store indexeddb: ${null===(t=n.error)||void 0===t?void 0:t.name}`),e()},n.onsuccess=()=>{a.vF.log(`Removed indexeddb instance: ${this.dbName}`),e()}})}getSavedSync(e=!0){const t=this.syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve((0,i.A4)(t)):Promise.resolve(t):Promise.resolve(null)}getNextBatchToken(){return Promise.resolve(this.syncAccumulator.getNextBatchToken())}setSyncData(e){return Promise.resolve().then(()=>{this.syncAccumulator.accumulate(e)})}async syncToDatabase(e){return this.syncToDatabasePromise?(a.vF.warn("Skipping syncToDatabase() as persist already in flight"),this.pendingUserPresenceData.push(...e),this.syncToDatabasePromise):(e.unshift(...this.pendingUserPresenceData),this.syncToDatabasePromise=this.doSyncToDatabase(e),this.syncToDatabasePromise)}async doSyncToDatabase(e){try{const t=this.syncAccumulator.getJSON(!0);await Promise.all([this.persistUserPresenceEvents(e),this.persistAccountData(t.accountData),this.persistSyncData(t.nextBatch,t.roomsData)])}finally{this.syncToDatabasePromise=void 0}}persistSyncData(e,t){return a.vF.log("Persisting sync data up to",e),(0,i.j0)(()=>{const n=this.db.transaction(["sync"],"readwrite");return n.objectStore("sync").put({clobber:"-",nextBatch:e,roomsData:t}),u(n).then(()=>{a.vF.log("Persisted sync data up to",e)})})}persistAccountData(e){return(0,i.j0)(()=>{const t=this.db.transaction(["accountData"],"readwrite"),n=t.objectStore("accountData");for(const t of e)n.put(t);return u(t).then()})}persistUserPresenceEvents(e){return(0,i.j0)(()=>{const t=this.db.transaction(["users"],"readwrite"),n=t.objectStore("users");for(const t of e)n.put({userId:t[0],event:t[1]});return u(t).then()})}getUserPresenceEvents(){return(0,i.j0)(()=>c(this.db.transaction(["users"],"readonly").objectStore("users"),void 0,e=>[e.value.userId,e.value.event]))}loadAccountData(){return a.vF.log("LocalIndexedDBStoreBackend: loading account data..."),(0,i.j0)(()=>c(this.db.transaction(["accountData"],"readonly").objectStore("accountData"),void 0,e=>e.value).then(e=>(a.vF.log("LocalIndexedDBStoreBackend: loaded account data"),e)))}loadSyncData(){return a.vF.log("LocalIndexedDBStoreBackend: loading sync data..."),(0,i.j0)(()=>c(this.db.transaction(["sync"],"readonly").objectStore("sync"),void 0,e=>e.value).then(e=>(a.vF.log("LocalIndexedDBStoreBackend: loaded sync data"),e.length>1&&a.vF.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{})))}getClientOptions(){return Promise.resolve().then(()=>c(this.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,e=>{var t;return null===(t=e.value)||void 0===t?void 0:t.options}).then(e=>e[0]))}async storeClientOptions(e){const t=this.db.transaction(["client_options"],"readwrite");t.objectStore("client_options").put({clobber:"-",options:e}),await u(t)}async saveToDeviceBatches(e){const t=this.db.transaction(["to_device_queue"],"readwrite"),n=t.objectStore("to_device_queue");for(const t of e)n.add(t);await u(t)}async getOldestToDeviceBatch(){const e=this.db.transaction(["to_device_queue"],"readonly").objectStore("to_device_queue"),t=await p(e.openCursor());if(!t)return null;const n=t.value;return{id:t.key,txnId:n.txnId,eventType:n.eventType,batch:n.batch}}async removeToDeviceBatch(e){const t=this.db.transaction(["to_device_queue"],"readwrite");t.objectStore("to_device_queue").delete(e),await u(t)}async getUserProfile(e){return Promise.resolve().then(()=>c(this.db.transaction(["user_profile"],"readonly").objectStore("user_profile"),[e],e=>{var t;return null===(t=e.value)||void 0===t?void 0:t.profile}).then(e=>e[0]))}async storeUserProfiles(e){const t=this.db.transaction(["user_profile"],"readwrite"),n=t.objectStore("user_profile");for(const[t,r]of e.entries())n.put({profile:r,userId:t});await u(t)}async removeUserProfiles(e){const t=this.db.transaction(["user_profile"],"readwrite"),n=t.objectStore("user_profile");for(const t of e)n.delete([t]);await u(t)}async removeEventsFromRoom(e,t){try{this.syncAccumulator.removeEventsFromRoom(e,t);const n=this.syncAccumulator.getJSON(!0);await this.persistSyncData(n.nextBatch,n.roomsData)}finally{this.syncToDatabasePromise=void 0}}async destroy(){var e;null===(e=this.db)||void 0===e||e.close()}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/store/stub.ts"(e,t,n){"use strict";n.d(t,{E:()=>s});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(){(0,r.A)(this,"accountData",new Map),(0,r.A)(this,"fromToken",null)}isNewlyCreated(){return Promise.resolve(!0)}getSyncToken(){return this.fromToken}setSyncToken(e){this.fromToken=e}storeRoom(e){}getRoom(e){return null}getRooms(){return[]}removeRoom(e){}getRoomSummaries(){return[]}storeUser(e){}getUser(e){return null}getUsers(){return[]}scrollback(e,t){return[]}setUserCreator(e){}storeEvents(e,t,n,r){}storeFilter(e){}getFilter(e,t){return null}getFilterIdByName(e){return null}setFilterIdByName(e,t){}storeAccountDataEvents(e){}getAccountData(e){}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(){return Promise.resolve()}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return Promise.resolve()}getOutOfBandMembers(){return Promise.resolve(null)}setOutOfBandMembers(e,t){return Promise.resolve()}clearOutOfBandMembers(){return Promise.resolve()}getClientOptions(){return Promise.resolve(void 0)}storeClientOptions(e){return Promise.resolve()}async getPendingEvents(e){return[]}setPendingEvents(e,t){return Promise.resolve()}async saveToDeviceBatches(e){return Promise.resolve()}getOldestToDeviceBatch(){return Promise.resolve(null)}async removeToDeviceBatch(e){return Promise.resolve()}async getUserProfile(){}async storeUserProfiles(){}async removeUserProfiles(){}async destroy(){}async removeEventsFromRoom(e,t){}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/thread-utils.ts"(e,t,n){"use strict";n.d(t,{q:()=>s});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/thread.ts");function s(e){return t=>{var n,s;return(null===(n=t.content)||void 0===n||null===(n=n["m.relates_to"])||void 0===n?void 0:n.event_id)!==e||(null===(s=t.content)||void 0===s||null===(s=s["m.relates_to"])||void 0===s?void 0:s.rel_type)===r.RN.name}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils/encryptAESSecretStorageItem.ts"(e,t,n){"use strict";n.d(t,{A:()=>i});var r=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/base64.ts"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils/internal/deriveKeys.ts");async function i(e,t,n,i){let o;i?o=(0,r.y4)(i):(o=new Uint8Array(16),globalThis.crypto.getRandomValues(o),o[8]&=127);const[a,d]=await(0,s.C)(t,n),l=(new TextEncoder).encode(e),c=await globalThis.crypto.subtle.encrypt({name:"AES-CTR",counter:o,length:64},a,l),u=await globalThis.crypto.subtle.sign({name:"HMAC"},d,c);return{iv:(0,r.WG)(o),ciphertext:(0,r.WG)(new Uint8Array(c)),mac:(0,r.WG)(new Uint8Array(u))}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils/internal/deriveKeys.ts"(e,t,n){"use strict";n.d(t,{C:()=>s});const r=new Uint8Array(8);async function s(e,t){const n=await globalThis.crypto.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"]),s=await globalThis.crypto.subtle.deriveBits({name:"HKDF",salt:r,info:(new TextEncoder).encode(t),hash:"SHA-256"},n,512),i=s.slice(0,32),o=s.slice(32),a=globalThis.crypto.subtle.importKey("raw",i,{name:"AES-CTR"},!1,["encrypt","decrypt"]),d=globalThis.crypto.subtle.importKey("raw",o,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]);return Promise.all([a,d])}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/utils/roomVersion.ts"(e,t,n){"use strict";n.d(t,{H:()=>s});const r=["1","2","3","4","5","6","7","8","9","10","11"];function s(e){return!r.includes(e)}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/audioContext.ts"(e,t,n){"use strict";n.d(t,{N:()=>o,o:()=>i});let r=null,s=0;const i=()=>(null===r&&(r=new AudioContext),s++,r),o=()=>{var e;(s--,0===s)&&(null===(e=r)||void 0===e||e.close(),r=null)}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/callEventHandler.ts"(e,t,n){"use strict";n.d(t,{B:()=>c,N:()=>u});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/call.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/groupCall.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room.ts");let c=function(e){return e.Incoming="Call.incoming",e}({});class u{constructor(e){(0,r.A)(this,"calls",void 0),(0,r.A)(this,"callEventBuffer",void 0),(0,r.A)(this,"nextSeqByCall",new Map),(0,r.A)(this,"toDeviceEventBuffers",new Map),(0,r.A)(this,"client",void 0),(0,r.A)(this,"candidateEventsByCall",void 0),(0,r.A)(this,"eventBufferPromiseChain",void 0),(0,r.A)(this,"onSync",()=>{const e=this.callEventBuffer;this.callEventBuffer=[],this.eventBufferPromiseChain?this.eventBufferPromiseChain=this.eventBufferPromiseChain.then(()=>this.evaluateEventBuffer(e)):this.eventBufferPromiseChain=this.evaluateEventBuffer(e)}),(0,r.A)(this,"onRoomTimeline",e=>{this.callEventBuffer.push(e)}),(0,r.A)(this,"onToDeviceEvent",e=>{const t=e.getContent();if(!t.call_id)return void this.callEventBuffer.push(e);if(this.nextSeqByCall.has(t.call_id)||this.nextSeqByCall.set(t.call_id,0),void 0===t.seq)return void this.callEventBuffer.push(e);const n=this.nextSeqByCall.get(t.call_id)||0;if(t.seq!==n){this.toDeviceEventBuffers.has(t.call_id)||this.toDeviceEventBuffers.set(t.call_id,[]);const n=this.toDeviceEventBuffers.get(t.call_id),r=n.findIndex(e=>e.getContent().seq>t.seq);-1===r?n.push(e):n.splice(r,0,e)}else{const n=t.call_id;this.callEventBuffer.push(e),this.nextSeqByCall.set(n,t.seq+1);const r=this.toDeviceEventBuffers.get(n);let s=r&&r.shift();for(;s&&s.getContent().seq===this.nextSeqByCall.get(n);)this.callEventBuffer.push(s),this.nextSeqByCall.set(n,s.getContent().seq+1),s=r.shift()}}),this.client=e,this.calls=new Map,this.callEventBuffer=[],this.candidateEventsByCall=new Map}start(){this.client.on(a.AU.Sync,this.onSync),this.client.on(l.u9.Timeline,this.onRoomTimeline),this.client.on(a.AU.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.removeListener(a.AU.Sync,this.onSync),this.client.removeListener(l.u9.Timeline,this.onRoomTimeline),this.client.removeListener(a.AU.ToDeviceEvent,this.onToDeviceEvent)}async evaluateEventBuffer(e){await Promise.all(e.map(e=>this.client.decryptEventIfNeeded(e)));const t=e.filter(e=>{const t=e.getType();return t.startsWith("m.call.")||t.startsWith("org.matrix.call.")}),n=new Set;for(const e of t){const t=e.getType();t!==o.Bx.CallAnswer&&t!==o.Bx.CallHangup||n.add(e.getContent().call_id)}for(const e of t){const t=e.getType(),r=e.getContent().call_id;if(t!==o.Bx.CallInvite||!n.has(r))try{await this.handleCallEvent(e)}catch(e){s.vF.error("CallEventHandler evaluateEventBuffer() caught exception handling call event",e)}}}async handleCallEvent(e){var t;this.client.emit(a.AU.ReceivedVoipEvent,e);const n=e.getContent(),r=e.getRoomId()||(null===(t=this.client.groupCallEventHandler.getGroupCallById(n.conf_id))||void 0===t||null===(t=t.room)||void 0===t?void 0:t.roomId),l=n.conf_id,u=e.getType(),m=e.getSender();let p,h,g=n.call_id?this.calls.get(n.call_id):void 0;if(l){if(h=this.client.groupCallEventHandler.getGroupCallById(l),!h)return void s.vF.warn(`CallEventHandler handleCallEvent() could not find a group call - ignoring event (groupCallId=${l}, type=${u})`);if(p=n.device_id,!p)return s.vF.warn(`CallEventHandler handleCallEvent() could not find a device id - ignoring event (senderId=${m})`),void h.emit(d.AZ.Error,new d.Iy(m));if(n.dest_session_id!==this.client.getSessionId())return void s.vF.warn("CallEventHandler handleCallEvent() call event does not match current session id - ignoring")}const f=m===this.client.credentials.userId&&(void 0===p||p===this.client.getDeviceId());if(r){if(u===o.Bx.CallInvite){var v,y,_;if(f)return;if(e.getLocalAge()>n.lifetime-3e3)return;if(g&&g.state===i.iP.Ended)return;if(g&&s.vF.warn(`CallEventHandler handleCallEvent() already has a call but got an invite - clobbering (callId=${n.call_id})`),n.invitee&&n.invitee!==this.client.getUserId())return;const t=(null!==(v=this.client.getTurnServersExpiry())&&void 0!==v?v:0)-Date.now();if(s.vF.info("CallEventHandler handleCallEvent() current turn creds expire in "+t+" ms"),g=null!==(y=(0,i.sv)(this.client,r,{forceTURN:this.client.forceTURN,opponentDeviceId:p,groupCallId:l,opponentSessionId:n.sender_session_id}))&&void 0!==y?y:void 0,!g)return void s.vF.log(`CallEventHandler handleCallEvent() this client does not support WebRTC (callId=${n.call_id})`);g.callId=n.call_id;const o=null===(_=h)||void 0===_?void 0:_.getGroupCallStats();o&&g.initStats(o);try{await g.initWithInvite(e)}catch(e){var b;if(e instanceof i.RA)if(e.code===d.BF.UnknownDevice)null===(b=h)||void 0===b||b.emit(d.AZ.Error,e);else s.vF.error(e)}if(this.calls.set(g.callId,g),this.candidateEventsByCall.get(g.callId))for(const e of this.candidateEventsByCall.get(g.callId))g.onRemoteIceCandidatesReceived(e);let a;for(const e of this.calls.values()){var w;const t=[i.iP.WaitLocalMedia,i.iP.CreateOffer,i.iP.InviteSent].includes(e.state);if(g.roomId===e.roomId&&e.direction===i.QO.Outbound&&(null===(w=g.getOpponentMember())||void 0===w?void 0:w.userId)===e.invitee&&t){a=e;break}}return void(a?a.callId>g.callId?(s.vF.log(`CallEventHandler handleCallEvent() detected glare - answering incoming call and canceling outgoing call (incomingId=${g.callId}, outgoingId=${a.callId})`),a.replacedBy(g)):(s.vF.log(`CallEventHandler handleCallEvent() detected glare - hanging up incoming call (incomingId=${g.callId}, outgoingId=${a.callId})`),g.hangup(i.Il.Replaced,!0)):this.client.emit(c.Incoming,g))}if(u!==o.Bx.CallCandidates){var k;if([o.Bx.CallHangup,o.Bx.CallReject].includes(u))g?g.state!==i.iP.Ended&&(u===o.Bx.CallHangup?g.onHangupReceived(n):g.onRejectReceived(n),g.state===i.iP.Ended&&this.calls.delete(n.call_id)):(g=null!==(k=(0,i.sv)(this.client,r,{opponentDeviceId:p,opponentSessionId:n.sender_session_id}))&&void 0!==k?k:void 0,g&&(g.callId=n.call_id,g.initWithHangup(e),this.calls.set(n.call_id,g)));else if(g&&g.hasPeerConnection){if(e.getContent().party_id!==g.ourPartyId)switch(u){case o.Bx.CallAnswer:f?g.state===i.iP.Ringing&&g.onAnsweredElsewhere(n):g.onAnswerReceived(e);break;case o.Bx.CallSelectAnswer:g.onSelectAnswerReceived(e);break;case o.Bx.CallNegotiate:g.onNegotiateReceived(e);break;case o.Bx.CallAssertedIdentity:case o.Bx.CallAssertedIdentityPrefix:g.onAssertedIdentityReceived(e);break;case o.Bx.CallSDPStreamMetadataChanged:case o.Bx.CallSDPStreamMetadataChangedPrefix:g.onSDPStreamMetadataChangedReceived(e)}}else s.vF.info(`CallEventHandler handleCallEvent() discarding possible call event as we don't have a call (type=${u})`)}else{if(f)return;g?g.onRemoteIceCandidatesReceived(e):(this.candidateEventsByCall.has(n.call_id)||this.candidateEventsByCall.set(n.call_id,[]),this.candidateEventsByCall.get(n.call_id).push(e))}}}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/callEventTypes.ts"(e,t,n){"use strict";n.d(t,{A:()=>r,h:()=>s});const r=new(n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/NamespacedValue.ts").xu)("sdp_stream_metadata","org.matrix.msc3077.sdp_stream_metadata");let s=function(e){return e.Usermedia="m.usermedia",e.Screenshare="m.screenshare",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/groupCallEventHandler.ts"(e,t,n){"use strict";n.d(t,{e:()=>u,o:()=>c});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/client.ts"),i=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/groupCall.ts"),o=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/room-state.ts"),a=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),d=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/@types/event.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/sync.ts");let c=function(e){return e.Incoming="GroupCall.incoming",e.Outgoing="GroupCall.outgoing",e.Ended="GroupCall.ended",e.Participants="GroupCall.participants",e}({});class u{constructor(e){(0,r.A)(this,"groupCalls",new Map),(0,r.A)(this,"roomDeferreds",new Map),(0,r.A)(this,"onRoomsChanged",e=>{this.createGroupCallForRoom(e)}),(0,r.A)(this,"onRoomStateChanged",(e,t)=>{if(e.getType()===d.Bx.GroupCallPrefix){const n=e.getStateKey(),r=e.getContent(),s=this.groupCalls.get(t.roomId);s||r["m.terminated"]||e.isRedacted()?s&&s.groupCallId===n?r["m.terminated"]||e.isRedacted()?s.terminate(!1):r["m.type"]!==s.type&&a.vF.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support changing type (roomId=${t.roomId})`):s&&s.groupCallId!==n&&a.vF.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support multiple calls (roomId=${t.roomId})`):this.createGroupCallFromRoomStateEvent(e)}}),this.client=e}async start(){this.client.getSyncState()!==l.Lm.Syncing&&(a.vF.debug("GroupCallEventHandler start() waiting for client to start syncing"),await new Promise(e=>{const t=()=>{if(this.client.getSyncState()===l.Lm.Syncing)return this.client.off(s.AU.Sync,t),e()};this.client.on(s.AU.Sync,t)}));const e=this.client.getRooms();for(const t of e)this.createGroupCallForRoom(t);this.client.on(s.AU.Room,this.onRoomsChanged),this.client.on(o.f.Events,this.onRoomStateChanged)}stop(){this.client.removeListener(s.AU.Room,this.onRoomsChanged),this.client.removeListener(o.f.Events,this.onRoomStateChanged)}getRoomDeferred(e){let t=this.roomDeferreds.get(e);if(void 0===t){let n;t={prom:new Promise(e=>{n=e})},t.resolve=n,this.roomDeferreds.set(e,t)}return t}waitUntilRoomReadyForGroupCalls(e){return this.getRoomDeferred(e).prom}getGroupCallById(e){return[...this.groupCalls.values()].find(t=>t.groupCallId===e)}createGroupCallForRoom(e){const t=e.currentState.getStateEvents(d.Bx.GroupCallPrefix),n=t.sort((e,t)=>t.getTs()-e.getTs());for(const r of n){if(!r.getContent()["m.terminated"]&&!r.isRedacted()){a.vF.debug(`GroupCallEventHandler createGroupCallForRoom() choosing group call from possible calls (stateKey=${r.getStateKey()}, ts=${r.getTs()}, roomId=${e.roomId}, numOfPossibleCalls=${t.length})`),this.createGroupCallFromRoomStateEvent(r);break}}this.getRoomDeferred(e.roomId).resolve()}createGroupCallFromRoomStateEvent(e){const t=e.getRoomId(),n=e.getContent(),r=this.client.getRoom(t);if(!r)return void a.vF.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() couldn't find room for call (roomId=${t})`);const s=e.getStateKey(),o=n["m.type"];if(!Object.values(i.Ad).includes(o))return void a.vF.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() received invalid call type (type=${o}, roomId=${t})`);const d=n["m.intent"];if(!Object.values(i.MC).includes(d))return void a.vF.warn(`Received invalid group call intent (type=${o}, roomId=${t})`);const l=Boolean(n["io.element.ptt"]);let u;if(null!=n&&n.dataChannelsEnabled&&null!=n&&n.dataChannelOptions){const{ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s}=n.dataChannelOptions;u={ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s}}const m=new i.eO(this.client,r,o,l,d,s,(null==n?void 0:n.dataChannelsEnabled)||this.client.isVoipWithNoMediaAllowed,u,this.client.isVoipWithNoMediaAllowed,this.client.useLivekitForGroupCalls,n["io.element.livekit_service_url"]);return this.groupCalls.set(r.roomId,m),this.client.emit(c.Incoming,m),m}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/callFeedStatsReporter.ts"(e,t,n){"use strict";n.d(t,{F:()=>r});class r{static buildCallFeedReport(e,t,n){const s=n.getTransceivers(),i=[];return s.forEach(e=>{var t;const n=null!==(t=e.sender)&&void 0!==t&&t.track?r.buildTrackStats(e.sender.track,"sender"):null,s=r.buildTrackStats(e.receiver.track,"receiver");i.push({mid:null==e.mid?"null":e.mid,direction:e.direction,currentDirection:null==e.currentDirection?"null":e.currentDirection,sender:n,receiver:s})}),{callId:e,opponentMemberId:t,transceiver:i,callFeeds:[]}}static buildTrackStats(e,t="--"){var n,r;const s=null===(n=e.getSettings())||void 0===n?void 0:n.deviceId,i=null===(r=e.getConstraints())||void 0===r?void 0:r.deviceId;return{id:e.id,kind:e.kind,settingDeviceId:null!=s?s:"unknown",constrainDeviceId:null!=i?i:"unknown",muted:e.muted,enabled:e.enabled,readyState:e.readyState,label:t}}static expandCallFeedReport(e,t,n="unknown"){return t.forEach(t=>{const s=t.stream.getAudioTracks(),i=t.stream.getVideoTracks(),o=s.length>0?r.buildTrackStats(t.stream.getAudioTracks()[0],t.purpose):null,a=i.length>0?r.buildTrackStats(t.stream.getVideoTracks()[0],t.purpose):null,d={stream:t.stream.id,type:t.isLocal()?"local":"remote",audio:o,video:a,purpose:t.purpose,prefix:n,isVideoMuted:t.isVideoMuted(),isAudioMuted:t.isAudioMuted()};e.callFeeds.push(d)}),e}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/groupCallStats.ts"(e,t,n){"use strict";n.d(t,{r:()=>E});var r=n("../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(){(0,r.A)(this,"bandwidth",{}),(0,r.A)(this,"bitrate",{}),(0,r.A)(this,"packetLoss",{}),(0,r.A)(this,"transport",[])}}class i{static buildBandwidthReport(e){const t=e.availableIncomingBitrate,n=e.availableOutgoingBitrate;return{download:t?Math.round(t/1e3):0,upload:n?Math.round(n/1e3):0}}}class o{static buildReport(e,t,n,r){const s=null==e?void 0:e.get(t.localCandidateId),i=null==e?void 0:e.get(t.remoteCandidateId);if(i&&s){const e=`${void 0!==i.ip?i.ip:i.address}:${i.port}`,o=`${void 0!==s.ip?s.ip:s.address}:${s.port}`,a=i.protocol;n.some(t=>t.ip===e&&t.type===a&&t.localIp===o)||n.push({ip:e,type:a,localIp:o,isFocus:r,localCandidateType:s.candidateType,remoteCandidateType:i.candidateType,networkType:s.networkType,rtt:t.currentRoundTripTime?1e3*t.currentRoundTripTime:NaN})}return n}}var a=n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/index.js");class d{constructor(){(0,r.A)(this,"ssrcToMid",{local:new Map,remote:new Map})}findMidBySsrc(e,t){let n;return this.ssrcToMid[t].forEach((t,r)=>{t.find(t=>t==e)&&(n=r)}),n}parse(e,t){const n=(0,a.qg)(e),r=new Map;n.media.forEach(e=>{if(e.mid&&"video"===e.type||"audio"===e.type){var t;const n=[];null===(t=e.ssrcs)||void 0===t||t.forEach(e=>{"cname"===e.attribute&&n.push(`${e.id}`)}),r.set(`${e.mid}`,n)}}),this.ssrcToMid[t]=r}getSsrcToMidMap(e){return this.ssrcToMid[e]}}class l{constructor(e){this.pc=e}getLocalTracks(e){return this.pc.getTransceivers().filter(e=>"sendonly"===e.currentDirection||"sendrecv"===e.currentDirection).filter(e=>null!==e.sender).map(e=>e.sender).map(e=>e.track).filter(t=>null!==t&&t.kind===e)}getTackById(e){return this.pc.getTransceivers().map(t=>null!==(null==t?void 0:t.sender.track)&&t.sender.track.id===e?t.sender.track:null!==(null==t?void 0:t.receiver.track)&&t.receiver.track.id===e?t.receiver.track:void 0).find(e=>void 0!==e)}getLocalTrackIdByMid(e){var t;const n=this.pc.getTransceivers().find(t=>t.mid===e);return null==n||null===(t=n.sender)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id}getRemoteTrackIdByMid(e){var t;const n=this.pc.getTransceivers().find(t=>t.mid===e);return null==n||null===(t=n.receiver)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id}getActiveSimulcastStreams(){return 3}getTransceiverByTrackId(e){return this.pc.getTransceivers().find(t=>t.receiver.track.id===e||null!==t.sender.track&&t.sender.track.id===e)}}class c{constructor(e,t,n){(0,r.A)(this,"loss",{packetsTotal:0,packetsLost:0,isDownloadStream:!1}),(0,r.A)(this,"bitrate",{download:0,upload:0}),(0,r.A)(this,"resolution",{width:-1,height:-1}),(0,r.A)(this,"audioConcealment",{concealedAudio:0,totalAudioDuration:0}),(0,r.A)(this,"framerate",0),(0,r.A)(this,"jitter",0),(0,r.A)(this,"codec",""),(0,r.A)(this,"isAlive",!0),(0,r.A)(this,"isMuted",!1),(0,r.A)(this,"isEnabled",!0),this.trackId=e,this.type=t,this.kind=n}getType(){return this.type}setLoss(e){this.loss=e}getLoss(){return this.loss}setResolution(e){this.resolution=e}getResolution(){return this.resolution}setFramerate(e){this.framerate=e}getFramerate(){return this.framerate}setBitrate(e){this.bitrate=e}getBitrate(){return this.bitrate}setCodec(e){return this.codec=e,!0}getCodec(){return this.codec}resetBitrate(){this.bitrate={download:0,upload:0}}set alive(e){this.isAlive=e}get alive(){return this.isAlive}set muted(e){this.isMuted=e}get muted(){return this.isMuted}set enabled(e){this.isEnabled=e}get enabled(){return this.isEnabled}setJitter(e){this.jitter=e}getJitter(){return this.jitter}setAudioConcealment(e,t){this.audioConcealment.concealedAudio=e,this.audioConcealment.totalAudioDuration=t}getAudioConcealment(){return this.audioConcealment}}class u{constructor(e,t){(0,r.A)(this,"track2stats",new Map),this.mediaSsrcHandler=e,this.mediaTrackHandler=t}findTrack2Stats(e,t){let n;if(e.trackIdentifier)n=e.trackIdentifier;else if(e.mid)n="remote"===t?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid);else if(e.ssrc){if(!this.mediaSsrcHandler.findMidBySsrc(e.ssrc,t))return;n="remote"===t?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid)}if(!n)return;let r=this.track2stats.get(n);if(!r){const e=this.mediaTrackHandler.getTackById(n);if(void 0===e)return;{const s="audio"===e.kind?e.kind:"video";r=new c(n,t,s),this.track2stats.set(n,r)}}return r}findLocalVideoTrackStats(e){if(0!==this.mediaTrackHandler.getLocalTracks("video").length)return this.findTrack2Stats(e,"local")}getTrack2stats(){return this.track2stats}findTransceiverByTrackId(e){return this.mediaTrackHandler.getTransceiverByTrackId(e)}}class m{static getNonNegativeValue(e){let t=e;return"number"!=typeof t&&(t=Number(t)),isNaN(t)?0:Math.max(0,t)}}class p{static buildFramerateResolution(e,t){const n={height:t.frameHeight,width:t.frameWidth},r=t.framesPerSecond;n.height&&n.width&&e.setResolution(n),e.setFramerate(Math.round(r||0))}static calculateSimulcastFramerate(e,t,n,r){let s=e.getFramerate();if(!s){if(n){const e=t.timestamp-n.timestamp;if(e>0&&t.framesSent){s=(t.framesSent-n.framesSent)/e*1e3}}if(!s)return}s=r?Math.round(s/r):0,e.setFramerate(s)}static buildCodec(e,t,n){const r=null==e?void 0:e.get(n.codecId);if(r){const e=r.mimeType.split("/")[1];e&&t.setCodec(e)}}static buildBitrateReceived(e,t,n){e.setBitrate({download:p.calculateBitrate(t.bytesReceived,n.bytesReceived,t.timestamp,n.timestamp),upload:0})}static buildBitrateSend(e,t,n){e.setBitrate({download:0,upload:this.calculateBitrate(t.bytesSent,n.bytesSent,t.timestamp,n.timestamp)})}static buildPacketsLost(e,t,n){const r="outbound-rtp"===t.type?"packetsSent":"packetsReceived";let s=t[r];(!s||s<0)&&(s=0);const i=m.getNonNegativeValue(n[r]),o=Math.max(0,s-i),a=m.getNonNegativeValue(t.packetsLost),d=m.getNonNegativeValue(n.packetsLost),l=Math.max(0,a-d);e.setLoss({packetsTotal:o+l,packetsLost:l,isDownloadStream:"outbound-rtp"!==t.type})}static calculateBitrate(e,t,n,r){const s=m.getNonNegativeValue(e),i=m.getNonNegativeValue(t),o=Math.max(0,s-i),a=n-r;let d=0;return a>0&&(d=Math.round(8*o/a)),d}static setTrackStatsState(e,t){var n;if(void 0===t)return void(e.alive=!1);const r="remote"===e.getType()?t.receiver.track:null==t||null===(n=t.sender)||void 0===n?void 0:n.track;null!=r&&"ended"!==r.readyState?(e.muted=r.muted,e.enabled=r.enabled,e.alive=!0):e.alive=!1}static buildTrackSummary(e){const t={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},n={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},r=e.filter(e=>"remote"===e.getType()),s=r.filter(e=>"audio"===e.kind);return r.forEach(e=>{const r="video"===e.kind?t:n;var i,o;(r.count++,e.alive&&e.muted&&r.muted++,r.maxJitter<e.getJitter()&&(r.maxJitter=e.getJitter()),r.maxPacketLoss<e.getLoss().packetsLost&&(r.maxPacketLoss=e.getLoss().packetsLost),s.length>0)&&(r.concealedAudio+=null===(i=e.getAudioConcealment())||void 0===i?void 0:i.concealedAudio,r.totalAudio+=null===(o=e.getAudioConcealment())||void 0===o?void 0:o.totalAudioDuration)}),{audioTrackSummary:n,videoTrackSummary:t}}static buildJitter(e,t){if("inbound-rtp"!==t.type)return;const n=null==t?void 0:t.jitter;if(void 0!==n){const t=m.getNonNegativeValue(n);e.setJitter(Math.round(1e3*t))}else e.setJitter(-1)}static buildAudioConcealment(e,t){if("inbound-rtp"!==t.type)return;const n=1e3*(null==t?void 0:t.totalSamplesDuration)/(null==t?void 0:t.totalSamplesReceived)*(null==t?void 0:t.concealedSamples),r=1e3*(null==t?void 0:t.totalSamplesDuration);e.setAudioConcealment(n,r)}}class h{static build(e){const t={},n={download:0,upload:0},r={download:0,upload:0};let s=0,i=0;const o={local:new Map,remote:new Map},a={local:new Map,remote:new Map},d={local:new Map,remote:new Map},l=new Map,c=new Map;let u=0,m=0,p=0,g=0,f=0,v=0;for(const[t,h]of e){const e=h.getLoss(),y=e.isDownloadStream?"download":"upload";if(n[y]+=e.packetsTotal,r[y]+=e.packetsLost,s+=h.getBitrate().download,i+=h.getBitrate().upload,"audio"===h.kind){const e=h.getAudioConcealment();f+=e.concealedAudio,v+=e.totalAudioDuration,u+=h.getBitrate().download,m+=h.getBitrate().upload}else p+=h.getBitrate().download,g+=h.getBitrate().upload;o[h.getType()].set(t,h.getResolution()),a[h.getType()].set(t,h.getFramerate()),d[h.getType()].set(t,h.getCodec()),"remote"===h.getType()&&(l.set(t,h.getJitter()),"audio"===h.kind&&c.set(t,h.getAudioConcealment())),h.resetBitrate()}return t.bitrate={upload:i,download:s},t.bitrate.audio={upload:m,download:u},t.bitrate.video={upload:g,download:p},t.packetLoss={total:h.calculatePacketLoss(r.download+r.upload,n.download+n.upload),download:h.calculatePacketLoss(r.download,n.download),upload:h.calculatePacketLoss(r.upload,n.upload)},t.audioConcealment=c,t.totalAudioConcealment={concealedAudio:f,totalAudioDuration:v},t.framerate=a,t.resolution=o,t.codec=d,t.jitter=l,t}static calculatePacketLoss(e,t){return!t||t<=0||!e||e<=0?0:Math.round(e/t*100)}}var g=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/logger.ts"),f=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/callFeedStatsReporter.ts");function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach(function(t){(0,r.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class _{constructor(e,t,n,i,o=!0){(0,r.A)(this,"isActive",!0),(0,r.A)(this,"previousStatsReport",void 0),(0,r.A)(this,"currentStatsReport",void 0),(0,r.A)(this,"connectionStats",new s),(0,r.A)(this,"trackStats",void 0),this.callId=e,this.opponentMemberId=t,this.pc=n,this.emitter=i,this.isFocus=o,n.addEventListener("signalingstatechange",this.onSignalStateChange.bind(this)),this.trackStats=new u(new d,new l(n))}async processStats(e,t){const n={isFirstCollection:void 0===this.previousStatsReport,receivedMedia:0,receivedAudioMedia:0,receivedVideoMedia:0,audioTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0},videoTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0}};if(this.isActive){const r=this.pc.getStats();if("function"==typeof(null==r?void 0:r.then))return r.then(r=>{var s,i;this.currentStatsReport="function"==typeof(null==r?void 0:r.result)?r.result():r;try{this.processStatsReport(e,t)}catch(e){return this.handleError(e),n}this.previousStatsReport=this.currentStatsReport,n.receivedMedia=this.connectionStats.bitrate.download,n.receivedAudioMedia=(null===(s=this.connectionStats.bitrate.audio)||void 0===s?void 0:s.download)||0,n.receivedVideoMedia=(null===(i=this.connectionStats.bitrate.video)||void 0===i?void 0:i.download)||0;const o=p.buildTrackSummary(Array.from(this.trackStats.getTrack2stats().values()));return y(y({},n),{},{audioTrackSummary:o.audioTrackSummary,videoTrackSummary:o.videoTrackSummary})}).catch(e=>(this.handleError(e),n));this.isActive=!1}return Promise.resolve(n)}processStatsReport(e,t){var n;const r=new Map;r.callId=this.callId,r.opponentMemberId=this.opponentMemberId,null===(n=this.currentStatsReport)||void 0===n||n.forEach(e=>{const t=this.previousStatsReport?this.previousStatsReport.get(e.id):null;if("candidate-pair"===e.type&&e.nominated&&"succeeded"===e.state)this.connectionStats.bandwidth=i.buildBandwidthReport(e),this.connectionStats.transport=o.buildReport(this.currentStatsReport,e,this.connectionStats.transport,this.isFocus);else if("inbound-rtp"===e.type||"outbound-rtp"===e.type){const n=this.trackStats.findTrack2Stats(e,"inbound-rtp"===e.type?"remote":"local");if(!n)return;if(t&&p.buildPacketsLost(n,e,t),"inbound-rtp"===e.type){p.buildFramerateResolution(n,e),t&&p.buildBitrateReceived(n,e,t);const r=this.trackStats.findTransceiverByTrackId(n.trackId);p.setTrackStatsState(n,r),p.buildJitter(n,e),p.buildAudioConcealment(n,e)}else t&&(r.set(n.trackId,m.getNonNegativeValue(e.bytesSent)),p.buildBitrateSend(n,e,t));p.buildCodec(this.currentStatsReport,n,e)}else if("track"===e.type&&"video"===e.kind&&!e.remoteSource){const n=this.trackStats.findLocalVideoTrackStats(e);if(!n)return;p.buildFramerateResolution(n,e),p.calculateSimulcastFramerate(n,e,t,this.trackStats.mediaTrackHandler.getActiveSimulcastStreams())}}),this.emitter.emitByteSendReport(r),this.emitter.emitCallFeedReport(f.F.buildCallFeedReport(this.callId,this.opponentMemberId,this.pc)),this.processAndEmitConnectionStatsReport()}setActive(e){this.isActive=e}getActive(){return this.isActive}handleError(e){this.isActive=!1,g.vF.warn(`CallStatsReportGatherer ${this.callId} processStatsReport fails and set to inactive ${e}`)}processAndEmitConnectionStatsReport(){const e=h.build(this.trackStats.getTrack2stats());e.callId=this.callId,e.opponentMemberId=this.opponentMemberId,this.connectionStats.bandwidth=e.bandwidth,this.connectionStats.bitrate=e.bitrate,this.connectionStats.packetLoss=e.packetLoss,this.emitter.emitConnectionStatsReport(y(y({},e),{},{transport:this.connectionStats.transport})),this.connectionStats.transport=[]}stopProcessingStats(){}onSignalStateChange(){"stable"===this.pc.signalingState&&(this.pc.currentRemoteDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentRemoteDescription.sdp,"remote"),this.pc.currentLocalDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentLocalDescription.sdp,"local"))}setOpponentMemberId(e){this.opponentMemberId=e}}var b=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),w=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/statsReport.ts");class k extends b.X{emitByteSendReport(e){this.emit(w.I.BYTE_SENT_STATS,e)}emitConnectionStatsReport(e){this.emit(w.I.CONNECTION_STATS,e)}emitCallFeedReport(e){this.emit(w.I.CALL_FEED_REPORT,e)}emitSummaryStatsReport(e){this.emit(w.I.SUMMARY_STATS,e)}}var S=n("../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/summaryStatsReportGatherer.ts");class E{constructor(e,t,n=1e4){(0,r.A)(this,"timer",void 0),(0,r.A)(this,"gatherers",new Map),(0,r.A)(this,"reports",new k),(0,r.A)(this,"summaryStatsReportGatherer",new S.Q(this.reports)),this.groupCallId=e,this.userId=t,this.interval=n}start(){void 0===this.timer&&this.interval>0&&(this.timer=setInterval(()=>{this.processStats()},this.interval))}stop(){void 0!==this.timer&&(clearInterval(this.timer),this.gatherers.forEach(e=>e.stopProcessingStats()))}hasStatsReportGatherer(e){return this.gatherers.has(e)}addStatsReportGatherer(e,t,n){return!this.hasStatsReportGatherer(e)&&(this.gatherers.set(e,new _(e,t,n,this.reports)),!0)}removeStatsReportGatherer(e){return this.gatherers.delete(e)}getStatsReportGatherer(e){return this.hasStatsReportGatherer(e)?this.gatherers.get(e):void 0}updateOpponentMember(e,t){var n;null===(n=this.getStatsReportGatherer(e))||void 0===n||n.setOpponentMemberId(t)}processStats(){const e=[];this.gatherers.forEach(t=>{e.push(t.processStats(this.groupCallId,this.userId))}),Promise.all(e).then(e=>this.summaryStatsReportGatherer.build(e)).catch(e=>{g.vF.error("Could not build summary stats report",e)})}setInterval(e){this.interval=e}}},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/statsReport.ts"(e,t,n){"use strict";n.d(t,{I:()=>r});let r=function(e){return e.CONNECTION_STATS="StatsReport.connection_stats",e.CALL_FEED_REPORT="StatsReport.call_feed_report",e.BYTE_SENT_STATS="StatsReport.byte_sent_stats",e.SUMMARY_STATS="StatsReport.summary_stats",e}({})},"../../node_modules/.pnpm/matrix-js-sdk@41.9.0/node_modules/matrix-js-sdk/src/webrtc/stats/summaryStatsReportGatherer.ts"(e,t,n){"use strict";n.d(t,{Q:()=>r});class r{constructor(e){this.emitter=e}build(e){const t=e.filter(e=>!e.isFirstCollection),n=t.length,r=e.length;if(0===n)return;const s={receivedAudio:0,receivedVideo:0,receivedMedia:0,concealedAudio:0,totalAudio:0};let i=0,o=0;t.forEach(e=>{this.countTrackListReceivedMedia(s,e),this.countConcealedAudio(s,e),i=this.buildMaxJitter(i,e),o=this.buildMaxPacketLoss(o,e)});const a={percentageReceivedMedia:Number((s.receivedMedia/n).toFixed(5)),percentageReceivedVideoMedia:Number((s.receivedVideo/n).toFixed(5)),percentageReceivedAudioMedia:Number((s.receivedAudio/n).toFixed(5)),maxJitter:i,maxPacketLoss:o,percentageConcealedAudio:Number(s.totalAudio>0?(s.concealedAudio/s.totalAudio).toFixed(5):0),peerConnections:r};this.emitter.emitSummaryStatsReport(a)}static extendSummaryReport(e,t){const n=[],r=[];for(const e of t){r.push(e);for(const t of e[1])n.push(t)}e.opponentDevicesInCall=Math.max(0,n.length-1),e.opponentUsersInCall=Math.max(0,r.length-1),e.diffDevicesToPeerConnections=Math.max(0,n.length-1)-e.peerConnections,e.ratioPeerConnectionToDevices=0==Math.max(0,n.length-1)?0:e.peerConnections/(n.length-1)}countTrackListReceivedMedia(e,t){let n=!1,r=!1;(t.receivedAudioMedia>0||0===t.audioTrackSummary.count)&&(e.receivedAudio++,n=!0),(t.receivedVideoMedia>0||0===t.videoTrackSummary.count||t.videoTrackSummary.muted>0&&t.videoTrackSummary.muted===t.videoTrackSummary.count)&&(e.receivedVideo++,r=!0),r&&n&&e.receivedMedia++}buildMaxJitter(e,t){return e<t.videoTrackSummary.maxJitter&&(e=t.videoTrackSummary.maxJitter),e<t.audioTrackSummary.maxJitter&&(e=t.audioTrackSummary.maxJitter),e}buildMaxPacketLoss(e,t){return e<t.videoTrackSummary.maxPacketLoss&&(e=t.videoTrackSummary.maxPacketLoss),e<t.audioTrackSummary.maxPacketLoss&&(e=t.audioTrackSummary.maxPacketLoss),e}countConcealedAudio(e,t){e.concealedAudio+=t.audioTrackSummary.concealedAudio,e.totalAudio+=t.audioTrackSummary.totalAudio}}},"../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js"(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise(function(n,r){function s(n){e.removeListener(t,i),r(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",s),n([].slice.call(arguments))}g(e,t,i,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&g(e,"error",t,n)}(e,s,{once:!0})})},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function d(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var s,i,o,l;if(a(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]),void 0===o)o=i[t]=n,++e._eventsCount;else if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(s=d(e))>0&&o.length>s&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,l=c,console&&console.warn&&console.warn(l)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},s=c.bind(r);return s.listener=n,r.wrapFn=s,s}function m(e,t,n){var r=e._events;if(void 0===r)return[];var s=r[t];return void 0===s?[]:"function"==typeof s?n?[s.listener||s]:[s]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(s):h(s,s.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function g(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function s(i){r.once&&e.removeEventListener(t,s),n(i)})}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return d(this)},i.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var s="error"===e,i=this._events;if(void 0!==i)s=s&&void 0===i.error;else if(!s)return!1;if(s){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var d=i[e];if(void 0===d)return!1;if("function"==typeof d)r(d,this,t);else{var l=d.length,c=h(d,l);for(n=0;n<l;++n)r(c[n],this,t)}return!0},i.prototype.addListener=function(e,t){return l(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return l(this,e,t,!0)},i.prototype.once=function(e,t){return a(t),this.on(e,u(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,u(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,r,s,i,o;if(a(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(s=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,s=i;break}if(s<0)return this;0===s?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,s),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var s,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(s=i[r])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return m(this,e,!0)},i.prototype.rawListeners=function(e){return m(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/ExtensibleEvents.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtensibleEvents=void 0;var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedMap.js"),s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"),l=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js");function c(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,s=function(){};return{s,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw i}}}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),p(this,"interpreters",new r.NamespacedMap([[i.LEGACY_M_ROOM_MESSAGE,i.parseMRoomMessage],[a.M_MESSAGE,o.parseMMessage],[a.M_EMOTE,o.parseMMessage],[a.M_NOTICE,o.parseMMessage],[d.M_POLL_START,l.parseMPoll],[d.M_POLL_RESPONSE,l.parseMPoll],[d.M_POLL_END,l.parseMPoll]])),p(this,"_unknownInterpretOrder",[a.M_MESSAGE])}var t,n,u;return t=e,u=[{key:"defaultInstance",get:function(){return e._defaultInstance}},{key:"unknownInterpretOrder",get:function(){return e.defaultInstance.unknownInterpretOrder},set:function(t){e.defaultInstance.unknownInterpretOrder=t}},{key:"registerInterpreter",value:function(t,n){e.defaultInstance.registerInterpreter(t,n)}},{key:"parse",value:function(t){return e.defaultInstance.parse(t)}}],(n=[{key:"unknownInterpretOrder",get:function(){var e;return null!==(e=this._unknownInterpretOrder)&&void 0!==e?e:[]},set:function(e){this._unknownInterpretOrder=e}},{key:"registerInterpreter",value:function(e,t){this.interpreters.set(e,t)}},{key:"parse",value:function(e){try{if(this.interpreters.hasNamespaced(e.type))return this.interpreters.getNamespaced(e.type)(e);var t,n=c(this.unknownInterpretOrder);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(this.interpreters.has(r)){var i=this.interpreters.get(r)(e);if(i)return i}}}catch(e){n.e(e)}finally{n.f()}return null}catch(e){if(e instanceof s.InvalidEventError)return null;throw e}}}])&&m(t.prototype,n),u&&m(t,u),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.ExtensibleEvents=h,p(h,"_defaultInstance",new h)},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/IPartialEvent.js"(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"(e,t){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e){var t=a();return function(){var r,s=l(e);if(t){var i=l(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,r)}}function i(e){var t="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o(e,arguments,l(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),d(r,e)},i(e)}function o(e,t,n){return o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return n&&d(s,n.prototype),s},o.apply(null,arguments)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.InvalidEventError=void 0;var c=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(a,e);var t,n,i,o=s(a);function a(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),o.call(this,e)}return t=a,n&&r(t.prototype,n),i&&r(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}(i(Error));t.InvalidEventError=c},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedMap.js"(e,t){"use strict";function n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var s=0,i=function(){};return{s:i,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,d=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){d=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(d)throw o}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.NamespacedMap=void 0;var i=function(){function e(t){var r,s,i;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r=this,s="internalMap",i=new Map,s in r?Object.defineProperty(r,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[s]=i,t){var o,a=n(t);try{for(a.s();!(o=a.n()).done;){var d=o.value;this.set(d[0],d[1])}}catch(e){a.e(e)}finally{a.f()}}}var t,r,i;return t=e,(r=[{key:"get",value:function(e){return e.name&&this.internalMap.has(e.name)?this.internalMap.get(e.name):e.altName&&this.internalMap.has(e.altName)?this.internalMap.get(e.altName):null}},{key:"set",value:function(e,t){e.name&&this.internalMap.set(e.name,t),e.altName&&this.internalMap.set(e.altName,t)}},{key:"has",value:function(e){return!!this.get(e)}},{key:"delete",value:function(e){e.name&&this.internalMap.delete(e.name),e.altName&&this.internalMap.delete(e.altName)}},{key:"hasNamespaced",value:function(e){return this.internalMap.has(e)}},{key:"getNamespaced",value:function(e){return this.internalMap.get(e)}}])&&s(t.prototype,r),i&&s(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.NamespacedMap=i},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js"(e,t){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}function s(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=i(e);if(t){var o=i(this).constructor;r=Reflect.construct(s,arguments,o)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,r)}}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(t,"__esModule",{value:!0}),t.UnstableValue=t.NamespacedValue=void 0;var l=function(){function e(t,n){if(o(this,e),this.stable=t,this.unstable=n,!this.unstable&&!this.stable)throw new Error("One of stable or unstable values must be supplied")}return d(e,[{key:"name",get:function(){return this.stable?this.stable:this.unstable}},{key:"altName",get:function(){return this.stable?this.unstable:null}},{key:"matches",value:function(e){return!!this.name&&this.name===e||!!this.altName&&this.altName===e}},{key:"findIn",value:function(e){var t;return this.name&&(t=null==e?void 0:e[this.name]),!t&&this.altName&&(t=null==e?void 0:e[this.altName]),t}},{key:"includedIn",value:function(e){var t=!1;return this.name&&(t=e.includes(this.name)),!t&&this.altName&&(t=e.includes(this.altName)),t}}]),e}();t.NamespacedValue=l;var c=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)}(n,e);var t=s(n);function n(e,r){var s;if(o(this,n),!(s=t.call(this,e,r)).unstable)throw new Error("Unstable value must be supplied");return s}return d(n,[{key:"name",get:function(){return this.unstable}},{key:"altName",get:function(){return this.stable}}]),n}(l);t.UnstableValue=c},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/EmoteEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.EmoteEvent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(){return l="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=m(e)););return e}(e,t);if(r){var s=Object.getOwnPropertyDescriptor(r,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}},l.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=m(e);if(t){var i=m(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}var p=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(p,e);var t,n,r,s=u(p);function p(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),s.call(this,e)}return t=p,r=[{key:"from",value:function(e,t){var n;return new p({type:i.M_EMOTE.name,content:(n={},a(n,i.M_TEXT.name,e),a(n,i.M_HTML.name,t),n)})}}],(n=[{key:"isEmote",get:function(){return!0}},{key:"isEquivalentTo",value:function(e){return(0,o.isEventTypeSame)(e,i.M_EMOTE)||l(m(p.prototype),"isEquivalentTo",this).call(this,e)}},{key:"serialize",value:function(){var e=l(m(p.prototype),"serialize",this).call(this);return e.content.msgtype="m.emote",e}}])&&d(t.prototype,n),r&&d(t,r),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.MessageEvent);t.EmoteEvent=p},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js"(e,t){"use strict";function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.ExtensibleEvent=void 0;var r=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.wireFormat=t}var t,r,s;return t=e,(r=[{key:"wireContent",get:function(){return this.wireFormat.content}}])&&n(t.prototype,r),s&&n(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.ExtensibleEvent=r},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.MessageEvent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/types.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){f(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=g(e);if(t){var i=g(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return h(e)}(this,n)}}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(l,e);var t,n,r,s=p(l);function l(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),f(h(t=s.call(this,e)),"text",void 0),f(h(t),"html",void 0),f(h(t),"renderings",void 0);var n=a.M_MESSAGE.findIn(t.wireContent),r=a.M_TEXT.findIn(t.wireContent),d=a.M_HTML.findIn(t.wireContent);if((0,i.isProvided)(n)){if(!Array.isArray(n))throw new o.InvalidEventError("m.message contents must be an array");var c=n.find(function(e){return!(0,i.isProvided)(e.mimetype)||"text/plain"===e.mimetype}),u=n.find(function(e){return"text/html"===e.mimetype});if(!c)throw new o.InvalidEventError("m.message is missing a plain text representation");t.text=c.body,t.html=null==u?void 0:u.body,t.renderings=n}else{if(!(0,i.isOptionalAString)(r))throw new o.InvalidEventError("Missing textual representation for event");t.text=r,t.html=d,t.renderings=[{body:r,mimetype:"text/plain"}],t.html&&t.renderings.push({body:t.html,mimetype:"text/html"})}return t}return t=l,r=[{key:"from",value:function(e,t){var n;return new l({type:a.M_MESSAGE.name,content:(n={},f(n,a.M_TEXT.name,e),f(n,a.M_HTML.name,t),n)})}}],(n=[{key:"isEmote",get:function(){return a.M_EMOTE.matches(this.wireFormat.type)||(0,i.isProvided)(a.M_EMOTE.findIn(this.wireFormat.content))}},{key:"isNotice",get:function(){return a.M_NOTICE.matches(this.wireFormat.type)||(0,i.isProvided)(a.M_NOTICE.findIn(this.wireFormat.content))}},{key:"isEquivalentTo",value:function(e){return(0,d.isEventTypeSame)(e,a.M_MESSAGE)}},{key:"serializeMMessageOnly",value:function(){var e=f({},a.M_MESSAGE.name,this.renderings);if(1===this.renderings.length){var t=this.renderings[0].mimetype;void 0!==t&&"text/plain"!==t||(e=f({},a.M_TEXT.name,this.renderings[0].body))}return e}},{key:"serialize",value:function(){var e;return{type:"m.room.message",content:c(c({},this.serializeMMessageOnly()),{},{body:this.text,msgtype:"m.text",format:this.html?"org.matrix.custom.html":void 0,formatted_body:null!==(e=this.html)&&void 0!==e?e:void 0})}}}])&&u(t.prototype,n),r&&u(t,r),Object.defineProperty(t,"prototype",{writable:!1}),l}(s.ExtensibleEvent);t.MessageEvent=v},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/NoticeEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.NoticeEvent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(){return l="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=m(e)););return e}(e,t);if(r){var s=Object.getOwnPropertyDescriptor(r,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}},l.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=m(e);if(t){var i=m(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}var p=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(p,e);var t,n,r,s=u(p);function p(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),s.call(this,e)}return t=p,r=[{key:"from",value:function(e,t){var n;return new p({type:i.M_NOTICE.name,content:(n={},a(n,i.M_TEXT.name,e),a(n,i.M_HTML.name,t),n)})}}],(n=[{key:"isNotice",get:function(){return!0}},{key:"isEquivalentTo",value:function(e){return(0,o.isEventTypeSame)(e,i.M_NOTICE)||l(m(p.prototype),"isEquivalentTo",this).call(this,e)}},{key:"serialize",value:function(){var e=l(m(p.prototype),"serialize",this).call(this);return e.content.msgtype="m.notice",e}}])&&d(t.prototype,n),r&&d(t,r),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.MessageEvent);t.NoticeEvent=p},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollEndEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollEndEvent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/relationship_types.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),l=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){v(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=f(e);if(t){var i=f(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return g(e)}(this,n)}}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(f,e);var t,n,r,c=h(f);function f(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),v(g(t=c.call(this,e)),"pollEventId",void 0),v(g(t),"closingMessage",void 0);var n=t.wireContent["m.relates_to"];if(!o.REFERENCE_RELATION.matches(null==n?void 0:n.rel_type)||"string"!=typeof(null==n?void 0:n.event_id))throw new i.InvalidEventError("Relationship must be a reference to an event");return t.pollEventId=n.event_id,t.closingMessage=new a.MessageEvent(t.wireFormat),t}return t=f,r=[{key:"from",value:function(e,t){var n;return new f({type:s.M_POLL_END.name,content:(n={"m.relates_to":{rel_type:o.REFERENCE_RELATION.name,event_id:e}},v(n,s.M_POLL_END.name,{}),v(n,d.M_TEXT.name,t),n)})}}],(n=[{key:"isEquivalentTo",value:function(e){return(0,l.isEventTypeSame)(e,s.M_POLL_END)}},{key:"serialize",value:function(){return{type:s.M_POLL_END.name,content:u(v({"m.relates_to":{rel_type:o.REFERENCE_RELATION.name,event_id:this.pollEventId}},s.M_POLL_END.name,{}),this.closingMessage.serialize().content)}}}])&&m(t.prototype,n),r&&m(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js").ExtensibleEvent);t.PollEndEvent=y},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollResponseEvent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/relationship_types.js"),d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=p(e);if(t){var i=p(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,n)}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(p,e);var t,n,r,s=u(p);function p(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),h(m(t=s.call(this,e)),"internalAnswerIds",void 0),h(m(t),"internalSpoiled",void 0),h(m(t),"pollEventId",void 0);var n=t.wireContent["m.relates_to"];if(!a.REFERENCE_RELATION.matches(null==n?void 0:n.rel_type)||"string"!=typeof(null==n?void 0:n.event_id))throw new o.InvalidEventError("Relationship must be a reference to an event");return t.pollEventId=n.event_id,t.validateAgainst(null),t}return t=p,r=[{key:"from",value:function(e,t){return new p({type:i.M_POLL_RESPONSE.name,content:h({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:t}},i.M_POLL_RESPONSE.name,{answers:e})})}}],(n=[{key:"answerIds",get:function(){return this.internalAnswerIds}},{key:"spoiled",get:function(){return this.internalSpoiled}},{key:"validateAgainst",value:function(e){var t=i.M_POLL_RESPONSE.findIn(this.wireContent);if(!Array.isArray(null==t?void 0:t.answers))return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);var n=t.answers;if(n.some(function(e){return"string"!=typeof e})||0===n.length)return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);if(e){if(n.some(function(t){return!e.answers.some(function(e){return e.id===t})}))return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);n=n.slice(0,e.maxSelections)}this.internalAnswerIds=n,this.internalSpoiled=!1}},{key:"isEquivalentTo",value:function(e){return(0,d.isEventTypeSame)(e,i.M_POLL_RESPONSE)}},{key:"serialize",value:function(){return{type:i.M_POLL_RESPONSE.name,content:h({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:this.pollEventId}},i.M_POLL_RESPONSE.name,{answers:this.spoiled?void 0:this.answerIds})}}}])&&l(t.prototype,n),r&&l(t,r),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.ExtensibleEvent);t.PollResponseEvent=g},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollStartEvent.js"(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollStartEvent=t.PollAnswerSubevent=void 0;var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js"),d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js"),l=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js"),c=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js");function u(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach(function(t){S(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t,n){return t&&f(e.prototype,t),n&&f(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function y(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_(e,t)}function _(e,t){return _=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=k(e);if(t){var i=k(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return w(e)}(this,n)}}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e){return k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},k(e)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(e){y(n,e);var t=b(n);function n(e){var r;g(this,n),S(w(r=t.call(this,e)),"id",void 0);var s=e.content.id;if(!s||"string"!=typeof s)throw new a.InvalidEventError("Answer ID must be a non-empty string");return r.id=s,r}return v(n,[{key:"serialize",value:function(){return{type:"org.matrix.sdk.poll.answer",content:h({id:this.id},this.serializeMMessageOnly())}}}],[{key:"from",value:function(e,t){return new n({type:"org.matrix.sdk.poll.answer",content:S({id:e},o.M_TEXT.name,t)})}}]),n}(i.MessageEvent);t.PollAnswerSubevent=E;var x=function(e){y(n,e);var t=b(n);function n(e){var r;g(this,n),S(w(r=t.call(this,e)),"question",void 0),S(w(r),"kind",void 0),S(w(r),"rawKind",void 0),S(w(r),"maxSelections",void 0),S(w(r),"answers",void 0);var o=s.M_POLL_START.findIn(r.wireContent);if(!o.question)throw new a.InvalidEventError("A question is required");if(r.question=new i.MessageEvent({type:"org.matrix.sdk.poll.question",content:o.question}),r.rawKind=o.kind,s.M_POLL_KIND_DISCLOSED.matches(r.rawKind)?r.kind=s.M_POLL_KIND_DISCLOSED:r.kind=s.M_POLL_KIND_UNDISCLOSED,r.maxSelections=Number.isFinite(o.max_selections)&&o.max_selections>0?o.max_selections:1,!Array.isArray(o.answers))throw new a.InvalidEventError("Poll answers must be an array");var d=o.answers.slice(0,20).map(function(e){return new E({type:"org.matrix.sdk.poll.answer",content:e})});if(d.length<=0)throw new a.InvalidEventError("No answers available");return r.answers=d,r}return v(n,[{key:"isEquivalentTo",value:function(e){return(0,l.isEventTypeSame)(e,s.M_POLL_START)}},{key:"serialize",value:function(){var e;return{type:s.M_POLL_START.name,content:(e={},S(e,s.M_POLL_START.name,{question:this.question.serialize().content,kind:this.rawKind,max_selections:this.maxSelections,answers:this.answers.map(function(e){return e.serialize().content})}),S(e,o.M_TEXT.name,"".concat(this.question.text,"\n").concat(this.answers.map(function(e,t){return"".concat(t+1,". ").concat(e.text)}).join("\n"))),e)}}}],[{key:"from",value:function(e,t,r){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new n({type:s.M_POLL_START.name,content:(i={},S(i,o.M_TEXT.name,e),S(i,s.M_POLL_START.name,{question:S({},o.M_TEXT.name,e),kind:r instanceof d.NamespacedValue?r.name:r,max_selections:a,answers:t.map(function(e){return S({id:u(Array(16)).map(function(){return j.charAt(Math.floor(62*Math.random()))}).join("")},o.M_TEXT.name,e)})}),i)})}}]),n}(c.ExtensibleEvent);t.PollStartEvent=x;var j="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.M_TEXT=t.M_NOTICE=t.M_MESSAGE=t.M_HTML=t.M_EMOTE=void 0;var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js"),s=new r.UnstableValue("m.message","org.matrix.msc1767.message");t.M_MESSAGE=s;var i=new r.UnstableValue("m.text","org.matrix.msc1767.text");t.M_TEXT=i;var o=new r.UnstableValue("m.html","org.matrix.msc1767.html");t.M_HTML=o;var a=new r.UnstableValue("m.emote","org.matrix.msc1767.emote");t.M_EMOTE=a;var d=new r.UnstableValue("m.notice","org.matrix.msc1767.notice");t.M_NOTICE=d},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.M_POLL_START=t.M_POLL_RESPONSE=t.M_POLL_KIND_UNDISCLOSED=t.M_POLL_KIND_DISCLOSED=t.M_POLL_END=void 0;var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js"),s=new r.UnstableValue("m.poll.disclosed","org.matrix.msc3381.poll.disclosed");t.M_POLL_KIND_DISCLOSED=s;var i=new r.UnstableValue("m.poll.undisclosed","org.matrix.msc3381.poll.undisclosed");t.M_POLL_KIND_UNDISCLOSED=i;var o=new r.UnstableValue("m.poll.start","org.matrix.msc3381.poll.start");t.M_POLL_START=o;var a=new r.UnstableValue("m.poll.response","org.matrix.msc3381.poll.response");t.M_POLL_RESPONSE=a;var d=new r.UnstableValue("m.poll.end","org.matrix.msc3381.poll.end");t.M_POLL_END=d},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/relationship_types.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.REFERENCE_RELATION=void 0;var r=new(n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js").NamespacedValue)("m.reference");t.REFERENCE_RELATION=r},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/index.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/ExtensibleEvents.js");Object.keys(r).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))});var s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/IPartialEvent.js");Object.keys(s).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))});var i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/InvalidEventError.js");Object.keys(i).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))});var o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js");Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))});var a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedMap.js");Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var d=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/types.js");Object.keys(d).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===d[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}}))});var l=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/MessageMatchers.js");Object.keys(l).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))});var c=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js");Object.keys(c).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))});var u=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js");Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))});var m=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js");Object.keys(m).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===m[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return m[e]}}))});var p=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js");Object.keys(p).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))});var h=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/relationship_types.js");Object.keys(h).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===h[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return h[e]}}))});var g=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js");Object.keys(g).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===g[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return g[e]}}))});var f=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js");Object.keys(f).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===f[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return f[e]}}))});var v=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js");Object.keys(v).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===v[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return v[e]}}))});var y=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/EmoteEvent.js");Object.keys(y).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===y[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return y[e]}}))});var _=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/NoticeEvent.js");Object.keys(_).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===_[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return _[e]}}))});var b=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js");Object.keys(b).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===b[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}}))});var w=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollStartEvent.js");Object.keys(w).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===w[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}}))});var k=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js");Object.keys(k).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===k[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}}))});var S=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollEndEvent.js");Object.keys(S).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===S[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return S[e]}}))})},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LEGACY_M_ROOM_MESSAGE=void 0,t.parseMRoomMessage=function(e){var t,n,o;if(a.M_MESSAGE.findIn(e.content)||a.M_TEXT.findIn(e.content))return new r.MessageEvent(e);var d,u=null===(t=e.content)||void 0===t?void 0:t.msgtype,m=null===(n=e.content)||void 0===n?void 0:n.body,p="org.matrix.custom.html"===(null===(o=e.content)||void 0===o?void 0:o.format)?e.content.formatted_body:null;return"m.text"===u?new r.MessageEvent(l(l({},e),{},{content:l(l({},e.content),{},(d={},c(d,a.M_TEXT.name,m),c(d,a.M_HTML.name,p),d))})):"m.notice"===u?new s.NoticeEvent(l(l({},e),{},{content:l(l({},e.content),{},(h={},c(h,a.M_TEXT.name,m),c(h,a.M_HTML.name,p),h))})):"m.emote"===u?new i.EmoteEvent(l(l({},e),{},{content:l(l({},e.content),{},(g={},c(g,a.M_TEXT.name,m),c(g,a.M_HTML.name,p),g))})):null;var h,g};var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/NoticeEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/EmoteEvent.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/NamespacedValue.js"),a=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js");function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach(function(t){c(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=new o.NamespacedValue("m.room.message");t.LEGACY_M_ROOM_MESSAGE=u},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseMMessage=function(e){if(s.M_EMOTE.matches(e.type))return new i.EmoteEvent(e);if(s.M_NOTICE.matches(e.type))return new o.NoticeEvent(e);return new r.MessageEvent(e)};var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/EmoteEvent.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/NoticeEvent.js")},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseMPoll=function(e){if(r.M_POLL_START.matches(e.type))return new s.PollStartEvent(e);if(r.M_POLL_RESPONSE.matches(e.type))return new i.PollResponseEvent(e);if(r.M_POLL_END.matches(e.type))return new o.PollEndEvent(e);return null};var r=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/poll_types.js"),s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollStartEvent.js"),i=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js"),o=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/PollEndEvent.js")},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/types.js"(e,t){"use strict";function n(e){return null!=e}Object.defineProperty(t,"__esModule",{value:!0}),t.isOptionalAString=function(e){return n(e)&&"string"==typeof e},t.isProvided=n},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/MessageMatchers.js"(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyMsgType=void 0,t.isEventLike=function(e,t){var n=e.content;if(t===r.Text)return s.M_MESSAGE.matches(e.type)||"m.room.message"===e.type&&"m.text"===(null==n?void 0:n.msgtype);if(t===r.Emote)return s.M_EMOTE.matches(e.type)||"m.room.message"===e.type&&"m.emote"===(null==n?void 0:n.msgtype);if(t===r.Notice)return s.M_NOTICE.matches(e.type)||"m.room.message"===e.type&&"m.notice"===(null==n?void 0:n.msgtype);return!1};var r,s=n("../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/events/message_types.js");t.LegacyMsgType=r,function(e){e.Text="m.text",e.Notice="m.notice",e.Emote="m.emote"}(r||(t.LegacyMsgType=r={}))},"../../node_modules/.pnpm/matrix-events-sdk@0.0.1/node_modules/matrix-events-sdk/lib/utility/events.js"(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEventTypeSame=function(e,t){if("string"==typeof e)return"string"==typeof t?t===e:t.matches(e);if("string"==typeof t)return e.matches(t);var n=t,r=e;return n.matches(r.name)||n.matches(r.altName)}},"../../node_modules/.pnpm/oidc-client-ts@3.5.0/node_modules/oidc-client-ts/dist/umd/oidc-client-ts.js"(e,t,n){"use strict";var r,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,d={};((e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})})(d,{AccessTokenEvents:()=>O,CheckSessionIFrame:()=>T,DPoPState:()=>G,ErrorResponse:()=>x,ErrorTimeout:()=>j,InMemoryWebStorage:()=>R,IndexedDbDPoPStore:()=>ge,Log:()=>p,Logger:()=>h,MetadataService:()=>C,OidcClient:()=>z,OidcClientSettingsStore:()=>A,SessionMonitor:()=>X,SigninResponse:()=>K,SigninState:()=>B,SignoutResponse:()=>H,State:()=>U,User:()=>Y,UserManager:()=>pe,UserManagerSettingsStore:()=>se,Version:()=>he,WebStorageStateStore:()=>M}),e.exports=(r=d,((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let d of o(t))a.call(e,d)||d===n||s(e,d,{get:()=>t[d],enumerable:!(r=i(t,d))||r.enumerable});return e})(s({},"__esModule",{value:!0}),r));var l,c,u,m={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},p=(e=>(e[e.NONE=0]="NONE",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG",e))(p||{});(u=p||(p={})).reset=function(){l=3,c=m},u.setLevel=function(e){if(!(0<=e&&e<=4))throw new Error("Invalid log level");l=e},u.setLogger=function(e){c=e};var h=class e{constructor(e){this._name=e}debug(...t){l>=4&&c.debug(e._format(this._name,this._method),...t)}info(...t){l>=3&&c.info(e._format(this._name,this._method),...t)}warn(...t){l>=2&&c.warn(e._format(this._name,this._method),...t)}error(...t){l>=1&&c.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){const t=Object.create(this);return t._method=e,t.debug("begin"),t}static createStatic(t,n){const r=new e(`${t}.${n}`);return r.debug("begin"),r}static _format(e,t){const n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(t,...n){l>=4&&c.debug(e._format(t),...n)}static info(t,...n){l>=3&&c.info(e._format(t),...n)}static warn(t,...n){l>=2&&c.warn(e._format(t),...n)}static error(t,...n){l>=1&&c.error(e._format(t),...n)}};p.reset();var g=n("../../node_modules/.pnpm/jwt-decode@4.0.0/node_modules/jwt-decode/build/cjs/index.js"),f=class{static decode(e){try{return(0,g.jwtDecode)(e)}catch(e){throw h.error("JwtUtils.decode",e),e}}static async generateSignedJwt(e,t,n){const r=`${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(e)))}.${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(t)))}`,s=await window.crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,(new TextEncoder).encode(r));return`${r}.${_.encodeBase64Url(new Uint8Array(s))}`}static async generateSignedJwtWithHmac(e,t,n){const r=`${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(e)))}.${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(t)))}`,s=await window.crypto.subtle.sign("HMAC",n,(new TextEncoder).encode(r));return`${r}.${_.encodeBase64Url(new Uint8Array(s))}`}},v=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join("")),y=class e{static _randomWord(){const e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>(+t^e._randomWord()&15>>+t/4).toString(16)).replace(/-/g,"")}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw new Error("Crypto.subtle is available only in secure contexts (HTTPS).");try{const t=(new TextEncoder).encode(e),n=await crypto.subtle.digest("SHA-256",t);return v(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}catch(e){throw h.error("CryptoUtils.generateCodeChallenge",e),e}}static generateBasicAuth(e,t){const n=(new TextEncoder).encode([e,t].join(":"));return v(n)}static async hash(e,t){const n=(new TextEncoder).encode(t),r=await crypto.subtle.digest(e,n);return new Uint8Array(r)}static async customCalculateJwkThumbprint(t){let n;switch(t.kty){case"RSA":n={e:t.e,kty:t.kty,n:t.n};break;case"EC":n={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case"OKP":n={crv:t.crv,kty:t.kty,x:t.x};break;case"oct":n={crv:t.k,kty:t.kty};break;default:throw new Error("Unknown jwk type")}const r=await e.hash("SHA-256",JSON.stringify(n));return e.encodeBase64Url(r)}static async generateDPoPProof({url:t,accessToken:n,httpMethod:r,keyPair:s,nonce:i}){let o,a;const d={jti:window.crypto.randomUUID(),htm:null!=r?r:"GET",htu:t,iat:Math.floor(Date.now()/1e3)};n&&(o=await e.hash("SHA-256",n),a=e.encodeBase64Url(o),d.ath=a),i&&(d.nonce=i);try{const e=await crypto.subtle.exportKey("jwk",s.publicKey),t={alg:"ES256",typ:"dpop+jwt",jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await f.generateSignedJwt(t,d,s.privateKey)}catch(e){throw e instanceof TypeError?new Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{const n=await crypto.subtle.exportKey("jwk",t.publicKey);return await e.customCalculateJwkThumbprint(n)}catch(e){throw e instanceof TypeError?new Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"])}static async generateClientAssertionJwt(t,n,r,s="HS256"){const i=Math.floor(Date.now()/1e3),o={alg:s,typ:"JWT"},a={iss:t,sub:t,aud:r,jti:e.generateUUIDv4(),exp:i+300,iat:i},d={HS256:"SHA-256",HS384:"SHA-384",HS512:"SHA-512"}[s];if(!d)throw new Error(`Unsupported algorithm: ${s}. Supported algorithms are: HS256, HS384, HS512`);const l=new TextEncoder,c=await crypto.subtle.importKey("raw",l.encode(n),{name:"HMAC",hash:d},!1,["sign"]);return await f.generateSignedJwtWithHmac(o,a,c)}};y.encodeBase64Url=e=>v(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");var _=y,b=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new h(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){const t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug("raise:",...e);for(const t of this._callbacks)await t(...e)}},w=class{static center({...e}){var t;return null==e.width&&(e.width=null!=(t=[800,720,600,480].find(e=>e<=window.outerWidth/1.618))?t:360),null!=e.left||(e.left=Math.max(0,Math.round(window.screenX+(window.outerWidth-e.width)/2))),null!=e.height&&(null!=e.top||(e.top=Math.max(0,Math.round(window.screenY+(window.outerHeight-e.height)/2)))),e}static serialize(e){return Object.entries(e).filter(([,e])=>null!=e).map(([e,t])=>`${e}=${"boolean"!=typeof t?t:t?"yes":"no"}`).join(",")}},k=class e extends b{constructor(){super(...arguments),this._logger=new h(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{const t=this._expiration-e.getEpochTime();this._logger.debug("timer completes in",t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){const n=this._logger.create("init");t=Math.max(Math.floor(t),1);const r=e.getEpochTime()+t;if(this.expiration===r&&this._timerHandle)return void n.debug("skipping since already initialized for expiration at",this.expiration);this.cancel(),n.debug("using duration",t),this._expiration=r;const s=Math.min(t,5);this._timerHandle=setInterval(this._callback,1e3*s)}get expiration(){return this._expiration}cancel(){this._logger.create("cancel"),this._timerHandle&&(clearInterval(this._timerHandle),this._timerHandle=null)}},S=class{static readParams(e,t="query"){if(!e)throw new TypeError("Invalid URL");const n=new URL(e,"http://127.0.0.1")["fragment"===t?"hash":"search"];return new URLSearchParams(n.slice(1))}},E=";",x=class extends Error{constructor(e,t){var n,r,s;if(super(e.error_description||e.error||""),this.form=t,this.name="ErrorResponse",!e.error)throw h.error("ErrorResponse","No error passed"),new Error("No error passed");this.error=e.error,this.error_description=null!=(n=e.error_description)?n:null,this.error_uri=null!=(r=e.error_uri)?r:null,this.state=e.userState,this.session_state=null!=(s=e.session_state)?s:null,this.url_state=e.url_state}},j=class extends Error{constructor(e){super(e),this.name="ErrorTimeout"}},O=class{constructor(e){this._logger=new h("AccessTokenEvents"),this._expiringTimer=new k("Access token expiring"),this._expiredTimer=new k("Access token expired"),this._expiringNotificationTimeInSeconds=e.expiringNotificationTimeInSeconds}async load(e){const t=this._logger.create("load");if(e.access_token&&void 0!==e.expires_in){const n=e.expires_in;if(t.debug("access token present, remaining duration:",n),n>0){let e=n-this._expiringNotificationTimeInSeconds;e<=0&&(e=1),t.debug("registering expiring timer, raising in",e,"seconds"),this._expiringTimer.init(e)}else t.debug("canceling existing expiring timer because we're past expiration."),this._expiringTimer.cancel();const r=n+1;t.debug("registering expired timer, raising in",r,"seconds"),this._expiredTimer.init(r)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}async unload(){this._logger.debug("unload: canceling existing access token timers"),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(e){return this._expiringTimer.addHandler(e)}removeAccessTokenExpiring(e){this._expiringTimer.removeHandler(e)}addAccessTokenExpired(e){return this._expiredTimer.addHandler(e)}removeAccessTokenExpired(e){this._expiredTimer.removeHandler(e)}},T=class{constructor(e,t,n,r,s){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=s,this._logger=new h("CheckSessionIFrame"),this._timer=null,this._session_state=null,this._message=e=>{e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&("error"===e.data?(this._logger.error("error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===e.data?(this._logger.debug("changed message from check session op iframe"),this.stop(),this._callback()):this._logger.debug(e.data+" message from check session op iframe"))};const i=new URL(n);this._frame_origin=i.origin,this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="fixed",this._frame.style.left="-1000px",this._frame.style.top="0",this._frame.width="0",this._frame.height="0",this._frame.src=i.href}load(){return new Promise(e=>{this._frame.onload=()=>{e()},window.document.body.appendChild(this._frame),window.addEventListener("message",this._message,!1)})}start(e){if(this._session_state===e)return;this._logger.create("start"),this.stop(),this._session_state=e;const t=()=>{this._frame.contentWindow&&this._session_state&&this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin)};t(),this._timer=setInterval(t,1e3*this._intervalInSeconds)}stop(){this._logger.create("stop"),this._session_state=null,this._timer&&(clearInterval(this._timer),this._timer=null)}},R=class{constructor(){this._logger=new h("InMemoryWebStorage"),this._data={}}clear(){this._logger.create("clear"),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},I=class extends Error{constructor(e,t){super(t),this.name="ErrorDPoPNonce",this.nonce=e}},P=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new h("JsonService"),this._contentTypes=[],this._contentTypes.push(...e,"application/json"),t&&this._contentTypes.push("application/jwt")}async fetchWithTimeout(e,t={}){const{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);const s=new AbortController,i=setTimeout(()=>s.abort(),1e3*n);try{return await fetch(e,{...t,signal:s.signal})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new j("Network timed out");throw e}finally{clearTimeout(i)}}async getJson(e,{token:t,credentials:n,timeoutInSeconds:r}={}){const s=this._logger.create("getJson"),i={Accept:this._contentTypes.join(", ")};let o;t&&(s.debug("token passed, setting Authorization header"),i.Authorization="Bearer "+t),this._appendExtraHeaders(i);try{s.debug("url:",e),o=await this.fetchWithTimeout(e,{method:"GET",headers:i,timeoutInSeconds:r,credentials:n})}catch(e){throw s.error("Network Error"),e}s.debug("HTTP response received, status",o.status);const a=o.headers.get("Content-Type");if(a&&!this._contentTypes.find(e=>a.startsWith(e))&&s.throw(new Error(`Invalid response Content-Type: ${null!=a?a:"undefined"}, from URL: ${e}`)),o.ok&&this._jwtHandler&&(null==a?void 0:a.startsWith("application/jwt")))return await this._jwtHandler(await o.text());let d;try{d=await o.json()}catch(e){if(s.error("Error parsing JSON response",e),o.ok)throw e;throw new Error(`${o.statusText} (${o.status})`)}if(!o.ok){if(s.error("Error from server:",d),d.error)throw new x(d);throw new Error(`${o.statusText} (${o.status}): ${JSON.stringify(d)}`)}return d}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:s,extraHeaders:i}){const o=this._logger.create("postForm"),a={Accept:this._contentTypes.join(", "),"Content-Type":"application/x-www-form-urlencoded",...i};let d;void 0!==n&&(a.Authorization="Basic "+n),this._appendExtraHeaders(a);try{o.debug("url:",e),d=await this.fetchWithTimeout(e,{method:"POST",headers:a,body:t,timeoutInSeconds:r,credentials:s})}catch(e){throw o.error("Network error"),e}o.debug("HTTP response received, status",d.status);const l=d.headers.get("Content-Type");if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw new Error(`Invalid response Content-Type: ${null!=l?l:"undefined"}, from URL: ${e}`);const c=await d.text();let u={};if(c)try{u=JSON.parse(c)}catch(e){if(o.error("Error parsing JSON response",e),d.ok)throw e;throw new Error(`${d.statusText} (${d.status})`)}if(!d.ok){if(o.error("Error from server:",u),d.headers.has("dpop-nonce")){const e=d.headers.get("dpop-nonce");throw new I(e,`${JSON.stringify(u)}`)}if(u.error)throw new x(u,t);throw new Error(`${d.statusText} (${d.status}): ${JSON.stringify(u)}`)}return u}_appendExtraHeaders(e){const t=this._logger.create("appendExtraHeaders"),n=Object.keys(this._extraHeaders),r=["accept","content-type"],s=["authorization"];0!==n.length&&n.forEach(n=>{if(r.includes(n.toLocaleLowerCase()))return void t.warn("Protected header could not be set",n,r);if(s.includes(n.toLocaleLowerCase())&&Object.keys(e).includes(n))return void t.warn("Header could not be overridden",n,s);const i="function"==typeof this._extraHeaders[n]?this._extraHeaders[n]():this._extraHeaders[n];i&&""!==i&&(e[n]=i)})}},C=class{constructor(e){this._settings=e,this._logger=new h("MetadataService"),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new P(["application/jwk-set+json"],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug("using signingKeys from settings"),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug("using metadata from settings"),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug("using fetchRequestCredentials from settings"),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){const e=this._logger.create("getMetadata");if(this._metadata)return e.debug("using cached values"),this._metadata;if(!this._metadataUrl)throw e.throw(new Error("No authority or metadataUrl configured on settings")),null;e.debug("getting metadata from",this._metadataUrl);const t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug("merging remote JSON with seed metadata"),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty("issuer")}getAuthorizationEndpoint(){return this._getMetadataProperty("authorization_endpoint")}getUserInfoEndpoint(){return this._getMetadataProperty("userinfo_endpoint")}getTokenEndpoint(e=!0){return this._getMetadataProperty("token_endpoint",e)}getCheckSessionIframe(){return this._getMetadataProperty("check_session_iframe",!0)}getEndSessionEndpoint(){return this._getMetadataProperty("end_session_endpoint",!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty("revocation_endpoint",e)}getKeysEndpoint(e=!0){return this._getMetadataProperty("jwks_uri",e)}async _getMetadataProperty(e,t=!1){const n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug("resolved"),void 0===r[e]){if(!0===t)return void n.warn("Metadata does not contain optional property");n.throw(new Error("Metadata does not contain property "+e))}return r[e]}async getSigningKeys(){const e=this._logger.create("getSigningKeys");if(this._signingKeys)return e.debug("returning signingKeys from cache"),this._signingKeys;const t=await this.getKeysEndpoint(!1);e.debug("got jwks_uri",t);const n=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug("got key set",n),!Array.isArray(n.keys))throw e.throw(new Error("Missing keys on keyset")),null;return this._signingKeys=n.keys,this._signingKeys}},M=class{constructor({prefix:e="oidc.",store:t=localStorage}={}){this._logger=new h("WebStorageStateStore"),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){this._logger.create(`get('${e}')`),e=this._prefix+e;return await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;const t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create("getAllKeys");const e=await this._store.length,t=[];for(let n=0;n<e;n++){const e=await this._store.key(n);e&&0===e.indexOf(this._prefix)&&t.push(e.substr(this._prefix.length))}return t}},A=class{constructor({authority:e,metadataUrl:t,metadata:n,signingKeys:r,metadataSeed:s,client_id:i,client_secret:o,response_type:a="code",scope:d="openid",redirect_uri:l,post_logout_redirect_uri:c,client_authentication:u="client_secret_post",token_endpoint_auth_signing_alg:m="HS256",prompt:p,display:h,max_age:g,ui_locales:f,acr_values:v,resource:y,response_mode:_,filterProtocolClaims:b=!0,loadUserInfo:w=!1,requestTimeoutInSeconds:k,staleStateAgeInSeconds:S=900,mergeClaimsStrategy:E={array:"replace"},disablePKCE:x=!1,stateStore:j,revokeTokenAdditionalContentTypes:O,fetchRequestCredentials:T,refreshTokenAllowedScope:I,extraQueryParams:P={},extraTokenParams:C={},extraHeaders:A={},dpop:D,omitScopeWhenRequesting:N=!1}){var L;if(this.authority=e,t?this.metadataUrl=t:(this.metadataUrl=e,e&&(this.metadataUrl.endsWith("/")||(this.metadataUrl+="/"),this.metadataUrl+=".well-known/openid-configuration")),this.metadata=n,this.metadataSeed=s,this.signingKeys=r,this.client_id=i,this.client_secret=o,this.response_type=a,this.scope=d,this.redirect_uri=l,this.post_logout_redirect_uri=c,this.client_authentication=u,this.token_endpoint_auth_signing_alg=m,this.prompt=p,this.display=h,this.max_age=g,this.ui_locales=f,this.acr_values=v,this.resource=y,this.response_mode=_,this.filterProtocolClaims=null==b||b,this.loadUserInfo=!!w,this.staleStateAgeInSeconds=S,this.mergeClaimsStrategy=E,this.omitScopeWhenRequesting=N,this.disablePKCE=!!x,this.revokeTokenAdditionalContentTypes=O,this.fetchRequestCredentials=T||"same-origin",this.requestTimeoutInSeconds=k,j)this.stateStore=j;else{const e="undefined"!=typeof window?window.localStorage:new R;this.stateStore=new M({store:e})}if(this.refreshTokenAllowedScope=I,this.extraQueryParams=P,this.extraTokenParams=C,this.extraHeaders=A,this.dpop=D,this.dpop&&!(null==(L=this.dpop)?void 0:L.store))throw new Error("A DPoPStore is required when dpop is enabled")}},D=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new h("UserInfoService"),this._getClaimsFromJwt=async e=>{const t=this._logger.create("_getClaimsFromJwt");try{const n=f.decode(e);return t.debug("JWT decoding successful"),n}catch(e){throw t.error("Error parsing JWT response"),e}},this._jsonService=new P(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){const t=this._logger.create("getClaims");e||this._logger.throw(new Error("No token passed"));const n=await this._metadataService.getUserInfoEndpoint();t.debug("got userinfo url",n);const r=await this._jsonService.getJson(n,{token:e,credentials:this._settings.fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return t.debug("got claims",r),r}},N=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new h("TokenClient"),this._jsonService=new P(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e="authorization_code",redirect_uri:t=this._settings.redirect_uri,client_id:n=this._settings.client_id,client_secret:r=this._settings.client_secret,extraHeaders:s,...i}){const o=this._logger.create("exchangeCode");n||o.throw(new Error("A client_id is required")),t||o.throw(new Error("A redirect_uri is required")),i.code||o.throw(new Error("A code is required"));const a=new URLSearchParams({grant_type:e,redirect_uri:t});for(const[e,t]of Object.entries(i))null!=t&&a.set(e,t);if(("client_secret_basic"===this._settings.client_authentication||"client_secret_jwt"===this._settings.client_authentication)&&null==r)throw o.throw(new Error("A client_secret is required")),null;let d;const l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case"client_secret_basic":d=_.generateBasicAuth(n,r);break;case"client_secret_post":a.append("client_id",n),r&&a.append("client_secret",r);break;case"client_secret_jwt":{const e=await _.generateClientAssertionJwt(n,r,l,this._settings.token_endpoint_auth_signing_alg);a.append("client_id",n),a.append("client_assertion_type","urn:ietf:params:oauth:client-assertion-type:jwt-bearer"),a.append("client_assertion",e);break}}o.debug("got token endpoint");const c=await this._jsonService.postForm(l,{body:a,basicAuth:d,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:s});return o.debug("got response"),c}async exchangeCredentials({grant_type:e="password",client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,scope:r=this._settings.scope,...s}){const i=this._logger.create("exchangeCredentials");t||i.throw(new Error("A client_id is required"));const o=new URLSearchParams({grant_type:e});this._settings.omitScopeWhenRequesting||o.set("scope",r);for(const[e,t]of Object.entries(s))null!=t&&o.set(e,t);if(("client_secret_basic"===this._settings.client_authentication||"client_secret_jwt"===this._settings.client_authentication)&&null==n)throw i.throw(new Error("A client_secret is required")),null;let a;const d=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case"client_secret_basic":a=_.generateBasicAuth(t,n);break;case"client_secret_post":o.append("client_id",t),n&&o.append("client_secret",n);break;case"client_secret_jwt":{const e=await _.generateClientAssertionJwt(t,n,d,this._settings.token_endpoint_auth_signing_alg);o.append("client_id",t),o.append("client_assertion_type","urn:ietf:params:oauth:client-assertion-type:jwt-bearer"),o.append("client_assertion",e);break}}i.debug("got token endpoint");const l=await this._jsonService.postForm(d,{body:o,basicAuth:a,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials});return i.debug("got response"),l}async exchangeRefreshToken({grant_type:e="refresh_token",client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,timeoutInSeconds:r,extraHeaders:s,...i}){const o=this._logger.create("exchangeRefreshToken");t||o.throw(new Error("A client_id is required")),i.refresh_token||o.throw(new Error("A refresh_token is required"));const a=new URLSearchParams({grant_type:e});for(const[e,t]of Object.entries(i))Array.isArray(t)?t.forEach(t=>a.append(e,t)):null!=t&&a.set(e,t);if(("client_secret_basic"===this._settings.client_authentication||"client_secret_jwt"===this._settings.client_authentication)&&null==n)throw o.throw(new Error("A client_secret is required")),null;let d;const l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case"client_secret_basic":d=_.generateBasicAuth(t,n);break;case"client_secret_post":a.append("client_id",t),n&&a.append("client_secret",n);break;case"client_secret_jwt":{const e=await _.generateClientAssertionJwt(t,n,l,this._settings.token_endpoint_auth_signing_alg);a.append("client_id",t),a.append("client_assertion_type","urn:ietf:params:oauth:client-assertion-type:jwt-bearer"),a.append("client_assertion",e);break}}o.debug("got token endpoint");const c=await this._jsonService.postForm(l,{body:a,basicAuth:d,timeoutInSeconds:r,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:s});return o.debug("got response"),c}async revoke(e){var t;const n=this._logger.create("revoke");e.token||n.throw(new Error("A token is required"));const r=await this._metadataService.getRevocationEndpoint(!1);n.debug(`got revocation endpoint, revoking ${null!=(t=e.token_type_hint)?t:"default token type"}`);const s=new URLSearchParams;for(const[t,n]of Object.entries(e))null!=n&&s.set(t,n);s.set("client_id",this._settings.client_id),this._settings.client_secret&&s.set("client_secret",this._settings.client_secret),await this._jsonService.postForm(r,{body:s,timeoutInSeconds:this._settings.requestTimeoutInSeconds}),n.debug("got response")}},L=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new h("ResponseValidator"),this._userInfoService=new D(this._settings,this._metadataService),this._tokenClient=new N(this._settings,this._metadataService)}async validateSigninResponse(e,t,n){const r=this._logger.create("validateSigninResponse");this._processSigninState(e,t),r.debug("state processed"),await this._processCode(e,t,n),r.debug("code processed"),e.isOpenId&&this._validateIdTokenAttributes(e,"",t.nonce),r.debug("tokens validated"),await this._processClaims(e,null==t?void 0:t.skipUserInfo,e.isOpenId),r.debug("claims processed")}async validateCredentialsResponse(e,t){const n=this._logger.create("validateCredentialsResponse"),r=e.isOpenId&&!!e.id_token;r&&this._validateIdTokenAttributes(e),n.debug("tokens validated"),await this._processClaims(e,t,r),n.debug("claims processed")}async validateRefreshResponse(e,t){const n=this._logger.create("validateRefreshResponse");e.userState=t.data,null!=e.session_state||(e.session_state=t.session_state),null!=e.scope||(e.scope=t.scope),e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),n.debug("ID Token validated")),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);const r=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,r),n.debug("claims processed")}validateSignoutResponse(e,t){const n=this._logger.create("validateSignoutResponse");if(t.id!==e.state&&n.throw(new Error("State does not match")),n.debug("state validated"),e.userState=t.data,e.error)throw n.warn("Response was error",e.error),new x(e)}_processSigninState(e,t){const n=this._logger.create("_processSigninState");if(t.id!==e.state&&n.throw(new Error("State does not match")),t.client_id||n.throw(new Error("No client_id on state")),t.authority||n.throw(new Error("No authority on state")),this._settings.authority!==t.authority&&n.throw(new Error("authority mismatch on settings vs. signin state")),this._settings.client_id&&this._settings.client_id!==t.client_id&&n.throw(new Error("client_id mismatch on settings vs. signin state")),n.debug("state validated"),e.userState=t.data,e.url_state=t.url_state,null!=e.scope||(e.scope=t.scope),e.error)throw n.warn("Response was error",e.error),new x(e);t.code_verifier&&!e.code&&n.throw(new Error("Expected code in response"))}async _processClaims(e,t=!1,n=!0){const r=this._logger.create("_processClaims");if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token)return void r.debug("not loading user info");r.debug("loading user info");const s=await this._userInfoService.getClaims(e.access_token);r.debug("user info claims received from user info endpoint"),n&&s.sub!==e.profile.sub&&r.throw(new Error("subject from UserInfo response does not match subject in ID Token")),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(s)),r.debug("user info claims received, updated profile:",e.profile)}async _processCode(e,t,n){const r=this._logger.create("_processCode");if(e.code){r.debug("Validating code");const s=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,extraHeaders:n,...t.extraTokenParams});Object.assign(e,s)}else r.debug("No code to process")}_validateIdTokenAttributes(e,t,n){var r;const s=this._logger.create("_validateIdTokenAttributes");s.debug("decoding ID Token JWT");const i=f.decode(null!=(r=e.id_token)?r:"");if(i.sub||s.throw(new Error("ID Token is missing a subject claim")),n&&i.nonce!==n&&s.throw(new Error("nonce in id_token does not match nonce in client storage")),t){const e=f.decode(t);i.sub!==e.sub&&s.throw(new Error("sub in id_token does not match current sub")),i.auth_time&&i.auth_time!==e.auth_time&&s.throw(new Error("auth_time in id_token does not match original auth_time")),i.azp&&i.azp!==e.azp&&s.throw(new Error("azp in id_token does not match original azp")),!i.azp&&e.azp&&s.throw(new Error("azp not in id_token, but present in original id_token"))}e.profile=i}},U=class e{constructor(e){this.id=e.id||_.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=k.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new h("State").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return h.createStatic("State","fromStorageString"),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){const r=h.createStatic("State","clearStaleState"),s=k.getEpochTime()-n,i=await t.getAllKeys();r.debug("got keys",i);for(let n=0;n<i.length;n++){const o=i[n],a=await t.get(o);let d=!1;if(a)try{const t=await e.fromStorageString(a);r.debug("got item from key:",o,t.created),t.created<=s&&(d=!0)}catch(e){r.error("Error parsing state for key:",o,e),d=!0}else r.debug("no item in storage for key:",o),d=!0;d&&(r.debug("removed item for key:",o),t.remove(o))}}},B=class e extends U{constructor(e){super(e),this.code_verifier=e.code_verifier,this.code_challenge=e.code_challenge,this.authority=e.authority,this.client_id=e.client_id,this.redirect_uri=e.redirect_uri,this.scope=e.scope,this.client_secret=e.client_secret,this.extraTokenParams=e.extraTokenParams,this.response_mode=e.response_mode,this.skipUserInfo=e.skipUserInfo,this.nonce=e.nonce}static async create(t){const n=!0===t.code_verifier?_.generateCodeVerifier():t.code_verifier||void 0,r=n?await _.generateCodeChallenge(n):void 0;return new e({...t,code_verifier:n,code_challenge:r})}toStorageString(){return new h("SigninState").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state,code_verifier:this.code_verifier,authority:this.authority,client_id:this.client_id,redirect_uri:this.redirect_uri,scope:this.scope,client_secret:this.client_secret,extraTokenParams:this.extraTokenParams,response_mode:this.response_mode,skipUserInfo:this.skipUserInfo,nonce:this.nonce})}static fromStorageString(t){h.createStatic("SigninState","fromStorageString");const n=JSON.parse(t);return e.create(n)}},F=class e{constructor(e){this.url=e.url,this.state=e.state}static async create({url:t,authority:n,client_id:r,redirect_uri:s,response_type:i,scope:o,state_data:a,response_mode:d,request_type:l,client_secret:c,nonce:u,url_state:m,resource:p,skipUserInfo:h,extraQueryParams:g,extraTokenParams:f,disablePKCE:v,dpopJkt:y,omitScopeWhenRequesting:_,...b}){if(!t)throw this._logger.error("create: No url passed"),new Error("url");if(!r)throw this._logger.error("create: No client_id passed"),new Error("client_id");if(!s)throw this._logger.error("create: No redirect_uri passed"),new Error("redirect_uri");if(!i)throw this._logger.error("create: No response_type passed"),new Error("response_type");if(!o)throw this._logger.error("create: No scope passed"),new Error("scope");if(!n)throw this._logger.error("create: No authority passed"),new Error("authority");const w=await B.create({data:a,request_type:l,url_state:m,code_verifier:!v,client_id:r,authority:n,redirect_uri:s,response_mode:d,client_secret:c,scope:o,extraTokenParams:f,skipUserInfo:h,nonce:u}),k=new URL(t);k.searchParams.append("client_id",r),k.searchParams.append("redirect_uri",s),k.searchParams.append("response_type",i),_||k.searchParams.append("scope",o),u&&k.searchParams.append("nonce",u),y&&k.searchParams.append("dpop_jkt",y);let S=w.id;if(m&&(S=`${S}${E}${m}`),k.searchParams.append("state",S),w.code_challenge&&(k.searchParams.append("code_challenge",w.code_challenge),k.searchParams.append("code_challenge_method","S256")),p){(Array.isArray(p)?p:[p]).forEach(e=>k.searchParams.append("resource",e))}for(const[e,t]of Object.entries({response_mode:d,...b,...g}))null!=t&&k.searchParams.append(e,t.toString());return new e({url:k.href,state:w})}};F._logger=new h("SigninRequest");var $=F,K=class{constructor(e){if(this.access_token="",this.token_type="",this.profile={},this.state=e.get("state"),this.session_state=e.get("session_state"),this.state){const e=decodeURIComponent(this.state).split(E);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(E))}this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri"),this.code=e.get("code")}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-k.getEpochTime()}set expires_in(e){"string"==typeof e&&(e=Number(e)),void 0!==e&&e>=0&&(this.expires_at=Math.floor(e)+k.getEpochTime())}get isOpenId(){var e;return(null==(e=this.scope)?void 0:e.split(" ").includes("openid"))||!!this.id_token}},q=class{constructor({url:e,state_data:t,id_token_hint:n,post_logout_redirect_uri:r,extraQueryParams:s,request_type:i,client_id:o,url_state:a}){if(this._logger=new h("SignoutRequest"),!e)throw this._logger.error("ctor: No url passed"),new Error("url");const d=new URL(e);if(n&&d.searchParams.append("id_token_hint",n),o&&d.searchParams.append("client_id",o),r&&(d.searchParams.append("post_logout_redirect_uri",r),t||a)){this.state=new U({data:t,request_type:i,url_state:a});let e=this.state.id;a&&(e=`${e}${E}${a}`),d.searchParams.append("state",e)}for(const[e,t]of Object.entries({...s}))null!=t&&d.searchParams.append(e,t.toString());this.url=d.href}},H=class{constructor(e){if(this.state=e.get("state"),this.state){const e=decodeURIComponent(this.state).split(E);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(E))}this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri")}},J=["nbf","jti","auth_time","nonce","acr","amr","azp","at_hash"],W=["sub","iss","aud","exp","iat"],V=class{constructor(e){this._settings=e,this._logger=new h("ClaimsService")}filterProtocolClaims(e){const t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:J;for(const n of e)W.includes(n)||delete t[n]}return t}mergeClaims(e,t){const n={...e};for(const[e,r]of Object.entries(t))if(n[e]!==r)if(Array.isArray(n[e])||Array.isArray(r))if("replace"==this._settings.mergeClaimsStrategy.array)n[e]=r;else{const t=Array.isArray(n[e])?n[e]:[n[e]];for(const e of Array.isArray(r)?r:[r])t.includes(e)||t.push(e);n[e]=t}else"object"==typeof n[e]&&"object"==typeof r?n[e]=this.mergeClaims(n[e],r):n[e]=r;return n}},G=class{constructor(e,t){this.keys=e,this.nonce=t}},z=class{constructor(e,t){this._logger=new h("OidcClient"),this.settings=e instanceof A?e:new A(e),this.metadataService=null!=t?t:new C(this.settings),this._claimsService=new V(this.settings),this._validator=new L(this.settings,this.metadataService,this._claimsService),this._tokenClient=new N(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:n,request_type:r,id_token_hint:s,login_hint:i,skipUserInfo:o,nonce:a,url_state:d,response_type:l=this.settings.response_type,scope:c=this.settings.scope,redirect_uri:u=this.settings.redirect_uri,prompt:m=this.settings.prompt,display:p=this.settings.display,max_age:h=this.settings.max_age,ui_locales:g=this.settings.ui_locales,acr_values:f=this.settings.acr_values,resource:v=this.settings.resource,response_mode:y=this.settings.response_mode,extraQueryParams:_=this.settings.extraQueryParams,extraTokenParams:b=this.settings.extraTokenParams,dpopJkt:w,omitScopeWhenRequesting:k=this.settings.omitScopeWhenRequesting}){const S=this._logger.create("createSigninRequest");if("code"!==l)throw new Error("Only the Authorization Code flow (with PKCE) is supported");const E=await this.metadataService.getAuthorizationEndpoint();S.debug("Received authorization endpoint",E);const x=await $.create({url:E,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:u,response_type:l,scope:c,state_data:e,url_state:d,prompt:m,display:p,max_age:h,ui_locales:g,id_token_hint:s,login_hint:i,acr_values:f,dpopJkt:w,resource:v,request:t,request_uri:n,extraQueryParams:_,extraTokenParams:b,request_type:r,response_mode:y,client_secret:this.settings.client_secret,skipUserInfo:o,nonce:a,disablePKCE:this.settings.disablePKCE,omitScopeWhenRequesting:k});await this.clearStaleState();const j=x.state;return await this.settings.stateStore.set(j.id,j.toStorageString()),x}async readSigninResponseState(e,t=!1){const n=this._logger.create("readSigninResponseState"),r=new K(S.readParams(e,this.settings.response_mode));if(!r.state)throw n.throw(new Error("No state in response")),null;const s=await this.settings.stateStore[t?"remove":"get"](r.state);if(!s)throw n.throw(new Error("No matching state found in storage")),null;return{state:await B.fromStorageString(s),response:r}}async processSigninResponse(e,t,n=!0){const r=this._logger.create("processSigninResponse"),{state:s,response:i}=await this.readSigninResponseState(e,n);if(r.debug("received state from storage; validating response"),this.settings.dpop&&this.settings.dpop.store){const e=await this.getDpopProof(this.settings.dpop.store);t={...t,DPoP:e}}try{await this._validator.validateSigninResponse(i,s,t)}catch(e){if(!(e instanceof I&&this.settings.dpop))throw e;{const n=await this.getDpopProof(this.settings.dpop.store,e.nonce);t.DPoP=n,await this._validator.validateSigninResponse(i,s,t)}}return i}async getDpopProof(e,t){let n,r;return(await e.getAllKeys()).includes(this.settings.client_id)?(r=await e.get(this.settings.client_id),r.nonce!==t&&t&&(r.nonce=t,await e.set(this.settings.client_id,r))):(n=await _.generateDPoPKeys(),r=new G(n,t),await e.set(this.settings.client_id,r)),await _.generateDPoPProof({url:await this.metadataService.getTokenEndpoint(!1),httpMethod:"POST",keyPair:r.keys,nonce:r.nonce})}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n=!1,extraTokenParams:r={}}){const s=await this._tokenClient.exchangeCredentials({username:e,password:t,...r}),i=new K(new URLSearchParams);return Object.assign(i,s),await this._validator.validateCredentialsResponse(i,n),i}async useRefreshToken({state:e,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:s,extraTokenParams:i}){var o;const a=this._logger.create("useRefreshToken");let d,l;if(void 0===this.settings.refreshTokenAllowedScope)d=e.scope;else{const t=this.settings.refreshTokenAllowedScope.split(" ");d=((null==(o=e.scope)?void 0:o.split(" "))||[]).filter(e=>t.includes(e)).join(" ")}if(this.settings.dpop&&this.settings.dpop.store){const e=await this.getDpopProof(this.settings.dpop.store);s={...s,DPoP:e}}try{l=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:d,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:s,...i})}catch(o){if(!(o instanceof I&&this.settings.dpop))throw o;s.DPoP=await this.getDpopProof(this.settings.dpop.store,o.nonce),l=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:d,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:s,...i})}const c=new K(new URLSearchParams);return Object.assign(c,l),a.debug("validating response",c),await this._validator.validateRefreshResponse(c,{...e,scope:d}),c}async createSignoutRequest({state:e,id_token_hint:t,client_id:n,request_type:r,url_state:s,post_logout_redirect_uri:i=this.settings.post_logout_redirect_uri,extraQueryParams:o=this.settings.extraQueryParams}={}){const a=this._logger.create("createSignoutRequest"),d=await this.metadataService.getEndSessionEndpoint();if(!d)throw a.throw(new Error("No end session endpoint")),null;a.debug("Received end session endpoint",d),n||!i||t||(n=this.settings.client_id);const l=new q({url:d,id_token_hint:t,client_id:n,post_logout_redirect_uri:i,state_data:e,extraQueryParams:o,request_type:r,url_state:s});await this.clearStaleState();const c=l.state;return c&&(a.debug("Signout request has state to persist"),await this.settings.stateStore.set(c.id,c.toStorageString())),l}async readSignoutResponseState(e,t=!1){const n=this._logger.create("readSignoutResponseState"),r=new H(S.readParams(e,this.settings.response_mode));if(!r.state){if(n.debug("No state in response"),r.error)throw n.warn("Response was error:",r.error),new x(r);return{state:void 0,response:r}}const s=await this.settings.stateStore[t?"remove":"get"](r.state);if(!s)throw n.throw(new Error("No matching state found in storage")),null;return{state:await U.fromStorageString(s),response:r}}async processSignoutResponse(e){const t=this._logger.create("processSignoutResponse"),{state:n,response:r}=await this.readSignoutResponseState(e,!0);return n?(t.debug("Received state from storage; validating response"),this._validator.validateSignoutResponse(r,n)):t.debug("No state from storage; skipping response validation"),r}clearStaleState(){return this._logger.create("clearStaleState"),U.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create("revokeToken"),await this._tokenClient.revoke({token:e,token_type_hint:t})}},X=class{constructor(e){this._userManager=e,this._logger=new h("SessionMonitor"),this._start=async e=>{const t=e.session_state;if(!t)return;const n=this._logger.create("_start");if(e.profile?(this._sub=e.profile.sub,n.debug("session_state",t,", sub",this._sub)):(this._sub=void 0,n.debug("session_state",t,", anonymous user")),this._checkSessionIFrame)this._checkSessionIFrame.start(t);else try{const e=await this._userManager.metadataService.getCheckSessionIframe();if(e){n.debug("initializing check session iframe");const r=this._userManager.settings.client_id,s=this._userManager.settings.checkSessionIntervalInSeconds,i=this._userManager.settings.stopCheckSessionOnError,o=new T(this._callback,r,e,s,i);await o.load(),this._checkSessionIFrame=o,o.start(t)}else n.warn("no check session iframe found in the metadata")}catch(e){n.error("Error from getCheckSessionIframe:",e instanceof Error?e.message:e)}},this._stop=()=>{const e=this._logger.create("_stop");if(this._sub=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){const t=setInterval(async()=>{clearInterval(t);try{const e=await this._userManager.querySessionStatus();if(e){const t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}catch(t){e.error("error from querySessionStatus",t instanceof Error?t.message:t)}},1e3)}},this._callback=async()=>{const e=this._logger.create("_callback");try{const t=await this._userManager.querySessionStatus();let n=!0;t&&this._checkSessionIFrame?t.sub===this._sub?(n=!1,this._checkSessionIFrame.start(t.session_state),e.debug("same sub still logged in at OP, session state has changed, restarting check session iframe; session_state",t.session_state),await this._userManager.events._raiseUserSessionChanged()):e.debug("different subject signed into OP",t.sub):e.debug("subject no longer signed into OP"),n?this._sub?await this._userManager.events._raiseUserSignedOut():await this._userManager.events._raiseUserSignedIn():e.debug("no change in session detected, no event to raise")}catch(t){this._sub&&(e.debug("Error calling queryCurrentSigninSession; raising signed out event",t),await this._userManager.events._raiseUserSignedOut())}},e||this._logger.throw(new Error("No user manager passed")),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch(e=>{this._logger.error(e)})}async _init(){this._logger.create("_init");const e=await this._userManager.getUser();if(e)this._start(e);else if(this._userManager.settings.monitorAnonymousSession){const e=await this._userManager.querySessionStatus();if(e){const t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}}},Y=class e{constructor(e){var t;this.id_token=e.id_token,this.session_state=null!=(t=e.session_state)?t:null,this.access_token=e.access_token,this.refresh_token=e.refresh_token,this.token_type=e.token_type,this.scope=e.scope,this.profile=e.profile,this.expires_at=e.expires_at,this.state=e.userState,this.url_state=e.url_state}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-k.getEpochTime()}set expires_in(e){void 0!==e&&(this.expires_at=Math.floor(e)+k.getEpochTime())}get expired(){const e=this.expires_in;if(void 0!==e)return e<=0}get scopes(){var e,t;return null!=(t=null==(e=this.scope)?void 0:e.split(" "))?t:[]}toStorageString(){return new h("User").create("toStorageString"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(t){return h.createStatic("User","fromStorageString"),new e(JSON.parse(t))}},Q="oidc-client",Z=class{constructor(){this._abort=new b("Window navigation aborted"),this._disposeHandlers=new Set,this._window=null}async navigate(e){const t=this._logger.create("navigate");if(!this._window)throw new Error("Attempted to navigate on a disposed window");t.debug("setting URL in window"),this._window.location.replace(e.url);const{url:n,keepOpen:r}=await new Promise((n,r)=>{const s=s=>{var i;const o=s.data,a=null!=(i=e.scriptOrigin)?i:window.location.origin;if(s.origin===a&&(null==o?void 0:o.source)===Q){try{const n=S.readParams(o.url,e.response_mode).get("state");if(n||t.warn("no state found in response url"),s.source!==this._window&&n!==e.state)return}catch{this._dispose(),r(new Error("Invalid response from window"))}n(o)}};window.addEventListener("message",s,!1),this._disposeHandlers.add(()=>window.removeEventListener("message",s,!1));const i=new BroadcastChannel(`oidc-client-popup-${e.state}`);i.addEventListener("message",s,!1),this._disposeHandlers.add(()=>i.close()),this._disposeHandlers.add(this._abort.addHandler(e=>{this._dispose(),r(e)}))});return t.debug("got response from window"),this._dispose(),r||this.close(),{url:n}}_dispose(){this._logger.create("_dispose");for(const e of this._disposeHandlers)e();this._disposeHandlers.clear()}static _notifyParent(e,t,n=!1,r=window.location.origin){const s={source:Q,url:t,keepOpen:n},i=new h("_notifyParent");if(e)i.debug("With parent. Using parent.postMessage."),e.postMessage(s,r);else{i.debug("No parent. Using BroadcastChannel.");const e=new URL(t).searchParams.get("state");if(!e)throw new Error("No parent and no state in URL. Can't complete notification.");const n=new BroadcastChannel(`oidc-client-popup-${e}`);n.postMessage(s),n.close()}}},ee={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},te="_blank",ne=60,re=2,se=class extends A{constructor(e){const{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=ee,popupWindowTarget:s=te,redirectMethod:i="assign",redirectTarget:o="self",iframeNotifyParentOrigin:a=e.iframeNotifyParentOrigin,iframeScriptOrigin:d=e.iframeScriptOrigin,requestTimeoutInSeconds:l,silent_redirect_uri:c=e.redirect_uri,silentRequestTimeoutInSeconds:u,automaticSilentRenew:m=!0,validateSubOnSilentRenew:p=!0,includeIdTokenInSilentRenew:h=!1,monitorSession:g=!1,monitorAnonymousSession:f=!1,checkSessionIntervalInSeconds:v=re,query_status_response_type:y="code",stopCheckSessionOnError:_=!0,revokeTokenTypes:b=["access_token","refresh_token"],revokeTokensOnSignout:w=!1,includeIdTokenInSilentSignout:k=!1,accessTokenExpiringNotificationTimeInSeconds:S=ne,maxSilentRenewTimeoutRetries:E,userStore:x}=e;if(super(e),this.popup_redirect_uri=t,this.popup_post_logout_redirect_uri=n,this.popupWindowFeatures=r,this.popupWindowTarget=s,this.redirectMethod=i,this.redirectTarget=o,this.iframeNotifyParentOrigin=a,this.iframeScriptOrigin=d,this.silent_redirect_uri=c,this.silentRequestTimeoutInSeconds=u||l||10,this.automaticSilentRenew=m,this.validateSubOnSilentRenew=p,this.includeIdTokenInSilentRenew=h,this.monitorSession=g,this.monitorAnonymousSession=f,this.checkSessionIntervalInSeconds=v,this.stopCheckSessionOnError=_,this.query_status_response_type=y,this.revokeTokenTypes=b,this.revokeTokensOnSignout=w,this.includeIdTokenInSilentSignout=k,this.accessTokenExpiringNotificationTimeInSeconds=S,this.maxSilentRenewTimeoutRetries=E,x)this.userStore=x;else{const e="undefined"!=typeof window?window.sessionStorage:new R;this.userStore=new M({store:e})}}},ie=class e extends Z{constructor({silentRequestTimeoutInSeconds:t=10}){super(),this._logger=new h("IFrameWindow"),this._timeoutInSeconds=t,this._frame=e.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){const e=window.document.createElement("iframe");return e.style.visibility="hidden",e.style.position="fixed",e.style.left="-1000px",e.style.top="0",e.width="0",e.height="0",window.document.body.appendChild(e),e}async navigate(e){this._logger.debug("navigate: Using timeout of:",this._timeoutInSeconds);const t=setTimeout(()=>{this._abort.raise(new j("IFrame timed out without a response"))},1e3*this._timeoutInSeconds);return this._disposeHandlers.add(()=>clearTimeout(t)),await super.navigate(e)}close(){var e;this._frame&&(this._frame.parentNode&&(this._frame.addEventListener("load",e=>{var t;const n=e.target;null==(t=n.parentNode)||t.removeChild(n),this._abort.raise(new Error("IFrame removed from DOM"))},!0),null==(e=this._frame.contentWindow)||e.location.replace("about:blank")),this._frame=null),this._window=null}static notifyParent(e,t){return super._notifyParent(window.parent,e,!1,t)}},oe=class{constructor(e){this._settings=e,this._logger=new h("IFrameNavigator")}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new ie({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create("callback"),ie.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},ae=class extends Z{constructor({popupWindowTarget:e=te,popupWindowFeatures:t={},popupSignal:n,popupAbortOnClose:r}){super(),this._logger=new h("PopupWindow");const s=w.center({...ee,...t});this._window=window.open(void 0,e,w.serialize(s)),this.abortOnClose=Boolean(r),n&&n.addEventListener("abort",()=>{var e;this._abort.raise(new Error(null!=(e=n.reason)?e:"Popup aborted"))}),t.closePopupWindowAfterInSeconds&&t.closePopupWindowAfterInSeconds>0&&setTimeout(()=>{this._window&&"boolean"==typeof this._window.closed&&!this._window.closed?this.close():this._abort.raise(new Error("Popup blocked by user"))},1e3*t.closePopupWindowAfterInSeconds)}async navigate(e){var t;null==(t=this._window)||t.focus();const n=setInterval(()=>{this._window&&!this._window.closed||(this._logger.debug("Popup closed by user or isolated by redirect"),r(),this._disposeHandlers.delete(r),this.abortOnClose&&this._abort.raise(new Error("Popup closed by user")))},500),r=()=>clearInterval(n);return this._disposeHandlers.add(r),await super.navigate(e)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(new Error("Popup closed")))),this._window=null}static notifyOpener(e,t){super._notifyParent(window.opener,e,t),t||window.opener||window.close()}},de=class{constructor(e){this._settings=e,this._logger=new h("PopupNavigator")}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:n,popupAbortOnClose:r}){return new ae({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:n,popupAbortOnClose:r})}async callback(e,{keepOpen:t=!1}){this._logger.create("callback"),ae.notifyOpener(e,t)}},le=class{constructor(e){this._settings=e,this._logger=new h("RedirectNavigator")}async prepare({redirectMethod:e=this._settings.redirectMethod,redirectTarget:t=this._settings.redirectTarget}){var n;this._logger.create("prepare");let r=window.self;"top"===t&&(r=null!=(n=window.top)?n:window.self);const s=r.location[e].bind(r.location);let i;return{navigate:async e=>{this._logger.create("navigate");const t=new Promise((t,n)=>{i=n,window.addEventListener("pageshow",()=>t(window.location.href)),s(e.url)});return await t},close:()=>{this._logger.create("close"),null==i||i(new Error("Redirect aborted")),r.stop()}}}async callback(){}},ce=class extends O{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new h("UserManagerEvents"),this._userLoaded=new b("User loaded"),this._userUnloaded=new b("User unloaded"),this._silentRenewError=new b("Silent renew error"),this._userSignedIn=new b("User signed in"),this._userSignedOut=new b("User signed out"),this._userSessionChanged=new b("User session changed")}async load(e,t=!0){await super.load(e),t&&await this._userLoaded.raise(e)}async unload(){await super.unload(),await this._userUnloaded.raise()}addUserLoaded(e){return this._userLoaded.addHandler(e)}removeUserLoaded(e){return this._userLoaded.removeHandler(e)}addUserUnloaded(e){return this._userUnloaded.addHandler(e)}removeUserUnloaded(e){return this._userUnloaded.removeHandler(e)}addSilentRenewError(e){return this._silentRenewError.addHandler(e)}removeSilentRenewError(e){return this._silentRenewError.removeHandler(e)}async _raiseSilentRenewError(e){await this._silentRenewError.raise(e)}addUserSignedIn(e){return this._userSignedIn.addHandler(e)}removeUserSignedIn(e){this._userSignedIn.removeHandler(e)}async _raiseUserSignedIn(){await this._userSignedIn.raise()}addUserSignedOut(e){return this._userSignedOut.addHandler(e)}removeUserSignedOut(e){this._userSignedOut.removeHandler(e)}async _raiseUserSignedOut(){await this._userSignedOut.raise()}addUserSessionChanged(e){return this._userSessionChanged.addHandler(e)}removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)}async _raiseUserSessionChanged(){await this._userSessionChanged.raise()}},ue=class{constructor(e){this._userManager=e,this._logger=new h("SilentRenewService"),this._isStarted=!1,this._retryTimer=new k("Retry Silent Renew"),this._timeoutRetryCount=0,this._tokenExpiring=async()=>{const e=this._logger.create("_tokenExpiring");try{await this._userManager.signinSilent(),this._timeoutRetryCount=0,e.debug("silent token renewal successful")}catch(t){if(t instanceof j){this._timeoutRetryCount++;const n=this._userManager.settings.maxSilentRenewTimeoutRetries;return void 0!==n&&this._timeoutRetryCount>n?(e.error(`Timeout retry limit reached (${this._timeoutRetryCount} > ${n}), raising silentRenewError:`,t),this._timeoutRetryCount=0,void await this._userManager.events._raiseSilentRenewError(t)):(e.warn(`ErrorTimeout from signinSilent (attempt ${this._timeoutRetryCount}), retry in 5s:`,t),void this._retryTimer.init(5))}e.error("Error from signinSilent:",t),this._timeoutRetryCount=0,await this._userManager.events._raiseSilentRenewError(t)}}}async start(){const e=this._logger.create("start");if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(t){e.error("getUser error",t)}}}stop(){this._isStarted&&(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),this._isStarted=!1)}},me=class{constructor(e){this.refresh_token=e.refresh_token,this.id_token=e.id_token,this.session_state=e.session_state,this.scope=e.scope,this.profile=e.profile,this.data=e.state}},pe=class{constructor(e,t,n,r){this._logger=new h("UserManager"),this.settings=new se(e),this._client=new z(e),this._redirectNavigator=null!=t?t:new le(this.settings),this._popupNavigator=null!=n?n:new de(this.settings),this._iframeNavigator=null!=r?r:new oe(this.settings),this._events=new ce(this.settings),this._silentRenewService=new ue(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new X(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(e=!1){const t=this._logger.create("getUser"),n=await this._loadUser();return n?(t.info("user loaded"),await this._events.load(n,e),n):(t.info("user not found in storage"),null)}async removeUser(){const e=this._logger.create("removeUser");await this.storeUser(null),e.info("user removed from storage"),await this._events.unload()}async signinRedirect(e={}){var t;this._logger.create("signinRedirect");const{redirectMethod:n,...r}=e;let s;(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(s=await this.generateDPoPJkt(this.settings.dpop));const i=await this._redirectNavigator.prepare({redirectMethod:n});await this._signinStart({request_type:"si:r",dpopJkt:s,...r},i)}async signinRedirectCallback(e=window.location.href){const t=this._logger.create("signinRedirectCallback"),n=await this._signinEnd(e);return n.profile&&n.profile.sub?t.info("success, signed in subject",n.profile.sub):t.info("no subject"),n}async signinResourceOwnerCredentials({username:e,password:t,skipUserInfo:n=!1}){const r=this._logger.create("signinResourceOwnerCredential"),s=await this._client.processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n,extraTokenParams:this.settings.extraTokenParams});r.debug("got signin response");const i=await this._buildUser(s);return i.profile&&i.profile.sub?r.info("success, signed in subject",i.profile.sub):r.info("no subject"),i}async signinPopup(e={}){var t;const n=this._logger.create("signinPopup");let r;(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(r=await this.generateDPoPJkt(this.settings.dpop));const{popupWindowFeatures:s,popupWindowTarget:i,popupSignal:o,popupAbortOnClose:a,...d}=e,l=this.settings.popup_redirect_uri;l||n.throw(new Error("No popup_redirect_uri configured"));const c=await this._popupNavigator.prepare({popupWindowFeatures:s,popupWindowTarget:i,popupSignal:o,popupAbortOnClose:a}),u=await this._signin({request_type:"si:p",redirect_uri:l,display:"popup",dpopJkt:r,...d},c);return u&&(u.profile&&u.profile.sub?n.info("success, signed in subject",u.profile.sub):n.info("no subject")),u}async signinPopupCallback(e=window.location.href,t=!1){const n=this._logger.create("signinPopupCallback");await this._popupNavigator.callback(e,{keepOpen:t}),n.info("success")}async signinSilent(e={}){var t,n;const r=this._logger.create("signinSilent"),{silentRequestTimeoutInSeconds:s,...i}=e;let o,a=await this._loadUser();if(!e.forceIframeAuth&&(null==a?void 0:a.refresh_token)){r.debug("using refresh token");const e=new me(a);return await this._useRefreshToken({state:e,redirect_uri:i.redirect_uri,resource:i.resource,extraTokenParams:i.extraTokenParams,timeoutInSeconds:s})}(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(o=await this.generateDPoPJkt(this.settings.dpop));const d=this.settings.silent_redirect_uri;let l;d||r.throw(new Error("No silent_redirect_uri configured")),a&&this.settings.validateSubOnSilentRenew&&(r.debug("subject prior to silent renew:",a.profile.sub),l=a.profile.sub);const c=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:s});return a=await this._signin({request_type:"si:s",redirect_uri:d,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==a?void 0:a.id_token:void 0,dpopJkt:o,...i},c,l),a&&((null==(n=a.profile)?void 0:n.sub)?r.info("success, signed in subject",a.profile.sub):r.info("no subject")),a}async _useRefreshToken(e){const t=await this._client.useRefreshToken({timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds,...e}),n=new Y({...e.state,...t});return await this.storeUser(n),await this._events.load(n),n}async signinSilentCallback(e=window.location.href){const t=this._logger.create("signinSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async signinCallback(e=window.location.href){const{state:t}=await this._client.readSigninResponseState(e);switch(t.request_type){case"si:r":return await this.signinRedirectCallback(e);case"si:p":await this.signinPopupCallback(e);break;case"si:s":await this.signinSilentCallback(e);break;default:throw new Error("invalid request_type in state")}}async signoutCallback(e=window.location.href,t=!1){const{state:n}=await this._client.readSignoutResponseState(e);if(n)switch(n.request_type){case"so:r":return await this.signoutRedirectCallback(e);case"so:p":await this.signoutPopupCallback(e,t);break;case"so:s":await this.signoutSilentCallback(e);break;default:throw new Error("invalid request_type in state")}}async querySessionStatus(e={}){const t=this._logger.create("querySessionStatus"),{silentRequestTimeoutInSeconds:n,...r}=e,s=this.settings.silent_redirect_uri;s||t.throw(new Error("No silent_redirect_uri configured"));const i=await this._loadUser(),o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n}),a=await this._signinStart({request_type:"si:s",redirect_uri:s,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==i?void 0:i.id_token:void 0,response_type:this.settings.query_status_response_type,scope:"openid",skipUserInfo:!0,...r},o);try{const e={},n=await this._client.processSigninResponse(a.url,e);return t.debug("got signin response"),n.session_state&&n.profile.sub?(t.info("success for subject",n.profile.sub),{session_state:n.session_state,sub:n.profile.sub}):(t.info("success, user not authenticated"),null)}catch(e){if(this.settings.monitorAnonymousSession&&e instanceof x)switch(e.error){case"login_required":case"consent_required":case"interaction_required":case"account_selection_required":return t.info("success for anonymous user"),{session_state:e.session_state}}throw e}}async _signin(e,t,n){const r=await this._signinStart(e,t);return await this._signinEnd(r.url,n)}async _signinStart(e,t){const n=this._logger.create("_signinStart");try{const r=await this._client.createSigninRequest(e);return n.debug("got signin request"),await t.navigate({url:r.url,state:r.state.id,response_mode:r.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug("error after preparing navigator, closing navigator window"),t.close(),e}}async _signinEnd(e,t){const n=this._logger.create("_signinEnd"),r=await this._client.processSigninResponse(e,{});n.debug("got signin response");return await this._buildUser(r,t)}async _buildUser(e,t){const n=this._logger.create("_buildUser"),r=new Y(e);if(t){if(t!==r.profile.sub)throw n.debug("current user does not match user returned from signin. sub from signin:",r.profile.sub),new x({...e,error:"login_required"});n.debug("current user matches user returned from signin")}return await this.storeUser(r),n.debug("user stored"),await this._events.load(r),r}async signoutRedirect(e={}){const t=this._logger.create("signoutRedirect"),{redirectMethod:n,...r}=e,s=await this._redirectNavigator.prepare({redirectMethod:n});await this._signoutStart({request_type:"so:r",post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...r},s),t.info("success")}async signoutRedirectCallback(e=window.location.href){const t=this._logger.create("signoutRedirectCallback"),n=await this._signoutEnd(e);return t.info("success"),n}async signoutPopup(e={}){const t=this._logger.create("signoutPopup"),{popupWindowFeatures:n,popupWindowTarget:r,popupSignal:s,...i}=e,o=this.settings.popup_post_logout_redirect_uri,a=await this._popupNavigator.prepare({popupWindowFeatures:n,popupWindowTarget:r,popupSignal:s});await this._signout({request_type:"so:p",post_logout_redirect_uri:o,state:null==o?void 0:{},...i},a),t.info("success")}async signoutPopupCallback(e=window.location.href,t=!1){const n=this._logger.create("signoutPopupCallback");await this._popupNavigator.callback(e,{keepOpen:t}),n.info("success")}async _signout(e,t){const n=await this._signoutStart(e,t);return await this._signoutEnd(n.url)}async _signoutStart(e={},t){var n;const r=this._logger.create("_signoutStart");try{const s=await this._loadUser();r.debug("loaded current user from storage"),this.settings.revokeTokensOnSignout&&await this._revokeInternal(s);const i=e.id_token_hint||s&&s.id_token;i&&(r.debug("setting id_token_hint in signout request"),e.id_token_hint=i),await this.removeUser(),r.debug("user removed, creating signout request");const o=await this._client.createSignoutRequest(e);return r.debug("got signout request"),await t.navigate({url:o.url,state:null==(n=o.state)?void 0:n.id,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw r.debug("error after preparing navigator, closing navigator window"),t.close(),e}}async _signoutEnd(e){const t=this._logger.create("_signoutEnd"),n=await this._client.processSignoutResponse(e);return t.debug("got signout response"),n}async signoutSilent(e={}){var t;const n=this._logger.create("signoutSilent"),{silentRequestTimeoutInSeconds:r,...s}=e,i=this.settings.includeIdTokenInSilentSignout?null==(t=await this._loadUser())?void 0:t.id_token:void 0,o=this.settings.popup_post_logout_redirect_uri,a=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:r});await this._signout({request_type:"so:s",post_logout_redirect_uri:o,id_token_hint:i,...s},a),n.info("success")}async signoutSilentCallback(e=window.location.href){const t=this._logger.create("signoutSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async revokeTokens(e){const t=await this._loadUser();await this._revokeInternal(t,e)}async _revokeInternal(e,t=this.settings.revokeTokenTypes){const n=this._logger.create("_revokeInternal");if(!e)return;const r=t.filter(t=>"string"==typeof e[t]);if(r.length){for(const t of r)await this._client.revokeToken(e[t],t),n.info(`${t} revoked successfully`),"access_token"!==t&&(e[t]=null);await this.storeUser(e),n.debug("user stored"),await this._events.load(e)}else n.debug("no need to revoke due to no token(s)")}startSilentRenew(){this._logger.create("startSilentRenew"),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){const e=this._logger.create("_loadUser"),t=await this.settings.userStore.get(this._userStoreKey);return t?(e.debug("user storageString loaded"),Y.fromStorageString(t)):(e.debug("no user storageString"),null)}async storeUser(e){const t=this._logger.create("storeUser");if(e){t.debug("storing user");const n=e.toStorageString();await this.settings.userStore.set(this._userStoreKey,n)}else this._logger.debug("removing user"),await this.settings.userStore.remove(this._userStoreKey),this.settings.dpop&&await this.settings.dpop.store.remove(this.settings.client_id)}async clearStaleState(){await this._client.clearStaleState()}async dpopProof(e,t,n,r){var s,i;const o=await(null==(i=null==(s=this.settings.dpop)?void 0:s.store)?void 0:i.get(this.settings.client_id));if(o)return await _.generateDPoPProof({url:e,accessToken:null==t?void 0:t.access_token,httpMethod:n,keyPair:o.keys,nonce:r})}async generateDPoPJkt(e){let t=await e.store.get(this.settings.client_id);if(!t){const n=await _.generateDPoPKeys();t=new G(n),await e.store.set(this.settings.client_id,t)}return await _.generateDPoPJkt(t.keys)}},he="3.5.0",ge=class{constructor(){this._dbName="oidc",this._storeName="dpop"}async set(e,t){const n=await this.createStore(this._dbName,this._storeName);await n("readwrite",n=>(n.put(t,e),this.promisifyRequest(n.transaction)))}async get(e){const t=await this.createStore(this._dbName,this._storeName);return await t("readonly",t=>this.promisifyRequest(t.get(e)))}async remove(e){const t=await this.get(e),n=await this.createStore(this._dbName,this._storeName);return await n("readwrite",t=>this.promisifyRequest(t.delete(e))),t}async getAllKeys(){const e=await this.createStore(this._dbName,this._storeName);return await e("readonly",e=>this.promisifyRequest(e.getAllKeys()))}promisifyRequest(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}async createStore(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const r=await this.promisifyRequest(n);return async(e,n)=>{const s=r.transaction(t,e).objectStore(t);return await n(s)}}}},"../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/grammar.js"(e){var t=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{push:"msid",reg:/^msid:([\w-]+)(?: ([\w-]+))?/,names:["id","appdata"],format:"msid:%s %s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(t).forEach(function(e){t[e].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})},"../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/index.js"(e,t,n){var r=n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/parser.js"),s=n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/writer.js");n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/grammar.js"),t.M9=s,t.qg=r.parse,r.parseParams,r.parseFmtpConfig,r.parsePayloads,r.parseRemoteCandidates,r.parseImageAttributes,r.parseSimulcastStreamList},"../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/parser.js"(e,t,n){var r=function(e){return String(Number(e))===e?Number(e):e},s=function(e,t,n){var s=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:s&&!t[e.name]&&(t[e.name]={});var i=e.push?{}:s?t[e.name]:t;!function(e,t,n,s){if(s&&!n)t[s]=r(e[1]);else for(var i=0;i<n.length;i+=1)null!=e[i+1]&&(t[n[i]]=r(e[i+1]))}(n.match(e.reg),i,e.names,e.name),e.push&&t[e.push].push(i)},i=n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/grammar.js"),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(e){var t={},n=[],r=t;return e.split(/(\r\n|\r|\n)/).filter(o).forEach(function(e){var t=e[0],o=e.slice(2);"m"===t&&(n.push({rtp:[],fmtp:[]}),r=n[n.length-1]);for(var a=0;a<(i[t]||[]).length;a+=1){var d=i[t][a];if(d.reg.test(o))return s(d,r,o)}}),t.media=n,t};var a=function(e,t){var n=t.split(/=(.+)/,2);return 2===n.length?e[n[0]]=r(n[1]):1===n.length&&t.length>1&&(e[n[0]]=void 0),e};t.parseParams=function(e){return e.split(/;\s?/).reduce(a,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(e){return e.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(e){for(var t=[],n=e.split(" ").map(r),s=0;s<n.length;s+=3)t.push({component:n[s],ip:n[s+1],port:n[s+2]});return t},t.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(a,{})})},t.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var t,n=!1;return"~"!==e[0]?t=r(e):(t=r(e.substring(1,e.length)),n=!0),{scid:t,paused:n}})})}},"../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/writer.js"(e,t,n){var r=n("../../node_modules/.pnpm/sdp-transform@3.0.0/node_modules/sdp-transform/lib/grammar.js"),s=/%[sdv%]/g,i=function(e){var t=1,n=arguments,r=n.length;return e.replace(s,function(e){if(t>=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},o=function(e,t,n){var r=[e+"="+(t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format)];if(t.names)for(var s=0;s<t.names.length;s+=1){var o=t.names[s];t.name?r.push(n[t.name][o]):r.push(n[t.names[s]])}else r.push(n[t.name]);return i.apply(null,r)},a=["v","o","s","i","u","e","p","c","b","t","r","z","a"],d=["i","c","b","a"];e.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var n=t.outerOrder||a,s=t.innerOrder||d,i=[];return n.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?i.push(o(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){i.push(o(t,n,e))})})}),e.media.forEach(function(e){i.push(o("m",r.m[0],e)),s.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?i.push(o(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){i.push(o(t,n,e))})})})}),i.join("\r\n")+"\r\n"}},"../../node_modules/.pnpm/unhomoglyph@1.0.6/node_modules/unhomoglyph/index.js"(e,t,n){"use strict";var r=n("../../node_modules/.pnpm/unhomoglyph@1.0.6/node_modules/unhomoglyph/data.json");var s=RegExp(Object.keys(r).map(function(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}).join("|"),"g");function i(e){return r[e]}e.exports=function(e){return e.replace(s,i)}},"../../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js"(e,t){"use strict";t.qg=function(e,t){const n=e.length;let r=d(e,0,n);const s=r;r=a(e,r,n);const i=l(e,s,r),c=e.slice(s,i).toLowerCase(),u=!1===t?.parameters?new o:function(e,t,n){const r=new o;e:for(;t<n;){const s=t=d(e,t+1,n);for(;t<n;){const i=e.charCodeAt(t);if(59===i)continue e;if(61===i){const i=l(e,s,t),o=e.slice(s,i).toLowerCase();if((t=d(e,t+1,n))<n&&34===e.charCodeAt(t)){t++;let s="";for(;t<n;){const i=e.charCodeAt(t++);if(34===i){t=a(e,t,n),void 0===r[o]&&(r[o]=s);break}92===i&&t<n?s+=e[t++]:s+=String.fromCharCode(i)}continue e}const c=t;if(t=a(e,t,n),void 0===r[o]){const n=l(e,c,t);r[o]=e.slice(c,n)}continue e}t++}}return r}(e,r,n);return{type:c,parameters:u}};const n=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,r=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,s=/[\\"]/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,o=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function a(e,t,n){for(;t<n;){if(59===e.charCodeAt(t))break;t++}return t}function d(e,t,n){for(;t<n;){const n=e.charCodeAt(t);if(32!==n&&9!==n)break;t++}return t}function l(e,t,n){for(;n>t;){const t=e.charCodeAt(n-1);if(32!==t&&9!==t)break;n--}return n}function c(e){if(r.test(e))return e;if(n.test(e))return`"${e.replace(s,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}},"../../node_modules/.pnpm/jwt-decode@4.0.0/node_modules/jwt-decode/build/cjs/index.js"(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jwtDecode=t.InvalidTokenError=void 0;class n extends Error{}function r(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n}))}(t)}catch(e){return atob(t)}}t.InvalidTokenError=n,n.prototype.name="InvalidTokenError",t.jwtDecode=function(e,t){if("string"!=typeof e)throw new n("Invalid token specified: must be a string");t||(t={});const s=!0===t.header?0:1,i=e.split(".")[s];if("string"!=typeof i)throw new n(`Invalid token specified: missing part #${s+1}`);let o;try{o=r(i)}catch(e){throw new n(`Invalid token specified: invalid base64 for part #${s+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new n(`Invalid token specified: invalid json for part #${s+1} (${e.message})`)}}},"../../node_modules/.pnpm/@babel+runtime@8.0.0/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}n.d(t,{A:()=>r})},"../../node_modules/.pnpm/base-x@5.0.1/node_modules/base-x/src/esm/index.js"(e,t,n){"use strict";n.d(t,{A:()=>r});const r=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){const r=e.charAt(n),s=r.charCodeAt(0);if(255!==t[s])throw new TypeError(r+" is ambiguous");t[s]=n}const n=e.length,r=e.charAt(0),s=Math.log(n)/Math.log(256),i=Math.log(256)/Math.log(n);function o(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let i=0,o=0,a=0;for(;e[i]===r;)o++,i++;const d=(e.length-i)*s+1>>>0,l=new Uint8Array(d);for(;i<e.length;){const r=e.charCodeAt(i);if(r>255)return;let s=t[r];if(255===s)return;let o=0;for(let e=d-1;(0!==s||o<a)&&-1!==e;e--,o++)s+=n*l[e]>>>0,l[e]=s%256>>>0,s=s/256>>>0;if(0!==s)throw new Error("Non-zero carry");a=o,i++}let c=d-a;for(;c!==d&&0===l[c];)c++;const u=new Uint8Array(o+(d-c));let m=o;for(;c!==d;)u[m++]=l[c++];return u}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let s=0,o=0,a=0;const d=t.length;for(;a!==d&&0===t[a];)a++,s++;const l=(d-a)*i+1>>>0,c=new Uint8Array(l);for(;a!==d;){let e=t[a],r=0;for(let t=l-1;(0!==e||r<o)&&-1!==t;t--,r++)e+=256*c[t]>>>0,c[t]=e%n>>>0,e=e/n>>>0;if(0!==e)throw new Error("Non-zero carry");o=r,a++}let u=l-o;for(;u!==l&&0===c[u];)u++;let m=r.repeat(s);for(;u<l;++u)m+=e.charAt(c[u]);return m},decodeUnsafe:o,decode:function(e){const t=o(e);if(t)return t;throw new Error("Non-base"+n+" character")}}}},"../../node_modules/.pnpm/p-retry@8.0.0/node_modules/p-retry/index.js"(e,t,n){"use strict";n.d(t,{lc:()=>d,Ay:()=>u});const r=Object.prototype.toString,s=new Set(["network error","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function i(e){var t;if(!(e&&(t=e,"[object Error]"===r.call(t))&&"TypeError"===e.name&&"string"==typeof e.message))return!1;const{message:n,stack:i}=e;return"Load failed"===n||n.startsWith("Load failed (")&&n.endsWith(")")?void 0===i||"__sentry_captured__"in e:!!n.startsWith("error sending request for url")||(!!("Failed to fetch"===n||n.startsWith("Failed to fetch (")&&n.endsWith(")"))||s.has(n))}function o(e,t,{min:n=0,allowInfinity:r=!1}={}){if(void 0!==t){if("number"!=typeof t||Number.isNaN(t))throw new TypeError(`Expected \`${e}\` to be a number${r?" or Infinity":""}.`);if(!r&&!Number.isFinite(t))throw new TypeError(`Expected \`${e}\` to be a finite number.`);if(t<n)throw new TypeError(`Expected \`${e}\` to be ≥ ${n}.`)}}function a(e,t){if(void 0!==t&&"function"!=typeof t)throw new TypeError(`Expected \`${e}\` to be a function.`)}class d extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,({message:e}=e)):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}}function l(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function c({error:e,attemptNumber:t,retriesConsumed:n,startTime:r,options:s}){const o=e instanceof Error?e:new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(o instanceof d)throw o.originalError;const a=Number.isFinite(s.retries)?Math.max(0,s.retries-n):s.retries,c=s.maxRetryTime??Number.POSITIVE_INFINITY,u=function(e,t){const n=Math.max(1,e+1),r=t.randomize?Math.random()+1:1;let s=Math.round(r*t.minTimeout*t.factor**(n-1));return s=Math.min(s,t.maxTimeout),s}(n,s);if(l(r,c)<=0){const e=Object.freeze({error:o,attemptNumber:t,retriesLeft:a,retriesConsumed:n,retryDelay:0});throw await s.onFailedAttempt(e),o}const m=Object.freeze({error:o,attemptNumber:t,retriesLeft:a,retriesConsumed:n,retryDelay:a>0?u:0}),p=await s.shouldConsumeRetry(m),h=p&&a>0?u:0,g=Object.freeze({error:o,attemptNumber:t,retriesLeft:a,retriesConsumed:n,retryDelay:h});if(await s.onFailedAttempt(g),l(r,c)<=0)throw o;if(l(r,c)<=0||a<=0)throw o;if(o instanceof TypeError&&!i(o))throw o;if(!await s.shouldRetry(g))throw o;const f=l(r,c);if(f<=0)throw o;if(!p)return s.signal?.throwIfAborted(),!1;const v=Math.min(h,f);return s.signal?.throwIfAborted(),await async function(e,t){e<=0||await new Promise((n,r)=>{const s=()=>{clearTimeout(i),t.signal?.removeEventListener("abort",s),r(t.signal.reason)},i=setTimeout(()=>{t.signal?.removeEventListener("abort",s),n()},e);t.unref&&i.unref?.(),t.signal?.addEventListener("abort",s,{once:!0})})}(v,s),s.signal?.throwIfAborted(),!0}async function u(e,t={}){if(function(e){if("number"==typeof e){if(e<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(void 0!==e)throw new TypeError("Expected `retries` to be a number or Infinity.")}((t={...t}).retries),Object.hasOwn(t,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=Number.POSITIVE_INFINITY,t.maxRetryTime??=Number.POSITIVE_INFINITY,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,a("onFailedAttempt",t.onFailedAttempt),a("shouldRetry",t.shouldRetry),a("shouldConsumeRetry",t.shouldConsumeRetry),o("factor",t.factor,{min:0,allowInfinity:!1}),o("minTimeout",t.minTimeout,{min:0,allowInfinity:!1}),o("maxTimeout",t.maxTimeout,{min:0,allowInfinity:!0}),o("maxRetryTime",t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let n=0,r=0;const s=performance.now();for(;!Number.isFinite(t.retries)||r<=t.retries;){n++;try{t.signal?.throwIfAborted();const r=await e(n);return t.signal?.throwIfAborted(),r}catch(e){await c({error:e,attemptNumber:n,retriesConsumed:r,startTime:s,options:t})&&r++}}throw new Error("Retry attempts exhausted without throwing an error.")}},"../../node_modules/.pnpm/unhomoglyph@1.0.6/node_modules/unhomoglyph/data.json"(e){"use strict";e.exports=JSON.parse('{"0":"O","1":"l","֭":"֖","֮":"֘","֨":"֙","֤":"֚","᪴":"ۛ","⃛":"ۛ","ؙ":"̓","ࣳ":"̓","̓":"̓","̕":"̓","ُ":"̓","ٝ":"̔","֜":"́","֝":"́","ؘ":"́","݇":"́","́":"́","॔":"́","َ":"́","̀":"̀","॓":"̀","̌":"̆","꙼":"̆","٘":"̆","ٚ":"̆","ͮ":"̆","ۨ":"̆̇","̐":"̆̇","ँ":"̆̇","ঁ":"̆̇","ઁ":"̆̇","ଁ":"̆̇","ఀ":"̆̇","ಁ":"̆̇","ഁ":"̆̇","𑒿":"̆̇","᳐":"̂","̑":"̂","ٛ":"̂","߮":"̂","꛰":"̂","֯":"̊","۟":"̊","៓":"̊","゚":"̊","ْ":"̊","ஂ":"̊","ံ":"̊","ំ":"̊","𑌀":"̊","ํ":"̊","ໍ":"̊","ͦ":"̊","ⷪ":"̊","࣫":"̈","߳":"̈","ً":"̋","ࣰ":"̋","͂":"̃","ٓ":"̃","ׄ":"̇","۬":"̇","݀":"̇","࣪":"̇","݁":"̇","͘":"̇","ֹ":"̇","ֺ":"̇","ׂ":"̇","ׁ":"̇","߭":"̇","ं":"̇","ਂ":"̇","ં":"̇","்":"̇","̷":"̸","᪷":"̨","̢":"̨","ͅ":"̨","᳒":"̄","̅":"̄","ٙ":"̄","߫":"̄","꛱":"̄","᳚":"̎","ٗ":"̒","͗":"͐","ࣿ":"͐","ࣸ":"͐","ऀ":"͒","᳭":"̖","᳜":"̩","ٖ":"̩","᳕":"̫","͇":"̳","ࣹ":"͔","ࣺ":"͕","゛":"゙","゜":"゚","̶":"̵","〬":"̉","ׅ":"̣","࣭":"̣","᳝":"̣","ִ":"̣","ٜ":"̣","़":"̣","়":"̣","਼":"̣","઼":"̣","଼":"̣","𑇊":"̣","𑓃":"̣","𐨺":"̣","࣮":"̤","᳞":"̤","༷":"̥","〭":"̥","̧":"̦","̡":"̦","̹":"̦","᳙":"̭","᳘":"̮","॒":"̱","̠":"̱","ࣱ":"ٌ","ࣨ":"ٌ","ࣥ":"ٌ","ﱞ":"ﹲّ","ࣲ":"ٍ","ﱟ":"ﹴّ","ﳲ":"ﹷّ","ﱠ":"ﹶّ","ﳳ":"ﹹّ","ﱡ":"ﹸّ","ؚ":"ِ","̗":"ِ","ﳴ":"ﹻّ","ﱢ":"ﹺّ","ﱣ":"ﹼٰ","ٟ":"ٕ","̍":"ٰ","݂":"ܼ","ਃ":"ঃ","ః":"ঃ","ಃ":"ঃ","ഃ":"ঃ","ඃ":"ঃ","း":"ঃ","𑓁":"ঃ","់":"่","່":"่","້":"้","໊":"๊","໋":"๋","꙯":"⃩","\\u2028":" ","\\u2029":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","ߺ":"_","﹍":"_","﹎":"_","﹏":"_","‐":"-","‑":"-","‒":"-","–":"-","﹘":"-","۔":"-","⁃":"-","˗":"-","−":"-","➖":"-","Ⲻ":"-","⨩":"-̓","⸚":"-̈","﬩":"-̇","∸":"-̇","⨪":"-̣","꓾":"-.","~":"〜","؍":",","٫":",","‚":",","¸":",","ꓹ":",","⸲":"،","٬":"،",";":";","⸵":"؛","ः":":","ઃ":":",":":":","։":":","܃":":","܄":":","᛬":":","︰":":","᠃":":","᠉":":","⁚":":","׃":":","˸":":","꞉":":","∶":":","ː":":","ꓽ":":","⩴":"::=","⧴":":→","!":"!","ǃ":"!","ⵑ":"!","‼":"!!","⁉":"!?","ʔ":"?","Ɂ":"?","ॽ":"?","Ꭾ":"?","ꛫ":"?","⁈":"?!","⁇":"??","⸮":"؟","𝅭":".","․":".","܁":".","܂":".","꘎":".","𐩐":".","٠":".","۰":".","ꓸ":".","ꓻ":".,","‥":"..","ꓺ":"..","…":"...","꛴":"꛳꛳","・":"·","・":"·","᛫":"·","·":"·","⸱":"·","𐄁":"·","•":"·","‧":"·","∙":"·","⋅":"·","ꞏ":"·","ᐧ":"·","⋯":"···","ⵈ":"···","ᑄ":"·<","⋗":"·>","ᐷ":"·>","ᑀ":"·>","ᔯ":"·4","ᑾ":"·b","ᒀ":"·ḃ","ᑺ":"·d","ᒘ":"·J","ᒶ":"·L","ᑶ":"·P","ᑗ":"·U","ᐺ":"·V","ᐼ":"·Ʌ","ᒮ":"·Γ","ᐎ":"·Δ","ᑙ":"·Ո","ᐌ":"·ᐁ","ᐐ":"·ᐄ","ᐒ":"·ᐅ","ᐔ":"·ᐆ","ᐗ":"·ᐊ","ᐙ":"·ᐋ","ᐾ":"·ᐲ","ᑂ":"·ᐴ","ᑆ":"·ᐹ","ᑛ":"·ᑏ","ᑔ":"·ᑐ","ᑝ":"·ᑐ","ᑟ":"·ᑑ","ᑡ":"·ᑕ","ᑣ":"·ᑖ","ᑴ":"·ᑫ","ᑸ":"·ᑮ","ᑼ":"·ᑰ","ᒒ":"·ᒉ","ᒔ":"·ᒋ","ᒖ":"·ᒌ","ᒚ":"·ᒎ","ᒜ":"·ᒐ","ᒞ":"·ᒑ","ᒬ":"·ᒣ","ᒰ":"·ᒦ","ᒲ":"·ᒧ","ᒴ":"·ᒨ","ᒸ":"·ᒫ","ᓉ":"·ᓀ","ᣆ":"·ᓂ","ᣈ":"·ᓃ","ᣊ":"·ᓄ","ᣌ":"·ᓅ","ᓋ":"·ᓇ","ᓍ":"·ᓈ","ᓜ":"·ᓓ","ᓞ":"·ᓕ","ᓠ":"·ᓖ","ᓢ":"·ᓗ","ᓤ":"·ᓘ","ᓦ":"·ᓚ","ᓨ":"·ᓛ","ᓶ":"·ᓭ","ᓸ":"·ᓯ","ᓺ":"·ᓰ","ᓼ":"·ᓱ","ᓾ":"·ᓲ","ᔀ":"·ᓴ","ᔂ":"·ᓵ","ᔗ":"·ᔐ","ᔙ":"·ᔑ","ᔛ":"·ᔒ","ᔝ":"·ᔓ","ᔟ":"·ᔔ","ᔡ":"·ᔕ","ᔣ":"·ᔖ","ᔱ":"·ᔨ","ᔳ":"·ᔩ","ᔵ":"·ᔪ","ᔷ":"·ᔫ","ᔹ":"·ᔭ","ᔻ":"·ᔮ","ᣎ":"·ᕃ","ᣏ":"·ᕆ","ᣐ":"·ᕇ","ᣑ":"·ᕈ","ᣒ":"·ᕉ","ᣓ":"·ᕋ","ᕎ":"·ᕌ","ᕛ":"·ᕚ","ᕨ":"·ᕧ","ᢳ":"·ᢱ","ᢶ":"·ᢴ","ᢹ":"·ᢸ","ᣂ":"·ᣀ","꠰":"।","॥":"।।","᰼":"᰻᰻","။":"၊၊","᪩":"᪨᪨","᪫":"᪪᪨","᭟":"᭞᭞","𐩗":"𐩖𐩖","𑑌":"𑑋𑑋","𑙂":"𑙁𑙁","𑱂":"𑱁𑱁","᱿":"᱾᱾","՝":"\'","'":"\'","‘":"\'","’":"\'","‛":"\'","′":"\'","‵":"\'","՚":"\'","׳":"\'","`":"\'","`":"\'","`":"\'","´":"\'","΄":"\'","´":"\'","᾽":"\'","᾿":"\'","῾":"\'","ʹ":"\'","ʹ":"\'","ˈ":"\'","ˊ":"\'","ˋ":"\'","˴":"\'","ʻ":"\'","ʽ":"\'","ʼ":"\'","ʾ":"\'","ꞌ":"\'","י":"\'","ߴ":"\'","ߵ":"\'","ᑊ":"\'","ᛌ":"\'","𖽑":"\'","𖽒":"\'","᳓":"\'\'","\\"":"\'\'",""":"\'\'","“":"\'\'","”":"\'\'","‟":"\'\'","″":"\'\'","‶":"\'\'","〃":"\'\'","״":"\'\'","˝":"\'\'","ʺ":"\'\'","˶":"\'\'","ˮ":"\'\'","ײ":"\'\'","‴":"\'\'\'","‷":"\'\'\'","⁗":"\'\'\'\'","Ɓ":"\'B","Ɗ":"\'D","ʼn":"\'n","Ƥ":"\'P","Ƭ":"\'T","Ƴ":"\'Y","[":"(","❨":"(","❲":"(","〔":"(","﴾":"(","⸨":"((","㈠":"(ー)","⑵":"(2)","⒇":"(2O)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⒜":"(a)","🄐":"(A)","⒝":"(b)","🄑":"(B)","⒞":"(c)","🄒":"(C)","⒟":"(d)","🄓":"(D)","⒠":"(e)","🄔":"(E)","⒡":"(f)","🄕":"(F)","⒢":"(g)","🄖":"(G)","⒣":"(h)","🄗":"(H)","⒤":"(i)","⒥":"(j)","🄙":"(J)","⒦":"(k)","🄚":"(K)","⑴":"(l)","🄘":"(l)","⒧":"(l)","🄛":"(L)","⑿":"(l2)","⒀":"(l3)","⒁":"(l4)","⒂":"(l5)","⒃":"(l6)","⒄":"(l7)","⒅":"(l8)","⒆":"(l9)","⑾":"(ll)","⑽":"(lO)","🄜":"(M)","⒩":"(n)","🄝":"(N)","⒪":"(o)","🄞":"(O)","⒫":"(p)","🄟":"(P)","⒬":"(q)","🄠":"(Q)","⒭":"(r)","🄡":"(R)","⒨":"(rn)","⒮":"(s)","🄢":"(S)","🄪":"(S)","⒯":"(t)","🄣":"(T)","⒰":"(u)","🄤":"(U)","⒱":"(v)","🄥":"(V)","⒲":"(w)","🄦":"(W)","⒳":"(x)","🄧":"(X)","⒴":"(y)","🄨":"(Y)","⒵":"(z)","🄩":"(Z)","㈀":"(ᄀ)","㈎":"(가)","㈁":"(ᄂ)","㈏":"(나)","㈂":"(ᄃ)","㈐":"(다)","㈃":"(ᄅ)","㈑":"(라)","㈄":"(ᄆ)","㈒":"(마)","㈅":"(ᄇ)","㈓":"(바)","㈆":"(ᄉ)","㈔":"(사)","㈇":"(ᄋ)","㈕":"(아)","㈝":"(오전)","㈞":"(오후)","㈈":"(ᄌ)","㈖":"(자)","㈜":"(주)","㈉":"(ᄎ)","㈗":"(차)","㈊":"(ᄏ)","㈘":"(카)","㈋":"(ᄐ)","㈙":"(타)","㈌":"(ᄑ)","㈚":"(파)","㈍":"(ᄒ)","㈛":"(하)","㈦":"(七)","㈢":"(三)","🉁":"(三)","㈨":"(九)","㈡":"(二)","🉂":"(二)","㈤":"(五)","㈹":"(代)","㈽":"(企)","㉁":"(休)","㈧":"(八)","㈥":"(六)","㈸":"(労)","🉇":"(勝)","㈩":"(十)","㈿":"(協)","㈴":"(名)","㈺":"(呼)","㈣":"(四)","㈯":"(土)","㈻":"(学)","🉃":"(安)","🉅":"(打)","🉈":"(敗)","㈰":"(日)","㈪":"(月)","㈲":"(有)","㈭":"(木)","🉀":"(本)","㈱":"(株)","㈬":"(水)","㈫":"(火)","🉄":"(点)","㈵":"(特)","🉆":"(盗)","㈼":"(監)","㈳":"(社)","㈷":"(祝)","㉀":"(祭)","㉂":"(自)","㉃":"(至)","㈶":"(財)","㈾":"(資)","㈮":"(金)","]":")","❩":")","❳":")","〕":")","﴿":")","⸩":"))","❴":"{","𝄔":"{","❵":"}","〚":"⟦","〛":"⟧","⟨":"❬","〈":"❬","〈":"❬","㇛":"❬","く":"❬","𡿨":"❬","⟩":"❭","〉":"❭","〉":"❭","^":"︿","⸿":"¶","⁎":"*","٭":"*","∗":"*","𐌟":"*","᜵":"/","⁁":"/","∕":"/","⁄":"/","╱":"/","⟋":"/","⧸":"/","𝈺":"/","㇓":"/","〳":"/","Ⳇ":"/","ノ":"/","丿":"/","⼃":"/","⧶":"/̄","⫽":"//","⫻":"///","\":"\\\\","﹨":"\\\\","∖":"\\\\","⟍":"\\\\","⧵":"\\\\","⧹":"\\\\","𝈏":"\\\\","𝈻":"\\\\","㇔":"\\\\","丶":"\\\\","⼂":"\\\\","⳹":"\\\\\\\\","⑊":"\\\\\\\\","⟈":"\\\\ᑕ","ꝸ":"&","૰":"॰","𑂻":"॰","𑇇":"॰","⚬":"॰","𑇛":"꣼","៙":"๏","៕":"๚","៚":"๛","༌":"་","༎":"།།","˄":"^","ˆ":"^","꙾":"ˇ","˘":"ˇ","‾":"ˉ","﹉":"ˉ","﹊":"ˉ","﹋":"ˉ","﹌":"ˉ","¯":"ˉ"," ̄":"ˉ","▔":"ˉ","ъ":"ˉb","ꙑ":"ˉbi","͵":"ˏ","˻":"˪","꜖":"˪","꜔":"˫","。":"˳","⸰":"°","˚":"°","∘":"°","○":"°","◦":"°","⍜":"°̲","⍤":"°̈","℃":"°C","℉":"°F","௵":"௳","༛":"༚༚","༟":"༚༝","࿎":"༝༚","༞":"༝༝","Ⓒ":"©","Ⓡ":"®","Ⓟ":"℗","𝈛":"⅄","⯬":"↞","⯭":"↟","⯮":"↠","⯯":"↡","↵":"↲","⥥":"⇃⇂","⥯":"⇃ᛚ","𝛛":"∂","𝜕":"∂","𝝏":"∂","𝞉":"∂","𝟃":"∂","𞣌":"∂","𞣍":"∂̵","ð":"∂̵","⌀":"∅","𝛁":"∇","𝛻":"∇","𝜵":"∇","𝝯":"∇","𝞩":"∇","𑢨":"∇","⍢":"∇̈","⍫":"∇̴","█":"∎","■":"∎","⨿":"∐","᛭":"+","➕":"+","𐊛":"+","⨣":"+̂","⨢":"+̊","⨤":"+̃","∔":"+̇","⨥":"+̣","⨦":"+̰","⨧":"+₂","➗":"÷","‹":"<","❮":"<","˂":"<","𝈶":"<","ᐸ":"<","ᚲ":"<","⋖":"<·","Ⲵ":"<·","ᑅ":"<·","≪":"<<","⋘":"<<<","᐀":"=","⹀":"=","゠":"=","꓿":"=","≚":"=̆","≙":"=̂","≗":"=̊","≐":"=̇","≑":"=̣̇","⩮":"=⃰","⩵":"==","⩶":"===","≞":"=ͫ","›":">","❯":">","˃":">","𝈷":">","ᐳ":">","𖼿":">","ᑁ":">·","⪥":"><","≫":">>","⨠":">>","⋙":">>>","⁓":"~","˜":"~","῀":"~","∼":"~","⍨":"~̈","⸞":"~̇","⩪":"~̇","⸟":"~̣","𞣈":"∠","⋀":"∧","∯":"∮∮","∰":"∮∮∮","⸫":"∴","⸪":"∵","⸬":"∷","𑇞":"≈","♎":"≏","🝞":"≏","≣":"≡","⨃":"⊍","⨄":"⊎","𝈸":"⊏","𝈹":"⊐","⨅":"⊓","⨆":"⊔","⨂":"⊗","⍟":"⊛","🝱":"⊠","🝕":"⊡","◁":"⊲","▷":"⊳","⍣":"⋆̈","︴":"⌇","◠":"⌒","⨽":"⌙","⌥":"⌤","⧇":"⌻","◎":"⌾","⦾":"⌾","⧅":"⍂","⦰":"⍉","⏃":"⍋","⏂":"⍎","⏁":"⍕","⏆":"⍭","☸":"⎈","︵":"⏜","︶":"⏝","︷":"⏞","︸":"⏟","︹":"⏠","︺":"⏡","▱":"⏥","⏼":"⏻","︱":"│","|":"│","┃":"│","┏":"┌","┣":"├","▐":"▌","▗":"▖","▝":"▘","☐":"□","■":"▪","▸":"▶","►":"▶","⳩":"☧","🜊":"☩","🌒":"☽","🌙":"☽","⏾":"☾","🌘":"☾","⧙":"⦚","🜺":"⧟","⨾":"⨟","𐆠":"⳨","♩":"𝅘𝅥","♪":"𝅘𝅥𝅮","⓪":"🄍","↺":"🄎","˙":"ॱ","ൎ":"ॱ","-":"ー","—":"ー","―":"ー","─":"ー","━":"ー","㇐":"ー","ꟷ":"ー","ᅳ":"ー","ㅡ":"ー","一":"ー","⼀":"ー","ᆖ":"ーー","ힹ":"ーᅡ","ힺ":"ーᅥ","ힻ":"ーᅥ丨","ힼ":"ーᅩ","ᆕ":"ーᅮ","ᅴ":"ー丨","ㅢ":"ー丨","ᆗ":"ー丨ᅮ","🄏":"$⃠","₤":"£","〒":"₸","〶":"₸","᭜":"᭐","꧆":"꧐","𑓑":"১","೧":"౧","ၥ":"၁","①":"➀","⑩":"➉","⏨":"₁₀","𝟐":"2","𝟚":"2","𝟤":"2","𝟮":"2","𝟸":"2","🯲":"2","Ꝛ":"2","Ƨ":"2","Ϩ":"2","Ꙅ":"2","ᒿ":"2","ꛯ":"2","ꧏ":"٢","۲":"٢","૨":"२","𑓒":"২","೨":"౨","②":"➁","ƻ":"2̵","🄃":"2,","⒉":"2.","㏵":"22日","㍮":"22点","㏶":"23日","㍯":"23点","㏷":"24日","㍰":"24点","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏴":"2l日","㍭":"2l点","⒛":"2O.","㏳":"2O日","㍬":"2O点","෩":"෨ා","෯":"෨ී","㏡":"2日","㋁":"2月","㍚":"2点","𝈆":"3","𝟑":"3","𝟛":"3","𝟥":"3","𝟯":"3","𝟹":"3","🯳":"3","Ɜ":"3","Ȝ":"3","Ʒ":"3","Ꝫ":"3","Ⳍ":"3","З":"3","Ӡ":"3","𖼻":"3","𑣊":"3","۳":"٣","𞣉":"٣","૩":"३","③":"➂","Ҙ":"3̦","🄄":"3,","⒊":"3.","㏾":"3l日","㏽":"3O日","㏢":"3日","㋂":"3月","㍛":"3点","𝟒":"4","𝟜":"4","𝟦":"4","𝟰":"4","𝟺":"4","🯴":"4","Ꮞ":"4","𑢯":"4","۴":"٤","૪":"४","④":"➃","🄅":"4,","⒋":"4.","ᔰ":"4·","㏣":"4日","㋃":"4月","㍜":"4点","𝟓":"5","𝟝":"5","𝟧":"5","𝟱":"5","𝟻":"5","🯵":"5","Ƽ":"5","𑢻":"5","⑤":"➄","🄆":"5,","⒌":"5.","㏤":"5日","㋄":"5月","㍝":"5点","𝟔":"6","𝟞":"6","𝟨":"6","𝟲":"6","𝟼":"6","🯶":"6","Ⳓ":"6","б":"6","Ꮾ":"6","𑣕":"6","۶":"٦","𑓖":"৬","⑥":"➅","🄇":"6,","⒍":"6.","㏥":"6日","㋅":"6月","㍞":"6点","𝈒":"7","𝟕":"7","𝟟":"7","𝟩":"7","𝟳":"7","𝟽":"7","🯷":"7","𐓒":"7","𑣆":"7","⑦":"➆","🄈":"7,","⒎":"7.","㏦":"7日","㋆":"7月","㍟":"7点","ଃ":"8","৪":"8","੪":"8","𞣋":"8","𝟖":"8","𝟠":"8","𝟪":"8","𝟴":"8","𝟾":"8","🯸":"8","ȣ":"8","Ȣ":"8","𐌚":"8","૮":"८","⑧":"➇","🄉":"8,","⒏":"8.","㏧":"8日","㋇":"8月","㍠":"8点","੧":"9","୨":"9","৭":"9","൭":"9","𝟗":"9","𝟡":"9","𝟫":"9","𝟵":"9","𝟿":"9","🯹":"9","Ꝯ":"9","Ⳋ":"9","𑣌":"9","𑢬":"9","𑣖":"9","१":"٩","𑣤":"٩","۹":"٩","೯":"౯","⑨":"➈","🄊":"9,","⒐":"9.","㏨":"9日","㋈":"9月","㍡":"9点","⍺":"a","a":"a","𝐚":"a","𝑎":"a","𝒂":"a","𝒶":"a","𝓪":"a","𝔞":"a","𝕒":"a","𝖆":"a","𝖺":"a","𝗮":"a","𝘢":"a","𝙖":"a","𝚊":"a","ɑ":"a","α":"a","𝛂":"a","𝛼":"a","𝜶":"a","𝝰":"a","𝞪":"a","а":"a","ⷶ":"ͣ","A":"A","𝐀":"A","𝐴":"A","𝑨":"A","𝒜":"A","𝓐":"A","𝔄":"A","𝔸":"A","𝕬":"A","𝖠":"A","𝗔":"A","𝘈":"A","𝘼":"A","𝙰":"A","Α":"A","𝚨":"A","𝛢":"A","𝜜":"A","𝝖":"A","𝞐":"A","А":"A","Ꭺ":"A","ᗅ":"A","ꓮ":"A","𖽀":"A","𐊠":"A","⍶":"a̲","ǎ":"ă","Ǎ":"Ă","ȧ":"å","Ȧ":"Å","ẚ":"ả","℀":"a/c","℁":"a/s","ꜳ":"aa","Ꜳ":"AA","æ":"ae","ӕ":"ae","Æ":"AE","Ӕ":"AE","ꜵ":"ao","Ꜵ":"AO","🜇":"AR","ꜷ":"au","Ꜷ":"AU","ꜹ":"av","ꜻ":"av","Ꜹ":"AV","Ꜻ":"AV","ꜽ":"ay","Ꜽ":"AY","ꭺ":"ᴀ","∀":"Ɐ","𝈗":"Ɐ","ᗄ":"Ɐ","ꓯ":"Ɐ","𐐟":"Ɒ","𝐛":"b","𝑏":"b","𝒃":"b","𝒷":"b","𝓫":"b","𝔟":"b","𝕓":"b","𝖇":"b","𝖻":"b","𝗯":"b","𝘣":"b","𝙗":"b","𝚋":"b","Ƅ":"b","Ь":"b","Ꮟ":"b","ᑲ":"b","ᖯ":"b","B":"B","ℬ":"B","𝐁":"B","𝐵":"B","𝑩":"B","𝓑":"B","𝔅":"B","𝔹":"B","𝕭":"B","𝖡":"B","𝗕":"B","𝘉":"B","𝘽":"B","𝙱":"B","Ꞵ":"B","Β":"B","𝚩":"B","𝛣":"B","𝜝":"B","𝝗":"B","𝞑":"B","В":"B","Ᏼ":"B","ᗷ":"B","ꓐ":"B","𐊂":"B","𐊡":"B","𐌁":"B","ɓ":"b̔","ᑳ":"ḃ","ƃ":"b̄","Ƃ":"b̄","Б":"b̄","ƀ":"b̵","ҍ":"b̵","Ҍ":"b̵","ѣ":"b̵","Ѣ":"b̵","ᑿ":"b·","ᒁ":"ḃ·","ᒈ":"b\'","Ы":"bl","в":"ʙ","ᏼ":"ʙ","c":"c","ⅽ":"c","𝐜":"c","𝑐":"c","𝒄":"c","𝒸":"c","𝓬":"c","𝔠":"c","𝕔":"c","𝖈":"c","𝖼":"c","𝗰":"c","𝘤":"c","𝙘":"c","𝚌":"c","ᴄ":"c","ϲ":"c","ⲥ":"c","с":"c","ꮯ":"c","𐐽":"c","ⷭ":"ͨ","🝌":"C","𑣲":"C","𑣩":"C","C":"C","Ⅽ":"C","ℂ":"C","ℭ":"C","𝐂":"C","𝐶":"C","𝑪":"C","𝒞":"C","𝓒":"C","𝕮":"C","𝖢":"C","𝗖":"C","𝘊":"C","𝘾":"C","𝙲":"C","Ϲ":"C","Ⲥ":"C","С":"C","Ꮯ":"C","ꓚ":"C","𐊢":"C","𐌂":"C","𐐕":"C","𐔜":"C","¢":"c̸","ȼ":"c̸","₡":"C⃫","🅮":"C⃠","ç":"c̦","ҫ":"c̦","Ç":"C̦","Ҫ":"C̦","Ƈ":"C\'","℅":"c/o","℆":"c/u","🅭":"㏄\\t⃝","⋴":"ꞓ","ɛ":"ꞓ","ε":"ꞓ","ϵ":"ꞓ","𝛆":"ꞓ","𝛜":"ꞓ","𝜀":"ꞓ","𝜖":"ꞓ","𝜺":"ꞓ","𝝐":"ꞓ","𝝴":"ꞓ","𝞊":"ꞓ","𝞮":"ꞓ","𝟄":"ꞓ","ⲉ":"ꞓ","є":"ꞓ","ԑ":"ꞓ","ꮛ":"ꞓ","𑣎":"ꞓ","𐐩":"ꞓ","€":"Ꞓ","Ⲉ":"Ꞓ","Є":"Ꞓ","⍷":"ꞓ̲","ͽ":"ꜿ","Ͽ":"Ꜿ","ⅾ":"d","ⅆ":"d","𝐝":"d","𝑑":"d","𝒅":"d","𝒹":"d","𝓭":"d","𝔡":"d","𝕕":"d","𝖉":"d","𝖽":"d","𝗱":"d","𝘥":"d","𝙙":"d","𝚍":"d","ԁ":"d","Ꮷ":"d","ᑯ":"d","ꓒ":"d","Ⅾ":"D","ⅅ":"D","𝐃":"D","𝐷":"D","𝑫":"D","𝒟":"D","𝓓":"D","𝔇":"D","𝔻":"D","𝕯":"D","𝖣":"D","𝗗":"D","𝘋":"D","𝘿":"D","𝙳":"D","Ꭰ":"D","ᗞ":"D","ᗪ":"D","ꓓ":"D","ɗ":"d̔","ɖ":"d̨","ƌ":"d̄","đ":"d̵","Đ":"D̵","Ð":"D̵","Ɖ":"D̵","₫":"ḏ̵","ꝺ":"Ꝺ","ᑻ":"d·","ᒇ":"d\'","ʤ":"dȝ","dz":"dz","ʣ":"dz","Dz":"Dz","DZ":"DZ","dž":"dž","Dž":"Dž","DŽ":"DŽ","ʥ":"dʑ","ꭰ":"ᴅ","⸹":"ẟ","δ":"ẟ","𝛅":"ẟ","𝛿":"ẟ","𝜹":"ẟ","𝝳":"ẟ","𝞭":"ẟ","ծ":"ẟ","ᕷ":"ẟ","℮":"e","e":"e","ℯ":"e","ⅇ":"e","𝐞":"e","𝑒":"e","𝒆":"e","𝓮":"e","𝔢":"e","𝕖":"e","𝖊":"e","𝖾":"e","𝗲":"e","𝘦":"e","𝙚":"e","𝚎":"e","ꬲ":"e","е":"e","ҽ":"e","ⷷ":"ͤ","⋿":"E","E":"E","ℰ":"E","𝐄":"E","𝐸":"E","𝑬":"E","𝓔":"E","𝔈":"E","𝔼":"E","𝕰":"E","𝖤":"E","𝗘":"E","𝘌":"E","𝙀":"E","𝙴":"E","Ε":"E","𝚬":"E","𝛦":"E","𝜠":"E","𝝚":"E","𝞔":"E","Е":"E","ⴹ":"E","Ꭼ":"E","ꓰ":"E","𑢦":"E","𑢮":"E","𐊆":"E","ě":"ĕ","Ě":"Ĕ","ɇ":"e̸","Ɇ":"E̸","ҿ":"ę","ꭼ":"ᴇ","ə":"ǝ","ә":"ǝ","∃":"Ǝ","ⴺ":"Ǝ","ꓱ":"Ǝ","ɚ":"ǝ˞","ᴔ":"ǝo","ꭁ":"ǝo̸","ꭂ":"ǝo̵","Ә":"Ə","𝈡":"Ɛ","ℇ":"Ɛ","Ԑ":"Ɛ","Ꮛ":"Ɛ","𖼭":"Ɛ","𐐁":"Ɛ","ᶟ":"ᵋ","ᴈ":"ɜ","з":"ɜ","ҙ":"ɜ̦","𐑂":"ɞ","ꞝ":"ʚ","𐐪":"ʚ","𝐟":"f","𝑓":"f","𝒇":"f","𝒻":"f","𝓯":"f","𝔣":"f","𝕗":"f","𝖋":"f","𝖿":"f","𝗳":"f","𝘧":"f","𝙛":"f","𝚏":"f","ꬵ":"f","ꞙ":"f","ſ":"f","ẝ":"f","ք":"f","𝈓":"F","ℱ":"F","𝐅":"F","𝐹":"F","𝑭":"F","𝓕":"F","𝔉":"F","𝔽":"F","𝕱":"F","𝖥":"F","𝗙":"F","𝘍":"F","𝙁":"F","𝙵":"F","Ꞙ":"F","Ϝ":"F","𝟊":"F","ᖴ":"F","ꓝ":"F","𑣂":"F","𑢢":"F","𐊇":"F","𐊥":"F","𐔥":"F","ƒ":"f̦","Ƒ":"F̦","ᵮ":"f̴","℻":"FAX","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ʩ":"fŋ","ᖵ":"Ⅎ","ꓞ":"Ⅎ","𝈰":"ꟻ","ᖷ":"ꟻ","g":"g","ℊ":"g","𝐠":"g","𝑔":"g","𝒈":"g","𝓰":"g","𝔤":"g","𝕘":"g","𝖌":"g","𝗀":"g","𝗴":"g","𝘨":"g","𝙜":"g","𝚐":"g","ɡ":"g","ᶃ":"g","ƍ":"g","ց":"g","𝐆":"G","𝐺":"G","𝑮":"G","𝒢":"G","𝓖":"G","𝔊":"G","𝔾":"G","𝕲":"G","𝖦":"G","𝗚":"G","𝘎":"G","𝙂":"G","𝙶":"G","Ԍ":"G","Ꮐ":"G","Ᏻ":"G","ꓖ":"G","ᶢ":"ᵍ","ɠ":"g̔","ǧ":"ğ","Ǧ":"Ğ","ǵ":"ģ","ǥ":"g̵","Ǥ":"G̵","Ɠ":"G\'","ԍ":"ɢ","ꮐ":"ɢ","ᏻ":"ɢ","h":"h","ℎ":"h","𝐡":"h","𝒉":"h","𝒽":"h","𝓱":"h","𝔥":"h","𝕙":"h","𝖍":"h","𝗁":"h","𝗵":"h","𝘩":"h","𝙝":"h","𝚑":"h","һ":"h","հ":"h","Ꮒ":"h","H":"H","ℋ":"H","ℌ":"H","ℍ":"H","𝐇":"H","𝐻":"H","𝑯":"H","𝓗":"H","𝕳":"H","𝖧":"H","𝗛":"H","𝘏":"H","𝙃":"H","𝙷":"H","Η":"H","𝚮":"H","𝛨":"H","𝜢":"H","𝝜":"H","𝞖":"H","Ⲏ":"H","Н":"H","Ꮋ":"H","ᕼ":"H","ꓧ":"H","𐋏":"H","ᵸ":"ᴴ","ɦ":"h̔","ꚕ":"h̔","Ᏺ":"h̔","Ⱨ":"H̩","Ң":"H̩","ħ":"h̵","ℏ":"h̵","ћ":"h̵","Ħ":"H̵","Ӊ":"H̦","Ӈ":"H̦","н":"ʜ","ꮋ":"ʜ","ң":"ʜ̩","ӊ":"ʜ̦","ӈ":"ʜ̦","Ԋ":"Ƕ","ꮀ":"ⱶ","Ͱ":"Ⱶ","Ꭸ":"Ⱶ","Ꮀ":"Ⱶ","ꚱ":"Ⱶ","ꞕ":"ꜧ","˛":"i","⍳":"i","i":"i","ⅰ":"i","ℹ":"i","ⅈ":"i","𝐢":"i","𝑖":"i","𝒊":"i","𝒾":"i","𝓲":"i","𝔦":"i","𝕚":"i","𝖎":"i","𝗂":"i","𝗶":"i","𝘪":"i","𝙞":"i","𝚒":"i","ı":"i","𝚤":"i","ɪ":"i","ɩ":"i","ι":"i","ι":"i","ͺ":"i","𝛊":"i","𝜄":"i","𝜾":"i","𝝸":"i","𝞲":"i","і":"i","ꙇ":"i","ӏ":"i","ꭵ":"i","Ꭵ":"i","𑣃":"i","ⓛ":"Ⓘ","⍸":"i̲","ǐ":"ĭ","Ǐ":"Ĭ","ɨ":"i̵","ᵻ":"i̵","ᵼ":"i̵","ⅱ":"ii","ⅲ":"iii","ij":"ij","ⅳ":"iv","ⅸ":"ix","j":"j","ⅉ":"j","𝐣":"j","𝑗":"j","𝒋":"j","𝒿":"j","𝓳":"j","𝔧":"j","𝕛":"j","𝖏":"j","𝗃":"j","𝗷":"j","𝘫":"j","𝙟":"j","𝚓":"j","ϳ":"j","ј":"j","J":"J","𝐉":"J","𝐽":"J","𝑱":"J","𝒥":"J","𝓙":"J","𝔍":"J","𝕁":"J","𝕵":"J","𝖩":"J","𝗝":"J","𝘑":"J","𝙅":"J","𝙹":"J","Ʝ":"J","Ϳ":"J","Ј":"J","Ꭻ":"J","ᒍ":"J","ꓙ":"J","ɉ":"j̵","Ɉ":"J̵","ᒙ":"J·","𝚥":"ȷ","յ":"ȷ","ꭻ":"ᴊ","𝐤":"k","𝑘":"k","𝒌":"k","𝓀":"k","𝓴":"k","𝔨":"k","𝕜":"k","𝖐":"k","𝗄":"k","𝗸":"k","𝘬":"k","𝙠":"k","𝚔":"k","K":"K","K":"K","𝐊":"K","𝐾":"K","𝑲":"K","𝒦":"K","𝓚":"K","𝔎":"K","𝕂":"K","𝕶":"K","𝖪":"K","𝗞":"K","𝘒":"K","𝙆":"K","𝙺":"K","Κ":"K","𝚱":"K","𝛫":"K","𝜥":"K","𝝟":"K","𝞙":"K","Ⲕ":"K","К":"K","Ꮶ":"K","ᛕ":"K","ꓗ":"K","𐔘":"K","ƙ":"k̔","Ⱪ":"K̩","Қ":"K̩","₭":"K̵","Ꝁ":"K̵","Ҟ":"K̵","Ƙ":"K\'","׀":"l","|":"l","∣":"l","⏽":"l","│":"l","١":"l","۱":"l","𐌠":"l","𞣇":"l","𝟏":"l","𝟙":"l","𝟣":"l","𝟭":"l","𝟷":"l","🯱":"l","I":"l","I":"l","Ⅰ":"l","ℐ":"l","ℑ":"l","𝐈":"l","𝐼":"l","𝑰":"l","𝓘":"l","𝕀":"l","𝕴":"l","𝖨":"l","𝗜":"l","𝘐":"l","𝙄":"l","𝙸":"l","Ɩ":"l","l":"l","ⅼ":"l","ℓ":"l","𝐥":"l","𝑙":"l","𝒍":"l","𝓁":"l","𝓵":"l","𝔩":"l","𝕝":"l","𝖑":"l","𝗅":"l","𝗹":"l","𝘭":"l","𝙡":"l","𝚕":"l","ǀ":"l","Ι":"l","𝚰":"l","𝛪":"l","𝜤":"l","𝝞":"l","𝞘":"l","Ⲓ":"l","І":"l","Ӏ":"l","ו":"l","ן":"l","ا":"l","𞸀":"l","𞺀":"l","ﺎ":"l","ﺍ":"l","ߊ":"l","ⵏ":"l","ᛁ":"l","ꓲ":"l","𖼨":"l","𐊊":"l","𐌉":"l","𝈪":"L","Ⅼ":"L","ℒ":"L","𝐋":"L","𝐿":"L","𝑳":"L","𝓛":"L","𝔏":"L","𝕃":"L","𝕷":"L","𝖫":"L","𝗟":"L","𝘓":"L","𝙇":"L","𝙻":"L","Ⳑ":"L","Ꮮ":"L","ᒪ":"L","ꓡ":"L","𖼖":"L","𑢣":"L","𑢲":"L","𐐛":"L","𐔦":"L","ﴼ":"l̋","ﴽ":"l̋","ł":"l̸","Ł":"L̸","ɭ":"l̨","Ɨ":"l̵","ƚ":"l̵","ɫ":"l̴","إ":"lٕ","ﺈ":"lٕ","ﺇ":"lٕ","ٳ":"lٕ","ŀ":"l·","Ŀ":"l·","ᒷ":"l·","🄂":"l,","⒈":"l.","ױ":"l\'","⒓":"l2.","㏫":"l2日","㋋":"l2月","㍤":"l2点","⒔":"l3.","㏬":"l3日","㍥":"l3点","⒕":"l4.","㏭":"l4日","㍦":"l4点","⒖":"l5.","㏮":"l5日","㍧":"l5点","⒗":"l6.","㏯":"l6日","㍨":"l6点","⒘":"l7.","㏰":"l7日","㍩":"l7点","⒙":"l8.","㏱":"l8日","㍪":"l8点","⒚":"l9.","㏲":"l9日","㍫":"l9点","lj":"lj","IJ":"lJ","Lj":"Lj","LJ":"LJ","‖":"ll","∥":"ll","Ⅱ":"ll","ǁ":"ll","װ":"ll","𐆙":"l̵l̵","⒒":"ll.","Ⅲ":"lll","𐆘":"l̵l̵S̵","㏪":"ll日","㋊":"ll月","㍣":"ll点","Ю":"lO","⒑":"lO.","㏩":"lO日","㋉":"lO月","㍢":"lO点","ʪ":"ls","₶":"lt","Ⅳ":"lV","Ⅸ":"lX","ɮ":"lȝ","ʫ":"lz","أ":"lٴ","ﺄ":"lٴ","ﺃ":"lٴ","ٲ":"lٴ","ٵ":"lٴ","ﷳ":"lكبر","ﷲ":"lللّٰo","㏠":"l日","㋀":"l月","㍙":"l点","ⳑ":"ʟ","ꮮ":"ʟ","𐑃":"ʟ","M":"M","Ⅿ":"M","ℳ":"M","𝐌":"M","𝑀":"M","𝑴":"M","𝓜":"M","𝔐":"M","𝕄":"M","𝕸":"M","𝖬":"M","𝗠":"M","𝘔":"M","𝙈":"M","𝙼":"M","Μ":"M","𝚳":"M","𝛭":"M","𝜧":"M","𝝡":"M","𝞛":"M","Ϻ":"M","Ⲙ":"M","М":"M","Ꮇ":"M","ᗰ":"M","ᛖ":"M","ꓟ":"M","𐊰":"M","𐌑":"M","Ӎ":"M̦","🝫":"MB","ⷨ":"ᷟ","𝐧":"n","𝑛":"n","𝒏":"n","𝓃":"n","𝓷":"n","𝔫":"n","𝕟":"n","𝖓":"n","𝗇":"n","𝗻":"n","𝘯":"n","𝙣":"n","𝚗":"n","ո":"n","ռ":"n","N":"N","ℕ":"N","𝐍":"N","𝑁":"N","𝑵":"N","𝒩":"N","𝓝":"N","𝔑":"N","𝕹":"N","𝖭":"N","𝗡":"N","𝘕":"N","𝙉":"N","𝙽":"N","Ν":"N","𝚴":"N","𝛮":"N","𝜨":"N","𝝢":"N","𝞜":"N","Ⲛ":"N","ꓠ":"N","𐔓":"N","𐆎":"N̊","ɳ":"n̨","ƞ":"n̩","η":"n̩","𝛈":"n̩","𝜂":"n̩","𝜼":"n̩","𝝶":"n̩","𝞰":"n̩","Ɲ":"N̦","ᵰ":"n̴","nj":"nj","Nj":"Nj","NJ":"NJ","№":"No","ͷ":"ᴎ","и":"ᴎ","𐑍":"ᴎ","ņ":"ɲ","ం":"o","ಂ":"o","ം":"o","ං":"o","०":"o","੦":"o","૦":"o","௦":"o","౦":"o","೦":"o","൦":"o","๐":"o","໐":"o","၀":"o","٥":"o","۵":"o","o":"o","ℴ":"o","𝐨":"o","𝑜":"o","𝒐":"o","𝓸":"o","𝔬":"o","𝕠":"o","𝖔":"o","𝗈":"o","𝗼":"o","𝘰":"o","𝙤":"o","𝚘":"o","ᴏ":"o","ᴑ":"o","ꬽ":"o","ο":"o","𝛐":"o","𝜊":"o","𝝄":"o","𝝾":"o","𝞸":"o","σ":"o","𝛔":"o","𝜎":"o","𝝈":"o","𝞂":"o","𝞼":"o","ⲟ":"o","о":"o","ჿ":"o","օ":"o","ס":"o","ه":"o","𞸤":"o","𞹤":"o","𞺄":"o","ﻫ":"o","ﻬ":"o","ﻪ":"o","ﻩ":"o","ھ":"o","ﮬ":"o","ﮭ":"o","ﮫ":"o","ﮪ":"o","ہ":"o","ﮨ":"o","ﮩ":"o","ﮧ":"o","ﮦ":"o","ە":"o","ഠ":"o","ဝ":"o","𐓪":"o","𑣈":"o","𑣗":"o","𐐬":"o","߀":"O","০":"O","୦":"O","〇":"O","𑓐":"O","𑣠":"O","𝟎":"O","𝟘":"O","𝟢":"O","𝟬":"O","𝟶":"O","🯰":"O","O":"O","𝐎":"O","𝑂":"O","𝑶":"O","𝒪":"O","𝓞":"O","𝔒":"O","𝕆":"O","𝕺":"O","𝖮":"O","𝗢":"O","𝘖":"O","𝙊":"O","𝙾":"O","Ο":"O","𝚶":"O","𝛰":"O","𝜪":"O","𝝤":"O","𝞞":"O","Ⲟ":"O","О":"O","Օ":"O","ⵔ":"O","ዐ":"O","ଠ":"O","𐓂":"O","ꓳ":"O","𑢵":"O","𐊒":"O","𐊫":"O","𐐄":"O","𐔖":"O","⁰":"º","ᵒ":"º","ǒ":"ŏ","Ǒ":"Ŏ","ۿ":"ô","Ő":"Ö","ø":"o̸","ꬾ":"o̸","Ø":"O̸","ⵁ":"O̸","Ǿ":"Ó̸","ɵ":"o̵","ꝋ":"o̵","ө":"o̵","ѳ":"o̵","ꮎ":"o̵","ꮻ":"o̵","⊖":"O̵","⊝":"O̵","⍬":"O̵","𝈚":"O̵","🜔":"O̵","Ɵ":"O̵","Ꝋ":"O̵","θ":"O̵","ϑ":"O̵","𝛉":"O̵","𝛝":"O̵","𝜃":"O̵","𝜗":"O̵","𝜽":"O̵","𝝑":"O̵","𝝷":"O̵","𝞋":"O̵","𝞱":"O̵","𝟅":"O̵","Θ":"O̵","ϴ":"O̵","𝚯":"O̵","𝚹":"O̵","𝛩":"O̵","𝛳":"O̵","𝜣":"O̵","𝜭":"O̵","𝝝":"O̵","𝝧":"O̵","𝞗":"O̵","𝞡":"O̵","Ө":"O̵","Ѳ":"O̵","ⴱ":"O̵","Ꮎ":"O̵","Ꮻ":"O̵","ꭴ":"ơ","ﳙ":"oٰ","🄁":"O,","🄀":"O.","ơ":"o\'","Ơ":"O\'","Ꭴ":"O\'","%":"º/₀","٪":"º/₀","⁒":"º/₀","‰":"º/₀₀","؉":"º/₀₀","‱":"º/₀₀₀","؊":"º/₀₀₀","œ":"oe","Œ":"OE","ɶ":"oᴇ","∞":"oo","ꝏ":"oo","ꚙ":"oo","Ꝏ":"OO","Ꚙ":"OO","ﳗ":"oج","ﱑ":"oج","ﳘ":"oم","ﱒ":"oم","ﶓ":"oمج","ﶔ":"oمم","ﱓ":"oى","ﱔ":"oى","ൟ":"oരo","တ":"oာ","㍘":"O点","ↄ":"ɔ","ᴐ":"ɔ","ͻ":"ɔ","𐑋":"ɔ","Ↄ":"Ɔ","Ͻ":"Ɔ","ꓛ":"Ɔ","𐐣":"Ɔ","ꬿ":"ɔ̸","ꭢ":"ɔe","𐐿":"ɷ","⍴":"p","p":"p","𝐩":"p","𝑝":"p","𝒑":"p","𝓅":"p","𝓹":"p","𝔭":"p","𝕡":"p","𝖕":"p","𝗉":"p","𝗽":"p","𝘱":"p","𝙥":"p","𝚙":"p","ρ":"p","ϱ":"p","𝛒":"p","𝛠":"p","𝜌":"p","𝜚":"p","𝝆":"p","𝝔":"p","𝞀":"p","𝞎":"p","𝞺":"p","𝟈":"p","ⲣ":"p","р":"p","P":"P","ℙ":"P","𝐏":"P","𝑃":"P","𝑷":"P","𝒫":"P","𝓟":"P","𝔓":"P","𝕻":"P","𝖯":"P","𝗣":"P","𝘗":"P","𝙋":"P","𝙿":"P","Ρ":"P","𝚸":"P","𝛲":"P","𝜬":"P","𝝦":"P","𝞠":"P","Ⲣ":"P","Р":"P","Ꮲ":"P","ᑭ":"P","ꓑ":"P","𐊕":"P","ƥ":"p̔","ᵽ":"p̵","ᑷ":"p·","ᒆ":"P\'","ᴩ":"ᴘ","ꮲ":"ᴘ","φ":"ɸ","ϕ":"ɸ","𝛗":"ɸ","𝛟":"ɸ","𝜑":"ɸ","𝜙":"ɸ","𝝋":"ɸ","𝝓":"ɸ","𝞅":"ɸ","𝞍":"ɸ","𝞿":"ɸ","𝟇":"ɸ","ⲫ":"ɸ","ф":"ɸ","𝐪":"q","𝑞":"q","𝒒":"q","𝓆":"q","𝓺":"q","𝔮":"q","𝕢":"q","𝖖":"q","𝗊":"q","𝗾":"q","𝘲":"q","𝙦":"q","𝚚":"q","ԛ":"q","գ":"q","զ":"q","ℚ":"Q","𝐐":"Q","𝑄":"Q","𝑸":"Q","𝒬":"Q","𝓠":"Q","𝔔":"Q","𝕼":"Q","𝖰":"Q","𝗤":"Q","𝘘":"Q","𝙌":"Q","𝚀":"Q","ⵕ":"Q","ʠ":"q̔","🜀":"QE","ᶐ":"ɋ","ᴋ":"ĸ","κ":"ĸ","ϰ":"ĸ","𝛋":"ĸ","𝛞":"ĸ","𝜅":"ĸ","𝜘":"ĸ","𝜿":"ĸ","𝝒":"ĸ","𝝹":"ĸ","𝞌":"ĸ","𝞳":"ĸ","𝟆":"ĸ","ⲕ":"ĸ","к":"ĸ","ꮶ":"ĸ","қ":"ĸ̩","ҟ":"ĸ̵","𝐫":"r","𝑟":"r","𝒓":"r","𝓇":"r","𝓻":"r","𝔯":"r","𝕣":"r","𝖗":"r","𝗋":"r","𝗿":"r","𝘳":"r","𝙧":"r","𝚛":"r","ꭇ":"r","ꭈ":"r","ᴦ":"r","ⲅ":"r","г":"r","ꮁ":"r","𝈖":"R","ℛ":"R","ℜ":"R","ℝ":"R","𝐑":"R","𝑅":"R","𝑹":"R","𝓡":"R","𝕽":"R","𝖱":"R","𝗥":"R","𝘙":"R","𝙍":"R","𝚁":"R","Ʀ":"R","Ꭱ":"R","Ꮢ":"R","𐒴":"R","ᖇ":"R","ꓣ":"R","𖼵":"R","ɽ":"r̨","ɼ":"r̩","ɍ":"r̵","ғ":"r̵","ᵲ":"r̴","ґ":"r\'","𑣣":"rn","m":"rn","ⅿ":"rn","𝐦":"rn","𝑚":"rn","𝒎":"rn","𝓂":"rn","𝓶":"rn","𝔪":"rn","𝕞":"rn","𝖒":"rn","𝗆":"rn","𝗺":"rn","𝘮":"rn","𝙢":"rn","𝚖":"rn","𑜀":"rn","₥":"rn̸","ɱ":"rn̦","ᵯ":"rn̴","₨":"Rs","ꭱ":"ʀ","ꮢ":"ʀ","я":"ᴙ","ᵳ":"ɾ̴","℩":"ɿ","s":"s","𝐬":"s","𝑠":"s","𝒔":"s","𝓈":"s","𝓼":"s","𝔰":"s","𝕤":"s","𝖘":"s","𝗌":"s","𝘀":"s","𝘴":"s","𝙨":"s","𝚜":"s","ꜱ":"s","ƽ":"s","ѕ":"s","ꮪ":"s","𑣁":"s","𐑈":"s","S":"S","𝐒":"S","𝑆":"S","𝑺":"S","𝒮":"S","𝓢":"S","𝔖":"S","𝕊":"S","𝕾":"S","𝖲":"S","𝗦":"S","𝘚":"S","𝙎":"S","𝚂":"S","Ѕ":"S","Տ":"S","Ꮥ":"S","Ꮪ":"S","ꓢ":"S","𖼺":"S","𐊖":"S","𐐠":"S","ʂ":"s̨","ᵴ":"s̴","ꞵ":"ß","β":"ß","ϐ":"ß","𝛃":"ß","𝛽":"ß","𝜷":"ß","𝝱":"ß","𝞫":"ß","Ᏸ":"ß","🝜":"sss","st":"st","∫":"ʃ","ꭍ":"ʃ","∑":"Ʃ","⅀":"Ʃ","Σ":"Ʃ","𝚺":"Ʃ","𝛴":"Ʃ","𝜮":"Ʃ","𝝨":"Ʃ","𝞢":"Ʃ","ⵉ":"Ʃ","∬":"ʃʃ","∭":"ʃʃʃ","⨌":"ʃʃʃʃ","𝐭":"t","𝑡":"t","𝒕":"t","𝓉":"t","𝓽":"t","𝔱":"t","𝕥":"t","𝖙":"t","𝗍":"t","𝘁":"t","𝘵":"t","𝙩":"t","𝚝":"t","⊤":"T","⟙":"T","🝨":"T","T":"T","𝐓":"T","𝑇":"T","𝑻":"T","𝒯":"T","𝓣":"T","𝔗":"T","𝕋":"T","𝕿":"T","𝖳":"T","𝗧":"T","𝘛":"T","𝙏":"T","𝚃":"T","Τ":"T","𝚻":"T","𝛵":"T","𝜯":"T","𝝩":"T","𝞣":"T","Ⲧ":"T","Т":"T","Ꭲ":"T","ꓔ":"T","𖼊":"T","𑢼":"T","𐊗":"T","𐊱":"T","𐌕":"T","ƭ":"t̔","⍡":"T̈","Ⱦ":"T̸","Ț":"Ţ","Ʈ":"T̨","Ҭ":"T̩","₮":"T⃫","ŧ":"t̵","Ŧ":"T̵","ᵵ":"t̴","Ⴀ":"Ꞇ","Ꜩ":"T3","ʨ":"tɕ","℡":"TEL","ꝷ":"tf","ʦ":"ts","ʧ":"tʃ","ꜩ":"tȝ","τ":"ᴛ","𝛕":"ᴛ","𝜏":"ᴛ","𝝉":"ᴛ","𝞃":"ᴛ","𝞽":"ᴛ","т":"ᴛ","ꭲ":"ᴛ","ҭ":"ᴛ̩","ţ":"ƫ","ț":"ƫ","Ꮏ":"ƫ","𝐮":"u","𝑢":"u","𝒖":"u","𝓊":"u","𝓾":"u","𝔲":"u","𝕦":"u","𝖚":"u","𝗎":"u","𝘂":"u","𝘶":"u","𝙪":"u","𝚞":"u","ꞟ":"u","ᴜ":"u","ꭎ":"u","ꭒ":"u","ʋ":"u","υ":"u","𝛖":"u","𝜐":"u","𝝊":"u","𝞄":"u","𝞾":"u","ս":"u","𐓶":"u","𑣘":"u","∪":"U","⋃":"U","𝐔":"U","𝑈":"U","𝑼":"U","𝒰":"U","𝓤":"U","𝔘":"U","𝕌":"U","𝖀":"U","𝖴":"U","𝗨":"U","𝘜":"U","𝙐":"U","𝚄":"U","Ս":"U","ሀ":"U","𐓎":"U","ᑌ":"U","ꓴ":"U","𖽂":"U","𑢸":"U","ǔ":"ŭ","Ǔ":"Ŭ","ᵾ":"u̵","ꮜ":"u̵","Ʉ":"U̵","Ꮜ":"U̵","ᑘ":"U·","ᑧ":"U\'","ᵫ":"ue","ꭣ":"uo","ṃ":"ꭑ","պ":"ɰ","ሣ":"ɰ","℧":"Ʊ","ᘮ":"Ʊ","ᘴ":"Ʊ","ᵿ":"ʊ̵","∨":"v","⋁":"v","v":"v","ⅴ":"v","𝐯":"v","𝑣":"v","𝒗":"v","𝓋":"v","𝓿":"v","𝔳":"v","𝕧":"v","𝖛":"v","𝗏":"v","𝘃":"v","𝘷":"v","𝙫":"v","𝚟":"v","ᴠ":"v","ν":"v","𝛎":"v","𝜈":"v","𝝂":"v","𝝼":"v","𝞶":"v","ѵ":"v","ט":"v","𑜆":"v","ꮩ":"v","𑣀":"v","𝈍":"V","٧":"V","۷":"V","Ⅴ":"V","𝐕":"V","𝑉":"V","𝑽":"V","𝒱":"V","𝓥":"V","𝔙":"V","𝕍":"V","𝖁":"V","𝖵":"V","𝗩":"V","𝘝":"V","𝙑":"V","𝚅":"V","Ѵ":"V","ⴸ":"V","Ꮩ":"V","ᐯ":"V","ꛟ":"V","ꓦ":"V","𖼈":"V","𑢠":"V","𐔝":"V","𐆗":"V̵","ᐻ":"V·","🝬":"VB","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","Ⅵ":"Vl","Ⅶ":"Vll","Ⅷ":"Vlll","🜈":"Vᷤ","ᴧ":"ʌ","𐓘":"ʌ","٨":"Ʌ","۸":"Ʌ","Λ":"Ʌ","𝚲":"Ʌ","𝛬":"Ʌ","𝜦":"Ʌ","𝝠":"Ʌ","𝞚":"Ʌ","Л":"Ʌ","ⴷ":"Ʌ","𐒰":"Ʌ","ᐱ":"Ʌ","ꛎ":"Ʌ","ꓥ":"Ʌ","𖼽":"Ʌ","𐊍":"Ʌ","Ӆ":"Ʌ̦","ᐽ":"Ʌ·","ɯ":"w","𝐰":"w","𝑤":"w","𝒘":"w","𝓌":"w","𝔀":"w","𝔴":"w","𝕨":"w","𝖜":"w","𝗐":"w","𝘄":"w","𝘸":"w","𝙬":"w","𝚠":"w","ᴡ":"w","ѡ":"w","ԝ":"w","ա":"w","𑜊":"w","𑜎":"w","𑜏":"w","ꮃ":"w","𑣯":"W","𑣦":"W","𝐖":"W","𝑊":"W","𝑾":"W","𝒲":"W","𝓦":"W","𝔚":"W","𝕎":"W","𝖂":"W","𝖶":"W","𝗪":"W","𝘞":"W","𝙒":"W","𝚆":"W","Ԝ":"W","Ꮃ":"W","Ꮤ":"W","ꓪ":"W","ѽ":"w҆҇","𑓅":"ẇ","₩":"W̵","ꝡ":"w̦","ᴍ":"ʍ","м":"ʍ","ꮇ":"ʍ","ӎ":"ʍ̦","᙮":"x","×":"x","⤫":"x","⤬":"x","⨯":"x","x":"x","ⅹ":"x","𝐱":"x","𝑥":"x","𝒙":"x","𝓍":"x","𝔁":"x","𝔵":"x","𝕩":"x","𝖝":"x","𝗑":"x","𝘅":"x","𝘹":"x","𝙭":"x","𝚡":"x","х":"x","ᕁ":"x","ᕽ":"x","ⷯ":"ͯ","᙭":"X","╳":"X","𐌢":"X","𑣬":"X","X":"X","Ⅹ":"X","𝐗":"X","𝑋":"X","𝑿":"X","𝒳":"X","𝓧":"X","𝔛":"X","𝕏":"X","𝖃":"X","𝖷":"X","𝗫":"X","𝘟":"X","𝙓":"X","𝚇":"X","Ꭓ":"X","Χ":"X","𝚾":"X","𝛸":"X","𝜲":"X","𝝬":"X","𝞦":"X","Ⲭ":"X","Х":"X","ⵝ":"X","ᚷ":"X","ꓫ":"X","𐊐":"X","𐊴":"X","𐌗":"X","𐔧":"X","⨰":"ẋ","Ҳ":"X̩","𐆖":"X̵","ⅺ":"xi","ⅻ":"xii","Ⅺ":"Xl","Ⅻ":"Xll","ɣ":"y","ᶌ":"y","y":"y","𝐲":"y","𝑦":"y","𝒚":"y","𝓎":"y","𝔂":"y","𝔶":"y","𝕪":"y","𝖞":"y","𝗒":"y","𝘆":"y","𝘺":"y","𝙮":"y","𝚢":"y","ʏ":"y","ỿ":"y","ꭚ":"y","γ":"y","ℽ":"y","𝛄":"y","𝛾":"y","𝜸":"y","𝝲":"y","𝞬":"y","у":"y","ү":"y","ყ":"y","𑣜":"y","Y":"Y","𝐘":"Y","𝑌":"Y","𝒀":"Y","𝒴":"Y","𝓨":"Y","𝔜":"Y","𝕐":"Y","𝖄":"Y","𝖸":"Y","𝗬":"Y","𝘠":"Y","𝙔":"Y","𝚈":"Y","Υ":"Y","ϒ":"Y","𝚼":"Y","𝛶":"Y","𝜰":"Y","𝝪":"Y","𝞤":"Y","Ⲩ":"Y","У":"Y","Ү":"Y","Ꭹ":"Y","Ꮍ":"Y","ꓬ":"Y","𖽃":"Y","𑢤":"Y","𐊲":"Y","ƴ":"y̔","ɏ":"y̵","ұ":"y̵","¥":"Y̵","Ɏ":"Y̵","Ұ":"Y̵","ʒ":"ȝ","ꝫ":"ȝ","ⳍ":"ȝ","ӡ":"ȝ","ჳ":"ȝ","𝐳":"z","𝑧":"z","𝒛":"z","𝓏":"z","𝔃":"z","𝔷":"z","𝕫":"z","𝖟":"z","𝗓":"z","𝘇":"z","𝘻":"z","𝙯":"z","𝚣":"z","ᴢ":"z","ꮓ":"z","𑣄":"z","𐋵":"Z","𑣥":"Z","Z":"Z","ℤ":"Z","ℨ":"Z","𝐙":"Z","𝑍":"Z","𝒁":"Z","𝒵":"Z","𝓩":"Z","𝖅":"Z","𝖹":"Z","𝗭":"Z","𝘡":"Z","𝙕":"Z","𝚉":"Z","Ζ":"Z","𝚭":"Z","𝛧":"Z","𝜡":"Z","𝝛":"Z","𝞕":"Z","Ꮓ":"Z","ꓜ":"Z","𑢩":"Z","ʐ":"z̨","ƶ":"z̵","Ƶ":"Z̵","ȥ":"z̦","Ȥ":"Z̦","ᵶ":"z̴","ƿ":"þ","ϸ":"þ","Ϸ":"Þ","𐓄":"Þ","⁹":"ꝰ","ᴤ":"ƨ","ϩ":"ƨ","ꙅ":"ƨ","ь":"ƅ","ꮟ":"ƅ","ы":"ƅi","ꭾ":"ɂ","ˤ":"ˁ","ꛍ":"ʡ","⊙":"ʘ","☉":"ʘ","⨀":"ʘ","Ꙩ":"ʘ","ⵙ":"ʘ","𐓃":"ʘ","ℾ":"Γ","𝚪":"Γ","𝛤":"Γ","𝜞":"Γ","𝝘":"Γ","𝞒":"Γ","Ⲅ":"Γ","Г":"Γ","Ꮁ":"Γ","ᒥ":"Γ","𖼇":"Γ","Ғ":"Γ̵","ᒯ":"Γ·","Ґ":"Γ\'","∆":"Δ","△":"Δ","🜂":"Δ","𝚫":"Δ","𝛥":"Δ","𝜟":"Δ","𝝙":"Δ","𝞓":"Δ","Ⲇ":"Δ","ⵠ":"Δ","ᐃ":"Δ","𖼚":"Δ","𐊅":"Δ","𐊣":"Δ","⍙":"Δ̲","ᐏ":"Δ·","ᐬ":"Δᐠ","𝟋":"ϝ","𝛇":"ζ","𝜁":"ζ","𝜻":"ζ","𝝵":"ζ","𝞯":"ζ","ⳤ":"ϗ","𝛌":"λ","𝜆":"λ","𝝀":"λ","𝝺":"λ","𝞴":"λ","Ⲗ":"λ","𐓛":"λ","µ":"μ","𝛍":"μ","𝜇":"μ","𝝁":"μ","𝝻":"μ","𝞵":"μ","𝛏":"ξ","𝜉":"ξ","𝝃":"ξ","𝝽":"ξ","𝞷":"ξ","𝚵":"Ξ","𝛯":"Ξ","𝜩":"Ξ","𝝣":"Ξ","𝞝":"Ξ","ϖ":"π","ℼ":"π","𝛑":"π","𝛡":"π","𝜋":"π","𝜛":"π","𝝅":"π","𝝕":"π","𝝿":"π","𝞏":"π","𝞹":"π","𝟉":"π","ᴨ":"π","п":"π","∏":"Π","ℿ":"Π","𝚷":"Π","𝛱":"Π","𝜫":"Π","𝝥":"Π","𝞟":"Π","Ⲡ":"Π","П":"Π","ꛛ":"Π","𐊭":"Ϙ","𐌒":"Ϙ","ϛ":"ς","𝛓":"ς","𝜍":"ς","𝝇":"ς","𝞁":"ς","𝞻":"ς","𝚽":"Φ","𝛷":"Φ","𝜱":"Φ","𝝫":"Φ","𝞥":"Φ","Ⲫ":"Φ","Ф":"Φ","Փ":"Φ","ቀ":"Φ","ᛰ":"Φ","𐊳":"Φ","ꭓ":"χ","ꭕ":"χ","𝛘":"χ","𝜒":"χ","𝝌":"χ","𝞆":"χ","𝟀":"χ","ⲭ":"χ","𝛙":"ψ","𝜓":"ψ","𝝍":"ψ","𝞇":"ψ","𝟁":"ψ","ѱ":"ψ","𐓹":"ψ","𝚿":"Ψ","𝛹":"Ψ","𝜳":"Ψ","𝝭":"Ψ","𝞧":"Ψ","Ⲯ":"Ψ","Ѱ":"Ψ","𐓑":"Ψ","ᛘ":"Ψ","𐊵":"Ψ","⍵":"ω","ꞷ":"ω","𝛚":"ω","𝜔":"ω","𝝎":"ω","𝞈":"ω","𝟂":"ω","ⲱ":"ω","ꙍ":"ω","Ω":"Ω","𝛀":"Ω","𝛺":"Ω","𝜴":"Ω","𝝮":"Ω","𝞨":"Ω","ᘯ":"Ω","ᘵ":"Ω","𐊶":"Ω","⍹":"ω̲","ώ":"ῴ","☰":"Ⲷ","Ⳝ":"Ϭ","җ":"ж̩","Җ":"Ж̩","𝈋":"И","Ͷ":"И","ꚡ":"И","𐐥":"И","Й":"Ѝ","Ҋ":"Ѝ̦","ѝ":"й","ҋ":"й̦","𐒼":"Ӄ","ᴫ":"л","ӆ":"л̦","ꭠ":"љ","𐓫":"ꙩ","ᷮ":"ⷬ","𐓍":"Ћ","𝈂":"Ӿ","𝈢":"Ѡ","Ꮗ":"Ѡ","ᗯ":"Ѡ","Ѽ":"Ѡ҆҇","ᣭ":"Ѡ·","Ꞷ":"Ꙍ","ӌ":"ҷ","Ӌ":"Ҷ","Ҿ":"Ҽ̨","ⲽ":"ш","Ⲽ":"Ш","Ꙑ":"Ъl","℈":"Э","🜁":"Ꙙ","𖼜":"Ꙙ","ꦒ":"ⰿ","և":"եւ","ኔ":"ձ","ﬔ":"մե","ﬕ":"մի","ﬗ":"մխ","ﬓ":"մն","∩":"Ո","⋂":"Ո","𝉅":"Ո","በ":"Ո","ᑎ":"Ո","ꓵ":"Ո","ᑚ":"Ո·","ᑨ":"Ո\'","ﬖ":"վն","₽":"Ք","˓":"ՙ","ʿ":"ՙ","ℵ":"א","ﬡ":"א","אָ":"אַ","אּ":"אַ","ﭏ":"אל","ℶ":"ב","ℷ":"ג","ℸ":"ד","ﬢ":"ד","ﬣ":"ה","יּ":"יִ","ﬤ":"כ","ﬥ":"ל","ﬦ":"ם","ﬠ":"ע","ﬧ":"ר","שׂ":"שׁ","שּ":"שׁ","שּׂ":"שּׁ","ﬨ":"ת","ﺀ":"ء","۽":"ء͈","ﺂ":"آ","ﺁ":"آ","ﭑ":"ٱ","ﭐ":"ٱ","𞸁":"ب","𞸡":"ب","𞹡":"ب","𞺁":"ب","𞺡":"ب","ﺑ":"ب","ﺒ":"ب","ﺐ":"ب","ﺏ":"ب","ݑ":"بۛ","ࢶ":"بۢ","ࢡ":"بٔ","ﲠ":"بo","ﳢ":"بo","ﲜ":"بج","ﰅ":"بج","ﲝ":"بح","ﰆ":"بح","ﷂ":"بحى","ﲞ":"بخ","ﰇ":"بخ","ﳒ":"بخ","ﱋ":"بخ","ﶞ":"بخى","ﱪ":"بر","ﱫ":"بز","ﲟ":"بم","ﳡ":"بم","ﱬ":"بم","ﰈ":"بم","ﱭ":"بن","ﱮ":"بى","ﰉ":"بى","ﱯ":"بى","ﰊ":"بى","ﭔ":"ٻ","ﭕ":"ٻ","ﭓ":"ٻ","ﭒ":"ٻ","ې":"ٻ","ﯦ":"ٻ","ﯧ":"ٻ","ﯥ":"ٻ","ﯤ":"ٻ","ﭜ":"ڀ","ﭝ":"ڀ","ﭛ":"ڀ","ﭚ":"ڀ","ࢩ":"ݔ","ݧ":"ݔ","⍥":"ة","ö":"ة","ﺔ":"ة","ﺓ":"ة","ۃ":"ة","𞸕":"ت","𞸵":"ت","𞹵":"ت","𞺕":"ت","𞺵":"ت","ﺗ":"ت","ﺘ":"ت","ﺖ":"ت","ﺕ":"ت","ﲥ":"تo","ﳤ":"تo","ﲡ":"تج","ﰋ":"تج","ﵐ":"تجم","ﶠ":"تجى","ﶟ":"تجى","ﲢ":"تح","ﰌ":"تح","ﵒ":"تحج","ﵑ":"تحج","ﵓ":"تحم","ﲣ":"تخ","ﰍ":"تخ","ﵔ":"تخم","ﶢ":"تخى","ﶡ":"تخى","ﱰ":"تر","ﱱ":"تز","ﲤ":"تم","ﳣ":"تم","ﱲ":"تم","ﰎ":"تم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﶤ":"تمى","ﶣ":"تمى","ﱳ":"تن","ﱴ":"تى","ﰏ":"تى","ﱵ":"تى","ﰐ":"تى","ﭠ":"ٺ","ﭡ":"ٺ","ﭟ":"ٺ","ﭞ":"ٺ","ﭤ":"ٿ","ﭥ":"ٿ","ﭣ":"ٿ","ﭢ":"ٿ","𞸂":"ج","𞸢":"ج","𞹂":"ج","𞹢":"ج","𞺂":"ج","𞺢":"ج","ﺟ":"ج","ﺠ":"ج","ﺞ":"ج","ﺝ":"ج","ﲧ":"جح","ﰕ":"جح","ﶦ":"جحى","ﶾ":"جحى","ﷻ":"جل جلlلo","ﲨ":"جم","ﰖ":"جم","ﵙ":"جمح","ﵘ":"جمح","ﶧ":"جمى","ﶥ":"جمى","ﴝ":"جى","ﴁ":"جى","ﴞ":"جى","ﴂ":"جى","ﭸ":"ڃ","ﭹ":"ڃ","ﭷ":"ڃ","ﭶ":"ڃ","ﭴ":"ڄ","ﭵ":"ڄ","ﭳ":"ڄ","ﭲ":"ڄ","ﭼ":"چ","ﭽ":"چ","ﭻ":"چ","ﭺ":"چ","ﮀ":"ڇ","ﮁ":"ڇ","ﭿ":"ڇ","ﭾ":"ڇ","𞸇":"ح","𞸧":"ح","𞹇":"ح","𞹧":"ح","𞺇":"ح","𞺧":"ح","ﺣ":"ح","ﺤ":"ح","ﺢ":"ح","ﺡ":"ح","څ":"حۛ","ځ":"حٔ","ݲ":"حٔ","ﲩ":"حج","ﰗ":"حج","ﶿ":"حجى","ﲪ":"حم","ﰘ":"حم","ﵛ":"حمى","ﵚ":"حمى","ﴛ":"حى","ﳿ":"حى","ﴜ":"حى","ﴀ":"حى","𞸗":"خ","𞸷":"خ","𞹗":"خ","𞹷":"خ","𞺗":"خ","𞺷":"خ","ﺧ":"خ","ﺨ":"خ","ﺦ":"خ","ﺥ":"خ","ﲫ":"خج","ﰙ":"خج","ﰚ":"خح","ﲬ":"خم","ﰛ":"خم","ﴟ":"خى","ﴃ":"خى","ﴠ":"خى","ﴄ":"خى","𐋡":"د","𞸃":"د","𞺃":"د","𞺣":"د","ﺪ":"د","ﺩ":"د","ڈ":"دؕ","ﮉ":"دؕ","ﮈ":"دؕ","ڎ":"دۛ","ﮇ":"دۛ","ﮆ":"دۛ","ۮ":"د̂","ࢮ":"د̤̣","𞸘":"ذ","𞺘":"ذ","𞺸":"ذ","ﺬ":"ذ","ﺫ":"ذ","ﱛ":"ذٰ","ڋ":"ڊؕ","ﮅ":"ڌ","ﮄ":"ڌ","ﮃ":"ڍ","ﮂ":"ڍ","𞸓":"ر","𞺓":"ر","𞺳":"ر","ﺮ":"ر","ﺭ":"ر","ڑ":"رؕ","ﮍ":"رؕ","ﮌ":"رؕ","ژ":"رۛ","ﮋ":"رۛ","ﮊ":"رۛ","ڒ":"ر̆","ࢹ":"ر̆̇","ۯ":"ر̂","ݬ":"رٔ","ﱜ":"رٰ","ﷶ":"رسول","﷼":"رىlل","𞸆":"ز","𞺆":"ز","𞺦":"ز","ﺰ":"ز","ﺯ":"ز","ࢲ":"ز̂","ݱ":"ڗؕ","𞸎":"س","𞸮":"س","𞹎":"س","𞹮":"س","𞺎":"س","𞺮":"س","ﺳ":"س","ﺴ":"س","ﺲ":"س","ﺱ":"س","ش":"سۛ","𞸔":"سۛ","𞸴":"سۛ","𞹔":"سۛ","𞹴":"سۛ","𞺔":"سۛ","𞺴":"سۛ","ﺷ":"سۛ","ﺸ":"سۛ","ﺶ":"سۛ","ﺵ":"سۛ","ݾ":"س̂","ﴱ":"سo","ﳨ":"سo","ﴲ":"سۛo","ﳪ":"سۛo","ﲭ":"سج","ﴴ":"سج","ﰜ":"سج","ﴭ":"سۛج","ﴷ":"سۛج","ﴥ":"سۛج","ﴉ":"سۛج","ﵝ":"سجح","ﵞ":"سجى","ﵩ":"سۛجى","ﲮ":"سح","ﴵ":"سح","ﰝ":"سح","ﴮ":"سۛح","ﴸ":"سۛح","ﴦ":"سۛح","ﴊ":"سۛح","ﵜ":"سحج","ﵨ":"سۛحم","ﵧ":"سۛحم","ﶪ":"سۛحى","ﲯ":"سخ","ﴶ":"سخ","ﰞ":"سخ","ﴯ":"سۛخ","ﴹ":"سۛخ","ﴧ":"سۛخ","ﴋ":"سۛخ","ﶨ":"سخى","ﷆ":"سخى","ﴪ":"سر","ﴎ":"سر","ﴩ":"سۛر","ﴍ":"سۛر","ﲰ":"سم","ﳧ":"سم","ﰟ":"سم","ﴰ":"سۛم","ﳩ":"سۛم","ﴨ":"سۛم","ﴌ":"سۛم","ﵡ":"سمج","ﵠ":"سمح","ﵟ":"سمح","ﵫ":"سۛمخ","ﵪ":"سۛمخ","ﵣ":"سمم","ﵢ":"سمم","ﵭ":"سۛمم","ﵬ":"سۛمم","ﴗ":"سى","ﳻ":"سى","ﴘ":"سى","ﳼ":"سى","ﴙ":"سۛى","ﳽ":"سۛى","ﴚ":"سۛى","ﳾ":"سۛى","𐋲":"ص","𞸑":"ص","𞸱":"ص","𞹑":"ص","𞹱":"ص","𞺑":"ص","𞺱":"ص","ﺻ":"ص","ﺼ":"ص","ﺺ":"ص","ﺹ":"ص","ڞ":"صۛ","ࢯ":"ص̤̣","ﲱ":"صح","ﰠ":"صح","ﵥ":"صحح","ﵤ":"صحح","ﶩ":"صحى","ﲲ":"صخ","ﴫ":"صر","ﴏ":"صر","ﷵ":"صلعم","ﷹ":"صلى","ﷰ":"صلى","ﷺ":"صلى lللo علىo وسلم","ﲳ":"صم","ﰡ":"صم","ﷅ":"صمم","ﵦ":"صمم","ﴡ":"صى","ﴅ":"صى","ﴢ":"صى","ﴆ":"صى","𞸙":"ض","𞸹":"ض","𞹙":"ض","𞹹":"ض","𞺙":"ض","𞺹":"ض","ﺿ":"ض","ﻀ":"ض","ﺾ":"ض","ﺽ":"ض","ﲴ":"ضج","ﰢ":"ضج","ﲵ":"ضح","ﰣ":"ضح","ﵮ":"ضحى","ﶫ":"ضحى","ﲶ":"ضخ","ﰤ":"ضخ","ﵰ":"ضخم","ﵯ":"ضخم","ﴬ":"ضر","ﴐ":"ضر","ﲷ":"ضم","ﰥ":"ضم","ﴣ":"ضى","ﴇ":"ضى","ﴤ":"ضى","ﴈ":"ضى","𐋨":"ط","𞸈":"ط","𞹨":"ط","𞺈":"ط","𞺨":"ط","ﻃ":"ط","ﻄ":"ط","ﻂ":"ط","ﻁ":"ط","ڟ":"طۛ","ﲸ":"طح","ﰦ":"طح","ﴳ":"طم","ﴺ":"طم","ﰧ":"طم","ﵲ":"طمح","ﵱ":"طمح","ﵳ":"طمم","ﵴ":"طمى","ﴑ":"طى","ﳵ":"طى","ﴒ":"طى","ﳶ":"طى","𞸚":"ظ","𞹺":"ظ","𞺚":"ظ","𞺺":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻆ":"ظ","ﻅ":"ظ","ﲹ":"ظم","ﴻ":"ظم","ﰨ":"ظم","؏":"ع","𞸏":"ع","𞸯":"ع","𞹏":"ع","𞹯":"ع","𞺏":"ع","𞺯":"ع","ﻋ":"ع","ﻌ":"ع","ﻊ":"ع","ﻉ":"ع","ﲺ":"عج","ﰩ":"عج","ﷄ":"عجم","ﵵ":"عجم","ﷷ":"علىo","ﲻ":"عم","ﰪ":"عم","ﵷ":"عمم","ﵶ":"عمم","ﵸ":"عمى","ﶶ":"عمى","ﴓ":"عى","ﳷ":"عى","ﴔ":"عى","ﳸ":"عى","𞸛":"غ","𞸻":"غ","𞹛":"غ","𞹻":"غ","𞺛":"غ","𞺻":"غ","ﻏ":"غ","ﻐ":"غ","ﻎ":"غ","ﻍ":"غ","ﲼ":"غج","ﰫ":"غج","ﲽ":"غم","ﰬ":"غم","ﵹ":"غمم","ﵻ":"غمى","ﵺ":"غمى","ﴕ":"غى","ﳹ":"غى","ﴖ":"غى","ﳺ":"غى","𞸐":"ف","𞸰":"ف","𞹰":"ف","𞺐":"ف","𞺰":"ف","ﻓ":"ف","ﻔ":"ف","ﻒ":"ف","ﻑ":"ف","ڧ":"ف","ﲾ":"فج","ﰭ":"فج","ﲿ":"فح","ﰮ":"فح","ﳀ":"فخ","ﰯ":"فخ","ﵽ":"فخم","ﵼ":"فخم","ﳁ":"فم","ﰰ":"فم","ﷁ":"فمى","ﱼ":"فى","ﰱ":"فى","ﱽ":"فى","ﰲ":"فى","𞸞":"ڡ","𞹾":"ڡ","ࢻ":"ڡ","ٯ":"ڡ","𞸟":"ڡ","𞹟":"ڡ","ࢼ":"ڡ","ڤ":"ڡۛ","ﭬ":"ڡۛ","ﭭ":"ڡۛ","ﭫ":"ڡۛ","ﭪ":"ڡۛ","ڨ":"ڡۛ","ࢤ":"ڢۛ","ﭰ":"ڦ","ﭱ":"ڦ","ﭯ":"ڦ","ﭮ":"ڦ","𞸒":"ق","𞸲":"ق","𞹒":"ق","𞹲":"ق","𞺒":"ق","𞺲":"ق","ﻗ":"ق","ﻘ":"ق","ﻖ":"ق","ﻕ":"ق","ﳂ":"قح","ﰳ":"قح","ﷱ":"قلى","ﳃ":"قم","ﰴ":"قم","ﶴ":"قمح","ﵾ":"قمح","ﵿ":"قمم","ﶲ":"قمى","ﱾ":"قى","ﰵ":"قى","ﱿ":"قى","ﰶ":"قى","𞸊":"ك","𞸪":"ك","𞹪":"ك","ﻛ":"ك","ﻜ":"ك","ﻚ":"ك","ﻙ":"ك","ک":"ك","ﮐ":"ك","ﮑ":"ك","ﮏ":"ك","ﮎ":"ك","ڪ":"ك","ڭ":"كۛ","ﯕ":"كۛ","ﯖ":"كۛ","ﯔ":"كۛ","ﯓ":"كۛ","ݣ":"كۛ","ﲀ":"كl","ﰷ":"كl","ﳄ":"كج","ﰸ":"كج","ﳅ":"كح","ﰹ":"كح","ﳆ":"كخ","ﰺ":"كخ","ﳇ":"كل","ﳫ":"كل","ﲁ":"كل","ﰻ":"كل","ﳈ":"كم","ﳬ":"كم","ﲂ":"كم","ﰼ":"كم","ﷃ":"كمم","ﶻ":"كمم","ﶷ":"كمى","ﲃ":"كى","ﰽ":"كى","ﲄ":"كى","ﰾ":"كى","ݢ":"ڬ","ﮔ":"گ","ﮕ":"گ","ﮓ":"گ","ﮒ":"گ","ࢰ":"گ","ڴ":"گۛ","ﮜ":"ڱ","ﮝ":"ڱ","ﮛ":"ڱ","ﮚ":"ڱ","ﮘ":"ڳ","ﮙ":"ڳ","ﮗ":"ڳ","ﮖ":"ڳ","𞸋":"ل","𞸫":"ل","𞹋":"ل","𞺋":"ل","𞺫":"ل","ﻟ":"ل","ﻠ":"ل","ﻞ":"ل","ﻝ":"ل","ڷ":"لۛ","ڵ":"ل̆","ﻼ":"لl","ﻻ":"لl","ﻺ":"لlٕ","ﻹ":"لlٕ","ﻸ":"لlٴ","ﻷ":"لlٴ","ﳍ":"لo","ﻶ":"لآ","ﻵ":"لآ","ﳉ":"لج","ﰿ":"لج","ﶃ":"لجج","ﶄ":"لجج","ﶺ":"لجم","ﶼ":"لجم","ﶬ":"لجى","ﳊ":"لح","ﱀ":"لح","ﶵ":"لحم","ﶀ":"لحم","ﶂ":"لحى","ﶁ":"لحى","ﳋ":"لخ","ﱁ":"لخ","ﶆ":"لخم","ﶅ":"لخم","ﳌ":"لم","ﳭ":"لم","ﲅ":"لم","ﱂ":"لم","ﶈ":"لمح","ﶇ":"لمح","ﶭ":"لمى","ﲆ":"لى","ﱃ":"لى","ﲇ":"لى","ﱄ":"لى","𞸌":"م","𞸬":"م","𞹬":"م","𞺌":"م","𞺬":"م","ﻣ":"م","ﻤ":"م","ﻢ":"م","ﻡ":"م","ࢧ":"مۛ","۾":"م͈","ﲈ":"مl","ﳎ":"مج","ﱅ":"مج","ﶌ":"مجح","ﶒ":"مجخ","ﶍ":"مجم","ﷀ":"مجى","ﳏ":"مح","ﱆ":"مح","ﶉ":"محج","ﶊ":"محم","ﷴ":"محمد","ﶋ":"محى","ﳐ":"مخ","ﱇ":"مخ","ﶎ":"مخج","ﶏ":"مخم","ﶹ":"مخى","ﳑ":"مم","ﲉ":"مم","ﱈ":"مم","ﶱ":"ممى","ﱉ":"مى","ﱊ":"مى","𞸍":"ن","𞸭":"ن","𞹍":"ن","𞹭":"ن","𞺍":"ن","𞺭":"ن","ﻧ":"ن","ﻨ":"ن","ﻦ":"ن","ﻥ":"ن","ݨ":"نؕ","ݩ":"ن̆","ﳖ":"نo","ﳯ":"نo","ﶸ":"نجح","ﶽ":"نجح","ﶘ":"نجم","ﶗ":"نجم","ﶙ":"نجى","ﷇ":"نجى","ﳓ":"نح","ﱌ":"نح","ﶕ":"نحم","ﶖ":"نحى","ﶳ":"نحى","ﳔ":"نخ","ﱍ":"نخ","ﲊ":"نر","ﲋ":"نز","ﳕ":"نم","ﳮ":"نم","ﲌ":"نم","ﱎ":"نم","ﶛ":"نمى","ﶚ":"نمى","ﲍ":"نن","ﲎ":"نى","ﱏ":"نى","ﲏ":"نى","ﱐ":"نى","ۂ":"ۀ","ﮥ":"ۀ","ﮤ":"ۀ","𐋤":"و","𞸅":"و","𞺅":"و","𞺥":"و","ﻮ":"و","ﻭ":"و","ࢱ":"و","ۋ":"وۛ","ﯟ":"وۛ","ﯞ":"وۛ","ۇ":"و̓","ﯘ":"و̓","ﯗ":"و̓","ۆ":"و̆","ﯚ":"و̆","ﯙ":"و̆","ۉ":"و̂","ﯣ":"و̂","ﯢ":"و̂","ۈ":"وٰ","ﯜ":"وٰ","ﯛ":"وٰ","ؤ":"وٴ","ﺆ":"وٴ","ﺅ":"وٴ","ٶ":"وٴ","ٷ":"و̓ٴ","ﯝ":"و̓ٴ","ﷸ":"وسلم","ﯡ":"ۅ","ﯠ":"ۅ","ٮ":"ى","𞸜":"ى","𞹼":"ى","ں":"ى","𞸝":"ى","𞹝":"ى","ﮟ":"ى","ﮞ":"ى","ࢽ":"ى","ﯨ":"ى","ﯩ":"ى","ﻰ":"ى","ﻯ":"ى","ي":"ى","𞸉":"ى","𞸩":"ى","𞹉":"ى","𞹩":"ى","𞺉":"ى","𞺩":"ى","ﻳ":"ى","ﻴ":"ى","ﻲ":"ى","ﻱ":"ى","ی":"ى","ﯾ":"ى","ﯿ":"ى","ﯽ":"ى","ﯼ":"ى","ے":"ى","ﮯ":"ى","ﮮ":"ى","ٹ":"ىؕ","ﭨ":"ىؕ","ﭩ":"ىؕ","ﭧ":"ىؕ","ﭦ":"ىؕ","ڻ":"ىؕ","ﮢ":"ىؕ","ﮣ":"ىؕ","ﮡ":"ىؕ","ﮠ":"ىؕ","پ":"ىۛ","ﭘ":"ىۛ","ﭙ":"ىۛ","ﭗ":"ىۛ","ﭖ":"ىۛ","ث":"ىۛ","𞸖":"ىۛ","𞸶":"ىۛ","𞹶":"ىۛ","𞺖":"ىۛ","𞺶":"ىۛ","ﺛ":"ىۛ","ﺜ":"ىۛ","ﺚ":"ىۛ","ﺙ":"ىۛ","ڽ":"ىۛ","ۑ":"ىۛ","ؿ":"ىۛ","ࢷ":"ىۛۢ","ݖ":"ى̆","ێ":"ى̆","ࢺ":"ى̆̇","ؽ":"ى̂","ࢨ":"ىٔ","ﲐ":"ىٰ","ﱝ":"ىٰ","ﳞ":"ىo","ﳱ":"ىo","ﳦ":"ىۛo","ئ":"ىٴ","ﺋ":"ىٴ","ﺌ":"ىٴ","ﺊ":"ىٴ","ﺉ":"ىٴ","ٸ":"ىٴ","ﯫ":"ىٴl","ﯪ":"ىٴl","ﲛ":"ىٴo","ﳠ":"ىٴo","ﯭ":"ىٴo","ﯬ":"ىٴo","ﯸ":"ىٴٻ","ﯷ":"ىٴٻ","ﯶ":"ىٴٻ","ﲗ":"ىٴج","ﰀ":"ىٴج","ﲘ":"ىٴح","ﰁ":"ىٴح","ﲙ":"ىٴخ","ﱤ":"ىٴر","ﱥ":"ىٴز","ﲚ":"ىٴم","ﳟ":"ىٴم","ﱦ":"ىٴم","ﰂ":"ىٴم","ﱧ":"ىٴن","ﯯ":"ىٴو","ﯮ":"ىٴو","ﯱ":"ىٴو̓","ﯰ":"ىٴو̓","ﯳ":"ىٴو̆","ﯲ":"ىٴو̆","ﯵ":"ىٴوٰ","ﯴ":"ىٴوٰ","ﯻ":"ىٴى","ﯺ":"ىٴى","ﱨ":"ىٴى","ﯹ":"ىٴى","ﰃ":"ىٴى","ﱩ":"ىٴى","ﰄ":"ىٴى","ﳚ":"ىج","ﱕ":"ىج","ﰑ":"ىۛج","ﶯ":"ىجى","ﳛ":"ىح","ﱖ":"ىح","ﶮ":"ىحى","ﳜ":"ىخ","ﱗ":"ىخ","ﲑ":"ىر","ﱶ":"ىۛر","ﲒ":"ىز","ﱷ":"ىۛز","ﳝ":"ىم","ﳰ":"ىم","ﲓ":"ىم","ﱘ":"ىم","ﲦ":"ىۛم","ﳥ":"ىۛم","ﱸ":"ىۛم","ﰒ":"ىۛم","ﶝ":"ىمم","ﶜ":"ىمم","ﶰ":"ىمى","ﲔ":"ىن","ﱹ":"ىۛن","ﲕ":"ىى","ﱙ":"ىى","ﲖ":"ىى","ﱚ":"ىى","ﱺ":"ىۛى","ﰓ":"ىۛى","ﱻ":"ىۛى","ﰔ":"ىۛى","ﮱ":"ۓ","ﮰ":"ۓ","𐊸":"ⵀ","⁞":"ⵂ","⸽":"ⵂ","⦙":"ⵂ","︙":"ⵗ","⁝":"ⵗ","⋮":"ⵗ","Մ":"ሆ","Ռ":"ቡ","Ի":"ኮ","Պ":"ጣ","आ":"अा","ऒ":"अाॆ","ओ":"अाे","औ":"अाै","ऄ":"अॆ","ऑ":"अॉ","ऍ":"एॅ","ऎ":"एॆ","ऐ":"एे","ई":"र्इ","ઽ":"ऽ","𑇜":"ꣻ","𑇋":"ऺ","ુ":"ु","ૂ":"ू","ੋ":"ॆ","੍":"्","્":"्","আ":"অা","ৠ":"ঋৃ","ৡ":"ঋৃ","𑒒":"ঘ","𑒔":"চ","𑒖":"জ","𑒘":"ঞ","𑒙":"ট","𑒛":"ড","𑒪":"ণ","𑒞":"ত","𑒟":"থ","𑒠":"দ","𑒡":"ধ","𑒢":"ন","𑒣":"প","𑒩":"ব","𑒧":"ম","𑒨":"য","𑒫":"র","𑒝":"ল","𑒭":"ষ","𑒮":"স","𑓄":"ঽ","𑒰":"া","𑒱":"ি","𑒹":"ে","𑒼":"ো","𑒾":"ৌ","𑓂":"্","𑒽":"ৗ","ਉ":"ੳੁ","ਊ":"ੳੂ","ਆ":"ਅਾ","ਐ":"ਅੈ","ਔ":"ਅੌ","ਇ":"ੲਿ","ਈ":"ੲੀ","ਏ":"ੲੇ","આ":"અા","ઑ":"અાૅ","ઓ":"અાે","ઔ":"અાૈ","ઍ":"અૅ","એ":"અે","ઐ":"અૈ","ଆ":"ଅା","௮":"அ","ர":"ஈ","ா":"ஈ","௫":"ஈு","௨":"உ","ഉ":"உ","ஊ":"உள","ഊ":"உൗ","௭":"எ","௷":"எவ","ஜ":"ஐ","ജ":"ஐ","௧":"க","௪":"ச","௬":"சு","௲":"சூ","ഺ":"டி","ണ":"ண","௺":"நீ","௴":"மீ","௰":"ய","ഴ":"ழ","ௗ":"ள","ை":"ன","ശ":"ஶ","௸":"ஷ","ി":"ி","ീ":"ி","ொ":"ெஈ","ௌ":"ெள","ோ":"ேஈ","ಅ":"అ","ಆ":"ఆ","ಇ":"ఇ","ౠ":"ఋా","ౡ":"ఌా","ಒ":"ఒ","ఔ":"ఒౌ","ಔ":"ఒౌ","ఓ":"ఒౕ","ಓ":"ఒౕ","ಜ":"జ","ಞ":"ఞ","ఢ":"డ̣","ಣ":"ణ","థ":"ధּ","భ":"బ̣","ಯ":"య","ఠ":"రּ","ಱ":"ఱ","ಲ":"ల","ష":"వ̣","హ":"వా","మ":"వు","ూ":"ుా","ౄ":"ృా","ೡ":"ಌಾ","ഈ":"ഇൗ","ഐ":"എെ","ഓ":"ഒാ","ഔ":"ഒൗ","ൡ":"ഞ","൫":"ദ്ര","൹":"നു","ഌ":"നു","ങ":"നു","൯":"ന്","ൻ":"ന്","൬":"ന്ന","൚":"ന്മ","റ":"ര","൪":"ര്","ർ":"ര്","൮":"വ്ര","൶":"ഹ്മ","ൂ":"ു","ൃ":"ു","ൈ":"െെ","෪":"ජ","෫":"ද","𑐓":"𑐴𑑂𑐒","𑐙":"𑐴𑑂𑐘","𑐤":"𑐴𑑂𑐣","𑐪":"𑐴𑑂𑐩","𑐭":"𑐴𑑂𑐬","𑐯":"𑐴𑑂𑐮","𑗘":"𑖂","𑗙":"𑖂","𑗚":"𑖃","𑗛":"𑖄","𑗜":"𑖲","𑗝":"𑖳","ฃ":"ข","ด":"ค","ต":"ค","ม":"ฆ","ຈ":"จ","ซ":"ช","ฏ":"ฎ","ท":"ฑ","ບ":"บ","ປ":"ป","ຝ":"ฝ","ພ":"พ","ຟ":"ฟ","ฦ":"ภ","ຍ":"ย","។":"ฯ","ๅ":"า","ำ":"̊า","ិ":"ิ","ី":"ี","ឹ":"ึ","ឺ":"ื","ຸ":"ุ","ູ":"ู","แ":"เเ","ໜ":"ຫນ","ໝ":"ຫມ","ຳ":"̊າ","༂":"འུྂཿ","༃":"འུྂ༔","ཪ":"ར","ༀ":"ཨོཾ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","𑲲":"𑲪","ႁ":"ဂှ","က":"ဂာ","ၰ":"ဃှ","ၦ":"ပှ","ဟ":"ပာ","ၯ":"ပာှ","ၾ":"ၽှ","ဩ":"သြ","ဪ":"သြော်","႞":"ႃ̊","ឣ":"អ","᧐":"ᦞ","᧑":"ᦱ","᪀":"ᩅ","᪐":"ᩅ","꩓":"ꨁ","꩖":"ꨣ","᭒":"ᬍ","᭓":"ᬑ","᭘":"ᬨ","ꦣ":"ꦝ","ᢖ":"ᡜ","ᡕ":"ᠵ","ῶ":"Ꮿ","ᐍ":"ᐁ·","ᐫ":"ᐁᐠ","ᐑ":"ᐄ·","ᐓ":"ᐅ·","ᐭ":"ᐅᐠ","ᐕ":"ᐆ·","ᐘ":"ᐊ·","ᐮ":"ᐊᐠ","ᐚ":"ᐋ·","ᣝ":"ᐞᣟ","ᓑ":"ᐡ","ᕀ":"ᐩ","ᐿ":"ᐲ·","ᑃ":"ᐴ·","⍩":"ᐵ","ᑇ":"ᐹ·","ᑜ":"ᑏ·","⸧":"ᑐ","⊃":"ᑐ","ᑞ":"ᑐ·","ᑩ":"ᑐ\'","⟉":"ᑐ/","⫗":"ᑐᑕ","ᑠ":"ᑑ·","⸦":"ᑕ","⊂":"ᑕ","ᑢ":"ᑕ·","ᑪ":"ᑕ\'","ᑤ":"ᑖ·","ᑵ":"ᑫ·","ᒅ":"ᑫ\'","ᑹ":"ᑮ·","ᑽ":"ᑰ·","ᘃ":"ᒉ","ᒓ":"ᒉ·","ᒕ":"ᒋ·","ᒗ":"ᒌ·","ᒛ":"ᒎ·","ᘂ":"ᒐ","ᒝ":"ᒐ·","ᒟ":"ᒑ·","ᒭ":"ᒣ·","ᒱ":"ᒦ·","ᒳ":"ᒧ·","ᒵ":"ᒨ·","ᒹ":"ᒫ·","ᓊ":"ᓀ·","ᣇ":"ᓂ·","ᣉ":"ᓃ·","ᣋ":"ᓄ·","ᣍ":"ᓅ·","ᓌ":"ᓇ·","ᓎ":"ᓈ·","ᘄ":"ᓓ","ᓝ":"ᓓ·","ᓟ":"ᓕ·","ᓡ":"ᓖ·","ᓣ":"ᓗ·","ᓥ":"ᓘ·","ᘇ":"ᓚ","ᓧ":"ᓚ·","ᓩ":"ᓛ·","ᓷ":"ᓭ·","ᓹ":"ᓯ·","ᓻ":"ᓰ·","ᓽ":"ᓱ·","ᓿ":"ᓲ·","ᔁ":"ᓴ·","ᔃ":"ᓵ·","ᔌ":"ᔋ<","ᔎ":"ᔋb","ᔍ":"ᔋᑕ","ᔏ":"ᔋᒐ","ᔘ":"ᔐ·","ᔚ":"ᔑ·","ᔜ":"ᔒ·","ᔞ":"ᔓ·","ᔠ":"ᔔ·","ᔢ":"ᔕ·","ᔤ":"ᔖ·","ᔲ":"ᔨ·","ᔴ":"ᔩ·","ᔶ":"ᔪ·","ᔸ":"ᔫ·","ᔺ":"ᔭ·","ᔼ":"ᔮ·","ᘢ":"ᕃ","ᣠ":"ᕃ·","ᘣ":"ᕆ","ᘤ":"ᕊ","ᕏ":"ᕌ·","ᖃ":"ᕐb","ᖄ":"ᕐḃ","ᖁ":"ᕐd","ᕿ":"ᕐP","ᙯ":"ᕐᑫ","ᕾ":"ᕐᑬ","ᖀ":"ᕐᑮ","ᖂ":"ᕐᑰ","ᖅ":"ᕐᒃ","ᕜ":"ᕚ·","ᣣ":"ᕞ·","ᣤ":"ᕦ·","ᕩ":"ᕧ·","ᣥ":"ᕫ·","ᣨ":"ᖆ·","ᖑ":"ᖕJ","ᙰ":"ᖕᒉ","ᖎ":"ᖕᒊ","ᖏ":"ᖕᒋ","ᖐ":"ᖕᒌ","ᖒ":"ᖕᒎ","ᖓ":"ᖕᒐ","ᖔ":"ᖕᒑ","ᙳ":"ᖖJ","ᙱ":"ᖖᒋ","ᙲ":"ᖖᒌ","ᙴ":"ᖖᒎ","ᙵ":"ᖖᒐ","ᙶ":"ᖖᒑ","ᣪ":"ᖗ·","ᙷ":"ᖧ·","ᙸ":"ᖨ·","ᙹ":"ᖩ·","ᙺ":"ᖪ·","ᙻ":"ᖫ·","ᙼ":"ᖬ·","ᙽ":"ᖭ·","⪫":"ᗒ","⪪":"ᗕ","ꓷ":"ᗡ","ᣰ":"ᗴ·","ᣲ":"ᘛ·","ᶻ":"ᙆ","ꓭ":"ᙠ","ᶺ":"ᣔ","ᴾ":"ᣖ","ᣜ":"ᣟᐞ","ˡ":"ᣳ","ʳ":"ᣴ","ˢ":"ᣵ","ᣛ":"ᣵ","ꚰ":"ᚹ","ᛡ":"ᚼ","⍿":"ᚽ","ᛂ":"ᚽ","𝈿":"ᛋ","↑":"ᛏ","↿":"ᛐ","⥮":"ᛐ⇂","⥣":"ᛐᛚ","ⵣ":"ᛯ","↾":"ᛚ","⨡":"ᛚ","⋄":"ᛜ","◇":"ᛜ","◊":"ᛜ","♢":"ᛜ","🝔":"ᛜ","𑢷":"ᛜ","𐊔":"ᛜ","⍚":"ᛜ̲","⋈":"ᛞ","⨝":"ᛞ","𐓐":"ᛦ","↕":"ᛨ","𐳼":"𐲂","𐳺":"𐲥","ㄱ":"ᄀ","ᆨ":"ᄀ","ᄁ":"ᄀᄀ","ㄲ":"ᄀᄀ","ᆩ":"ᄀᄀ","ᇺ":"ᄀᄂ","ᅚ":"ᄀᄃ","ᇃ":"ᄀᄅ","ᇻ":"ᄀᄇ","ᆪ":"ᄀᄉ","ㄳ":"ᄀᄉ","ᇄ":"ᄀᄉᄀ","ᇼ":"ᄀᄎ","ᇽ":"ᄀᄏ","ᇾ":"ᄀᄒ","ㄴ":"ᄂ","ᆫ":"ᄂ","ᄓ":"ᄂᄀ","ᇅ":"ᄂᄀ","ᄔ":"ᄂᄂ","ㅥ":"ᄂᄂ","ᇿ":"ᄂᄂ","ᄕ":"ᄂᄃ","ㅦ":"ᄂᄃ","ᇆ":"ᄂᄃ","ퟋ":"ᄂᄅ","ᄖ":"ᄂᄇ","ᅛ":"ᄂᄉ","ᇇ":"ᄂᄉ","ㅧ":"ᄂᄉ","ᅜ":"ᄂᄌ","ᆬ":"ᄂᄌ","ㄵ":"ᄂᄌ","ퟌ":"ᄂᄎ","ᇉ":"ᄂᄐ","ᅝ":"ᄂᄒ","ᆭ":"ᄂᄒ","ㄶ":"ᄂᄒ","ᇈ":"ᄂᅀ","ㅨ":"ᄂᅀ","ㄷ":"ᄃ","ᆮ":"ᄃ","ᄗ":"ᄃᄀ","ᇊ":"ᄃᄀ","ᄄ":"ᄃᄃ","ㄸ":"ᄃᄃ","ퟍ":"ᄃᄃ","ퟎ":"ᄃᄃᄇ","ᅞ":"ᄃᄅ","ᇋ":"ᄃᄅ","ꥠ":"ᄃᄆ","ꥡ":"ᄃᄇ","ퟏ":"ᄃᄇ","ꥢ":"ᄃᄉ","ퟐ":"ᄃᄉ","ퟑ":"ᄃᄉᄀ","ꥣ":"ᄃᄌ","ퟒ":"ᄃᄌ","ퟓ":"ᄃᄎ","ퟔ":"ᄃᄐ","ㄹ":"ᄅ","ᆯ":"ᄅ","ꥤ":"ᄅᄀ","ᆰ":"ᄅᄀ","ㄺ":"ᄅᄀ","ꥥ":"ᄅᄀᄀ","ퟕ":"ᄅᄀᄀ","ᇌ":"ᄅᄀᄉ","ㅩ":"ᄅᄀᄉ","ퟖ":"ᄅᄀᄒ","ᄘ":"ᄅᄂ","ᇍ":"ᄅᄂ","ꥦ":"ᄅᄃ","ᇎ":"ᄅᄃ","ㅪ":"ᄅᄃ","ꥧ":"ᄅᄃᄃ","ᇏ":"ᄅᄃᄒ","ᄙ":"ᄅᄅ","ᇐ":"ᄅᄅ","ퟗ":"ᄅᄅᄏ","ꥨ":"ᄅᄆ","ᆱ":"ᄅᄆ","ㄻ":"ᄅᄆ","ᇑ":"ᄅᄆᄀ","ᇒ":"ᄅᄆᄉ","ퟘ":"ᄅᄆᄒ","ꥩ":"ᄅᄇ","ᆲ":"ᄅᄇ","ㄼ":"ᄅᄇ","ퟙ":"ᄅᄇᄃ","ꥪ":"ᄅᄇᄇ","ᇓ":"ᄅᄇᄉ","ㅫ":"ᄅᄇᄉ","ꥫ":"ᄅᄇᄋ","ᇕ":"ᄅᄇᄋ","ퟚ":"ᄅᄇᄑ","ᇔ":"ᄅᄇᄒ","ꥬ":"ᄅᄉ","ᆳ":"ᄅᄉ","ㄽ":"ᄅᄉ","ᇖ":"ᄅᄉᄉ","ᄛ":"ᄅᄋ","ퟝ":"ᄅᄋ","ꥭ":"ᄅᄌ","ꥮ":"ᄅᄏ","ᇘ":"ᄅᄏ","ᆴ":"ᄅᄐ","ㄾ":"ᄅᄐ","ᆵ":"ᄅᄑ","ㄿ":"ᄅᄑ","ᄚ":"ᄅᄒ","ㅀ":"ᄅᄒ","ᄻ":"ᄅᄒ","ᆶ":"ᄅᄒ","ퟲ":"ᄅᄒ","ᇗ":"ᄅᅀ","ㅬ":"ᄅᅀ","ퟛ":"ᄅᅌ","ᇙ":"ᄅᅙ","ㅭ":"ᄅᅙ","ퟜ":"ᄅᅙᄒ","ㅁ":"ᄆ","ᆷ":"ᄆ","ꥯ":"ᄆᄀ","ᇚ":"ᄆᄀ","ퟞ":"ᄆᄂ","ퟟ":"ᄆᄂᄂ","ꥰ":"ᄆᄃ","ᇛ":"ᄆᄅ","ퟠ":"ᄆᄆ","ᄜ":"ᄆᄇ","ㅮ":"ᄆᄇ","ᇜ":"ᄆᄇ","ퟡ":"ᄆᄇᄉ","ꥱ":"ᄆᄉ","ᇝ":"ᄆᄉ","ㅯ":"ᄆᄉ","ᇞ":"ᄆᄉᄉ","ᄝ":"ᄆᄋ","ㅱ":"ᄆᄋ","ᇢ":"ᄆᄋ","ퟢ":"ᄆᄌ","ᇠ":"ᄆᄎ","ᇡ":"ᄆᄒ","ᇟ":"ᄆᅀ","ㅰ":"ᄆᅀ","ㅂ":"ᄇ","ᆸ":"ᄇ","ᄞ":"ᄇᄀ","ㅲ":"ᄇᄀ","ᄟ":"ᄇᄂ","ᄠ":"ᄇᄃ","ㅳ":"ᄇᄃ","ퟣ":"ᄇᄃ","ᇣ":"ᄇᄅ","ퟤ":"ᄇᄅᄑ","ퟥ":"ᄇᄆ","ᄈ":"ᄇᄇ","ㅃ":"ᄇᄇ","ퟦ":"ᄇᄇ","ᄬ":"ᄇᄇᄋ","ㅹ":"ᄇᄇᄋ","ᄡ":"ᄇᄉ","ㅄ":"ᄇᄉ","ᆹ":"ᄇᄉ","ᄢ":"ᄇᄉᄀ","ㅴ":"ᄇᄉᄀ","ᄣ":"ᄇᄉᄃ","ㅵ":"ᄇᄉᄃ","ퟧ":"ᄇᄉᄃ","ᄤ":"ᄇᄉᄇ","ᄥ":"ᄇᄉᄉ","ᄦ":"ᄇᄉᄌ","ꥲ":"ᄇᄉᄐ","ᄫ":"ᄇᄋ","ㅸ":"ᄇᄋ","ᇦ":"ᄇᄋ","ᄧ":"ᄇᄌ","ㅶ":"ᄇᄌ","ퟨ":"ᄇᄌ","ᄨ":"ᄇᄎ","ퟩ":"ᄇᄎ","ꥳ":"ᄇᄏ","ᄩ":"ᄇᄐ","ㅷ":"ᄇᄐ","ᄪ":"ᄇᄑ","ᇤ":"ᄇᄑ","ꥴ":"ᄇᄒ","ᇥ":"ᄇᄒ","ㅅ":"ᄉ","ᆺ":"ᄉ","ᄭ":"ᄉᄀ","ㅺ":"ᄉᄀ","ᇧ":"ᄉᄀ","ᄮ":"ᄉᄂ","ㅻ":"ᄉᄂ","ᄯ":"ᄉᄃ","ㅼ":"ᄉᄃ","ᇨ":"ᄉᄃ","ᄰ":"ᄉᄅ","ᇩ":"ᄉᄅ","ᄱ":"ᄉᄆ","ퟪ":"ᄉᄆ","ᄲ":"ᄉᄇ","ㅽ":"ᄉᄇ","ᇪ":"ᄉᄇ","ᄳ":"ᄉᄇᄀ","ퟫ":"ᄉᄇᄋ","ᄊ":"ᄉᄉ","ㅆ":"ᄉᄉ","ᆻ":"ᄉᄉ","ퟬ":"ᄉᄉᄀ","ퟭ":"ᄉᄉᄃ","ꥵ":"ᄉᄉᄇ","ᄴ":"ᄉᄉᄉ","ᄵ":"ᄉᄋ","ᄶ":"ᄉᄌ","ㅾ":"ᄉᄌ","ퟯ":"ᄉᄌ","ᄷ":"ᄉᄎ","ퟰ":"ᄉᄎ","ᄸ":"ᄉᄏ","ᄹ":"ᄉᄐ","ퟱ":"ᄉᄐ","ᄺ":"ᄉᄑ","ퟮ":"ᄉᅀ","ㅇ":"ᄋ","ᆼ":"ᄋ","ᅁ":"ᄋᄀ","ᇬ":"ᄋᄀ","ᇭ":"ᄋᄀᄀ","ᅂ":"ᄋᄃ","ꥶ":"ᄋᄅ","ᅃ":"ᄋᄆ","ᅄ":"ᄋᄇ","ᅅ":"ᄋᄉ","ᇱ":"ᄋᄉ","ㆂ":"ᄋᄉ","ᅇ":"ᄋᄋ","ㆀ":"ᄋᄋ","ᇮ":"ᄋᄋ","ᅈ":"ᄋᄌ","ᅉ":"ᄋᄎ","ᇯ":"ᄋᄏ","ᅊ":"ᄋᄐ","ᅋ":"ᄋᄑ","ꥷ":"ᄋᄒ","ᅆ":"ᄋᅀ","ᇲ":"ᄋᅀ","ㆃ":"ᄋᅀ","ㅈ":"ᄌ","ᆽ":"ᄌ","ퟷ":"ᄌᄇ","ퟸ":"ᄌᄇᄇ","ᅍ":"ᄌᄋ","ᄍ":"ᄌᄌ","ㅉ":"ᄌᄌ","ퟹ":"ᄌᄌ","ꥸ":"ᄌᄌᄒ","ㅊ":"ᄎ","ᆾ":"ᄎ","ᅒ":"ᄎᄏ","ᅓ":"ᄎᄒ","ㅋ":"ᄏ","ᆿ":"ᄏ","ㅌ":"ᄐ","ᇀ":"ᄐ","ꥹ":"ᄐᄐ","ㅍ":"ᄑ","ᇁ":"ᄑ","ᅖ":"ᄑᄇ","ᇳ":"ᄑᄇ","ퟺ":"ᄑᄉ","ᅗ":"ᄑᄋ","ㆄ":"ᄑᄋ","ᇴ":"ᄑᄋ","ퟻ":"ᄑᄐ","ꥺ":"ᄑᄒ","ㅎ":"ᄒ","ᇂ":"ᄒ","ᇵ":"ᄒᄂ","ᇶ":"ᄒᄅ","ᇷ":"ᄒᄆ","ᇸ":"ᄒᄇ","ꥻ":"ᄒᄉ","ᅘ":"ᄒᄒ","ㆅ":"ᄒᄒ","ᄽ":"ᄼᄼ","ᄿ":"ᄾᄾ","ㅿ":"ᅀ","ᇫ":"ᅀ","ퟳ":"ᅀᄇ","ퟴ":"ᅀᄇᄋ","ㆁ":"ᅌ","ᇰ":"ᅌ","ퟵ":"ᅌᄆ","ퟶ":"ᅌᄒ","ᅏ":"ᅎᅎ","ᅑ":"ᅐᅐ","ㆆ":"ᅙ","ᇹ":"ᅙ","ꥼ":"ᅙᅙ","ㅤ":"ᅠ","ㅏ":"ᅡ","ᆣ":"ᅡー","ᅶ":"ᅡᅩ","ᅷ":"ᅡᅮ","ᅢ":"ᅡ丨","ㅐ":"ᅡ丨","ㅑ":"ᅣ","ᅸ":"ᅣᅩ","ᅹ":"ᅣᅭ","ᆤ":"ᅣᅮ","ᅤ":"ᅣ丨","ㅒ":"ᅣ丨","ㅓ":"ᅥ","ᅼ":"ᅥー","ᅺ":"ᅥᅩ","ᅻ":"ᅥᅮ","ᅦ":"ᅥ丨","ㅔ":"ᅥ丨","ㅕ":"ᅧ","ᆥ":"ᅧᅣ","ᅽ":"ᅧᅩ","ᅾ":"ᅧᅮ","ᅨ":"ᅧ丨","ㅖ":"ᅧ丨","ㅗ":"ᅩ","ᅪ":"ᅩᅡ","ㅘ":"ᅩᅡ","ᅫ":"ᅩᅡ丨","ㅙ":"ᅩᅡ丨","ᆦ":"ᅩᅣ","ᆧ":"ᅩᅣ丨","ᅿ":"ᅩᅥ","ᆀ":"ᅩᅥ丨","ힰ":"ᅩᅧ","ᆁ":"ᅩᅧ丨","ᆂ":"ᅩᅩ","ힱ":"ᅩᅩ丨","ᆃ":"ᅩᅮ","ᅬ":"ᅩ丨","ㅚ":"ᅩ丨","ㅛ":"ᅭ","ힲ":"ᅭᅡ","ힳ":"ᅭᅡ丨","ᆄ":"ᅭᅣ","ㆇ":"ᅭᅣ","ᆆ":"ᅭᅣ","ᆅ":"ᅭᅣ丨","ㆈ":"ᅭᅣ丨","ힴ":"ᅭᅥ","ᆇ":"ᅭᅩ","ᆈ":"ᅭ丨","ㆉ":"ᅭ丨","ㅜ":"ᅮ","ᆉ":"ᅮᅡ","ᆊ":"ᅮᅡ丨","ᅯ":"ᅮᅥ","ㅝ":"ᅮᅥ","ᆋ":"ᅮᅥー","ᅰ":"ᅮᅥ丨","ㅞ":"ᅮᅥ丨","ힵ":"ᅮᅧ","ᆌ":"ᅮᅧ丨","ᆍ":"ᅮᅮ","ᅱ":"ᅮ丨","ㅟ":"ᅮ丨","ힶ":"ᅮ丨丨","ㅠ":"ᅲ","ᆎ":"ᅲᅡ","ힷ":"ᅲᅡ丨","ᆏ":"ᅲᅥ","ᆐ":"ᅲᅥ丨","ᆑ":"ᅲᅧ","ㆊ":"ᅲᅧ","ᆒ":"ᅲᅧ丨","ㆋ":"ᅲᅧ丨","ힸ":"ᅲᅩ","ᆓ":"ᅲᅮ","ᆔ":"ᅲ丨","ㆌ":"ᅲ丨","ㆍ":"ᆞ","ퟅ":"ᆞᅡ","ᆟ":"ᆞᅥ","ퟆ":"ᆞᅥ丨","ᆠ":"ᆞᅮ","ᆢ":"ᆞᆞ","ᆡ":"ᆞ丨","ㆎ":"ᆞ丨","ヘ":"へ","⍁":"〼","⧄":"〼","꒞":"ꁊ","꒬":"ꁐ","꒜":"ꃀ","꒨":"ꄲ","꒿":"ꉙ","꒾":"ꊱ","꒔":"ꋍ","꓀":"ꎫ","꓂":"ꎵ","꒺":"ꎿ","꒰":"ꏂ","꒧":"ꑘ","⊥":"ꓕ","⟂":"ꓕ","𝈜":"ꓕ","Ʇ":"ꓕ","Ꞟ":"ꓤ","⅁":"ꓨ","⅂":"ꓶ","𝈕":"ꓶ","𝈫":"ꓶ","𖼦":"ꓶ","𐐑":"ꓶ","⅃":"𖼀","𑫦":"𑫥𑫯","𑫨":"𑫥𑫥","𑫩":"𑫥𑫥𑫯","𑫪":"𑫥𑫥𑫰","𑫧":"𑫥𑫰","𑫴":"𑫳𑫯","𑫶":"𑫳𑫳","𑫷":"𑫳𑫳𑫯","𑫸":"𑫳𑫳𑫰","𑫵":"𑫳𑫰","𑫬":"𑫫𑫯","𑫭":"𑫫𑫫","𑫮":"𑫫𑫫𑫯","⊕":"𐊨","⨁":"𐊨","🜨":"𐊨","Ꚛ":"𐊨","▽":"𐊼","𝈔":"𐊼","🜄":"𐊼","⧖":"𐋀","ꞛ":"𐐺","Ꞛ":"𐐒","𐒠":"𐒆","𐏑":"𐎂","𐏓":"𐎓","𒀸":"𐎚","☥":"𐦞","𓋹":"𐦞","〹":"卄","不":"不","丽":"丽","並":"並","⎜":"丨","⎟":"丨","⎢":"丨","⎥":"丨","⎪":"丨","⎮":"丨","㇑":"丨","ᅵ":"丨","ㅣ":"丨","⼁":"丨","ᆜ":"丨ー","ᆘ":"丨ᅡ","ᆙ":"丨ᅣ","ힽ":"丨ᅣᅩ","ힾ":"丨ᅣ丨","ힿ":"丨ᅧ","ퟀ":"丨ᅧ丨","ᆚ":"丨ᅩ","ퟁ":"丨ᅩ丨","ퟂ":"丨ᅭ","ᆛ":"丨ᅮ","ퟃ":"丨ᅲ","ᆝ":"丨ᆞ","ퟄ":"丨丨","串":"串","丸":"丸","丹":"丹","乁":"乁","㇠":"乙","⼄":"乙","㇟":"乚","⺃":"乚","㇖":"乛","⺂":"乛","⻲":"亀","亂":"亂","㇚":"亅","⼅":"亅","了":"了","ニ":"二","⼆":"二","𠄢":"𠄢","⼇":"亠","亮":"亮","⼈":"人","イ":"亻","⺅":"亻","什":"什","仌":"仌","令":"令","你":"你","倂":"併","倂":"併","侀":"侀","來":"來","例":"例","侮":"侮","侮":"侮","侻":"侻","便":"便","值":"値","倫":"倫","偺":"偺","備":"備","像":"像","僚":"僚","僧":"僧","僧":"僧","㒞":"㒞","⼉":"儿","兀":"兀","⺎":"兀","充":"充","免":"免","免":"免","兔":"兔","兤":"兤","⼊":"入","內":"內","全":"全","兩":"兩","ハ":"八","⼋":"八","六":"六","具":"具","𠔜":"𠔜","𠔥":"𠔥","冀":"冀","㒹":"㒹","⼌":"冂","再":"再","𠕋":"𠕋","冒":"冒","冕":"冕","㒻":"㒻","最":"最","⼍":"冖","冗":"冗","冤":"冤","⼎":"冫","冬":"冬","况":"况","况":"况","冷":"冷","凉":"凉","凌":"凌","凜":"凜","凞":"凞","⼏":"几","𠘺":"𠘺","凵":"凵","⼐":"凵","⼑":"刀","⺉":"刂","刃":"刃","切":"切","切":"切","列":"列","利":"利","㓟":"㓟","刺":"刺","刻":"刻","剆":"剆","割":"割","剷":"剷","劉":"劉","𠠄":"𠠄","カ":"力","力":"力","⼒":"力","劣":"劣","㔕":"㔕","劳":"劳","勇":"勇","勇":"勇","勉":"勉","勉":"勉","勒":"勒","勞":"勞","勤":"勤","勤":"勤","勵":"勵","⼓":"勹","勺":"勺","勺":"勺","包":"包","匆":"匆","𠣞":"𠣞","⼔":"匕","北":"北","北":"北","⼕":"匚","⼖":"匸","匿":"匿","⼗":"十","〸":"十","〺":"卅","卉":"卉","࿖":"卍","࿕":"卐","卑":"卑","卑":"卑","博":"博","ト":"卜","⼘":"卜","⼙":"卩","⺋":"㔾","即":"即","卵":"卵","卽":"卽","卿":"卿","卿":"卿","卿":"卿","⼚":"厂","𠨬":"𠨬","⼛":"厶","參":"參","⼜":"又","及":"及","叟":"叟","𠭣":"𠭣","ロ":"口","⼝":"口","囗":"口","⼞":"口","句":"句","叫":"叫","叱":"叱","吆":"吆","吏":"吏","吝":"吝","吸":"吸","呂":"呂","呈":"呈","周":"周","咞":"咞","咢":"咢","咽":"咽","䎛":"㖈","哶":"哶","唐":"唐","啓":"啓","啟":"啓","啕":"啕","啣":"啣","善":"善","善":"善","喇":"喇","喙":"喙","喙":"喙","喝":"喝","喝":"喝","喫":"喫","喳":"喳","嗀":"嗀","嗂":"嗂","嗢":"嗢","嘆":"嘆","嘆":"嘆","噑":"噑","噴":"噴","器":"器","囹":"囹","圖":"圖","圗":"圗","⼟":"土","士":"土","⼠":"土","型":"型","城":"城","㦳":"㘽","埴":"埴","堍":"堍","報":"報","堲":"堲","塀":"塀","塚":"塚","塚":"塚","塞":"塞","填":"塡","壿":"墫","墬":"墬","墳":"墳","壘":"壘","壟":"壟","𡓤":"𡓤","壮":"壮","売":"売","壷":"壷","⼡":"夂","夆":"夆","⼢":"夊","タ":"夕","⼣":"夕","多":"多","夢":"夢","⼤":"大","奄":"奄","奈":"奈","契":"契","奔":"奔","奢":"奢","女":"女","⼥":"女","𡚨":"𡚨","𡛪":"𡛪","姘":"姘","姬":"姬","娛":"娛","娧":"娧","婢":"婢","婦":"婦","嬀":"媯","㛮":"㛮","㛼":"㛼","媵":"媵","嬈":"嬈","嬨":"嬨","嬾":"嬾","嬾":"嬾","⼦":"子","⼧":"宀","宅":"宅","𡧈":"𡧈","寃":"寃","寘":"寘","寧":"寧","寧":"寧","寧":"寧","寮":"寮","寳":"寳","𡬘":"𡬘","⼨":"寸","寿":"寿","将":"将","⼩":"小","尢":"尢","⺐":"尢","⼪":"尢","⺏":"尣","㞁":"㞁","⼫":"尸","尿":"尿","屠":"屠","屢":"屢","層":"層","履":"履","屮":"屮","屮":"屮","⼬":"屮","𡴋":"𡴋","⼭":"山","峀":"峀","岍":"岍","𡷤":"𡷤","𡷦":"𡷦","崙":"崙","嵃":"嵃","嵐":"嵐","嵫":"嵫","嵮":"嵮","嵼":"嵼","嶲":"嶲","嶺":"嶺","⼮":"巛","巢":"巢","エ":"工","⼯":"工","⼰":"己","⺒":"巳","㠯":"㠯","巽":"巽","⼱":"巾","帲":"帡","帨":"帨","帽":"帽","幩":"幩","㡢":"㡢","𢆃":"𢆃","⼲":"干","年":"年","𢆟":"𢆟","⺓":"幺","⼳":"幺","⼴":"广","度":"度","㡼":"㡼","庰":"庰","庳":"庳","庶":"庶","廊":"廊","廊":"廊","廉":"廉","廒":"廒","廓":"廓","廙":"廙","廬":"廬","⼵":"廴","廾":"廾","⼶":"廾","𢌱":"𢌱","𢌱":"𢌱","弄":"弄","⼷":"弋","⼸":"弓","弢":"弢","弢":"弢","⼹":"彐","⺔":"彑","当":"当","㣇":"㣇","⼺":"彡","形":"形","彩":"彩","彫":"彫","⼻":"彳","律":"律","㣣":"㣣","徚":"徚","復":"復","徭":"徭","⼼":"心","⺖":"忄","⺗":"㣺","忍":"忍","志":"志","念":"念","忹":"忹","怒":"怒","怜":"怜","恵":"恵","㤜":"㤜","㤺":"㤺","悁":"悁","悔":"悔","悔":"悔","惇":"惇","惘":"惘","惡":"惡","𢛔":"𢛔","愈":"愈","慨":"慨","慄":"慄","慈":"慈","慌":"慌","慌":"慌","慎":"慎","慎":"慎","慠":"慠","慺":"慺","憎":"憎","憎":"憎","憎":"憎","憐":"憐","憤":"憤","憯":"憯","憲":"憲","𢡄":"𢡄","𢡊":"𢡊","懞":"懞","懲":"懲","懲":"懲","懲":"懲","懶":"懶","懶":"懶","戀":"戀","⼽":"戈","成":"成","戛":"戛","戮":"戮","戴":"戴","⼾":"戶","戸":"戶","⼿":"手","⺘":"扌","扝":"扝","抱":"抱","拉":"拉","拏":"拏","拓":"拓","拔":"拔","拼":"拼","拾":"拾","𢬌":"𢬌","挽":"挽","捐":"捐","捨":"捨","捻":"捻","掃":"掃","掠":"掠","掩":"掩","揄":"揄","揤":"揤","摒":"摒","𢯱":"𢯱","搜":"搜","搢":"搢","揅":"揅","摩":"摩","摷":"摷","摾":"摾","㨮":"㨮","搉":"㩁","撚":"撚","撝":"撝","擄":"擄","㩬":"㩬","⽀":"支","⽁":"攴","⺙":"攵","敏":"敏","敏":"敏","敖":"敖","敬":"敬","數":"數","𣀊":"𣀊","⽂":"文","⻫":"斉","⽃":"斗","料":"料","⽄":"斤","⽅":"方","旅":"旅","⽆":"无","⺛":"旡","既":"既","旣":"旣","⽇":"日","易":"易","曶":"㫚","㫤":"㫤","晉":"晉","晩":"晚","晴":"晴","晴":"晴","暑":"暑","暑":"暑","暈":"暈","㬈":"㬈","暜":"暜","暴":"暴","曆":"曆","㬙":"㬙","𣊸":"𣊸","⽈":"曰","更":"更","書":"書","⽉":"月","𣍟":"𣍟","肦":"朌","胐":"朏","胊":"朐","脁":"朓","胶":"㬵","朗":"朗","朗":"朗","朗":"朗","脧":"朘","望":"望","望":"望","幐":"㬺","䐠":"㬻","𣎓":"𣎓","膧":"朣","𣎜":"𣎜","⽊":"木","李":"李","杓":"杓","杖":"杖","杞":"杞","𣏃":"𣏃","柿":"杮","杻":"杻","枅":"枅","林":"林","㭉":"㭉","𣏕":"𣏕","柳":"柳","柺":"柺","栗":"栗","栟":"栟","桒":"桒","𣑭":"𣑭","梁":"梁","梅":"梅","梅":"梅","梎":"梎","梨":"梨","椔":"椔","楂":"楂","㮝":"㮝","㮝":"㮝","槩":"㮣","樧":"榝","榣":"榣","槪":"槪","樂":"樂","樂":"樂","樂":"樂","樓":"樓","𣚣":"𣚣","檨":"檨","櫓":"櫓","櫛":"櫛","欄":"欄","㰘":"㰘","⽋":"欠","次":"次","𣢧":"𣢧","歔":"歔","㱎":"㱎","⽌":"止","⻭":"歯","歲":"歲","歷":"歷","歹":"歹","⽍":"歹","⺞":"歺","殟":"殟","殮":"殮","⽎":"殳","殺":"殺","殺":"殺","殺":"殺","殻":"殻","𣪍":"𣪍","⽏":"毋","⺟":"母","𣫺":"𣫺","⽐":"比","⽑":"毛","⽒":"氏","⺠":"民","⽓":"气","⽔":"水","⺡":"氵","⺢":"氺","汎":"汎","汧":"汧","沈":"沈","沿":"沿","泌":"泌","泍":"泍","泥":"泥","𣲼":"𣲼","洛":"洛","洞":"洞","洴":"洴","派":"派","流":"流","流":"流","流":"流","洖":"洖","浩":"浩","浪":"浪","海":"海","海":"海","浸":"浸","涅":"涅","𣴞":"𣴞","淋":"淋","淚":"淚","淪":"淪","淹":"淹","渚":"渚","港":"港","湮":"湮","潙":"溈","滋":"滋","滋":"滋","溜":"溜","溺":"溺","滇":"滇","滑":"滑","滛":"滛","㴳":"㴳","漏":"漏","漢":"漢","漢":"漢","漣":"漣","𣻑":"𣻑","潮":"潮","𣽞":"𣽞","𣾎":"𣾎","濆":"濆","濫":"濫","濾":"濾","瀛":"瀛","瀞":"瀞","瀞":"瀞","瀹":"瀹","灊":"灊","㶖":"㶖","⽕":"火","⺣":"灬","灰":"灰","灷":"灷","災":"災","炙":"炙","炭":"炭","烈":"烈","烙":"烙","煮":"煮","煮":"煮","𤉣":"𤉣","煅":"煅","煉":"煉","𤋮":"𤋮","熜":"熜","燎":"燎","燐":"燐","𤎫":"𤎫","爐":"爐","爛":"爛","爨":"爨","⽖":"爪","爫":"爫","⺤":"爫","爵":"爵","爵":"爵","⽗":"父","⽘":"爻","⺦":"丬","⽙":"爿","⽚":"片","牐":"牐","⽛":"牙","𤘈":"𤘈","⽜":"牛","牢":"牢","犀":"犀","犕":"犕","⽝":"犬","⺨":"犭","犯":"犯","狀":"狀","𤜵":"𤜵","狼":"狼","猪":"猪","猪":"猪","𤠔":"𤠔","獵":"獵","獺":"獺","⽞":"玄","率":"率","率":"率","⽟":"玉","王":"王","㺬":"㺬","玥":"玥","玲":"玲","㺸":"㺸","㺸":"㺸","珞":"珞","琉":"琉","理":"理","琢":"琢","瑇":"瑇","瑜":"瑜","瑩":"瑩","瑱":"瑱","瑱":"瑱","璅":"璅","璉":"璉","璘":"璘","瓊":"瓊","⽠":"瓜","⽡":"瓦","㼛":"㼛","甆":"甆","⽢":"甘","⽣":"生","甤":"甤","⽤":"用","⽥":"田","画":"画","甾":"甾","𤰶":"𤰶","留":"留","略":"略","異":"異","異":"異","𤲒":"𤲒","⽦":"疋","⽧":"疒","痢":"痢","瘐":"瘐","瘟":"瘟","瘝":"瘝","療":"療","癩":"癩","⽨":"癶","⽩":"白","𤾡":"𤾡","𤾸":"𤾸","⽪":"皮","⽫":"皿","𥁄":"𥁄","㿼":"㿼","益":"益","益":"益","盛":"盛","盧":"盧","䀈":"䀈","⽬":"目","直":"直","直":"直","𥃲":"𥃲","𥃳":"𥃳","省":"省","䀘":"䀘","𥄙":"𥄙","眞":"眞","真":"真","真":"真","𥄳":"𥄳","着":"着","睊":"睊","睊":"睊","鿃":"䀹","䀹":"䀹","䀹":"䀹","晣":"䀿","䁆":"䁆","瞋":"瞋","𥉉":"𥉉","瞧":"瞧","⽭":"矛","⽮":"矢","⽯":"石","䂖":"䂖","𥐝":"𥐝","硏":"研","硎":"硎","硫":"硫","碌":"碌","碌":"碌","碑":"碑","磊":"磊","磌":"磌","磌":"磌","磻":"磻","䃣":"䃣","礪":"礪","⽰":"示","⺭":"礻","礼":"礼","社":"社","祈":"祈","祉":"祉","𥘦":"𥘦","祐":"祐","祖":"祖","祖":"祖","祝":"祝","神":"神","祥":"祥","視":"視","視":"視","祿":"祿","𥚚":"𥚚","禍":"禍","禎":"禎","福":"福","福":"福","𥛅":"𥛅","禮":"禮","⽱":"禸","⽲":"禾","秊":"秊","䄯":"䄯","秫":"秫","稜":"稜","穊":"穊","穀":"穀","穀":"穀","穏":"穏","⽳":"穴","突":"突","𥥼":"𥥼","窱":"窱","立":"立","⽴":"立","⻯":"竜","𥪧":"𥪧","𥪧":"𥪧","竮":"竮","⽵":"竹","笠":"笠","節":"節","節":"節","䈂":"䈂","𥮫":"𥮫","篆":"篆","䈧":"䈧","築":"築","𥲀":"𥲀","𥳐":"𥳐","簾":"簾","籠":"籠","⽶":"米","类":"类","粒":"粒","精":"精","糒":"糒","糖":"糖","糨":"糨","䊠":"䊠","糣":"糣","糧":"糧","⽷":"糸","⺯":"糹","𥾆":"𥾆","紀":"紀","紐":"紐","索":"索","累":"累","絶":"絕","絣":"絣","絛":"絛","綠":"綠","綾":"綾","緇":"緇","練":"練","練":"練","練":"練","縂":"縂","䌁":"䌁","縉":"縉","縷":"縷","繁":"繁","繅":"繅","𦇚":"𦇚","䌴":"䌴","⽸":"缶","𦈨":"𦈨","缾":"缾","𦉇":"𦉇","⽹":"网","⺫":"罒","⺲":"罒","⺱":"罓","䍙":"䍙","署":"署","𦋙":"𦋙","罹":"罹","罺":"罺","羅":"羅","𦌾":"𦌾","⽺":"羊","羕":"羕","羚":"羚","羽":"羽","⽻":"羽","翺":"翺","老":"老","⽼":"老","⺹":"耂","者":"者","者":"者","者":"者","⽽":"而","𦓚":"𦓚","⽾":"耒","𦔣":"𦔣","⽿":"耳","聆":"聆","聠":"聠","𦖨":"𦖨","聯":"聯","聰":"聰","聾":"聾","⾀":"聿","⺺":"肀","⾁":"肉","肋":"肋","肭":"肭","育":"育","䏕":"䏕","䏙":"䏙","腁":"胼","脃":"脃","脾":"脾","䐋":"䐋","朡":"朡","𦞧":"𦞧","𦞵":"𦞵","朦":"䑃","臘":"臘","⾂":"臣","臨":"臨","⾃":"自","臭":"臭","⾄":"至","⾅":"臼","舁":"舁","舁":"舁","舄":"舄","⾆":"舌","舘":"舘","⾇":"舛","⾈":"舟","䑫":"䑫","⾉":"艮","良":"良","⾊":"色","⾋":"艸","艹":"艹","艹":"艹","⺾":"艹","⺿":"艹","⻀":"艹","芋":"芋","芑":"芑","芝":"芝","花":"花","芳":"芳","芽":"芽","若":"若","若":"若","苦":"苦","𦬼":"𦬼","茶":"茶","荒":"荒","荣":"荣","茝":"茝","茣":"茣","莽":"莽","荓":"荓","菉":"菉","菊":"菊","菌":"菌","菜":"菜","菧":"菧","華":"華","菱":"菱","著":"著","著":"著","𦰶":"𦰶","莭":"莭","落":"落","葉":"葉","蔿":"蒍","𦳕":"𦳕","𦵫":"𦵫","蓮":"蓮","蓱":"蓱","蓳":"蓳","蓼":"蓼","蔖":"蔖","䔫":"䔫","蕤":"蕤","𦼬":"𦼬","藍":"藍","䕝":"䕝","𦾱":"𦾱","䕡":"䕡","藺":"藺","蘆":"蘆","䕫":"䕫","蘒":"蘒","蘭":"蘭","𧃒":"𧃒","虁":"蘷","蘿":"蘿","⾌":"虍","⻁":"虎","虐":"虐","虜":"虜","虜":"虜","虧":"虧","虩":"虩","⾍":"虫","蚩":"蚩","蚈":"蚈","蛢":"蛢","蜎":"蜎","蜨":"蜨","蝫":"蝫","蟡":"蟡","蝹":"蝹","蝹":"蝹","螆":"螆","䗗":"䗗","𧏊":"𧏊","螺":"螺","蠁":"蠁","䗹":"䗹","蠟":"蠟","⾎":"血","行":"行","⾏":"行","衠":"衠","衣":"衣","⾐":"衣","⻂":"衤","裂":"裂","𧙧":"𧙧","裏":"裏","裗":"裗","裞":"裞","裡":"裡","裸":"裸","裺":"裺","䘵":"䘵","褐":"褐","襁":"襁","襤":"襤","⾑":"襾","⻄":"西","⻃":"覀","覆":"覆","見":"見","⾒":"見","𧢮":"𧢮","⻅":"见","⾓":"角","⾔":"言","𧥦":"𧥦","詽":"訮","訞":"䚶","䚾":"䚾","䛇":"䛇","誠":"誠","說":"說","說":"說","調":"調","請":"請","諒":"諒","論":"論","諭":"諭","諭":"諭","諸":"諸","諸":"諸","諾":"諾","諾":"諾","謁":"謁","謁":"謁","謹":"謹","謹":"謹","識":"識","讀":"讀","讏":"讆","變":"變","變":"變","⻈":"讠","⾕":"谷","⾖":"豆","豈":"豈","豕":"豕","⾗":"豕","豣":"豜","⾘":"豸","𧲨":"𧲨","⾙":"貝","貫":"貫","賁":"賁","賂":"賂","賈":"賈","賓":"賓","贈":"贈","贈":"贈","贛":"贛","⻉":"贝","⾚":"赤","⾛":"走","起":"起","趆":"赿","𧻓":"𧻓","𧼯":"𧼯","⾜":"足","跋":"跋","趼":"趼","跺":"跥","路":"路","跰":"跰","躛":"躗","⾝":"身","車":"車","⾞":"車","軔":"軔","輧":"軿","輦":"輦","輪":"輪","輸":"輸","輸":"輸","輻":"輻","轢":"轢","⻋":"车","⾟":"辛","辞":"辞","辰":"辰","⾠":"辰","⾡":"辵","辶":"辶","⻌":"辶","⻍":"辶","巡":"巡","連":"連","逸":"逸","逸":"逸","遲":"遲","遼":"遼","𨗒":"𨗒","𨗭":"𨗭","邏":"邏","⾢":"邑","邔":"邔","郎":"郎","郞":"郎","郞":"郎","郱":"郱","都":"都","𨜮":"𨜮","鄑":"鄑","鄛":"鄛","⾣":"酉","酪":"酪","醙":"醙","醴":"醴","⾤":"釆","里":"里","⾥":"里","量":"量","金":"金","⾦":"金","鈴":"鈴","鈸":"鈸","鉶":"鉶","鋗":"鋗","鋘":"鋘","鉼":"鉼","錄":"錄","鍊":"鍊","鎮":"鎭","鏹":"鏹","鐕":"鐕","𨯺":"𨯺","⻐":"钅","⻑":"長","⾧":"長","⻒":"镸","⻓":"长","⾨":"門","開":"開","䦕":"䦕","閭":"閭","閷":"閷","𨵷":"𨵷","⻔":"门","⾩":"阜","⻏":"阝","⻖":"阝","阮":"阮","陋":"陋","降":"降","陵":"陵","陸":"陸","陼":"陼","隆":"隆","隣":"隣","䧦":"䧦","⾪":"隶","隷":"隷","隸":"隷","隸":"隷","⾫":"隹","雃":"雃","離":"離","難":"難","難":"難","⾬":"雨","零":"零","雷":"雷","霣":"霣","𩅅":"𩅅","露":"露","靈":"靈","⾭":"靑","⻘":"青","靖":"靖","靖":"靖","𩇟":"𩇟","⾮":"非","⾯":"面","𩈚":"𩈚","⾰":"革","䩮":"䩮","䩶":"䩶","⾱":"韋","韛":"韛","韠":"韠","⻙":"韦","⾲":"韭","𩐊":"𩐊","⾳":"音","響":"響","響":"響","⾴":"頁","䪲":"䪲","頋":"頋","頋":"頋","頋":"頋","領":"領","頩":"頩","𩒖":"𩒖","頻":"頻","頻":"頻","類":"類","⻚":"页","⾵":"風","𩖶":"𩖶","⻛":"风","⾶":"飛","⻜":"飞","⻝":"食","⾷":"食","⻟":"飠","飢":"飢","飯":"飯","飼":"飼","䬳":"䬳","館":"館","餩":"餩","⻠":"饣","⾸":"首","⾹":"香","馧":"馧","⾺":"馬","駂":"駂","駱":"駱","駾":"駾","驪":"驪","⻢":"马","⾻":"骨","䯎":"䯎","⾼":"高","⾽":"髟","𩬰":"𩬰","鬒":"鬒","鬒":"鬒","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⻤":"鬼","⿂":"魚","魯":"魯","鱀":"鱀","鱗":"鱗","⻥":"鱼","⿃":"鳥","鳽":"鳽","䳎":"䳎","鵧":"鵧","䳭":"䳭","𪃎":"𪃎","鶴":"鶴","𪄅":"𪄅","䳸":"䳸","鷺":"鷺","𪈎":"𪈎","鸞":"鸞","鹃":"鹂","⿄":"鹵","鹿":"鹿","⿅":"鹿","𪊑":"𪊑","麗":"麗","麟":"麟","⿆":"麥","⻨":"麦","麻":"麻","⿇":"麻","𪎒":"𪎒","⿈":"黃","⻩":"黄","⿉":"黍","黎":"黎","䵖":"䵖","⿊":"黑","黒":"黑","墨":"墨","黹":"黹","⿋":"黹","⿌":"黽","鼅":"鼅","黾":"黾","⿍":"鼎","鼏":"鼏","⿎":"鼓","鼖":"鼖","⿏":"鼠","鼻":"鼻","⿐":"鼻","齃":"齃","⿑":"齊","⻬":"齐","⿒":"齒","𪘀":"𪘀","⻮":"齿","龍":"龍","⿓":"龍","龎":"龎","⻰":"龙","龜":"龜","龜":"龜","龜":"龜","⿔":"龜","⻳":"龟","⿕":"龠"}')}}]);
      3 //# sourceMappingURL=4732.js.map