From a377b87e34e37d08f3a6fb0ef3443ab321c5d062 Mon Sep 17 00:00:00 2001 From: Robert Long Date: Thu, 29 Jul 2021 20:59:13 -0700 Subject: [PATCH] Move browser-matrix into public directory --- index.html | 2 +- public/browser-matrix.min.js | 18 ++++++++++++++++++ public/browser-matrix.min.js.map | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 public/browser-matrix.min.js create mode 100644 public/browser-matrix.min.js.map diff --git a/index.html b/index.html index 4405ca3..60852f1 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ - +
diff --git a/public/browser-matrix.min.js b/public/browser-matrix.min.js new file mode 100644 index 0000000..23dfe81 --- /dev/null +++ b/public/browser-matrix.min.js @@ -0,0 +1,18 @@ +!function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[s]={exports:{}};t[s][0].call(l.exports,(function(e){return i(t[s][1][e]||e)}),l,l.exports,e,t,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;se.length)&&(t=e.length);for(var r=0,n=new Array(t);r=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,l=new Uint8Array(s);e[r];){var d=t[e.charCodeAt(r)];if(255===d)return;for(var h=0,f=s-1;(0!==d||h>>0,l[f]=d%256>>>0,d=d/256>>>0;if(0!==d)throw new Error("Non-zero carry");o=h,r++}if(" "!==e[r]){for(var g=s-o;g!==s&&0===l[g];)g++;var p=n.allocUnsafe(i+(s-g));p.fill(0,0,i);for(var v=i;g!==s;)p[v++]=l[g++];return p}}}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=n.from(t)),!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,o=0,s=t.length;o!==s&&0===t[o];)o++,r++;for(var u=(s-o)*l+1>>>0,d=new Uint8Array(u);o!==s;){for(var h=t[o],f=0,g=u-1;(0!==h||f>>0,d[g]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");i=f,o++}for(var p=u-i;p!==u&&0===d[p];)p++;for(var v=c.repeat(r);p0?s-4:s;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,c[l++]=255&t);1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},r.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],s=16383,a=0,c=r-i;ac?c:a+s));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,r){for(var i,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],31:[function(e,t,r){var n,i;n=this,i=function(){var e=XMLHttpRequest;if(!e)throw new Error("missing XMLHttpRequest");function t(o,s){if("function"!=typeof s)throw new Error("Bad callback given: "+s);if(!o)throw new Error("No options given");var a=o.onResponse;if((o="string"==typeof o?{uri:o}:JSON.parse(JSON.stringify(o))).onResponse=a,o.verbose&&(t.log=function(){var e,t,r={},o=["trace","debug","info","warn","error"];for(t=0;t>18&63,r=o>>12&63,n=o>>6&63,i=63&o,l[c++]=s.charAt(t)+s.charAt(r)+s.charAt(n)+s.charAt(i)}while(a299)&&n.error){for(var i in e=new Error("CouchDB error: "+(n.error.reason||n.error.error)),n)e[i]=n[i];return r(e,t,n)}return r(e,t,n)}))},t},"function"==typeof define&&define.amd?define([],i):"object"==typeof r?t.exports=i():n.returnExports=i()},{}],32:[function(e,t,r){(function(e){(function(){!function(n){var i="object"==typeof r&&r&&!r.nodeType&&r,o="object"==typeof t&&t&&!t.nodeType&&t,s="object"==typeof e&&e;s.global!==s&&s.window!==s&&s.self!==s||(n=s);var a,c,u=2147483647,l=36,d=/^xn--/,h=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,g={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,v=String.fromCharCode;function y(e){throw new RangeError(g[e])}function m(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function b(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+m((e=e.replace(f,".")).split("."),t).join(".")}function S(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=v((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=v(e)})).join("")}function E(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function k(e,t,r){var n=0;for(e=r?p(e/700):e>>1,e+=p(e/t);e>455;n+=l)e=p(e/35);return p(n+36*e/(e+38))}function w(e){var t,r,n,i,o,s,a,c,d,h,f,g=[],v=e.length,m=0,b=128,S=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&y("not-basic"),g.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=v&&y("invalid-input"),((c=(f=e.charCodeAt(i++))-48<10?f-22:f-65<26?f-65:f-97<26?f-97:l)>=l||c>p((u-m)/s))&&y("overflow"),m+=c*s,!(c<(d=a<=S?1:a>=S+26?26:a-S));a+=l)s>p(u/(h=l-d))&&y("overflow"),s*=h;S=k(m-o,t=g.length+1,0==o),p(m/t)>u-b&&y("overflow"),b+=p(m/t),m%=t,g.splice(m++,0,b)}return _(g)}function I(e){var t,r,n,i,o,s,a,c,d,h,f,g,m,b,_,w=[];for(g=(e=S(e)).length,t=128,r=0,o=72,s=0;s=t&&fp((u-r)/(m=n+1))&&y("overflow"),r+=(a-t)*m,t=a,s=0;su&&y("overflow"),f==t){for(c=r,d=l;!(c<(h=d<=o?1:d>=o+26?26:d-o));d+=l)_=c-h,b=l-h,w.push(v(E(h+_%b,0))),c=p(_/b);w.push(v(E(c,0))),o=k(r,m,n==i),r=0,++n}++r,++t}return w.join("")}if(a={version:"1.4.1",ucs2:{decode:S,encode:_},decode:w,encode:I,toASCII:function(e){return b(e,(function(e){return h.test(e)?"xn--"+I(e):e}))},toUnicode:function(e){return b(e,(function(e){return d.test(e)?w(e.slice(4).toLowerCase()):e}))}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",(function(){return a}));else if(i&&o)if(t.exports==i)o.exports=a;else for(c in a)a.hasOwnProperty(c)&&(i[c]=a[c]);else n.punycode=a}(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],33:[function(e,t,r){var n=e("base-x");t.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},{"base-x":29}],34:[function(e,t,r){(function(t){(function(){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +"use strict";var t=e("base64-js"),n=e("ieee754");r.Buffer=s,r.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},r.INSPECT_MAX_BYTES=50;var i=2147483647;function o(e){if(e>i)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=s.prototype,t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return u(e)}return a(e,t,r)}function a(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var r=0|h(e,t),n=o(r),i=n.write(e,t);i!==r&&(n=n.slice(0,i));return n}(e,t);if(ArrayBuffer.isView(e))return l(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return function(e,t,r){if(t<0||e.byteLength=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return N(e).length;default:if(i)return n?-1:B(e).length;t=(""+t).toLowerCase(),i=!0}}function f(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return C(this,t,r);case"utf8":case"utf-8":return w(this,t,r);case"ascii":return T(this,t,r);case"latin1":case"binary":return R(this,t,r);case"base64":return k(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function p(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),j(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,i){var o,s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var l=-1;for(o=r;oa&&(r=a-c),o=r;o>=0;o--){for(var d=!0,h=0;hi&&(n=i):n=i;var o=t.length;n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function k(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function w(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+d<=r)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&u)<<6|63&o)>127&&(l=c);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=d}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nt&&(e+=" ... "),""},s.prototype.compare=function(e,t,r,n,i){if(q(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),c=Math.min(o,a),u=this.slice(n,i),l=e.slice(t,r),d=0;d>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return y(this,e,t,r);case"utf8":case"utf-8":return m(this,e,t,r);case"ascii":return b(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return _(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,r,n,i,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function P(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function x(e,t,r,i,o){return t=+t,r>>>=0,o||P(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function M(e,t,r,i,o){return t=+t,r>>>=0,o||P(e,0,r,8),n.write(e,t,r,i,52,8),r+8}s.prototype.slice=function(e,t){var r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||D(e,t,this.length);for(var n=this[e],i=1,o=0;++o>>=0,t>>>=0,r||D(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return e>>>=0,t||D(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||D(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||D(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||D(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||D(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return e>>>=0,t||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||D(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){e>>>=0,t||D(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return e>>>=0,t||D(e,4,this.length),n.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||D(e,4,this.length),n.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||D(e,8,this.length),n.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||D(e,8,this.length),n.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||A(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n)||A(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);A(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);A(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeFloatLE=function(e,t,r){return x(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return x(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return M(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return M(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(!s.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return i},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){var i=e.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(e=i)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function N(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function L(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function j(e){return e!=e}}).call(this)}).call(this,e("buffer").Buffer)},{"base64-js":30,buffer:34,ieee754:37}],35:[function(e,t,r){ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +"use strict";var n=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,i=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,o=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,s=/\\([\u000b\u0020-\u00ff])/g,a=/([\\"])/g,c=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function u(e){var t=String(e);if(o.test(t))return t;if(t.length>0&&!i.test(t))throw new TypeError("invalid parameter value");return'"'+t.replace(a,"\\$1")+'"'}function l(e){this.parameters=Object.create(null),this.type=e}r.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!c.test(r))throw new TypeError("invalid type");var n=r;if(t&&"object"==typeof t)for(var i,s=Object.keys(t).sort(),a=0;a0&&s.length>i&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,a=c,console&&console.warn&&console.warn(a)}return e}function h(){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 f(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function g(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)o(c,this,t);else{var u=c.length,l=v(c,u);for(r=0;r=0;o--)if(r[o]===t||r[o].listener===t){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return g(this,e,!0)},a.prototype.rawListeners=function(e){return g(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},a.prototype.listenerCount=p,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},{}],37:[function(e,t,r){ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +r.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,c=(1<>1,l=-7,d=r?i-1:0,h=r?-1:1,f=e[t+d];for(d+=h,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+d],d+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+d],d+=h,l-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=u}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,c,u=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,g=n?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(s++,c/=2),s+d>=l?(a=0,s=l):s+d>=1?(a=(t*c-1)*Math.pow(2,i),s+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=g,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=g,s/=256,u-=8);e[r+f-g]|=128*p}},{}],38:[function(e,t,r){!function(e,r){"use strict";"function"==typeof define&&define.amd?define(r):"object"==typeof t&&t.exports?t.exports=r():e.log=r()}(this,(function(){"use strict";var e=function(){},t="undefined",r=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function i(e,t){var r=e[t];if("function"==typeof r.bind)return r.bind(e);try{return Function.prototype.bind.call(r,e)}catch(t){return function(){return Function.prototype.apply.apply(r,[e,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&r?o:void 0!==console[n]?i(console,n):void 0!==console.log?i(console,"log"):e)}function a(t,r){for(var i=0;i=0&&r<=s.levels.SILENT))throw"log.setLevel() called with invalid level: "+r;if(o=r,!1!==i&&function(e){var r=(n[e]||"silent").toUpperCase();if(typeof window!==t&&c){try{return void(window.localStorage[c]=r)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"="+r+";"}catch(e){}}}(r),a.call(s,r,e),typeof console===t&&rnew Promise(((r,s)=>{t={onFailedAttempt:()=>{},retries:10,...t};const a=n.operation(t);a.attempt((async n=>{try{r(await e(n))}catch(e){if(!(e instanceof Error))return void s(new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));if(e instanceof o)a.stop(),s(e.originalError);else if(e instanceof TypeError&&(c=e.message,!i.includes(c)))a.stop(),s(e);else{((e,t,r)=>{const n=r.retries-(t-1);e.attemptNumber=t,e.retriesLeft=n})(e,n,t);try{await t.onFailedAttempt(e)}catch(e){return void s(e)}a.retry(e)||s(a.mainError())}}var c}))}));t.exports=s,t.exports.default=s,t.exports.AbortError=o},{retry:50}],40:[function(e,t,r){var n,i,o=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{i="function"==typeof clearTimeout?clearTimeout:a}catch(e){i=a}}();var u,l=[],d=!1,h=-1;function f(){d&&u&&(d=!1,u.length?l=u.concat(l):h=-1,l.length&&g())}function g(){if(!d){var e=c(f);d=!0;for(var t=l.length;t;){for(u=l,l=[];++h1)for(var r=1;r-1?e.split(","):e},u=function(e,t,r,n){if(e){var o=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(o),u=a?o.slice(0,a.index):o,l=[];if(u){if(!r.plainObjects&&i.call(Object.prototype,u)&&!r.allowPrototypes)return;l.push(u)}for(var d=0;r.depth>0&&null!==(a=s.exec(o))&&d=0;--o){var s,a=e[o];if("[]"===a&&r.parseArrays)s=[].concat(i);else{s=r.plainObjects?Object.create(null):{};var u="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(u,10);r.parseArrays||""!==u?!isNaN(l)&&a!==u&&String(l)===u&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=i:s[u]=i:s={0:i}}i=s}return i}(l,t,r,n)}};t.exports=function(e,t){var r=function(e){if(!e)return s;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?s.charset:e.charset;return{allowDots:void 0===e.allowDots?s.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:s.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:s.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:s.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:s.comma,decoder:"function"==typeof e.decoder?e.decoder:s.decoder,delimiter:"string"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:s.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:s.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:s.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:s.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:s.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var l="string"==typeof e?function(e,t){var r,u={},l=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,d=t.parameterLimit===1/0?void 0:t.parameterLimit,h=l.split(t.delimiter,d),f=-1,g=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(v=o(v)?[v]:v),i.call(u,p)?u[p]=n.combine(u[p],v):u[p]=v}return u}(e,r):e,d=r.plainObjects?Object.create(null):{},h=Object.keys(l),f=0;f0?S.join(",")||null:void 0}];else if(a(l))_=l;else{var k=Object.keys(S);_=d?k.sort(d):k}for(var w=0;w<_.length;++w){var I=_[w],T="object"==typeof I&&void 0!==I.value?I.value:S[I];if(!s||null!==T){var R=a(S)?"function"==typeof i?i(r,I):r:r+(f?"."+I:"["+I+"]");u(E,e(T,R,i,o,s,c,l,d,f,g,p,v,y,m))}}return E};t.exports=function(e,t){var r,n=e,c=function(e){if(!e)return h;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||h.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=i.default;if(void 0!==e.format){if(!o.call(i.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=i.formatters[r],s=h.filter;return("function"==typeof e.filter||a(e.filter))&&(s=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:h.addQueryPrefix,allowDots:void 0===e.allowDots?h.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:h.charsetSentinel,delimiter:void 0===e.delimiter?h.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:h.encode,encoder:"function"==typeof e.encoder?e.encoder:h.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:h.encodeValuesOnly,filter:s,format:r,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:h.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:h.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:h.strictNullHandling}}(t);"function"==typeof c.filter?n=(0,c.filter)("",n):a(c.filter)&&(r=c.filter);var l,d=[];if("object"!=typeof n||null===n)return"";l=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var g=s[l];r||(r=Object.keys(n)),c.sort&&r.sort(c.sort);for(var p=0;p0?m+y:""}},{"./formats":41,"./utils":45}],45:[function(e,t,r){"use strict";var n=e("./formats"),i=Object.prototype.hasOwnProperty,o=Array.isArray,s=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n1;){var t=e.pop(),r=t.obj[t.prop];if(o(r)){for(var n=[],i=0;i=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||o===n.RFC1738&&(40===l||41===l)?c+=a.charAt(u):l<128?c+=s[l]:l<2048?c+=s[192|l>>6]+s[128|63&l]:l<55296||l>=57344?c+=s[224|l>>12]+s[128|l>>6&63]+s[128|63&l]:(u+=1,l=65536+((1023&l)<<10|1023&a.charCodeAt(u)),c+=s[240|l>>18]+s[128|l>>12&63]+s[128|l>>6&63]+s[128|63&l])}return c},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var r=[],n=0;n0&&u>c&&(u=c);for(var l=0;l=0?(d=p.substr(0,v),h=p.substr(v+1)):(d=p,h=""),f=decodeURIComponent(d),g=decodeURIComponent(h),n(s,f)?i(s[f])?s[f].push(g):s[f]=[s[f],g]:s[f]=g}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],47:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,a){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?o(s(e),(function(s){var a=encodeURIComponent(n(s))+r;return i(e[s])?o(e[s],(function(e){return a+encodeURIComponent(n(e))})).join(t):a+encodeURIComponent(n(e[s]))})).join(t):a?encodeURIComponent(n(a))+r+encodeURIComponent(n(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function o(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var c=n.call(s,"catchLoc"),u=n.call(s,"finallyLoc");if(c&&u){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),R(r),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;R(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:O(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),p}},e}("object"==typeof t?t.exports:{});try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}},{}],50:[function(e,t,r){t.exports=e("./lib/retry")},{"./lib/retry":51}],51:[function(e,t,r){var n=e("./retry_operation");r.operation=function(e){var t=r.timeouts(e);return new n(t,{forever:e&&e.forever,unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})},r.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],i=0;i=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(void 0===r){if(!this._cachedTimeouts)return!1;this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift()}var n=this,i=setTimeout((function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout((function(){n._operationTimeoutCb(n._attempts)}),n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)}),r);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout((function(){r._operationTimeoutCb()}),r._operationTimeout)),this._operationStart=(new Date).getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},n.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(0===this._errors.length)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=i,r=s)}return t}},{}],53:[function(e,t,r){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var n=e("buffer"),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,r),r.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},{buffer:34}],54:[function(e,t,r){t.exports={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","ᙱ":"ᖖᒋ","ᙲ":"ᖖᒌ","ᙴ":"ᖖᒎ","ᙵ":"ᖖᒐ","ᙶ":"ᖖᒑ","ᣪ":"ᖗ·","ᙷ":"ᖧ·","ᙸ":"ᖨ·","ᙹ":"ᖩ·","ᙺ":"ᖪ·","ᙻ":"ᖫ·","ᙼ":"ᖬ·","ᙽ":"ᖭ·","⪫":"ᗒ","⪪":"ᗕ","ꓷ":"ᗡ","ᣰ":"ᗴ·","ᣲ":"ᘛ·","ᶻ":"ᙆ","ꓭ":"ᙠ","ᶺ":"ᣔ","ᴾ":"ᣖ","ᣜ":"ᣟᐞ","ˡ":"ᣳ","ʳ":"ᣴ","ˢ":"ᣵ","ᣛ":"ᣵ","ꚰ":"ᚹ","ᛡ":"ᚼ","⍿":"ᚽ","ᛂ":"ᚽ","𝈿":"ᛋ","↑":"ᛏ","↿":"ᛐ","⥮":"ᛐ⇂","⥣":"ᛐᛚ","ⵣ":"ᛯ","↾":"ᛚ","⨡":"ᛚ","⋄":"ᛜ","◇":"ᛜ","◊":"ᛜ","♢":"ᛜ","🝔":"ᛜ","𑢷":"ᛜ","𐊔":"ᛜ","⍚":"ᛜ̲","⋈":"ᛞ","⨝":"ᛞ","𐓐":"ᛦ","↕":"ᛨ","𐳼":"𐲂","𐳺":"𐲥","ㄱ":"ᄀ","ᆨ":"ᄀ","ᄁ":"ᄀᄀ","ㄲ":"ᄀᄀ","ᆩ":"ᄀᄀ","ᇺ":"ᄀᄂ","ᅚ":"ᄀᄃ","ᇃ":"ᄀᄅ","ᇻ":"ᄀᄇ","ᆪ":"ᄀᄉ","ㄳ":"ᄀᄉ","ᇄ":"ᄀᄉᄀ","ᇼ":"ᄀᄎ","ᇽ":"ᄀᄏ","ᇾ":"ᄀᄒ","ㄴ":"ᄂ","ᆫ":"ᄂ","ᄓ":"ᄂᄀ","ᇅ":"ᄂᄀ","ᄔ":"ᄂᄂ","ㅥ":"ᄂᄂ","ᇿ":"ᄂᄂ","ᄕ":"ᄂᄃ","ㅦ":"ᄂᄃ","ᇆ":"ᄂᄃ","ퟋ":"ᄂᄅ","ᄖ":"ᄂᄇ","ᅛ":"ᄂᄉ","ᇇ":"ᄂᄉ","ㅧ":"ᄂᄉ","ᅜ":"ᄂᄌ","ᆬ":"ᄂᄌ","ㄵ":"ᄂᄌ","ퟌ":"ᄂᄎ","ᇉ":"ᄂᄐ","ᅝ":"ᄂᄒ","ᆭ":"ᄂᄒ","ㄶ":"ᄂᄒ","ᇈ":"ᄂᅀ","ㅨ":"ᄂᅀ","ㄷ":"ᄃ","ᆮ":"ᄃ","ᄗ":"ᄃᄀ","ᇊ":"ᄃᄀ","ᄄ":"ᄃᄃ","ㄸ":"ᄃᄃ","ퟍ":"ᄃᄃ","ퟎ":"ᄃᄃᄇ","ᅞ":"ᄃᄅ","ᇋ":"ᄃᄅ","ꥠ":"ᄃᄆ","ꥡ":"ᄃᄇ","ퟏ":"ᄃᄇ","ꥢ":"ᄃᄉ","ퟐ":"ᄃᄉ","ퟑ":"ᄃᄉᄀ","ꥣ":"ᄃᄌ","ퟒ":"ᄃᄌ","ퟓ":"ᄃᄎ","ퟔ":"ᄃᄐ","ㄹ":"ᄅ","ᆯ":"ᄅ","ꥤ":"ᄅᄀ","ᆰ":"ᄅᄀ","ㄺ":"ᄅᄀ","ꥥ":"ᄅᄀᄀ","ퟕ":"ᄅᄀᄀ","ᇌ":"ᄅᄀᄉ","ㅩ":"ᄅᄀᄉ","ퟖ":"ᄅᄀᄒ","ᄘ":"ᄅᄂ","ᇍ":"ᄅᄂ","ꥦ":"ᄅᄃ","ᇎ":"ᄅᄃ","ㅪ":"ᄅᄃ","ꥧ":"ᄅᄃᄃ","ᇏ":"ᄅᄃᄒ","ᄙ":"ᄅᄅ","ᇐ":"ᄅᄅ","ퟗ":"ᄅᄅᄏ","ꥨ":"ᄅᄆ","ᆱ":"ᄅᄆ","ㄻ":"ᄅᄆ","ᇑ":"ᄅᄆᄀ","ᇒ":"ᄅᄆᄉ","ퟘ":"ᄅᄆᄒ","ꥩ":"ᄅᄇ","ᆲ":"ᄅᄇ","ㄼ":"ᄅᄇ","ퟙ":"ᄅᄇᄃ","ꥪ":"ᄅᄇᄇ","ᇓ":"ᄅᄇᄉ","ㅫ":"ᄅᄇᄉ","ꥫ":"ᄅᄇᄋ","ᇕ":"ᄅᄇᄋ","ퟚ":"ᄅᄇᄑ","ᇔ":"ᄅᄇᄒ","ꥬ":"ᄅᄉ","ᆳ":"ᄅᄉ","ㄽ":"ᄅᄉ","ᇖ":"ᄅᄉᄉ","ᄛ":"ᄅᄋ","ퟝ":"ᄅᄋ","ꥭ":"ᄅᄌ","ꥮ":"ᄅᄏ","ᇘ":"ᄅᄏ","ᆴ":"ᄅᄐ","ㄾ":"ᄅᄐ","ᆵ":"ᄅᄑ","ㄿ":"ᄅᄑ","ᄚ":"ᄅᄒ","ㅀ":"ᄅᄒ","ᄻ":"ᄅᄒ","ᆶ":"ᄅᄒ","ퟲ":"ᄅᄒ","ᇗ":"ᄅᅀ","ㅬ":"ᄅᅀ","ퟛ":"ᄅᅌ","ᇙ":"ᄅᅙ","ㅭ":"ᄅᅙ","ퟜ":"ᄅᅙᄒ","ㅁ":"ᄆ","ᆷ":"ᄆ","ꥯ":"ᄆᄀ","ᇚ":"ᄆᄀ","ퟞ":"ᄆᄂ","ퟟ":"ᄆᄂᄂ","ꥰ":"ᄆᄃ","ᇛ":"ᄆᄅ","ퟠ":"ᄆᄆ","ᄜ":"ᄆᄇ","ㅮ":"ᄆᄇ","ᇜ":"ᄆᄇ","ퟡ":"ᄆᄇᄉ","ꥱ":"ᄆᄉ","ᇝ":"ᄆᄉ","ㅯ":"ᄆᄉ","ᇞ":"ᄆᄉᄉ","ᄝ":"ᄆᄋ","ㅱ":"ᄆᄋ","ᇢ":"ᄆᄋ","ퟢ":"ᄆᄌ","ᇠ":"ᄆᄎ","ᇡ":"ᄆᄒ","ᇟ":"ᄆᅀ","ㅰ":"ᄆᅀ","ㅂ":"ᄇ","ᆸ":"ᄇ","ᄞ":"ᄇᄀ","ㅲ":"ᄇᄀ","ᄟ":"ᄇᄂ","ᄠ":"ᄇᄃ","ㅳ":"ᄇᄃ","ퟣ":"ᄇᄃ","ᇣ":"ᄇᄅ","ퟤ":"ᄇᄅᄑ","ퟥ":"ᄇᄆ","ᄈ":"ᄇᄇ","ㅃ":"ᄇᄇ","ퟦ":"ᄇᄇ","ᄬ":"ᄇᄇᄋ","ㅹ":"ᄇᄇᄋ","ᄡ":"ᄇᄉ","ㅄ":"ᄇᄉ","ᆹ":"ᄇᄉ","ᄢ":"ᄇᄉᄀ","ㅴ":"ᄇᄉᄀ","ᄣ":"ᄇᄉᄃ","ㅵ":"ᄇᄉᄃ","ퟧ":"ᄇᄉᄃ","ᄤ":"ᄇᄉᄇ","ᄥ":"ᄇᄉᄉ","ᄦ":"ᄇᄉᄌ","ꥲ":"ᄇᄉᄐ","ᄫ":"ᄇᄋ","ㅸ":"ᄇᄋ","ᇦ":"ᄇᄋ","ᄧ":"ᄇᄌ","ㅶ":"ᄇᄌ","ퟨ":"ᄇᄌ","ᄨ":"ᄇᄎ","ퟩ":"ᄇᄎ","ꥳ":"ᄇᄏ","ᄩ":"ᄇᄐ","ㅷ":"ᄇᄐ","ᄪ":"ᄇᄑ","ᇤ":"ᄇᄑ","ꥴ":"ᄇᄒ","ᇥ":"ᄇᄒ","ㅅ":"ᄉ","ᆺ":"ᄉ","ᄭ":"ᄉᄀ","ㅺ":"ᄉᄀ","ᇧ":"ᄉᄀ","ᄮ":"ᄉᄂ","ㅻ":"ᄉᄂ","ᄯ":"ᄉᄃ","ㅼ":"ᄉᄃ","ᇨ":"ᄉᄃ","ᄰ":"ᄉᄅ","ᇩ":"ᄉᄅ","ᄱ":"ᄉᄆ","ퟪ":"ᄉᄆ","ᄲ":"ᄉᄇ","ㅽ":"ᄉᄇ","ᇪ":"ᄉᄇ","ᄳ":"ᄉᄇᄀ","ퟫ":"ᄉᄇᄋ","ᄊ":"ᄉᄉ","ㅆ":"ᄉᄉ","ᆻ":"ᄉᄉ","ퟬ":"ᄉᄉᄀ","ퟭ":"ᄉᄉᄃ","ꥵ":"ᄉᄉᄇ","ᄴ":"ᄉᄉᄉ","ᄵ":"ᄉᄋ","ᄶ":"ᄉᄌ","ㅾ":"ᄉᄌ","ퟯ":"ᄉᄌ","ᄷ":"ᄉᄎ","ퟰ":"ᄉᄎ","ᄸ":"ᄉᄏ","ᄹ":"ᄉᄐ","ퟱ":"ᄉᄐ","ᄺ":"ᄉᄑ","ퟮ":"ᄉᅀ","ㅇ":"ᄋ","ᆼ":"ᄋ","ᅁ":"ᄋᄀ","ᇬ":"ᄋᄀ","ᇭ":"ᄋᄀᄀ","ᅂ":"ᄋᄃ","ꥶ":"ᄋᄅ","ᅃ":"ᄋᄆ","ᅄ":"ᄋᄇ","ᅅ":"ᄋᄉ","ᇱ":"ᄋᄉ","ㆂ":"ᄋᄉ","ᅇ":"ᄋᄋ","ㆀ":"ᄋᄋ","ᇮ":"ᄋᄋ","ᅈ":"ᄋᄌ","ᅉ":"ᄋᄎ","ᇯ":"ᄋᄏ","ᅊ":"ᄋᄐ","ᅋ":"ᄋᄑ","ꥷ":"ᄋᄒ","ᅆ":"ᄋᅀ","ᇲ":"ᄋᅀ","ㆃ":"ᄋᅀ","ㅈ":"ᄌ","ᆽ":"ᄌ","ퟷ":"ᄌᄇ","ퟸ":"ᄌᄇᄇ","ᅍ":"ᄌᄋ","ᄍ":"ᄌᄌ","ㅉ":"ᄌᄌ","ퟹ":"ᄌᄌ","ꥸ":"ᄌᄌᄒ","ㅊ":"ᄎ","ᆾ":"ᄎ","ᅒ":"ᄎᄏ","ᅓ":"ᄎᄒ","ㅋ":"ᄏ","ᆿ":"ᄏ","ㅌ":"ᄐ","ᇀ":"ᄐ","ꥹ":"ᄐᄐ","ㅍ":"ᄑ","ᇁ":"ᄑ","ᅖ":"ᄑᄇ","ᇳ":"ᄑᄇ","ퟺ":"ᄑᄉ","ᅗ":"ᄑᄋ","ㆄ":"ᄑᄋ","ᇴ":"ᄑᄋ","ퟻ":"ᄑᄐ","ꥺ":"ᄑᄒ","ㅎ":"ᄒ","ᇂ":"ᄒ","ᇵ":"ᄒᄂ","ᇶ":"ᄒᄅ","ᇷ":"ᄒᄆ","ᇸ":"ᄒᄇ","ꥻ":"ᄒᄉ","ᅘ":"ᄒᄒ","ㆅ":"ᄒᄒ","ᄽ":"ᄼᄼ","ᄿ":"ᄾᄾ","ㅿ":"ᅀ","ᇫ":"ᅀ","ퟳ":"ᅀᄇ","ퟴ":"ᅀᄇᄋ","ㆁ":"ᅌ","ᇰ":"ᅌ","ퟵ":"ᅌᄆ","ퟶ":"ᅌᄒ","ᅏ":"ᅎᅎ","ᅑ":"ᅐᅐ","ㆆ":"ᅙ","ᇹ":"ᅙ","ꥼ":"ᅙᅙ","ㅤ":"ᅠ","ㅏ":"ᅡ","ᆣ":"ᅡー","ᅶ":"ᅡᅩ","ᅷ":"ᅡᅮ","ᅢ":"ᅡ丨","ㅐ":"ᅡ丨","ㅑ":"ᅣ","ᅸ":"ᅣᅩ","ᅹ":"ᅣᅭ","ᆤ":"ᅣᅮ","ᅤ":"ᅣ丨","ㅒ":"ᅣ丨","ㅓ":"ᅥ","ᅼ":"ᅥー","ᅺ":"ᅥᅩ","ᅻ":"ᅥᅮ","ᅦ":"ᅥ丨","ㅔ":"ᅥ丨","ㅕ":"ᅧ","ᆥ":"ᅧᅣ","ᅽ":"ᅧᅩ","ᅾ":"ᅧᅮ","ᅨ":"ᅧ丨","ㅖ":"ᅧ丨","ㅗ":"ᅩ","ᅪ":"ᅩᅡ","ㅘ":"ᅩᅡ","ᅫ":"ᅩᅡ丨","ㅙ":"ᅩᅡ丨","ᆦ":"ᅩᅣ","ᆧ":"ᅩᅣ丨","ᅿ":"ᅩᅥ","ᆀ":"ᅩᅥ丨","ힰ":"ᅩᅧ","ᆁ":"ᅩᅧ丨","ᆂ":"ᅩᅩ","ힱ":"ᅩᅩ丨","ᆃ":"ᅩᅮ","ᅬ":"ᅩ丨","ㅚ":"ᅩ丨","ㅛ":"ᅭ","ힲ":"ᅭᅡ","ힳ":"ᅭᅡ丨","ᆄ":"ᅭᅣ","ㆇ":"ᅭᅣ","ᆆ":"ᅭᅣ","ᆅ":"ᅭᅣ丨","ㆈ":"ᅭᅣ丨","ힴ":"ᅭᅥ","ᆇ":"ᅭᅩ","ᆈ":"ᅭ丨","ㆉ":"ᅭ丨","ㅜ":"ᅮ","ᆉ":"ᅮᅡ","ᆊ":"ᅮᅡ丨","ᅯ":"ᅮᅥ","ㅝ":"ᅮᅥ","ᆋ":"ᅮᅥー","ᅰ":"ᅮᅥ丨","ㅞ":"ᅮᅥ丨","ힵ":"ᅮᅧ","ᆌ":"ᅮᅧ丨","ᆍ":"ᅮᅮ","ᅱ":"ᅮ丨","ㅟ":"ᅮ丨","ힶ":"ᅮ丨丨","ㅠ":"ᅲ","ᆎ":"ᅲᅡ","ힷ":"ᅲᅡ丨","ᆏ":"ᅲᅥ","ᆐ":"ᅲᅥ丨","ᆑ":"ᅲᅧ","ㆊ":"ᅲᅧ","ᆒ":"ᅲᅧ丨","ㆋ":"ᅲᅧ丨","ힸ":"ᅲᅩ","ᆓ":"ᅲᅮ","ᆔ":"ᅲ丨","ㆌ":"ᅲ丨","ㆍ":"ᆞ","ퟅ":"ᆞᅡ","ᆟ":"ᆞᅥ","ퟆ":"ᆞᅥ丨","ᆠ":"ᆞᅮ","ᆢ":"ᆞᆞ","ᆡ":"ᆞ丨","ㆎ":"ᆞ丨","ヘ":"へ","⍁":"〼","⧄":"〼","꒞":"ꁊ","꒬":"ꁐ","꒜":"ꃀ","꒨":"ꄲ","꒿":"ꉙ","꒾":"ꊱ","꒔":"ꋍ","꓀":"ꎫ","꓂":"ꎵ","꒺":"ꎿ","꒰":"ꏂ","꒧":"ꑘ","⊥":"ꓕ","⟂":"ꓕ","𝈜":"ꓕ","Ʇ":"ꓕ","Ꞟ":"ꓤ","⅁":"ꓨ","⅂":"ꓶ","𝈕":"ꓶ","𝈫":"ꓶ","𖼦":"ꓶ","𐐑":"ꓶ","⅃":"𖼀","𑫦":"𑫥𑫯","𑫨":"𑫥𑫥","𑫩":"𑫥𑫥𑫯","𑫪":"𑫥𑫥𑫰","𑫧":"𑫥𑫰","𑫴":"𑫳𑫯","𑫶":"𑫳𑫳","𑫷":"𑫳𑫳𑫯","𑫸":"𑫳𑫳𑫰","𑫵":"𑫳𑫰","𑫬":"𑫫𑫯","𑫭":"𑫫𑫫","𑫮":"𑫫𑫫𑫯","⊕":"𐊨","⨁":"𐊨","🜨":"𐊨","Ꚛ":"𐊨","▽":"𐊼","𝈔":"𐊼","🜄":"𐊼","⧖":"𐋀","ꞛ":"𐐺","Ꞛ":"𐐒","𐒠":"𐒆","𐏑":"𐎂","𐏓":"𐎓","𒀸":"𐎚","☥":"𐦞","𓋹":"𐦞","〹":"卄","不":"不","丽":"丽","並":"並","⎜":"丨","⎟":"丨","⎢":"丨","⎥":"丨","⎪":"丨","⎮":"丨","㇑":"丨","ᅵ":"丨","ㅣ":"丨","⼁":"丨","ᆜ":"丨ー","ᆘ":"丨ᅡ","ᆙ":"丨ᅣ","ힽ":"丨ᅣᅩ","ힾ":"丨ᅣ丨","ힿ":"丨ᅧ","ퟀ":"丨ᅧ丨","ᆚ":"丨ᅩ","ퟁ":"丨ᅩ丨","ퟂ":"丨ᅭ","ᆛ":"丨ᅮ","ퟃ":"丨ᅲ","ᆝ":"丨ᆞ","ퟄ":"丨丨","串":"串","丸":"丸","丹":"丹","乁":"乁","㇠":"乙","⼄":"乙","㇟":"乚","⺃":"乚","㇖":"乛","⺂":"乛","⻲":"亀","亂":"亂","㇚":"亅","⼅":"亅","了":"了","ニ":"二","⼆":"二","𠄢":"𠄢","⼇":"亠","亮":"亮","⼈":"人","イ":"亻","⺅":"亻","什":"什","仌":"仌","令":"令","你":"你","倂":"併","倂":"併","侀":"侀","來":"來","例":"例","侮":"侮","侮":"侮","侻":"侻","便":"便","值":"値","倫":"倫","偺":"偺","備":"備","像":"像","僚":"僚","僧":"僧","僧":"僧","㒞":"㒞","⼉":"儿","兀":"兀","⺎":"兀","充":"充","免":"免","免":"免","兔":"兔","兤":"兤","⼊":"入","內":"內","全":"全","兩":"兩","ハ":"八","⼋":"八","六":"六","具":"具","𠔜":"𠔜","𠔥":"𠔥","冀":"冀","㒹":"㒹","⼌":"冂","再":"再","𠕋":"𠕋","冒":"冒","冕":"冕","㒻":"㒻","最":"最","⼍":"冖","冗":"冗","冤":"冤","⼎":"冫","冬":"冬","况":"况","况":"况","冷":"冷","凉":"凉","凌":"凌","凜":"凜","凞":"凞","⼏":"几","𠘺":"𠘺","凵":"凵","⼐":"凵","⼑":"刀","⺉":"刂","刃":"刃","切":"切","切":"切","列":"列","利":"利","㓟":"㓟","刺":"刺","刻":"刻","剆":"剆","割":"割","剷":"剷","劉":"劉","𠠄":"𠠄","カ":"力","力":"力","⼒":"力","劣":"劣","㔕":"㔕","劳":"劳","勇":"勇","勇":"勇","勉":"勉","勉":"勉","勒":"勒","勞":"勞","勤":"勤","勤":"勤","勵":"勵","⼓":"勹","勺":"勺","勺":"勺","包":"包","匆":"匆","𠣞":"𠣞","⼔":"匕","北":"北","北":"北","⼕":"匚","⼖":"匸","匿":"匿","⼗":"十","〸":"十","〺":"卅","卉":"卉","࿖":"卍","࿕":"卐","卑":"卑","卑":"卑","博":"博","ト":"卜","⼘":"卜","⼙":"卩","⺋":"㔾","即":"即","卵":"卵","卽":"卽","卿":"卿","卿":"卿","卿":"卿","⼚":"厂","𠨬":"𠨬","⼛":"厶","參":"參","⼜":"又","及":"及","叟":"叟","𠭣":"𠭣","ロ":"口","⼝":"口","囗":"口","⼞":"口","句":"句","叫":"叫","叱":"叱","吆":"吆","吏":"吏","吝":"吝","吸":"吸","呂":"呂","呈":"呈","周":"周","咞":"咞","咢":"咢","咽":"咽","䎛":"㖈","哶":"哶","唐":"唐","啓":"啓","啟":"啓","啕":"啕","啣":"啣","善":"善","善":"善","喇":"喇","喙":"喙","喙":"喙","喝":"喝","喝":"喝","喫":"喫","喳":"喳","嗀":"嗀","嗂":"嗂","嗢":"嗢","嘆":"嘆","嘆":"嘆","噑":"噑","噴":"噴","器":"器","囹":"囹","圖":"圖","圗":"圗","⼟":"土","士":"土","⼠":"土","型":"型","城":"城","㦳":"㘽","埴":"埴","堍":"堍","報":"報","堲":"堲","塀":"塀","塚":"塚","塚":"塚","塞":"塞","填":"塡","壿":"墫","墬":"墬","墳":"墳","壘":"壘","壟":"壟","𡓤":"𡓤","壮":"壮","売":"売","壷":"壷","⼡":"夂","夆":"夆","⼢":"夊","タ":"夕","⼣":"夕","多":"多","夢":"夢","⼤":"大","奄":"奄","奈":"奈","契":"契","奔":"奔","奢":"奢","女":"女","⼥":"女","𡚨":"𡚨","𡛪":"𡛪","姘":"姘","姬":"姬","娛":"娛","娧":"娧","婢":"婢","婦":"婦","嬀":"媯","㛮":"㛮","㛼":"㛼","媵":"媵","嬈":"嬈","嬨":"嬨","嬾":"嬾","嬾":"嬾","⼦":"子","⼧":"宀","宅":"宅","𡧈":"𡧈","寃":"寃","寘":"寘","寧":"寧","寧":"寧","寧":"寧","寮":"寮","寳":"寳","𡬘":"𡬘","⼨":"寸","寿":"寿","将":"将","⼩":"小","尢":"尢","⺐":"尢","⼪":"尢","⺏":"尣","㞁":"㞁","⼫":"尸","尿":"尿","屠":"屠","屢":"屢","層":"層","履":"履","屮":"屮","屮":"屮","⼬":"屮","𡴋":"𡴋","⼭":"山","峀":"峀","岍":"岍","𡷤":"𡷤","𡷦":"𡷦","崙":"崙","嵃":"嵃","嵐":"嵐","嵫":"嵫","嵮":"嵮","嵼":"嵼","嶲":"嶲","嶺":"嶺","⼮":"巛","巢":"巢","エ":"工","⼯":"工","⼰":"己","⺒":"巳","㠯":"㠯","巽":"巽","⼱":"巾","帲":"帡","帨":"帨","帽":"帽","幩":"幩","㡢":"㡢","𢆃":"𢆃","⼲":"干","年":"年","𢆟":"𢆟","⺓":"幺","⼳":"幺","⼴":"广","度":"度","㡼":"㡼","庰":"庰","庳":"庳","庶":"庶","廊":"廊","廊":"廊","廉":"廉","廒":"廒","廓":"廓","廙":"廙","廬":"廬","⼵":"廴","廾":"廾","⼶":"廾","𢌱":"𢌱","𢌱":"𢌱","弄":"弄","⼷":"弋","⼸":"弓","弢":"弢","弢":"弢","⼹":"彐","⺔":"彑","当":"当","㣇":"㣇","⼺":"彡","形":"形","彩":"彩","彫":"彫","⼻":"彳","律":"律","㣣":"㣣","徚":"徚","復":"復","徭":"徭","⼼":"心","⺖":"忄","⺗":"㣺","忍":"忍","志":"志","念":"念","忹":"忹","怒":"怒","怜":"怜","恵":"恵","㤜":"㤜","㤺":"㤺","悁":"悁","悔":"悔","悔":"悔","惇":"惇","惘":"惘","惡":"惡","𢛔":"𢛔","愈":"愈","慨":"慨","慄":"慄","慈":"慈","慌":"慌","慌":"慌","慎":"慎","慎":"慎","慠":"慠","慺":"慺","憎":"憎","憎":"憎","憎":"憎","憐":"憐","憤":"憤","憯":"憯","憲":"憲","𢡄":"𢡄","𢡊":"𢡊","懞":"懞","懲":"懲","懲":"懲","懲":"懲","懶":"懶","懶":"懶","戀":"戀","⼽":"戈","成":"成","戛":"戛","戮":"戮","戴":"戴","⼾":"戶","戸":"戶","⼿":"手","⺘":"扌","扝":"扝","抱":"抱","拉":"拉","拏":"拏","拓":"拓","拔":"拔","拼":"拼","拾":"拾","𢬌":"𢬌","挽":"挽","捐":"捐","捨":"捨","捻":"捻","掃":"掃","掠":"掠","掩":"掩","揄":"揄","揤":"揤","摒":"摒","𢯱":"𢯱","搜":"搜","搢":"搢","揅":"揅","摩":"摩","摷":"摷","摾":"摾","㨮":"㨮","搉":"㩁","撚":"撚","撝":"撝","擄":"擄","㩬":"㩬","⽀":"支","⽁":"攴","⺙":"攵","敏":"敏","敏":"敏","敖":"敖","敬":"敬","數":"數","𣀊":"𣀊","⽂":"文","⻫":"斉","⽃":"斗","料":"料","⽄":"斤","⽅":"方","旅":"旅","⽆":"无","⺛":"旡","既":"既","旣":"旣","⽇":"日","易":"易","曶":"㫚","㫤":"㫤","晉":"晉","晩":"晚","晴":"晴","晴":"晴","暑":"暑","暑":"暑","暈":"暈","㬈":"㬈","暜":"暜","暴":"暴","曆":"曆","㬙":"㬙","𣊸":"𣊸","⽈":"曰","更":"更","書":"書","⽉":"月","𣍟":"𣍟","肦":"朌","胐":"朏","胊":"朐","脁":"朓","胶":"㬵","朗":"朗","朗":"朗","朗":"朗","脧":"朘","望":"望","望":"望","幐":"㬺","䐠":"㬻","𣎓":"𣎓","膧":"朣","𣎜":"𣎜","⽊":"木","李":"李","杓":"杓","杖":"杖","杞":"杞","𣏃":"𣏃","柿":"杮","杻":"杻","枅":"枅","林":"林","㭉":"㭉","𣏕":"𣏕","柳":"柳","柺":"柺","栗":"栗","栟":"栟","桒":"桒","𣑭":"𣑭","梁":"梁","梅":"梅","梅":"梅","梎":"梎","梨":"梨","椔":"椔","楂":"楂","㮝":"㮝","㮝":"㮝","槩":"㮣","樧":"榝","榣":"榣","槪":"槪","樂":"樂","樂":"樂","樂":"樂","樓":"樓","𣚣":"𣚣","檨":"檨","櫓":"櫓","櫛":"櫛","欄":"欄","㰘":"㰘","⽋":"欠","次":"次","𣢧":"𣢧","歔":"歔","㱎":"㱎","⽌":"止","⻭":"歯","歲":"歲","歷":"歷","歹":"歹","⽍":"歹","⺞":"歺","殟":"殟","殮":"殮","⽎":"殳","殺":"殺","殺":"殺","殺":"殺","殻":"殻","𣪍":"𣪍","⽏":"毋","⺟":"母","𣫺":"𣫺","⽐":"比","⽑":"毛","⽒":"氏","⺠":"民","⽓":"气","⽔":"水","⺡":"氵","⺢":"氺","汎":"汎","汧":"汧","沈":"沈","沿":"沿","泌":"泌","泍":"泍","泥":"泥","𣲼":"𣲼","洛":"洛","洞":"洞","洴":"洴","派":"派","流":"流","流":"流","流":"流","洖":"洖","浩":"浩","浪":"浪","海":"海","海":"海","浸":"浸","涅":"涅","𣴞":"𣴞","淋":"淋","淚":"淚","淪":"淪","淹":"淹","渚":"渚","港":"港","湮":"湮","潙":"溈","滋":"滋","滋":"滋","溜":"溜","溺":"溺","滇":"滇","滑":"滑","滛":"滛","㴳":"㴳","漏":"漏","漢":"漢","漢":"漢","漣":"漣","𣻑":"𣻑","潮":"潮","𣽞":"𣽞","𣾎":"𣾎","濆":"濆","濫":"濫","濾":"濾","瀛":"瀛","瀞":"瀞","瀞":"瀞","瀹":"瀹","灊":"灊","㶖":"㶖","⽕":"火","⺣":"灬","灰":"灰","灷":"灷","災":"災","炙":"炙","炭":"炭","烈":"烈","烙":"烙","煮":"煮","煮":"煮","𤉣":"𤉣","煅":"煅","煉":"煉","𤋮":"𤋮","熜":"熜","燎":"燎","燐":"燐","𤎫":"𤎫","爐":"爐","爛":"爛","爨":"爨","⽖":"爪","爫":"爫","⺤":"爫","爵":"爵","爵":"爵","⽗":"父","⽘":"爻","⺦":"丬","⽙":"爿","⽚":"片","牐":"牐","⽛":"牙","𤘈":"𤘈","⽜":"牛","牢":"牢","犀":"犀","犕":"犕","⽝":"犬","⺨":"犭","犯":"犯","狀":"狀","𤜵":"𤜵","狼":"狼","猪":"猪","猪":"猪","𤠔":"𤠔","獵":"獵","獺":"獺","⽞":"玄","率":"率","率":"率","⽟":"玉","王":"王","㺬":"㺬","玥":"玥","玲":"玲","㺸":"㺸","㺸":"㺸","珞":"珞","琉":"琉","理":"理","琢":"琢","瑇":"瑇","瑜":"瑜","瑩":"瑩","瑱":"瑱","瑱":"瑱","璅":"璅","璉":"璉","璘":"璘","瓊":"瓊","⽠":"瓜","⽡":"瓦","㼛":"㼛","甆":"甆","⽢":"甘","⽣":"生","甤":"甤","⽤":"用","⽥":"田","画":"画","甾":"甾","𤰶":"𤰶","留":"留","略":"略","異":"異","異":"異","𤲒":"𤲒","⽦":"疋","⽧":"疒","痢":"痢","瘐":"瘐","瘟":"瘟","瘝":"瘝","療":"療","癩":"癩","⽨":"癶","⽩":"白","𤾡":"𤾡","𤾸":"𤾸","⽪":"皮","⽫":"皿","𥁄":"𥁄","㿼":"㿼","益":"益","益":"益","盛":"盛","盧":"盧","䀈":"䀈","⽬":"目","直":"直","直":"直","𥃲":"𥃲","𥃳":"𥃳","省":"省","䀘":"䀘","𥄙":"𥄙","眞":"眞","真":"真","真":"真","𥄳":"𥄳","着":"着","睊":"睊","睊":"睊","鿃":"䀹","䀹":"䀹","䀹":"䀹","晣":"䀿","䁆":"䁆","瞋":"瞋","𥉉":"𥉉","瞧":"瞧","⽭":"矛","⽮":"矢","⽯":"石","䂖":"䂖","𥐝":"𥐝","硏":"研","硎":"硎","硫":"硫","碌":"碌","碌":"碌","碑":"碑","磊":"磊","磌":"磌","磌":"磌","磻":"磻","䃣":"䃣","礪":"礪","⽰":"示","⺭":"礻","礼":"礼","社":"社","祈":"祈","祉":"祉","𥘦":"𥘦","祐":"祐","祖":"祖","祖":"祖","祝":"祝","神":"神","祥":"祥","視":"視","視":"視","祿":"祿","𥚚":"𥚚","禍":"禍","禎":"禎","福":"福","福":"福","𥛅":"𥛅","禮":"禮","⽱":"禸","⽲":"禾","秊":"秊","䄯":"䄯","秫":"秫","稜":"稜","穊":"穊","穀":"穀","穀":"穀","穏":"穏","⽳":"穴","突":"突","𥥼":"𥥼","窱":"窱","立":"立","⽴":"立","⻯":"竜","𥪧":"𥪧","𥪧":"𥪧","竮":"竮","⽵":"竹","笠":"笠","節":"節","節":"節","䈂":"䈂","𥮫":"𥮫","篆":"篆","䈧":"䈧","築":"築","𥲀":"𥲀","𥳐":"𥳐","簾":"簾","籠":"籠","⽶":"米","类":"类","粒":"粒","精":"精","糒":"糒","糖":"糖","糨":"糨","䊠":"䊠","糣":"糣","糧":"糧","⽷":"糸","⺯":"糹","𥾆":"𥾆","紀":"紀","紐":"紐","索":"索","累":"累","絶":"絕","絣":"絣","絛":"絛","綠":"綠","綾":"綾","緇":"緇","練":"練","練":"練","練":"練","縂":"縂","䌁":"䌁","縉":"縉","縷":"縷","繁":"繁","繅":"繅","𦇚":"𦇚","䌴":"䌴","⽸":"缶","𦈨":"𦈨","缾":"缾","𦉇":"𦉇","⽹":"网","⺫":"罒","⺲":"罒","⺱":"罓","䍙":"䍙","署":"署","𦋙":"𦋙","罹":"罹","罺":"罺","羅":"羅","𦌾":"𦌾","⽺":"羊","羕":"羕","羚":"羚","羽":"羽","⽻":"羽","翺":"翺","老":"老","⽼":"老","⺹":"耂","者":"者","者":"者","者":"者","⽽":"而","𦓚":"𦓚","⽾":"耒","𦔣":"𦔣","⽿":"耳","聆":"聆","聠":"聠","𦖨":"𦖨","聯":"聯","聰":"聰","聾":"聾","⾀":"聿","⺺":"肀","⾁":"肉","肋":"肋","肭":"肭","育":"育","䏕":"䏕","䏙":"䏙","腁":"胼","脃":"脃","脾":"脾","䐋":"䐋","朡":"朡","𦞧":"𦞧","𦞵":"𦞵","朦":"䑃","臘":"臘","⾂":"臣","臨":"臨","⾃":"自","臭":"臭","⾄":"至","⾅":"臼","舁":"舁","舁":"舁","舄":"舄","⾆":"舌","舘":"舘","⾇":"舛","⾈":"舟","䑫":"䑫","⾉":"艮","良":"良","⾊":"色","⾋":"艸","艹":"艹","艹":"艹","⺾":"艹","⺿":"艹","⻀":"艹","芋":"芋","芑":"芑","芝":"芝","花":"花","芳":"芳","芽":"芽","若":"若","若":"若","苦":"苦","𦬼":"𦬼","茶":"茶","荒":"荒","荣":"荣","茝":"茝","茣":"茣","莽":"莽","荓":"荓","菉":"菉","菊":"菊","菌":"菌","菜":"菜","菧":"菧","華":"華","菱":"菱","著":"著","著":"著","𦰶":"𦰶","莭":"莭","落":"落","葉":"葉","蔿":"蒍","𦳕":"𦳕","𦵫":"𦵫","蓮":"蓮","蓱":"蓱","蓳":"蓳","蓼":"蓼","蔖":"蔖","䔫":"䔫","蕤":"蕤","𦼬":"𦼬","藍":"藍","䕝":"䕝","𦾱":"𦾱","䕡":"䕡","藺":"藺","蘆":"蘆","䕫":"䕫","蘒":"蘒","蘭":"蘭","𧃒":"𧃒","虁":"蘷","蘿":"蘿","⾌":"虍","⻁":"虎","虐":"虐","虜":"虜","虜":"虜","虧":"虧","虩":"虩","⾍":"虫","蚩":"蚩","蚈":"蚈","蛢":"蛢","蜎":"蜎","蜨":"蜨","蝫":"蝫","蟡":"蟡","蝹":"蝹","蝹":"蝹","螆":"螆","䗗":"䗗","𧏊":"𧏊","螺":"螺","蠁":"蠁","䗹":"䗹","蠟":"蠟","⾎":"血","行":"行","⾏":"行","衠":"衠","衣":"衣","⾐":"衣","⻂":"衤","裂":"裂","𧙧":"𧙧","裏":"裏","裗":"裗","裞":"裞","裡":"裡","裸":"裸","裺":"裺","䘵":"䘵","褐":"褐","襁":"襁","襤":"襤","⾑":"襾","⻄":"西","⻃":"覀","覆":"覆","見":"見","⾒":"見","𧢮":"𧢮","⻅":"见","⾓":"角","⾔":"言","𧥦":"𧥦","詽":"訮","訞":"䚶","䚾":"䚾","䛇":"䛇","誠":"誠","說":"說","說":"說","調":"調","請":"請","諒":"諒","論":"論","諭":"諭","諭":"諭","諸":"諸","諸":"諸","諾":"諾","諾":"諾","謁":"謁","謁":"謁","謹":"謹","謹":"謹","識":"識","讀":"讀","讏":"讆","變":"變","變":"變","⻈":"讠","⾕":"谷","⾖":"豆","豈":"豈","豕":"豕","⾗":"豕","豣":"豜","⾘":"豸","𧲨":"𧲨","⾙":"貝","貫":"貫","賁":"賁","賂":"賂","賈":"賈","賓":"賓","贈":"贈","贈":"贈","贛":"贛","⻉":"贝","⾚":"赤","⾛":"走","起":"起","趆":"赿","𧻓":"𧻓","𧼯":"𧼯","⾜":"足","跋":"跋","趼":"趼","跺":"跥","路":"路","跰":"跰","躛":"躗","⾝":"身","車":"車","⾞":"車","軔":"軔","輧":"軿","輦":"輦","輪":"輪","輸":"輸","輸":"輸","輻":"輻","轢":"轢","⻋":"车","⾟":"辛","辞":"辞","辰":"辰","⾠":"辰","⾡":"辵","辶":"辶","⻌":"辶","⻍":"辶","巡":"巡","連":"連","逸":"逸","逸":"逸","遲":"遲","遼":"遼","𨗒":"𨗒","𨗭":"𨗭","邏":"邏","⾢":"邑","邔":"邔","郎":"郎","郞":"郎","郞":"郎","郱":"郱","都":"都","𨜮":"𨜮","鄑":"鄑","鄛":"鄛","⾣":"酉","酪":"酪","醙":"醙","醴":"醴","⾤":"釆","里":"里","⾥":"里","量":"量","金":"金","⾦":"金","鈴":"鈴","鈸":"鈸","鉶":"鉶","鋗":"鋗","鋘":"鋘","鉼":"鉼","錄":"錄","鍊":"鍊","鎮":"鎭","鏹":"鏹","鐕":"鐕","𨯺":"𨯺","⻐":"钅","⻑":"長","⾧":"長","⻒":"镸","⻓":"长","⾨":"門","開":"開","䦕":"䦕","閭":"閭","閷":"閷","𨵷":"𨵷","⻔":"门","⾩":"阜","⻏":"阝","⻖":"阝","阮":"阮","陋":"陋","降":"降","陵":"陵","陸":"陸","陼":"陼","隆":"隆","隣":"隣","䧦":"䧦","⾪":"隶","隷":"隷","隸":"隷","隸":"隷","⾫":"隹","雃":"雃","離":"離","難":"難","難":"難","⾬":"雨","零":"零","雷":"雷","霣":"霣","𩅅":"𩅅","露":"露","靈":"靈","⾭":"靑","⻘":"青","靖":"靖","靖":"靖","𩇟":"𩇟","⾮":"非","⾯":"面","𩈚":"𩈚","⾰":"革","䩮":"䩮","䩶":"䩶","⾱":"韋","韛":"韛","韠":"韠","⻙":"韦","⾲":"韭","𩐊":"𩐊","⾳":"音","響":"響","響":"響","⾴":"頁","䪲":"䪲","頋":"頋","頋":"頋","頋":"頋","領":"領","頩":"頩","𩒖":"𩒖","頻":"頻","頻":"頻","類":"類","⻚":"页","⾵":"風","𩖶":"𩖶","⻛":"风","⾶":"飛","⻜":"飞","⻝":"食","⾷":"食","⻟":"飠","飢":"飢","飯":"飯","飼":"飼","䬳":"䬳","館":"館","餩":"餩","⻠":"饣","⾸":"首","⾹":"香","馧":"馧","⾺":"馬","駂":"駂","駱":"駱","駾":"駾","驪":"驪","⻢":"马","⾻":"骨","䯎":"䯎","⾼":"高","⾽":"髟","𩬰":"𩬰","鬒":"鬒","鬒":"鬒","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⻤":"鬼","⿂":"魚","魯":"魯","鱀":"鱀","鱗":"鱗","⻥":"鱼","⿃":"鳥","鳽":"鳽","䳎":"䳎","鵧":"鵧","䳭":"䳭","𪃎":"𪃎","鶴":"鶴","𪄅":"𪄅","䳸":"䳸","鷺":"鷺","𪈎":"𪈎","鸞":"鸞","鹃":"鹂","⿄":"鹵","鹿":"鹿","⿅":"鹿","𪊑":"𪊑","麗":"麗","麟":"麟","⿆":"麥","⻨":"麦","麻":"麻","⿇":"麻","𪎒":"𪎒","⿈":"黃","⻩":"黄","⿉":"黍","黎":"黎","䵖":"䵖","⿊":"黑","黒":"黑","墨":"墨","黹":"黹","⿋":"黹","⿌":"黽","鼅":"鼅","黾":"黾","⿍":"鼎","鼏":"鼏","⿎":"鼓","鼖":"鼖","⿏":"鼠","鼻":"鼻","⿐":"鼻","齃":"齃","⿑":"齊","⻬":"齐","⿒":"齒","𪘀":"𪘀","⻮":"齿","龍":"龍","⿓":"龍","龎":"龎","⻰":"龙","龜":"龜","龜":"龜","龜":"龜","⿔":"龜","⻳":"龟","⿕":"龠"}},{}],55:[function(e,t,r){"use strict";var n=e("./data.json");var i=RegExp(Object.keys(n).map((function(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")})).join("|"),"g");function o(e){return n[e]}t.exports=function(e){return e.replace(i,o)}},{"./data.json":54}],56:[function(e,t,r){"use strict";var n=e("punycode"),i=e("./util");function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}r.parse=b,r.resolve=function(e,t){return b(e,!1,!0).resolve(t)},r.resolveObject=function(e,t){return e?b(e,!1,!0).resolveObject(t):t},r.format=function(e){i.isString(e)&&(e=b(e));return e instanceof o?e.format():o.prototype.format.call(e)},r.Url=o;var s=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),d=["%","/","?",";","#"].concat(l),h=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=e("querystring");function b(e,t,r){if(e&&i.isObject(e)&&e instanceof o)return e;var n=new o;return n.parse(e,t,r),n}o.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),a=-1!==o&&o127?x+="x":x+=P[M];if(!x.match(f)){var K=D.slice(0,R),B=D.slice(R+1),N=P.match(g);N&&(K.push(N[1]),B.unshift(N[2])),B.length&&(b="/"+B.join(".")+b),this.hostname=K.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=n.toASCII(this.hostname));var L=this.port?":"+this.port:"",q=this.hostname||"";this.host=q+L,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!p[E])for(R=0,A=l.length;R0)&&r.host.split("@"))&&(r.auth=O.shift(),r.host=r.hostname=O.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!k.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var I=k.slice(-1)[0],T=(r.host||e.host||k.length>1)&&("."===I||".."===I)||""===I,R=0,C=k.length;C>=0;C--)"."===(I=k[C])?k.splice(C,1):".."===I?(k.splice(C,1),R++):R&&(k.splice(C,1),R--);if(!_&&!E)for(;R--;R)k.unshift("..");!_||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),T&&"/"!==k.join("/").substr(-1)&&k.push("");var O,D=""===k[0]||k[0]&&"/"===k[0].charAt(0);w&&(r.hostname=r.host=D?"":k.length?k.shift():"",(O=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=O.shift(),r.host=r.hostname=O.shift()));return(_=_||r.host&&k.length)&&!D&&k.unshift(""),k.length?r.pathname=k.join("/"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{"./util":57,punycode:32,querystring:48}],57:[function(e,t,r){"use strict";t.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],58:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.UNSTABLE_MSC3089_BRANCH=r.UNSTABLE_MSC3089_LEAF=r.UNSTABLE_MSC3089_TREE_SUBTYPE=r.UNSTABLE_MSC3088_ENABLED=r.UNSTABLE_MSC3088_PURPOSE=r.RoomType=r.RoomCreateTypeField=r.MsgType=r.RelationType=r.EventType=void 0;const n=e("../NamespacedValue");!function(e){e.RoomCanonicalAlias="m.room.canonical_alias",e.RoomCreate="m.room.create",e.RoomJoinRules="m.room.join_rules",e.RoomMember="m.room.member",e.RoomThirdPartyInvite="m.room.third_party_invite",e.RoomPowerLevels="m.room.power_levels",e.RoomName="m.room.name",e.RoomTopic="m.room.topic",e.RoomAvatar="m.room.avatar",e.RoomPinnedEvents="m.room.pinned_events",e.RoomEncryption="m.room.encryption",e.RoomHistoryVisibility="m.room.history_visibility",e.RoomGuestAccess="m.room.guest_access",e.RoomServerAcl="m.room.server_acl",e.RoomTombstone="m.room.tombstone",e.RoomAliases="m.room.aliases",e.SpaceChild="m.space.child",e.SpaceParent="m.space.parent",e.RoomRedaction="m.room.redaction",e.RoomMessage="m.room.message",e.RoomMessageEncrypted="m.room.encrypted",e.Sticker="m.sticker",e.CallInvite="m.call.invite",e.CallCandidates="m.call.candidates",e.CallAnswer="m.call.answer",e.CallHangup="m.call.hangup",e.CallReject="m.call.reject",e.CallSelectAnswer="m.call.select_answer",e.CallNegotiate="m.call.negotiate",e.CallReplaces="m.call.replaces",e.CallAssertedIdentity="m.call.asserted_identity",e.CallAssertedIdentityPrefix="org.matrix.call.asserted_identity",e.KeyVerificationRequest="m.key.verification.request",e.KeyVerificationStart="m.key.verification.start",e.KeyVerificationCancel="m.key.verification.cancel",e.KeyVerificationMac="m.key.verification.mac",e.KeyVerificationDone="m.key.verification.done",e.RoomMessageFeedback="m.room.message.feedback",e.Reaction="m.reaction",e.Typing="m.typing",e.Receipt="m.receipt",e.Presence="m.presence",e.FullyRead="m.fully_read",e.Tag="m.tag",e.SpaceOrder="org.matrix.msc3230.space_order",e.PushRules="m.push_rules",e.Direct="m.direct",e.IgnoredUserList="m.ignored_user_list",e.RoomKey="m.room_key",e.RoomKeyRequest="m.room_key_request",e.ForwardedRoomKey="m.forwarded_room_key",e.Dummy="m.dummy"}(r.EventType||(r.EventType={})),function(e){e.Annotation="m.annotation",e.Replace="m.replace"}(r.RelationType||(r.RelationType={})),function(e){e.Text="m.text",e.Emote="m.emote",e.Notice="m.notice",e.Image="m.image",e.File="m.file",e.Audio="m.audio",e.Location="m.location",e.Video="m.video"}(r.MsgType||(r.MsgType={})),r.RoomCreateTypeField="type",function(e){e.Space="m.space"}(r.RoomType||(r.RoomType={})),r.UNSTABLE_MSC3088_PURPOSE=new n.UnstableValue("m.room.purpose","org.matrix.msc3088.purpose"),r.UNSTABLE_MSC3088_ENABLED=new n.UnstableValue("m.enabled","org.matrix.msc3088.enabled"),r.UNSTABLE_MSC3089_TREE_SUBTYPE=new n.UnstableValue("m.data_tree","org.matrix.msc3089.data_tree"),r.UNSTABLE_MSC3089_LEAF=new n.UnstableValue("m.leaf","org.matrix.msc3089.leaf"),r.UNSTABLE_MSC3089_BRANCH=new n.UnstableValue("m.branch","org.matrix.msc3089.branch")},{"../NamespacedValue":60}],59:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Preset=r.Visibility=void 0,function(e){e.Public="public",e.Private="private"}(r.Visibility||(r.Visibility={})),function(e){e.PrivateChat="private_chat",e.TrustedPrivateChat="trusted_private_chat",e.PublicChat="public_chat"}(r.Preset||(r.Preset={}))},{}],60:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.UnstableValue=r.NamespacedValue=void 0;class n{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}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}}r.NamespacedValue=n;r.UnstableValue=class extends n{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}}},{}],61:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ReEmitter=void 0;r.ReEmitter=class{constructor(e){this.target=e}reEmit(e,t){for(const r of t){const t=(...t)=>{"error"===r&&0===this.target.listenerCount("error")||this.target.emit(r,...t,e)};e.on(r,t)}}}},{}],62:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.AutoDiscovery=void 0;var i=n(e("@babel/runtime/regenerator")),o=n(e("@babel/runtime/helpers/asyncToGenerator")),s=n(e("@babel/runtime/helpers/createClass")),a=n(e("@babel/runtime/helpers/classCallCheck")),c=e("./logger"),u=e("url"),l=function(){function t(){(0,a.default)(this,t)}var r,n,l,d;return(0,s.default)(t,null,[{key:"fromDiscoveryConfig",value:(d=(0,o.default)(i.default.mark((function e(r){var n,o,s,a,u,l;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n={"m.homeserver":{state:t.FAIL_ERROR,error:t.ERROR_INVALID,base_url:null},"m.identity_server":{state:t.PROMPT,error:null,base_url:null}},r&&r["m.homeserver"]){e.next=6;break}return c.logger.error("No m.homeserver key in config"),n["m.homeserver"].state=t.FAIL_PROMPT,n["m.homeserver"].error=t.ERROR_INVALID,e.abrupt("return",Promise.resolve(n));case 6:if(r["m.homeserver"].base_url){e.next=11;break}return c.logger.error("No m.homeserver base_url in config"),n["m.homeserver"].state=t.FAIL_PROMPT,n["m.homeserver"].error=t.ERROR_INVALID_HS_BASE_URL,e.abrupt("return",Promise.resolve(n));case 11:if(o=this._sanitizeWellKnownUrl(r["m.homeserver"].base_url)){e.next=16;break}return c.logger.error("Invalid base_url for m.homeserver"),n["m.homeserver"].error=t.ERROR_INVALID_HS_BASE_URL,e.abrupt("return",Promise.resolve(n));case 16:return e.next=18,this._fetchWellKnownObject("".concat(o,"/_matrix/client/versions"));case 18:if((s=e.sent)&&s.raw.versions){e.next=24;break}return c.logger.error("Invalid /versions response"),n["m.homeserver"].error=t.ERROR_INVALID_HOMESERVER,n["m.homeserver"].base_url=o,e.abrupt("return",Promise.resolve(n));case 24:if(n["m.homeserver"]={state:t.SUCCESS,error:null,base_url:o},a="",!r["m.identity_server"]){e.next=41;break}if(u={"m.homeserver":n["m.homeserver"],"m.identity_server":{state:t.FAIL_PROMPT,error:t.ERROR_INVALID_IS,base_url:null}},a=this._sanitizeWellKnownUrl(r["m.identity_server"].base_url)){e.next=33;break}return c.logger.error("Invalid base_url for m.identity_server"),u["m.identity_server"].error=t.ERROR_INVALID_IS_BASE_URL,e.abrupt("return",Promise.resolve(u));case 33:return e.next=35,this._fetchWellKnownObject("".concat(a,"/_matrix/identity/api/v1"));case 35:if((l=e.sent)&&l.raw&&"SUCCESS"===l.action){e.next=41;break}return c.logger.error("Invalid /api/v1 response"),u["m.identity_server"].error=t.ERROR_INVALID_IDENTITY_SERVER,u["m.identity_server"].base_url=a,e.abrupt("return",Promise.resolve(u));case 41:return a&&a.length>0&&(n["m.identity_server"]={state:t.SUCCESS,error:null,base_url:a}),Object.keys(r).map((function(e){if("m.homeserver"===e||"m.identity_server"===e)for(var t=["error","state","base_url"],i=0,o=Object.keys(r[e]);i=300)){var o="FAIL_PROMPT",s=(e?e.message:null)||"General failure";return n&&404===n.statusCode&&(o="IGNORE",s=t.ERROR_MISSING_WELLKNOWN),void r({raw:{},action:o,reason:s,error:e})}try{r({raw:JSON.parse(i),action:"SUCCESS"})}catch(e){var a=t.ERROR_INVALID;"SyntaxError"===e.name&&(a=t.ERROR_INVALID_JSON),r({raw:{},action:"FAIL_PROMPT",reason:a,error:e})}}))})));case 1:case"end":return r.stop()}}),r)}))),function(e){return r.apply(this,arguments)})},{key:"ERROR_INVALID",get:function(){return"Invalid homeserver discovery response"}},{key:"ERROR_GENERIC_FAILURE",get:function(){return"Failed to get autodiscovery configuration from server"}},{key:"ERROR_INVALID_HS_BASE_URL",get:function(){return"Invalid base_url for m.homeserver"}},{key:"ERROR_INVALID_HOMESERVER",get:function(){return"Homeserver URL does not appear to be a valid Matrix homeserver"}},{key:"ERROR_INVALID_IS_BASE_URL",get:function(){return"Invalid base_url for m.identity_server"}},{key:"ERROR_INVALID_IDENTITY_SERVER",get:function(){return"Identity server URL does not appear to be a valid identity server"}},{key:"ERROR_INVALID_IS",get:function(){return"Invalid identity server discovery response"}},{key:"ERROR_MISSING_WELLKNOWN",get:function(){return"No .well-known JSON file found"}},{key:"ERROR_INVALID_JSON",get:function(){return"Invalid JSON"}},{key:"ALL_ERRORS",get:function(){return[t.ERROR_INVALID,t.ERROR_GENERIC_FAILURE,t.ERROR_INVALID_HS_BASE_URL,t.ERROR_INVALID_HOMESERVER,t.ERROR_INVALID_IS_BASE_URL,t.ERROR_INVALID_IDENTITY_SERVER,t.ERROR_INVALID_IS,t.ERROR_MISSING_WELLKNOWN,t.ERROR_INVALID_JSON]}},{key:"FAIL_ERROR",get:function(){return"FAIL_ERROR"}},{key:"FAIL_PROMPT",get:function(){return"FAIL_PROMPT"}},{key:"PROMPT",get:function(){return"PROMPT"}},{key:"SUCCESS",get:function(){return"SUCCESS"}}]),t}();r.AutoDiscovery=l},{"./logger":106,"./matrix":107,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":27,url:56}],63:[function(e,t,r){(function(t){(function(){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault"),i=e("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(r,"__esModule",{value:!0});var o={};r.default=void 0;var s=i(e("./matrix"));Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in r&&r[e]===s[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return s[e]}}))}));var a,c=n(e("browser-request")),u=n(e("qs"));s.request((function(e,t){return e.qs=u.default.stringify(e.qs||{},e.qsStringifyOptions),(0,c.default)(e,t)}));try{a=t.indexedDB}catch(e){}a&&s.setCryptoStoreFactory((function(){return new s.IndexedDBCryptoStore(a,"matrix-js-sdk:crypto")}));var l=s;r.default=l,t.matrixcs=s}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./matrix":107,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"browser-request":31,qs:42}],64:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.MatrixClient=r.RoomVersionStability=r.PendingEventOrdering=r.CRYPTO_ENABLED=void 0;const c=e("events"),u=e("./sync"),l=e("./models/event"),d=e("./store/stub"),h=e("./webrtc/call"),f=e("./filter"),g=e("./webrtc/callEventHandler"),p=o(e("./utils")),v=e("./utils"),y=e("./models/event-timeline"),m=e("./pushprocessor"),b=e("./autodiscovery"),S=o(e("./crypto/olmlib")),_=e("./crypto/olmlib"),E=e("./ReEmitter"),k=e("./crypto/RoomList"),w=e("./logger"),I=e("./service-types"),T=e("./http-api"),R=e("./crypto"),C=e("./crypto/recoverykey"),O=e("./crypto/key_passphrase"),D=e("./models/user"),A=e("./content-repo"),P=e("./models/search-result"),x=e("./crypto/dehydration"),M=e("./matrix"),U=e("./sync.api"),K=o(e("./content-helpers")),B=e("./crypto/api"),N=e("./@types/event"),L=e("./@types/partials"),q=e("./event-mapper"),j=a(e("url")),F=e("./randomstring"),G=e("./crypto/backup"),$=e("./models/MSC3089TreeSpace");r.CRYPTO_ENABLED=R.isCryptoAvailable();const V=6e5;var H;!function(e){e.Chronological="chronological",e.Detached="detached"}(r.PendingEventOrdering||(r.PendingEventOrdering={})),function(e){e.Stable="stable",e.Unstable="unstable"}(r.RoomVersionStability||(r.RoomVersionStability={})),function(e){e.MasterKey="master_key",e.SelfSigningKey="self_signing_key",e.UserSigningKey="user_signing_key"}(H||(H={}));class W extends c.EventEmitter{constructor(e){super(),this.reEmitter=new E.ReEmitter(this),this.olmVersion=null,this.usingExternalCrypto=!1,this.clientRunning=!1,this.timelineSupport=!1,this.urlPreviewCache={},this.unstableClientRelationAggregation=!1,this.supportsCallTransfer=!1,this.forceTURN=!1,this.iceCandidatePoolSize=0,this.canSupportVoip=!1,this.peekSync=null,this.isGuestAccount=!1,this.ongoingScrollbacks={},this.notifTimelineSet=null,this.fallbackICEServerAllowed=!1,this.syncedLeftRooms=!1,this.pushProcessor=new m.PushProcessor(this),this.turnServers=[],this.turnServersExpiry=0,this.txnCtr=0,this.startCallEventHandler=()=>{this.isInitialSyncComplete()&&(this.callEventHandler.start(),this.off("sync",this.startCallEventHandler))},e.baseUrl=p.ensureNoTrailingSlash(e.baseUrl),e.idBaseUrl=p.ensureNoTrailingSlash(e.idBaseUrl),this.baseUrl=e.baseUrl,this.idBaseUrl=e.idBaseUrl,this.usingExternalCrypto=e.usingExternalCrypto,this.store=e.store||new d.StubStore,this.deviceId=e.deviceId||null;const t=e.userId||null;this.credentials={userId:t},this.http=new T.MatrixHttpApi(this,{baseUrl:e.baseUrl,idBaseUrl:e.idBaseUrl,accessToken:e.accessToken,request:e.request,prefix:T.PREFIX_R0,onlyData:!0,extraParams:e.queryParams,localTimeoutMs:e.localTimeoutMs,useAuthorizationHeader:e.useAuthorizationHeader}),e.deviceToImport?this.deviceId?w.logger.warn("not importing device because device ID is provided to constructor independently of exported data"):this.credentials.userId?w.logger.warn("not importing device because user ID is provided to constructor independently of exported data"):e.deviceToImport.deviceId?(this.deviceId=e.deviceToImport.deviceId,this.credentials.userId=e.deviceToImport.userId,this.exportedOlmDeviceToImport=e.deviceToImport.olmDevice):w.logger.warn("not importing device because no device ID in exported data"):e.pickleKey&&(this.pickleKey=e.pickleKey),this.scheduler=e.scheduler,this.scheduler&&this.scheduler.setProcessFunction((e=>s(this,void 0,void 0,(function*(){const t=this.getRoom(e.getRoomId());e.status!==l.EventStatus.SENDING&&this.updatePendingEventStatus(t,e,l.EventStatus.SENDING);const r=yield this.sendEventHttpRequest(e);return t&&t.updatePendingEvent(e,l.EventStatus.SENT,r.event_id),r}))));h.createNewMatrixCall(this,void 0,void 0)&&(this.callEventHandler=new g.CallEventHandler(this),this.canSupportVoip=!0,this.on("sync",this.startCallEventHandler)),this.timelineSupport=Boolean(e.timelineSupport),this.unstableClientRelationAggregation=!!e.unstableClientRelationAggregation,this.cryptoStore=e.cryptoStore,this.sessionStore=e.sessionStore,this.verificationMethods=e.verificationMethods,this.cryptoCallbacks=e.cryptoCallbacks||{},this.forceTURN=e.forceTURN||!1,this.iceCandidatePoolSize=void 0===e.iceCandidatePoolSize?0:e.iceCandidatePoolSize,this.supportsCallTransfer=e.supportsCallTransfer||!1,this.fallbackICEServerAllowed=e.fallbackICEServerAllowed||!1,this.roomList=new k.RoomList(this.cryptoStore),this.on("Event.decrypted",(e=>{const t=e.getPushActions(),r=this.pushProcessor.actionsForEvent(e);e.setPushActions(r);const n=this.getRoom(e.getRoomId());if(!n)return;const i=n.getUnreadNotificationCount(M.NotificationCountType.Highlight),o=!(!t||!t.tweaks)&&!!t.tweaks.highlight,s=!(!r||!r.tweaks)&&!!r.tweaks.highlight;if((o!==s||i>0)&&!n.hasUserReadEvent(this.getUserId(),e.getId())){let e=i;s&&!o&&e++,!s&&o&&e--,n.setUnreadNotificationCount(M.NotificationCountType.Highlight,e);n.getUnreadNotificationCount(M.NotificationCountType.Total){if(t&&this.isRoomEncrypted(t.roomId)){const r=e.getContent();if(!(Object.keys(r).filter((e=>Object.keys(r[e]["m.read"]).includes(this.getUserId()))).length>0))return;const n=20,i=t.getLiveTimeline().getEvents();let o=0;for(let e=i.length-1;e>=0;e--){if(e===i.length-n)return;const r=i[e];if(t.hasUserReadEvent(this.getUserId(),r.getId()))break;const s=this.getPushActionsForEvent(r);o+=s.tweaks&&s.tweaks.highlight?1:0}t.setUnreadNotificationCount("highlight",o)}}))}startClient(e){return s(this,void 0,void 0,(function*(){if(this.clientRunning)return;this.clientRunning=!0,"number"==typeof e&&(e={initialSyncLimit:e});const t=this.getUserId();t&&this.store.storeUser(new D.User(t)),this.crypto&&(this.crypto.uploadDeviceKeys(),this.crypto.start()),this.canSupportVoip&&(this.checkTurnServersIntervalID=setInterval((()=>{this.checkTurnServers()}),V),this.checkTurnServers()),this.syncApi&&(w.logger.error("Still have sync object whilst not running: stopping old one"),this.syncApi.stop()),this.clientOpts=Object.assign({},e),this.clientOpts.crypto=this.crypto,this.clientOpts.canResetEntireTimeline=e=>!!this.canResetTimelineCallback&&this.canResetTimelineCallback(e),this.syncApi=new u.SyncApi(this,this.clientOpts),this.syncApi.sync(),void 0!==this.clientOpts.clientWellKnownPollPeriod&&(this.clientWellKnownIntervalID=setInterval((()=>{this.fetchClientWellKnown()}),1e3*this.clientOpts.clientWellKnownPollPeriod),this.fetchClientWellKnown())}))}stopClient(){var e,r,n,i;w.logger.log("stopping MatrixClient"),this.clientRunning=!1,null===(e=this.syncApi)||void 0===e||e.stop(),this.syncApi=null,null===(r=this.crypto)||void 0===r||r.stop(),null===(n=this.peekSync)||void 0===n||n.stopPeeking(),null===(i=this.callEventHandler)||void 0===i||i.stop(),this.callEventHandler=null,t.clearInterval(this.checkTurnServersIntervalID),void 0!==this.clientWellKnownIntervalID&&t.clearInterval(this.clientWellKnownIntervalID)}rehydrateDevice(){return s(this,void 0,void 0,(function*(){if(this.crypto)throw new Error("Cannot rehydrate device after crypto is initialized");if(!this.cryptoCallbacks.getDehydrationKey)return;const e=yield this.getDehydratedDevice();if(!e)return;if(!e.device_data||!e.device_id)return void w.logger.info("no dehydrated device found");const r=new t.Olm.Account;try{const t=e.device_data;if(t.algorithm!==x.DEHYDRATION_ALGORITHM)return void w.logger.warn("Wrong algorithm for dehydrated device");w.logger.log("unpickling dehydrated device");const n=yield this.cryptoCallbacks.getDehydrationKey(t,(e=>{r.unpickle(new Uint8Array(e),t.account)}));r.unpickle(n,t.account),w.logger.log("unpickled device");if(!0===(yield this.http.authedRequest(void 0,"POST","/dehydrated_device/claim",void 0,{device_id:e.device_id},{prefix:"/_matrix/client/unstable/org.matrix.msc2697.v2"})).success){this.deviceId=e.device_id,w.logger.info("using dehydrated device");const t=this.pickleKey||"DEFAULT_KEY";return this.exportedOlmDeviceToImport={pickledAccount:r.pickle(t),sessions:[],pickleKey:t},r.free(),this.deviceId}return r.free(),void w.logger.info("not using dehydrated device")}catch(e){r.free(),w.logger.warn("could not unpickle",e)}}))}getDehydratedDevice(){return s(this,void 0,void 0,(function*(){try{return yield this.http.authedRequest(void 0,"GET","/dehydrated_device",void 0,void 0,{prefix:"/_matrix/client/unstable/org.matrix.msc2697.v2"})}catch(e){return void w.logger.info("could not get dehydrated device",e.toString())}}))}setDehydrationKey(e,t,r){return s(this,void 0,void 0,(function*(){if(this.crypto)return yield this.crypto.dehydrationManager.setKeyAndQueueDehydration(e,t,r);w.logger.warn("not dehydrating device if crypto is not enabled")}))}createDehydratedDevice(e,t,r){return s(this,void 0,void 0,(function*(){if(this.crypto)return yield this.crypto.dehydrationManager.setKey(e,t,r),yield this.crypto.dehydrationManager.dehydrateDevice();w.logger.warn("not dehydrating device if crypto is not enabled")}))}exportDevice(){return s(this,void 0,void 0,(function*(){if(this.crypto)return{userId:this.credentials.userId,deviceId:this.deviceId,olmDevice:yield this.crypto.olmDevice.export()};w.logger.warn("not exporting device if crypto is not enabled")}))}clearStores(){if(this.clientRunning)throw new Error("Cannot clear stores while client is running");const e=[];return e.push(this.store.deleteAllData()),this.cryptoStore&&e.push(this.cryptoStore.deleteAllData()),Promise.all(e).then()}getUserId(){return this.credentials&&this.credentials.userId?this.credentials.userId:null}getDomain(){return this.credentials&&this.credentials.userId?this.credentials.userId.replace(/^.*?:/,""):null}getUserIdLocalpart(){return this.credentials&&this.credentials.userId?this.credentials.userId.split(":")[0].substring(1):null}getDeviceId(){return this.deviceId}supportsVoip(){return this.canSupportVoip}setForceTURN(e){this.forceTURN=e}setSupportsCallTransfer(e){this.supportsCallTransfer=e}createCall(e,t){return h.createNewMatrixCall(this,e,{invitee:t})}getSyncState(){return this.syncApi?this.syncApi.getSyncState():null}getSyncStateData(){return this.syncApi?this.syncApi.getSyncStateData():null}isInitialSyncComplete(){const e=this.getSyncState();return!!e&&(e===U.SyncState.Prepared||e===U.SyncState.Syncing)}isGuest(){return this.isGuestAccount}setGuest(e){this.isGuestAccount=e}getScheduler(){return this.scheduler}retryImmediately(){return this.syncApi.retryImmediately()}getNotifTimelineSet(){return this.notifTimelineSet}setNotifTimelineSet(e){this.notifTimelineSet=e}getCapabilities(e=!1){const t=(new Date).getTime();return this.cachedCapabilities&&!e&&t(w.logger.error(e),null))).then((e=>{e||(e={});const r=e.capabilities||{},n=Object.keys(r).length?216e5:6e4+5e3*Math.random();return this.cachedCapabilities={capabilities:r,expiration:t+n},w.logger.log("Caching capabilities: ",r),r}))}initCrypto(){return s(this,void 0,void 0,(function*(){if(!R.isCryptoAvailable())throw new Error("End-to-end encryption not supported in this js-sdk build: did you remember to load the olm library?");if(this.crypto)return void w.logger.warn("Attempt to re-initialise e2e encryption on MatrixClient");if(!this.sessionStore)throw new Error("Cannot enable encryption: no sessionStore provided");if(!this.cryptoStore)throw new Error("Cannot enable encryption: no cryptoStore provided");w.logger.log("Crypto: Starting up crypto store..."),yield this.cryptoStore.startup(),w.logger.log("Crypto: initialising roomlist..."),yield this.roomList.init();const e=this.getUserId();if(null===e)throw new Error("Cannot enable encryption on MatrixClient with unknown userId: ensure userId is passed in createClient().");if(null===this.deviceId)throw new Error("Cannot enable encryption on MatrixClient with unknown deviceId: ensure deviceId is passed in createClient().");const t=new R.Crypto(this,this.sessionStore,e,this.deviceId,this.store,this.cryptoStore,this.roomList,this.verificationMethods);this.reEmitter.reEmit(t,["crypto.keyBackupFailed","crypto.keyBackupSessionsRemaining","crypto.roomKeyRequest","crypto.roomKeyRequestCancellation","crypto.warning","crypto.devicesUpdated","crypto.willUpdateDevices","deviceVerificationChanged","userTrustStatusChanged","crossSigning.keysChanged"]),w.logger.log("Crypto: initialising crypto object..."),yield t.init({exportedOlmDevice:this.exportedOlmDeviceToImport,pickleKey:this.pickleKey}),delete this.exportedOlmDeviceToImport,this.olmVersion=R.Crypto.getOlmVersion(),t.registerEventHandlers(this),this.crypto=t}))}isCryptoEnabled(){return!!this.crypto}getDeviceEd25519Key(){return this.crypto?this.crypto.getDeviceEd25519Key():null}getDeviceCurve25519Key(){return this.crypto?this.crypto.getDeviceCurve25519Key():null}uploadKeys(){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");yield this.crypto.uploadDeviceKeys()}))}downloadKeys(e,t){return this.crypto?this.crypto.downloadKeys(e,t):Promise.reject(new Error("End-to-end encryption disabled"))}getStoredDevicesForUser(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getStoredDevicesForUser(e)||[]}getStoredDevice(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getStoredDevice(e,t)||null}setDeviceVerified(e,t,r=!0){const n=this.setDeviceVerification(e,t,r,null,null);return e==this.credentials.userId&&this.checkKeyBackup(),n}setDeviceBlocked(e,t,r=!0){return this.setDeviceVerification(e,t,null,r,null)}setDeviceKnown(e,t,r=!0){return this.setDeviceVerification(e,t,null,null,r)}setDeviceVerification(e,t,r,n,i){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");yield this.crypto.setDeviceVerification(e,t,r,n,i)}))}requestVerificationDM(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.requestVerificationDM(e,t)}findVerificationRequestDMInProgress(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.findVerificationRequestDMInProgress(e)}getVerificationRequestsToDeviceInProgress(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getVerificationRequestsToDeviceInProgress(e)}requestVerification(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.requestVerification(e,t)}beginKeyVerification(e,t,r){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.beginKeyVerification(e,t,r)}checkSecretStorageKey(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkSecretStorageKey(e,t)}setGlobalBlacklistUnverifiedDevices(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.setGlobalBlacklistUnverifiedDevices(e)}getGlobalBlacklistUnverifiedDevices(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getGlobalBlacklistUnverifiedDevices()}setGlobalErrorOnUnknownDevices(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.setGlobalErrorOnUnknownDevices(e)}getGlobalErrorOnUnknownDevices(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getGlobalErrorOnUnknownDevices()}getCrossSigningId(e=B.CrossSigningKey.Master){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getCrossSigningId(e)}getStoredCrossSigningForUser(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getStoredCrossSigningForUser(e)}checkUserTrust(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkUserTrust(e)}checkDeviceTrust(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkDeviceTrust(e,t)}checkOwnCrossSigningTrust(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkOwnCrossSigningTrust(e)}checkCrossSigningPrivateKey(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkCrossSigningPrivateKey(e,t)}legacyDeviceVerification(e,t,r){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.legacyDeviceVerification(e,t,r)}prepareToEncrypt(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.prepareToEncrypt(e)}isCrossSigningReady(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.isCrossSigningReady()}bootstrapCrossSigning(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.bootstrapCrossSigning(e)}getCryptoTrustCrossSignedDevices(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getCryptoTrustCrossSignedDevices()}setCryptoTrustCrossSignedDevices(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.setCryptoTrustCrossSignedDevices(e)}countSessionsNeedingBackup(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.countSessionsNeedingBackup()}getEventEncryptionInfo(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getEventEncryptionInfo(e)}createRecoveryKeyFromPassphrase(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.createRecoveryKeyFromPassphrase(e)}isSecretStorageReady(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.isSecretStorageReady()}bootstrapSecretStorage(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.bootstrapSecretStorage(e)}addSecretStorageKey(e,t,r){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.addSecretStorageKey(e,t,r)}hasSecretStorageKey(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.hasSecretStorageKey(e)}storeSecret(e,t,r){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.storeSecret(e,t,r)}getSecret(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getSecret(e)}isSecretStored(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.isSecretStored(e,t)}requestSecret(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.requestSecret(e,t)}getDefaultSecretStorageKeyId(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.getDefaultSecretStorageKeyId()}setDefaultSecretStorageKeyId(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.setDefaultSecretStorageKeyId(e)}checkSecretStoragePrivateKey(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.checkSecretStoragePrivateKey(e,t)}getEventSenderDeviceInfo(e){return s(this,void 0,void 0,(function*(){return this.crypto?this.crypto.getEventSenderDeviceInfo(e):null}))}isEventSenderVerified(e){return s(this,void 0,void 0,(function*(){const t=yield this.getEventSenderDeviceInfo(e);return!!t&&t.isVerified()}))}cancelAndResendEventRoomKeyRequest(e){return e.cancelAndResendKeyRequest(this.crypto,this.getUserId())}setRoomEncryption(e,t){if(!this.crypto)throw new Error("End-to-End encryption disabled");return this.crypto.setRoomEncryption(e,t)}isRoomEncrypted(e){const t=this.getRoom(e);if(!t)return!1;return!!t.currentState.getStateEvents("m.room.encryption","")||this.roomList.isRoomEncrypted(e)}forceDiscardSession(e){if(!this.crypto)throw new Error("End-to-End encryption disabled");this.crypto.forceDiscardSession(e)}exportRoomKeys(){return this.crypto?this.crypto.exportRoomKeys():Promise.reject(new Error("End-to-end encryption disabled"))}importRoomKeys(e,t){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.importRoomKeys(e,t)}checkKeyBackup(){return this.crypto.backupManager.checkKeyBackup()}getKeyBackupVersion(){return s(this,void 0,void 0,(function*(){let e;try{e=yield this.http.authedRequest(void 0,"GET","/room_keys/version",void 0,void 0,{prefix:T.PREFIX_UNSTABLE})}catch(e){if("M_NOT_FOUND"===e.errcode)return null;throw e}try{G.BackupManager.checkBackupVersion(e)}catch(e){throw e}return e}))}isKeyBackupTrusted(e){return this.crypto.backupManager.isKeyBackupTrusted(e)}getKeyBackupEnabled(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.backupManager.getKeyBackupEnabled()}enableKeyBackup(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.backupManager.enableKeyBackup(e)}disableKeyBackup(){if(!this.crypto)throw new Error("End-to-end encryption disabled");this.crypto.backupManager.disableKeyBackup()}prepareKeyBackupVersion(e,t={secureSecretStorage:!1}){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");const{algorithm:r,auth_data:n,recovery_key:i,privateKey:o}=yield this.crypto.backupManager.prepareKeyBackupVersion(e);return t.secureSecretStorage&&(yield this.storeSecret("m.megolm_backup.v1",_.encodeBase64(o)),w.logger.info("Key backup private key stored in secret storage")),{algorithm:r,auth_data:n,recovery_key:i}}))}isKeyBackupKeyStored(){return Promise.resolve(this.isSecretStored("m.megolm_backup.v1",!1))}createKeyBackupVersion(e){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");yield this.crypto.backupManager.createKeyBackupVersion(e);const t={algorithm:e.algorithm,auth_data:e.auth_data};yield this.crypto.signObject(t.auth_data),this.cryptoCallbacks.getCrossSigningKey&&this.crypto.crossSigningInfo.getId()&&(yield this.crypto.crossSigningInfo.signObject(t.auth_data,"master"));const r=yield this.http.authedRequest(void 0,"POST","/room_keys/version",void 0,t,{prefix:T.PREFIX_UNSTABLE});return yield this.checkKeyBackup(),this.getKeyBackupEnabled()||w.logger.error("Key backup not usable even though we just created it"),r}))}deleteKeyBackupVersion(e){if(!this.crypto)throw new Error("End-to-end encryption disabled");this.crypto.backupManager.version&&this.crypto.backupManager.disableKeyBackup();const t=p.encodeUri("/room_keys/version/$version",{$version:e});return this.http.authedRequest(void 0,"DELETE",t,void 0,void 0,{prefix:T.PREFIX_UNSTABLE})}makeKeyBackupPath(e,t,r){let n;n=void 0!==t?p.encodeUri("/room_keys/keys/$roomId/$sessionId",{$roomId:e,$sessionId:t}):void 0!==e?p.encodeUri("/room_keys/keys/$roomId",{$roomId:e}):"/room_keys/keys";return{path:n,queryData:void 0===r?void 0:{version:r}}}sendKeyBackup(e,t,r,n){if(!this.crypto)throw new Error("End-to-end encryption disabled");const i=this.makeKeyBackupPath(e,t,r);return this.http.authedRequest(void 0,"PUT",i.path,i.queryData,n,{prefix:T.PREFIX_UNSTABLE})}scheduleAllGroupSessionsForBackup(){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");yield this.crypto.backupManager.scheduleAllGroupSessionsForBackup()}))}flagAllGroupSessionsForBackup(){if(!this.crypto)throw new Error("End-to-end encryption disabled");return this.crypto.backupManager.flagAllGroupSessionsForBackup()}isValidRecoveryKey(e){try{return C.decodeRecoveryKey(e),!0}catch(e){return!1}}keyBackupKeyFromPassword(e,t){return O.keyFromAuthData(t.auth_data,e)}keyBackupKeyFromRecoveryKey(e){return C.decodeRecoveryKey(e)}restoreKeyBackupWithPassword(e,t,r,n,i){return s(this,void 0,void 0,(function*(){const o=yield O.keyFromAuthData(n.auth_data,e);return this.restoreKeyBackup(o,t,r,n,i)}))}restoreKeyBackupWithSecretStorage(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=yield this.getSecret("m.megolm_backup.v1"),o=R.fixBackupKey(i);if(o){const[e]=yield this.crypto.getSecretStorageKey();yield this.storeSecret("m.megolm_backup.v1",o,[e])}const s=_.decodeBase64(o||i);return this.restoreKeyBackup(s,t,r,e,n)}))}restoreKeyBackupWithRecoveryKey(e,t,r,n,i){const o=C.decodeRecoveryKey(e);return this.restoreKeyBackup(o,t,r,n,i)}restoreKeyBackupWithCache(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=yield this.crypto.getSessionBackupPrivateKey();if(!i)throw new Error("Couldn't get key");return this.restoreKeyBackup(i,e,t,r,n)}))}restoreKeyBackup(e,t,r,n,i){return s(this,void 0,void 0,(function*(){const o=null==i?void 0:i.cacheCompleteCallback,a=null==i?void 0:i.progressCallback;if(!this.crypto)throw new Error("End-to-end encryption disabled");let c=0,u=[];const l=this.makeKeyBackupPath(t,r,n.version),d=yield G.BackupManager.makeAlgorithm(n,(()=>s(this,void 0,void 0,(function*(){return e})))),h=d.untrusted;try{if(!(yield d.keyMatches(e)))return Promise.reject(new T.MatrixError({errcode:W.RESTORE_BACKUP_ERROR_BAD_KEY}));this.crypto.storeSessionBackupPrivateKey(e).catch((e=>{w.logger.warn("Error caching session backup key:",e)})).then(o),a&&a({stage:"fetch"});const n=yield this.http.authedRequest(void 0,"GET",l.path,l.queryData,void 0,{prefix:T.PREFIX_UNSTABLE});if(n.rooms)for(const[e,t]of Object.entries(n.rooms)){if(!t.sessions)continue;c+=Object.keys(t.sessions).length;const r=yield d.decryptSessions(t.sessions);for(const t of r)t.room_id=e,u.push(t)}else if(n.sessions){c=Object.keys(n.sessions).length,u=yield d.decryptSessions(n.sessions);for(const e of u)e.room_id=t}else{c=1;try{const[e]=yield d.decryptSessions({[r]:n});e.room_id=t,e.session_id=r,u.push(e)}catch(e){w.logger.log("Failed to decrypt megolm session from backup",e)}}}finally{d.free()}return yield this.importRoomKeys(u,{progressCallback:a,untrusted:h,source:"backup"}),yield this.checkKeyBackup(),{total:c,imported:u.length}}))}deleteKeysFromBackup(e,t,r){if(!this.crypto)throw new Error("End-to-end encryption disabled");const n=this.makeKeyBackupPath(e,t,r);return this.http.authedRequest(void 0,"DELETE",n.path,n.queryData,void 0,{prefix:T.PREFIX_UNSTABLE})}sendSharedHistoryKeys(e,t){return s(this,void 0,void 0,(function*(){if(!this.crypto)throw new Error("End-to-end encryption disabled");const r=this.roomList.getRoomEncryption(e);if(!r)return void w.logger.error("Unknown room. Not sharing decryption keys");const n=yield this.crypto.downloadKeys(t),i={};for(const[e,t]of Object.entries(n))i[e]=Object.values(t);const o=this.crypto.getRoomDecryptor(e,r.algorithm);o.sendSharedHistoryInboundSessions?yield o.sendSharedHistoryInboundSessions(i):w.logger.warn("Algorithm does not support sharing previous keys",r.algorithm)}))}getGroup(e){return this.store.getGroup(e)}getGroups(){return this.store.getGroups()}getMediaConfig(e){return this.http.authedRequest(e,"GET","/config",void 0,void 0,{prefix:T.PREFIX_MEDIA_R0})}getRoom(e){return this.store.getRoom(e)}getRooms(){return this.store.getRooms()}getVisibleRooms(){const e=this.store.getRooms(),t=new Set;for(const r of e){const e=r.currentState.getStateEvents("m.room.create","");if(e){const r=e.getContent().predecessor;r&&r.room_id&&t.add(r.room_id)}}return e.filter((e=>!e.currentState.getStateEvents("m.room.tombstone","")||!t.has(e.roomId)))}getUser(e){return this.store.getUser(e)}getUsers(){return this.store.getUsers()}setAccountData(e,t,r){const n=p.encodeUri("/user/$userId/account_data/$type",{$userId:this.credentials.userId,$type:e}),i=T.retryNetworkOperation(5,(()=>this.http.authedRequest(void 0,"PUT",n,void 0,t)));return r&&i.then((e=>r(null,e)),r),i}getAccountData(e){return this.store.getAccountData(e)}getAccountDataFromServer(e){return s(this,void 0,void 0,(function*(){if(this.isInitialSyncComplete()){const t=this.store.getAccountData(e);return t?t.getContent():null}const t=p.encodeUri("/user/$userId/account_data/$type",{$userId:this.credentials.userId,$type:e});try{return yield this.http.authedRequest(void 0,"GET",t,void 0)}catch(e){if(e.data&&"M_NOT_FOUND"===e.data.errcode)return null;throw e}}))}getIgnoredUsers(){const e=this.getAccountData("m.ignored_user_list");return e&&e.getContent()&&e.getContent().ignored_users?Object.keys(e.getContent().ignored_users):[]}setIgnoredUsers(e,t){const r={ignored_users:{}};return e.map((e=>r.ignored_users[e]={})),this.setAccountData("m.ignored_user_list",r,t)}isUserIgnored(e){return this.getIgnoredUsers().includes(e)}joinRoom(e,t,r){return s(this,void 0,void 0,(function*(){if(p.isFunction(t))throw new Error("Expected 'opts' object, got function.");void 0===(t=t||{}).syncRoom&&(t.syncRoom=!0);const n=this.getRoom(e);if(n&&n.hasMembershipState(this.credentials.userId,"join"))return Promise.resolve(n);let i=Promise.resolve();t.inviteSignUrl&&(i=this.http.requestOtherUrl(void 0,"POST",t.inviteSignUrl,{mxid:this.credentials.userId}));const o={};t.viaServers&&(o.server_name=t.viaServers);const s={qsStringifyOptions:{arrayFormat:"repeat"}};try{const n={},a=yield i;a&&(n.third_party_signed=a);const c=p.encodeUri("/join/$roomid",{$roomid:e}),l=(yield this.http.authedRequest(void 0,"POST",c,o,n,s)).room_id,d=new u.SyncApi(this,this.clientOpts).createRoom(l);return t.syncRoom,null==r||r(null,d),d}catch(e){throw null==r||r(e),e}}))}resendEvent(e,t){return this.updatePendingEventStatus(t,e,l.EventStatus.SENDING),this.encryptAndSendEvent(t,e)}cancelPendingEvent(e){if([l.EventStatus.QUEUED,l.EventStatus.NOT_SENT].indexOf(e.status)<0)throw new Error("cannot cancel an event with status "+e.status);this.scheduler&&this.scheduler.removeEventFromQueue(e);const t=this.getRoom(e.getRoomId());this.updatePendingEventStatus(t,e,l.EventStatus.CANCELLED)}setRoomName(e,t,r){return this.sendStateEvent(e,"m.room.name",{name:t},void 0,r)}setRoomTopic(e,t,r){return this.sendStateEvent(e,"m.room.topic",{topic:t},void 0,r)}getRoomTags(e,t){const r=p.encodeUri("/user/$userId/rooms/$roomId/tags/",{$userId:this.credentials.userId,$roomId:e});return this.http.authedRequest(t,"GET",r,void 0)}setRoomTag(e,t,r,n){const i=p.encodeUri("/user/$userId/rooms/$roomId/tags/$tag",{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(n,"PUT",i,void 0,r)}deleteRoomTag(e,t,r){const n=p.encodeUri("/user/$userId/rooms/$roomId/tags/$tag",{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(r,"DELETE",n,void 0,void 0)}setRoomAccountData(e,t,r,n){const i=p.encodeUri("/user/$userId/rooms/$roomId/account_data/$type",{$userId:this.credentials.userId,$roomId:e,$type:t});return this.http.authedRequest(n,"PUT",i,void 0,r)}setPowerLevel(e,t,r,n,i){let o={users:{}};n&&"m.room.power_levels"===n.getType()&&(o=p.deepCopy(n.getContent())),o.users[t]=r;const s=p.encodeUri("/rooms/$roomId/state/m.room.power_levels",{$roomId:e});return this.http.authedRequest(i,"PUT",s,void 0,o)}sendEvent(e,t,r,n,i){return this.sendCompleteEvent(e,{type:t,content:r},n,i)}sendCompleteEvent(e,t,r,n){p.isFunction(r)&&(n=r,r=void 0),r||(r=this.makeTxnId());const i=new l.MatrixEvent(Object.assign(t,{event_id:"~"+e+":"+r,user_id:this.credentials.userId,sender:this.credentials.userId,room_id:e,origin_server_ts:(new Date).getTime()})),o=this.getRoom(e),s=i.getAssociatedId();if(s&&s.startsWith("~")){const e=o.getPendingEvents().find((e=>e.getId()===s));e.once("Event.localEventIdReplaced",(()=>{i.updateAssociatedId(e.getId())}))}const a=i.getType();return w.logger.log(`sendEvent of type ${a} in ${e} with txnId ${r}`),i.setTxnId(r),i.setStatus(l.EventStatus.SENDING),o&&o.addPendingEvent(i,r),i.status===l.EventStatus.NOT_SENT?Promise.reject(new Error("Event blocked by other events not yet sent")):this.encryptAndSendEvent(o,i,n)}encryptAndSendEvent(e,t,r){return Promise.resolve().then((()=>{const r=this.encryptEventIfNeeded(t,e);return r?(this.updatePendingEventStatus(e,t,l.EventStatus.ENCRYPTING),r.then((()=>this.updatePendingEventStatus(e,t,l.EventStatus.SENDING)))):null})).then((()=>{let r;return this.scheduler&&(r=this.scheduler.queueEvent(t),r&&this.scheduler.getQueueForEvent(t).length>1&&this.updatePendingEventStatus(e,t,l.EventStatus.QUEUED)),r||(r=this.sendEventHttpRequest(t),e&&(r=r.then((r=>(e.updatePendingEvent(t,l.EventStatus.SENT,r.event_id),r))))),r})).then((e=>(null==r||r(null,e),e))).catch((n=>{w.logger.error("Error sending event",n.stack||n);try{t.error=n,this.updatePendingEventStatus(e,t,l.EventStatus.NOT_SENT),n.event=t,null==r||r(n)}catch(e){w.logger.error("Exception in error handler!",e.stack||n)}throw n}))}encryptEventIfNeeded(e,t){if(e.isEncrypted())return null;if(!this.isRoomEncrypted(e.getRoomId()))return null;if(!this.crypto&&this.usingExternalCrypto)return null;if(e.getType()===N.EventType.Reaction)return null;if(!this.crypto)throw new Error("This room is configured to use encryption, but your client does not support encryption.");return this.crypto.encryptEvent(e,t)}getEncryptedIfNeededEventType(e,t){return t===N.EventType.Reaction?t:this.isRoomEncrypted(e)?N.EventType.RoomMessageEncrypted:t}updatePendingEventStatus(e,t,r){e?e.updatePendingEvent(t,r):t.setStatus(r)}sendEventHttpRequest(e){let t=e.getTxnId();t||(t=this.makeTxnId(),e.setTxnId(t));const r={$roomId:e.getRoomId(),$eventType:e.getWireType(),$stateKey:e.getStateKey(),$txnId:t};let n;if(e.isState()){let t="/rooms/$roomId/state/$eventType";e.getStateKey()&&e.getStateKey().length>0&&(t="/rooms/$roomId/state/$eventType/$stateKey"),n=p.encodeUri(t,r)}else if(e.isRedaction()){const t="/rooms/$roomId/redact/$redactsEventId/$txnId";n=p.encodeUri(t,Object.assign({$redactsEventId:e.event.redacts},r))}else n=p.encodeUri("/rooms/$roomId/send/$eventType/$txnId",r);return this.http.authedRequest(void 0,"PUT",n,void 0,e.getWireContent()).then((t=>(w.logger.log(`Event sent to ${e.getRoomId()} with event id ${t.event_id}`),t)))}redactEvent(e,t,r,n){const i=("object"==typeof n?n:{}).reason,o="function"==typeof n?n:void 0;return this.sendCompleteEvent(e,{type:N.EventType.RoomRedaction,content:{reason:i},redacts:t},r,o)}sendMessage(e,t,r,n){return p.isFunction(r)&&(n=r,r=void 0),this.sendEvent(e,"m.room.message",t,r,n)}sendTextMessage(e,t,r,n){const i=K.makeTextMessage(t);return this.sendMessage(e,i,r,n)}sendNotice(e,t,r,n){const i=K.makeNotice(t);return this.sendMessage(e,i,r,n)}sendEmoteMessage(e,t,r,n){const i=K.makeEmoteMessage(t);return this.sendMessage(e,i,r,n)}sendImageMessage(e,t,r,n="Image",i){p.isFunction(n)&&(i=n,n=void 0);const o={msgtype:"m.image",url:t,info:r,body:n};return this.sendMessage(e,o,void 0,i)}sendStickerMessage(e,t,r,n="Sticker",i){p.isFunction(n)&&(i=n,n=void 0);const o={url:t,info:r,body:n};return this.sendEvent(e,N.EventType.Sticker,o,void 0,i)}sendHtmlMessage(e,t,r,n){const i=K.makeHtmlMessage(t,r);return this.sendMessage(e,i,void 0,n)}sendHtmlNotice(e,t,r,n){const i=K.makeHtmlNotice(t,r);return this.sendMessage(e,i,void 0,n)}sendHtmlEmote(e,t,r,n){const i=K.makeHtmlEmote(t,r);return this.sendMessage(e,i,void 0,n)}sendReceipt(e,t,r,n){if("function"==typeof r&&(n=r,r={}),this.isGuest())return Promise.resolve({});const i=p.encodeUri("/rooms/$roomId/receipt/$receiptType/$eventId",{$roomId:e.getRoomId(),$receiptType:t,$eventId:e.getId()}),o=this.http.authedRequest(n,"POST",i,void 0,r||{}),s=this.getRoom(e.getRoomId());return s&&s.addLocalEchoReceipt(this.credentials.userId,e,t),o}sendReadReceipt(e,t,r){return s(this,void 0,void 0,(function*(){"function"==typeof t&&(r=t,t={}),t||(t={});const n=e.getId(),i=this.getRoom(e.getRoomId());if(i&&i.hasPendingEvent(n))throw new Error(`Cannot set read receipt to a pending event (${n})`);const o={"m.hidden":Boolean(t.hidden)};return this.sendReceipt(e,"m.read",o,r)}))}setRoomReadMarkers(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=this.getRoom(e);if(i&&i.hasPendingEvent(t))throw new Error(`Cannot set read marker to a pending event (${t})`);let o;if(r){if(o=r.getId(),i&&i.hasPendingEvent(o))throw new Error(`Cannot set read receipt to a pending event (${o})`);i&&i.addLocalEchoReceipt(this.credentials.userId,r,"m.read")}return this.setRoomReadMarkersHttpRequest(e,t,o,n)}))}getUrlPreview(e,t,r){t=6e4*Math.floor(t/6e4);const n=new URL(e);n.hash="";const i=t+"_"+(e=n.toString()),o=this.urlPreviewCache[i];if(o)return r&&o.then(r).catch(r),o;const s=this.http.authedRequest(r,"GET","/preview_url",{url:e,ts:t},void 0,{prefix:T.PREFIX_MEDIA_R0});return this.urlPreviewCache[i]=s,s}sendTyping(e,t,r,n){if(this.isGuest())return Promise.resolve({});const i=p.encodeUri("/rooms/$roomId/typing/$userId",{$roomId:e,$userId:this.credentials.userId}),o={typing:t};return t&&(o.timeout=r||2e4),this.http.authedRequest(n,"PUT",i,void 0,o)}getRoomUpgradeHistory(e,t=!1){let r=this.getRoom(e);if(!r)return[];const n=[r];let i=r.currentState.getStateEvents("m.room.create","");for(;i;){w.logger.log(`Looking at ${i.getId()}`);const e=i.getContent().predecessor;if(!e||!e.room_id)break;{w.logger.log(`Looking at predecessor ${e.room_id}`);const r=this.getRoom(e.room_id);if(!r)break;if(t){const e=r.currentState.getStateEvents("m.room.tombstone","");if(!e||e.getContent().replacement_room!==r.roomId)break}n.splice(0,0,r),i=r.currentState.getStateEvents("m.room.create","")}}let o=r.currentState.getStateEvents("m.room.tombstone","");for(;o;){const e=this.getRoom(o.getContent().replacement_room);if(!e)break;if(e.roomId===r.roomId)break;if(t){if(i=e.currentState.getStateEvents("m.room.create",""),!i||!i.getContent().predecessor)break;if(i.getContent().predecessor.room_id!==r.roomId)break}n.push(e);if(new Set(n.map((e=>e.roomId))).sizethis.leave(e).then((()=>{i[e]=null})).catch((t=>(i[e]=t,null)));for(const e of n)o.push(s(e.roomId));return Promise.all(o).then((()=>i))}ban(e,t,r,n){return this.membershipChange(e,t,"ban",r,n)}forget(e,t,r){void 0===t&&(t=!0);const n=this.membershipChange(e,void 0,"forget",void 0,r);return t?n.then((t=>(this.store.removeRoom(e),this.emit("deleteRoom",e),t))):n}unban(e,t,r){const n=p.encodeUri("/rooms/$roomId/unban",{$roomId:e}),i={user_id:t};return this.http.authedRequest(r,"POST",n,void 0,i)}kick(e,t,r,n){return this.setMembershipState(e,t,"leave",r,n)}setMembershipState(e,t,r,n,i){p.isFunction(n)&&(i=n,n=void 0);const o=p.encodeUri("/rooms/$roomId/state/m.room.member/$userId",{$roomId:e,$userId:t});return this.http.authedRequest(i,"PUT",o,void 0,{membership:r,reason:n})}membershipChange(e,t,r,n,i){p.isFunction(n)&&(i=n,n=void 0);const o=p.encodeUri("/rooms/$room_id/$membership",{$room_id:e,$membership:r});return this.http.authedRequest(i,"POST",o,void 0,{user_id:t,reason:n})}getPushActionsForEvent(e){return e.getPushActions()||e.setPushActions(this.pushProcessor.actionsForEvent(e)),e.getPushActions()}setProfileInfo(e,t,r){const n=p.encodeUri("/profile/$userId/$info",{$userId:this.credentials.userId,$info:e});return this.http.authedRequest(r,"PUT",n,void 0,t)}setDisplayName(e,t){return s(this,void 0,void 0,(function*(){const r=yield this.setProfileInfo("displayname",{displayname:e},t),n=this.getUser(this.getUserId());return n&&(n.displayName=e,n.emit("User.displayName",n.events.presence,n)),r}))}setAvatarUrl(e,t){return s(this,void 0,void 0,(function*(){const r=yield this.setProfileInfo("avatar_url",{avatar_url:e},t),n=this.getUser(this.getUserId());return n&&(n.avatarUrl=e,n.emit("User.avatarUrl",n.events.presence,n)),r}))}mxcUrlToHttp(e,t,r,n,i){return A.getHttpUriForMxc(this.baseUrl,e,t,r,n,i)}_unstable_setStatusMessage(e){const t="im.vector.user_status";return Promise.all(this.getRooms().map((r=>{const n="join"===r.getMyMembership(),i=2===r.getInvitedAndJoinedMemberCount();if(!n||!i)return Promise.resolve();return r.currentState.mayClientSendStateEvent(t,this)?this.sendStateEvent(r.roomId,t,{status:e},this.getUserId()):Promise.resolve()}))).then()}setPresence(e,t){const r=p.encodeUri("/presence/$userId/status",{$userId:this.credentials.userId});"string"==typeof e&&(e={presence:e});if(-1===["offline","online","unavailable"].indexOf(e.presence))throw new Error("Bad presence value: "+e.presence);return this.http.authedRequest(t,"PUT",r,void 0,e)}getPresence(e,t){const r=p.encodeUri("/presence/$userId/status",{$userId:e});return this.http.authedRequest(t,"GET",r,void 0,void 0)}scrollback(e,t,r){p.isFunction(t)&&(r=t,t=void 0),t=t||30;let n=0,i=this.ongoingScrollbacks[e.roomId]||{};if(i.promise)return i.promise;if(i.errorTs){const e=Date.now()-i.errorTs;n=Math.max(3e3-e,0)}if(null===e.oldState.paginationToken)return Promise.resolve(e);const o=this.store.scrollback(e,t).length;if(o===t)return Promise.resolve(e);t-=o;const s=new Promise(((i,o)=>{v.sleep(n).then((()=>this.createMessagesRequest(e.roomId,e.oldState.paginationToken,t,"b"))).then((t=>{const n=t.chunk.map(this.getEventMapper());if(t.state){const r=t.state.map(this.getEventMapper());e.currentState.setUnknownStateEvents(r)}e.addEventsToTimeline(n,!0,e.getLiveTimeline()),e.oldState.paginationToken=t.end,0===t.chunk.length&&(e.oldState.paginationToken=null),this.store.storeEvents(e,n,t.end,!0),this.ongoingScrollbacks[e.roomId]=null,null==r||r(null,e),i(e)})).catch((t=>{this.ongoingScrollbacks[e.roomId]={errorTs:Date.now()},null==r||r(t),o(t)}))}));return i={promise:s,errorTs:null},this.ongoingScrollbacks[e.roomId]=i,s}getEventMapper(e){return q.eventMapperFor(this,e||{})}getEventTimeline(e,t){if(!this.timelineSupport)throw new Error("timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.");if(e.getTimelineForEvent(t))return Promise.resolve(e.getTimelineForEvent(t));const r=p.encodeUri("/rooms/$roomId/context/$eventId",{$roomId:e.room.roomId,$eventId:t});let n;this.clientOpts.lazyLoadMembers&&(n={filter:JSON.stringify(f.Filter.LAZY_LOADING_MESSAGES_FILTER)});return this.http.authedRequest(void 0,"GET",r,n).then((r=>{if(!r.event)throw new Error("'event' not in '/context' result - homeserver too old?");if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);r.events_after.reverse();const n=r.events_after.concat([r.event]).concat(r.events_before).map(this.getEventMapper());let i=e.getTimelineForEvent(n[0].getId());if(i){const e=r.state.map(this.getEventMapper());i.getState(y.EventTimeline.BACKWARDS).setUnknownStateEvents(e)}else i=e.addTimeline(),i.initialiseState(r.state.map(this.getEventMapper())),i.getState(y.EventTimeline.FORWARDS).paginationToken=r.end;return e.addEventsToTimeline(n,!0,i,r.start),e.getTimelineForEvent(t)||i}))}createMessagesRequest(e,t,r,n,i){var o;const s=p.encodeUri("/rooms/$roomId/messages",{$roomId:e});void 0===r&&(r=30);const a={from:t,limit:r,dir:n};let c=null;return this.clientOpts.lazyLoadMembers&&(c=Object.assign({},f.Filter.LAZY_LOADING_MESSAGES_FILTER)),i&&(c=c||{},Object.assign(c,null===(o=i.getRoomTimelineFilterComponent())||void 0===o?void 0:o.toJSON())),c&&(a.filter=JSON.stringify(c)),this.http.authedRequest(void 0,"GET",s,a)}paginateEventTimeline(e,t){const r=e.getTimelineSet()===this.notifTimelineSet,n=(t=t||{}).backwards||!1;if(r&&!n)throw new Error("paginateNotifTimeline can only paginate backwards");const i=n?y.EventTimeline.BACKWARDS:y.EventTimeline.FORWARDS,o=e.getPaginationToken(i);if(!o)return Promise.resolve(!1);const s=e.paginationRequests[i];if(s)return s;let a,c,u;if(r)a="/notifications",c={limit:"limit"in t?t.limit:30,only:"highlight"},o&&"end"!==o&&(c.from=o),u=this.http.authedRequest(void 0,"GET","/notifications",c,void 0).then((t=>{const r=t.next_token,o=[];for(let e=0;e{e.paginationRequests[i]=null})),e.paginationRequests[i]=u;else{if(!this.getRoom(e.getRoomId()))throw new Error("Unknown room "+e.getRoomId());u=this.createMessagesRequest(e.getRoomId(),o,t.limit,i,e.getFilter()),u.then((t=>{if(t.state){const r=e.getState(i),n=t.state.map(this.getEventMapper());r.setUnknownStateEvents(n)}const r=t.end,o=t.chunk.map(this.getEventMapper());return e.getTimelineSet().addEventsToTimeline(o,n,e,r),n&&t.end==t.start&&e.setPaginationToken(null,i),t.end!=t.start})).finally((()=>{e.paginationRequests[i]=null})),e.paginationRequests[i]=u}return u}resetNotifTimelineSet(){this.notifTimelineSet&&this.notifTimelineSet.resetLiveTimeline("end",null)}peekInRoom(e){return this.peekSync&&this.peekSync.stopPeeking(),this.peekSync=new u.SyncApi(this,this.clientOpts),this.peekSync.peek(e)}stopPeeking(){this.peekSync&&(this.peekSync.stopPeeking(),this.peekSync=null)}setGuestAccess(e,t){const r=this.sendStateEvent(e,"m.room.guest_access",{guest_access:t.allowJoin?"can_join":"forbidden"},"");let n=Promise.resolve();return t.allowRead&&(n=this.sendStateEvent(e,"m.room.history_visibility",{history_visibility:"world_readable"},"")),Promise.all([n,r]).then()}requestRegisterEmailToken(e,t,r,n){return this.requestTokenFromEndpoint("/register/email/requestToken",{email:e,client_secret:t,send_attempt:r,next_link:n})}requestRegisterMsisdnToken(e,t,r,n,i){return this.requestTokenFromEndpoint("/register/msisdn/requestToken",{country:e,phone_number:t,client_secret:r,send_attempt:n,next_link:i})}requestAdd3pidEmailToken(e,t,r,n){return this.requestTokenFromEndpoint("/account/3pid/email/requestToken",{email:e,client_secret:t,send_attempt:r,next_link:n})}requestAdd3pidMsisdnToken(e,t,r,n,i){return this.requestTokenFromEndpoint("/account/3pid/msisdn/requestToken",{country:e,phone_number:t,client_secret:r,send_attempt:n,next_link:i})}requestPasswordEmailToken(e,t,r,n){return this.requestTokenFromEndpoint("/account/password/email/requestToken",{email:e,client_secret:t,send_attempt:r,next_link:n})}requestPasswordMsisdnToken(e,t,r,n,i){return this.requestTokenFromEndpoint("/account/password/msisdn/requestToken",{country:e,phone_number:t,client_secret:r,send_attempt:n,next_link:i})}requestTokenFromEndpoint(e,t){return s(this,void 0,void 0,(function*(){const r=Object.assign({},t);if(!(yield this.doesServerSupportSeparateAddAndBind())&&this.idBaseUrl){const e=j.default.parse(this.idBaseUrl);if(!e.host)throw new Error("Invalid ID server URL: "+this.idBaseUrl);if(r.id_server=e.host,this.identityServer&&this.identityServer.getAccessToken&&(yield this.doesServerAcceptIdentityAccessToken())){const e=yield this.identityServer.getAccessToken();e&&(r.id_access_token=e)}}return this.http.request(void 0,"POST",e,void 0,r)}))}getRoomPushRule(e,t){if(!this.pushRules)throw new Error("SyncApi.sync() must be done before accessing to push rules.");for(let r=0;r{this.addPushRule(e,"room",t,{actions:["dont_notify"]}).then((()=>{n.resolve()})).catch((e=>{n.reject(e)}))})).catch((e=>{n.reject(e)})),n=n.promise):n=this.addPushRule(e,"room",t,{actions:["dont_notify"]}):i&&(n=this.deletePushRule(e,"room",o.rule_id)),n)return new Promise(((e,t)=>{n.then((()=>{this.getPushRules().then((t=>{this.pushRules=t,e()})).catch((e=>{t(e)}))})).catch((e=>{this.getPushRules().then((r=>{this.pushRules=r,t(e)})).catch((r=>{t(e)}))}))}))}searchMessageText(e,t){const r={search_term:e.query};return"keys"in e&&(r.keys=e.keys),this.search({body:{search_categories:{room_events:r}}},t)}searchRoomEvents(e){const t={search_categories:{room_events:{search_term:e.term,filter:e.filter,order_by:"recent",event_context:{before_limit:1,after_limit:1,include_profile:!0}}}},r={_query:t,results:[],highlights:[]};return this.search({body:t}).then((e=>this.processRoomEventsSearch(r,e)))}backPaginateRoomEventsSearch(e){if(!e.next_batch)return Promise.reject(new Error("Cannot backpaginate event search any further"));if(e.pendingRequest)return e.pendingRequest;const t={body:e._query,next_batch:e.next_batch},r=this.search(t).then((t=>this.processRoomEventsSearch(e,t))).finally((()=>{e.pendingRequest=null}));return e.pendingRequest=r,r}processRoomEventsSearch(e,t){const r=t.search_categories.room_events;e.count=r.count,e.next_batch=r.next_batch;const n={};r.highlights.forEach((e=>{n[e]=1})),e.highlights.forEach((e=>{n[e]=1})),e.highlights=Object.keys(n);const i=r.results?r.results.length:0;for(let t=0;t{w.logger.log("Marking success of sync left room request"),this.syncedLeftRooms=!0})).finally((()=>{this.syncLeftRoomsPromise=null})),this.syncLeftRoomsPromise}createFilter(e){const t=p.encodeUri("/user/$userId/filter",{$userId:this.credentials.userId});return this.http.authedRequest(void 0,"POST",t,void 0,e).then((t=>{const r=f.Filter.fromJson(this.credentials.userId,t.filter_id,e);return this.store.storeFilter(r),r}))}getFilter(e,t,r){if(r){const r=this.store.getFilter(e,t);if(r)return Promise.resolve(r)}const n=p.encodeUri("/user/$userId/filter/$filterId",{$userId:e,$filterId:t});return this.http.authedRequest(void 0,"GET",n,void 0,void 0).then((r=>{const n=f.Filter.fromJson(e,t,r);return this.store.storeFilter(n),n}))}getOrCreateFilter(e,t){return s(this,void 0,void 0,(function*(){const r=this.store.getFilterIdByName(e);let n;if(r){try{const e=yield this.getFilter(this.credentials.userId,r,!0);if(e){const i=e.getDefinition(),o=t.getDefinition();p.deepCompare(i,o)&&(n=r)}}catch(e){if("M_UNKNOWN"!==e.errcode&&"M_NOT_FOUND"!==e.errcode)throw e}n||this.store.setFilterIdByName(e,void 0)}if(n)return n;const i=yield this.createFilter(t.getDefinition());return this.store.setFilterIdByName(e,i.filterId),i.filterId}))}getOpenIdToken(){const e=p.encodeUri("/user/$userId/openid/request_token",{$userId:this.credentials.userId});return this.http.authedRequest(void 0,"POST",e,void 0,{})}turnServer(e){return this.http.authedRequest(e,"GET","/voip/turnServer")}getTurnServers(){return this.turnServers||[]}getTurnServersExpiry(){return this.turnServersExpiry}checkTurnServers(){return s(this,void 0,void 0,(function*(){if(!this.canSupportVoip)return;let e=!1;const r=this.turnServersExpiry-Date.now();if(r>V)w.logger.debug("TURN creds are valid for another "+r+" ms: not fetching new ones."),e=!0;else{w.logger.debug("Fetching new TURN credentials");try{const t=yield this.turnServer();if(t.uris){w.logger.log("Got TURN URIs: "+t.uris+" refresh in "+t.ttl+" secs");const r={urls:t.uris,username:t.username,credential:t.password};this.turnServers=[r],this.turnServersExpiry=Date.now()+1e3*t.ttl,e=!0}}catch(e){w.logger.error("Failed to get TURN URIs",e),403===e.httpStatus&&(w.logger.info("TURN access unavailable for this account: stopping credentials checks"),null!==this.checkTurnServersIntervalID&&t.clearInterval(this.checkTurnServersIntervalID),this.checkTurnServersIntervalID=null)}}return e}))}setFallbackICEServerAllowed(e){this.fallbackICEServerAllowed=e}isFallbackICEServerAllowed(){return this.fallbackICEServerAllowed}isSynapseAdministrator(){const e=p.encodeUri("/_synapse/admin/v1/users/$userId/admin",{$userId:this.getUserId()});return this.http.authedRequest(void 0,"GET",e,void 0,void 0,{prefix:""}).then((e=>e.admin))}whoisSynapseUser(e){const t=p.encodeUri("/_synapse/admin/v1/whois/$userId",{$userId:e});return this.http.authedRequest(void 0,"GET",t,void 0,void 0,{prefix:""})}deactivateSynapseUser(e){const t=p.encodeUri("/_synapse/admin/v1/deactivate/$userId",{$userId:e});return this.http.authedRequest(void 0,"POST",t,void 0,void 0,{prefix:""})}fetchClientWellKnown(){return s(this,void 0,void 0,(function*(){this.clientWellKnownPromise=b.AutoDiscovery.getRawClientConfig(this.getDomain()),this.clientWellKnown=yield this.clientWellKnownPromise,this.emit("WellKnown.client",this.clientWellKnown)}))}getClientWellKnown(){return this.clientWellKnown}waitForClientWellKnown(){return this.clientWellKnownPromise}storeClientOptions(){const e=["boolean","string","number"],t=Object.entries(this.clientOpts).filter((([t,r])=>e.includes(typeof r))).reduce(((e,[t,r])=>(e[t]=r,e)),{});return this.store.storeClientOptions(t)}_unstable_getSharedRooms(e){return s(this,void 0,void 0,(function*(){if(!(yield this.doesServerSupportUnstableFeature("uk.half-shot.msc2666")))throw Error("Server does not support shared_rooms API");const t=p.encodeUri("/uk.half-shot.msc2666/user/shared_rooms/$userId",{$userId:e});return(yield this.http.authedRequest(void 0,"GET",t,void 0,void 0,{prefix:T.PREFIX_UNSTABLE})).joined}))}getVersions(){return this.serverVersionsPromise||(this.serverVersionsPromise=this.http.request(void 0,"GET","/_matrix/client/versions",void 0,void 0,{prefix:""}).catch((e=>{throw this.serverVersionsPromise=null,e}))),this.serverVersionsPromise}isVersionSupported(e){return s(this,void 0,void 0,(function*(){const{versions:t}=yield this.getVersions();return t&&t.includes(e)}))}doesServerSupportLazyLoading(){return s(this,void 0,void 0,(function*(){const e=yield this.getVersions();if(!e)return!1;const t=e.versions,r=e.unstable_features;return t&&t.includes("r0.5.0")||r&&r["m.lazy_load_members"]}))}doesServerRequireIdServerParam(){return s(this,void 0,void 0,(function*(){const e=yield this.getVersions();if(!e)return!0;const t=e.versions;if(t&&t.includes("r0.6.0"))return!1;const r=e.unstable_features;return!r||(void 0===r["m.require_identity_server"]||r["m.require_identity_server"])}))}doesServerAcceptIdentityAccessToken(){return s(this,void 0,void 0,(function*(){const e=yield this.getVersions();if(!e)return!1;const t=e.versions,r=e.unstable_features;return t&&t.includes("r0.6.0")||r&&r["m.id_access_token"]}))}doesServerSupportSeparateAddAndBind(){return s(this,void 0,void 0,(function*(){const e=yield this.getVersions();if(!e)return!1;const t=e.versions,r=e.unstable_features;return t&&t.includes("r0.6.0")||r&&r["m.separate_add_and_bind"]}))}doesServerSupportUnstableFeature(e){return s(this,void 0,void 0,(function*(){const t=yield this.getVersions();if(!t)return!1;const r=t.unstable_features;return r&&!!r[e]}))}doesServerForceEncryptionForPreset(e){return s(this,void 0,void 0,(function*(){const t=yield this.getVersions();if(!t)return!1;const r=t.unstable_features,n=e.includes("_chat")?e.substring(0,e.indexOf("_chat")):e;return r&&!!r[`io.element.e2ee_forced.${n}`]}))}hasLazyLoadMembersEnabled(){return!!this.clientOpts.lazyLoadMembers}setCanResetTimelineCallback(e){this.canResetTimelineCallback=e}getCanResetTimelineCallback(){return this.canResetTimelineCallback}relations(e,t,r,n,i){return s(this,void 0,void 0,(function*(){const o=this.getEncryptedIfNeededEventType(e,n),s=yield this.fetchRelations(e,t,r,o,i),a=this.getEventMapper();let c;s.original_event&&(c=a(s.original_event));let u=s.chunk.map(a);if("m.room.encrypted"===o){const e=c?u.concat(c):u;yield Promise.all(e.map((e=>new Promise((t=>e.once("Event.decrypted",t)))))),u=u.filter((e=>e.getType()===n))}return c&&"m.replace"===r&&(u=u.filter((e=>e.getSender()===c.getSender()))),{originalEvent:c,events:u,nextBatch:s.next_batch}}))}getCrossSigningCacheCallbacks(){var e;return null===(e=this.crypto)||void 0===e?void 0:e.crossSigningInfo.getCacheCallbacks()}generateClientSecret(){return F.randomString(32)}decryptEventIfNeeded(e,t){return e.shouldAttemptDecryption()&&e.attemptDecryption(this.crypto,t),e.isBeingDecrypted()?e.getDecryptionPromise():Promise.resolve()}termsUrlForService(e,t){switch(e){case I.SERVICE_TYPES.IS:return t+T.PREFIX_IDENTITY_V2+"/terms";case I.SERVICE_TYPES.IM:return t+"/_matrix/integrations/v1/terms";default:throw new Error("Unsupported service type")}}getHomeserverUrl(){return this.baseUrl}getIdentityServerUrl(e=!1){return e&&(this.idBaseUrl.startsWith("http://")||this.idBaseUrl.startsWith("https://"))?this.idBaseUrl.split("://")[1]:this.idBaseUrl}setIdentityServerUrl(e){this.idBaseUrl=p.ensureNoTrailingSlash(e),this.http.setIdBaseUrl(this.idBaseUrl)}getAccessToken(){return this.http.opts.accessToken||null}isLoggedIn(){return void 0!==this.http.opts.accessToken}makeTxnId(){return"m"+(new Date).getTime()+"."+this.txnCtr++}isUsernameAvailable(e){return this.http.authedRequest(void 0,"GET","/register/available",{username:e}).then((e=>e.available))}register(e,t,r,n,i,o,s,a){!0===i?i={email:!0}:null==i&&(i={}),"function"==typeof s&&(a=s,s=void 0),r&&(n.session=r);const c={auth:n};return null!=e&&(c.username=e),null!=t&&(c.password=t),i.email&&(c.bind_email=!0),i.msisdn&&(c.bind_msisdn=!0),null!=o&&(c.guest_access_token=o),null!=s&&(c.inhibit_login=s),null!=t&&(c.x_show_msisdn=!0),this.registerRequest(c,void 0,a)}registerGuest(e,t){return(e=e||{}).body=e.body||{},this.registerRequest(e.body,"guest",t)}registerRequest(e,t,r){const n={};return t&&(n.kind=t),this.http.request(r,"POST","/register",n,e)}loginFlows(e){return this.http.request(e,"GET","/login")}login(e,t,r){const n={type:e};return p.extend(n,t),this.http.authedRequest(((e,t)=>{t&&t.access_token&&t.user_id&&(this.http.opts.accessToken=t.access_token,this.credentials={userId:t.user_id}),r&&r(e,t)}),"POST","/login",void 0,n)}loginWithPassword(e,t,r){return this.login("m.login.password",{user:e,password:t},r)}loginWithSAML2(e,t){return this.login("m.login.saml2",{relay_state:e},t)}getCasLoginUrl(e){return this.getSsoLoginUrl(e,"cas")}getSsoLoginUrl(e,t="sso",r){let n="/login/"+t+"/redirect";return r&&(n+="/"+r),this.http.getUrl(n,{redirectUrl:e},T.PREFIX_R0)}loginWithToken(e,t){return this.login("m.login.token",{token:e},t)}logout(e){return this.http.authedRequest(e,"POST","/logout")}deactivateAccount(e,t){if("function"==typeof t)throw new Error("deactivateAccount no longer accepts a callback parameter");const r={};return e&&(r.auth=e),void 0!==t&&(r.erase=t),this.http.authedRequest(void 0,"POST","/account/deactivate",void 0,r)}getFallbackAuthUrl(e,t){const r=p.encodeUri("/auth/$loginType/fallback/web",{$loginType:e});return this.http.getUrl(r,{session:t},T.PREFIX_R0)}createRoom(e,t){return s(this,void 0,void 0,(function*(){const r=(e.invite_3pid||[]).filter((e=>!e.id_access_token));if(r.length>0&&this.identityServer&&this.identityServer.getAccessToken&&(yield this.doesServerAcceptIdentityAccessToken())){const e=yield this.identityServer.getAccessToken();if(e)for(const t of r)t.id_access_token=e}return this.http.authedRequest(t,"POST","/createRoom",void 0,e)}))}fetchRelations(e,t,r,n,i){return s(this,void 0,void 0,(function*(){const o={};i.from&&(o.from=i.from);const s=p.encodeParams(o),a=p.encodeUri("/rooms/$roomId/relations/$eventId/$relationType/$eventType?"+s,{$roomId:e,$eventId:t,$relationType:r,$eventType:n});return yield this.http.authedRequest(void 0,"GET",a,null,null,{prefix:T.PREFIX_UNSTABLE})}))}roomState(e,t){const r=p.encodeUri("/rooms/$roomId/state",{$roomId:e});return this.http.authedRequest(t,"GET",r)}fetchRoomEvent(e,t,r){const n=p.encodeUri("/rooms/$roomId/event/$eventId",{$roomId:e,$eventId:t});return this.http.authedRequest(r,"GET",n)}members(e,t,r,n,i){const o={};t&&(o.membership=t),r&&(o.not_membership=r),n&&(o.at=n);const s=p.encodeParams(o),a=p.encodeUri("/rooms/$roomId/members?"+s,{$roomId:e});return this.http.authedRequest(i,"GET",a)}upgradeRoom(e,t){const r=p.encodeUri("/rooms/$roomId/upgrade",{$roomId:e});return this.http.authedRequest(void 0,"POST",r,void 0,{new_version:t})}getStateEvent(e,t,r,n){const i={$roomId:e,$eventType:t,$stateKey:r};let o=p.encodeUri("/rooms/$roomId/state/$eventType",i);return void 0!==r&&(o=p.encodeUri(o+"/$stateKey",i)),this.http.authedRequest(n,"GET",o)}sendStateEvent(e,t,r,n="",i){const o={$roomId:e,$eventType:t,$stateKey:n};let s=p.encodeUri("/rooms/$roomId/state/$eventType",o);return void 0!==n&&(s=p.encodeUri(s+"/$stateKey",o)),this.http.authedRequest(i,"PUT",s,void 0,r)}roomInitialSync(e,t,r){p.isFunction(t)&&(r=t,t=void 0);const n=p.encodeUri("/rooms/$roomId/initialSync",{$roomId:e});return t||(t=30),this.http.authedRequest(r,"GET",n,{limit:t})}setRoomReadMarkersHttpRequest(e,t,r,n){const i=p.encodeUri("/rooms/$roomId/read_markers",{$roomId:e}),o={"m.fully_read":t,"m.read":r,"m.hidden":Boolean(!!n&&n.hidden)};return this.http.authedRequest(void 0,"POST",i,void 0,o)}getJoinedRooms(){const e=p.encodeUri("/joined_rooms",{});return this.http.authedRequest(void 0,"GET",e)}getJoinedRoomMembers(e){const t=p.encodeUri("/rooms/$roomId/joined_members",{$roomId:e});return this.http.authedRequest(void 0,"GET",t)}publicRooms(e,t){"function"==typeof e&&(t=e,e={}),void 0===e&&(e={});const r={};return e.server&&(r.server=e.server,delete e.server),0===Object.keys(e).length&&0===Object.keys(r).length?this.http.authedRequest(t,"GET","/publicRooms"):this.http.authedRequest(t,"POST","/publicRooms",r,e)}createAlias(e,t,r){const n=p.encodeUri("/directory/room/$alias",{$alias:e}),i={room_id:t};return this.http.authedRequest(r,"PUT",n,void 0,i)}deleteAlias(e,t){const r=p.encodeUri("/directory/room/$alias",{$alias:e});return this.http.authedRequest(t,"DELETE",r,void 0,void 0)}unstableGetLocalAliases(e,t){const r=p.encodeUri("/rooms/$roomId/aliases",{$roomId:e}),n=T.PREFIX_UNSTABLE+"/org.matrix.msc2432";return this.http.authedRequest(t,"GET",r,null,null,{prefix:n})}getRoomIdForAlias(e,t){const r=p.encodeUri("/directory/room/$alias",{$alias:e});return this.http.authedRequest(t,"GET",r)}resolveRoomAlias(e,t){const r=p.encodeUri("/directory/room/$alias",{$alias:e});return this.http.request(t,"GET",r)}getRoomDirectoryVisibility(e,t){const r=p.encodeUri("/directory/list/room/$roomId",{$roomId:e});return this.http.authedRequest(t,"GET",r)}setRoomDirectoryVisibility(e,t,r){const n=p.encodeUri("/directory/list/room/$roomId",{$roomId:e});return this.http.authedRequest(r,"PUT",n,void 0,{visibility:t})}setRoomDirectoryVisibilityAppService(e,t,r,n){const i=p.encodeUri("/directory/list/appservice/$networkId/$roomId",{$networkId:e,$roomId:t});return this.http.authedRequest(n,"PUT",i,void 0,{visibility:r})}searchUserDirectory(e){const t={search_term:e.term};return void 0!==e.limit&&(t.limit=e.limit),this.http.authedRequest(void 0,"POST","/user_directory/search",void 0,t)}uploadContent(e,t){return this.http.uploadContent(e,t)}cancelUpload(e){return this.http.cancelUpload(e)}getCurrentUploads(){return this.http.getCurrentUploads()}getProfileInfo(e,t,r){p.isFunction(t)&&(r=t,t=void 0);const n=t?p.encodeUri("/profile/$userId/$info",{$userId:e,$info:t}):p.encodeUri("/profile/$userId",{$userId:e});return this.http.authedRequest(r,"GET",n)}getThreePids(e){return this.http.authedRequest(e,"GET","/account/3pid",void 0,void 0)}addThreePid(e,t,r){const n={threePidCreds:e,bind:t};return this.http.authedRequest(r,"POST","/account/3pid",null,n)}addThreePidOnly(e){return s(this,void 0,void 0,(function*(){const t=(yield this.isVersionSupported("r0.6.0"))?T.PREFIX_R0:T.PREFIX_UNSTABLE;return this.http.authedRequest(void 0,"POST","/account/3pid/add",null,e,{prefix:t})}))}bindThreePid(e){return s(this,void 0,void 0,(function*(){const t=(yield this.isVersionSupported("r0.6.0"))?T.PREFIX_R0:T.PREFIX_UNSTABLE;return this.http.authedRequest(void 0,"POST","/account/3pid/bind",null,e,{prefix:t})}))}unbindThreePid(e,t){return s(this,void 0,void 0,(function*(){const r={medium:e,address:t,id_server:this.getIdentityServerUrl(!0)},n=(yield this.isVersionSupported("r0.6.0"))?T.PREFIX_R0:T.PREFIX_UNSTABLE;return this.http.authedRequest(void 0,"POST","/account/3pid/unbind",null,r,{prefix:n})}))}deleteThreePid(e,t){const r={medium:e,address:t};return this.http.authedRequest(void 0,"POST","/account/3pid/delete",null,r)}setPassword(e,t,r){const n={auth:e,new_password:t};return this.http.authedRequest(r,"POST","/account/password",null,n)}getDevices(){return this.http.authedRequest(void 0,"GET","/devices",void 0,void 0)}getDevice(e){const t=p.encodeUri("/devices/$device_id",{$device_id:e});return this.http.authedRequest(void 0,"GET",t,void 0,void 0)}setDeviceDetails(e,t){const r=p.encodeUri("/devices/$device_id",{$device_id:e});return this.http.authedRequest(void 0,"PUT",r,void 0,t)}deleteDevice(e,t){const r=p.encodeUri("/devices/$device_id",{$device_id:e}),n={};return t&&(n.auth=t),this.http.authedRequest(void 0,"DELETE",r,void 0,n)}deleteMultipleDevices(e,t){const r={devices:e};t&&(r.auth=t);return this.http.authedRequest(void 0,"POST","/delete_devices",void 0,r)}getPushers(e){return this.http.authedRequest(e,"GET","/pushers",void 0,void 0)}setPusher(e,t){return this.http.authedRequest(t,"POST","/pushers/set",null,e)}getPushRules(e){return this.http.authedRequest(e,"GET","/pushrules/").then((e=>m.PushProcessor.rewriteDefaultRules(e)))}addPushRule(e,t,r,n,i){const o=p.encodeUri("/pushrules/"+e+"/$kind/$ruleId",{$kind:t,$ruleId:r});return this.http.authedRequest(i,"PUT",o,void 0,n)}deletePushRule(e,t,r,n){const i=p.encodeUri("/pushrules/"+e+"/$kind/$ruleId",{$kind:t,$ruleId:r});return this.http.authedRequest(n,"DELETE",i)}setPushRuleEnabled(e,t,r,n,i){const o=p.encodeUri("/pushrules/"+e+"/$kind/$ruleId/enabled",{$kind:t,$ruleId:r});return this.http.authedRequest(i,"PUT",o,void 0,{enabled:n})}setPushRuleActions(e,t,r,n,i){const o=p.encodeUri("/pushrules/"+e+"/$kind/$ruleId/actions",{$kind:t,$ruleId:r});return this.http.authedRequest(i,"PUT",o,void 0,{actions:n})}search(e,t){const r={};return e.next_batch&&(r.next_batch=e.next_batch),this.http.authedRequest(t,"POST","/search",r,e.body)}uploadKeysRequest(e,t,r){return this.http.authedRequest(r,"POST","/keys/upload",void 0,e)}uploadKeySignatures(e){return this.http.authedRequest(void 0,"POST","/keys/signatures/upload",void 0,e,{prefix:T.PREFIX_UNSTABLE})}downloadKeysForUsers(e,t){if(p.isFunction(t))throw new Error("downloadKeysForUsers no longer accepts a callback parameter");const r={device_keys:{}};return"token"in(t=t||{})&&(r.token=t.token),e.forEach((e=>{r.device_keys[e]=[]})),this.http.authedRequest(void 0,"POST","/keys/query",void 0,r)}claimOneTimeKeys(e,t="signed_curve25519",r){const n={};void 0===t&&(t="signed_curve25519");for(let r=0;r{const t=e[0].toLowerCase(),i=e[1].toLowerCase(),s=r.sha256(`${t} ${i} ${n.pepper}`).replace(/\+/g,"-").replace(/\//g,"_");return o[s]=e[0],s})),n.algorithm="sha256"}else{if(!i.algorithms.includes("none"))throw new Error("Unsupported identity server: unknown hash algorithm");n.addresses=e.map((e=>{const t=`${e[0].toLowerCase()} ${e[1].toLowerCase()}`;return o[t]=e[0],t})),n.algorithm="none"}const s=yield this.http.idServerRequest(void 0,"POST","/lookup",n,T.PREFIX_IDENTITY_V2,r);if(!s||!s.mappings)return[];const a=[];for(const e of Object.keys(s.mappings)){const t=s.mappings[e],r=o[e];if(!r)throw new Error("Identity server returned more results than expected");a.push({address:r,mxid:t})}return a}))}lookupThreePid(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=(yield this.identityHashedLookup([[t,e]],n)).find((e=>e.address===t));if(!i)return r&&r(null,{}),{};const o={address:t,medium:e,mxid:i.mxid};return r&&r(null,o),o}))}bulkLookupThreePids(e,t){return s(this,void 0,void 0,(function*(){const r=yield this.identityHashedLookup(e.map((e=>[e[1],e[0]])),t),n=[];for(const t of r){const r=e.find((e=>e[1]===t.address));if(!r)throw new Error("Identity sever returned unexpected results");n.push([r[0],t.address,t.mxid])}return{threepids:n}}))}getIdentityAccount(e){return this.http.idServerRequest(void 0,"GET","/account",void 0,T.PREFIX_IDENTITY_V2,e)}sendToDevice(e,t,r){const n=p.encodeUri("/sendToDevice/$eventType/$txnId",{$eventType:e,$txnId:r||this.makeTxnId()}),i={messages:t},o=Object.keys(t).reduce(((e,r)=>(e[r]=Object.keys(t[r]),e)),{});return w.logger.log(`PUT ${n}`,o),this.http.authedRequest(void 0,"PUT",n,void 0,i)}getThirdpartyProtocols(){return this.http.authedRequest(void 0,"GET","/thirdparty/protocols",void 0,void 0).then((e=>{if(!e||"object"!=typeof e)throw new Error(`/thirdparty/protocols did not return an object: ${e}`);return e}))}getThirdpartyLocation(e,t){const r=p.encodeUri("/thirdparty/location/$protocol",{$protocol:e});return this.http.authedRequest(void 0,"GET",r,t,void 0)}getThirdpartyUser(e,t){const r=p.encodeUri("/thirdparty/user/$protocol",{$protocol:e});return this.http.authedRequest(void 0,"GET",r,t,void 0)}getTerms(e,t){const r=this.termsUrlForService(e,t);return this.http.requestOtherUrl(void 0,"GET",r)}agreeToTerms(e,t,r,n){const i=this.termsUrlForService(e,t),o={Authorization:"Bearer "+r};return this.http.requestOtherUrl(void 0,"POST",i,null,{user_accepts:n},{headers:o})}reportEvent(e,t,r,n){const i=p.encodeUri("/rooms/$roomId/report/$eventId",{$roomId:e,$eventId:t});return this.http.authedRequest(void 0,"POST",i,null,{score:r,reason:n})}getSpaceSummary(e,t,r,n,i,o){const s=p.encodeUri("/rooms/$roomId/spaces",{$roomId:e});return this.http.authedRequest(void 0,"POST",s,null,{max_rooms_per_space:t,suggested_only:r,auto_join_only:n,limit:i,batch:o},{prefix:"/_matrix/client/unstable/org.matrix.msc2946"})}unstableCreateFileTree(e){return s(this,void 0,void 0,(function*(){const{room_id:t}=yield this.createRoom({name:e,preset:L.Preset.PrivateChat,power_level_content_override:Object.assign(Object.assign({},$.DEFAULT_TREE_POWER_LEVELS_TEMPLATE),{users:{[this.getUserId()]:100}}),creation_content:{[N.RoomCreateTypeField]:N.RoomType.Space},initial_state:[{type:N.UNSTABLE_MSC3088_PURPOSE.name,state_key:N.UNSTABLE_MSC3089_TREE_SUBTYPE.name,content:{[N.UNSTABLE_MSC3088_ENABLED.name]:!0}},{type:N.EventType.RoomEncryption,state_key:"",content:{algorithm:S.MEGOLM_ALGORITHM}}]});return new $.MSC3089TreeSpace(this,t)}))}unstableGetFileTreeSpace(e){var t,r;const n=this.getRoom(e);if(!n)return null;const i=n.currentState.getStateEvents(N.EventType.RoomCreate,""),o=n.currentState.getStateEvents(N.UNSTABLE_MSC3088_PURPOSE.name,N.UNSTABLE_MSC3089_TREE_SUBTYPE.name);if(!i)throw new Error("Expected single room create event");return(null===(t=null==o?void 0:o.getContent())||void 0===t?void 0:t[N.UNSTABLE_MSC3088_ENABLED.name])?(null===(r=i.getContent())||void 0===r?void 0:r[N.RoomCreateTypeField])!==N.RoomType.Space?null:new $.MSC3089TreeSpace(this,e):null}getGroupSummary(e){const t=p.encodeUri("/groups/$groupId/summary",{$groupId:e});return this.http.authedRequest(void 0,"GET",t)}getGroupProfile(e){const t=p.encodeUri("/groups/$groupId/profile",{$groupId:e});return this.http.authedRequest(void 0,"GET",t)}setGroupProfile(e,t){const r=p.encodeUri("/groups/$groupId/profile",{$groupId:e});return this.http.authedRequest(void 0,"POST",r,void 0,t)}setGroupJoinPolicy(e,t){const r=p.encodeUri("/groups/$groupId/settings/m.join_policy",{$groupId:e});return this.http.authedRequest(void 0,"PUT",r,void 0,{"m.join_policy":t})}getGroupUsers(e){const t=p.encodeUri("/groups/$groupId/users",{$groupId:e});return this.http.authedRequest(void 0,"GET",t)}getGroupInvitedUsers(e){const t=p.encodeUri("/groups/$groupId/invited_users",{$groupId:e});return this.http.authedRequest(void 0,"GET",t)}getGroupRooms(e){const t=p.encodeUri("/groups/$groupId/rooms",{$groupId:e});return this.http.authedRequest(void 0,"GET",t)}inviteUserToGroup(e,t){const r=p.encodeUri("/groups/$groupId/admin/users/invite/$userId",{$groupId:e,$userId:t});return this.http.authedRequest(void 0,"PUT",r,void 0,{})}removeUserFromGroup(e,t){const r=p.encodeUri("/groups/$groupId/admin/users/remove/$userId",{$groupId:e,$userId:t});return this.http.authedRequest(void 0,"PUT",r,void 0,{})}addUserToGroupSummary(e,t,r){const n=p.encodeUri(r?"/groups/$groupId/summary/$roleId/users/$userId":"/groups/$groupId/summary/users/$userId",{$groupId:e,$roleId:r,$userId:t});return this.http.authedRequest(void 0,"PUT",n,void 0,{})}removeUserFromGroupSummary(e,t){const r=p.encodeUri("/groups/$groupId/summary/users/$userId",{$groupId:e,$userId:t});return this.http.authedRequest(void 0,"DELETE",r,void 0,{})}addRoomToGroupSummary(e,t,r){const n=p.encodeUri(r?"/groups/$groupId/summary/$categoryId/rooms/$roomId":"/groups/$groupId/summary/rooms/$roomId",{$groupId:e,$categoryId:r,$roomId:t});return this.http.authedRequest(void 0,"PUT",n,void 0,{})}removeRoomFromGroupSummary(e,t){const r=p.encodeUri("/groups/$groupId/summary/rooms/$roomId",{$groupId:e,$roomId:t});return this.http.authedRequest(void 0,"DELETE",r,void 0,{})}addRoomToGroup(e,t,r){void 0===r&&(r=!0);const n=p.encodeUri("/groups/$groupId/admin/rooms/$roomId",{$groupId:e,$roomId:t});return this.http.authedRequest(void 0,"PUT",n,void 0,{"m.visibility":{type:r?"public":"private"}})}updateGroupRoomVisibility(e,t,r){const n=p.encodeUri("/groups/$groupId/admin/rooms/$roomId/config/m.visibility",{$groupId:e,$roomId:t});return this.http.authedRequest(void 0,"PUT",n,void 0,{type:r?"public":"private"})}removeRoomFromGroup(e,t){const r=p.encodeUri("/groups/$groupId/admin/rooms/$roomId",{$groupId:e,$roomId:t});return this.http.authedRequest(void 0,"DELETE",r,void 0,{})}acceptGroupInvite(e,t=null){const r=p.encodeUri("/groups/$groupId/self/accept_invite",{$groupId:e});return this.http.authedRequest(void 0,"PUT",r,void 0,t||{})}joinGroup(e){const t=p.encodeUri("/groups/$groupId/self/join",{$groupId:e});return this.http.authedRequest(void 0,"PUT",t,void 0,{})}leaveGroup(e){const t=p.encodeUri("/groups/$groupId/self/leave",{$groupId:e});return this.http.authedRequest(void 0,"PUT",t,void 0,{})}getJoinedGroups(){const e=p.encodeUri("/joined_groups",{});return this.http.authedRequest(void 0,"GET",e)}createGroup(e){const t=p.encodeUri("/create_group",{});return this.http.authedRequest(void 0,"POST",t,void 0,e)}getPublicisedGroups(e){const t=p.encodeUri("/publicised_groups",{});return this.http.authedRequest(void 0,"POST",t,void 0,{user_ids:e})}setGroupPublicity(e,t){const r=p.encodeUri("/groups/$groupId/self/update_publicity",{$groupId:e});return this.http.authedRequest(void 0,"PUT",r,void 0,{publicise:t})}}r.MatrixClient=W,W.RESTORE_BACKUP_ERROR_BAD_KEY="RESTORE_BACKUP_ERROR_BAD_KEY"}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./@types/event":58,"./@types/partials":59,"./ReEmitter":61,"./autodiscovery":62,"./content-helpers":65,"./content-repo":66,"./crypto":83,"./crypto/RoomList":72,"./crypto/api":79,"./crypto/backup":80,"./crypto/dehydration":81,"./crypto/key_passphrase":84,"./crypto/olmlib":85,"./crypto/recoverykey":86,"./event-mapper":100,"./filter":102,"./http-api":103,"./logger":106,"./matrix":107,"./models/MSC3089TreeSpace":109,"./models/event":113,"./models/event-timeline":112,"./models/search-result":120,"./models/user":121,"./pushprocessor":122,"./randomstring":123,"./service-types":126,"./store/stub":132,"./sync":135,"./sync.api":134,"./utils":137,"./webrtc/call":138,"./webrtc/callEventHandler":139,events:36,url:56}],65:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.makeEmoteMessage=r.makeNotice=r.makeTextMessage=r.makeHtmlEmote=r.makeHtmlNotice=r.makeHtmlMessage=void 0,r.makeHtmlMessage=function(e,t){return{msgtype:"m.text",format:"org.matrix.custom.html",body:e,formatted_body:t}},r.makeHtmlNotice=function(e,t){return{msgtype:"m.notice",format:"org.matrix.custom.html",body:e,formatted_body:t}},r.makeHtmlEmote=function(e,t){return{msgtype:"m.emote",format:"org.matrix.custom.html",body:e,formatted_body:t}},r.makeTextMessage=function(e){return{msgtype:"m.text",body:e}},r.makeNotice=function(e){return{msgtype:"m.notice",body:e}},r.makeEmoteMessage=function(e){return{msgtype:"m.emote",body:e}}},{}],66:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(r,"__esModule",{value:!0}),r.getHttpUriForMxc=void 0;const s=o(e("./utils"));r.getHttpUriForMxc=function(e,t,r,n,i,o=!1){if("string"!=typeof t||!t)return"";if(0!==t.indexOf("mxc://"))return o?t:"";let a=t.slice(6),c="/_matrix/media/r0/download/";const u={};r&&(u.width=Math.round(r)),n&&(u.height=Math.round(n)),i&&(u.method=i),Object.keys(u).length>0&&(c="/_matrix/media/r0/thumbnail/");const l=a.indexOf("#");let d="";return l>=0&&(d=a.substr(l),a=a.substr(0,l)),e+c+a+(0===Object.keys(u).length?"":"?"+s.encodeParams(u))+d}},{"./utils":137}],67:[function(e,t,r){(function(t,n){(function(){"use strict";var i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.requestKeysDuringVerification=r.createCryptoStoreCacheCallbacks=r.DeviceTrustLevel=r.UserTrustLevel=r.CrossSigningLevel=r.CrossSigningInfo=void 0;const o=e("events"),s=e("./olmlib"),a=e("../logger"),c=e("../crypto/store/indexeddb-crypto-store"),u=e("./aes");function l(e){return Object.values(e.keys)[0]}class d extends o.EventEmitter{constructor(e,t={},r={}){super(),this.userId=e,this.callbacks=t,this.cacheCallbacks=r,this.keys={},this.firstUse=!0,this.crossSigningVerifiedBefore=!1}static fromStorage(e,t){const r=new d(t);for(const t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}toStorage(){return{keys:this.keys,firstUse:this.firstUse,crossSigningVerifiedBefore:this.crossSigningVerifiedBefore}}getCrossSigningKey(e,r){return i(this,void 0,void 0,(function*(){const n=["master","self_signing","user_signing"].indexOf(e)>=0;if(!this.callbacks.getCrossSigningKey)throw new Error("No getCrossSigningKey callback supplied");function i(e){if(!e)return;const n=new t.Olm.PkSigning,i=n.init_with_seed(e);if(i===r)return[i,n];n.free()}let o;void 0===r&&(r=this.getId(e)),this.cacheCallbacks.getCrossSigningKeyCache&&n&&(o=yield this.cacheCallbacks.getCrossSigningKeyCache(e,r));const s=i(o);if(s)return s;o=yield this.callbacks.getCrossSigningKey(e,r);const a=i(o);if(a)return this.cacheCallbacks.storeCrossSigningKeyCache&&n&&(yield this.cacheCallbacks.storeCrossSigningKeyCache(e,o)),a;if(!o)throw new Error("getCrossSigningKey callback for "+e+" returned falsey");throw new Error("Key type "+e+" from getCrossSigningKey callback did not match")}))}isStoredInSecretStorage(e){return i(this,void 0,void 0,(function*(){const t=(yield e.isStored("m.cross_signing.master",!1))||{};function r(e){for(const r of Object.keys(t))e[r]||delete t[r]}for(const t of["self_signing","user_signing"])r((yield e.isStored(`m.cross_signing.${t}`,!1))||{});return Object.keys(t).length?t:null}))}static storeInSecretStorage(e,t){return i(this,void 0,void 0,(function*(){for(const[r,n]of e){const e=s.encodeBase64(n);yield t.store(`m.cross_signing.${r}`,e)}}))}static getFromSecretStorage(e,t){return i(this,void 0,void 0,(function*(){const r=yield t.get(`m.cross_signing.${e}`);return r?s.decodeBase64(r):null}))}isStoredInKeyCache(e){return i(this,void 0,void 0,(function*(){const t=this.cacheCallbacks;if(!t)return!1;const r=e?[e]:["master","self_signing","user_signing"];for(const e of r)if(!(yield t.getCrossSigningKeyCache(e)))return!1;return!0}))}getCrossSigningKeysFromCache(){return i(this,void 0,void 0,(function*(){const e=new Map,t=this.cacheCallbacks;if(!t)return e;for(const r of["master","self_signing","user_signing"]){const n=yield t.getCrossSigningKeyCache(r);n&&e.set(r,n)}return e}))}getId(e="master"){if(!this.keys[e])return null;return l(this.keys[e])}resetKeys(e){return i(this,void 0,void 0,(function*(){if(!this.callbacks.saveCrossSigningKeys)throw new Error("No saveCrossSigningKeys callback supplied");if(void 0===e||e&h.MASTER||!this.keys.master)e=h.MASTER|h.USER_SIGNING|h.SELF_SIGNING;else if(0===e)return;const r={},n={};let i,o;try{if(e&h.MASTER?(i=new t.Olm.PkSigning,r.master=i.generate_seed(),o=i.init_with_seed(r.master),n.master={user_id:this.userId,usage:["master"],keys:{["ed25519:"+o]:o}}):[o,i]=yield this.getCrossSigningKey("master"),e&h.SELF_SIGNING){const e=new t.Olm.PkSigning;try{r.self_signing=e.generate_seed();const t=e.init_with_seed(r.self_signing);n.self_signing={user_id:this.userId,usage:["self_signing"],keys:{["ed25519:"+t]:t}},s.pkSign(n.self_signing,i,this.userId,o)}finally{e.free()}}if(e&h.USER_SIGNING){const e=new t.Olm.PkSigning;try{r.user_signing=e.generate_seed();const t=e.init_with_seed(r.user_signing);n.user_signing={user_id:this.userId,usage:["user_signing"],keys:{["ed25519:"+t]:t}},s.pkSign(n.user_signing,i,this.userId,o)}finally{e.free()}}Object.assign(this.keys,n),this.callbacks.saveCrossSigningKeys(r)}finally{i&&i.free()}}))}clearKeys(){this.keys={}}setKeys(e){const t={};if(e.master){if(e.master.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in master key from "+this.userId;throw a.logger.error(t),new Error(t)}this.keys.master?l(e.master)!==this.getId()&&(this.firstUse=!1):this.firstUse=!0,t.master=e.master}else{if(!this.keys.master)throw new Error("Tried to set cross-signing keys without a master key");t.master=this.keys.master}const r=l(t.master);if(e.user_signing){if(e.user_signing.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in user_signing key from "+this.userId;throw a.logger.error(t),new Error(t)}try{s.pkVerify(e.user_signing,r,this.userId)}catch(e){throw a.logger.error("invalid signature on user-signing key"),e}}if(e.self_signing){if(e.self_signing.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in self_signing key from "+this.userId;throw a.logger.error(t),new Error(t)}try{s.pkVerify(e.self_signing,r,this.userId)}catch(e){throw a.logger.error("invalid signature on self-signing key"),e}}e.master&&(this.keys.master=e.master,this.keys.self_signing=null,this.keys.user_signing=null),e.self_signing&&(this.keys.self_signing=e.self_signing),e.user_signing&&(this.keys.user_signing=e.user_signing)}updateCrossSigningVerifiedBefore(e){!this.crossSigningVerifiedBefore&&e&&(this.crossSigningVerifiedBefore=!0)}signObject(e,t){return i(this,void 0,void 0,(function*(){if(!this.keys[t])throw new Error("Attempted to sign with "+t+" key but no such key present");const[r,n]=yield this.getCrossSigningKey(t);try{return s.pkSign(e,n,this.userId,r),e}finally{n.free()}}))}signUser(e){return i(this,void 0,void 0,(function*(){if(this.keys.user_signing)return this.signObject(e.keys.master,"user_signing");a.logger.info("No user signing key: not signing user")}))}signDevice(e,t){return i(this,void 0,void 0,(function*(){if(e!==this.userId)throw new Error(`Trying to sign ${e}'s device; can only sign our own device`);if(this.keys.self_signing)return this.signObject({algorithms:t.algorithms,keys:t.keys,device_id:t.deviceId,user_id:e},"self_signing");a.logger.info("No self signing key: not signing device")}))}checkUserTrust(e){if(this.userId===e.userId&&this.getId()&&this.getId()===e.getId()&&this.getId("self_signing")&&this.getId("self_signing")===e.getId("self_signing"))return new f(!0,!0,this.firstUse);if(!this.keys.user_signing)return new f(!1,!1,e.firstUse);let t;const r=e.keys.master,n=this.getId("user_signing");try{s.pkVerify(r,n,this.userId),t=!0}catch(e){t=!1}return new f(t,e.crossSigningVerifiedBefore,e.firstUse)}checkDeviceTrust(e,t,r,n){const i=this.checkUserTrust(e),o=e.keys.self_signing;if(!o)return new g(!1,!1,r,n);const a=function(e,t){return{algorithms:e.algorithms,keys:e.keys,device_id:e.deviceId,user_id:t,signatures:e.signatures}}(t,e.userId);try{return s.pkVerify(o,e.getId(),e.userId),s.pkVerify(a,l(o),e.userId),g.fromUserTrustLevel(i,r,n)}catch(e){return new g(!1,!1,r,n)}}getCacheCallbacks(){return this.cacheCallbacks}}var h;r.CrossSigningInfo=d,function(e){e[e.MASTER=4]="MASTER",e[e.USER_SIGNING=2]="USER_SIGNING",e[e.SELF_SIGNING=1]="SELF_SIGNING"}(h=r.CrossSigningLevel||(r.CrossSigningLevel={}));class f{constructor(e,t,r){this.crossSigningVerified=e,this.crossSigningVerifiedBefore=t,this.tofu=r}isVerified(){return this.isCrossSigningVerified()}isCrossSigningVerified(){return this.crossSigningVerified}wasCrossSigningVerified(){return this.crossSigningVerifiedBefore}isTofu(){return this.tofu}}r.UserTrustLevel=f;class g{constructor(e,t,r,n){this.crossSigningVerified=e,this.tofu=t,this.localVerified=r,this.trustCrossSignedDevices=n}static fromUserTrustLevel(e,t,r){return new g(e.isCrossSigningVerified(),e.isTofu(),t,r)}isVerified(){return Boolean(this.isLocallyVerified()||this.trustCrossSignedDevices&&this.isCrossSigningVerified())}isCrossSigningVerified(){return this.crossSigningVerified}isLocallyVerified(){return this.localVerified}isTofu(){return this.tofu}}r.DeviceTrustLevel=g,r.createCryptoStoreCacheCallbacks=function(e,t){return{getCrossSigningKeyCache:function(r,o){return i(this,void 0,void 0,(function*(){const i=yield new Promise((t=>e.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(n=>{e.getSecretStorePrivateKey(n,t,r)}))));if(i&&i.ciphertext){const e=n.from(t._pickleKey),o=yield u.decryptAES(i,e,r);return s.decodeBase64(o)}return i}))},storeCrossSigningKeyCache:function(r,o){return i(this,void 0,void 0,(function*(){if(!(o instanceof Uint8Array))throw new Error(`storeCrossSigningKeyCache expects Uint8Array, got ${o}`);const i=n.from(t._pickleKey),a=yield u.encryptAES(s.encodeBase64(o),i,r);return e.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(t=>{e.storeSecretStorePrivateKey(t,r,a)}))}))}}},r.requestKeysDuringVerification=function(e,t,r){return i(this,void 0,void 0,(function*(){if(e.getUserId()===t)return a.logger.log("Cross-signing: Self-verification done; requesting keys"),new Promise(((t,n)=>{const o=e,c=o.crypto.crossSigningInfo,u=new d(c.userId,{getCrossSigningKey:e=>i(this,void 0,void 0,(function*(){a.logger.debug("Cross-signing: requesting secret",e,r);const{promise:t}=o.requestSecret(`m.cross_signing.${e}`,[r]),n=yield t,i=s.decodeBase64(n);return Uint8Array.from(i)}))},c.getCacheCallbacks());u.keys=c.keys;const l=new Promise(((e,t)=>{setTimeout(e,6e4,new Error("Timeout"))})),h=(()=>i(this,void 0,void 0,(function*(){if(!(yield o.crypto.getSessionBackupPrivateKey())){a.logger.info("No cached backup key found. Requesting...");const e=o.requestSecret("m.megolm_backup.v1",[r]),t=yield e.promise;a.logger.info("Got key backup key, decoding...");const n=s.decodeBase64(t);a.logger.info("Decoded backup key, storing..."),o.crypto.storeSessionBackupPrivateKey(Uint8Array.from(n)),a.logger.info("Backup key stored. Starting backup restore...");const i=yield o.getKeyBackupVersion();o.restoreKeyBackupWithCache(void 0,void 0,i).then((()=>{a.logger.info("Backup restored.")}))}})))();return Promise.race([Promise.all([u.getCrossSigningKey("master"),u.getCrossSigningKey("self_signing"),u.getCrossSigningKey("user_signing"),h]),l]).then(t,n)})).catch((e=>{a.logger.warn("Cross-signing: failure while requesting keys:",e)}))}))}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer)},{"../crypto/store/indexeddb-crypto-store":88,"../logger":106,"./aes":74,"./olmlib":85,buffer:34,events:36}],68:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.DeviceList=void 0;const a=e("events"),c=e("../logger"),u=e("./deviceinfo"),l=e("./CrossSigning"),d=o(e("./olmlib")),h=e("./store/indexeddb-crypto-store"),f=e("../utils");var g;!function(e){e[e.NotTracked=0]="NotTracked",e[e.PendingDownload=1]="PendingDownload",e[e.DownloadInProgress=2]="DownloadInProgress",e[e.UpToDate=3]="UpToDate"}(g||(g={}));class p extends a.EventEmitter{constructor(e,t,r,n=250){super(),this.cryptoStore=t,this.keyDownloadChunkSize=n,this.devices={},this.crossSigningInfo={},this.userByIdentityKey={},this.deviceTrackingStatus={},this.syncToken=null,this.keyDownloadsInProgressByUser={},this.dirty=!1,this.savePromise=null,this.resolveSavePromise=null,this.savePromiseTime=null,this.saveTimer=null,this.hasFetched=null,this.serialiser=new v(e,r,this)}load(){return s(this,void 0,void 0,(function*(){yield this.cryptoStore.doTxn("readonly",[h.IndexedDBCryptoStore.STORE_DEVICE_DATA],(e=>{this.cryptoStore.getEndToEndDeviceData(e,(e=>{this.hasFetched=Boolean(e&&e.devices),this.devices=e?e.devices:{},this.crossSigningInfo=e&&e.crossSigningInfo||{},this.deviceTrackingStatus=e?e.trackingStatus:{},this.syncToken=e?e.syncToken:null,this.userByIdentityKey={};for(const e of Object.keys(this.devices)){const t=this.devices[e];for(const r of Object.keys(t)){const n=t[r].keys["curve25519:"+r];void 0!==n&&(this.userByIdentityKey[n]=e)}}}))}));for(const e of Object.keys(this.deviceTrackingStatus))this.deviceTrackingStatus[e]==g.DownloadInProgress&&(this.deviceTrackingStatus[e]=g.PendingDownload)}))}stop(){null!==this.saveTimer&&clearTimeout(this.saveTimer)}saveIfDirty(e=500){return s(this,void 0,void 0,(function*(){if(!this.dirty)return Promise.resolve(!1);const t=Date.now()+e;this.savePromiseTime&&t{this.resolveSavePromise=e})),this.savePromise=r),null===this.saveTimer){const r=this.resolveSavePromise;this.savePromiseTime=t,this.saveTimer=setTimeout((()=>{c.logger.log("Saving device tracking data",this.syncToken),this.savePromiseTime=null,this.saveTimer=null,this.savePromise=null,this.resolveSavePromise=null,this.cryptoStore.doTxn("readwrite",[h.IndexedDBCryptoStore.STORE_DEVICE_DATA],(e=>{this.cryptoStore.storeEndToEndDeviceData({devices:this.devices,crossSigningInfo:this.crossSigningInfo,trackingStatus:this.deviceTrackingStatus,syncToken:this.syncToken},e)})).then((()=>{this.dirty=!1,r(!0)}),(e=>{c.logger.error("Failed to save device tracking data",this.syncToken),c.logger.error(e)}))}),e)}return r}))}getSyncToken(){return this.syncToken}setSyncToken(e){this.syncToken=e}downloadKeys(e,t){const r=[],n=[];if(e.forEach((e=>{const i=this.deviceTrackingStatus[e];this.keyDownloadsInProgressByUser[e]?(c.logger.log(`downloadKeys: already have a download in progress for ${e}: awaiting its result`),n.push(this.keyDownloadsInProgressByUser[e])):(t||i!=g.UpToDate)&&r.push(e)})),0!=r.length){c.logger.log("downloadKeys: downloading for",r);const e=this.doKeyDownload(r);n.push(e)}return 0===n.length&&c.logger.log("downloadKeys: already have all necessary keys"),Promise.all(n).then((()=>this.getDevicesFromStore(e)))}getDevicesFromStore(e){const t={};return e.map((e=>{t[e]={};(this.getStoredDevicesForUser(e)||[]).map((function(r){t[e][r.deviceId]=r}))})),t}getKnownUserIds(){return Object.keys(this.devices)}getStoredDevicesForUser(e){const t=this.devices[e];if(!t)return null;const r=[];for(const e in t)t.hasOwnProperty(e)&&r.push(u.DeviceInfo.fromStorage(t[e],e));return r}getRawStoredDevicesForUser(e){return this.devices[e]}getStoredCrossSigningForUser(e){return this.crossSigningInfo[e]?l.CrossSigningInfo.fromStorage(this.crossSigningInfo[e],e):null}storeCrossSigningForUser(e,t){this.crossSigningInfo[e]=t,this.dirty=!0}getStoredDevice(e,t){const r=this.devices[e];if(r&&r[t])return u.DeviceInfo.fromStorage(r[t],t)}getUserByIdentityKey(e,t){return e!==d.OLM_ALGORITHM&&e!==d.MEGOLM_ALGORITHM?null:this.userByIdentityKey[t]}getDeviceByIdentityKey(e,t){const r=this.getUserByIdentityKey(e,t);if(!r)return null;const n=this.devices[r];if(!n)return null;for(const e in n){if(!n.hasOwnProperty(e))continue;const r=n[e];for(const n in r.keys){if(!r.keys.hasOwnProperty(n))continue;if(0!==n.indexOf("curve25519:"))continue;if(r.keys[n]==t)return u.DeviceInfo.fromStorage(r,e)}}return null}storeDevicesForUser(e,t){this.setRawStoredDevicesForUser(e,t),this.dirty=!0}startTrackingDeviceList(e){if("string"!=typeof e)throw new Error("userId must be a string; was "+e);this.deviceTrackingStatus[e]||(c.logger.log("Now tracking device list for "+e),this.deviceTrackingStatus[e]=g.PendingDownload,this.dirty=!0)}stopTrackingDeviceList(e){this.deviceTrackingStatus[e]&&(c.logger.log("No longer tracking device list for "+e),this.deviceTrackingStatus[e]=g.NotTracked,this.dirty=!0)}stopTrackingAllDeviceLists(){for(const e of Object.keys(this.deviceTrackingStatus))this.deviceTrackingStatus[e]=g.NotTracked;this.dirty=!0}invalidateUserDeviceList(e){this.deviceTrackingStatus[e]&&(c.logger.log("Marking device list outdated for",e),this.deviceTrackingStatus[e]=g.PendingDownload,this.dirty=!0)}refreshOutdatedDeviceLists(){this.saveIfDirty();const e=[];for(const t of Object.keys(this.deviceTrackingStatus)){this.deviceTrackingStatus[t]==g.PendingDownload&&e.push(t)}return this.doKeyDownload(e)}setRawStoredDevicesForUser(e,t){if(void 0!==this.devices[e])for(const[t,r]of Object.entries(this.devices[e])){const e=r.keys["curve25519:"+t];delete this.userByIdentityKey[e]}this.devices[e]=t;for(const[r,n]of Object.entries(t)){const t=n.keys["curve25519:"+r];this.userByIdentityKey[t]=e}}setRawStoredCrossSigningForUser(e,t){this.crossSigningInfo[e]=t}doKeyDownload(e){if(0===e.length)return Promise.resolve();const t=this.serialiser.updateDevicesForUsers(e,this.syncToken).then((()=>{r(!0)}),(t=>{throw c.logger.error("Error downloading keys for "+e+":",t),r(!1),t}));e.forEach((e=>{this.keyDownloadsInProgressByUser[e]=t;this.deviceTrackingStatus[e]==g.PendingDownload&&(this.deviceTrackingStatus[e]=g.DownloadInProgress)}));const r=r=>{this.emit("crypto.willUpdateDevices",e,!this.hasFetched),e.forEach((e=>{if(this.dirty=!0,this.keyDownloadsInProgressByUser[e]!==t)return void c.logger.log("Another update in the queue for",e,"- not marking up-to-date");delete this.keyDownloadsInProgressByUser[e];this.deviceTrackingStatus[e]==g.DownloadInProgress&&(r?(this.deviceTrackingStatus[e]=g.UpToDate,c.logger.log("Device list for",e,"now up to date")):this.deviceTrackingStatus[e]=g.PendingDownload)})),this.saveIfDirty(),this.emit("crypto.devicesUpdated",e,!this.hasFetched),this.hasFetched=!0};return t}}r.DeviceList=p;class v{constructor(e,t,r){this.baseApis=e,this.olmDevice=t,this.deviceList=r,this.downloadInProgress=!1,this.keyDownloadsQueuedByUser={},this.queuedQueryDeferred=null,this.syncToken=null}updateDevicesForUsers(e,t){return e.forEach((e=>{this.keyDownloadsQueuedByUser[e]=!0})),this.queuedQueryDeferred||(this.queuedQueryDeferred=f.defer()),this.syncToken=t,this.downloadInProgress?(c.logger.log("Queued key download for",e),this.queuedQueryDeferred.promise):this.doQueuedQueries()}doQueuedQueries(){if(this.downloadInProgress)throw new Error("DeviceListUpdateSerialiser.doQueuedQueries called with request active");const e=Object.keys(this.keyDownloadsQueuedByUser);this.keyDownloadsQueuedByUser={};const t=this.queuedQueryDeferred;this.queuedQueryDeferred=null,c.logger.log("Starting key download for",e),this.downloadInProgress=!0;const r={};this.syncToken&&(r.token=this.syncToken);const n=[];for(let t=0;tthis.baseApis.downloadKeysForUsers(i,r)))}return f.chunkPromises(n,3).then((t=>s(this,void 0,void 0,(function*(){const r=Object.assign({},...t.map((e=>e.device_keys||{}))),n=Object.assign({},...t.map((e=>e.master_keys||{}))),i=Object.assign({},...t.map((e=>e.self_signing_keys||{}))),o=Object.assign({},...t.map((e=>e.user_signing_keys||{})));for(const t of e){yield f.sleep(5);try{yield this.processQueryResponseForUser(t,r[t],{master:n[t],self_signing:i[t],user_signing:o[t]})}catch(e){c.logger.error(`Error processing keys for ${t}:`,e)}}})))).then((()=>{c.logger.log("Completed key download for "+e),this.downloadInProgress=!1,t.resolve(),this.queuedQueryDeferred&&this.doQueuedQueries()}),(r=>{c.logger.warn("Error downloading keys for "+e+":",r),this.downloadInProgress=!1,t.reject(r)})),t.promise}processQueryResponseForUser(e,t,r){return s(this,void 0,void 0,(function*(){c.logger.log("got device keys for "+e+":",t),c.logger.log("got cross-signing keys for "+e+":",r);{const r={},n=this.deviceList.getRawStoredDevicesForUser(e);n&&Object.keys(n).forEach((e=>{const t=u.DeviceInfo.fromStorage(n[e],e);r[e]=t})),yield function(e,t,r,n,i,o){return s(this,void 0,void 0,(function*(){let s=!1;for(const e in r)if(r.hasOwnProperty(e)&&!(e in n)){if(t===i&&e===o){c.logger.warn(`Local device ${e} missing from sync, skipping removal`);continue}c.logger.log("Device "+t+":"+e+" has been removed"),delete r[e],s=!0}for(const i in n){if(!n.hasOwnProperty(i))continue;const o=n[i];o.user_id===t?o.device_id===i?(yield y(e,r,o))&&(s=!0):c.logger.warn("Mismatched device_id "+o.device_id+" in keys from "+t+":"+i):c.logger.warn("Mismatched user_id "+o.user_id+" in keys from "+t+":"+i)}return s}))}(this.olmDevice,e,r,t||{},this.baseApis.getUserId(),this.baseApis.deviceId);const i={};Object.keys(r).forEach((e=>{i[e]=r[e].toStorage()})),this.deviceList.setRawStoredDevicesForUser(e,i)}if(r&&(r.master||r.self_signing||r.user_signing)){const t=this.deviceList.getStoredCrossSigningForUser(e)||new l.CrossSigningInfo(e);t.setKeys(r),this.deviceList.setRawStoredCrossSigningForUser(e,t.toStorage()),this.deviceList.emit("userCrossSigningUpdated",e)}}))}}function y(e,t,r){return s(this,void 0,void 0,(function*(){if(!r.keys)return!1;const n=r.device_id,i=r.user_id,o="ed25519:"+n,s=r.keys[o];if(!s)return c.logger.warn("Device "+i+":"+n+" has no ed25519 key"),!1;const a=r.unsigned||{},l=r.signatures||{};try{yield d.verifySignature(e,r,i,n,s)}catch(e){return c.logger.warn("Unable to verify signature on device "+i+":"+n+":"+e),!1}let h;if(n in t){if(h=t[n],h.getFingerprint()!=s)return c.logger.warn("Ed25519 key for device "+i+":"+n+" has changed"),!1}else t[n]=h=new u.DeviceInfo(n);return h.keys=r.keys||{},h.algorithms=r.algorithms||[],h.unsigned=a,h.signatures=l,!0}))}},{"../logger":106,"../utils":137,"./CrossSigning":67,"./deviceinfo":82,"./olmlib":85,"./store/indexeddb-crypto-store":88,events:36}],69:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.EncryptionSetupOperation=r.EncryptionSetupBuilder=void 0;const i=e("../logger"),o=e("../models/event"),s=e("events"),a=e("./CrossSigning"),c=e("./store/indexeddb-crypto-store"),u=e("../http-api");r.EncryptionSetupBuilder=class{constructor(e,t){this.crossSigningKeys=null,this.keySignatures=null,this.keyBackupInfo=null,this.accountDataClientAdapter=new d(e),this.crossSigningCallbacks=new h,this.ssssCryptoCallbacks=new f(t)}addCrossSigningKeys(e,t){this.crossSigningKeys={authUpload:e,keys:t}}addSessionBackup(e){this.keyBackupInfo=e}addSessionBackupPrivateKeyToCache(e){this.sessionBackupPrivateKey=e}addKeySignature(e,t,r){this.keySignatures||(this.keySignatures={});const n=this.keySignatures[e]||{};this.keySignatures[e]=n,n[t]=r}setAccountData(e,t){return this.accountDataClientAdapter.setAccountData(e,t)}buildOperation(){const e=this.accountDataClientAdapter.values;return new l(e,this.crossSigningKeys,this.keyBackupInfo,this.keySignatures)}persist(e){return n(this,void 0,void 0,(function*(){if(this.crossSigningKeys){const t=a.createCryptoStoreCacheCallbacks(e.cryptoStore,e.olmDevice);for(const e of["master","self_signing","user_signing"]){i.logger.log(`Cache ${e} cross-signing private key locally`);const r=this.crossSigningCallbacks.privateKeys.get(e);yield t.storeCrossSigningKeyCache(e,r)}yield e.cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(t=>{e.cryptoStore.storeCrossSigningKeys(t,this.crossSigningKeys.keys)}))}this.sessionBackupPrivateKey&&(yield e.storeSessionBackupPrivateKey(this.sessionBackupPrivateKey))}))}};class l{constructor(e,t,r,n){this.accountData=e,this.crossSigningKeys=t,this.keyBackupInfo=r,this.keySignatures=n}apply(e){return n(this,void 0,void 0,(function*(){const t=e.baseApis;if(this.crossSigningKeys){const r={};for(const[e,t]of Object.entries(this.crossSigningKeys.keys))r[e+"_key"]=t;yield this.crossSigningKeys.authUpload((e=>t.uploadDeviceSigningKeys(e,r))),e.crossSigningInfo.setKeys(this.crossSigningKeys.keys)}if(this.accountData)for(const[e,r]of this.accountData)yield t.setAccountData(e,r);this.keySignatures&&(yield t.uploadKeySignatures(this.keySignatures)),this.keyBackupInfo&&(this.keyBackupInfo.version?yield t.http.authedRequest(void 0,"PUT","/room_keys/version/"+this.keyBackupInfo.version,void 0,{algorithm:this.keyBackupInfo.algorithm,auth_data:this.keyBackupInfo.auth_data},{prefix:u.PREFIX_UNSTABLE}):yield t.http.authedRequest(void 0,"POST","/room_keys/version",void 0,this.keyBackupInfo,{prefix:u.PREFIX_UNSTABLE}))}))}}r.EncryptionSetupOperation=l;class d extends s.EventEmitter{constructor(e){super(),this.existingValues=e,this.values=new Map}getAccountDataFromServer(e){return Promise.resolve(this.getAccountData(e))}getAccountData(e){const t=this.values.get(e);if(t)return t;const r=this.existingValues[e];return r?r.getContent():null}setAccountData(e,t){const r=this.values.get(e);return this.values.set(e,t),Promise.resolve().then((()=>{const n=new o.MatrixEvent({type:e,content:t});this.emit("accountData",n,r)}))}}class h{constructor(){this.privateKeys=new Map}getCrossSigningKeyCache(e,t){return this.getCrossSigningKey(e,t)}storeCrossSigningKeyCache(e,t){return this.privateKeys.set(e,t),Promise.resolve()}getCrossSigningKey(e,t){return Promise.resolve(this.privateKeys.get(e))}saveCrossSigningKeys(e){for(const[t,r]of Object.entries(e))this.privateKeys.set(t,r)}}class f{constructor(e){this.delegateCryptoCallbacks=e,this.privateKeys=new Map}getSecretStorageKey({keys:e},t){return n(this,void 0,void 0,(function*(){for(const t of Object.keys(e)){const e=this.privateKeys.get(t);if(e)return[t,e]}if(this.delegateCryptoCallbacks){const r=yield this.delegateCryptoCallbacks.getSecretStorageKey({keys:e},t);if(r){const[e,t]=r;this.privateKeys.set(e,t)}return r}}))}addPrivateKey(e,t,r){var n,i;this.privateKeys.set(e,r),null===(i=null===(n=this.delegateCryptoCallbacks)||void 0===n?void 0:n.cacheSecretStorageKey)||void 0===i||i.call(n,e,t,r)}}},{"../http-api":103,"../logger":106,"../models/event":113,"./CrossSigning":67,"./store/indexeddb-crypto-store":88,events:36}],70:[function(e,t,r){(function(t){(function(){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard"),i=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.OlmDevice=f,r.WITHHELD_MESSAGES=void 0;var o=i(e("@babel/runtime/regenerator")),s=i(e("@babel/runtime/helpers/asyncToGenerator")),a=e("../logger"),c=e("./store/indexeddb-crypto-store"),u=n(e("./algorithms"));function l(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){a=!0,o=e})),f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r49152){var t=new Error("Message too long ("+e.length+" bytes). The maximum for an encrypted message is 49152 bytes.");throw t.data={errcode:"M_TOO_LARGE",error:"Payload too large for encrypted message"},t}}function f(e){this._cryptoStore=e,this._pickleKey="DEFAULT_KEY",this.deviceCurve25519Key=null,this.deviceEd25519Key=null,this._maxOneTimeKeys=null,this._outboundGroupSessionStore={},this._inboundGroupSessionMessageIndexes={},this._sessionsInProgress={},this._olmPrekeyPromise=Promise.resolve()}function g(e,t,r,n){return p.apply(this,arguments)}function p(){return(p=(0,s.default)(o.default.mark((function e(t,r,n,i){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT,c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){r.storeAccount(e,t.pickledAccount),t.sessions.forEach((function(t){var n=t.deviceKey,i=t.sessionId,o={session:t.session,lastReceivedMessageTs:t.lastReceivedMessageTs};r.storeEndToEndSession(n,i,o,e)}))}));case 2:i.unpickle(n,t.pickledAccount);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function v(e,t,r){return y.apply(this,arguments)}function y(){return(y=(0,s.default)(o.default.mark((function e(t,r,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){t.getAccount(e,(function(i){null!==i?n.unpickle(r,i):(n.create(),i=n.pickle(r),t.storeAccount(e,i))}))}));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}f.prototype.init=(0,s.default)(o.default.mark((function e(){var r,n,i,s,c,u=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=u.length>0&&void 0!==u[0]?u[0]:{},i=new t.Olm.Account,s=r.pickleKey,c=r.fromExportedDevice,e.prev=3,!c){e.next=11;break}return s&&a.logger.warn("ignoring opts.pickleKey because opts.fromExportedDevice is present."),this._pickleKey=c.pickleKey,e.next=9,g(c,this._cryptoStore,this._pickleKey,i);case 9:e.next=14;break;case 11:return s&&(this._pickleKey=s),e.next=14,v(this._cryptoStore,this._pickleKey,i);case 14:n=JSON.parse(i.identity_keys()),this._maxOneTimeKeys=i.max_number_of_one_time_keys();case 16:return e.prev=16,i.free(),e.finish(16);case 19:this.deviceCurve25519Key=n.curve25519,this.deviceEd25519Key=n.ed25519;case 21:case"end":return e.stop()}}),e,this,[[3,,16,19]])}))),f.getOlmVersion=function(){return t.Olm.get_library_version()},f.prototype._getAccount=function(e,r){var n=this;this._cryptoStore.getAccount(e,(function(e){var i=new t.Olm.Account;try{i.unpickle(n._pickleKey,e),r(i)}finally{i.free()}}))},f.prototype._storeAccount=function(e,t){this._cryptoStore.storeAccount(e,t.pickle(this._pickleKey))},f.prototype.export=(0,s.default)(o.default.mark((function e(){var t,r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t={pickleKey:this._pickleKey},e.next=3,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_ACCOUNT,c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){r._cryptoStore.getAccount(e,(function(e){t.pickledAccount=e})),t.sessions=[],r._cryptoStore.getAllEndToEndSessions(e,(function(e){t.sessions.push(e)}))}));case 3:return e.abrupt("return",t);case 4:case"end":return e.stop()}}),e,this)}))),f.prototype._getSession=function(e,t,r,n){var i=this;this._cryptoStore.getEndToEndSession(e,t,r,(function(e){i._unpickleSession(e,n)}))},f.prototype._unpickleSession=function(e,r){var n=new t.Olm.Session;try{n.unpickle(this._pickleKey,e.session),r(Object.assign({},e,{session:n}))}finally{n.free()}},f.prototype._saveSession=function(e,t,r){var n=t.session.session_id(),i=Object.assign(t,{session:t.session.pickle(this._pickleKey)});this._cryptoStore.storeEndToEndSession(e,n,i,r)},f.prototype._getUtility=function(e){var r=new t.Olm.Utility;try{return e(r)}finally{r.free()}},f.prototype.sign=function(){var e=(0,s.default)(o.default.mark((function e(t){var r,n=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){n._getAccount(e,(function(e){r=e.sign(t)}))}));case 2:return e.abrupt("return",r);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),f.prototype.getOneTimeKeys=(0,s.default)(o.default.mark((function e(){var t,r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){r._getAccount(e,(function(e){t=JSON.parse(e.one_time_keys())}))}));case 2:return e.abrupt("return",t);case 3:case"end":return e.stop()}}),e,this)}))),f.prototype.maxNumberOfOneTimeKeys=function(){return this._maxOneTimeKeys},f.prototype.markKeysAsPublished=(0,s.default)(o.default.mark((function e(){var t=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){t._getAccount(e,(function(r){r.mark_keys_as_published(),t._storeAccount(e,r)}))}));case 2:case"end":return e.stop()}}),e,this)}))),f.prototype.generateOneTimeKeys=function(e){var t=this;return this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(r){t._getAccount(r,(function(n){n.generate_one_time_keys(e),t._storeAccount(r,n)}))}))},f.prototype.generateFallbackKey=(0,s.default)(o.default.mark((function e(){var t=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){t._getAccount(e,(function(r){r.generate_fallback_key(),t._storeAccount(e,r)}))}));case 2:case"end":return e.stop()}}),e,this)}))),f.prototype.getFallbackKey=(0,s.default)(o.default.mark((function e(){var t,r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_ACCOUNT],(function(e){r._getAccount(e,(function(e){t=JSON.parse(e.fallback_key())}))}));case 2:return e.abrupt("return",t);case 3:case"end":return e.stop()}}),e,this)}))),f.prototype.createOutboundSession=function(){var e=(0,s.default)(o.default.mark((function e(r,n){var i,s=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT,c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){s._getAccount(e,(function(o){var a=new t.Olm.Session;try{a.create_outbound(o,r,n),i=a.session_id(),s._storeAccount(e,o);var c={session:a,lastReceivedMessageTs:Date.now()};s._saveSession(r,c,e)}finally{a.free()}}))}),a.logger.withPrefix("[createOutboundSession]"));case 2:return e.abrupt("return",i);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),f.prototype.createInboundSession=function(){var e=(0,s.default)(o.default.mark((function e(r,n,i){var s,u=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0===n){e.next=2;break}throw new Error("Need messageType == 0 to create inbound session");case 2:return e.next=4,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_ACCOUNT,c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){u._getAccount(e,(function(o){var a=new t.Olm.Session;try{a.create_inbound_from(o,r,i),o.remove_one_time_keys(a),u._storeAccount(e,o);var c=a.decrypt(n,i),l={session:a,lastReceivedMessageTs:Date.now()};u._saveSession(r,l,e),s={payload:c,session_id:a.session_id()}}finally{a.free()}}))}),a.logger.withPrefix("[createInboundSession]"));case 4:return e.abrupt("return",s);case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),f.prototype.getSessionIdsForDevice=function(){var e=(0,s.default)(o.default.mark((function e(t){var r,n,i=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=a.logger.withPrefix("[getSessionIdsForDevice]"),!this._sessionsInProgress[t]){e.next=10;break}return r.debug("Waiting for Olm session for ".concat(t," to be created")),e.prev=3,e.next=6,this._sessionsInProgress[t];case 6:e.next=10;break;case 8:e.prev=8,e.t0=e.catch(3);case 10:return e.next=12,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){i._cryptoStore.getEndToEndSessions(t,e,(function(e){n=Object.keys(e)}))}),r);case 12:return e.abrupt("return",n);case 13:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(t){return e.apply(this,arguments)}}(),f.prototype.getSessionIdForDevice=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n){var i,s,a,c,u,l,d;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSessionInfoForDevice(t,r,n);case 2:if(0!==(i=e.sent).length){e.next=5;break}return e.abrupt("return",null);case 5:for(s=0,a=1;ad||u===d&&c.sessionId2&&void 0!==u[2]?u[2]:a.logger).withPrefix("[getSessionInfoForDevice]"),!this._sessionsInProgress[t]||r){e.next=11;break}return n.debug("Waiting for Olm session for ".concat(t," to be created")),e.prev=4,e.next=7,this._sessionsInProgress[t];case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(4);case 11:return i=[],e.next=14,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){s._cryptoStore.getEndToEndSessions(t,e,(function(e){var t,r=l(Object.keys(e).sort());try{var n=function(){var r=t.value;s._unpickleSession(e[r],(function(e){i.push({lastReceivedMessageTs:e.lastReceivedMessageTs,hasReceivedMessage:e.session.has_received_message(),sessionId:r})}))};for(r.s();!(t=r.n()).done;)n()}catch(e){r.e(e)}finally{r.f()}}))}),n);case 14:return e.abrupt("return",i);case 15:case"end":return e.stop()}}),e,this,[[4,9]])})));return function(t,r){return e.apply(this,arguments)}}(),f.prototype.encryptMessage=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n){var i,s=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h(n),e.next=3,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){s._getSession(t,r,e,(function(o){var c=o.session.describe();a.logger.log("encryptMessage: Olm Session ID "+r+" to "+t+": "+c),i=o.session.encrypt(n),s._saveSession(t,o,e)}))}),a.logger.withPrefix("[encryptMessage]"));case 3:return e.abrupt("return",i);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),f.prototype.decryptMessage=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n,i){var s,u=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){u._getSession(t,r,e,(function(o){var c=o.session.describe();a.logger.log("decryptMessage: Olm Session ID "+r+" from "+t+": "+c),s=o.session.decrypt(n,i),o.lastReceivedMessageTs=Date.now(),u._saveSession(t,o,e)}))}),a.logger.withPrefix("[decryptMessage]"));case 2:return e.abrupt("return",s);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i){return e.apply(this,arguments)}}(),f.prototype.matchesSession=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n,i){var s,u=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0===n){e.next=2;break}return e.abrupt("return",!1);case 2:return e.next=4,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_SESSIONS],(function(e){u._getSession(t,r,e,(function(e){s=e.session.matches_inbound(i)}))}),a.logger.withPrefix("[matchesSession]"));case 4:return e.abrupt("return",s);case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i){return e.apply(this,arguments)}}(),f.prototype.recordSessionProblem=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.storeEndToEndSessionProblem(t,r,n);case 2:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),f.prototype.sessionMayHaveProblems=function(){var e=(0,s.default)(o.default.mark((function e(t,r){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.getEndToEndSessionProblem(t,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),f.prototype.filterOutNotifiedErrorDevices=function(){var e=(0,s.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.filterOutNotifiedErrorDevices(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),f.prototype._saveOutboundGroupSession=function(e){var t=e.pickle(this._pickleKey);this._outboundGroupSessionStore[e.session_id()]=t},f.prototype._getOutboundGroupSession=function(e,r){var n=this._outboundGroupSessionStore[e];if(void 0===n)throw new Error("Unknown outbound group session "+e);var i=new t.Olm.OutboundGroupSession;try{return i.unpickle(this._pickleKey,n),r(i)}finally{i.free()}},f.prototype.createOutboundGroupSession=function(){var e=new t.Olm.OutboundGroupSession;try{return e.create(),this._saveOutboundGroupSession(e),e.session_id()}finally{e.free()}},f.prototype.encryptGroupMessage=function(e,t){var r=this;return a.logger.log("encrypting msg with megolm session ".concat(e)),h(t),this._getOutboundGroupSession(e,(function(e){var n=e.encrypt(t);return r._saveOutboundGroupSession(e),n}))},f.prototype.getOutboundGroupSessionKey=function(e){return this._getOutboundGroupSession(e,(function(e){return{chain_index:e.message_index(),key:e.session_key()}}))},f.prototype._unpickleInboundGroupSession=function(e,r){var n=new t.Olm.InboundGroupSession;try{return n.unpickle(this._pickleKey,e.session),r(n)}finally{n.free()}},f.prototype._getInboundGroupSession=function(e,t,r,n,i){var o=this;this._cryptoStore.getEndToEndInboundGroupSession(t,r,n,(function(t,r){if(null!==t){if(null!==e&&e!==t.room_id)throw new Error("Mismatched room_id for inbound group session (expected "+t.room_id+", was "+e+")");o._unpickleInboundGroupSession(t,(function(e){i(e,t,r)}))}else i(null,null,r)}))},f.prototype.addInboundGroupSession=function(){var e=(0,s.default)(o.default.mark((function e(r,n,i,s,u,l,d){var h,f=this,g=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h=g.length>7&&void 0!==g[7]?g[7]:{},e.next=3,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD,c.IndexedDBCryptoStore.STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS],(function(e){f._getInboundGroupSession(r,n,s,e,(function(o,c){var g=new t.Olm.InboundGroupSession;try{if(d?g.import_session(u):g.create(u),s!=g.session_id())throw new Error("Mismatched group session ID from senderKey: "+n);if(o&&(a.logger.log("Update for megolm session "+n+"/"+s),o.first_known_index()<=g.first_known_index()&&(o.first_known_index()!=g.first_known_index()||h.untrusted||!c.untrusted)))return void a.logger.log("Keeping existing megolm session ".concat(s));a.logger.info("Storing megolm session "+n+"/"+s+" with first index "+g.first_known_index());var p=Object.assign({},h,{room_id:r,session:g.pickle(f._pickleKey),keysClaimed:l,forwardingCurve25519KeyChain:i});f._cryptoStore.storeEndToEndInboundGroupSession(n,s,p,e),!o&&h.sharedHistory&&f._cryptoStore.addSharedHistoryInboundGroupSession(r,n,s,e)}finally{g.free()}}))}),a.logger.withPrefix("[addInboundGroupSession]"));case 3:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i,o,s,a){return e.apply(this,arguments)}}(),f.prototype.addInboundGroupSessionWithheld=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n,i,s){var a=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],(function(e){a._cryptoStore.storeEndToEndInboundGroupSessionWithheld(r,n,{room_id:t,code:i,reason:s},e)}));case 2:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i,o){return e.apply(this,arguments)}}();var m={"m.unverified":"The sender has disabled encrypting to unverified devices.","m.blacklisted":"The sender has blocked you.","m.unauthorised":"You are not authorised to read the message.","m.no_olm":"Unable to establish a secure channel."};function b(e){return e.code&&e.code in m?m[e.code]:e.reason?e.reason:"decryption key withheld"}r.WITHHELD_MESSAGES=m,f.prototype.decryptGroupMessage=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n,i,s,l){var d,h,f=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readwrite",[c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],(function(e){f._getInboundGroupSession(t,r,n,e,(function(t,o,a){if(null===t)return a&&(h=new u.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",b(a),{session:r+"|"+n})),void(d=null);var c;try{c=t.decrypt(i)}catch(e){return void(h=e&&"OLM.UNKNOWN_MESSAGE_INDEX"===e.message&&a?new u.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",b(a),{session:r+"|"+n}):e)}var g=c.plaintext;if(void 0===g)g=c;else{var p=r+"|"+n+"|"+c.message_index;if(p in f._inboundGroupSessionMessageIndexes){var v=f._inboundGroupSessionMessageIndexes[p];if(v.id!==s||v.timestamp!==l)return void(h=new Error("Duplicate message index, possible replay attack: "+p))}f._inboundGroupSessionMessageIndexes[p]={id:s,timestamp:l}}o.session=t.pickle(f._pickleKey),f._cryptoStore.storeEndToEndInboundGroupSession(r,n,o,e),d={result:g,keysClaimed:o.keysClaimed||{},senderKey:r,forwardingCurve25519KeyChain:o.forwardingCurve25519KeyChain||[],untrusted:o.untrusted}}))}),a.logger.withPrefix("[decryptGroupMessage]"));case 2:if(!h){e.next=4;break}throw h;case 4:return e.abrupt("return",d);case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i,o,s){return e.apply(this,arguments)}}(),f.prototype.hasInboundSessionKeys=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n){var i,s=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],(function(e){s._cryptoStore.getEndToEndInboundGroupSession(r,n,e,(function(e){null!==e?t!==e.room_id?(a.logger.warn("requested keys for inbound group session ".concat(r,"|")+"".concat(n,", with incorrect room_id ")+"(expected ".concat(e.room_id,", ")+"was ".concat(t,")")),i=!1):i=!0:i=!1}))}),a.logger.withPrefix("[hasInboundSessionKeys]"));case 2:return e.abrupt("return",i);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),f.prototype.getInboundGroupSessionKey=function(){var e=(0,s.default)(o.default.mark((function e(t,r,n,i){var s,u=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,c.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],(function(e){u._getInboundGroupSession(t,r,n,e,(function(e,t){if(null!==e){void 0===i&&(i=e.first_known_index());var r=e.export_session(i),n=(t.keysClaimed||{}).ed25519||null;s={chain_index:i,key:r,forwarding_curve25519_key_chain:t.forwardingCurve25519KeyChain||[],sender_claimed_ed25519_key:n,shared_history:t.sharedHistory||!1}}else s=null}))}),a.logger.withPrefix("[getInboundGroupSessionKey]"));case 2:return e.abrupt("return",s);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r,n,i){return e.apply(this,arguments)}}(),f.prototype.exportInboundGroupSession=function(e,t,r){return this._unpickleInboundGroupSession(r,(function(n){var i=n.first_known_index();return{sender_key:e,sender_claimed_keys:r.keysClaimed,room_id:r.room_id,session_id:t,session_key:n.export_session(i),forwarding_curve25519_key_chain:n.forwardingCurve25519KeyChain||[],first_known_index:n.first_known_index(),"org.matrix.msc3061.shared_history":r.sharedHistory||!1}}))},f.prototype.getSharedHistoryInboundGroupSessions=function(){var e=(0,s.default)(o.default.mark((function e(t){var r,n=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._cryptoStore.doTxn("readonly",[c.IndexedDBCryptoStore.STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS],(function(e){r=n._cryptoStore.getSharedHistoryInboundGroupSessions(t,e)}),a.logger.withPrefix("[getSharedHistoryInboundGroupSessionsForRoom]"));case 2:return e.abrupt("return",r);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),f.prototype.verifySignature=function(e,t,r){this._getUtility((function(n){n.ed25519_verify(e,t,r)}))}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../logger":106,"./algorithms":76,"./store/indexeddb-crypto-store":88,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"@babel/runtime/regenerator":27}],71:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.OutgoingRoomKeyRequestManager=r.RoomKeyRequestState=void 0;const i=e("../logger"),o=e("../@types/event");var s;!function(e){e[e.Unsent=0]="Unsent",e[e.Sent=1]="Sent",e[e.CancellationPending=2]="CancellationPending",e[e.CancellationPendingAndWillResend=3]="CancellationPendingAndWillResend"}(s=r.RoomKeyRequestState||(r.RoomKeyRequestState={}));function a(e){return e.room_id+" / "+e.session_id}function c(e){return"["+e.map((e=>`${e.userId}:${e.deviceId}`)).join(",")+"]"}r.OutgoingRoomKeyRequestManager=class{constructor(e,t,r){this.baseApis=e,this.deviceId=t,this.cryptoStore=r,this.sendOutgoingRoomKeyRequestsTimer=null,this.sendOutgoingRoomKeyRequestsRunning=!1,this.clientRunning=!1}start(){this.clientRunning=!0}stop(){i.logger.log("stopping OutgoingRoomKeyRequestManager"),this.clientRunning=!1}sendQueuedRequests(){this.startTimer()}queueRoomKeyRequest(e,t,r=!1){return n(this,void 0,void 0,(function*(){const n=yield this.cryptoStore.getOutgoingRoomKeyRequest(e);if(n)switch(n.state){case s.CancellationPendingAndWillResend:case s.Unsent:return;case s.CancellationPending:{const e=r?s.CancellationPendingAndWillResend:s.Sent;yield this.cryptoStore.updateOutgoingRoomKeyRequest(n.requestId,s.CancellationPending,{state:e,cancellationTxnId:this.baseApis.makeTxnId()});break}case s.Sent:if(r){const o=s.CancellationPendingAndWillResend,a=yield this.cryptoStore.updateOutgoingRoomKeyRequest(n.requestId,s.Sent,{state:o,cancellationTxnId:this.baseApis.makeTxnId(),requestTxnId:this.baseApis.makeTxnId()});if(!a)return yield this.queueRoomKeyRequest(e,t,r);try{yield this.sendOutgoingRoomKeyRequestCancellation(a,!0)}catch(e){i.logger.error("Error sending room key request cancellation; will retry later.",e)}}break;default:throw new Error("unhandled state: "+n.state)}else yield this.cryptoStore.getOrAddOutgoingRoomKeyRequest({requestBody:e,recipients:t,requestId:this.baseApis.makeTxnId(),state:s.Unsent})}))}cancelRoomKeyRequest(e){return this.cryptoStore.getOutgoingRoomKeyRequest(e).then((t=>{if(t)switch(t.state){case s.CancellationPending:case s.CancellationPendingAndWillResend:return;case s.Unsent:return i.logger.log("deleting unnecessary room key request for "+a(e)),this.cryptoStore.deleteOutgoingRoomKeyRequest(t.requestId,s.Unsent);case s.Sent:return this.cryptoStore.updateOutgoingRoomKeyRequest(t.requestId,s.Sent,{state:s.CancellationPending,cancellationTxnId:this.baseApis.makeTxnId()}).then((t=>{t?this.sendOutgoingRoomKeyRequestCancellation(t).catch((e=>{i.logger.error("Error sending room key request cancellation; will retry later.",e),this.startTimer()})):i.logger.log("Tried to cancel room key request for "+a(e)+" but it was already cancelled in another tab")}));default:throw new Error("unhandled state: "+t.state)}}))}getOutgoingSentRoomKeyRequest(e,t){return this.cryptoStore.getOutgoingRoomKeyRequestsByTarget(e,t,[s.Sent])}cancelAndResendAllOutgoingRequests(){return n(this,void 0,void 0,(function*(){const e=yield this.cryptoStore.getAllOutgoingRoomKeyRequestsByState(s.Sent);return Promise.all(e.map((({requestBody:e,recipients:t})=>this.queueRoomKeyRequest(e,t,!0))))}))}startTimer(){if(this.sendOutgoingRoomKeyRequestsTimer)return;this.sendOutgoingRoomKeyRequestsTimer=t.setTimeout((()=>{if(this.sendOutgoingRoomKeyRequestsRunning)throw new Error("RoomKeyRequestSend already in progress!");this.sendOutgoingRoomKeyRequestsRunning=!0,this.sendOutgoingRoomKeyRequests().finally((()=>{this.sendOutgoingRoomKeyRequestsRunning=!1})).catch((e=>{i.logger.warn(`error in OutgoingRoomKeyRequestManager: ${e}`)}))}),500)}sendOutgoingRoomKeyRequests(){return this.clientRunning?this.cryptoStore.getOutgoingRoomKeyRequestByState([s.CancellationPending,s.CancellationPendingAndWillResend,s.Unsent]).then((e=>{if(!e)return void(this.sendOutgoingRoomKeyRequestsTimer=null);let t;switch(e.state){case s.Unsent:t=this.sendOutgoingRoomKeyRequest(e);break;case s.CancellationPending:t=this.sendOutgoingRoomKeyRequestCancellation(e);break;case s.CancellationPendingAndWillResend:t=this.sendOutgoingRoomKeyRequestCancellation(e,!0)}return t.then((()=>this.sendOutgoingRoomKeyRequests())).catch((e=>{i.logger.error("Error sending room key request; will retry later.",e),this.sendOutgoingRoomKeyRequestsTimer=null}))})):(this.sendOutgoingRoomKeyRequestsTimer=null,Promise.resolve())}sendOutgoingRoomKeyRequest(e){i.logger.log(`Requesting keys for ${a(e.requestBody)} from ${c(e.recipients)}(id ${e.requestId})`);const t={action:"request",requesting_device_id:this.deviceId,request_id:e.requestId,body:e.requestBody};return this.sendMessageToDevices(t,e.recipients,e.requestTxnId||e.requestId).then((()=>this.cryptoStore.updateOutgoingRoomKeyRequest(e.requestId,s.Unsent,{state:s.Sent})))}sendOutgoingRoomKeyRequestCancellation(e,t=!1){i.logger.log(`Sending cancellation for key request for ${a(e.requestBody)} to ${c(e.recipients)} (cancellation id ${e.cancellationTxnId})`);const r={action:"request_cancellation",requesting_device_id:this.deviceId,request_id:e.requestId};return this.sendMessageToDevices(r,e.recipients,e.cancellationTxnId).then((()=>t?this.cryptoStore.updateOutgoingRoomKeyRequest(e.requestId,s.CancellationPendingAndWillResend,{state:s.Unsent}):this.cryptoStore.deleteOutgoingRoomKeyRequest(e.requestId,s.CancellationPending)))}sendMessageToDevices(e,t,r){const n={};for(const r of t)n[r.userId]||(n[r.userId]={}),n[r.userId][r.deviceId]=e;return this.baseApis.sendToDevice(o.EventType.RoomKeyRequest,n,r)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../@types/event":58,"../logger":106}],72:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.RoomList=void 0;const i=e("./store/indexeddb-crypto-store");r.RoomList=class{constructor(e){this.cryptoStore=e,this.roomEncryption={}}init(){return n(this,void 0,void 0,(function*(){yield this.cryptoStore.doTxn("readwrite",[i.IndexedDBCryptoStore.STORE_ROOMS],(e=>{this.cryptoStore.getEndToEndRooms(e,(e=>{this.roomEncryption=e}))}))}))}getRoomEncryption(e){return this.roomEncryption[e]||null}isRoomEncrypted(e){return Boolean(this.getRoomEncryption(e))}setRoomEncryption(e,t){return n(this,void 0,void 0,(function*(){this.roomEncryption[e]=t,yield this.cryptoStore.doTxn("readwrite",[i.IndexedDBCryptoStore.STORE_ROOMS],(r=>{this.cryptoStore.storeEndToEndRoom(e,t,r)}))}))}}},{"./store/indexeddb-crypto-store":88}],73:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.SecretStorage=r.SECRET_STORAGE_ALGORITHM_V1_AES=void 0;const a=e("../logger"),c=o(e("./olmlib")),u=e("../randomstring"),l=e("./aes"),d=e("./olmlib");r.SECRET_STORAGE_ALGORITHM_V1_AES="m.secret_storage.v1.aes-hmac-sha2";r.SecretStorage=class{constructor(e,t,r){this.accountDataAdapter=e,this.cryptoCallbacks=t,this.baseApis=r,this.requests=new Map}getDefaultKeyId(){return s(this,void 0,void 0,(function*(){const e=yield this.accountDataAdapter.getAccountDataFromServer("m.secret_storage.default_key");return e?e.key:null}))}setDefaultKeyId(e){return new Promise(((t,r)=>{const n=r=>{"m.secret_storage.default_key"===r.getType()&&r.getContent().key===e&&(this.accountDataAdapter.removeListener("accountData",n),t())};this.accountDataAdapter.on("accountData",n),this.accountDataAdapter.setAccountData("m.secret_storage.default_key",{key:e}).catch((e=>{this.accountDataAdapter.removeListener("accountData",n),r(e)}))}))}addKey(e,t,n){return s(this,void 0,void 0,(function*(){const i={algorithm:e};if(t||(t={}),t.name&&(i.name=t.name),e!==r.SECRET_STORAGE_ALGORITHM_V1_AES)throw new Error(`Unknown key algorithm ${e}`);if(t.passphrase&&(i.passphrase=t.passphrase),t.key){const{iv:e,mac:r}=yield l.calculateKeyCheck(t.key);i.iv=e,i.mac=r}if(!n)do{n=u.randomString(32)}while(yield this.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${n}`));return yield this.accountDataAdapter.setAccountData(`m.secret_storage.key.${n}`,i),{keyId:n,keyInfo:i}}))}getKey(e){return s(this,void 0,void 0,(function*(){if(e||(e=yield this.getDefaultKeyId()),!e)return null;const t=yield this.accountDataAdapter.getAccountDataFromServer("m.secret_storage.key."+e);return t?[e,t]:null}))}hasKey(e){return s(this,void 0,void 0,(function*(){return Boolean(yield this.getKey(e))}))}checkKey(e,t){return s(this,void 0,void 0,(function*(){if(t.algorithm===r.SECRET_STORAGE_ALGORITHM_V1_AES){if(t.mac){const{mac:r}=yield l.calculateKeyCheck(e,t.iv);return t.mac.replace(/=+$/g,"")===r.replace(/=+$/g,"")}return!0}throw new Error("Unknown algorithm")}))}store(e,t,n){return s(this,void 0,void 0,(function*(){const i={};if(!n){const e=yield this.getDefaultKeyId();if(!e)throw new Error("No keys specified and no default key present");n=[e]}if(0===n.length)throw new Error("Zero keys given to encrypt with!");for(const o of n){const n=yield this.accountDataAdapter.getAccountDataFromServer("m.secret_storage.key."+o);if(!n)throw new Error("Unknown key: "+o);if(n.algorithm===r.SECRET_STORAGE_ALGORITHM_V1_AES){const r={[o]:n},[,s]=yield this.getSecretStorageKey(r,e);i[o]=yield s.encrypt(t)}else a.logger.warn("unknown algorithm for secret storage key "+o+": "+n.algorithm)}yield this.accountDataAdapter.setAccountData(e,{encrypted:i})}))}get(e){return s(this,void 0,void 0,(function*(){const t=yield this.accountDataAdapter.getAccountDataFromServer(e);if(!t)return;if(!t.encrypted)throw new Error("Content is not encrypted!");const n={};for(const e of Object.keys(t.encrypted)){const i=yield this.accountDataAdapter.getAccountDataFromServer("m.secret_storage.key."+e),o=t.encrypted[e];i.algorithm===r.SECRET_STORAGE_ALGORITHM_V1_AES&&o.iv&&o.ciphertext&&o.mac&&(n[e]=i)}if(0===Object.keys(n).length)throw new Error(`Could not decrypt ${e} because none of the keys it is encrypted with are for a supported algorithm`);let i,o;try{[i,o]=yield this.getSecretStorageKey(n,e);const r=t.encrypted[i];return r.passthrough?d.encodeBase64(o.get_private_key()):yield o.decrypt(r)}finally{o&&o.free&&o.free()}}))}isStored(e,t){return s(this,void 0,void 0,(function*(){const n=yield this.accountDataAdapter.getAccountDataFromServer(e);if(!n)return null;if(!n.encrypted)return null;void 0===t&&(t=!0);const i={};for(const e of Object.keys(n.encrypted)){const t=yield this.accountDataAdapter.getAccountDataFromServer("m.secret_storage.key."+e);if(!t)continue;const o=n.encrypted[e];t.algorithm===r.SECRET_STORAGE_ALGORITHM_V1_AES&&o.iv&&o.ciphertext&&o.mac&&(i[e]=t)}return Object.keys(i).length?i:null}))}request(e,t){const r=this.baseApis.makeTxnId();let n,i;const o=new Promise(((e,t)=>{n=e,i=t}));this.requests.set(r,{name:e,devices:t,resolve:n,reject:i});const s={name:e,action:"request",requesting_device_id:this.baseApis.deviceId,request_id:r},c={};for(const e of t)c[e]=s;return a.logger.info(`Request secret ${e} from ${t}, id ${r}`),this.baseApis.sendToDevice("m.secret.request",{[this.baseApis.getUserId()]:c}),{requestId:r,promise:o,cancel:e=>{const n={action:"request_cancellation",requesting_device_id:this.baseApis.deviceId,request_id:r},o={};for(const e of t)o[e]=n;this.baseApis.sendToDevice("m.secret.request",{[this.baseApis.getUserId()]:o}),i(new Error(e||"Cancelled"))}}}onRequestReceived(e){return s(this,void 0,void 0,(function*(){const t=e.getSender(),r=e.getContent();if(t!==this.baseApis.getUserId()||!(r.name&&r.action&&r.requesting_device_id&&r.request_id))return;const n=r.requesting_device_id;if("request_cancellation"===r.action);else if("request"===r.action){if(n===this.baseApis.deviceId)return;if(a.logger.info("received request for secret ("+t+", "+n+", "+r.request_id+")"),!this.cryptoCallbacks.onSecretRequested)return;const e=yield this.cryptoCallbacks.onSecretRequested(t,n,r.request_id,r.name,this.baseApis.checkDeviceTrust(t,n));if(e){a.logger.info(`Preparing ${r.name} secret for ${n}`);const i={type:"m.secret.send",content:{request_id:r.request_id,secret:e}},o={algorithm:c.OLM_ALGORITHM,sender_key:this.baseApis.crypto.olmDevice.deviceCurve25519Key,ciphertext:{}};yield c.ensureOlmSessionsForDevices(this.baseApis.crypto.olmDevice,this.baseApis,{[t]:[this.baseApis.getStoredDevice(t,n)]}),yield c.encryptMessageForDevice(o.ciphertext,this.baseApis.getUserId(),this.baseApis.deviceId,this.baseApis.crypto.olmDevice,t,this.baseApis.getStoredDevice(t,n),i);const s={[t]:{[n]:o}};a.logger.info(`Sending ${r.name} secret for ${n}`),this.baseApis.sendToDevice("m.room.encrypted",s)}else a.logger.info(`Request denied for ${r.name} secret for ${n}`)}}))}onSecretReceived(e){if(e.getSender()!==this.baseApis.getUserId())return;const t=e.getContent();a.logger.log("got secret share for request",t.request_id);const r=this.requests.get(t.request_id);if(r){const n=this.baseApis.crypto.deviceList.getDeviceByIdentityKey(c.OLM_ALGORITHM,e.getSenderKey());if(!n)return void a.logger.log("secret share from unknown device with key",e.getSenderKey());if(!r.devices.includes(n.deviceId))return void a.logger.log("unsolicited secret share from device",n.deviceId);a.logger.log(`Successfully received secret ${r.name} from ${n.deviceId}`),r.resolve(t.secret)}}getSecretStorageKey(e,t){return s(this,void 0,void 0,(function*(){if(!this.cryptoCallbacks.getSecretStorageKey)throw new Error("No getSecretStorageKey callback supplied");const n=yield this.cryptoCallbacks.getSecretStorageKey({keys:e},t);if(!n)throw new Error("getSecretStorageKey callback returned falsey");if(n.length<2)throw new Error("getSecretStorageKey callback returned invalid data");const[i,o]=n;if(!e[i])throw new Error("App returned unknown key from getSecretStorageKey!");if(e[i].algorithm===r.SECRET_STORAGE_ALGORITHM_V1_AES){return[i,{encrypt:function(e){return s(this,void 0,void 0,(function*(){return yield l.encryptAES(e,o,t)}))},decrypt:function(e){return s(this,void 0,void 0,(function*(){return yield l.decryptAES(e,o,t)}))}}]}throw new Error("Unknown key type: "+e[i].algorithm)}))}}},{"../logger":106,"../randomstring":123,"./aes":74,"./olmlib":85}],74:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.calculateKeyCheck=r.decryptAES=r.encryptAES=void 0;const i=e("../utils"),o=e("./olmlib"),s="undefined"!=typeof window&&window.crypto?window.crypto.subtle||window.crypto.webkitSubtle:null,a=new Uint8Array(8);function c(e,r){const n=i.getCrypto(),o=n.createHmac("sha256",a).update(e).digest(),s=t.alloc(1,1),c=n.createHmac("sha256",o).update(r,"utf8").update(s).digest();s[0]=2;return[c,n.createHmac("sha256",o).update(c).update(r,"utf8").update(s).digest()]}function u(e,t){return n(this,void 0,void 0,(function*(){const r=yield s.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"]),n=yield s.deriveBits({name:"HKDF",salt:a,info:(new TextEncoder).encode(t),hash:"SHA-256"},r,512),i=n.slice(0,32),o=n.slice(32),c=s.importKey("raw",i,{name:"AES-CTR"},!1,["encrypt","decrypt"]),u=s.importKey("raw",o,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]);return yield Promise.all([c,u])}))}function l(e,r,a,l){return s?function(e,t,r,i){return n(this,void 0,void 0,(function*(){let n;i?n=o.decodeBase64(i):(n=new Uint8Array(16),window.crypto.getRandomValues(n)),n[8]&=127;const[a,c]=yield u(t,r),l=(new TextEncoder).encode(e),d=yield s.encrypt({name:"AES-CTR",counter:n,length:64},a,l),h=yield s.sign({name:"HMAC"},c,d);return{iv:o.encodeBase64(n),ciphertext:o.encodeBase64(d),mac:o.encodeBase64(h)}}))}(e,r,a,l):function(e,r,s,a){return n(this,void 0,void 0,(function*(){const n=i.getCrypto();if(!n)throw new Error("No usable crypto implementation");let u;u=a?o.decodeBase64(a):n.randomBytes(16),u[8]&=127;const[l,d]=c(r,s),h=n.createCipheriv("aes-256-ctr",l,u),f=t.concat([h.update(e,"utf8"),h.final()]),g=n.createHmac("sha256",d).update(f).digest("base64");return{iv:o.encodeBase64(u),ciphertext:f.toString("base64"),mac:g}}))}(e,r,a,l)}r.encryptAES=l,r.decryptAES=function(e,r,a){return s?function(e,t,r){return n(this,void 0,void 0,(function*(){const[n,i]=yield u(t,r),a=o.decodeBase64(e.ciphertext);if(!(yield s.verify({name:"HMAC"},i,o.decodeBase64(e.mac),a)))throw new Error(`Error decrypting secret ${r}: bad MAC`);const c=yield s.decrypt({name:"AES-CTR",counter:o.decodeBase64(e.iv),length:64},n,a);return(new TextDecoder).decode(new Uint8Array(c))}))}(e,r,a):function(e,r,s){return n(this,void 0,void 0,(function*(){const n=i.getCrypto();if(!n)throw new Error("No usable crypto implementation");const[a,u]=c(r,s);if(n.createHmac("sha256",u).update(t.from(e.ciphertext,"base64")).digest("base64").replace(/=+$/g,"")!==e.mac.replace(/=+$/g,""))throw new Error(`Error decrypting secret ${s}: bad MAC`);const l=n.createDecipheriv("aes-256-ctr",a,o.decodeBase64(e.iv));return l.update(e.ciphertext,"base64","utf8")+l.final("utf8")}))}(e,r,a)};r.calculateKeyCheck=function(e,t){return l("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",e,"",t)}}).call(this)}).call(this,e("buffer").Buffer)},{"../utils":137,"./olmlib":85,buffer:34}],75:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.registerAlgorithm=r.UnknownDeviceError=r.DecryptionError=r.DecryptionAlgorithm=r.EncryptionAlgorithm=r.DECRYPTION_CLASSES=r.ENCRYPTION_CLASSES=void 0,r.ENCRYPTION_CLASSES={},r.DECRYPTION_CLASSES={};r.EncryptionAlgorithm=class{constructor(e){this.userId=e.userId,this.deviceId=e.deviceId,this.crypto=e.crypto,this.olmDevice=e.olmDevice,this.baseApis=e.baseApis,this.roomId=e.roomId}prepareToEncrypt(e){}onRoomMembership(e,t,r){}};r.DecryptionAlgorithm=class{constructor(e){this.userId=e.userId,this.crypto=e.crypto,this.olmDevice=e.olmDevice,this.baseApis=e.baseApis,this.roomId=e.roomId}onRoomKeyEvent(e){}importRoomKey(e,t){return n(this,void 0,void 0,(function*(){}))}hasKeysForKeyRequest(e){return Promise.resolve(!1)}shareKeysWithDevice(e){throw new Error("shareKeysWithDevice not supported for this DecryptionAlgorithm")}retryDecryptionFromSender(e){return n(this,void 0,void 0,(function*(){return!1}))}};class i extends Error{constructor(e,t,r){super(t),this.code=e,this.code=e,this.name="DecryptionError",this.detailedString=function(e,t){let r=e.name+"[msg: "+e.message;t&&(r+=", "+Object.keys(t).map((e=>e+": "+t[e])).join(", "));return r+="]",r}(this,r)}}r.DecryptionError=i;class o extends Error{constructor(e,t){super(e),this.devices=t,this.name="UnknownDeviceError",this.devices=t}}r.UnknownDeviceError=o,r.registerAlgorithm=function(e,t,n){r.ENCRYPTION_CLASSES[e]=t,r.DECRYPTION_CLASSES[e]=n}},{}],76:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(r,"__esModule",{value:!0}),e("./olm"),e("./megolm"),i(e("./base"),r)},{"./base":75,"./megolm":77,"./olm":78}],77:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.isRoomSharedHistory=void 0;const a=e("../../logger"),c=o(e("../olmlib")),u=e("./base"),l=e("../OlmDevice");function d(e){var t,r;const n=null===(t=null==e?void 0:e.currentState)||void 0===t?void 0:t.getStateEvents("m.room.history_visibility",""),i=null===(r=null==n?void 0:n.getContent())||void 0===r?void 0:r.history_visibility;return["world_readable","shared"].includes(i)}r.isRoomSharedHistory=d;class h{constructor(e,t=!1){this.sessionId=e,this.sharedHistory=t,this.useCount=0,this.sharedWithDevices={},this.blockedDevicesNotified={},this.creationTime=(new Date).getTime()}needsRotation(e,t){const r=(new Date).getTime()-this.creationTime;return(this.useCount>=e||r>=t)&&(a.logger.log("Rotating megolm session after "+this.useCount+" messages, "+r+"ms"),!0)}markSharedWithDevice(e,t,r){this.sharedWithDevices[e]||(this.sharedWithDevices[e]={}),this.sharedWithDevices[e][t]=r}markNotifiedBlockedDevice(e,t){this.blockedDevicesNotified[e]||(this.blockedDevicesNotified[e]={}),this.blockedDevicesNotified[e][t]=!0}sharedWithTooManyDevices(e){for(const t in this.sharedWithDevices)if(this.sharedWithDevices.hasOwnProperty(t)){if(!e.hasOwnProperty(t))return a.logger.log("Starting new megolm session because we shared with "+t),!0;for(const r in this.sharedWithDevices[t])if(this.sharedWithDevices[t].hasOwnProperty(r)&&!e[t].hasOwnProperty(r))return a.logger.log("Starting new megolm session because we shared with "+t+":"+r),!0}}}class f extends u.EncryptionAlgorithm{constructor(e){var t,r,n,i;super(e),this.setupPromise=Promise.resolve(void 0),this.outboundSessions={},this.sessionRotationPeriodMsgs=null!==(r=null===(t=e.config)||void 0===t?void 0:t.rotation_period_msgs)&&void 0!==r?r:100,this.sessionRotationPeriodMs=null!==(i=null===(n=e.config)||void 0===n?void 0:n.rotation_period_ms)&&void 0!==i?i:6048e5}ensureOutboundSession(e,t,r,n=!1){return s(this,void 0,void 0,(function*(){let i;function o(){return i}const u=this.setupPromise.then((o=>s(this,void 0,void 0,(function*(){i=o;const u=d(e);i&&u!==i.sharedHistory&&(i=null),i&&i.needsRotation(this.sessionRotationPeriodMsgs,this.sessionRotationPeriodMs)&&(a.logger.log("Starting new megolm session because we need to rotate."),i=null),i&&i.sharedWithTooManyDevices(t)&&(i=null),i||(a.logger.log(`Starting new megolm session for room ${this.roomId}`),i=yield this.prepareNewSession(u),a.logger.log(`Started new megolm session ${i.sessionId} for room ${this.roomId}`),this.outboundSessions[i.sessionId]=i);const l={};for(const[e,r]of Object.entries(t))for(const[t,n]of Object.entries(r)){n.getIdentityKey()!=this.olmDevice.deviceCurve25519Key&&(i.sharedWithDevices[e]&&void 0!==i.sharedWithDevices[e][t]||(l[e]=l[e]||[],l[e].push(n)))}const h=this.olmDevice.getOutboundGroupSessionKey(i.sessionId),f={type:"m.room_key",content:{algorithm:c.MEGOLM_ALGORITHM,room_id:this.roomId,session_id:i.sessionId,session_key:h.key,chain_index:h.chain_index,"org.matrix.msc3061.shared_history":u}},[g,p]=yield c.getExistingOlmSessions(this.olmDevice,this.baseApis,l);yield Promise.all([(()=>s(this,void 0,void 0,(function*(){a.logger.debug(`Sharing keys with existing Olm sessions in ${this.roomId}`),yield this.shareKeyWithOlmSessions(i,h,f,p),a.logger.debug(`Shared keys with existing Olm sessions in ${this.roomId}`)})))(),(()=>s(this,void 0,void 0,(function*(){a.logger.debug(`Sharing keys (start phase 1) with new Olm sessions in ${this.roomId}`);const e=[],t=Date.now(),r=[];yield this.shareKeyWithDevices(i,h,f,g,e,n?1e4:2e3,r),a.logger.debug(`Shared keys (end phase 1) with new Olm sessions in ${this.roomId}`),!n&&Date.now()-t<1e4?(()=>{s(this,void 0,void 0,(function*(){const t={},n=new Set;for(const e of r)n.add(e);const o=[];for(const{userId:r,deviceInfo:i}of e){const e=r.slice(r.indexOf(":")+1);n.has(e)?(t[r]=t[r]||[],t[r].push(i)):o.push({userId:r,deviceInfo:i})}a.logger.debug(`Sharing keys (start phase 2) with new Olm sessions in ${this.roomId}`),yield this.shareKeyWithDevices(i,h,f,t,o,3e4),a.logger.debug(`Shared keys (end phase 2) with new Olm sessions in ${this.roomId}`),yield this.notifyFailedOlmDevices(i,h,o)}))})():yield this.notifyFailedOlmDevices(i,h,e),a.logger.debug(`Shared keys (all phases done) with new Olm sessions in ${this.roomId}`)})))(),(()=>s(this,void 0,void 0,(function*(){a.logger.debug(`Notifying blocked devices in ${this.roomId}`);const e={};let t=0;for(const[n,o]of Object.entries(r))for(const[r,s]of Object.entries(o))i.blockedDevicesNotified[n]&&void 0!==i.blockedDevicesNotified[n][r]||(e[n]=e[n]||{},e[n][r]={device:s},t++);yield this.notifyBlockedDevices(i,e),a.logger.debug(`Notified ${t} blocked devices in ${this.roomId}`)})))()])}))));return u.catch((e=>{a.logger.error(`Failed to ensure outbound session in ${this.roomId}`,e)})),this.setupPromise=u.then(o,o),u.then(o)}))}prepareNewSession(e){return s(this,void 0,void 0,(function*(){const t=this.olmDevice.createOutboundGroupSession(),r=this.olmDevice.getOutboundGroupSessionKey(t);return yield this.olmDevice.addInboundGroupSession(this.roomId,this.olmDevice.deviceCurve25519Key,[],t,r.key,{ed25519:this.olmDevice.deviceEd25519Key},!1,{sharedHistory:e}),this.crypto.backupManager.backupGroupSession(this.olmDevice.deviceCurve25519Key,t),new h(t,e)}))}getDevicesWithoutSessions(e,t,r=[]){for(const[n,i]of Object.entries(t)){const t=e[n];for(const e of i){const i=e.deviceId;t[i].sessionId||(r.push({userId:n,deviceInfo:e}),delete t[i])}}return r}splitDevices(e){let t=[];const r=[t];for(const[n,i]of Object.entries(e)){for(const e of Object.values(i))t.push({userId:n,deviceInfo:e.device});t.length>20&&(t=[],r.push(t))}return 0===t.length&&r.pop(),r}encryptAndSendKeysToDevices(e,t,r,n){const i={},o=[];for(let e=0;e{for(const e of Object.keys(i)){for(const t of Object.keys(i[e]))0===Object.keys(i[e][t].ciphertext).length&&(a.logger.log("No ciphertext for device "+e+":"+t+": pruning"),delete i[e][t]);0===Object.keys(i[e]).length&&(a.logger.log("Pruned all devices for user "+e),delete i[e])}if(0!==Object.keys(i).length)return this.baseApis.sendToDevice("m.room.encrypted",i).then((()=>{for(const r of Object.keys(i))for(const n of Object.keys(i[r]))e.markSharedWithDevice(r,n,t)}));a.logger.log("No users left to send to: aborting")}))}sendBlockedNotificationsToDevices(e,t,r){return s(this,void 0,void 0,(function*(){const n={};for(const e of t){const t=e.userId,i=e.deviceInfo,o=i.deviceInfo.deviceId,s=Object.assign({},r);s.code=i.code,s.reason=i.reason,"m.no_olm"===s.code&&(delete s.room_id,delete s.session_id),n[t]||(n[t]={}),n[t][o]=s}yield this.baseApis.sendToDevice("org.matrix.room_key.withheld",n);for(const t of Object.keys(n))for(const r of Object.keys(n[t]))e.markNotifiedBlockedDevice(t,r)}))}reshareKeyWithDevice(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=this.outboundSessions[t];if(!i)return void a.logger.debug(`megolm session ${t} not found: not re-sharing keys`);if(void 0===i.sharedWithDevices[r])return void a.logger.debug(`megolm session ${t} never shared with user ${r}`);const o=i.sharedWithDevices[r][n.deviceId];if(void 0===o)return void a.logger.debug("megolm session ID "+t+" never shared with device "+r+":"+n.deviceId);const s=yield this.olmDevice.getInboundGroupSessionKey(this.roomId,e,t,o);if(!s)return void a.logger.warn(`No inbound session key found for megolm ${t}: not re-sharing keys`);yield c.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,{[r]:[n]});const u={type:"m.forwarded_room_key",content:{algorithm:c.MEGOLM_ALGORITHM,room_id:this.roomId,session_id:t,session_key:s.key,chain_index:s.chain_index,sender_key:e,sender_claimed_ed25519_key:s.sender_claimed_ed25519_key,forwarding_curve25519_key_chain:s.forwarding_curve25519_key_chain,"org.matrix.msc3061.shared_history":s.shared_history||!1}},l={algorithm:c.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}};yield c.encryptMessageForDevice(l.ciphertext,this.userId,this.deviceId,this.olmDevice,r,n,u),yield this.baseApis.sendToDevice("m.room.encrypted",{[r]:{[n.deviceId]:l}}),a.logger.debug(`Re-shared key for megolm session ${t} with ${r}:${n.deviceId}`)}))}shareKeyWithDevices(e,t,r,n,i,o,u){return s(this,void 0,void 0,(function*(){a.logger.debug(`Ensuring Olm sessions for devices in ${this.roomId}`);const s=yield c.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,n,!1,o,u,a.logger.withPrefix(`[${this.roomId}]`));a.logger.debug(`Ensured Olm sessions for devices in ${this.roomId}`),this.getDevicesWithoutSessions(s,n,i),a.logger.debug(`Sharing keys with Olm sessions in ${this.roomId}`),yield this.shareKeyWithOlmSessions(e,t,r,s),a.logger.debug(`Shared keys with Olm sessions in ${this.roomId}`)}))}shareKeyWithOlmSessions(e,t,r,n){return s(this,void 0,void 0,(function*(){const i=this.splitDevices(n);for(let n=0;ns(this,void 0,void 0,(function*(){try{a.logger.debug(`Getting devices in ${this.roomId}`);const[t,r]=yield this.getDevicesInRoom(e);this.crypto.getGlobalErrorOnUnknownDevices()&&this.removeUnknownDevices(t),a.logger.debug(`Ensuring outbound session in ${this.roomId}`),yield this.ensureOutboundSession(e,t,r,!0),a.logger.debug(`Ready to encrypt events for ${this.roomId}`)}catch(e){a.logger.error(`Failed to prepare to encrypt events for ${this.roomId}`,e)}finally{delete this.encryptionPreparationMetadata,delete this.encryptionPreparation}})))()}encryptMessage(e,t,r){return s(this,void 0,void 0,(function*(){if(a.logger.log(`Starting to encrypt event for ${this.roomId}`),this.encryptionPreparation)try{yield this.encryptionPreparation}catch(e){}const[n,i]=yield this.getDevicesInRoom(e);this.crypto.getGlobalErrorOnUnknownDevices()&&this.checkForUnknownDevices(n);const o=yield this.ensureOutboundSession(e,n,i),s={room_id:this.roomId,type:t,content:r},u=this.olmDevice.encryptGroupMessage(o.sessionId,JSON.stringify(s)),l={algorithm:c.MEGOLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:u,session_id:o.sessionId,device_id:this.deviceId};return o.useCount++,l}))}forceDiscardSession(){this.setupPromise=this.setupPromise.then((()=>null))}checkForUnknownDevices(e){const t={};if(Object.keys(e).forEach((r=>{Object.keys(e[r]).forEach((n=>{const i=e[r][n];i.isUnverified()&&!i.isKnown()&&(t[r]||(t[r]={}),t[r][n]=i)}))})),Object.keys(t).length)throw new u.UnknownDeviceError("This room contains unknown devices which have not been verified. We strongly recommend you verify them before continuing.",t)}removeUnknownDevices(e){for(const[t,r]of Object.entries(e)){for(const[e,t]of Object.entries(r))t.isUnverified()&&!t.isKnown()&&delete r[e];0===Object.keys(r).length&&delete e[t]}}getDevicesInRoom(e){return s(this,void 0,void 0,(function*(){const t=(yield e.getEncryptionTargetMembers()).map((function(e){return e.userId}));let r=this.crypto.getGlobalBlacklistUnverifiedDevices();"boolean"==typeof e.getBlacklistUnverifiedDevices()&&(r=e.getBlacklistUnverifiedDevices());const n=yield this.crypto.downloadKeys(t,!1),i={};for(const e in n){if(!n.hasOwnProperty(e))continue;const t=n[e];for(const n in t){if(!t.hasOwnProperty(n))continue;const o=this.crypto.checkDeviceTrust(e,n);if(t[n].isBlocked()||!o.isVerified()&&r){i[e]||(i[e]={});const r=t[n].isBlocked();i[e][n]={code:r?"m.blacklisted":"m.unverified",reason:l.WITHHELD_MESSAGES[r?"m.blacklisted":"m.unverified"],deviceInfo:t[n]},delete t[n]}}}return[n,i]}))}}class g extends u.DecryptionAlgorithm{constructor(){super(...arguments),this.pendingEvents={},this.olmlib=c}decryptEvent(e){return s(this,void 0,void 0,(function*(){const t=e.getWireContent();if(!t.sender_key||!t.session_id||!t.ciphertext)throw new u.DecryptionError("MEGOLM_MISSING_FIELDS","Missing fields in input");let r;this.addEventToPendingList(e);try{r=yield this.olmDevice.decryptGroupMessage(e.getRoomId(),t.sender_key,t.session_id,t.ciphertext,e.getId(),e.getTs())}catch(r){if("DecryptionError"===r.name)throw r;let n="OLM_DECRYPT_GROUP_MESSAGE_ERROR";throw r&&"OLM.UNKNOWN_MESSAGE_INDEX"===r.message&&(this.requestKeysForEvent(e),n="OLM_UNKNOWN_MESSAGE_INDEX"),new u.DecryptionError(n,r?r.toString():"Unknown Error: Error is undefined",{session:t.sender_key+"|"+t.session_id})}if(null===r){this.requestKeysForEvent(e);const r=yield this.olmDevice.sessionMayHaveProblems(t.sender_key,e.getTs()-12e4);if(r){let e=p[r.type]||p.unknown;throw r.fixed&&(e+=" Trying to create a new secure channel and re-requesting the keys."),new u.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",e,{session:t.sender_key+"|"+t.session_id})}throw new u.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID","The sender's device has not sent us the keys for this message.",{session:t.sender_key+"|"+t.session_id})}this.removeEventFromPendingList(e);const n=JSON.parse(r.result);if(n.room_id!==e.getRoomId())throw new u.DecryptionError("MEGOLM_BAD_ROOM","Message intended for room "+n.room_id);return{clearEvent:n,senderCurve25519Key:r.senderKey,claimedEd25519Key:r.keysClaimed.ed25519,forwardingCurve25519KeyChain:r.forwardingCurve25519KeyChain,untrusted:r.untrusted}}))}requestKeysForEvent(e){const t=e.getWireContent(),r=e.getKeyRequestRecipients(this.userId);this.crypto.requestRoomKey({room_id:e.getRoomId(),algorithm:t.algorithm,sender_key:t.sender_key,session_id:t.session_id},r)}addEventToPendingList(e){const t=e.getWireContent(),r=t.sender_key,n=t.session_id;this.pendingEvents[r]||(this.pendingEvents[r]=new Map);const i=this.pendingEvents[r];i.has(n)||i.set(n,new Set),i.get(n).add(e)}removeEventFromPendingList(e){const t=e.getWireContent(),r=t.sender_key,n=t.session_id,i=this.pendingEvents[r],o=i&&i.get(n);o&&(o.delete(e),0===o.size&&i.delete(r),0===i.size&&delete this.pendingEvents[r])}onRoomKeyEvent(e){const t=e.getContent(),r=t.session_id;let n,i=e.getSenderKey(),o=[],s=!1;if(!t.room_id||!r||!t.session_key)return void a.logger.error("key event is missing fields");if(!i)return void a.logger.error("key event has no sender key (not encrypted?)");if("m.forwarded_room_key"==e.getType()){if(s=!0,o=t.forwarding_curve25519_key_chain,Array.isArray(o)||(o=[]),o=o.slice(),o.push(i),i=t.sender_key,!i)return void a.logger.error("forwarded_room_key event is missing sender_key field");const e=t.sender_claimed_ed25519_key;if(!e)return void a.logger.error("forwarded_room_key_event is missing sender_claimed_ed25519_key field");n={ed25519:e}}else n=e.getKeysClaimed();const c={};return t["org.matrix.msc3061.shared_history"]&&(c.sharedHistory=!0),this.olmDevice.addInboundGroupSession(t.room_id,i,o,r,t.session_key,n,s,c).then((()=>{this.retryDecryption(i,r).then((e=>{e&&this.crypto.cancelRoomKeyRequest({algorithm:t.algorithm,room_id:t.room_id,session_id:t.session_id,sender_key:i})}))})).then((()=>{this.crypto.backupManager.backupGroupSession(i,t.session_id)})).catch((e=>{a.logger.error(`Error handling m.room_key_event: ${e}`)}))}onRoomKeyWithheldEvent(e){return s(this,void 0,void 0,(function*(){const t=e.getContent(),r=t.sender_key;if("m.no_olm"===t.code){const n=e.getSender();if(a.logger.warn(`${n}:${r} was unable to establish an olm session with us`),yield this.olmDevice.getSessionIdForDevice(r))return a.logger.debug("New session already created. Not creating a new one."),yield this.olmDevice.recordSessionProblem(r,"no_olm",!0),void this.retryDecryptionFromSender(r);let i=this.crypto.deviceList.getDeviceByIdentityKey(t.algorithm,r);if(!i&&(yield this.crypto.downloadKeys([n],!1),i=this.crypto.deviceList.getDeviceByIdentityKey(t.algorithm,r),!i))return a.logger.info("Couldn't find device for identity key "+r+": not establishing session"),yield this.olmDevice.recordSessionProblem(r,"no_olm",!1),void this.retryDecryptionFromSender(r);yield c.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,{[n]:[i]},!1);const o={algorithm:c.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}};yield c.encryptMessageForDevice(o.ciphertext,this.userId,void 0,this.olmDevice,n,i,{type:"m.dummy"}),yield this.olmDevice.recordSessionProblem(r,"no_olm",!0),this.retryDecryptionFromSender(r),yield this.baseApis.sendToDevice("m.room.encrypted",{[n]:{[i.deviceId]:o}})}else yield this.olmDevice.addInboundGroupSessionWithheld(t.room_id,r,t.session_id,t.code,t.reason)}))}hasKeysForKeyRequest(e){const t=e.requestBody;return this.olmDevice.hasInboundSessionKeys(t.room_id,t.sender_key,t.session_id)}shareKeysWithDevice(e){const t=e.userId,r=e.deviceId,n=this.crypto.getStoredDevice(t,r),i=e.requestBody;this.olmlib.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,{[t]:[n]}).then((e=>e[t][r].sessionId?(a.logger.log("sharing keys for session "+i.sender_key+"|"+i.session_id+" with device "+t+":"+r),this.buildKeyForwardingMessage(i.room_id,i.sender_key,i.session_id)):null)).then((e=>{const i={algorithm:c.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}};return this.olmlib.encryptMessageForDevice(i.ciphertext,this.userId,void 0,this.olmDevice,t,n,e).then((()=>{const e={[t]:{[r]:i}};return this.baseApis.sendToDevice("m.room.encrypted",e)}))}))}buildKeyForwardingMessage(e,t,r){return s(this,void 0,void 0,(function*(){const n=yield this.olmDevice.getInboundGroupSessionKey(e,t,r);return{type:"m.forwarded_room_key",content:{algorithm:c.MEGOLM_ALGORITHM,room_id:e,sender_key:t,sender_claimed_ed25519_key:n.sender_claimed_ed25519_key,session_id:r,session_key:n.key,chain_index:n.chain_index,forwarding_curve25519_key_chain:n.forwarding_curve25519_key_chain,"org.matrix.msc3061.shared_history":n.shared_history||!1}}}))}importRoomKey(e,t={}){const r={};return(t.untrusted||e.untrusted)&&(r.untrusted=!0),e["org.matrix.msc3061.shared_history"]&&(r.sharedHistory=!0),this.olmDevice.addInboundGroupSession(e.room_id,e.sender_key,e.forwarding_curve25519_key_chain,e.session_id,e.session_key,e.sender_claimed_keys,!0,r).then((()=>{"backup"!==t.source&&this.crypto.backupManager.backupGroupSession(e.sender_key,e.session_id).catch((e=>{a.logger.log("Failed to back up megolm session",e)})),this.retryDecryption(e.sender_key,e.session_id)}))}retryDecryption(e,t){return s(this,void 0,void 0,(function*(){const r=this.pendingEvents[e];if(!r)return!0;const n=r.get(t);return!n||(a.logger.debug("Retrying decryption on events",[...n]),yield Promise.all([...n].map((e=>s(this,void 0,void 0,(function*(){try{yield e.attemptDecryption(this.crypto,{isRetry:!0})}catch(e){}}))))),!(this.pendingEvents[e]||{})[t])}))}retryDecryptionFromSender(e){return s(this,void 0,void 0,(function*(){const t=this.pendingEvents[e];return!t||(delete this.pendingEvents[e],yield Promise.all([...t].map((([e,t])=>s(this,void 0,void 0,(function*(){yield Promise.all([...t].map((e=>s(this,void 0,void 0,(function*(){try{yield e.attemptDecryption(this.crypto)}catch(e){}})))))}))))),!this.pendingEvents[e])}))}sendSharedHistoryInboundSessions(e){return s(this,void 0,void 0,(function*(){yield c.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,e),a.logger.log("sendSharedHistoryInboundSessions to users",Object.keys(e));const t=yield this.olmDevice.getSharedHistoryInboundGroupSessions(this.roomId);a.logger.log("shared-history sessions",t);for(const[r,n]of t){const t=yield this.buildKeyForwardingMessage(this.roomId,r,n),i=[],o={};for(const[r,n]of Object.entries(e)){o[r]={};for(const e of n){const n={algorithm:c.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}};o[r][e.deviceId]=n,i.push(c.encryptMessageForDevice(n.ciphertext,this.userId,void 0,this.olmDevice,r,e,t))}}yield Promise.all(i);for(const e of Object.keys(o)){for(const t of Object.keys(o[e]))0===Object.keys(o[e][t].ciphertext).length&&(a.logger.log("No ciphertext for device "+e+":"+t+": pruning"),delete o[e][t]);0===Object.keys(o[e]).length&&(a.logger.log("Pruned all devices for user "+e),delete o[e])}if(0===Object.keys(o).length)return void a.logger.log("No users left to send to: aborting");yield this.baseApis.sendToDevice("m.room.encrypted",o)}}))}}const p={no_olm:"The sender was unable to establish a secure channel.",unknown:"The secure channel with the sender was corrupted."};u.registerAlgorithm(c.MEGOLM_ALGORITHM,f,g)},{"../../logger":106,"../OlmDevice":70,"../olmlib":85,"./base":75}],78:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0});const a=e("../../logger"),c=o(e("../olmlib")),u=e("../deviceinfo"),l=e("./base"),d=u.DeviceInfo.DeviceVerification;class h extends l.EncryptionAlgorithm{constructor(){super(...arguments),this.sessionPrepared=!1,this.prepPromise=null}ensureSession(e){return this.prepPromise?this.prepPromise:this.sessionPrepared?Promise.resolve():(this.prepPromise=this.crypto.downloadKeys(e).then((t=>this.crypto.ensureOlmSessionsForUsers(e))).then((()=>{this.sessionPrepared=!0})).finally((()=>{this.prepPromise=null})),this.prepPromise)}encryptMessage(e,t,r){return s(this,void 0,void 0,(function*(){const n=(yield e.getEncryptionTargetMembers()).map((function(e){return e.userId}));yield this.ensureSession(n);const i={room_id:e.roomId,type:t,content:r},o={algorithm:c.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}},s=[];for(let e=0;eo))}))}}class f extends l.DecryptionAlgorithm{decryptEvent(e){return s(this,void 0,void 0,(function*(){const t=e.getWireContent(),r=t.sender_key,n=t.ciphertext;if(!n)throw new l.DecryptionError("OLM_MISSING_CIPHERTEXT","Missing ciphertext");if(!(this.olmDevice.deviceCurve25519Key in n))throw new l.DecryptionError("OLM_NOT_INCLUDED_IN_RECIPIENTS","Not included in recipients");const i=n[this.olmDevice.deviceCurve25519Key];let o;try{o=yield this.decryptMessage(r,i)}catch(e){throw new l.DecryptionError("OLM_BAD_ENCRYPTED_MESSAGE","Bad Encrypted Message",{sender:r,err:e})}const s=JSON.parse(o);if(s.recipient!=this.userId)throw new l.DecryptionError("OLM_BAD_RECIPIENT","Message was intented for "+s.recipient);if(s.recipient_keys.ed25519!=this.olmDevice.deviceEd25519Key)throw new l.DecryptionError("OLM_BAD_RECIPIENT_KEY","Message not intended for this device",{intended:s.recipient_keys.ed25519,our_key:this.olmDevice.deviceEd25519Key});if(s.sender!=e.getSender())throw new l.DecryptionError("OLM_FORWARDED_MESSAGE","Message forwarded from "+s.sender,{reported_sender:e.getSender()});if(s.room_id!==e.getRoomId())throw new l.DecryptionError("OLM_BAD_ROOM","Message intended for room "+s.room_id,{reported_room:e.getRoomId()});return{clearEvent:s,senderCurve25519Key:r,claimedEd25519Key:(s.keys||{}).ed25519||null}}))}decryptMessage(e,t){return s(this,void 0,void 0,(function*(){if(0!==t.type)return this.reallyDecryptMessage(e,t);{const r=this.olmDevice._olmPrekeyPromise.then((()=>this.reallyDecryptMessage(e,t)));return this.olmDevice._olmPrekeyPromise=r.catch((()=>{})),yield r}}))}reallyDecryptMessage(e,t){return s(this,void 0,void 0,(function*(){const r=yield this.olmDevice.getSessionIdsForDevice(e),n={};for(let i=0;ie.valid&&(e.device&&e.deviceTrust.isVerified()||e.crossSigningId))),t.usable=t.usable||t.trusted_locally,t}))}scheduleKeyBackupSend(e=1e4){return n(this,void 0,void 0,(function*(){if(!this.sendingBackups){this.sendingBackups=!0;try{const t=Math.random()*e;yield c.sleep(t,void 0);let r=0;for(;;){if(!this.algorithm)return;try{if(0===(yield this.backupPendingKeys(200)))return;r=0}catch(e){if(r++,o.logger.log("Key backup request failed",e),e.data&&("M_NOT_FOUND"==e.data.errcode||"M_WRONG_ROOM_KEYS_VERSION"==e.data.errcode))throw yield this.checkKeyBackup(),this.baseApis.crypto.emit("crypto.keyBackupFailed",e.data.errcode),e}r&&(yield c.sleep(1e3*Math.pow(2,Math.min(r-1,4)),void 0))}}finally{this.sendingBackups=!1}}}))}backupPendingKeys(e){return n(this,void 0,void 0,(function*(){const t=yield this.baseApis.crypto.cryptoStore.getSessionsNeedingBackup(e);if(!t.length)return 0;let r=yield this.baseApis.crypto.cryptoStore.countSessionsNeedingBackup();this.baseApis.crypto.emit("crypto.keyBackupSessionsRemaining",r);const n={};for(const e of t){const t=e.sessionData.room_id;void 0===n[t]&&(n[t]={sessions:{}});const r=yield this.baseApis.crypto.olmDevice.exportInboundGroupSession(e.senderKey,e.sessionId,e.sessionData);r.algorithm=s.MEGOLM_ALGORITHM;const i=(r.forwarding_curve25519_key_chain||[]).length,o=this.baseApis.crypto.deviceList.getUserByIdentityKey(s.MEGOLM_ALGORITHM,e.senderKey),a=this.baseApis.crypto.deviceList.getDeviceByIdentityKey(s.MEGOLM_ALGORITHM,e.senderKey),c=this.baseApis.crypto.checkDeviceInfoTrust(o,a).isVerified();n[t].sessions[e.sessionId]={first_message_index:r.first_known_index,forwarded_count:i,is_verified:c,session_data:yield this.algorithm.encryptSession(r)}}return yield this.baseApis.sendKeyBackup(void 0,void 0,this.backupInfo.version,{rooms:n}),yield this.baseApis.crypto.cryptoStore.unmarkSessionsNeedingBackup(t),r=yield this.baseApis.crypto.cryptoStore.countSessionsNeedingBackup(),this.baseApis.crypto.emit("crypto.keyBackupSessionsRemaining",r),t.length}))}backupGroupSession(e,t){return n(this,void 0,void 0,(function*(){yield this.baseApis.crypto.cryptoStore.markSessionsNeedingBackup([{senderKey:e,sessionId:t}]),this.backupInfo&&this.scheduleKeyBackupSend()}))}scheduleAllGroupSessionsForBackup(){return n(this,void 0,void 0,(function*(){yield this.flagAllGroupSessionsForBackup(),this.scheduleKeyBackupSend(0)}))}flagAllGroupSessionsForBackup(){return n(this,void 0,void 0,(function*(){yield this.baseApis.crypto.cryptoStore.doTxn("readwrite",[u.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,u.IndexedDBCryptoStore.STORE_BACKUP],(e=>{this.baseApis.crypto.cryptoStore.getAllEndToEndInboundGroupSessions(e,(t=>{null!==t&&this.baseApis.crypto.cryptoStore.markSessionsNeedingBackup([t],e)}))}));const e=yield this.baseApis.crypto.cryptoStore.countSessionsNeedingBackup();return this.baseApis.emit("crypto.keyBackupSessionsRemaining",e),e}))}countSessionsNeedingBackup(){return this.baseApis.crypto.cryptoStore.countSessionsNeedingBackup()}}r.BackupManager=g;class p{constructor(e,t,r){this.authData=e,this.publicKey=t,this.getKey=r}static init(e,r){return n(this,void 0,void 0,(function*(){if(!e||!("public_key"in e))throw new Error("auth_data missing required information");const n=new t.Olm.PkEncryption;return n.set_recipient_key(e.public_key),new p(e,n,r)}))}static prepare(e){return n(this,void 0,void 0,(function*(){const r=new t.Olm.PkDecryption;try{const n={};if(e)if(e instanceof Uint8Array)n.public_key=r.init_with_private_key(e);else{const t=yield a.keyFromPassphrase(e);n.private_key_salt=t.salt,n.private_key_iterations=t.iterations,n.public_key=r.init_with_private_key(t.key)}else n.public_key=r.generate_key();return(new t.Olm.PkEncryption).set_recipient_key(n.public_key),[r.get_private_key(),n]}finally{r.free()}}))}static checkBackupVersion(e){if(!("public_key"in e.auth_data))throw new Error("Invalid backup data returned")}get untrusted(){return!0}encryptSession(e){return n(this,void 0,void 0,(function*(){const t=Object.assign({},e);return delete t.session_id,delete t.room_id,delete t.first_known_index,this.publicKey.encrypt(JSON.stringify(t))}))}decryptSessions(e){return n(this,void 0,void 0,(function*(){const r=yield this.getKey(),n=new t.Olm.PkDecryption;try{if(n.init_with_private_key(r)!==this.authData.public_key)throw{errcode:i.MatrixClient.RESTORE_BACKUP_ERROR_BAD_KEY};const t=[];for(const[r,i]of Object.entries(e))try{const e=JSON.parse(n.decrypt(i.session_data.ephemeral,i.session_data.mac,i.session_data.ciphertext));e.session_id=r,t.push(e)}catch(e){o.logger.log("Failed to decrypt megolm session from backup",e,i)}return t}finally{n.free()}}))}keyMatches(e){return n(this,void 0,void 0,(function*(){const r=new t.Olm.PkDecryption;let n;try{n=r.init_with_private_key(e)}finally{r.free()}return n===this.authData.public_key}))}free(){this.publicKey.free()}}r.Curve25519=p,p.algorithmName="m.megolm_backup.v1.curve25519-aes-sha2";const v=new f.UnstableValue(null,"org.matrix.msc3270.v1.aes-hmac-sha2");class y{constructor(e,t){this.authData=e,this.key=t}static init(e,t){return n(this,void 0,void 0,(function*(){if(!e)throw new Error("auth_data missing");const r=yield t();if(e.mac){const{mac:t}=yield d.calculateKeyCheck(r,e.iv);if(e.mac.replace(/=+$/g,"")!==t.replace(/=+/g,""))throw new Error("Key does not match")}return new y(e,r)}))}static prepare(e){return n(this,void 0,void 0,(function*(){let t;const r={};if(e)if(e instanceof Uint8Array)t=new Uint8Array(e);else{const n=yield a.keyFromPassphrase(e);r.private_key_salt=n.salt,r.private_key_iterations=n.iterations,t=n.key}else t=function(e){const t=h.getCrypto();if(t)return t.randomBytes(e);if(null===window||void 0===window?void 0:window.crypto){const t=new Uint8Array(e);return window.crypto.getRandomValues(t),t}throw new Error("No usable crypto implementation")}(32);const{iv:n,mac:i}=yield d.calculateKeyCheck(t);return r.iv=n,r.mac=i,[t,r]}))}static checkBackupVersion(e){if(!("iv"in e.auth_data)||!("mac"in e.auth_data))throw new Error("Invalid backup data returned")}get untrusted(){return!1}encryptSession(e){return n(this,void 0,void 0,(function*(){const t=Object.assign({},e);return delete t.session_id,delete t.room_id,delete t.first_known_index,yield d.encryptAES(JSON.stringify(t),this.key,e.session_id)}))}decryptSessions(e){return n(this,void 0,void 0,(function*(){const t=[];for(const[r,n]of Object.entries(e))try{const e=JSON.parse(yield d.decryptAES(n.session_data,this.key,r));e.session_id=r,t.push(e)}catch(e){o.logger.log("Failed to decrypt megolm session from backup",e,n)}return t}))}keyMatches(e){return n(this,void 0,void 0,(function*(){if(this.authData.mac){const{mac:t}=yield d.calculateKeyCheck(e,this.authData.iv);return this.authData.mac.replace(/=+$/g,"")===t.replace(/=+/g,"")}return!0}))}free(){this.key.fill(0)}}r.Aes256=y,y.algorithmName=v.name,r.algorithmsByName={[p.algorithmName]:p,[y.algorithmName]:y},r.DefaultAlgorithm=p}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../NamespacedValue":60,"../client":64,"../logger":106,"../utils":137,"./aes":74,"./key_passphrase":84,"./olmlib":85,"./recoverykey":86,"./store/indexeddb-crypto-store":88}],81:[function(e,t,r){(function(t,n){(function(){"use strict";var i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.DehydrationManager=r.DEHYDRATION_ALGORITHM=void 0;const s=e("./olmlib"),a=e("../crypto/store/indexeddb-crypto-store"),c=e("./aes"),u=o(e("another-json")),l=e("../logger");r.DEHYDRATION_ALGORITHM="org.matrix.msc2697.v1.olm.libolm_pickle";const d=6048e5;r.DehydrationManager=class{constructor(e){this.crypto=e,this.inProgress=!1,this.getDehydrationKeyFromCache()}getDehydrationKeyFromCache(){return i(this,void 0,void 0,(function*(){return yield this.crypto.cryptoStore.doTxn("readonly",[a.IndexedDBCryptoStore.STORE_ACCOUNT],(e=>{this.crypto.cryptoStore.getSecretStorePrivateKey(e,(e=>i(this,void 0,void 0,(function*(){if(e){const{key:i,keyInfo:o,deviceDisplayName:a,time:u}=e,l=n.from(this.crypto.olmDevice._pickleKey),h=yield c.decryptAES(i,l,r.DEHYDRATION_ALGORITHM);this.key=s.decodeBase64(h),this.keyInfo=o,this.deviceDisplayName=a;const f=Date.now(),g=Math.max(1,u+d-f);this.timeoutId=t.setTimeout(this.dehydrateDevice.bind(this),g)}}))),"dehydration")}))}))}setKeyAndQueueDehydration(e,t={},r){return i(this,void 0,void 0,(function*(){(yield this.setKey(e,t,r))||this.dehydrateDevice()}))}setKey(e,r={},n){return i(this,void 0,void 0,(function*(){if(!e)return this.timeoutId&&(t.clearTimeout(this.timeoutId),this.timeoutId=void 0),yield this.crypto.cryptoStore.doTxn("readwrite",[a.IndexedDBCryptoStore.STORE_ACCOUNT],(e=>{this.crypto.cryptoStore.storeSecretStorePrivateKey(e,"dehydration",null)})),this.key=void 0,void(this.keyInfo=void 0);let i=this.key&&e.length==this.key.length;for(let t=0;i&&t{this.crypto.cryptoStore.storeSecretStorePrivateKey(e,"dehydration",{keyInfo:this.keyInfo,key:i,deviceDisplayName:this.deviceDisplayName,time:Date.now()})})),l.logger.log("Attempting to dehydrate device"),l.logger.log("Creating account");const o=new t.Olm.Account;o.create();const h=JSON.parse(o.identity_keys()),f=o.max_number_of_one_time_keys();o.generate_one_time_keys(f/2),o.generate_fallback_key();const g=JSON.parse(o.one_time_keys()),p=JSON.parse(o.fallback_key());o.mark_keys_as_published();const v=o.pickle(new Uint8Array(this.key)),y={algorithm:r.DEHYDRATION_ALGORITHM,account:v};this.keyInfo.passphrase&&(y.passphrase=this.keyInfo.passphrase),l.logger.log("Uploading account to server");const m=(yield this.crypto.baseApis.http.authedRequest(void 0,"PUT","/dehydrated_device",void 0,{device_data:y,initial_device_display_name:this.deviceDisplayName},{prefix:"/_matrix/client/unstable/org.matrix.msc2697.v2"})).device_id;l.logger.log("Preparing device keys",m);const b={algorithms:this.crypto.supportedAlgorithms,device_id:m,user_id:this.crypto.userId,keys:{[`ed25519:${m}`]:h.ed25519,[`curve25519:${m}`]:h.curve25519}},S=o.sign(u.default.stringify(b));b.signatures={[this.crypto.userId]:{[`ed25519:${m}`]:S}},this.crypto.crossSigningInfo.getId("self_signing")&&(yield this.crypto.crossSigningInfo.signObject(b,"self_signing")),l.logger.log("Preparing one-time keys");const _={};for(const[e,t]of Object.entries(g.curve25519)){const r={key:t},n=o.sign(u.default.stringify(r));r.signatures={[this.crypto.userId]:{[`ed25519:${m}`]:n}},_[`signed_curve25519:${e}`]=r}l.logger.log("Preparing fallback keys");const E={};for(const[e,t]of Object.entries(p.curve25519)){const r={key:t,fallback:!0},n=o.sign(u.default.stringify(r));r.signatures={[this.crypto.userId]:{[`ed25519:${m}`]:n}},E[`signed_curve25519:${e}`]=r}return l.logger.log("Uploading keys to server"),yield this.crypto.baseApis.http.authedRequest(void 0,"POST","/keys/upload/"+encodeURI(m),void 0,{device_keys:b,one_time_keys:_,"org.matrix.msc2732.fallback_keys":E}),l.logger.log("Done dehydrating"),this.timeoutId=t.setTimeout(this.dehydrateDevice.bind(this),d),m}finally{this.inProgress=!1}}}))}stop(){this.timeoutId&&(t.clearTimeout(this.timeoutId),this.timeoutId=void 0)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer)},{"../crypto/store/indexeddb-crypto-store":88,"../logger":106,"./aes":74,"./olmlib":85,"another-json":28,buffer:34}],82:[function(e,t,r){"use strict";var n;Object.defineProperty(r,"__esModule",{value:!0}),r.DeviceInfo=void 0,function(e){e[e.Blocked=-1]="Blocked",e[e.Unverified=0]="Unverified",e[e.Verified=1]="Verified"}(n||(n={}));class i{constructor(e){this.deviceId=e,this.keys={},this.verified=n.Unverified,this.known=!1,this.unsigned={},this.signatures={}}static fromStorage(e,t){const r=new i(t);for(const t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}toStorage(){return{algorithms:this.algorithms,keys:this.keys,verified:this.verified,known:this.known,unsigned:this.unsigned,signatures:this.signatures}}getFingerprint(){return this.keys["ed25519:"+this.deviceId]}getIdentityKey(){return this.keys["curve25519:"+this.deviceId]}getDisplayName(){return this.unsigned.device_display_name||null}isBlocked(){return this.verified==n.Blocked}isVerified(){return this.verified==n.Verified}isUnverified(){return this.verified==n.Unverified}isKnown(){return!0===this.known}}r.DeviceInfo=i,i.DeviceVerification={VERIFIED:n.Verified,UNVERIFIED:n.Unverified,BLOCKED:n.Blocked}},{}],83:[function(e,t,r){(function(t,n){(function(){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},a=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.IncomingRoomKeyRequest=r.fixBackupKey=r.Crypto=r.isCryptoAvailable=r.verificationMethods=void 0;const u=c(e("another-json")),l=e("events"),d=e("../ReEmitter"),h=e("../logger"),f=e("./OlmDevice"),g=s(e("./olmlib")),p=e("./DeviceList"),v=e("./deviceinfo"),y=s(e("./algorithms")),m=e("./CrossSigning"),b=e("./EncryptionSetup"),S=e("./SecretStorage"),_=e("./OutgoingRoomKeyRequestManager"),E=e("./store/indexeddb-crypto-store"),k=e("./verification/QRCode"),w=e("./verification/SAS"),I=e("./key_passphrase"),T=e("./recoverykey"),R=e("./verification/request/VerificationRequest"),C=e("./verification/request/InRoomChannel"),O=e("./verification/request/ToDeviceChannel"),D=e("./verification/IllegalMethod"),A=e("../errors"),P=e("./aes"),x=e("./dehydration"),M=e("./backup"),U=e("../models/event"),K=v.DeviceInfo.DeviceVerification,B={[k.ReciprocateQRCode.NAME]:k.ReciprocateQRCode,[w.SAS.NAME]:w.SAS,[k.SHOW_QR_CODE_METHOD]:D.IllegalMethod,[k.SCAN_QR_CODE_METHOD]:D.IllegalMethod};r.verificationMethods={RECIPROCATE_QR_CODE:k.ReciprocateQRCode.NAME,SAS:w.SAS.NAME},r.isCryptoAvailable=function(){return Boolean(t.Olm)};class N extends l.EventEmitter{constructor(e,t,r,n,i,o,s,c){if(super(),this.baseApis=e,this.sessionStore=t,this.userId=r,this.deviceId=n,this.clientStore=i,this.cryptoStore=o,this.roomList=s,this.trustCrossSignedDevices=!0,this.lastOneTimeKeyCheck=null,this.oneTimeKeyCheckInProgress=!1,this.roomEncryptors={},this.roomDecryptors={},this.deviceKeys={},this.globalBlacklistUnverifiedDevices=!1,this.globalErrorOnUnknownDevices=!0,this.receivedRoomKeyRequests=[],this.receivedRoomKeyRequestCancellations=[],this.processingRoomKeyRequests=!1,this.lazyLoadMembers=!1,this.roomDeviceTrackingState={},this.lastNewSessionForced={},this.sendKeyRequestsImmediately=!1,this.onDeviceListUserCrossSigningUpdated=e=>a(this,void 0,void 0,(function*(){if(e===this.userId){const t=this.deviceList.getStoredCrossSigningForUser(e),r=t?t.getId():null,n=this.crossSigningInfo.getId(),i=n!==r;n&&r&&!i?yield this.checkOwnCrossSigningTrust():(this.storeTrustedSelfKeys(null),this.emit("crossSigning.keysChanged",{}),this.emit("userTrustStatusChanged",this.userId,this.checkUserTrust(e)))}else{yield this.checkDeviceVerifications(e);const t=this.deviceList.getStoredCrossSigningForUser(e);t&&(t.updateCrossSigningVerifiedBefore(this.checkUserTrust(e).isCrossSigningVerified()),this.deviceList.setRawStoredCrossSigningForUser(e,t.toStorage())),this.emit("userTrustStatusChanged",e,this.checkUserTrust(e))}})),this.onToDeviceEvent=e=>{try{h.logger.log(`received to_device ${e.getType()} from: ${e.getSender()} id: ${e.getId()}`),"m.room_key"==e.getType()||"m.forwarded_room_key"==e.getType()?this.onRoomKeyEvent(e):"m.room_key_request"==e.getType()?this.onRoomKeyRequestEvent(e):"m.secret.request"===e.getType()?this.secretStorage.onRequestReceived(e):"m.secret.send"===e.getType()?this.secretStorage.onSecretReceived(e):"org.matrix.room_key.withheld"===e.getType()?this.onRoomKeyWithheldEvent(e):e.getContent().transaction_id?this.onKeyVerificationMessage(e):"m.bad.encrypted"===e.getContent().msgtype?this.onToDeviceBadEncrypted(e):(e.isBeingDecrypted()||e.shouldAttemptDecryption())&&(e.isBeingDecrypted()||e.attemptDecryption(this),e.once("Event.decrypted",(e=>{this.onToDeviceEvent(e)})))}catch(e){h.logger.error("Error handling toDeviceEvent:",e)}},this.onTimelineEvent=(e,t,r,n,{liveEvent:i=!0}={})=>{if(!C.InRoomChannel.validateEvent(e,this.baseApis))return;this.handleVerificationEvent(e,this.inRoomVerificationRequests,(e=>{const t=new C.InRoomChannel(this.baseApis,e.getRoomId());return new R.VerificationRequest(t,this.verificationMethods,this.baseApis)}),i)},this.reEmitter=new d.ReEmitter(this),c){this.verificationMethods=new Map;for(const e of c)"string"==typeof e?B[e]&&this.verificationMethods.set(e,B[e]):e.NAME?this.verificationMethods.set(e.NAME,e):h.logger.warn(`Excluding unknown verification method ${e}`)}else this.verificationMethods=B;this.backupManager=new M.BackupManager(e,(()=>a(this,void 0,void 0,(function*(){const e=yield this.getSessionBackupPrivateKey();if(e)return e;const t=yield this.getSecret("m.megolm_backup.v1");if(t){const e=L(t);if(e){const[t]=yield this.getSecretStorageKey();yield this.storeSecret("m.megolm_backup.v1",e,[t])}return g.decodeBase64(e||t)}if(this.baseApis.cryptoCallbacks&&this.baseApis.cryptoCallbacks.getBackupKey)return yield this.baseApis.cryptoCallbacks.getBackupKey();throw new Error("Unable to get private key")})))),this.olmDevice=new f.OlmDevice(o),this.deviceList=new p.DeviceList(e,o,this.olmDevice),this.deviceList.on("userCrossSigningUpdated",this.onDeviceListUserCrossSigningUpdated),this.reEmitter.reEmit(this.deviceList,["crypto.devicesUpdated","crypto.willUpdateDevices"]),this.supportedAlgorithms=Object.keys(y.DECRYPTION_CLASSES),this.outgoingRoomKeyRequestManager=new _.OutgoingRoomKeyRequestManager(e,this.deviceId,this.cryptoStore),this.toDeviceVerificationRequests=new O.ToDeviceRequests,this.inRoomVerificationRequests=new C.InRoomRequests;const u=this.baseApis.cryptoCallbacks||{},l=m.createCryptoStoreCacheCallbacks(o,this.olmDevice);this.crossSigningInfo=new m.CrossSigningInfo(r,u,l),this.secretStorage=new S.SecretStorage(e,u,e),this.dehydrationManager=new x.DehydrationManager(this),!u.getCrossSigningKey&&u.getSecretStorageKey&&(u.getCrossSigningKey=e=>a(this,void 0,void 0,(function*(){return m.CrossSigningInfo.getFromSecretStorage(e,this.secretStorage)})))}static getOlmVersion(){return f.OlmDevice.getOlmVersion()}init({exportedOlmDevice:e,pickleKey:r}={}){return a(this,void 0,void 0,(function*(){h.logger.log("Crypto: initialising Olm..."),yield t.Olm.init(),h.logger.log(e?"Crypto: initialising Olm device from exported device...":"Crypto: initialising Olm device..."),yield this.olmDevice.init({fromExportedDevice:e,pickleKey:r}),h.logger.log("Crypto: loading device list..."),yield this.deviceList.load(),this.deviceKeys["ed25519:"+this.deviceId]=this.olmDevice.deviceEd25519Key,this.deviceKeys["curve25519:"+this.deviceId]=this.olmDevice.deviceCurve25519Key,h.logger.log("Crypto: fetching own devices...");let n=this.deviceList.getRawStoredDevicesForUser(this.userId);if(n||(n={}),!n[this.deviceId]){h.logger.log("Crypto: adding this device to the store...");const e={keys:this.deviceKeys,algorithms:this.supportedAlgorithms,verified:K.VERIFIED,known:!0};n[this.deviceId]=e,this.deviceList.storeDevicesForUser(this.userId,n),this.deviceList.saveIfDirty()}yield this.cryptoStore.doTxn("readonly",[E.IndexedDBCryptoStore.STORE_ACCOUNT],(e=>{this.cryptoStore.getCrossSigningKeys(e,(e=>{e&&0!==Object.keys(e).length&&(h.logger.log("Loaded cross-signing public keys from crypto store"),this.crossSigningInfo.setKeys(e))}))})),this.deviceList.startTrackingDeviceList(this.userId),h.logger.log("Crypto: checking for key backup..."),this.backupManager.checkAndStart()}))}getCryptoTrustCrossSignedDevices(){return this.trustCrossSignedDevices}setCryptoTrustCrossSignedDevices(e){this.trustCrossSignedDevices=e;for(const e of this.deviceList.getKnownUserIds()){const t=this.deviceList.getRawStoredDevicesForUser(e);for(const r of Object.keys(t)){const t=this.checkDeviceTrust(e,r);if(!t.isLocallyVerified()&&t.isCrossSigningVerified()){const t=this.deviceList.getStoredDevice(e,r);this.emit("deviceVerificationChanged",e,r,t)}}}}createRecoveryKeyFromPassphrase(e){return a(this,void 0,void 0,(function*(){const r=new t.Olm.PkDecryption;try{const t={};if(e){const n=yield I.keyFromPassphrase(e);t.passphrase={algorithm:"m.pbkdf2",iterations:n.iterations,salt:n.salt},t.pubkey=r.init_with_private_key(n.key)}else t.pubkey=r.generate_key();const n=r.get_private_key();return{keyInfo:t,encodedPrivateKey:T.encodeRecoveryKey(n),privateKey:n}}finally{r&&r.free()}}))}isCrossSigningReady(){return a(this,void 0,void 0,(function*(){const e=this.crossSigningInfo.getId(),t=(yield this.crossSigningInfo.isStoredInKeyCache())||(yield this.crossSigningInfo.isStoredInSecretStorage(this.secretStorage));return!(!e||!t)}))}isSecretStorageReady(){return a(this,void 0,void 0,(function*(){const e=yield this.secretStorage.hasKey(),t=yield this.crossSigningInfo.isStoredInSecretStorage(this.secretStorage),r=!this.backupManager.getKeyBackupEnabled()||(yield this.baseApis.isKeyBackupKeyStored());return!!(e&&t&&r)}))}bootstrapCrossSigning({authUploadDeviceSigningKeys:e,setupNewCrossSigning:t}={}){return a(this,void 0,void 0,(function*(){h.logger.log("Bootstrapping cross-signing");const r=this.baseApis.cryptoCallbacks,n=new b.EncryptionSetupBuilder(this.baseApis.store.accountData,r),i=new m.CrossSigningInfo(this.userId,n.crossSigningCallbacks,n.crossSigningCallbacks),o=()=>a(this,void 0,void 0,(function*(){i.resetKeys(),yield this.signObject(i.keys.master),n.addCrossSigningKeys(e,i.keys);const t=this.deviceList.getStoredDevice(this.userId,this.deviceId),r=yield i.signDevice(this.userId,t);n.addKeySignature(this.userId,this.deviceId,r),this.backupManager.backupInfo&&(yield i.signObject(this.backupManager.backupInfo.auth_data,"master"),n.addSessionBackup(this.backupManager.backupInfo))})),s=this.crossSigningInfo.getId(),c=yield this.crossSigningInfo.isStoredInKeyCache(),u=yield this.crossSigningInfo.isStoredInSecretStorage(this.secretStorage),l=c||u;h.logger.log({setupNewCrossSigning:t,publicKeysOnDevice:s,privateKeysInCache:c,privateKeysInStorage:u,privateKeysExistSomewhere:l}),!l||t?(h.logger.log("Cross-signing private keys not found locally or in secret storage, creating new keys"),yield o()):s&&c?h.logger.log("Cross-signing public keys trusted and private keys found locally"):u&&(h.logger.log("Cross-signing private keys not found locally, but they are available in secret storage, reading storage and caching locally"),yield this.checkOwnCrossSigningTrust({allowPrivateKeyRequests:!0}));const d=n.crossSigningCallbacks.privateKeys;if(d.size&&!this.baseApis.cryptoCallbacks.saveCrossSigningKeys){const e=new S.SecretStorage(n.accountDataClientAdapter,n.ssssCryptoCallbacks);(yield e.hasKey())&&(h.logger.log("Storing new cross-signing private keys in secret storage"),yield m.CrossSigningInfo.storeInSecretStorage(d,e))}const f=n.buildOperation();yield f.apply(this),yield n.persist(this),h.logger.log("Cross-signing ready")}))}bootstrapSecretStorage({createSecretStorageKey:e=(()=>a(this,void 0,void 0,(function*(){return{}}))),keyBackupInfo:t,setupNewKeyBackup:r,setupNewSecretStorage:n,getKeyBackupPassphrase:i}={}){return a(this,void 0,void 0,(function*(){h.logger.log("Bootstrapping Secure Secret Storage");const o=this.baseApis.cryptoCallbacks,s=new b.EncryptionSetupBuilder(this.baseApis.store.accountData,o),c=new S.SecretStorage(s.accountDataClientAdapter,s.ssssCryptoCallbacks);let u=null;const l=(e,t)=>a(this,void 0,void 0,(function*(){e=e||{},t&&(e.key=t);const{keyId:r,keyInfo:n}=yield c.addKey(S.SECRET_STORAGE_ALGORITHM_V1_AES,e);return t&&s.ssssCryptoCallbacks.addPrivateKey(r,n,t),yield c.setDefaultKeyId(r),r})),d=(e,t)=>a(this,void 0,void 0,(function*(){if(!t.mac){const r=yield this.baseApis.cryptoCallbacks.getSecretStorageKey({keys:{[e]:t}},"");if(r){const n=r[1];s.ssssCryptoCallbacks.addPrivateKey(e,t,n);const{iv:i,mac:o}=yield P.calculateKeyCheck(n);t.iv=i,t.mac=o,yield s.setAccountData(`m.secret_storage.key.${e}`,t)}}})),f=e=>a(this,void 0,void 0,(function*(){if(this.crossSigningInfo.getId()&&(yield this.crossSigningInfo.isStoredInKeyCache("master")))try{h.logger.log("Adding cross-signing signature to key backup"),yield this.crossSigningInfo.signObject(e,"master")}catch(e){h.logger.error("Signing key backup with cross-signing keys failed",e)}else h.logger.warn("Cross-signing keys not available, skipping signature on key backup")})),p=yield this.getSecretStorageKey(),[v,y]=p||[null,null],_=!n&&y&&y.algorithm===S.SECRET_STORAGE_ALGORITHM_V1_AES;if(h.logger.log({keyBackupInfo:t,setupNewKeyBackup:r,setupNewSecretStorage:n,storageExists:_,oldKeyInfo:y}),_||t)if(!_&&t){h.logger.log("Secret storage does not exist, using key backup key");const e=(yield this.getSessionBackupPrivateKey())||(yield i()),r={};t.auth_data.private_key_salt&&t.auth_data.private_key_iterations&&(r.passphrase={algorithm:"m.pbkdf2",iterations:t.auth_data.private_key_iterations,salt:t.auth_data.private_key_salt,bits:256}),u=yield l(r,e),yield c.store("m.megolm_backup.v1",g.encodeBase64(e),[u]),yield f(t.auth_data),s.addSessionBackup(t)}else h.logger.log("Secret storage exists"),y&&y.algorithm===S.SECRET_STORAGE_ALGORITHM_V1_AES&&(yield d(v,y));else{h.logger.log("Secret storage does not exist, creating new storage key");const{keyInfo:t,privateKey:r}=yield e();u=yield l(t,r)}if(!this.baseApis.cryptoCallbacks.saveCrossSigningKeys&&(yield this.isCrossSigningReady())&&(u||!(yield this.crossSigningInfo.isStoredInSecretStorage(c)))){h.logger.log("Copying cross-signing private keys from cache to secret storage");const e=yield this.crossSigningInfo.getCrossSigningKeysFromCache();yield m.CrossSigningInfo.storeInSecretStorage(e,c)}if(r&&!t){h.logger.log("Creating new message key backup version");const e=yield this.baseApis.prepareKeyBackupVersion(null,{secureSecretStorage:!1}),t=T.decodeRecoveryKey(e.recovery_key);yield c.store("m.megolm_backup.v1",g.encodeBase64(t));const r={algorithm:e.algorithm,auth_data:e.auth_data};yield f(r.auth_data),yield this.signObject(r.auth_data),s.addSessionBackup(r)}const E=yield c.get("m.megolm_backup.v1");if(E){h.logger.info("Got session backup key from secret storage: caching");const e=L(E);e&&(yield c.store("m.megolm_backup.v1",e,[u||v]));const t=new Uint8Array(g.decodeBase64(e||E));yield s.addSessionBackupPrivateKeyToCache(t)}else if(this.backupManager.getKeyBackupEnabled()){const e=(yield this.getSessionBackupPrivateKey())||(yield i());if(!e)return void h.logger.error("Key backup is enabled but couldn't get key backup key!");h.logger.info("Got session backup key from cache/user that wasn't in SSSS: saving to SSSS"),yield c.store("m.megolm_backup.v1",g.encodeBase64(e))}const k=s.buildOperation();yield k.apply(this),yield s.persist(this),h.logger.log("Secure Secret Storage ready")}))}addSecretStorageKey(e,t,r){return this.secretStorage.addKey(e,t,r)}hasSecretStorageKey(e){return this.secretStorage.hasKey(e)}getSecretStorageKey(e){return this.secretStorage.getKey(e)}storeSecret(e,t,r){return this.secretStorage.store(e,t,r)}getSecret(e){return this.secretStorage.get(e)}isSecretStored(e,t){return this.secretStorage.isStored(e,t)}requestSecret(e,t){return t||(t=Object.keys(this.deviceList.getRawStoredDevicesForUser(this.userId))),this.secretStorage.request(e,t)}getDefaultSecretStorageKeyId(){return this.secretStorage.getDefaultKeyId()}setDefaultSecretStorageKeyId(e){return this.secretStorage.setDefaultKeyId(e)}checkSecretStorageKey(e,t){return this.secretStorage.checkKey(e,t)}checkSecretStoragePrivateKey(e,r){let n=null;try{n=new t.Olm.PkDecryption;return n.init_with_private_key(e)===r}finally{n&&n.free()}}getSessionBackupPrivateKey(){return a(this,void 0,void 0,(function*(){let e=yield new Promise((e=>{this.cryptoStore.doTxn("readonly",[E.IndexedDBCryptoStore.STORE_ACCOUNT],(t=>{this.cryptoStore.getSecretStorePrivateKey(t,e,"m.megolm_backup.v1")}))}));if(e&&"string"==typeof e&&(e=new Uint8Array(g.decodeBase64(L(e)||e)),yield this.storeSessionBackupPrivateKey(e)),e&&e.ciphertext){const t=n.from(this.olmDevice._pickleKey),r=yield P.decryptAES(e,t,"m.megolm_backup.v1");e=g.decodeBase64(r)}return e}))}storeSessionBackupPrivateKey(e){return a(this,void 0,void 0,(function*(){if(!(e instanceof Uint8Array))throw new Error(`storeSessionBackupPrivateKey expects Uint8Array, got ${e}`);const t=n.from(this.olmDevice._pickleKey),r=yield P.encryptAES(g.encodeBase64(e),t,"m.megolm_backup.v1");return this.cryptoStore.doTxn("readwrite",[E.IndexedDBCryptoStore.STORE_ACCOUNT],(e=>{this.cryptoStore.storeSecretStorePrivateKey(e,"m.megolm_backup.v1",r)}))}))}checkCrossSigningPrivateKey(e,r){let n=null;try{n=new t.Olm.PkSigning;return n.init_with_seed(e)===r}finally{n&&n.free()}}afterCrossSigningLocalKeyChange(){return a(this,void 0,void 0,(function*(){h.logger.info("Starting cross-signing key change post-processing");const e=this.deviceList.getStoredDevice(this.userId,this.deviceId),t=yield this.crossSigningInfo.signDevice(this.userId,e);h.logger.info(`Starting background key sig upload for ${this.deviceId}`);const r=({shouldEmit:e})=>this.baseApis.uploadKeySignatures({[this.userId]:{[this.deviceId]:t}}).then((t=>{const{failures:n}=t||{};if(Object.keys(n||[]).length>0)throw e&&this.baseApis.emit("crypto.keySignatureUploadFailure",n,"afterCrossSigningLocalKeyChange",r),new A.KeySignatureUploadError("Key upload failed",{failures:n});h.logger.info(`Finished background key sig upload for ${this.deviceId}`)})).catch((e=>{h.logger.error(`Error during background key sig upload for ${this.deviceId}`,e)}));r({shouldEmit:!0});const n=this.baseApis.cryptoCallbacks.shouldUpgradeDeviceVerifications;if(n){h.logger.info("Starting device verification upgrade");const e={};for(const[t,r]of Object.entries(this.deviceList.crossSigningInfo)){const n=yield this.checkForDeviceVerificationUpgrade(t,m.CrossSigningInfo.fromStorage(r,t));n&&(e[t]=n)}if(Object.keys(e).length>0){h.logger.info(`Found ${Object.keys(e).length} verif users to upgrade`);try{const t=yield n({users:e});if(t)for(const r of t)r in e&&(yield this.baseApis.setDeviceVerified(r,e[r].crossSigningInfo.getId()))}catch(e){h.logger.log("shouldUpgradeDeviceVerifications threw an error: not upgrading",e)}}h.logger.info("Finished device verification upgrade")}h.logger.info("Finished cross-signing key change post-processing")}))}checkForDeviceVerificationUpgrade(e,t){return a(this,void 0,void 0,(function*(){const r=this.crossSigningInfo.checkUserTrust(t);if(t.firstUse&&!r.isVerified()){const r=this.deviceList.getRawStoredDevicesForUser(e),n=yield this.checkForValidDeviceSignature(e,t.keys.master,r);if(n.length)return{devices:n.map((e=>v.DeviceInfo.fromStorage(r[e],e))),crossSigningInfo:t}}}))}checkForValidDeviceSignature(e,t,r){return a(this,void 0,void 0,(function*(){const n=[];if(r&&t.signatures&&t.signatures[e])for(const i of Object.keys(t.signatures[e])){const[,o]=i.split(":",2);if(o in r&&r[o].verified===K.VERIFIED)try{yield g.verifySignature(this.olmDevice,t,e,o,r[o].keys[i]),n.push(o)}catch(e){}}return n}))}getCrossSigningId(e){return this.crossSigningInfo.getId(e)}getStoredCrossSigningForUser(e){return this.deviceList.getStoredCrossSigningForUser(e)}checkUserTrust(e){const t=this.deviceList.getStoredCrossSigningForUser(e);return t?this.crossSigningInfo.checkUserTrust(t):new m.UserTrustLevel(!1,!1,!1)}checkDeviceTrust(e,t){const r=this.deviceList.getStoredDevice(e,t);return this.checkDeviceInfoTrust(e,r)}checkDeviceInfoTrust(e,t){const r=!(!t||!t.isVerified()),n=this.deviceList.getStoredCrossSigningForUser(e);if(t&&n){const i=this.trustCrossSignedDevices||e===this.userId;return this.crossSigningInfo.checkDeviceTrust(n,t,r,i)}return new m.DeviceTrustLevel(!1,!1,r,!1)}checkOwnCrossSigningTrust({allowPrivateKeyRequests:e=!1}={}){return a(this,void 0,void 0,(function*(){const t=this.userId;yield this.downloadKeys([this.userId]);const r=yield this.crossSigningInfo.getCrossSigningKeysFromCache(),n=this.deviceList.getStoredCrossSigningForUser(t);if(!n)return void h.logger.error("Got cross-signing update event for user "+t+" but no new cross-signing information found!");const i=n.getId(),o=this.crossSigningInfo.getId()!==i,s=n.getId()&&!r.has("master");if(o&&h.logger.info("Got new master public key",i),e&&(o||s)){h.logger.info("Attempting to retrieve cross-signing master private key");let e=null;try{e=(yield this.crossSigningInfo.getCrossSigningKey("master",i))[1],h.logger.info("Got cross-signing master private key")}finally{e&&e.free()}}const a=this.crossSigningInfo.getId("self_signing"),c=this.crossSigningInfo.getId("user_signing");this.storeTrustedSelfKeys(n.keys);const u=a!==n.getId("self_signing"),l=c!==n.getId("user_signing"),d=n.getId("self_signing")&&!r.has("self_signing"),f=n.getId("user_signing")&&!r.has("user_signing"),g={};if(u&&h.logger.info("Got new self-signing key",n.getId("self_signing")),e&&(u||d)){h.logger.info("Attempting to retrieve cross-signing self-signing private key");let e=null;try{e=(yield this.crossSigningInfo.getCrossSigningKey("self_signing",n.getId("self_signing")))[1],h.logger.info("Got cross-signing self-signing private key")}finally{e&&e.free()}const t=this.deviceList.getStoredDevice(this.userId,this.deviceId),r=yield this.crossSigningInfo.signDevice(this.userId,t);g[this.deviceId]=r}if(l&&h.logger.info("Got new user-signing key",n.getId("user_signing")),e&&(l||f)){h.logger.info("Attempting to retrieve cross-signing user-signing private key");let e=null;try{e=(yield this.crossSigningInfo.getCrossSigningKey("user_signing",n.getId("user_signing")))[1],h.logger.info("Got cross-signing user-signing private key")}finally{e&&e.free()}}if(o){const e=this.crossSigningInfo.keys.master;yield this.signObject(e);const t=e.signatures[this.userId]["ed25519:"+this.deviceId];g[this.crossSigningInfo.getId()]=Object.assign({},e,{signatures:{[this.userId]:{["ed25519:"+this.deviceId]:t}}})}const p=Object.keys(g);if(p.length){const e=({shouldEmit:t})=>(h.logger.info(`Starting background key sig upload for ${p}`),this.baseApis.uploadKeySignatures({[this.userId]:g}).then((r=>{const{failures:n}=r||{};if(h.logger.info(`Finished background key sig upload for ${p}`),Object.keys(n||[]).length>0)throw t&&this.baseApis.emit("crypto.keySignatureUploadFailure",n,"checkOwnCrossSigningTrust",e),new A.KeySignatureUploadError("Key upload failed",{failures:n})})).catch((e=>{h.logger.error(`Error during background key sig upload for ${p}`,e)})));e({shouldEmit:!0})}this.emit("userTrustStatusChanged",t,this.checkUserTrust(t)),o&&(this.baseApis.emit("crossSigning.keysChanged",{}),yield this.afterCrossSigningLocalKeyChange()),yield this.backupManager.checkKeyBackup()}))}storeTrustedSelfKeys(e){return a(this,void 0,void 0,(function*(){e?this.crossSigningInfo.setKeys(e):this.crossSigningInfo.clearKeys(),yield this.cryptoStore.doTxn("readwrite",[E.IndexedDBCryptoStore.STORE_ACCOUNT],(e=>{this.cryptoStore.storeCrossSigningKeys(e,this.crossSigningInfo.keys)}))}))}checkDeviceVerifications(e){return a(this,void 0,void 0,(function*(){const t=this.baseApis.cryptoCallbacks.shouldUpgradeDeviceVerifications;if(t){if(h.logger.info(`Starting device verification upgrade for ${e}`),this.crossSigningInfo.keys.user_signing){const r=this.deviceList.getStoredCrossSigningForUser(e);if(r){const n=yield this.checkForDeviceVerificationUpgrade(e,r);if(n){(yield t({users:{[e]:n}})).includes(e)&&(yield this.baseApis.setDeviceVerified(e,r.getId()))}}}h.logger.info(`Finished device verification upgrade for ${e}`)}}))}setTrustedBackupPubKey(e){return a(this,void 0,void 0,(function*(){this.sessionStore.setLocalTrustedBackupPubKey(e),yield this.backupManager.checkKeyBackup()}))}enableLazyLoading(){this.lazyLoadMembers=!0}registerEventHandlers(e){e.on("RoomMember.membership",((e,t,r)=>{try{this.onRoomMembership(e,t,r)}catch(e){h.logger.error("Error handling membership change:",e)}})),e.on("toDeviceEvent",this.onToDeviceEvent),e.on("Room.timeline",this.onTimelineEvent),e.on("Event.decrypted",this.onTimelineEvent)}start(){this.outgoingRoomKeyRequestManager.start()}stop(){this.outgoingRoomKeyRequestManager.stop(),this.deviceList.stop(),this.dehydrationManager.stop()}getDeviceEd25519Key(){return this.olmDevice.deviceEd25519Key}getDeviceCurve25519Key(){return this.olmDevice.deviceCurve25519Key}setGlobalBlacklistUnverifiedDevices(e){this.globalBlacklistUnverifiedDevices=e}getGlobalBlacklistUnverifiedDevices(){return this.globalBlacklistUnverifiedDevices}setGlobalErrorOnUnknownDevices(e){this.globalErrorOnUnknownDevices=e}getGlobalErrorOnUnknownDevices(){return this.globalErrorOnUnknownDevices}uploadDeviceKeys(){const e={algorithms:this.supportedAlgorithms,device_id:this.deviceId,keys:this.deviceKeys,user_id:this.userId};return this.signObject(e).then((()=>this.baseApis.uploadKeysRequest({device_keys:e})))}updateOneTimeKeyCount(e){if(!isFinite(e))throw new TypeError("Parameter for updateOneTimeKeyCount has to be a number");this.oneTimeKeyCount=e}setNeedsNewFallback(e){this.needsNewFallback=!!e}getNeedsNewFallback(){return this.needsNewFallback}maybeUploadOneTimeKeys(){if(this.oneTimeKeyCheckInProgress)return;const e=Date.now();if(null!==this.lastOneTimeKeyCheck&&e-this.lastOneTimeKeyCheck<6e4)return;this.lastOneTimeKeyCheck=e;const t=this.olmDevice.maxNumberOfOneTimeKeys(),r=Math.floor(t/2),n=e=>a(this,void 0,void 0,(function*(){for(;r>e||this.getNeedsNewFallback();){if(r>e){h.logger.info("generating oneTimeKeys");const t=Math.min(r-e,5);yield this.olmDevice.generateOneTimeKeys(t)}this.getNeedsNewFallback()&&(h.logger.info("generating fallback key"),yield this.olmDevice.generateFallbackKey()),h.logger.info("calling uploadOneTimeKeys");const t=yield this.uploadOneTimeKeys();if(!t.one_time_key_counts||!t.one_time_key_counts.signed_curve25519)throw new Error("response for uploading keys does not contain one_time_key_counts.signed_curve25519");e=t.one_time_key_counts.signed_curve25519}}));this.oneTimeKeyCheckInProgress=!0,Promise.resolve().then((()=>void 0!==this.oneTimeKeyCount?Promise.resolve(this.oneTimeKeyCount):this.baseApis.uploadKeysRequest({}).then((e=>e.one_time_key_counts.signed_curve25519||0)))).then((e=>n(e))).catch((e=>{h.logger.error("Error uploading one-time keys",e.stack||e)})).finally((()=>{this.oneTimeKeyCount=void 0,this.oneTimeKeyCheckInProgress=!1}))}uploadOneTimeKeys(){return a(this,void 0,void 0,(function*(){const e=[],t={};if(this.getNeedsNewFallback()){const r=yield this.olmDevice.getFallbackKey();for(const[n,i]of Object.entries(r.curve25519)){const r={key:i,fallback:!0};t["signed_curve25519:"+n]=r,e.push(this.signObject(r))}this.setNeedsNewFallback(!1)}const r=yield this.olmDevice.getOneTimeKeys(),n={};for(const t in r.curve25519)if(r.curve25519.hasOwnProperty(t)){const i={key:r.curve25519[t]};n["signed_curve25519:"+t]=i,e.push(this.signObject(i))}yield Promise.all(e);const i=yield this.baseApis.uploadKeysRequest({one_time_keys:n,"org.matrix.msc2732.fallback_keys":t});return yield this.olmDevice.markKeysAsPublished(),i}))}downloadKeys(e,t){return this.deviceList.downloadKeys(e,t)}getStoredDevicesForUser(e){return this.deviceList.getStoredDevicesForUser(e)}getStoredDevice(e,t){return this.deviceList.getStoredDevice(e,t)}saveDeviceList(e){return this.deviceList.saveIfDirty(e)}setDeviceVerification(e,t,r,n,i){return a(this,void 0,void 0,(function*(){void 0===r&&(r=null),void 0===n&&(n=null),void 0===i&&(i=null);const o=this.deviceList.getStoredCrossSigningForUser(e);if(o&&o.getId()===t){if(null!==n||null!==i)throw new Error("Cannot set blocked or known for a cross-signing key");if(!r)throw new Error("Cannot set a cross-signing key as unverified");if(this.crossSigningInfo.getId()||e!==this.crossSigningInfo.userId||(this.storeTrustedSelfKeys(o.keys),this.emit("userTrustStatusChanged",this.userId,this.checkUserTrust(e))),e!==this.userId){h.logger.info("Master key "+o.getId()+" for "+e+" marked verified. Signing...");const r=yield this.crossSigningInfo.signUser(o);if(r){const n=({shouldEmit:i})=>a(this,void 0,void 0,(function*(){h.logger.info("Uploading signature for "+e+"...");const o=yield this.baseApis.uploadKeySignatures({[e]:{[t]:r}}),{failures:s}=o||{};if(Object.keys(s||[]).length>0)throw i&&this.baseApis.emit("crypto.keySignatureUploadFailure",s,"setDeviceVerification",n),new A.KeySignatureUploadError("Key upload failed",{failures:s})}));yield n({shouldEmit:!0})}return r}return o}const s=this.deviceList.getRawStoredDevicesForUser(e);if(!s||!s[t])throw new Error("Unknown device "+e+":"+t);const c=s[t];let u=c.verified;r?u=K.VERIFIED:null!==r&&u==K.VERIFIED&&(u=K.UNVERIFIED),n?u=K.BLOCKED:null!==n&&u==K.BLOCKED&&(u=K.UNVERIFIED);let l=c.known;if(null!==i&&(l=i),c.verified===u&&c.known===l||(c.verified=u,c.known=l,this.deviceList.storeDevicesForUser(e,s),this.deviceList.saveIfDirty()),r&&e===this.userId){let r;h.logger.info("Own device "+t+" marked verified: signing");if(this.checkDeviceTrust(e,t).isCrossSigningVerified()?h.logger.log(`Own device ${t} already cross-signing verified`):r=yield this.crossSigningInfo.signDevice(e,v.DeviceInfo.fromStorage(c,t)),r){const n=({shouldEmit:i})=>a(this,void 0,void 0,(function*(){h.logger.info("Uploading signature for "+t);const o=yield this.baseApis.uploadKeySignatures({[e]:{[t]:r}}),{failures:s}=o||{};if(Object.keys(s||[]).length>0)throw i&&this.baseApis.emit("crypto.keySignatureUploadFailure",s,"setDeviceVerification",n),new A.KeySignatureUploadError("Key upload failed",{failures:s})}));yield n({shouldEmit:!0})}}const d=v.DeviceInfo.fromStorage(c,t);return this.emit("deviceVerificationChanged",e,t,d),d}))}findVerificationRequestDMInProgress(e){return this.inRoomVerificationRequests.findRequestInProgress(e)}getVerificationRequestsToDeviceInProgress(e){return this.toDeviceVerificationRequests.getRequestsInProgress(e)}requestVerificationDM(e,t){const r=this.inRoomVerificationRequests.findRequestInProgress(t);if(r)return Promise.resolve(r);const n=new C.InRoomChannel(this.baseApis,t,e);return this.requestVerificationWithChannel(e,n,this.inRoomVerificationRequests)}requestVerification(e,t){t||(t=Object.keys(this.deviceList.getRawStoredDevicesForUser(e)));const r=this.toDeviceVerificationRequests.findRequestInProgress(e,t);if(r)return Promise.resolve(r);const n=new O.ToDeviceChannel(this.baseApis,e,t,O.ToDeviceChannel.makeTransactionId());return this.requestVerificationWithChannel(e,n,this.toDeviceVerificationRequests)}requestVerificationWithChannel(e,t,r){return a(this,void 0,void 0,(function*(){let e=new R.VerificationRequest(t,this.verificationMethods,this.baseApis);t.transactionId&&r.setRequestByChannel(t,e),yield e.sendRequest();const n=r.getRequestByChannel(t);return n?e=n:(h.logger.log(`Crypto: adding new request to requestsByTxnId with id ${t.transactionId} ${t.roomId}`),r.setRequestByChannel(t,e)),e}))}beginKeyVerification(e,t,r,n=null){let i;if(n){if(i=this.toDeviceVerificationRequests.getRequestBySenderAndTxnId(t,n),!i)throw new Error(`No request found for user ${t} with transactionId ${n}`)}else{n=O.ToDeviceChannel.makeTransactionId();const e=new O.ToDeviceChannel(this.baseApis,t,[r],n,r);i=new R.VerificationRequest(e,this.verificationMethods,this.baseApis),this.toDeviceVerificationRequests.setRequestBySenderAndTxnId(t,n,i)}return i.beginKeyVerification(e,{userId:t,deviceId:r})}legacyDeviceVerification(e,t,r){return a(this,void 0,void 0,(function*(){const n=O.ToDeviceChannel.makeTransactionId(),i=new O.ToDeviceChannel(this.baseApis,e,[t],n,t),o=new R.VerificationRequest(i,this.verificationMethods,this.baseApis);this.toDeviceVerificationRequests.setRequestBySenderAndTxnId(e,n,o);const s=o.beginKeyVerification(r,{userId:e,deviceId:t});return yield Promise.race([s.verify(),o.waitFor((e=>e.started))]),o}))}getOlmSessionsForUser(e){return a(this,void 0,void 0,(function*(){const t=this.getStoredDevicesForUser(e)||[],r={};for(let e=0;e0)return null;if(e.isKeySourceUntrusted())return null;const n=this.deviceList.getDeviceByIdentityKey(r,t);if(null===n)return null;const i=e.getClaimedEd25519Key();return i?i!==n.getFingerprint()?(h.logger.warn("Event "+e.getId()+" claims ed25519 key "+i+" but sender device has key "+n.getFingerprint()),null):n:(h.logger.warn("Event "+e.getId()+" claims no ed25519 key: cannot verify sending device"),null)}getEventEncryptionInfo(e){const t={};if(t.senderKey=e.getSenderKey(),t.algorithm=e.getWireContent().algorithm,!t.senderKey||!t.algorithm)return t.encrypted=!1,t;t.encrypted=!0;e.getForwardingCurve25519KeyChain().length>0||e.isKeySourceUntrusted()?t.authenticated=!1:t.authenticated=!0,t.sender=this.deviceList.getDeviceByIdentityKey(t.algorithm,t.senderKey);const r=e.getClaimedEd25519Key();return r||(h.logger.warn("Event "+e.getId()+" claims no ed25519 key: cannot verify sending device"),t.mismatchedSender=!0),t.sender&&r!==t.sender.getFingerprint()&&(h.logger.warn("Event "+e.getId()+" claims ed25519 key "+r+"but sender device has key "+t.sender.getFingerprint()),t.mismatchedSender=!0),t}forceDiscardSession(e){const t=this.roomEncryptors[e];if(void 0===t)throw new Error("Room not encrypted");if(void 0===t.forceDiscardSession)throw new Error("Room encryption algorithm doesn't support session discarding");t.forceDiscardSession()}setRoomEncryption(e,t,r){return a(this,void 0,void 0,(function*(){if(!t.algorithm)return void h.logger.log("Ignoring setRoomEncryption with no algorithm");const n=this.roomList.getRoomEncryption(e);if(n&&JSON.stringify(n)!=JSON.stringify(t))return void h.logger.error("Ignoring m.room.encryption event which requests a change of config in "+e);if(this.roomEncryptors[e])return;let i=null;n||(i=this.roomList.setRoomEncryption(e,t));const o=y.ENCRYPTION_CLASSES[t.algorithm];if(!o)throw new Error("Unable to encrypt with "+t.algorithm);const s=new o({userId:this.userId,deviceId:this.deviceId,crypto:this,olmDevice:this.olmDevice,baseApis:this.baseApis,roomId:e,config:t});this.roomEncryptors[e]=s,i&&(yield i),this.lazyLoadMembers?h.logger.log("Enabling encryption in "+e):(h.logger.log("Enabling encryption in "+e+"; starting to track device lists for all users therein"),yield this.trackRoomDevices(e),r||this.deviceList.refreshOutdatedDeviceLists())}))}trackRoomDevices(e){const t=()=>a(this,void 0,void 0,(function*(){if(!this.roomEncryptors[e])return;const t=this.clientStore.getRoom(e);if(!t)throw new Error(`Unable to start tracking devices in unknown room ${e}`);h.logger.log(`Starting to track devices for room ${e} ...`);(yield t.getEncryptionTargetMembers()).forEach((e=>{this.deviceList.startTrackingDeviceList(e.userId)}))}));let r=this.roomDeviceTrackingState[e];return r||(r=t(),this.roomDeviceTrackingState[e]=r.catch((t=>{throw this.roomDeviceTrackingState[e]=null,t}))),r}ensureOlmSessionsForUsers(e){const t={};for(let r=0;r{this.cryptoStore.getAllEndToEndInboundGroupSessions(t,(t=>{if(null===t)return;const r=this.olmDevice.exportInboundGroupSession(t.senderKey,t.sessionId,t.sessionData);delete r.first_known_index,r.algorithm=g.MEGOLM_ALGORITHM,e.push(r)}))})),e}))}importRoomKeys(e,t={}){let r=0,n=0;const i=e.length;function o(){t.progressCallback({stage:"load_keys",successes:r,failures:n,total:i})}return Promise.all(e.map((e=>{if(!e.room_id||!e.algorithm)return h.logger.warn("ignoring room key entry with missing fields",e),n++,t.progressCallback&&o(),null;return this.getRoomDecryptor(e.room_id,e.algorithm).importRoomKey(e,t).finally((()=>{r++,t.progressCallback&&o()}))})))}countSessionsNeedingBackup(){return this.backupManager.countSessionsNeedingBackup()}prepareToEncrypt(e){const t=this.roomEncryptors[e.roomId];t&&t.prepareToEncrypt(e)}encryptEvent(e,t){return a(this,void 0,void 0,(function*(){if(!t)throw new Error("Cannot send encrypted messages in unknown rooms");const r=e.getRoomId(),n=this.roomEncryptors[r];if(!n)throw new Error("Room was previously configured to use encryption, but is no longer. Perhaps the homeserver is hiding the configuration event.");this.roomDeviceTrackingState[r]||this.trackRoomDevices(r),yield this.roomDeviceTrackingState[r];let i=e.getContent();const o=i["m.relates_to"];o&&(i=Object.assign({},i),delete i["m.relates_to"]);const s=yield n.encryptMessage(t,e.getType(),i);o&&(s["m.relates_to"]=o),e.makeEncrypted("m.room.encrypted",s,this.olmDevice.deviceCurve25519Key,this.olmDevice.deviceEd25519Key)}))}decryptEvent(e){return a(this,void 0,void 0,(function*(){if(e.isRedacted()){const t=new U.MatrixEvent(e.getUnsigned().redacted_because),r=yield this.decryptEvent(t);return{clearEvent:{room_id:e.getRoomId(),type:"m.room.message",content:{},unsigned:{redacted_because:r.clearEvent}}}}{const t=e.getWireContent(),r=this.getRoomDecryptor(e.getRoomId(),t.algorithm);return yield r.decryptEvent(e)}}))}handleDeviceListChanges(e,t){return a(this,void 0,void 0,(function*(){e.oldSyncToken&&(yield this.evalDeviceListChanges(t))}))}requestRoomKey(e,t,r=!1){return this.outgoingRoomKeyRequestManager.queueRoomKeyRequest(e,t,r).then((()=>{this.sendKeyRequestsImmediately&&this.outgoingRoomKeyRequestManager.sendQueuedRequests()})).catch((e=>{h.logger.error("Error requesting key for event",e)}))}cancelRoomKeyRequest(e){this.outgoingRoomKeyRequestManager.cancelRoomKeyRequest(e).catch((e=>{h.logger.warn("Error clearing pending room key requests",e)}))}cancelAndResendAllOutgoingKeyRequests(){return a(this,void 0,void 0,(function*(){yield this.outgoingRoomKeyRequestManager.cancelAndResendAllOutgoingRequests()}))}onCryptoEvent(e){return a(this,void 0,void 0,(function*(){const t=e.getRoomId(),r=e.getContent();try{yield this.setRoomEncryption(t,r,!0)}catch(e){h.logger.error("Error configuring encryption in room "+t+":",e)}}))}onSyncWillProcess(e){return a(this,void 0,void 0,(function*(){e.oldSyncToken||(h.logger.log("Initial sync performed - resetting device tracking state"),this.deviceList.stopTrackingAllDeviceLists(),this.deviceList.startTrackingDeviceList(this.userId),this.roomDeviceTrackingState={}),this.sendKeyRequestsImmediately=!1}))}onSyncCompleted(e){return a(this,void 0,void 0,(function*(){this.deviceList.setSyncToken(e.nextSyncToken),this.deviceList.saveIfDirty(),this.deviceList.startTrackingDeviceList(this.userId),this.deviceList.refreshOutdatedDeviceLists(),e.catchingUp||(this.maybeUploadOneTimeKeys(),this.processReceivedRoomKeyRequests(),this.outgoingRoomKeyRequestManager.sendQueuedRequests(),this.sendKeyRequestsImmediately=!0)}))}evalDeviceListChanges(e){return a(this,void 0,void 0,(function*(){if(e.changed&&Array.isArray(e.changed)&&e.changed.forEach((e=>{this.deviceList.invalidateUserDeviceList(e)})),e.left&&Array.isArray(e.left)&&e.left.length){const t=new Set(yield this.getTrackedE2eUsers());e.left.forEach((e=>{t.has(e)||this.deviceList.stopTrackingDeviceList(e)}))}}))}getTrackedE2eUsers(){return a(this,void 0,void 0,(function*(){const e=[];for(const t of this.getTrackedE2eRooms()){const r=yield t.getEncryptionTargetMembers();for(const t of r)e.push(t.userId)}return e}))}getTrackedE2eRooms(){return this.clientStore.getRooms().filter((e=>{if(!this.roomEncryptors[e.roomId])return!1;if(!this.roomDeviceTrackingState[e.roomId])return!1;const t=e.getMyMembership();return"join"===t||"invite"===t}))}onRoomKeyEvent(e){const t=e.getContent();if(!t.room_id||!t.algorithm)return void h.logger.error("key event is missing fields");this.backupManager.checkedForBackup||this.backupManager.checkAndStart();this.getRoomDecryptor(t.room_id,t.algorithm).onRoomKeyEvent(e)}onRoomKeyWithheldEvent(e){const t=e.getContent();if(!(("m.no_olm"===t.code||t.room_id&&t.session_id)&&t.algorithm&&t.sender_key))return void h.logger.error("key withheld event is missing fields");h.logger.info(`Got room key withheld event from ${e.getSender()} (${t.sender_key}) for ${t.algorithm}/${t.room_id}/${t.session_id} with reason ${t.code} (${t.reason})`);const r=this.getRoomDecryptor(t.room_id,t.algorithm);if(r.onRoomKeyWithheldEvent&&r.onRoomKeyWithheldEvent(e),!t.room_id){const e=this.getRoomDecryptors(t.algorithm);for(const r of e)r.retryDecryptionFromSender(t.sender_key)}}onKeyVerificationMessage(e){if(!O.ToDeviceChannel.validateEvent(e,this.baseApis))return;this.handleVerificationEvent(e,this.toDeviceVerificationRequests,(e=>{if(!O.ToDeviceChannel.canCreateRequest(O.ToDeviceChannel.getEventType(e)))return;const t=e.getContent(),r=t&&t.from_device;if(!r)return;const n=e.getSender(),i=new O.ToDeviceChannel(this.baseApis,n,[r]);return new R.VerificationRequest(i,this.verificationMethods,this.baseApis)}))}handleVerificationEvent(e,t,r,n=!0){return a(this,void 0,void 0,(function*(){let i=t.getRequest(e),o=!1;if(!i){if(i=r(e),!i)return void h.logger.log(`Crypto: could not find VerificationRequest for ${e.getType()}, and could not create one, so ignoring.`);o=!0,t.setRequest(e,i)}e.setVerificationRequest(i);try{yield i.channel.handleEvent(e,i,n)}catch(e){h.logger.error("error while handling verification event: "+e.message)}o&&!i.initiatedByMe&&!i.invalid&&!i.observeOnly&&this.baseApis.emit("crypto.verification.request",i)}))}onToDeviceBadEncrypted(e){return a(this,void 0,void 0,(function*(){const t=e.getWireContent(),r=e.getSender(),n=t.algorithm,i=t.sender_key,o=()=>{const e=this.getRoomDecryptors(g.MEGOLM_ALGORITHM);for(const t of e)t.retryDecryptionFromSender(i)};if(void 0===r||void 0===i||void 0===i)return;this.lastNewSessionForced[r]=this.lastNewSessionForced[r]||{};const s=this.lastNewSessionForced[r][i]||0;if(s+36e5>Date.now())return h.logger.debug("New session already forced with device "+r+":"+i+" at "+s+": not forcing another"),yield this.olmDevice.recordSessionProblem(i,"wedged",!0),void o();let a=this.deviceList.getDeviceByIdentityKey(n,i);if(!a&&(yield this.downloadKeys([r],!1),a=this.deviceList.getDeviceByIdentityKey(n,i),!a))return h.logger.info("Couldn't find device for identity key "+i+": not re-establishing session"),yield this.olmDevice.recordSessionProblem(i,"wedged",!1),void o();const c={};c[r]=[a],yield g.ensureOlmSessionsForDevices(this.olmDevice,this.baseApis,c,!0),this.lastNewSessionForced[r][i]=Date.now();const u={algorithm:g.OLM_ALGORITHM,sender_key:this.olmDevice.deviceCurve25519Key,ciphertext:{}};yield g.encryptMessageForDevice(u.ciphertext,this.userId,this.deviceId,this.olmDevice,r,a,{type:"m.dummy"}),yield this.olmDevice.recordSessionProblem(i,"wedged",!0),o(),yield this.baseApis.sendToDevice("m.room.encrypted",{[r]:{[a.deviceId]:u}});const l=yield this.outgoingRoomKeyRequestManager.getOutgoingSentRoomKeyRequest(r,a.deviceId);for(const e of l)this.requestRoomKey(e.requestBody,e.recipients,!0)}))}onRoomMembership(e,t,r){const n=t.roomId,i=this.roomEncryptors[n];i&&(this.roomDeviceTrackingState[n]&&("join"==t.membership?(h.logger.log("Join event for "+t.userId+" in "+n),this.deviceList.startTrackingDeviceList(t.userId)):"invite"==t.membership&&this.clientStore.getRoom(n).shouldEncryptForInvitedMembers()&&(h.logger.log("Invite event for "+t.userId+" in "+n),this.deviceList.startTrackingDeviceList(t.userId))),i.onRoomMembership(e,t,r))}onRoomKeyRequestEvent(e){const t=e.getContent();if("request"===t.action){const t=new q(e);this.receivedRoomKeyRequests.push(t)}else if("request_cancellation"===t.action){const t=new j(e);this.receivedRoomKeyRequestCancellations.push(t)}}processReceivedRoomKeyRequests(){return a(this,void 0,void 0,(function*(){if(!this.processingRoomKeyRequests){this.processingRoomKeyRequests=!0;try{const e=this.receivedRoomKeyRequests;this.receivedRoomKeyRequests=[];const t=this.receivedRoomKeyRequestCancellations;this.receivedRoomKeyRequestCancellations=[],yield Promise.all(e.map((e=>this.processReceivedRoomKeyRequest(e)))),yield Promise.all(t.map((e=>this.processReceivedRoomKeyRequestCancellation(e))))}catch(e){h.logger.error(`Error processing room key requsts: ${e}`)}finally{this.processingRoomKeyRequests=!1}}}))}processReceivedRoomKeyRequest(e){return a(this,void 0,void 0,(function*(){const t=e.userId,r=e.deviceId,n=e.requestBody,i=n.room_id,o=n.algorithm;if(h.logger.log(`m.room_key_request from ${t}:${r} for ${i} / ${n.session_id} (id ${e.requestId})`),t!==this.userId){if(!this.roomEncryptors[i])return void h.logger.debug(`room key request for unencrypted room ${i}`);const e=this.roomEncryptors[i],o=this.deviceList.getStoredDevice(t,r);if(!o)return void h.logger.debug(`Ignoring keyshare for unknown device ${t}:${r}`);try{yield e.reshareKeyWithDevice(n.sender_key,n.session_id,t,o)}catch(e){h.logger.warn("Failed to re-share keys for session "+n.session_id+" with device "+t+":"+o.deviceId,e)}return}if(r===this.deviceId)return void h.logger.log("Ignoring room key request from ourselves");if(!this.roomDecryptors[i])return void h.logger.log(`room key request for unencrypted room ${i}`);const s=this.roomDecryptors[i][o];if(s)if(yield s.hasKeysForKeyRequest(e)){if(e.share=()=>{s.shareKeysWithDevice(e)},this.checkDeviceTrust(t,r).isVerified())return h.logger.log("device is already verified: sharing keys"),void e.share();this.emit("crypto.roomKeyRequest",e)}else h.logger.log(`room key request for unknown session ${i} / `+n.session_id);else h.logger.log(`room key request for unknown alg ${o} in room ${i}`)}))}processReceivedRoomKeyRequestCancellation(e){return a(this,void 0,void 0,(function*(){h.logger.log(`m.room_key_request cancellation for ${e.userId}:${e.deviceId} (id ${e.requestId})`),this.emit("crypto.roomKeyRequestCancellation",e)}))}getRoomDecryptor(e,t){let r,n;if((e=e||null)&&(r=this.roomDecryptors[e],r||(this.roomDecryptors[e]=r={}),n=r[t],n))return n;const i=y.DECRYPTION_CLASSES[t];if(!i)throw new y.DecryptionError("UNKNOWN_ENCRYPTION_ALGORITHM",'Unknown encryption algorithm "'+t+'".');return n=new i({userId:this.userId,crypto:this,olmDevice:this.olmDevice,baseApis:this.baseApis,roomId:e}),r&&(r[t]=n),n}getRoomDecryptors(e){const t=[];for(const r of Object.values(this.roomDecryptors))e in r&&t.push(r[e]);return t}signObject(e){return a(this,void 0,void 0,(function*(){const t=e.signatures||{},r=e.unsigned;delete e.signatures,delete e.unsigned,t[this.userId]=t[this.userId]||{},t[this.userId]["ed25519:"+this.deviceId]=yield this.olmDevice.sign(u.default.stringify(e)),e.signatures=t,void 0!==r&&(e.unsigned=r)}))}}function L(e){if("string"!=typeof e||e.indexOf(",")<0)return null;const t=Uint8Array.from(e.split(","),(e=>parseInt(e)));return g.encodeBase64(t)}r.Crypto=N,r.fixBackupKey=L;class q{constructor(e){const t=e.getContent();this.userId=e.getSender(),this.deviceId=t.requesting_device_id,this.requestId=t.request_id,this.requestBody=t.body||{},this.share=()=>{throw new Error("don't know how to share keys for this request yet")}}}r.IncomingRoomKeyRequest=q;class j{constructor(e){const t=e.getContent();this.userId=e.getSender(),this.deviceId=t.requesting_device_id,this.requestId=t.request_id}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer)},{"../ReEmitter":61,"../errors":99,"../logger":106,"../models/event":113,"./CrossSigning":67,"./DeviceList":68,"./EncryptionSetup":69,"./OlmDevice":70,"./OutgoingRoomKeyRequestManager":71,"./SecretStorage":73,"./aes":74,"./algorithms":76,"./backup":80,"./dehydration":81,"./deviceinfo":82,"./key_passphrase":84,"./olmlib":85,"./recoverykey":86,"./store/indexeddb-crypto-store":88,"./verification/IllegalMethod":93,"./verification/QRCode":94,"./verification/SAS":95,"./verification/request/InRoomChannel":96,"./verification/request/ToDeviceChannel":97,"./verification/request/VerificationRequest":98,"another-json":28,buffer:34,events:36}],84:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.deriveKey=r.keyFromPassphrase=r.keyFromAuthData=void 0;const i=e("../randomstring"),o=5e5;function s(e,r,i,o=256){return n(this,void 0,void 0,(function*(){const n=t.crypto.subtle,s=t.TextEncoder;if(!n||!s)throw new Error("Password-based backup is not avaiable on this platform");const a=yield n.importKey("raw",(new s).encode(e),{name:"PBKDF2"},!1,["deriveBits"]),c=yield n.deriveBits({name:"PBKDF2",salt:(new s).encode(r),iterations:i,hash:"SHA-512"},a,o);return new Uint8Array(c)}))}r.keyFromAuthData=function(e,r){return n(this,void 0,void 0,(function*(){if(!t.Olm)throw new Error("Olm is not available");if(!e.private_key_salt||!e.private_key_iterations)throw new Error("Salt and/or iterations not found: this backup cannot be restored with a passphrase");return yield s(r,e.private_key_salt,e.private_key_iterations,e.private_key_bits||256)}))},r.keyFromPassphrase=function(e){return n(this,void 0,void 0,(function*(){if(!t.Olm)throw new Error("Olm is not available");const r=i.randomString(32);return{key:yield s(e,r,o,256),salt:r,iterations:o}}))},r.deriveKey=s}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../randomstring":123}],85:[function(e,t,r){(function(t,n){(function(){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},a=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.decodeBase64=r.encodeUnpaddedBase64=r.encodeBase64=r.pkVerify=r.pkSign=r.verifySignature=r.ensureOlmSessionsForDevices=r.getExistingOlmSessions=r.encryptMessageForDevice=r.MEGOLM_BACKUP_ALGORITHM=r.MEGOLM_ALGORITHM=r.OLM_ALGORITHM=void 0;const u=c(e("another-json")),l=e("../logger"),d=s(e("../utils"));var h;function f(e,t,r,n){return a(this,void 0,void 0,(function*(){const i=n.deviceId;try{yield g(e,t,r,i,n.getFingerprint())}catch(e){return l.logger.error("Unable to verify signature on one-time key for device "+r+":"+i+":",e),null}let o;try{o=yield e.createOutboundSession(n.getIdentityKey(),t.key)}catch(e){return l.logger.error("Error starting olm session with device "+r+":"+i+": "+e),null}return l.logger.log("Started new olm sessionid "+o+" for device "+r+":"+i),o}))}function g(e,t,r,n,i){return a(this,void 0,void 0,(function*(){const o="ed25519:"+n,s=((t.signatures||{})[r]||{})[o];if(!s)throw Error("No signature");const a=Object.assign({},t);"unsigned"in a&&delete a.unsigned,delete a.signatures;const c=u.default.stringify(a);e.verifySignature(i,c,s)}))}function p(e){return n.from(e).toString("base64")}!function(e){e.Olm="m.olm.v1.curve25519-aes-sha2",e.Megolm="m.megolm.v1.aes-sha2",e.MegolmBackup="m.megolm_backup.v1.curve25519-aes-sha2"}(h||(h={})),r.OLM_ALGORITHM=h.Olm,r.MEGOLM_ALGORITHM=h.Megolm,r.MEGOLM_BACKUP_ALGORITHM=h.MegolmBackup,r.encryptMessageForDevice=function(e,t,r,n,i,o,s){return a(this,void 0,void 0,(function*(){const a=o.getIdentityKey(),c=yield n.getSessionIdForDevice(a);if(null===c)return;l.logger.log("Using sessionid "+c+" for device "+i+":"+o.deviceId);const u={sender:t,sender_device:r,keys:{ed25519:n.deviceEd25519Key},recipient:i,recipient_keys:{ed25519:o.getFingerprint()}};d.extend(u,s),e[a]=yield n.encryptMessage(a,c,JSON.stringify(u))}))},r.getExistingOlmSessions=function(e,t,r){return a(this,void 0,void 0,(function*(){const t={},n={},i=[];for(const[o,s]of Object.entries(r))for(const r of s){const s=r.deviceId,c=r.getIdentityKey();i.push((()=>a(this,void 0,void 0,(function*(){const i=yield e.getSessionIdForDevice(c,!0);null===i?(t[o]=t[o]||[],t[o].push(r)):(n[o]=n[o]||{},n[o][s]={device:r,sessionId:i})})))())}return yield Promise.all(i),[t,n]}))},r.ensureOlmSessionsForDevices=function(e,t,r,n=!1,i,o,s=l.logger){return a(this,void 0,void 0,(function*(){"number"==typeof n&&(s=o,o=i,i=n,n=!1);const a=[],c={},u={};for(const[,t]of Object.entries(r))for(const r of t){const t=r.getIdentityKey();t!==e.deviceCurve25519Key&&(e._sessionsInProgress[t]||(e._sessionsInProgress[t]=new Promise((r=>{u[t]=n=>{delete e._sessionsInProgress[t],r(n)}}))))}for(const[t,i]of Object.entries(r)){c[t]={};for(const r of i){const i=r.deviceId,o=r.getIdentityKey();if(o===e.deviceCurve25519Key){s.info("Attempted to start session with ourself! Ignoring"),c[t][i]={device:r,sessionId:null};continue}const l=`for ${o} (${t}:${i})`,d=yield e.getSessionIdForDevice(o,u[o],s);null!==d&&u[o]&&u[o](),(null===d||n)&&(n?s.info(`Forcing new Olm session ${l}`):s.info(`Making new Olm session ${l}`),a.push([t,i])),c[t][i]={device:r,sessionId:d}}}if(0===a.length)return c;const l="signed_curve25519";let d,h=`one-time keys for ${a.length} devices`;try{s.debug(`Claiming ${h}`),d=yield t.claimOneTimeKeys(a,l,i),s.debug(`Claimed ${h}`)}catch(e){for(const e of Object.values(u))e();throw s.log(`Failed to claim ${h}`,e,a),e}o&&"failures"in d&&o.push(...Object.keys(d.failures));const g=d.one_time_keys||{},p=[];for(const[t,i]of Object.entries(r)){const r=g[t]||{};for(let o=0;o{u[d]&&u[d](e),c[t][l].sessionId=e}),(e=>{throw u[d]&&u[d](),e}))):(s.warn(`No one-time keys (alg=signed_curve25519) for device ${t}:${l}`),u[d]&&u[d]())}}return h=`Olm sessions for ${p.length} devices`,s.debug(`Starting ${h}`),yield Promise.all(p),s.debug(`Started ${h}`),c}))},r.verifySignature=g,r.pkSign=function(e,r,n,i){let o=!1;if(r instanceof Uint8Array){const e=new t.Olm.PkSigning;i=e.init_with_seed(r),r=e,o=!0}const s=e.signatures||{};delete e.signatures;const a=e.unsigned;e.unsigned&&delete e.unsigned;try{const t=s[n]||{};return s[n]=t,t["ed25519:"+i]=r.sign(u.default.stringify(e))}finally{e.signatures=s,a&&(e.unsigned=a),o&&r.free()}},r.pkVerify=function(e,r,n){const i="ed25519:"+r;if(!(e.signatures&&e.signatures[n]&&e.signatures[n][i]))throw new Error("No signature");const o=e.signatures[n][i],s=new t.Olm.Utility,a=e.signatures;delete e.signatures;const c=e.unsigned;e.unsigned&&delete e.unsigned;try{s.ed25519_verify(r,u.default.stringify(e),o)}finally{e.signatures=a,c&&(e.unsigned=c),s.free()}},r.encodeBase64=p,r.encodeUnpaddedBase64=function(e){return p(e).replace(/=+$/g,"")},r.decodeBase64=function(e){return n.from(e,"base64")}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer)},{"../logger":106,"../utils":137,"another-json":28,buffer:34}],86:[function(e,t,r){(function(t,n){(function(){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.decodeRecoveryKey=r.encodeRecoveryKey=void 0;const o=i(e("bs58")),s=[139,1];r.encodeRecoveryKey=function(e){const t=new n(s.length+e.length+1);t.set(s,0),t.set(e,s.length);let r=0;for(let e=0;e=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length)){var s=e[r];i.target.source.openCursor(s).onsuccess=n}},p(n).then((function(){return t}))}},{key:"getAllOutgoingRoomKeyRequestsByState",value:function(e){var t=this;return new Promise((function(r,n){var i=t._db.transaction("outgoingRoomKeyRequests","readonly").objectStore("outgoingRoomKeyRequests").index("state").getAll(e);i.onsuccess=function(e){return r(e.target.result)},i.onerror=function(e){return n(e.target.error)}}))}},{key:"getOutgoingRoomKeyRequestsByTarget",value:function(e,t,r){var n=0,i=[];var o=this._db.transaction("outgoingRoomKeyRequests","readonly"),s=o.objectStore("outgoingRoomKeyRequests"),a=r[n];return s.index("state").openCursor(a).onsuccess=function o(s){var a=s.target.result;if(a){var c=a.value;c.recipients.includes({userId:e,deviceId:t})&&i.push(c),a.continue()}else{if(++n>=r.length)return;var u=r[n];s.target.source.openCursor(u).onsuccess=o}},p(o).then((function(){return i}))}},{key:"updateOutgoingRoomKeyRequest",value:function(e,t,r){var n=null;var i=this._db.transaction("outgoingRoomKeyRequests","readwrite");return i.objectStore("outgoingRoomKeyRequests").openCursor(e).onsuccess=function(e){var i=e.target.result;if(i){var o=i.value;o.state==t?(Object.assign(o,r),i.update(o),n=o):u.logger.warn("Cannot update room key request from ".concat(t," ")+"as it was already updated to ".concat(o.state))}},p(i).then((function(){return n}))}},{key:"deleteOutgoingRoomKeyRequest",value:function(e,t){var r=this._db.transaction("outgoingRoomKeyRequests","readwrite");return r.objectStore("outgoingRoomKeyRequests").openCursor(e).onsuccess=function(e){var r=e.target.result;if(r){var n=r.value;n.state==t?r.delete():u.logger.warn("Cannot delete room key request in state ".concat(n.state," ")+"(expected ".concat(t,")"))}},p(r)}},{key:"getAccount",value:function(e,t){var r=e.objectStore("account").get("-");r.onsuccess=function(){try{t(r.result||null)}catch(t){g(e,t)}}}},{key:"storeAccount",value:function(e,t){e.objectStore("account").put(t,"-")}},{key:"getCrossSigningKeys",value:function(e,t){var r=e.objectStore("account").get("crossSigningKeys");r.onsuccess=function(){try{t(r.result||null)}catch(t){g(e,t)}}}},{key:"getSecretStorePrivateKey",value:function(e,t,r){var n=e.objectStore("account").get("ssss_cache:".concat(r));n.onsuccess=function(){try{t(n.result||null)}catch(t){g(e,t)}}}},{key:"storeCrossSigningKeys",value:function(e,t){e.objectStore("account").put(t,"crossSigningKeys")}},{key:"storeSecretStorePrivateKey",value:function(e,t,r){e.objectStore("account").put(r,"ssss_cache:".concat(t))}},{key:"countEndToEndSessions",value:function(e,t){var r=e.objectStore("sessions").count();r.onsuccess=function(){try{t(r.result)}catch(t){g(e,t)}}}},{key:"getEndToEndSessions",value:function(e,t,r){var n=t.objectStore("sessions").index("deviceKey").openCursor(e),i={};n.onsuccess=function(){var e=n.result;if(e)i[e.value.sessionId]={session:e.value.session,lastReceivedMessageTs:e.value.lastReceivedMessageTs},e.continue();else try{r(i)}catch(e){g(t,e)}}}},{key:"getEndToEndSession",value:function(e,t,r,n){var i=r.objectStore("sessions").get([e,t]);i.onsuccess=function(){try{i.result?n({session:i.result.session,lastReceivedMessageTs:i.result.lastReceivedMessageTs}):n(null)}catch(e){g(r,e)}}}},{key:"getAllEndToEndSessions",value:function(e,t){var r=e.objectStore("sessions").openCursor();r.onsuccess=function(){try{var n=r.result;n?(t(n.value),n.continue()):t(null)}catch(t){g(e,t)}}}},{key:"storeEndToEndSession",value:function(e,t,r,n){n.objectStore("sessions").put({deviceKey:e,sessionId:t,session:r.session,lastReceivedMessageTs:r.lastReceivedMessageTs})}},{key:"storeEndToEndSessionProblem",value:(n=(0,s.default)(o.default.mark((function e(t,r,n){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(i=this._db.transaction("session_problems","readwrite")).objectStore("session_problems").put({deviceKey:t,type:r,fixed:n,time:Date.now()}),e.abrupt("return",p(i));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getEndToEndSessionProblem",value:(r=(0,s.default)(o.default.mark((function e(t,r){var n,i,s,a,c;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=this._db.transaction("session_problems","readwrite"),s=i.objectStore("session_problems"),a=s.index("deviceKey"),(c=a.getAll(t)).onsuccess=function(e){var t=c.result;if(t.length){t.sort((function(e,t){return e.time-t.time}));var i,o=t[t.length-1],s=d(t);try{for(s.s();!(i=s.n()).done;){var a=i.value;if(a.time>r)return void(n=Object.assign({},a,{fixed:o.fixed}))}}catch(e){s.e(e)}finally{s.f()}n=o.fixed?null:o}else n=null},e.next=7,p(i);case 7:return e.abrupt("return",n);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"filterOutNotifiedErrorDevices",value:(t=(0,s.default)(o.default.mark((function e(t){var r,n,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this._db.transaction("notified_error_devices","readwrite"),n=r.objectStore("notified_error_devices"),i=[],e.next=5,Promise.all(t.map((function(e){return new Promise((function(t){var r=e.userId,o=e.deviceInfo,s=n.get([r,o.deviceId]);s.onsuccess=function(){s.result||(n.put({userId:r,deviceId:o.deviceId}),i.push(e)),t()}}))})));case 5:return e.abrupt("return",i);case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getEndToEndInboundGroupSession",value:function(e,t,r,n){var i=!1,o=!1,s=r.objectStore("inbound_group_sessions").get([e,t]);s.onsuccess=function(){try{i=s.result?s.result.session:null,!1!==o&&n(i,o)}catch(e){g(r,e)}};var a=r.objectStore("inbound_group_sessions_withheld").get([e,t]);a.onsuccess=function(){try{o=a.result?a.result.session:null,!1!==i&&n(i,o)}catch(e){g(r,e)}}}},{key:"getAllEndToEndInboundGroupSessions",value:function(e,t){var r=e.objectStore("inbound_group_sessions").openCursor();r.onsuccess=function(){var n=r.result;if(n){try{t({senderKey:n.value.senderCurve25519Key,sessionId:n.value.sessionId,sessionData:n.value.session})}catch(t){g(e,t)}n.continue()}else try{t(null)}catch(t){g(e,t)}}}},{key:"addEndToEndInboundGroupSession",value:function(e,t,r,n){var i=n.objectStore("inbound_group_sessions").add({senderCurve25519Key:e,sessionId:t,session:r});i.onerror=function(r){"ConstraintError"===i.error.name?(r.stopPropagation(),r.preventDefault(),u.logger.log("Ignoring duplicate inbound group session: "+e+" / "+t)):g(n,new Error("Failed to add inbound group session: "+i.error))}}},{key:"storeEndToEndInboundGroupSession",value:function(e,t,r,n){n.objectStore("inbound_group_sessions").put({senderCurve25519Key:e,sessionId:t,session:r})}},{key:"storeEndToEndInboundGroupSessionWithheld",value:function(e,t,r,n){n.objectStore("inbound_group_sessions_withheld").put({senderCurve25519Key:e,sessionId:t,session:r})}},{key:"getEndToEndDeviceData",value:function(e,t){var r=e.objectStore("device_data").get("-");r.onsuccess=function(){try{t(r.result||null)}catch(t){g(e,t)}}}},{key:"storeEndToEndDeviceData",value:function(e,t){t.objectStore("device_data").put(e,"-")}},{key:"storeEndToEndRoom",value:function(e,t,r){r.objectStore("rooms").put(t,e)}},{key:"getEndToEndRooms",value:function(e,t){var r={},n=e.objectStore("rooms").openCursor();n.onsuccess=function(){var i=n.result;if(i)r[i.key]=i.value,i.continue();else try{t(r)}catch(t){g(e,t)}}}},{key:"getSessionsNeedingBackup",value:function(e){var t=this;return new Promise((function(r,n){var i=[],o=t._db.transaction(["sessions_needing_backup","inbound_group_sessions"],"readonly");o.onerror=n,o.oncomplete=function(){r(i)};var s=o.objectStore("sessions_needing_backup"),a=o.objectStore("inbound_group_sessions"),c=s.openCursor();c.onsuccess=function(){var t=c.result;if(t){var r=a.get(t.key);r.onsuccess=function(){i.push({senderKey:r.result.senderCurve25519Key,sessionId:r.result.sessionId,sessionData:r.result.session})},(!e||i.length3&&void 0!==arguments[3]||u.logger;var n=this._db.transaction(t,e),i=p(n),o=r(n);return i.then((function(){return o}))}}]),e}();function g(e,t){e._mx_abortexception=t;try{e.abort()}catch(t){}}function p(e){return new Promise((function(t,r){e.oncomplete=function(){void 0!==e._mx_abortexception&&r(e._mx_abortexception),t()},e.onerror=function(t){void 0!==e._mx_abortexception?r(e._mx_abortexception):(u.logger.log("Error performing indexeddb txn",t),r(t.target.error))},e.onabort=function(t){void 0!==e._mx_abortexception?r(e._mx_abortexception):(u.logger.log("Error performing indexeddb txn",t),r(t.target.error))}}))}r.Backend=f},{"../../logger":106,"../../utils":137,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"@babel/runtime/regenerator":27}],88:[function(e,t,r){(function(t){(function(){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard"),i=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.IndexedDBCryptoStore=void 0;var o=i(e("@babel/runtime/helpers/classCallCheck")),s=i(e("@babel/runtime/helpers/createClass")),a=e("../../logger"),c=e("./localStorage-crypto-store"),u=e("./memory-crypto-store"),l=n(e("./indexeddb-crypto-store-backend")),d=e("../../errors"),h=n(e("../../indexeddb-helpers")),f=function(){function e(t,r){(0,o.default)(this,e),this._indexedDB=t,this._dbName=r,this._backendPromise=null,this._backend=null}return(0,s.default)(e,[{key:"startup",value:function(){var r=this;return this._backendPromise||(this._backendPromise=new Promise((function(e,t){if(r._indexedDB){a.logger.log("connecting to indexeddb ".concat(r._dbName));var n=r._indexedDB.open(r._dbName,l.VERSION);n.onupgradeneeded=function(e){var t=e.target.result,r=e.oldVersion;l.upgradeDatabase(t,r)},n.onblocked=function(){a.logger.log("can't yet open IndexedDBCryptoStore because it is open elsewhere")},n.onerror=function(e){a.logger.log("Error connecting to indexeddb",e),t(e.target.error)},n.onsuccess=function(t){var n=t.target.result;a.logger.log("connected to indexeddb ".concat(r._dbName)),e(new l.Backend(n))}}else t(new Error("no indexeddb support available"))})).then((function(t){return t.doTxn("readonly",[e.STORE_INBOUND_GROUP_SESSIONS,e.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],(function(e){t.getEndToEndInboundGroupSession("","",e,(function(){}))})).then((function(){return t}))})).catch((function(e){if("VersionError"===e.name)throw a.logger.warn("Crypto DB is too new for us to use!",e),new d.InvalidCryptoStoreError(d.InvalidCryptoStoreError.TOO_NEW);a.logger.warn("unable to connect to indexeddb ".concat(r._dbName)+": falling back to localStorage store: ".concat(e));try{return new c.LocalStorageCryptoStore(t.localStorage)}catch(e){return a.logger.warn("unable to open localStorage: falling back to in-memory store: ".concat(e)),new u.MemoryCryptoStore}})).then((function(e){r._backend=e}))),this._backendPromise}},{key:"deleteAllData",value:function(){var e=this;return new Promise((function(t,r){if(e._indexedDB){a.logger.log("Removing indexeddb instance: ".concat(e._dbName));var n=e._indexedDB.deleteDatabase(e._dbName);n.onblocked=function(){a.logger.log("can't yet delete IndexedDBCryptoStore because it is open elsewhere")},n.onerror=function(e){a.logger.log("Error deleting data from indexeddb",e),r(e.target.error)},n.onsuccess=function(){a.logger.log("Removed indexeddb instance: ".concat(e._dbName)),t()}}else r(new Error("no indexeddb support available"))})).catch((function(e){a.logger.warn("unable to delete IndexedDBCryptoStore: ".concat(e))}))}},{key:"getOrAddOutgoingRoomKeyRequest",value:function(e){return this._backend.getOrAddOutgoingRoomKeyRequest(e)}},{key:"getOutgoingRoomKeyRequest",value:function(e){return this._backend.getOutgoingRoomKeyRequest(e)}},{key:"getOutgoingRoomKeyRequestByState",value:function(e){return this._backend.getOutgoingRoomKeyRequestByState(e)}},{key:"getAllOutgoingRoomKeyRequestsByState",value:function(e){return this._backend.getAllOutgoingRoomKeyRequestsByState(e)}},{key:"getOutgoingRoomKeyRequestsByTarget",value:function(e,t,r){return this._backend.getOutgoingRoomKeyRequestsByTarget(e,t,r)}},{key:"updateOutgoingRoomKeyRequest",value:function(e,t,r){return this._backend.updateOutgoingRoomKeyRequest(e,t,r)}},{key:"deleteOutgoingRoomKeyRequest",value:function(e,t){return this._backend.deleteOutgoingRoomKeyRequest(e,t)}},{key:"getAccount",value:function(e,t){this._backend.getAccount(e,t)}},{key:"storeAccount",value:function(e,t){this._backend.storeAccount(e,t)}},{key:"getCrossSigningKeys",value:function(e,t){this._backend.getCrossSigningKeys(e,t)}},{key:"getSecretStorePrivateKey",value:function(e,t,r){this._backend.getSecretStorePrivateKey(e,t,r)}},{key:"storeCrossSigningKeys",value:function(e,t){this._backend.storeCrossSigningKeys(e,t)}},{key:"storeSecretStorePrivateKey",value:function(e,t,r){this._backend.storeSecretStorePrivateKey(e,t,r)}},{key:"countEndToEndSessions",value:function(e,t){this._backend.countEndToEndSessions(e,t)}},{key:"getEndToEndSession",value:function(e,t,r,n){this._backend.getEndToEndSession(e,t,r,n)}},{key:"getEndToEndSessions",value:function(e,t,r){this._backend.getEndToEndSessions(e,t,r)}},{key:"getAllEndToEndSessions",value:function(e,t){this._backend.getAllEndToEndSessions(e,t)}},{key:"storeEndToEndSession",value:function(e,t,r,n){this._backend.storeEndToEndSession(e,t,r,n)}},{key:"storeEndToEndSessionProblem",value:function(e,t,r){return this._backend.storeEndToEndSessionProblem(e,t,r)}},{key:"getEndToEndSessionProblem",value:function(e,t){return this._backend.getEndToEndSessionProblem(e,t)}},{key:"filterOutNotifiedErrorDevices",value:function(e){return this._backend.filterOutNotifiedErrorDevices(e)}},{key:"getEndToEndInboundGroupSession",value:function(e,t,r,n){this._backend.getEndToEndInboundGroupSession(e,t,r,n)}},{key:"getAllEndToEndInboundGroupSessions",value:function(e,t){this._backend.getAllEndToEndInboundGroupSessions(e,t)}},{key:"addEndToEndInboundGroupSession",value:function(e,t,r,n){this._backend.addEndToEndInboundGroupSession(e,t,r,n)}},{key:"storeEndToEndInboundGroupSession",value:function(e,t,r,n){this._backend.storeEndToEndInboundGroupSession(e,t,r,n)}},{key:"storeEndToEndInboundGroupSessionWithheld",value:function(e,t,r,n){this._backend.storeEndToEndInboundGroupSessionWithheld(e,t,r,n)}},{key:"storeEndToEndDeviceData",value:function(e,t){this._backend.storeEndToEndDeviceData(e,t)}},{key:"getEndToEndDeviceData",value:function(e,t){this._backend.getEndToEndDeviceData(e,t)}},{key:"storeEndToEndRoom",value:function(e,t,r){this._backend.storeEndToEndRoom(e,t,r)}},{key:"getEndToEndRooms",value:function(e,t){this._backend.getEndToEndRooms(e,t)}},{key:"getSessionsNeedingBackup",value:function(e){return this._backend.getSessionsNeedingBackup(e)}},{key:"countSessionsNeedingBackup",value:function(e){return this._backend.countSessionsNeedingBackup(e)}},{key:"unmarkSessionsNeedingBackup",value:function(e,t){return this._backend.unmarkSessionsNeedingBackup(e,t)}},{key:"markSessionsNeedingBackup",value:function(e,t){return this._backend.markSessionsNeedingBackup(e,t)}},{key:"addSharedHistoryInboundGroupSession",value:function(e,t,r,n){this._backend.addSharedHistoryInboundGroupSession(e,t,r,n)}},{key:"getSharedHistoryInboundGroupSessions",value:function(e,t){return this._backend.getSharedHistoryInboundGroupSessions(e,t)}},{key:"doTxn",value:function(e,t,r,n){return this._backend.doTxn(e,t,r,n)}}],[{key:"exists",value:function(e,t){return h.exists(e,t)}}]),e}();r.IndexedDBCryptoStore=f,f.STORE_ACCOUNT="account",f.STORE_SESSIONS="sessions",f.STORE_INBOUND_GROUP_SESSIONS="inbound_group_sessions",f.STORE_INBOUND_GROUP_SESSIONS_WITHHELD="inbound_group_sessions_withheld",f.STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS="shared_history_inbound_group_sessions",f.STORE_DEVICE_DATA="device_data",f.STORE_ROOMS="rooms",f.STORE_BACKUP="sessions_needing_backup"}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../errors":99,"../../indexeddb-helpers":104,"../../logger":106,"./indexeddb-crypto-store-backend":87,"./localStorage-crypto-store":89,"./memory-crypto-store":90,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13}],89:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.LocalStorageCryptoStore=void 0;var i=n(e("@babel/runtime/helpers/defineProperty")),o=n(e("@babel/runtime/regenerator")),s=n(e("@babel/runtime/helpers/asyncToGenerator")),a=n(e("@babel/runtime/helpers/slicedToArray")),c=n(e("@babel/runtime/helpers/classCallCheck")),u=n(e("@babel/runtime/helpers/createClass")),l=n(e("@babel/runtime/helpers/inherits")),d=n(e("@babel/runtime/helpers/possibleConstructorReturn")),h=n(e("@babel/runtime/helpers/getPrototypeOf")),f=e("../../logger"),g=e("./memory-crypto-store");function p(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rr)){e.next=12;break}return e.abrupt("return",Object.assign({},u,{fixed:s.fixed}));case 12:e.next=8;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(6),a.e(e.t0);case 19:return e.prev=19,a.f(),e.finish(19);case 22:if(!s.fixed){e.next=26;break}return e.abrupt("return",null);case 26:return e.abrupt("return",s);case 27:case"end":return e.stop()}}),e,this,[[6,16,19,22]])}))),function(e,t){return r.apply(this,arguments)})},{key:"filterOutNotifiedErrorDevices",value:(t=(0,s.default)(o.default.mark((function e(t){var r,n,s,a,c,u,l;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=A(this.store,_)||{},n=[],s=p(t);try{for(s.s();!(a=s.n()).done;)c=a.value,u=c.userId,l=c.deviceInfo,u in r?l.deviceId in r[u]||(n.push(c),r[u][l.deviceId]=!0):(n.push(c),r[u]=(0,i.default)({},l.deviceId,!0))}catch(e){s.e(e)}finally{s.f()}return P(this.store,_,r),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getEndToEndInboundGroupSession",value:function(e,t,r,n){n(A(this.store,R(e,t)),A(this.store,C(e,t)))}},{key:"getAllEndToEndInboundGroupSessions",value:function(e,t){for(var r=0;r=e)return"break"}())break}return Promise.resolve(n)}},{key:"countSessionsNeedingBackup",value:function(){var e=A(this.store,w)||{};return Promise.resolve(Object.keys(e).length)}},{key:"unmarkSessionsNeedingBackup",value:function(e){var t,r=A(this.store,w)||{},n=p(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;delete r[i.senderKey+"/"+i.sessionId]}}catch(e){n.e(e)}finally{n.f()}return P(this.store,w,r),Promise.resolve()}},{key:"markSessionsNeedingBackup",value:function(e){var t,r=A(this.store,w)||{},n=p(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;r[i.senderKey+"/"+i.sessionId]=!0}}catch(e){n.e(e)}finally{n.f()}return P(this.store,w,r),Promise.resolve()}},{key:"deleteAllData",value:function(){return this.store.removeItem(b),Promise.resolve()}},{key:"getAccount",value:function(e,t){t(A(this.store,b))}},{key:"storeAccount",value:function(e,t){P(this.store,b,t)}},{key:"getCrossSigningKeys",value:function(e,t){t(A(this.store,S))}},{key:"getSecretStorePrivateKey",value:function(e,t,r){t(A(this.store,m+"ssss_cache.".concat(r)))}},{key:"storeCrossSigningKeys",value:function(e,t){P(this.store,S,t)}},{key:"storeSecretStorePrivateKey",value:function(e,t,r){P(this.store,m+"ssss_cache.".concat(t),r)}},{key:"doTxn",value:function(e,t,r){return Promise.resolve(r(null))}}],[{key:"exists",value:function(e){for(var t=e.length,r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rr)){e.next=11;break}return e.abrupt("return",Object.assign({},c,{fixed:i.fixed}));case 11:e.next=7;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(5),o.e(e.t0);case 18:return e.prev=18,o.f(),e.finish(18);case 21:if(!i.fixed){e.next=25;break}return e.abrupt("return",null);case 25:return e.abrupt("return",i);case 26:case"end":return e.stop()}}),e,this,[[5,15,18,21]])}))),function(e,t){return r.apply(this,arguments)})},{key:"filterOutNotifiedErrorDevices",value:(t=(0,c.default)(a.default.mark((function e(t){var r,n,i,s,c,u,l;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=this._notifiedErrorDevices,n=[],i=p(t);try{for(i.s();!(s=i.n()).done;)c=s.value,u=c.userId,l=c.deviceInfo,u in r?l.deviceId in r[u]||(n.push(c),r[u][l.deviceId]=!0):(n.push(c),r[u]=(0,o.default)({},l.deviceId,!0))}catch(e){i.e(e)}finally{i.f()}return e.abrupt("return",n);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getEndToEndInboundGroupSession",value:function(e,t,r,n){var i=e+"/"+t;n(this._inboundGroupSessions[i]||null,this._inboundGroupSessionsWithheld[i]||null)}},{key:"getAllEndToEndInboundGroupSessions",value:function(e,t){for(var r=0,n=Object.keys(this._inboundGroupSessions);r=e))break;return Promise.resolve(t)}},{key:"countSessionsNeedingBackup",value:function(){return Promise.resolve(Object.keys(this._sessionsNeedingBackup).length)}},{key:"unmarkSessionsNeedingBackup",value:function(e){var t,r=p(e);try{for(r.s();!(t=r.n()).done;){var n=t.value,i=n.senderKey+"/"+n.sessionId;delete this._sessionsNeedingBackup[i]}}catch(e){r.e(e)}finally{r.f()}return Promise.resolve()}},{key:"markSessionsNeedingBackup",value:function(e){var t,r=p(e);try{for(r.s();!(t=r.n()).done;){var n=t.value,i=n.senderKey+"/"+n.sessionId;this._sessionsNeedingBackup[i]=!0}}catch(e){r.e(e)}finally{r.f()}return Promise.resolve()}},{key:"addSharedHistoryInboundGroupSession",value:function(e,t,r){var n=this._sharedHistoryInboundGroupSessions[e]||[];n.push([t,r]),this._sharedHistoryInboundGroupSessions[e]=n}},{key:"getSharedHistoryInboundGroupSessions",value:function(e){return Promise.resolve(this._sharedHistoryInboundGroupSessions[e]||[])}},{key:"doTxn",value:function(e,t,r){return Promise.resolve(r(null))}}]),e}();r.MemoryCryptoStore=y},{"../../logger":106,"../../utils":137,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/defineProperty":9,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"@babel/runtime/helpers/slicedToArray":22,"@babel/runtime/regenerator":27}],91:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.VerificationBase=r.SwitchStartEventError=void 0;var i=n(e("@babel/runtime/regenerator")),o=n(e("@babel/runtime/helpers/defineProperty")),s=n(e("@babel/runtime/helpers/slicedToArray")),a=n(e("@babel/runtime/helpers/asyncToGenerator")),c=n(e("@babel/runtime/helpers/createClass")),u=n(e("@babel/runtime/helpers/classCallCheck")),l=n(e("@babel/runtime/helpers/inherits")),d=n(e("@babel/runtime/helpers/possibleConstructorReturn")),h=n(e("@babel/runtime/helpers/getPrototypeOf")),f=n(e("@babel/runtime/helpers/wrapNativeSuper")),g=e("../../models/event"),p=e("events"),v=e("../../logger"),y=e("../deviceinfo"),m=e("./Error"),b=e("../CrossSigning");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 Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,h.default)(e);if(t){var i=(0,h.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,d.default)(this,r)}}var _=new Error("Verification timed out"),E=function(e){(0,l.default)(r,e);var t=S(r);function r(e){var n;return(0,u.default)(this,r),(n=t.call(this)).startEvent=e,n}return r}((0,f.default)(Error));r.SwitchStartEventError=E;var k=function(e){(0,l.default)(n,e);var t,r=S(n);function n(e,t,i,o,s,a){var c;return(0,u.default)(this,n),(c=r.call(this))._channel=e,c._baseApis=t,c.userId=i,c.deviceId=o,c.startEvent=s,c.request=a,c.cancelled=!1,c._done=!1,c._promise=null,c._transactionTimeoutTimer=null,c}return(0,c.default)(n,[{key:"_resetTimer",value:function(){var e=this;v.logger.info("Refreshing/starting the verification transaction timeout timer"),null!==this._transactionTimeoutTimer&&clearTimeout(this._transactionTimeoutTimer),this._transactionTimeoutTimer=setTimeout((function(){e._done||e.cancelled||(v.logger.info("Triggering verification timeout"),e.cancel(_))}),6e5)}},{key:"_endTimer",value:function(){null!==this._transactionTimeoutTimer&&(clearTimeout(this._transactionTimeoutTimer),this._transactionTimeoutTimer=null)}},{key:"_send",value:function(e,t){return this._channel.send(e,t)}},{key:"_waitForEvent",value:function(e){var t=this;if(this._done)return Promise.reject(new Error("Verification is already done"));var r=this.request.getEventFromOtherParty(e);return r?Promise.resolve(r):(this._expectedEvent=e,new Promise((function(e,r){t._resolveEvent=e,t._rejectEvent=r})))}},{key:"canSwitchStartEvent",value:function(){return!1}},{key:"switchStartEvent",value:function(e){if(this.canSwitchStartEvent(e))if(v.logger.log("Verification Base: switching verification start event",{restartingFlow:!!this._rejectEvent}),this._rejectEvent){var t=this._rejectEvent;this._rejectEvent=void 0,t(new E(e))}else this.startEvent=e}},{key:"handleEvent",value:function(e){if(!this._done)if(e.getType()===this._expectedEvent)"m.key.verification.done"!==this._expectedEvent&&(this._expectedEvent=void 0,this._rejectEvent=void 0,this._resetTimer(),this._resolveEvent(e));else if("m.key.verification.cancel"===e.getType()){var t=this._reject;if(this._reject=void 0,t){var r=e.getContent(),n=r.reason,i=r.code;t(new Error("Other side cancelled verification "+"because ".concat(n," (").concat(i,")")))}}else if(this._expectedEvent){var o=new Error("Unexpected message: expecting "+this._expectedEvent+" but got "+e.getType());if(this._expectedEvent=void 0,this._rejectEvent){var s=this._rejectEvent;this._rejectEvent=void 0,s(o)}this.cancel(o)}}},{key:"done",value:function(){if(this._endTimer(),!this._done)return this.request.onVerifierFinished(),this._resolve(),(0,b.requestKeysDuringVerification)(this._baseApis,this.userId,this.deviceId)}},{key:"cancel",value:function(e){if(this._endTimer(),!this._done){if(this.cancelled=!0,this.request.onVerifierCancelled(),this.userId&&this.deviceId)if(e===_){var t=(0,m.newTimeoutError)();this._send(t.getType(),t.getContent())}else if(e instanceof g.MatrixEvent){if(e.getSender()!==this.userId){var r=e.getContent();"m.key.verification.cancel"===e.getType()?(r.code=r.code||"m.unknown",r.reason=r.reason||r.body||"Unknown reason",this._send("m.key.verification.cancel",r)):this._send("m.key.verification.cancel",{code:"m.unknown",reason:r.body||"Unknown reason"})}}else this._send("m.key.verification.cancel",{code:"m.unknown",reason:e.toString()});null!==this._promise?this._reject&&this._reject(e):this._promise=Promise.reject(e),this.emit("cancel",e)}}},{key:"verify",value:function(){var e=this;return this._promise||(this._promise=new Promise((function(t,r){e._resolve=function(){e._done=!0,e._endTimer(),t.apply(void 0,arguments)},e._reject=function(){e._done=!0,e._endTimer(),r.apply(void 0,arguments)}})),this._doVerification&&!this._started&&(this._started=!0,this._resetTimer(),Promise.resolve(this._doVerification()).then(this.done.bind(this),this.cancel.bind(this)))),this._promise}},{key:"_verifyKeys",value:(t=(0,a.default)(i.default.mark((function e(t,r,n){var a,c,u,l,d,h,f,g,p,m,b,S;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=[],c=0,u=Object.entries(r);case 2:if(!(c2&&void 0!==arguments[2])||arguments[2],s=n.from(e,r);o&&i(s.byteLength),t=n.concat([t,s])},s=function(e){var r=(0,p.decodeBase64)(e),i=n.from(r);t=n.concat([t,i])};return o(e.prefix,"ascii",!1),r(e.version),r(e.mode),o(e.transactionId,"utf-8"),s(e.firstKeyB64),s(e.secondKeyB64),s(e.secretB64),t}}]),e}();r.QRCodeData=E}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer)},{"../../logger":106,"../olmlib":85,"./Base":91,"./Error":92,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/construct":7,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":20,"@babel/runtime/regenerator":27,buffer:34}],95:[function(e,t,r){(function(t){(function(){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.SAS=void 0;var i=n(e("@babel/runtime/helpers/slicedToArray")),o=n(e("@babel/runtime/regenerator")),s=n(e("@babel/runtime/helpers/asyncToGenerator")),a=n(e("@babel/runtime/helpers/classCallCheck")),c=n(e("@babel/runtime/helpers/createClass")),u=n(e("@babel/runtime/helpers/inherits")),l=n(e("@babel/runtime/helpers/possibleConstructorReturn")),d=n(e("@babel/runtime/helpers/getPrototypeOf")),h=e("./Base"),f=n(e("another-json")),g=e("./Error"),p=e("../../logger");function v(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 Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,d.default)(e);if(t){var i=(0,d.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,l.default)(this,r)}}function y(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r>3),1e3+((7&e[1])<<10|e[2]<<2|e[3]>>6),1e3+((63&e[3])<<7|e[4]>>1)]},emoji:function(e){return[e[0]>>2,(3&e[0])<<4|e[1]>>4,(15&e[1])<<2|e[2]>>6,63&e[2],e[3]>>2,(3&e[3])<<4|e[4]>>4,(15&e[4])<<2|e[5]>>6].map((function(e){return w[e]}))}};function T(e,t){var r,n={},i=y(t);try{for(i.s();!(r=i.n()).done;){var o=r.value;o in I&&(n[o]=I[o](e))}}catch(e){i.e(e)}finally{i.f()}return n}var R={"hkdf-hmac-sha256":"calculate_mac","hmac-sha256":"calculate_mac_long_kdf"};function C(e,t){return function(){for(var r=e[R[t]],n=arguments.length,i=new Array(n),o=0;o=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:null;(0,s.default)(this,e),this._client=t,this._roomId=r,this.userId=n,this._requestEventId=null}var t,r;return(0,a.default)(e,[{key:"getTimestamp",value:function(e){return e.getTs()}},{key:"handleEvent",value:(r=(0,o.default)(i.default.mark((function t(r,n,o){var s,a,c,l,d,h;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!n.hasEventId(r.getId())){t.next=2;break}return t.abrupt("return");case 2:if(s=e.getEventType(r),r.getRoomId()===this._roomId){t.next=5;break}return t.abrupt("return");case 5:if(null===this.userId&&(a=e.getOtherPartyUserId(r,this._client))&&(this.userId=a),c=this._client.getUserId(),l=r.getSender(),null===this.userId){t.next=12;break}if(l===c||l===this.userId){t.next=12;break}return u.logger.log("InRoomChannel: ignoring verification event from "+"non-participating sender ".concat(l)),t.abrupt("return");case 12:return null===this._requestEventId&&(this._requestEventId=e.getTransactionId(r)),d=!!r.getUnsigned().transaction_id,h=r.getSender()===this._client.getUserId(),t.next=17,n.handleEvent(s,r,o,d,h);case 17:return t.abrupt("return",t.sent);case 18:case"end":return t.stop()}}),t,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"completedContentFromEvent",value:function(e){var t=Object.assign({},e.getContent());return t[g]=e.getRelation(),t}},{key:"completeContent",value:function(e,t){return t=Object.assign({},t),e!==c.REQUEST_TYPE&&e!==c.READY_TYPE&&e!==c.START_TYPE||(t.from_device=this._client.getDeviceId()),e===c.REQUEST_TYPE?t={body:this._client.getUserId()+" is requesting to verify your key, but your client does not support in-chat key verification. You will need to use legacy key verification to verify keys.",msgtype:c.REQUEST_TYPE,to:this.userId,from_device:t.from_device,methods:t.methods}:t[g]={rel_type:f,event_id:this.transactionId},t}},{key:"send",value:function(e,t){var r=this.completeContent(e,t);return this.sendCompleted(e,r)}},{key:"sendCompleted",value:(t=(0,o.default)(i.default.mark((function e(t,r){var n,o;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t,t===c.REQUEST_TYPE&&(n=h),e.next=4,this._client.sendEvent(this._roomId,n,r);case 4:o=e.sent,t===c.REQUEST_TYPE&&(this._requestEventId=o.event_id);case 6:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"receiveStartFromOtherDevices",get:function(){return!0}},{key:"roomId",get:function(){return this._roomId}},{key:"transactionId",get:function(){return this._requestEventId}}],[{key:"getOtherPartyUserId",value:function(t,r){if(e.getEventType(t)===c.REQUEST_TYPE){var n=r.getUserId(),i=t.getSender(),o=t.getContent().to;return i===n?o:o===n?i:void 0}}},{key:"canCreateRequest",value:function(e){return e===c.REQUEST_TYPE}},{key:"getTransactionId",value:function(t){if(e.getEventType(t)===c.REQUEST_TYPE)return t.getId();var r=t.getRelation();return r&&r.rel_type===f?r.event_id:void 0}},{key:"validateEvent",value:function(t,r){var n=e.getTransactionId(t);if("string"!=typeof n||0===n.length)return!1;var i=e.getEventType(t),o=t.getContent();if(i===c.REQUEST_TYPE){if(!o||"string"!=typeof o.to||!o.to.length)return u.logger.log("InRoomChannel: validateEvent: no valid to "+(o&&o.to)),!1;if(!e.getOtherPartyUserId(t,r))return u.logger.log("InRoomChannel: validateEvent: "+"not directed to or sent by me: ".concat(t.getSender())+", ".concat(o&&o.to)),!1}return c.VerificationRequest.validateEvent(i,t,r)}},{key:"getEventType",value:function(e){var t=e.getType();if(t===h){var r=e.getContent();if(r)if(r.msgtype===c.REQUEST_TYPE)return c.REQUEST_TYPE}return t&&t!==c.REQUEST_TYPE?t:""}}]),e}();r.InRoomChannel=p;var v=function(){function e(){(0,s.default)(this,e),this._requestsByRoomId=new Map}return(0,a.default)(e,[{key:"getRequest",value:function(e){var t=e.getRoomId(),r=p.getTransactionId(e);return this._getRequestByTxnId(t,r)}},{key:"getRequestByChannel",value:function(e){return this._getRequestByTxnId(e.roomId,e.transactionId)}},{key:"_getRequestByTxnId",value:function(e,t){var r=this._requestsByRoomId.get(e);if(r)return r.get(t)}},{key:"setRequest",value:function(e,t){this._setRequest(e.getRoomId(),p.getTransactionId(e),t)}},{key:"setRequestByChannel",value:function(e,t){this._setRequest(e.roomId,e.transactionId,t)}},{key:"_setRequest",value:function(e,t,r){var n=this._requestsByRoomId.get(e);n||(n=new Map,this._requestsByRoomId.set(e,n)),n.set(t,r)}},{key:"removeRequest",value:function(e){var t=e.getRoomId(),r=this._requestsByRoomId.get(t);r&&(r.delete(p.getTransactionId(e)),0===r.size&&this._requestsByRoomId.delete(t))}},{key:"findRequestInProgress",value:function(e){var t=this._requestsByRoomId.get(e);if(t){var r,n=l(t.values());try{for(n.s();!(r=n.n()).done;){var i=r.value;if(i.pending)return i}}catch(e){n.e(e)}finally{n.f()}}}}]),e}();r.InRoomRequests=v},{"../../../logger":106,"./VerificationRequest":98,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":27}],97:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.ToDeviceRequests=r.ToDeviceChannel=void 0;var i=n(e("@babel/runtime/helpers/defineProperty")),o=n(e("@babel/runtime/regenerator")),s=n(e("@babel/runtime/helpers/asyncToGenerator")),a=n(e("@babel/runtime/helpers/typeof")),c=n(e("@babel/runtime/helpers/classCallCheck")),u=n(e("@babel/runtime/helpers/createClass")),l=e("../../../randomstring"),d=e("../../../logger"),h=e("./VerificationRequest"),f=e("../Error"),g=e("../../../models/event");function p(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;(0,c.default)(this,e),this._client=t,this.userId=r,this._devices=n,this.transactionId=i,this._deviceId=o}var t,r;return(0,u.default)(e,[{key:"isToDevices",value:function(e){var t=this;if(e.length===this._devices.length){var r,n=p(e);try{var i=function(){var e=r.value;if(!t._devices.find((function(t){return t.deviceId===e.deviceId})))return{v:!1}};for(n.s();!(r=n.n()).done;){var o=i();if("object"===(0,a.default)(o))return o.v}}catch(e){n.e(e)}finally{n.f()}return!0}return!1}},{key:"getTimestamp",value:function(e){var t=e.getContent();return t&&t.timestamp}},{key:"handleEvent",value:(r=(0,s.default)(o.default.mark((function e(t,r,n){var i,s,a,c,u,l,d,g,p=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.getType(),s=t.getContent(),i!==h.REQUEST_TYPE&&i!==h.READY_TYPE&&i!==h.START_TYPE){e.next=9;break}if(this.transactionId||(this.transactionId=s.transaction_id),a=s.from_device,!this._deviceId&&this._devices.includes(a)&&(this._deviceId=a),this._deviceId&&this._deviceId===a){e.next=9;break}return c=this.completeContent((0,f.errorFromEvent)((0,f.newUnexpectedMessageError)())),e.abrupt("return",this._sendToDevices(h.CANCEL_TYPE,c,[a]));case 9:return u=r.phase===h.PHASE_STARTED||r.phase===h.PHASE_READY,e.next=12,r.handleEvent(t.getType(),t,n,!1,!1);case 12:if(l=r.phase===h.PHASE_STARTED||r.phase===h.PHASE_READY,i!==h.START_TYPE&&i!==h.READY_TYPE||u||!l||!this._deviceId){e.next=20;break}if(!(d=this._devices.filter((function(e){return e!==p._deviceId&&e!==p._client.getDeviceId()}))).length){e.next=20;break}return g=this.completeContent({code:"m.accepted",reason:"Verification request accepted by another device"}),e.next=20,this._sendToDevices(h.CANCEL_TYPE,g,d);case 20:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"completedContentFromEvent",value:function(e){return e.getContent()}},{key:"completeContent",value:function(e,t){return t=Object.assign({},t),this.transactionId&&(t.transaction_id=this.transactionId),e!==h.REQUEST_TYPE&&e!==h.READY_TYPE&&e!==h.START_TYPE||(t.from_device=this._client.getDeviceId()),e===h.REQUEST_TYPE&&(t.timestamp=Date.now()),t}},{key:"send",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t!==h.REQUEST_TYPE&&t!==h.START_TYPE||this.transactionId||(this.transactionId=e.makeTransactionId());var n=this.completeContent(t,r);return this.sendCompleted(t,n)}},{key:"sendCompleted",value:(t=(0,s.default)(o.default.mark((function e(t,r){var n,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==h.REQUEST_TYPE){e.next=6;break}return e.next=3,this._sendToDevices(t,r,this._devices);case 3:n=e.sent,e.next=9;break;case 6:return e.next=8,this._sendToDevices(t,r,[this._deviceId]);case 8:n=e.sent;case 9:return i=new g.MatrixEvent({sender:this._client.getUserId(),content:r,type:t}),e.next=12,this._request.handleEvent(t,i,!0,!0,!0);case 12:return e.abrupt("return",n);case 13:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"_sendToDevices",value:function(e,t,r){if(r.length){var n,o={},s=p(r);try{for(s.s();!(n=s.n()).done;){o[n.value]=t}}catch(e){s.e(e)}finally{s.f()}return this._client.sendToDevice(e,(0,i.default)({},this.userId,o))}return Promise.resolve()}},{key:"deviceId",get:function(){return this._deviceId}}],[{key:"getEventType",value:function(e){return e.getType()}},{key:"getTransactionId",value:function(e){var t=e.getContent();return t&&t.transaction_id}},{key:"canCreateRequest",value:function(e){return e===h.REQUEST_TYPE||e===h.START_TYPE}},{key:"validateEvent",value:function(e,t){if(e.isCancelled())return d.logger.warn("Ignoring flagged verification request from "+e.getSender()),!1;var r=e.getContent();if(!r)return d.logger.warn("ToDeviceChannel.validateEvent: invalid: no content"),!1;if(!r.transaction_id)return d.logger.warn("ToDeviceChannel.validateEvent: invalid: no transaction_id"),!1;var n=e.getType();if(n===h.REQUEST_TYPE){if(!Number.isFinite(r.timestamp))return d.logger.warn("ToDeviceChannel.validateEvent: invalid: no timestamp"),!1;if(e.getSender()===t.getUserId()&&r.from_device==t.getDeviceId())return d.logger.warn("ToDeviceChannel.validateEvent: invalid: from own device"),!1}return h.VerificationRequest.validateEvent(n,e,t)}},{key:"makeTransactionId",value:function(){return(0,l.randomString)(32)}}]),e}();r.ToDeviceChannel=y;var m=function(){function e(){(0,c.default)(this,e),this._requestsByUserId=new Map}return(0,u.default)(e,[{key:"getRequest",value:function(e){return this.getRequestBySenderAndTxnId(e.getSender(),y.getTransactionId(e))}},{key:"getRequestByChannel",value:function(e){return this.getRequestBySenderAndTxnId(e.userId,e.transactionId)}},{key:"getRequestBySenderAndTxnId",value:function(e,t){var r=this._requestsByUserId.get(e);if(r)return r.get(t)}},{key:"setRequest",value:function(e,t){this.setRequestBySenderAndTxnId(e.getSender(),y.getTransactionId(e),t)}},{key:"setRequestByChannel",value:function(e,t){this.setRequestBySenderAndTxnId(e.userId,e.transactionId,t)}},{key:"setRequestBySenderAndTxnId",value:function(e,t,r){var n=this._requestsByUserId.get(e);n||(n=new Map,this._requestsByUserId.set(e,n)),n.set(t,r)}},{key:"removeRequest",value:function(e){var t=e.getSender(),r=this._requestsByUserId.get(t);r&&(r.delete(y.getTransactionId(e)),0===r.size&&this._requestsByUserId.delete(t))}},{key:"findRequestInProgress",value:function(e,t){var r=this._requestsByUserId.get(e);if(r){var n,i=p(r.values());try{for(i.s();!(n=i.n()).done;){var o=n.value;if(o.pending&&o.channel.isToDevices(t))return o}}catch(e){i.e(e)}finally{i.f()}}}},{key:"getRequestsInProgress",value:function(e){var t=this._requestsByUserId.get(e);return t?Array.from(t.values()).filter((function(e){return e.pending})):[]}}]),e}();r.ToDeviceRequests=m},{"../../../logger":106,"../../../models/event":113,"../../../randomstring":123,"../Error":92,"./VerificationRequest":98,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/defineProperty":9,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@babel/runtime/regenerator":27}],98:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.VerificationRequest=r.PHASE_DONE=r.PHASE_CANCELLED=r.PHASE_STARTED=r.PHASE_READY=r.PHASE_REQUESTED=r.PHASE_UNSENT=r.READY_TYPE=r.DONE_TYPE=r.CANCEL_TYPE=r.START_TYPE=r.REQUEST_TYPE=r.EVENT_PREFIX=void 0;var i=n(e("@babel/runtime/helpers/slicedToArray")),o=n(e("@babel/runtime/regenerator")),s=n(e("@babel/runtime/helpers/toConsumableArray")),a=n(e("@babel/runtime/helpers/asyncToGenerator")),c=n(e("@babel/runtime/helpers/classCallCheck")),u=n(e("@babel/runtime/helpers/createClass")),l=n(e("@babel/runtime/helpers/assertThisInitialized")),d=n(e("@babel/runtime/helpers/inherits")),h=n(e("@babel/runtime/helpers/possibleConstructorReturn")),f=n(e("@babel/runtime/helpers/getPrototypeOf")),g=n(e("@babel/runtime/helpers/defineProperty")),p=e("../../../logger"),v=e("events"),y=e("../Error"),m=e("../QRCode");function b(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return S(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return S(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]&&arguments[1];if(!t&&!this.ready&&!this.started)return!1;var r=this._eventsByThem.get(k)||this._eventsByThem.get(R);if(!r){if(this.started&&this.initiatedByMe){var n=this._eventsByUs.get(w),i=n&&n.getContent(),o=i&&i.method;return e==o}return!1}var s=r.getContent();if(!s)return!1;var a=s.methods;return!!Array.isArray(a)&&a.includes(e)}},{key:"beginKeyVerification",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!this.observeOnly&&!this._verifier){var r=2===this.phase||3===this.phase||1===this.phase&&this.channel.constructor.canCreateRequest(w);if(r){if(this._commonMethods.length&&!this._commonMethods.includes(e))throw(0,y.newUnknownMethodError)();if(this._verifier=this._createVerifier(e,null,t),!this._verifier)throw(0,y.newUnknownMethodError)();this._chosenMethod=e}}return this._verifier}},{key:"sendRequest",value:(f=(0,a.default)(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.observeOnly||1!==this._phase){e.next=4;break}return t=(0,s.default)(this._verificationMethods.keys()),e.next=4,this.channel.send(k,{methods:t});case 4:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"cancel",value:(h=(0,a.default)(o.default.mark((function e(){var t,r,n,i,s,a=arguments;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>0&&void 0!==a[0]?a[0]:{},r=t.reason,n=void 0===r?"User declined":r,i=t.code,s=void 0===i?"m.user":i,this.observeOnly||5===this._phase){e.next=11;break}if(this._declining=!0,this.emit("change"),!this._verifier){e.next=8;break}return e.abrupt("return",this._verifier.cancel((0,y.errorFactory)(s,n)()));case 8:return this._cancellingUserId=this._client.getUserId(),e.next=11,this.channel.send(I,{code:s,reason:n});case 11:case"end":return e.stop()}}),e,this)}))),function(){return h.apply(this,arguments)})},{key:"accept",value:(n=(0,a.default)(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.observeOnly||2!==this.phase||this.initiatedByMe){e.next=6;break}return t=(0,s.default)(this._verificationMethods.keys()),this._accepting=!0,this.emit("change"),e.next=6,this.channel.send(R,{methods:t});case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"waitFor",value:function(e){var t=this;return new Promise((function(r,n){var i=function i(){var o=!1;return e(t)?(r(t),o=!0):t.cancelled&&(n(new Error("cancelled")),o=!0),o&&t.off("change",i),o};i()||t.on("change",i)}))}},{key:"_setPhase",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._phase=e,t&&this.emit("change")}},{key:"_getEventByEither",value:function(e){return this._eventsByThem.get(e)||this._eventsByUs.get(e)}},{key:"_getEventBy",value:function(e,t){return t?this._eventsByThem.get(e):this._eventsByUs.get(e)}},{key:"_calculatePhaseTransitions",value:function(){var e=[{phase:1}],t=function(){return e[e.length-1].phase},r=this._eventsByThem.has(k),n=this._getEventBy(k,r);n&&e.push({phase:2,event:n});var i,o=n&&this._getEventBy(R,!r);if(o&&2===t()&&e.push({phase:3,event:o}),o||!n){var s=this._eventsByThem.get(w),a=this._eventsByUs.get(w);i=s&&a?s.getSender()").concat(this.phase,", ")+"observeOnly:".concat(a,"=>").concat(this._observeOnly)),e.finish(31);case 34:case"end":return e.stop()}}),e,this,[[15,,31,34]])}))),function(e,t,n,i,o){return r.apply(this,arguments)})},{key:"_setupTimeout",value:function(e){(!this._timeoutTimer&&!this.observeOnly&&2===e&&(this._timeoutTimer=setTimeout(this._cancelOnTimeout,this.timeout)),this._timeoutTimer)&&((4===e||3===e||6===e||5===e)&&(clearTimeout(this._timeoutTimer),this._timeoutTimer=null))}},{key:"_cancelOnError",value:(t=(0,a.default)(o.default.mark((function e(t,r){var n,i,s,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==w){e.next=6;break}if(n=r.getContent().method,this._verificationMethods.has(n)){e.next=6;break}return e.next=5,this.cancel((0,y.errorFromEvent)((0,y.newUnknownMethodError)()));case 5:return e.abrupt("return",!0);case 6:if(i=t===k&&1!==this.phase,s=t===R&&2!==this.phase,1===this.phase||!i&&!s){e.next=14;break}return p.logger.warn("Cancelling, unexpected ".concat(t," verification ")+"event from ".concat(r.getSender())),a="Unexpected ".concat(t," event in phase ").concat(this.phase),e.next=13,this.cancel((0,y.errorFromEvent)((0,y.newUnexpectedMessageError)({reason:a})));case 13:return e.abrupt("return",!0);case 14:return e.abrupt("return",!1);case 15:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"_adjustObserveOnly",value:function(e,t){t||(this._observeOnly=!0),this.calculateEventTimeout(e)<3e3&&(this._observeOnly=!0)}},{key:"_addEvent",value:function(e,t,r){if(r?this._eventsByUs.set(e,t):this._eventsByThem.set(e,t),e===k){var n,o=b(this._eventsByThem.entries());try{for(o.s();!(n=o.n()).done;){var s=(0,i.default)(n.value,2),a=s[0];s[1].getSender()!==this.otherUserId&&this._eventsByThem.delete(a)}}catch(e){o.e(e)}finally{o.f()}this._requestReceivedAt=Date.now()}}},{key:"_createVerifier",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;r||(r=this.targetDevice);var n=r,i=n.userId,o=n.deviceId,s=this._verificationMethods.get(e);if(s)return new s(this.channel,this._client,i,o,t,this);p.logger.warn("could not find verifier constructor for method",e)}},{key:"_wasSentByOwnUser",value:function(e){return e.getSender()===this._client.getUserId()}},{key:"_wasSentByOwnDevice",value:function(e){if(!this._wasSentByOwnUser(e))return!1;var t=e.getContent();return!(!t||t.from_device!==this._client.getDeviceId())}},{key:"onVerifierCancelled",value:function(){this._cancelled=!0;var e=this._applyPhaseTransitions();e.length&&this._setPhase(e[e.length-1].phase)}},{key:"onVerifierFinished",value:function(){this.channel.send("m.key.verification.done",{}),this._verifierHasFinished=!0;var e=this._applyPhaseTransitions();e.length&&this._setPhase(e[e.length-1].phase)}},{key:"getEventFromOtherParty",value:function(e){return this._eventsByThem.get(e)}},{key:"invalid",get:function(){return 1===this.phase}},{key:"requested",get:function(){return 2===this.phase}},{key:"cancelled",get:function(){return 5===this.phase}},{key:"ready",get:function(){return 3===this.phase}},{key:"started",get:function(){return 4===this.phase}},{key:"done",get:function(){return 6===this.phase}},{key:"methods",get:function(){return this._commonMethods}},{key:"chosenMethod",get:function(){return this._chosenMethod}},{key:"timeout",get:function(){var e=this._getEventByEither(k);return e?this.calculateEventTimeout(e):0}},{key:"requestEvent",get:function(){return this._getEventByEither(k)}},{key:"phase",get:function(){return this._phase}},{key:"verifier",get:function(){return this._verifier}},{key:"canAccept",get:function(){return this.phase<3&&!this._accepting&&!this._declining}},{key:"accepting",get:function(){return this._accepting}},{key:"declining",get:function(){return this._declining}},{key:"pending",get:function(){return!this.observeOnly&&6!==this._phase&&5!==this._phase}},{key:"qrCodeData",get:function(){return this._qrCodeData}},{key:"initiatedByMe",get:function(){var e=this._eventsByUs.size+this._eventsByThem.size===0;if(1===this._phase&&e)return!0;var t=this._eventsByUs.has(k),r=this._eventsByThem.has(k);if(t&&!r)return!0;if(!t&&r)return!1;var n=this._eventsByUs.has(w),i=this._eventsByThem.has(w);return!(!n||i)}},{key:"requestingUserId",get:function(){return this.initiatedByMe?this._client.getUserId():this.otherUserId}},{key:"receivingUserId",get:function(){return this.initiatedByMe?this.otherUserId:this._client.getUserId()}},{key:"otherUserId",get:function(){return this.channel.userId}},{key:"isSelfVerification",get:function(){return this._client.getUserId()===this.otherUserId}},{key:"cancellingUserId",get:function(){var e=this._eventsByUs.get(I),t=this._eventsByThem.get(I);return e&&(!t||e.getId()0&&(b+="?"+S.join("&")),f.open("POST",b),this.useAuthorizationHeader&&f.setRequestHeader("Authorization","Bearer "+this.opts.accessToken),f.setRequestHeader("Content-Type",i),f.send(s),(u=h.promise).abort=f.abort.bind(f)}else{var _={};n&&o&&(_.filename=o),u=this.authedRequest(r.callback,"POST","/upload",_,s,{prefix:"/_matrix/media/r0",headers:{"Content-Type":i},json:!1,bodyParser:d})}var E=this,w=u.finally((function(){for(var e=0;e=400?i=function(e,t){var r,n=e.status||e.statusCode,i=function(e){var t;e.getResponseHeader?t=e.getResponseHeader("Content-Type"):e.headers&&(t=e.headers["content-type"]||null);if(!t)return null;try{return(0,p.parse)(t)}catch(e){throw new Error("Error parsing Content-Type '".concat(t,"': ").concat(e))}}(e);if(i)if("application/json"===i.type){var o="object"===(0,g.default)(t)?t:JSON.parse(t);r=new w(o)}else"text/plain"===i.type&&(r=new Error("Server returned ".concat(n," error: ").concat(t)));r||(r=new Error("Server returned ".concat(n," error")));return r.httpStatus=n,r}(o,s):n&&(s=n(s))}catch(e){i=new Error("Error parsing server response: ".concat(e))}if(i)e.reject(i),t(i);else{var a={code:o.status||o.statusCode,headers:o.headers,data:s};e.resolve(r?s:a),t(null,r?s:a)}}};var w=function(e){(0,u.default)(r,e);var t=b(r);function r(e){var n;return(0,c.default)(this,r),e=e||{},(n=t.call(this,"MatrixError: ".concat(e.errcode))).errcode=e.errcode,n.name=e.errcode||"Unknown error code",n.message=e.error||"Unknown message",n.data=e,n}return r}((0,h.default)(Error));r.MatrixError=w;var I=function(e){(0,u.default)(r,e);var t=b(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return(0,c.default)(this,r),(n=t.call(this,e+(i?": ".concat(i.message):"")))._cause=i,n}return(0,a.default)(r,[{key:"name",get:function(){return"ConnectionError"}},{key:"cause",get:function(){return this._cause}}]),r}((0,h.default)(Error));r.ConnectionError=I;var T=function(e){(0,u.default)(r,e);var t=b(r);function r(){return(0,c.default)(this,r),t.call(this,"Operation aborted")}return(0,a.default)(r,[{key:"name",get:function(){return"AbortError"}}]),r}((0,h.default)(Error));function R(){return(R=(0,s.default)(o.default.mark((function e(t,r){var n,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=0,i=null;case 2:if(!(n0)){e.next=6;break}return e.delegateYield(o.default.mark((function e(){var t;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=1e3*Math.pow(2,n),y.logger.log("network operation failed ".concat(n," times,")+" retrying in ".concat(t,"ms...")),e.next=4,new Promise((function(e){return setTimeout(e,t)}));case 4:case"end":return e.stop()}}),e)}))(),"t0",6);case 6:return e.next=8,r();case 8:return e.abrupt("return",e.sent);case 11:if(e.prev=11,e.t1=e.catch(3),!(e.t1 instanceof I)){e.next=18;break}n+=1,i=e.t1,e.next=19;break;case 18:throw e.t1;case 19:e.next=2;break;case 21:throw i;case 22:case"end":return e.stop()}}),e,null,[[3,11]])})))).apply(this,arguments)}r.AbortError=T}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./logger":106,"./realtime-callbacks":124,"./utils":137,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/defineProperty":9,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"@babel/runtime/helpers/possibleConstructorReturn":20,"@babel/runtime/helpers/typeof":24,"@babel/runtime/helpers/wrapNativeSuper":26,"@babel/runtime/regenerator":27,"content-type":35}],104:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.exists=function(e,t){return new Promise((function(r,n){var i=!0,o=e.open(t);o.onupgradeneeded=function(){i=!1},o.onblocked=function(){return n()},o.onsuccess=function(){o.result.close(),i||e.deleteDatabase(t),r(i)},o.onerror=function(e){return n(e.target.error)}}))}},{}],105:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard"),i=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.InteractiveAuth=y;var o=i(e("@babel/runtime/regenerator")),s=i(e("@babel/runtime/helpers/asyncToGenerator")),a=i(e("url")),c=n(e("./utils")),u=e("./logger");function l(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r %s",JSON.stringify(this._chosenFlow));var e=this._firstUncompletedStage(this._chosenFlow);return u.logger.log("Next stage: %s",e),e},_chooseFlow:function(){var e,t=this._data.flows||[],r=Boolean(this._inputs.emailAddress)||Boolean(this._emailSid),n=Boolean(this._inputs.phoneCountry)&&Boolean(this._inputs.phoneNumber),i=l(t);try{for(i.s();!(e=i.n()).done;){var o,s=e.value,a=!1,c=!1,u=l(s.stages);try{for(u.s();!(o=u.n()).done;){var d=o.value;d===p?a=!0:d==v&&(c=!0)}}catch(h){u.e(h)}finally{u.f()}if(a==r&&c==n)return s}}catch(h){i.e(h)}finally{i.f()}var h=new Error("No appropriate authentication flow found");throw h.name="NoAuthFlowFoundError",h.required_stages=[],r&&h.required_stages.push(p),n&&h.required_stages.push(v),h.available_flows=t,h},_firstUncompletedStage:function(e){for(var t=(this._data||{}).completed||[],r=0;rnew a.MemoryCryptoStore;r.setCryptoStoreFactory=function(e){f=e},r.createClient=function(e){return"string"==typeof e&&(e={baseUrl:e}),e.request=e.request||h,e.store=e.store||new c.MemoryStore({localStorage:t.localStorage}),e.scheduler=e.scheduler||new u.MatrixScheduler,e.cryptoStore=e.cryptoStore||f(),new l.MatrixClient(e)}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./autodiscovery":62,"./client":64,"./content-helpers":65,"./content-repo":66,"./crypto/store/indexeddb-crypto-store":88,"./crypto/store/memory-crypto-store":90,"./errors":99,"./filter":102,"./http-api":103,"./interactive-auth":105,"./models/event":113,"./models/event-timeline":112,"./models/event-timeline-set":111,"./models/group":114,"./models/room":119,"./models/room-member":116,"./models/room-state":117,"./models/user":121,"./scheduler":125,"./service-types":126,"./store/indexeddb":129,"./store/memory":130,"./store/session/webstorage":131,"./sync-accumulator":133,"./timeline-window":136,"./webrtc/call":138}],108:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.MSC3089Branch=void 0;const i=e("../@types/event");r.MSC3089Branch=class{constructor(e,t){this.client=e,this.indexEvent=t}get id(){return this.indexEvent.getStateKey()}get isActive(){return!0===this.indexEvent.getContent().active}get roomId(){return this.indexEvent.getRoomId()}delete(){return n(this,void 0,void 0,(function*(){yield this.client.sendStateEvent(this.roomId,i.UNSTABLE_MSC3089_BRANCH.name,{},this.id),yield this.client.redactEvent(this.roomId,this.id)}))}getName(){return this.indexEvent.getContent().name||"Unnamed File"}setName(e){return this.client.sendStateEvent(this.roomId,i.UNSTABLE_MSC3089_BRANCH.name,Object.assign(Object.assign({},this.indexEvent.getContent()),{name:e}),this.id)}getFileInfo(){return n(this,void 0,void 0,(function*(){const e=this.client.getRoom(this.roomId);if(!e)throw new Error("Unknown room");const t=yield this.client.getEventTimeline(e.getUnfilteredTimelineSet(),this.id);if(!t)throw new Error("Failed to get timeline for room event");const r=t.getEvents().find((e=>e.getId()===this.id));if(!r)throw new Error("Failed to find event");yield this.client.decryptEventIfNeeded(r,{emit:!1,isRetry:!1});const n=r.getContent().file;return{info:n,httpUrl:this.client.mxcUrlToHttp(n.url)}}))}}},{"../@types/event":58}],109:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.MSC3089TreeSpace=r.TreePermissions=r.DEFAULT_TREE_POWER_LEVELS_TEMPLATE=void 0;const o=e("../@types/event"),s=e("../logger"),a=e("../utils"),c=e("./MSC3089Branch"),u=i(e("p-retry")),l=e("../crypto/algorithms/megolm");var d;r.DEFAULT_TREE_POWER_LEVELS_TEMPLATE={invite:100,kick:100,ban:100,redact:50,state_default:50,events_default:50,users_default:0,events:{[o.EventType.RoomPowerLevels]:100,[o.EventType.RoomHistoryVisibility]:100,[o.EventType.RoomTombstone]:100,[o.EventType.RoomEncryption]:100,[o.EventType.RoomName]:50,[o.EventType.RoomMessage]:50,[o.EventType.RoomMessageEncrypted]:50,[o.EventType.Sticker]:50},users:{}},function(e){e.Viewer="viewer",e.Editor="editor",e.Owner="owner"}(d=r.TreePermissions||(r.TreePermissions={}));r.MSC3089TreeSpace=class{constructor(e,t){if(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(o.EventType.SpaceParent);return!(null==e?void 0:e.length)||e.every((e=>{var t;return!(null===(t=e.getContent())||void 0===t?void 0:t.via)}))}setName(e){return this.client.sendStateEvent(this.roomId,o.EventType.RoomName,{name:e},"")}invite(e,t=!0,r=!0){return n(this,void 0,void 0,(function*(){const n=[this.retryInvite(e)];return t&&n.push(...this.getDirectories().map((n=>n.invite(e,t,r)))),Promise.all(n).then((()=>{r&&l.isRoomSharedHistory(this.room)&&this.client.sendSharedHistoryKeys(this.roomId,[e])}))}))}retryInvite(e){return a.simpleRetryOperation((()=>n(this,void 0,void 0,(function*(){yield this.client.invite(this.roomId,e).catch((e=>{if("M_FORBIDDEN"===(null==e?void 0:e.errcode))throw new u.default.AbortError(e);throw e}))}))))}setPermissions(e,t){var r;return n(this,void 0,void 0,(function*(){const n=this.room.currentState.getStateEvents(o.EventType.RoomPowerLevels,"");if(Array.isArray(n))throw new Error("Unexpected return type for power levels");const i=n.getContent()||{},s=i.users_default||0,a=i.events_default||50,c=(null===(r=i.events)||void 0===r?void 0:r[o.EventType.RoomPowerLevels])||100,u=i.users||{};switch(t){case d.Viewer:u[e]=s;break;case d.Editor:u[e]=a;break;case d.Owner:u[e]=c;break;default:throw new Error("Invalid role: "+t)}return i.users=u,this.client.sendStateEvent(this.roomId,o.EventType.RoomPowerLevels,i,"")}))}createDirectory(e){return n(this,void 0,void 0,(function*(){const t=yield this.client.unstableCreateFileTree(e);return yield this.client.sendStateEvent(this.roomId,o.EventType.SpaceChild,{via:[this.client.getDomain()]},t.roomId),yield this.client.sendStateEvent(t.roomId,o.EventType.SpaceParent,{via:[this.client.getDomain()]},this.roomId),t}))}getDirectories(){const e=[],t=this.room.currentState.getStateEvents(o.EventType.SpaceChild);for(const r of t)try{const t=this.client.unstableGetFileTreeSpace(r.getStateKey());t&&e.push(t)}catch(e){s.logger.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))}delete(){return n(this,void 0,void 0,(function*(){const e=this.getDirectories();for(const t of e)yield t.delete();const t=["invite","knock","join"],r=this.room.currentState.getStateEvents(o.EventType.RoomMember);for(const e of r){e.getStateKey()!==this.client.getUserId()&&t.includes(e.getContent().membership)&&(yield this.client.kick(this.roomId,e.getStateKey(),"Room deleted"))}yield this.client.leave(this.roomId)}))}getOrderedChildren(e){const t=e.map((e=>({roomId:e.getStateKey(),order:e.getContent().order})));return t.sort(((e,t)=>{var r,n,i,s;if(e.order&&!t.order)return-1;if(!e.order&&t.order)return 1;if(e.order||t.order)return a.lexicographicCompare(e.order,t.order);{const c=this.client.getRoom(e.roomId),u=this.client.getRoom(t.roomId);if(!c||!u)return a.lexicographicCompare(e.roomId,t.roomId);const l=null!==(n=null===(r=c.currentState.getStateEvents(o.EventType.RoomCreate,""))||void 0===r?void 0:r.getTs())&&void 0!==n?n:0,d=null!==(s=null===(i=u.currentState.getStateEvents(o.EventType.RoomCreate,""))||void 0===i?void 0:i.getTs())&&void 0!==s?s:0;return l===d?a.lexicographicCompare(e.roomId,t.roomId):l-d}})),t}getParentRoom(){const e=this.room.currentState.getStateEvents(o.EventType.SpaceParent)[0];if(!e)throw new Error("Expected to have a parent in a non-top level space");const t=this.client.getRoom(e.getStateKey());if(!t)throw new Error("Unable to locate room for parent");return t}getOrder(){if(this.isTopLevel)return-1;const e=this.getParentRoom().currentState.getStateEvents(o.EventType.SpaceChild);return this.getOrderedChildren(e).findIndex((e=>e.roomId===this.roomId))}setOrder(e){var t,r;return n(this,void 0,void 0,(function*(){if(this.isTopLevel)throw new Error("Cannot set order of top level spaces currently");const n=this.getParentRoom(),i=n.currentState.getStateEvents(o.EventType.SpaceChild),s=this.getOrderedChildren(i);e=Math.max(Math.min(e,s.length-1),0);const c=this.getOrder()new c.MSC3089Branch(this.client,e))).filter((e=>e.isActive))}}},{"../@types/event":58,"../crypto/algorithms/megolm":77,"../logger":106,"../utils":137,"./MSC3089Branch":108,"p-retry":39}],110:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.EventContext=void 0;const n=e("./event-timeline");r.EventContext=class{constructor(e){this.ourEventIndex=0,this.paginateTokens={[n.Direction.Backward]:null,[n.Direction.Forward]:null},this.timeline=[e]}getEvent(){return this.timeline[this.ourEventIndex]}getTimeline(){return this.timeline}getOurEventIndex(){return this.ourEventIndex}getPaginateToken(e=!1){return this.paginateTokens[e?n.Direction.Backward:n.Direction.Forward]}setPaginateToken(e,t=!1){this.paginateTokens[t?n.Direction.Backward:n.Direction.Forward]=e}addEvents(e,t=!1){t?(this.timeline=e.concat(this.timeline),this.ourEventIndex+=e.length):this.timeline=this.timeline.concat(e)}}},{"./event-timeline":112}],111:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.EventTimelineSet=void 0;const n=e("events"),i=e("./event-timeline"),o=e("./event"),s=e("../logger"),a=e("./relations");let c;c=s.logger.log.bind(s.logger);class u extends n.EventEmitter{constructor(e,t){super(),this.room=e,this.timelineSupport=Boolean(t.timelineSupport),this.liveTimeline=new i.EventTimeline(this),this.unstableClientRelationAggregation=!!t.unstableClientRelationAggregation,this.timelines=[this.liveTimeline],this._eventIdToTimeline={},this.filter=t.filter,this.unstableClientRelationAggregation&&(this.relations={})}getTimelines(){return this.timelines}getFilter(){return this.filter}setFilter(e){this.filter=e}getPendingEvents(){return this.room?this.filter?this.filter.filterRoomTimeline(this.room.getPendingEvents()):this.room.getPendingEvents():[]}getLiveTimeline(){return this.liveTimeline}eventIdToTimeline(e){return this._eventIdToTimeline[e]}replaceEventId(e,t){const r=this._eventIdToTimeline[e];r&&(delete this._eventIdToTimeline[e],this._eventIdToTimeline[t]=r)}resetLiveTimeline(e,t){const r=!this.timelineSupport||!t,n=this.liveTimeline,o=r?n.forkLive(i.EventTimeline.FORWARDS):n.fork(i.EventTimeline.FORWARDS);r?(this.timelines=[o],this._eventIdToTimeline={}):this.timelines.push(o),t&&n.setPaginationToken(t,i.EventTimeline.FORWARDS),o.setPaginationToken(e,i.EventTimeline.BACKWARDS),this.liveTimeline=o,this.emit("Room.timelineReset",this.room,this,r)}getTimelineForEvent(e){const t=this._eventIdToTimeline[e];return void 0===t?null:t}findEventById(e){const t=this.getTimelineForEvent(e);if(t)return t.getEvents().find((function(t){return t.getId()==e}))}addTimeline(){if(!this.timelineSupport)throw new Error("timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.");const e=new i.EventTimeline(this);return this.timelines.push(e),e}addEventsToTimeline(e,t,r,n){if(!r)throw new Error("'timeline' not specified for EventTimelineSet.addEventsToTimeline");if(!t&&r==this.liveTimeline)throw new Error("EventTimelineSet.addEventsToTimeline cannot be used for adding events to the live timeline - use Room.addLiveEvents instead");if(this.filter&&!(e=this.filter.filterRoomTimeline(e)).length)return;const o=t?i.EventTimeline.BACKWARDS:i.EventTimeline.FORWARDS,a=t?i.EventTimeline.FORWARDS:i.EventTimeline.BACKWARDS;let u=!1,l=!1;for(let n=0;n{this.aggregateRelations(e)}));const t=e.getRelation();if(!t)return;const r=t.event_id,n=t.rel_type,i=e.getType();let s=this.relations[r];s||(s=this.relations[r]={});let c=s[n];c||(c=s[n]={});let u,l=c[i];l||(l=c[i]=new a.Relations(n,i,this.room),u=this.findEventById(r)||this.room.getPendingEvent(r),u&&l.setTargetEvent(u)),l.addEvent(e)}}r.EventTimelineSet=u},{"../logger":106,"./event":113,"./event-timeline":112,"./relations":115,events:36}],112:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.EventTimeline=r.Direction=void 0;const n=e("./room-state"),i=e("../@types/event");var o;!function(e){e.Backward="b",e.Forward="f"}(o=r.Direction||(r.Direction={}));class s{constructor(e){var t,r;this.eventTimelineSet=e,this.events=[],this.baseIndex=0,this.paginationRequests={[o.Backward]:null,[o.Forward]:null},this.roomId=null!==(r=null===(t=e.room)||void 0===t?void 0:t.roomId)&&void 0!==r?r:null,this.startState=new n.RoomState(this.roomId),this.startState.paginationToken=null,this.endState=new n.RoomState(this.roomId),this.endState.paginationToken=null,this.prevTimeline=null,this.nextTimeline=null,this.paginationRequests={b:null,f:null},this.name=this.roomId+":"+(new Date).toISOString()}static setEventMetadata(e,t,r){e.sender||(e.sender=t.getSentinelMember(e.getSender())),e.target||e.getType()!==i.EventType.RoomMember||(e.target=t.getSentinelMember(e.getStateKey())),e.isState()&&r&&(e.forwardLooking=!1)}initialiseState(e){if(this.events.length>0)throw new Error("Cannot initialise state after events are added");for(const t of e)Object.freeze(t);this.startState.setStateEvents(e),this.endState.setStateEvents(e)}forkLive(e){const t=this.getState(e),r=new s(this.eventTimelineSet);return r.startState=t.clone(),r.endState=t,this.endState=t.clone(),r}fork(e){const t=this.getState(e),r=new s(this.eventTimelineSet);return r.startState=t.clone(),r.endState=t.clone(),r}getRoomId(){return this.roomId}getFilter(){return this.eventTimelineSet.getFilter()}getTimelineSet(){return this.eventTimelineSet}getBaseIndex(){return this.baseIndex}getEvents(){return this.events}getState(e){if(e==s.BACKWARDS)return this.startState;if(e==s.FORWARDS)return this.endState;throw new Error("Invalid direction '"+e+"'")}getPaginationToken(e){return this.getState(e).paginationToken}setPaginationToken(e,t){this.getState(t).paginationToken=e}getNeighbouringTimeline(e){if(e==s.BACKWARDS)return this.prevTimeline;if(e==s.FORWARDS)return this.nextTimeline;throw new Error("Invalid direction '"+e+"'")}setNeighbouringTimeline(e,t){if(this.getNeighbouringTimeline(t))throw new Error("timeline already has a neighbouring timeline - cannot reset neighbour (direction: "+t+")");if(t==s.BACKWARDS)this.prevTimeline=e;else{if(t!=s.FORWARDS)throw new Error("Invalid direction '"+t+"'");this.nextTimeline=e}this.setPaginationToken(null,t)}addEvent(e,t){const r=t?this.startState:this.endState,n=this.getTimelineSet();let i;n.room&&(s.setEventMetadata(e,r,t),e.isState()&&n.room.getUnfilteredTimelineSet()===n&&(r.setStateEvents([e]),e.sender&&("m.room.member"!==e.getType()||t)||s.setEventMetadata(e,r,t))),i=t?0:this.events.length,this.events.splice(i,0,e),t&&this.baseIndex++}removeEvent(e){for(let t=this.events.length-1;t>=0;t--){const r=this.events[t];if(r.getId()==e)return this.events.splice(t,1),t{"string"==typeof e[t]&&(e[t]=u(e[t]))})),["membership","avatar_url","displayname"].forEach((t=>{var r;"string"==typeof(null===(r=e.content)||void 0===r?void 0:r[t])&&(e.content[t]=u(e.content[t]))})),["rel_type"].forEach((t=>{var r,n;"string"==typeof(null===(n=null===(r=e.content)||void 0===r?void 0:r["m.relates_to"])||void 0===n?void 0:n[t])&&(e.content["m.relates_to"][t]=u(e.content["m.relates_to"][t]))})),this.txnId=e.txn_id||null,this.localTimestamp=Date.now()-this.getAge()}getId(){return this.event.event_id}getSender(){return this.event.sender||this.event.user_id}getType(){return this.clearEvent.type||this.event.type}getWireType(){return this.event.type}getRoomId(){return this.event.room_id}getTs(){return this.event.origin_server_ts}getDate(){return this.event.origin_server_ts?new Date(this.event.origin_server_ts):null}getOriginalContent(){return this._localRedactionEvent?{}:this.clearEvent.content||this.event.content||{}}getContent(){return this._localRedactionEvent?{}:this._replacingEvent?this._replacingEvent.getContent()["m.new_content"]||{}:this.getOriginalContent()}getWireContent(){return this.event.content||{}}getPrevContent(){return this.getUnsigned().prev_content||this.event.prev_content||{}}getDirectionalContent(){return this.forwardLooking?this.getContent():this.getPrevContent()}getAge(){return this.getUnsigned().age||this.event.age}getLocalAge(){return Date.now()-this.localTimestamp}getStateKey(){return this.event.state_key}isState(){return void 0!==this.event.state_key}makeEncrypted(e,t,r,n){this.clearEvent={type:this.event.type,content:this.event.content},this.event.type=e,this.event.content=t,this.senderCurve25519Key=r,this.claimedEd25519Key=n}isBeingDecrypted(){return null!=this._decryptionPromise}getDecryptionPromise(){return this._decryptionPromise}isDecryptionFailure(){var e,t;return"m.bad.encrypted"===(null===(t=null===(e=this.clearEvent)||void 0===e?void 0:e.content)||void 0===t?void 0:t.msgtype)}shouldAttemptDecryption(){return this.isEncrypted()&&!this.isBeingDecrypted()&&null===this.getClearContent()}attemptDecryption(e,t={}){return n(this,void 0,void 0,(function*(){if("boolean"==typeof t&&(t={isRetry:t}),!this.isEncrypted())throw new Error("Attempt to decrypt event which isn't encrypted");if(this.clearEvent&&this.clearEvent.content&&"m.bad.encrypted"!==this.clearEvent.content.msgtype)throw new Error("Attempt to decrypt event which has already been decrypted");return this._decryptionPromise?(o.logger.log(`Event ${this.getId()} already being decrypted; queueing a retry`),this.retryDecryption=!0,this._decryptionPromise):(this._decryptionPromise=this.decryptionLoop(e,t),this._decryptionPromise)}))}cancelAndResendKeyRequest(e,t){const r=this.getWireContent();return e.requestRoomKey({algorithm:r.algorithm,room_id:this.getRoomId(),session_id:r.session_id,sender_key:r.sender_key},this.getKeyRequestRecipients(t),!0)}getKeyRequestRecipients(e){const t=this.getWireContent(),r=[{userId:e,deviceId:"*"}],n=this.getSender();return n!==e&&r.push({userId:n,deviceId:t.device_id}),r}decryptionLoop(e,t={}){return n(this,void 0,void 0,(function*(){for(yield Promise.resolve();;){let r,n;this.retryDecryption=!1;try{e?(r=yield e.decryptEvent(this),!0===t.isRetry&&o.logger.info(`Decrypted event on retry (id=${this.getId()})`)):r=this.badEncryptedMessage("Encryption not enabled")}catch(e){if("DecryptionError"!==e.name){const r=t.isRetry?"re":"";return o.logger.error(`Error ${r}decrypting event (id=${this.getId()}): ${e.stack||e}`),this._decryptionPromise=null,void(this.retryDecryption=!1)}if(n=e,this.retryDecryption){o.logger.log(`Got error decrypting event (id=${this.getId()}: ${e}), but retrying`);continue}o.logger.warn(`Error decrypting event (id=${this.getId()}): ${e.detailedString}`),r=this.badEncryptedMessage(e.message)}return this._decryptionPromise=null,this.retryDecryption=!1,this.setClearData(r),this.setPushActions(null),void(!1!==t.emit&&this.emit("Event.decrypted",this,n))}}))}badEncryptedMessage(e){return{clearEvent:{type:"m.room.message",content:{msgtype:"m.bad.encrypted",body:"** Unable to decrypt: "+e+" **"}}}}setClearData(e){this.clearEvent=e.clearEvent,this.senderCurve25519Key=e.senderCurve25519Key||null,this.claimedEd25519Key=e.claimedEd25519Key||null,this.forwardingCurve25519KeyChain=e.forwardingCurve25519KeyChain||[],this.untrusted=e.untrusted||!1}getClearContent(){const e=this.clearEvent;return e&&e.content?e.content:null}isEncrypted(){return!this.isState()&&"m.room.encrypted"===this.event.type}getSenderKey(){return this.senderCurve25519Key}getKeysClaimed(){return{ed25519:this.claimedEd25519Key}}getClaimedEd25519Key(){return this.claimedEd25519Key}getForwardingCurve25519KeyChain(){return this.forwardingCurve25519KeyChain}isKeySourceUntrusted(){return this.untrusted}getUnsigned(){return this.event.unsigned||{}}unmarkLocallyRedacted(){const e=this._localRedactionEvent;return this._localRedactionEvent=null,this.event.unsigned&&(this.event.unsigned.redacted_because=null),!!e}markLocallyRedacted(e){this._localRedactionEvent||(this.emit("Event.beforeRedaction",this,e),this._localRedactionEvent=e,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event)}makeRedacted(e){if(!e.event)throw new Error("invalid redactionEvent in makeRedacted");let t;for(t in this._localRedactionEvent=null,this.emit("Event.beforeRedaction",this,e),this._replacingEvent=null,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event,this.event)this.event.hasOwnProperty(t)&&(d.has(t)||delete this.event[t]);const r=h[this.getType()]||{},n=this.getContent();for(t in n)n.hasOwnProperty(t)&&(r[t]||delete n[t])}isRedacted(){return Boolean(this.getUnsigned().redacted_because)}isRedaction(){return"m.room.redaction"===this.getType()}getRedactionEvent(){return this.isRedacted()?this.clearEvent.unsigned?this.clearEvent.unsigned.redacted_because:this.event.unsigned.redacted_because?this.event.unsigned.redacted_because:{}:null}getPushActions(){return this.pushActions}setPushActions(e){this.pushActions=e}handleRemoteEcho(e){const t=this.getUnsigned(),r=this.getId();this.event=e,t.redacted_because&&(this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=t.redacted_because),this.setStatus(null),this.getId()!==r&&this.emit("Event.localEventIdReplaced",this)}isSending(){return!!this.status}setStatus(e){this.status=e,this.emit("Event.status",this,e)}replaceLocalEventId(e){this.event.event_id=e,this.emit("Event.localEventIdReplaced",this)}isRelation(e){const t=this.getWireContent(),r=t&&t["m.relates_to"];return r&&r.rel_type&&r.event_id&&(e&&r.rel_type===e||!e)}getRelation(){return this.isRelation()?this.getWireContent()["m.relates_to"]:null}makeReplaced(e){this.isRedacted()&&e||this._replacingEvent!==e&&(this._replacingEvent=e,this.emit("Event.replaced",this))}getAssociatedStatus(){return this._replacingEvent?this._replacingEvent.status:this._localRedactionEvent?this._localRedactionEvent.status:this.status}getServerAggregatedRelation(e){const t=this.getUnsigned()["m.relations"];if(t)return t[e]}replacingEventId(){const e=this.getServerAggregatedRelation(s.RelationType.Replace);return e?e.event_id:this._replacingEvent?this._replacingEvent.getId():void 0}replacingEvent(){return this._replacingEvent}replacingEventDate(){const e=this.getServerAggregatedRelation(s.RelationType.Replace);if(e){const t=e.origin_server_ts;if(Number.isFinite(t))return new Date(t)}else if(this._replacingEvent)return this._replacingEvent.getDate()}localRedactionEvent(){return this._localRedactionEvent}getAssociatedId(){const e=this.getRelation();return e?e.event_id:this.isRedaction()?this.event.redacts:void 0}hasAssocation(){return!!this.getAssociatedId()}updateAssociatedId(e){const t=this.getRelation();t?t.event_id=e:this.isRedaction()&&(this.event.redacts=e)}flagCancelled(e=!0){this._isCancelled=e}isCancelled(){return this._isCancelled}toSnapshot(){const e=new l(JSON.parse(JSON.stringify(this.event)));for(const[t,r]of Object.entries(this))"event"!==t&&(e[t]=r);return e}isEquivalentTo(e){if(!e)return!1;if(e===this)return!0;const t=a.deepSortedObjectEntries(this.event),r=a.deepSortedObjectEntries(e.event);return JSON.stringify(t)===JSON.stringify(r)}toJSON(){const e={type:this.getType(),sender:this.getSender(),content:this.getContent(),event_id:this.getId(),origin_server_ts:this.getTs(),unsigned:this.getUnsigned(),room_id:this.getRoomId()};return this.isRedaction()&&(e.redacts=this.event.redacts),this.isEncrypted()?{decrypted:e,encrypted:this.event}:e}setVerificationRequest(e){this.verificationRequest=e}setTxnId(e){this.txnId=e}getTxnId(){return this.txnId}}r.MatrixEvent=l;const d=new Set(["event_id","type","room_id","user_id","sender","state_key","prev_state","content","unsigned","origin_server_ts"]),h={"m.room.member":{membership:1},"m.room.create":{creator:1},"m.room.join_rules":{join_rule:1},"m.room.power_levels":{ban:1,events:1,events_default:1,kick:1,redact:1,state_default:1,users:1,users_default:1},"m.room.aliases":{aliases:1}}},{"../@types/event":58,"../logger":106,"../utils":137,events:36}],114:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(r,"__esModule",{value:!0}),r.Group=s;var i=n(e("../utils")),o=e("events");function s(e){this.groupId=e,this.name=null,this.avatarUrl=null,this.myMembership=null,this.inviter=null}i.inherits(s,o.EventEmitter),s.prototype.setProfile=function(e,t){this.name===e&&this.avatarUrl===t||(this.name=e||this.groupId,this.avatarUrl=t,this.emit("Group.profile",this))},s.prototype.setMyMembership=function(e){this.myMembership!==e&&(this.myMembership=e,this.emit("Group.myMembership",this))},s.prototype.setInviter=function(e){this.inviter=e}},{"../utils":137,"@babel/runtime/helpers/interopRequireWildcard":13,events:36}],115:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.Relations=void 0;const i=e("events"),o=e("./event"),s=e("../logger"),a=e("../@types/event");class c extends i.EventEmitter{constructor(e,t,r){super(),this.relationType=e,this.eventType=t,this.room=r,this.relationEventIds=new Set,this.relations=new Set,this.annotationsByKey={},this.annotationsBySender={},this.sortedAnnotationsByKey=[],this.targetEvent=null,this.creationEmitted=!1,this.onEventStatus=(e,t)=>{e.isSending()?t===o.EventStatus.CANCELLED&&(e.removeListener("Event.status",this.onEventStatus),this.removeEvent(e)):e.removeListener("Event.status",this.onEventStatus)},this.onBeforeRedaction=e=>n(this,void 0,void 0,(function*(){if(this.relations.has(e)){if(this.relations.delete(e),this.relationType===a.RelationType.Annotation)this.removeAnnotationFromAggregation(e);else if(this.relationType===a.RelationType.Replace&&this.targetEvent){const e=yield this.getLastReplacement();this.targetEvent.makeReplaced(e)}e.removeListener("Event.beforeRedaction",this.onBeforeRedaction),this.emit("Relations.redaction",e)}}))}addEvent(e){return n(this,void 0,void 0,(function*(){if(this.relationEventIds.has(e.getId()))return;const t=e.getRelation();if(!t)return void s.logger.error("Event must have relation info");const r=t.rel_type,n=e.getType();if(this.relationType===r&&this.eventType===n){if(e.isSending()&&e.on("Event.status",this.onEventStatus),this.relations.add(e),this.relationEventIds.add(e.getId()),this.relationType===a.RelationType.Annotation)this.addAnnotationToAggregation(e);else if(this.relationType===a.RelationType.Replace&&this.targetEvent){const e=yield this.getLastReplacement();this.targetEvent.makeReplaced(e)}e.on("Event.beforeRedaction",this.onBeforeRedaction),this.emit("Relations.add",e),this.maybeEmitCreated()}else s.logger.error("Event relation info doesn't match this container")}))}removeEvent(e){return n(this,void 0,void 0,(function*(){if(!this.relations.has(e))return;const t=e.getRelation();if(!t)return void s.logger.error("Event must have relation info");const r=t.rel_type,n=e.getType();if(this.relationType===r&&this.eventType===n){if(this.relations.delete(e),this.relationType===a.RelationType.Annotation)this.removeAnnotationFromAggregation(e);else if(this.relationType===a.RelationType.Replace&&this.targetEvent){const e=yield this.getLastReplacement();this.targetEvent.makeReplaced(e)}this.emit("Relations.remove",e)}else s.logger.error("Event relation info doesn't match this container")}))}getRelations(){return[...this.relations]}addAnnotationToAggregation(e){const{key:t}=e.getRelation();if(!t)return;let r=this.annotationsByKey[t];r||(r=this.annotationsByKey[t]=new Set,this.sortedAnnotationsByKey.push([t,r])),r.add(e),this.sortedAnnotationsByKey.sort(((e,t)=>{const r=e[1];return t[1].size-r.size}));const n=e.getSender();let i=this.annotationsBySender[n];i||(i=this.annotationsBySender[n]=new Set),i.add(e)}removeAnnotationFromAggregation(e){const{key:t}=e.getRelation();if(!t)return;const r=this.annotationsByKey[t];r&&(r.delete(e),this.sortedAnnotationsByKey.sort(((e,t)=>{const r=e[1];return t[1].size-r.size})));const n=e.getSender(),i=this.annotationsBySender[n];i&&i.delete(e)}getSortedAnnotationsByKey(){return this.relationType!==a.RelationType.Annotation?null:this.sortedAnnotationsByKey}getAnnotationsBySender(){return this.relationType!==a.RelationType.Annotation?null:this.annotationsBySender}getLastReplacement(){return n(this,void 0,void 0,(function*(){if(this.relationType!==a.RelationType.Replace)return null;if(!this.targetEvent)return null;const e=this.targetEvent.getServerAggregatedRelation(a.RelationType.Replace),t=e&&e.origin_server_ts,r=this.getRelations().reduce(((e,r)=>r.getSender()!==this.targetEvent.getSender()||t&&t>r.getTs()||e&&e.getTs()>r.getTs()?e:r),null);return(null==r?void 0:r.shouldAttemptDecryption())?yield r.attemptDecryption(this.room.client.crypto):(null==r?void 0:r.isBeingDecrypted())&&(yield r.getDecryptionPromise()),r}))}setTargetEvent(e){return n(this,void 0,void 0,(function*(){if(!this.targetEvent){if(this.targetEvent=e,this.relationType===a.RelationType.Replace){const e=yield this.getLastReplacement();e&&this.targetEvent.makeReplaced(e)}this.maybeEmitCreated()}}))}maybeEmitCreated(){this.creationEmitted||this.targetEvent&&this.relations.size&&(this.creationEmitted=!0,this.targetEvent.emit("Event.relationsCreated",this.relationType,this.eventType))}}r.Relations=c},{"../@types/event":58,"../logger":106,"./event":113,events:36}],116:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(r,"__esModule",{value:!0}),r.RoomMember=void 0;const s=e("events"),a=e("../content-repo"),c=o(e("../utils"));class u extends s.EventEmitter{constructor(e,t){super(),this.roomId=e,this.userId=t,this._isOutOfBand=!1,this.typing=!1,this.powerLevel=0,this.powerLevelNorm=0,this.user=null,this.membership=null,this.disambiguate=!1,this.events={member:null},this.name=t,this.rawDisplayName=t,this.updateModifiedTime()}markOutOfBand(){this._isOutOfBand=!0}isOutOfBand(){return this._isOutOfBand}setMembershipEvent(e,t){const r=e.getDirectionalContent().displayname;if("m.room.member"!==e.getType())return;this._isOutOfBand=!1,this.events.member=e;const n=this.membership;this.membership=e.getDirectionalContent().membership,this.disambiguate=function(e,t,r){if(!t||t===e)return!1;if(!c.removeHiddenChars(t))return!1;if(!r)return!1;if(l.test(t))return!0;if(d.test(t))return!0;return!!r.getUserIdsWithDisplayName(t).some((t=>t!==e))}(this.userId,r,t);const i=this.name;this.name=function(e,t,r,n){return n?t+" ("+e+")":t&&t!==e&&c.removeHiddenChars(t)?t:e}(this.userId,r,0,this.disambiguate),this.rawDisplayName=e.getDirectionalContent().displayname||this.userId,n!==this.membership&&(this.updateModifiedTime(),this.emit("RoomMember.membership",e,this,n)),i!==this.name&&(this.updateModifiedTime(),this.emit("RoomMember.name",e,this,i))}setPowerLevelEvent(e){if("m.room.power_levels"!==e.getType())return;const t=e.getDirectionalContent();let r=t.users_default||0;const n=t.users||{};Object.values(n).forEach((function(e){r=Math.max(r,e)}));const i=this.powerLevel,o=this.powerLevelNorm;void 0!==n[this.userId]&&Number.isInteger(n[this.userId])?this.powerLevel=n[this.userId]:void 0!==t.users_default?this.powerLevel=t.users_default:this.powerLevel=0,this.powerLevelNorm=0,r>0&&(this.powerLevelNorm=100*this.powerLevel/r),i===this.powerLevel&&o===this.powerLevelNorm||(this.updateModifiedTime(),this.emit("RoomMember.powerLevel",e,this))}setTypingEvent(e){if("m.typing"!==e.getType())return;const t=this.typing;this.typing=!1;const r=e.getContent().user_ids;Array.isArray(r)&&(-1!==r.indexOf(this.userId)&&(this.typing=!0),t!==this.typing&&(this.updateModifiedTime(),this.emit("RoomMember.typing",e,this)))}updateModifiedTime(){this._modified=Date.now()}getLastModifiedTime(){return this._modified}isKicked(){return"leave"===this.membership&&this.events.member.getSender()!==this.events.member.getStateKey()}getDMInviter(){if(this.events.member){const e=this.events.member;let t=e.getContent(),r=e.getSender();if("join"===t.membership&&(t=e.getPrevContent(),r=e.getUnsigned().prev_sender),"invite"===t.membership&&t.is_direct)return r}}getAvatarUrl(e,t,r,n,i=!0,o){const s=this.getMxcAvatarUrl();if(!s&&!i)return null;const c=a.getHttpUriForMxc(e,s,t,r,n,o);return c||null}getMxcAvatarUrl(){return this.events.member?this.events.member.getDirectionalContent().avatar_url:this.user?this.user.avatarUrl:null}}r.RoomMember=u;const l=/@.+:.+/,d=/[\u200E\u200F\u202A-\u202F]/},{"../content-repo":66,"../utils":137,events:36}],117:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(r,"__esModule",{value:!0}),r.RoomState=void 0;const s=e("events"),a=e("./room-member"),c=e("../logger"),u=o(e("../utils")),l=e("../@types/event");var d;!function(e){e[e.NotStarted=0]="NotStarted",e[e.InProgress=1]="InProgress",e[e.Finished=2]="Finished"}(d||(d={}));class h extends s.EventEmitter{constructor(e,t={status:d.NotStarted}){super(),this.roomId=e,this.oobMemberFlags=t,this.sentinels={},this.displayNameToUserIds={},this.userIdsToDisplayNames={},this.tokenToInvite={},this.joinedMemberCount=null,this.summaryJoinedMemberCount=null,this.invitedMemberCount=null,this.summaryInvitedMemberCount=null,this.members={},this.events=new Map,this.paginationToken=null,this.updateModifiedTime()}getJoinedMemberCount(){return null!==this.summaryJoinedMemberCount?this.summaryJoinedMemberCount:(null===this.joinedMemberCount&&(this.joinedMemberCount=this.getMembers().reduce(((e,t)=>"join"===t.membership?e+1:e),0)),this.joinedMemberCount)}setJoinedMemberCount(e){this.summaryJoinedMemberCount=e}getInvitedMemberCount(){return null!==this.summaryInvitedMemberCount?this.summaryInvitedMemberCount:(null===this.invitedMemberCount&&(this.invitedMemberCount=this.getMembers().reduce(((e,t)=>"invite"===t.membership?e+1:e),0)),this.invitedMemberCount)}setInvitedMemberCount(e){this.summaryInvitedMemberCount=e}getMembers(){return Object.values(this.members)}getMembersExcept(e){return this.getMembers().filter((t=>!e.includes(t.userId)))}getMember(e){return this.members[e]||null}getSentinelMember(e){if(!e)return null;let t=this.sentinels[e];if(void 0===t){t=new a.RoomMember(this.roomId,e);const r=this.members[e];r&&t.setMembershipEvent(r.events.member,this),this.sentinels[e]=t}return t}getStateEvents(e,t){if(!this.events.has(e))return void 0===t?[]:null;if(void 0===t)return Array.from(this.events.get(e).values());const r=this.events.get(e).get(t);return r||null}clone(){const e=new h(this.roomId,this.oobMemberFlags),t=this.oobMemberFlags.status;return this.oobMemberFlags.status=d.NotStarted,Array.from(this.events.values()).forEach((t=>{e.setStateEvents(Array.from(t.values()))})),this.oobMemberFlags.status=t,null!==this.summaryInvitedMemberCount&&e.setInvitedMemberCount(this.getInvitedMemberCount()),null!==this.summaryJoinedMemberCount&&e.setJoinedMemberCount(this.getJoinedMemberCount()),this.oobMemberFlags.status==d.Finished&&this.getMembers().forEach((t=>{if(t.isOutOfBand()){e.getMember(t.userId).markOutOfBand()}})),e}setUnknownStateEvents(e){const t=e.filter((e=>!this.events.has(e.getType())||!this.events.get(e.getType()).has(e.getStateKey())));this.setStateEvents(t)}setStateEvents(e){this.updateModifiedTime(),e.forEach((e=>{if(e.getRoomId()!==this.roomId)return;if(!e.isState())return;const t=this.getStateEventMatching(e);this.setStateEvent(e),e.getType()===l.EventType.RoomMember&&(this.updateDisplayNameCache(e.getStateKey(),e.getContent().displayname),this.updateThirdPartyTokenCache(e)),this.emit("RoomState.events",e,this,t)})),e.forEach((e=>{if(e.getRoomId()===this.roomId&&e.isState())if(e.getType()===l.EventType.RoomMember){const t=e.getStateKey();"leave"!==e.getContent().membership&&"ban"!==e.getContent().membership||(e.getContent().avatar_url=e.getContent().avatar_url||e.getPrevContent().avatar_url,e.getContent().displayname=e.getContent().displayname||e.getPrevContent().displayname);const r=this.getOrCreateMember(t,e);r.setMembershipEvent(e,this),this.updateMember(r),this.emit("RoomState.members",e,this,r)}else if(e.getType()===l.EventType.RoomPowerLevels){if(""!==e.getStateKey())return;Object.values(this.members).forEach((t=>{const r=t.getLastModifiedTime();t.setPowerLevelEvent(e),r!==t.getLastModifiedTime()&&this.emit("RoomState.members",e,this,t)})),this.sentinels={}}}))}getOrCreateMember(e,t){let r=this.members[e];return r||(r=new a.RoomMember(this.roomId,e),this.members[e]=r,this.emit("RoomState.newMember",t,this,r)),r}setStateEvent(e){this.events.has(e.getType())||this.events.set(e.getType(),new Map),this.events.get(e.getType()).set(e.getStateKey(),e)}getStateEventMatching(e){return this.events.has(e.getType())?this.events.get(e.getType()).get(e.getStateKey()):null}updateMember(e){const t=this.getStateEvents(l.EventType.RoomPowerLevels,"");t&&e.setPowerLevelEvent(t),delete this.sentinels[e.userId],this.members[e.userId]=e,this.joinedMemberCount=null,this.invitedMemberCount=null}needsOutOfBandMembers(){return this.oobMemberFlags.status===d.NotStarted}markOutOfBandMembersStarted(){this.oobMemberFlags.status===d.NotStarted&&(this.oobMemberFlags.status=d.InProgress)}markOutOfBandMembersFailed(){this.oobMemberFlags.status===d.InProgress&&(this.oobMemberFlags.status=d.NotStarted)}clearOutOfBandMembers(){let e=0;Object.keys(this.members).forEach((t=>{this.members[t].isOutOfBand()&&(++e,delete this.members[t])})),c.logger.log(`LL: RoomState removed ${e} members...`),this.oobMemberFlags.status=d.NotStarted}setOutOfBandMembers(e){c.logger.log(`LL: RoomState about to set ${e.length} OOB members ...`),this.oobMemberFlags.status===d.InProgress&&(c.logger.log("LL: RoomState put in finished state ..."),this.oobMemberFlags.status=d.Finished,e.forEach((e=>this.setOutOfBandMember(e))))}setOutOfBandMember(e){if(e.getType()!==l.EventType.RoomMember)return;const t=e.getStateKey(),r=this.getMember(t);if(r&&!r.isOutOfBand())return;const n=this.getOrCreateMember(t,e);n.setMembershipEvent(e,this),n.markOutOfBand(),this.updateDisplayNameCache(n.userId,n.name),this.setStateEvent(e),this.updateMember(n),this.emit("RoomState.members",e,this,n)}setTypingEvent(e){Object.values(this.members).forEach((function(t){t.setTypingEvent(e)}))}getInviteForThreePidToken(e){return this.tokenToInvite[e]||null}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}getUserIdsWithDisplayName(e){return this.displayNameToUserIds[u.removeHiddenChars(e)]||[]}maySendRedactionForEvent(e,t){const r=this.getMember(t);if(!r||"leave"===r.membership)return!1;if(e.status||e.isRedacted())return!1;const n=this.maySendEvent(l.EventType.RoomRedaction,t);return e.getSender()===t?n:this.hasSufficientPowerLevelFor("redact",r.powerLevel)}hasSufficientPowerLevelFor(e,t){const r=this.getStateEvents(l.EventType.RoomPowerLevels,"");let n={};r&&(n=r.getContent());let i=50;return u.isNumber(n[e])&&(i=n[e]),t>=i}maySendMessage(e){return this.maySendEventOfType(l.EventType.RoomMessage,e,!1)}maySendEvent(e,t){return this.maySendEventOfType(e,t,!1)}mayClientSendStateEvent(e,t){return!t.isGuest()&&this.maySendStateEvent(e,t.credentials.userId)}maySendStateEvent(e,t){return this.maySendEventOfType(e,t,!0)}maySendEventOfType(e,t,r){const n=this.getStateEvents(l.EventType.RoomPowerLevels,"");let i,o={},s=0,a=0,c=0;if(n){i=n.getContent(),o=i.events||{},s=Number.isSafeInteger(i.state_default)?i.state_default:50;const e=i.users&&i.users[t];Number.isSafeInteger(e)?c=e:Number.isSafeInteger(i.users_default)&&(c=i.users_default),Number.isSafeInteger(i.events_default)&&(a=i.events_default)}let u=r?s:a;return Number.isSafeInteger(o[e])&&(u=o[e]),c>=u}mayTriggerNotifOfType(e,t){const r=this.getMember(t);if(!r)return!1;const n=this.getStateEvents(l.EventType.RoomPowerLevels,"");let i=50;return n&&n.getContent()&&n.getContent().notifications&&u.isNumber(n.getContent().notifications[e])&&(i=n.getContent().notifications[e]),r.powerLevel>=i}getJoinRule(){const e=this.getStateEvents(l.EventType.RoomJoinRules,"");return(e?e.getContent():{}).join_rule||"invite"}updateThirdPartyTokenCache(e){if(!e.getContent().third_party_invite)return;const t=(e.getContent().third_party_invite.signed||{}).token;if(!t)return;this.getStateEvents(l.EventType.RoomThirdPartyInvite,t)&&(this.tokenToInvite[t]=e)}updateDisplayNameCache(e,t){const r=this.userIdsToDisplayNames[e];if(delete this.userIdsToDisplayNames[e],r){const t=u.removeHiddenChars(r),n=this.displayNameToUserIds[t];if(n){const r=n.filter((t=>t!==e));this.displayNameToUserIds[t]=r}}this.userIdsToDisplayNames[e]=t;const n=t&&u.removeHiddenChars(t);n&&(this.displayNameToUserIds[n]||(this.displayNameToUserIds[n]=[]),this.displayNameToUserIds[n].push(e))}}r.RoomState=h},{"../@types/event":58,"../logger":106,"../utils":137,"./room-member":116,events:36}],118:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.RoomSummary=void 0;r.RoomSummary=class{constructor(e,t){this.roomId=e}}},{}],119:[function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.Room=r.NotificationCountType=void 0;const a=e("events"),c=e("./event-timeline-set"),u=e("./event-timeline"),l=e("../content-repo"),d=o(e("../utils")),h=e("../utils"),f=e("./event"),g=e("./room-member"),p=e("./room-summary"),v=e("../logger"),y=e("../ReEmitter"),m=e("../@types/event"),b=e("../client"),S=["1","2","3","4","5","6"];function _(e,t,r){const n={content:{},type:"m.receipt",room_id:t.getRoomId()};return n.content[t.getId()]={},n.content[t.getId()][r]={},n.content[t.getId()][r][e]={ts:t.getTs()},new f.MatrixEvent(n)}var E;!function(e){e.Highlight="highlight",e.Total="total"}(E=r.NotificationCountType||(r.NotificationCountType={}));class k extends a.EventEmitter{constructor(e,t,r,n={}){if(super(),this.roomId=e,this.client=t,this.myUserId=r,this.opts=n,this.txnToEvent={},this.receipts={},this.receiptCacheByEventId={},this.realReceipts={},this.notificationCounts={},this.filteredTimelineSets={},this.blacklistUnverifiedDevices=null,this.selfMembership=null,this.summaryHeroes=null,this.getTypeWarning=!1,this.getVersionWarning=!1,this.tags={},this.accountData={},this.summary=null,this.setMaxListeners(100),this.reEmitter=new y.ReEmitter(this),n.pendingEventOrdering=n.pendingEventOrdering||"chronological",-1===["chronological","detached"].indexOf(n.pendingEventOrdering))throw new Error("opts.pendingEventOrdering MUST be either 'chronological' or 'detached'. Got: '"+n.pendingEventOrdering+"'");if(this.name=e,this.timelineSets=[new c.EventTimelineSet(this,n)],this.reEmitter.reEmit(this.getUnfilteredTimelineSet(),["Room.timeline","Room.timelineReset"]),this.fixUpLegacyTimelineFields(),"detached"==this.opts.pendingEventOrdering){this.pendingEventList=[];const e=t.sessionStore.store.getItem(w(this.roomId));e&&JSON.parse(e).forEach((e=>s(this,void 0,void 0,(function*(){const t=new f.MatrixEvent(e);t.getType()===m.EventType.RoomMessageEncrypted&&(yield t.attemptDecryption(this.client.crypto)),t.setStatus(f.EventStatus.NOT_SENT),this.addPendingEvent(t,t.getTxnId())}))))}this.opts.lazyLoadMembers?this.membersPromise=null:this.membersPromise=Promise.resolve(!1)}decryptCriticalEvents(){const e=this.getEventReadUpTo(this.client.getUserId(),!0),t=this.getLiveTimeline().getEvents(),r=t.findIndex((t=>t.event.event_id===e)),n=t.slice(r).filter((e=>e.shouldAttemptDecryption())).reverse().map((e=>e.attemptDecryption(this.client.crypto,{isRetry:!0})));return Promise.allSettled(n)}decryptAllEvents(){const e=this.getUnfilteredTimelineSet().getLiveTimeline().getEvents().filter((e=>e.shouldAttemptDecryption())).reverse().map((e=>e.attemptDecryption(this.client.crypto,{isRetry:!0})));return Promise.allSettled(e)}getVersion(){const e=this.currentState.getStateEvents(m.EventType.RoomCreate,"");if(!e)return this.getVersionWarning||(v.logger.warn("[getVersion] Room "+this.roomId+" does not have an m.room.create event"),this.getVersionWarning=!0),"1";const t=e.getContent().room_version;return void 0===t?"1":t}shouldUpgradeToVersion(){return S.includes(this.getVersion())?null:"6"}getRecommendedVersion(){return s(this,void 0,void 0,(function*(){let e=(yield this.client.getCapabilities())["m.room_versions"];if(!e){e={default:"6",available:{}};for(const t of S)e.available[t]=b.RoomVersionStability.Stable}let t=this.checkVersionAgainstCapability(e);if(t.urgent&&t.needsUpgrade){v.logger.warn("Refreshing room version capability because the server looks to be supporting a newer room version we don't know about.");if(e=(yield this.client.getCapabilities(!0))["m.room_versions"],!e)return v.logger.warn("No room version capability - assuming upgrade required."),t;t=this.checkVersionAgainstCapability(e)}return t}))}checkVersionAgainstCapability(e){const t=this.getVersion();v.logger.log(`[${this.roomId}] Current version: ${t}`),v.logger.log(`[${this.roomId}] Version capability: `,e);const r={version:t,needsUpgrade:!1,urgent:!1};if(t===e.default)return r;return Object.keys(e.available).filter((t=>"stable"===e.available[t])).includes(t)||(r.version=e.default,r.needsUpgrade=!0,r.urgent=!!this.getVersion().match(/^[0-9]+[0-9.]*$/g),r.urgent?v.logger.warn(`URGENT upgrade required on ${this.roomId}`):v.logger.warn(`Non-urgent upgrade required on ${this.roomId}`)),r}userMayUpgradeRoom(e){return this.currentState.maySendStateEvent(m.EventType.RoomTombstone,e)}getPendingEvents(){if("detached"!==this.opts.pendingEventOrdering)throw new Error("Cannot call getPendingEvents with pendingEventOrdering == "+this.opts.pendingEventOrdering);return this.pendingEventList}removePendingEvent(e){if("detached"!==this.opts.pendingEventOrdering)throw new Error("Cannot call removePendingEvent with pendingEventOrdering == "+this.opts.pendingEventOrdering);const t=d.removeElement(this.pendingEventList,(function(t){return t.getId()==e}),!1);return this.savePendingEvents(),t}hasPendingEvent(e){return"detached"===this.opts.pendingEventOrdering&&this.pendingEventList.some((t=>t.getId()===e))}getPendingEvent(e){return"detached"!==this.opts.pendingEventOrdering?null:this.pendingEventList.find((t=>t.getId()===e))}getLiveTimeline(){return this.getUnfilteredTimelineSet().getLiveTimeline()}getLastActiveTimestamp(){const e=this.getLiveTimeline().getEvents();if(e.length){return e[e.length-1].getTs()}return Number.MIN_SAFE_INTEGER}getMyMembership(){return this.selfMembership}getDMInviter(){if(this.myUserId){const e=this.getMember(this.myUserId);if(e)return e.getDMInviter()}if("invite"===this.selfMembership){if(2==this.getInvitedAndJoinedMemberCount()&&this.summaryHeroes.length)return this.summaryHeroes[0]}}guessDMUserId(){const e=this.getMember(this.myUserId);if(e){const t=e.getDMInviter();if(t)return t}if(Array.isArray(this.summaryHeroes)&&this.summaryHeroes.length)return this.summaryHeroes[0];const t=this.currentState.getMembers().find((e=>e.userId!==this.myUserId));return t?t.userId:this.myUserId}getAvatarFallbackMember(){if(this.getInvitedAndJoinedMemberCount()>2)return;const e=Array.isArray(this.summaryHeroes)&&this.summaryHeroes.length;if(e){const e=this.summaryHeroes.map((e=>this.getMember(e))).find((e=>!!e));if(e)return e}const t=this.currentState.getMembers();if(t.length<=2){const e=t.find((e=>e.userId!==this.myUserId));if(e)return e}if(e){const e=this.summaryHeroes.map((e=>this.client.getUser(e))).find((e=>!!e));if(e){const t=new g.RoomMember(this.roomId,e.userId);return t.user=e,t}}}updateMyMembership(e){const t=this.selfMembership;this.selfMembership=e,t!==e&&("leave"===e&&this.cleanupAfterLeaving(),this.emit("Room.myMembership",this,e,t))}loadMembersFromServer(){return s(this,void 0,void 0,(function*(){const e=this.client.store.getSyncToken(),t=d.encodeParams({not_membership:"leave",at:e}),r=d.encodeUri("/rooms/$roomId/members?"+t,{$roomId:this.roomId}),n=this.client.http;return(yield n.authedRequest(void 0,"GET",r)).chunk}))}loadMembers(){return s(this,void 0,void 0,(function*(){let e=!1,t=yield this.client.store.getOutOfBandMembers(this.roomId);null===t&&(e=!0,t=yield this.loadMembersFromServer(),v.logger.log(`LL: got ${t.length} members from server for room ${this.roomId}`));return{memberEvents:t.map(this.client.getEventMapper()),fromServer:e}}))}loadMembersIfNeeded(){if(this.membersPromise)return this.membersPromise;this.currentState.markOutOfBandMembersStarted();const e=this.loadMembers().then((e=>(this.currentState.setOutOfBandMembers(e.memberEvents),this.client.isCryptoEnabled()&&this.client.isRoomEncrypted(this.roomId)&&this.client.crypto.trackRoomDevices(this.roomId),e.fromServer))).catch((e=>{throw this.membersPromise=null,this.currentState.markOutOfBandMembersFailed(),e}));return e.then((e=>{if(e){const e=this.currentState.getMembers().filter((e=>e.isOutOfBand())).map((e=>e.events.member.event));v.logger.log(`LL: telling store to write ${e.length} members for room ${this.roomId}`);return this.client.store.setOutOfBandMembers(this.roomId,e).catch((e=>{v.logger.log("LL: storing OOB room members failed, oh well",e)}))}})).catch((e=>{v.logger.error(e)})),this.membersPromise=e,this.membersPromise}clearLoadedMembersIfNeeded(){return s(this,void 0,void 0,(function*(){this.opts.lazyLoadMembers&&this.membersPromise&&(yield this.loadMembersIfNeeded(),yield this.client.store.clearOutOfBandMembers(this.roomId),this.currentState.clearOutOfBandMembers(),this.membersPromise=null)}))}cleanupAfterLeaving(){this.clearLoadedMembersIfNeeded().catch((e=>{v.logger.error(`error after clearing loaded members from room ${this.roomId} after leaving`),v.logger.log(e)}))}resetLiveTimeline(e,t){for(let r=0;re.isUnverified())))return!0}return!1}))}getTimelineSets(){return this.timelineSets}getUnfilteredTimelineSet(){return this.timelineSets[0]}getTimelineForEvent(e){return this.getUnfilteredTimelineSet().getTimelineForEvent(e)}addTimeline(){return this.getUnfilteredTimelineSet().addTimeline()}findEventById(e){return this.getUnfilteredTimelineSet().findEventById(e)}getUnreadNotificationCount(e=E.Total){return this.notificationCounts[e]}setUnreadNotificationCount(e,t){this.notificationCounts[e]=t}setSummary(e){const t=e["m.heroes"],r=e["m.joined_member_count"],n=e["m.invited_member_count"];Number.isInteger(r)&&this.currentState.setJoinedMemberCount(r),Number.isInteger(n)&&this.currentState.setInvitedMemberCount(n),Array.isArray(t)&&(this.summaryHeroes=t.filter((e=>e!==this.myUserId)))}setBlacklistUnverifiedDevices(e){this.blacklistUnverifiedDevices=e}getBlacklistUnverifiedDevices(){return this.blacklistUnverifiedDevices}getAvatarUrl(e,t,r,n,i=!0){const o=this.currentState.getStateEvents(m.EventType.RoomAvatar,"");if(!o&&!i)return null;const s=o?o.getContent().url:null;return s?l.getHttpUriForMxc(e,s,t,r,n):null}getMxcAvatarUrl(){var e,t;return(null===(t=null===(e=this.currentState.getStateEvents(m.EventType.RoomAvatar,""))||void 0===e?void 0:e.getContent())||void 0===t?void 0:t.url)||null}getAliases(){const e=[],t=this.currentState.getStateEvents(m.EventType.RoomAliases);if(t)for(let r=0;r"string"==typeof e&&("#"===e[0]&&!!e.endsWith(`:${n.getStateKey()}`))));Array.prototype.push.apply(e,t)}}return e}getCanonicalAlias(){const e=this.currentState.getStateEvents(m.EventType.RoomCanonicalAlias,"");return e&&e.getContent().alias||null}getAltAliases(){const e=this.currentState.getStateEvents(m.EventType.RoomCanonicalAlias,"");return e&&e.getContent().alt_aliases||[]}addEventsToTimeline(e,t,r,n){r.getTimelineSet().addEventsToTimeline(e,t,r,n)}getMember(e){return this.currentState.getMember(e)}getMembers(){return this.currentState.getMembers()}getJoinedMembers(){return this.getMembersWithMembership("join")}getJoinedMemberCount(){return this.currentState.getJoinedMemberCount()}getInvitedMemberCount(){return this.currentState.getInvitedMemberCount()}getInvitedAndJoinedMemberCount(){return this.getInvitedMemberCount()+this.getJoinedMemberCount()}getMembersWithMembership(e){return this.currentState.getMembers().filter((function(t){return t.membership===e}))}getEncryptionTargetMembers(){return s(this,void 0,void 0,(function*(){yield this.loadMembersIfNeeded();let e=this.getMembersWithMembership("join");return this.shouldEncryptForInvitedMembers()&&(e=e.concat(this.getMembersWithMembership("invite"))),e}))}shouldEncryptForInvitedMembers(){var e;const t=this.currentState.getStateEvents(m.EventType.RoomHistoryVisibility,"");return"joined"!==(null===(e=null==t?void 0:t.getContent())||void 0===e?void 0:e.history_visibility)}getDefaultRoomName(e){return this.calculateRoomName(e,!0)}hasMembershipState(e,t){const r=this.getMember(e);return!!r&&r.membership===t}getOrCreateFilteredTimelineSet(e){if(this.filteredTimelineSets[e.filterId])return this.filteredTimelineSets[e.filterId];const t=Object.assign({filter:e},this.opts),r=new c.EventTimelineSet(this,t);this.reEmitter.reEmit(r,["Room.timeline","Room.timelineReset"]),this.filteredTimelineSets[e.filterId]=r,this.timelineSets.push(r);const n=this.getLiveTimeline();n.getEvents().forEach((function(e){r.addLiveEvent(e)}));let i=n;for(;i.getNeighbouringTimeline(u.EventTimeline.BACKWARDS);)i=i.getNeighbouringTimeline(u.EventTimeline.BACKWARDS);return r.getLiveTimeline().setPaginationToken(i.getPaginationToken(u.EventTimeline.BACKWARDS),u.EventTimeline.BACKWARDS),r}removeFilteredTimelineSet(e){const t=this.filteredTimelineSets[e.filterId];delete this.filteredTimelineSets[e.filterId];const r=this.timelineSets.indexOf(t);r>-1&&this.timelineSets.splice(r,1)}addLiveEvent(e,t,r=!1){if(e.isRedaction()){const t=e.event.redacts,r=this.getUnfilteredTimelineSet().findEventById(t);if(r){if(r.makeRedacted(e),r.getStateKey()){this.currentState.getStateEvents(r.getType(),r.getStateKey()).getId()===r.getId()&&this.currentState.setStateEvents([r])}this.emit("Room.redaction",e,this)}}if(e.getUnsigned().transaction_id){const t=this.txnToEvent[e.getUnsigned().transaction_id];if(t)return void this.handleRemoteEcho(e,t)}for(let n=0;ne.status===f.EventStatus.NOT_SENT))&&(v.logger.warn("Setting event as NOT_SENT due to messages in the same state"),e.setStatus(f.EventStatus.NOT_SENT)),this.pendingEventList.push(e),this.savePendingEvents(),e.isRelation()&&this.aggregateNonLiveRelation(e),e.isRedaction()){const t=e.event.redacts;let r=this.pendingEventList&&this.pendingEventList.find((e=>e.getId()===t));r||(r=this.getUnfilteredTimelineSet().findEventById(t)),r&&(r.markLocallyRedacted(e),this.emit("Room.redaction",e,this))}}else for(let t=0;tObject.assign(Object.assign({},e.event),{txn_id:e.getTxnId()}))).filter((e=>{const t=e.type===m.EventType.RoomMessageEncrypted,r=this.client.isRoomEncrypted(this.roomId);return t||!r})),{store:t}=this.client.sessionStore;this.pendingEventList.length>0?t.setItem(w(this.roomId),JSON.stringify(e)):t.removeItem(w(this.roomId))}}aggregateNonLiveRelation(e){for(let t=0;t ${n} old status ${i}`),delete this.txnToEvent[e.getUnsigned().transaction_id],this.pendingEventList&&this.removePendingEvent(r),t.handleRemoteEcho(e.event);for(let e=0;e ${r}`),t==f.EventStatus.SENT&&!r)throw new Error("updatePendingEvent called with status=SENT, but no new event id");if(t==f.EventStatus.SENT){if(this.getUnfilteredTimelineSet().eventIdToTimeline(r))return}const n=e.status,i=e.getId();if(!n)throw new Error("updatePendingEventStatus called on an event which is not a local echo.");const o=I[n];if(!o||o.indexOf(t)<0)throw new Error("Invalid EventStatus transition "+n+"->"+t);if(e.setStatus(t),t==f.EventStatus.SENT){e.replaceLocalEventId(r);for(let e=0;ee.getId()===i));if(-1!==e){const[t]=this.pendingEventList.splice(e,1);t.isRedaction()&&this.revertRedactionLocalEcho(t)}}this.removeEvent(i)}this.savePendingEvents(),this.emit("Room.localEchoUpdated",e,this,i,n)}revertRedactionLocalEcho(e){const t=e.event.redacts;if(!t)return;const r=this.getUnfilteredTimelineSet().findEventById(t);r&&(r.unmarkLocallyRedacted(),this.emit("Room.redactionCancelled",e,this),r.isRelation()&&this.aggregateNonLiveRelation(r))}addLiveEvents(e,t,r=!1){let n;if(t&&-1===["replace","ignore"].indexOf(t))throw new Error("duplicateStrategy MUST be either 'replace' or 'ignore'");for(n=0;n{this.currentState.getStateEvents(e.type,e.state_key)||this.currentState.setStateEvents([new f.MatrixEvent({type:e.type,state_key:e.state_key,content:e.content,event_id:"$fake"+Date.now(),room_id:this.roomId,user_id:this.myUserId})])}))}const t=this.name;this.name=this.calculateRoomName(this.myUserId),this.normalizedName=h.normalize(this.name),this.summary=new p.RoomSummary(this.roomId,{title:this.name}),t!==this.name&&this.emit("Room.name",this)}getUsersReadUpTo(e){return this.getReceiptsForEvent(e).filter((function(e){return"m.read"===e.type})).map((function(e){return e.userId}))}getEventReadUpTo(e,t=!1){let r=this.receipts;return t&&(r=this.realReceipts),void 0===r["m.read"]||void 0===r["m.read"][e]?null:r["m.read"][e].eventId}hasUserReadEvent(e,t){const r=this.getEventReadUpTo(e,!1);if(r===t)return!0;if(this.timeline.length&&this.timeline[this.timeline.length-1].getSender()&&this.timeline[this.timeline.length-1].getSender()===e)return!0;for(let e=this.timeline.length-1;e>=0;--e){const n=this.timeline[e];if(n.getId()===t)return!1;if(n.getId()===r)return!0}return!1}getReceiptsForEvent(e){return this.receiptCacheByEventId[e.getId()]||[]}addReceipt(e,t=!1){t||this.addReceiptsToStructure(e,this.realReceipts),this.addReceiptsToStructure(e,this.receipts),this.receiptCacheByEventId=this.buildReceiptCache(this.receipts),this.emit("Room.receipt",e,this)}addReceiptsToStructure(e,t){const r=e.getContent();Object.keys(r).forEach((e=>{Object.keys(r[e]).forEach((n=>{Object.keys(r[e][n]).forEach((i=>{const o=r[e][n][i];t[n]||(t[n]={});const s=t[n][i];if(s){const t=this.getUnfilteredTimelineSet().compareEventOrdering(s.eventId,e);if(null!==t&&t>=0)return}else t[n][i]={};t[n][i]={eventId:e,data:o}}))}))}))}buildReceiptCache(e){const t={};return Object.keys(e).forEach((function(r){Object.keys(e[r]).forEach((function(n){const i=e[r][n];t[i.eventId]||(t[i.eventId]=[]),t[i.eventId].push({userId:n,type:r,data:i.data})}))})),t}addLocalEchoReceipt(e,t,r){this.addReceipt(_(e,t,r),!0)}addTags(e){this.tags=e.getContent().tags||{},this.emit("Room.tags",e,this)}addAccountData(e){for(let t=0;ti.powerLevel&&(t=!1),t}getJoinRule(){return this.currentState.getJoinRule()}getType(){const e=this.currentState.getStateEvents(m.EventType.RoomCreate,"");if(e)return e.getContent()[m.RoomCreateTypeField];this.getTypeWarning||(v.logger.warn("[getType] Room "+this.roomId+" does not have an m.room.create event"),this.getTypeWarning=!0)}isSpaceRoom(){return this.getType()===m.RoomType.Space}calculateRoomName(e,t=!1){if(!t){const e=this.currentState.getStateEvents(m.EventType.RoomName,"");if(e&&e.getContent()&&e.getContent().name)return e.getContent().name}let r=this.getCanonicalAlias();if(!r){const e=this.getAltAliases();e.length&&(r=e[0])}if(r)return r;const n=this.currentState.getJoinedMemberCount()+this.currentState.getInvitedMemberCount()-1;let i=null;if(this.summaryHeroes)i=this.summaryHeroes.map((e=>{const t=this.getMember(e);return t?t.name:e}));else{let t=this.currentState.getMembers().filter((t=>t.userId!==e&&("invite"===t.membership||"join"===t.membership)));t.sort(((e,t)=>e.userId.localeCompare(t.userId))),t=t.slice(0,5),i=t.map((e=>e.name))}if(n)return T(i,n);if("join"==this.getMyMembership()){const e=this.currentState.getStateEvents(m.EventType.RoomThirdPartyInvite);if(e&&e.length){return`Inviting ${T(e.map((e=>e.getContent().display_name)))}`}}let o=i;return o.length||(o=this.currentState.getMembers().filter((t=>t.userId!==e&&"invite"!==t.membership&&"join"!==t.membership)).map((e=>e.name))),o.length?`Empty room (was ${T(o)})`:"Empty room"}}function w(e){return`mx_pending_events_${e}`}r.Room=k;const I={};function T(e,t=e.length+1){const r=t-1;if(e.length){if(1===e.length&&r<=1)return e[0];if(2===e.length&&r<=2)return`${e[0]} and ${e[1]}`;return r>1?`${e[0]} and ${r} others`:`${e[0]} and 1 other`}return"Empty room"}I[f.EventStatus.ENCRYPTING]=[f.EventStatus.SENDING,f.EventStatus.NOT_SENT],I[f.EventStatus.SENDING]=[f.EventStatus.ENCRYPTING,f.EventStatus.QUEUED,f.EventStatus.NOT_SENT,f.EventStatus.SENT],I[f.EventStatus.QUEUED]=[f.EventStatus.SENDING,f.EventStatus.CANCELLED],I[f.EventStatus.SENT]=[],I[f.EventStatus.NOT_SENT]=[f.EventStatus.SENDING,f.EventStatus.QUEUED,f.EventStatus.CANCELLED],I[f.EventStatus.CANCELLED]=[]},{"../@types/event":58,"../ReEmitter":61,"../client":64,"../content-repo":66,"../logger":106,"../utils":137,"./event":113,"./event-timeline":112,"./event-timeline-set":111,"./room-member":116,"./room-summary":118,events:36}],120:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SearchResult=i;var n=e("./event-context");function i(e,t){this.rank=e,this.context=t}i.fromJson=function(e,t){var r=e.context||{},o=r.events_before||[],s=r.events_after||[],a=new n.EventContext(t(e.result));return a.setPaginateToken(r.start,!0),a.addEvents(o.map(t),!0),a.addEvents(s.map(t),!1),a.setPaginateToken(r.end,!1),new i(e.rank,a)}},{"./event-context":110}],121:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.User=void 0;const n=e("events");class i extends n.EventEmitter{constructor(e){super(),this.userId=e,this.presenceStatusMsg=null,this.presence="offline",this.lastActiveAgo=0,this.lastPresenceTs=0,this.currentlyActive=!1,this.events={presence:null,profile:null},this.unstable_statusMessage="",this.displayName=e,this.rawDisplayName=e,this.avatarUrl=null,this.updateModifiedTime()}setPresenceEvent(e){if("m.presence"!==e.getType())return;const t=null===this.events.presence;this.events.presence=e;const r=[];(e.getContent().presence!==this.presence||t)&&r.push("User.presence"),e.getContent().avatar_url&&e.getContent().avatar_url!==this.avatarUrl&&r.push("User.avatarUrl"),e.getContent().displayname&&e.getContent().displayname!==this.displayName&&r.push("User.displayName"),void 0!==e.getContent().currently_active&&e.getContent().currently_active!==this.currentlyActive&&r.push("User.currentlyActive"),this.presence=e.getContent().presence,r.push("User.lastPresenceTs"),e.getContent().status_msg&&(this.presenceStatusMsg=e.getContent().status_msg),e.getContent().displayname&&(this.displayName=e.getContent().displayname),e.getContent().avatar_url&&(this.avatarUrl=e.getContent().avatar_url),this.lastActiveAgo=e.getContent().last_active_ago,this.lastPresenceTs=Date.now(),this.currentlyActive=e.getContent().currently_active,this.updateModifiedTime();for(let t=0;t=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r]*)([0-9]*)$/);if(!o)return!1;var s=o[1],a=parseInt(o[2]);if(isNaN(a))return!1;switch(s){case"":case"==":return i==a;case"<":return i":return i>a;case"<=":return i<=a;case">=":return i>=a;default:return!1}},l=function(t,r){var n=r.getContent();if(r.isEncrypted()&&r.getClearContent()&&(n=r.getClearContent()),!n||!n.body||"string"!=typeof n.body)return!1;var i=e.getRoom(r.getRoomId());if(!(i&&i.currentState&&i.currentState.members&&i.currentState.getMember(e.credentials.userId)))return!1;var s=i.currentState.getMember(e.credentials.userId).name,a=new RegExp("(^|\\W)"+(0,o.escapeRegExp)(s)+"(\\W|$)","i");return n.body.search(a)>-1},h=function(e,t){if(!e.key)return!1;var r,n=g(e.key,t);return"string"==typeof n&&(e.value?e.value===n:"string"==typeof e.pattern&&(r="content.body"==e.key?f("(^|\\W)",e.pattern,"(\\W|$)"):f("^",e.pattern,"$"),!!n.match(r)))},f=function(e,t,n){return r[t]||(r[t]=new RegExp(e+(0,o.globToRegexp)(t)+n,"i")),r[t]},g=function(e,t){var r,n=e.split("."),i=n[0];for("content"===i?(r=t.getContent(),n.shift()):"type"===i?(r=t.getType(),n.shift()):r=t.event;n.length>0;){var s=n.shift();if((0,o.isNullOrUndefined)(r[s]))return null;r=r[s]}return r},p=function(r,i){return i?r.getSender()===e.credentials.userId?null:function(e,r){for(var i=0;ir)break;(e=s.shift()).key,n.push(e)}c();for(var u=0;u>1;t(e[i])>0?n=i:r=i+1}return r}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./logger":106}],125:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(r,"__esModule",{value:!0}),r.MatrixScheduler=o;var i=n(e("./utils"));e("./logger");function o(e,t){this.retryAlgorithm=e||o.RETRY_BACKOFF_RATELIMIT,this.queueAlgorithm=t||o.QUEUE_MESSAGES,this._queues={},this._activeQueues=[],this._procFn=null}function s(e){e._procFn&&Object.keys(e._queues).filter((function(t){return-1===e._activeQueues.indexOf(t)&&e._queues[t].length>0})).forEach((function(t){e._activeQueues.push(t),u("Spinning up queue: '%s'",t),a(e,t)}))}function a(e,t){var r=function(e,t){var r=e._queues[t];if(!Array.isArray(r))return null;return r[0]}(e,t);if(!r){var n=e._activeQueues.indexOf(t);return n>=0&&e._activeQueues.splice(n,1),void u("Stopping queue '%s' as it is now empty",t)}u("Queue '%s' has %s pending events",t,e._queues[t].length),Promise.resolve().then((function(){return e._procFn(r.event)})).then((function(n){c(e,t),u("Queue '%s' sent event %s",t,r.event.getId()),r.defer.resolve(n),a(e,t)}),(function(n){r.attempts+=1;var i=e.retryAlgorithm(r.event,r.attempts,n);u("retry(%s) err=%s event_id=%s waitTime=%s",r.attempts,n,r.event.getId(),i),-1===i?(u("Queue '%s' giving up on event %s",t,r.event.getId()),c(e,t),r.defer.reject(n),a(e,t)):setTimeout((function(){a(e,t)}),i)}))}function c(e,t){var r=e._queues[t];return Array.isArray(r)?r.shift():null}function u(){false}o.prototype.getQueueForEvent=function(e){var t=this.queueAlgorithm(e);return t&&this._queues[t]?this._queues[t].map((function(e){return e.event})):null},o.prototype.removeEventFromQueue=function(e){var t=this.queueAlgorithm(e);if(!t||!this._queues[t])return!1;var r=!1;return i.removeElement(this._queues[t],(function(t){if(t.event.getId()===e.getId())return r=!0,!0})),r},o.prototype.setProcessFunction=function(e){this._procFn=e,s(this)},o.prototype.queueEvent=function(e){var t=this.queueAlgorithm(e);if(!t)return null;this._queues[t]||(this._queues[t]=[]);var r=i.defer();return this._queues[t].push({event:e,defer:r,attempts:0}),u("Queue algorithm dumped event %s into queue '%s'",e.getId(),t),s(this),r.promise},o.RETRY_BACKOFF_RATELIMIT=function(e,t,r){if(400===r.httpStatus||403===r.httpStatus||401===r.httpStatus)return-1;if("rejected"===r.cors)return-1;if("M_TOO_LARGE"===r.name)return-1;if("M_LIMIT_EXCEEDED"===r.name){var n=r.data.retry_after_ms;if(n>0)return n}return t>4?-1:1e3*Math.pow(2,t)},o.QUEUE_MESSAGES=function(e){return"m.room.message"===e.getType()||e.hasAssocation()?"message":null}},{"./logger":106,"./utils":137,"@babel/runtime/helpers/interopRequireWildcard":13}],126:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SERVICE_TYPES=void 0,function(e){e.IS="SERVICE_TYPE_IS",e.IM="SERVICE_TYPE_IM"}(r.SERVICE_TYPES||(r.SERVICE_TYPES={}))},{}],127:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard"),i=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.LocalIndexedDBStoreBackend=E;var o=i(e("@babel/runtime/regenerator")),s=i(e("@babel/runtime/helpers/asyncToGenerator")),a=i(e("@babel/runtime/helpers/slicedToArray")),c=e("../sync-accumulator"),u=n(e("../utils")),l=n(e("../indexeddb-helpers")),d=e("../logger");function h(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return f(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,s=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&d.logger.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{}}))}))},getClientOptions:function(){var e=this;return Promise.resolve().then((function(){return y(e.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,(function(e){if(e.value&&e.value&&e.value.options)return e.value.options})).then((function(e){return e[0]}))}))},storeClientOptions:(g=(0,s.default)(o.default.mark((function e(t){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(r=this.db.transaction(["client_options"],"readwrite")).objectStore("client_options").put({clobber:"-",options:t}),e.next=5,m(r);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return g.apply(this,arguments)})}},{"../indexeddb-helpers":104,"../logger":106,"../sync-accumulator":133,"../utils":137,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/interopRequireWildcard":13,"@babel/runtime/helpers/slicedToArray":22,"@babel/runtime/regenerator":27}],128:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.RemoteIndexedDBStoreBackend=o;var n=e("../logger"),i=e("../utils");function o(e,t,r){this._workerScript=e,this._dbName=t,this._workerApi=r,this._worker=null,this._nextSeq=0,this._inFlight={},this._startPromise=null}o.prototype={connect:function(){var e=this;return this._ensureStarted().then((function(){return e._doCmd("connect")}))},clearDatabase:function(){var e=this;return this._ensureStarted().then((function(){return e._doCmd("clearDatabase")}))},isNewlyCreated:function(){return this._doCmd("isNewlyCreated")},getSavedSync:function(){return this._doCmd("getSavedSync")},getNextBatchToken:function(){return this._doCmd("getNextBatchToken")},setSyncData:function(e){return this._doCmd("setSyncData",[e])},syncToDatabase:function(e){return this._doCmd("syncToDatabase",[e])},getOutOfBandMembers:function(e){return this._doCmd("getOutOfBandMembers",[e])},setOutOfBandMembers:function(e,t){return this._doCmd("setOutOfBandMembers",[e,t])},clearOutOfBandMembers:function(e){return this._doCmd("clearOutOfBandMembers",[e])},getClientOptions:function(){return this._doCmd("getClientOptions")},storeClientOptions:function(e){return this._doCmd("storeClientOptions",[e])},getUserPresenceEvents:function(){return this._doCmd("getUserPresenceEvents")},_ensureStarted:function(){return null===this._startPromise&&(this._worker=new this._workerApi(this._workerScript),this._worker.onmessage=this._onWorkerMessage.bind(this),this._startPromise=this._doCmd("_setupWorker",[this._dbName]).then((function(){n.logger.log("IndexedDB worker is ready")}))),this._startPromise},_doCmd:function(e,t){var r=this;return Promise.resolve().then((function(){var n=r._nextSeq++,o=(0,i.defer)();return r._inFlight[n]=o,r._worker.postMessage({command:e,seq:n,args:t}),o.promise}))},_onWorkerMessage:function(e){var t=e.data;if("cmd_success"==t.command||"cmd_fail"==t.command){if(void 0===t.seq)return void n.logger.error("Got reply from worker with no seq");var r=this._inFlight[t.seq];if(void 0===r)return void n.logger.error("Got reply for unknown seq "+t.seq);if(delete this._inFlight[t.seq],"cmd_success"==t.command)r.resolve(t.result);else{var i=new Error(t.error.message);i.name=t.error.name,r.reject(i)}}else n.logger.warn("Unrecognised message from worker: "+t)}}},{"../logger":106,"../utils":137}],129:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.IndexedDBStore=void 0;const i=e("events"),o=e("./memory"),s=e("./indexeddb-local-backend.js"),a=e("./indexeddb-remote-backend.js"),c=e("../models/user"),u=e("../models/event"),l=e("../logger");class d extends o.MemoryStore{constructor(e){if(super(e),this.startedUp=!1,this.syncTs=0,this.userModifiedMap={},this.emitter=new i.EventEmitter,this.on=this.emitter.on.bind(this.emitter),this.getSavedSync=this.degradable((()=>this.backend.getSavedSync()),"getSavedSync"),this.isNewlyCreated=this.degradable((()=>this.backend.isNewlyCreated()),"isNewlyCreated"),this.getSavedSyncToken=this.degradable((()=>this.backend.getNextBatchToken()),"getSavedSyncToken"),this.deleteAllData=this.degradable((()=>(super.deleteAllData(),this.backend.clearDatabase().then((()=>{l.logger.log("Deleted indexeddb data.")}),(e=>{throw l.logger.error(`Failed to delete indexeddb data: ${e}`),e}))))),this.reallySave=this.degradable((()=>{this.syncTs=Date.now();const e=[];for(const t of this.getUsers())this.userModifiedMap[t.userId]!==t.getLastModifiedTime()&&t.events.presence&&(e.push([t.userId,t.events.presence.event]),this.userModifiedMap[t.userId]=t.getLastModifiedTime());return this.backend.syncToDatabase(e)})),this.setSyncData=this.degradable((e=>this.backend.setSyncData(e)),"setSyncData"),this.getOutOfBandMembers=this.degradable((e=>this.backend.getOutOfBandMembers(e)),"getOutOfBandMembers"),this.setOutOfBandMembers=this.degradable(((e,t)=>(super.setOutOfBandMembers(e,t),this.backend.setOutOfBandMembers(e,t))),"setOutOfBandMembers"),this.clearOutOfBandMembers=this.degradable((e=>(super.clearOutOfBandMembers(e),this.backend.clearOutOfBandMembers(e))),"clearOutOfBandMembers"),this.getClientOptions=this.degradable((()=>this.backend.getClientOptions()),"getClientOptions"),this.storeClientOptions=this.degradable((e=>(super.storeClientOptions(e),this.backend.storeClientOptions(e))),"storeClientOptions"),!e.indexedDB)throw new Error("Missing required option: indexedDB");if(e.workerScript){let r=e.workerApi;r||(r=t.Worker),this.backend=new a.RemoteIndexedDBStoreBackend(e.workerScript,e.dbName,r)}else this.backend=new s.LocalIndexedDBStoreBackend(e.indexedDB,e.dbName)}static exists(e,t){return s.LocalIndexedDBStoreBackend.exists(e,t)}startup(){return this.startedUp?(l.logger.log("IndexedDBStore.startup: already started"),Promise.resolve()):(l.logger.log("IndexedDBStore.startup: connecting to backend"),this.backend.connect().then((()=>(l.logger.log("IndexedDBStore.startup: loading presence events"),this.backend.getUserPresenceEvents()))).then((e=>{l.logger.log("IndexedDBStore.startup: processing presence events"),e.forEach((([e,t])=>{const r=new c.User(e);t&&r.setPresenceEvent(new u.MatrixEvent(t)),this.userModifiedMap[r.userId]=r.getLastModifiedTime(),this.storeUser(r)}))})))}wantsSave(){return Date.now()-this.syncTs>3e5}save(e=!1){return e||this.wantsSave()?this.reallySave():Promise.resolve()}degradable(e,t){const r=super[t];return(...t)=>n(this,void 0,void 0,(function*(){try{return e.call(this,...t)}catch(e){l.logger.error("IndexedDBStore failure, degrading to MemoryStore",e),this.emitter.emit("degraded",e);try{l.logger.log("IndexedDBStore trying to delete degraded data"),yield this.backend.clearDatabase(),l.logger.log("IndexedDBStore delete after degrading succeeded")}catch(e){l.logger.warn("IndexedDBStore delete after degrading failed",e)}if(r)return r(...t)}}))}}r.IndexedDBStore=d}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../logger":106,"../models/event":113,"../models/user":121,"./indexeddb-local-backend.js":127,"./indexeddb-remote-backend.js":128,"./memory":130,events:36}],130:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.MemoryStore=void 0;const n=e("../models/user");function i(e){return"string"==typeof e&&!!e&&"undefined"!==e&&"null"!==e||"number"==typeof e}r.MemoryStore=class{constructor(e={}){this.rooms={},this.groups={},this.users={},this.syncToken=null,this.filters={},this.accountData={},this.oobMembers={},this.clientOptions={},this.onRoomMember=(e,t,r)=>{if("invite"===r.membership)return;const i=this.users[r.userId]||new n.User(r.userId);r.name&&(i.setDisplayName(r.name),r.events.member&&i.setRawDisplayName(r.events.member.getDirectionalContent().displayname)),r.events.member&&r.events.member.getContent().avatar_url&&i.setAvatarUrl(r.events.member.getContent().avatar_url),this.users[i.userId]=i},this.localStorage=e.localStorage}getSyncToken(){return this.syncToken}isNewlyCreated(){return Promise.resolve(!0)}setSyncToken(e){this.syncToken=e}storeGroup(e){this.groups[e.groupId]=e}getGroup(e){return this.groups[e]||null}getGroups(){return Object.values(this.groups)}storeRoom(e){this.rooms[e.roomId]=e,e.currentState.on("RoomState.members",this.onRoomMember),e.currentState.getMembers().forEach((t=>{this.onRoomMember(null,e.currentState,t)}))}getRoom(e){return this.rooms[e]||null}getRooms(){return Object.values(this.rooms)}removeRoom(e){this.rooms[e]&&this.rooms[e].removeListener("RoomState.members",this.onRoomMember),delete this.rooms[e]}getRoomSummaries(){return Object.values(this.rooms).map((function(e){return e.summary}))}storeUser(e){this.users[e.userId]=e}getUser(e){return this.users[e]||null}getUsers(){return Object.values(this.users)}scrollback(e,t){return[]}storeEvents(e,t,r,n){}storeFilter(e){e&&(this.filters[e.userId]||(this.filters[e.userId]={}),this.filters[e.userId][e.filterId]=e)}getFilter(e,t){return this.filters[e]&&this.filters[e][t]?this.filters[e][t]:null}getFilterIdByName(e){if(!this.localStorage)return null;const t="mxjssdk_memory_filter_"+e;try{const e=this.localStorage.getItem(t);if(i(e))return e}catch(e){}return null}setFilterIdByName(e,t){if(!this.localStorage)return;const r="mxjssdk_memory_filter_"+e;try{i(t)?this.localStorage.setItem(r,t):this.localStorage.removeItem(r)}catch(e){}}storeAccountDataEvents(e){e.forEach((e=>{this.accountData[e.getType()]=e}))}getAccountData(e){return this.accountData[e]}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(e){}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return this.rooms={},this.users={},this.syncToken=null,this.filters={},this.accountData={},Promise.resolve()}getOutOfBandMembers(e){return Promise.resolve(this.oobMembers[e]||null)}setOutOfBandMembers(e,t){return this.oobMembers[e]=t,Promise.resolve()}clearOutOfBandMembers(e){return this.oobMembers={},Promise.resolve()}getClientOptions(){return Promise.resolve(this.clientOptions)}storeClientOptions(e){return this.clientOptions=Object.assign({},e),Promise.resolve()}}},{"../models/user":121}],131:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(r,"__esModule",{value:!0}),r.WebStorageSessionStore=c;var i=n(e("../../utils"));e("../../logger");function o(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{this.accountData[e.type]=e}))}accumulateRooms(e,t=!1){e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach((r=>{this.accumulateRoom(r,o.Invite,e.rooms.invite[r],t)})),e.rooms.join&&Object.keys(e.rooms.join).forEach((r=>{this.accumulateRoom(r,o.Join,e.rooms.join[r],t)})),e.rooms.leave&&Object.keys(e.rooms.leave).forEach((r=>{this.accumulateRoom(r,o.Leave,e.rooms.leave[r],t)})))}accumulateRoom(e,t,r,i=!1){switch(t){case o.Invite:this.accumulateInviteState(e,r);break;case o.Join:this.inviteRooms[e]&&delete this.inviteRooms[e],this.accumulateJoinState(e,r,i);break;case o.Leave:this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:n.logger.error("Unknown cateogory: ",t)}}accumulateInviteState(e,t){if(!t.invite_state||!t.invite_state.events)return;if(!this.inviteRooms[e])return void(this.inviteRooms[e]={invite_state:t.invite_state});const r=this.inviteRooms[e];t.invite_state.events.forEach((e=>{let t=!1;for(let n=0;n{n._accountData[e.type]=e})),t.unread_notifications&&(n._unreadNotifications=t.unread_notifications),t.summary){const e="m.heroes",r="m.invited_member_count",i="m.joined_member_count",o=n._summary,s=t.summary;o[e]=s[e]||o[e],o[i]=s[i]||o[i],o[r]=s[r]||o[r]}if(t.ephemeral&&t.ephemeral.events&&t.ephemeral.events.forEach((e=>{"m.receipt"===e.type&&e.content&&Object.keys(e.content).forEach((t=>{e.content[t]["m.read"]&&Object.keys(e.content[t]["m.read"]).forEach((r=>{n._readReceipts[r]={data:e.content[t]["m.read"][r],eventId:t}}))}))})),t.timeline&&t.timeline.limited&&(n._timeline=[]),t.state&&t.state.events&&t.state.events.forEach((e=>{s(n._currentState,e)})),t.timeline&&t.timeline.events&&t.timeline.events.forEach(((e,i)=>{let o;if(s(n._currentState,e),r)o=e;else{o=Object.assign({},e),void 0!==o.unsigned&&(o.unsigned=Object.assign({},o.unsigned));const t=e.unsigned?e.unsigned.age:e.age;void 0!==t&&(o._localTs=Date.now()-t)}n._timeline.push({event:o,token:0===i?t.timeline.prev_batch:null})})),n._timeline.length>this.opts.maxTimelineEntries){for(let e=n._timeline.length-this.opts.maxTimelineEntries;e{this.accumulateGroup(t,o.Invite,e.groups.invite[t])})),e.groups.join&&Object.keys(e.groups.join).forEach((t=>{this.accumulateGroup(t,o.Join,e.groups.join[t])})),e.groups.leave&&Object.keys(e.groups.leave).forEach((t=>{this.accumulateGroup(t,o.Leave,e.groups.leave[t])})))}accumulateGroup(e,t,r){for(const t of[o.Invite,o.Leave,o.Join])delete this.groups[t][e];this.groups[t][e]=r}getJSON(e=!1){const t={join:{},invite:{},leave:{}};Object.keys(this.inviteRooms).forEach((e=>{t.invite[e]=this.inviteRooms[e]})),Object.keys(this.joinRooms).forEach((r=>{const n=this.joinRooms[r],o={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:n._unreadNotifications,summary:n._summary};Object.keys(n._accountData).forEach((e=>{o.account_data.events.push(n._accountData[e])}));const a={type:"m.receipt",room_id:r,content:{}};Object.keys(n._readReceipts).forEach((e=>{const t=n._readReceipts[e];a.content[t.eventId]||(a.content[t.eventId]={"m.read":{}}),a.content[t.eventId]["m.read"][e]=t.data})),Object.keys(a.content).length>0&&o.ephemeral.events.push(a),n._timeline.forEach((t=>{if(!o.timeline.prev_batch){if(!t.token)return;o.timeline.prev_batch=t.token}let r;!e&&t.event._localTs?(r=Object.assign({},t.event),void 0!==r.unsigned&&(r.unsigned=Object.assign({},r.unsigned)),delete r._localTs,r.unsigned=r.unsigned||{},r.unsigned.age=Date.now()-t.event._localTs):r=t.event,o.timeline.events.push(r)}));const c=Object.create(null);for(let e=o.timeline.events.length-1;e>=0;e--){const t=o.timeline.events[e];if(null===t.state_key||void 0===t.state_key)continue;const r=i.deepCopy(t);r.unsigned&&(r.unsigned.prev_content&&(r.content=r.unsigned.prev_content),r.unsigned.prev_sender&&(r.sender=r.unsigned.prev_sender)),s(c,r)}Object.keys(n._currentState).forEach((e=>{Object.keys(n._currentState[e]).forEach((t=>{let r=n._currentState[e][t];c[e]&&c[e][t]&&(r=c[e][t]),o.state.events.push(r)}))})),t.join[r]=o}));const r=[];return Object.keys(this.accountData).forEach((e=>{r.push(this.accountData[e])})),{nextBatch:this.nextBatch,roomsData:t,groupsData:this.groups,accountData:r}}getNextBatchToken(){return this.nextBatch}}},{"./logger":106,"./utils":137}],134:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SyncState=void 0,function(e){e.Error="ERROR",e.Prepared="PREPARED",e.Stopped="STOPPED",e.Syncing="SYNCING",e.Catchup="CATCHUP",e.Reconnecting="RECONNECTING"}(r.SyncState||(r.SyncState={}))},{}],135:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.SyncApi=void 0;const a=e("./models/user"),c=e("./models/room"),u=e("./models/group"),l=o(e("./utils")),d=e("./filter"),h=e("./models/event-timeline"),f=e("./pushprocessor"),g=e("./logger"),p=e("./errors"),v=e("./client"),y=e("./sync.api"),m=e("./sync-accumulator");function b(e,t){return"FILTER_SYNC_"+e+(t?"_"+t:"")}function S(...e){g.logger.log(...e)}function _(e,t){const r=new a.User(t);return e.reEmitter.reEmit(r,["User.avatarUrl","User.displayName","User.presence","User.currentlyActive","User.lastPresenceTs"]),r}r.SyncApi=class{constructor(e,t={}){var r;this.client=e,this.opts=t,this._peekRoom=null,this.currentSyncRequest=null,this.syncState=null,this.syncStateData=null,this.catchingUp=!1,this.running=!1,this.keepAliveTimer=null,this.connectionReturnedDefer=null,this.notifEvents=[],this.failedSyncCount=0,this.storeIsInvalid=!1,this.onOnline=()=>{S("Browser thinks we are back online"),this.startKeepAlives(0)},this.opts.initialSyncLimit=null!==(r=this.opts.initialSyncLimit)&&void 0!==r?r:8,this.opts.resolveInvitesToProfiles=this.opts.resolveInvitesToProfiles||!1,this.opts.pollTimeout=this.opts.pollTimeout||3e4,this.opts.pendingEventOrdering=this.opts.pendingEventOrdering||v.PendingEventOrdering.Chronological,t.canResetEntireTimeline||(t.canResetEntireTimeline=e=>!1),e.getNotifTimelineSet()&&e.reEmitter.reEmit(e.getNotifTimelineSet(),["Room.timeline","Room.timelineReset"])}createRoom(e){const t=this.client,{timelineSupport:r,unstableClientRelationAggregation:n}=t,i=new c.Room(e,t,t.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:r,unstableClientRelationAggregation:n});return t.reEmitter.reEmit(i,["Room.name","Room.timeline","Room.redaction","Room.redactionCancelled","Room.receipt","Room.tags","Room.timelineReset","Room.localEchoUpdated","Room.accountData","Room.myMembership","Room.replaceEvent"]),this.registerStateListeners(i),i}createGroup(e){const t=this.client,r=new u.Group(e);return t.reEmitter.reEmit(r,["Group.profile","Group.myMembership"]),t.store.storeGroup(r),r}registerStateListeners(e){const t=this.client;t.reEmitter.reEmit(e.currentState,["RoomState.events","RoomState.members","RoomState.newMember"]),e.currentState.on("RoomState.newMember",(function(e,r,n){n.user=t.getUser(n.userId),t.reEmitter.reEmit(n,["RoomMember.name","RoomMember.typing","RoomMember.powerLevel","RoomMember.membership"])}))}deregisterStateListeners(e){e.currentState.removeAllListeners("RoomState.events"),e.currentState.removeAllListeners("RoomState.members"),e.currentState.removeAllListeners("RoomState.newMember")}syncLeftRooms(){const e=this.client,t=new d.Filter(this.client.credentials.userId);t.setTimelineLimit(1),t.setIncludeLeaveRooms(!0);const r=this.opts.pollTimeout+8e4,n={timeout:0};return e.getOrCreateFilter(b(e.credentials.userId,"LEFT_ROOMS"),t).then((function(t){return n.filter=t,e.http.authedRequest(void 0,"GET","/sync",n,void 0,r)})).then((t=>{let r=[];t.rooms&&t.rooms.leave&&(r=this.mapSyncResponseToRoomArray(t.rooms.leave));const n=[];return r.forEach((t=>{const r=t.room;if(n.push(r),!t.isBrandNewRoom)return;t.timeline=t.timeline||{};const i=this.mapSyncEventsFormat(t.timeline,r),o=this.mapSyncEventsFormat(t.state,r);r.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,h.EventTimeline.BACKWARDS),this.processRoomEvents(r,o,i),r.recalculate(),e.store.storeRoom(r),e.emit("Room",r),this.processEventsForNotifs(r,i)})),n}))}peek(e){if(this._peekRoom&&this._peekRoom.roomId===e)return Promise.resolve(this._peekRoom);const t=this.client;return this._peekRoom=this.createRoom(e),this.client.roomInitialSync(e,20).then((e=>{e.messages=e.messages||{},e.messages.chunk=e.messages.chunk||[],e.state=e.state||[];const r=l.deepCopy(e.state).map(t.getEventMapper()),n=e.state.map(t.getEventMapper()),i=e.messages.chunk.map(t.getEventMapper());return e.presence&&Array.isArray(e.presence)&&e.presence.map(t.getEventMapper()).forEach((function(e){let r=t.store.getUser(e.getContent().user_id);r?r.setPresenceEvent(e):(r=_(t,e.getContent().user_id),r.setPresenceEvent(e),t.store.storeUser(r)),t.emit("event",e)})),e.messages.start&&(this._peekRoom.oldState.paginationToken=e.messages.start),this._peekRoom.oldState.setStateEvents(r),this._peekRoom.currentState.setStateEvents(n),this.resolveInvites(this._peekRoom),this._peekRoom.recalculate(),this._peekRoom.addEventsToTimeline(i.reverse(),!0,this._peekRoom.getLiveTimeline(),e.messages.start),t.store.storeRoom(this._peekRoom),t.emit("Room",this._peekRoom),this.peekPoll(this._peekRoom),this._peekRoom}))}stopPeeking(){this._peekRoom=null}peekPoll(e,t){this._peekRoom===e?this.client.http.authedRequest(void 0,"GET","/events",{room_id:e.roomId,timeout:3e4,from:t},void 0,5e4).then((t=>{if(this._peekRoom!==e)return void S("Stopped peeking in room %s",e.roomId);t.chunk.filter((function(e){return"m.presence"===e.type})).map(this.client.getEventMapper()).forEach((e=>{let t=this.client.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=_(this.client,e.getContent().user_id),t.setPresenceEvent(e),this.client.store.storeUser(t)),this.client.emit("event",e)}));const r=t.chunk.filter((function(t){return t.room_id===e.roomId&&t.event_id})).map(this.client.getEventMapper());e.addLiveEvents(r),this.peekPoll(e,t.end)}),(r=>{g.logger.error("[%s] Peek poll failed: %s",e.roomId,r),setTimeout((()=>{this.peekPoll(e,t)}),3e4)})):S("Stopped peeking in room %s",e.roomId)}getSyncState(){return this.syncState}getSyncStateData(){return this.syncStateData}recoverFromSyncStartupError(e,t){return s(this,void 0,void 0,(function*(){yield e;const r=this.startKeepAlives();this.updateSyncState(y.SyncState.Error,{error:t}),yield r}))}wasLazyLoadingToggled(e=!1){return s(this,void 0,void 0,(function*(){let t=!1;if(!(yield this.client.store.isNewlyCreated())){const r=yield this.client.store.getClientOptions();return r&&(t=!!r.lazyLoadMembers),t!==e}return!1}))}shouldAbortSync(e){return"M_UNKNOWN_TOKEN"===e.errcode&&(g.logger.warn("Token no longer valid - assuming logout"),this.stop(),!0)}sync(){const e=this.client;this.running=!0,t.window&&t.window.addEventListener&&t.window.addEventListener("online",this.onOnline,!1);let r=Promise.resolve(),n=null;const i=()=>s(this,void 0,void 0,(function*(){try{S("Getting push rules...");const t=yield e.getPushRules();S("Got push rules"),e.pushRules=t}catch(e){if(g.logger.error("Getting push rules failed",e),this.shouldAbortSync(e))return;return S("Waiting for saved sync before retrying push rules..."),yield this.recoverFromSyncStartupError(r,e),void i()}a()})),o=()=>{const t=new d.Filter(e.credentials.userId);return t.setTimelineLimit(this.opts.initialSyncLimit),t},a=()=>s(this,void 0,void 0,(function*(){if(S("Checking lazy load status..."),this.opts.lazyLoadMembers&&e.isGuest()&&(this.opts.lazyLoadMembers=!1),this.opts.lazyLoadMembers){S("Checking server lazy load support...");(yield e.doesServerSupportLazyLoading())?(S("Enabling lazy load on sync filter..."),this.opts.filter||(this.opts.filter=o()),this.opts.filter.setLazyLoadMembers(!0)):(S("LL: lazy loading requested but not supported by server, so disabling"),this.opts.lazyLoadMembers=!1)}S("Checking whether lazy loading has changed in store...");if(yield this.wasLazyLoadingToggled(this.opts.lazyLoadMembers)){this.storeIsInvalid=!0;const e=p.InvalidStoreError.TOGGLED_LAZY_LOADING,t=new p.InvalidStoreError(e,!!this.opts.lazyLoadMembers);return this.updateSyncState(y.SyncState.Error,{error:t}),void g.logger.warn("InvalidStoreError: store is not usable: stopping sync.")}this.opts.lazyLoadMembers&&this.opts.crypto&&this.opts.crypto.enableLazyLoading();try{S("Storing client options..."),yield this.client.storeClientOptions(),S("Stored client options")}catch(e){throw g.logger.error("Storing client options failed",e),e}c()})),c=()=>s(this,void 0,void 0,(function*(){let t,i;S("Getting filter..."),t=this.opts.filter?this.opts.filter:o();try{i=yield e.getOrCreateFilter(b(e.credentials.userId),t)}catch(e){if(g.logger.error("Getting filter failed",e),this.shouldAbortSync(e))return;return S("Waiting for saved sync before retrying filter..."),yield this.recoverFromSyncStartupError(r,e),void c()}e.resetNotifTimelineSet(),null===this.currentSyncRequest&&(S("Sending first sync request..."),this.currentSyncRequest=this.doSyncRequest({filterId:i},n)),S("Waiting for saved sync before starting sync processing..."),yield r,this._sync({filterId:i})}));e.isGuest()?this._sync({}):(S("Getting saved sync token..."),r=e.store.getSavedSyncToken().then((t=>(S("Got saved sync token"),n=t,S("Getting saved sync..."),e.store.getSavedSync()))).then((e=>{if(S(`Got reply from saved sync, exists? ${!!e}`),e)return this.syncFromCache(e)})).catch((e=>{g.logger.error("Getting saved sync failed",e)})),i())}stop(){S("SyncApi.stop"),t.window&&t.window.removeEventListener("online",this.onOnline,!1),this.running=!1,this.currentSyncRequest&&this.currentSyncRequest.abort(),this.keepAliveTimer&&(clearTimeout(this.keepAliveTimer),this.keepAliveTimer=null)}retryImmediately(){return!!this.connectionReturnedDefer&&(this.startKeepAlives(0),!0)}syncFromCache(e){return s(this,void 0,void 0,(function*(){S("sync(): not doing HTTP hit, instead returning stored /sync data");const t=e.nextBatch;this.client.store.setSyncToken(t);const r={oldSyncToken:null,nextSyncToken:t,catchingUp:!1,fromCache:!0},n={next_batch:t,rooms:e.roomsData,groups:e.groupsData,account_data:{events:e.accountData}};try{yield this.processSyncResponse(r,n)}catch(e){g.logger.error("Error processing cached sync",e.stack||e)}this.storeIsInvalid||this.updateSyncState(y.SyncState.Prepared,r)}))}_sync(e){return s(this,void 0,void 0,(function*(){const t=this.client;if(!this.running)return S("Sync no longer running: exiting."),this.connectionReturnedDefer&&(this.connectionReturnedDefer.reject(),this.connectionReturnedDefer=null),void this.updateSyncState(y.SyncState.Stopped);const r=t.store.getSyncToken();let n;try{null===this.currentSyncRequest&&(this.currentSyncRequest=this.doSyncRequest(e,r)),n=yield this.currentSyncRequest}catch(t){return void this.onSyncError(t,e)}finally{this.currentSyncRequest=null}t.store.setSyncToken(n.next_batch),this.failedSyncCount=0,yield t.store.setSyncData(n);const i={oldSyncToken:r,nextSyncToken:n.next_batch,catchingUp:this.catchingUp};this.opts.crypto&&(yield this.opts.crypto.onSyncWillProcess(i));try{yield this.processSyncResponse(i,n)}catch(e){g.logger.error("Caught /sync error",e.stack||e),this.client.emit("sync.unexpectedError",e)}i.catchingUp=this.catchingUp,e.hasSyncedBefore||(this.updateSyncState(y.SyncState.Prepared,i),e.hasSyncedBefore=!0),this.opts.crypto&&(yield this.opts.crypto.onSyncCompleted(i)),this.updateSyncState(y.SyncState.Syncing,i),t.store.wantsSave()&&(this.opts.crypto&&(yield this.opts.crypto.saveDeviceList(0)),t.store.save()),this._sync(e)}))}doSyncRequest(e,t){const r=this.getSyncParams(e,t);return this.client.http.authedRequest(void 0,"GET","/sync",r,void 0,r.timeout+8e4)}getSyncParams(e,t){let r=this.opts.pollTimeout;("SYNCING"!==this.getSyncState()||this.catchingUp)&&(this.catchingUp=!0,r=0);let n=e.filterId;this.client.isGuest()&&!n&&(n=this.getGuestFilter());const i={filter:n,timeout:r};return this.opts.disablePresence&&(i.set_presence="offline"),t?i.since=t:i._cacheBuster=Date.now(),"ERROR"!=this.getSyncState()&&"RECONNECTING"!=this.getSyncState()||(i.timeout=0),i}onSyncError(e,t){if(!this.running)return S("Sync no longer running: exiting"),this.connectionReturnedDefer&&(this.connectionReturnedDefer.reject(),this.connectionReturnedDefer=null),void this.updateSyncState(y.SyncState.Stopped);g.logger.error("/sync error %s",e),g.logger.error(e),this.shouldAbortSync(e)||(this.failedSyncCount++,g.logger.log("Number of consecutive failed sync requests:",this.failedSyncCount),S("Starting keep-alive"),this.startKeepAlives().then((e=>{e&&this.getSyncState()===y.SyncState.Error&&this.updateSyncState(y.SyncState.Catchup,{oldSyncToken:null,nextSyncToken:null,catchingUp:!0}),this._sync(t)})),this.currentSyncRequest=null,this.updateSyncState(this.failedSyncCount>=3?y.SyncState.Error:y.SyncState.Reconnecting,{error:e}))}processSyncResponse(e,t){return s(this,void 0,void 0,(function*(){const r=this.client;if(t.presence&&Array.isArray(t.presence.events)&&t.presence.events.map(r.getEventMapper()).forEach((function(e){let t=r.store.getUser(e.getSender());t?t.setPresenceEvent(e):(t=_(r,e.getSender()),t.setPresenceEvent(e),r.store.storeUser(t)),r.emit("event",e)})),t.account_data&&Array.isArray(t.account_data.events)){const e=t.account_data.events.map(r.getEventMapper()),n=e.reduce(((e,t)=>(e[t.getId()]=r.store.getAccountData(t.getType()),e)),{});r.store.storeAccountDataEvents(e),e.forEach((function(e){if("m.push_rules"===e.getType()){const t=e.getContent();r.pushRules=f.PushProcessor.rewriteDefaultRules(t)}const t=n[e.getId()];return r.emit("accountData",e,t),e}))}if(t.to_device&&Array.isArray(t.to_device.events)&&t.to_device.events.length>0){const e=[];t.to_device.events.map(r.getEventMapper()).map((t=>{if("m.key.verification.cancel"===t.getType()){const r=t.getContent().transaction_id;r&&e.push(r)}return t})).forEach((function(t){const n=t.getContent();if("m.room.message"!=t.getType()||"m.bad.encrypted"!=n.msgtype){if("m.key.verification.start"===t.getType()||"m.key.verification.request"===t.getType()){const r=n.transaction_id;e.includes(r)&&t.flagCancelled()}r.emit("toDeviceEvent",t)}else g.logger.log("Ignoring undecryptable to-device event from "+t.getSender())}))}else this.catchingUp=!1;t.groups&&(t.groups.invite&&this.processGroupSyncEntry(t.groups.invite,m.Category.Invite),t.groups.join&&this.processGroupSyncEntry(t.groups.join,m.Category.Join),t.groups.leave&&this.processGroupSyncEntry(t.groups.leave,m.Category.Leave));let n=[],i=[],o=[];if(t.rooms&&(t.rooms.invite&&(n=this.mapSyncResponseToRoomArray(t.rooms.invite)),t.rooms.join&&(i=this.mapSyncResponseToRoomArray(t.rooms.join)),t.rooms.leave&&(o=this.mapSyncResponseToRoomArray(t.rooms.leave))),this.notifEvents=[],n.forEach((e=>{const t=e.room,n=this.mapSyncEventsFormat(e.invite_state,t);this.processRoomEvents(t,n),e.isBrandNewRoom&&(t.recalculate(),r.store.storeRoom(t),r.emit("Room",t)),n.forEach((function(e){r.emit("event",e)})),t.updateMyMembership("invite")})),yield l.promiseMapSeries(i,(t=>s(this,void 0,void 0,(function*(){const n=t.room,i=this.mapSyncEventsFormat(t.state,n),o=this.mapSyncEventsFormat(t.timeline,n,!1),a=this.mapSyncEventsFormat(t.ephemeral),u=this.mapSyncEventsFormat(t.account_data),d=r.isRoomEncrypted(n.roomId);if(t.unread_notifications&&(n.setUnreadNotificationCount(c.NotificationCountType.Total,t.unread_notifications.notification_count),(!d||d&&n.getUnreadNotificationCount(c.NotificationCountType.Highlight)<=0)&&n.setUnreadNotificationCount(c.NotificationCountType.Highlight,t.unread_notifications.highlight_count)),t.timeline=t.timeline||{},t.isBrandNewRoom)n.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,h.EventTimeline.BACKWARDS);else if(t.timeline.limited){let i=!0;for(let e=o.length-1;e>=0;e--){const t=o[e].getId();if(n.getTimelineForEvent(t)){S("Already have event "+t+" in limited sync - not resetting"),i=!1,o.splice(0,e);break}}i&&(this.deregisterStateListeners(n),n.resetLiveTimeline(t.timeline.prev_batch,this.opts.canResetEntireTimeline(n.roomId)?null:e.oldSyncToken),r.resetNotifTimelineSet(),this.registerStateListeners(n))}this.processRoomEvents(n,i,o,e.fromCache),t.summary&&n.setSummary(t.summary),n.addEphemeralEvents(a),n.addAccountData(u),n.recalculate(),t.isBrandNewRoom&&(r.store.storeRoom(n),r.emit("Room",n)),this.processEventsForNotifs(n,o);const f=e=>s(this,void 0,void 0,(function*(){if(r.emit("event",e),e.isState()&&"m.room.encryption"==e.getType()&&this.opts.crypto&&(yield this.opts.crypto.onCryptoEvent(e)),e.isState()&&"im.vector.user_status"===e.getType()){let t=r.store.getUser(e.getStateKey());t?t.unstable_updateStatusMessage(e):(t=_(r,e.getStateKey()),t.unstable_updateStatusMessage(e),r.store.storeUser(t))}}));yield l.promiseMapSeries(i,f),yield l.promiseMapSeries(o,f),a.forEach((function(e){r.emit("event",e)})),u.forEach((function(e){r.emit("event",e)})),n.updateMyMembership("join"),n.decryptCriticalEvents()})))),o.forEach((e=>{const t=e.room,n=this.mapSyncEventsFormat(e.state,t),i=this.mapSyncEventsFormat(e.timeline,t),o=this.mapSyncEventsFormat(e.account_data);this.processRoomEvents(t,n,i),t.addAccountData(o),t.recalculate(),e.isBrandNewRoom&&(r.store.storeRoom(t),r.emit("Room",t)),this.processEventsForNotifs(t,i),n.forEach((function(e){r.emit("event",e)})),i.forEach((function(e){r.emit("event",e)})),o.forEach((function(e){r.emit("event",e)})),t.updateMyMembership("leave")})),e.oldSyncToken&&this.notifEvents.length&&(this.notifEvents.sort((function(e,t){return e.getTs()-t.getTs()})),this.notifEvents.forEach((function(e){r.getNotifTimelineSet().addLiveEvent(e)}))),t.device_lists&&this.opts.crypto&&(yield this.opts.crypto.handleDeviceListChanges(e,t.device_lists)),this.opts.crypto&&t.device_one_time_keys_count){const e=t.device_one_time_keys_count.signed_curve25519||0;this.opts.crypto.updateOneTimeKeyCount(e)}if(this.opts.crypto&&t["org.matrix.msc2732.device_unused_fallback_key_types"]){const e=t["org.matrix.msc2732.device_unused_fallback_key_types"];this.opts.crypto.setNeedsNewFallback(e instanceof Array&&!e.includes("signed_curve25519"))}}))}startKeepAlives(e){return void 0===e&&(e=2e3+Math.floor(5e3*Math.random())),null!==this.keepAliveTimer&&clearTimeout(this.keepAliveTimer),e>0?this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this),e):this.pokeKeepAlive(),this.connectionReturnedDefer||(this.connectionReturnedDefer=l.defer()),this.connectionReturnedDefer.promise}pokeKeepAlive(e=!1){const t=()=>{clearTimeout(this.keepAliveTimer),this.connectionReturnedDefer&&(this.connectionReturnedDefer.resolve(e),this.connectionReturnedDefer=null)};this.client.http.request(void 0,"GET","/_matrix/client/versions",void 0,void 0,{prefix:"",localTimeoutMs:15e3}).then((()=>{t()}),(r=>{400==r.httpStatus||404==r.httpStatus?this.keepAliveTimer=setTimeout(t,2e3):(e=!0,this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this,e),5e3+Math.floor(5e3*Math.random())),this.updateSyncState(y.SyncState.Error,{error:r}))}))}processGroupSyncEntry(e,t){for(const r of Object.keys(e)){const n=e[r];let i=this.client.store.getGroup(r);const o=null===i;null===i&&(i=this.createGroup(r)),n.profile&&i.setProfile(n.profile.name,n.profile.avatar_url),n.inviter&&i.setInviter({userId:n.inviter}),i.setMyMembership(t),o&&this.client.emit("Group",i)}}mapSyncResponseToRoomArray(e){const t=this.client;return Object.keys(e).map((r=>{const n=e[r];let i=t.store.getRoom(r),o=!1;return i||(i=this.createRoom(r),o=!0),n.room=i,n.isBrandNewRoom=o,n}))}mapSyncEventsFormat(e,t,r=!0){if(!e||!Array.isArray(e.events))return[];const n=this.client.getEventMapper({decrypt:r});return e.events.map((function(e){return t&&(e.room_id=t.roomId),n(e)}))}resolveInvites(e){if(!e||!this.opts.resolveInvitesToProfiles)return;const t=this.client;e.getMembersWithMembership("invite").forEach((function(r){if(r._requestedProfileInfo)return;r._requestedProfileInfo=!0;const n=t.getUser(r.userId);let i;i=n?Promise.resolve({avatar_url:n.avatarUrl,displayname:n.displayName}):t.getProfileInfo(r.userId),i.then((function(t){const n=r.events.member;"invite"===n.getContent().membership&&(n.getContent().avatar_url=t.avatar_url,n.getContent().displayname=t.displayname,r.setMembershipEvent(n,e.currentState))}),(function(e){}))}))}processRoomEvents(e,t,r,n=!1){const i=e.getLiveTimeline(),o=0==i.getEvents().length;if(o){for(const e of t)this.client.getPushActionsForEvent(e);i.initialiseState(t)}this.resolveInvites(e),e.recalculate(),o||(e.oldState.setStateEvents(t||[]),e.currentState.setStateEvents(t||[])),e.addLiveEvents(r||[],null,n)}processEventsForNotifs(e,t){if(this.client.getNotifTimelineSet())for(let e=0;e{let n;const i=r.getEvents();if(e){for(let t=0;t0&&this.unpaginate(t,e!=n.EventTimeline.BACKWARDS),!0}return!1}canPaginate(e){const t=this.getTimelineIndex(e);if(!t)return i("TimelineWindow: no timeline yet"),!1;if(e==n.EventTimeline.BACKWARDS){if(t.index>t.minIndex())return!0}else if(t.index(i("TimelineWindow: request completed with result "+r),!!r&&this.paginate(e,t,!0,o-1))));return s.pendingPaginate=a,a}unpaginate(e,t){const r=t?this.start:this.end;if(e>this.eventCount||e<0)throw new Error("Attemting to unpaginate "+e+" events, but only have "+this.eventCount+" in the timeline");for(;e>0;){const n=t?r.advance(e):r.retreat(e);if(n<=0)throw new Error("Unable to unpaginate any further, but still have "+this.eventCount+" events");e-=n,this.eventCount-=n,i("TimelineWindow.unpaginate: dropped "+n+" (now "+this.eventCount+")")}}getEvents(){if(!this.start)return[];const e=[];let t=this.start.timeline;for(;;){const r=t.getEvents();let i=0,o=r.length;t===this.start.timeline&&(i=this.start.index+t.getBaseIndex()),t===this.end.timeline&&(o=this.end.index+t.getBaseIndex());for(let t=i;t0)return this.index+=t,t;const r=this.timeline.getNeighbouringTimeline(e<0?n.EventTimeline.BACKWARDS:n.EventTimeline.FORWARDS);return r?(this.timeline=r,this.index=e<0?this.maxIndex():this.minIndex(),i("paginate: switched to new neighbour"),this.advance(e)):0}retreat(e){return-1*this.advance(-1*e)}}r.TimelineIndex=o},{"./logger":106,"./models/event-timeline":112}],137:[function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.lexicographicCompare=r.prevString=r.nextString=r.averageBetweenStrings=r.stringToBase=r.baseToString=r.alphabetPad=r.DEFAULT_ALPHABET=r.getCrypto=r.setCrypto=r.simpleRetryOperation=r.chunkPromises=r.promiseTry=r.promiseMapSeries=r.defer=r.isNullOrUndefined=r.sleep=r.ensureNoTrailingSlash=r.globToRegexp=r.escapeRegExp=r.normalize=r.removeHiddenChars=r.isNumber=r.polyfillSuper=r.inherits=r.extend=r.deepSortedObjectEntries=r.deepCompare=r.deepCopy=r.checkObjectHasNoAdditionalKeys=r.checkObjectHasKeys=r.isFunction=r.removeElement=r.encodeUri=r.encodeParams=void 0;const o=i(e("unhomoglyph")),s=i(e("p-retry"));function a(e){return"string"==typeof e?o.default(e.normalize("NFD").replace(c,"")):""}r.encodeParams=function(e){let t="";for(const r in e)e.hasOwnProperty(r)&&(t+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t.substring(1)},r.encodeUri=function(e,t){for(const r in t)t.hasOwnProperty(r)&&(e=e.replace(r,encodeURIComponent(t[r])));return e},r.removeElement=function(e,t,r){let n,i;if(r){for(n=e.length-1;n>=0;n--)if(t(e[n],n,e))return i=e[n],e.splice(n,1),i}else for(n=0;ng(e[0],t[0]))),r},r.extend=function(...e){const t=e[0]||{};for(let r=1;r?@[\]^_`{|}~\u2000-\u206f\u2e00-\u2e7f]/g,"").toLowerCase()};const c=/[\u2000-\u200F\u202A-\u202F\u0300-\u036f\uFEFF\s]/g;function u(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}let l;function d(e,t,n=r.DEFAULT_ALPHABET){return e.padEnd(t,n[0])}function h(e,t=r.DEFAULT_ALPHABET){var n;const i=BigInt(t.length);if(e<=i)return null!==(n=t[Number(e)-1])&&void 0!==n?n:"";let o=e/i,s=Number(e%i)-1;return s<0&&(o-=BigInt(Math.abs(s)),s=Number(i)-1),h(o,t)+t[s]}function f(e,t=r.DEFAULT_ALPHABET){const n=BigInt(t.length);let i=BigInt(0);for(let r=e.length-1,o=BigInt(0);r>=0;r--,o++){const s=e.charCodeAt(r)-t.charCodeAt(0);i+=BigInt(1+s)*n**o}return i}function g(e,t){return e{setTimeout(r,e,t)}))},r.isNullOrUndefined=function(e){return null==e},r.defer=function(){let e,t;const r=new Promise(((r,n)=>{e=r,t=n}));return{resolve:e,reject:t,promise:r}},r.promiseMapSeries=function(e,t){return n(this,void 0,void 0,(function*(){for(const r of e)yield t(yield r)}))},r.promiseTry=function(e){return new Promise((t=>t(e())))},r.chunkPromises=function(e,t){return n(this,void 0,void 0,(function*(){const r=[];for(let n=0;ne()))));return r}))},r.simpleRetryOperation=function(e){return s.default((t=>e(t)),{forever:!0,factor:2,minTimeout:3e3,maxTimeout:15e3})},r.setCrypto=function(e){l=e},r.getCrypto=function(){return l},r.DEFAULT_ALPHABET=(()=>{let e="";for(let t=32;t<=126;t++)e+=String.fromCharCode(t);return e})(),r.alphabetPad=d,r.baseToString=h,r.stringToBase=f,r.averageBetweenStrings=function(e,t,n=r.DEFAULT_ALPHABET){const i=Math.max(e.length,t.length),o=f(d(e,i,n),n),s=f(d(t,i,n),n),a=(o+s)/BigInt(2);return a===o||a==s?h(a,n)+n[0]:h(a,n)},r.nextString=function(e,t=r.DEFAULT_ALPHABET){return h(f(e,t)+BigInt(1),t)},r.prevString=function(e,t=r.DEFAULT_ALPHABET){return h(f(e,t)-BigInt(1),t)},r.lexicographicCompare=g},{"p-retry":39,unhomoglyph:55}],138:[function(e,t,r){(function(t){(function(){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.createNewMatrixCall=r.setVideoInput=r.setAudioInput=r.MatrixCall=r.CallError=r.getDesktopCapturerSources=r.CallErrorCode=r.CallEvent=r.CallParty=r.CallDirection=r.CallType=r.CallState=void 0;const a=e("../logger"),c=e("events"),u=o(e("../utils")),l=e("../@types/event"),d=e("../randomstring"),h=e("./callEventTypes"),f=e("./callFeed");var g,p,v,y,m,b,S;!function(e){e.Fledgling="fledgling",e.InviteSent="invite_sent",e.WaitLocalMedia="wait_local_media",e.CreateOffer="create_offer",e.CreateAnswer="create_answer",e.Connecting="connecting",e.Connected="connected",e.Ringing="ringing",e.Ended="ended"}(g=r.CallState||(r.CallState={})),function(e){e.Voice="voice",e.Video="video"}(p=r.CallType||(r.CallType={})),function(e){e.Inbound="inbound",e.Outbound="outbound"}(v=r.CallDirection||(r.CallDirection={})),function(e){e.Local="local",e.Remote="remote"}(y=r.CallParty||(r.CallParty={})),function(e){e.Hangup="hangup",e.State="state",e.Error="error",e.Replaced="replaced",e.LocalHoldUnhold="local_hold_unhold",e.RemoteHoldUnhold="remote_hold_unhold",e.HoldUnhold="hold_unhold",e.FeedsChanged="feeds_changed",e.AssertedIdentityChanged="asserted_identity_changed"}(m=r.CallEvent||(r.CallEvent={})),function(e){e.UserHangup="user_hangup",e.LocalOfferFailed="local_offer_failed",e.NoUserMedia="no_user_media",e.UnknownDevices="unknown_devices",e.SendInvite="send_invite",e.CreateAnswer="create_answer",e.SendAnswer="send_answer",e.SetRemoteDescription="set_remote_description",e.SetLocalDescription="set_local_description",e.AnsweredElsewhere="answered_elsewhere",e.IceFailed="ice_failed",e.InviteTimeout="invite_timeout",e.Replaced="replaced",e.SignallingFailed="signalling_timeout",e.UserBusy="user_busy",e.Transfered="transferred"}(b=r.CallErrorCode||(r.CallErrorCode={})),function(e){e.Audio="audio",e.Video="video"}(S||(S={}));r.getDesktopCapturerSources=function(){return window.electron.getDesktopCapturerSources({thumbnailSize:{height:176,width:312},types:["screen","window"]})};class _ extends Error{constructor(e,t,r){super(t+": "+r),this.code=e}}function E(){return Date.now().toString()+d.randomString(16)}r.CallError=_;class k extends c.EventEmitter{constructor(e){super(),this.remoteCandidateBuffer=new Map,this.gotUserMediaForInvite=e=>s(this,void 0,void 0,(function*(){if(this.successor)this.successor.gotUserMediaForAnswer(e);else if(this.callHasEnded())this.stopAllMedia();else{this.localAVStream=e,a.logger.info("Got local AV stream with id "+this.localAVStream.id),this.setState(g.CreateOffer),a.logger.debug("gotUserMediaForInvite -> "+this.type),this.screenSharingStream?(a.logger.debug("Setting screen sharing stream to the local video element"),this.pushNewFeed(this.screenSharingStream,this.client.getUserId(),h.SDPStreamMetadataPurpose.Screenshare)):this.pushNewFeed(e,this.client.getUserId(),h.SDPStreamMetadataPurpose.Usermedia),w(e.getAudioTracks(),!0);for(const t of e.getAudioTracks())a.logger.info("Adding audio track with id "+t.id),this.peerConn.addTrack(t,e);for(const t of(this.screenSharingStream||e).getVideoTracks())a.logger.info("Adding video track with id "+t.id),this.peerConn.addTrack(t,e)}})),this.gotUserMediaForAnswer=e=>s(this,void 0,void 0,(function*(){if(this.callHasEnded())return;this.pushNewFeed(e,this.client.getUserId(),h.SDPStreamMetadataPurpose.Usermedia),this.localAVStream=e,a.logger.info("Got local AV stream with id "+this.localAVStream.id),w(e.getAudioTracks(),!0);for(const t of e.getTracks())this.peerConn.addTrack(t,e);let t;this.setState(g.CreateAnswer);try{t=yield this.peerConn.createAnswer()}catch(e){return a.logger.debug("Failed to create answer: ",e),void this.terminate(y.Local,b.CreateAnswer,!0)}try{yield this.peerConn.setLocalDescription(t),this.setState(g.Connecting),yield new Promise((e=>{setTimeout(e,200)})),this.sendAnswer()}catch(e){return a.logger.debug("Error setting local description!",e),void this.terminate(y.Local,b.SetLocalDescription,!0)}})),this.gotLocalIceCandidate=e=>{if(e.candidate){if(a.logger.debug("Call "+this.callId+" got local ICE "+e.candidate.sdpMid+" candidate: "+e.candidate.candidate),this.callHasEnded())return;""===e.candidate.candidate&&this.sentEndOfCandidates||(this.queueCandidate(e.candidate),""===e.candidate.candidate&&(this.sentEndOfCandidates=!0))}},this.onIceGatheringStateChange=e=>{if(a.logger.debug("ice gathering state changed to "+this.peerConn.iceGatheringState),"complete"===this.peerConn.iceGatheringState&&!this.sentEndOfCandidates){const e={candidate:""};this.queueCandidate(e),this.sentEndOfCandidates=!0}},this.gotLocalOffer=e=>s(this,void 0,void 0,(function*(){if(a.logger.debug("Created offer: ",e),this.callHasEnded())return void a.logger.debug("Ignoring newly created offer on call ID "+this.callId+" because the call has ended");try{yield this.peerConn.setLocalDescription(e)}catch(e){return a.logger.debug("Error setting local description!",e),void this.terminate(y.Local,b.SetLocalDescription,!0)}if("gathering"===this.peerConn.iceGatheringState&&(yield new Promise((e=>{setTimeout(e,200)}))),this.callHasEnded())return;const t=this.state===g.CreateOffer?l.EventType.CallInvite:l.EventType.CallNegotiate,r={lifetime:6e4};t===l.EventType.CallInvite&&this.invitee&&(r.invitee=this.invitee),this.state===g.CreateOffer?r.offer=this.peerConn.localDescription:r.description=this.peerConn.localDescription,this.client.supportsCallTransfer&&(r.capabilities={"m.call.transferee":!0}),a.logger.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in offer`),this.candidateSendQueue=[];try{yield this.sendVoipEvent(t,r)}catch(e){a.logger.error("Failed to send invite",e),e.event&&this.client.cancelPendingEvent(e.event);let t=b.SignallingFailed,r="Signalling failed";return this.state===g.CreateOffer&&(t=b.SendInvite,r="Failed to send invite"),"UnknownDeviceError"==e.name&&(t=b.UnknownDevices,r="Unknown devices present in the room"),this.emit(m.Error,new _(t,r,e)),void this.terminate(y.Local,t,!1)}this.sendCandidateQueue(),this.state===g.CreateOffer&&(this.inviteOrAnswerSent=!0,this.setState(g.InviteSent),this.inviteTimeout=setTimeout((()=>{this.inviteTimeout=null,this.state===g.InviteSent&&this.hangup(b.InviteTimeout,!1)}),6e4))})),this.getLocalOfferFailed=e=>{a.logger.error("Failed to get local offer",e),this.emit(m.Error,new _(b.LocalOfferFailed,"Failed to get local offer!",e)),this.terminate(y.Local,b.LocalOfferFailed,!1)},this.getUserMediaFailed=e=>{this.successor?this.successor.getUserMediaFailed(e):(a.logger.warn("Failed to get user media - ending call",e),this.emit(m.Error,new _(b.NoUserMedia,"Couldn't start capturing media! Is your microphone set up and does this app have permission?",e)),this.terminate(y.Local,b.NoUserMedia,!1))},this.onIceConnectionStateChanged=()=>{this.callHasEnded()||(a.logger.debug("Call ID "+this.callId+": ICE connection state changed to: "+this.peerConn.iceConnectionState),"connected"==this.peerConn.iceConnectionState?this.setState(g.Connected):"failed"==this.peerConn.iceConnectionState?(console.error("ice failed"),this.hangup(b.IceFailed,!1)):"disconnected"==this.peerConn.iceConnectionState&&console.error("ice disconnected"))},this.onSignallingStateChanged=()=>{a.logger.debug("call "+this.callId+": Signalling state changed to: "+this.peerConn.signalingState)},this.onTrack=e=>{var t;if(0===e.streams.length)return void a.logger.warn(`Streamless ${e.track.kind} found: ignoring.`);const r=null===(t=this.feeds.find((e=>!e.isLocal())))||void 0===t?void 0:t.stream;if(r&&e.streams[0].id!==r.id)return void a.logger.warn(`Ignoring new stream ID ${e.streams[0].id}: we already have stream ID ${r.id}`);r||a.logger.info("Got remote stream with id "+e.streams[0].id);const n=e.streams[0];a.logger.debug(`Track id ${e.track.id} of kind ${e.track.kind} added`),this.pushNewFeed(n,this.getOpponentMember().userId,h.SDPStreamMetadataPurpose.Usermedia),a.logger.info("playing remote. stream active? "+n.active)},this.onNegotiationNeeded=()=>s(this,void 0,void 0,(function*(){if(a.logger.info("Negotation is needed!"),this.state===g.CreateOffer||0!==this.opponentVersion){this.makingOffer=!0;try{const e=yield this.peerConn.createOffer();yield this.gotLocalOffer(e)}catch(e){return void this.getLocalOfferFailed(e)}finally{this.makingOffer=!1}}else a.logger.info("Opponent does not support renegotiation: ignoring negotiationneeded event")})),this.onHangupReceived=e=>{a.logger.debug("Hangup received for call ID "+this.callId),this.partyIdMatches(e)||this.state===g.Ringing?this.terminate(y.Remote,e.reason||b.UserHangup,!0):a.logger.info(`Ignoring message from party ID ${e.party_id}: our partner is ${this.opponentPartyId}`)},this.onRejectReceived=e=>{a.logger.debug("Reject received for call ID "+this.callId);[g.InviteSent,g.Ringing].includes(this.state)||this.state===g.Fledgling&&this.direction===v.Inbound?this.terminate(y.Remote,e.reason||b.UserHangup,!0):a.logger.debug(`Call is in state: ${this.state}: ignoring reject`)},this.onAnsweredElsewhere=e=>{a.logger.debug("Call ID "+this.callId+" answered elsewhere"),this.terminate(y.Remote,b.AnsweredElsewhere,!0)},this.roomId=e.roomId,this.invitee=e.invitee,this.client=e.client,this.type=null,this.forceTURN=e.forceTURN,this.ourPartyId=this.client.deviceId,this.turnServers=e.turnServers||[],0===this.turnServers.length&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:["stun:turn.matrix.org"]});for(const e of this.turnServers)u.checkObjectHasKeys(e,["urls"]);this.callId=E(),this.state=g.Fledgling,this.candidateSendQueue=[],this.candidateSendTries=0,this.sentEndOfCandidates=!1,this.inviteOrAnswerSent=!1,this.makingOffer=!1,this.remoteOnHold=!1,this.micMuted=!1,this.vidMuted=!1,this.feeds=[]}placeVoiceCall(){return s(this,void 0,void 0,(function*(){a.logger.debug("placeVoiceCall"),this.checkForErrorListener();const e=I(S.Audio);this.type=p.Voice,yield this.placeCallWithConstraints(e)}))}placeVideoCall(){return s(this,void 0,void 0,(function*(){a.logger.debug("placeVideoCall"),this.checkForErrorListener();const e=I(S.Video);this.type=p.Video,yield this.placeCallWithConstraints(e)}))}placeScreenSharingCall(e){var t;return s(this,void 0,void 0,(function*(){a.logger.debug("placeScreenSharingCall"),this.checkForErrorListener();try{const r=yield function(e){var t;return s(this,void 0,void 0,(function*(){if((null===(t=window.electron)||void 0===t?void 0:t.getDesktopCapturerSources)&&e){a.logger.debug("Electron getDesktopCapturerSources() is available...");const t=yield e();return t?{audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t.id}}}:null}return a.logger.debug("Electron desktopCapturer is not available..."),{audio:!1,video:!0}}))}(e);if(!r)return void this.terminate(y.Local,b.NoUserMedia,!1);(null===(t=window.electron)||void 0===t?void 0:t.getDesktopCapturerSources)?(a.logger.debug("Getting screen stream using getUserMedia()..."),this.screenSharingStream=yield navigator.mediaDevices.getUserMedia(r)):(a.logger.debug("Getting screen stream using getDisplayMedia()..."),this.screenSharingStream=yield navigator.mediaDevices.getDisplayMedia(r)),a.logger.debug("Got screen stream, requesting audio stream...");const n=I(S.Audio);this.placeCallWithConstraints(n)}catch(e){this.emit(m.Error,new _(b.NoUserMedia,"Failed to get screen-sharing stream: ",e)),this.terminate(y.Local,b.NoUserMedia,!1)}this.type=p.Video}))}getOpponentMember(){return this.opponentMember}opponentCanBeTransferred(){return Boolean(this.opponentCaps&&this.opponentCaps["m.call.transferee"])}getRemoteAssertedIdentity(){return this.remoteAssertedIdentity}getFeeds(){return this.feeds}getLocalFeeds(){return this.feeds.filter((e=>e.isLocal()))}getRemoteFeeds(){return this.feeds.filter((e=>!e.isLocal()))}noIncomingFeeds(){return!this.feeds.some((e=>!e.isLocal()))}pushNewFeed(e,t,r){const n=this.feeds.find((t=>t.stream.id===e.id));n?n.setNewStream(e):(this.feeds.push(new f.CallFeed(e,t,r,this.client,this.roomId)),this.emit(m.FeedsChanged,this.feeds))}deleteAllFeeds(){this.feeds=[],this.emit(m.FeedsChanged,this.feeds)}getCurrentCallStats(){return s(this,void 0,void 0,(function*(){return this.callHasEnded()?this.callStatsAtEnd:this.collectCallStats()}))}collectCallStats(){return s(this,void 0,void 0,(function*(){if(!this.peerConn)return;const e=yield this.peerConn.getStats(),t=[];for(const r of e)t.push(r[1]);return t}))}initWithInvite(e){var t;return s(this,void 0,void 0,(function*(){const r=e.getContent();this.direction=v.Inbound;(yield this.client.checkTurnServers())||a.logger.warn("Failed to get TURN credentials! Proceeding with call anyway..."),this.peerConn=this.createPeerConnection(),this.chooseOpponent(e);try{yield this.peerConn.setRemoteDescription(r.offer),yield this.addBufferedIceCandidates()}catch(e){return a.logger.debug("Failed to set remote description",e),void this.terminate(y.Local,b.SetRemoteDescription,!1)}const n=null===(t=this.feeds.find((e=>!e.isLocal())))||void 0===t?void 0:t.stream;if(!n||0===n.getTracks().length)return a.logger.error("No remote stream or no tracks after setting remote description!"),void this.terminate(y.Local,b.SetRemoteDescription,!1);this.type=n.getTracks().some((e=>"video"===e.kind))?p.Video:p.Voice,this.setState(g.Ringing),e.getLocalAge()&&setTimeout((()=>{this.state==g.Ringing&&(a.logger.debug("Call invite has expired. Hanging up."),this.hangupParty=y.Remote,this.setState(g.Ended),this.stopAllMedia(),"closed"!=this.peerConn.signalingState&&this.peerConn.close(),this.emit(m.Hangup))}),r.lifetime-e.getLocalAge())}))}initWithHangup(e){this.setState(g.Ended)}answer(){return s(this,void 0,void 0,(function*(){if(!this.inviteOrAnswerSent)if(a.logger.debug(`Answering call ${this.callId} of type ${this.type}`),this.localAVStream||this.waitForLocalAVStream)this.localAVStream?this.gotUserMediaForAnswer(this.localAVStream):this.waitForLocalAVStream&&this.setState(g.WaitLocalMedia);else{const e=I(this.type==p.Video?S.Video:S.Audio);a.logger.log("Getting user media with constraints",e),this.setState(g.WaitLocalMedia),this.waitForLocalAVStream=!0;try{const t=yield navigator.mediaDevices.getUserMedia(e);this.waitForLocalAVStream=!1,this.gotUserMediaForAnswer(t)}catch(e){return void this.getUserMediaFailed(e)}}}))}replacedBy(e){a.logger.debug(this.callId+" being replaced by "+e.callId),this.state===g.WaitLocalMedia?(a.logger.debug("Telling new call to wait for local media"),e.waitForLocalAVStream=!0):(this.state===g.CreateOffer||this.state===g.InviteSent)&&(a.logger.debug("Handing local stream to new call"),e.gotUserMediaForAnswer(this.localAVStream),delete this.localAVStream),this.successor=e,this.emit(m.Replaced,e),this.hangup(b.Replaced,!0)}hangup(e,t){if(this.callHasEnded())return;if(a.logger.debug("Ending call "+this.callId),this.terminate(y.Local,e,!t),this.state===g.WaitLocalMedia)return;const r={};e!==b.UserHangup&&(r.reason=e),this.sendVoipEvent(l.EventType.CallHangup,r)}reject(){if(this.state!==g.Ringing)throw Error("Call must be in 'ringing' state to reject!");if(this.opponentVersion<1)return a.logger.info(`Opponent version is less than 1 (${this.opponentVersion}): sending hangup instead of reject`),void this.hangup(b.UserHangup,!0);a.logger.debug("Rejecting call: "+this.callId),this.terminate(y.Local,b.UserHangup,!0),this.sendVoipEvent(l.EventType.CallReject,{})}setLocalVideoMuted(e){this.vidMuted=e,this.updateMuteStatus()}isLocalVideoMuted(){return this.vidMuted}setMicrophoneMuted(e){this.micMuted=e,this.updateMuteStatus()}isMicrophoneMuted(){return this.micMuted}isRemoteOnHold(){return this.remoteOnHold}setRemoteOnHold(e){if(this.isRemoteOnHold()!==e){this.remoteOnHold=e;for(const t of this.peerConn.getTransceivers())t.direction=e?"sendonly":"sendrecv";this.updateMuteStatus(),this.emit(m.RemoteHoldUnhold,this.remoteOnHold)}}isLocalOnHold(){if(this.state!==g.Connected)return!1;let e=!0;for(const t of this.peerConn.getTransceivers()){["inactive","recvonly"].includes(t.currentDirection)||(e=!1)}return e}sendDtmfDigit(e){for(const t of this.peerConn.getSenders())if("audio"===t.track.kind&&t.dtmf)return void t.dtmf.insertDTMF(e);throw new Error("Unable to find a track to send DTMF on")}updateMuteStatus(){if(!this.localAVStream)return;const e=this.micMuted||this.remoteOnHold;w(this.localAVStream.getAudioTracks(),!e);const t=this.vidMuted||this.remoteOnHold;w(this.localAVStream.getVideoTracks(),!t)}sendAnswer(){return s(this,void 0,void 0,(function*(){const e={answer:{sdp:this.peerConn.localDescription.sdp,type:this.peerConn.localDescription.type}};this.client.supportsCallTransfer&&(e.capabilities={"m.call.transferee":!0}),a.logger.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in answer`),this.candidateSendQueue=[];try{yield this.sendVoipEvent(l.EventType.CallAnswer,e),this.inviteOrAnswerSent=!0}catch(e){this.setState(g.Ringing),this.client.cancelPendingEvent(e.event);let t=b.SendAnswer,r="Failed to send answer";throw"UnknownDeviceError"==e.name&&(t=b.UnknownDevices,r="Unknown devices present in the room"),this.emit(m.Error,new _(t,r,e)),e}this.sendCandidateQueue()}))}onRemoteIceCandidatesReceived(e){return s(this,void 0,void 0,(function*(){if(this.callHasEnded())return;const t=e.getContent().candidates;if(!t)return void a.logger.info("Ignoring candidates event with no candidates!");const r=0===e.getContent().version?null:e.getContent().party_id||null;if(void 0===this.opponentPartyId){a.logger.info(`Bufferring ${t.length} candidates until we pick an opponent`);const e=this.remoteCandidateBuffer.get(r)||[];return e.push(...t),void this.remoteCandidateBuffer.set(r,e)}this.partyIdMatches(e.getContent())?yield this.addIceCandidates(t):a.logger.info(`Ignoring candidates from party ID ${e.getContent().party_id}: we have chosen party ID ${this.opponentPartyId}`)}))}onAnswerReceived(e){return s(this,void 0,void 0,(function*(){if(a.logger.debug(`Got answer for call ID ${this.callId} from party ID ${e.getContent().party_id}`),this.callHasEnded())a.logger.debug(`Ignoring answer because call ID ${this.callId} has ended`);else if(void 0===this.opponentPartyId){this.chooseOpponent(e),yield this.addBufferedIceCandidates(),this.setState(g.Connecting);try{yield this.peerConn.setRemoteDescription(e.getContent().answer)}catch(e){return a.logger.debug("Failed to set remote description",e),void this.terminate(y.Local,b.SetRemoteDescription,!1)}if(null!==this.opponentPartyId)try{yield this.sendVoipEvent(l.EventType.CallSelectAnswer,{selected_party_id:this.opponentPartyId})}catch(e){a.logger.warn("Failed to send select_answer event",e)}}else a.logger.info(`Ignoring answer from party ID ${e.getContent().party_id}: we already have an answer/reject from ${this.opponentPartyId}`)}))}onSelectAnswerReceived(e){return s(this,void 0,void 0,(function*(){if(this.direction!==v.Inbound)return void a.logger.warn("Got select_answer for an outbound call: ignoring");const t=e.getContent().selected_party_id;null!=t?t!==this.ourPartyId&&(a.logger.info(`Got select_answer for party ID ${t}: we are party ID ${this.ourPartyId}.`),this.terminate(y.Remote,b.AnsweredElsewhere,!0)):a.logger.warn("Got nonsensical select_answer with null/undefined selected_party_id: ignoring")}))}onNegotiateReceived(e){return s(this,void 0,void 0,(function*(){const t=e.getContent().description;if(!t||!t.sdp||!t.type)return void a.logger.info("Ignoring invalid m.call.negotiate event");const r=this.direction===v.Inbound,n="offer"===t.type&&(this.makingOffer||"stable"!=this.peerConn.signalingState);if(this.ignoreOffer=!r&&n,this.ignoreOffer)return void a.logger.info("Ignoring colliding negotiate event because we're impolite");const i=this.isLocalOnHold();try{if(yield this.peerConn.setRemoteDescription(t),"offer"===t.type){const e=yield this.peerConn.createAnswer();yield this.peerConn.setLocalDescription(e),this.sendVoipEvent(l.EventType.CallNegotiate,{description:this.peerConn.localDescription})}}catch(e){a.logger.warn("Failed to complete negotiation",e)}const o=this.isLocalOnHold();i!==o&&(this.emit(m.LocalHoldUnhold,o),this.emit(m.HoldUnhold,o))}))}onAssertedIdentityReceived(e){return s(this,void 0,void 0,(function*(){e.getContent().asserted_identity&&(this.remoteAssertedIdentity={id:e.getContent().asserted_identity.id,displayName:e.getContent().asserted_identity.display_name},this.emit(m.AssertedIdentityChanged))}))}callHasEnded(){return this.state===g.Ended}setState(e){const t=this.state;this.state=e,this.emit(m.State,e,t)}sendVoipEvent(e,t){return this.client.sendEvent(this.roomId,e,Object.assign({},t,{version:1,call_id:this.callId,party_id:this.ourPartyId}))}queueCandidate(e){if(this.candidateSendQueue.push(e),this.state===g.Ringing||!this.inviteOrAnswerSent)return;const t=this.direction===v.Inbound?500:2e3;0===this.candidateSendTries&&setTimeout((()=>{this.sendCandidateQueue()}),t)}transfer(e){return s(this,void 0,void 0,(function*(){const t=yield this.client.getProfileInfo(e),r=E(),n={replacement_id:E(),target_user:{id:e,display_name:t.display_name,avatar_url:t.avatar_url},create_call:r};yield this.sendVoipEvent(l.EventType.CallReplaces,n),yield this.terminate(y.Local,b.Transfered,!0)}))}transferToCall(e){return s(this,void 0,void 0,(function*(){const t=yield this.client.getProfileInfo(e.getOpponentMember().userId),r=yield this.client.getProfileInfo(this.getOpponentMember().userId),n=E(),i={replacement_id:E(),target_user:{id:this.getOpponentMember().userId,display_name:r.display_name,avatar_url:r.avatar_url},await_call:n};yield e.sendVoipEvent(l.EventType.CallReplaces,i);const o={replacement_id:E(),target_user:{id:e.getOpponentMember().userId,display_name:t.display_name,avatar_url:t.avatar_url},create_call:n};yield this.sendVoipEvent(l.EventType.CallReplaces,o),yield this.terminate(y.Local,b.Replaced,!0),yield e.terminate(y.Local,b.Transfered,!0)}))}terminate(e,t,r){return s(this,void 0,void 0,(function*(){this.callHasEnded()||(this.callStatsAtEnd=yield this.collectCallStats(),this.inviteTimeout&&(clearTimeout(this.inviteTimeout),this.inviteTimeout=null),t!==b.Replaced&&this.stopAllMedia(),this.deleteAllFeeds(),this.hangupParty=e,this.hangupReason=t,this.setState(g.Ended),this.peerConn&&"closed"!==this.peerConn.signalingState&&this.peerConn.close(),r&&this.emit(m.Hangup,this))}))}stopAllMedia(){a.logger.debug(`stopAllMedia (stream=${this.localAVStream})`);for(const e of this.feeds)for(const t of e.stream.getTracks())t.stop()}checkForErrorListener(){if(0===this.listeners("error").length)throw new Error("You MUST attach an error listener using call.on('error', function() {})")}sendCandidateQueue(){return s(this,void 0,void 0,(function*(){if(0===this.candidateSendQueue.length)return;const e=this.candidateSendQueue;this.candidateSendQueue=[],++this.candidateSendTries;const t={candidates:e};a.logger.debug("Attempting to send "+e.length+" candidates");try{yield this.sendVoipEvent(l.EventType.CallCandidates,t)}catch(t){if(t.event&&this.client.cancelPendingEvent(t.event),this.candidateSendQueue.push(...e),this.candidateSendTries>5){a.logger.debug("Failed to send candidates on attempt "+this.candidateSendTries+". Giving up on this call.",t);const e=b.SignallingFailed,r="Signalling failed";return this.emit(m.Error,new _(e,r,t)),void this.hangup(e,!1)}const r=500*Math.pow(2,this.candidateSendTries);++this.candidateSendTries,a.logger.debug("Failed to send candidates. Retrying in "+r+"ms",t),setTimeout((()=>{this.sendCandidateQueue()}),r)}}))}placeCallWithConstraints(e){return s(this,void 0,void 0,(function*(){a.logger.log("Getting user media with constraints",e),this.client.callEventHandler.calls.set(this.callId,this),this.setState(g.WaitLocalMedia),this.direction=v.Outbound,this.config=e;(yield this.client.checkTurnServers())||a.logger.warn("Failed to get TURN credentials! Proceeding with call anyway..."),this.peerConn=this.createPeerConnection();try{const t=yield navigator.mediaDevices.getUserMedia(e);this.gotUserMediaForInvite(t)}catch(e){return void this.getUserMediaFailed(e)}}))}createPeerConnection(){const e=new window.RTCPeerConnection({iceTransportPolicy:this.forceTURN?"relay":void 0,iceServers:this.turnServers,iceCandidatePoolSize:this.client.iceCandidatePoolSize});return e.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChanged),e.addEventListener("signalingstatechange",this.onSignallingStateChanged),e.addEventListener("icecandidate",this.gotLocalIceCandidate),e.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),e.addEventListener("track",this.onTrack),e.addEventListener("negotiationneeded",this.onNegotiationNeeded),e}partyIdMatches(e){return(0===e.version?null:e.party_id||null)===this.opponentPartyId}chooseOpponent(e){const t=e.getContent();a.logger.debug(`Choosing party ID ${t.party_id} for call ID ${this.callId}`),this.opponentVersion=t.version,0===this.opponentVersion?this.opponentPartyId=null:this.opponentPartyId=t.party_id||null,this.opponentCaps=t.capabilities||{},this.opponentMember=e.sender}addBufferedIceCandidates(){return s(this,void 0,void 0,(function*(){const e=this.remoteCandidateBuffer.get(this.opponentPartyId);e&&(a.logger.info(`Adding ${e.length} buffered candidates for opponent ${this.opponentPartyId}`),yield this.addIceCandidates(e)),this.remoteCandidateBuffer=null}))}addIceCandidates(e){return s(this,void 0,void 0,(function*(){for(const t of e)if(null!==t.sdpMid&&void 0!==t.sdpMid||null!==t.sdpMLineIndex&&void 0!==t.sdpMLineIndex){a.logger.debug("Call "+this.callId+" got remote ICE "+t.sdpMid+" candidate: "+t.candidate);try{yield this.peerConn.addIceCandidate(t)}catch(e){this.ignoreOffer||a.logger.info("Failed to add remote ICE candidate",e)}}else a.logger.debug("Ignoring remote ICE candidate with no sdpMid or sdpMLineIndex")}))}}function w(e,t){for(let r=0;rn(this,void 0,void 0,(function*(){if("SYNCING"===this.client.getSyncState()){yield Promise.all(this.callEventBuffer.map((e=>{this.client.decryptEventIfNeeded(e)})));const e=new Set;for(const t of this.callEventBuffer)t.getType()!==s.EventType.CallAnswer&&t.getType()!==s.EventType.CallHangup||e.add(t.getContent().call_id);for(const t of this.callEventBuffer)if(t.getType()!==s.EventType.CallInvite||!e.has(t.getContent().call_id))try{this.handleCallEvent(t)}catch(e){i.logger.error("Caught exception handling call event",e)}this.callEventBuffer=[]}})),this.onEvent=e=>{this.client.decryptEventIfNeeded(e),(this.eventIsACall(e)||e.isBeingDecrypted())&&this.callEventBuffer.push(e),(e.isBeingDecrypted()||e.isDecryptionFailure())&&e.once("Event.decrypted",(()=>{if(this.eventIsACall(e))if(this.callEventBuffer.includes(e))this.evaluateEventBuffer();else try{this.handleCallEvent(e)}catch(e){i.logger.error("Caught exception handling call event",e)}}))},this.client=e,this.calls=new Map,this.callEventBuffer=[],this.candidateEventsByCall=new Map}start(){this.client.on("sync",this.evaluateEventBuffer),this.client.on("event",this.onEvent)}stop(){this.client.removeListener("sync",this.evaluateEventBuffer),this.client.removeListener("event",this.onEvent)}eventIsACall(e){const t=e.getType();return t.startsWith("m.call.")||t.startsWith("org.matrix.call.")}handleCallEvent(e){const t=e.getContent();let r=t.call_id?this.calls.get(t.call_id):void 0;if(e.getType()===s.EventType.CallInvite){if(e.getSender()===this.client.credentials.userId)return;if(e.getLocalAge()>t.lifetime-3e3)return;if(r&&r.state===o.CallState.Ended)return;if(r&&i.logger.log(`WARN: Already have a MatrixCall with id ${t.call_id} but got an invite. Clobbering.`),t.invitee&&t.invitee!==this.client.getUserId())return;const n=this.client.getTurnServersExpiry()-Date.now();if(i.logger.info("Current turn creds expire in "+n+" ms"),r=o.createNewMatrixCall(this.client,e.getRoomId(),{forceTURN:this.client.forceTURN}),!r)return void i.logger.log("Incoming call ID "+t.call_id+" but this client doesn't support WebRTC");r.callId=t.call_id;const s=r.initWithInvite(e);if(this.calls.set(r.callId,r),this.candidateEventsByCall.get(r.callId))for(const e of this.candidateEventsByCall.get(r.callId))r.onRemoteIceCandidatesReceived(e);let a;for(const e of this.calls.values()){const t=[o.CallState.WaitLocalMedia,o.CallState.CreateOffer,o.CallState.InviteSent].includes(e.state);if(r.roomId===e.roomId&&e.direction===o.CallDirection.Outbound&&r.invitee===e.invitee&&t){a=e;break}}a?a.state===o.CallState.WaitLocalMedia||a.state===o.CallState.CreateOffer||a.callId>r.callId?(i.logger.log("Glare detected: answering incoming call "+r.callId+" and canceling outgoing call "+a.callId),a.replacedBy(r),r.answer()):(i.logger.log("Glare detected: rejecting incoming call "+r.callId+" and keeping outgoing call "+a.callId),r.hangup(o.CallErrorCode.Replaced,!0)):s.then((()=>{this.client.emit("Call.incoming",r)}))}else if(e.getType()===s.EventType.CallAnswer){if(!r)return;e.getSender()===this.client.credentials.userId?r.state===o.CallState.Ringing&&r.onAnsweredElsewhere(t):r.onAnswerReceived(e)}else if(e.getType()===s.EventType.CallCandidates){if(e.getSender()===this.client.credentials.userId)return;r?r.onRemoteIceCandidatesReceived(e):(this.candidateEventsByCall.has(t.call_id)||this.candidateEventsByCall.set(t.call_id,[]),this.candidateEventsByCall.get(t.call_id).push(e))}else if([s.EventType.CallHangup,s.EventType.CallReject].includes(e.getType()))r?r.state!==o.CallState.Ended&&(e.getType()===s.EventType.CallHangup?r.onHangupReceived(t):r.onRejectReceived(t),this.calls.delete(t.call_id)):(r=o.createNewMatrixCall(this.client,e.getRoomId()),r&&(r.callId=t.call_id,r.initWithHangup(e),this.calls.set(t.call_id,r)));else if(e.getType()===s.EventType.CallSelectAnswer){if(!r)return;if(e.getContent().party_id===r.ourPartyId)return;r.onSelectAnswerReceived(e)}else if(e.getType()===s.EventType.CallNegotiate){if(!r)return;if(e.getContent().party_id===r.ourPartyId)return;r.onNegotiateReceived(e)}else if(e.getType()===s.EventType.CallAssertedIdentity||e.getType()===s.EventType.CallAssertedIdentityPrefix){if(!r)return;if(e.getContent().party_id===r.ourPartyId)return;r.onAssertedIdentityReceived(e)}}}},{"../@types/event":58,"../logger":106,"./call":138}],140:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SDPStreamMetadataPurpose=void 0,function(e){e.Usermedia="m.usermedia",e.Screenshare="m.screenshare"}(r.SDPStreamMetadataPurpose||(r.SDPStreamMetadataPurpose={}))},{}],141:[function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.CallFeed=r.CallFeedEvent=void 0;const i=n(e("events"));var o;!function(e){e.NewStream="new_stream"}(o=r.CallFeedEvent||(r.CallFeedEvent={}));class s extends i.default{constructor(e,t,r,n,i){super(),this.stream=e,this.userId=t,this.purpose=r,this.client=n,this.roomId=i}getMember(){return this.client.getRoom(this.roomId).getMember(this.userId)}isLocal(){return this.userId===this.client.getUserId()}isAudioMuted(){return 0===this.stream.getAudioTracks().length}isVideoMuted(){return 0===this.stream.getVideoTracks().length}setNewStream(e){this.stream=e,this.emit(o.NewStream,this.stream)}}r.CallFeed=s},{events:36}]},{},[63]); \ No newline at end of file diff --git a/public/browser-matrix.min.js.map b/public/browser-matrix.min.js.map new file mode 100644 index 0000000..16cf32a --- /dev/null +++ b/public/browser-matrix.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["dist/browser-matrix.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","arr","len","arr2","Array","2","isArray","3","arrayLikeToArray","./arrayLikeToArray","4","self","ReferenceError","5","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","6","instance","Constructor","TypeError","7","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","push","Function","bind","prototype","./isNativeReflectConstruct","./setPrototypeOf","8","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","9","obj","10","_getPrototypeOf","getPrototypeOf","__proto__","11","subClass","superClass","create","constructor","12","__esModule","default","13","_typeof","_getRequireWildcardCache","WeakMap","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","hasOwnProperty","desc","set","@babel/runtime/helpers/typeof","14","toString","indexOf","15","sham","Proxy","Date","16","iter","Symbol","iterator","from","17","_arr","_n","_d","_e","_s","_i","next","18","19","20","assertThisInitialized","./assertThisInitialized","21","_setPrototypeOf","22","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","./arrayWithHoles","./iterableToArrayLimit","./nonIterableRest","./unsupportedIterableToArray","23","arrayWithoutHoles","iterableToArray","nonIterableSpread","./arrayWithoutHoles","./iterableToArray","./nonIterableSpread","24","25","minLen","slice","name","test","26","isNativeFunction","_wrapNativeSuper","_cache","Map","Wrapper","./construct","./getPrototypeOf","./isNativeFunction","27","regenerator-runtime","28","escaped","escapes","String","fromCharCode","toUpperCase","escapeString","lastIndex","replace","stringify","isFinite","array","sep","result","stringifyArray","object","keys","sort","stringifyObject","29","_Buffer","Buffer","ALPHABET","BASE_MAP","Uint8Array","j","x","charAt","xc","charCodeAt","BASE","LEADER","FACTOR","Math","log","iFACTOR","decodeUnsafe","source","alloc","psz","zeroes","size","b256","carry","it3","it4","vch","allocUnsafe","fill","encode","isBuffer","pbegin","pend","b58","it1","it2","str","repeat","decode","string","buffer","safe-buffer","30","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","join","start","end","num","output","31","root","factory","XHR","XMLHttpRequest","request","options","callback","options_onResponse","onResponse","uri","JSON","parse","verbose","level","logger","levels","noop","console","formatted","getLogger","url","unsupported_options","method","headers","body","timeout","DEFAULT_TIMEOUT","host","json","accept","serialize","encodeURIComponent","qs","form","encoding","toLowerCase","multi","boundry","floor","random","lines","type","multipart","authorization","auth","data","h1","h2","h3","h4","bits","ac","enc","tmp_arr","b64_enc","username","password","xhr","timed_out","is_cors","ajaxLocation","rurl","location","href","document","createElement","ajaxLocParts","exec","is_crossDomain","supports_cors","req_seq","seq_id","id","_id","cors_err","cors","too_late","er","duration","milliseconds","timeoutTimer","setTimeout","did","response","loading","onreadystatechange","on_state_change","open","withCredentials","send","event","debug","state","readyState","OPENED","setRequestHeader","HEADERS_RECEIVED","on_response","LOADING","on_loading","DONE","on_end","status","clearTimeout","statusCode","responseText","run_xhr","trace","warn","context","defaults","requester","def","params","de","post","put","head","forEach","shortcut","opts","concat","couch","resp","reason","define","amd","returnExports","32","global","freeExports","nodeType","freeModule","freeGlobal","window","punycode","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","errors","overflow","not-basic","invalid-input","stringFromCharCode","RangeError","map","mapDomain","split","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","input","out","basic","index","oldi","w","baseMinusT","codePoint","inputLength","bias","lastIndexOf","splice","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","version","ucs2","toASCII","toUnicode","33","basex","base-x","34","base64","ieee754","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","buf","encodingOrOffset","isEncoding","actual","write","fromString","ArrayBuffer","isView","fromArrayLike","isInstance","byteOffset","fromArrayBuffer","valueOf","b","checked","copy","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","species","poolSize","allocUnsafeSlow","_isBuffer","compare","y","list","pos","swap16","swap32","swap64","toLocaleString","equals","inspect","max","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","ret","toHex","bytes","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","src","dst","base64-js","35","PARAM_REGEXP","TEXT_REGEXP","TOKEN_REGEXP","QESC_REGEXP","QUOTE_REGEXP","TYPE_REGEXP","qstring","ContentType","parameters","format","param","header","getHeader","getcontenttype","match","36","ReflectOwnKeys","R","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","isNaN","EventEmitter","init","once","emitter","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","newListener","emit","unshift","warned","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","message","handler","listeners","addListener","on","prependListener","prependOnceListener","position","originalListener","shift","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","37","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","abs","LN2","38","definition","undefinedType","isIE","navigator","userAgent","logMethods","bindMethod","methodName","traceForIE","realMethod","replaceLoggingMethods","loggerName","methodFactory","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","defaultLevel","currentLevel","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","persist","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","_log","noConflict","getLoggers","39","retry","networkErrorMsgs","AbortError","[object Object]","super","originalError","stack","pRetry","onFailedAttempt","retries","operation","attempt","async","attemptNumber","stop","errorMessage","retriesLeft","decorateErrorWithCounts","mainError","40","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","binding","cwd","chdir","umask","41","percentTwenties","Format","formatters","RFC1738","RFC3986","42","formats","./formats","./parse","./stringify","43","utils","allowDots","allowPrototypes","arrayLimit","charset","charsetSentinel","comma","decoder","delimiter","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","child","segment","parent","chain","leaf","cleanRoot","0","parseObject","isRegExp","normalizeParseOptions","tempObj","cleanStr","skipIndex","part","bracketEqualsPos","maybeMap","encodedVal","combine","parseValues","merge","compact","./utils","44","arrayPrefixGenerators","brackets","prefix","indices","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","encoder","encodeValuesOnly","formatter","serializeDate","date","skipNulls","generateArrayPrefix","filter","v","objKeys","values","keyPrefix","normalizeStringifyOptions","arrayFormat","joined","45","hexTable","arrayToObject","assign","reduce","acc","prop","refs","item","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","kind","escape","mapped","mergeTarget","targetItem","46","eq","regexp","maxKeys","kstr","vstr","idx","xs","47","stringifyPrimitive","objectKeys","ks","48","./decode","./encode","49","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","reverse","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","50","./lib/retry","51","RetryOperation","timeouts","forever","unref","maxRetryTime","factor","minTimeout","maxTimeout","randomize","createTimeout","round","methods","original","op","./retry_operation","52","_originalTimeouts","_timeouts","_options","_maxRetryTime","_fn","_errors","_attempts","_operationTimeout","_operationTimeoutCb","_timeout","_operationStart","_cachedTimeouts","currentTime","getTime","timer","timeoutOps","cb","try","attempts","counts","mainErrorCount","53","copyProps","SafeBuffer","54","֭","֮","֨","֤","᪴","⃛","ؙ","ࣳ","̓","̕","ُ","ٝ","֜","֝","ؘ","݇","́","॔","َ","̀","॓","̌","꙼","٘","ٚ","ͮ","ۨ","̐","ँ","ঁ","ઁ","ଁ","ఀ","ಁ","ഁ","𑒿","᳐","̑","ٛ","߮","꛰","֯","۟","៓","゚","ْ","ஂ","ံ","ំ","𑌀","ํ","ໍ","ͦ","ⷪ","࣫","߳","ً","ࣰ","͂","ٓ","ׄ","۬","݀","࣪","݁","͘","ֹ","ֺ","ׂ","ׁ","߭","ं","ਂ","ં","்","̷","᪷","̢","ͅ","᳒","̅","ٙ","߫","꛱","᳚","ٗ","͗","ࣿ","ࣸ","ऀ","᳭","᳜","ٖ","᳕","͇","ࣹ","ࣺ","゛","゜","̶","〬","ׅ","࣭","᳝","ִ","ٜ","़","়","਼","઼","଼","𑇊","𑓃","𐨺","࣮","᳞","༷","〭","̧","̡","̹","᳙","᳘","॒","̠","ࣱ","ࣨ","ࣥ","ﱞ","ࣲ","ﱟ","ﳲ","ﱠ","ﳳ","ﱡ","ؚ","̗","ﳴ","ﱢ","ﱣ","ٟ","̍","݂","ਃ","ః","ಃ","ഃ","ඃ","း","𑓁","់","່","້","໊","໋","꙯","
","
"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","ߺ","﹍","﹎","﹏","‐","‑","‒","–","﹘","۔","⁃","˗","−","➖","Ⲻ","⨩","⸚","﬩","∸","⨪","꓾","~","؍","٫","‚","¸","ꓹ","⸲","٬",";","⸵","ः","ઃ",":","։","܃","܄","᛬","︰","᠃","᠉","⁚","׃","˸","꞉","∶","ː","ꓽ","⩴","⧴","!","ǃ","ⵑ","‼","⁉","ʔ","Ɂ","ॽ","Ꭾ","ꛫ","⁈","⁇","⸮","𝅭","․","܁","܂","꘎","𐩐","٠","۰","ꓸ","ꓻ","‥","ꓺ","…","꛴","・","・","᛫","·","⸱","𐄁","•","‧","∙","⋅","ꞏ","ᐧ","⋯","ⵈ","ᑄ","⋗","ᐷ","ᑀ","ᔯ","ᑾ","ᒀ","ᑺ","ᒘ","ᒶ","ᑶ","ᑗ","ᐺ","ᐼ","ᒮ","ᐎ","ᑙ","ᐌ","ᐐ","ᐒ","ᐔ","ᐗ","ᐙ","ᐾ","ᑂ","ᑆ","ᑛ","ᑔ","ᑝ","ᑟ","ᑡ","ᑣ","ᑴ","ᑸ","ᑼ","ᒒ","ᒔ","ᒖ","ᒚ","ᒜ","ᒞ","ᒬ","ᒰ","ᒲ","ᒴ","ᒸ","ᓉ","ᣆ","ᣈ","ᣊ","ᣌ","ᓋ","ᓍ","ᓜ","ᓞ","ᓠ","ᓢ","ᓤ","ᓦ","ᓨ","ᓶ","ᓸ","ᓺ","ᓼ","ᓾ","ᔀ","ᔂ","ᔗ","ᔙ","ᔛ","ᔝ","ᔟ","ᔡ","ᔣ","ᔱ","ᔳ","ᔵ","ᔷ","ᔹ","ᔻ","ᣎ","ᣏ","ᣐ","ᣑ","ᣒ","ᣓ","ᕎ","ᕛ","ᕨ","ᢳ","ᢶ","ᢹ","ᣂ","꠰","॥","᰼","။","᪩","᪫","᭟","𐩗","𑑌","𑙂","𑱂","᱿","՝","'","‘","’","‛","′","‵","՚","׳","`","`","`","´","΄","´","᾽","᾿","῾","ʹ","ʹ","ˈ","ˊ","ˋ","˴","ʻ","ʽ","ʼ","ʾ","ꞌ","י","ߴ","ߵ","ᑊ","ᛌ","𖽑","𖽒","᳓","\"",""","“","”","‟","″","‶","〃","״","˝","ʺ","˶","ˮ","ײ","‴","‷","⁗","Ɓ","Ɗ","ʼn","Ƥ","Ƭ","Ƴ","[","❨","❲","〔","﴾","⸨","㈠","⑵","⒇","⑶","⑷","⑸","⑹","⑺","⑻","⑼","⒜","🄐","⒝","🄑","⒞","🄒","⒟","🄓","⒠","🄔","⒡","🄕","⒢","🄖","⒣","🄗","⒤","⒥","🄙","⒦","🄚","⑴","🄘","⒧","🄛","⑿","⒀","⒁","⒂","⒃","⒄","⒅","⒆","⑾","⑽","🄜","⒩","🄝","⒪","🄞","⒫","🄟","⒬","🄠","⒭","🄡","⒨","⒮","🄢","🄪","⒯","🄣","⒰","🄤","⒱","🄥","⒲","🄦","⒳","🄧","⒴","🄨","⒵","🄩","㈀","㈎","㈁","㈏","㈂","㈐","㈃","㈑","㈄","㈒","㈅","㈓","㈆","㈔","㈇","㈕","㈝","㈞","㈈","㈖","㈜","㈉","㈗","㈊","㈘","㈋","㈙","㈌","㈚","㈍","㈛","㈦","㈢","🉁","㈨","㈡","🉂","㈤","㈹","㈽","㉁","㈧","㈥","㈸","🉇","㈩","㈿","㈴","㈺","㈣","㈯","㈻","🉃","🉅","🉈","㈰","㈪","㈲","㈭","🉀","㈱","㈬","㈫","🉄","㈵","🉆","㈼","㈳","㈷","㉀","㉂","㉃","㈶","㈾","㈮","]","❩","❳","〕","﴿","⸩","❴","𝄔","❵","〚","〛","⟨","〈","〈","㇛","く","𡿨","⟩","〉","〉","^","⸿","⁎","٭","∗","𐌟","᜵","⁁","∕","⁄","╱","⟋","⧸","𝈺","㇓","〳","Ⳇ","ノ","丿","⼃","⧶","⫽","⫻","\","﹨","∖","⟍","⧵","⧹","𝈏","𝈻","㇔","丶","⼂","⳹","⑊","⟈","ꝸ","૰","𑂻","𑇇","⚬","𑇛","៙","៕","៚","༌","༎","˄","ˆ","꙾","˘","‾","﹉","﹊","﹋","﹌","¯"," ̄","▔","ъ","ꙑ","͵","˻","꜖","꜔","。","⸰","˚","∘","○","◦","⍜","⍤","℃","℉","௵","༛","༟","࿎","༞","Ⓒ","Ⓡ","Ⓟ","𝈛","⯬","⯭","⯮","⯯","↵","⥥","⥯","𝛛","𝜕","𝝏","𝞉","𝟃","𞣌","𞣍","ð","⌀","𝛁","𝛻","𝜵","𝝯","𝞩","𑢨","⍢","⍫","█","■","⨿","᛭","➕","𐊛","⨣","⨢","⨤","∔","⨥","⨦","⨧","➗","‹","❮","˂","𝈶","ᐸ","ᚲ","⋖","Ⲵ","ᑅ","≪","⋘","᐀","⹀","゠","꓿","≚","≙","≗","≐","≑","⩮","⩵","⩶","≞","›","❯","˃","𝈷","ᐳ","𖼿","ᑁ","⪥","≫","⨠","⋙","⁓","˜","῀","∼","⍨","⸞","⩪","⸟","𞣈","⋀","∯","∰","⸫","⸪","⸬","𑇞","♎","🝞","≣","⨃","⨄","𝈸","𝈹","⨅","⨆","⨂","⍟","🝱","🝕","◁","▷","⍣","︴","◠","⨽","⌥","⧇","◎","⦾","⧅","⦰","⏃","⏂","⏁","⏆","☸","︵","︶","︷","︸","︹","︺","▱","⏼","︱","|","┃","┏","┣","▐","▗","▝","☐","■","▸","►","⳩","🜊","🌒","🌙","⏾","🌘","⧙","🜺","⨾","𐆠","♩","♪","⓪","↺","˙","ൎ","-","—","―","─","━","㇐","ꟷ","ᅳ","ㅡ","一","⼀","ᆖ","ힹ","ힺ","ힻ","ힼ","ᆕ","ᅴ","ㅢ","ᆗ","🄏","₤","〒","〶","᭜","꧆","𑓑","೧","ၥ","①","⑩","⏨","𝟐","𝟚","𝟤","𝟮","𝟸","🯲","Ꝛ","Ƨ","Ϩ","Ꙅ","ᒿ","ꛯ","ꧏ","۲","૨","𑓒","೨","②","ƻ","🄃","⒉","㏵","㍮","㏶","㍯","㏷","㍰","㏸","㏹","㏺","㏻","㏼","㏴","㍭","⒛","㏳","㍬","෩","෯","㏡","㋁","㍚","𝈆","𝟑","𝟛","𝟥","𝟯","𝟹","🯳","Ɜ","Ȝ","Ʒ","Ꝫ","Ⳍ","З","Ӡ","𖼻","𑣊","۳","𞣉","૩","③","Ҙ","🄄","⒊","㏾","㏽","㏢","㋂","㍛","𝟒","𝟜","𝟦","𝟰","𝟺","🯴","Ꮞ","𑢯","۴","૪","④","🄅","⒋","ᔰ","㏣","㋃","㍜","𝟓","𝟝","𝟧","𝟱","𝟻","🯵","Ƽ","𑢻","⑤","🄆","⒌","㏤","㋄","㍝","𝟔","𝟞","𝟨","𝟲","𝟼","🯶","Ⳓ","б","Ꮾ","𑣕","۶","𑓖","⑥","🄇","⒍","㏥","㋅","㍞","𝈒","𝟕","𝟟","𝟩","𝟳","𝟽","🯷","𐓒","𑣆","⑦","🄈","⒎","㏦","㋆","㍟","ଃ","৪","੪","𞣋","𝟖","𝟠","𝟪","𝟴","𝟾","🯸","ȣ","Ȣ","𐌚","૮","⑧","🄉","⒏","㏧","㋇","㍠","੧","୨","৭","൭","𝟗","𝟡","𝟫","𝟵","𝟿","🯹","Ꝯ","Ⳋ","𑣌","𑢬","𑣖","१","𑣤","۹","೯","⑨","🄊","⒐","㏨","㋈","㍡","⍺","a","𝐚","𝑎","𝒂","𝒶","𝓪","𝔞","𝕒","𝖆","𝖺","𝗮","𝘢","𝙖","𝚊","ɑ","α","𝛂","𝛼","𝜶","𝝰","𝞪","а","ⷶ","A","𝐀","𝐴","𝑨","𝒜","𝓐","𝔄","𝔸","𝕬","𝖠","𝗔","𝘈","𝘼","𝙰","Α","𝚨","𝛢","𝜜","𝝖","𝞐","А","Ꭺ","ᗅ","ꓮ","𖽀","𐊠","⍶","ǎ","Ǎ","ȧ","Ȧ","ẚ","℀","℁","ꜳ","Ꜳ","æ","ӕ","Æ","Ӕ","ꜵ","Ꜵ","🜇","ꜷ","Ꜷ","ꜹ","ꜻ","Ꜹ","Ꜻ","ꜽ","Ꜽ","ꭺ","∀","𝈗","ᗄ","ꓯ","𐐟","𝐛","𝑏","𝒃","𝒷","𝓫","𝔟","𝕓","𝖇","𝖻","𝗯","𝘣","𝙗","𝚋","Ƅ","Ь","Ꮟ","ᑲ","ᖯ","B","ℬ","𝐁","𝐵","𝑩","𝓑","𝔅","𝔹","𝕭","𝖡","𝗕","𝘉","𝘽","𝙱","Ꞵ","Β","𝚩","𝛣","𝜝","𝝗","𝞑","В","Ᏼ","ᗷ","ꓐ","𐊂","𐊡","𐌁","ɓ","ᑳ","ƃ","Ƃ","Б","ƀ","ҍ","Ҍ","ѣ","Ѣ","ᑿ","ᒁ","ᒈ","Ы","в","ᏼ","c","ⅽ","𝐜","𝑐","𝒄","𝒸","𝓬","𝔠","𝕔","𝖈","𝖼","𝗰","𝘤","𝙘","𝚌","ᴄ","ϲ","ⲥ","с","ꮯ","𐐽","ⷭ","🝌","𑣲","𑣩","C","Ⅽ","ℂ","ℭ","𝐂","𝐶","𝑪","𝒞","𝓒","𝕮","𝖢","𝗖","𝘊","𝘾","𝙲","Ϲ","Ⲥ","С","Ꮯ","ꓚ","𐊢","𐌂","𐐕","𐔜","¢","ȼ","₡","🅮","ç","ҫ","Ç","Ҫ","Ƈ","℅","℆","🅭","⋴","ɛ","ε","ϵ","𝛆","𝛜","𝜀","𝜖","𝜺","𝝐","𝝴","𝞊","𝞮","𝟄","ⲉ","є","ԑ","ꮛ","𑣎","𐐩","€","Ⲉ","Є","⍷","ͽ","Ͽ","ⅾ","ⅆ","𝐝","𝑑","𝒅","𝒹","𝓭","𝔡","𝕕","𝖉","𝖽","𝗱","𝘥","𝙙","𝚍","ԁ","Ꮷ","ᑯ","ꓒ","Ⅾ","ⅅ","𝐃","𝐷","𝑫","𝒟","𝓓","𝔇","𝔻","𝕯","𝖣","𝗗","𝘋","𝘿","𝙳","Ꭰ","ᗞ","ᗪ","ꓓ","ɗ","ɖ","ƌ","đ","Đ","Ð","Ɖ","₫","ꝺ","ᑻ","ᒇ","ʤ","dz","ʣ","Dz","DZ","dž","Dž","DŽ","ʥ","ꭰ","⸹","δ","𝛅","𝛿","𝜹","𝝳","𝞭","ծ","ᕷ","℮","e","ℯ","ⅇ","𝐞","𝑒","𝒆","𝓮","𝔢","𝕖","𝖊","𝖾","𝗲","𝘦","𝙚","𝚎","ꬲ","е","ҽ","ⷷ","⋿","E","ℰ","𝐄","𝐸","𝑬","𝓔","𝔈","𝔼","𝕰","𝖤","𝗘","𝘌","𝙀","𝙴","Ε","𝚬","𝛦","𝜠","𝝚","𝞔","Е","ⴹ","Ꭼ","ꓰ","𑢦","𑢮","𐊆","ě","Ě","ɇ","Ɇ","ҿ","ꭼ","ə","ә","∃","ⴺ","ꓱ","ɚ","ᴔ","ꭁ","ꭂ","Ә","𝈡","ℇ","Ԑ","Ꮛ","𖼭","𐐁","ᶟ","ᴈ","з","ҙ","𐑂","ꞝ","𐐪","𝐟","𝑓","𝒇","𝒻","𝓯","𝔣","𝕗","𝖋","𝖿","𝗳","𝘧","𝙛","𝚏","ꬵ","ꞙ","ſ","ẝ","ք","𝈓","ℱ","𝐅","𝐹","𝑭","𝓕","𝔉","𝔽","𝕱","𝖥","𝗙","𝘍","𝙁","𝙵","Ꞙ","Ϝ","𝟊","ᖴ","ꓝ","𑣂","𑢢","𐊇","𐊥","𐔥","ƒ","Ƒ","ᵮ","℻","ff","ffi","ffl","fi","fl","ʩ","ᖵ","ꓞ","𝈰","ᖷ","g","ℊ","𝐠","𝑔","𝒈","𝓰","𝔤","𝕘","𝖌","𝗀","𝗴","𝘨","𝙜","𝚐","ɡ","ᶃ","ƍ","ց","𝐆","𝐺","𝑮","𝒢","𝓖","𝔊","𝔾","𝕲","𝖦","𝗚","𝘎","𝙂","𝙶","Ԍ","Ꮐ","Ᏻ","ꓖ","ᶢ","ɠ","ǧ","Ǧ","ǵ","ǥ","Ǥ","Ɠ","ԍ","ꮐ","ᏻ","h","ℎ","𝐡","𝒉","𝒽","𝓱","𝔥","𝕙","𝖍","𝗁","𝗵","𝘩","𝙝","𝚑","һ","հ","Ꮒ","H","ℋ","ℌ","ℍ","𝐇","𝐻","𝑯","𝓗","𝕳","𝖧","𝗛","𝘏","𝙃","𝙷","Η","𝚮","𝛨","𝜢","𝝜","𝞖","Ⲏ","Н","Ꮋ","ᕼ","ꓧ","𐋏","ᵸ","ɦ","ꚕ","Ᏺ","Ⱨ","Ң","ħ","ℏ","ћ","Ħ","Ӊ","Ӈ","н","ꮋ","ң","ӊ","ӈ","Ԋ","ꮀ","Ͱ","Ꭸ","Ꮀ","ꚱ","ꞕ","˛","⍳","i","ⅰ","ℹ","ⅈ","𝐢","𝑖","𝒊","𝒾","𝓲","𝔦","𝕚","𝖎","𝗂","𝗶","𝘪","𝙞","𝚒","ı","𝚤","ɪ","ɩ","ι","ι","ͺ","𝛊","𝜄","𝜾","𝝸","𝞲","і","ꙇ","ӏ","ꭵ","Ꭵ","𑣃","ⓛ","⍸","ǐ","Ǐ","ɨ","ᵻ","ᵼ","ⅱ","ⅲ","ij","ⅳ","ⅸ","j","ⅉ","𝐣","𝑗","𝒋","𝒿","𝓳","𝔧","𝕛","𝖏","𝗃","𝗷","𝘫","𝙟","𝚓","ϳ","ј","J","𝐉","𝐽","𝑱","𝒥","𝓙","𝔍","𝕁","𝕵","𝖩","𝗝","𝘑","𝙅","𝙹","Ʝ","Ϳ","Ј","Ꭻ","ᒍ","ꓙ","ɉ","Ɉ","ᒙ","𝚥","յ","ꭻ","𝐤","𝑘","𝒌","𝓀","𝓴","𝔨","𝕜","𝖐","𝗄","𝗸","𝘬","𝙠","𝚔","K","K","𝐊","𝐾","𝑲","𝒦","𝓚","𝔎","𝕂","𝕶","𝖪","𝗞","𝘒","𝙆","𝙺","Κ","𝚱","𝛫","𝜥","𝝟","𝞙","Ⲕ","К","Ꮶ","ᛕ","ꓗ","𐔘","ƙ","Ⱪ","Қ","₭","Ꝁ","Ҟ","Ƙ","׀","|","∣","⏽","│","١","۱","𐌠","𞣇","𝟏","𝟙","𝟣","𝟭","𝟷","🯱","I","I","Ⅰ","ℐ","ℑ","𝐈","𝐼","𝑰","𝓘","𝕀","𝕴","𝖨","𝗜","𝘐","𝙄","𝙸","Ɩ","l","ⅼ","ℓ","𝐥","𝑙","𝒍","𝓁","𝓵","𝔩","𝕝","𝖑","𝗅","𝗹","𝘭","𝙡","𝚕","ǀ","Ι","𝚰","𝛪","𝜤","𝝞","𝞘","Ⲓ","І","Ӏ","ו","ן","ا","𞸀","𞺀","ﺎ","ﺍ","ߊ","ⵏ","ᛁ","ꓲ","𖼨","𐊊","𐌉","𝈪","Ⅼ","ℒ","𝐋","𝐿","𝑳","𝓛","𝔏","𝕃","𝕷","𝖫","𝗟","𝘓","𝙇","𝙻","Ⳑ","Ꮮ","ᒪ","ꓡ","𖼖","𑢣","𑢲","𐐛","𐔦","ﴼ","ﴽ","ł","Ł","ɭ","Ɨ","ƚ","ɫ","إ","ﺈ","ﺇ","ٳ","ŀ","Ŀ","ᒷ","🄂","⒈","ױ","⒓","㏫","㋋","㍤","⒔","㏬","㍥","⒕","㏭","㍦","⒖","㏮","㍧","⒗","㏯","㍨","⒘","㏰","㍩","⒙","㏱","㍪","⒚","㏲","㍫","lj","IJ","Lj","LJ","‖","∥","Ⅱ","ǁ","װ","𐆙","⒒","Ⅲ","𐆘","㏪","㋊","㍣","Ю","⒑","㏩","㋉","㍢","ʪ","₶","Ⅳ","Ⅸ","ɮ","ʫ","أ","ﺄ","ﺃ","ٲ","ٵ","ﷳ","ﷲ","㏠","㋀","㍙","ⳑ","ꮮ","𐑃","M","Ⅿ","ℳ","𝐌","𝑀","𝑴","𝓜","𝔐","𝕄","𝕸","𝖬","𝗠","𝘔","𝙈","𝙼","Μ","𝚳","𝛭","𝜧","𝝡","𝞛","Ϻ","Ⲙ","М","Ꮇ","ᗰ","ᛖ","ꓟ","𐊰","𐌑","Ӎ","🝫","ⷨ","𝐧","𝑛","𝒏","𝓃","𝓷","𝔫","𝕟","𝖓","𝗇","𝗻","𝘯","𝙣","𝚗","ո","ռ","N","ℕ","𝐍","𝑁","𝑵","𝒩","𝓝","𝔑","𝕹","𝖭","𝗡","𝘕","𝙉","𝙽","Ν","𝚴","𝛮","𝜨","𝝢","𝞜","Ⲛ","ꓠ","𐔓","𐆎","ɳ","ƞ","η","𝛈","𝜂","𝜼","𝝶","𝞰","Ɲ","ᵰ","nj","Nj","NJ","№","ͷ","и","𐑍","ņ","ం","ಂ","ം","ං","०","੦","૦","௦","౦","೦","൦","๐","໐","၀","٥","۵","o","ℴ","𝐨","𝑜","𝒐","𝓸","𝔬","𝕠","𝖔","𝗈","𝗼","𝘰","𝙤","𝚘","ᴏ","ᴑ","ꬽ","ο","𝛐","𝜊","𝝄","𝝾","𝞸","σ","𝛔","𝜎","𝝈","𝞂","𝞼","ⲟ","о","ჿ","օ","ס","ه","𞸤","𞹤","𞺄","ﻫ","ﻬ","ﻪ","ﻩ","ھ","ﮬ","ﮭ","ﮫ","ﮪ","ہ","ﮨ","ﮩ","ﮧ","ﮦ","ە","ഠ","ဝ","𐓪","𑣈","𑣗","𐐬","߀","০","୦","〇","𑓐","𑣠","𝟎","𝟘","𝟢","𝟬","𝟶","🯰","O","𝐎","𝑂","𝑶","𝒪","𝓞","𝔒","𝕆","𝕺","𝖮","𝗢","𝘖","𝙊","𝙾","Ο","𝚶","𝛰","𝜪","𝝤","𝞞","Ⲟ","О","Օ","ⵔ","ዐ","ଠ","𐓂","ꓳ","𑢵","𐊒","𐊫","𐐄","𐔖","⁰","ᵒ","ǒ","Ǒ","ۿ","Ő","ø","ꬾ","Ø","ⵁ","Ǿ","ɵ","ꝋ","ө","ѳ","ꮎ","ꮻ","⊖","⊝","⍬","𝈚","🜔","Ɵ","Ꝋ","θ","ϑ","𝛉","𝛝","𝜃","𝜗","𝜽","𝝑","𝝷","𝞋","𝞱","𝟅","Θ","ϴ","𝚯","𝚹","𝛩","𝛳","𝜣","𝜭","𝝝","𝝧","𝞗","𝞡","Ө","Ѳ","ⴱ","Ꮎ","Ꮻ","ꭴ","ﳙ","🄁","🄀","ơ","Ơ","Ꭴ","%","٪","⁒","‰","؉","‱","؊","œ","Œ","ɶ","∞","ꝏ","ꚙ","Ꝏ","Ꚙ","ﳗ","ﱑ","ﳘ","ﱒ","ﶓ","ﶔ","ﱓ","ﱔ","ൟ","တ","㍘","ↄ","ᴐ","ͻ","𐑋","Ↄ","Ͻ","ꓛ","𐐣","ꬿ","ꭢ","𐐿","⍴","p","𝐩","𝑝","𝒑","𝓅","𝓹","𝔭","𝕡","𝖕","𝗉","𝗽","𝘱","𝙥","𝚙","ρ","ϱ","𝛒","𝛠","𝜌","𝜚","𝝆","𝝔","𝞀","𝞎","𝞺","𝟈","ⲣ","р","P","ℙ","𝐏","𝑃","𝑷","𝒫","𝓟","𝔓","𝕻","𝖯","𝗣","𝘗","𝙋","𝙿","Ρ","𝚸","𝛲","𝜬","𝝦","𝞠","Ⲣ","Р","Ꮲ","ᑭ","ꓑ","𐊕","ƥ","ᵽ","ᑷ","ᒆ","ᴩ","ꮲ","φ","ϕ","𝛗","𝛟","𝜑","𝜙","𝝋","𝝓","𝞅","𝞍","𝞿","𝟇","ⲫ","ф","𝐪","𝑞","𝒒","𝓆","𝓺","𝔮","𝕢","𝖖","𝗊","𝗾","𝘲","𝙦","𝚚","ԛ","գ","զ","ℚ","𝐐","𝑄","𝑸","𝒬","𝓠","𝔔","𝕼","𝖰","𝗤","𝘘","𝙌","𝚀","ⵕ","ʠ","🜀","ᶐ","ᴋ","κ","ϰ","𝛋","𝛞","𝜅","𝜘","𝜿","𝝒","𝝹","𝞌","𝞳","𝟆","ⲕ","к","ꮶ","қ","ҟ","𝐫","𝑟","𝒓","𝓇","𝓻","𝔯","𝕣","𝖗","𝗋","𝗿","𝘳","𝙧","𝚛","ꭇ","ꭈ","ᴦ","ⲅ","г","ꮁ","𝈖","ℛ","ℜ","ℝ","𝐑","𝑅","𝑹","𝓡","𝕽","𝖱","𝗥","𝘙","𝙍","𝚁","Ʀ","Ꭱ","Ꮢ","𐒴","ᖇ","ꓣ","𖼵","ɽ","ɼ","ɍ","ғ","ᵲ","ґ","𑣣","ⅿ","𝐦","𝑚","𝒎","𝓂","𝓶","𝔪","𝕞","𝖒","𝗆","𝗺","𝘮","𝙢","𝚖","𑜀","₥","ɱ","ᵯ","₨","ꭱ","ꮢ","я","ᵳ","℩","s","𝐬","𝑠","𝒔","𝓈","𝓼","𝔰","𝕤","𝖘","𝗌","𝘀","𝘴","𝙨","𝚜","ꜱ","ƽ","ѕ","ꮪ","𑣁","𐑈","S","𝐒","𝑆","𝑺","𝒮","𝓢","𝔖","𝕊","𝕾","𝖲","𝗦","𝘚","𝙎","𝚂","Ѕ","Տ","Ꮥ","Ꮪ","ꓢ","𖼺","𐊖","𐐠","ʂ","ᵴ","ꞵ","β","ϐ","𝛃","𝛽","𝜷","𝝱","𝞫","Ᏸ","🝜","st","∫","ꭍ","∑","⅀","Σ","𝚺","𝛴","𝜮","𝝨","𝞢","ⵉ","∬","∭","⨌","𝐭","𝑡","𝒕","𝓉","𝓽","𝔱","𝕥","𝖙","𝗍","𝘁","𝘵","𝙩","𝚝","⊤","⟙","🝨","T","𝐓","𝑇","𝑻","𝒯","𝓣","𝔗","𝕋","𝕿","𝖳","𝗧","𝘛","𝙏","𝚃","Τ","𝚻","𝛵","𝜯","𝝩","𝞣","Ⲧ","Т","Ꭲ","ꓔ","𖼊","𑢼","𐊗","𐊱","𐌕","ƭ","⍡","Ⱦ","Ț","Ʈ","Ҭ","₮","ŧ","Ŧ","ᵵ","Ⴀ","Ꜩ","ʨ","℡","ꝷ","ʦ","ʧ","ꜩ","τ","𝛕","𝜏","𝝉","𝞃","𝞽","т","ꭲ","ҭ","ţ","ț","Ꮏ","𝐮","𝑢","𝒖","𝓊","𝓾","𝔲","𝕦","𝖚","𝗎","𝘂","𝘶","𝙪","𝚞","ꞟ","ᴜ","ꭎ","ꭒ","ʋ","υ","𝛖","𝜐","𝝊","𝞄","𝞾","ս","𐓶","𑣘","∪","⋃","𝐔","𝑈","𝑼","𝒰","𝓤","𝔘","𝕌","𝖀","𝖴","𝗨","𝘜","𝙐","𝚄","Ս","ሀ","𐓎","ᑌ","ꓴ","𖽂","𑢸","ǔ","Ǔ","ᵾ","ꮜ","Ʉ","Ꮜ","ᑘ","ᑧ","ᵫ","ꭣ","ṃ","պ","ሣ","℧","ᘮ","ᘴ","ᵿ","∨","⋁","v","ⅴ","𝐯","𝑣","𝒗","𝓋","𝓿","𝔳","𝕧","𝖛","𝗏","𝘃","𝘷","𝙫","𝚟","ᴠ","ν","𝛎","𝜈","𝝂","𝝼","𝞶","ѵ","ט","𑜆","ꮩ","𑣀","𝈍","٧","۷","Ⅴ","𝐕","𝑉","𝑽","𝒱","𝓥","𝔙","𝕍","𝖁","𝖵","𝗩","𝘝","𝙑","𝚅","Ѵ","ⴸ","Ꮩ","ᐯ","ꛟ","ꓦ","𖼈","𑢠","𐔝","𐆗","ᐻ","🝬","ⅵ","ⅶ","ⅷ","Ⅵ","Ⅶ","Ⅷ","🜈","ᴧ","𐓘","٨","۸","Λ","𝚲","𝛬","𝜦","𝝠","𝞚","Л","ⴷ","𐒰","ᐱ","ꛎ","ꓥ","𖼽","𐊍","Ӆ","ᐽ","ɯ","𝐰","𝑤","𝒘","𝓌","𝔀","𝔴","𝕨","𝖜","𝗐","𝘄","𝘸","𝙬","𝚠","ᴡ","ѡ","ԝ","ա","𑜊","𑜎","𑜏","ꮃ","𑣯","𑣦","𝐖","𝑊","𝑾","𝒲","𝓦","𝔚","𝕎","𝖂","𝖶","𝗪","𝘞","𝙒","𝚆","Ԝ","Ꮃ","Ꮤ","ꓪ","ѽ","𑓅","₩","ꝡ","ᴍ","м","ꮇ","ӎ","᙮","×","⤫","⤬","⨯","x","ⅹ","𝐱","𝑥","𝒙","𝓍","𝔁","𝔵","𝕩","𝖝","𝗑","𝘅","𝘹","𝙭","𝚡","х","ᕁ","ᕽ","ⷯ","᙭","╳","𐌢","𑣬","X","Ⅹ","𝐗","𝑋","𝑿","𝒳","𝓧","𝔛","𝕏","𝖃","𝖷","𝗫","𝘟","𝙓","𝚇","Ꭓ","Χ","𝚾","𝛸","𝜲","𝝬","𝞦","Ⲭ","Х","ⵝ","ᚷ","ꓫ","𐊐","𐊴","𐌗","𐔧","⨰","Ҳ","𐆖","ⅺ","ⅻ","Ⅺ","Ⅻ","ɣ","ᶌ","y","𝐲","𝑦","𝒚","𝓎","𝔂","𝔶","𝕪","𝖞","𝗒","𝘆","𝘺","𝙮","𝚢","ʏ","ỿ","ꭚ","γ","ℽ","𝛄","𝛾","𝜸","𝝲","𝞬","у","ү","ყ","𑣜","Y","𝐘","𝑌","𝒀","𝒴","𝓨","𝔜","𝕐","𝖄","𝖸","𝗬","𝘠","𝙔","𝚈","Υ","ϒ","𝚼","𝛶","𝜰","𝝪","𝞤","Ⲩ","У","Ү","Ꭹ","Ꮍ","ꓬ","𖽃","𑢤","𐊲","ƴ","ɏ","ұ","¥","Ɏ","Ұ","ʒ","ꝫ","ⳍ","ӡ","ჳ","𝐳","𝑧","𝒛","𝓏","𝔃","𝔷","𝕫","𝖟","𝗓","𝘇","𝘻","𝙯","𝚣","ᴢ","ꮓ","𑣄","𐋵","𑣥","Z","ℤ","ℨ","𝐙","𝑍","𝒁","𝒵","𝓩","𝖅","𝖹","𝗭","𝘡","𝙕","𝚉","Ζ","𝚭","𝛧","𝜡","𝝛","𝞕","Ꮓ","ꓜ","𑢩","ʐ","ƶ","Ƶ","ȥ","Ȥ","ᵶ","ƿ","ϸ","Ϸ","𐓄","⁹","ᴤ","ϩ","ꙅ","ь","ꮟ","ы","ꭾ","ˤ","ꛍ","⊙","☉","⨀","Ꙩ","ⵙ","𐓃","ℾ","𝚪","𝛤","𝜞","𝝘","𝞒","Ⲅ","Г","Ꮁ","ᒥ","𖼇","Ғ","ᒯ","Ґ","∆","△","🜂","𝚫","𝛥","𝜟","𝝙","𝞓","Ⲇ","ⵠ","ᐃ","𖼚","𐊅","𐊣","⍙","ᐏ","ᐬ","𝟋","𝛇","𝜁","𝜻","𝝵","𝞯","ⳤ","𝛌","𝜆","𝝀","𝝺","𝞴","Ⲗ","𐓛","µ","𝛍","𝜇","𝝁","𝝻","𝞵","𝛏","𝜉","𝝃","𝝽","𝞷","𝚵","𝛯","𝜩","𝝣","𝞝","ϖ","ℼ","𝛑","𝛡","𝜋","𝜛","𝝅","𝝕","𝝿","𝞏","𝞹","𝟉","ᴨ","п","∏","ℿ","𝚷","𝛱","𝜫","𝝥","𝞟","Ⲡ","П","ꛛ","𐊭","𐌒","ϛ","𝛓","𝜍","𝝇","𝞁","𝞻","𝚽","𝛷","𝜱","𝝫","𝞥","Ⲫ","Ф","Փ","ቀ","ᛰ","𐊳","ꭓ","ꭕ","𝛘","𝜒","𝝌","𝞆","𝟀","ⲭ","𝛙","𝜓","𝝍","𝞇","𝟁","ѱ","𐓹","𝚿","𝛹","𝜳","𝝭","𝞧","Ⲯ","Ѱ","𐓑","ᛘ","𐊵","⍵","ꞷ","𝛚","𝜔","𝝎","𝞈","𝟂","ⲱ","ꙍ","Ω","𝛀","𝛺","𝜴","𝝮","𝞨","ᘯ","ᘵ","𐊶","⍹","ώ","☰","Ⳝ","җ","Җ","𝈋","Ͷ","ꚡ","𐐥","Й","Ҋ","ѝ","ҋ","𐒼","ᴫ","ӆ","ꭠ","𐓫","ᷮ","𐓍","𝈂","𝈢","Ꮗ","ᗯ","Ѽ","ᣭ","Ꞷ","ӌ","Ӌ","Ҿ","ⲽ","Ⲽ","Ꙑ","℈","🜁","𖼜","ꦒ","և","ኔ","ﬔ","ﬕ","ﬗ","ﬓ","∩","⋂","𝉅","በ","ᑎ","ꓵ","ᑚ","ᑨ","ﬖ","₽","˓","ʿ","ℵ","ﬡ","אָ","אּ","ﭏ","ℶ","ℷ","ℸ","ﬢ","ﬣ","יּ","ﬤ","ﬥ","ﬦ","ﬠ","ﬧ","שׂ","שּ","שּׂ","ﬨ","ﺀ","۽","ﺂ","ﺁ","ﭑ","ﭐ","𞸁","𞸡","𞹡","𞺁","𞺡","ﺑ","ﺒ","ﺐ","ﺏ","ݑ","ࢶ","ࢡ","ﲠ","ﳢ","ﲜ","ﰅ","ﲝ","ﰆ","ﷂ","ﲞ","ﰇ","ﳒ","ﱋ","ﶞ","ﱪ","ﱫ","ﲟ","ﳡ","ﱬ","ﰈ","ﱭ","ﱮ","ﰉ","ﱯ","ﰊ","ﭔ","ﭕ","ﭓ","ﭒ","ې","ﯦ","ﯧ","ﯥ","ﯤ","ﭜ","ﭝ","ﭛ","ﭚ","ࢩ","ݧ","⍥","ö","ﺔ","ﺓ","ۃ","𞸕","𞸵","𞹵","𞺕","𞺵","ﺗ","ﺘ","ﺖ","ﺕ","ﲥ","ﳤ","ﲡ","ﰋ","ﵐ","ﶠ","ﶟ","ﲢ","ﰌ","ﵒ","ﵑ","ﵓ","ﲣ","ﰍ","ﵔ","ﶢ","ﶡ","ﱰ","ﱱ","ﲤ","ﳣ","ﱲ","ﰎ","ﵕ","ﵖ","ﵗ","ﶤ","ﶣ","ﱳ","ﱴ","ﰏ","ﱵ","ﰐ","ﭠ","ﭡ","ﭟ","ﭞ","ﭤ","ﭥ","ﭣ","ﭢ","𞸂","𞸢","𞹂","𞹢","𞺂","𞺢","ﺟ","ﺠ","ﺞ","ﺝ","ﲧ","ﰕ","ﶦ","ﶾ","ﷻ","ﲨ","ﰖ","ﵙ","ﵘ","ﶧ","ﶥ","ﴝ","ﴁ","ﴞ","ﴂ","ﭸ","ﭹ","ﭷ","ﭶ","ﭴ","ﭵ","ﭳ","ﭲ","ﭼ","ﭽ","ﭻ","ﭺ","ﮀ","ﮁ","ﭿ","ﭾ","𞸇","𞸧","𞹇","𞹧","𞺇","𞺧","ﺣ","ﺤ","ﺢ","ﺡ","څ","ځ","ݲ","ﲩ","ﰗ","ﶿ","ﲪ","ﰘ","ﵛ","ﵚ","ﴛ","ﳿ","ﴜ","ﴀ","𞸗","𞸷","𞹗","𞹷","𞺗","𞺷","ﺧ","ﺨ","ﺦ","ﺥ","ﲫ","ﰙ","ﰚ","ﲬ","ﰛ","ﴟ","ﴃ","ﴠ","ﴄ","𐋡","𞸃","𞺃","𞺣","ﺪ","ﺩ","ڈ","ﮉ","ﮈ","ڎ","ﮇ","ﮆ","ۮ","ࢮ","𞸘","𞺘","𞺸","ﺬ","ﺫ","ﱛ","ڋ","ﮅ","ﮄ","ﮃ","ﮂ","𞸓","𞺓","𞺳","ﺮ","ﺭ","ڑ","ﮍ","ﮌ","ژ","ﮋ","ﮊ","ڒ","ࢹ","ۯ","ݬ","ﱜ","ﷶ","﷼","𞸆","𞺆","𞺦","ﺰ","ﺯ","ࢲ","ݱ","𞸎","𞸮","𞹎","𞹮","𞺎","𞺮","ﺳ","ﺴ","ﺲ","ﺱ","ش","𞸔","𞸴","𞹔","𞹴","𞺔","𞺴","ﺷ","ﺸ","ﺶ","ﺵ","ݾ","ﴱ","ﳨ","ﴲ","ﳪ","ﲭ","ﴴ","ﰜ","ﴭ","ﴷ","ﴥ","ﴉ","ﵝ","ﵞ","ﵩ","ﲮ","ﴵ","ﰝ","ﴮ","ﴸ","ﴦ","ﴊ","ﵜ","ﵨ","ﵧ","ﶪ","ﲯ","ﴶ","ﰞ","ﴯ","ﴹ","ﴧ","ﴋ","ﶨ","ﷆ","ﴪ","ﴎ","ﴩ","ﴍ","ﲰ","ﳧ","ﰟ","ﴰ","ﳩ","ﴨ","ﴌ","ﵡ","ﵠ","ﵟ","ﵫ","ﵪ","ﵣ","ﵢ","ﵭ","ﵬ","ﴗ","ﳻ","ﴘ","ﳼ","ﴙ","ﳽ","ﴚ","ﳾ","𐋲","𞸑","𞸱","𞹑","𞹱","𞺑","𞺱","ﺻ","ﺼ","ﺺ","ﺹ","ڞ","ࢯ","ﲱ","ﰠ","ﵥ","ﵤ","ﶩ","ﲲ","ﴫ","ﴏ","ﷵ","ﷹ","ﷰ","ﷺ","ﲳ","ﰡ","ﷅ","ﵦ","ﴡ","ﴅ","ﴢ","ﴆ","𞸙","𞸹","𞹙","𞹹","𞺙","𞺹","ﺿ","ﻀ","ﺾ","ﺽ","ﲴ","ﰢ","ﲵ","ﰣ","ﵮ","ﶫ","ﲶ","ﰤ","ﵰ","ﵯ","ﴬ","ﴐ","ﲷ","ﰥ","ﴣ","ﴇ","ﴤ","ﴈ","𐋨","𞸈","𞹨","𞺈","𞺨","ﻃ","ﻄ","ﻂ","ﻁ","ڟ","ﲸ","ﰦ","ﴳ","ﴺ","ﰧ","ﵲ","ﵱ","ﵳ","ﵴ","ﴑ","ﳵ","ﴒ","ﳶ","𞸚","𞹺","𞺚","𞺺","ﻇ","ﻈ","ﻆ","ﻅ","ﲹ","ﴻ","ﰨ","؏","𞸏","𞸯","𞹏","𞹯","𞺏","𞺯","ﻋ","ﻌ","ﻊ","ﻉ","ﲺ","ﰩ","ﷄ","ﵵ","ﷷ","ﲻ","ﰪ","ﵷ","ﵶ","ﵸ","ﶶ","ﴓ","ﳷ","ﴔ","ﳸ","𞸛","𞸻","𞹛","𞹻","𞺛","𞺻","ﻏ","ﻐ","ﻎ","ﻍ","ﲼ","ﰫ","ﲽ","ﰬ","ﵹ","ﵻ","ﵺ","ﴕ","ﳹ","ﴖ","ﳺ","𞸐","𞸰","𞹰","𞺐","𞺰","ﻓ","ﻔ","ﻒ","ﻑ","ڧ","ﲾ","ﰭ","ﲿ","ﰮ","ﳀ","ﰯ","ﵽ","ﵼ","ﳁ","ﰰ","ﷁ","ﱼ","ﰱ","ﱽ","ﰲ","𞸞","𞹾","ࢻ","ٯ","𞸟","𞹟","ࢼ","ڤ","ﭬ","ﭭ","ﭫ","ﭪ","ڨ","ࢤ","ﭰ","ﭱ","ﭯ","ﭮ","𞸒","𞸲","𞹒","𞹲","𞺒","𞺲","ﻗ","ﻘ","ﻖ","ﻕ","ﳂ","ﰳ","ﷱ","ﳃ","ﰴ","ﶴ","ﵾ","ﵿ","ﶲ","ﱾ","ﰵ","ﱿ","ﰶ","𞸊","𞸪","𞹪","ﻛ","ﻜ","ﻚ","ﻙ","ک","ﮐ","ﮑ","ﮏ","ﮎ","ڪ","ڭ","ﯕ","ﯖ","ﯔ","ﯓ","ݣ","ﲀ","ﰷ","ﳄ","ﰸ","ﳅ","ﰹ","ﳆ","ﰺ","ﳇ","ﳫ","ﲁ","ﰻ","ﳈ","ﳬ","ﲂ","ﰼ","ﷃ","ﶻ","ﶷ","ﲃ","ﰽ","ﲄ","ﰾ","ݢ","ﮔ","ﮕ","ﮓ","ﮒ","ࢰ","ڴ","ﮜ","ﮝ","ﮛ","ﮚ","ﮘ","ﮙ","ﮗ","ﮖ","𞸋","𞸫","𞹋","𞺋","𞺫","ﻟ","ﻠ","ﻞ","ﻝ","ڷ","ڵ","ﻼ","ﻻ","ﻺ","ﻹ","ﻸ","ﻷ","ﳍ","ﻶ","ﻵ","ﳉ","ﰿ","ﶃ","ﶄ","ﶺ","ﶼ","ﶬ","ﳊ","ﱀ","ﶵ","ﶀ","ﶂ","ﶁ","ﳋ","ﱁ","ﶆ","ﶅ","ﳌ","ﳭ","ﲅ","ﱂ","ﶈ","ﶇ","ﶭ","ﲆ","ﱃ","ﲇ","ﱄ","𞸌","𞸬","𞹬","𞺌","𞺬","ﻣ","ﻤ","ﻢ","ﻡ","ࢧ","۾","ﲈ","ﳎ","ﱅ","ﶌ","ﶒ","ﶍ","ﷀ","ﳏ","ﱆ","ﶉ","ﶊ","ﷴ","ﶋ","ﳐ","ﱇ","ﶎ","ﶏ","ﶹ","ﳑ","ﲉ","ﱈ","ﶱ","ﱉ","ﱊ","𞸍","𞸭","𞹍","𞹭","𞺍","𞺭","ﻧ","ﻨ","ﻦ","ﻥ","ݨ","ݩ","ﳖ","ﳯ","ﶸ","ﶽ","ﶘ","ﶗ","ﶙ","ﷇ","ﳓ","ﱌ","ﶕ","ﶖ","ﶳ","ﳔ","ﱍ","ﲊ","ﲋ","ﳕ","ﳮ","ﲌ","ﱎ","ﶛ","ﶚ","ﲍ","ﲎ","ﱏ","ﲏ","ﱐ","ۂ","ﮥ","ﮤ","𐋤","𞸅","𞺅","𞺥","ﻮ","ﻭ","ࢱ","ۋ","ﯟ","ﯞ","ۇ","ﯘ","ﯗ","ۆ","ﯚ","ﯙ","ۉ","ﯣ","ﯢ","ۈ","ﯜ","ﯛ","ؤ","ﺆ","ﺅ","ٶ","ٷ","ﯝ","ﷸ","ﯡ","ﯠ","ٮ","𞸜","𞹼","ں","𞸝","𞹝","ﮟ","ﮞ","ࢽ","ﯨ","ﯩ","ﻰ","ﻯ","ي","𞸉","𞸩","𞹉","𞹩","𞺉","𞺩","ﻳ","ﻴ","ﻲ","ﻱ","ی","ﯾ","ﯿ","ﯽ","ﯼ","ے","ﮯ","ﮮ","ٹ","ﭨ","ﭩ","ﭧ","ﭦ","ڻ","ﮢ","ﮣ","ﮡ","ﮠ","پ","ﭘ","ﭙ","ﭗ","ﭖ","ث","𞸖","𞸶","𞹶","𞺖","𞺶","ﺛ","ﺜ","ﺚ","ﺙ","ڽ","ۑ","ؿ","ࢷ","ݖ","ێ","ࢺ","ؽ","ࢨ","ﲐ","ﱝ","ﳞ","ﳱ","ﳦ","ئ","ﺋ","ﺌ","ﺊ","ﺉ","ٸ","ﯫ","ﯪ","ﲛ","ﳠ","ﯭ","ﯬ","ﯸ","ﯷ","ﯶ","ﲗ","ﰀ","ﲘ","ﰁ","ﲙ","ﱤ","ﱥ","ﲚ","ﳟ","ﱦ","ﰂ","ﱧ","ﯯ","ﯮ","ﯱ","ﯰ","ﯳ","ﯲ","ﯵ","ﯴ","ﯻ","ﯺ","ﱨ","ﯹ","ﰃ","ﱩ","ﰄ","ﳚ","ﱕ","ﰑ","ﶯ","ﳛ","ﱖ","ﶮ","ﳜ","ﱗ","ﲑ","ﱶ","ﲒ","ﱷ","ﳝ","ﳰ","ﲓ","ﱘ","ﲦ","ﳥ","ﱸ","ﰒ","ﶝ","ﶜ","ﶰ","ﲔ","ﱹ","ﲕ","ﱙ","ﲖ","ﱚ","ﱺ","ﰓ","ﱻ","ﰔ","ﮱ","ﮰ","𐊸","⁞","⸽","⦙","︙","⁝","⋮","Մ","Ռ","Ի","Պ","आ","ऒ","ओ","औ","ऄ","ऑ","ऍ","ऎ","ऐ","ई","ઽ","𑇜","𑇋","ુ","ૂ","ੋ","੍","્","আ","ৠ","ৡ","𑒒","𑒔","𑒖","𑒘","𑒙","𑒛","𑒪","𑒞","𑒟","𑒠","𑒡","𑒢","𑒣","𑒩","𑒧","𑒨","𑒫","𑒝","𑒭","𑒮","𑓄","𑒰","𑒱","𑒹","𑒼","𑒾","𑓂","𑒽","ਉ","ਊ","ਆ","ਐ","ਔ","ਇ","ਈ","ਏ","આ","ઑ","ઓ","ઔ","ઍ","એ","ઐ","ଆ","௮","ர","ா","௫","௨","ഉ","ஊ","ഊ","௭","௷","ஜ","ജ","௧","௪","௬","௲","ഺ","ണ","௺","௴","௰","ഴ","ௗ","ை","ശ","௸","ി","ീ","ொ","ௌ","ோ","ಅ","ಆ","ಇ","ౠ","ౡ","ಒ","ఔ","ಔ","ఓ","ಓ","ಜ","ಞ","ఢ","ಣ","థ","భ","ಯ","ఠ","ಱ","ಲ","ష","హ","మ","ూ","ౄ","ೡ","ഈ","ഐ","ഓ","ഔ","ൡ","൫","൹","ഌ","ങ","൯","ൻ","൬","൚","റ","൪","ർ","൮","൶","ൂ","ൃ","ൈ","෪","෫","𑐓","𑐙","𑐤","𑐪","𑐭","𑐯","𑗘","𑗙","𑗚","𑗛","𑗜","𑗝","ฃ","ด","ต","ม","ຈ","ซ","ฏ","ท","ບ","ປ","ຝ","ພ","ຟ","ฦ","ຍ","។","ๅ","ำ","ិ","ី","ឹ","ឺ","ຸ","ູ","แ","ໜ","ໝ","ຳ","༂","༃","ཪ","ༀ","ཷ","ཹ","𑲲","ႁ","က","ၰ","ၦ","ဟ","ၯ","ၾ","ဩ","ဪ","႞","ឣ","᧐","᧑","᪀","᪐","꩓","꩖","᭒","᭓","᭘","ꦣ","ᢖ","ᡕ","ῶ","ᐍ","ᐫ","ᐑ","ᐓ","ᐭ","ᐕ","ᐘ","ᐮ","ᐚ","ᣝ","ᓑ","ᕀ","ᐿ","ᑃ","⍩","ᑇ","ᑜ","⸧","⊃","ᑞ","ᑩ","⟉","⫗","ᑠ","⸦","⊂","ᑢ","ᑪ","ᑤ","ᑵ","ᒅ","ᑹ","ᑽ","ᘃ","ᒓ","ᒕ","ᒗ","ᒛ","ᘂ","ᒝ","ᒟ","ᒭ","ᒱ","ᒳ","ᒵ","ᒹ","ᓊ","ᣇ","ᣉ","ᣋ","ᣍ","ᓌ","ᓎ","ᘄ","ᓝ","ᓟ","ᓡ","ᓣ","ᓥ","ᘇ","ᓧ","ᓩ","ᓷ","ᓹ","ᓻ","ᓽ","ᓿ","ᔁ","ᔃ","ᔌ","ᔎ","ᔍ","ᔏ","ᔘ","ᔚ","ᔜ","ᔞ","ᔠ","ᔢ","ᔤ","ᔲ","ᔴ","ᔶ","ᔸ","ᔺ","ᔼ","ᘢ","ᣠ","ᘣ","ᘤ","ᕏ","ᖃ","ᖄ","ᖁ","ᕿ","ᙯ","ᕾ","ᖀ","ᖂ","ᖅ","ᕜ","ᣣ","ᣤ","ᕩ","ᣥ","ᣨ","ᖑ","ᙰ","ᖎ","ᖏ","ᖐ","ᖒ","ᖓ","ᖔ","ᙳ","ᙱ","ᙲ","ᙴ","ᙵ","ᙶ","ᣪ","ᙷ","ᙸ","ᙹ","ᙺ","ᙻ","ᙼ","ᙽ","⪫","⪪","ꓷ","ᣰ","ᣲ","ᶻ","ꓭ","ᶺ","ᴾ","ᣜ","ˡ","ʳ","ˢ","ᣛ","ꚰ","ᛡ","⍿","ᛂ","𝈿","↑","↿","⥮","⥣","ⵣ","↾","⨡","⋄","◇","◊","♢","🝔","𑢷","𐊔","⍚","⋈","⨝","𐓐","↕","𐳼","𐳺","ㄱ","ᆨ","ᄁ","ㄲ","ᆩ","ᇺ","ᅚ","ᇃ","ᇻ","ᆪ","ㄳ","ᇄ","ᇼ","ᇽ","ᇾ","ㄴ","ᆫ","ᄓ","ᇅ","ᄔ","ㅥ","ᇿ","ᄕ","ㅦ","ᇆ","ퟋ","ᄖ","ᅛ","ᇇ","ㅧ","ᅜ","ᆬ","ㄵ","ퟌ","ᇉ","ᅝ","ᆭ","ㄶ","ᇈ","ㅨ","ㄷ","ᆮ","ᄗ","ᇊ","ᄄ","ㄸ","ퟍ","ퟎ","ᅞ","ᇋ","ꥠ","ꥡ","ퟏ","ꥢ","ퟐ","ퟑ","ꥣ","ퟒ","ퟓ","ퟔ","ㄹ","ᆯ","ꥤ","ᆰ","ㄺ","ꥥ","ퟕ","ᇌ","ㅩ","ퟖ","ᄘ","ᇍ","ꥦ","ᇎ","ㅪ","ꥧ","ᇏ","ᄙ","ᇐ","ퟗ","ꥨ","ᆱ","ㄻ","ᇑ","ᇒ","ퟘ","ꥩ","ᆲ","ㄼ","ퟙ","ꥪ","ᇓ","ㅫ","ꥫ","ᇕ","ퟚ","ᇔ","ꥬ","ᆳ","ㄽ","ᇖ","ᄛ","ퟝ","ꥭ","ꥮ","ᇘ","ᆴ","ㄾ","ᆵ","ㄿ","ᄚ","ㅀ","ᄻ","ᆶ","ퟲ","ᇗ","ㅬ","ퟛ","ᇙ","ㅭ","ퟜ","ㅁ","ᆷ","ꥯ","ᇚ","ퟞ","ퟟ","ꥰ","ᇛ","ퟠ","ᄜ","ㅮ","ᇜ","ퟡ","ꥱ","ᇝ","ㅯ","ᇞ","ᄝ","ㅱ","ᇢ","ퟢ","ᇠ","ᇡ","ᇟ","ㅰ","ㅂ","ᆸ","ᄞ","ㅲ","ᄟ","ᄠ","ㅳ","ퟣ","ᇣ","ퟤ","ퟥ","ᄈ","ㅃ","ퟦ","ᄬ","ㅹ","ᄡ","ㅄ","ᆹ","ᄢ","ㅴ","ᄣ","ㅵ","ퟧ","ᄤ","ᄥ","ᄦ","ꥲ","ᄫ","ㅸ","ᇦ","ᄧ","ㅶ","ퟨ","ᄨ","ퟩ","ꥳ","ᄩ","ㅷ","ᄪ","ᇤ","ꥴ","ᇥ","ㅅ","ᆺ","ᄭ","ㅺ","ᇧ","ᄮ","ㅻ","ᄯ","ㅼ","ᇨ","ᄰ","ᇩ","ᄱ","ퟪ","ᄲ","ㅽ","ᇪ","ᄳ","ퟫ","ᄊ","ㅆ","ᆻ","ퟬ","ퟭ","ꥵ","ᄴ","ᄵ","ᄶ","ㅾ","ퟯ","ᄷ","ퟰ","ᄸ","ᄹ","ퟱ","ᄺ","ퟮ","ㅇ","ᆼ","ᅁ","ᇬ","ᇭ","ᅂ","ꥶ","ᅃ","ᅄ","ᅅ","ᇱ","ㆂ","ᅇ","ㆀ","ᇮ","ᅈ","ᅉ","ᇯ","ᅊ","ᅋ","ꥷ","ᅆ","ᇲ","ㆃ","ㅈ","ᆽ","ퟷ","ퟸ","ᅍ","ᄍ","ㅉ","ퟹ","ꥸ","ㅊ","ᆾ","ᅒ","ᅓ","ㅋ","ᆿ","ㅌ","ᇀ","ꥹ","ㅍ","ᇁ","ᅖ","ᇳ","ퟺ","ᅗ","ㆄ","ᇴ","ퟻ","ꥺ","ㅎ","ᇂ","ᇵ","ᇶ","ᇷ","ᇸ","ꥻ","ᅘ","ㆅ","ᄽ","ᄿ","ㅿ","ᇫ","ퟳ","ퟴ","ㆁ","ᇰ","ퟵ","ퟶ","ᅏ","ᅑ","ㆆ","ᇹ","ꥼ","ㅤ","ㅏ","ᆣ","ᅶ","ᅷ","ᅢ","ㅐ","ㅑ","ᅸ","ᅹ","ᆤ","ᅤ","ㅒ","ㅓ","ᅼ","ᅺ","ᅻ","ᅦ","ㅔ","ㅕ","ᆥ","ᅽ","ᅾ","ᅨ","ㅖ","ㅗ","ᅪ","ㅘ","ᅫ","ㅙ","ᆦ","ᆧ","ᅿ","ᆀ","ힰ","ᆁ","ᆂ","ힱ","ᆃ","ᅬ","ㅚ","ㅛ","ힲ","ힳ","ᆄ","ㆇ","ᆆ","ᆅ","ㆈ","ힴ","ᆇ","ᆈ","ㆉ","ㅜ","ᆉ","ᆊ","ᅯ","ㅝ","ᆋ","ᅰ","ㅞ","ힵ","ᆌ","ᆍ","ᅱ","ㅟ","ힶ","ㅠ","ᆎ","ힷ","ᆏ","ᆐ","ᆑ","ㆊ","ᆒ","ㆋ","ힸ","ᆓ","ᆔ","ㆌ","ㆍ","ퟅ","ᆟ","ퟆ","ᆠ","ᆢ","ᆡ","ㆎ","ヘ","⍁","⧄","꒞","꒬","꒜","꒨","꒿","꒾","꒔","꓀","꓂","꒺","꒰","꒧","⊥","⟂","𝈜","Ʇ","Ꞟ","⅁","⅂","𝈕","𝈫","𖼦","𐐑","⅃","𑫦","𑫨","𑫩","𑫪","𑫧","𑫴","𑫶","𑫷","𑫸","𑫵","𑫬","𑫭","𑫮","⊕","⨁","🜨","Ꚛ","▽","𝈔","🜄","⧖","ꞛ","Ꞛ","𐒠","𐏑","𐏓","𒀸","☥","𓋹","〹","不","丽","並","⎜","⎟","⎢","⎥","⎪","⎮","㇑","ᅵ","ㅣ","⼁","ᆜ","ᆘ","ᆙ","ힽ","ힾ","ힿ","ퟀ","ᆚ","ퟁ","ퟂ","ᆛ","ퟃ","ᆝ","ퟄ","串","丸","丹","乁","㇠","⼄","㇟","⺃","㇖","⺂","⻲","亂","㇚","⼅","了","ニ","⼆","𠄢","⼇","亮","⼈","イ","⺅","什","仌","令","你","倂","倂","侀","來","例","侮","侮","侻","便","值","倫","偺","備","像","僚","僧","僧","㒞","⼉","兀","⺎","充","免","免","兔","兤","⼊","內","全","兩","ハ","⼋","六","具","𠔜","𠔥","冀","㒹","⼌","再","𠕋","冒","冕","㒻","最","⼍","冗","冤","⼎","冬","况","况","冷","凉","凌","凜","凞","⼏","𠘺","凵","⼐","⼑","⺉","刃","切","切","列","利","㓟","刺","刻","剆","割","剷","劉","𠠄","カ","力","⼒","劣","㔕","劳","勇","勇","勉","勉","勒","勞","勤","勤","勵","⼓","勺","勺","包","匆","𠣞","⼔","北","北","⼕","⼖","匿","⼗","〸","〺","卉","࿖","࿕","卑","卑","博","ト","⼘","⼙","⺋","即","卵","卽","卿","卿","卿","⼚","𠨬","⼛","參","⼜","及","叟","𠭣","ロ","⼝","囗","⼞","句","叫","叱","吆","吏","吝","吸","呂","呈","周","咞","咢","咽","䎛","哶","唐","啓","啟","啕","啣","善","善","喇","喙","喙","喝","喝","喫","喳","嗀","嗂","嗢","嘆","嘆","噑","噴","器","囹","圖","圗","⼟","士","⼠","型","城","㦳","埴","堍","報","堲","塀","塚","塚","塞","填","壿","墬","墳","壘","壟","𡓤","壮","売","壷","⼡","夆","⼢","タ","⼣","多","夢","⼤","奄","奈","契","奔","奢","女","⼥","𡚨","𡛪","姘","姬","娛","娧","婢","婦","嬀","㛮","㛼","媵","嬈","嬨","嬾","嬾","⼦","⼧","宅","𡧈","寃","寘","寧","寧","寧","寮","寳","𡬘","⼨","寿","将","⼩","尢","⺐","⼪","⺏","㞁","⼫","尿","屠","屢","層","履","屮","屮","⼬","𡴋","⼭","峀","岍","𡷤","𡷦","崙","嵃","嵐","嵫","嵮","嵼","嶲","嶺","⼮","巢","エ","⼯","⼰","⺒","㠯","巽","⼱","帲","帨","帽","幩","㡢","𢆃","⼲","年","𢆟","⺓","⼳","⼴","度","㡼","庰","庳","庶","廊","廊","廉","廒","廓","廙","廬","⼵","廾","⼶","𢌱","𢌱","弄","⼷","⼸","弢","弢","⼹","⺔","当","㣇","⼺","形","彩","彫","⼻","律","㣣","徚","復","徭","⼼","⺖","⺗","忍","志","念","忹","怒","怜","恵","㤜","㤺","悁","悔","悔","惇","惘","惡","𢛔","愈","慨","慄","慈","慌","慌","慎","慎","慠","慺","憎","憎","憎","憐","憤","憯","憲","𢡄","𢡊","懞","懲","懲","懲","懶","懶","戀","⼽","成","戛","戮","戴","⼾","戸","⼿","⺘","扝","抱","拉","拏","拓","拔","拼","拾","𢬌","挽","捐","捨","捻","掃","掠","掩","揄","揤","摒","𢯱","搜","搢","揅","摩","摷","摾","㨮","搉","撚","撝","擄","㩬","⽀","⽁","⺙","敏","敏","敖","敬","數","𣀊","⽂","⻫","⽃","料","⽄","⽅","旅","⽆","⺛","既","旣","⽇","易","曶","㫤","晉","晩","晴","晴","暑","暑","暈","㬈","暜","暴","曆","㬙","𣊸","⽈","更","書","⽉","𣍟","肦","胐","胊","脁","胶","朗","朗","朗","脧","望","望","幐","䐠","𣎓","膧","𣎜","⽊","李","杓","杖","杞","𣏃","柿","杻","枅","林","㭉","𣏕","柳","柺","栗","栟","桒","𣑭","梁","梅","梅","梎","梨","椔","楂","㮝","㮝","槩","樧","榣","槪","樂","樂","樂","樓","𣚣","檨","櫓","櫛","欄","㰘","⽋","次","𣢧","歔","㱎","⽌","⻭","歲","歷","歹","⽍","⺞","殟","殮","⽎","殺","殺","殺","殻","𣪍","⽏","⺟","𣫺","⽐","⽑","⽒","⺠","⽓","⽔","⺡","⺢","汎","汧","沈","沿","泌","泍","泥","𣲼","洛","洞","洴","派","流","流","流","洖","浩","浪","海","海","浸","涅","𣴞","淋","淚","淪","淹","渚","港","湮","潙","滋","滋","溜","溺","滇","滑","滛","㴳","漏","漢","漢","漣","𣻑","潮","𣽞","𣾎","濆","濫","濾","瀛","瀞","瀞","瀹","灊","㶖","⽕","⺣","灰","灷","災","炙","炭","烈","烙","煮","煮","𤉣","煅","煉","𤋮","熜","燎","燐","𤎫","爐","爛","爨","⽖","爫","⺤","爵","爵","⽗","⽘","⺦","⽙","⽚","牐","⽛","𤘈","⽜","牢","犀","犕","⽝","⺨","犯","狀","𤜵","狼","猪","猪","𤠔","獵","獺","⽞","率","率","⽟","王","㺬","玥","玲","㺸","㺸","珞","琉","理","琢","瑇","瑜","瑩","瑱","瑱","璅","璉","璘","瓊","⽠","⽡","㼛","甆","⽢","⽣","甤","⽤","⽥","画","甾","𤰶","留","略","異","異","𤲒","⽦","⽧","痢","瘐","瘟","瘝","療","癩","⽨","⽩","𤾡","𤾸","⽪","⽫","𥁄","㿼","益","益","盛","盧","䀈","⽬","直","直","𥃲","𥃳","省","䀘","𥄙","眞","真","真","𥄳","着","睊","睊","鿃","䀹","䀹","晣","䁆","瞋","𥉉","瞧","⽭","⽮","⽯","䂖","𥐝","硏","硎","硫","碌","碌","碑","磊","磌","磌","磻","䃣","礪","⽰","⺭","礼","社","祈","祉","𥘦","祐","祖","祖","祝","神","祥","視","視","祿","𥚚","禍","禎","福","福","𥛅","禮","⽱","⽲","秊","䄯","秫","稜","穊","穀","穀","穏","⽳","突","𥥼","窱","立","⽴","⻯","𥪧","𥪧","竮","⽵","笠","節","節","䈂","𥮫","篆","䈧","築","𥲀","𥳐","簾","籠","⽶","类","粒","精","糒","糖","糨","䊠","糣","糧","⽷","⺯","𥾆","紀","紐","索","累","絶","絣","絛","綠","綾","緇","練","練","練","縂","䌁","縉","縷","繁","繅","𦇚","䌴","⽸","𦈨","缾","𦉇","⽹","⺫","⺲","⺱","䍙","署","𦋙","罹","罺","羅","𦌾","⽺","羕","羚","羽","⽻","翺","老","⽼","⺹","者","者","者","⽽","𦓚","⽾","𦔣","⽿","聆","聠","𦖨","聯","聰","聾","⾀","⺺","⾁","肋","肭","育","䏕","䏙","腁","脃","脾","䐋","朡","𦞧","𦞵","朦","臘","⾂","臨","⾃","臭","⾄","⾅","舁","舁","舄","⾆","舘","⾇","⾈","䑫","⾉","良","⾊","⾋","艹","艹","⺾","⺿","⻀","芋","芑","芝","花","芳","芽","若","若","苦","𦬼","茶","荒","荣","茝","茣","莽","荓","菉","菊","菌","菜","菧","華","菱","著","著","𦰶","莭","落","葉","蔿","𦳕","𦵫","蓮","蓱","蓳","蓼","蔖","䔫","蕤","𦼬","藍","䕝","𦾱","䕡","藺","蘆","䕫","蘒","蘭","𧃒","虁","蘿","⾌","⻁","虐","虜","虜","虧","虩","⾍","蚩","蚈","蛢","蜎","蜨","蝫","蟡","蝹","蝹","螆","䗗","𧏊","螺","蠁","䗹","蠟","⾎","行","⾏","衠","衣","⾐","⻂","裂","𧙧","裏","裗","裞","裡","裸","裺","䘵","褐","襁","襤","⾑","⻄","⻃","覆","見","⾒","𧢮","⻅","⾓","⾔","𧥦","詽","訞","䚾","䛇","誠","說","說","調","請","諒","論","諭","諭","諸","諸","諾","諾","謁","謁","謹","謹","識","讀","讏","變","變","⻈","⾕","⾖","豈","豕","⾗","豣","⾘","𧲨","⾙","貫","賁","賂","賈","賓","贈","贈","贛","⻉","⾚","⾛","起","趆","𧻓","𧼯","⾜","跋","趼","跺","路","跰","躛","⾝","車","⾞","軔","輧","輦","輪","輸","輸","輻","轢","⻋","⾟","辞","辰","⾠","⾡","辶","⻌","⻍","巡","連","逸","逸","遲","遼","𨗒","𨗭","邏","⾢","邔","郎","郞","郞","郱","都","𨜮","鄑","鄛","⾣","酪","醙","醴","⾤","里","⾥","量","金","⾦","鈴","鈸","鉶","鋗","鋘","鉼","錄","鍊","鎮","鏹","鐕","𨯺","⻐","⻑","⾧","⻒","⻓","⾨","開","䦕","閭","閷","𨵷","⻔","⾩","⻏","⻖","阮","陋","降","陵","陸","陼","隆","隣","䧦","⾪","隷","隸","隸","⾫","雃","離","難","難","⾬","零","雷","霣","𩅅","露","靈","⾭","⻘","靖","靖","𩇟","⾮","⾯","𩈚","⾰","䩮","䩶","⾱","韛","韠","⻙","⾲","𩐊","⾳","響","響","⾴","䪲","頋","頋","頋","領","頩","𩒖","頻","頻","類","⻚","⾵","𩖶","⻛","⾶","⻜","⻝","⾷","⻟","飢","飯","飼","䬳","館","餩","⻠","⾸","⾹","馧","⾺","駂","駱","駾","驪","⻢","⾻","䯎","⾼","⾽","𩬰","鬒","鬒","⾾","⾿","⿀","⿁","⻤","⿂","魯","鱀","鱗","⻥","⿃","鳽","䳎","鵧","䳭","𪃎","鶴","𪄅","䳸","鷺","𪈎","鸞","鹃","⿄","鹿","⿅","𪊑","麗","麟","⿆","⻨","麻","⿇","𪎒","⿈","⻩","⿉","黎","䵖","⿊","黒","墨","黹","⿋","⿌","鼅","黾","⿍","鼏","⿎","鼖","⿏","鼻","⿐","齃","⿑","⻬","⿒","𪘀","⻮","龍","⿓","龎","⻰","龜","龜","龜","⿔","⻳","⿕","55","REPLACE_RE","RegExp","replace_fn","./data.json","56","util","Url","protocol","slashes","port","hostname","hash","search","query","pathname","path","urlParse","relative","resolveObject","isString","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","parseQueryString","slashesDenoteHost","isObject","queryIndex","splitter","uSplit","rest","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","l","newpart","validParts","notHost","bit","h","ae","esc","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","isAbsolute","./util","57","58","UNSTABLE_MSC3089_BRANCH","UNSTABLE_MSC3089_LEAF","UNSTABLE_MSC3089_TREE_SUBTYPE","UNSTABLE_MSC3088_ENABLED","UNSTABLE_MSC3088_PURPOSE","RoomType","RoomCreateTypeField","MsgType","RelationType","EventType","NamespacedValue_1","UnstableValue","../NamespacedValue","59","Preset","Visibility","60","NamespacedValue","stable","unstable","altName","included","61","ReEmitter","eventName","forSource","62","_interopRequireDefault","AutoDiscovery","_regenerator","_asyncToGenerator2","_createClass2","_classCallCheck2","_logger","_url","_fetchWellKnownObject2","_getRawClientConfig","_findClientConfig","_fromDiscoveryConfig","_callee","wellknown","clientConfig","hsUrl","hsVersions","isUrl","failingClientConfig","isResponse","_context","m.homeserver","FAIL_ERROR","ERROR_INVALID","base_url","m.identity_server","PROMPT","FAIL_PROMPT","ERROR_INVALID_HS_BASE_URL","_sanitizeWellKnownUrl","_fetchWellKnownObject","raw","ERROR_INVALID_HOMESERVER","SUCCESS","ERROR_INVALID_IS","ERROR_INVALID_IS_BASE_URL","action","ERROR_INVALID_IDENTITY_SERVER","notProps","_Object$keys","_x","_callee2","domain","_context2","fromDiscoveryConfig","_x2","_callee3","_context3","_x3","URL","saferUrl","endsWith","substring","_callee4","_context4","getRequest","ERROR_MISSING_WELLKNOWN","_reason","ERROR_INVALID_JSON","_x4","ERROR_GENERIC_FAILURE","./logger","./matrix","@babel/runtime/helpers/asyncToGenerator","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/interopRequireDefault","@babel/runtime/regenerator","63","_interopRequireWildcard","_exportNames","matrixcs","indexedDB","_browserRequest","_qs","qsStringifyOptions","setCryptoStoreFactory","IndexedDBCryptoStore","_default","@babel/runtime/helpers/interopRequireWildcard","browser-request","64","__createBinding","k2","__setModuleDefault","__importStar","mod","__awaiter","thisArg","_arguments","P","fulfilled","step","rejected","__importDefault","MatrixClient","RoomVersionStability","PendingEventOrdering","CRYPTO_ENABLED","events_1","sync_1","event_1","stub_1","call_1","filter_1","callEventHandler_1","utils_1","event_timeline_1","pushprocessor_1","autodiscovery_1","olmlib","olmlib_1","ReEmitter_1","RoomList_1","logger_1","service_types_1","http_api_1","crypto_1","recoverykey_1","key_passphrase_1","user_1","content_repo_1","search_result_1","dehydration_1","matrix_1","sync_api_1","ContentHelpers","api_1","event_2","partials_1","event_mapper_1","url_1","randomstring_1","backup_1","MSC3089TreeSpace_1","isCryptoAvailable","TURN_CHECK_INTERVAL","CrossSigningKeyType","reEmitter","olmVersion","usingExternalCrypto","clientRunning","timelineSupport","urlPreviewCache","unstableClientRelationAggregation","supportsCallTransfer","forceTURN","iceCandidatePoolSize","canSupportVoip","peekSync","isGuestAccount","ongoingScrollbacks","notifTimelineSet","fallbackICEServerAllowed","syncedLeftRooms","pushProcessor","PushProcessor","turnServers","turnServersExpiry","txnCtr","startCallEventHandler","isInitialSyncComplete","callEventHandler","baseUrl","ensureNoTrailingSlash","idBaseUrl","store","StubStore","deviceId","userId","credentials","MatrixHttpApi","accessToken","PREFIX_R0","onlyData","extraParams","queryParams","localTimeoutMs","useAuthorizationHeader","deviceToImport","exportedOlmDeviceToImport","olmDevice","pickleKey","scheduler","setProcessFunction","eventToSend","room","getRoom","getRoomId","EventStatus","SENDING","updatePendingEventStatus","sendEventHttpRequest","updatePendingEvent","SENT","event_id","createNewMatrixCall","CallEventHandler","Boolean","cryptoStore","sessionStore","verificationMethods","cryptoCallbacks","roomList","RoomList","oldActions","getPushActions","actions","actionsForEvent","setPushActions","currentCount","getUnreadNotificationCount","NotificationCountType","Highlight","oldHighlight","tweaks","highlight","newHighlight","hasUserReadEvent","getUserId","getId","newCount","setUnreadNotificationCount","Total","isRoomEncrypted","roomId","content","getContent","eid","maxHistory","getLiveTimeline","getEvents","highlightCount","pushActions","getPushActionsForEvent","initialSyncLimit","storeUser","User","crypto","uploadDeviceKeys","checkTurnServersIntervalID","setInterval","checkTurnServers","syncApi","clientOpts","canResetEntireTimeline","canResetTimelineCallback","SyncApi","sync","clientWellKnownPollPeriod","clientWellKnownIntervalID","fetchClientWellKnown","_a","_b","_c","stopPeeking","clearInterval","getDehydrationKey","getDeviceResult","getDehydratedDevice","device_data","device_id","account","Olm","Account","deviceData","algorithm","DEHYDRATION_ALGORITHM","unpickle","authedRequest","success","pickledAccount","pickle","sessions","free","keyInfo","deviceDisplayName","dehydrationManager","setKeyAndQueueDehydration","setKey","dehydrateDevice","export","promises","deleteAllData","all","force","support","invitee","getSyncState","getSyncStateData","SyncState","Prepared","Syncing","guest","retryImmediately","fresh","now","cachedCapabilities","expiration","capabilities","cacheMs","startup","Crypto","reEmit","exportedOlmDevice","getOlmVersion","registerEventHandlers","getDeviceEd25519Key","getDeviceCurve25519Key","userIds","forceDownload","downloadKeys","getStoredDevicesForUser","getStoredDevice","verified","prom","setDeviceVerification","checkKeyBackup","blocked","known","requestVerificationDM","findVerificationRequestDMInProgress","getVerificationRequestsToDeviceInProgress","devices","requestVerification","beginKeyVerification","checkSecretStorageKey","setGlobalBlacklistUnverifiedDevices","getGlobalBlacklistUnverifiedDevices","setGlobalErrorOnUnknownDevices","getGlobalErrorOnUnknownDevices","CrossSigningKey","Master","getCrossSigningId","getStoredCrossSigningForUser","checkUserTrust","checkDeviceTrust","checkOwnCrossSigningTrust","privateKey","expectedPublicKey","checkCrossSigningPrivateKey","legacyDeviceVerification","prepareToEncrypt","isCrossSigningReady","bootstrapCrossSigning","getCryptoTrustCrossSignedDevices","setCryptoTrustCrossSignedDevices","countSessionsNeedingBackup","getEventEncryptionInfo","createRecoveryKeyFromPassphrase","isSecretStorageReady","bootstrapSecretStorage","keyName","addSecretStorageKey","keyId","hasSecretStorageKey","secret","storeSecret","getSecret","checkKey","isSecretStored","requestSecret","getDefaultSecretStorageKeyId","setDefaultSecretStorageKeyId","checkSecretStoragePrivateKey","getEventSenderDeviceInfo","device","isVerified","cancelAndResendKeyRequest","config","setRoomEncryption","currentState","getStateEvents","forceDiscardSession","exportRoomKeys","importRoomKeys","backupManager","PREFIX_UNSTABLE","errcode","BackupManager","checkBackupVersion","isKeyBackupTrusted","getKeyBackupEnabled","enableKeyBackup","disableKeyBackup","secureSecretStorage","auth_data","recovery_key","prepareKeyBackupVersion","encodeBase64","createKeyBackupVersion","signObject","getCrossSigningKey","crossSigningInfo","encodeUri","$version","sessionId","$roomId","$sessionId","queryData","makeKeyBackupPath","scheduleAllGroupSessionsForBackup","flagAllGroupSessionsForBackup","recoveryKey","decodeRecoveryKey","backupInfo","keyFromAuthData","targetRoomId","targetSessionId","privKey","restoreKeyBackup","storedKey","fixedKey","fixBackupKey","getSecretStorageKey","decodeBase64","getSessionBackupPrivateKey","cacheCompleteCallback","progressCallback","totalKeyCount","makeAlgorithm","untrusted","keyMatches","MatrixError","RESTORE_BACKUP_ERROR_BAD_KEY","storeSessionBackupPrivateKey","stage","rooms","roomData","entries","roomKeys","decryptSessions","room_id","session_id","total","imported","roomEncryption","getRoomEncryption","deviceInfos","devicesByUser","alg","getRoomDecryptor","sendSharedHistoryInboundSessions","groupId","getGroup","getGroups","PREFIX_MEDIA_R0","getRooms","allRooms","replacedRooms","Set","createEvent","predecessor","add","getUser","getUsers","eventType","$userId","$type","promise","retryNetworkOperation","getAccountData","ignored_users","setAccountData","getIgnoredUsers","roomIdOrAlias","isFunction","syncRoom","hasMembershipState","signPromise","inviteSignUrl","requestOtherUrl","mxid","queryString","viaServers","reqOpts","signedInviteObj","$roomid","createRoom","encryptAndSendEvent","QUEUED","NOT_SENT","removeEventFromQueue","CANCELLED","sendStateEvent","topic","tagName","metadata","$tag","powerLevel","users","getType","deepCopy","txnId","sendCompleteEvent","eventObject","makeTxnId","localEvent","MatrixEvent","user_id","sender","origin_server_ts","targetId","getAssociatedId","startsWith","getPendingEvents","find","updateAssociatedId","setTxnId","setStatus","addPendingEvent","encryptionPromise","encryptEventIfNeeded","ENCRYPTING","queueEvent","getQueueForEvent","isEncrypted","Reaction","encryptEvent","RoomMessageEncrypted","newStatus","getTxnId","pathParams","$eventType","getWireType","$stateKey","getStateKey","$txnId","isState","pathTemplate","isRedaction","$redactsEventId","redacts","getWireContent","eventId","cbOrOpts","RoomRedaction","sendEvent","makeTextMessage","sendMessage","makeNotice","makeEmoteMessage","text","msgtype","Sticker","htmlBody","makeHtmlMessage","makeHtmlNotice","makeHtmlEmote","receiptType","isGuest","$receiptType","$eventId","addLocalEchoReceipt","hasPendingEvent","addlContent","m.hidden","hidden","sendReceipt","rmEventId","rrEvent","rrEventId","setRoomReadMarkersHttpRequest","ts","cachedPreview","isTyping","timeoutMs","typing","verifyLinks","currentRoom","upgradeHistory","refRoom","tombstone","tombstoneEvent","ref","membershipChange","email","inviteByThreePid","medium","address","identityServerUrl","getIdentityServerUrl","id_server","identityServer","getAccessToken","doesServerAcceptIdentityAccessToken","identityAccessToken","includeFuture","getRoomUpgradeHistory","eligibleToLeave","populationResults","doLeave","leave","deleteRoom","removeRoom","setMembershipState","membershipValue","membership","$room_id","$membership","$info","setProfileInfo","displayname","user","presence","avatar_url","avatarUrl","mxcUrl","width","height","resizeMethod","allowDirectLinks","getHttpUriForMxc","newMessage","isJoined","getMyMembership","looksLikeDm","getInvitedAndJoinedMemberCount","mayClientSendStateEvent","timeToWaitMs","errorTs","timeWaitedMs","oldState","paginationToken","numAdded","scrollback","sleep","createMessagesRequest","matrixEvents","chunk","getEventMapper","stateEvents","setUnknownStateEvents","addEventsToTimeline","storeEvents","eventMapperFor","timelineSet","getTimelineForEvent","lazyLoadMembers","Filter","LAZY_LOADING_MESSAGES_FILTER","events_after","events_before","timeline","getState","EventTimeline","BACKWARDS","addTimeline","initialiseState","FORWARDS","fromToken","timelineFilter","getRoomTimelineFilterComponent","eventTimeline","isNotifTimeline","getTimelineSet","backwards","token","getPaginationToken","pendingRequest","paginationRequests","only","next_token","notifications","notification","actionListToActionsObject","setPaginationToken","finally","getFilter","roomState","resetLiveTimeline","peek","writePromise","guest_access","allowJoin","readPromise","allowRead","history_visibility","clientSecret","sendAttempt","nextLink","requestTokenFromEndpoint","client_secret","send_attempt","next_link","phoneCountry","phoneNumber","country","phone_number","endpoint","postParams","doesServerSupportSeparateAddAndBind","idServerUrl","id_access_token","scope","pushRules","rule","rule_id","mute","deferred","hasDontNotifyRule","roomPushRule","getRoomPushRule","defer","deletePushRule","addPushRule","getPushRules","err2","roomEvents","search_term","search_categories","room_events","term","order_by","event_context","before_limit","after_limit","include_profile","searchResults","_query","results","highlights","processRoomEventsSearch","next_batch","searchOpts","hl","resultsLength","sr","SearchResult","fromJson","syncLeftRoomsPromise","syncLeftRooms","filter_id","storeFilter","filterId","allowCached","$filterId","filterName","getFilterIdByName","existingId","existingFilter","oldDef","getDefinition","newDef","deepCompare","setFilterIdByName","createdFilter","createFilter","credentialsGood","remainingTime","turnServer","uris","ttl","servers","urls","credential","httpStatus","allow","clientWellKnownPromise","getRawClientConfig","getDomain","clientWellKnown","primTypes","serializableOpts","storeClientOptions","doesServerSupportUnstableFeature","serverVersionsPromise","getVersions","unstableFeatures","feature","presetName","versionsPresetName","relationType","fetchedEventType","getEncryptedIfNeededEventType","fetchRelations","mapper","originalEvent","original_event","allEvents","getSender","nextBatch","getCacheCallbacks","randomString","shouldAttemptDecryption","attemptDecryption","isBeingDecrypted","getDecryptionPromise","serviceType","SERVICE_TYPES","IS","PREFIX_IDENTITY_V2","IM","stripProto","setIdBaseUrl","available","bindThreepids","guestAccessToken","inhibitLogin","session","bind_email","msisdn","bind_msisdn","guest_access_token","inhibit_login","x_show_msisdn","registerRequest","loginType","loginData","extend","access_token","login","relayState","relay_state","redirectUrl","getSsoLoginUrl","idpId","getUrl","erase","authSessionId","$loginType","invitesNeedingToken","invite_3pid","invite","encodeParams","$relationType","includeMembership","excludeMembership","atEventId","not_membership","at","newVersion","new_version","stateKey","m.fully_read","m.read","server","alias","$alias","roomAlias","visibility","networkId","$networkId","uploadContent","cancelUpload","getCurrentUploads","creds","threePidCreds","isVersionSupported","authDict","newPassword","new_password","$device_id","pusher","rules","rewriteDefaultRules","ruleId","$kind","$ruleId","enabled","device_keys","keyAlgorithm","queries","one_time_keys","oldToken","newToken","qps","to","hsOpenIdToken","idServerRequest","sid","msisdnToken","addressPairs","hashes","getIdentityHashDetails","localMapping","olmutil","Utility","addr","med","hashed","sha256","unhashed","foundAddresses","plainAddress","identityHashedLookup","mapping","v1results","originalQuery","threepids","contentMap","messages","targets","$protocol","termsUrlForService","termsUrls","Authorization","user_accepts","score","maxRoomsPerSpace","suggestedOnly","autoJoinOnly","batch","max_rooms_per_space","suggested_only","auto_join_only","preset","PrivateChat","power_level_content_override","DEFAULT_TREE_POWER_LEVELS_TEMPLATE","creation_content","Space","initial_state","state_key","RoomEncryption","MEGOLM_ALGORITHM","MSC3089TreeSpace","RoomCreate","purposeEvent","$groupId","profile","policy","m.join_policy","roleId","$roleId","categoryId","$categoryId","isPublic","m.visibility","user_ids","publicise","./@types/event","./@types/partials","./ReEmitter","./autodiscovery","./content-helpers","./content-repo","./crypto","./crypto/RoomList","./crypto/api","./crypto/backup","./crypto/dehydration","./crypto/key_passphrase","./crypto/olmlib","./crypto/recoverykey","./event-mapper","./filter","./http-api","./models/MSC3089TreeSpace","./models/event","./models/event-timeline","./models/search-result","./models/user","./pushprocessor","./randomstring","./service-types","./store/stub","./sync","./sync.api","./webrtc/call","./webrtc/callEventHandler","65","formatted_body","66","mxc","serverAndMediaId","fragmentOffset","fragment","67","requestKeysDuringVerification","createCryptoStoreCacheCallbacks","DeviceTrustLevel","UserTrustLevel","CrossSigningLevel","CrossSigningInfo","indexeddb_crypto_store_1","aes_1","publicKeyFromKeyInfo","callbacks","cacheCallbacks","firstUse","crossSigningVerifiedBefore","expectedPubkey","shouldCache","validateKey","signing","PkSigning","gotPubkey","init_with_seed","privkey","getCrossSigningKeyCache","cacheresult","storeCrossSigningKeyCache","secretStorage","stored","isStored","intersect","encodedKey","types","saveCrossSigningKeys","MASTER","master","USER_SIGNING","SELF_SIGNING","privateKeys","masterSigning","masterPub","generate_seed","usage","sskSigning","self_signing","sskPub","pkSign","uskSigning","user_signing","uskPub","signingKeys","masterKey","pkVerify","isCrossSigningVerified","pubkey","algorithms","userCrossSigning","userTrusted","userMaster","uskId","localTrust","trustCrossSignedDevices","userTrust","userSSK","deviceObj","signatures","deviceToObject","fromUserTrustLevel","crossSigningVerified","tofu","localVerified","userTrustLevel","isTofu","isLocallyVerified","_expectedPublicKey","doTxn","STORE_ACCOUNT","txn","getSecretStorePrivateKey","ciphertext","_pickleKey","decrypted","decryptAES","encryptedKey","encryptAES","storeSecretStorePrivateKey","baseApis","client","crossSigning","decoded","backupKeyPromise","secretReq","base64Key","decodedKey","getKeyBackupVersion","restoreKeyBackupWithCache","race","../crypto/store/indexeddb-crypto-store","../logger","./aes","./olmlib","68","DeviceList","deviceinfo_1","CrossSigning_1","TrackingStatus","keyDownloadChunkSize","userByIdentityKey","deviceTrackingStatus","syncToken","keyDownloadsInProgressByUser","dirty","savePromise","resolveSavePromise","savePromiseTime","saveTimer","hasFetched","serialiser","DeviceListUpdateSerialiser","STORE_DEVICE_DATA","getEndToEndDeviceData","trackingStatus","userDevices","idKey","DownloadInProgress","PendingDownload","delay","targetTime","storeEndToEndDeviceData","st","usersToDownload","UpToDate","downloadPromise","doKeyDownload","getDevicesFromStore","dev","devs","DeviceInfo","fromStorage","senderKey","OLM_ALGORITHM","getUserByIdentityKey","setRawStoredDevicesForUser","NotTracked","saveIfDirty","identityKey","updateDevicesForUsers","finished","deviceList","downloadInProgress","keyDownloadsQueuedByUser","queuedQueryDeferred","doQueuedQueries","downloadUsers","factories","userSlice","downloadKeysForUsers","chunkPromises","responses","dk","masterKeys","master_keys","ssks","self_signing_keys","usks","user_signing_keys","processQueryResponseForUser","dkResponse","crossSigningResponse","userStore","getRawStoredDevicesForUser","userResult","localUserId","localDeviceId","updated","deviceResult","storeDeviceKeys","updateStoredDeviceKeysForUser","storage","toStorage","setKeys","setRawStoredCrossSigningForUser","signKeyId","signKey","unsigned","verifySignature","deviceStore","getFingerprint","../utils","./CrossSigning","./deviceinfo","./store/indexeddb-crypto-store","69","EncryptionSetupOperation","EncryptionSetupBuilder","accountData","delegateCryptoCallbacks","crossSigningKeys","keySignatures","keyBackupInfo","accountDataClientAdapter","AccountDataClientAdapter","crossSigningCallbacks","CrossSigningCallbacks","ssssCryptoCallbacks","SSSSCryptoCallbacks","authUpload","sessionBackupPrivateKey","signature","userSignatures","storeCrossSigningKeys","uploadDeviceSigningKeys","uploadKeySignatures","existingValues","modifiedValue","existingValue","lastEvent","cacheSecretStorageKey","../http-api","../models/event","70","OlmDevice","WITHHELD_MESSAGES","_indexeddbCryptoStore","_createForOfIteratorHelper","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","F","_x63","normalCompletion","didErr","_e2","_x64","checkPayloadLength","payloadString","_cryptoStore","deviceCurve25519Key","deviceEd25519Key","_maxOneTimeKeys","_outboundGroupSessionStore","_inboundGroupSessionMessageIndexes","_sessionsInProgress","_olmPrekeyPromise","_initialiseFromExportedDevice","_initialiseFromExportedDevice2","_callee25","exportedData","_context25","STORE_SESSIONS","storeAccount","deviceKey","sessionInfo","lastReceivedMessageTs","storeEndToEndSession","_initialiseAccount","_x5","_x6","_x7","_initialiseAccount2","_callee26","_context26","getAccount","e2eKeys","fromExportedDevice","_args","identity_keys","max_number_of_one_time_keys","curve25519","ed25519","get_library_version","_getAccount","func","_this","_storeAccount","_this2","getAllEndToEndSessions","pickledSession","_getSession","_this3","getEndToEndSession","_unpickleSession","Session","_saveSession","pickledSessionInfo","_getUtility","utility","sign","_ref3","_this4","_x8","getOneTimeKeys","_this5","maxNumberOfOneTimeKeys","markKeysAsPublished","_callee5","_this6","_context5","mark_keys_as_published","generateOneTimeKeys","numKeys","_this7","generate_one_time_keys","generateFallbackKey","_callee6","_this8","_context6","generate_fallback_key","getFallbackKey","_callee7","_this9","_context7","fallback_key","createOutboundSession","_ref8","_callee8","theirIdentityKey","theirOneTimeKey","newSessionId","_this10","_context8","create_outbound","withPrefix","_x9","_x10","createInboundSession","_ref9","_callee9","theirDeviceIdentityKey","messageType","_this11","_context9","create_inbound_from","remove_one_time_keys","decrypt","payload","_x11","_x12","_x13","getSessionIdsForDevice","_ref10","_callee10","sessionIds","_this12","_context10","t0","getEndToEndSessions","_x14","getSessionIdForDevice","_ref11","_callee11","nowait","sessionInfos","idxOfBest","thisSessInfo","thisLastReceived","bestSessInfo","bestLastReceived","_context11","getSessionInfoForDevice","_x15","_x16","_x17","_ref12","_callee12","deviceIdentityKey","_this13","_args12","_context12","_step","_iterator","_loop","sessInfo","hasReceivedMessage","has_received_message","_x18","_x19","encryptMessage","_ref13","_callee13","_this14","_context13","sessionDesc","describe","encrypt","_x20","_x21","_x22","decryptMessage","_ref14","_callee14","_this15","_context14","_x23","_x24","_x25","_x26","matchesSession","_ref15","_callee15","matches","_this16","_context15","matches_inbound","_x27","_x28","_x29","_x30","recordSessionProblem","_ref16","_callee16","fixed","_context16","storeEndToEndSessionProblem","_x31","_x32","_x33","sessionMayHaveProblems","_ref17","_callee17","timestamp","_context17","getEndToEndSessionProblem","_x34","_x35","filterOutNotifiedErrorDevices","_ref18","_callee18","_context18","_x36","_saveOutboundGroupSession","_getOutboundGroupSession","pickled","OutboundGroupSession","createOutboundGroupSession","encryptGroupMessage","getOutboundGroupSessionKey","chain_index","message_index","session_key","_unpickleInboundGroupSession","sessionData","InboundGroupSession","_getInboundGroupSession","_this17","getEndToEndInboundGroupSession","withheld","addInboundGroupSession","_ref19","_callee19","forwardingCurve25519KeyChain","sessionKey","keysClaimed","exportFormat","extraSessionData","_this18","_args19","_context19","STORE_INBOUND_GROUP_SESSIONS","STORE_INBOUND_GROUP_SESSIONS_WITHHELD","STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS","existingSession","existingSessionData","import_session","first_known_index","storeEndToEndInboundGroupSession","sharedHistory","addSharedHistoryInboundGroupSession","_x37","_x38","_x39","_x40","_x41","_x42","_x43","addInboundGroupSessionWithheld","_ref20","_callee20","_this19","_context20","storeEndToEndInboundGroupSessionWithheld","_x44","_x45","_x46","_x47","_x48","m.unverified","m.blacklisted","m.unauthorised","m.no_olm","_calculateWithheldMessage","decryptGroupMessage","_ref21","_callee21","_this20","_context21","DecryptionError","plaintext","messageIndexKey","msgInfo","_x49","_x50","_x51","_x52","_x53","_x54","hasInboundSessionKeys","_ref22","_callee22","_this21","_context22","_x55","_x56","_x57","getInboundGroupSessionKey","_ref23","_callee23","chainIndex","_this22","_context23","exportedSession","export_session","senderEd25519Key","forwarding_curve25519_key_chain","sender_claimed_ed25519_key","shared_history","_x58","_x59","_x60","_x61","exportInboundGroupSession","messageIndex","sender_key","sender_claimed_keys","org.matrix.msc3061.shared_history","getSharedHistoryInboundGroupSessions","_ref24","_callee24","_this23","_context24","_x62","ed25519_verify","./algorithms","71","OutgoingRoomKeyRequestManager","RoomKeyRequestState","stringifyRequestBody","requestBody","stringifyRecipientList","recipients","sendOutgoingRoomKeyRequestsTimer","sendOutgoingRoomKeyRequestsRunning","startTimer","resend","req","getOutgoingRoomKeyRequest","CancellationPendingAndWillResend","Unsent","CancellationPending","Sent","updateOutgoingRoomKeyRequest","requestId","cancellationTxnId","updatedReq","requestTxnId","queueRoomKeyRequest","sendOutgoingRoomKeyRequestCancellation","getOrAddOutgoingRoomKeyRequest","deleteOutgoingRoomKeyRequest","getOutgoingRoomKeyRequestsByTarget","outgoings","getAllOutgoingRoomKeyRequestsByState","sendOutgoingRoomKeyRequests","getOutgoingRoomKeyRequestByState","sendOutgoingRoomKeyRequest","requestMessage","requesting_device_id","request_id","sendMessageToDevices","andResend","recip","sendToDevice","RoomKeyRequest","../@types/event","72","STORE_ROOMS","getEndToEndRooms","roomInfo","storeEndToEndRoom","73","SecretStorage","SECRET_STORAGE_ALGORITHM_V1_AES","accountDataAdapter","requests","defaultKey","getAccountDataFromServer","ev","passphrase","iv","mac","calculateKeyCheck","getDefaultKeyId","getKey","encrypted","defaultKeyId","encryption","secretInfo","encInfo","decryption","passthrough","get_private_key","rej","requestData","toDevice","cancel","cancelData","onSecretRequested","encryptedContent","ensureOlmSessionsForDevices","encryptMessageForDevice","requestControl","deviceInfo","getDeviceByIdentityKey","getSenderKey","returned","../randomstring","74","subtleCrypto","subtle","webkitSubtle","zeroSalt","deriveKeysNode","getCrypto","prk","createHmac","update","digest","aesKey","deriveKeysBrowser","hkdfkey","importKey","keybits","deriveBits","salt","TextEncoder","hmacKey","aesProm","hmacProm","ivStr","getRandomValues","encodedData","hmac","encryptBrowser","randomBytes","cipher","createCipheriv","final","encryptNode","verify","TextDecoder","decryptBrowser","decipher","createDecipheriv","decryptNode","75","registerAlgorithm","UnknownDeviceError","DecryptionAlgorithm","EncryptionAlgorithm","DECRYPTION_CLASSES","ENCRYPTION_CLASSES","member","oldMembership","keyRequest","msg","details","detailedString","detailedStringForDecryptionError","encryptor","decryptor","76","__exportStar","./base","./megolm","./olm","77","isRoomSharedHistory","base_1","OlmDevice_1","visibilityEvent","OutboundSessionInfo","useCount","sharedWithDevices","blockedDevicesNotified","creationTime","rotationPeriodMsgs","rotationPeriodMs","sessionLifetime","devicesInRoom","MegolmEncryption","setupPromise","outboundSessions","sessionRotationPeriodMsgs","rotation_period_msgs","sessionRotationPeriodMs","rotation_period_ms","singleOlmCreationPhase","returnSession","oldSession","needsRotation","sharedWithTooManyDevices","prepareNewSession","shareMap","getIdentityKey","devicesWithoutSession","olmSessions","getExistingOlmSessions","shareKeyWithOlmSessions","errorDevices","failedServers","shareKeyWithDevices","retryDevices","failedServerMap","failedDevices","userHS","notifyFailedOlmDevices","blockedMap","blockedCount","userBlockedDevices","notifyBlockedDevices","backupGroupSession","devicemap","noOlmDevices","devicesToShareWith","sessionResults","currentSlice","mapSlices","userDeviceMap","markSharedWithDevice","blockedInfo","markNotifiedBlockedDevice","obSessionInfo","sentChainIndex","otkTimeout","getDevicesWithoutSessions","userDeviceMaps","splitDevices","taskDetail","encryptAndSendKeysToDevices","filteredFailedDevices","sendBlockedNotificationsToDevices","encryptionPreparation","elapsedTime","encryptionPreparationMetadata","startTime","getDevicesInRoom","removeUnknownDevices","ensureOutboundSession","checkForUnknownDevices","payloadJson","unknownDevices","isUnverified","isKnown","roomMembers","getEncryptionTargetMembers","isBlacklisting","getBlacklistUnverifiedDevices","deviceTrust","isBlocked","MegolmDecryption","pendingEvents","addEventToPendingList","getTs","errorCode","requestKeysForEvent","problem","problemDescription","PROBLEM_DESCRIPTIONS","unknown","removeEventFromPendingList","clearEvent","senderCurve25519Key","claimedEd25519Key","wireContent","getKeyRequestRecipients","requestRoomKey","senderPendingEvents","delete","forwardingKeyChain","ed25519Key","getKeysClaimed","retryDecryption","cancelRoomKeyRequest","retryDecryptionFromSender","buildKeyForwardingMessage","pending","isRetry","_sessionId","sharedHistorySessions","no_olm","../../logger","../OlmDevice","../olmlib","78","DeviceVerification","OlmEncryption","sessionPrepared","prepPromise","ensureOlmSessionsForUsers","ensureSession","payloadFields","BLOCKED","OlmDecryption","recipient","recipient_keys","intended","our_key","reported_sender","reported_room","reallyDecryptMessage","myPromise","decryptionErrors","../deviceinfo","79","80","DefaultAlgorithm","algorithmsByName","Aes256","Curve25519","client_1","utils_2","checkedForBackup","sendingBackups","Algorithm","scheduleKeyBackupSend","authData","prepare","encodeRecoveryKey","algorithmName","trustInfo","usable","checkAndStart","trusted_locally","sigs","trustedPubkey","getLocalTrustedBackupPubKey","public_key","mySigs","keyIdParts","sigInfo","crossSigningId","valid","some","maxDelay","numFailures","backupPendingKeys","getSessionsNeedingBackup","forwardedCount","checkDeviceInfoTrust","first_message_index","forwarded_count","is_verified","session_data","encryptSession","sendKeyBackup","unmarkSessionsNeedingBackup","markSessionsNeedingBackup","STORE_BACKUP","getAllEndToEndInboundGroupSessions","publicKey","PkEncryption","set_recipient_key","PkDecryption","init_with_private_key","derivation","keyFromPassphrase","private_key_salt","private_key_iterations","iterations","generate_key","plainText","ephemeral","pubKey","UNSTABLE_MSC3270_NAME","outKey","../client","./key_passphrase","./recoverykey","81","DehydrationManager","another_json_1","oneweek","inProgress","getDehydrationKeyFromCache","time","timeoutId","otks","fallbacks","initial_device_display_name","deviceKeys","supportedAlgorithms","deviceSignature","oneTimeKeys","fallbackKeys","fallback","encodeURI","org.matrix.msc2732.fallback_keys","another-json","82","Unverified","device_display_name","Blocked","Verified","VERIFIED","UNVERIFIED","83","IncomingRoomKeyRequest","DeviceList_1","EncryptionSetup_1","SecretStorage_1","OutgoingRoomKeyRequestManager_1","QRCode_1","SAS_1","VerificationRequest_1","InRoomChannel_1","ToDeviceChannel_1","IllegalMethod_1","errors_1","defaultVerificationMethods","ReciprocateQRCode","NAME","SAS","SHOW_QR_CODE_METHOD","IllegalMethod","SCAN_QR_CODE_METHOD","RECIPROCATE_QR_CODE","clientStore","lastOneTimeKeyCheck","oneTimeKeyCheckInProgress","roomEncryptors","roomDecryptors","globalBlacklistUnverifiedDevices","globalErrorOnUnknownDevices","receivedRoomKeyRequests","receivedRoomKeyRequestCancellations","processingRoomKeyRequests","roomDeviceTrackingState","lastNewSessionForced","sendKeyRequestsImmediately","onDeviceListUserCrossSigningUpdated","newCrossSigning","seenPubkey","currentPubkey","changed","storeTrustedSelfKeys","checkDeviceVerifications","updateCrossSigningVerifiedBefore","onToDeviceEvent","onRoomKeyEvent","onRoomKeyRequestEvent","onRequestReceived","onSecretReceived","onRoomKeyWithheldEvent","transaction_id","onKeyVerificationMessage","onToDeviceBadEncrypted","onTimelineEvent","atStart","removed","liveEvent","InRoomChannel","validateEvent","handleVerificationEvent","inRoomVerificationRequests","channel","VerificationRequest","cachedKey","getBackupKey","outgoingRoomKeyRequestManager","toDeviceVerificationRequests","ToDeviceRequests","InRoomRequests","getFromSecretStorage","load","myDevices","storeDevicesForUser","getCrossSigningKeys","startTrackingDeviceList","getKnownUserIds","encodedPrivateKey","publicKeysOnDevice","privateKeysExistSomewhere","isStoredInKeyCache","isStoredInSecretStorage","secretStorageKeyInAccount","hasKey","privateKeysInStorage","sessionBackupInStorage","isKeyBackupKeyStored","authUploadDeviceSigningKeys","setupNewCrossSigning","builder","resetCrossSigning","resetKeys","addCrossSigningKeys","signDevice","addKeySignature","addSessionBackup","privateKeysInCache","allowPrivateKeyRequests","crossSigningPrivateKeys","storeInSecretStorage","buildOperation","createSecretStorageKey","setupNewKeyBackup","setupNewSecretStorage","getKeyBackupPassphrase","newKeyId","createSSSS","addKey","addPrivateKey","setDefaultKeyId","ensureCanCheckPassphrase","signKeyBackupWithCrossSigning","keyBackupAuthData","oldSSSSKey","oldKeyId","oldKeyInfo","storageExists","backupKey","getCrossSigningKeysFromCache","sessionBackupKey","fixedBackupKey","decodedBackupKey","addSessionBackupPrivateKeyToCache","keyID","signedDevice","upload","shouldEmit","failures","KeySignatureUploadError","shouldUpgradeCb","upgradeInfo","checkForDeviceVerificationUpgrade","usersToUpgrade","setDeviceVerified","trustLevel","deviceIds","checkForValidDeviceSignature","signame","trustedLocally","trustCrossSig","masterChanged","masterExistsNotLocallyCached","oldSelfSigningId","oldUserSigningId","selfSigningChanged","userSigningChanged","selfSigningExistsNotLocallyCached","userSigningExistsNotLocallyCached","deviceSig","keysToUpload","afterCrossSigningLocalKeyChange","clearKeys","trustedPubKey","setLocalTrustedBackupPubKey","eventEmitter","onRoomMembership","uploadKeysRequest","oneTimeKeyCount","needsNewFallback","maxOneTimeKeys","keyLimit","uploadLoop","keyCount","getNeedsNewFallback","keysThisLoop","uploadOneTimeKeys","one_time_key_counts","signed_curve25519","fallbackJson","setNeedsNewFallback","oneTimeJson","xsk","signUser","verificationStatus","knownStatus","findRequestInProgress","getRequestsInProgress","existingRequest","requestVerificationWithChannel","ToDeviceChannel","makeTransactionId","requestsMap","transactionId","setRequestByChannel","sendRequest","racingRequest","getRequestByChannel","getRequestBySenderAndTxnId","setRequestBySenderAndTxnId","verifier","waitFor","started","deviceIdKey","getForwardingCurve25519KeyChain","isKeySourceUntrusted","claimedKey","getClaimedEd25519Key","authenticated","mismatchedSender","inhibitDeviceQuery","existingConfig","storeConfigPromise","AlgClass","trackRoomDevices","refreshOutdatedDeviceLists","trackMembers","exportedSessions","sess","successes","updateProgress","importRoomKey","mRelatesTo","makeEncrypted","isRedacted","redactionEvent","getUnsigned","redacted_because","decryptedEvent","decryptEvent","syncData","syncDeviceLists","oldSyncToken","evalDeviceListChanges","sendQueuedRequests","cancelAndResendAllOutgoingRequests","stopTrackingAllDeviceLists","setSyncToken","nextSyncToken","catchingUp","maybeUploadOneTimeKeys","processReceivedRoomKeyRequests","deviceLists","invalidateUserDeviceList","left","e2eUserIds","getTrackedE2eUsers","stopTrackingDeviceList","getTrackedE2eRooms","members","myMembership","getRoomDecryptors","canCreateRequest","getEventType","from_device","createRequest","isLiveEvent","isNewRequest","setRequest","setVerificationRequest","handleEvent","initiatedByMe","invalid","observeOnly","requestsToResend","getOutgoingSentRoomKeyRequest","keyReq","shouldEncryptForInvitedMembers","IncomingRoomKeyRequestCancellation","cancellations","processReceivedRoomKeyRequest","cancellation","processReceivedRoomKeyRequestCancellation","reshareKeyWithDevice","hasKeysForKeyRequest","share","shareKeysWithDevice","decryptors","../ReEmitter","../errors","./DeviceList","./EncryptionSetup","./OlmDevice","./OutgoingRoomKeyRequestManager","./SecretStorage","./backup","./dehydration","./verification/IllegalMethod","./verification/QRCode","./verification/SAS","./verification/request/InRoomChannel","./verification/request/ToDeviceChannel","./verification/request/VerificationRequest","84","deriveKey","DEFAULT_ITERATIONS","numBits","private_key_bits","85","encodeUnpaddedBase64","MEGOLM_BACKUP_ALGORITHM","_verifyKeyAndStartSession","oneTimeKey","signingUserId","signingDeviceId","signingKey","mangledObj","uint8Array","Megolm","MegolmBackup","resultsObject","ourUserId","ourDeviceId","recipientUserId","recipientDevice","sender_device","resolveSession","forWhom","oneTimeKeyAlgorithm","claimOneTimeKeys","resolver","otkResult","userRes","deviceRes","createdKey","keyObj","mysigs","86","bs58_1","OLM_RECOVERY_KEY_PREFIX","parity","PRIVATE_KEY_LENGTH","bs58","87","upgradeDatabase","db","oldVersion","outgoingRoomKeyRequestsStore","createObjectStore","keyPath","createIndex","createDatabase","Backend","VERSION","_db","_nextTxnId","onversionchange","_dbName","close","_filterOutNotifiedErrorDevices","_getEndToEndSessionProblem","_storeEndToEndSessionProblem","transaction","onerror","_getOutgoingRoomKeyRequest","oncomplete","objectStore","openCursor","onsuccess","cursor","wantedStates","stateIndex","wantedState","promiseifyTxn","getAll","_wantedState","expectedState","updates","getReq","abortWithException","newData","countReq","problems","lastProblem","withheldGetReq","addReq","stopPropagation","preventDefault","sessionGetReq","mode","stores","_mx_abortexception","abort","onabort","../../utils","88","_localStorageCryptoStore","_memoryCryptoStore","IndexedDBCryptoStoreBackend","IndexedDBHelpers","dbName","_indexedDB","_backendPromise","_backend","onupgradeneeded","onblocked","backend","InvalidCryptoStoreError","TOO_NEW","LocalStorageCryptoStore","MemoryCryptoStore","deleteDatabase","countEndToEndSessions","addEndToEndInboundGroupSession","exists","../../errors","../../indexeddb-helpers","./indexeddb-crypto-store-backend","./localStorage-crypto-store","./memory-crypto-store","89","_defineProperty2","_slicedToArray2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","E2E_PREFIX","KEY_END_TO_END_ACCOUNT","KEY_CROSS_SIGNING_KEYS","KEY_NOTIFIED_ERROR_DEVICES","KEY_DEVICE_DATA","KEY_INBOUND_SESSION_PREFIX","KEY_SESSIONS_NEEDING_BACKUP","keyEndToEndSessions","keyEndToEndSessionProblems","keyEndToEndInboundGroupSession","keyEndToEndInboundGroupSessionWithheld","keyEndToEndRoomsPrefix","_MemoryCryptoStore","_super","webStore","getJsonItem","fixedSessions","_Object$entries","_Object$entries$_i","_getEndToEndSessions","_i2","_Object$values","setJsonItem","notifiedErrorDevices","_iterator2","_step2","sessionsNeedingBackup","_step3","_iterator3","_step4","_iterator4","removeItem","getItem","setItem","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","@babel/runtime/helpers/possibleConstructorReturn","@babel/runtime/helpers/slicedToArray","90","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","_outgoingRoomKeyRequests","_account","_crossSigningKeys","_privateKeys","_backupKeys","_sessions","_sessionProblems","_notifiedErrorDevices","_inboundGroupSessions","_inboundGroupSessionsWithheld","_deviceData","_rooms","_sessionsNeedingBackup","_sharedHistoryInboundGroupSessions","_startup","promiseTry","_step5","_iterator5","_step6","_iterator6","_ref","_ref2","deviceSessions","_ref4","_iterator7","_step7","_iterator8","_step8","_step9","_iterator9","_step10","_iterator10","91","VerificationBase","SwitchStartEventError","_wrapNativeSuper2","_event","_deviceinfo","_Error2","_CrossSigning","timeoutException","_Error","startEvent","_EventEmitter","_verifyKeys2","_super2","_channel","_baseApis","cancelled","_done","_promise","_transactionTimeoutTimer","uncompletedContent","existingEvent","getEventFromOtherParty","_expectedEvent","_resolveEvent","_rejectEvent","canSwitchStartEvent","restartingFlow","_resetTimer","_reject","_endTimer","onVerifierFinished","_resolve","onVerifierCancelled","timeoutEvent","newTimeoutError","_send","_doVerification","_started","verifiedDevices","_verifiedDevices","_deviceId","getDeviceId","../../models/event","../CrossSigning","./Error","@babel/runtime/helpers/wrapNativeSuper","92","newVerificationError","errorFactory","errorFromEvent","newInvalidMessageError","newUserMismatchError","newKeyMismatchError","newUnexpectedMessageError","newUnknownMethodError","newUnknownTransactionError","newUserCancelledError","extradata","93","_construct2","_Base","_doVerification2","_len","_key","./Base","@babel/runtime/helpers/construct","94","QRCodeData","_Base2","_olmlib","qrCodeData","_masterKey","encodedSharedSecret","reciprocateQREvent","confirm","MODE_VERIFY_OTHER_USER","MODE_VERIFY_SELF_TRUSTED","MODE_VERIFY_SELF_UNTRUSTED","otherUserMasterKey","targetDevice","otherDeviceKey","myMasterKey","_verifyKeys","targetKey","deviceKeyId","deviceTargetKey","sharedSecret","_sharedSecret","_mode","_otherUserMasterKey","_otherDeviceKey","_myMasterKey","_buffer","_getOtherDeviceKey2","_create","otherUserCrossSigningInfo","myUserId","myCrossSigningInfo","qrData","_generateSharedSecret","_determineMode","otherUserId","_getOtherDeviceKey","_generateQrData","_generateBuffer","secretBytes","otherDevice","otherDeviceId","firstKeyB64","secondKeyB64","secretB64","appendByte","tmpBuf","appendInt","appendStr","withLengthPrefix","appendEncBase64","95","_anotherJson","START_TYPE","EVENTS","newMismatchedSASError","newMismatchedCommitmentError","emojiMapping","sasGenerators","decimal","sasBytes","emoji","generateSas","sas","macMethods","hkdf-hmac-sha256","hmac-sha256","calculateMAC","olmSAS","macFunction","calculateKeyAgreement","curve25519-hkdf-sha256","ourInfo","ourSASPubKey","theirInfo","theirSASPubKey","sasInfo","generate_bytes","KEY_AGREEMENT_LIST","HASHES_LIST","MAC_LIST","SAS_LIST","KEY_AGREEMENT_SET","HASHES_SET","MAC_SET","SAS_SET","intersection","anArray","aSet","_checkMAC2","_doRespondVerification2","_doSendVerification2","_sendStart2","_doSendVerification","_doRespondVerification","_waitingForAccept","startContent","completeContent","key_agreement_protocols","message_authentication_codes","short_authentication_string","sendCompleted","sasMethods","keyAgreement","macMethod","hashCommitment","commitmentStr","verifySAS","_yield$Promise$all","_yield$Promise$all2","completedContentFromEvent","_sendStart","_waitForEvent","key_agreement_protocol","message_authentication_code","commitment","get_pubkey","set_their_key","_confirm","sasEvent","_sendMAC","mismatch","_checkMAC","hashMethod","_yield$Promise$all3","_yield$Promise$all4","_confirm2","keyList","baseInfo","crossSigningKeyId","96","_VerificationRequest","MESSAGE_TYPE","M_REFERENCE","M_RELATES_TO","_client","_roomId","_requestEventId","_sendCompleted","_handleEvent","ownUserId","isRemoteEcho","isSentByUs","hasEventId","getOtherPartyUserId","getTransactionId","getRelation","REQUEST_TYPE","READY_TYPE","rel_type","sendType","relation","_requestsByRoomId","_getRequestByTxnId","requestsByTxnId","_setRequest","../../../logger","./VerificationRequest","97","_typeof2","_randomstring","_devices","_ret","cancelContent","wasStarted","isStarted","nonChosenDevices","_sendToDevices","CANCEL_TYPE","phase","PHASE_STARTED","PHASE_READY","remoteEchoEvent","_request","msgMap","isCancelled","_requestsByUserId","isToDevices","../../../models/event","../../../randomstring","../Error","98","PHASE_DONE","PHASE_CANCELLED","PHASE_REQUESTED","PHASE_UNSENT","DONE_TYPE","EVENT_PREFIX","_toConsumableArray2","_assertThisInitialized2","_QRCode","_cancelOnError2","_accept","_cancel","_sendRequest","_verificationMethods","_commonMethods","_setPhase","_eventsByUs","_eventsByThem","_observeOnly","_timeoutTimer","_accepting","_declining","_verifierHasFinished","_cancelled","_chosenMethod","_qrCodeData","_requestReceivedAt","effectiveExpiresAt","getTimestamp","expiresAtByReceipt","ready","theirMethodEvent","myStartEvent","_content","myStartMethod","_verifier","validStartPhase","_createVerifier","_phase","_ref$reason","_ref$code","_args2","_cancellingUserId","check","handled","notify","byThem","transitions","hasRequestByThem","requestEvent","_getEventBy","readyEvent","theirStartEvent","ourStartEvent","fromRequestPhase","fromUnsentPhase","ourDoneEvent","cancelEvent","_getEventByEither","transition","_wasSentByOwnDevice","receiveStartFromOtherDevices","_wasSentByOwnUser","_calculatePhaseTransitions","existingIdx","findIndex","newTransitions","_transitionToPhase","newEvent","oldRaceIdentifier","newRaceIdentifier","oldEvent","isSelfVerification","oldContent","newContent","wasObserveOnly","oldPhase","newEventWinsRace","lastTransition","_adjustObserveOnly","_cancelOnError","_addEvent","_applyPhaseTransitions","_isWinningStartRace","switchStartEvent","otherPartySupportsMethod","_setupTimeout","_cancelOnTimeout","isUnexpectedRequest","isUnexpectedReady","calculateEventTimeout","_step4$value","_type","_targetDevice","VerifierCtor","noEventsYet","hasMyRequest","hasTheirRequest","hasMyStart","hasTheirStart","myCancel","theirCancel","fromDevice","../QRCode","@babel/runtime/helpers/assertThisInitialized","@babel/runtime/helpers/toConsumableArray","99","InvalidStoreError","TOGGLED_LAZY_LOADING","100","preventReEmit","plainOldJsObject","decryptEventIfNeeded","101","FilterComponent","filterJson","checkFields","not_types","not_rooms","senders","not_senders","contains_url","containsUrl","literalKeys","actualValue","filterValue","typePrefix","matchesWildcard","matchFunc","notName","disallowedValues","allowedValues","containsUrlFilter","102","filter_component_1","setProp","keyNesting","nestedKeys","currentObj","jsonObj","setDefinition","roomFilterJson","roomFilterFields","roomFilter","roomTimelineFilter","includeLeave","lazy_load_members","./filter-component","103","_retryNetworkOperation","ConnectionError","PREFIX_IDENTITY_V1","_contentType","event_emitter","checkObjectHasKeys","uploads","getContentUri","includeFilename","contentType","fileName","stream","rawResponse","onlyContentUri","loaded","bodyParser","rawBody","content_uri","requestCallback","timeout_fn","timeout_timer","http_status","addEventListener","progressHandler","queryArgs","filename","Content-Type","promise0","fullUri","_matrix_opts","requestPromise","consent_uri","timedOut","resetTimeout","reqPromise","useQuerystring","handlerFn","onprogress","ex","userDefinedCallback","getResponseHeader","getResponseContentType","jsonBody","parseErrorResponse","errorJson","cause","_cause","_Error3","_super3","maxAttempts","lastConnectionError","t1","./realtime-callbacks","content-type","104","105","InteractiveAuth","_doRequest2","_submitAuthDict","_poll","EMAIL_STAGE_TYPE","MSISDN_STAGE_TYPE","_matrixClient","matrixClient","_data","_requestCallback","doRequest","_busyChangedCallback","busyChanged","_stateUpdatedCallback","stateUpdated","startAuthStage","_resolveFunc","_rejectFunc","_inputs","inputs","_requestEmailTokenCallback","requestEmailToken","_clientSecret","generateClientSecret","_emailSid","emailSid","_requestingEmailToken","_chosenFlow","_currentStage","_submitPromise","attemptAuth","flows","_startNextAuthStage","_doRequest","poll","idServerParsedUrl","doesServerRequireIdServerParam","threepid_creds","threepidCreds","submitAuthDict","getSessionId","getClientSecret","getStageParams","getChosenFlow","background","getEmailSid","setEmailSid","errorFlows","haveFlows","requestTokenResult","completed","stages","emailAddress","nextStage","_chooseStage","stageStatus","_chooseFlow","_firstUncompletedStage","haveEmail","haveMsisdn","flow","flowHasEmail","flowHasMsisdn","required_stages","available_flows","stageType","106","loglevel_1","DEFAULT_NAMESPACE","extendLogger","prefixLogger","getPrefixedLogger","logLevel","loglevel","107","createClient","wrapRequest","setMatrixCallVideoInput","setMatrixCallAudioInput","memory_crypto_store_1","memory_1","scheduler_1","requestInstance","setAudioInput","setVideoInput","wrapper","origRequest","cryptoStoreFactory","fac","MemoryStore","MatrixScheduler","./client","./crypto/store/indexeddb-crypto-store","./crypto/store/memory-crypto-store","./errors","./interactive-auth","./models/event-timeline-set","./models/group","./models/room","./models/room-member","./models/room-state","./scheduler","./store/indexeddb","./store/memory","./store/session/webstorage","./sync-accumulator","./timeline-window","108","MSC3089Branch","indexEvent","isActive","redactEvent","getEventTimeline","getUnfilteredTimelineSet","httpUrl","mxcUrlToHttp","109","TreePermissions","MSC3089Branch_1","p_retry_1","megolm_1","kick","ban","redact","state_default","events_default","users_default","RoomPowerLevels","RoomHistoryVisibility","RoomTombstone","RoomName","RoomMessage","isTopLevel","parentEvents","SpaceParent","every","andSubspaces","shareHistoryKeys","retryInvite","getDirectories","sendSharedHistoryKeys","simpleRetryOperation","role","currentPls","pls","viewLevel","editLevel","adminLevel","Viewer","Editor","Owner","directory","unstableCreateFileTree","SpaceChild","via","trees","children","tree","unstableGetFileTreeSpace","subdirectories","kickMemberships","RoomMember","ordered","order","lexicographicCompare","roomA","roomB","createTsA","createTsB","parentRoom","getParentRoom","getOrderedChildren","movingUp","getOrder","newOrder","DEFAULT_ALPHABET","ensureBeforeIsSane","nextString","startOrder","endOrder","averageBetweenStrings","prevString","lastOrder","currentChild","encryptedContents","Blob","File","active","fileEventId","branch","../crypto/algorithms/megolm","./MSC3089Branch","p-retry","110","EventContext","ourEvent","ourEventIndex","paginateTokens","Direction","Backward","Forward","./event-timeline","111","EventTimelineSet","relations_1","debuglog","liveTimeline","timelines","_eventIdToTimeline","relations","filterRoomTimeline","oldEventId","newEventId","existingTimeline","backPaginationToken","forwardPaginationToken","resetAllTimelines","oldTimeline","newTimeline","forkLive","fork","tl","toStartOfTimeline","direction","inverseDirection","didUpdate","lastEventWasNew","addEventToTimeline","neighbour","getNeighbouringTimeline","existingIsLive","timelineIsLive","backwardsIsLive","forwardsIsLive","setNeighbouringTimeline","duplicateStrategy","fromCache","tlEvents","setEventMetadata","addEvent","setRelationsTarget","aggregateRelations","removeEvent","eventId1","eventId2","timeline1","timeline2","idx1","idx2","evId","relationsForEvent","relationsWithRelType","relationsWithEventType","setTargetEvent","relatesToEventId","relatesToEvent","Relations","findEventById","getPendingEvent","./event","./relations","112","room_state_1","eventTimelineSet","baseIndex","startState","RoomState","endState","prevTimeline","nextTimeline","stateContext","getSentinelMember","forwardLooking","freeze","setStateEvents","forkState","clone","insertIndex","./room-state","113","interns","intern","_replacingEvent","_localRedactionEvent","_isCancelled","_decryptionPromise","verificationRequest","txn_id","localTimestamp","getAge","getOriginalContent","prev_content","getPrevContent","age","cryptoType","cryptoContent","getClearContent","decryptionLoop","badEncryptedMessage","re","setClearData","decryptionResult","REDACT_KEEP_KEYS","keeps","REDACT_KEEP_CONTENT_MAP","oldUnsigned","oldId","relType","isRelation","replaceRelation","getServerAggregatedRelation","Replace","getDate","otherEvent","myProps","deepSortedObjectEntries","theirProps","m.room.member","m.room.create","creator","m.room.join_rules","join_rule","m.room.power_levels","m.room.aliases","aliases","114","Group","inviter","inherits","setProfile","setMyMembership","setInviter","115","relationEventIds","annotationsByKey","annotationsBySender","sortedAnnotationsByKey","targetEvent","creationEmitted","onEventStatus","isSending","onBeforeRedaction","redactedEvent","Annotation","removeAnnotationFromAggregation","lastReplacement","getLastReplacement","makeReplaced","addAnnotationToAggregation","maybeEmitCreated","eventsForKey","aEvents","eventsFromSender","minTs","getRelations","replacement","116","_isOutOfBand","powerLevelNorm","disambiguate","rawDisplayName","updateModifiedTime","getDirectionalContent","selfUserId","removeHiddenChars","MXID_PATTERN","LTR_RTL_PATTERN","getUserIdsWithDisplayName","shouldDisambiguate","oldName","calculateDisplayName","powerLevelEvent","evContent","maxLevel","lvl","oldPowerLevel","oldPowerLevelNorm","isInteger","oldTyping","typingList","_modified","memberEvent","memberContent","inviteSender","prev_sender","is_direct","allowDefault","rawUrl","getMxcAvatarUrl","../content-repo","117","room_member_1","OobStatus","oobMemberFlags","NotStarted","sentinels","displayNameToUserIds","userIdsToDisplayNames","tokenToInvite","joinedMemberCount","summaryJoinedMemberCount","invitedMemberCount","summaryInvitedMemberCount","getMembers","excludedIds","sentinel","setMembershipEvent","eventsByStateKey","setInvitedMemberCount","getInvitedMemberCount","setJoinedMemberCount","getJoinedMemberCount","Finished","isOutOfBand","getMember","markOutOfBand","unknownStateEvents","lastStateEvent","getStateEventMatching","setStateEvent","updateDisplayNameCache","updateThirdPartyTokenCache","getOrCreateMember","updateMember","oldLastModified","getLastModifiedTime","setPowerLevelEvent","pwrLvlEvent","InProgress","setOutOfBandMember","stateEvent","existingMember","setTypingEvent","modified","mxEvent","canRedact","maySendEvent","hasSufficientPowerLevelFor","powerLevelsEvent","powerLevels","requiredLevel","isNumber","maySendEventOfType","stateEventType","cli","maySendStateEvent","eventsLevels","stateDefault","eventsDefault","isSafeInteger","userPowerLevel","notifLevelKey","notifLevel","joinRuleEvent","RoomJoinRules","third_party_invite","signed","RoomThirdPartyInvite","strippedOldName","existingUserIds","filteredUserIDs","strippedDisplayname","./room-member","118","RoomSummary","119","Room","event_timeline_set_1","room_summary_1","SAFE_ROOM_VERSIONS","synthesizeReceipt","fakeReceipt","txnToEvent","receipts","receiptCacheByEventId","realReceipts","notificationCounts","filteredTimelineSets","blacklistUnverifiedDevices","selfMembership","summaryHeroes","getTypeWarning","getVersionWarning","tags","summary","pendingEventOrdering","timelineSets","fixUpLegacyTimelineFields","pendingEventList","serializedPendingEventList","pendingEventsKey","serializedEvent","membersPromise","readReceiptEventId","getEventReadUpTo","readReceiptTimelineIndex","matrixEvent","decryptionPromises","allSettled","ver","getVersion","versionCap","getCapabilities","safeVer","Stable","checkVersionAgainstCapability","urgent","needsUpgrade","currentVersion","removeElement","savePendingEvents","MIN_SAFE_INTEGER","me","getDMInviter","inviterId","anyMember","hasHeroes","availableMember","availableUser","prevMembership","cleanupAfterLeaving","lastSyncToken","getSyncToken","fromServer","rawMembersEvents","getOutOfBandMembers","loadMembersFromServer","memberEvents","markOutOfBandMembersStarted","inMemoryUpdate","loadMembers","setOutOfBandMembers","isCryptoEnabled","markOutOfBandMembersFailed","oobMembers","loadMembersIfNeeded","clearOutOfBandMembers","clearLoadedMembersIfNeeded","e2eMembers","heroes","joinedCount","invitedCount","roomAvatarEvent","RoomAvatar","mainUrl","aliasStrings","aliasEvents","RoomAliases","aliasEvent","filteredAliases","canonicalAlias","RoomCanonicalAlias","alt_aliases","getMembersWithMembership","calculateRoomName","unfilteredLiveTimeline","addLiveEvent","redactId","makeRedacted","handleRemoteEcho","addReceipt","aggregateNonLiveRelation","markLocallyRedacted","isEventEncrypted","remoteEvent","oldStatus","removePendingEvent","eventIdToTimeline","allowed","ALLOWED_TRANSITIONS","replaceLocalEventId","replaceEventId","removedEvent","revertRedactionLocalEcho","unmarkLocallyRedacted","eventIds","removedAny","membershipEvent","invite_room_state","strippedEvent","normalizedName","normalize","getReceiptsForEvent","receipt","ignoreSynthesized","readUpToId","fake","addReceiptsToStructure","buildReceiptCache","existingReceipt","ordering","compareEventOrdering","addTags","canInvite","getJoinRule","ignoreRoomNameEvent","mRoomName","getCanonicalAlias","getAltAliases","inviteJoinCount","otherNames","otherMembers","localeCompare","memberNamesToRoomName","thirdPartyInvites","display_name","leftNames","names","countWithoutMe","./event-timeline-set","./room-summary","120","_eventContext","rank","eventContext","eventMapper","jsonContext","setPaginateToken","addEvents","./event-context","121","presenceStatusMsg","lastActiveAgo","lastPresenceTs","currentlyActive","unstable_statusMessage","firstFire","eventsToFire","currently_active","status_msg","last_active_ago","oldUrl","122","_utils","RULEKINDS_IN_ORDER","DEFAULT_OVERRIDE_RULES","conditions","pattern","set_tweak","cachedGlobToRegex","templateRuleToRaw","tprule","rawrule","eventFulfillsCondition","cond","condition_functions","event_match","eventFulfillsEventMatchCondition","contains_display_name","eventFulfillsDisplayNameCondition","room_member_count","eventFulfillsRoomMemberCountCondition","sender_notification_permission","eventFulfillsSenderNotifPermCondition","mayTriggerNotifOfType","is","memberCount","ineq","rhs","pat","escapeRegExp","regex","valueForDottedKey","createCachedRegex","glob","suffix","globToRegexp","firstPart","thisPart","matchingRuleForEventWithRulesets","rulesets","kindset","ruleKindIndex","ruleset","ruleIndex","ruleMatchesEvent","matchingRuleFromKindSet","actionObj","pushActionsForEventAndRulesets","getPushRuleById","actionlist","actionobj","incomingRules","newRules","override","globalOverrides","existingRule","123","randomUppercaseString","randomLowercaseString","LOWERCASE","UPPERCASE","randomStringFrom","chars","124","setNow","_now","delayMs","runAt","_count","binarySearch","_callbackList","el","_scheduleRealCallback","_realCallbackKey","first","_runCallbacks","callbacksToRun","mid","125","retryAlgorithm","queueAlgorithm","RETRY_BACKOFF_RATELIMIT","QUEUE_MESSAGES","_queues","_activeQueues","_procFn","_startProcessingQueues","queueName","_processQueue","_peekNextEvent","_removeNextEvent","waitTimeMs","element","waitTime","retry_after_ms","hasAssocation","126","127","LocalIndexedDBStoreBackend","_syncAccumulator","_storeClientOptions","_clearOutOfBandMembers","_setOutOfBandMembers","selectQuery","keyRange","resultMapper","txnAsPromise","reqAsEventPromise","reqAsPromise","reqAsCursorPromise","indexedDBInterface","_disconnected","SyncAccumulator","_isNewlyCreated","connect","upgradeSchemaV2","upgradeSchemaV3","_init","isNewlyCreated","_loadAccountData","_loadSyncData","accumulate","roomsData","groups","groupsData","account_data","roomIndex","range","IDBKeyRange","membershipEvents","oobWritten","oob_written","tx","markerObject","readTx","roomRange","minStateKeyProm","maxStateKeyProm","minStateKey","maxStateKey","writeTx","writeStore","membersKeyRange","openKeyCursor","primaryKey","bound","clearDatabase","getSavedSync","getJSON","getNextBatchToken","setSyncData","syncToDatabase","userTuples","_persistUserPresenceEvents","_persistAccountData","_persistSyncData","clobber","tuples","tuple","getUserPresenceEvents","getClientOptions","../indexeddb-helpers","../sync-accumulator","128","RemoteIndexedDBStoreBackend","workerScript","workerApi","_workerScript","_workerApi","_worker","_nextSeq","_inFlight","_startPromise","_ensureStarted","_doCmd","onmessage","_onWorkerMessage","cmd","seq","postMessage","command","129","IndexedDBStore","indexeddb_local_backend_js_1","indexeddb_remote_backend_js_1","startedUp","syncTs","userModifiedMap","degradable","getSavedSyncToken","reallySave","Worker","userPresenceEvents","rawEvent","setPresenceEvent","wantsSave","fallbackFn","../models/user","./indexeddb-local-backend.js","./indexeddb-remote-backend.js","./memory","130","isValidFilterId","filters","clientOptions","onRoomMember","setDisplayName","setRawDisplayName","setAvatarUrl","group","toStart","131","WebStorageSessionStore","removeEndToEndAccount","getEndToEndAccount","getAllEndToEndDevices","keyEndToEndDevicesForUser","getEndToEndDeviceTrackingStatus","KEY_END_TO_END_DEVICE_LIST_TRACKING_STATUS","getEndToEndDeviceSyncToken","KEY_END_TO_END_DEVICE_SYNC_TOKEN","removeEndToEndDeviceData","removeByPrefix","getKeysWithPrefix","removeAllEndToEndSessions","getAllEndToEndInboundGroupSessionKeys","removeAllEndToEndInboundGroupSessions","getAllEndToEndRooms","keyEndToEndRoom","removeAllEndToEndRooms","KEY_END_TO_END_TRUSTED_BACKUP_PUBKEY","toRemove","_toRemove","132","133","Category","setState","eventMap","inviteRooms","joinRooms","maxTimelineEntries","syncResponse","fromDatabase","accumulateRooms","accumulateGroups","accumulateAccountData","accumulateRoom","Invite","Join","Leave","category","accumulateInviteState","accumulateJoinState","invite_state","currentData","hasAdded","current","_currentState","_timeline","_accountData","_unreadNotifications","_summary","_readReceipts","unread_notifications","HEROES_KEY","INVITED_COUNT_KEY","JOINED_COUNT_KEY","sum","limited","transformedEvent","_localTs","prev_batch","accumulateGroup","cat","forDatabase","roomJson","evType","receiptEvent","receiptData","msgData","rollBackState","timelineEvent","prevStateEvent","accData","134","135","room_1","group_1","sync_accumulator_1","getFilterName","createNewUser","_peekRoom","currentSyncRequest","syncState","syncStateData","running","keepAliveTimer","connectionReturnedDefer","notifEvents","failedSyncCount","storeIsInvalid","onOnline","startKeepAlives","resolveInvitesToProfiles","pollTimeout","Chronological","getNotifTimelineSet","registerStateListeners","storeGroup","setTimelineLimit","setIncludeLeaveRooms","getOrCreateFilter","leaveRooms","mapSyncResponseToRoomArray","leaveObj","isBrandNewRoom","timelineEvents","mapSyncEventsFormat","processRoomEvents","recalculate","storeRoom","processEventsForNotifs","roomInitialSync","oldStateEvents","presenceEvent","resolveInvites","peekPoll","peekRoom","addLiveEvents","savedSyncPromise","keepaliveProm","updateSyncState","lazyLoadMembersBefore","prevClientOptions","savedSyncToken","shouldAbortSync","recoverFromSyncStartupError","checkLazyLoadStatus","buildDefaultFilter","doesServerSupportLazyLoading","setLazyLoadMembers","wasLazyLoadingToggled","enableLazyLoading","resetNotifTimelineSet","doSyncRequest","_sync","tok","savedSync","syncFromCache","removeEventListener","syncEventData","processSyncResponse","syncOptions","Stopped","onSyncError","onSyncWillProcess","hasSyncedBefore","onSyncCompleted","saveDeviceList","save","getSyncParams","getGuestFilter","disablePresence","set_presence","since","_cacheBuster","connDidFail","Catchup","Reconnecting","prevEventsMap","storeAccountDataEvents","accountDataEvent","prevEvent","to_device","cancelledKeyVerificationTxns","toDeviceEvent","flagCancelled","processGroupSyncEntry","inviteObj","updateMyMembership","promiseMapSeries","joinObj","ephemeralEvents","accountDataEvents","notification_count","highlight_count","deregisterStateListeners","setSummary","addEphemeralEvents","addAccountData","processRoomEvent","onCryptoEvent","unstable_updateStatusMessage","decryptCriticalEvents","device_lists","handleDeviceListChanges","device_one_time_keys_count","updateOneTimeKeyCount","unusedFallbackKeys","pokeKeepAlive","groupsSection","sectionName","groupInfo","isBrandNew","createGroup","arrObj","_requestedProfileInfo","getProfileInfo","inviteEvent","stateEventList","timelineEventList","timelineWasEmpty","newState","old","136","TimelineIndex","TimelineWindow","eventCount","windowLimit","initialEventId","initialWindowSize","initFields","eventIndex","endIndex","ceil","startIndex","getBaseIndex","getTimelineIndex","retreat","advance","excess","unpaginate","minIndex","maxIndex","makeRequest","requestLimit","pendingPaginate","paginateEventTimeline","paginate","startOfTimeline","cappedDelta","137","stringToBase","baseToString","alphabetPad","setCrypto","polyfillSuper","checkObjectHasNoAdditionalKeys","unhomoglyph_1","removeHiddenCharsRegex","variables","keys_","allowedKeys","pairs","restParams","propName","superCtor","super_","SuperType","fakeSuper","alphabet","padEnd","BigInt","charIndex","extended","p1","p2","ms","fns","chunkSize","promiseFn","padN","baseA","baseB","avg","unhomoglyph","138","MatrixCall","CallError","getDesktopCapturerSources","CallErrorCode","CallEvent","CallParty","CallDirection","CallType","CallState","callEventTypes_1","callFeed_1","ConstraintsType","electron","thumbnailSize","genCallID","remoteCandidateBuffer","gotUserMediaForInvite","successor","gotUserMediaForAnswer","callHasEnded","stopAllMedia","localAVStream","CreateOffer","screenSharingStream","pushNewFeed","SDPStreamMetadataPurpose","Screenshare","Usermedia","setTracksEnabled","getAudioTracks","audioTrack","peerConn","addTrack","videoTrack","getVideoTracks","track","getTracks","myAnswer","CreateAnswer","createAnswer","terminate","Local","setLocalDescription","Connecting","sendAnswer","SetLocalDescription","gotLocalIceCandidate","candidate","callId","sdpMid","sentEndOfCandidates","queueCandidate","onIceGatheringStateChange","iceGatheringState","gotLocalOffer","description","CallInvite","CallNegotiate","lifetime","offer","localDescription","m.call.transferee","candidateSendQueue","sendVoipEvent","cancelPendingEvent","SignallingFailed","SendInvite","UnknownDevices","sendCandidateQueue","inviteOrAnswerSent","InviteSent","inviteTimeout","hangup","InviteTimeout","getLocalOfferFailed","LocalOfferFailed","getUserMediaFailed","NoUserMedia","onIceConnectionStateChanged","iceConnectionState","Connected","IceFailed","onSignallingStateChanged","signalingState","onTrack","streams","oldRemoteStream","feeds","feed","isLocal","newRemoteStream","getOpponentMember","onNegotiationNeeded","opponentVersion","makingOffer","myOffer","createOffer","onHangupReceived","partyIdMatches","Ringing","Remote","UserHangup","party_id","opponentPartyId","onRejectReceived","Fledgling","Inbound","onAnsweredElsewhere","AnsweredElsewhere","ourPartyId","isFallbackICEServerAllowed","candidateSendTries","remoteOnHold","micMuted","vidMuted","checkForErrorListener","constraints","getUserMediaContraints","Audio","Voice","placeCallWithConstraints","Video","selectDesktopCapturerSource","screenshareConstraints","selectedSource","audio","video","mandatory","chromeMediaSource","chromeMediaSourceId","getScreenshareContraints","mediaDevices","getUserMedia","getDisplayMedia","audioConstraints","opponentMember","opponentCaps","remoteAssertedIdentity","purpose","setNewStream","CallFeed","FeedsChanged","callStatsAtEnd","collectCallStats","statsReport","getStats","stats","createPeerConnection","chooseOpponent","setRemoteDescription","addBufferedIceCandidates","SetRemoteDescription","remoteStream","getLocalAge","hangupParty","Ended","Hangup","waitForLocalAVStream","WaitLocalMedia","mediaStream","newCall","Replaced","suppressEvent","CallHangup","CallReject","muted","updateMuteStatus","onHold","isRemoteOnHold","tranceiver","getTransceivers","RemoteHoldUnhold","callOnHold","currentDirection","getSenders","dtmf","insertDTMF","micShouldBeMuted","vidShouldBeMuted","answerContent","answer","sdp","CallAnswer","SendAnswer","cands","candidates","fromPartyId","bufferedCands","addIceCandidates","CallSelectAnswer","selected_party_id","selectedPartyId","polite","offerCollision","ignoreOffer","prevLocalOnHold","isLocalOnHold","newLocalOnHold","LocalHoldUnhold","HoldUnhold","asserted_identity","AssertedIdentityChanged","State","call_id","targetUserId","profileInfo","replacementId","replacement_id","target_user","create_call","CallReplaces","Transfered","transferTargetCall","targetProfileInfo","transfereeProfileInfo","newCallId","bodyToTransferTarget","await_call","bodyToTransferee","hangupReason","deleteAllFeeds","CallCandidates","calls","Outbound","pc","RTCPeerConnection","iceTransportPolicy","iceServers","cand","sdpMLineIndex","addIceCandidate","tracks","isWebkit","webkitGetUserMedia","audioInput","ideal","videoInput","exact","RTCSessionDescription","RTCIceCandidate","NODE_ENV","optionsForceTURN","getTurnServers","./callEventTypes","./callFeed","_process","139","evaluateEventBuffer","callEventBuffer","ignoreCallIds","handleCallEvent","onEvent","eventIsACall","isDecryptionFailure","candidateEventsByCall","timeUntilTurnCresExpire","getTurnServersExpiry","invitePromise","initWithInvite","onRemoteIceCandidatesReceived","existingCall","thisCall","isCalling","replacedBy","onAnswerReceived","initWithHangup","onSelectAnswerReceived","onNegotiateReceived","CallAssertedIdentity","CallAssertedIdentityPrefix","onAssertedIdentityReceived","./call","140","141","CallFeedEvent","newStream","NewStream"],"mappings":"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CLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,SAAU,IACVC,SAAU,IACVC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,OACLC,IAAK,MACLC,KAAM,MACNC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,OACLC,IAAK,OACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,OACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,EAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,KAAM,SACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,OACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNv8F,EAAK,KACLw8F,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,MACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,OACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,MACLC,IAAK,OACLC,IAAK,KACLC,IAAK,MACLC,IAAK,OACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,WACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,OACLC,IAAK,OACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,OACLC,IAAK,MACLC,IAAK,MACLC,IAAK,qBACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,OACLC,IAAK,OACLC,IAAK,IACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,QACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,IACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,MACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,KACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,KACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,KACNC,IAAK,IACLC,KAAM,KACNC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,KACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,IAAK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"} \ No newline at end of file