@joclaim/browser-extension-sdk 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/174.bundle.js +1 -0
- package/build/975.bundle.js +2 -0
- package/build/975.bundle.js.map +1 -0
- package/build/JoclaimExtensionSDK-mv2.bundle.js +5 -5
- package/build/JoclaimExtensionSDK-mv2.bundle.js.map +1 -1
- package/build/JoclaimExtensionSDK.bundle.js +5 -5
- package/build/JoclaimExtensionSDK.bundle.js.map +1 -1
- package/build/background/background-mv2.bundle.js.map +1 -1
- package/build/background/background.bundle.js.map +1 -1
- package/build/content/components/reclaim-provider-verification-popup.css +666 -0
- package/build/content/components/reclaim-provider-verification-popup.html +138 -0
- package/build/content/content.bundle.js +11 -0
- package/build/content/content.bundle.js.map +1 -0
- package/build/interceptor/injection-scripts.bundle.js +2 -0
- package/build/interceptor/injection-scripts.bundle.js.map +1 -0
- package/build/interceptor/network-interceptor.bundle.js +2 -0
- package/build/interceptor/network-interceptor.bundle.js.map +1 -0
- package/build/offscreen/offscreen.bundle.js +121 -0
- package/build/offscreen/offscreen.bundle.js.map +1 -0
- package/build/offscreen/offscreen.html +15 -0
- package/build/scripts/download-circuits.js +1 -0
- package/build/scripts/install-assets.js +2 -0
- package/package.json +3 -3
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
(()=>{var t,e,n,r,i={152:(t,e,n)=>{"use strict";var r=n(8287).hp;class i{static isArrayBuffer(t){return"[object ArrayBuffer]"===Object.prototype.toString.call(t)}static toArrayBuffer(t){return this.isArrayBuffer(t)?t:t.byteLength===t.buffer.byteLength||0===t.byteOffset&&t.byteLength===t.buffer.byteLength?t.buffer:this.toUint8Array(t.buffer).slice(t.byteOffset,t.byteOffset+t.byteLength).buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,e){if(t.constructor===e)return t;if(this.isArrayBuffer(t))return new e(t);if(this.isArrayBufferView(t))return new e(t.buffer,t.byteOffset,t.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,e){const n=i.toUint8Array(t),r=i.toUint8Array(e);if(n.length!==r.byteLength)return!1;for(let t=0;t<n.length;t++)if(n[t]!==r[t])return!1;return!0}static concat(...t){let e;e=!Array.isArray(t[0])||t[1]instanceof Function?Array.isArray(t[0])&&t[1]instanceof Function?t[0]:t[t.length-1]instanceof Function?t.slice(0,t.length-1):t:t[0];let n=0;for(const t of e)n+=t.byteLength;const r=new Uint8Array(n);let i=0;for(const t of e){const e=this.toUint8Array(t);r.set(e,i),i+=e.length}return t[t.length-1]instanceof Function?this.toView(r,t[t.length-1]):r.buffer}}const o="string",s=/^[0-9a-f\s]+$/i,a=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,c=/^[a-zA-Z0-9-_]+$/;class l{static fromString(t){const e=unescape(encodeURIComponent(t)),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n.buffer}static toString(t){const e=i.toUint8Array(t);let n="";for(let t=0;t<e.length;t++)n+=String.fromCharCode(e[t]);return decodeURIComponent(escape(n))}}class u{static toString(t,e=!1){const n=i.toArrayBuffer(t),r=new DataView(n);let o="";for(let t=0;t<n.byteLength;t+=2){const n=r.getUint16(t,e);o+=String.fromCharCode(n)}return o}static fromString(t,e=!1){const n=new ArrayBuffer(2*t.length),r=new DataView(n);for(let n=0;n<t.length;n++)r.setUint16(2*n,t.charCodeAt(n),e);return n}}class h{static isHex(t){return typeof t===o&&s.test(t)}static isBase64(t){return typeof t===o&&a.test(t)}static isBase64Url(t){return typeof t===o&&c.test(t)}static ToString(t,e="utf8"){const n=i.toUint8Array(t);switch(e.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return u.toString(n,!0);case"utf16":case"utf16be":return u.toString(n);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromString(t,e="utf8"){if(!t)return new ArrayBuffer(0);switch(e.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return u.fromString(t,!0);case"utf16":case"utf16be":return u.fromString(t);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToBase64(t){const e=i.toUint8Array(t);if("undefined"!=typeof btoa){const t=this.ToString(e,"binary");return btoa(t)}return r.from(e).toString("base64")}static FromBase64(t){const e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!h.isBase64(e))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return"undefined"!=typeof atob?this.FromBinary(atob(e)):new Uint8Array(r.from(e,"base64")).buffer}static FromBase64Url(t){const e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!h.isBase64Url(e))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,e=h.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.FromBinary(t);case"utf8":return l.fromString(t);case"utf16":case"utf16be":return u.fromString(t);case"utf16le":case"usc2":return u.fromString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToUtf8String(t,e=h.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.ToBinary(t);case"utf8":return l.toString(t);case"utf16":case"utf16be":return u.toString(t);case"utf16le":case"usc2":return u.toString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromBinary(t){const e=t.length,n=new Uint8Array(e);for(let r=0;r<e;r++)n[r]=t.charCodeAt(r);return n.buffer}static ToBinary(t){const e=i.toUint8Array(t);let n="";for(let t=0;t<e.length;t++)n+=String.fromCharCode(e[t]);return n}static ToHex(t){const e=i.toUint8Array(t);let n="";const r=e.length;for(let t=0;t<r;t++){const r=e[t];r<16&&(n+="0"),n+=r.toString(16)}return n}static FromHex(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!h.isHex(e))throw new TypeError("Argument 'hexString' is not HEX encoded");e.length%2&&(e=`0${e}`);const n=new Uint8Array(e.length/2);for(let t=0;t<e.length;t+=2){const r=e.slice(t,t+2);n[t/2]=parseInt(r,16)}return n.buffer}static ToUtf16String(t,e=!1){return u.toString(t,e)}static FromUtf16String(t,e=!1){return u.fromString(t,e)}static Base64Padding(t){const e=4-t.length%4;if(e<4)for(let n=0;n<e;n++)t+="=";return t}static formatString(t){return(null==t?void 0:t.replace(/[\n\r\t ]/g,""))||""}}h.DEFAULT_UTF8_ENCODING="utf8",e._H=i,e.U$=h,e.kg=function(...t){const e=t.map(t=>t.byteLength).reduce((t,e)=>t+e),n=new Uint8Array(e);let r=0;return t.map(t=>new Uint8Array(t)).forEach(t=>{for(const e of t)n[r++]=e}),n.buffer},e.n4=function(t,e){if(!t||!e)return!1;if(t.byteLength!==e.byteLength)return!1;const n=new Uint8Array(t),r=new Uint8Array(e);for(let e=0;e<t.byteLength;e++)if(n[e]!==r[e])return!1;return!0}},228:t=>{"use strict";var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,s){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new i(r,o||t,s),c=n?n+e:e;return t._events[c]?t._events[c].fn?t._events[c]=[t._events[c],a]:t._events[c].push(a):(t._events[c]=a,t._eventsCount++),t}function s(t,e){0===--t._eventsCount?t._events=new r:delete t._events[e]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},a.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,s=new Array(o);i<o;i++)s[i]=r[i].fn;return s},a.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},a.prototype.emit=function(t,e,r,i,o,s){var a=n?n+t:t;if(!this._events[a])return!1;var c,l,u=this._events[a],h=arguments.length;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),h){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,r),!0;case 4:return u.fn.call(u.context,e,r,i),!0;case 5:return u.fn.call(u.context,e,r,i,o),!0;case 6:return u.fn.call(u.context,e,r,i,o,s),!0}for(l=1,c=new Array(h-1);l<h;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,p=u.length;for(l=0;l<p;l++)switch(u[l].once&&this.removeListener(t,u[l].fn,void 0,!0),h){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,e);break;case 3:u[l].fn.call(u[l].context,e,r);break;case 4:u[l].fn.call(u[l].context,e,r,i);break;default:if(!c)for(d=1,c=new Array(h-1);d<h;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},a.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},a.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==e||i&&!a.once||r&&a.context!==r||s(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==e||i&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:s(this,o)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&s(this,e)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a},251:(t,e)=>{
|
|
2
|
+
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
3
|
+
e.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,c=(1<<a)-1,l=c>>1,u=-7,h=n?i-1:0,d=n?-1:1,p=t[e+h];for(h+=d,o=p&(1<<-u)-1,p>>=-u,u+=a;u>0;o=256*o+t[e+h],h+=d,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+h],h+=d,u-=8);if(0===o)o=1-l;else{if(o===c)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),o-=l}return(p?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var s,a,c,l=8*o-i-1,u=(1<<l)-1,h=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,f=r?1:-1,A=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),(e+=s+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=u?(a=0,s=u):s+h>=1?(a=(e*c-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[n+p]=255&a,p+=f,a/=256,i-=8);for(s=s<<i|a,l+=i;l>0;t[n+p]=255&s,p+=f,s/=256,l-=8);t[n+p-f]|=128*A}},630:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RE_URL_WITH_PORT=e.RE_URL=e.RE_ZONE_STRING=e.RE_SUBNET_STRING=e.RE_BAD_ADDRESS=e.RE_BAD_CHARACTERS=e.TYPES=e.SCOPES=e.GROUPS=e.BITS=void 0,e.BITS=128,e.GROUPS=8,e.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"},e.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"},e.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi,e.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi,e.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/,e.RE_ZONE_STRING=/%.*$/,e.RE_URL=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/),e.RE_URL_WITH_PORT=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)},793:t=>{"use strict";function e(t){try{return JSON.stringify(t)}catch(t){return'"[Circular]"'}}t.exports=function(t,n,r){var i=r&&r.stringify||e;if("object"==typeof t&&null!==t){var o=n.length+1;if(1===o)return t;var s=new Array(o);s[0]=i(t);for(var a=1;a<o;a++)s[a]=i(n[a]);return s.join(" ")}if("string"!=typeof t)return t;var c=n.length;if(0===c)return t;for(var l="",u=0,h=-1,d=t&&t.length||0,p=0;p<d;){if(37===t.charCodeAt(p)&&p+1<d){switch(h=h>-1?h:0,t.charCodeAt(p+1)){case 100:case 102:if(u>=c)break;if(null==n[u])break;h<p&&(l+=t.slice(h,p)),l+=Number(n[u]),h=p+2,p++;break;case 105:if(u>=c)break;if(null==n[u])break;h<p&&(l+=t.slice(h,p)),l+=Math.floor(Number(n[u])),h=p+2,p++;break;case 79:case 111:case 106:if(u>=c)break;if(void 0===n[u])break;h<p&&(l+=t.slice(h,p));var f=typeof n[u];if("string"===f){l+="'"+n[u]+"'",h=p+2,p++;break}if("function"===f){l+=n[u].name||"<anonymous>",h=p+2,p++;break}l+=i(n[u]),h=p+2,p++;break;case 115:if(u>=c)break;h<p&&(l+=t.slice(h,p)),l+=String(n[u]),h=p+2,p++;break;case 37:h<p&&(l+=t.slice(h,p)),l+="%",h=p+2,p++,u--}++u}++p}if(-1===h)return t;h<d&&(l+=t.slice(h));return l}},892:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RE_SUBNET_STRING=e.RE_ADDRESS=e.GROUPS=e.BITS=void 0,e.BITS=32,e.GROUPS=4,e.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g,e.RE_SUBNET_STRING=/\/\d{1,2}$/},928:()=>{},1141:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||r(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.DomHandler=void 0;var o=n(5413),s=n(6957);i(n(6957),e);var a=/\s+/g,c={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function t(t,e,n){this.dom=[],this.root=new s.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof e&&(n=e,e=c),"object"==typeof t&&(e=t,t=void 0),this.callback=null!=t?t:null,this.options=null!=e?e:c,this.elementCB=null!=n?n:null}return t.prototype.onparserinit=function(t){this.parser=t},t.prototype.onreset=function(){this.dom=[],this.root=new s.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},t.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},t.prototype.onerror=function(t){this.handleCallback(t)},t.prototype.onclosetag=function(){this.lastNode=null;var t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)},t.prototype.onopentag=function(t,e){var n=this.options.xmlMode?o.ElementType.Tag:void 0,r=new s.Element(t,e,void 0,n);this.addNode(r),this.tagStack.push(r)},t.prototype.ontext=function(t){var e=this.options.normalizeWhitespace,n=this.lastNode;if(n&&n.type===o.ElementType.Text)e?n.data=(n.data+t).replace(a," "):n.data+=t,this.options.withEndIndices&&(n.endIndex=this.parser.endIndex);else{e&&(t=t.replace(a," "));var r=new s.Text(t);this.addNode(r),this.lastNode=r}},t.prototype.oncomment=function(t){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=t;else{var e=new s.Comment(t);this.addNode(e),this.lastNode=e}},t.prototype.oncommentend=function(){this.lastNode=null},t.prototype.oncdatastart=function(){var t=new s.Text(""),e=new s.NodeWithChildren(o.ElementType.CDATA,[t]);this.addNode(e),t.parent=e,this.lastNode=t},t.prototype.oncdataend=function(){this.lastNode=null},t.prototype.onprocessinginstruction=function(t,e){var n=new s.ProcessingInstruction(t,e);this.addNode(n)},t.prototype.handleCallback=function(t){if("function"==typeof this.callback)this.callback(t,this.dom);else if(t)throw t},t.prototype.addNode=function(t){var e=this.tagStack[this.tagStack.length-1],n=e.children[e.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),e.children.push(t),n&&(t.prev=n,n.next=t),t.parent=e,this.lastNode=null},t}();e.DomHandler=l,e.default=l},1176:(t,e,n)=>{var r,i=n(5606);
|
|
4
|
+
/**
|
|
5
|
+
* [js-sha3]{@link https://github.com/emn178/js-sha3}
|
|
6
|
+
*
|
|
7
|
+
* @version 0.8.0
|
|
8
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
9
|
+
* @copyright Chen, Yi-Cyuan 2015-2018
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
!function(){"use strict";var o="input is invalid type",s="object"==typeof window,a=s?window:{};a.JS_SHA3_NO_WINDOW&&(s=!1);var c=!s&&"object"==typeof self;!a.JS_SHA3_NO_NODE_JS&&"object"==typeof i&&i.versions&&i.versions.node?a=n.g:c&&(a=self);var l=!a.JS_SHA3_NO_COMMON_JS&&t.exports,u=n.amdO,h=!a.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,d="0123456789abcdef".split(""),p=[4,1024,262144,67108864],f=[0,8,16,24],A=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],g=[224,256,384,512],E=[128,256],m=["hex","buffer","arrayBuffer","array","digest"],y={128:168,256:136};!a.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!h||!a.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var w=function(t,e,n){return function(r){return new F(t,e,t).update(r)[n]()}},I=function(t,e,n){return function(r,i){return new F(t,e,i).update(r)[n]()}},C=function(t,e,n){return function(e,r,i,o){return M["cshake"+t].update(e,r,i,o)[n]()}},B=function(t,e,n){return function(e,r,i,o){return M["kmac"+t].update(e,r,i,o)[n]()}},T=function(t,e,n,r){for(var i=0;i<m.length;++i){var o=m[i];t[o]=e(n,r,o)}return t},b=function(t,e){var n=w(t,e,"hex");return n.create=function(){return new F(t,e,t)},n.update=function(t){return n.create().update(t)},T(n,w,t,e)},D=[{name:"keccak",padding:[1,256,65536,16777216],bits:g,createMethod:b},{name:"sha3",padding:[6,1536,393216,100663296],bits:g,createMethod:b},{name:"shake",padding:[31,7936,2031616,520093696],bits:E,createMethod:function(t,e){var n=I(t,e,"hex");return n.create=function(n){return new F(t,e,n)},n.update=function(t,e){return n.create(e).update(t)},T(n,I,t,e)}},{name:"cshake",padding:p,bits:E,createMethod:function(t,e){var n=y[t],r=C(t,0,"hex");return r.create=function(r,i,o){return i||o?new F(t,e,r).bytepad([i,o],n):M["shake"+t].create(r)},r.update=function(t,e,n,i){return r.create(e,n,i).update(t)},T(r,C,t,e)}},{name:"kmac",padding:p,bits:E,createMethod:function(t,e){var n=y[t],r=B(t,0,"hex");return r.create=function(r,i,o){return new O(t,e,i).bytepad(["KMAC",o],n).bytepad([r],n)},r.update=function(t,e,n,i){return r.create(t,n,i).update(e)},T(r,B,t,e)}}],M={},N=[],S=0;S<D.length;++S)for(var v=D[S],_=v.bits,L=0;L<_.length;++L){var x=v.name+"_"+_[L];if(N.push(x),M[x]=v.createMethod(_[L],v.padding),"sha3"!==v.name){var R=v.name+_[L];N.push(R),M[R]=M[x]}}function F(t,e,n){this.blocks=[],this.s=[],this.padding=e,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function O(t,e,n){F.call(this,t,e,n)}F.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(o);if(null===t)throw new Error(o);if(h&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||h&&ArrayBuffer.isView(t)))throw new Error(o);e=!0}for(var r,i,s=this.blocks,a=this.byteCount,c=t.length,l=this.blockCount,u=0,d=this.s;u<c;){if(this.reset)for(this.reset=!1,s[0]=this.block,r=1;r<l+1;++r)s[r]=0;if(e)for(r=this.start;u<c&&r<a;++u)s[r>>2]|=t[u]<<f[3&r++];else for(r=this.start;u<c&&r<a;++u)(i=t.charCodeAt(u))<128?s[r>>2]|=i<<f[3&r++]:i<2048?(s[r>>2]|=(192|i>>6)<<f[3&r++],s[r>>2]|=(128|63&i)<<f[3&r++]):i<55296||i>=57344?(s[r>>2]|=(224|i>>12)<<f[3&r++],s[r>>2]|=(128|i>>6&63)<<f[3&r++],s[r>>2]|=(128|63&i)<<f[3&r++]):(i=65536+((1023&i)<<10|1023&t.charCodeAt(++u)),s[r>>2]|=(240|i>>18)<<f[3&r++],s[r>>2]|=(128|i>>12&63)<<f[3&r++],s[r>>2]|=(128|i>>6&63)<<f[3&r++],s[r>>2]|=(128|63&i)<<f[3&r++]);if(this.lastByteIndex=r,r>=a){for(this.start=r-a,this.block=s[l],r=0;r<l;++r)d[r]^=s[r];k(d),this.reset=!0}else this.start=r}return this},F.prototype.encode=function(t,e){var n=255&t,r=1,i=[n];for(n=255&(t>>=8);n>0;)i.unshift(n),n=255&(t>>=8),++r;return e?i.push(r):i.unshift(r),this.update(i),i.length},F.prototype.encodeString=function(t){var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(o);if(null===t)throw new Error(o);if(h&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||h&&ArrayBuffer.isView(t)))throw new Error(o);e=!0}var r=0,i=t.length;if(e)r=i;else for(var s=0;s<t.length;++s){var a=t.charCodeAt(s);a<128?r+=1:a<2048?r+=2:a<55296||a>=57344?r+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++s)),r+=4)}return r+=this.encode(8*r),this.update(t),r},F.prototype.bytepad=function(t,e){for(var n=this.encode(e),r=0;r<t.length;++r)n+=this.encodeString(t[r]);var i=e-n%e,o=[];return o.length=i,this.update(o),this},F.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,n=this.blockCount,r=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[n],e=1;e<n+1;++e)t[e]=0;for(t[n-1]|=2147483648,e=0;e<n;++e)r[e]^=t[e];k(r)}},F.prototype.toString=F.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,s=0,a="";s<r;){for(o=0;o<e&&s<r;++o,++s)t=n[o],a+=d[t>>4&15]+d[15&t]+d[t>>12&15]+d[t>>8&15]+d[t>>20&15]+d[t>>16&15]+d[t>>28&15]+d[t>>24&15];s%e===0&&(k(n),o=0)}return i&&(t=n[o],a+=d[t>>4&15]+d[15&t],i>1&&(a+=d[t>>12&15]+d[t>>8&15]),i>2&&(a+=d[t>>20&15]+d[t>>16&15])),a},F.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(a);for(var c=new Uint32Array(t);s<r;){for(o=0;o<e&&s<r;++o,++s)c[s]=n[o];s%e===0&&k(n)}return i&&(c[o]=n[o],t=t.slice(0,a)),t},F.prototype.buffer=F.prototype.arrayBuffer,F.prototype.digest=F.prototype.array=function(){this.finalize();for(var t,e,n=this.blockCount,r=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,c=[];a<i;){for(s=0;s<n&&a<i;++s,++a)t=a<<2,e=r[s],c[t]=255&e,c[t+1]=e>>8&255,c[t+2]=e>>16&255,c[t+3]=e>>24&255;a%n===0&&k(r)}return o&&(t=a<<2,e=r[s],c[t]=255&e,o>1&&(c[t+1]=e>>8&255),o>2&&(c[t+2]=e>>16&255)),c},O.prototype=new F,O.prototype.finalize=function(){return this.encode(this.outputBits,!0),F.prototype.finalize.call(this)};var k=function(t){var e,n,r,i,o,s,a,c,l,u,h,d,p,f,g,E,m,y,w,I,C,B,T,b,D,M,N,S,v,_,L,x,R,F,O,k,Q,U,P,G,V,H,j,Y,z,J,W,q,K,X,Z,$,tt,et,nt,rt,it,ot,st,at,ct,lt,ut;for(r=0;r<48;r+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],s=t[2]^t[12]^t[22]^t[32]^t[42],a=t[3]^t[13]^t[23]^t[33]^t[43],c=t[4]^t[14]^t[24]^t[34]^t[44],l=t[5]^t[15]^t[25]^t[35]^t[45],u=t[6]^t[16]^t[26]^t[36]^t[46],h=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),n=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(a<<1|s>>>31),t[0]^=e,t[1]^=n,t[10]^=e,t[11]^=n,t[20]^=e,t[21]^=n,t[30]^=e,t[31]^=n,t[40]^=e,t[41]^=n,e=i^(c<<1|l>>>31),n=o^(l<<1|c>>>31),t[2]^=e,t[3]^=n,t[12]^=e,t[13]^=n,t[22]^=e,t[23]^=n,t[32]^=e,t[33]^=n,t[42]^=e,t[43]^=n,e=s^(u<<1|h>>>31),n=a^(h<<1|u>>>31),t[4]^=e,t[5]^=n,t[14]^=e,t[15]^=n,t[24]^=e,t[25]^=n,t[34]^=e,t[35]^=n,t[44]^=e,t[45]^=n,e=c^(d<<1|p>>>31),n=l^(p<<1|d>>>31),t[6]^=e,t[7]^=n,t[16]^=e,t[17]^=n,t[26]^=e,t[27]^=n,t[36]^=e,t[37]^=n,t[46]^=e,t[47]^=n,e=u^(i<<1|o>>>31),n=h^(o<<1|i>>>31),t[8]^=e,t[9]^=n,t[18]^=e,t[19]^=n,t[28]^=e,t[29]^=n,t[38]^=e,t[39]^=n,t[48]^=e,t[49]^=n,f=t[0],g=t[1],J=t[11]<<4|t[10]>>>28,W=t[10]<<4|t[11]>>>28,S=t[20]<<3|t[21]>>>29,v=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ct=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,F=t[2]<<1|t[3]>>>31,O=t[3]<<1|t[2]>>>31,E=t[13]<<12|t[12]>>>20,m=t[12]<<12|t[13]>>>20,q=t[22]<<10|t[23]>>>22,K=t[23]<<10|t[22]>>>22,_=t[33]<<13|t[32]>>>19,L=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ut=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,nt=t[4]<<30|t[5]>>>2,k=t[14]<<6|t[15]>>>26,Q=t[15]<<6|t[14]>>>26,y=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,x=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,b=t[6]<<28|t[7]>>>4,D=t[7]<<28|t[6]>>>4,rt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,U=t[26]<<25|t[27]>>>7,P=t[27]<<25|t[26]>>>7,I=t[36]<<21|t[37]>>>11,C=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Y=t[8]<<27|t[9]>>>5,z=t[9]<<27|t[8]>>>5,M=t[18]<<20|t[19]>>>12,N=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,V=t[39]<<8|t[38]>>>24,B=t[48]<<14|t[49]>>>18,T=t[49]<<14|t[48]>>>18,t[0]=f^~E&y,t[1]=g^~m&w,t[10]=b^~M&S,t[11]=D^~N&v,t[20]=F^~k&U,t[21]=O^~Q&P,t[30]=Y^~J&q,t[31]=z^~W&K,t[40]=et^~rt&ot,t[41]=nt^~it&st,t[2]=E^~y&I,t[3]=m^~w&C,t[12]=M^~S&_,t[13]=N^~v&L,t[22]=k^~U&G,t[23]=Q^~P&V,t[32]=J^~q&X,t[33]=W^~K&Z,t[42]=rt^~ot&at,t[43]=it^~st&ct,t[4]=y^~I&B,t[5]=w^~C&T,t[14]=S^~_&x,t[15]=v^~L&R,t[24]=U^~G&H,t[25]=P^~V&j,t[34]=q^~X&$,t[35]=K^~Z&tt,t[44]=ot^~at<,t[45]=st^~ct&ut,t[6]=I^~B&f,t[7]=C^~T&g,t[16]=_^~x&b,t[17]=L^~R&D,t[26]=G^~H&F,t[27]=V^~j&O,t[36]=X^~$&Y,t[37]=Z^~tt&z,t[46]=at^~lt&et,t[47]=ct^~ut&nt,t[8]=B^~f&E,t[9]=T^~g&m,t[18]=x^~b&M,t[19]=R^~D&N,t[28]=H^~F&k,t[29]=j^~O&Q,t[38]=$^~Y&J,t[39]=tt^~z&W,t[48]=lt^~et&rt,t[49]=ut^~nt&it,t[0]^=A[r],t[1]^=A[r+1]};if(l)t.exports=M;else{for(S=0;S<N.length;++S)a[N[S]]=M[N[S]];u&&(void 0===(r=function(){return M}.call(e,n,e,t))||(t.exports=r))}}()},1357:(t,e,n)=>{"use strict";const r=n(9424),i=n(9534).BigInteger;class o{constructor(t){if("string"!=typeof t||!t.match("/"))throw new Error("Invalid CIDR address.");const e=this.constructor.createAddress(t);this.cidr=e.address,this.ipAddressType=e.constructor,this.address=e,this.addressStart=e.startAddress(),this.addressEnd=e.endAddress(),this.addressStart.subnet=this.addressEnd.subnet=this.address.subnet,this.addressStart.subnetMask=this.addressEnd.subnetMask=this.address.subnetMask,this.size=new i(this.addressEnd.bigInteger().subtract(this.addressStart.bigInteger()).add(new i("1")).toString())}contains(t){try{return t instanceof r.Address6||t instanceof r.Address4||(t="object"==typeof t?this.ipAddressType.fromBigInteger(t):this.constructor.createAddress(t)),t.isInSubnet(this.address)}catch(t){return!1}}start(t){return this.constructor.formatIP(this.addressStart,t)}end(t){return this.constructor.formatIP(this.addressEnd,t)}toString(){return this.cidr}toRange(t){return[this.constructor.formatIP(this.addressStart,t),this.constructor.formatIP(this.addressEnd,t)]}toObject(t){return{start:this.constructor.formatIP(this.addressStart,t),end:this.constructor.formatIP(this.addressEnd,t)}}toArray(t,e){t=t||{};const n=[],r=this.constructor.formatIP(this.addressStart,{type:"bigInteger"}),o=this.constructor.formatIP(this.addressEnd,{type:"bigInteger"}).subtract(r).add(new i("1")),s=this.getChunkInfo(o,t);return e&&Object.assign(e,s),this.loopInfo(s,e=>{const i=r.add(e),o=this.constructor.formatIP(this.ipAddressType.fromBigInteger(i),t);n.push(o)}),n}loop(t,e,n){e=e||{};const r=[],o=this.constructor.formatIP(this.addressStart,{type:"bigInteger"}),s=this.constructor.formatIP(this.addressEnd,{type:"bigInteger"}).subtract(o).add(new i("1")),a=this.getChunkInfo(s,e);return n&&Object.assign(n,a),this.loopInfo(a,n=>{const i=o.add(n),s=this.constructor.formatIP(this.ipAddressType.fromBigInteger(i),e);r.push(t(s))}),Promise.all(r)}loopInfo(t,e){let n=t.from;for(;n.compareTo(t.to)<0;)e(n),n=n.add(new i("1"))}getChunkInfo(t,e){let n,r=e.from,o=e.limit,s=e.to;const a=this.constructor.formatIP(this.address,{type:"bigInteger"}),c=t=>"string"==typeof t&&t.match(/:|\./)?this.constructor.formatIP(this.constructor.createAddress(t),{type:"bigInteger"}).subtract(a):"object"!=typeof t?new i(t+""):t;return r=c(void 0!==r?r:0),void 0!==s?(s=c(s),o=s.subtract(r)):o=void 0!==o?c(o):t,n=t.subtract(r),o.compareTo(n)>0&&(o=n),s=r.add(o),{from:r,to:s,limit:o,length:t}}}o.formatIP=function(t,e){return"bigInteger"==(e=e||{}).type?new i(t.bigInteger().toString()):"addressObject"==e.type?t:t.addressMinusSuffix},o.createAddress=function(t){if("string"!=typeof t)throw new Error("Invalid IP address.");t.match(/:.\./)&&(t=t.split(":").pop());let e=new(t.match(":")?r.Address6:r.Address4)(t);if(e.v4&&t.match(":")&&e.address4&&(e=e.address4),e.v4){const t=e.addressMinusSuffix.split(".");for(let e=0;e<t.length;e++){const n=t[e].split("/")[0];if("0"==n[0]&&n.length>1)throw new Error("Invalid IPv4 address.")}}return e},o.isValidAddress=function(t){try{return!!this.createAddress(t)}catch(t){return!1}},o.isValidCIDR=function(t){if("string"!=typeof t||!t.match("/"))return!1;try{return!!this.createAddress(t)}catch(t){return!1}},t.exports=o},1911:(t,e,n)=>{"use strict";var r=n(7426),i=n(7766);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,i),t.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},2287:(t,e,n)=>{"use strict";var r=n(7426),i=n(6166),o=n(6225),s=n(3349),a=r.sum32,c=r.sum32_4,l=r.sum32_5,u=o.ch32,h=o.maj32,d=o.s0_256,p=o.s1_256,f=o.g0_256,A=o.g1_256,g=i.BlockHash,E=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=E,this.W=new Array(64)}r.inherits(m,g),t.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=c(A(n[r-2]),n[r-7],f(n[r-15]),n[r-16]);var i=this.h[0],o=this.h[1],g=this.h[2],E=this.h[3],m=this.h[4],y=this.h[5],w=this.h[6],I=this.h[7];for(s(this.k.length===n.length),r=0;r<n.length;r++){var C=l(I,p(m),u(m,y,w),this.k[r],n[r]),B=a(d(i),h(i,o,g));I=w,w=y,y=m,m=a(E,C),E=g,g=o,o=i,i=a(C,B)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],g),this.h[3]=a(this.h[3],E),this.h[4]=a(this.h[4],m),this.h[5]=a(this.h[5],y),this.h[6]=a(this.h[6],w),this.h[7]=a(this.h[7],I)},m.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},2341:t=>{"use strict";t.exports=function t(e){if("number"==typeof e&&isNaN(e))throw new Error("NaN is not allowed");if("number"==typeof e&&!isFinite(e))throw new Error("Infinity is not allowed");if(null===e||"object"!=typeof e)return JSON.stringify(e);if(e.toJSON instanceof Function)return t(e.toJSON());if(Array.isArray(e)){return`[${e.reduce((e,n,r)=>`${e}${0===r?"":","}${t(void 0===n||"symbol"==typeof n?null:n)}`,"")}]`}return`{${Object.keys(e).sort().reduce((n,r)=>{if(void 0===e[r]||"symbol"==typeof e[r])return n;return`${n}${0===n.length?"":","}${t(r)}:${t(e[r])}`},"")}}`}},2447:()=>{},2861:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e},s=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var r=Array(t),i=0;for(e=0;e<n;e++)for(var o=arguments[e],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};Object.defineProperty(e,"__esModule",{value:!0}),e.Address6=void 0;var a=o(n(8177)),c=o(n(892)),l=o(n(630)),u=o(n(4994)),h=n(8955),d=n(3765),p=n(9617),f=n(9534),A=n(7604);function g(t){if(!t)throw new Error("Assertion failed.")}function E(t){return t=(t=t.replace(/^(0{1,})([1-9]+)$/,'<span class="parse-error">$1</span>$2')).replace(/^(0{1,})(0)$/,'<span class="parse-error">$1</span>$2')}function m(t){return A.sprintf("%04x",parseInt(t,16))}function y(t){return 255&t}var w=function(){function t(t,e){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=a.isInSubnet,this.isCorrect=a.isCorrect(l.BITS),this.groups=void 0===e?l.GROUPS:e,this.address=t;var n=l.RE_SUBNET_STRING.exec(t);if(n){if(this.parsedSubnet=n[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet="/"+this.subnetMask,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>l.BITS)throw new p.AddressError("Invalid subnet mask.");t=t.replace(l.RE_SUBNET_STRING,"")}else if(/\//.test(t))throw new p.AddressError("Invalid subnet mask.");var r=l.RE_ZONE_STRING.exec(t);r&&(this.zone=r[0],t=t.replace(l.RE_ZONE_STRING,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}return t.isValid=function(e){try{return new t(e),!0}catch(t){return!1}},t.fromBigInteger=function(e){var n,r=e.toString(16).padStart(32,"0"),i=[];for(n=0;n<l.GROUPS;n++)i.push(r.slice(4*n,4*(n+1)));return new t(i.join(":"))},t.fromURL=function(e){var n,r,i=null;if(-1!==e.indexOf("[")&&-1!==e.indexOf("]:")){if(null===(r=l.RE_URL_WITH_PORT.exec(e)))return{error:"failed to parse address with port",address:null,port:null};n=r[1],i=r[2]}else if(-1!==e.indexOf("/")){if(e=e.replace(/^[a-z0-9]+:\/\//,""),null===(r=l.RE_URL.exec(e)))return{error:"failed to parse address from URL",address:null,port:null};n=r[1]}else n=e;return i?((i=parseInt(i,10))<0||i>65536)&&(i=null):i=null,{address:new t(n),port:i}},t.fromAddress4=function(e){var n=new h.Address4(e),r=l.BITS-(c.BITS-n.subnetMask);return new t("::ffff:"+n.correctForm()+"/"+r)},t.fromArpa=function(e){var n=e.replace(/(\.ip6\.arpa)?\.$/,"");if(63!==n.length)throw new p.AddressError("Invalid 'ip6.arpa' form.");for(var r=n.split(".").reverse(),i=7;i>0;i--){var o=4*i;r.splice(o,0,":")}return new t(n=r.join(""))},t.prototype.microsoftTranscription=function(){return A.sprintf("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))},t.prototype.mask=function(t){return void 0===t&&(t=this.subnetMask),this.getBitsBase2(0,t)},t.prototype.possibleSubnets=function(t){void 0===t&&(t=128);var e=l.BITS-this.subnetMask-Math.abs(t-l.BITS);return e<0?"0":function(t){for(var e=/(\d+)(\d{3})/;e.test(t);)t=t.replace(e,"$1,$2");return t}(new f.BigInteger("2",10).pow(e).toString(10))},t.prototype._startAddress=function(){return new f.BigInteger(this.mask()+"0".repeat(l.BITS-this.subnetMask),2)},t.prototype.startAddress=function(){return t.fromBigInteger(this._startAddress())},t.prototype.startAddressExclusive=function(){var e=new f.BigInteger("1");return t.fromBigInteger(this._startAddress().add(e))},t.prototype._endAddress=function(){return new f.BigInteger(this.mask()+"1".repeat(l.BITS-this.subnetMask),2)},t.prototype.endAddress=function(){return t.fromBigInteger(this._endAddress())},t.prototype.endAddressExclusive=function(){var e=new f.BigInteger("1");return t.fromBigInteger(this._endAddress().subtract(e))},t.prototype.getScope=function(){var t=l.SCOPES[this.getBits(12,16).intValue()];return"Global unicast"===this.getType()&&"Link local"!==t&&(t="Global"),t||"Unknown"},t.prototype.getType=function(){for(var e=0,n=Object.keys(l.TYPES);e<n.length;e++){var r=n[e];if(this.isInSubnet(new t(r)))return l.TYPES[r]}return"Global unicast"},t.prototype.getBits=function(t,e){return new f.BigInteger(this.getBitsBase2(t,e),2)},t.prototype.getBitsBase2=function(t,e){return this.binaryZeroPad().slice(t,e)},t.prototype.getBitsBase16=function(t,e){var n=e-t;if(n%4!=0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,e).toString(16).padStart(n/4,"0")},t.prototype.getBitsPastSubnet=function(){return this.getBitsBase2(this.subnetMask,l.BITS)},t.prototype.reverseForm=function(t){t||(t={});var e=Math.floor(this.subnetMask/4),n=this.canonicalForm().replace(/:/g,"").split("").slice(0,e).reverse().join(".");return e>0?t.omitSuffix?n:A.sprintf("%s.ip6.arpa.",n):t.omitSuffix?"":"ip6.arpa."},t.prototype.correctForm=function(){var t,e=[],n=0,r=[];for(t=0;t<this.parsedAddress.length;t++){var i=parseInt(this.parsedAddress[t],16);0===i&&n++,0!==i&&n>0&&(n>1&&r.push([t-n,t-1]),n=0)}n>1&&r.push([this.parsedAddress.length-n,this.parsedAddress.length-1]);var o=r.map(function(t){return t[1]-t[0]+1});if(r.length>0){var s=o.indexOf(Math.max.apply(Math,o));e=function(t,e){var n,r=[],i=[];for(n=0;n<t.length;n++)n<e[0]?r.push(t[n]):n>e[1]&&i.push(t[n]);return r.concat(["compact"]).concat(i)}(this.parsedAddress,r[s])}else e=this.parsedAddress;for(t=0;t<e.length;t++)"compact"!==e[t]&&(e[t]=parseInt(e[t],16).toString(16));var a=e.join(":");return a=(a=(a=a.replace(/^compact$/,"::")).replace(/^compact|compact$/,":")).replace(/compact/,"")},t.prototype.binaryZeroPad=function(){return this.bigInteger().toString(2).padStart(l.BITS,"0")},t.prototype.parse4in6=function(t){var e=t.split(":"),n=e.slice(-1)[0].match(c.RE_ADDRESS);if(n){this.parsedAddress4=n[0],this.address4=new h.Address4(this.parsedAddress4);for(var r=0;r<this.address4.groups;r++)if(/^0[0-9]+/.test(this.address4.parsedAddress[r]))throw new p.AddressError("IPv4 addresses can't have leading zeroes.",t.replace(c.RE_ADDRESS,this.address4.parsedAddress.map(E).join(".")));this.v4=!0,e[e.length-1]=this.address4.toGroup6(),t=e.join(":")}return t},t.prototype.parse=function(t){var e=(t=this.parse4in6(t)).match(l.RE_BAD_CHARACTERS);if(e)throw new p.AddressError(A.sprintf("Bad character%s detected in address: %s",e.length>1?"s":"",e.join("")),t.replace(l.RE_BAD_CHARACTERS,'<span class="parse-error">$1</span>'));var n=t.match(l.RE_BAD_ADDRESS);if(n)throw new p.AddressError(A.sprintf("Address failed regex: %s",n.join("")),t.replace(l.RE_BAD_ADDRESS,'<span class="parse-error">$1</span>'));var r=[],i=t.split("::");if(2===i.length){var o=i[0].split(":"),s=i[1].split(":");1===o.length&&""===o[0]&&(o=[]),1===s.length&&""===s[0]&&(s=[]);var a=this.groups-(o.length+s.length);if(!a)throw new p.AddressError("Error parsing groups");this.elidedGroups=a,this.elisionBegin=o.length,this.elisionEnd=o.length+this.elidedGroups,r=r.concat(o);for(var c=0;c<a;c++)r.push("0");r=r.concat(s)}else{if(1!==i.length)throw new p.AddressError("Too many :: groups found");r=t.split(":"),this.elidedGroups=0}if((r=r.map(function(t){return A.sprintf("%x",parseInt(t,16))})).length!==this.groups)throw new p.AddressError("Incorrect number of groups found");return r},t.prototype.canonicalForm=function(){return this.parsedAddress.map(m).join(":")},t.prototype.decimal=function(){return this.parsedAddress.map(function(t){return A.sprintf("%05d",parseInt(t,16))}).join(":")},t.prototype.bigInteger=function(){return new f.BigInteger(this.parsedAddress.map(m).join(""),16)},t.prototype.to4=function(){var t=this.binaryZeroPad().split("");return h.Address4.fromHex(new f.BigInteger(t.slice(96,128).join(""),2).toString(16))},t.prototype.to4in6=function(){var e=this.to4(),n=new t(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),r="";return/:$/.test(n)||(r=":"),n+r+e.address},t.prototype.inspectTeredo=function(){var t=this.getBitsBase16(0,32),e=this.getBits(80,96).xor(new f.BigInteger("ffff",16)).toString(),n=h.Address4.fromHex(this.getBitsBase16(32,64)),r=h.Address4.fromHex(this.getBits(96,128).xor(new f.BigInteger("ffffffff",16)).toString(16)),i=this.getBits(64,80),o=this.getBitsBase2(64,80),s=i.testBit(15),a=i.testBit(14),c=i.testBit(8),l=i.testBit(9),u=new f.BigInteger(o.slice(2,6)+o.slice(8,16),2).toString(10);return{prefix:A.sprintf("%s:%s",t.slice(0,4),t.slice(4,8)),server4:n.address,client4:r.address,flags:o,coneNat:s,microsoft:{reserved:a,universalLocal:l,groupIndividual:c,nonce:u},udpPort:e}},t.prototype.inspect6to4=function(){var t=this.getBitsBase16(0,16),e=h.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:A.sprintf("%s",t.slice(0,4)),gateway:e.address}},t.prototype.to6to4=function(){return this.is4()?new t(["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":")):null},t.prototype.toByteArray=function(){var t=this.bigInteger().toByteArray();return 17===t.length&&0===t[0]?t.slice(1):t},t.prototype.toUnsignedByteArray=function(){return this.toByteArray().map(y)},t.fromByteArray=function(t){return this.fromUnsignedByteArray(t.map(y))},t.fromUnsignedByteArray=function(e){for(var n=new f.BigInteger("256",10),r=new f.BigInteger("0",10),i=new f.BigInteger("1",10),o=e.length-1;o>=0;o--)r=r.add(i.multiply(new f.BigInteger(e[o].toString(10),10))),i=i.multiply(n);return t.fromBigInteger(r)},t.prototype.isCanonical=function(){return this.addressMinusSuffix===this.canonicalForm()},t.prototype.isLinkLocal=function(){return"1111111010000000000000000000000000000000000000000000000000000000"===this.getBitsBase2(0,64)},t.prototype.isMulticast=function(){return"Multicast"===this.getType()},t.prototype.is4=function(){return this.v4},t.prototype.isTeredo=function(){return this.isInSubnet(new t("2001::/32"))},t.prototype.is6to4=function(){return this.isInSubnet(new t("2002::/16"))},t.prototype.isLoopback=function(){return"Loopback"===this.getType()},t.prototype.href=function(t){return t=void 0===t?"":A.sprintf(":%s",t),A.sprintf("http://[%s]%s/",this.correctForm(),t)},t.prototype.link=function(t){t||(t={}),void 0===t.className&&(t.className=""),void 0===t.prefix&&(t.prefix="/#address="),void 0===t.v4&&(t.v4=!1);var e=this.correctForm;return t.v4&&(e=this.to4in6),t.className?A.sprintf('<a href="%1$s%2$s" class="%3$s">%2$s</a>',t.prefix,e.call(this),t.className):A.sprintf('<a href="%1$s%2$s">%2$s</a>',t.prefix,e.call(this))},t.prototype.group=function(){if(0===this.elidedGroups)return u.simpleGroup(this.address).join(":");g("number"==typeof this.elidedGroups),g("number"==typeof this.elisionBegin);var t=[],e=this.address.split("::"),n=e[0],r=e[1];n.length?t.push.apply(t,u.simpleGroup(n)):t.push("");for(var i=["hover-group"],o=this.elisionBegin;o<this.elisionBegin+this.elidedGroups;o++)i.push(A.sprintf("group-%d",o));return t.push(A.sprintf('<span class="%s"></span>',i.join(" "))),r.length?t.push.apply(t,u.simpleGroup(r,this.elisionEnd)):t.push(""),this.is4()&&(g(this.address4 instanceof h.Address4),t.pop(),t.push(this.address4.groupForV6())),t.join(":")},t.prototype.regularExpressionString=function(e){void 0===e&&(e=!1);var n=[],r=new t(this.correctForm());if(0===r.elidedGroups)n.push(d.simpleRegularExpression(r.parsedAddress));else if(r.elidedGroups===l.GROUPS)n.push(d.possibleElisions(l.GROUPS));else{var i=r.address.split("::");i[0].length&&n.push(d.simpleRegularExpression(i[0].split(":"))),g("number"==typeof r.elidedGroups),n.push(d.possibleElisions(r.elidedGroups,0!==i[0].length,0!==i[1].length)),i[1].length&&n.push(d.simpleRegularExpression(i[1].split(":"))),n=[n.join(":")]}return e||(n=s(["(?=^|",d.ADDRESS_BOUNDARY,"|[^\\w\\:])("],n,[")(?=[^\\w\\:]|",d.ADDRESS_BOUNDARY,"|$)"])),n.join("")},t.prototype.regularExpression=function(t){return void 0===t&&(t=!1),new RegExp(this.regularExpressionString(t),"i")},t}();e.Address6=w},2872:function(t){"use strict";!function(){function e(t){return parseInt(t)===t}function n(t){if(!e(t.length))return!1;for(var n=0;n<t.length;n++)if(!e(t[n])||t[n]<0||t[n]>255)return!1;return!0}function r(t,r){if(t.buffer&&ArrayBuffer.isView(t)&&"Uint8Array"===t.name)return r&&(t=t.slice?t.slice():Array.prototype.slice.call(t)),t;if(Array.isArray(t)){if(!n(t))throw new Error("Array contains invalid value: "+t);return new Uint8Array(t)}if(e(t.length)&&n(t))return new Uint8Array(t);throw new Error("unsupported array-like object")}function i(t){return new Uint8Array(t)}function o(t,e,n,r,i){null==r&&null==i||(t=t.slice?t.slice(r,i):Array.prototype.slice.call(t,r,i)),e.set(t,n)}var s,a={toBytes:function(t){var e=[],n=0;for(t=encodeURI(t);n<t.length;){var i=t.charCodeAt(n++);37===i?(e.push(parseInt(t.substr(n,2),16)),n+=2):e.push(i)}return r(e)},fromBytes:function(t){for(var e=[],n=0;n<t.length;){var r=t[n];r<128?(e.push(String.fromCharCode(r)),n++):r>191&&r<224?(e.push(String.fromCharCode((31&r)<<6|63&t[n+1])),n+=2):(e.push(String.fromCharCode((15&r)<<12|(63&t[n+1])<<6|63&t[n+2])),n+=3)}return e.join("")}},c=(s="0123456789abcdef",{toBytes:function(t){for(var e=[],n=0;n<t.length;n+=2)e.push(parseInt(t.substr(n,2),16));return e},fromBytes:function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];e.push(s[(240&r)>>4]+s[15&r])}return e.join("")}}),l={16:10,24:12,32:14},u=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],p=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],f=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],A=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],E=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],m=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],y=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],I=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],C=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],B=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],T=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function b(t){for(var e=[],n=0;n<t.length;n+=4)e.push(t[n]<<24|t[n+1]<<16|t[n+2]<<8|t[n+3]);return e}var D=function(t){if(!(this instanceof D))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:r(t,!0)}),this._prepare()};D.prototype._prepare=function(){var t=l[this.key.length];if(null==t)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var e=0;e<=t;e++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(t+1),i=this.key.length/4,o=b(this.key);for(e=0;e<i;e++)n=e>>2,this._Ke[n][e%4]=o[e],this._Kd[t-n][e%4]=o[e];for(var s,a=0,c=i;c<r;){if(s=o[i-1],o[0]^=h[s>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^u[a]<<24,a+=1,8!=i)for(e=1;e<i;e++)o[e]^=o[e-1];else{for(e=1;e<i/2;e++)o[e]^=o[e-1];s=o[i/2-1],o[i/2]^=h[255&s]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24;for(e=i/2+1;e<i;e++)o[e]^=o[e-1]}for(e=0;e<i&&c<r;)d=c>>2,p=c%4,this._Ke[d][p]=o[e],this._Kd[t-d][p]=o[e++],c++}for(var d=1;d<t;d++)for(var p=0;p<4;p++)s=this._Kd[d][p],this._Kd[d][p]=I[s>>24&255]^C[s>>16&255]^B[s>>8&255]^T[255&s]},D.prototype.encrypt=function(t){if(16!=t.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var e=this._Ke.length-1,n=[0,0,0,0],r=b(t),o=0;o<4;o++)r[o]^=this._Ke[0][o];for(var s=1;s<e;s++){for(o=0;o<4;o++)n[o]=p[r[o]>>24&255]^f[r[(o+1)%4]>>16&255]^A[r[(o+2)%4]>>8&255]^g[255&r[(o+3)%4]]^this._Ke[s][o];r=n.slice()}var a,c=i(16);for(o=0;o<4;o++)a=this._Ke[e][o],c[4*o]=255&(h[r[o]>>24&255]^a>>24),c[4*o+1]=255&(h[r[(o+1)%4]>>16&255]^a>>16),c[4*o+2]=255&(h[r[(o+2)%4]>>8&255]^a>>8),c[4*o+3]=255&(h[255&r[(o+3)%4]]^a);return c},D.prototype.decrypt=function(t){if(16!=t.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var e=this._Kd.length-1,n=[0,0,0,0],r=b(t),o=0;o<4;o++)r[o]^=this._Kd[0][o];for(var s=1;s<e;s++){for(o=0;o<4;o++)n[o]=E[r[o]>>24&255]^m[r[(o+3)%4]>>16&255]^y[r[(o+2)%4]>>8&255]^w[255&r[(o+1)%4]]^this._Kd[s][o];r=n.slice()}var a,c=i(16);for(o=0;o<4;o++)a=this._Kd[e][o],c[4*o]=255&(d[r[o]>>24&255]^a>>24),c[4*o+1]=255&(d[r[(o+3)%4]>>16&255]^a>>16),c[4*o+2]=255&(d[r[(o+2)%4]>>8&255]^a>>8),c[4*o+3]=255&(d[255&r[(o+1)%4]]^a);return c};var M=function(t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new D(t)};M.prototype.encrypt=function(t){if((t=r(t)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var e=i(t.length),n=i(16),s=0;s<t.length;s+=16)o(t,n,0,s,s+16),o(n=this._aes.encrypt(n),e,s);return e},M.prototype.decrypt=function(t){if((t=r(t)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var e=i(t.length),n=i(16),s=0;s<t.length;s+=16)o(t,n,0,s,s+16),o(n=this._aes.decrypt(n),e,s);return e};var N=function(t,e){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else e=i(16);this._lastCipherblock=r(e,!0),this._aes=new D(t)};N.prototype.encrypt=function(t){if((t=r(t)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var e=i(t.length),n=i(16),s=0;s<t.length;s+=16){o(t,n,0,s,s+16);for(var a=0;a<16;a++)n[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,e,s)}return e},N.prototype.decrypt=function(t){if((t=r(t)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var e=i(t.length),n=i(16),s=0;s<t.length;s+=16){o(t,n,0,s,s+16),n=this._aes.decrypt(n);for(var a=0;a<16;a++)e[s+a]=n[a]^this._lastCipherblock[a];o(t,this._lastCipherblock,0,s,s+16)}return e};var S=function(t,e,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 size)")}else e=i(16);n||(n=1),this.segmentSize=n,this._shiftRegister=r(e,!0),this._aes=new D(t)};S.prototype.encrypt=function(t){if(t.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var e,n=r(t,!0),i=0;i<n.length;i+=this.segmentSize){e=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[i+s]^=e[s];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return n},S.prototype.decrypt=function(t){if(t.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var e,n=r(t,!0),i=0;i<n.length;i+=this.segmentSize){e=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[i+s]^=e[s];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(t,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return n};var v=function(t,e){if(!(this instanceof v))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else e=i(16);this._lastPrecipher=r(e,!0),this._lastPrecipherIndex=16,this._aes=new D(t)};v.prototype.encrypt=function(t){for(var e=r(t,!0),n=0;n<e.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),e[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return e},v.prototype.decrypt=v.prototype.encrypt;var _=function(t){if(!(this instanceof _))throw Error("Counter must be instanitated with `new`");0===t||t||(t=1),"number"==typeof t?(this._counter=i(16),this.setValue(t)):this.setBytes(t)};_.prototype.setValue=function(t){if("number"!=typeof t||parseInt(t)!=t)throw new Error("invalid counter value (must be an integer)");for(var e=15;e>=0;--e)this._counter[e]=t%256,t>>=8},_.prototype.setBytes=function(t){if(16!=(t=r(t,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=t},_.prototype.increment=function(){for(var t=15;t>=0;t--){if(255!==this._counter[t]){this._counter[t]++;break}this._counter[t]=0}};var L=function(t,e){if(!(this instanceof L))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",e instanceof _||(e=new _(e)),this._counter=e,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new D(t)};L.prototype.encrypt=function(t){for(var e=r(t,!0),n=0;n<e.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),e[n]^=this._remainingCounter[this._remainingCounterIndex++];return e},L.prototype.decrypt=L.prototype.encrypt;var x={AES:D,Counter:_,ModeOfOperation:{ecb:M,cbc:N,cfb:S,ofb:v,ctr:L},utils:{hex:c,utf8:a},padding:{pkcs7:{pad:function(t){var e=16-(t=r(t,!0)).length%16,n=i(t.length+e);o(t,n);for(var s=t.length;s<n.length;s++)n[s]=e;return n},strip:function(t){if((t=r(t,!0)).length<16)throw new Error("PKCS#7 invalid length");var e=t[t.length-1];if(e>16)throw new Error("PKCS#7 padding byte out of range");for(var n=t.length-e,s=0;s<e;s++)if(t[n+s]!==e)throw new Error("PKCS#7 invalid padding byte");var a=i(n);return o(t,a,0,0,n),a}}},_arrayTest:{coerceArray:r,createArray:i,copyArray:o}};t.exports=x}()},3153:(t,e,n)=>{"use strict";n.d(e,{Ey:()=>s,w9:()=>a});n(7770);function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,o(r.key),r)}}function o(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==r(e)?e:e+""}var s=Object.freeze({BACKGROUND:"background",CONTENT:"content",POPUP:"popup",INIT:"init",VERIFICATION:"verification",FETCH:"fetch",PROVIDER:"provider",CLAIM:"claim",PROOF:"proof",OFFSCREEN:"offscreen",POLYFILLS:"polyfills",SESSION_TIMER:"session-timer"}),a=new(function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.enabled=!0,this.allowedTypes=new Set}return e=t,n=[{key:"enable",value:function(){this.enabled=!0}},{key:"disable",value:function(){this.enabled=!1}},{key:"setTypes",value:function(t){Array.isArray(t)&&(this.allowedTypes=new Set(t))}},{key:"clearTypes",value:function(){this.allowedTypes.clear()}},{key:"log",value:function(e){var n;if(this.enabled&&(!(this.allowedTypes.size>0)||this.allowedTypes.has(e))){for(var r=t.typeColor(e),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];(n=console).log.apply(n,["%c[".concat(e,"][INFO]"),"color: ".concat(r,"; font-weight: bold;")].concat(o))}}},{key:"info",value:function(e){var n;if(this.enabled&&(!(this.allowedTypes.size>0)||this.allowedTypes.has(e))){for(var r=t.typeColor(e),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];(n=console).info.apply(n,["%c[".concat(e,"][INFO]"),"color: ".concat(r,"; font-weight: bold;")].concat(o))}}},{key:"warn",value:function(e){var n;if(this.enabled&&(!(this.allowedTypes.size>0)||this.allowedTypes.has(e))){for(var r=t.typeColor(e,"warn"),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];(n=console).warn.apply(n,["%c[".concat(e,"][WARN]"),"color: ".concat(r,"; font-weight: bold;")].concat(o))}}},{key:"error",value:function(e){var n;if(this.enabled&&(!(this.allowedTypes.size>0)||this.allowedTypes.has(e))){for(var r=t.typeColor(e,"error"),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];(n=console).error.apply(n,["%c[".concat(e,"][ERROR]"),"color: ".concat(r,"; font-weight: bold;")].concat(o))}}}],r=[{key:"typeColor",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",n={background:"#0074D9",content:"#2ECC40",popup:"#FF851B",init:"#B10DC9",verification:"#FF4136",fetch:"#39CCCC",provider:"#FFDC00",claim:"#7FDBFF",proof:"#85144b",offscreen:"#AAAAAA",polyfills:"#0074D9","session-timer":"#2ECC40"},r=n[Object.keys(n).find(function(e){return t.toLowerCase().includes(e)})]||"#888888";return"info"!==e&&(r={info:"",warn:"#FFA500",error:"#FF0000"}[e]||r),r}}],n&&i(e.prototype,n),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,r}()),c=(n(3859),n(5606));void 0!==c&&c.env?a.disable():a.enable()},3296:(t,e,n)=>{"use strict";n.r(e),n.d(e,{WebSocket:()=>f,default:()=>A});var r,i=n(3153);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,l(r.key),r)}}function c(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function l(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}function u(t,e,n){return e=d(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,h()?Reflect.construct(e,n||[],d(t).constructor):e.apply(t,n))}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(h=function(){return!!t})()}function d(t){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},d(t)}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}(t=n.hmd(t),"undefined"==typeof window)?(r=function(){return c(function t(e,n){var r=this;s(this,t),i.w9.info(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] Creating mock WebSocket for background context"),this.url=e,this.protocols=n,this.readyState=3,setTimeout(function(){"function"==typeof r.onclose&&r.onclose({code:1e3,reason:"WebSockets not supported in background context"})},0)},[{key:"send",value:function(){throw i.w9.warn(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] Cannot use WebSockets in background context"),new Error("WebSockets are not available in background context")}},{key:"close",value:function(){}},{key:"sendPromise",value:function(){return Promise.reject(new Error("WebSockets are not available in background context"))}},{key:"addEventListener",value:function(){}},{key:"removeEventListener",value:function(){}}])}(),i.w9.info(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] Using mock WebSocket implementation for background context")):(r=function(t){function e(t,n){var r;return s(this,e),i.w9.info(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] Creating WebSocket with URL:",t),(r=u(this,e,[t,n])).addEventListener("error",function(t){"function"==typeof r.onerror&&r.onerror(t)}),r.addEventListener("open",function(t){"function"==typeof r.onopen&&r.onopen(t)}),r.addEventListener("close",function(t){"function"==typeof r.onclose&&r.onclose(t)}),r.addEventListener("message",function(t){"function"==typeof r.onmessage&&r.onmessage(t)}),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&p(t,e)}(e,t),c(e,[{key:"sendPromise",value:function(t){var e=this;return new Promise(function(n,r){try{e.send(t),n()}catch(t){r(t)}})}}])}(window.WebSocket),i.w9.info(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] Using browser WebSocket implementation"));var f=r;const A=r;t.exports&&(t.exports=r,t.exports.WebSocket=r,t.exports.default=r),i.w9.info(i.Ey.POLYFILLS,"[WEBSOCKET-POLYFILL] WebSocket polyfill initialized")},3349:t=>{function e(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=e,e.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)}},3631:(t,e)=>{!function(t){"use strict";var e="__namespace",n=function(t){return t&&((n=t.nodeType)===e||Number.isInteger(n)&&n>=1&&n<=11)&&"string"==typeof t.nodeName;var n};var r=function(t,e){for(var n=0;n<e.length;n+=1)t(e[n],n,e)},i=function(t,e,n){var i=e;return r(function(e,n){i=t(i,e,n)},n),i},o=function(t,e){var n=new Array(e.length);return r(function(e,r){n[r]=t(e)},e),n},s=function(t,e){for(var n=0;n<t.length;n+=1)if(t[n]===e)return!0;return!1};function a(t){return t.toString()}var c=function(t,e){return e.join(t)},l=function(t,e,n){return t+n+e},u=Array.prototype.concat;function h(t,e){for(var n=Object(t),r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i)for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])}return n}var d=1,p=2,f=3,A=4,g=7,E=8,m=9,y=10,w=11,I=e;function C(){this.init()}function B(t){this.expression=t}function T(t,e,n){e in t||(t[e]=n)}function b(){}function D(t){arguments.length>0&&this.init(t)}function M(t){arguments.length>0&&this.init(t)}function N(t,e){arguments.length>0&&this.init(t,e)}function S(t,e){arguments.length>0&&this.init(t,e)}function v(t,e){arguments.length>0&&this.init(t,e)}function _(t,e){arguments.length>0&&this.init(t,e)}function L(t,e){arguments.length>0&&this.init(t,e)}function x(t,e){arguments.length>0&&this.init(t,e)}function R(t,e){arguments.length>0&&this.init(t,e)}function F(t,e){arguments.length>0&&this.init(t,e)}function O(t,e){arguments.length>0&&this.init(t,e)}function k(t,e){arguments.length>0&&this.init(t,e)}function Q(t,e){arguments.length>0&&this.init(t,e)}function U(t,e){arguments.length>0&&this.init(t,e)}function P(t,e){arguments.length>0&&this.init(t,e)}function G(t,e){arguments.length>0&&this.init(t,e)}function V(t,e){arguments.length>0&&this.init(t,e)}function H(t,e,n){arguments.length>0&&this.init(t,e,n)}function j(t){for(;t&&t.parentNode;)t=t.parentNode;return t}C.prototype=new Object,C.prototype.constructor=C,C.superclass=Object.prototype,C.prototype.init=function(){this.reduceActions=[],this.reduceActions[3]=function(t){return new S(t[0],t[2])},this.reduceActions[5]=function(t){return new v(t[0],t[2])},this.reduceActions[7]=function(t){return new _(t[0],t[2])},this.reduceActions[8]=function(t){return new L(t[0],t[2])},this.reduceActions[10]=function(t){return new x(t[0],t[2])},this.reduceActions[11]=function(t){return new R(t[0],t[2])},this.reduceActions[12]=function(t){return new F(t[0],t[2])},this.reduceActions[13]=function(t){return new O(t[0],t[2])},this.reduceActions[15]=function(t){return new k(t[0],t[2])},this.reduceActions[16]=function(t){return new Q(t[0],t[2])},this.reduceActions[18]=function(t){return new U(t[0],t[2])},this.reduceActions[19]=function(t){return new P(t[0],t[2])},this.reduceActions[20]=function(t){return new G(t[0],t[2])},this.reduceActions[22]=function(t){return new M(t[1])},this.reduceActions[24]=function(t){return new V(t[0],t[2])},this.reduceActions[25]=function(t){return new H(void 0,void 0,t[0])},this.reduceActions[27]=function(t){return t[0].locationPath=t[2],t[0]},this.reduceActions[28]=function(t){return t[0].locationPath=t[2],t[0].locationPath.steps.unshift(new K(K.DESCENDANTORSELF,Z.nodeTest,[])),t[0]},this.reduceActions[29]=function(t){return new H(t[0],[],void 0)},this.reduceActions[30]=function(t){return pt.instance_of(t[0],H)?(null==t[0].filterPredicates&&(t[0].filterPredicates=[]),t[0].filterPredicates.push(t[1]),t[0]):new H(t[0],[t[1]],void 0)},this.reduceActions[32]=function(t){return t[1]},this.reduceActions[33]=function(t){return new nt(t[0])},this.reduceActions[34]=function(t){return new rt(t[0])},this.reduceActions[36]=function(t){return new tt(t[0],[])},this.reduceActions[37]=function(t){return new tt(t[0],t[2])},this.reduceActions[38]=function(t){return[t[0]]},this.reduceActions[39]=function(t){return t[2].unshift(t[0]),t[2]},this.reduceActions[43]=function(t){return new q(!0,[])},this.reduceActions[44]=function(t){return t[1].absolute=!0,t[1]},this.reduceActions[46]=function(t){return new q(!1,[t[0]])},this.reduceActions[47]=function(t){return t[0].steps.push(t[2]),t[0]},this.reduceActions[49]=function(t){return new K(t[0],t[1],[])},this.reduceActions[50]=function(t){return new K(K.CHILD,t[0],[])},this.reduceActions[51]=function(t){return new K(t[0],t[1],t[2])},this.reduceActions[52]=function(t){return new K(K.CHILD,t[0],t[1])},this.reduceActions[54]=function(t){return[t[0]]},this.reduceActions[55]=function(t){return t[1].unshift(t[0]),t[1]},this.reduceActions[56]=function(t){return"ancestor"==t[0]?K.ANCESTOR:"ancestor-or-self"==t[0]?K.ANCESTORORSELF:"attribute"==t[0]?K.ATTRIBUTE:"child"==t[0]?K.CHILD:"descendant"==t[0]?K.DESCENDANT:"descendant-or-self"==t[0]?K.DESCENDANTORSELF:"following"==t[0]?K.FOLLOWING:"following-sibling"==t[0]?K.FOLLOWINGSIBLING:"namespace"==t[0]?K.NAMESPACE:"parent"==t[0]?K.PARENT:"preceding"==t[0]?K.PRECEDING:"preceding-sibling"==t[0]?K.PRECEDINGSIBLING:"self"==t[0]?K.SELF:-1},this.reduceActions[57]=function(t){return K.ATTRIBUTE},this.reduceActions[59]=function(t){return"comment"==t[0]?Z.commentTest:"text"==t[0]?Z.textTest:"processing-instruction"==t[0]?Z.anyPiTest:"node"==t[0]?Z.nodeTest:new Z(-1,void 0)},this.reduceActions[60]=function(t){return new Z.PITest(t[2])},this.reduceActions[61]=function(t){return t[1]},this.reduceActions[63]=function(t){return t[1].absolute=!0,t[1].steps.unshift(new K(K.DESCENDANTORSELF,Z.nodeTest,[])),t[1]},this.reduceActions[64]=function(t){return t[0].steps.push(new K(K.DESCENDANTORSELF,Z.nodeTest,[])),t[0].steps.push(t[2]),t[0]},this.reduceActions[65]=function(t){return new K(K.SELF,Z.nodeTest,[])},this.reduceActions[66]=function(t){return new K(K.PARENT,Z.nodeTest,[])},this.reduceActions[67]=function(t){return new $(t[1])},this.reduceActions[68]=function(t){return Z.nameTestAny},this.reduceActions[69]=function(t){return new Z.NameTestPrefixAny(t[0].split(":")[0])},this.reduceActions[70]=function(t){return new Z.NameTestQName(t[0])}},C.actionTable=[" s s sssssssss s ss s ss"," s ","r rrrrrrrrr rrrrrrr rr r "," rrrrr "," s s sssssssss s ss s ss","rs rrrrrrrr s sssssrrrrrr rrs rs "," s s sssssssss s ss s ss"," s "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s "," s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr r ","a ","r s rr r ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrs rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r srrrrrrrr rrrrrrs rr sr ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r "," sssss ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrr rrrrr rr r "," s "," s "," rrrrr "," s s sssssssss s sss s ss","r srrrrrrrr rrrrrrs rr r "," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss ss s ss"," s s sssssssss s ss s ss"," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr rr "," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," rr "," s "," rs ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrr rr r "," r "," s ","r srrrrrrrr rrrrrrs rr r ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s s sssssssss s ss s ss","r rrrrrrrrr rrrrrrr rr rr "," r "],C.actionTableNumber=[" 1 0 /.-,+*)(' & %$ # \"!"," J ","a aaaaaaaaa aaaaaaa aa a "," YYYYY "," 1 0 /.-,+*)(' & %$ # \"!","K1 KKKKKKKK . +*)('KKKKKK KK# K\" "," 1 0 /.-,+*)(' & %$ # \"!"," N "," O ","e eeeeeeeee eeeeeee ee ee ","f fffffffff fffffff ff ff ","d ddddddddd ddddddd dd dd ","B BBBBBBBBB BBBBBBB BB BB ","A AAAAAAAAA AAAAAAA AA AA "," P "," Q "," 1 . +*)(' # \" ","b bbbbbbbbb bbbbbbb bb b "," ","! S !! ! ",'" T" "" " ',"$ V $$ U $$ $ ","& &ZY&& &XW && & ",") ))))) )))\\[ )) ) ",". ....._^] ..... .. . ","1 11111111 11111 11 1 ","5 55555555 55555` 55 5 ","7 77777777 777777 77 7 ","9 99999999 999999 99 9 ",": c:::::::: ::::::b :: a: ","I fIIIIIIII IIIIIIe II I ","= ========= ======= == == ","? ????????? ??????? ?? ?? ","C CCCCCCCCC CCCCCCC CC CC ","J JJJJJJJJ JJJJJJ JJ J ","M MMMMMMMM MMMMMM MM M ","N NNNNNNNNN NNNNNNN NN N ","P PPPPPPPPP PPPPPPP PP P "," +*)(' ","R RRRRRRRRR RRRRRRR RR aR ","U UUUUUUUUU UUUUUUU UU U ","Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ ","c ccccccccc ccccccc cc cc "," j ","L fLLLLLLLL LLLLLLe LL L ","6 66666666 66666 66 6 "," k "," l "," XXXXX "," 1 0 /.-,+*)(' & %$m # \"!","_ f________ ______e __ _ "," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 . +*)(' # \" "," 1 . +*)(' # \" ","> >>>>>>>>> >>>>>>> >> >> "," 1 . +*)(' # \" "," 1 . +*)(' # \" ","Q QQQQQQQQQ QQQQQQQ QQ aQ ","V VVVVVVVVV VVVVVVV VV aV ","T TTTTTTTTT TTTTTTT TT T ","@ @@@@@@@@@ @@@@@@@ @@ @@ "," ","[ [[[[[[[[[ [[[[[[[ [[ [[ ","D DDDDDDDDD DDDDDDD DD DD "," HH "," "," F ","# T# ## # ","% V %% U %% % ","' 'ZY'' 'XW '' ' ","( (ZY(( (XW (( ( ","+ +++++ +++\\[ ++ + ","* ***** ***\\[ ** * ","- ----- ---\\[ -- - ",", ,,,,, ,,,\\[ ,, , ","0 00000_^] 00000 00 0 ","/ /////_^] ///// // / ","2 22222222 22222 22 2 ","3 33333333 33333 33 3 ","4 44444444 44444 44 4 ","8 88888888 888888 88 8 "," ^ "," ","; f;;;;;;;; ;;;;;;e ;; ; ","< f<<<<<<<< <<<<<<e << < ","O OOOOOOOOO OOOOOOO OO O ","` ````````` ``````` `` ` ","S SSSSSSSSS SSSSSSS SS S ","W WWWWWWWWW WWWWWWW WW W ","\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\ \\\\ ","E EEEEEEEEE EEEEEEE EE EE "," 1 0 /.-,+*)(' & %$ # \"!","] ]]]]]]]]] ]]]]]]] ]] ]] "," G "],C.gotoTable=["3456789:;<=>?@ AB CDEFGH IJ "," "," "," ","L456789:;<=>?@ AB CDEFGH IJ "," M EFGH IJ "," N;<=>?@ AB CDEFGH IJ "," "," "," "," "," "," "," "," "," "," S EFGH IJ "," "," "," "," "," "," "," "," "," "," "," "," "," e "," "," "," "," "," "," "," "," "," h J "," i j "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABpqCDEFGH IJ "," "," r6789:;<=>?@ AB CDEFGH IJ "," s789:;<=>?@ AB CDEFGH IJ "," t89:;<=>?@ AB CDEFGH IJ "," u89:;<=>?@ AB CDEFGH IJ "," v9:;<=>?@ AB CDEFGH IJ "," w9:;<=>?@ AB CDEFGH IJ "," x9:;<=>?@ AB CDEFGH IJ "," y9:;<=>?@ AB CDEFGH IJ "," z:;<=>?@ AB CDEFGH IJ "," {:;<=>?@ AB CDEFGH IJ "," |;<=>?@ AB CDEFGH IJ "," };<=>?@ AB CDEFGH IJ "," ~;<=>?@ AB CDEFGH IJ "," =>?@ AB CDEFGH IJ ","456789:;<=>?@ AB CDEFGH IJ"," EFGH IJ "," EFGH IJ "," "," GH IJ ","
GH IJ "," i "," i "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABqCDEFGH IJ "," "," "],C.productions=[[1,1,2],[2,1,3],[3,1,4],[3,3,3,-9,4],[4,1,5],[4,3,4,-8,5],[5,1,6],[5,3,5,-22,6],[5,3,5,-5,6],[6,1,7],[6,3,6,-23,7],[6,3,6,-24,7],[6,3,6,-6,7],[6,3,6,-7,7],[7,1,8],[7,3,7,-25,8],[7,3,7,-26,8],[8,1,9],[8,3,8,-12,9],[8,3,8,-11,9],[8,3,8,-10,9],[9,1,10],[9,2,-26,9],[10,1,11],[10,3,10,-27,11],[11,1,12],[11,1,13],[11,3,13,-28,14],[11,3,13,-4,14],[13,1,15],[13,2,13,16],[15,1,17],[15,3,-29,2,-30],[15,1,-15],[15,1,-16],[15,1,18],[18,3,-13,-29,-30],[18,4,-13,-29,19,-30],[19,1,20],[19,3,20,-31,19],[20,1,2],[12,1,14],[12,1,21],[21,1,-28],[21,2,-28,14],[21,1,22],[14,1,23],[14,3,14,-28,23],[14,1,24],[23,2,25,26],[23,1,26],[23,3,25,26,27],[23,2,26,27],[23,1,28],[27,1,16],[27,2,16,27],[25,2,-14,-3],[25,1,-32],[26,1,29],[26,3,-20,-29,-30],[26,4,-21,-29,-15,-30],[16,3,-33,30,-34],[30,1,2],[22,2,-4,14],[24,3,14,-4,23],[28,1,-35],[28,1,-2],[17,2,-36,-18],[29,1,-17],[29,1,-19],[29,1,-18]],C.DOUBLEDOT=2,C.DOUBLECOLON=3,C.DOUBLESLASH=4,C.NOTEQUAL=5,C.LESSTHANOREQUAL=6,C.GREATERTHANOREQUAL=7,C.AND=8,C.OR=9,C.MOD=10,C.DIV=11,C.MULTIPLYOPERATOR=12,C.FUNCTIONNAME=13,C.AXISNAME=14,C.LITERAL=15,C.NUMBER=16,C.ASTERISKNAMETEST=17,C.QNAME=18,C.NCNAMECOLONASTERISK=19,C.NODETYPE=20,C.PROCESSINGINSTRUCTIONWITHLITERAL=21,C.EQUALS=22,C.LESSTHAN=23,C.GREATERTHAN=24,C.PLUS=25,C.MINUS=26,C.BAR=27,C.SLASH=28,C.LEFTPARENTHESIS=29,C.RIGHTPARENTHESIS=30,C.COMMA=31,C.AT=32,C.LEFTBRACKET=33,C.RIGHTBRACKET=34,C.DOT=35,C.DOLLAR=36,C.prototype.tokenize=function(t){for(var e=[],n=[],r=t+"\0",i=0,o=r.charAt(i++);;){for(;" "==o||"\t"==o||"\r"==o||"\n"==o;)o=r.charAt(i++);if("\0"==o||i>=r.length)break;if("("!=o)if(")"!=o)if("["!=o)if("]"!=o)if("@"!=o)if(","!=o)if("|"!=o)if("+"!=o)if("-"!=o)if("="!=o)if("$"!=o)if("."!=o)if("'"!=o&&'"'!=o)if(o>="0"&&o<="9"){u=o;for(o=r.charAt(i++);o>="0"&&o<="9";)u+=o,o=r.charAt(i++);if("."==o&&r.charAt(i)>="0"&&r.charAt(i)<="9")for(u+=o,u+=r.charAt(i++),o=r.charAt(i++);o>="0"&&o<="9";)u+=o,o=r.charAt(i++);e.push(C.NUMBER),n.push(u)}else if("*"!=o)if(":"!=o||":"!=r.charAt(i))if("/"!=o)if("!"!=o||"="!=r.charAt(i))if("<"!=o)if(">"!=o){if("_"!=o&&!pt.isLetter(o.charCodeAt(0)))throw new Error("Unexpected character "+o);var s=o;for(o=r.charAt(i++);pt.isNCNameChar(o.charCodeAt(0));)s+=o,o=r.charAt(i++);if(e.length>0&&(a=e[e.length-1])!=C.AT&&a!=C.DOUBLECOLON&&a!=C.LEFTPARENTHESIS&&a!=C.LEFTBRACKET&&a!=C.AND&&a!=C.OR&&a!=C.MOD&&a!=C.DIV&&a!=C.MULTIPLYOPERATOR&&a!=C.SLASH&&a!=C.DOUBLESLASH&&a!=C.BAR&&a!=C.PLUS&&a!=C.MINUS&&a!=C.EQUALS&&a!=C.NOTEQUAL&&a!=C.LESSTHAN&&a!=C.LESSTHANOREQUAL&&a!=C.GREATERTHAN&&a!=C.GREATERTHANOREQUAL){if("and"==s){e.push(C.AND),n.push(s);continue}if("or"==s){e.push(C.OR),n.push(s);continue}if("mod"==s){e.push(C.MOD),n.push(s);continue}if("div"==s){e.push(C.DIV),n.push(s);continue}}if(":"==o){if("*"==r.charAt(i)){e.push(C.NCNAMECOLONASTERISK),n.push(s+":*"),i++,o=r.charAt(i++);continue}if("_"==r.charAt(i)||pt.isLetter(r.charCodeAt(i))){for(s+=":",o=r.charAt(i++);pt.isNCNameChar(o.charCodeAt(0));)s+=o,o=r.charAt(i++);if("("==o){e.push(C.FUNCTIONNAME),n.push(s);continue}e.push(C.QNAME),n.push(s);continue}if(":"==r.charAt(i)){e.push(C.AXISNAME),n.push(s);continue}}if("("==o){if("comment"==s||"text"==s||"node"==s){e.push(C.NODETYPE),n.push(s);continue}if("processing-instruction"==s){")"==r.charAt(i)?e.push(C.NODETYPE):e.push(C.PROCESSINGINSTRUCTIONWITHLITERAL),n.push(s);continue}e.push(C.FUNCTIONNAME),n.push(s);continue}e.push(C.QNAME),n.push(s)}else{if("="==r.charAt(i)){e.push(C.GREATERTHANOREQUAL),n.push(">="),i++,o=r.charAt(i++);continue}e.push(C.GREATERTHAN),n.push(">"),o=r.charAt(i++)}else{if("="==r.charAt(i)){e.push(C.LESSTHANOREQUAL),n.push("<="),i++,o=r.charAt(i++);continue}e.push(C.LESSTHAN),n.push("<"),o=r.charAt(i++)}else e.push(C.NOTEQUAL),n.push("!="),i++,o=r.charAt(i++);else{if("/"==(o=r.charAt(i++))){e.push(C.DOUBLESLASH),n.push("//"),o=r.charAt(i++);continue}e.push(C.SLASH),n.push("/")}else e.push(C.DOUBLECOLON),n.push("::"),i++,o=r.charAt(i++);else{var a;if(e.length>0&&(a=e[e.length-1])!=C.AT&&a!=C.DOUBLECOLON&&a!=C.LEFTPARENTHESIS&&a!=C.LEFTBRACKET&&a!=C.AND&&a!=C.OR&&a!=C.MOD&&a!=C.DIV&&a!=C.MULTIPLYOPERATOR&&a!=C.SLASH&&a!=C.DOUBLESLASH&&a!=C.BAR&&a!=C.PLUS&&a!=C.MINUS&&a!=C.EQUALS&&a!=C.NOTEQUAL&&a!=C.LESSTHAN&&a!=C.LESSTHANOREQUAL&&a!=C.GREATERTHAN&&a!=C.GREATERTHANOREQUAL){e.push(C.MULTIPLYOPERATOR),n.push(o),o=r.charAt(i++);continue}e.push(C.ASTERISKNAMETEST),n.push(o),o=r.charAt(i++)}else{for(var c=o,l="";i<r.length&&(o=r.charAt(i))!==c;)l+=o,i+=1;if(o!==c)throw At.fromMessage("Unterminated string literal: "+c+l);i+=1,e.push(C.LITERAL),n.push(l),o=r.charAt(i++)}else{if("."==(o=r.charAt(i++))){e.push(C.DOUBLEDOT),n.push(".."),o=r.charAt(i++);continue}if(o>="0"&&o<="9"){var u="."+o;for(o=r.charAt(i++);o>="0"&&o<="9";)u+=o,o=r.charAt(i++);e.push(C.NUMBER),n.push(u);continue}e.push(C.DOT),n.push(".")}else e.push(C.DOLLAR),n.push(o),o=r.charAt(i++);else e.push(C.EQUALS),n.push(o),o=r.charAt(i++);else e.push(C.MINUS),n.push(o),o=r.charAt(i++);else e.push(C.PLUS),n.push(o),o=r.charAt(i++);else e.push(C.BAR),n.push(o),o=r.charAt(i++);else e.push(C.COMMA),n.push(o),o=r.charAt(i++);else e.push(C.AT),n.push(o),o=r.charAt(i++);else e.push(C.RIGHTBRACKET),n.push(o),o=r.charAt(i++);else e.push(C.LEFTBRACKET),n.push(o),o=r.charAt(i++);else e.push(C.RIGHTPARENTHESIS),n.push(o),o=r.charAt(i++);else e.push(C.LEFTPARENTHESIS),n.push(o),o=r.charAt(i++)}return e.push(1),n.push("[EOF]"),[e,n]},C.SHIFT="s",C.REDUCE="r",C.ACCEPT="a",C.prototype.parse=function(t){if(!t)throw new Error("XPath expression unspecified.");if("string"!=typeof t)throw new Error("XPath expression must be a string.");var e,n,r=this.tokenize(t);if(null!=r){e=r[0],n=r[1];var i,o,s=0,a=[],c=[],l=[];for(a.push(0),c.push(1),l.push("_S"),i=e[s],o=n[s++];;)switch(t=a[a.length-1],C.actionTable[t].charAt(i-1)){case C.SHIFT:c.push(-i),l.push(o),a.push(C.actionTableNumber[t].charCodeAt(i-1)-32),i=e[s],o=n[s++];break;case C.REDUCE:for(var u=C.productions[C.actionTableNumber[t].charCodeAt(i-1)-32][1],h=[],d=0;d<u;d++)c.pop(),h.unshift(l.pop()),a.pop();var p=a[a.length-1];c.push(C.productions[C.actionTableNumber[t].charCodeAt(i-1)-32][0]),null==this.reduceActions[C.actionTableNumber[t].charCodeAt(i-1)-32]?l.push(h[0]):l.push(this.reduceActions[C.actionTableNumber[t].charCodeAt(i-1)-32](h)),a.push(C.gotoTable[p].charCodeAt(C.productions[C.actionTableNumber[t].charCodeAt(i-1)-32][0]-2)-33);break;case C.ACCEPT:return new B(l.pop());default:throw new Error("XPath parse error")}}},B.prototype=new Object,B.prototype.constructor=B,B.superclass=Object.prototype,B.prototype.toString=function(){return this.expression.toString()},B.prototype.evaluate=function(t){var e=t.expressionContextNode;if(null!=e&&!n(e))throw new Error("Context node does not appear to be a valid DOM node.");return t.contextNode=t.expressionContextNode,t.contextSize=1,t.contextPosition=1,t.isHtml&&(T(t,"caseInsensitive",!0),T(t,"allowAnyNamespaceForNoPrefix",!0)),T(t,"caseInsensitive",!1),this.expression.evaluate(t)},B.XML_NAMESPACE_URI="http://www.w3.org/XML/1998/namespace",B.XMLNS_NAMESPACE_URI="http://www.w3.org/2000/xmlns/",b.prototype=new Object,b.prototype.constructor=b,b.superclass=Object.prototype,b.prototype.init=function(){},b.prototype.toString=function(){return"<Expression>"},b.prototype.evaluate=function(t){throw new Error("Could not evaluate expression.")},D.prototype=new b,D.prototype.constructor=D,D.superclass=b.prototype,D.prototype.init=function(t){this.rhs=t},M.prototype=new D,M.prototype.constructor=M,M.superclass=D.prototype,M.prototype.init=function(t){M.superclass.init.call(this,t)},M.prototype.evaluate=function(t){return this.rhs.evaluate(t).number().negate()},M.prototype.toString=function(){return"-"+this.rhs.toString()},N.prototype=new b,N.prototype.constructor=N,N.superclass=b.prototype,N.prototype.init=function(t,e){this.lhs=t,this.rhs=e},S.prototype=new N,S.prototype.constructor=S,S.superclass=N.prototype,S.prototype.init=function(t,e){S.superclass.init.call(this,t,e)},S.prototype.toString=function(){return"("+this.lhs.toString()+" or "+this.rhs.toString()+")"},S.prototype.evaluate=function(t){var e=this.lhs.evaluate(t).bool();return e.booleanValue()?e:this.rhs.evaluate(t).bool()},v.prototype=new N,v.prototype.constructor=v,v.superclass=N.prototype,v.prototype.init=function(t,e){v.superclass.init.call(this,t,e)},v.prototype.toString=function(){return"("+this.lhs.toString()+" and "+this.rhs.toString()+")"},v.prototype.evaluate=function(t){var e=this.lhs.evaluate(t).bool();return e.booleanValue()?this.rhs.evaluate(t).bool():e},_.prototype=new N,_.prototype.constructor=_,_.superclass=N.prototype,_.prototype.init=function(t,e){_.superclass.init.call(this,t,e)},_.prototype.toString=function(){return"("+this.lhs.toString()+" = "+this.rhs.toString()+")"},_.prototype.evaluate=function(t){return this.lhs.evaluate(t).equals(this.rhs.evaluate(t))},L.prototype=new N,L.prototype.constructor=L,L.superclass=N.prototype,L.prototype.init=function(t,e){L.superclass.init.call(this,t,e)},L.prototype.toString=function(){return"("+this.lhs.toString()+" != "+this.rhs.toString()+")"},L.prototype.evaluate=function(t){return this.lhs.evaluate(t).notequal(this.rhs.evaluate(t))},x.prototype=new N,x.prototype.constructor=x,x.superclass=N.prototype,x.prototype.init=function(t,e){x.superclass.init.call(this,t,e)},x.prototype.evaluate=function(t){return this.lhs.evaluate(t).lessthan(this.rhs.evaluate(t))},x.prototype.toString=function(){return"("+this.lhs.toString()+" < "+this.rhs.toString()+")"},R.prototype=new N,R.prototype.constructor=R,R.superclass=N.prototype,R.prototype.init=function(t,e){R.superclass.init.call(this,t,e)},R.prototype.evaluate=function(t){return this.lhs.evaluate(t).greaterthan(this.rhs.evaluate(t))},R.prototype.toString=function(){return"("+this.lhs.toString()+" > "+this.rhs.toString()+")"},F.prototype=new N,F.prototype.constructor=F,F.superclass=N.prototype,F.prototype.init=function(t,e){F.superclass.init.call(this,t,e)},F.prototype.evaluate=function(t){return this.lhs.evaluate(t).lessthanorequal(this.rhs.evaluate(t))},F.prototype.toString=function(){return"("+this.lhs.toString()+" <= "+this.rhs.toString()+")"},O.prototype=new N,O.prototype.constructor=O,O.superclass=N.prototype,O.prototype.init=function(t,e){O.superclass.init.call(this,t,e)},O.prototype.evaluate=function(t){return this.lhs.evaluate(t).greaterthanorequal(this.rhs.evaluate(t))},O.prototype.toString=function(){return"("+this.lhs.toString()+" >= "+this.rhs.toString()+")"},k.prototype=new N,k.prototype.constructor=k,k.superclass=N.prototype,k.prototype.init=function(t,e){k.superclass.init.call(this,t,e)},k.prototype.evaluate=function(t){return this.lhs.evaluate(t).number().plus(this.rhs.evaluate(t).number())},k.prototype.toString=function(){return"("+this.lhs.toString()+" + "+this.rhs.toString()+")"},Q.prototype=new N,Q.prototype.constructor=Q,Q.superclass=N.prototype,Q.prototype.init=function(t,e){Q.superclass.init.call(this,t,e)},Q.prototype.evaluate=function(t){return this.lhs.evaluate(t).number().minus(this.rhs.evaluate(t).number())},Q.prototype.toString=function(){return"("+this.lhs.toString()+" - "+this.rhs.toString()+")"},U.prototype=new N,U.prototype.constructor=U,U.superclass=N.prototype,U.prototype.init=function(t,e){U.superclass.init.call(this,t,e)},U.prototype.evaluate=function(t){return this.lhs.evaluate(t).number().multiply(this.rhs.evaluate(t).number())},U.prototype.toString=function(){return"("+this.lhs.toString()+" * "+this.rhs.toString()+")"},P.prototype=new N,P.prototype.constructor=P,P.superclass=N.prototype,P.prototype.init=function(t,e){P.superclass.init.call(this,t,e)},P.prototype.evaluate=function(t){return this.lhs.evaluate(t).number().div(this.rhs.evaluate(t).number())},P.prototype.toString=function(){return"("+this.lhs.toString()+" div "+this.rhs.toString()+")"},G.prototype=new N,G.prototype.constructor=G,G.superclass=N.prototype,G.prototype.init=function(t,e){G.superclass.init.call(this,t,e)},G.prototype.evaluate=function(t){return this.lhs.evaluate(t).number().mod(this.rhs.evaluate(t).number())},G.prototype.toString=function(){return"("+this.lhs.toString()+" mod "+this.rhs.toString()+")"},V.prototype=new N,V.prototype.constructor=V,V.superclass=N.prototype,V.prototype.init=function(t,e){V.superclass.init.call(this,t,e)},V.prototype.evaluate=function(t){return this.lhs.evaluate(t).nodeset().union(this.rhs.evaluate(t).nodeset())},V.prototype.toString=function(){return o(a,[this.lhs,this.rhs]).join(" | ")},H.prototype=new b,H.prototype.constructor=H,H.superclass=b.prototype,H.prototype.init=function(t,e,n){H.superclass.init.call(this),this.filter=t,this.filterPredicates=e,this.locationPath=n};var Y=function(t,e,n,o){if(0===t.length)return n;var s=e.extend({});return i(function(t,e){return s.contextSize=t.length,n=function(t,n){return s.contextNode=t,s.contextPosition=n+1,H.predicateMatches(e,s)},i=[],r(function(t,e){n(t,e)&&i.push(t)},t),i;var n,i},function(t,e){var n=new st;n.addArray(t);var r=n.toArray();return e?r.reverse():r}(n,o),t)};H.getRoot=function(t,e){var n=e[0];if(n&&n.nodeType===m)return n;if(t.virtualRoot)return t.virtualRoot;if(!n)throw new Error("Context node not found when determining document root.");var r=n.ownerDocument;if(r)return r;for(var i=n;null!=i.parentNode;)i=i.parentNode;return i};var z=function(t){var e=String(t.name);return"xmlns"===e?"":"xmlns:"===e.substring(0,6)?e.substring(6,e.length):null};function J(t,e,n){return Y(t.predicates,e,H.applyStep(t,e,n),s(X,t.axis))}function W(t,e,n){return function(t){for(var e=[],n=0;n<t.length;n+=32767){var r=t.slice(n,n+32767);e=u.apply(e,r)}return e}(o(J.bind(null,n,t),e))}function q(t,e){arguments.length>0&&this.init(t,e)}function K(t,e,n){arguments.length>0&&this.init(t,e,n)}H.applyStep=function(t,e,n){if(!n)throw new Error("Context node not found when evaluating XPath step: "+t);var r=[];switch(e.contextNode=n,t.axis){case K.ANCESTOR:if(e.contextNode===e.virtualRoot)break;for(i=e.contextNode.nodeType==p?H.getOwnerElement(e.contextNode):e.contextNode.parentNode;null!=i&&(t.nodeTest.matches(i,e)&&r.push(i),i!==e.virtualRoot);)i=i.parentNode;break;case K.ANCESTORORSELF:for(var i=e.contextNode;null!=i&&(t.nodeTest.matches(i,e)&&r.push(i),i!==e.virtualRoot);i=i.nodeType==p?H.getOwnerElement(i):i.parentNode);break;case K.ATTRIBUTE:var o=e.contextNode.attributes;if(null!=o)for(var s=0;s<o.length;s++){i=o.item(s);t.nodeTest.matches(i,e)&&r.push(i)}break;case K.CHILD:for(i=e.contextNode.firstChild;null!=i;i=i.nextSibling)t.nodeTest.matches(i,e)&&r.push(i);break;case K.DESCENDANT:for(var a=[e.contextNode.firstChild];a.length>0;)for(i=a.pop();null!=i;)t.nodeTest.matches(i,e)&&r.push(i),null!=i.firstChild?(a.push(i.nextSibling),i=i.firstChild):i=i.nextSibling;break;case K.DESCENDANTORSELF:t.nodeTest.matches(e.contextNode,e)&&r.push(e.contextNode);for(a=[e.contextNode.firstChild];a.length>0;)for(i=a.pop();null!=i;)t.nodeTest.matches(i,e)&&r.push(i),null!=i.firstChild?(a.push(i.nextSibling),i=i.firstChild):i=i.nextSibling;break;case K.FOLLOWING:if(e.contextNode===e.virtualRoot)break;a=[];null!=e.contextNode.firstChild?a.unshift(e.contextNode.firstChild):a.unshift(e.contextNode.nextSibling);for(i=e.contextNode.parentNode;null!=i&&i.nodeType!=m&&i!==e.virtualRoot;i=i.parentNode)a.unshift(i.nextSibling);do{for(i=a.pop();null!=i;)t.nodeTest.matches(i,e)&&r.push(i),null!=i.firstChild?(a.push(i.nextSibling),i=i.firstChild):i=i.nextSibling}while(a.length>0);break;case K.FOLLOWINGSIBLING:if(e.contextNode===e.virtualRoot)break;for(i=e.contextNode.nextSibling;null!=i;i=i.nextSibling)t.nodeTest.matches(i,e)&&r.push(i);break;case K.NAMESPACE:var c={};if(e.contextNode.nodeType==d){c.xml=new at("xml",null,B.XML_NAMESPACE_URI,e.contextNode);for(i=e.contextNode;null!=i&&i.nodeType==d;i=i.parentNode)for(s=0;s<i.attributes.length;s++){var l=i.attributes.item(s);null!=(u=z(l))&&null==c[u]&&(c[u]=new at(u,l,l.value,e.contextNode))}for(var u in c){n=c[u];t.nodeTest.matches(n,e)&&r.push(n)}}break;case K.PARENT:i=null,e.contextNode!==e.virtualRoot&&(i=e.contextNode.nodeType==p?H.getOwnerElement(e.contextNode):e.contextNode.parentNode),null!=i&&t.nodeTest.matches(i,e)&&r.push(i);break;case K.PRECEDING:a=null!=e.virtualRoot?[e.virtualRoot]:[j(e.contextNode)];t:for(;a.length>0;)for(i=a.pop();null!=i;){if(i==e.contextNode)break t;t.nodeTest.matches(i,e)&&r.unshift(i),null!=i.firstChild?(a.push(i.nextSibling),i=i.firstChild):i=i.nextSibling}break;case K.PRECEDINGSIBLING:if(e.contextNode===e.virtualRoot)break;for(i=e.contextNode.previousSibling;null!=i;i=i.previousSibling)t.nodeTest.matches(i,e)&&r.push(i);break;case K.SELF:t.nodeTest.matches(e.contextNode,e)&&r.push(e.contextNode)}return r},H.applySteps=function(t,e,n){return i(W.bind(null,e),n,t)},H.prototype.applyFilter=function(t,e){if(!this.filter)return{nodes:[t.contextNode]};var n=this.filter.evaluate(t);if(!pt.instance_of(n,st)){if(null!=this.filterPredicates&&this.filterPredicates.length>0||null!=this.locationPath)throw new Error("Path expression filter must evaluate to a nodeset if predicates or location path are used");return{nonNodes:n}}return{nodes:Y(this.filterPredicates||[],e,n.toUnsortedArray(),!1)}},H.applyLocationPath=function(t,e,n){if(!t)return n;var r=t.absolute?[H.getRoot(e,n)]:n;return H.applySteps(t.steps,e,r)},H.prototype.evaluate=function(t){var e=h(new ct,t),n=this.applyFilter(t,e);if("nonNodes"in n)return n.nonNodes;var r=new st;return r.addArray(H.applyLocationPath(this.locationPath,e,n.nodes)),r},H.predicateMatches=function(t,e){var n=t.evaluate(e);return pt.instance_of(n,rt)?e.contextPosition===n.numberValue():n.booleanValue()},H.predicateString=function(t){return l("[","]",t.toString())},H.predicatesString=function(t){return c("",o(H.predicateString,t))},H.prototype.toString=function(){if(null!=this.filter){var t=a(this.filter);return pt.instance_of(this.filter,nt)?l("'","'",t):null!=this.filterPredicates&&this.filterPredicates.length?l("(",")",t)+H.predicatesString(this.filterPredicates):null!=this.locationPath?t+(this.locationPath.absolute?"":"/")+a(this.locationPath):t}return a(this.locationPath)},H.getOwnerElement=function(t){if(t.ownerElement)return t.ownerElement;try{if(t.selectSingleNode)return t.selectSingleNode("..")}catch(t){}for(var e=(t.nodeType==m?t:t.ownerDocument).getElementsByTagName("*"),n=0;n<e.length;n++)for(var r=e.item(n),i=r.attributes,o=0;o<i.length;o++){if(i.item(o)===t)return r}return null},q.prototype=new Object,q.prototype.constructor=q,q.superclass=Object.prototype,q.prototype.init=function(t,e){this.absolute=t,this.steps=e},q.prototype.toString=function(){return(this.absolute?"/":"")+o(a,this.steps).join("/")},K.prototype=new Object,K.prototype.constructor=K,K.superclass=Object.prototype,K.prototype.init=function(t,e,n){this.axis=t,this.nodeTest=e,this.predicates=n},K.prototype.toString=function(){return K.STEPNAMES[this.axis]+"::"+this.nodeTest.toString()+H.predicatesString(this.predicates)},K.ANCESTOR=0,K.ANCESTORORSELF=1,K.ATTRIBUTE=2,K.CHILD=3,K.DESCENDANT=4,K.DESCENDANTORSELF=5,K.FOLLOWING=6,K.FOLLOWINGSIBLING=7,K.NAMESPACE=8,K.PARENT=9,K.PRECEDING=10,K.PRECEDINGSIBLING=11,K.SELF=12,K.STEPNAMES=i(function(t,e){return t[e[0]]=e[1],t},{},[[K.ANCESTOR,"ancestor"],[K.ANCESTORORSELF,"ancestor-or-self"],[K.ATTRIBUTE,"attribute"],[K.CHILD,"child"],[K.DESCENDANT,"descendant"],[K.DESCENDANTORSELF,"descendant-or-self"],[K.FOLLOWING,"following"],[K.FOLLOWINGSIBLING,"following-sibling"],[K.NAMESPACE,"namespace"],[K.PARENT,"parent"],[K.PRECEDING,"preceding"],[K.PRECEDINGSIBLING,"preceding-sibling"],[K.SELF,"self"]]);var X=[K.ANCESTOR,K.ANCESTORORSELF,K.PARENT,K.PRECEDING,K.PRECEDINGSIBLING];function Z(t,e){arguments.length>0&&this.init(t,e)}function $(t){arguments.length>0&&this.init(t)}function tt(t,e){arguments.length>0&&this.init(t,e)}Z.prototype=new Object,Z.prototype.constructor=Z,Z.superclass=Object.prototype,Z.prototype.init=function(t,e){this.type=t,this.value=e},Z.prototype.toString=function(){return"<unknown nodetest type>"},Z.prototype.matches=function(t,e){console.warn("unknown node test type")},Z.NAMETESTANY=0,Z.NAMETESTPREFIXANY=1,Z.NAMETESTQNAME=2,Z.COMMENT=3,Z.TEXT=4,Z.PI=5,Z.NODE=6,Z.isNodeType=function(t){return function(e){return s(t,e.nodeType)}},Z.makeNodeTestType=function(t,e,n){var r=n||function(){};return r.prototype=new Z(t),r.prototype.constructor=r,h(r.prototype,e),r},Z.makeNodeTypeTest=function(t,e,n){return new(Z.makeNodeTestType(t,{matches:Z.isNodeType(e),toString:(r=n,function(){return r})}));var r},Z.hasPrefix=function(t){return t.prefix||-1!==(t.nodeName||t.tagName).indexOf(":")},Z.isElementOrAttribute=Z.isNodeType([1,2]),Z.nameSpaceMatches=function(t,e,n){var r=n.namespaceURI||"";if(!t)return!r||e.allowAnyNamespaceForNoPrefix&&!Z.hasPrefix(n);var i=e.namespaceResolver.getNamespace(t,e.expressionContextNode);if(null==i)throw new Error("Cannot resolve QName "+t);return i===r},Z.localNameMatches=function(t,e,n){var r=n.localName||n.nodeName;return e.caseInsensitive?t.toLowerCase()===r.toLowerCase():t===r},Z.NameTestPrefixAny=Z.makeNodeTestType(Z.NAMETESTPREFIXANY,{matches:function(t,e){return Z.isElementOrAttribute(t)&&Z.nameSpaceMatches(this.prefix,e,t)},toString:function(){return this.prefix+":*"}},function(t){this.prefix=t}),Z.NameTestQName=Z.makeNodeTestType(Z.NAMETESTQNAME,{matches:function(t,e){return Z.isNodeType([d,p,I])(t)&&Z.nameSpaceMatches(this.prefix,e,t)&&Z.localNameMatches(this.localName,e,t)},toString:function(){return this.name}},function(t){var e=t.split(":");this.name=t,this.prefix=e.length>1?e[0]:null,this.localName=e[e.length>1?1:0]}),Z.PITest=Z.makeNodeTestType(Z.PI,{matches:function(t,e){return Z.isNodeType([g])(t)&&(t.target||t.nodeName)===this.name},toString:function(){return l('processing-instruction("','")',this.name)}},function(t){this.name=t}),Z.nameTestAny=Z.makeNodeTypeTest(Z.NAMETESTANY,[d,p,I],"*"),Z.textTest=Z.makeNodeTypeTest(Z.TEXT,[f,A],"text()"),Z.commentTest=Z.makeNodeTypeTest(Z.COMMENT,[E],"comment()"),Z.nodeTest=Z.makeNodeTypeTest(Z.NODE,[d,p,f,A,g,E,m],"node()"),Z.anyPiTest=Z.makeNodeTypeTest(Z.PI,[g],"processing-instruction()"),$.prototype=new b,$.prototype.constructor=$,$.superclass=b.prototype,$.prototype.init=function(t){this.variable=t},$.prototype.toString=function(){return"$"+this.variable},$.prototype.evaluate=function(t){var e=pt.resolveQName(this.variable,t.namespaceResolver,t.contextNode,!1);if(null==e[0])throw new Error("Cannot resolve QName "+fn);var n=t.variableResolver.getVariable(e[1],e[0]);if(!n)throw At.fromMessage("Undeclared variable: "+this.toString());return n},tt.prototype=new b,tt.prototype.constructor=tt,tt.superclass=b.prototype,tt.prototype.init=function(t,e){this.functionName=t,this.arguments=e},tt.prototype.toString=function(){for(var t=this.functionName+"(",e=0;e<this.arguments.length;e++)e>0&&(t+=", "),t+=this.arguments[e].toString();return t+")"},tt.prototype.evaluate=function(t){var e=ut.getFunctionFromContext(this.functionName,t);if(!e)throw new Error("Unknown function "+this.functionName);var n=[t].concat(this.arguments);return e.apply(t.functionResolver.thisArg,n)};var et=new Object;function nt(t){arguments.length>0&&this.init(t)}function rt(t){arguments.length>0&&this.init(t)}function it(t){arguments.length>0&&this.init(t)}function ot(t){this.init(t)}function st(){this.init()}function at(t,e,n,r){this.isXPathNamespace=!0,this.baseNode=e,this.ownerDocument=r.ownerDocument,this.nodeName=t,this.prefix=t,this.localName=t,this.namespaceURI=null,this.nodeValue=n,this.ownerElement=r,this.nodeType=I}function ct(t,e,n){this.variableResolver=null!=t?t:new lt,this.namespaceResolver=null!=e?e:new ht,this.functionResolver=null!=n?n:new ut}function lt(){}function ut(t){this.thisArg=null!=t?t:dt,this.functions=new Object,this.addStandardFunctions()}function ht(){}et.equals=function(t,e){return t.equals(e)},et.notequal=function(t,e){return t.notequal(e)},et.lessthan=function(t,e){return t.lessthan(e)},et.greaterthan=function(t,e){return t.greaterthan(e)},et.lessthanorequal=function(t,e){return t.lessthanorequal(e)},et.greaterthanorequal=function(t,e){return t.greaterthanorequal(e)},nt.prototype=new b,nt.prototype.constructor=nt,nt.superclass=b.prototype,nt.prototype.init=function(t){this.str=String(t)},nt.prototype.toString=function(){return this.str},nt.prototype.evaluate=function(t){return this},nt.prototype.string=function(){return this},nt.prototype.number=function(){return new rt(this.str)},nt.prototype.bool=function(){return new it(this.str)},nt.prototype.nodeset=function(){throw new Error("Cannot convert string to nodeset")},nt.prototype.stringValue=function(){return this.str},nt.prototype.numberValue=function(){return this.number().numberValue()},nt.prototype.booleanValue=function(){return this.bool().booleanValue()},nt.prototype.equals=function(t){return pt.instance_of(t,it)?this.bool().equals(t):pt.instance_of(t,rt)?this.number().equals(t):pt.instance_of(t,st)?t.compareWithString(this,et.equals):new it(this.str==t.str)},nt.prototype.notequal=function(t){return pt.instance_of(t,it)?this.bool().notequal(t):pt.instance_of(t,rt)?this.number().notequal(t):pt.instance_of(t,st)?t.compareWithString(this,et.notequal):new it(this.str!=t.str)},nt.prototype.lessthan=function(t){return this.number().lessthan(t)},nt.prototype.greaterthan=function(t){return this.number().greaterthan(t)},nt.prototype.lessthanorequal=function(t){return this.number().lessthanorequal(t)},nt.prototype.greaterthanorequal=function(t){return this.number().greaterthanorequal(t)},rt.prototype=new b,rt.prototype.constructor=rt,rt.superclass=b.prototype,rt.prototype.init=function(t){this.num="string"==typeof t?this.parse(t):Number(t)},rt.prototype.numberFormat=/^\s*-?[0-9]*\.?[0-9]+\s*$/,rt.prototype.parse=function(t){return this.numberFormat.test(t)?parseFloat(t):Number.NaN},rt.prototype.toString=function(){var t=this.num.toString();return-1!==t.indexOf("e-")?function(t){for(var e=t.split("e-"),n=e[0].replace(".",""),r=Number(e[1]),i=0;i<r-1;i+=1)n="0"+n;return"0."+n}(t):-1!==t.indexOf("e")?function(t){for(var e=t.split("e"),n=e[0].replace(".",""),r=Number(e[1])+1-n.length,i=0;i<r;i+=1)n+="0";return n}(t):t},rt.prototype.evaluate=function(t){return this},rt.prototype.string=function(){return new nt(this.toString())},rt.prototype.number=function(){return this},rt.prototype.bool=function(){return new it(this.num)},rt.prototype.nodeset=function(){throw new Error("Cannot convert number to nodeset")},rt.prototype.stringValue=function(){return this.string().stringValue()},rt.prototype.numberValue=function(){return this.num},rt.prototype.booleanValue=function(){return this.bool().booleanValue()},rt.prototype.negate=function(){return new rt(-this.num)},rt.prototype.equals=function(t){return pt.instance_of(t,it)?this.bool().equals(t):pt.instance_of(t,nt)?this.equals(t.number()):pt.instance_of(t,st)?t.compareWithNumber(this,et.equals):new it(this.num==t.num)},rt.prototype.notequal=function(t){return pt.instance_of(t,it)?this.bool().notequal(t):pt.instance_of(t,nt)?this.notequal(t.number()):pt.instance_of(t,st)?t.compareWithNumber(this,et.notequal):new it(this.num!=t.num)},rt.prototype.lessthan=function(t){return pt.instance_of(t,st)?t.compareWithNumber(this,et.greaterthan):pt.instance_of(t,it)||pt.instance_of(t,nt)?this.lessthan(t.number()):new it(this.num<t.num)},rt.prototype.greaterthan=function(t){return pt.instance_of(t,st)?t.compareWithNumber(this,et.lessthan):pt.instance_of(t,it)||pt.instance_of(t,nt)?this.greaterthan(t.number()):new it(this.num>t.num)},rt.prototype.lessthanorequal=function(t){return pt.instance_of(t,st)?t.compareWithNumber(this,et.greaterthanorequal):pt.instance_of(t,it)||pt.instance_of(t,nt)?this.lessthanorequal(t.number()):new it(this.num<=t.num)},rt.prototype.greaterthanorequal=function(t){return pt.instance_of(t,st)?t.compareWithNumber(this,et.lessthanorequal):pt.instance_of(t,it)||pt.instance_of(t,nt)?this.greaterthanorequal(t.number()):new it(this.num>=t.num)},rt.prototype.plus=function(t){return new rt(this.num+t.num)},rt.prototype.minus=function(t){return new rt(this.num-t.num)},rt.prototype.multiply=function(t){return new rt(this.num*t.num)},rt.prototype.div=function(t){return new rt(this.num/t.num)},rt.prototype.mod=function(t){return new rt(this.num%t.num)},it.prototype=new b,it.prototype.constructor=it,it.superclass=b.prototype,it.prototype.init=function(t){this.b=Boolean(t)},it.prototype.toString=function(){return this.b.toString()},it.prototype.evaluate=function(t){return this},it.prototype.string=function(){return new nt(this.b)},it.prototype.number=function(){return new rt(this.b)},it.prototype.bool=function(){return this},it.prototype.nodeset=function(){throw new Error("Cannot convert boolean to nodeset")},it.prototype.stringValue=function(){return this.string().stringValue()},it.prototype.numberValue=function(){return this.number().numberValue()},it.prototype.booleanValue=function(){return this.b},it.prototype.not=function(){return new it(!this.b)},it.prototype.equals=function(t){return pt.instance_of(t,nt)||pt.instance_of(t,rt)?this.equals(t.bool()):pt.instance_of(t,st)?t.compareWithBoolean(this,et.equals):new it(this.b==t.b)},it.prototype.notequal=function(t){return pt.instance_of(t,nt)||pt.instance_of(t,rt)?this.notequal(t.bool()):pt.instance_of(t,st)?t.compareWithBoolean(this,et.notequal):new it(this.b!=t.b)},it.prototype.lessthan=function(t){return this.number().lessthan(t)},it.prototype.greaterthan=function(t){return this.number().greaterthan(t)},it.prototype.lessthanorequal=function(t){return this.number().lessthanorequal(t)},it.prototype.greaterthanorequal=function(t){return this.number().greaterthanorequal(t)},it.true_=new it(!0),it.false_=new it(!1),ot.prototype=new Object,ot.prototype.constructor=ot,ot.superclass=Object.prototype,ot.prototype.init=function(t){this.left=null,this.right=null,this.node=t,this.depth=1},ot.prototype.balance=function(){var t=null==this.left?0:this.left.depth,e=null==this.right?0:this.right.depth;if(t>e+1)(null==this.left.left?0:this.left.left.depth)<(null==this.left.right?0:this.left.right.depth)&&this.left.rotateRR(),this.rotateLL();else if(t+1<e){var n=null==this.right.right?0:this.right.right.depth;(null==this.right.left?0:this.right.left.depth)>n&&this.right.rotateLL(),this.rotateRR()}},ot.prototype.rotateLL=function(){var t=this.node,e=this.right;this.node=this.left.node,this.right=this.left,this.left=this.left.left,this.right.left=this.right.right,this.right.right=e,this.right.node=t,this.right.updateInNewLocation(),this.updateInNewLocation()},ot.prototype.rotateRR=function(){var t=this.node,e=this.left;this.node=this.right.node,this.left=this.right,this.right=this.right.right,this.left.right=this.left.left,this.left.left=e,this.left.node=t,this.left.updateInNewLocation(),this.updateInNewLocation()},ot.prototype.updateInNewLocation=function(){this.getDepthFromChildren()},ot.prototype.getDepthFromChildren=function(){this.depth=null==this.node?0:1,null!=this.left&&(this.depth=this.left.depth+1),null!=this.right&&this.depth<=this.right.depth&&(this.depth=this.right.depth+1)},ot.prototype.add=function(t){if(t===this.node)return!1;var e=function(t,e){if(t===e)return 0;if(t.compareDocumentPosition){var n=t.compareDocumentPosition(e);return 1&n||10&n?1:20&n?-1:0}for(var r=0,i=0,o=t;null!=o;o=o.parentNode||o.ownerElement)r++;for(var s=e;null!=s;s=s.parentNode||s.ownerElement)i++;if(r>i){for(;r>i;)t=t.parentNode||t.ownerElement,r--;if(t===e)return 1}else if(i>r){for(;i>r;)e=e.parentNode||e.ownerElement,i--;if(t===e)return-1}for(var a=t.parentNode||t.ownerElement,c=e.parentNode||e.ownerElement;a!==c;)e=c,a=(t=a).parentNode||t.ownerElement,c=e.parentNode||e.ownerElement;var l=ft(t),u=ft(e);if(l&&!u)return-1;if(!l&&u)return 1;if(t.isXPathNamespace){if(t.nodeValue===B.XML_NAMESPACE_URI)return-1;if(!e.isXPathNamespace)return-1;if(e.nodeValue===B.XML_NAMESPACE_URI)return 1}else if(e.isXPathNamespace)return 1;if(a)for(var h=l?a.attributes:a.childNodes,d=h.length,p=t.baseNode||t,f=e.baseNode||e,A=0;A<d;A+=1){var g=h[A];if(g===p)return-1;if(g===f)return 1}throw new Error("Unexpected: could not determine node order")}(t,this.node),n=!1;return-1==e?null==this.left?(this.left=new ot(t),n=!0):(n=this.left.add(t))&&this.balance():1==e&&(null==this.right?(this.right=new ot(t),n=!0):(n=this.right.add(t))&&this.balance()),n&&this.getDepthFromChildren(),n},st.prototype=new b,st.prototype.constructor=st,st.superclass=b.prototype,st.prototype.init=function(){this.tree=null,this.nodes=[],this.size=0},st.prototype.toString=function(){var t=this.first();return null==t?"":this.stringForNode(t)},st.prototype.evaluate=function(t){return this},st.prototype.string=function(){return new nt(this.toString())},st.prototype.stringValue=function(){return this.toString()},st.prototype.number=function(){return new rt(this.string())},st.prototype.numberValue=function(){return Number(this.string())},st.prototype.bool=function(){return new it(this.booleanValue())},st.prototype.booleanValue=function(){return!!this.size},st.prototype.nodeset=function(){return this},st.prototype.stringForNode=function(t){return t.nodeType==m||t.nodeType==d||t.nodeType===w?this.stringForContainerNode(t):t.nodeType===p?t.value||t.nodeValue:t.isNamespaceNode?t.namespace:t.nodeValue},st.prototype.stringForContainerNode=function(t){for(var e="",n=t.firstChild;null!=n;n=n.nextSibling){var r=n.nodeType;1!==r&&3!==r&&4!==r&&9!==r&&11!==r||(e+=this.stringForNode(n))}return e},st.prototype.buildTree=function(){if(!this.tree&&this.nodes.length){this.tree=new ot(this.nodes[0]);for(var t=1;t<this.nodes.length;t+=1)this.tree.add(this.nodes[t])}return this.tree},st.prototype.first=function(){var t=this.buildTree();if(null==t)return null;for(;null!=t.left;)t=t.left;return t.node},st.prototype.add=function(t){for(var e=0;e<this.nodes.length;e+=1)if(t===this.nodes[e])return;this.tree=null,this.nodes.push(t),this.size+=1},st.prototype.addArray=function(t){var e=this;r(function(t){e.add(t)},t)},st.prototype.toArray=function(){var t=[];return this.toArrayRec(this.buildTree(),t),t},st.prototype.toArrayRec=function(t,e){null!=t&&(this.toArrayRec(t.left,e),e.push(t.node),this.toArrayRec(t.right,e))},st.prototype.toUnsortedArray=function(){return this.nodes.slice()},st.prototype.compareWithString=function(t,e){for(var n=this.toUnsortedArray(),r=0;r<n.length;r++){var i=n[r],o=e(new nt(this.stringForNode(i)),t);if(o.booleanValue())return o}return new it(!1)},st.prototype.compareWithNumber=function(t,e){for(var n=this.toUnsortedArray(),r=0;r<n.length;r++){var i=n[r],o=e(new rt(this.stringForNode(i)),t);if(o.booleanValue())return o}return new it(!1)},st.prototype.compareWithBoolean=function(t,e){return e(this.bool(),t)},st.prototype.compareWithNodeSet=function(t,e){for(var n=this.toUnsortedArray(),r=function(t,n){return e(n,t)},i=0;i<n.length;i++){var o=new nt(this.stringForNode(n[i])),s=t.compareWithString(o,r);if(s.booleanValue())return s}return new it(!1)},st.compareWith=function(t){var e=Array.prototype.slice,n=t.length,r=function(){var i=e.call(arguments);return i.length<n?function(t,n){return function(){return n.apply(this,t.concat(e.call(arguments)))}}(i,r):t.apply(this,e.apply(arguments,[0,n]))};return r}(function(t,e){return pt.instance_of(e,nt)?this.compareWithString(e,t):pt.instance_of(e,rt)?this.compareWithNumber(e,t):pt.instance_of(e,it)?this.compareWithBoolean(e,t):this.compareWithNodeSet(e,t)}),st.prototype.equals=st.compareWith(et.equals),st.prototype.notequal=st.compareWith(et.notequal),st.prototype.lessthan=st.compareWith(et.lessthan),st.prototype.greaterthan=st.compareWith(et.greaterthan),st.prototype.lessthanorequal=st.compareWith(et.lessthanorequal),st.prototype.greaterthanorequal=st.compareWith(et.greaterthanorequal),st.prototype.union=function(t){var e=new st;return e.addArray(this.toUnsortedArray()),e.addArray(t.toUnsortedArray()),e},at.prototype=new Object,at.prototype.constructor=at,at.superclass=Object.prototype,at.prototype.toString=function(){return'{ "'+this.prefix+'", "'+this.namespaceURI+'" }'},ct.prototype=new Object,ct.prototype.constructor=ct,ct.superclass=Object.prototype,ct.prototype.extend=function(t){return h(new ct,this,t)},lt.prototype=new Object,lt.prototype.constructor=lt,lt.superclass=Object.prototype,lt.prototype.getVariable=function(t,e){return null},ut.prototype=new Object,ut.prototype.constructor=ut,ut.superclass=Object.prototype,ut.prototype.addStandardFunctions=function(){this.functions["{}last"]=dt.last,this.functions["{}position"]=dt.position,this.functions["{}count"]=dt.count,this.functions["{}id"]=dt.id,this.functions["{}local-name"]=dt.localName,this.functions["{}namespace-uri"]=dt.namespaceURI,this.functions["{}name"]=dt.name,this.functions["{}string"]=dt.string,this.functions["{}concat"]=dt.concat,this.functions["{}starts-with"]=dt.startsWith,this.functions["{}contains"]=dt.contains,this.functions["{}substring-before"]=dt.substringBefore,this.functions["{}substring-after"]=dt.substringAfter,this.functions["{}substring"]=dt.substring,this.functions["{}string-length"]=dt.stringLength,this.functions["{}normalize-space"]=dt.normalizeSpace,this.functions["{}translate"]=dt.translate,this.functions["{}boolean"]=dt.boolean_,this.functions["{}not"]=dt.not,this.functions["{}true"]=dt.true_,this.functions["{}false"]=dt.false_,this.functions["{}lang"]=dt.lang,this.functions["{}number"]=dt.number,this.functions["{}sum"]=dt.sum,this.functions["{}floor"]=dt.floor,this.functions["{}ceiling"]=dt.ceiling,this.functions["{}round"]=dt.round},ut.prototype.addFunction=function(t,e,n){this.functions["{"+t+"}"+e]=n},ut.getFunctionFromContext=function(t,e){var n=pt.resolveQName(t,e.namespaceResolver,e.contextNode,!1);if(null===n[0])throw new Error("Cannot resolve QName "+name);return e.functionResolver.getFunction(n[1],n[0])},ut.prototype.getFunction=function(t,e){return this.functions["{"+e+"}"+t]},ht.prototype=new Object,ht.prototype.constructor=ht,ht.superclass=Object.prototype,ht.prototype.getNamespace=function(t,e){if("xml"==t)return B.XML_NAMESPACE_URI;if("xmlns"==t)return B.XMLNS_NAMESPACE_URI;for(e.nodeType==m?e=e.documentElement:e.nodeType==p?e=H.getOwnerElement(e):e.nodeType!=d&&(e=e.parentNode);null!=e&&e.nodeType==d;){for(var n=e.attributes,r=0;r<n.length;r++){var i=n.item(r),o=i.name||i.nodeName;if("xmlns"===o&&""===t||o==="xmlns:"+t)return String(i.value||i.nodeValue)}e=e.parentNode}return null};var dt=new Object;dt.last=function(t){if(1!=arguments.length)throw new Error("Function last expects ()");return new rt(t.contextSize)},dt.position=function(t){if(1!=arguments.length)throw new Error("Function position expects ()");return new rt(t.contextPosition)},dt.count=function(){var t,e=arguments[0];if(2!=arguments.length||!pt.instance_of(t=arguments[1].evaluate(e),st))throw new Error("Function count expects (node-set)");return new rt(t.size)},dt.id=function(){var t,e=arguments[0];if(2!=arguments.length)throw new Error("Function id expects (object)");t=arguments[1].evaluate(e);for(var n=(t=pt.instance_of(t,st)?t.toArray().join(" "):t.stringValue()).split(/[\x0d\x0a\x09\x20]+/),r=new st,i=e.contextNode.nodeType==m?e.contextNode:e.contextNode.ownerDocument,o=0;o<n.length;o++){var s;null!=(s=i.getElementById?i.getElementById(n[o]):pt.getElementById(i,n[o]))&&r.add(s)}return r},dt.localName=function(t,e){var n;if(1==arguments.length)n=t.contextNode;else{if(2!=arguments.length)throw new Error("Function local-name expects (node-set?)");n=e.evaluate(t).first()}return new nt(null==n?"":n.localName||n.baseName||n.target||n.nodeName||"")},dt.namespaceURI=function(){var t,e=arguments[0];if(1==arguments.length)t=e.contextNode;else{if(2!=arguments.length)throw new Error("Function namespace-uri expects (node-set?)");t=arguments[1].evaluate(e).first()}return new nt(null==t?"":t.namespaceURI||"")},dt.name=function(){var t,e=arguments[0];if(1==arguments.length)t=e.contextNode;else{if(2!=arguments.length)throw new Error("Function name expects (node-set?)");t=arguments[1].evaluate(e).first()}return null==t?new nt(""):t.nodeType==d?new nt(t.nodeName):t.nodeType==p?new nt(t.name||t.nodeName):t.nodeType===g?new nt(t.target||t.nodeName):null==t.localName?new nt(""):new nt(t.localName)},dt.string=function(){var t=arguments[0];if(1==arguments.length)return new nt(st.prototype.stringForNode(t.contextNode));if(2==arguments.length)return arguments[1].evaluate(t).string();throw new Error("Function string expects (object?)")},dt.concat=function(t){if(arguments.length<3)throw new Error("Function concat expects (string, string[, string]*)");for(var e="",n=1;n<arguments.length;n++)e+=arguments[n].evaluate(t).stringValue();return new nt(e)},dt.startsWith=function(){var t=arguments[0];if(3!=arguments.length)throw new Error("Function startsWith expects (string, string)");var e=arguments[1].evaluate(t).stringValue(),n=arguments[2].evaluate(t).stringValue();return new it(e.substring(0,n.length)==n)},dt.contains=function(){var t=arguments[0];if(3!=arguments.length)throw new Error("Function contains expects (string, string)");var e=arguments[1].evaluate(t).stringValue(),n=arguments[2].evaluate(t).stringValue();return new it(-1!==e.indexOf(n))},dt.substringBefore=function(){var t=arguments[0];if(3!=arguments.length)throw new Error("Function substring-before expects (string, string)");var e=arguments[1].evaluate(t).stringValue(),n=arguments[2].evaluate(t).stringValue();return new nt(e.substring(0,e.indexOf(n)))},dt.substringAfter=function(){var t=arguments[0];if(3!=arguments.length)throw new Error("Function substring-after expects (string, string)");var e=arguments[1].evaluate(t).stringValue(),n=arguments[2].evaluate(t).stringValue();if(0==n.length)return new nt(e);var r=e.indexOf(n);return new nt(-1==r?"":e.substring(r+n.length))},dt.substring=function(){var t=arguments[0];if(3!=arguments.length&&4!=arguments.length)throw new Error("Function substring expects (string, number, number?)");var e=arguments[1].evaluate(t).stringValue(),n=Math.round(arguments[2].evaluate(t).numberValue())-1,r=4==arguments.length?n+Math.round(arguments[3].evaluate(t).numberValue()):void 0;return new nt(e.substring(n,r))},dt.stringLength=function(){var t,e=arguments[0];if(1==arguments.length)t=st.prototype.stringForNode(e.contextNode);else{if(2!=arguments.length)throw new Error("Function string-length expects (string?)");t=arguments[1].evaluate(e).stringValue()}return new rt(t.length)},dt.normalizeSpace=function(){var t,e=arguments[0];if(1==arguments.length)t=st.prototype.stringForNode(e.contextNode);else{if(2!=arguments.length)throw new Error("Function normalize-space expects (string?)");t=arguments[1].evaluate(e).stringValue()}for(var n=0,r=t.length-1;pt.isSpace(t.charCodeAt(r));)r--;for(var i="";n<=r&&pt.isSpace(t.charCodeAt(n));)n++;for(;n<=r;)if(pt.isSpace(t.charCodeAt(n)))for(i+=" ";n<=r&&pt.isSpace(t.charCodeAt(n));)n++;else i+=t.charAt(n),n++;return new nt(i)},dt.translate=function(t,e,n,r){if(4!=arguments.length)throw new Error("Function translate expects (string, string, string)");var s=e.evaluate(t).stringValue(),a=n.evaluate(t).stringValue(),l=r.evaluate(t).stringValue(),u=i(function(t,e,n){return e in t||(t[e]=n>l.length?"":l[n]),t},{},a);return new nt(c("",o(function(t){return t in u?u[t]:t},s)))},dt.boolean_=function(){var t=arguments[0];if(2!=arguments.length)throw new Error("Function boolean expects (object)");return arguments[1].evaluate(t).bool()},dt.not=function(t,e){if(2!=arguments.length)throw new Error("Function not expects (object)");return e.evaluate(t).bool().not()},dt.true_=function(){if(1!=arguments.length)throw new Error("Function true expects ()");return it.true_},dt.false_=function(){if(1!=arguments.length)throw new Error("Function false expects ()");return it.false_},dt.lang=function(){var t,e=arguments[0];if(2!=arguments.length)throw new Error("Function lang expects (string)");for(var n=e.contextNode;null!=n&&n.nodeType!=m;n=n.parentNode){var r=n.getAttributeNS(B.XML_NAMESPACE_URI,"lang");if(null!=r){t=String(r);break}}if(null==t)return it.false_;var i=arguments[1].evaluate(e).stringValue();return new it(t.substring(0,i.length)==i&&(t.length==i.length||"-"==t.charAt(i.length)))},dt.number=function(){var t=arguments[0];if(1!=arguments.length&&2!=arguments.length)throw new Error("Function number expects (object?)");return 1==arguments.length?new rt(st.prototype.stringForNode(t.contextNode)):arguments[1].evaluate(t).number()},dt.sum=function(){var t,e=arguments[0];if(2!=arguments.length||!pt.instance_of(t=arguments[1].evaluate(e),st))throw new Error("Function sum expects (node-set)");t=t.toUnsortedArray();for(var n=0,r=0;r<t.length;r++)n+=new rt(st.prototype.stringForNode(t[r])).numberValue();return new rt(n)},dt.floor=function(){var t=arguments[0];if(2!=arguments.length)throw new Error("Function floor expects (number)");return new rt(Math.floor(arguments[1].evaluate(t).numberValue()))},dt.ceiling=function(){var t=arguments[0];if(2!=arguments.length)throw new Error("Function ceiling expects (number)");return new rt(Math.ceil(arguments[1].evaluate(t).numberValue()))},dt.round=function(){var t=arguments[0];if(2!=arguments.length)throw new Error("Function round expects (number)");return new rt(Math.round(arguments[1].evaluate(t).numberValue()))};var pt=new Object,ft=function(t){return t&&(t.nodeType===p||t.ownerElement||t.isXPathNamespace)};pt.splitQName=function(t){var e=t.indexOf(":");return-1==e?[null,t]:[t.substring(0,e),t.substring(e+1)]},pt.resolveQName=function(t,e,n,r){var i=pt.splitQName(t);return null!=i[0]?i[0]=e.getNamespace(i[0],n):r?(i[0]=e.getNamespace("",n),null==i[0]&&(i[0]="")):i[0]="",i},pt.isSpace=function(t){return 9==t||13==t||10==t||32==t},pt.isLetter=function(t){return t>=65&&t<=90||t>=97&&t<=122||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=255||t>=256&&t<=305||t>=308&&t<=318||t>=321&&t<=328||t>=330&&t<=382||t>=384&&t<=451||t>=461&&t<=496||t>=500&&t<=501||t>=506&&t<=535||t>=592&&t<=680||t>=699&&t<=705||902==t||t>=904&&t<=906||908==t||t>=910&&t<=929||t>=931&&t<=974||t>=976&&t<=982||986==t||988==t||990==t||992==t||t>=994&&t<=1011||t>=1025&&t<=1036||t>=1038&&t<=1103||t>=1105&&t<=1116||t>=1118&&t<=1153||t>=1168&&t<=1220||t>=1223&&t<=1224||t>=1227&&t<=1228||t>=1232&&t<=1259||t>=1262&&t<=1269||t>=1272&&t<=1273||t>=1329&&t<=1366||1369==t||t>=1377&&t<=1414||t>=1488&&t<=1514||t>=1520&&t<=1522||t>=1569&&t<=1594||t>=1601&&t<=1610||t>=1649&&t<=1719||t>=1722&&t<=1726||t>=1728&&t<=1742||t>=1744&&t<=1747||1749==t||t>=1765&&t<=1766||t>=2309&&t<=2361||2365==t||t>=2392&&t<=2401||t>=2437&&t<=2444||t>=2447&&t<=2448||t>=2451&&t<=2472||t>=2474&&t<=2480||2482==t||t>=2486&&t<=2489||t>=2524&&t<=2525||t>=2527&&t<=2529||t>=2544&&t<=2545||t>=2565&&t<=2570||t>=2575&&t<=2576||t>=2579&&t<=2600||t>=2602&&t<=2608||t>=2610&&t<=2611||t>=2613&&t<=2614||t>=2616&&t<=2617||t>=2649&&t<=2652||2654==t||t>=2674&&t<=2676||t>=2693&&t<=2699||2701==t||t>=2703&&t<=2705||t>=2707&&t<=2728||t>=2730&&t<=2736||t>=2738&&t<=2739||t>=2741&&t<=2745||2749==t||2784==t||t>=2821&&t<=2828||t>=2831&&t<=2832||t>=2835&&t<=2856||t>=2858&&t<=2864||t>=2866&&t<=2867||t>=2870&&t<=2873||2877==t||t>=2908&&t<=2909||t>=2911&&t<=2913||t>=2949&&t<=2954||t>=2958&&t<=2960||t>=2962&&t<=2965||t>=2969&&t<=2970||2972==t||t>=2974&&t<=2975||t>=2979&&t<=2980||t>=2984&&t<=2986||t>=2990&&t<=2997||t>=2999&&t<=3001||t>=3077&&t<=3084||t>=3086&&t<=3088||t>=3090&&t<=3112||t>=3114&&t<=3123||t>=3125&&t<=3129||t>=3168&&t<=3169||t>=3205&&t<=3212||t>=3214&&t<=3216||t>=3218&&t<=3240||t>=3242&&t<=3251||t>=3253&&t<=3257||3294==t||t>=3296&&t<=3297||t>=3333&&t<=3340||t>=3342&&t<=3344||t>=3346&&t<=3368||t>=3370&&t<=3385||t>=3424&&t<=3425||t>=3585&&t<=3630||3632==t||t>=3634&&t<=3635||t>=3648&&t<=3653||t>=3713&&t<=3714||3716==t||t>=3719&&t<=3720||3722==t||3725==t||t>=3732&&t<=3735||t>=3737&&t<=3743||t>=3745&&t<=3747||3749==t||3751==t||t>=3754&&t<=3755||t>=3757&&t<=3758||3760==t||t>=3762&&t<=3763||3773==t||t>=3776&&t<=3780||t>=3904&&t<=3911||t>=3913&&t<=3945||t>=4256&&t<=4293||t>=4304&&t<=4342||4352==t||t>=4354&&t<=4355||t>=4357&&t<=4359||4361==t||t>=4363&&t<=4364||t>=4366&&t<=4370||4412==t||4414==t||4416==t||4428==t||4430==t||4432==t||t>=4436&&t<=4437||4441==t||t>=4447&&t<=4449||4451==t||4453==t||4455==t||4457==t||t>=4461&&t<=4462||t>=4466&&t<=4467||4469==t||4510==t||4520==t||4523==t||t>=4526&&t<=4527||t>=4535&&t<=4536||4538==t||t>=4540&&t<=4546||4587==t||4592==t||4601==t||t>=7680&&t<=7835||t>=7840&&t<=7929||t>=7936&&t<=7957||t>=7960&&t<=7965||t>=7968&&t<=8005||t>=8008&&t<=8013||t>=8016&&t<=8023||8025==t||8027==t||8029==t||t>=8031&&t<=8061||t>=8064&&t<=8116||t>=8118&&t<=8124||8126==t||t>=8130&&t<=8132||t>=8134&&t<=8140||t>=8144&&t<=8147||t>=8150&&t<=8155||t>=8160&&t<=8172||t>=8178&&t<=8180||t>=8182&&t<=8188||8486==t||t>=8490&&t<=8491||8494==t||t>=8576&&t<=8578||t>=12353&&t<=12436||t>=12449&&t<=12538||t>=12549&&t<=12588||t>=44032&&t<=55203||t>=19968&&t<=40869||12295==t||t>=12321&&t<=12329},pt.isNCNameChar=function(t){return t>=48&&t<=57||t>=1632&&t<=1641||t>=1776&&t<=1785||t>=2406&&t<=2415||t>=2534&&t<=2543||t>=2662&&t<=2671||t>=2790&&t<=2799||t>=2918&&t<=2927||t>=3047&&t<=3055||t>=3174&&t<=3183||t>=3302&&t<=3311||t>=3430&&t<=3439||t>=3664&&t<=3673||t>=3792&&t<=3801||t>=3872&&t<=3881||46==t||45==t||95==t||pt.isLetter(t)||t>=768&&t<=837||t>=864&&t<=865||t>=1155&&t<=1158||t>=1425&&t<=1441||t>=1443&&t<=1465||t>=1467&&t<=1469||1471==t||t>=1473&&t<=1474||1476==t||t>=1611&&t<=1618||1648==t||t>=1750&&t<=1756||t>=1757&&t<=1759||t>=1760&&t<=1764||t>=1767&&t<=1768||t>=1770&&t<=1773||t>=2305&&t<=2307||2364==t||t>=2366&&t<=2380||2381==t||t>=2385&&t<=2388||t>=2402&&t<=2403||t>=2433&&t<=2435||2492==t||2494==t||2495==t||t>=2496&&t<=2500||t>=2503&&t<=2504||t>=2507&&t<=2509||2519==t||t>=2530&&t<=2531||2562==t||2620==t||2622==t||2623==t||t>=2624&&t<=2626||t>=2631&&t<=2632||t>=2635&&t<=2637||t>=2672&&t<=2673||t>=2689&&t<=2691||2748==t||t>=2750&&t<=2757||t>=2759&&t<=2761||t>=2763&&t<=2765||t>=2817&&t<=2819||2876==t||t>=2878&&t<=2883||t>=2887&&t<=2888||t>=2891&&t<=2893||t>=2902&&t<=2903||t>=2946&&t<=2947||t>=3006&&t<=3010||t>=3014&&t<=3016||t>=3018&&t<=3021||3031==t||t>=3073&&t<=3075||t>=3134&&t<=3140||t>=3142&&t<=3144||t>=3146&&t<=3149||t>=3157&&t<=3158||t>=3202&&t<=3203||t>=3262&&t<=3268||t>=3270&&t<=3272||t>=3274&&t<=3277||t>=3285&&t<=3286||t>=3330&&t<=3331||t>=3390&&t<=3395||t>=3398&&t<=3400||t>=3402&&t<=3405||3415==t||3633==t||t>=3636&&t<=3642||t>=3655&&t<=3662||3761==t||t>=3764&&t<=3769||t>=3771&&t<=3772||t>=3784&&t<=3789||t>=3864&&t<=3865||3893==t||3895==t||3897==t||3902==t||3903==t||t>=3953&&t<=3972||t>=3974&&t<=3979||t>=3984&&t<=3989||3991==t||t>=3993&&t<=4013||t>=4017&&t<=4023||4025==t||t>=8400&&t<=8412||8417==t||t>=12330&&t<=12335||12441==t||12442==t||183==t||720==t||721==t||903==t||1600==t||3654==t||3782==t||12293==t||t>=12337&&t<=12341||t>=12445&&t<=12446||t>=12540&&t<=12542},pt.coalesceText=function(t){for(var e=t.firstChild;null!=e;e=e.nextSibling)if(e.nodeType==f||e.nodeType==A){var n=e.nodeValue,r=e;for(e=e.nextSibling;null!=e&&(e.nodeType==f||e.nodeType==A);){n+=e.nodeValue;var i=e;e=e.nextSibling,i.parentNode.removeChild(i)}if(r.nodeType==A){var o=r.parentNode;if(null==r.nextSibling)o.removeChild(r),o.appendChild(o.ownerDocument.createTextNode(n));else{var s=r.nextSibling;o.removeChild(r),o.insertBefore(o.ownerDocument.createTextNode(n),s)}}else r.nodeValue=n;if(null==e)break}else e.nodeType==d&&pt.coalesceText(e)},pt.instance_of=function(t,e){for(;null!=t;){if(t.constructor===e)return!0;if(t===Object)return!1;t=t.constructor.superclass}return!1},pt.getElementById=function(t,e){if(t.nodeType==d&&(t.getAttribute("id")==e||t.getAttributeNS(null,"id")==e))return t;for(var n=t.firstChild;null!=n;n=n.nextSibling){var r=pt.getElementById(n,e);if(null!=r)return r}return null};var At=function(){function t(e,n,r){var i=Error.call(this,function(e,n){var r=n?": "+n.toString():"";switch(e){case t.INVALID_EXPRESSION_ERR:return"Invalid expression"+r;case t.TYPE_ERR:return"Type error"+r}return null}(e,n)||r);return i.code=e,i.exception=n,i}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.superclass=Error,t.prototype.toString=function(){return this.message},t.fromMessage=function(e,n){return new t(null,n,e)},t.INVALID_EXPRESSION_ERR=51,t.TYPE_ERR=52,t}();function gt(t,e,n){this.xpath=n.parse(t),this.context=new ct,this.context.namespaceResolver=new Et(e)}function Et(t){this.xpathNSResolver=t}function mt(t){this.node=t,this.namespaceResolver=new ht}function yt(t,e){switch(e==yt.ANY_TYPE&&(t.constructor===nt?e=yt.STRING_TYPE:t.constructor===rt?e=yt.NUMBER_TYPE:t.constructor===it?e=yt.BOOLEAN_TYPE:t.constructor===st&&(e=yt.UNORDERED_NODE_ITERATOR_TYPE)),this.resultType=e,e){case yt.NUMBER_TYPE:return void(this.numberValue=t.numberValue());case yt.STRING_TYPE:return void(this.stringValue=t.stringValue());case yt.BOOLEAN_TYPE:return void(this.booleanValue=t.booleanValue());case yt.ANY_UNORDERED_NODE_TYPE:case yt.FIRST_ORDERED_NODE_TYPE:if(t.constructor===st)return void(this.singleNodeValue=t.first());break;case yt.UNORDERED_NODE_ITERATOR_TYPE:case yt.ORDERED_NODE_ITERATOR_TYPE:if(t.constructor===st)return this.invalidIteratorState=!1,this.nodes=t.toArray(),void(this.iteratorIndex=0);break;case yt.UNORDERED_NODE_SNAPSHOT_TYPE:case yt.ORDERED_NODE_SNAPSHOT_TYPE:if(t.constructor===st)return this.nodes=t.toArray(),void(this.snapshotLength=this.nodes.length)}throw new At(At.TYPE_ERR)}function wt(t,e){t.createExpression=function(t,n){try{return new gt(t,n,e)}catch(t){throw new At(At.INVALID_EXPRESSION_ERR,t)}},t.createNSResolver=function(t){return new mt(t)},t.evaluate=function(n,r,i,o,s){if(o<0||o>9)throw{code:0,toString:function(){return"Request type not supported"}};return t.createExpression(n,i,e).evaluate(r,o,s)}}gt.prototype={},gt.prototype.constructor=gt,gt.superclass=Object.prototype,gt.getOwnerDocument=function(t){return t.nodeType===m?t:t.ownerDocument},gt.detectHtmlDom=function(t){if(!t)return!1;var e=gt.getOwnerDocument(t);try{return e.implementation.hasFeature("HTML","2.0")}catch(t){return!0}},gt.prototype.evaluate=function(t,e,n){return this.context.expressionContextNode=t,this.context.caseInsensitive=gt.detectHtmlDom(t),new yt(this.xpath.evaluate(this.context),e)},Et.prototype={},Et.prototype.constructor=Et,Et.superclass=Object.prototype,Et.prototype.getNamespace=function(t,e){return null==this.xpathNSResolver?null:this.xpathNSResolver.lookupNamespaceURI(t)},mt.prototype={},mt.prototype.constructor=mt,mt.superclass=Object.prototype,mt.prototype.lookupNamespaceURI=function(t){return this.namespaceResolver.getNamespace(t,this.node)},yt.prototype={},yt.prototype.constructor=yt,yt.superclass=Object.prototype,yt.prototype.iterateNext=function(){if(this.resultType!=yt.UNORDERED_NODE_ITERATOR_TYPE&&this.resultType!=yt.ORDERED_NODE_ITERATOR_TYPE)throw new At(At.TYPE_ERR);return this.nodes[this.iteratorIndex++]},yt.prototype.snapshotItem=function(t){if(this.resultType!=yt.UNORDERED_NODE_SNAPSHOT_TYPE&&this.resultType!=yt.ORDERED_NODE_SNAPSHOT_TYPE)throw new At(At.TYPE_ERR);return this.nodes[t]},yt.ANY_TYPE=0,yt.NUMBER_TYPE=1,yt.STRING_TYPE=2,yt.BOOLEAN_TYPE=3,yt.UNORDERED_NODE_ITERATOR_TYPE=4,yt.ORDERED_NODE_ITERATOR_TYPE=5,yt.UNORDERED_NODE_SNAPSHOT_TYPE=6,yt.ORDERED_NODE_SNAPSHOT_TYPE=7,yt.ANY_UNORDERED_NODE_TYPE=8,yt.FIRST_ORDERED_NODE_TYPE=9;try{var It=!0;try{document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null)&&(It=!1)}catch(t){}It&&wt(document,new C)}catch(t){}wt(t,new C),function(){var e=new C,n=new ht,r=new ut,i=new lt;function o(t){return{getNamespace:function(e,r){return t(e,r)||n.getNamespace(e,r)}}}function s(t){return t&&"function"==typeof t.getNamespace?o((e=t).getNamespace.bind(e)):"function"==typeof t?o(t):"object"==typeof t?function(t){return o(function(e){return t[e]})}(t):n;var e}function a(t){if(null==t||t instanceof nt||t instanceof it||t instanceof rt||t instanceof st)return t;switch(typeof t){case"string":return new nt(t);case"boolean":return new it(t);case"number":return new rt(t)}var e=new st;return e.addArray([].concat(t)),e}function c(t){return{getFunction:function(e,n){var i=t(e,n);return i?function(t){return function(e){var n=Array.prototype.slice.call(arguments,1).map(function(t){return t.evaluate(e)});return a(t.apply(this,[].concat(e,n)))}}(i):r.getFunction(e,n)}}}function l(t){return t&&"function"==typeof t.getFunction?c((e=t).getFunction.bind(e)):"function"==typeof t?c(t):"object"==typeof t?function(t){return c(function(e){return t[e]})}(t):r;var e}function u(t){return{getVariable:function(e,n){return a(t(e,n))}}}function h(t,e,n){t in n&&(e[t]=n[t])}function d(t){var e=new ct;return t?(e.namespaceResolver=s(t.namespaces),e.functionResolver=l(t.functions),e.variableResolver=function(t){if(t){if("function"==typeof t.getVariable)return u(t.getVariable.bind(t));if("function"==typeof t)return u(t);if("object"==typeof t)return u(function(e){return t[e]})}return i}(t.variables),e.expressionContextNode=t.node,h("allowAnyNamespaceForNoPrefix",e,t),h("isHtml",e,t)):e.namespaceResolver=n,e}var p={evaluate:function(t){return function(t,e){var n=d(e);return t.evaluate(n)}(this.expression,t)},evaluateNumber:function(t){return this.evaluate(t).numberValue()},evaluateString:function(t){return this.evaluate(t).stringValue()},evaluateBoolean:function(t){return this.evaluate(t).booleanValue()},evaluateNodeSet:function(t){return this.evaluate(t).nodeset()},select:function(t){return this.evaluateNodeSet(t).toArray()},select1:function(t){return this.select(t)[0]}};t.parse=function(t){var n=e.parse(t);return Object.create(p,{expression:{value:n}})}}(),h(t,{XPath:B,XPathParser:C,XPathResult:yt,Step:K,PathExpr:H,NodeTest:Z,LocationPath:q,OrOperation:S,AndOperation:v,BarOperation:V,EqualsOperation:_,NotEqualOperation:L,LessThanOperation:x,GreaterThanOperation:R,LessThanOrEqualOperation:F,GreaterThanOrEqualOperation:O,PlusOperation:k,MinusOperation:Q,MultiplyOperation:U,DivOperation:P,ModOperation:G,UnaryMinusOperation:M,FunctionCall:tt,VariableReference:$,XPathContext:ct,XNodeSet:st,XBoolean:it,XString:nt,XNumber:rt,NamespaceResolver:ht,FunctionResolver:ut,VariableResolver:lt,Utilities:pt}),t.select=function(e,n,r){return t.selectWithResolver(e,n,null,r)},t.useNamespaces=function(e){var n={mappings:e||{},lookupNamespaceURI:function(t){return this.mappings[t]}};return function(e,r,i){return t.selectWithResolver(e,r,n,i)}},t.selectWithResolver=function(t,e,n,r){var i=new gt(t,n,new C),o=yt.ANY_TYPE,s=i.evaluate(e,o,null);return s.resultType==yt.STRING_TYPE?s=s.stringValue:s.resultType==yt.NUMBER_TYPE?s=s.numberValue:s.resultType==yt.BOOLEAN_TYPE?s=s.booleanValue:(s=s.nodes,r&&(s=s[0])),s},t.select1=function(e,n){return t.select(e,n,!0)};var Ct=function(t){return function(e){return n(e)&&e.nodeType===t}};h(t,{isNodeLike:n,isArrayOfNodes:function(t){return Array.isArray(t)&&t.every(n)},isElement:Ct(d),isAttribute:Ct(p),isTextNode:Ct(f),isCDATASection:Ct(A),isProcessingInstruction:Ct(g),isComment:Ct(E),isDocumentNode:Ct(m),isDocumentTypeNode:Ct(y),isDocumentFragment:Ct(w)})}(e)},3765:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.possibleElisions=e.simpleRegularExpression=e.ADDRESS_BOUNDARY=e.padGroup=e.groupPossibilities=void 0;var s=o(n(630)),a=n(7604);function c(t){return a.sprintf("(%s)",t.join("|"))}function l(t){return t.length<4?a.sprintf("0{0,%d}%s",4-t.length,t):t}e.groupPossibilities=c,e.padGroup=l,e.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]",e.simpleRegularExpression=function(t){var e=[];t.forEach(function(t,n){0===parseInt(t,16)&&e.push(n)});var n=e.map(function(e){return t.map(function(t,n){if(n===e){var r=0===n||n===s.GROUPS-1?":":"";return c([l(t),r])}return l(t)}).join(":")});return n.push(t.map(l).join(":")),c(n)},e.possibleElisions=function(t,e,n){var r=e?"":":",i=n?"":":",o=[];e||n||o.push("::"),e&&n&&o.push(""),(n&&!e||!n&&e)&&o.push(":"),o.push(a.sprintf("%s(:0{1,4}){1,%d}",r,t-1)),o.push(a.sprintf("(0{1,4}:){1,%d}%s",t-1,i)),o.push(a.sprintf("(0{1,4}:){%d}0{1,4}",t-1));for(var s=1;s<t-1;s++)for(var l=1;l<t-s;l++)o.push(a.sprintf("(0{1,4}:){%d}:(0{1,4}:){%d}0{1,4}",l,t-l-s-1));return c(o)}},3859:(t,e,n)=>{"use strict";n.r(e),n.d(e,{DEFAULT_LOG_CONFIG:()=>l,EVENT_TYPES:()=>s,LOGGING_ENDPOINTS:()=>r,LOG_CONFIG_STORAGE_KEY:()=>u,LOG_LEVEL:()=>a,LOG_LEVEL_MAP:()=>c,LOG_SOURCES:()=>o,LOG_TYPES:()=>i});var r={DIAGNOSTIC_LOGGING:"http://localhost:8001/api/logs"},i={BACKGROUND:"reclaim_browser_extension.BackgroundProcess",CONTENT:"reclaim_browser_extension.ContentScript",POPUP:"reclaim_browser_extension.Popup",INIT:"reclaim_browser_extension.Initialization",VERIFICATION:"reclaim_browser_extension.Verification",FETCH_DATA:"reclaim_browser_extension.FetchData",PROVIDER_DATA:"reclaim_browser_extension.ProviderData",CLAIM_CREATION:"reclaim_browser_extension.ClaimCreation",PROOF_GENERATION:"reclaim_browser_extension.ProofGeneration",PROOF_SUBMISSION:"reclaim_browser_extension.ProofSubmission",PROOF_VERIFICATION:"reclaim_browser_extension.ProofVerification",OFFSCREEN:"reclaim_browser_extension.Offscreen"},o={BACKGROUND:"background",CONTENT:"content",OFFSCREEN:"offscreen",POPUP:"popup",INJECTION:"injection"},s={IS_RECLAIM_EXTENSION_SDK:"IS_RECLAIM_EXTENSION_SDK",VERIFICATION_FLOW_STARTED:"VERIFICATION_FLOW_STARTED",RECLAIM_VERIFICATION_DISMISSED:"RECLAIM_VERIFICATION_DISMISSED",RECLAIM_VERIFICATION_PROVIDER_LOAD_EXCEPTION:"RECLAIM_VERIFICATION_PROVIDER_LOAD_EXCEPTION",REQUEST_MATCHED:"REQUEST_MATCHED",RESPONSE_MATCH_FAILED:"RESPONSE_MATCH_FAILED",X_PATH_MATCH_REQUIREMENT_FAILED:"X_PATH_MATCH_REQUIREMENT_FAILED",JSON_PATH_MATCH_REQUIREMENT_FAILED:"JSON_PATH_MATCH_REQUIREMENT_FAILED",REGEX_MATCH_REQUIREMENT_FAILED:"REGEX_MATCH_REQUIREMENT_FAILED",FILTERED_REQUEST_FOUND:"FILTERED_REQUEST_FOUND",FILTER_REQUEST_ERROR:"FILTER_REQUEST_ERROR",STARTING_CLAIM_CREATION:"STARTING_CLAIM_CREATION",CLAIM_CREATION_STARTED:"CLAIM_CREATION_STARTED",CLAIM_CREATION_SUCCESS:"CLAIM_CREATION_SUCCESS",CLAIM_CREATION_FAILED:"CLAIM_CREATION_FAILED",CLAIM_PARAMETER_VALIDATION_FAILED_EXCEPTION:"CLAIM_PARAMETER_VALIDATION_FAILED_EXCEPTION",OFFSCREEN_DOCUMENT_READY:"OFFSCREEN_DOCUMENT_READY",OFFSCREEN_DOCUMENT_NOT_READY_EXCEPTION:"OFFSCREEN_DOCUMENT_NOT_READY_EXCEPTION",PROOF_GENERATION_STARTED:"PROOF_GENERATION_STARTED",PROOF_GENERATION_SUCCESS:"PROOF_GENERATION_SUCCESS",PROOF_GENERATION_ABORTED:"PROOF_GENERATION_ABORTED",PROOF_GENERATION_FAILED:"PROOF_GENERATION_FAILED",RESULT_RECEIVED:"RESULT_RECEIVED",SUBMITTING_PROOF:"SUBMITTING_PROOF",SUBMITTING_PROOF_TO_CALLBACK_URL:"SUBMITTING_PROOF_TO_CALLBACK_URL",SUBMITTING_PROOF_TO_CALLBACK_URL_SUCCESS:"SUBMITTING_PROOF_TO_CALLBACK_URL_SUCCESS",SUBMITTING_PROOF_TO_CALLBACK_URL_FAILED:"SUBMITTING_PROOF_TO_CALLBACK_URL_FAILED",PROOF_SUBMISSION_FAILED:"PROOF_SUBMISSION_FAILED",PROOF_SUBMITTED:"PROOF_SUBMITTED",VERIFICATION_FLOW_FAILED:"VERIFICATION_FLOW_FAILED",TAB_NOT_MANAGED_BY_EXTENSION_EXCEPTION:"TAB_NOT_MANAGED_BY_EXTENSION_EXCEPTION",INJECTION_SCRIPT_SET_IN_LOCAL_STORAGE_FAILED:"INJECTION_SCRIPT_SET_IN_LOCAL_STORAGE_FAILED",VERIFICATION_POPUP_ERROR:"VERIFICATION_POPUP_ERROR",UPDATE_SESSION_STATUS_ERROR:"UPDATE_SESSION_STATUS_ERROR"},a={INFO:10,DEBUG:20,ALL:30},c={INFO:a.INFO,DEBUG:a.DEBUG,ALL:a.ALL},l={logLevel:"INFO",consoleEnabled:!1,source:"reclaim-extension-sdk"},u="reclaim_extension_sdk_log_config"},3917:(t,e,n)=>{"use strict";var r=n(7426),i=n(6166),o=n(6225),s=r.rotl32,a=r.sum32,c=r.sum32_5,l=o.ft_1,u=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=s(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],o=this.h[1],u=this.h[2],d=this.h[3],p=this.h[4];for(r=0;r<n.length;r++){var f=~~(r/20),A=c(s(i,5),l(f,o,u,d),p,n[r],h[f]);p=d,d=u,u=s(o,30),o=i,i=A}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],u),this.h[3]=a(this.h[3],d),this.h[4]=a(this.h[4],p)},d.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},4874:(t,e,n)=>{"use strict";const r=n(793);t.exports=h;const i=function(){function t(t){return void 0!==t&&t}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(e){return t(self)||t(window)||t(this)||{}}}().console||{},o={mapHttpRequest:E,mapHttpResponse:E,wrapRequestSerializer:m,wrapResponseSerializer:m,wrapErrorSerializer:m,req:E,res:E,err:A,errWithCause:A};function s(t,e){return"silent"===t?1/0:e.levels.values[t]}const a=Symbol("pino.logFuncs"),c=Symbol("pino.hierarchy"),l={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function u(t,e){const n={logger:e,parent:t[c]};e[c]=n}function h(t){(t=t||{}).browser=t.browser||{};const e=t.browser.transmit;if(e&&"function"!=typeof e.send)throw Error("pino: transmit option must have a send function");const n=t.browser.write||i;t.browser.write&&(t.browser.asObject=!0);const r=t.serializers||{},o=function(t,e){if(Array.isArray(t))return t.filter(function(t){return"!stdSerializers.err"!==t});return!0===t&&Object.keys(e)}(t.browser.serialize,r);let c=t.browser.serialize;Array.isArray(t.browser.serialize)&&t.browser.serialize.indexOf("!stdSerializers.err")>-1&&(c=!1);const A=Object.keys(t.customLevels||{}),E=["error","fatal","warn","info","debug","trace"].concat(A);"function"==typeof n&&E.forEach(function(t){n[t]=n}),(!1===t.enabled||t.browser.disabled)&&(t.level="silent");const m=t.level||"info",w=Object.create(n);w.log||(w.log=y),function(t,e,n){const r={};e.forEach(t=>{r[t]=n[t]?n[t]:i[t]||i[l[t]||"log"]||y}),t[a]=r}(w,E,n),u({},w),Object.defineProperty(w,"levelVal",{get:function(){return s(this.level,this)}}),Object.defineProperty(w,"level",{get:function(){return this._level},set:function(t){if("silent"!==t&&!this.levels.values[t])throw Error("unknown level "+t);this._level=t,d(this,I,w,"error"),d(this,I,w,"fatal"),d(this,I,w,"warn"),d(this,I,w,"info"),d(this,I,w,"debug"),d(this,I,w,"trace"),A.forEach(t=>{d(this,I,w,t)})}});const I={transmit:e,serialize:o,asObject:t.browser.asObject,asObjectBindingsOnly:t.browser.asObjectBindingsOnly,formatters:t.browser.formatters,levels:E,timestamp:g(t),messageKey:t.messageKey||"msg",onChild:t.onChild||y};function C(n,i,s){if(!i)throw new Error("missing bindings for child Pino");s=s||{},o&&i.serializers&&(s.serializers=i.serializers);const a=s.serializers;if(o&&a){var c=Object.assign({},r,a),l=!0===t.browser.serialize?Object.keys(c):o;delete i.serializers,p([i],l,c,this._stdErrSerialize)}function h(t){this._childLevel=1+(0|t._childLevel),this.bindings=i,c&&(this.serializers=c,this._serialize=l),e&&(this._logEvent=f([].concat(t._logEvent.bindings,i)))}h.prototype=this;const d=new h(this);return u(this,d),d.child=function(...t){return C.call(this,n,...t)},d.level=s.level||this.level,n.onChild(d),d}return w.levels=function(t){const e=t.customLevels||{},n=Object.assign({},h.levels.values,e),r=Object.assign({},h.levels.labels,function(t){const e={};return Object.keys(t).forEach(function(n){e[t[n]]=n}),e}(e));return{values:n,labels:r}}(t),w.level=m,w.isLevelEnabled=function(t){return!!this.levels.values[t]&&this.levels.values[t]>=this.levels.values[this.level]},w.setMaxListeners=w.getMaxListeners=w.emit=w.addListener=w.on=w.prependListener=w.once=w.prependOnceListener=w.removeListener=w.removeAllListeners=w.listeners=w.listenerCount=w.eventNames=w.write=w.flush=y,w.serializers=r,w._serialize=o,w._stdErrSerialize=c,w.child=function(...t){return C.call(this,I,...t)},e&&(w._logEvent=f()),w}function d(t,e,n,o){if(Object.defineProperty(t,o,{value:s(t.level,n)>s(o,n)?y:n[a][o],writable:!0,enumerable:!0,configurable:!0}),t[o]===y){if(!e.transmit)return;const r=s(e.transmit.level||t.level,n);if(s(o,n)<r)return}t[o]=function(t,e,n,o){return c=t[a][o],function(){const a=e.timestamp(),l=new Array(arguments.length),u=Object.getPrototypeOf&&Object.getPrototypeOf(this)===i?i:this;for(var h=0;h<l.length;h++)l[h]=arguments[h];var d=!1;if(e.serialize&&(p(l,this._serialize,this.serializers,this._stdErrSerialize),d=!0),e.asObject||e.formatters?c.call(u,...function(t,e,n,i,o){const{level:s,log:a=t=>t}=o.formatters||{},c=n.slice();let l=c[0];const u={};let h=1+(0|t._childLevel);if(h<1&&(h=1),i&&(u.time=i),s){const n=s(e,t.levels.values[e]);Object.assign(u,n)}else u.level=t.levels.values[e];if(o.asObjectBindingsOnly){if(null!==l&&"object"==typeof l)for(;h--&&"object"==typeof c[0];)Object.assign(u,c.shift());return[a(u),...c]}if(null!==l&&"object"==typeof l){for(;h--&&"object"==typeof c[0];)Object.assign(u,c.shift());l=c.length?r(c.shift(),c):void 0}else"string"==typeof l&&(l=r(c.shift(),c));return void 0!==l&&(u[o.messageKey]=l),[a(u)]}(this,o,l,a,e)):c.apply(u,l),e.transmit){const r=e.transmit.level||t._level,i=s(r,n),c=s(o,n);if(c<i)return;!function(t,e,n,r=!1){const i=e.send,o=e.ts,s=e.methodLevel,a=e.methodValue,c=e.val,l=t._logEvent.bindings;r||p(n,t._serialize||Object.keys(t.serializers),t.serializers,void 0===t._stdErrSerialize||t._stdErrSerialize),t._logEvent.ts=o,t._logEvent.messages=n.filter(function(t){return-1===l.indexOf(t)}),t._logEvent.level.label=s,t._logEvent.level.value=a,i(s,t._logEvent,c),t._logEvent=f(l)}(this,{ts:a,methodLevel:o,methodValue:c,transmitLevel:r,transmitValue:n.levels.values[e.transmit.level||t._level],send:e.transmit.send,val:s(t._level,n)},l,d)}};var c}(t,e,n,o);const l=function(t){const e=[];t.bindings&&e.push(t.bindings);let n=t[c];for(;n.parent;)n=n.parent,n.logger.bindings&&e.push(n.logger.bindings);return e.reverse()}(t);0!==l.length&&(t[o]=function(t,e){return function(){return e.apply(this,[...t,...arguments])}}(l,t[o]))}function p(t,e,n,r){for(const i in t)if(r&&t[i]instanceof Error)t[i]=h.stdSerializers.err(t[i]);else if("object"==typeof t[i]&&!Array.isArray(t[i])&&e)for(const r in t[i])e.indexOf(r)>-1&&r in n&&(t[i][r]=n[r](t[i][r]))}function f(t){return{ts:0,messages:[],bindings:t||[],level:{label:"",value:0}}}function A(t){const e={type:t.constructor.name,msg:t.message,stack:t.stack};for(const n in t)void 0===e[n]&&(e[n]=t[n]);return e}function g(t){return"function"==typeof t.timestamp?t.timestamp:!1===t.timestamp?w:I}function E(){return{}}function m(t){return t}function y(){}function w(){return!1}function I(){return Date.now()}h.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},h.stdSerializers=o,h.stdTimeFunctions=Object.assign({},{nullTime:w,epochTime:I,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}}),t.exports.default=h,t.exports.pino=h},4994:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.simpleGroup=e.spanLeadingZeroes=e.spanAll=e.spanAllZeroes=void 0;var r=n(7604);function i(t){return t.replace(/(0+)/g,'<span class="zero">$1</span>')}function o(t){return t.replace(/^(0+)/,'<span class="zero">$1</span>')}e.spanAllZeroes=i,e.spanAll=function(t,e){return void 0===e&&(e=0),t.split("").map(function(t,n){return r.sprintf('<span class="digit value-%s position-%d">%s</span>',t,n+e,i(t))}).join("")},e.spanLeadingZeroes=function(t){return t.split(":").map(function(t){return o(t)}).join(":")},e.simpleGroup=function(t,e){return void 0===e&&(e=0),t.split(":").map(function(t,n){return/group-v4/.test(t)?t:r.sprintf('<span class="hover-group group-%d">%s</span>',n+e,o(t))})}},5413:(t,e)=>{"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.Doctype=e.CDATA=e.Tag=e.Style=e.Script=e.Comment=e.Directive=e.Text=e.Root=e.isTag=e.ElementType=void 0,function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"}(n=e.ElementType||(e.ElementType={})),e.isTag=function(t){return t.type===n.Tag||t.type===n.Script||t.type===n.Style},e.Root=n.Root,e.Text=n.Text,e.Directive=n.Directive,e.Comment=n.Comment,e.Script=n.Script,e.Style=n.Style,e.Tag=n.Tag,e.CDATA=n.CDATA,e.Doctype=n.Doctype},5606:t=>{var e,n,r=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(t){n=o}}();var a,c=[],l=!1,u=-1;function h(){l&&a&&(l=!1,a.length?c=a.concat(c):u=-1,c.length&&d())}function d(){if(!l){var t=s(h);l=!0;for(var e=c.length;e;){for(a=c,c=[];++u<e;)a&&a[u].run();u=-1,e=c.length}a=null,l=!1,function(t){if(n===clearTimeout)return clearTimeout(t);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(t);try{return n(t)}catch(e){try{return n.call(null,t)}catch(e){return n.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function f(){}r.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new p(t,e)),1!==c.length||l||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=f,r.addListener=f,r.once=f,r.off=f,r.removeListener=f,r.removeAllListeners=f,r.emit=f,r.prependListener=f,r.prependOnceListener=f,r.listeners=function(t){return[]},r.binding=function(t){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(t){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},6166:(t,e,n)=>{"use strict";var r=n(7426),i=n(3349);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=r.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var n=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=r.join32(t,0,t.length-n,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,n=e-(t+this.padLength)%e,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=t>>>24&255,r[i++]=t>>>16&255,r[i++]=t>>>8&255,r[i++]=255&t}else for(r[i++]=255&t,r[i++]=t>>>8&255,r[i++]=t>>>16&255,r[i++]=t>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o<this.padLength;o++)r[i++]=0;return r}},6225:(t,e,n)=>{"use strict";var r=n(7426).rotr32;function i(t,e,n){return t&e^~t&n}function o(t,e,n){return t&e^t&n^e&n}function s(t,e,n){return t^e^n}e.ft_1=function(t,e,n,r){return 0===t?i(e,n,r):1===t||3===t?s(e,n,r):2===t?o(e,n,r):void 0},e.ch32=i,e.maj32=o,e.p32=s,e.s0_256=function(t){return r(t,2)^r(t,13)^r(t,22)},e.s1_256=function(t){return r(t,6)^r(t,11)^r(t,25)},e.g0_256=function(t){return r(t,7)^r(t,18)^t>>>3},e.g1_256=function(t){return r(t,17)^r(t,19)^t>>>10}},6229:(t,e,n)=>{"use strict";e.sha1=n(3917),e.sha224=n(7714),e.sha256=n(2287),e.sha384=n(1911),e.sha512=n(7766)},6698:t=>{"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},6784:(t,e,n)=>{"use strict";var r=n(7426),i=n(6166),o=r.rotl32,s=r.sum32,a=r.sum32_3,c=r.sum32_4,l=i.BlockHash;function u(){if(!(this instanceof u))return new u;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(t,e,n,r){return t<=15?e^n^r:t<=31?e&n|~e&r:t<=47?(e|~n)^r:t<=63?e&r|n&~r:e^(n|~r)}function d(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function p(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}r.inherits(u,l),e.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(t,e){for(var n=this.h[0],r=this.h[1],i=this.h[2],l=this.h[3],u=this.h[4],m=n,y=r,w=i,I=l,C=u,B=0;B<80;B++){var T=s(o(c(n,h(B,r,i,l),t[f[B]+e],d(B)),g[B]),u);n=u,u=l,l=o(i,10),i=r,r=T,T=s(o(c(m,h(79-B,y,w,I),t[A[B]+e],p(B)),E[B]),C),m=C,C=I,I=o(w,10),w=y,y=T}T=a(this.h[1],i,I),this.h[1]=a(this.h[2],l,C),this.h[2]=a(this.h[3],u,m),this.h[3]=a(this.h[4],n,y),this.h[4]=a(this.h[0],r,w),this.h[0]=T},u.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var f=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],A=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],E=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},6957:function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},r(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),o=this&&this.__assign||function(){return o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},o.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.cloneNode=e.hasChildren=e.isDocument=e.isDirective=e.isComment=e.isText=e.isCDATA=e.isTag=e.Element=e.Document=e.NodeWithChildren=e.ProcessingInstruction=e.Comment=e.Text=e.DataNode=e.Node=void 0;var s=n(5413),a=new Map([[s.ElementType.Tag,1],[s.ElementType.Script,1],[s.ElementType.Style,1],[s.ElementType.Directive,1],[s.ElementType.Text,3],[s.ElementType.CDATA,4],[s.ElementType.Comment,8],[s.ElementType.Root,9]]),c=function(){function t(t){this.type=t,this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(t.prototype,"nodeType",{get:function(){var t;return null!==(t=a.get(this.type))&&void 0!==t?t:1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentNode",{get:function(){return this.parent},set:function(t){this.parent=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousSibling",{get:function(){return this.prev},set:function(t){this.prev=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"nextSibling",{get:function(){return this.next},set:function(t){this.next=t},enumerable:!1,configurable:!0}),t.prototype.cloneNode=function(t){return void 0===t&&(t=!1),C(this,t)},t}();e.Node=c;var l=function(t){function e(e,n){var r=t.call(this,e)||this;return r.data=n,r}return i(e,t),Object.defineProperty(e.prototype,"nodeValue",{get:function(){return this.data},set:function(t){this.data=t},enumerable:!1,configurable:!0}),e}(c);e.DataNode=l;var u=function(t){function e(e){return t.call(this,s.ElementType.Text,e)||this}return i(e,t),e}(l);e.Text=u;var h=function(t){function e(e){return t.call(this,s.ElementType.Comment,e)||this}return i(e,t),e}(l);e.Comment=h;var d=function(t){function e(e,n){var r=t.call(this,s.ElementType.Directive,n)||this;return r.name=e,r}return i(e,t),e}(l);e.ProcessingInstruction=d;var p=function(t){function e(e,n){var r=t.call(this,e)||this;return r.children=n,r}return i(e,t),Object.defineProperty(e.prototype,"firstChild",{get:function(){var t;return null!==(t=this.children[0])&&void 0!==t?t:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"childNodes",{get:function(){return this.children},set:function(t){this.children=t},enumerable:!1,configurable:!0}),e}(c);e.NodeWithChildren=p;var f=function(t){function e(e){return t.call(this,s.ElementType.Root,e)||this}return i(e,t),e}(p);e.Document=f;var A=function(t){function e(e,n,r,i){void 0===r&&(r=[]),void 0===i&&(i="script"===e?s.ElementType.Script:"style"===e?s.ElementType.Style:s.ElementType.Tag);var o=t.call(this,i,r)||this;return o.name=e,o.attribs=n,o}return i(e,t),Object.defineProperty(e.prototype,"tagName",{get:function(){return this.name},set:function(t){this.name=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"attributes",{get:function(){var t=this;return Object.keys(this.attribs).map(function(e){var n,r;return{name:e,value:t.attribs[e],namespace:null===(n=t["x-attribsNamespace"])||void 0===n?void 0:n[e],prefix:null===(r=t["x-attribsPrefix"])||void 0===r?void 0:r[e]}})},enumerable:!1,configurable:!0}),e}(p);function g(t){return(0,s.isTag)(t)}function E(t){return t.type===s.ElementType.CDATA}function m(t){return t.type===s.ElementType.Text}function y(t){return t.type===s.ElementType.Comment}function w(t){return t.type===s.ElementType.Directive}function I(t){return t.type===s.ElementType.Root}function C(t,e){var n;if(void 0===e&&(e=!1),m(t))n=new u(t.data);else if(y(t))n=new h(t.data);else if(g(t)){var r=e?B(t.children):[],i=new A(t.name,o({},t.attribs),r);r.forEach(function(t){return t.parent=i}),null!=t.namespace&&(i.namespace=t.namespace),t["x-attribsNamespace"]&&(i["x-attribsNamespace"]=o({},t["x-attribsNamespace"])),t["x-attribsPrefix"]&&(i["x-attribsPrefix"]=o({},t["x-attribsPrefix"])),n=i}else if(E(t)){r=e?B(t.children):[];var a=new p(s.ElementType.CDATA,r);r.forEach(function(t){return t.parent=a}),n=a}else if(I(t)){r=e?B(t.children):[];var c=new f(r);r.forEach(function(t){return t.parent=c}),t["x-mode"]&&(c["x-mode"]=t["x-mode"]),n=c}else{if(!w(t))throw new Error("Not implemented yet: ".concat(t.type));var l=new d(t.name,t.data);null!=t["x-name"]&&(l["x-name"]=t["x-name"],l["x-publicId"]=t["x-publicId"],l["x-systemId"]=t["x-systemId"]),n=l}return n.startIndex=t.startIndex,n.endIndex=t.endIndex,null!=t.sourceCodeLocation&&(n.sourceCodeLocation=t.sourceCodeLocation),n}function B(t){for(var e=t.map(function(t){return C(t,!0)}),n=1;n<e.length;n++)e[n].prev=e[n-1],e[n-1].next=e[n];return e}e.Element=A,e.isTag=g,e.isCDATA=E,e.isText=m,e.isComment=y,e.isDirective=w,e.isDocument=I,e.hasChildren=function(t){return Object.prototype.hasOwnProperty.call(t,"children")},e.cloneNode=C},7426:(t,e,n)=>{"use strict";var r=n(3349),i=n(6698);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function s(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function a(t){return 1===t.length?"0"+t:t}function c(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)n.push(parseInt(t[i]+t[i+1],16))}else for(var r=0,i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):o(t,i)?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<t.length;i++)n[i]=0|t[i];return n},e.toHex=function(t){for(var e="",n=0;n<t.length;n++)e+=a(t[n].toString(16));return e},e.htonl=s,e.toHex32=function(t,e){for(var n="",r=0;r<t.length;r++){var i=t[r];"little"===e&&(i=s(i)),n+=c(i.toString(16))}return n},e.zero2=a,e.zero8=c,e.join32=function(t,e,n,i){var o=n-e;r(o%4==0);for(var s=new Array(o/4),a=0,c=e;a<s.length;a++,c+=4){var l;l="big"===i?t[c]<<24|t[c+1]<<16|t[c+2]<<8|t[c+3]:t[c+3]<<24|t[c+2]<<16|t[c+1]<<8|t[c],s[a]=l>>>0}return s},e.split32=function(t,e){for(var n=new Array(4*t.length),r=0,i=0;r<t.length;r++,i+=4){var o=t[r];"big"===e?(n[i]=o>>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,n){return t+e+n>>>0},e.sum32_4=function(t,e,n,r){return t+e+n+r>>>0},e.sum32_5=function(t,e,n,r,i){return t+e+n+r+i>>>0},e.sum64=function(t,e,n,r){var i=t[e],o=r+t[e+1]>>>0,s=(o<r?1:0)+n+i;t[e]=s>>>0,t[e+1]=o},e.sum64_hi=function(t,e,n,r){return(e+r>>>0<e?1:0)+t+n>>>0},e.sum64_lo=function(t,e,n,r){return e+r>>>0},e.sum64_4_hi=function(t,e,n,r,i,o,s,a){var c=0,l=e;return c+=(l=l+r>>>0)<e?1:0,c+=(l=l+o>>>0)<o?1:0,t+n+i+s+(c+=(l=l+a>>>0)<a?1:0)>>>0},e.sum64_4_lo=function(t,e,n,r,i,o,s,a){return e+r+o+a>>>0},e.sum64_5_hi=function(t,e,n,r,i,o,s,a,c,l){var u=0,h=e;return u+=(h=h+r>>>0)<e?1:0,u+=(h=h+o>>>0)<o?1:0,u+=(h=h+a>>>0)<a?1:0,t+n+i+s+c+(u+=(h=h+l>>>0)<l?1:0)>>>0},e.sum64_5_lo=function(t,e,n,r,i,o,s,a,c,l){return e+r+o+a+l>>>0},e.rotr64_hi=function(t,e,n){return(e<<32-n|t>>>n)>>>0},e.rotr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0},e.shr64_hi=function(t,e,n){return t>>>n},e.shr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0}},7526:(t,e)=>{"use strict";e.byteLength=function(t){var e=a(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,o=a(t),s=o[0],c=o[1],l=new i(function(t,e,n){return 3*(e+n)/4-n}(0,s,c)),u=0,h=c>0?s-4:s;for(n=0;n<h;n+=4)e=r[t.charCodeAt(n)]<<18|r[t.charCodeAt(n+1)]<<12|r[t.charCodeAt(n+2)]<<6|r[t.charCodeAt(n+3)],l[u++]=e>>16&255,l[u++]=e>>8&255,l[u++]=255&e;2===c&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,l[u++]=255&e);1===c&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e);return l},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,c=r-i;a<c;a+=s)o.push(l(t,a,a+s>c?c:a+s));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],r[o.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function c(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function l(t,e,n){for(var r,i=[],o=e;o<n;o+=3)r=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(255&t[o+2]),i.push(c(r));return i.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},7604:(t,e,n)=>{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(t){return function(t,e){var n,r,s,a,c,l,u,h,d,p=1,f=t.length,A="";for(r=0;r<f;r++)if("string"==typeof t[r])A+=t[r];else if("object"==typeof t[r]){if((a=t[r]).keys)for(n=e[p],s=0;s<a.keys.length;s++){if(null==n)throw new Error(o('[sprintf] Cannot access property "%s" of undefined value "%s"',a.keys[s],a.keys[s-1]));n=n[a.keys[s]]}else n=a.param_no?e[a.param_no]:e[p++];if(i.not_type.test(a.type)&&i.not_primitive.test(a.type)&&n instanceof Function&&(n=n()),i.numeric_arg.test(a.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(o("[sprintf] expecting number but found %T",n));switch(i.number.test(a.type)&&(h=n>=0),a.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,a.width?parseInt(a.width):0);break;case"e":n=a.precision?parseFloat(n).toExponential(a.precision):parseFloat(n).toExponential();break;case"f":n=a.precision?parseFloat(n).toFixed(a.precision):parseFloat(n);break;case"g":n=a.precision?String(Number(n.toPrecision(a.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=a.precision?n.substring(0,a.precision):n;break;case"t":n=String(!!n),n=a.precision?n.substring(0,a.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=a.precision?n.substring(0,a.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=a.precision?n.substring(0,a.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(a.type)?A+=n:(!i.number.test(a.type)||h&&!a.sign?d="":(d=h?"+":"-",n=n.toString().replace(i.sign,"")),l=a.pad_char?"0"===a.pad_char?"0":a.pad_char.charAt(1):" ",u=a.width-(d+n).length,c=a.width&&u>0?l.repeat(u):"",A+=a.align?d+n+c:"0"===l?d+c+n:c+d+n)}return A}(function(t){if(a[t])return a[t];var e,n=t,r=[],o=0;for(;n;){if(null!==(e=i.text.exec(n)))r.push(e[0]);else if(null!==(e=i.modulo.exec(n)))r.push("%");else{if(null===(e=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){o|=1;var s=[],c=e[2],l=[];if(null===(l=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(l[1]);""!==(c=c.substring(l[0].length));)if(null!==(l=i.key_access.exec(c)))s.push(l[1]);else{if(null===(l=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(l[1])}e[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return a[t]=r}(t),arguments)}function s(t,e){return o.apply(null,[t].concat(e||[]))}var a=Object.create(null);e.sprintf=o,e.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=s,void 0===(r=function(){return{sprintf:o,vsprintf:s}}.call(e,n,e,t))||(t.exports=r))}()},7714:(t,e,n)=>{"use strict";var r=n(7426),i=n(2287);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,i),t.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},7766:(t,e,n)=>{"use strict";var r=n(7426),i=n(6166),o=n(3349),s=r.rotr64_hi,a=r.rotr64_lo,c=r.shr64_hi,l=r.shr64_lo,u=r.sum64,h=r.sum64_hi,d=r.sum64_lo,p=r.sum64_4_hi,f=r.sum64_4_lo,A=r.sum64_5_hi,g=r.sum64_5_lo,E=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;E.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(t,e,n,r,i){var o=t&n^~t&i;return o<0&&(o+=4294967296),o}function I(t,e,n,r,i,o){var s=e&r^~e&o;return s<0&&(s+=4294967296),s}function C(t,e,n,r,i){var o=t&n^t&i^n&i;return o<0&&(o+=4294967296),o}function B(t,e,n,r,i,o){var s=e&r^e&o^r&o;return s<0&&(s+=4294967296),s}function T(t,e){var n=s(t,e,28)^s(e,t,2)^s(e,t,7);return n<0&&(n+=4294967296),n}function b(t,e){var n=a(t,e,28)^a(e,t,2)^a(e,t,7);return n<0&&(n+=4294967296),n}function D(t,e){var n=s(t,e,14)^s(t,e,18)^s(e,t,9);return n<0&&(n+=4294967296),n}function M(t,e){var n=a(t,e,14)^a(t,e,18)^a(e,t,9);return n<0&&(n+=4294967296),n}function N(t,e){var n=s(t,e,1)^s(t,e,8)^c(t,e,7);return n<0&&(n+=4294967296),n}function S(t,e){var n=a(t,e,1)^a(t,e,8)^l(t,e,7);return n<0&&(n+=4294967296),n}function v(t,e){var n=s(t,e,19)^s(e,t,29)^c(t,e,6);return n<0&&(n+=4294967296),n}function _(t,e){var n=a(t,e,19)^a(e,t,29)^l(t,e,6);return n<0&&(n+=4294967296),n}r.inherits(y,E),t.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(t,e){for(var n=this.W,r=0;r<32;r++)n[r]=t[e+r];for(;r<n.length;r+=2){var i=v(n[r-4],n[r-3]),o=_(n[r-4],n[r-3]),s=n[r-14],a=n[r-13],c=N(n[r-30],n[r-29]),l=S(n[r-30],n[r-29]),u=n[r-32],h=n[r-31];n[r]=p(i,o,s,a,c,l,u,h),n[r+1]=f(i,o,s,a,c,l,u,h)}},y.prototype._update=function(t,e){this._prepareBlock(t,e);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],c=this.h[4],l=this.h[5],p=this.h[6],f=this.h[7],E=this.h[8],m=this.h[9],y=this.h[10],N=this.h[11],S=this.h[12],v=this.h[13],_=this.h[14],L=this.h[15];o(this.k.length===n.length);for(var x=0;x<n.length;x+=2){var R=_,F=L,O=D(E,m),k=M(E,m),Q=w(E,m,y,N,S),U=I(E,m,y,N,S,v),P=this.k[x],G=this.k[x+1],V=n[x],H=n[x+1],j=A(R,F,O,k,Q,U,P,G,V,H),Y=g(R,F,O,k,Q,U,P,G,V,H);R=T(r,i),F=b(r,i),O=C(r,i,s,a,c),k=B(r,i,s,a,c,l);var z=h(R,F,O,k),J=d(R,F,O,k);_=S,L=v,S=y,v=N,y=E,N=m,E=h(p,f,j,Y),m=d(f,f,j,Y),p=c,f=l,c=s,l=a,s=r,a=i,r=h(j,Y,z,J),i=d(j,Y,z,J)}u(this.h,0,r,i),u(this.h,2,s,a),u(this.h,4,c,l),u(this.h,6,p,f),u(this.h,8,E,m),u(this.h,10,y,N),u(this.h,12,S,v),u(this.h,14,_,L)},y.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},7770:(t,e,n)=>{"use strict";n.d(e,{y8:()=>I,Ow:()=>w});var r=n(3859);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,s(r.key),r)}}function s(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==i(e)?e:e+""}var a=function(){function t(e){var n=e.sessionId,r=e.providerId,i=e.appId,o=e.logLine,s=e.type,a=e.eventType,c=e.logLevel,l=e.source,u=e.tabId,h=e.url,d=e.meta,p=e.time,f=void 0===p?null:p,A=e.deviceId;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.sessionId=n,this.providerId=r,this.appId=i,this.logLine=o,this.type=s,this.eventType=a,this.logLevel=c,this.source=l,this.tabId=u,this.url=h,this.meta=d||void 0,this.time=f||new Date,this.deviceId=A}return e=t,r=[{key:"fromDateTimeToTimeStamp",value:function(t){return(1e6*t.getTime()).toString()}}],(n=[{key:"toJson",value:function(){var e={logLine:this.logLine,ts:t.fromDateTimeToTimeStamp(this.time),logLevel:this.logLevel,sessionId:this.sessionId,providerId:this.providerId,appId:this.appId,source:this.source,deviceId:this.deviceId};return this.type&&(e.type=this.type),this.eventType&&(e.eventType=this.eventType),this.tabId&&(e.tabId=this.tabId),this.url&&(e.url=this.url),this.meta&&(e.meta=this.meta),e}}])&&o(e.prototype,n),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,r}();function c(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function u(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof a?r:a,l=Object.create(c.prototype);return h(l,"_invoke",function(n,r,i){var o,a,c,l=0,u=i||[],h=!1,d={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return o=e,a=0,c=t,d.n=n,s}};function p(n,r){for(a=n,c=r,e=0;!h&&l&&!i&&e<u.length;e++){var i,o=u[e],p=d.p,f=o[2];n>3?(i=f===r)&&(c=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=n<2&&p<o[1])?(a=0,d.v=r,d.n=o[1]):p<f&&(i=n<3||o[0]>r||r>f)&&(o[4]=n,o[5]=r,d.n=f,a=0))}if(i||n>1)return s;throw h=!0,r}return function(i,u,f){if(l>1)throw TypeError("Generator is already running");for(h&&1===u&&p(u,f),a=u,c=f;(e=a<2?t:c)||!h;){o||(a?a<3?(a>1&&(d.n=-1),p(a,c)):d.n=c:d.v=c);try{if(l=2,o){if(a||(i="next"),e=o[i]){if(!(e=e.call(o,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,a<2&&(a=0)}else 1===a&&(e=o.return)&&e.call(o),a<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((e=(h=d.n<0)?c:n.call(r,d))!==s)break}catch(e){o=t,a=1,c=e}finally{l=1}}return{value:e,done:h}}}(n,i,o),!0),l}var s={};function a(){}function c(){}function l(){}e=Object.getPrototypeOf;var d=[][r]?e(e([][r]())):(h(e={},r,function(){return this}),e),p=l.prototype=a.prototype=Object.create(d);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,h(t,i,"GeneratorFunction")),t.prototype=Object.create(p),t}return c.prototype=l,h(p,"constructor",l),h(l,"constructor",c),c.displayName="GeneratorFunction",h(l,i,"GeneratorFunction"),h(p),h(p,i,"Generator"),h(p,r,function(){return this}),h(p,"toString",function(){return"[object Generator]"}),(u=function(){return{w:o,m:f}})()}function h(t,e,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(t){i=0}h=function(t,e,n,r){function o(e,n){h(t,e,function(t){return this._invoke(e,n,t)})}e?i?i(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(o("next",0),o("throw",1),o("return",2))},h(t,e,n,r)}function d(t,e,n,r,i,o,s){try{var a=t[o](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function p(t){return function(){var e=this,n=arguments;return new Promise(function(r,i){var o=t.apply(e,n);function s(t){d(o,r,i,s,a,"next",t)}function a(t){d(o,r,i,s,a,"throw",t)}s(void 0)})}}function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function A(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function g(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?A(Object(n),!0).forEach(function(e){E(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function E(t,e,n){return(e=y(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function m(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,y(r.key),r)}}function y(t){var e=function(t,e){if("object"!=f(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=f(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==f(e)?e:e+""}var w=new(function(){return t=function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.logs=[],this.isSending=!1,this.maxBatchSize=20,this.flushInterval=5e3,this.flushIntervalId=null,this.config=g({},r.DEFAULT_LOG_CONFIG),this.deviceId=null;try{var n;"undefined"!=typeof chrome&&null!==(n=chrome.storage)&&void 0!==n&&n.local&&(chrome.storage.local.get([r.LOG_CONFIG_STORAGE_KEY],function(t){var n=null==t?void 0:t[r.LOG_CONFIG_STORAGE_KEY];n&&"object"===f(n)&&e.setConfig(n)}),chrome.storage.onChanged.addListener(function(t,n){if("local"===n&&t[r.LOG_CONFIG_STORAGE_KEY]){var i=t[r.LOG_CONFIG_STORAGE_KEY].newValue||{};e.setConfig(i)}}))}catch(t){}this.startFlushInterval()},e=[{key:"setConfig",value:function(t){this.config=g(g({},this.config),t)}},{key:"startFlushInterval",value:function(){var t=this;this.flushIntervalId&&clearInterval(this.flushIntervalId),this.flushIntervalId=setInterval(function(){return t.flush()},this.flushInterval)}},{key:"stopFlushInterval",value:function(){this.flushIntervalId&&(clearInterval(this.flushIntervalId),this.flushIntervalId=null)}},{key:"getDeviceLoggingId",value:(s=p(u().m(function t(){var e;return u().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!this.deviceId){t.n=1;break}return t.a(2,this.deviceId);case 1:if(t.p=1,"undefined"==typeof chrome||!chrome.storage){t.n=3;break}return t.n=2,chrome.storage.local.get(["reclaim_device_id"]);case 2:if(!(e=t.v).reclaim_device_id){t.n=3;break}return this.deviceId=e.reclaim_device_id,t.a(2,this.deviceId);case 3:t.n=5;break;case 4:t.p=4,t.v;case 5:if(this.deviceId="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():String(Date.now()),t.p=6,"undefined"==typeof chrome||!chrome.storage){t.n=7;break}return t.n=7,chrome.storage.local.set({reclaim_device_id:this.deviceId});case 7:t.n=9;break;case 8:t.p=8,t.v;case 9:return t.a(2,this.deviceId)}},t,this,[[6,8],[1,4]])})),function(){return s.apply(this,arguments)})},{key:"addLog",value:function(t){this.logs.push(t),this.logs.length>=this.maxBatchSize&&this.flush()}},{key:"shouldLog",value:function(t){return t<=(r.LOG_LEVEL_MAP[this.config.logLevel]||r.LOG_LEVEL.INFO)}},{key:"emitToConsole",value:function(t,e,n){var r="[".concat(t,"]"),i="".concat(r," ").concat(e);n?console.log(i,n):console.log(i)}},{key:"log",value:function(t){var e=t.message,n=t.logLevel,r=t.type,i=t.eventType,o=t.meta,s=t.sessionId,c=t.providerId,l=t.appId,u=t.source,h=t.tabId,d=t.url;if(e&&n){if(this.shouldLog(n)){this.config.consoleEnabled&&this.emitToConsole(n,e,o);var p=new a({sessionId:s||"unknown",providerId:c||"unknown",appId:l||"unknown",logLine:e,type:r,eventType:i,logLevel:n,source:u||this.config.source,tabId:h,url:d,meta:o,time:new Date});this.addLog(p)}}else console.error("Logger: message and logLevel are required")}},{key:"flush",value:(o=p(u().m(function t(){var e,n;return u().w(function(t){for(;;)switch(t.p=t.n){case 0:if(0!==this.logs.length&&!this.isSending){t.n=1;break}return t.a(2);case 1:return e=c(this.logs),this.logs=[],t.p=2,this.isSending=!0,t.n=3,this.sendLogs(e);case 3:t.n=5;break;case 4:t.p=4,n=t.v,console.error("Error flushing logs:",n),this.logs=[].concat(c(this.logs),c(e));case 5:return t.p=5,this.isSending=!1,t.f(5);case 6:return t.a(2)}},t,this,[[2,4,5,6]])})),function(){return o.apply(this,arguments)})},{key:"sendLogs",value:(i=p(u().m(function t(e){var n,i,o,s,a,c,l;return u().w(function(t){for(;;)switch(t.n){case 0:if(null!=e&&e.length){t.n=1;break}return t.a(2);case 1:return t.n=2,this.getDeviceLoggingId();case 2:return n=t.v,i=e.map(function(t){var e=t.toJson();return e.deviceId=e.deviceId||n,e}),o=JSON.stringify({logs:i,source:this.config.source,deviceId:n}),t.n=3,fetch(r.LOGGING_ENDPOINTS.DIAGNOSTIC_LOGGING,{method:"POST",headers:{"Content-Type":"application/json"},body:o});case 3:if((s=t.v).ok){t.n=5;break}return a=console,c="Failed to send ".concat(e.length," logs"),t.n=4,s.text();case 4:l=t.v,a.error.call(a,c,l);case 5:return t.a(2)}},t,this)})),function(t){return i.apply(this,arguments)})}],e&&m(t.prototype,e),n&&m(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n,i,o,s}()),I=function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=g({sessionId:"unknown",providerId:"unknown",appId:"unknown",source:(null===(t=w.config)||void 0===t?void 0:t.source)||"reclaim-extension-sdk"},e);return{get context(){return g({},n)},setContext:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(n,t)},log:function(t){w.log(g(g({},n),t))},info:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.log(g(g({},n),{},{logLevel:"INFO"},t))},debug:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.log(g(g({},n),{},{logLevel:"DEBUG"},t))},all:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.log(g(g({},n),{},{logLevel:"ALL"},t))},error:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.log(g(g({},n),{},{logLevel:"ALL"},t))}}}},7790:()=>{},7952:(t,e,n)=>{var r=e;r.utils=n(7426),r.common=n(6166),r.sha=n(6229),r.ripemd=n(6784),r.hmac=n(8948),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},8177:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isCorrect=e.isInSubnet=void 0,e.isInSubnet=function(t){return!(this.subnetMask<t.subnetMask)&&this.mask(t.subnetMask)===t.mask()},e.isCorrect=function(t){return function(){return this.addressMinusSuffix===this.correctForm()&&(this.subnetMask===t&&!this.parsedSubnet||this.parsedSubnet===String(this.subnetMask))}}},8287:(t,e,n)=>{"use strict";
|
|
13
|
+
/*!
|
|
14
|
+
* The buffer module from node.js, for the browser.
|
|
15
|
+
*
|
|
16
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
17
|
+
* @license MIT
|
|
18
|
+
*/
|
|
19
|
+
const r=n(7526),i=n(251),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.hp=c,e.IS=50;const s=2147483647;function a(t){if(t>s)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,c.prototype),e}function c(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return h(t)}return l(t,e,n)}function l(t,e,n){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!c.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|A(t,e);let r=a(n);const i=r.write(t,e);i!==n&&(r=r.slice(0,i));return r}(t,e);if(ArrayBuffer.isView(t))return function(t){if(q(t,Uint8Array)){const e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return d(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(q(t,ArrayBuffer)||t&&q(t.buffer,ArrayBuffer))return p(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(q(t,SharedArrayBuffer)||t&&q(t.buffer,SharedArrayBuffer)))return p(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=t.valueOf&&t.valueOf();if(null!=r&&r!==t)return c.from(r,e,n);const i=function(t){if(c.isBuffer(t)){const e=0|f(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}if(void 0!==t.length)return"number"!=typeof t.length||K(t.length)?a(0):d(t);if("Buffer"===t.type&&Array.isArray(t.data))return d(t.data)}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return c.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function u(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function h(t){return u(t),a(t<0?0:0|f(t))}function d(t){const e=t.length<0?0:0|f(t.length),n=a(e);for(let r=0;r<e;r+=1)n[r]=255&t[r];return n}function p(t,e,n){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===e&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,e):new Uint8Array(t,e,n),Object.setPrototypeOf(r,c.prototype),r}function f(t){if(t>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function A(t,e){if(c.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||q(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return z(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(t).length;default:if(i)return r?-1:z(t).length;e=(""+e).toLowerCase(),i=!0}}function g(t,e,n){let r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return v(this,e,n);case"utf8":case"utf-8":return D(this,e,n);case"ascii":return N(this,e,n);case"latin1":case"binary":return S(this,e,n);case"base64":return b(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function E(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function m(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),K(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=c.from(e,r)),c.isBuffer(e))return 0===e.length?-1:y(t,e,n,r,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):y(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(t,e,n,r,i){let o,s=1,a=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,n/=2}function l(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let r=-1;for(o=n;o<a;o++)if(l(t,o)===l(e,-1===r?0:o-r)){if(-1===r&&(r=o),o-r+1===c)return r*s}else-1!==r&&(o-=o-r),r=-1}else for(n+c>a&&(n=a-c),o=n;o>=0;o--){let n=!0;for(let r=0;r<c;r++)if(l(t,o+r)!==l(e,r)){n=!1;break}if(n)return o}return-1}function w(t,e,n,r){n=Number(n)||0;const i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;const o=e.length;let s;for(r>o/2&&(r=o/2),s=0;s<r;++s){const r=parseInt(e.substr(2*s,2),16);if(K(r))return s;t[n+s]=r}return s}function I(t,e,n,r){return W(z(e,t.length-n),t,n,r)}function C(t,e,n,r){return W(function(t){const e=[];for(let n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function B(t,e,n,r){return W(J(e),t,n,r)}function T(t,e,n,r){return W(function(t,e){let n,r,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)n=t.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function b(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function D(t,e,n){n=Math.min(t.length,n);const r=[];let i=e;for(;i<n;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=n){let n,r,a,c;switch(s){case 1:e<128&&(o=e);break;case 2:n=t[i+1],128==(192&n)&&(c=(31&e)<<6|63&n,c>127&&(o=c));break;case 3:n=t[i+1],r=t[i+2],128==(192&n)&&128==(192&r)&&(c=(15&e)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=t[i+1],r=t[i+2],a=t[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&e)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return function(t){const e=t.length;if(e<=M)return String.fromCharCode.apply(String,t);let n="",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=M));return n}(r)}c.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),c.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}}),c.poolSize=8192,c.from=function(t,e,n){return l(t,e,n)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array),c.alloc=function(t,e,n){return function(t,e,n){return u(t),t<=0?a(t):void 0!==e?"string"==typeof n?a(t).fill(e,n):a(t).fill(e):a(t)}(t,e,n)},c.allocUnsafe=function(t){return h(t)},c.allocUnsafeSlow=function(t){return h(t)},c.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==c.prototype},c.compare=function(t,e){if(q(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),q(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(t)||!c.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let n=t.length,r=e.length;for(let i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return c.alloc(0);let n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;const r=c.allocUnsafe(e);let i=0;for(n=0;n<t.length;++n){let e=t[n];if(q(e,Uint8Array))i+e.length>r.length?(c.isBuffer(e)||(e=c.from(e)),e.copy(r,i)):Uint8Array.prototype.set.call(r,e,i);else{if(!c.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(r,i)}i+=e.length}return r},c.byteLength=A,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)E(this,e,e+1);return this},c.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)E(this,e,e+3),E(this,e+1,e+2);return this},c.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)E(this,e,e+7),E(this,e+1,e+6),E(this,e+2,e+5),E(this,e+3,e+4);return this},c.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?D(this,0,t):g.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(t){if(!c.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===c.compare(this,t)},c.prototype.inspect=function(){let t="";const n=e.IS;return t=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(t+=" ... "),"<Buffer "+t+">"},o&&(c.prototype[o]=c.prototype.inspect),c.prototype.compare=function(t,e,n,r,i){if(q(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;let o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(e>>>=0);const a=Math.min(o,s),l=this.slice(r,i),u=t.slice(e,n);for(let t=0;t<a;++t)if(l[t]!==u[t]){o=l[t],s=u[t];break}return o<s?-1:s<o?1:0},c.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},c.prototype.indexOf=function(t,e,n){return m(this,t,e,n,!0)},c.prototype.lastIndexOf=function(t,e,n){return m(this,t,e,n,!1)},c.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return w(this,t,e,n);case"utf8":case"utf-8":return I(this,t,e,n);case"ascii":case"latin1":case"binary":return C(this,t,e,n);case"base64":return B(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const M=4096;function N(t,e,n){let r="";n=Math.min(t.length,n);for(let i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function S(t,e,n){let r="";n=Math.min(t.length,n);for(let i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function v(t,e,n){const r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);let i="";for(let r=e;r<n;++r)i+=X[t[r]];return i}function _(t,e,n){const r=t.slice(e,n);let i="";for(let t=0;t<r.length-1;t+=2)i+=String.fromCharCode(r[t]+256*r[t+1]);return i}function L(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function x(t,e,n,r,i,o){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function R(t,e,n,r,i){V(e,r,i,t,n,7);let o=Number(e&BigInt(4294967295));t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,n}function F(t,e,n,r,i){V(e,r,i,t,n,7);let o=Number(e&BigInt(4294967295));t[n+7]=o,o>>=8,t[n+6]=o,o>>=8,t[n+5]=o,o>>=8,t[n+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=s,s>>=8,t[n+2]=s,s>>=8,t[n+1]=s,s>>=8,t[n]=s,n+8}function O(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function k(t,e,n,r,o){return e=+e,n>>>=0,o||O(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function Q(t,e,n,r,o){return e=+e,n>>>=0,o||O(t,0,n,8),i.write(t,e,n,r,52,8),n+8}c.prototype.slice=function(t,e){const n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t);const r=this.subarray(t,e);return Object.setPrototypeOf(r,c.prototype),r},c.prototype.readUintLE=c.prototype.readUIntLE=function(t,e,n){t>>>=0,e>>>=0,n||L(t,e,this.length);let r=this[t],i=1,o=0;for(;++o<e&&(i*=256);)r+=this[t+o]*i;return r},c.prototype.readUintBE=c.prototype.readUIntBE=function(t,e,n){t>>>=0,e>>>=0,n||L(t,e,this.length);let r=this[t+--e],i=1;for(;e>0&&(i*=256);)r+=this[t+--e]*i;return r},c.prototype.readUint8=c.prototype.readUInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),this[t]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readBigUInt64LE=Z(function(t){H(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||j(t,this.length-8);const r=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))}),c.prototype.readBigUInt64BE=Z(function(t){H(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||j(t,this.length-8);const r=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)}),c.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||L(t,e,this.length);let r=this[t],i=1,o=0;for(;++o<e&&(i*=256);)r+=this[t+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*e)),r},c.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||L(t,e,this.length);let r=e,i=1,o=this[t+--r];for(;r>0&&(i*=256);)o+=this[t+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},c.prototype.readInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){t>>>=0,e||L(t,2,this.length);const n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(t,e){t>>>=0,e||L(t,2,this.length);const n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readBigInt64LE=Z(function(t){H(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||j(t,this.length-8);const r=this[t+4]+256*this[t+5]+65536*this[t+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)}),c.prototype.readBigInt64BE=Z(function(t){H(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||j(t,this.length-8);const r=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(r)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+n)}),c.prototype.readFloatLE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(t,e,n,r){if(t=+t,e>>>=0,n>>>=0,!r){x(this,t,e,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[e]=255&t;++o<n&&(i*=256);)this[e+o]=t/i&255;return e+n},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(t,e,n,r){if(t=+t,e>>>=0,n>>>=0,!r){x(this,t,e,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,1,255,0),this[e]=255&t,e+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigUInt64LE=Z(function(t,e=0){return R(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Z(function(t,e=0){return F(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){const r=Math.pow(2,8*n-1);x(this,t,e,n,r-1,-r)}let i=0,o=1,s=0;for(this[e]=255&t;++i<n&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+n},c.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e>>>=0,!r){const r=Math.pow(2,8*n-1);x(this,t,e,n,r-1,-r)}let i=n-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+n},c.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},c.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||x(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigInt64LE=Z(function(t,e=0){return R(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Z(function(t,e=0){return F(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeFloatLE=function(t,e,n){return k(this,t,e,!0,n)},c.prototype.writeFloatBE=function(t,e,n){return k(this,t,e,!1,n)},c.prototype.writeDoubleLE=function(t,e,n){return Q(this,t,e,!0,n)},c.prototype.writeDoubleBE=function(t,e,n){return Q(this,t,e,!1,n)},c.prototype.copy=function(t,e,n,r){if(!c.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);const i=r-n;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,n,r):Uint8Array.prototype.set.call(t,this.subarray(n,r),e),i},c.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===t.length){const e=t.charCodeAt(0);("utf8"===r&&e<128||"latin1"===r)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;let i;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(i=e;i<n;++i)this[i]=t;else{const o=c.isBuffer(t)?t:c.from(t,r),s=o.length;if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<n-e;++i)this[i+e]=o[i%s]}return this};const U={};function P(t,e,n){U[t]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function G(t){let e="",n=t.length;const r="-"===t[0]?1:0;for(;n>=r+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function V(t,e,n,r,i,o){if(t>n||t<e){const r="bigint"==typeof e?"n":"";let i;throw i=o>3?0===e||e===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${e}${r} and <= ${n}${r}`,new U.ERR_OUT_OF_RANGE("value",i,t)}!function(t,e,n){H(e,"offset"),void 0!==t[e]&&void 0!==t[e+n]||j(e,t.length-(n+1))}(r,i,o)}function H(t,e){if("number"!=typeof t)throw new U.ERR_INVALID_ARG_TYPE(e,"number",t)}function j(t,e,n){if(Math.floor(t)!==t)throw H(t,n),new U.ERR_OUT_OF_RANGE(n||"offset","an integer",t);if(e<0)throw new U.ERR_BUFFER_OUT_OF_BOUNDS;throw new U.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${e}`,t)}P("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),P("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError),P("ERR_OUT_OF_RANGE",function(t,e,n){let r=`The value of "${t}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=G(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=G(i)),i+="n"),r+=` It must be ${e}. Received ${i}`,r},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function z(t,e){let n;e=e||1/0;const r=t.length;let i=null;const o=[];for(let s=0;s<r;++s){if(n=t.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function J(t){return r.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function W(t,e,n,r){let i;for(i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function q(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function K(t){return t!=t}const X=function(){const t="0123456789abcdef",e=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)e[r+i]=t[n]+t[i]}return e}();function Z(t){return"undefined"==typeof BigInt?$:t}function $(){throw new Error("BigInt not supported")}},8630:(t,e,n)=>{
|
|
20
|
+
/*! *****************************************************************************
|
|
21
|
+
Copyright (C) Microsoft. All rights reserved.
|
|
22
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
23
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
24
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
25
|
+
|
|
26
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
27
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
28
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
29
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
30
|
+
|
|
31
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
32
|
+
and limitations under the License.
|
|
33
|
+
***************************************************************************** */
|
|
34
|
+
var r;!function(t){!function(){var e="object"==typeof globalThis?globalThis:"object"==typeof n.g?n.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(t){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(t){}}(),r=i(t);function i(t,e){return function(n,r){Object.defineProperty(t,n,{configurable:!0,writable:!0,value:r}),e&&e(n,r)}}void 0!==e.Reflect&&(r=i(e.Reflect,r)),function(t,e){var n=Object.prototype.hasOwnProperty,r="function"==typeof Symbol,i=r&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=r&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",s="function"==typeof Object.create,a={__proto__:[]}instanceof Array,c=!s&&!a,l={create:s?function(){return ht(Object.create(null))}:a?function(){return ht({__proto__:null})}:function(){return ht({})},has:c?function(t,e){return n.call(t,e)}:function(t,e){return e in t},get:c?function(t,e){return n.call(t,e)?t[e]:void 0}:function(t,e){return t[e]}},u=Object.getPrototypeOf(Function),h="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:ct(),d="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:lt(),p="function"==typeof WeakMap?WeakMap:ut(),f=r?Symbol.for("@reflect-metadata:registry"):void 0,A=it(),g=ot(A);function E(t,e,n,r){if(k(n)){if(!z(t))throw new TypeError;if(!W(e))throw new TypeError;return M(t,e)}if(!z(t))throw new TypeError;if(!P(e))throw new TypeError;if(!P(r)&&!k(r)&&!Q(r))throw new TypeError;return Q(r)&&(r=void 0),N(t,e,n=Y(n),r)}function m(t,e){function n(n,r){if(!P(n))throw new TypeError;if(!k(r)&&!q(r))throw new TypeError;x(t,e,n,r)}return n}function y(t,e,n,r){if(!P(n))throw new TypeError;return k(r)||(r=Y(r)),x(t,e,n,r)}function w(t,e,n){if(!P(e))throw new TypeError;return k(n)||(n=Y(n)),S(t,e,n)}function I(t,e,n){if(!P(e))throw new TypeError;return k(n)||(n=Y(n)),v(t,e,n)}function C(t,e,n){if(!P(e))throw new TypeError;return k(n)||(n=Y(n)),_(t,e,n)}function B(t,e,n){if(!P(e))throw new TypeError;return k(n)||(n=Y(n)),L(t,e,n)}function T(t,e){if(!P(t))throw new TypeError;return k(e)||(e=Y(e)),R(t,e)}function b(t,e){if(!P(t))throw new TypeError;return k(e)||(e=Y(e)),F(t,e)}function D(t,e,n){if(!P(e))throw new TypeError;if(k(n)||(n=Y(n)),!P(e))throw new TypeError;k(n)||(n=Y(n));var r=at(e,n,!1);return!k(r)&&r.OrdinaryDeleteMetadata(t,e,n)}function M(t,e){for(var n=t.length-1;n>=0;--n){var r=(0,t[n])(e);if(!k(r)&&!Q(r)){if(!W(r))throw new TypeError;e=r}}return e}function N(t,e,n,r){for(var i=t.length-1;i>=0;--i){var o=(0,t[i])(e,n,r);if(!k(o)&&!Q(o)){if(!P(o))throw new TypeError;r=o}}return r}function S(t,e,n){if(v(t,e,n))return!0;var r=nt(e);return!Q(r)&&S(t,r,n)}function v(t,e,n){var r=at(e,n,!1);return!k(r)&&H(r.OrdinaryHasOwnMetadata(t,e,n))}function _(t,e,n){if(v(t,e,n))return L(t,e,n);var r=nt(e);return Q(r)?void 0:_(t,r,n)}function L(t,e,n){var r=at(e,n,!1);if(!k(r))return r.OrdinaryGetOwnMetadata(t,e,n)}function x(t,e,n,r){at(n,r,!0).OrdinaryDefineOwnMetadata(t,e,n,r)}function R(t,e){var n=F(t,e),r=nt(t);if(null===r)return n;var i=R(r,e);if(i.length<=0)return n;if(n.length<=0)return i;for(var o=new d,s=[],a=0,c=n;a<c.length;a++){var l=c[a];o.has(l)||(o.add(l),s.push(l))}for(var u=0,h=i;u<h.length;u++){l=h[u];o.has(l)||(o.add(l),s.push(l))}return s}function F(t,e){var n=at(t,e,!1);return n?n.OrdinaryOwnMetadataKeys(t,e):[]}function O(t){if(null===t)return 1;switch(typeof t){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===t?1:6;default:return 6}}function k(t){return void 0===t}function Q(t){return null===t}function U(t){return"symbol"==typeof t}function P(t){return"object"==typeof t?null!==t:"function"==typeof t}function G(t,e){switch(O(t)){case 0:case 1:case 2:case 3:case 4:case 5:return t}var n=3===e?"string":5===e?"number":"default",r=X(t,i);if(void 0!==r){var o=r.call(t,n);if(P(o))throw new TypeError;return o}return V(t,"default"===n?"number":n)}function V(t,e){if("string"===e){var n=t.toString;if(J(n))if(!P(i=n.call(t)))return i;if(J(r=t.valueOf))if(!P(i=r.call(t)))return i}else{var r;if(J(r=t.valueOf))if(!P(i=r.call(t)))return i;var i,o=t.toString;if(J(o))if(!P(i=o.call(t)))return i}throw new TypeError}function H(t){return!!t}function j(t){return""+t}function Y(t){var e=G(t,3);return U(e)?e:j(e)}function z(t){return Array.isArray?Array.isArray(t):t instanceof Object?t instanceof Array:"[object Array]"===Object.prototype.toString.call(t)}function J(t){return"function"==typeof t}function W(t){return"function"==typeof t}function q(t){switch(O(t)){case 3:case 4:return!0;default:return!1}}function K(t,e){return t===e||t!=t&&e!=e}function X(t,e){var n=t[e];if(null!=n){if(!J(n))throw new TypeError;return n}}function Z(t){var e=X(t,o);if(!J(e))throw new TypeError;var n=e.call(t);if(!P(n))throw new TypeError;return n}function $(t){return t.value}function tt(t){var e=t.next();return!e.done&&e}function et(t){var e=t.return;e&&e.call(t)}function nt(t){var e=Object.getPrototypeOf(t);if("function"!=typeof t||t===u)return e;if(e!==u)return e;var n=t.prototype,r=n&&Object.getPrototypeOf(n);if(null==r||r===Object.prototype)return e;var i=r.constructor;return"function"!=typeof i||i===t?e:i}function rt(){var t,n,r,i;k(f)||void 0===e.Reflect||f in e.Reflect||"function"!=typeof e.Reflect.defineMetadata||(t=st(e.Reflect));var o=new p,s={registerProvider:a,getProvider:l,setProvider:A};return s;function a(e){if(!Object.isExtensible(s))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case t===e:break;case k(n):n=e;break;case n===e:break;case k(r):r=e;break;case r===e:break;default:void 0===i&&(i=new d),i.add(e)}}function c(e,o){if(!k(n)){if(n.isProviderFor(e,o))return n;if(!k(r)){if(r.isProviderFor(e,o))return n;if(!k(i))for(var s=Z(i);;){var a=tt(s);if(!a)return;var c=$(a);if(c.isProviderFor(e,o))return et(s),c}}}if(!k(t)&&t.isProviderFor(e,o))return t}function l(t,e){var n,r=o.get(t);return k(r)||(n=r.get(e)),k(n)?(k(n=c(t,e))||(k(r)&&(r=new h,o.set(t,r)),r.set(e,n)),n):n}function u(t){if(k(t))throw new TypeError;return n===t||r===t||!k(i)&&i.has(t)}function A(t,e,n){if(!u(n))throw new Error("Metadata provider not registered.");var r=l(t,e);if(r!==n){if(!k(r))return!1;var i=o.get(t);k(i)&&(i=new h,o.set(t,i)),i.set(e,n)}return!0}}function it(){var t;return!k(f)&&P(e.Reflect)&&Object.isExtensible(e.Reflect)&&(t=e.Reflect[f]),k(t)&&(t=rt()),!k(f)&&P(e.Reflect)&&Object.isExtensible(e.Reflect)&&Object.defineProperty(e.Reflect,f,{enumerable:!1,configurable:!1,writable:!1,value:t}),t}function ot(t){var e=new p,n={isProviderFor:function(t,n){var r=e.get(t);return!k(r)&&r.has(n)},OrdinaryDefineOwnMetadata:s,OrdinaryHasOwnMetadata:i,OrdinaryGetOwnMetadata:o,OrdinaryOwnMetadataKeys:a,OrdinaryDeleteMetadata:c};return A.registerProvider(n),n;function r(r,i,o){var s=e.get(r),a=!1;if(k(s)){if(!o)return;s=new h,e.set(r,s),a=!0}var c=s.get(i);if(k(c)){if(!o)return;if(c=new h,s.set(i,c),!t.setProvider(r,i,n))throw s.delete(i),a&&e.delete(r),new Error("Wrong provider for target.")}return c}function i(t,e,n){var i=r(e,n,!1);return!k(i)&&H(i.has(t))}function o(t,e,n){var i=r(e,n,!1);if(!k(i))return i.get(t)}function s(t,e,n,i){r(n,i,!0).set(t,e)}function a(t,e){var n=[],i=r(t,e,!1);if(k(i))return n;for(var o=Z(i.keys()),s=0;;){var a=tt(o);if(!a)return n.length=s,n;var c=$(a);try{n[s]=c}catch(t){try{et(o)}finally{throw t}}s++}}function c(t,n,i){var o=r(n,i,!1);if(k(o))return!1;if(!o.delete(t))return!1;if(0===o.size){var s=e.get(n);k(s)||(s.delete(i),0===s.size&&e.delete(s))}return!0}}function st(t){var e=t.defineMetadata,n=t.hasOwnMetadata,r=t.getOwnMetadata,i=t.getOwnMetadataKeys,o=t.deleteMetadata,s=new p;return{isProviderFor:function(t,e){var n=s.get(t);return!(k(n)||!n.has(e))||!!i(t,e).length&&(k(n)&&(n=new d,s.set(t,n)),n.add(e),!0)},OrdinaryDefineOwnMetadata:e,OrdinaryHasOwnMetadata:n,OrdinaryGetOwnMetadata:r,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:o}}function at(t,e,n){var r=A.getProvider(t,e);if(!k(r))return r;if(n){if(A.setProvider(t,e,g))return g;throw new Error("Illegal state.")}}function ct(){var t={},e=[],n=function(){function t(t,e,n){this._index=0,this._keys=t,this._values=e,this._selector=n}return t.prototype["@@iterator"]=function(){return this},t.prototype[o]=function(){return this},t.prototype.next=function(){var t=this._index;if(t>=0&&t<this._keys.length){var n=this._selector(this._keys[t],this._values[t]);return t+1>=this._keys.length?(this._index=-1,this._keys=e,this._values=e):this._index++,{value:n,done:!1}}return{value:void 0,done:!0}},t.prototype.throw=function(t){throw this._index>=0&&(this._index=-1,this._keys=e,this._values=e),t},t.prototype.return=function(t){return this._index>=0&&(this._index=-1,this._keys=e,this._values=e),{value:t,done:!0}},t}();return function(){function e(){this._keys=[],this._values=[],this._cacheKey=t,this._cacheIndex=-2}return Object.defineProperty(e.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),e.prototype.has=function(t){return this._find(t,!1)>=0},e.prototype.get=function(t){var e=this._find(t,!1);return e>=0?this._values[e]:void 0},e.prototype.set=function(t,e){var n=this._find(t,!0);return this._values[n]=e,this},e.prototype.delete=function(e){var n=this._find(e,!1);if(n>=0){for(var r=this._keys.length,i=n+1;i<r;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,K(e,this._cacheKey)&&(this._cacheKey=t,this._cacheIndex=-2),!0}return!1},e.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=t,this._cacheIndex=-2},e.prototype.keys=function(){return new n(this._keys,this._values,r)},e.prototype.values=function(){return new n(this._keys,this._values,i)},e.prototype.entries=function(){return new n(this._keys,this._values,s)},e.prototype["@@iterator"]=function(){return this.entries()},e.prototype[o]=function(){return this.entries()},e.prototype._find=function(t,e){if(!K(this._cacheKey,t)){this._cacheIndex=-1;for(var n=0;n<this._keys.length;n++)if(K(this._keys[n],t)){this._cacheIndex=n;break}}return this._cacheIndex<0&&e&&(this._cacheIndex=this._keys.length,this._keys.push(t),this._values.push(void 0)),this._cacheIndex},e}();function r(t,e){return t}function i(t,e){return e}function s(t,e){return[t,e]}}function lt(){return function(){function t(){this._map=new h}return Object.defineProperty(t.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),t.prototype.has=function(t){return this._map.has(t)},t.prototype.add=function(t){return this._map.set(t,t),this},t.prototype.delete=function(t){return this._map.delete(t)},t.prototype.clear=function(){this._map.clear()},t.prototype.keys=function(){return this._map.keys()},t.prototype.values=function(){return this._map.keys()},t.prototype.entries=function(){return this._map.entries()},t.prototype["@@iterator"]=function(){return this.keys()},t.prototype[o]=function(){return this.keys()},t}()}function ut(){var t=16,e=l.create(),r=i();return function(){function t(){this._key=i()}return t.prototype.has=function(t){var e=o(t,!1);return void 0!==e&&l.has(e,this._key)},t.prototype.get=function(t){var e=o(t,!1);return void 0!==e?l.get(e,this._key):void 0},t.prototype.set=function(t,e){return o(t,!0)[this._key]=e,this},t.prototype.delete=function(t){var e=o(t,!1);return void 0!==e&&delete e[this._key]},t.prototype.clear=function(){this._key=i()},t}();function i(){var t;do{t="@@WeakMap@@"+c()}while(l.has(e,t));return e[t]=!0,t}function o(t,e){if(!n.call(t,r)){if(!e)return;Object.defineProperty(t,r,{value:l.create()})}return t[r]}function s(t,e){for(var n=0;n<e;++n)t[n]=255*Math.random()|0;return t}function a(t){if("function"==typeof Uint8Array){var e=new Uint8Array(t);return"undefined"!=typeof crypto?crypto.getRandomValues(e):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(e):s(e,t),e}return s(new Array(t),t)}function c(){var e=a(t);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var n="",r=0;r<t;++r){var i=e[r];4!==r&&6!==r&&8!==r||(n+="-"),i<16&&(n+="0"),n+=i.toString(16).toLowerCase()}return n}}function ht(t){return t.__=void 0,delete t.__,t}t("decorate",E),t("metadata",m),t("defineMetadata",y),t("hasMetadata",w),t("hasOwnMetadata",I),t("getMetadata",C),t("getOwnMetadata",B),t("getMetadataKeys",T),t("getOwnMetadataKeys",b),t("deleteMetadata",D)}(r,e),void 0===e.Reflect&&(e.Reflect=t)}()}(r||(r={}))},8948:(t,e,n)=>{"use strict";var r=n(7426),i=n(3349);function o(t,e,n){if(!(this instanceof o))return new o(t,e,n);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(e,n))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},o.prototype.update=function(t,e){return this.inner.update(t,e),this},o.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},8955:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.Address4=void 0;var s=o(n(8177)),a=o(n(892)),c=n(9617),l=n(9534),u=n(7604),h=function(){function t(t){this.groups=a.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=s.isCorrect(a.BITS),this.isInSubnet=s.isInSubnet,this.address=t;var e=a.RE_SUBNET_STRING.exec(t);if(e){if(this.parsedSubnet=e[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet="/"+this.subnetMask,this.subnetMask<0||this.subnetMask>a.BITS)throw new c.AddressError("Invalid subnet mask.");t=t.replace(a.RE_SUBNET_STRING,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}return t.isValid=function(e){try{return new t(e),!0}catch(t){return!1}},t.prototype.parse=function(t){var e=t.split(".");if(!t.match(a.RE_ADDRESS))throw new c.AddressError("Invalid IPv4 address.");return e},t.prototype.correctForm=function(){return this.parsedAddress.map(function(t){return parseInt(t,10)}).join(".")},t.fromHex=function(e){var n,r=e.replace(/:/g,"").padStart(8,"0"),i=[];for(n=0;n<8;n+=2){var o=r.slice(n,n+2);i.push(parseInt(o,16))}return new t(i.join("."))},t.fromInteger=function(e){return t.fromHex(e.toString(16))},t.prototype.toHex=function(){return this.parsedAddress.map(function(t){return u.sprintf("%02x",parseInt(t,10))}).join(":")},t.prototype.toArray=function(){return this.parsedAddress.map(function(t){return parseInt(t,10)})},t.prototype.toGroup6=function(){var t,e=[];for(t=0;t<a.GROUPS;t+=2){var n=u.sprintf("%02x%02x",parseInt(this.parsedAddress[t],10),parseInt(this.parsedAddress[t+1],10));e.push(u.sprintf("%x",parseInt(n,16)))}return e.join(":")},t.prototype.bigInteger=function(){return new l.BigInteger(this.parsedAddress.map(function(t){return u.sprintf("%02x",parseInt(t,10))}).join(""),16)},t.prototype._startAddress=function(){return new l.BigInteger(this.mask()+"0".repeat(a.BITS-this.subnetMask),2)},t.prototype.startAddress=function(){return t.fromBigInteger(this._startAddress())},t.prototype.startAddressExclusive=function(){var e=new l.BigInteger("1");return t.fromBigInteger(this._startAddress().add(e))},t.prototype._endAddress=function(){return new l.BigInteger(this.mask()+"1".repeat(a.BITS-this.subnetMask),2)},t.prototype.endAddress=function(){return t.fromBigInteger(this._endAddress())},t.prototype.endAddressExclusive=function(){var e=new l.BigInteger("1");return t.fromBigInteger(this._endAddress().subtract(e))},t.fromBigInteger=function(e){return t.fromInteger(parseInt(e.toString(),10))},t.prototype.mask=function(t){return void 0===t&&(t=this.subnetMask),this.getBitsBase2(0,t)},t.prototype.getBitsBase2=function(t,e){return this.binaryZeroPad().slice(t,e)},t.prototype.isMulticast=function(){return this.isInSubnet(new t("224.0.0.0/4"))},t.prototype.binaryZeroPad=function(){return this.bigInteger().toString(2).padStart(a.BITS,"0")},t.prototype.groupForV6=function(){var t=this.parsedAddress;return this.address.replace(a.RE_ADDRESS,u.sprintf('<span class="hover-group group-v4 group-6">%s</span>.<span class="hover-group group-v4 group-7">%s</span>',t.slice(0,2).join("."),t.slice(2,4).join(".")))},t}();e.Address4=h},9404:function(t,e,n){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(7790).Buffer}catch(t){}function a(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+t)}function c(t,e,n){var r=a(t,n);return n-1>=e&&(r|=a(t,n-1)<<4),r}function l(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),c=e;c<a;c++){var l=t.charCodeAt(c)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function u(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,n):(this._parseBase(t,e,i),"le"===n&&this._initArray(this.toArray(),e,n)))},o.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},o.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,o=0,s=0;if("be"===n)for(r=t.length-1;r>=e;r-=2)i=c(t,e,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)i=c(t,e,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this._strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=e)r++;r--,i=i/e|0;for(var o=t.length-n,s=o%r,a=Math.min(o,o-s)+n,c=0,u=n;u<a;u+=r)c=l(t,u,u+r,e),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==s){var h=1;for(c=l(t,u,t.length,e),u=0;u<s;u++)h*=e;this.imuln(h),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype._move=function(t){u(t,this)},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=h}catch(t){o.prototype.inspect=h}else o.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],c=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?d[6-c.length]+c+n:c+n}for(0!==o&&(n=o.toString(16)+n);n.length%e!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=p[t],u=f[t];n="";var h=this.clone();for(h.negative=0;!h.isZero();){var A=h.modrn(u).toString(t);n=(h=h.idivn(u)).isZero()?A+n:d[l-A.length]+A+n}for(this.isZero()&&(n="0"+n);n.length%e!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(s,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function A(t,e,n){n.negative=e.negative^t.negative;var r=t.length+e.length|0;n.length=r,r=r-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var l=1;l<r;l++){for(var u=c>>>26,h=67108863&c,d=Math.min(l,e.length-1),p=Math.max(0,l-t.length+1);p<=d;p++){var f=l-p|0;u+=(s=(i=0|t.words[f])*(o=0|e.words[p])+h)/67108864|0,h=67108863&s}n.words[l]=0|h,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n._strip()}o.prototype.toArrayLike=function(t,e,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},o.prototype._toArrayLikeLE=function(t,e){for(var n=0,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;t[n++]=255&s,n<t.length&&(t[n++]=s>>8&255),n<t.length&&(t[n++]=s>>16&255),6===o?(n<t.length&&(t[n++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n<t.length)for(t[n++]=r;n<t.length;)t[n++]=0},o.prototype._toArrayLikeBE=function(t,e){for(var n=t.length-1,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;t[n--]=255&s,n>=0&&(t[n--]=s>>8&255),n>=0&&(t[n--]=s>>16&255),6===o?(n>=0&&(t[n--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n>=0)for(t[n--]=r;n>=0;)t[n--]=0},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,n=0;return e>=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 8191&e||(n+=13,e>>>=13),127&e||(n+=7,e>>>=7),15&e||(n+=4,e>>>=4),3&e||(n+=2,e>>>=2),1&e||n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var n=this._zeroBits(this.words[e]);if(t+=n,26!==n)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},o.prototype.ior=function(t){return r(0===(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;n<e.length;n++)this.words[n]=this.words[n]&t.words[n];return this.length=e.length,this._strip()},o.prototype.iand=function(t){return r(0===(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var r=0;r<n.length;r++)this.words[r]=e.words[r]^n.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this._strip()},o.prototype.ixor=function(t){return r(0===(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},o.prototype.iadd=function(t){var e,n,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(n=this,r=t):(n=t,r=this);for(var i=0,o=0;o<r.length;o++)e=(0|n.words[o])+(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<n.length;o++)e=(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,r,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=t):(n=t,r=this);for(var o=0,s=0;s<r.length;s++)o=(e=(0|n.words[s])-(0|r.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<n.length;s++)o=(e=(0|n.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<n.length&&n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this.length=Math.max(this.length,s),n!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var g=function(t,e,n){var r,i,o,s=t.words,a=e.words,c=n.words,l=0,u=0|s[0],h=8191&u,d=u>>>13,p=0|s[1],f=8191&p,A=p>>>13,g=0|s[2],E=8191&g,m=g>>>13,y=0|s[3],w=8191&y,I=y>>>13,C=0|s[4],B=8191&C,T=C>>>13,b=0|s[5],D=8191&b,M=b>>>13,N=0|s[6],S=8191&N,v=N>>>13,_=0|s[7],L=8191&_,x=_>>>13,R=0|s[8],F=8191&R,O=R>>>13,k=0|s[9],Q=8191&k,U=k>>>13,P=0|a[0],G=8191&P,V=P>>>13,H=0|a[1],j=8191&H,Y=H>>>13,z=0|a[2],J=8191&z,W=z>>>13,q=0|a[3],K=8191&q,X=q>>>13,Z=0|a[4],$=8191&Z,tt=Z>>>13,et=0|a[5],nt=8191&et,rt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ct=8191&at,lt=at>>>13,ut=0|a[8],ht=8191&ut,dt=ut>>>13,pt=0|a[9],ft=8191&pt,At=pt>>>13;n.negative=t.negative^e.negative,n.length=19;var gt=(l+(r=Math.imul(h,G))|0)+((8191&(i=(i=Math.imul(h,V))+Math.imul(d,G)|0))<<13)|0;l=((o=Math.imul(d,V))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(f,G),i=(i=Math.imul(f,V))+Math.imul(A,G)|0,o=Math.imul(A,V);var Et=(l+(r=r+Math.imul(h,j)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,j)|0))<<13)|0;l=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(E,G),i=(i=Math.imul(E,V))+Math.imul(m,G)|0,o=Math.imul(m,V),r=r+Math.imul(f,j)|0,i=(i=i+Math.imul(f,Y)|0)+Math.imul(A,j)|0,o=o+Math.imul(A,Y)|0;var mt=(l+(r=r+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,J)|0))<<13)|0;l=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,r=Math.imul(w,G),i=(i=Math.imul(w,V))+Math.imul(I,G)|0,o=Math.imul(I,V),r=r+Math.imul(E,j)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(m,j)|0,o=o+Math.imul(m,Y)|0,r=r+Math.imul(f,J)|0,i=(i=i+Math.imul(f,W)|0)+Math.imul(A,J)|0,o=o+Math.imul(A,W)|0;var yt=(l+(r=r+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(d,K)|0))<<13)|0;l=((o=o+Math.imul(d,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(B,G),i=(i=Math.imul(B,V))+Math.imul(T,G)|0,o=Math.imul(T,V),r=r+Math.imul(w,j)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(I,j)|0,o=o+Math.imul(I,Y)|0,r=r+Math.imul(E,J)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(m,J)|0,o=o+Math.imul(m,W)|0,r=r+Math.imul(f,K)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,X)|0;var wt=(l+(r=r+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,$)|0))<<13)|0;l=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(D,G),i=(i=Math.imul(D,V))+Math.imul(M,G)|0,o=Math.imul(M,V),r=r+Math.imul(B,j)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(T,j)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(w,J)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(I,J)|0,o=o+Math.imul(I,W)|0,r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,X)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,tt)|0)+Math.imul(A,$)|0,o=o+Math.imul(A,tt)|0;var It=(l+(r=r+Math.imul(h,nt)|0)|0)+((8191&(i=(i=i+Math.imul(h,rt)|0)+Math.imul(d,nt)|0))<<13)|0;l=((o=o+Math.imul(d,rt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(S,G),i=(i=Math.imul(S,V))+Math.imul(v,G)|0,o=Math.imul(v,V),r=r+Math.imul(D,j)|0,i=(i=i+Math.imul(D,Y)|0)+Math.imul(M,j)|0,o=o+Math.imul(M,Y)|0,r=r+Math.imul(B,J)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,W)|0,r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(I,K)|0,o=o+Math.imul(I,X)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0,r=r+Math.imul(f,nt)|0,i=(i=i+Math.imul(f,rt)|0)+Math.imul(A,nt)|0,o=o+Math.imul(A,rt)|0;var Ct=(l+(r=r+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(d,ot)|0))<<13)|0;l=((o=o+Math.imul(d,st)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(L,G),i=(i=Math.imul(L,V))+Math.imul(x,G)|0,o=Math.imul(x,V),r=r+Math.imul(S,j)|0,i=(i=i+Math.imul(S,Y)|0)+Math.imul(v,j)|0,o=o+Math.imul(v,Y)|0,r=r+Math.imul(D,J)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(M,J)|0,o=o+Math.imul(M,W)|0,r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,X)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,tt)|0,r=r+Math.imul(E,nt)|0,i=(i=i+Math.imul(E,rt)|0)+Math.imul(m,nt)|0,o=o+Math.imul(m,rt)|0,r=r+Math.imul(f,ot)|0,i=(i=i+Math.imul(f,st)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,st)|0;var Bt=(l+(r=r+Math.imul(h,ct)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(d,ct)|0))<<13)|0;l=((o=o+Math.imul(d,lt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,r=Math.imul(F,G),i=(i=Math.imul(F,V))+Math.imul(O,G)|0,o=Math.imul(O,V),r=r+Math.imul(L,j)|0,i=(i=i+Math.imul(L,Y)|0)+Math.imul(x,j)|0,o=o+Math.imul(x,Y)|0,r=r+Math.imul(S,J)|0,i=(i=i+Math.imul(S,W)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,W)|0,r=r+Math.imul(D,K)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(M,K)|0,o=o+Math.imul(M,X)|0,r=r+Math.imul(B,$)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(w,nt)|0,i=(i=i+Math.imul(w,rt)|0)+Math.imul(I,nt)|0,o=o+Math.imul(I,rt)|0,r=r+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0,r=r+Math.imul(f,ct)|0,i=(i=i+Math.imul(f,lt)|0)+Math.imul(A,ct)|0,o=o+Math.imul(A,lt)|0;var Tt=(l+(r=r+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;l=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(Q,G),i=(i=Math.imul(Q,V))+Math.imul(U,G)|0,o=Math.imul(U,V),r=r+Math.imul(F,j)|0,i=(i=i+Math.imul(F,Y)|0)+Math.imul(O,j)|0,o=o+Math.imul(O,Y)|0,r=r+Math.imul(L,J)|0,i=(i=i+Math.imul(L,W)|0)+Math.imul(x,J)|0,o=o+Math.imul(x,W)|0,r=r+Math.imul(S,K)|0,i=(i=i+Math.imul(S,X)|0)+Math.imul(v,K)|0,o=o+Math.imul(v,X)|0,r=r+Math.imul(D,$)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,tt)|0,r=r+Math.imul(B,nt)|0,i=(i=i+Math.imul(B,rt)|0)+Math.imul(T,nt)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,r=r+Math.imul(E,ct)|0,i=(i=i+Math.imul(E,lt)|0)+Math.imul(m,ct)|0,o=o+Math.imul(m,lt)|0,r=r+Math.imul(f,ht)|0,i=(i=i+Math.imul(f,dt)|0)+Math.imul(A,ht)|0,o=o+Math.imul(A,dt)|0;var bt=(l+(r=r+Math.imul(h,ft)|0)|0)+((8191&(i=(i=i+Math.imul(h,At)|0)+Math.imul(d,ft)|0))<<13)|0;l=((o=o+Math.imul(d,At)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(Q,j),i=(i=Math.imul(Q,Y))+Math.imul(U,j)|0,o=Math.imul(U,Y),r=r+Math.imul(F,J)|0,i=(i=i+Math.imul(F,W)|0)+Math.imul(O,J)|0,o=o+Math.imul(O,W)|0,r=r+Math.imul(L,K)|0,i=(i=i+Math.imul(L,X)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,X)|0,r=r+Math.imul(S,$)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,tt)|0,r=r+Math.imul(D,nt)|0,i=(i=i+Math.imul(D,rt)|0)+Math.imul(M,nt)|0,o=o+Math.imul(M,rt)|0,r=r+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,r=r+Math.imul(w,ct)|0,i=(i=i+Math.imul(w,lt)|0)+Math.imul(I,ct)|0,o=o+Math.imul(I,lt)|0,r=r+Math.imul(E,ht)|0,i=(i=i+Math.imul(E,dt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,dt)|0;var Dt=(l+(r=r+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,At)|0)+Math.imul(A,ft)|0))<<13)|0;l=((o=o+Math.imul(A,At)|0)+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,r=Math.imul(Q,J),i=(i=Math.imul(Q,W))+Math.imul(U,J)|0,o=Math.imul(U,W),r=r+Math.imul(F,K)|0,i=(i=i+Math.imul(F,X)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,X)|0,r=r+Math.imul(L,$)|0,i=(i=i+Math.imul(L,tt)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,tt)|0,r=r+Math.imul(S,nt)|0,i=(i=i+Math.imul(S,rt)|0)+Math.imul(v,nt)|0,o=o+Math.imul(v,rt)|0,r=r+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,r=r+Math.imul(B,ct)|0,i=(i=i+Math.imul(B,lt)|0)+Math.imul(T,ct)|0,o=o+Math.imul(T,lt)|0,r=r+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(I,ht)|0,o=o+Math.imul(I,dt)|0;var Mt=(l+(r=r+Math.imul(E,ft)|0)|0)+((8191&(i=(i=i+Math.imul(E,At)|0)+Math.imul(m,ft)|0))<<13)|0;l=((o=o+Math.imul(m,At)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(Q,K),i=(i=Math.imul(Q,X))+Math.imul(U,K)|0,o=Math.imul(U,X),r=r+Math.imul(F,$)|0,i=(i=i+Math.imul(F,tt)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,tt)|0,r=r+Math.imul(L,nt)|0,i=(i=i+Math.imul(L,rt)|0)+Math.imul(x,nt)|0,o=o+Math.imul(x,rt)|0,r=r+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,st)|0,r=r+Math.imul(D,ct)|0,i=(i=i+Math.imul(D,lt)|0)+Math.imul(M,ct)|0,o=o+Math.imul(M,lt)|0,r=r+Math.imul(B,ht)|0,i=(i=i+Math.imul(B,dt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,dt)|0;var Nt=(l+(r=r+Math.imul(w,ft)|0)|0)+((8191&(i=(i=i+Math.imul(w,At)|0)+Math.imul(I,ft)|0))<<13)|0;l=((o=o+Math.imul(I,At)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,r=Math.imul(Q,$),i=(i=Math.imul(Q,tt))+Math.imul(U,$)|0,o=Math.imul(U,tt),r=r+Math.imul(F,nt)|0,i=(i=i+Math.imul(F,rt)|0)+Math.imul(O,nt)|0,o=o+Math.imul(O,rt)|0,r=r+Math.imul(L,ot)|0,i=(i=i+Math.imul(L,st)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,st)|0,r=r+Math.imul(S,ct)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(v,ct)|0,o=o+Math.imul(v,lt)|0,r=r+Math.imul(D,ht)|0,i=(i=i+Math.imul(D,dt)|0)+Math.imul(M,ht)|0,o=o+Math.imul(M,dt)|0;var St=(l+(r=r+Math.imul(B,ft)|0)|0)+((8191&(i=(i=i+Math.imul(B,At)|0)+Math.imul(T,ft)|0))<<13)|0;l=((o=o+Math.imul(T,At)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(Q,nt),i=(i=Math.imul(Q,rt))+Math.imul(U,nt)|0,o=Math.imul(U,rt),r=r+Math.imul(F,ot)|0,i=(i=i+Math.imul(F,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,r=r+Math.imul(L,ct)|0,i=(i=i+Math.imul(L,lt)|0)+Math.imul(x,ct)|0,o=o+Math.imul(x,lt)|0,r=r+Math.imul(S,ht)|0,i=(i=i+Math.imul(S,dt)|0)+Math.imul(v,ht)|0,o=o+Math.imul(v,dt)|0;var vt=(l+(r=r+Math.imul(D,ft)|0)|0)+((8191&(i=(i=i+Math.imul(D,At)|0)+Math.imul(M,ft)|0))<<13)|0;l=((o=o+Math.imul(M,At)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(Q,ot),i=(i=Math.imul(Q,st))+Math.imul(U,ot)|0,o=Math.imul(U,st),r=r+Math.imul(F,ct)|0,i=(i=i+Math.imul(F,lt)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,lt)|0,r=r+Math.imul(L,ht)|0,i=(i=i+Math.imul(L,dt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,dt)|0;var _t=(l+(r=r+Math.imul(S,ft)|0)|0)+((8191&(i=(i=i+Math.imul(S,At)|0)+Math.imul(v,ft)|0))<<13)|0;l=((o=o+Math.imul(v,At)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(Q,ct),i=(i=Math.imul(Q,lt))+Math.imul(U,ct)|0,o=Math.imul(U,lt),r=r+Math.imul(F,ht)|0,i=(i=i+Math.imul(F,dt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,dt)|0;var Lt=(l+(r=r+Math.imul(L,ft)|0)|0)+((8191&(i=(i=i+Math.imul(L,At)|0)+Math.imul(x,ft)|0))<<13)|0;l=((o=o+Math.imul(x,At)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,r=Math.imul(Q,ht),i=(i=Math.imul(Q,dt))+Math.imul(U,ht)|0,o=Math.imul(U,dt);var xt=(l+(r=r+Math.imul(F,ft)|0)|0)+((8191&(i=(i=i+Math.imul(F,At)|0)+Math.imul(O,ft)|0))<<13)|0;l=((o=o+Math.imul(O,At)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863;var Rt=(l+(r=Math.imul(Q,ft))|0)+((8191&(i=(i=Math.imul(Q,At))+Math.imul(U,ft)|0))<<13)|0;return l=((o=Math.imul(U,At))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,c[0]=gt,c[1]=Et,c[2]=mt,c[3]=yt,c[4]=wt,c[5]=It,c[6]=Ct,c[7]=Bt,c[8]=Tt,c[9]=bt,c[10]=Dt,c[11]=Mt,c[12]=Nt,c[13]=St,c[14]=vt,c[15]=_t,c[16]=Lt,c[17]=xt,c[18]=Rt,0!==l&&(c[19]=l,n.length++),n};function E(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var r=0,i=0,o=0;o<n.length-1;o++){var s=i;i=0;for(var a=67108863&r,c=Math.min(o,e.length-1),l=Math.max(0,o-t.length+1);l<=c;l++){var u=o-l,h=(0|t.words[u])*(0|e.words[l]),d=67108863&h;a=67108863&(d=d+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n._strip()}function m(t,e,n){return E(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=A),o.prototype.mulTo=function(t,e){var n=this.length+t.length;return 10===this.length&&10===t.length?g(this,t,e):n<63?A(this,t,e):n<1024?E(this,t,e):m(this,t,e)},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,n,t);return e},y.prototype.revBin=function(t,e,n){if(0===t||t===n-1)return t;for(var r=0,i=0;i<e;i++)r|=(1&t)<<e-i-1,t>>=1;return r},y.prototype.permute=function(t,e,n,r,i,o){for(var s=0;s<o;s++)r[s]=e[t[s]],i[s]=n[t[s]]},y.prototype.transform=function(t,e,n,r,i,o){this.permute(o,t,e,n,r,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,c=Math.cos(2*Math.PI/a),l=Math.sin(2*Math.PI/a),u=0;u<i;u+=a)for(var h=c,d=l,p=0;p<s;p++){var f=n[u+p],A=r[u+p],g=n[u+p+s],E=r[u+p+s],m=h*g-d*E;E=h*E+d*g,g=m,n[u+p]=f+g,r[u+p]=A+E,n[u+p+s]=f-g,r[u+p+s]=A-E,p!==a&&(m=c*h-l*d,d=c*d+l*h,h=m)}},y.prototype.guessLen13b=function(t,e){var n=1|Math.max(e,t),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},y.prototype.conjugate=function(t,e,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=t[r];t[r]=t[n-r-1],t[n-r-1]=i,i=e[r],e[r]=-e[n-r-1],e[n-r-1]=-i}},y.prototype.normalize13b=function(t,e){for(var n=0,r=0;r<e/2;r++){var i=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+n;t[r]=67108863&i,n=i<67108864?0:i/67108864|0}return t},y.prototype.convert13b=function(t,e,n,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],n[2*s]=8191&o,o>>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)n[s]=0;r(0===o),r(!(-8192&o))},y.prototype.stub=function(t){for(var e=new Array(t),n=0;n<t;n++)e[n]=0;return e},y.prototype.mulp=function(t,e,n){var r=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(r),o=this.stub(r),s=new Array(r),a=new Array(r),c=new Array(r),l=new Array(r),u=new Array(r),h=new Array(r),d=n.words;d.length=r,this.convert13b(t.words,t.length,s,r),this.convert13b(e.words,e.length,l,r),this.transform(s,o,a,c,r,i),this.transform(l,o,u,h,r,i);for(var p=0;p<r;p++){var f=a[p]*u[p]-c[p]*h[p];c[p]=a[p]*h[p]+c[p]*u[p],a[p]=f}return this.conjugate(a,c,r),this.transform(a,c,d,o,r,i),this.conjugate(d,o,r),this.normalize13b(d,r),n.negative=t.negative^e.negative,n.length=t.length+e.length,n._strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),this.length=0===t?1:this.length,e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),n=0;n<e.length;n++){var r=n/26|0,i=n%26;e[n]=t.words[r]>>>i&1}return e}(t);if(0===e.length)return new o(1);for(var n=this,r=0;r<e.length&&0===e[r];r++,n=n.sqr());if(++r<e.length)for(var i=n.sqr();r<e.length;r++,i=i.sqr())0!==e[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,c=(0|this.words[e])-a<<n;this.words[e]=c|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,c=n;if(i-=s,i=Math.max(0,i),c){for(var l=0;l<s;l++)c.words[l]=this.words[l];c.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var u=0;for(l=this.length-1;l>=0&&(0!==u||l>=i);l--){var h=0|this.words[l];this.words[l]=u<<26-o|h>>>o,u=h&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<<e;return!(this.length<=n)&&!!(this.words[n]&i)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this._strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,n){var i,o,s=t.length+n;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+a;var c=(0|t.words[i])*e;a=((o-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)a=(o=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&o;if(0===a)return this._strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var n=(this.length,t.length),r=this.clone(),i=t,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==e){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var u=r.clone()._ishlnsubmul(i,1,c);0===u.negative&&(r=u,a&&(a.words[c]=1));for(var h=c-1;h>=0;h--){var d=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,h);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=d)}return a&&a._strip(),r._strip(),"div"!==e&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!==(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),i=t.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),l=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),h=e.clone();!e.isZero();){for(var d=0,p=1;0===(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(u),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var f=0,A=1;0===(n.words[0]&A)&&f<26;++f,A<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(h)),a.iushrn(1),c.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(a),s.isub(c)):(n.isub(e),a.isub(i),c.isub(s))}return{a,b:c,gcd:n.iushln(l)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0===(e.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(e.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,d=1;0===(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var r=0;e.isEven()&&n.isEven();r++)e.iushrn(1),n.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=e.cmp(n);if(i<0){var o=e;e=n,n=o}else if(0===i||0===n.cmpn(1))break;e.isub(n)}return n.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|t.words[n];if(r!==i){r<i?e=-1:r>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new D(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var w={k256:null,p224:null,p192:null,p25519:null};function I(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function C(){I.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function B(){I.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){I.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function b(){I.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function D(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function M(t){D.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}I.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},I.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),e=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},I.prototype.split=function(t,e){t.iushrn(this.n,0,e)},I.prototype.imulK=function(t){return t.imul(this.k)},i(C,I),C.prototype.split=function(t,e){for(var n=4194303,r=Math.min(t.length,9),i=0;i<r;i++)e.words[i]=t.words[i];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&n,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&n)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},C.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n<t.length;n++){var r=0|t.words[n];e+=977*r,t.words[n]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(B,I),i(T,I),i(b,I),b.prototype.imulK=function(t){for(var e=0,n=0;n<t.length;n++){var r=19*(0|t.words[n])+e,i=67108863&r;r>>>=26,t.words[n]=i,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(w[t])return w[t];var e;if("k256"===t)e=new C;else if("p224"===t)e=new B;else if("p192"===t)e=new T;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new b}return w[t]=e,e},D.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},D.prototype._verify2=function(t,e){r(0===(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},D.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(u(t,t.umod(this.m)._forceRed(this)),t)},D.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},D.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},D.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},D.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},D.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},D.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},D.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},D.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},D.prototype.isqr=function(t){return this.imul(t,t.clone())},D.prototype.sqr=function(t){return this.mul(t,t)},D.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new o(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var h=this.pow(u,i),d=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),f=s;0!==p.cmp(a);){for(var A=p,g=0;0!==A.cmp(a);g++)A=A.redSqr();r(g<f);var E=this.pow(h,new o(1).iushln(f-g-1));d=d.redMul(E),h=E.redSqr(),p=p.redMul(h),f=g}return d},D.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},D.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=t;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],t);var i=n[0],s=0,a=0,c=e.bitLength()%26;for(0===c&&(c=26),r=e.length-1;r>=0;r--){for(var l=e.words[r],u=c-1;u>=0;u--){var h=l>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===u)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},D.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},D.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new M(t)},i(M,D),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},M.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=n.nmd(t),this)},9424:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.v6=e.Address6=e.Address4=void 0;var s=n(8955);Object.defineProperty(e,"Address4",{enumerable:!0,get:function(){return s.Address4}});var a=n(2861);Object.defineProperty(e,"Address6",{enumerable:!0,get:function(){return a.Address6}});var c=o(n(4994));e.v6={helpers:c}},9534:function(t,e){(function(){var e;function n(t,e,n){null!=t&&("number"==typeof t?this.fromNumber(t,e,n):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}function r(){return new n(null)}var i="undefined"!=typeof navigator;i&&"Microsoft Internet Explorer"==navigator.appName?(n.prototype.am=function(t,e,n,r,i,o){for(var s=32767&e,a=e>>15;--o>=0;){var c=32767&this[t],l=this[t++]>>15,u=a*c+l*s;i=((c=s*c+((32767&u)<<15)+n[r]+(1073741823&i))>>>30)+(u>>>15)+a*l+(i>>>30),n[r++]=1073741823&c}return i},e=30):i&&"Netscape"!=navigator.appName?(n.prototype.am=function(t,e,n,r,i,o){for(;--o>=0;){var s=e*this[t++]+n[r]+i;i=Math.floor(s/67108864),n[r++]=67108863&s}return i},e=26):(n.prototype.am=function(t,e,n,r,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var c=16383&this[t],l=this[t++]>>14,u=a*c+l*s;i=((c=s*c+((16383&u)<<14)+n[r]+i)>>28)+(u>>14)+a*l,n[r++]=268435455&c}return i},e=28),n.prototype.DB=e,n.prototype.DM=(1<<e)-1,n.prototype.DV=1<<e;n.prototype.FV=Math.pow(2,52),n.prototype.F1=52-e,n.prototype.F2=2*e-52;var o,s,a=new Array;for(o="0".charCodeAt(0),s=0;s<=9;++s)a[o++]=s;for(o="a".charCodeAt(0),s=10;s<36;++s)a[o++]=s;for(o="A".charCodeAt(0),s=10;s<36;++s)a[o++]=s;function c(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function l(t,e){var n=a[t.charCodeAt(e)];return null==n?-1:n}function u(t){var e=r();return e.fromInt(t),e}function h(t){var e,n=1;return 0!=(e=t>>>16)&&(t=e,n+=16),0!=(e=t>>8)&&(t=e,n+=8),0!=(e=t>>4)&&(t=e,n+=4),0!=(e=t>>2)&&(t=e,n+=2),0!=(e=t>>1)&&(t=e,n+=1),n}function d(t){this.m=t}function p(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function f(t,e){return t&e}function A(t,e){return t|e}function g(t,e){return t^e}function E(t,e){return t&~e}function m(t){if(0==t)return-1;var e=0;return 65535&t||(t>>=16,e+=16),255&t||(t>>=8,e+=8),15&t||(t>>=4,e+=4),3&t||(t>>=2,e+=2),1&t||++e,e}function y(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function w(){}function I(t){return t}function C(t){this.r2=r(),this.q3=r(),n.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}d.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},d.prototype.revert=function(t){return t},d.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},d.prototype.mulTo=function(t,e,n){t.multiplyTo(e,n),this.reduce(n)},d.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},p.prototype.convert=function(t){var e=r();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(n.ZERO)>0&&this.m.subTo(e,e),e},p.prototype.revert=function(t){var e=r();return t.copyTo(e),this.reduce(e),e},p.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var n=32767&t[e],r=n*this.mpl+((n*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[n=e+this.m.t]+=this.m.am(0,r,t,e,0,this.m.t);t[n]>=t.DV;)t[n]-=t.DV,t[++n]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},p.prototype.mulTo=function(t,e,n){t.multiplyTo(e,n),this.reduce(n)},p.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},n.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},n.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},n.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var i=t.length,o=!1,s=0;--i>=0;){var a=8==r?255&t[i]:l(t,i);a<0?"-"==t.charAt(i)&&(o=!0):(o=!1,0==s?this[this.t++]=a:s+r>this.DB?(this[this.t-1]|=(a&(1<<this.DB-s)-1)<<s,this[this.t++]=a>>this.DB-s):this[this.t-1]|=a<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&128&t[0]&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),o&&n.ZERO.subTo(this,this)},n.prototype.clamp=function(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},n.prototype.dlShiftTo=function(t,e){var n;for(n=this.t-1;n>=0;--n)e[n+t]=this[n];for(n=t-1;n>=0;--n)e[n]=0;e.t=this.t+t,e.s=this.s},n.prototype.drShiftTo=function(t,e){for(var n=t;n<this.t;++n)e[n-t]=this[n];e.t=Math.max(this.t-t,0),e.s=this.s},n.prototype.lShiftTo=function(t,e){var n,r=t%this.DB,i=this.DB-r,o=(1<<i)-1,s=Math.floor(t/this.DB),a=this.s<<r&this.DM;for(n=this.t-1;n>=0;--n)e[n+s+1]=this[n]>>i|a,a=(this[n]&o)<<r;for(n=s-1;n>=0;--n)e[n]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},n.prototype.rShiftTo=function(t,e){e.s=this.s;var n=Math.floor(t/this.DB);if(n>=this.t)e.t=0;else{var r=t%this.DB,i=this.DB-r,o=(1<<r)-1;e[0]=this[n]>>r;for(var s=n+1;s<this.t;++s)e[s-n-1]|=(this[s]&o)<<i,e[s-n]=this[s]>>r;r>0&&(e[this.t-n-1]|=(this.s&o)<<i),e.t=this.t-n,e.clamp()}},n.prototype.subTo=function(t,e){for(var n=0,r=0,i=Math.min(t.t,this.t);n<i;)r+=this[n]-t[n],e[n++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r-=t.s;n<this.t;)r+=this[n],e[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<t.t;)r-=t[n],e[n++]=r&this.DM,r>>=this.DB;r-=t.s}e.s=r<0?-1:0,r<-1?e[n++]=this.DV+r:r>0&&(e[n++]=r),e.t=n,e.clamp()},n.prototype.multiplyTo=function(t,e){var r=this.abs(),i=t.abs(),o=r.t;for(e.t=o+i.t;--o>=0;)e[o]=0;for(o=0;o<i.t;++o)e[o+r.t]=r.am(0,i[o],e,o,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&n.ZERO.subTo(e,e)},n.prototype.squareTo=function(t){for(var e=this.abs(),n=t.t=2*e.t;--n>=0;)t[n]=0;for(n=0;n<e.t-1;++n){var r=e.am(n,e[n],t,2*n,0,1);(t[n+e.t]+=e.am(n+1,2*e[n],t,2*n+1,r,e.t-n-1))>=e.DV&&(t[n+e.t]-=e.DV,t[n+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(n,e[n],t,2*n,0,1)),t.s=0,t.clamp()},n.prototype.divRemTo=function(t,e,i){var o=t.abs();if(!(o.t<=0)){var s=this.abs();if(s.t<o.t)return null!=e&&e.fromInt(0),void(null!=i&&this.copyTo(i));null==i&&(i=r());var a=r(),c=this.s,l=t.s,u=this.DB-h(o[o.t-1]);u>0?(o.lShiftTo(u,a),s.lShiftTo(u,i)):(o.copyTo(a),s.copyTo(i));var d=a.t,p=a[d-1];if(0!=p){var f=p*(1<<this.F1)+(d>1?a[d-2]>>this.F2:0),A=this.FV/f,g=(1<<this.F1)/f,E=1<<this.F2,m=i.t,y=m-d,w=null==e?r():e;for(a.dlShiftTo(y,w),i.compareTo(w)>=0&&(i[i.t++]=1,i.subTo(w,i)),n.ONE.dlShiftTo(d,w),w.subTo(a,a);a.t<d;)a[a.t++]=0;for(;--y>=0;){var I=i[--m]==p?this.DM:Math.floor(i[m]*A+(i[m-1]+E)*g);if((i[m]+=a.am(0,I,i,y,0,d))<I)for(a.dlShiftTo(y,w),i.subTo(w,i);i[m]<--I;)i.subTo(w,i)}null!=e&&(i.drShiftTo(d,e),c!=l&&n.ZERO.subTo(e,e)),i.t=d,i.clamp(),u>0&&i.rShiftTo(u,i),c<0&&n.ZERO.subTo(i,i)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(!(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(t,e){if(t>4294967295||t<1)return n.ONE;var i=r(),o=r(),s=e.convert(this),a=h(t)-1;for(s.copyTo(i);--a>=0;)if(e.sqrTo(i,o),(t&1<<a)>0)e.mulTo(o,s,i);else{var c=i;i=o,o=c}return e.revert(i)},n.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var n,r=(1<<e)-1,i=!1,o="",s=this.t,a=this.DB-s*this.DB%e;if(s-- >0)for(a<this.DB&&(n=this[s]>>a)>0&&(i=!0,o=c(n));s>=0;)a<e?(n=(this[s]&(1<<a)-1)<<e-a,n|=this[--s]>>(a+=this.DB-e)):(n=this[s]>>(a-=e)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=c(n));return i?o:"0"},n.prototype.negate=function(){var t=r();return n.ZERO.subTo(this,t),t},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var n=this.t;if(0!=(e=n-t.t))return this.s<0?-e:e;for(;--n>=0;)if(0!=(e=this[n]-t[n]))return e;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+h(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(t){var e=r();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(n.ZERO)>0&&t.subTo(e,e),e},n.prototype.modPowInt=function(t,e){var n;return n=t<256||e.isEven()?new d(e):new p(e),this.exp(t,n)},n.ZERO=u(0),n.ONE=u(1),w.prototype.convert=I,w.prototype.revert=I,w.prototype.mulTo=function(t,e,n){t.multiplyTo(e,n)},w.prototype.sqrTo=function(t,e){t.squareTo(e)},C.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=r();return t.copyTo(e),this.reduce(e),e},C.prototype.revert=function(t){return t},C.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},C.prototype.mulTo=function(t,e,n){t.multiplyTo(e,n),this.reduce(n)},C.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var B,T,b,D=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],M=(1<<26)/D[D.length-1];function N(){var t;t=(new Date).getTime(),T[b++]^=255&t,T[b++]^=t>>8&255,T[b++]^=t>>16&255,T[b++]^=t>>24&255,b>=F&&(b-=F)}if(n.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},n.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),n=Math.pow(t,e),i=u(n),o=r(),s=r(),a="";for(this.divRemTo(i,o,s);o.signum()>0;)a=(n+s.intValue()).toString(t).substr(1)+a,o.divRemTo(i,o,s);return s.intValue().toString(t)+a},n.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),i=Math.pow(e,r),o=!1,s=0,a=0,c=0;c<t.length;++c){var u=l(t,c);u<0?"-"==t.charAt(c)&&0==this.signum()&&(o=!0):(a=e*a+u,++s>=r&&(this.dMultiply(i),this.dAddOffset(a,0),s=0,a=0))}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(a,0)),o&&n.ZERO.subTo(this,this)},n.prototype.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(n.ONE.shiftLeft(t-1),A,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(n.ONE.shiftLeft(t-1),this);else{var i=new Array,o=7&t;i.length=1+(t>>3),e.nextBytes(i),o>0?i[0]&=(1<<o)-1:i[0]=0,this.fromString(i,256)}},n.prototype.bitwiseTo=function(t,e,n){var r,i,o=Math.min(t.t,this.t);for(r=0;r<o;++r)n[r]=e(this[r],t[r]);if(t.t<this.t){for(i=t.s&this.DM,r=o;r<this.t;++r)n[r]=e(this[r],i);n.t=this.t}else{for(i=this.s&this.DM,r=o;r<t.t;++r)n[r]=e(i,t[r]);n.t=t.t}n.s=e(this.s,t.s),n.clamp()},n.prototype.changeBit=function(t,e){var r=n.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r},n.prototype.addTo=function(t,e){for(var n=0,r=0,i=Math.min(t.t,this.t);n<i;)r+=this[n]+t[n],e[n++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r+=t.s;n<this.t;)r+=this[n],e[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<t.t;)r+=t[n],e[n++]=r&this.DM,r>>=this.DB;r+=t.s}e.s=r<0?-1:0,r>0?e[n++]=r:r<-1&&(e[n++]=this.DV+r),e.t=n,e.clamp()},n.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},n.prototype.multiplyLowerTo=function(t,e,n){var r,i=Math.min(this.t+t.t,e);for(n.s=0,n.t=i;i>0;)n[--i]=0;for(r=n.t-this.t;i<r;++i)n[i+this.t]=this.am(0,t[i],n,i,0,this.t);for(r=Math.min(t.t,e);i<r;++i)this.am(0,t[i],n,i,0,e-i);n.clamp()},n.prototype.multiplyUpperTo=function(t,e,n){--e;var r=n.t=this.t+t.t-e;for(n.s=0;--r>=0;)n[r]=0;for(r=Math.max(e-this.t,0);r<t.t;++r)n[this.t+r-e]=this.am(e-r,t[r],n,0,0,this.t+r-e);n.clamp(),n.drShiftTo(1,n)},n.prototype.modInt=function(t){if(t<=0)return 0;var e=this.DV%t,n=this.s<0?t-1:0;if(this.t>0)if(0==e)n=this[0]%t;else for(var r=this.t-1;r>=0;--r)n=(e*n+this[r])%t;return n},n.prototype.millerRabin=function(t){var e=this.subtract(n.ONE),i=e.getLowestSetBit();if(i<=0)return!1;var o=e.shiftRight(i);(t=t+1>>1)>D.length&&(t=D.length);for(var s=r(),a=0;a<t;++a){s.fromInt(D[Math.floor(Math.random()*D.length)]);var c=s.modPow(o,this);if(0!=c.compareTo(n.ONE)&&0!=c.compareTo(e)){for(var l=1;l++<i&&0!=c.compareTo(e);)if(0==(c=c.modPowInt(2,this)).compareTo(n.ONE))return!1;if(0!=c.compareTo(e))return!1}}return!0},n.prototype.clone=function(){var t=r();return this.copyTo(t),t},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},n.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},n.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var n,r=this.DB-t*this.DB%8,i=0;if(t-- >0)for(r<this.DB&&(n=this[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this[t]&(1<<r)-1)<<8-r,n|=this[--t]>>(r+=this.DB-8)):(n=this[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),128&n&&(n|=-256),0==i&&(128&this.s)!=(128&n)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e},n.prototype.equals=function(t){return 0==this.compareTo(t)},n.prototype.min=function(t){return this.compareTo(t)<0?this:t},n.prototype.max=function(t){return this.compareTo(t)>0?this:t},n.prototype.and=function(t){var e=r();return this.bitwiseTo(t,f,e),e},n.prototype.or=function(t){var e=r();return this.bitwiseTo(t,A,e),e},n.prototype.xor=function(t){var e=r();return this.bitwiseTo(t,g,e),e},n.prototype.andNot=function(t){var e=r();return this.bitwiseTo(t,E,e),e},n.prototype.not=function(){for(var t=r(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},n.prototype.shiftLeft=function(t){var e=r();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},n.prototype.shiftRight=function(t){var e=r();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},n.prototype.getLowestSetBit=function(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+m(this[t]);return this.s<0?this.t*this.DB:-1},n.prototype.bitCount=function(){for(var t=0,e=this.s&this.DM,n=0;n<this.t;++n)t+=y(this[n]^e);return t},n.prototype.testBit=function(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:!!(this[e]&1<<t%this.DB)},n.prototype.setBit=function(t){return this.changeBit(t,A)},n.prototype.clearBit=function(t){return this.changeBit(t,E)},n.prototype.flipBit=function(t){return this.changeBit(t,g)},n.prototype.add=function(t){var e=r();return this.addTo(t,e),e},n.prototype.subtract=function(t){var e=r();return this.subTo(t,e),e},n.prototype.multiply=function(t){var e=r();return this.multiplyTo(t,e),e},n.prototype.divide=function(t){var e=r();return this.divRemTo(t,e,null),e},n.prototype.remainder=function(t){var e=r();return this.divRemTo(t,null,e),e},n.prototype.divideAndRemainder=function(t){var e=r(),n=r();return this.divRemTo(t,e,n),new Array(e,n)},n.prototype.modPow=function(t,e){var n,i,o=t.bitLength(),s=u(1);if(o<=0)return s;n=o<18?1:o<48?3:o<144?4:o<768?5:6,i=o<8?new d(e):e.isEven()?new C(e):new p(e);var a=new Array,c=3,l=n-1,f=(1<<n)-1;if(a[1]=i.convert(this),n>1){var A=r();for(i.sqrTo(a[1],A);c<=f;)a[c]=r(),i.mulTo(A,a[c-2],a[c]),c+=2}var g,E,m=t.t-1,y=!0,w=r();for(o=h(t[m])-1;m>=0;){for(o>=l?g=t[m]>>o-l&f:(g=(t[m]&(1<<o+1)-1)<<l-o,m>0&&(g|=t[m-1]>>this.DB+o-l)),c=n;!(1&g);)g>>=1,--c;if((o-=c)<0&&(o+=this.DB,--m),y)a[g].copyTo(s),y=!1;else{for(;c>1;)i.sqrTo(s,w),i.sqrTo(w,s),c-=2;c>0?i.sqrTo(s,w):(E=s,s=w,w=E),i.mulTo(w,a[g],s)}for(;m>=0&&!(t[m]&1<<o);)i.sqrTo(s,w),E=s,s=w,w=E,--o<0&&(o=this.DB-1,--m)}return i.revert(s)},n.prototype.modInverse=function(t){var e=t.isEven();if(this.isEven()&&e||0==t.signum())return n.ZERO;for(var r=t.clone(),i=this.clone(),o=u(1),s=u(0),a=u(0),c=u(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),e?(o.isEven()&&s.isEven()||(o.addTo(this,o),s.subTo(t,s)),o.rShiftTo(1,o)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;i.isEven();)i.rShiftTo(1,i),e?(a.isEven()&&c.isEven()||(a.addTo(this,a),c.subTo(t,c)),a.rShiftTo(1,a)):c.isEven()||c.subTo(t,c),c.rShiftTo(1,c);r.compareTo(i)>=0?(r.subTo(i,r),e&&o.subTo(a,o),s.subTo(c,s)):(i.subTo(r,i),e&&a.subTo(o,a),c.subTo(s,c))}return 0!=i.compareTo(n.ONE)?n.ZERO:c.compareTo(t)>=0?c.subtract(t):c.signum()<0?(c.addTo(t,c),c.signum()<0?c.add(t):c):c},n.prototype.pow=function(t){return this.exp(t,new w)},n.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),n=t.s<0?t.negate():t.clone();if(e.compareTo(n)<0){var r=e;e=n,n=r}var i=e.getLowestSetBit(),o=n.getLowestSetBit();if(o<0)return e;for(i<o&&(o=i),o>0&&(e.rShiftTo(o,e),n.rShiftTo(o,n));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=n.getLowestSetBit())>0&&n.rShiftTo(i,n),e.compareTo(n)>=0?(e.subTo(n,e),e.rShiftTo(1,e)):(n.subTo(e,n),n.rShiftTo(1,n));return o>0&&n.lShiftTo(o,n),n},n.prototype.isProbablePrime=function(t){var e,n=this.abs();if(1==n.t&&n[0]<=D[D.length-1]){for(e=0;e<D.length;++e)if(n[0]==D[e])return!0;return!1}if(n.isEven())return!1;for(e=1;e<D.length;){for(var r=D[e],i=e+1;i<D.length&&r<M;)r*=D[i++];for(r=n.modInt(r);e<i;)if(r%D[e++]==0)return!1}return n.millerRabin(t)},n.prototype.square=function(){var t=r();return this.squareTo(t),t},n.prototype.Barrett=C,null==T){var S;if(T=new Array,b=0,"undefined"!=typeof window&&window.crypto)if(window.crypto.getRandomValues){var v=new Uint8Array(32);for(window.crypto.getRandomValues(v),S=0;S<32;++S)T[b++]=v[S]}else if("Netscape"==navigator.appName&&navigator.appVersion<"5"){var _=window.crypto.random(32);for(S=0;S<_.length;++S)T[b++]=255&_.charCodeAt(S)}for(;b<F;)S=Math.floor(65536*Math.random()),T[b++]=S>>>8,T[b++]=255&S;b=0,N()}function L(){if(null==B){for(N(),(B=new R).init(T),b=0;b<T.length;++b)T[b]=0;b=0}return B.next()}function x(){}function R(){this.i=0,this.j=0,this.S=new Array}x.prototype.nextBytes=function(t){var e;for(e=0;e<t.length;++e)t[e]=L()},R.prototype.init=function(t){var e,n,r;for(e=0;e<256;++e)this.S[e]=e;for(n=0,e=0;e<256;++e)n=n+this.S[e]+t[e%t.length]&255,r=this.S[e],this.S[e]=this.S[n],this.S[n]=r;this.i=0,this.j=0},R.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]};var F=256;t.exports={default:n,BigInteger:n,SecureRandom:x}}).call(this)},9617:function(t,e){"use strict";var n,r=this&&this.__extends||(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},n(t,e)},function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0}),e.AddressError=void 0;var i=function(t){function e(e,n){var r=t.call(this,e)||this;return r.name="AddressError",null!==n&&(r.parseMessage=n),r}return r(e,t),e}(Error);e.AddressError=i},9983:function(t){"use strict";!function(){const e=2147483647;function n(t){const e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let n=1779033703,r=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,c=528734635,l=1541459225;const u=new Uint32Array(64);function h(t){let h=0,d=t.length;for(;d>=64;){let p,f,A,g,E,m=n,y=r,w=i,I=o,C=s,B=a,T=c,b=l;for(f=0;f<16;f++)A=h+4*f,u[f]=(255&t[A])<<24|(255&t[A+1])<<16|(255&t[A+2])<<8|255&t[A+3];for(f=16;f<64;f++)p=u[f-2],g=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=u[f-15],E=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,u[f]=(g+u[f-7]|0)+(E+u[f-16]|0)|0;for(f=0;f<64;f++)g=(((C>>>6|C<<26)^(C>>>11|C<<21)^(C>>>25|C<<7))+(C&B^~C&T)|0)+(b+(e[f]+u[f]|0)|0)|0,E=((m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10))+(m&y^m&w^y&w)|0,b=T,T=B,B=C,C=I+g|0,I=w,w=y,y=m,m=g+E|0;n=n+m|0,r=r+y|0,i=i+w|0,o=o+I|0,s=s+C|0,a=a+B|0,c=c+T|0,l=l+b|0,h+=64,d-=64}}h(t);let d,p=t.length%64,f=t.length/536870912|0,A=t.length<<3,g=p<56?56:120,E=t.slice(t.length-p,t.length);for(E.push(128),d=p+1;d<g;d++)E.push(0);return E.push(f>>>24&255),E.push(f>>>16&255),E.push(f>>>8&255),E.push(f>>>0&255),E.push(A>>>24&255),E.push(A>>>16&255),E.push(A>>>8&255),E.push(A>>>0&255),h(E),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function r(t,e,r){t=t.length<=64?t:n(t);const i=64+e.length+4,o=new Array(i),s=new Array(64);let a,c=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<t.length;a++)o[a]^=t[a];for(a=0;a<e.length;a++)o[64+a]=e[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<t.length;a++)s[a]^=t[a];function l(){for(let t=i-1;t>=i-4;t--){if(o[t]++,o[t]<=255)return;o[t]=0}}for(;r>=32;)l(),c=c.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),c=c.concat(n(s.concat(n(o))).slice(0,r))),c}function i(t,e,n,r,i){let o;for(c(t,16*(2*n-1),i,0,16),o=0;o<2*n;o++)a(t,16*o,i,16),s(i,r),c(i,0,t,e+16*o,16);for(o=0;o<n;o++)c(t,e+2*o*16,t,16*o,16);for(o=0;o<n;o++)c(t,e+16*(2*o+1),t,16*(o+n),16)}function o(t,e){return t<<e|t>>>32-e}function s(t,e){c(t,0,e,0,16);for(let t=8;t>0;t-=2)e[4]^=o(e[0]+e[12],7),e[8]^=o(e[4]+e[0],9),e[12]^=o(e[8]+e[4],13),e[0]^=o(e[12]+e[8],18),e[9]^=o(e[5]+e[1],7),e[13]^=o(e[9]+e[5],9),e[1]^=o(e[13]+e[9],13),e[5]^=o(e[1]+e[13],18),e[14]^=o(e[10]+e[6],7),e[2]^=o(e[14]+e[10],9),e[6]^=o(e[2]+e[14],13),e[10]^=o(e[6]+e[2],18),e[3]^=o(e[15]+e[11],7),e[7]^=o(e[3]+e[15],9),e[11]^=o(e[7]+e[3],13),e[15]^=o(e[11]+e[7],18),e[1]^=o(e[0]+e[3],7),e[2]^=o(e[1]+e[0],9),e[3]^=o(e[2]+e[1],13),e[0]^=o(e[3]+e[2],18),e[6]^=o(e[5]+e[4],7),e[7]^=o(e[6]+e[5],9),e[4]^=o(e[7]+e[6],13),e[5]^=o(e[4]+e[7],18),e[11]^=o(e[10]+e[9],7),e[8]^=o(e[11]+e[10],9),e[9]^=o(e[8]+e[11],13),e[10]^=o(e[9]+e[8],18),e[12]^=o(e[15]+e[14],7),e[13]^=o(e[12]+e[15],9),e[14]^=o(e[13]+e[12],13),e[15]^=o(e[14]+e[13],18);for(let n=0;n<16;++n)t[n]+=e[n]}function a(t,e,n,r){for(let i=0;i<r;i++)n[i]^=t[e+i]}function c(t,e,n,r,i){for(;i--;)n[r++]=t[e++]}function l(t){if(!t||"number"!=typeof t.length)return!1;for(let e=0;e<t.length;e++){const n=t[e];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function u(t,e){if("number"!=typeof t||t%1)throw new Error("invalid "+e);return t}function h(t,n,o,s,h,d,p){if(o=u(o,"N"),s=u(s,"r"),h=u(h,"p"),d=u(d,"dkLen"),0===o||o&o-1)throw new Error("N must be power of 2");if(o>e/128/s)throw new Error("N too large");if(s>e/128/h)throw new Error("r too large");if(!l(t))throw new Error("password must be an array or buffer");if(t=Array.prototype.slice.call(t),!l(n))throw new Error("salt must be an array or buffer");n=Array.prototype.slice.call(n);let f=r(t,n,128*h*s);const A=new Uint32Array(32*h*s);for(let t=0;t<A.length;t++){const e=4*t;A[t]=(255&f[e+3])<<24|(255&f[e+2])<<16|(255&f[e+1])<<8|255&f[e+0]}const g=new Uint32Array(64*s),E=new Uint32Array(32*s*o),m=32*s,y=new Uint32Array(16),w=new Uint32Array(16),I=h*o*2;let C,B,T=0,b=null,D=!1,M=0,N=0;const S=p?parseInt(1e3/s):4294967295,v="undefined"!=typeof setImmediate?setImmediate:setTimeout,_=function(){if(D)return p(new Error("cancelled"),T/I);let e;switch(M){case 0:B=32*N*s,c(A,B,g,0,m),M=1,C=0;case 1:e=o-C,e>S&&(e=S);for(let t=0;t<e;t++)c(g,0,E,(C+t)*m,m),i(g,m,s,y,w);if(C+=e,T+=e,p){const t=parseInt(1e3*T/I);if(t!==b){if(D=p(null,T/I),D)break;b=t}}if(C<o)break;C=0,M=2;case 2:e=o-C,e>S&&(e=S);for(let t=0;t<e;t++){const t=g[16*(2*s-1)]&o-1;a(E,t*m,g,m),i(g,m,s,y,w)}if(C+=e,T+=e,p){const t=parseInt(1e3*T/I);if(t!==b){if(D=p(null,T/I),D)break;b=t}}if(C<o)break;if(c(g,0,A,B,m),N++,N<h){M=0;break}f=[];for(let t=0;t<A.length;t++)f.push(255&A[t]),f.push(A[t]>>8&255),f.push(A[t]>>16&255),f.push(A[t]>>24&255);const n=r(t,f,d);return p&&p(null,1,n),n}p&&v(_)};if(!p)for(;;){const t=_();if(null!=t)return t}_()}const d={scrypt:function(t,e,n,r,i,o,s){return new Promise(function(a,c){let l=0;s&&s(0),h(t,e,n,r,i,o,function(t,e,n){if(t)c(t);else if(n)s&&1!==l&&s(1),a(new Uint8Array(n));else if(s&&e!==l)return l=e,s(e)})})},syncScrypt:function(t,e,n,r,i,o){return new Uint8Array(h(t,e,n,r,i,o))}};t.exports=d}()}},o={};function s(t){var e=o[t];if(void 0!==e)return e.exports;var n=o[t]={id:t,loaded:!1,exports:{}};return i[t].call(n.exports,n,n.exports,s),n.loaded=!0,n.exports}s.m=i,s.amdO={},s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,s.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var i=Object.create(null);s.r(i);var o={};t=t||[null,e({}),e([]),e(e)];for(var a=2&r&&n;("object"==typeof a||"function"==typeof a)&&!~t.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(t=>o[t]=()=>n[t]);return o.default=()=>n,s.d(i,o),i},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.f={},s.e=t=>Promise.all(Object.keys(s.f).reduce((e,n)=>(s.f[n](t,e),e),[])),s.u=t=>t+".bundle.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},r="@joclaim/browser-extension-sdk:",s.l=(t,e,i,o)=>{if(n[t])n[t].push(e);else{var a,c;if(void 0!==i)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var h=l[u];if(h.getAttribute("src")==t||h.getAttribute("data-webpack")==r+i){a=h;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack",r+i),a.src=t),n[t]=[e];var d=(e,r)=>{a.onerror=a.onload=null,clearTimeout(p);var i=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(t=>t(r)),e)return e(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),s.p="/",(()=>{var t={522:0};s.f.j=(e,n)=>{var r=s.o(t,e)?t[e]:void 0;if(0!==r)if(r)n.push(r[2]);else{var i=new Promise((n,i)=>r=t[e]=[n,i]);n.push(r[2]=i);var o=s.p+s.u(e),a=new Error;s.l(o,n=>{if(s.o(t,e)&&(0!==(r=t[e])&&(t[e]=void 0),r)){var i=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+i+": "+o+")",a.name="ChunkLoadError",a.type=i,a.request=o,r[1](a)}},"chunk-"+e,e)}};var e=(e,n)=>{var r,i,[o,a,c]=n,l=0;if(o.some(e=>0!==t[e])){for(r in a)s.o(a,r)&&(s.m[r]=a[r]);if(c)c(s)}for(e&&e(n);l<o.length;l++)i=o[l],s.o(t,i)&&t[i]&&t[i][0](),t[i]=0},n=self.webpackChunk_joclaim_browser_extension_sdk=self.webpackChunk_joclaim_browser_extension_sdk||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),(()=>{"use strict";var t={};s.r(t),s.d(t,{Any:()=>or,BaseBlock:()=>ye,BaseStringBlock:()=>Ie,BitString:()=>yn,BmpString:()=>Pn,Boolean:()=>An,CharacterString:()=>Xn,Choice:()=>sr,Constructed:()=>un,DATE:()=>tr,DateTime:()=>nr,Duration:()=>rr,EndOfContent:()=>dn,Enumerated:()=>bn,GeneralString:()=>Kn,GeneralizedTime:()=>$n,GraphicString:()=>Wn,HexBlock:()=>pe,IA5String:()=>Jn,Integer:()=>Tn,Null:()=>pn,NumericString:()=>Hn,ObjectIdentifier:()=>Nn,OctetString:()=>En,Primitive:()=>on,PrintableString:()=>jn,RawData:()=>cr,RelativeObjectIdentifier:()=>_n,Repeated:()=>ar,Sequence:()=>Ln,Set:()=>xn,TIME:()=>ir,TeletexString:()=>Yn,TimeOfDay:()=>er,UTCTime:()=>Zn,UniversalString:()=>Vn,Utf8String:()=>Qn,ValueBlock:()=>Ae,VideotexString:()=>zn,ViewWriter:()=>Wt,VisibleString:()=>qn,compareSchema:()=>lr,fromBER:()=>an,verifySchema:()=>ur});var e={};s.r(e),s.d(e,{decode:()=>vA,encode:()=>_A});var n={};s.r(n),s.d(n,{K3:()=>e,Kt:()=>aE,uN:()=>Lg});var r=s(8287),i=s(5606),o=s.n(i),a=s(3153);function c(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof a?r:a,u=Object.create(c.prototype);return l(u,"_invoke",function(n,r,i){var o,a,c,l=0,u=i||[],h=!1,d={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return o=e,a=0,c=t,d.n=n,s}};function p(n,r){for(a=n,c=r,e=0;!h&&l&&!i&&e<u.length;e++){var i,o=u[e],p=d.p,f=o[2];n>3?(i=f===r)&&(c=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=n<2&&p<o[1])?(a=0,d.v=r,d.n=o[1]):p<f&&(i=n<3||o[0]>r||r>f)&&(o[4]=n,o[5]=r,d.n=f,a=0))}if(i||n>1)return s;throw h=!0,r}return function(i,u,f){if(l>1)throw TypeError("Generator is already running");for(h&&1===u&&p(u,f),a=u,c=f;(e=a<2?t:c)||!h;){o||(a?a<3?(a>1&&(d.n=-1),p(a,c)):d.n=c:d.v=c);try{if(l=2,o){if(a||(i="next"),e=o[i]){if(!(e=e.call(o,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,a<2&&(a=0)}else 1===a&&(e=o.return)&&e.call(o),a<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((e=(h=d.n<0)?c:n.call(r,d))!==s)break}catch(e){o=t,a=1,c=e}finally{l=1}}return{value:e,done:h}}}(n,i,o),!0),u}var s={};function a(){}function u(){}function h(){}e=Object.getPrototypeOf;var d=[][r]?e(e([][r]())):(l(e={},r,function(){return this}),e),p=h.prototype=a.prototype=Object.create(d);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,l(t,i,"GeneratorFunction")),t.prototype=Object.create(p),t}return u.prototype=h,l(p,"constructor",h),l(h,"constructor",u),u.displayName="GeneratorFunction",l(h,i,"GeneratorFunction"),l(p),l(p,i,"Generator"),l(p,r,function(){return this}),l(p,"toString",function(){return"[object Generator]"}),(c=function(){return{w:o,m:f}})()}function l(t,e,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(t){i=0}l=function(t,e,n,r){function o(e,n){l(t,e,function(t){return this._invoke(e,n,t)})}e?i?i(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(o("next",0),o("throw",1),o("return",2))},l(t,e,n,r)}function u(t,e,n,r,i,o,s){try{var a=t[o](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function h(t){return function(){var e=this,n=arguments;return new Promise(function(r,i){var o=t.apply(e,n);function s(t){u(o,r,i,s,a,"next",t)}function a(t){u(o,r,i,s,a,"throw",t)}s(void 0)})}}var d,p,f,A="undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0!==A?A:Function("return this")(),g="undefined"==typeof window,E="undefined"!=typeof document&&void 0!==document.contentType;if(A.Buffer=A.Buffer||r.hp,A.process=A.process||o(),void 0!==A.WebSocket||E)E?a.w9.info(a.Ey.POLYFILLS,"Skipping WebSocket in content script context"):a.w9.info(a.Ey.POLYFILLS,"Using native WebSocket implementation");else try{var m=s(3296).WebSocket;A.WebSocket=m,a.w9.info(a.Ey.POLYFILLS,"WebSocket polyfill added to global")}catch(dI){a.w9.warn(a.Ey.POLYFILLS,"Failed to load WebSocket polyfill:",dI)}if(A.process&&(A.process.browser=!0),"function"!=typeof A.require)A.require=function(t){switch(t){case"ws":if(E)return a.w9.info(a.Ey.POLYFILLS,"Blocking ws module in content script"),{};try{return{WebSocket:s(3296).WebSocket}}catch(t){return a.w9.warn(a.Ey.POLYFILLS,"Failed to load WebSocket for ws module:",t),{}}case"fs":return A.fs;case"path":return A.path;case"os":return A.os;case"crypto":return A.crypto;case"worker_threads":case"koffi":case"re2":return{};default:return console.warn("Mock require called for module: ".concat(t)),{}}};else{var y=A.require;A.require=function(t){if("ws"===t){if(E)return a.w9.info(a.Ey.POLYFILLS,"Blocking ws module in content script"),{};try{return{WebSocket:s(3296).WebSocket}}catch(t){return a.w9.warn(a.Ey.POLYFILLS,"Failed to load WebSocket for ws module:",t),{}}}try{return y(t)}catch(e){return a.w9.warn(a.Ey.POLYFILLS,"Failed to require module: ".concat(t)),{}}}}if(void 0!==o()&&(o().browser=!0,o().version||(o().version="v16.0.0"),o().cwd||(o().cwd=function(){return"/"})),void 0===A.global&&(A.global=A),void 0===A.crypto&&(A.crypto={}),void 0===A.crypto.getRandomValues&&(A.crypto.getRandomValues=function(t){for(var e=new Uint8Array(t.length),n=0;n<e.length;n++)e[n]=Math.floor(256*Math.random());return e}),void 0===A.crypto.subtle&&(a.w9.warn(a.Ey.POLYFILLS,"WebCrypto subtle API not available. Some functionality may not work."),A.crypto.subtle={digest:(d=h(c().m(function t(e,n){var r,i,o;return c().w(function(t){for(;;)if(0===t.n){for(a.w9.warn(a.Ey.POLYFILLS,"Crypto subtle digest (".concat(e,") called with browser fallback")),r=Array.from(new Uint8Array(n)).reduce(function(t,e){return 31*t+e&4294967295},0),i=new Uint8Array(32),o=0;o<32;o++)i[o]=r>>8*o&255;return t.a(2,i.buffer)}},t)})),function(t,e){return d.apply(this,arguments)})}),!g){var w=function(t,e){return"string"==typeof t&&t.startsWith("node:")&&(t=t.replace(/^node:/,"")),new I(t,e)};void 0===A.domain&&(A.domain={create:function(){return{run:function(t){return t()},on:function(){},bind:function(t){return t}}}});var I=A.URL;w.prototype=I.prototype;try{Object.getOwnPropertyNames(I).forEach(function(t){if("prototype"!==t&&"constructor"!==t)try{w[t]=I[t]}catch(t){}})}catch(dI){a.w9.warn(a.Ey.POLYFILLS,"Could not copy all URL static properties:",dI)}try{A.URL=w}catch(dI){a.w9.warn(a.Ey.POLYFILLS,"Could not override URL constructor:",dI)}}void 0===A.module&&(A.module={exports:{}}),A.fs=A.fs||{readFileSync:function(t){throw a.w9.warn(a.Ey.POLYFILLS,"Attempted to readFileSync: ".concat(t)),new Error("fs.readFileSync is not available in this environment")},writeFileSync:function(t,e){a.w9.warn(a.Ey.POLYFILLS,"Attempted to writeFileSync: ".concat(t))},existsSync:function(t){return a.w9.warn(a.Ey.POLYFILLS,"Attempted to check if file exists: ".concat(t)),!1},promises:{readFile:(f=h(c().m(function t(e){return c().w(function(t){for(;;)switch(t.n){case 0:throw a.w9.warn(a.Ey.POLYFILLS,"Attempted to readFile: ".concat(e)),new Error("fs.promises.readFile is not available in this environment");case 1:return t.a(2)}},t)})),function(t){return f.apply(this,arguments)}),writeFile:(p=h(c().m(function t(e,n){return c().w(function(t){for(;;)switch(t.n){case 0:a.w9.warn(a.Ey.POLYFILLS,"Attempted to writeFile: ".concat(e));case 1:return t.a(2)}},t)})),function(t,e){return p.apply(this,arguments)})}},A.os=A.os||{tmpdir:function(){return"/tmp"},homedir:function(){return"/home/user"},platform:function(){return"browser"},type:function(){return"Browser"},cpus:function(){return[{model:"Browser CPU",speed:1e3}]},totalmem:function(){return 8589934592},freemem:function(){return 4294967296}},A.path=A.path||{join:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.join("/").replace(/\/+/g,"/")},resolve:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.join("/").replace(/\/+/g,"/")},dirname:function(t){return t.split("/").slice(0,-1).join("/")||"."},basename:function(t,e){var n=t.split("/").pop()||"";return e&&n.endsWith(e)&&(n=n.slice(0,-e.length)),n},extname:function(t){var e=t.split("/").pop()||"",n=e.lastIndexOf(".");return n<0?"":e.slice(n)},sep:"/"};r.hp,o();const C={};const B={TLS1_3:new Uint8Array([3,4]),TLS1_2:new Uint8Array([3,3])},T={SECP256R1:{identifier:new Uint8Array([0,23]),algorithm:"P-256"},SECP384R1:{identifier:new Uint8Array([0,24]),algorithm:"P-384"},X25519:{identifier:new Uint8Array([0,29]),algorithm:"X25519"}},b=1,D=2,M=3,N=4,S=8,v=11,_=12,L=13,x=14,R=15,F=16,O=20,k=24,Q={CHANGE_CIPHER_SPEC:20,ALERT:21,HANDSHAKE:22,APPLICATION_DATA:23},U=Object.keys(T),P={TLS_CHACHA20_POLY1305_SHA256:{identifier:new Uint8Array([19,3]),keyLength:32,hashLength:32,ivLength:12,hashAlgorithm:"SHA-256",cipher:"CHACHA20-POLY1305"},TLS_AES_256_GCM_SHA384:{identifier:new Uint8Array([19,2]),keyLength:32,hashLength:48,ivLength:12,hashAlgorithm:"SHA-384",cipher:"AES-256-GCM"},TLS_AES_128_GCM_SHA256:{identifier:new Uint8Array([19,1]),keyLength:16,hashLength:32,ivLength:12,hashAlgorithm:"SHA-256",cipher:"AES-128-GCM"},TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:{identifier:new Uint8Array([204,168]),keyLength:32,hashLength:32,ivLength:12,hashAlgorithm:"SHA-256",cipher:"CHACHA20-POLY1305"},TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:{identifier:new Uint8Array([204,169]),keyLength:32,hashLength:32,ivLength:12,hashAlgorithm:"SHA-256",cipher:"CHACHA20-POLY1305"},TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:{identifier:new Uint8Array([192,47]),keyLength:16,hashLength:32,ivLength:4,hashAlgorithm:"SHA-256",cipher:"AES-128-GCM"},TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:{identifier:new Uint8Array([192,43]),keyLength:16,hashLength:32,ivLength:4,hashAlgorithm:"SHA-256",cipher:"AES-128-GCM"},TLS_RSA_WITH_AES_128_GCM_SHA256:{identifier:new Uint8Array([0,156]),keyLength:16,hashLength:32,ivLength:4,hashAlgorithm:"SHA-256",cipher:"AES-128-GCM",isRsaEcdh:!0},TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:{identifier:new Uint8Array([192,48]),keyLength:32,hashLength:48,ivLength:4,hashAlgorithm:"SHA-384",cipher:"AES-256-GCM"},TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:{identifier:new Uint8Array([192,44]),keyLength:32,hashLength:48,ivLength:4,hashAlgorithm:"SHA-384",cipher:"AES-256-GCM"},TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:{identifier:new Uint8Array([192,19]),keyLength:16,hashLength:20,ivLength:16,hashAlgorithm:"SHA-1",prfHashAlgorithm:"SHA-256",cipher:"AES-128-CBC"},TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:{identifier:new Uint8Array([192,9]),keyLength:16,hashLength:20,ivLength:16,hashAlgorithm:"SHA-1",prfHashAlgorithm:"SHA-256",cipher:"AES-128-CBC"}},G=Object.keys(P),V={ECDSA_SECP256R1_SHA256:{identifier:new Uint8Array([4,3]),algorithm:"ECDSA-SECP256R1-SHA256"},ECDSA_SECP384R1_SHA256:{identifier:new Uint8Array([5,3]),algorithm:"ECDSA-SECP384R1-SHA384"},RSA_PSS_RSAE_SHA256:{identifier:new Uint8Array([8,4]),algorithm:"RSA-PSS-SHA256"},RSA_PKCS1_SHA256:{identifier:new Uint8Array([4,1]),algorithm:"RSA-PKCS1-SHA256"},RSA_PKCS1_SHA384:{identifier:new Uint8Array([5,1]),algorithm:"RSA-PKCS1-SHA384"},RSA_PKCS1_SHA512:{identifier:new Uint8Array([6,1]),algorithm:"RSA-PKCS1-SHA512"}},H=Object.keys(V),j={SERVER_NAME:0,MAX_FRAGMENT_LENGTH:1,KEY_SHARE:51,SUPPORTED_GROUPS:10,SIGNATURE_ALGS:13,SUPPORTED_VERSIONS:43,SESSION_TICKET:35,EARLY_DATA:42,PRE_SHARED_KEY:41,PRE_SHARED_KEY_MODE:45,ALPN:16},Y=Object.keys(j),z={HELLO:22,WRAPPED_RECORD:23,CHANGE_CIPHER_SPEC:20,ALERT:21},J={UPDATE_NOT_REQUESTED:0,UPDATE_REQUESTED:1};function W(t,e=" "){return[...t].map(t=>t.toString(16).padStart(2,"0")).join(e)}function q(t){const e=t.reduce((t,e)=>t+e.length,0),n=new Uint8Array(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n}function K(t,e){if(t.length!==e.length)return!1;for(const[n,r]of t.entries())if(r!==e[n])return!1;return!0}function X(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function Z(t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);if(r<0||r>255)throw new Error(`Invalid ASCII character at index ${n}: ${t[n]}`);e[n]=r}return e}function $(t){let e="";for(const n of t)e+=String.fromCharCode(n);return e}function tt(t,e){const n=new Uint8Array(t.length);return new DataView(n.buffer).setUint32(t.length-4,e),function(t,e){const n=new Uint8Array(t.length);for(const[r,i]of t.entries())n[r]=i^e[r];return n}(t,n)}function et(t){return"AES-128-CBC"===t}function nt(t){const e=Object.entries(B).find(([,e])=>K(e,t));if(!e)throw new Error(`Unsupported TLS version '${t}'`);return e[0]}function rt(t,{type:e,version:n="TLS1_2"}){const r=new Uint8Array(2);return X(r).setUint16(0,t),q([new Uint8Array([z[e]]),B[n],r])}function it(t){return q([new Uint8Array([0]),at(t)])}function ot(t,e=2){const n=X(t),r=1===e?n.getUint8(0):n.getUint16(3===e?1:0);if(!(t.length<e+r))return t.slice(e,e+r)}function st(t,e=2){const n=ot(t,e);if(!n)throw new Error(`Expected packet to have at least ${t.length+e} bytes, got ${t.length}`);return n}function at(t){const e=new Uint8Array(2+t.length);return X(e).setUint16(0,t.length),e.set(t,2),e}const ct=Z("master secret"),lt=Z("key expansion");async function ut(t){const{clientRandom:e,serverRandom:n,cipherSuite:r}=t,i=await async function({preMasterSecret:t,clientRandom:e,serverRandom:n,cipherSuite:r}){const i=gt(r),o=await C.importKey(i,t),s=q([ct,e,n]),a=await C.hmac(i,o,s),c=await C.hmac(i,o,a),l=await C.hmac(i,o,q([a,s])),u=await C.hmac(i,o,q([c,s]));return q([l,u]).slice(0,48)}(t),o=gt(r),{keyLength:s,cipher:a,hashLength:c,hashAlgorithm:l,ivLength:u}=P[r],h=await C.importKey(o,i),d=q([lt,n,e]),p=[];let f=d;for(let t=0;t<4;t++){f=await C.hmac(o,h,f);const t=await C.hmac(o,h,q([f,d]));p.push(t)}let A=q(p);const g=et(a);return{type:"TLS1_2",masterSecret:i,clientMacKey:g?await C.importKey(l,E(c)):void 0,serverMacKey:g?await C.importKey(l,E(c)):void 0,clientEncKey:await C.importKey(a,E(s)),serverEncKey:await C.importKey(a,E(s)),clientIv:E(u),serverIv:E(u),serverSecret:i,clientSecret:i};function E(t){const e=A.slice(0,t);return A=A.slice(t),e}}function ht(t,e){const{hashAlgorithm:n,hashLength:r}=P[e];return ft(n,t,"traffic upd",new Uint8Array,r)}async function dt({hellos:t,masterSecret:e,cipherSuite:n,secretType:r,earlySecret:i}){const{hashAlgorithm:o,hashLength:s}=P[n],a=await C.hash(o,new Uint8Array),c=new Uint8Array(s);let l;if("hs"===r){i=i||await C.extract(o,s,c,"");const t=await ft(o,i,"derived",a,s);l=await C.extract(o,s,e,t)}else{const t=await ft(o,e,"derived",a,s);l=await C.extract(o,s,c,t)}return async function({masterSecret:t,cipherSuite:e,hellos:n,secretType:r}){const{hashAlgorithm:i,hashLength:o}=P[e],s=await At(n,e),a=await ft(i,t,`c ${r} traffic`,s,o),c=await ft(i,t,`s ${r} traffic`,s,o),{encKey:l,iv:u}=await pt(a,e),{encKey:h,iv:d}=await pt(c,e);return{type:"TLS1_3",masterSecret:t,clientSecret:a,serverSecret:c,clientEncKey:l,serverEncKey:h,clientIv:u,serverIv:d}}({hellos:t,cipherSuite:n,masterSecret:l,secretType:r})}async function pt(t,e){const{hashAlgorithm:n,keyLength:r,cipher:i,ivLength:o}=P[e],s=await ft(n,t,"key",new Uint8Array,r),a=await ft(n,t,"iv",new Uint8Array(0),o);return{masterSecret:t,encKey:await C.importKey(i,s),iv:a}}async function ft(t,e,n,r,i){const o=`tls13 ${n}`,s=new Uint8Array(2);X(s).setUint16(0,i);const a=q([s,at(Z(o)).slice(1),at(r).slice(1)]);return(async(t,e,n,r,i,o)=>{i||=new Uint8Array(0);const s=i.length,a=Math.ceil(r/e);if(a>255)throw new Error(`OKM length ${r} is too long for ${t} hash`);const c=new Uint8Array(e*a+s+1);for(let r=1,l=0,u=0;r<=a;++r){c.set(i,u),c.set([r],u+s);const a=await o.hmac(t,n,c.slice(l,u+s+1));c.set(a.slice(0,c.length-u),u),l=u,u+=e}return c.slice(0,r)})(t,i,await C.importKey(t,e),i,a,C)}async function At(t,e){if(Array.isArray(t)&&!(t instanceof Uint8Array)){const{hashAlgorithm:n}=P[e];return C.hash(n,q(t))}return t}function gt(t){const e=P[t];return"prfHashAlgorithm"in e?e.prfHashAlgorithm:e.hashAlgorithm}const Et=new Uint8Array([3,3]),mt=new Uint8Array([1,0]),yt=new Uint8Array([255,1,0,1,0]);async function wt({host:t,sessionId:e=C.randomBytes(32),random:n=C.randomBytes(32),keysToShare:r,psk:i,cipherSuites:o,supportedProtocolVersions:s=Object.keys(B),signatureAlgorithms:a=Object.keys(V),applicationLayerProtocols:c=[]}){const l=at(e).slice(1),u=at(q((o||Object.keys(P)).map(t=>P[t].identifier))),h=[yt,Ct(t),(f=r.map(t=>t.type),Bt({type:"SUPPORTED_GROUPS",data:q(f.map(t=>T[t].identifier))})),Bt({type:"SESSION_TICKET",data:new Uint8Array}),(p=s,Bt({type:"SUPPORTED_VERSIONS",data:q(p.map(t=>B[t])),lengthBytes:1})),(d=a,Bt({type:"SIGNATURE_ALGS",data:q(d.map(t=>V[t].identifier))})),Bt({type:"PRE_SHARED_KEY_MODE",data:new Uint8Array([0,1]),lengthBytes:1}),await It(r)];var d,p,f;if(i&&h.push(function({identity:t,ticketAge:e,cipherSuite:n}){const r=P[n].hashLength,i=at(t),o=new Uint8Array(4);X(o).setUint32(0,e);const s=at(q([i,o])),a=new Uint8Array(r+2+1),c=X(a);c.setUint16(0,r+1),c.setUint8(2,r);const l=at(q([s,a])),u=new Uint8Array(2+l.length);u.set(l,2);return X(u).setUint16(0,j.PRE_SHARED_KEY),u}(i)),c.length){const t=c.map(t=>at(Z(t)).slice(1));h.push(Bt({type:"ALPN",data:q(t)}))}const A=at(q(h)),g=q([Et,n,l,u,mt,A]),E=q([new Uint8Array([b]),it(g)]);if(i){const{hashLength:t}=P[i.cipherSuite],e=E.slice(0,-t-3),n=await async function(t,e){const{hashAlgorithm:n}=P[e.cipherSuite],r=await At([t],e.cipherSuite);return C.hmac(n,e.finishKey,r)}(e,i);E.set(n,E.length-n.length)}return E}async function It(t){const e=[];for(const{key:n,type:r}of t){const t=await C.exportKey(n);e.push(T[r].identifier,at(t))}return Bt({type:"KEY_SHARE",data:q(e)})}function Ct(t){return Bt({type:"SERVER_NAME",data:q([new Uint8Array([0]),at(Z(t))])})}function Bt({type:t,data:e,lengthBytes:n}){n||=2;let r=e.length?at(e):e;1===n&&(r=r.slice(1));const i=new Uint8Array(4+r.length),o=X(i);return o.setUint8(1,j[t]),o.setUint16(2,r.length),i.set(r,4),i}async function Tt({secret:t,handshakeMessages:e,cipherSuite:n}){const{hashAlgorithm:r,hashLength:i}=P[n],o=await At(e,n),s=await ft(r,t,"finished",new Uint8Array(0),i),a=await C.importKey(r,s);return C.hmac(r,a,o)}const bt=Z("client finished"),Dt=Z("server finished");async function Mt(t){return q([new Uint8Array([O]),it(await Nt("client",t))])}async function Nt(t,{secret:e,handshakeMessages:n,cipherSuite:r}){const i=gt(r),o=await C.hash(i,q(n)),s=q(["client"===t?bt:Dt,o]),a=await C.importKey(i,e),c=await C.hmac(i,a,s);return(await C.hmac(i,a,q([c,s]))).slice(0,12)}async function St(t){return q([new Uint8Array([F]),it(at(await C.exportKey(t)).slice(1))])}async function vt(t){return q([new Uint8Array([F]),it(at(t))])}async function _t(t){if(3!==c(1)[0])throw new Error('expected "named_group" key share');const e=c(2),n=Object.entries(T).find(([,{identifier:t}])=>K(t,e));if(!n)throw new Error(`unsupported curve type: ${e}`);const r=n[0],i=l(1),o=await C.importKey(n[1].algorithm,i,"public"),s=c(2),a=Object.entries(V).find(([,{identifier:t}])=>K(t,s));if(!a)throw new Error(`unsupported signature type: ${s}`);return{publicKeyType:r,publicKey:o,signatureAlgorithm:a[0],signatureBytes:l(2)};function c(e){const n=t.slice(0,e);return t=t.slice(e),n}function l(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}}async function Lt(t,e,n=C.randomBytes(46)){const r=q([B[e],n]),i=t.getPublicKey();if("RSASSA-PKCS1-v1_5"!==i.algorithm)throw new Error(`expected RSASSA-PKCS1-v1_5 cert, got ${i.algorithm}`);const o=await C.importKey("RSA-PCKS1_5",i.buffer,"public");return{preMasterSecret:r,encrypted:await C.asymmetricEncrypt("RSA-PCKS1_5",{data:r,publicKey:o})}}const xt={info:(...t)=>console.info(...t),debug:(...t)=>console.debug(...t),trace:()=>{},warn:(...t)=>console.warn(...t),error:(...t)=>console.error(...t)},Rt=Object.entries({WARNING:1,FATAL:2}),Ft=Object.entries({CLOSE_NOTIFY:0,UNEXPECTED_MESSAGE:10,BAD_RECORD_MAC:20,RECORD_OVERFLOW:22,HANDSHAKE_FAILURE:40,BAD_CERTIFICATE:42,UNSUPPORTED_CERTIFICATE:43,CERTIFICATE_REVOKED:44,CERTIFICATE_EXPIRED:45,CERTIFICATE_UNKNOWN:46,ILLEGAL_PARAMETER:47,UNKNOWN_CA:48,ACCESS_DENIED:49,DECODE_ERROR:50,DECRYPT_ERROR:51,PROTOCOL_VERSION:70,INSUFFICIENT_SECURITY:71,INTERNAL_ERROR:80,INAPPROPRIATE_FALLBACK:86,USER_CANCELED:90,MISSING_EXTENSION:109,UNSUPPORTED_EXTENSION:110,UNRECOGNIZED_NAME:112,BAD_CERTIFICATE_STATUS_RESPONSE:113,UNKNOWN_PSK_IDENTITY:115,CERTIFICATE_REQUIRED:116,NO_APPLICATION_PROTOCOL:120,DECRYPTION_FAILED_RESERVED:21,DECOMPRESSION_FAILURE:30,NO_CERTIFICATE_RESERVED:41,EXPORT_RESTRICTION_RESERVED:60,NO_RENEGOTIATION:100});let Ot,kt;"object"==typeof globalThis&&globalThis?(Ot=globalThis.TLS_ADDITIONAL_ROOT_CA_LIST||=[],kt=globalThis.TLS_INTERMEDIATE_CA_CACHE||={}):"object"==typeof window&&window?(Ot=window.TLS_ADDITIONAL_ROOT_CA_LIST||=[],kt=window.TLS_INTERMEDIATE_CA_CACHE||={}):(Ot=[],kt={}),Ot.push("-----BEGIN CERTIFICATE-----\nMIIFjDCCA3SgAwIBAgIQfx8skC6D0OO2+zvuR4tegDANBgkqhkiG9w0BAQsFADBM\nMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xv\nYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMzA3MTkwMzQzMjVaFw0y\nNjA3MTkwMDAwMDBaMFUxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu\nIG52LXNhMSswKQYDVQQDEyJHbG9iYWxTaWduIEdDQyBSNiBBbHBoYVNTTCBDQSAy\nMDIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA00Jvk5ADppO0rgDn\nj1M14XIb032Aas409JJFAb8cUjipFOth7ySLdaWLe3s63oSs5x3eWwzTpX4BFkzZ\nbxT1eoJSHfT2M0wZ5QOPcCIjsr+YB8TAvV2yJSyq+emRrN/FtgCSTaWXSJ5jipW8\nSJ/VAuXPMzuAP2yYpuPcjjQ5GyrssDXgu+FhtYxqyFP7BSvx9jQhh5QV5zhLycua\nn8n+J0Uw09WRQK6JGQ5HzDZQinkNel+fZZNRG1gE9Qeh+tHBplrkalB1g85qJkPO\nJ7SoEvKsmDkajggk/sSq7NPyzFaa/VBGZiRRG+FkxCBniGD5618PQ4trcwHyMojS\nFObOHQIDAQABo4IBXzCCAVswDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\nAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS9\nBbfzipM8c8t5+g+FEqF3lhiRdDAfBgNVHSMEGDAWgBSubAWjkxPioufi1xzWx/B/\nyGdToDB7BggrBgEFBQcBAQRvMG0wLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwMi5n\nbG9iYWxzaWduLmNvbS9yb290cjYwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUu\nZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L3Jvb3QtcjYuY3J0MDYGA1UdHwQvMC0wK6Ap\noCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC1yNi5jcmwwIQYDVR0g\nBBowGDAIBgZngQwBAgEwDAYKKwYBBAGgMgoBAzANBgkqhkiG9w0BAQsFAAOCAgEA\nfMkkMo5g4mn1ft4d4xR2kHzYpDukhC1XYPwfSZN3A9nEBadjdKZMH7iuS1vF8uSc\ng26/30DRPen2fFRsr662ECyUCR4OfeiiGNdoQvcesM9Xpew3HLQP4qHg+s774hNL\nvGRD4aKSKwFqLMrcqCw6tEAfX99tFWsD4jzbC6k8tjSLzEl0fTUlfkJaWpvLVkpg\n9et8tD8d51bymCg5J6J6wcXpmsSGnksBobac1+nXmgB7jQC9edU8Z41FFo87BV3k\nCtrWWsdkQavObMsXUPl/AO8y/jOuAWz0wyvPnKom+o6W4vKDY6/6XPypNdebOJ6m\njyaILp0quoQvhjx87BzENh5s57AIOyIGpS0sDEChVDPzLEfRsH2FJ8/W5woF0nvs\nBTqfYSCqblQbHeDDtCj7Mlf8JfqaMuqcbE4rMSyfeHyCdZQwnc/r9ujnth691AJh\nxyYeCM04metJIe7cB6d4dFm+Pd5ervY4x32r0uQ1Q0spy1VjNqUJjussYuXNyMmF\nHSuLQQ6PrePmH5lcSMQpYKzPoD/RiNVD/PK0O3vuO5vh3o7oKb1FfzoanDsFFTrw\n0aLOdRW/tmLPWVNVlAb8ad+B80YJsL4HXYnQG8wYAFb8LhwSDyT9v+C1C1lcIHE7\nnE0AAp9JSHxDYsma9pi4g0Phg3BgOm2euTRzw7R0SzU=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB\niDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\ncnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\nBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx\nMTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV\nBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE\nChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6\nYXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q\n9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x\non3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h\nfGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi\nrsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ\nYkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow\nHwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn\nZ/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/\nAgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG\nBFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl\ncnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy\nbDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy\ndXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA\nlsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6\npAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP\nbYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3\nOSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn\nR+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc\nSPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf\nFlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO\ns2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc\n6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV\nidWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH\nMntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIII+DCCB+CgAwIBAgIQbAP9+jGpC4MAqlBK9HsanzANBgkqhkiG9w0BAQsFADCB\nlTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD\nEzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy\ndmVyIENBMB4XDTI0MDgyNjAwMDAwMFoXDTI1MDgyNjIzNTk1OVowXTELMAkGA1UE\nBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExHDAaBgNVBAoTE1N0YXRlIG9mIENh\nbGlmb3JuaWExGzAZBgNVBAMTEmNvbm5lY3QuZGNhLmNhLmdvdjCCAiIwDQYJKoZI\nhvcNAQEBBQADggIPADCCAgoCggIBALqonPJQIJB5rqVt3lFhVCAWVDaUiHINR/0a\nBtHeqP2Ue5EsLGwdCNCRrj8ge0bCqQh25UBEmIOrTWU3HcmyBYPG51TPp+T5GER2\nr8daV5oqSFpVIThArZF58Omwsbv38hkNn1LCdZher/yqbuZJNHZd2Z/h3Xv410us\ny2EnrALnoKkRUvJ/hfX3Wpn9H+gYILEjwS3Bz4RZbMNnZCmaKFvKdk4hL/5Nyfgi\nysHgJIM1jTitd24gilbA9RTLpak7naSxevb0SVa48hywpN8zoeDnOE/QIPGZ3CDJ\n70zHpZ9/T+soTtnTOAkVR3gCq6ZNshfizV6hqQTIvk6w8Ce7AoHv47EIRDwpb6RD\ngODEyZJFxR27/lZrXq3yvaiE0ZXkBFjJ6B4N+IuxpKrflRuddv5ObOm9AxunUsCM\nbhSf+7M8ECKk9j/IPYoKChfhxOyDQPKZSUtHx94+L5Z+7ri01S5ahkVlIY9O7VRz\nPU3YoqNslBUpAIrRYfjN1ej5FGgo867i5RUB9deFgJ/DMwbT0WN9e5DkVDcREbl4\nmJDRife0nZW88GgLDgFvvw3aFna+MtvE9BKgnTnPUUB9yiRJryj0i0qkIV30XF62\nCuNYEn8V24VvRv95wnsT6W758DGY7BspK18XVwL+LiA+GvkMFehhIRW6BBw1Txv9\n+NYVTTm1AgMBAAGjggR5MIIEdTAfBgNVHSMEGDAWgBQX2dYlJ2f5McJJQ9kwNkSM\nbKlP6zAdBgNVHQ4EFgQUYXACOqlHJoJQcEG3L0ICy9gYsV4wDgYDVR0PAQH/BAQD\nAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC\nMEoGA1UdIARDMEEwNQYMKwYBBAGyMQECAQMEMCUwIwYIKwYBBQUHAgEWF2h0dHBz\nOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECAjBaBgNVHR8EUzBRME+gTaBLhklo\ndHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FPcmdhbml6YXRpb25WYWxp\nZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYB\nBQUHMAKGSWh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXph\ndGlvblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGGF2h0\ndHA6Ly9vY3NwLnNlY3RpZ28uY29tMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgA\ndQDd3Mo0ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZGPYefYAAAEAwBG\nMEQCIC3PuRJmsoXOdITZPFofbx+GkT9JlXYA4rFD66SEzQYNAiBFdkL0000FzUHJ\nA11IglFWjubgpuCz7ct1NqW7nDwxFQB2AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw\n7w5CHrR+Tqo0AAABkY9h57UAAAQDAEcwRQIhAKN6rHqqCeFQKpBS36UE+z/kTXru\nA7bI/NrW6k+vZXNBAiBJ1mayfSQJPX3LVpPBNK1kHIXI612M9Tpmrt9prraFlgB3\nABLxTjS9U3JMhAYZw48/ehP457Vih4icbTAFhOvlhiY6AAABkY9h57UAAAQDAEgw\nRgIhALJAVx2+PVTOBjKeEkYLyTChpUyITMx2yJoZ8Zxe4C1nAiEAyKSU0BY4Wu/e\ndu3YZFHbBymWlfsDCPtkUYUXuaZPqrMwggE9BgNVHREEggE0MIIBMIISY29ubmVj\ndC5kY2EuY2EuZ292ghVjb25uZWN0LXdzLmNhYi5jYS5nb3aCFWNvbm5lY3Qtd3Mu\nY2ZiLmNhLmdvdoIlY29ubmVjdC13cy5jb3VydHJlcG9ydGVyc2JvYXJkLmNhLmdv\ndoIVY29ubmVjdC13cy5kY2EuY2EuZ292ghZjb25uZWN0LXdzLmxhdGMuY2EuZ292\nghtjb25uZWN0LXdzLnBlc3Rib2FyZC5jYS5nb3aCEmNvbm5lY3QuY2FiLmNhLmdv\ndoISY29ubmVjdC5jZmIuY2EuZ292giJjb25uZWN0LmNvdXJ0cmVwb3J0ZXJzYm9h\ncmQuY2EuZ292ghNjb25uZWN0LmxhdGMuY2EuZ292ghhjb25uZWN0LnBlc3Rib2Fy\nZC5jYS5nb3YwDQYJKoZIhvcNAQELBQADggEBAH8SsgW//ibqOZhMifgDLy2z4srI\nOwYMaWi0mxRO/6fgCO9BcpvT22vrMZYo3JuaEHtKT0joh5mdsfm/3tttEgnFYV5h\ngK4xgkZ/BbXoKWi+lmZPvxQJJFoRRg1WPnTvH+S7hUS0JAi4Wzmt7GGKhKnr5Fp3\nqTMIS9g0NQNGrV9pYqK1AQFzk0BBdemBqzUHLQjJ1k176AlvXP7xjW9Fi/Fdasat\ndfOtR3XILf1FTAjKGeGS9q2e4h6aZvLmdsDlCiG+YocUpTIOtdiF00zA4MybExyZ\npfy9x5+dKWTyekk5jr54LEFQ5kUDJaGZ0KnDuOxhDSpAO/Yb/Z/3ZAk2G0s=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEjTCCA3WgAwIBAgIQDQd4KhM/xvmlcpbhMf/ReTANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xNzExMDIxMjIzMzdaFw0yNzExMDIxMjIzMzdaMGAxCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xHzAdBgNVBAMTFkdlb1RydXN0IFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQC+F+jsvikKy/65LWEx/TMkCDIuWegh1Ngwvm4Q\nyISgP7oU5d79eoySG3vOhC3w/3jEMuipoH1fBtp7m0tTpsYbAhch4XA7rfuD6whU\ngajeErLVxoiWMPkC/DnUvbgi74BJmdBiuGHQSd7LwsuXpTEGG9fYXcbTVN5SATYq\nDfbexbYxTMwVJWoVb6lrBEgM3gBBqiiAiy800xu1Nq07JdCIQkBsNpFtZbIZhsDS\nfzlGWP4wEmBQ3O67c+ZXkFr2DcrXBEtHam80Gp2SNhou2U5U7UesDL/xgLK6/0d7\n6TnEVMSUVJkZ8VeZr+IUIlvoLrtjLbqugb0T3OYXW+CQU0kBAgMBAAGjggFAMIIB\nPDAdBgNVHQ4EFgQUlE/UXYvkpOKmgP792PkA76O+AlcwHwYDVR0jBBgwFoAUTiJU\nIBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\nAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB\nBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud\nHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds\nb2JhbFJvb3RHMi5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEW\nHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDQYJKoZIhvcNAQELBQADggEB\nAIIcBDqC6cWpyGUSXAjjAcYwsK4iiGF7KweG97i1RJz1kwZhRoo6orU1JtBYnjzB\nc4+/sXmnHJk3mlPyL1xuIAt9sMeC7+vreRIF5wFBC0MCN5sbHwhNN1JzKbifNeP5\nozpZdQFmkCo+neBiKR6HqIA+LMTMCMMuv2khGGuPHmtDze4GmEGZtYLyF8EQpa5Y\njPuV6k2Cr/N3XxFpT3hRpt/3usU/Zb9wfKPtWpoznZ4/44c1p9rzFcZYrWkj3A+7\nTNBJE0GmP2fhXhP1D/XVfIW/h0yCJGEiV9Glm/uGOa3DXHlmbAcxSyCRraG+ZBkA\n7h4SeM6Y8l/7MBRpPCz6l8Y=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGTDCCBDSgAwIBAgIQOXpmzCdWNi4NqofKbqvjsTANBgkqhkiG9w0BAQwFADBf\nMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD\nEy1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw\nHhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEY\nMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1Ymxp\nYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgUjM2MIIBojANBgkqhkiG9w0B\nAQEFAAOCAY8AMIIBigKCAYEAljZf2HIz7+SPUPQCQObZYcrxLTHYdf1ZtMRe7Yeq\nRPSwygz16qJ9cAWtWNTcuICc++p8Dct7zNGxCpqmEtqifO7NvuB5dEVexXn9RFFH\n12Hm+NtPRQgXIFjx6MSJcNWuVO3XGE57L1mHlcQYj+g4hny90aFh2SCZCDEVkAja\nEMMfYPKuCjHuuF+bzHFb/9gV8P9+ekcHENF2nR1efGWSKwnfG5RawlkaQDpRtZTm\nM64TIsv/r7cyFO4nSjs1jLdXYdz5q3a4L0NoabZfbdxVb+CUEHfB0bpulZQtH1Rv\n38e/lIdP7OTTIlZh6OYL6NhxP8So0/sht/4J9mqIGxRFc0/pC8suja+wcIUna0HB\npXKfXTKpzgis+zmXDL06ASJf5E4A2/m+Hp6b84sfPAwQ766rI65mh50S0Di9E3Pn\n2WcaJc+PILsBmYpgtmgWTR9eV9otfKRUBfzHUHcVgarub/XluEpRlTtZudU5xbFN\nxx/DgMrXLUAPaI60fZ6wA+PTAgMBAAGjggGBMIIBfTAfBgNVHSMEGDAWgBRWc1hk\nlfmSGrASKgRieaFAFYghSTAdBgNVHQ4EFgQUaMASFhgOr872h6YyV6NGUV3LBycw\nDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYI\nKwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdIAQUMBIwBgYEVR0gADAIBgZngQwBAgEw\nVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv\nUHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290UjQ2LmNybDCBhAYIKwYBBQUH\nAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp\nZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvblJvb3RSNDYucDdjMCMGCCsGAQUF\nBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA\nYtOC9Fy+TqECFw40IospI92kLGgoSZGPOSQXMBqmsGWZUQ7rux7cj1du6d9rD6C8\nze1B2eQjkrGkIL/OF1s7vSmgYVafsRoZd/IHUrkoQvX8FZwUsmPu7amgBfaY3g+d\nq1x0jNGKb6I6Bzdl6LgMD9qxp+3i7GQOnd9J8LFSietY6Z4jUBzVoOoz8iAU84OF\nh2HhAuiPw1ai0VnY38RTI+8kepGWVfGxfBWzwH9uIjeooIeaosVFvE8cmYUB4TSH\n5dUyD0jHct2+8ceKEtIoFU/FfHq/mDaVnvcDCZXtIgitdMFQdMZaVehmObyhRdDD\n4NQCs0gaI9AAgFj4L9QtkARzhQLNyRf87Kln+YU0lgCGr9HLg3rGO8q+Y4ppLsOd\nunQZ6ZxPNGIfOApbPVf5hCe58EZwiWdHIMn9lPP6+F404y8NNugbQixBber+x536\nWrZhFZLjEkhp7fFXf9r32rNPfb74X/U90Bdy4lzp3+X1ukh1BuMxA/EEhDoTOS3l\n7ABvc7BYSQubQ2490OcdkIzUh3ZwDrakMVrbaTxUM2p24N6dB+ns2zptWCva6jzW\nr8IWKIMxzxLPv5Kt3ePKcUdvkBU/smqujSczTzzSjIoR5QqQA6lN1ZRSnuHIWCvh\nJEltkYnTAH41QJ6SAWO66GrrUESwN/cgZzL4JLEqz1Y=\n-----END CERTIFICATE-----");const Qt=["-----BEGIN CERTIFICATE-----\nMIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE\nBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w\nMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290\nIENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC\nSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1\nODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv\nUTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX\n4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9\nKK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/\ngCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb\nrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ\n51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F\nbe8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe\nKF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F\nv6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn\nfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7\njPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz\nezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt\nifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL\ne3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70\njsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz\nWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V\nSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j\npwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX\nX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok\nfcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R\nK4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU\nZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU\nLysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT\nLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL\nBQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg\nQ2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv\nb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG\nEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u\nIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ\nn56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd\n2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF\nVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ\nGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF\nli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU\nr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2\neY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb\nMlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg\njwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB\n7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW\n5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE\nITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0\n90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z\nxiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu\nQEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4\nFstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH\n22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP\nxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn\ndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5\nXc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b\nnV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ\nCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH\nu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj\nd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\nca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\nVOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\njgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\nA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\nU5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\nN+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\no/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\n5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\nrqXRfboQnoZsG4q5WTP468SQvvG5\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK\ngXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ\nW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg\n1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K\n8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r\n2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me\nz/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR\n8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj\nmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz\n7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6\n+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI\n0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm\nUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2\nLIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS\nk5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl\n7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm\nbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl\nurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+\nfUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63\nn749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE\n76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H\n9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT\n4PsJYGw=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl\nui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr\nttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr\nBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM\nYyRIHN8wfdVoOw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi\n9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk\nM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB\n/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB\nMAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw\nCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW\n1KyLa2tJElMzrdfkviT8tQp21KW8EA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs\nZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5\nMDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD\nVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy\nZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy\ndmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p\nOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2\n8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K\nTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe\nhRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk\n6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw\nDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q\nAdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI\nbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB\nve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z\nqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd\niEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn\n0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN\nsSi6\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM\nMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD\nQTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM\nMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD\nQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E\njG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo\nePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI\nULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu\nOb7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg\nAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7\nHVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA\nuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa\nTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg\nxSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q\nCjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x\nO/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs\n6GAqm4VKQPNriiTsBhYscw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw\nCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw\nJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT\nEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0\nWjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT\nLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX\nBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE\nKI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm\nFy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8\nEF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J\nUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn\nnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM\nMSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D\nZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU\ncnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3\nWjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg\nUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw\nIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH\nUV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM\nTXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU\nBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM\nkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x\nAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV\nHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y\nsHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL\nI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8\nJ9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY\nVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI\n03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB\ngDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu\nQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG\nA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz\nOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ\nVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp\nZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3\nb3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA\nDGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn\n0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB\nOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE\nfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E\nSv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m\no130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i\nsx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW\nOZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez\nTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS\nadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n\n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD\nAQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC\nAQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ\nF/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf\nCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29\nXN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm\ndjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/\nWjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb\nAoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq\nP/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko\nb7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj\nXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P\n5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi\nDrW5viSP\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6\nMQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu\nMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV\nBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw\nMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg\nU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo\nb3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ\nn0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q\np1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq\nNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF\n8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3\nHAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa\nmqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi\n7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF\nytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P\nqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ\nv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6\nTsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1\nvALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD\nggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4\nWxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo\nzMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR\n5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ\nGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf\n5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq\n0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D\nP78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM\nqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP\n0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf\nE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE\nBhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h\ncHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1\nMDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg\nQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9\nthDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM\ncas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG\nL9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i\nNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h\nX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b\nm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy\nZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja\nEbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T\nKI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF\n6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh\nOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc\ntHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd\nIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j\nb20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC\nAG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw\nADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m\niWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF\nSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ\nhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P\nVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE\nEAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV\n1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t\nCsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR\n5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw\nf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9\nivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK\nGbqEZycPvEJdvSRUDewdcAZfpLz6IHxV\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw\nCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE\nYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB\nIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw\nCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE\nYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB\nIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf\ne9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C\ncyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB\n/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O\nBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO\nPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw\nhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG\nXSaQpYXFuXqUPoeovQA=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV\nBAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk\nYWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV\nBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN\nMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF\nUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD\nVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v\ndCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj\ncqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q\nyGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH\n2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX\nH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL\nzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR\np1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz\nW7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/\nSiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn\nLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3\nn5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B\nu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj\no1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L\n9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej\nrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK\npFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0\nvPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq\nOknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ\n/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9\n2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI\n+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2\nMjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo\ntt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU\nMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI\nT1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz\nMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF\nSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh\nbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z\nxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ\nspDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5\n58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR\nat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll\n5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq\nnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK\nV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/\npj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO\nz2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn\njSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+\nWGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF\n7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE\nAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4\nYRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli\nawLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u\n+2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88\nX7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN\nSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo\nP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI\n+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz\nznfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9\neVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2\nYqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy\nr/6zcCwupvI=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw\nCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ\nVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy\nMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ\nTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS\nb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B\nIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+\n+kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK\nsVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA\n94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B\n43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd\nMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg\nQ2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow\nTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw\nHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr\n6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV\nL4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91\n1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx\nMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ\nQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB\narcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr\nUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi\nFRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS\nP/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN\n9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP\nAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz\nuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h\n9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s\nA20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t\nOluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo\n+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7\nKcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2\nDISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us\nH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ\nI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7\n5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h\n3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz\nY11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd\nMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg\nQ2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow\nTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw\nHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y\nZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E\nN3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9\ntznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX\n0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c\n/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X\nKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY\nzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS\nO1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D\n34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP\nK9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3\nAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv\nTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj\nQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV\ncSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS\nIGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2\nHJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa\nO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv\n033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u\ndmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE\nkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41\n3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD\nu79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq\n4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw\nCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu\nbHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ\nBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s\neSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK\n+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2\nQNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4\nhevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm\nut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG\nBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw\nPTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy\ndGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0\nYWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2\n1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT\nvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed\naFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0\n1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5\nr3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5\ncBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ\nwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ\n6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA\n2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH\nWyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR\neiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB\n/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u\nd0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr\nPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d\n8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi\n1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd\nrRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di\ntaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7\nlcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj\nyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn\nKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy\nyCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n\nwXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6\nOV+KmalBWQewLK8=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV\nBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X\nDTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ\nBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4\nQCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny\ngQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw\nzBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q\n130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2\nJsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw\nZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT\nAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj\nAQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG\n9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h\nbV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc\nfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu\nHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w\nt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw\nWyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw\nWjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw\nMiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x\nMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD\nVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX\nBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO\nty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M\nCiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu\nI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm\nTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh\nC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf\nePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz\nIoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT\nCo/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k\nJWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5\nhwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB\nGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of\n1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov\nL3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo\ndHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr\naHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq\nhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L\n6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG\nHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6\n0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB\nlA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi\no2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1\ngPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v\nfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63\nNwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh\njWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw\n3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT\nAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD\nQTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP\nMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do\n0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ\nUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d\nRdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ\nOA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv\nJoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C\nAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O\nBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ\nLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY\nMnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ\n44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I\nJd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw\ni/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN\n9u6wWk5JRFRYX0KD\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV\nBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g\nUk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ\nBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ\nR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF\ndRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw\nvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ\nuIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp\nn+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs\ncpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW\nxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P\nrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF\nDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx\nDTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy\nLcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C\neWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB\n/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ\nd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq\nkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC\nb6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl\nqiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0\nOJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c\nNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk\nltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO\npwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj\n03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk\nPuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE\n1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX\nQRBdJ3NghVdJIgc=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD\nTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y\naXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx\nMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j\naWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP\nT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03\nsQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL\nTIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5\n/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp\n7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz\nEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt\nhxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP\na931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot\naK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg\nTnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV\nPKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv\ncWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL\ntbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd\nBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB\nACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT\nej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL\njOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS\nESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy\nP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19\nxIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d\nCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN\n5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe\n/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z\nAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ\n5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe\nMQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0\nZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe\nFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw\nIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL\nSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH\nSyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh\nijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X\nDZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1\nTBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ\nfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA\nsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU\nWH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS\nnT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH\ndmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip\nNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC\nAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF\nMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH\nClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB\nuvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl\nPwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP\nJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/\ngpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2\nj6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6\n5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB\no2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS\n/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z\nGp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE\nW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D\nhNQ+IIX3Sj0rnP0qCglN6oH4EZw=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP\nMQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0\nZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa\nFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3\nYSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw\nqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv\nVcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6\nlZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz\nQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ\nKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK\nFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj\nHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr\ny+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ\n/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM\na/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6\nfsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV\nHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG\nSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi\n7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc\nSE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza\nZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc\nXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg\niLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho\nL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF\nNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr\nkkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+\nvhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU\nYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMw\nTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t\nbVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNa\nFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv\ncGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDEw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLxeP0C\nflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJE\nhRGnSjot6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggq\nhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg\n2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liWpDVfG2XqYZpwI7UNo5uS\nUm9poIyNStDuiw7LR47QjRE=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMw\nTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t\nbVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRa\nFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv\ncGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDIw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/MMDAL\nj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmU\nv4RDsNuESgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggq\nhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/n\nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs73u1Z/GtMMH9ZzkXpc2AV\nmkzw5l4lIhVtwodZ0LKOag==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQEL\nBQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi\nQ29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1\nNTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t\nU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt\nMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45FtnYSk\nYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslh\nsuitQDy6uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0al\nDrJLpA6lfO741GIDuZNqihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3Oj\nWiE260f6GBfZumbCk6SP/F2krfxQapWsvCQz0b2If4b19bJzKo98rwjyGpg/qYFl\nP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/cZip8UlF1y5mO6D1cv547\nKI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTifBSeolz7p\nUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/\nkQO9lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JO\nHg9O5j9ZpSPcPYeoKFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkB\nEa801M/XrmLTBQe0MXXgDW1XT2mH+VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6U\nCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G\nA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm45P3luG0wDQYJ\nKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6\nNWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQ\nnmhUQo8mUuJM3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+\nQgvfKNmwrZggvkN80V4aCRckjXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2v\ntrV0KnahP/t1MJ+UXjulYPPLXAziDslg+MkfFoom3ecnf+slpoq9uC02EJqxWE2a\naE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/WNyVntHKLr4W96ioD\nj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+o/E4\nXo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0w\nlREQKC6/oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHn\nYfkUyq+Dj7+vsQpZXdxc1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVoc\nicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQEL\nBQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi\nQ29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2\nNDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t\nU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt\nMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3VrCLE\nNQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0\nkyI9p+Kx7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1C\nrWDaSWqVcN3SAOLMV2MCe5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxz\nhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2WWy09X6GDRl224yW4fKcZgBzqZUPckXk2\nLHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rpM9kzXzehxfCrPfp4sOcs\nn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIfhs1w/tku\nFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5\nkQMreyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3\nwNemKfrb3vOTlycEVS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6v\nwQcQeKwRoi9C8DfF8rhW3Q5iLc4tVn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs\n5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G\nA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7GxcJXvYXowDQYJ\nKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB\nKCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3\n+VGXu6TwYofF1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbyme\nAPnCKfWxkxlSaRosTKCL4BWaMS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3Nyq\npgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xdgSGn2rtO/+YHqP65DSdsu3BaVXoT\n6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2OHG1QAk8mGEPej1WF\nsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+NmYWvt\nPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2d\nlklyALKrdVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670\nv64fG9PiO/yzcnMcmyiQiRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17O\nrg3bhzjlP1v9mxnhMUF6cKojawHhRUzNlM47ni3niAIi9G7oyOzWPPO5std3eqx7\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u\nLCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw\nNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD\neWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS\nb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF\nKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt\np7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd\nJ1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur\nFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J\nhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K\nh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF\nAAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld\nmmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ\nmBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA\n8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV\n55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/\nyOPiZwud9AzqVN/Ssq+xIvEg37xEHA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM\nBQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u\nLCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw\nNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD\neWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS\nb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/\nFjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg\nvlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy\n6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo\n/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J\nkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ\n0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib\ny8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac\n18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs\n0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB\nSMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL\nApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD\nAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk\n86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E\nrX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib\ned87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT\nzfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS\nDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4\n2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo\nFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy\nK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6\ndB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl\nLor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB\n365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c\nJRNItX+S\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw\nUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM\ndGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy\nNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl\ncnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290\nIENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4\nwCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR\nZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT\n9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp\n4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6\nbkU6iYAZezKYVWOr62Nuk22rGwlgMU4=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw\nCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS\nVVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5\nNDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG\nA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS\nzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0\nQVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/\nVbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g\nPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf\nY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l\ndC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1\nc3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO\nPQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW\nwKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV\ndWNbFJWcHwHP2NVypw87\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI\nMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE\nLVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw\nOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi\nMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr\ni3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE\ngXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8\nk12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT\nRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl\n2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U\ncSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP\n/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS\nuREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+\n0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N\nDfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+\nXTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61\nGNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG\nOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y\nXzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI\nFoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n\nriv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR\nVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc\nLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn\n4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD\nhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG\nkoHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46\nls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS\nEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80\nknCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ\nhJ65bvspmZDogNOfJA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw\nCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS\nVVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5\nNTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG\nA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC\n/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD\nwpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3\nOqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g\nPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf\nY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l\ndC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1\nc3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO\nPQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA\ny/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb\ngfM0agPnIjhQW+0ZT0MW\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI\nMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE\nLVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw\nOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi\nMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK\nF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE\n7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe\nEMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6\nlHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb\nRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV\njTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc\njmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx\nTnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+\nARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk\nhbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF\nNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH\nkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG\nOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y\nXzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14\nQvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4\npZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q\n3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU\nt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX\ncI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8\nifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT\n2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs\n7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP\ngofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst\nNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh\nXBxvWHZks/wCuPWdCg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEDjCCAvagAwIBAgIDD92sMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkRF\nMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxHzAdBgNVBAMMFkQtVFJVU1QgUm9vdCBD\nQSAzIDIwMTMwHhcNMTMwOTIwMDgyNTUxWhcNMjgwOTIwMDgyNTUxWjBFMQswCQYD\nVQQGEwJERTEVMBMGA1UECgwMRC1UcnVzdCBHbWJIMR8wHQYDVQQDDBZELVRSVVNU\nIFJvb3QgQ0EgMyAyMDEzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nxHtCkoIf7O1UmI4SwMoJ35NuOpNcG+QQd55OaYhs9uFp8vabomGxvQcgdJhl8Ywm\nCM2oNcqANtFjbehEeoLDbF7eu+g20sRoNoyfMr2EIuDcwu4QRjltr5M5rofmw7wJ\nySxrZ1vZm3Z1TAvgu8XXvD558l++0ZBX+a72Zl8xv9Ntj6e6SvMjZbu376Ml1wrq\nWLbviPr6ebJSWNXwrIyhUXQplapRO5AyA58ccnSQ3j3tYdLl4/1kR+W5t0qp9x+u\nloYErC/jpIF3t1oW/9gPP/a3eMykr/pbPBJbqFKJcu+I89VEgYaVI5973bzZNO98\nlDyqwEHC451QGsDkGSL8swIDAQABo4IBBTCCAQEwDwYDVR0TAQH/BAUwAwEB/zAd\nBgNVHQ4EFgQUP5DIfccVb/Mkj6nDL0uiDyGyL+cwDgYDVR0PAQH/BAQDAgEGMIG+\nBgNVHR8EgbYwgbMwdKByoHCGbmxkYXA6Ly9kaXJlY3RvcnkuZC10cnVzdC5uZXQv\nQ049RC1UUlVTVCUyMFJvb3QlMjBDQSUyMDMlMjAyMDEzLE89RC1UcnVzdCUyMEdt\nYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MDugOaA3hjVodHRwOi8v\nY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2FfM18yMDEzLmNybDAN\nBgkqhkiG9w0BAQsFAAOCAQEADlkOWOR0SCNEzzQhtZwUGq2aS7eziG1cqRdw8Cqf\njXv5e4X6xznoEAiwNStfzwLS05zICx7uBVSuN5MECX1sj8J0vPgclL4xAUAt8yQg\nt4RVLFzI9XRKEBmLo8ftNdYJSNMOwLo5qLBGArDbxohZwr78e7Erz35ih1WWzAFv\nm2chlTWL+BD8cRu3SzdppjvW7IvuwbDzJcmPkn2h6sPKRL8mpXSSnON065102ctN\nh9j8tGlsi6BDB2B4l+nZk3zCRrybN1Kj7Yo8E6l7U0tJmhEFLAtuVqwfLoJs4Gln\ntQ5tLdnkwBXxP/oYcuEVbSdbLTAoK59ImmQrme/ydUlfXA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF\nMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD\nbGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha\nME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM\nHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03\nUAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42\ntSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R\nySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM\nlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp\n/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G\nA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G\nA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj\ndG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy\nMENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl\ncmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js\nL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL\nBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni\nacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0\no3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K\nzCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8\nPIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y\nJohw1+qRzT65ysCQblrGXnRl11z+o+I=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF\nMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD\nbGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw\nNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV\nBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn\nljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0\n3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z\nqQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR\np75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8\nHgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw\nggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea\nHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw\nOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh\nc3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E\nRT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt\ndHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku\nY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp\n3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05\nnsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF\nCSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na\nxpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX\nKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICXjCCAeOgAwIBAgIQUs/kjG2gSvc/gpcMgAmMlTAKBggqhkjOPQQDAzBJMQsw\nCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSMwIQYDVQQDExpELVRy\ndXN0IFNCUiBSb290IENBIDEgMjAyMjAeFw0yMjA3MDYxMTMwMDBaFw0zNzA3MDYx\nMTI5NTlaMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxELVRydXN0IEdtYkgxIzAh\nBgNVBAMTGkQtVHJ1c3QgU0JSIFJvb3QgQ0EgMSAyMDIyMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAEWZM59oxJZijXYQzIq38Moy3foqR8kito1S5+HkDLtGhJfxKhq39X\nnxkuYy5b/mZxDDMPud5rxIjDse/sOUDjlqvb5XuuH9z5r0aaakYGL8c3ZIsXYv6W\nw6LuhOCwlzm8o4GPMIGMMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPEpox4B\nEh09dVZNx1B8xRmqDxi3MA4GA1UdDwEB/wQEAwIBBjBKBgNVHR8EQzBBMD+gPaA7\nhjlodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Nicl9yb290X2Nh\nXzFfMjAyMi5jcmwwCgYIKoZIzj0EAwMDaQAwZgIxAJf53q5Lj5i1HkB/Mn1NVEPa\nic3CqpI80YIec8/6TJIg+2MnxfVzPQk996dhhozzagIxAOcvfLj1JYw7OR82q431\nhqIu4Xpk2mc5Av7+Mz/Zc7ZYWzr8sqTZYHh3zHmnpq5VvQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFrDCCA5SgAwIBAgIQVNWjlR49lbpyG5rQMSFKujANBgkqhkiG9w0BAQ0FADBJ\nMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSMwIQYDVQQDExpE\nLVRydXN0IFNCUiBSb290IENBIDIgMjAyMjAeFw0yMjA3MDcwNzMwMDBaFw0zNzA3\nMDcwNzI5NTlaMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxELVRydXN0IEdtYkgx\nIzAhBgNVBAMTGkQtVHJ1c3QgU0JSIFJvb3QgQ0EgMiAyMDIyMIICIjANBgkqhkiG\n9w0BAQEFAAOCAg8AMIICCgKCAgEAryy8jjaM62SvUWrWbjxekTrqmsPKbPuqJ55k\nIqlA37koRVrsU2EWKJjCiqR1eFCE3fogSJIHZUE1ZlESdGGdBwaFOTFXeyg/1Zyl\n7FrpHEsnn84nBvM39VLYETMWQTof9WN4ZWOGyb/IAQQfbu7i7KwM7oKS4vYaDT85\n+Z1lk634uQXBPfg3gVbDoP4F7OCUFjojFgTapgqThXJtYTuhjUXW43++Fb02hAj2\nC4NrJqqiveCw56rgrmfE04KlDKmk8DN5DVA/8O+QPSS5f9IgbOqX87+c3EfeCWG9\nlHmVWgJ2NWDERyIN93ZjA9PG+4PGXaut7WklKwNbTSUAQeOMhxdSqOAFK0NNFBPK\n5z9DIrw3pHXx9r867zIeru5YhpByugSsQEjvXMR4p6mPJ1rLeuxY8sIIWJBtTQOF\neXEVBQ5OPvnfDwX3XxRIViENM5KxrIzlGP6/D+7gBKq9IfJYtlyJCosYCSIaszXG\nZsL1MxWZgOAI+ZYvE4zu2reIxOk3tddq1zqETatwjNNOFFWgohD8ZNpn6PHLM93J\nmoqPli9Ygdn4mgBDzJD7VXb7huM3ASgMb/TpWU0Vd1FCSsw0uIBDUIHvV6UT26eU\neQ9Lyn4Xfa+jIWTocVVWjwawR+xZD11wWywWQvCGnnXea01ImITiVxi2nIKZZTqL\ngHhXDEkCAwEAAaOBjzCBjDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRds4CU\nG+WGv2i6FDSk9u5t8t3f5zAOBgNVHQ8BAf8EBAMCAQYwSgYDVR0fBEMwQTA/oD2g\nO4Y5aHR0cDovL2NybC5kLXRydXN0Lm5ldC9jcmwvZC10cnVzdF9zYnJfcm9vdF9j\nYV8yXzIwMjIuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA0VC5YGFbNSr2X0/V9K9yv\nD1HhTbwhS5P0AEQTBxALJRg+SFmW96Hhk5B4Zho9I+siqwGmjgxRM+ZtjDHurKQB\ncDlI3sdmLGsNy3Ofh5LpPkcfuO8v7rdWjEiJ8DinFTmy7sA/F6RzAgicvAaKpMK3\nYWH5w9vE0Hp8Yd6xWJH13WVMLwv46z217Yq+dxy6WQISZnHlmCfODj2vUaJF+YL7\nWqWUcPeLhMNMZSWbe+IfMHCzQI467r3052jFnckpR3EOk8i1SE71ZrsHiHFpa3tI\njm/wEcS0yXAUmCC97afqAdpupZsS/j5EMLPw63VSwPTD+ncmpHeCLW/zKB5OlfAw\n94n4LKJQW/K+Mn5sVNtyySpa4By2C9hSmlmh47ABJ8WgFlBm3OuubfSbWz2EbVuH\n56mJu2644JtTicD/LkAaiUQuGENnOOR8cl/ZoyklQUE9HHcbZKjDVe5jcWZig/R/\nJpmgVDuhEm1wYs7T+bi9IvzUmtS74jgWL7d9OcKwqQPpnM9+GI123F8Ru+tC7FAJ\nPlzskDHYGnK6P2kH7pg0wjSk1toT1qmE8gCGwFS6HhGw4rnEB7SR56rmMVZvsUTE\nKmK8ybBlnDT8DBpT3yEXu8JtoQrm8bCqRAlQSTh6XXHiMS4ZsN+VQgR9hIjOCiNn\nazidFt4G/ihwOKVarvyD7Q==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx\nKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd\nBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl\nYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1\nOTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy\naXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50\nZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd\nAqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC\nFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi\n1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq\njnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ\nwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/\nWSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy\nNsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC\nuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw\nIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6\ng1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN\n9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP\nBSeOE6Fuwg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx\nKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd\nBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl\nYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1\nOTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy\naXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50\nZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN\n8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/\nRLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4\nhqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5\nZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM\nEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1\nA/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy\nWL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ\n1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30\n6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT\n91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml\ne9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p\nTpPDpFQUWw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICRzCCAc2gAwIBAgIQFSrdFMkY0aRWQIamJa8HXzAKBggqhkjOPQQDAzBlMQsw\nCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH\nbWJIMS0wKwYDVQQDDCRUZWxla29tIFNlY3VyaXR5IFNNSU1FIEVDQyBSb290IDIw\nMjEwHhcNMjEwMzE4MTEwODMwWhcNNDYwMzE3MjM1OTU5WjBlMQswCQYDVQQGEwJE\nRTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMS0wKwYD\nVQQDDCRUZWxla29tIFNlY3VyaXR5IFNNSU1FIEVDQyBSb290IDIwMjEwdjAQBgcq\nhkjOPQIBBgUrgQQAIgNiAASwGY+ia7XHzQ8wmTcMw2Bb8fEnIFU9wJKLq1ehb3OD\nIcJDEwxeiarHBTV5k2KQ1l0TH9F6oLyeEKdmfEYKsFdsv+ZUOTghbBJccczTWl9t\nt6eG37Pf7sLniUGWNfYvSrWjQjBAMB0GA1UdDgQWBBQrywEMY8NTEqWoV6/QnIP7\nvZA6SzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQD\nAwNoADBlAjEA1rxIkodHA8dwOyW2H65GZ3N0ACdL5KUEogPfXiitbl4DyN1onLa/\nlBBIlS8P/xiLAjABQDOel5dNBfJ0VAzNOf1qawnBJD9hjjiht+jXRBURYv8OYTdH\nS0B/Sl+yZ1pzdcI=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFtzCCA5+gAwIBAgIQDH5i9XlzO51Djotj7ZGVuDANBgkqhkiG9w0BAQwFADBl\nMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0\neSBHbWJIMS0wKwYDVQQDDCRUZWxla29tIFNlY3VyaXR5IFNNSU1FIFJTQSBSb290\nIDIwMjMwHhcNMjMwMzI4MTIwOTIyWhcNNDgwMzI3MjM1OTU5WjBlMQswCQYDVQQG\nEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMS0w\nKwYDVQQDDCRUZWxla29tIFNlY3VyaXR5IFNNSU1FIFJTQSBSb290IDIwMjMwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDvxQ6LvjLSZ0f/Ckxnsyq/yMPF\nkeu1xx6R4WaoiItVIIAfUV53l54ZClzHazchfAM2AfSIJdmoLkGq/Ngm4JZAYnmu\nV54DOBocsncUPumhctDk4DfRF0btUFx6WMX4K/d1L8+BnlostzqsoFmYBFEM/0nF\nUP0e00eFSzNPoje1rwSaJzKdVtU/VWHji2+uUf6X/mkH+mJbJuYUeRWlEziuXze+\nlErWDYAWaaSRsjpJmHWdRhCKXHp/hKXorx7Hq7NaRrWjS/WmIzYARrHbBbYbzp56\nMlya1XLDnYZNK4TTHrWI2hB4nCLDOyO16xMHvW9T7Jvsm9Nl9QcJ412nmbV+ho7V\nAv+3hQnjRxTdlmYYNN4I1d/LGJliCyvsAF1SRNPGlvwyViWRz80ZO5U5PgKHmWO2\n1T40eg8RdYG8fQTKYLQoddcCUd1SAC7H/YnxXPPLpCcSOI+7+4nw5MQ4LL6CoHFh\nYpGPSAwvK6mw8csQBOd0vzeQ708qQzWXEsYqcA3eLFVHeWMp9cofagZSHK4tJCKD\nIq/QqjC3Kh//ZSNYZZPIjn1AEDGGeNlVyzww8N5RKgA20idFX9jooSE9fkZWOylF\n8R0FCc62QzDcRZAQMEyka4aLPz0vMZFx7ya59r6dsGzfEe5YP0N5hjmA8SYXB5jw\nmaowLENZFM7t4kAThQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFJrOrCrsAfplcN6XnfHSAIylo2S7MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgw\nFoAUms6sKuwB+mVw3ped8dIAjKWjZLswDQYJKoZIhvcNAQEMBQADggIBAONQ/fVA\nFiIJljoNqe+B5y4y8KHxSV57iA0Ecte+Z6i6He5Qu3JuetG7DHIwRsjV1wISFplO\nHt9alu6Pkb6uhvgQd6XEbkdhwPIm2U9haAVIdQgVpaF71biziXnm7fHzYQCGey4x\n/qNc+Hk9tFuIe+Ajuw2hF/rLaA2Yd3EI4m1DdGvENsWUQaQA1lctmYqLIBIVAjIO\n0knsgUjFaidS17JzVVOWPJ5PTLWg0E9X0GcoSGS+xri67GTPyHvFaucq5llXttbU\n1sBnXNmeKAlAv/OpNTFlYAPLGWyClQMeXz/hvepJceVbtwtHFhsgiW2UmQx+iGwd\nDfS3IRpZl6zL6L4XH5V8U5uvUFKqjQsur1rXYPIqaSq57lRwGKq99aE/0t2hYxkA\n+KcM66N58nBZo/iiEgPsE//kAoY218HDpLXUpMI3RbaUcD3FveujFR3jNnoVaSpW\nNDnPpZo2qsjtebzP9s4EUwvaslAjfLw+Jq3wDkO7JsuuwkDeNx8KoFHNY522T9jG\nR3y82LTtnovzEeKotT7srnA+fiK7NUgXYGIUkTCjdj2mUTaLHw3dajEcpe3dlqNu\ncg8TTaqnqVx4+QMSGJM3RRKJPfi+yr3ZvgzZGGSnyEE+dYIhOH1l9KDUE0sHeCn5\nnX7Mhz/E2i6I3eML3FpRWunZEk+eAtv3BSVR\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw\nCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH\nbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw\nMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx\nJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE\nAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O\ntdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP\nf8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f\nMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA\nMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di\nz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn\n27iQ7t0l\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj\nMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0\neSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy\nMDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC\nREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG\nA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9\ncUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV\ncp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA\nU6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6\nY+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug\nBTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy\n8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J\nco4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg\n8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8\nrFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12\nmAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg\n+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX\ngj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2\np5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ\npGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm\n9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw\nM807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd\nGGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+\nCqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t\nxKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+\nw6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK\nL4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj\nX273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q\nntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm\ndTdmQRCsu/WU48IxK63nI1bMNSWSs1A=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv\nb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl\ncnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c\nJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP\nmDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+\nwRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4\nVYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/\nAUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB\nAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun\npyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC\ndWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf\nfwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm\nNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx\nH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe\n+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv\nb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl\ncnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA\nn61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc\nbiJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp\nEgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA\nbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu\nYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB\nAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW\nBBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI\nQW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I\n0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni\nlmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9\nB5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv\nON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo\nIhNzbM8m9Yop5w==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw\nCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu\nZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg\nRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV\nUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu\nY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq\nhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf\nZn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q\nRSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\nBAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD\nAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY\nJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv\n6pZjamVFkpUBtA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\n2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\n1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\nq2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\ntCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\nvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\n5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\n1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\nNeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\nFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\n8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\npLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\nMrY=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw\nCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu\nZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe\nFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw\nEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x\nIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG\nfp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO\nZ9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd\nBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx\nAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/\noAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8\nsycX\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\nZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\nLmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\nRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm\n+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW\nPNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM\nxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB\nIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3\nhzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg\nEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA\nFLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec\nnzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z\neM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF\nhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2\nYzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe\nvEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep\n+OkuE6N36B9K\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICHDCCAaOgAwIBAgIQBT9uoAYBcn3tP8OjtqPW7zAKBggqhkjOPQQDAzBQMQsw\nCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKDAmBgNVBAMTH0Rp\nZ2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN\nNDYwMTE0MjM1OTU5WjBQMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs\nIEluYy4xKDAmBgNVBAMTH0RpZ2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQWnVXlttT7+2drGtShqtJ3lT6I5QeftnBm\nICikiOxwNa+zMv83E0qevAED3oTBuMbmZUeJ8hNVv82lHghgf61/6GGSKc8JR14L\nHMAfpL/yW7yY75lMzHBrtrrQKB2/vgSjQjBAMB0GA1UdDgQWBBRzemuW20IHi1Jm\nwmQyF/7gZ5AurTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggq\nhkjOPQQDAwNnADBkAjA3RPUygONx6/Rtz3zMkZrDbnHY0iNdkk2CQm1cYZX2kfWn\nCPZql+mclC2YcP0ztgkCMAc8L7lYgl4Po2Kok2fwIMNpvwMsO1CnO69BOMlSSJHW\nDvu8YDB8ZD8SHkV/UT70pg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFajCCA1KgAwIBAgIQBfa6BCODRst9XOa5W7ocVTANBgkqhkiG9w0BAQwFADBP\nMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJzAlBgNVBAMT\nHkRpZ2lDZXJ0IFNNSU1FIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBa\nFw00NjAxMTQyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2Vy\ndCwgSW5jLjEnMCUGA1UEAxMeRGlnaUNlcnQgU01JTUUgUlNBNDA5NiBSb290IEc1\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4Gpb2fj5fey1e+9f3Vw0\n2Npd0ctldashfFsA1IJvRYVBiqkSAnIy8BT1A3W7Y5dJD0CZCxoeVqfS0OGr3eUE\nG+MfFBICiPWggAn2J5pQ8LrjouCsahSRtWs4EHqiMeGRG7e58CtbyHcJdrdRxDYK\nmVNURCW3CTWGFwVWkz1BtwLXYh+KkhGH6hFt6ggR3LF4SEmS9rRRgHgj2P7hVho6\nkBNWNInV4pWLX96yzPs/OLeF9+qevy6hLi9NfWoRLjag/xEIBJVV4Bs7Z5OplFXq\nMu0GOn/Cf+OtEyfRNEGzMMO/tIj4A4Kk3z6reHegWZNx593rAAR7zEg5KOAeoxVp\nyDayoQuX31XW75GcpPYW91EK7gMjkdwE/+DdOPYiAwDCB3EaEsnXRiqUG83Wuxvu\nv75NUFiwC80wdin1z+W2ai92sLBpatBtZRg1fpO8chfBVULNL8Ilu/T9HaFkIlRd\n4p5yQYRucZbqRQe2XnpKhp1zZHc4A9IPU6VVIMRN/2hvVanq3XHkT9mFo3xOKQKe\nCwnyGlPMAKbd0TT2DcEwsZwCZKw17aWwKbHSlTMP0iAzvewjS/IZ+dqYZOQsMR8u\n4Y0cBJUoTYxYzUvlc4KGjOyo1nlc+2S73AxMKPYXr+Jo1haGmNv8AdwxuvicDvko\nRkrh/ZYGRXkRaBdlXIsmh1sCAwEAAaNCMEAwHQYDVR0OBBYEFNGj1FcdT1XbdUxc\nQp5jFs60xjsfMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG\nSIb3DQEBDAUAA4ICAQAHpwreU7ua63C/sjaQzeSnuPEM5F1aHXhl/Mm4HiMRV3xp\nNW0B/1NQvwcOuscBP1gqlHUDqxwLI9wbih43PR1Yj3PZsypv3xCgWwynyrB/uSSi\nATUy5V5GQevYf3PnQumkUSZ3gQqo6w8KUJ1+iiBn/AuOOhHTxYxgGNlLsfzU8bRJ\nTq6H4dH7dqFf8wbPl5YM6Z51gVxTDSL8NuZJbnTbAIWNfCKgjvsQTNRiE1vvS3Im\ni/xOio/+lxBTxXiLQmQbX+CJ/bsJf1DgVIUmEWodZflJKdx8Nt/7PffSrO4yjW6m\nfTmcRcTKDfU7tHlTpS9Wx1HFikxkXZBDI45rTBd4zOi/9TvkqEjPrZsM3zJK09kS\njiN4DS2vn6+ePAnClwDtOmkccT8539OPxGb17zaUD/PdkraWX5Cm3XOqpiCUlCVq\nCQxy5BMjYEyjyhcue2cA29DN6nofOSZXiTB3y07llUVPX/s2XD35ILU6ECVPkzJa\n7sGW6OlWBLBJYU3seKidGMH/2OovVu+VK3sEXmfjVUDtOQT5C3n1aoxcD4makMfN\ni97bJjWhbs2zQvKiDzsMjpP/FM/895P35EEIbhlSEQ9TGXN4DM/YhYH4rVXIsJ5G\nY6+cUu5cv/DAWzceCSDSPiPGoRVKDjZ+MMV5arwiiNkMUkAf3U4PZyYW0q0XHA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw\nCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp\nZ2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2\nMDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ\nbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG\nByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS\n7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp\n0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS\nB4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49\nBAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ\nLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4\nDXZDjC5Ty3zfDBeWUA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN\nMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT\nHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN\nNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs\nIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+\najWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0\n2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp\nwgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM\npG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD\nnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po\nsMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx\nZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd\nLvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX\nKyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe\nXoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL\ntgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv\nTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN\nAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw\nGXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H\nPNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF\nO4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ\nREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik\nAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv\n/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+\np6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw\nMUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF\nqUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK\novfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg\nRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV\nUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu\nY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y\nithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If\nxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV\nySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO\nDCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ\njdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/\nCNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi\nEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM\nfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY\nuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK\nchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t\n9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD\nggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2\nSV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd\n+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc\nfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa\nsjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N\ncCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N\n0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie\n4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI\nr/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1\n/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm\ngKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICajCCAfCgAwIBAgIUNi2PcoiiKCfkAP8kxi3k6/qdtuEwCgYIKoZIzj0EAwMw\nZDELMAkGA1UEBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmljYWRv\ncmEgRGlnaXRhbDEpMCcGA1UEAwwgRElHSVRBTFNJR04gR0xPQkFMIFJPT1QgRUNE\nU0EgQ0EwHhcNMjEwMTIxMTEwNzUwWhcNNDYwMTE1MTEwNzUwWjBkMQswCQYDVQQG\nEwJQVDEqMCgGA1UECgwhRGlnaXRhbFNpZ24gQ2VydGlmaWNhZG9yYSBEaWdpdGFs\nMSkwJwYDVQQDDCBESUdJVEFMU0lHTiBHTE9CQUwgUk9PVCBFQ0RTQSBDQTB2MBAG\nByqGSM49AgEGBSuBBAAiA2IABG4Lo6szTRzqSuj8BI0UoH3wCCxfg6uT0dJ7utdJ\nfY/sElBf1LnL5fD5M2MfyVfsQNgRC5foUhbMKY70BoYeONw9V8Tuqr3IVAQmWicT\nUUc9Hx8ajqiVpDPQzEfMbbj8SKNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME\nGDAWgBTOr0qLGnXi8TjnAvAWrV7qZNV7tDAdBgNVHQ4EFgQUzq9Kixp14vE45wLw\nFq1e6mTVe7QwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMAqIxHGc\nRANNjbTHvKiu2TAnNWprFmPX/OdZ4aeJG0wxmiNVRObzQyHVRydvbVcBqgIxAPuy\n6uKXf1G1n0jrvG81iahkcKtXds3AxhRgyn/iggBz98w16o4km+UIWccEjHN4/g==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIUXVnIyqsJV/XmtdoplARq/8XUlYcwDQYJKoZIhvcNAQEN\nBQAwYjELMAkGA1UEBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmlj\nYWRvcmEgRGlnaXRhbDEnMCUGA1UEAwweRElHSVRBTFNJR04gR0xPQkFMIFJPT1Qg\nUlNBIENBMB4XDTIxMDEyMTEwNTAzNFoXDTQ2MDExNTEwNTAzNFowYjELMAkGA1UE\nBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmljYWRvcmEgRGlnaXRh\nbDEnMCUGA1UEAwweRElHSVRBTFNJR04gR0xPQkFMIFJPT1QgUlNBIENBMIICIjAN\nBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyIe2ONMc8N4S+IPHxIriibi0Inp4\n+AxmUWh2NwrVT8JaCLgWXPdyAQk3hIEqVGvXktBs+qinQxI06w7bNw8p/ooxUULo\nS5yQqMgsEdP9oCl+zt6U9oLgWLRORSXxIvI90w97VBrcMrbWUU5+QbRXuCzGuQ4u\nylfx1cjTWOel6UIRrtMgJZRp14/Kog3D058HaD8V0mcuU/12gpsLc6kpDZ4RkxQI\nmOyeVBJKVqIGFexrbC6SYC6GDa6CH1FN47IH1xAZVyL2qWlEhPPZPaAGv8yIfn/1\nzlulwipqdELqb6b/+Wix0F+9kdJVbzNXTB6d5OKLwYVloOBqnAAAiJLdWAgW8nAx\nqBzh3r1OcenWvn61oVrDTfe/m72UpP31qlOTRskmAQRwxKBxus4lZvuRflVw7kkK\nTWJ/wlCacvIYZ53pRag0hOj4gfbRWiIeB087s3/dEaVz3L6pGTppqW0bMuKJqqUn\nC1p+dOIPZDldfly5wRf8x41eyewk7dLyP3qERTcCvj5rWcTmWxZtwKqeqrVZLixw\nVZzMmZaYJFTRjtrKtBG0t3BDH2+QCyCgqHYTZdvbI1p1S6ELMXcK7n1oYRoTjOpR\nflxWo1dMXaHrE2W/VBTM8+7c1+w8l/J4Vrjfclxw/M4G3Z/SBzHv51KRns2618AY\nRAcxZUkyaRNK648CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW\ngBS1Nrw8jBqrLPZZGS2DFNqTJRXWhjAdBgNVHQ4EFgQUtTa8PIwaqyz2WRktgxTa\nkyUV1oYwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDQUAA4ICAQAU+zElODH4\nygiyI3Y4rfjTWfXMtFcl4US+fvwW7K76Jp9PZxZKVvD97ccZATSOkFot1oBc7HHS\ngSWCHgBx35rR1R0iu9Gl82IPtOvcJHP+plbNmhTFBDUWMaIH66UA4rb4X3L9P2FJ\njt5+TTjXeh50N2xR3L4ABLg4FPMgwe2bpyP9DUKEHX/yc8PQeGPxn+zXW+nxvmyg\nSwOejWnhFNqIEIEjU//aVCsLxrmWlQQYRvN7qJfYW2ik5DgcDkXlmNMJrppe7LN5\nDTly8vSUnQ6eYCLmqPZMhc0HgjpoOc09X+M49LavO2tKn2BRRaJAAuWqDOM+0XjU\nonScJroFmihwSj6mC9AdSfC6+K5BEH6kBxK9qM8pPVe7x/FDRwA+rnAYWiB7Ccs6\nOnCA5UxgmMEVwR1K98jwm+FyreddaFgLBLGMvJ+3+26LWwRV++sjVdd4UNoly74n\nNrskGnkcUdH+E7v/eCzcpL4v9sVLU8+nTJlecKxZiASuZAS/e6Z6TdPod72hflAV\n8+9JMIVNIVeq2yx1l62BAYeisXCdHgZaA2CxP6ZtgizUFLGBpeg9iB20cixYN4qO\nOJS4c92p4Lj2d6KzfFjermk6tYulGrvy2HQGnP1icyAhdrF+cJ4Z1OsXYhk4mc02\nK0f+McvfueSsCNPYpuvUnn5LZKRVXSsXyQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV\nBAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu\nMRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy\nMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx\nEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe\nNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH\nPWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I\nx2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe\nQTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR\nyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO\nQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912\nH9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ\nQfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD\ni/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs\nnLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1\nrqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\nDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI\nhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM\ntCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf\nGopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb\nlvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka\n+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal\nTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i\nnSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3\ngzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr\nG5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os\nzMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x\nL4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG\nA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw\nFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx\nMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u\naXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq\nhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b\nRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z\nYybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3\nQWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw\nyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+\nBlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ\nSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH\nr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0\n4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me\ndKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw\nq7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2\nnKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu\nH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA\nVC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC\nXtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd\n6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf\n+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi\nkvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7\nwry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB\nTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C\nMUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn\n4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I\naFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy\nqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG\nEwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx\nIDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw\nMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln\nbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND\nIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci\nMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti\nsIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O\nBBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c\n3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J\n0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG\nEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo\nbm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g\nRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ\nTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s\nb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0\nWXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS\nfvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB\nzhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq\nhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB\nCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD\n+JbNR6iC8hZVdyR+EhCVBCyj\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG\nA1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg\nSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw\nMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln\nbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v\ndCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ\nBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ\nHdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH\n3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH\nGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c\nxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1\naylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq\nTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL\nBQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87\n/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4\nkqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG\nYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT\n+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo\nWXzhriKi4gp6D/piq1JM4fHfyr6DDUI=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD\nVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU\nZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH\nMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO\nMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv\nZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz\nf2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO\n8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq\nd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM\ntTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt\nOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB\no0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD\nAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x\nPaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM\nwiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d\nGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH\n6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby\nRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx\niN66zB+Afko=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz\ndCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL\nMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp\ncm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP\nHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr\nba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL\nMeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1\nyHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr\nVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/\nnx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ\nKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG\nXUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj\nvbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt\nZ8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g\nN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC\nnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz\ndCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL\nMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp\ncm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y\nYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua\nkCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL\nQESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp\n6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG\nyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i\nQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ\nKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO\ntDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu\nQY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ\nLgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u\nolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48\nx3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz\ndCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG\nA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U\ncnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf\nqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ\nJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ\n+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS\ns8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5\nHMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7\n70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG\nV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S\nqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S\n5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia\nC1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX\nOwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE\nFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\nBAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2\nKI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg\nNt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B\n8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ\nMKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc\n0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ\nu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF\nu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH\nYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8\nGKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO\nRtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e\nKeC2uAloGRwYQw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC\nVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ\ncmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ\nBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt\nVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D\n0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9\nss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G\nA1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G\nA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs\naobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I\nflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC\nVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0\nLm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW\nKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl\ncnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw\nNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw\nNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy\nZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV\nBAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ\nKoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo\nNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4\n4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9\nKlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI\nrb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi\n94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB\nsDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi\ngA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo\nkORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE\nvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA\nA4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t\nO1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua\nAGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP\n9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/\neu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m\n0vdXcDazv/wor3ElhVsT/h5/WrQ8\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG\nA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3\nd3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu\ndHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq\nRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy\nMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD\nVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0\nL2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g\nZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD\nZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi\nA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt\nByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH\nBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O\nBBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC\nR98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX\nhTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC\nVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50\ncnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs\nIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz\ndCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy\nNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu\ndHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt\ndGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0\naG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj\nYXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T\nRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN\ncCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW\nwcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1\nU1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0\njaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP\nBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN\nBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/\njTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ\nRkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v\n1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R\nnAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH\nVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw\ngb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL\nEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg\nMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw\nBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0\nMB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT\nMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1\nc3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ\nbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg\nUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ\n2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E\nT+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j\n5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM\nC1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T\nDtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX\nwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A\n2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm\nnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8\ndWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl\nN4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj\nc0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD\nVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS\n5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS\nGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr\nhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/\nB7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI\nAeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw\nH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+\nb7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk\n2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol\nIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk\n5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY\nn/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML\nRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp\nbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5\nIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp\nZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3\nMjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3\nLmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp\nYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG\nA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq\nK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe\nsYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX\nMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT\nXTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/\nHoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH\n4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV\nHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub\nj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo\nU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf\nzX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b\nu/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+\nbYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er\nfF6adulZkMV8gzURZVE=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE\nAwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG\nEwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM\nFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC\nREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp\nNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM\nVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+\nSZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ\n4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L\ncp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi\neowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV\nHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG\nA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3\nDQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j\nvZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP\nDpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc\nmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D\nlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv\nKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICMTCCAbagAwIBAgIMC3MoERh0MBzvbwiEMAoGCCqGSM49BAMDMEsxCzAJBgNV\nBAYTAkRFMQ0wCwYDVQQKDARBdG9zMS0wKwYDVQQDDCRBdG9zIFRydXN0ZWRSb290\nIFJvb3QgQ0EgRUNDIEcyIDIwMjAwHhcNMjAxMjE1MDgzOTEwWhcNNDAxMjEwMDgz\nOTA5WjBLMQswCQYDVQQGEwJERTENMAsGA1UECgwEQXRvczEtMCsGA1UEAwwkQXRv\ncyBUcnVzdGVkUm9vdCBSb290IENBIEVDQyBHMiAyMDIwMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAEyFyAyk7CKB9XvzjmYSP80KlblhYWwwxeFaWQCf84KLR6HgrWUyrB\nu5BAdDfpgeiNL2gBNXxSLtj0WLMRHFvZhxiTkS3sndpsnm2ESPzCiQXrmBMCAWxT\nHg5JY1hHsa/Co2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFFsfxHFs\nshufvlwfjP2ztvuzDgmHMB0GA1UdDgQWBBRbH8RxbLIbn75cH4z9s7b7sw4JhzAO\nBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaQAwZgIxAOzgmf3d5FTByx/oPijX\nFVlKgspTMOzrNqW5yM6TR1bIYabhbZJTlY/241VT8N165wIxALCH1RuzYPyRjYDK\nohtRSzhUy6oee9flRJUWLzxEeC4luuqQ5OxS7lfsA4TzXtsWDQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w\nLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w\nCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0\nMTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF\nQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI\nzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X\ntXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4\nAjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2\nKCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD\naAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu\nCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo\n9H1/IISpQuQo\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFfzCCA2egAwIBAgIMR7opRlU+FpKXsKtAMA0GCSqGSIb3DQEBDAUAMEsxCzAJ\nBgNVBAYTAkRFMQ0wCwYDVQQKDARBdG9zMS0wKwYDVQQDDCRBdG9zIFRydXN0ZWRS\nb290IFJvb3QgQ0EgUlNBIEcyIDIwMjAwHhcNMjAxMjE1MDg0MTIzWhcNNDAxMjEw\nMDg0MTIyWjBLMQswCQYDVQQGEwJERTENMAsGA1UECgwEQXRvczEtMCsGA1UEAwwk\nQXRvcyBUcnVzdGVkUm9vdCBSb290IENBIFJTQSBHMiAyMDIwMIICIjANBgkqhkiG\n9w0BAQEFAAOCAg8AMIICCgKCAgEAljGFSqoPMv554UOHnPsjt45/DVS9x2KTd+Qc\nNQR2owOLIu7EhN2lk25uso4JA+tRFjEXqmkVGA5ndCNe6pp9tTk+PYKpa+H+qRyw\nrVpNTHiDQYvP8h1impgEnGPpq2X+SB0kZQdHPrmRLumdm38aNak0sLflcDPvSnJR\ntge/YD8qn51U3/PXlElRA1pAqWjdEVlc+HamvFBSEO2s7JXg1INrSdoKT5mD3jKD\nSINnlbJ+54GFPc2C98oC7W2IXQiNuDW/KmkwmbtL0UHbRaCTmVGBkDYIqoq26I+z\ny+7lRg1ydfVJbOGify+87YSmN+7ewk85Tvae8MnRmzCdSW3h2v8SEIzW5Zl7BbZ9\nsAnHpPiyHDmVOTP0Nc4lYnuwXyDzy234bFIUZESP08ipdgflr3GZLS0EJUh2r8Pn\nzEPyB7xKJCQ33fpulAlvTF4BtP5U7COWpV7dhv/pRirx6NzspT2vb6oOD7R1+j4I\nuSZFT2aGTLwZuOHVNe6ChMjTqxLnzXMzYnf0F8u9NHYqBc6V5Xh5S56wjfk8WDiR\n6l6HOMC3Qv2qTIcjrQQgsX52Qtq7tha6V8iOE/p11QhMrziRqu+P+p9JLlR8Clax\nevrETi/Uo/oWitCV5Zem/8P8fA5HWPN/B3sS3Fc/LeOhTVtSTDOHmagJe2x+DvLP\nVkKe6wUCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQgJfMH\n/adv8ZbukRBpzJrvfchoeDAdBgNVHQ4EFgQUICXzB/2nb/GW7pEQacya733IaHgw\nDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDAUAA4ICAQAkK06Y8h0X7dl2JrYw\nM+hpRaFRS1LYejowtuQS6r+fTOAEpPY1xv6hMPdThZKtVAVXX5LlKt42J557E0fJ\nanWv/PM35wz1PQFztWlR+L1Z0boL+Lq6ZCdDs3yDlYrnnhOW129KlkFJiw4grRbG\n96aHW4gSiYuJyhLSVq8iASFG6auYP6eI3uTLKpp1Gfo5XgkF1wMyGrgXUQjHAEB9\n9L74DFn0aXZu06RYW14mc+RCVQZeeEAP0zif7yZRcHSR8XdiAejZy+uh3zkyHbtr\n/XH+68+l5hT9AIATxpoASLCZBemugEj7CT9RFLW552BNTcovgSHuUgxletz1iUlM\nMJI0WIAyWbEN/yRhD+cKQtB7vPiOJ0c/cJ0n2bYGPaW7y16Prg5Tx5xqbztMD6NA\ncKiaB87UblsHotLiVLa9bzNyY61RmOGPdvFqBzgl/vZizl/bY8Jume8G3LneGRro\nVD190nZ12V4+MkinjPKecgz4uFi4FyOlFId1WHoAgQciOWpMlKC1otunLMGw8aOb\nwEz3bXDqMZ/xrn0+cyjZod/6k/CbsPDizSUgde/ifTIFyZt27su9MR75lJhLJFhW\nSMDeBky9pjRd7RZhY3P7GeL6W9iXddRtnmA5XpSLAizrmc5gKm4bjKdLvP025pgf\nZfJ/8eOPTIBGNli2oWXLzhxEdQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM\nMS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx\nMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00\nMTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD\nQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN\nBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z\n4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv\nYe+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ\nkmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs\nGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln\nnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh\n3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD\n0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy\ngeBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8\nANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB\nc6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI\npw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU\ndEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB\nDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS\n4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs\no0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ\nqM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw\nxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM\nrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4\nAXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR\n0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY\no7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5\ndDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE\noji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE\nBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ\nIENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0\nMTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV\nBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w\nHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj\nDp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj\nTnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u\nKU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj\nqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm\nMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12\nZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP\nzgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk\nL30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC\njGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA\nHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC\nAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB\n/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg\np8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm\nDRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5\nCOmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry\nL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf\nJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg\nIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io\n2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV\n09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ\nXR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq\nT8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe\nMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4\nMTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG\nA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8\nRgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT\ngHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm\nKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd\nQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ\nXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o\nLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU\nRUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp\njjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK\n6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX\nmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs\nMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH\nWD9f\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg\nMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh\nbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx\nMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET\nMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI\nxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k\nZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD\naNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw\nLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw\n1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX\nk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2\nSXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h\nbguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n\nWUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY\nrZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce\nMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD\nAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu\nbAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN\nnsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt\nIxg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61\n55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj\nvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf\ncDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz\noHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp\nnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs\npA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v\nJJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R\n8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4\n5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk\nMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH\nbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX\nDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD\nQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc\n8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke\nhOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI\nKoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg\n515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO\nxwy8p2Fp8fc74SrL+SvzZpA3\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx\nCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD\nExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw\nMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex\nHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA\nIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq\nR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd\nyXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud\nDgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ\n7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8\n+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA\nMEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD\nVQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy\nMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt\nc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ\nOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG\nvGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud\n316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo\n0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE\ny132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF\nzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE\n+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN\nI/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs\nx2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa\nByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC\n4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV\nHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4\n7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg\nJuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti\n2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk\npnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF\nFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt\nrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk\nZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5\nu+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP\n4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6\nN3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3\nvouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICITCCAaegAwIBAgIQdlP+qicdlUZd1vGe5biQCjAKBggqhkjOPQQDAzBSMQsw\nCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMf\nR2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IEU0NTAeFw0yMDAzMTgwMDAwMDBa\nFw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxT\naWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJvb3Qg\nRTQ1MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+XmLgUc3iZY/RUlQfxomC5Myfi7A\nwKcImsNuj5s+CyLsN1O3b4qwvCc3S22pRjvZH/+loUS7LXO/nkEHXFObUQg6Wrtv\nOMcWkXjCShNpHYLfWi8AiJaiLhx0+Z1+ZjeKo0IwQDAOBgNVHQ8BAf8EBAMCAYYw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU3xNei1/CQAL9VreUTLYe1aaxFJYw\nCgYIKoZIzj0EAwMDaAAwZQIwE7C+13EgPuSrnM42En1fTB8qtWlFM1/TLVqy5IjH\n3go2QjJ5naZruuH5RCp7isMSAjEAoGYcToedh8ntmUwbCu4tYMM3xx3NtXKw2cbv\nvPL/P/BS3QjnqmR5w+RpV5EvpMt8\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFcDCCA1igAwIBAgIQdlP+qExQq5+NMrUdA49X3DANBgkqhkiG9w0BAQwFADBS\nMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UE\nAxMfR2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IFI0NTAeFw0yMDAzMTgwMDAw\nMDBaFw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJv\nb3QgUjQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3HnMbQb5bbvg\nVgRsf+B1zC0FSehL3FTsW3eVcr9/Yp2FqYokUF9T5dt0b6QpWxMqCa2axS/C93Y7\noUVGqkPmJP4rsG8ycBlGWnkmL/w9fV9ky1fMYWGo2ZVu45Wgbn9HEhjW7wPJ+4r6\nmr2CFalVd0sRT1nga8Nx8wzYVNWBaD4TuRUuh4o8RCc2YiRu+CwFcjBhvUKRI8Sd\nJafZVJoUozGtgHkMp2NsmKOsV0czH2WW4dDSNdr5cfehpiW1QV3fPmDY0fafpfK4\nzBOqj/mybuGDLZPdPoUa3eixXCYBy0mF/PzS1H+FYoZ0+cvsNSKiDDCPO6t561by\n+kLz7fkfRYlAKa3qknTqUv1WtCvaou11wm6rzlKQS/be8EmPmkjUiBltRebMjLnd\nZGBgAkD4uc+8WOs9hbnGCtOcB2aPxxg5I0bhPB6jL1Bhkgs9K2zxo0c4V5GrDY/G\nnU0E0iZSXOWl/SotFioBaeepfeE2t7Eqxdmxjb25i87Mi6E+C0jNUJU0xNgIWdhr\nJvS+9dQiFwBXya6bBDAznwv731aiyW5Udtqxl2InWQ8RiiIbZJY/qPG3JEqNPFN8\nbYN2PbImSHP1RBYBLQkqjhaWUNBzBl27IkiCTApGWj+A/1zy8pqsLAjg1urwEjiB\nT6YQ7UarzBacC89kppkChURnRq39TecCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgGG\nMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKCTFShu7o8IsjXGnmJ5dKexDit7\nMA0GCSqGSIb3DQEBDAUAA4ICAQBFCvjRXKxigdAE17b/V1GJCwzL3iRlN/urnu1m\n9OoMGWmJuBmxMFa02fb3vsaul8tF9hGMOjBkTMGfWcBGQggGR2QXeOCVBwbWjKKs\nqdk/03tWT/zEhyjftisWI8CfH1vj1kReIk8jBIw1FrV5B4ZcL5fi9ghkptzbqIrj\npHt3DdEpkyggtFOjS05f3sH2dSP8Hzx4T3AxeC+iNVRxBKzIxG3D9pGx/s3uRG6B\n9kDFPioBv6tMsQM/DRHkD9Ik4yKIm59fRz1RSeAJN34XITF2t2dxSChLJdcQ6J9h\nWRbFPjJOHwzOo8wP5McRByIvOAjdW5frQmxZmpruetCd38XbCUMuCqoZPWvoajB6\nV+a/s2o5qY/j8U9laLa9nyiPoRZaCVA6Mi4dL0QRQqYA5jGY/y2hD+akYFbPedey\nTtew+m4MVyPHzh+lsUxtGUmeDn9wj3E/WCifdd1h4Dq3Obbul9Q1UfuLSWDIPGau\nl+6NJllXu3jwelAwCbBgqp9O3Mk+HjrcYpMzsDpUdG8sMUXRaxEyamh29j32ahNe\nJJjn6h2az3iCB2D3TRDTgZpFjZ6vm9yAx0OylWikww7oCkcVv1Qz3AHn1aYec9h6\nsr8vreNVMJ7fDkG84BH1oQyoIuHjAKNOcHyS4wTRekKKdZBZ45vRTKJkvXN5m2/y\ns8H2PA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh\nMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE\nYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3\nMDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo\nZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg\nMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN\nADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA\nPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w\nwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi\nEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY\navx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+\nYihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE\nsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h\n/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5\nIEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj\nYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy\nOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P\nTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ\nHmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER\ndEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf\nReYNnyicsbkqWletNw+vHX/bvZ8=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT\nEUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp\nZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz\nNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH\nEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE\nAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD\nE6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH\n/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy\nDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh\nGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR\ntDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA\nAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX\nWWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu\n9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr\ngIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo\n2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO\nLPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI\n4uJEvlz36hz1\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl\nMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp\nU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw\nNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE\nChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp\nZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3\nDQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf\n8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN\n+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0\nX9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa\nK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA\n1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G\nA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR\nzt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0\nYXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD\nbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w\nDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3\nL7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D\neruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl\nxy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp\nVSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY\nWQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs\nZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw\nMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6\nb25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj\naG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp\nY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg\nnLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1\nHOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N\nHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN\ndloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0\nHZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO\nBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G\nCSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU\nsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3\n4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg\n8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K\npL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1\nmMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD\nVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh\nbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw\nMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g\nUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT\nBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx\nuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV\nHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/\n+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147\nbmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw\nCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\nMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\nMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\nY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo\n27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w\nCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw\nTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl\nqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH\nszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8\nY/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk\nMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92\nwO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p\naDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN\nVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID\nAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\nFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb\nC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe\nQkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy\nh6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4\n7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J\nZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef\nMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/\nZ6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT\n6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ\n0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm\n2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb\nbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw\nCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\nMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\nMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\nY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt\nnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY\n6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu\nMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k\nRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg\nf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV\n+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo\ndDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW\nIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa\nG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq\ngc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID\nAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\nFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H\nvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8\n0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC\nB19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u\nNmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg\nyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev\nHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6\nxLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR\nTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg\nJPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV\n7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl\n6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD\nVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\nA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\nWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\nIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G\njOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2\n4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7\nVKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm\nZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD\nVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\nA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\nWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\nIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi\nQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR\nHYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D\n9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8\np/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL\nBQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ\nSG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n\na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5\nNDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT\nCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u\nZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO\ndem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI\nVoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV\n9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY\n2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY\nvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt\nbNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb\nx39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+\nl2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK\nTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj\nHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e\ni9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw\nDQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG\n7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk\nMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr\ngZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk\nGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS\n3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm\nOzj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+\nl6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c\nJfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP\nL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa\nLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG\nmpv0\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE\nAwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw\nCQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ\nBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND\nVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb\nqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY\nHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo\nG2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA\nlHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr\nIA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/\n0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH\nk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47\n4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO\nm3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa\ncXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl\nuUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI\nKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls\nZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG\nAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2\nVuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT\nVfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG\nCCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA\ncgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA\nQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA\n7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA\ncgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA\nQwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA\nczAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu\naHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt\naW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud\nDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF\nBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp\nD70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU\nJyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m\nAM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD\nvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms\ntn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH\n7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h\nI6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA\nh1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF\nd3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H\npPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx\nCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ\nWiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ\nBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG\nTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/\nyBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf\nBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz\nWHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF\ntBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z\n374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC\nIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL\nmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7\nwk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS\nMKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2\nZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet\nUqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw\nAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H\nYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3\nLmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD\nnFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1\nRXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM\nLVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf\n77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N\nJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm\nfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp\n6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp\n1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B\n9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok\nRqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv\nuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw\nCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw\nFgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S\nQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5\nMzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL\nDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS\nQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH\nsbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK\nUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD\nVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu\nSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC\nMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy\nv+c=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO\nTDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh\ndCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX\nDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl\nciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv\nb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP\ncPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW\nIkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX\nxz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy\nKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR\n9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az\n5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8\n6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7\nNgzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP\nbMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt\nBznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt\nXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF\nMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd\nINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD\nU5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp\nLiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8\nIpf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp\ngZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh\n/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw\n0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A\nfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq\n4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR\n1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/\nQFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM\n94B7IWcnMFk=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx\nGDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp\nbXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w\nKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0\nBgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy\ndW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG\nEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll\nIEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU\nQUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT\nTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg\nLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7\na9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr\nLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr\nN3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X\nYacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/\niSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f\nAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH\nV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL\nBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh\nAHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf\nIPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4\nlzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c\n8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf\nlo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICWjCCAeGgAwIBAgIQMWjZ2OFiVx7SGUSI5hB98DAKBggqhkjOPQQDAzBvMQsw\nCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh\ncmNoIEluc3RpdHV0aW9ucyBDQTEnMCUGA1UEAwweSEFSSUNBIENsaWVudCBFQ0Mg\nUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDMzNFoXDTQ1MDIxMzExMDMzM1owbzEL\nMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl\nYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJzAlBgNVBAMMHkhBUklDQSBDbGllbnQgRUND\nIFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAcYrZWWlNBcD4L3\nKkD6AsnJPTamowRqwW2VAYhgElRsXKIrbhM6iJUMHCaGNkqJGbcY3jvoqFAfyt9b\nv0mAFdvjMOEdWscqigEH/m0sNO8oKJe8wflXhpWLNc+eWtFolaNCMEAwDwYDVR0T\nAQH/BAUwAwEB/zAdBgNVHQ4EFgQUUgjSvjKBJf31GpfsTl8au1PNkK0wDgYDVR0P\nAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMEwxRUZPqOa+w3eyGhhLLYh7WOar\nlGtEA7AX/9+Cc0RRLP2THQZ7FNKJ7EAM7yEBLgIwL8kuWmwsHdmV4J6wuVxSfPb4\nOMou8dQd8qJJopX4wVheT/5zCu8xsKsjWBOMi947\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFqjCCA5KgAwIBAgIQVVL4HtsbJCyeu5YYzQIoPjANBgkqhkiG9w0BAQsFADBv\nMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl\nc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEnMCUGA1UEAwweSEFSSUNBIENsaWVudCBS\nU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTg0NloXDTQ1MDIxMzEwNTg0NVow\nbzELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBS\nZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJzAlBgNVBAMMHkhBUklDQSBDbGllbnQg\nUlNBIFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAIHbV0KQLHQ19Pi4dBlNqwlad0WBc2KwNZ/40LczAIcTtparDlQSMAe8m7dI19EZ\ng66O2KnxqQCEsIxenugMj1Rpv/bUCE8mcP4YQWMaszKLQPgHq1cx8MYWdmeatN0v\n8tFrxdCShJFxbg8uY+kfU6TdUhPMCYMpgQzFU3VEsQ5nUxjQwx+IS5+UJLQpvLvo\nTv1v0hUdSdyNcPIRGiBRVRG6iG/E91B51qox4oQ9XjLIdypQceULL+m26u+rCjM5\nDv2PpWdDgo6YaQkJG0DNOGdH6snsl3ES3iT1cjzR90NMJveQsonpRUtVPTEFekHi\nlbpDwBfFtoU9GY1kcPNbrM2f0yl1h0uVZ2qm+NHdvJCGiUMpqTdb9V2wJlpTQnaQ\nK8+eVmwrVM9cmmXfW4tIYDh8+8ULz3YEYwIzKn31g2fn+sZD/SsP1CYvd6QywSTq\nZJ2/szhxMUTyR7iiZkGh+5t7vMdGanW/WqKM6GpEwbiWtcAyCC17dDVzssrG/q8R\nchj258jCz6Uq6nvWWeh8oLJqQAlpDqWW29EAufGIbjbwiLKd8VLyw3y/MIk8Cmn5\nIqRl4ZvgdMaxhZeWLK6Uj1CmORIfvkfygXjTdTaefVogl+JSrpmfxnybZvP+2M/u\nvZcGHS2F3D42U5Z7ILroyOGtlmI+EXyzAISep0xxq0o3AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKDWBz1eJPd7oEQuJFINGaorBJGnMA4GA1Ud\nDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEADUf5CWYxUux57sKo8mg+7ZZF\nyzqmmGM/6itNTgPQHILhy9Pl1qtbZyi8nf4MmQqAVafOGyNhDbBX8P7gyr7mkNuD\nLL6DjvR5tv7QDUKnWB9p6oH1BaX+RmjrbHjJ4Orn5t4xxdLVLIJjKJ1dqBp+iObn\nK/Es1dAFntwtvTdm1ASip62/OsKoO63/jZ0z4LmahKGHH3b0gnTXDvkwSD5biD6q\nXGvWLwzojnPCGJGDObZmWtAfYCddTeP2Og1mUJx4e6vzExCuDy+r6GSzGCCdRjVk\nJXPqmxBcWDWJsUZIp/Ss1B2eW8yppRoTTyRQqtkbbbFA+53dWHTEwm8UcuzbNZ+4\nVHVFw6bIGig1Oq5l8qmYzq9byTiMMTt/zNyW/eJb1tBZ9Ha6C8tPgxDHQNAdYOkq\n5UhYdwxFab4ZcQQk4uMkH0rIwT6Z9ZaYOEgloRWwG9fihBhb9nE1mmh7QMwYXAwk\nndSV9ZmqRuqurL/0FBkk6Izs4/W8BmiKKgwFXwqXdafcfsD913oY3zDROEsfsJhw\nv8x8c/BuxDGlpJcdrL/ObCFKvicjZ/MGVoEKkY624QMFMyzaNAhNTlAjrR+lxdR6\n/uoJ7KcoYItGfLXqm91P+edrFcaIz0Pb5SfcBFZub0YV8VYt6FwMc8MjgTggy8kM\nac8sqzuEYDMZUv1pFDM=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw\nCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh\ncmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v\ndCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG\nA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj\naCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg\nQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7\nKKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y\nSTHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD\nAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw\nSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN\nnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs\nMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl\nc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg\nUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL\nMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl\nYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv\nb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l\nmwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE\n4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv\na9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M\npbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw\nKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b\nLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY\nAuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB\nAGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq\nE613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr\nW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ\nCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE\nAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU\nX15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3\nf5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja\nH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP\nJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P\nzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt\njBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0\n/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT\nBGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79\naPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW\nxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU\n63ZTGI0RmLo=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN\nBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl\nc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl\nbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv\nb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ\nBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj\nYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5\nMUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0\ndXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg\nQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa\njq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC\nMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi\nC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep\nlSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof\nTUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix\nDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k\nIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT\nN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v\ndENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG\nA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh\nZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx\nQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1\ndGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA\n4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0\nAoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10\n4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C\nojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV\n9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD\ngfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6\nY5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq\nNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko\nLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc\nBw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV\nHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd\nctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I\nXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI\nM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot\n9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V\nZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea\nj8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh\nX9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ\nl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf\nbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4\npcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK\ne7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0\nvm9qp/UsQu0yrbYhnr68\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu\nVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw\nMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw\nJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT\n3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU\n+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp\nS0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1\nbVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi\nT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL\nvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK\nVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK\ndHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT\nc+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv\nl7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N\niGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD\nggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH\n6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt\nLRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93\nnAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3\n+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK\nW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT\nAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq\nl1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG\n4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ\nmUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A\n7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu\nVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN\nMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0\nMSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7\nekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy\nRBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS\nbdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF\n/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R\n3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw\nEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy\n9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V\nGxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ\n2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV\nWaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD\nW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/\nBAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN\nAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj\nt2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV\nDRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9\nTaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G\nlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW\nmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df\nWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5\n+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ\ntshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA\nGaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv\n8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\nWhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\nZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\nMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\nh77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\nA5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\nT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\nB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\nB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\nKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\nOlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\njh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\nqHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\nrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\nhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\nubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\nNFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\nORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\nTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\njNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\noyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\nmRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\nemyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw\nCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg\nR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00\nMDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT\nZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw\nEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW\n+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9\nItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T\nAQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI\nzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW\ntL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1\n/q4AaOeMSQ+2b1tbFfLn\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw\nRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY\nBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz\nMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u\nLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0\nv/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd\ne4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD\nVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw\nV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA\nAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG\nGJTO\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL\nBQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x\nFjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx\nMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s\nTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc\nIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU\nAyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+\nGrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9\n8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH\nflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt\nJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim\n0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN\npGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ\nUqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW\nOXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB\nAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet\n8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd\nnxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j\nbhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM\nKar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv\nTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS\nS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr\nI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9\nb91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB\nUvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P\nTi07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven\nsBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4\nMQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6\nZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD\nVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j\nb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq\nscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO\nxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H\nLmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX\nuaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD\nyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+\nJrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q\nrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN\nBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L\nhij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB\nQFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+\nHMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu\nZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg\nQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB\nBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx\nMCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA\nA4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb\nlaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56\nawmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo\nJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw\nLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT\nVyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk\nLhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb\nUjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/\nQnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+\nnaM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls\nQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6\nZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw\nNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L\ncmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg\nUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN\nQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT\n3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw\n3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6\n3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5\nBSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN\nXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF\nAAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw\n8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG\nnXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP\noky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy\nd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg\nLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFmDCCA4CgAwIBAgIEVRpusTANBgkqhkiG9w0BAQsFADBDMQswCQYDVQQGEwJa\nQTERMA8GA1UEChMITEFXdHJ1c3QxITAfBgNVBAMTGExBV3RydXN0IFJvb3QgQ0Ey\nICg0MDk2KTAgFw0yMzAyMTQwOTE5MzhaGA8yMDUzMDIxNDA5NDkzOFowQzELMAkG\nA1UEBhMCWkExETAPBgNVBAoTCExBV3RydXN0MSEwHwYDVQQDExhMQVd0cnVzdCBS\nb290IENBMiAoNDA5NikwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM\nF8srQ7ps+cmTimUNEkzsJxS3E3ng1NUtGFbx+eoqEBZObETHamVG85qJNdGH+DOJ\nL4gJGpIQkZDBa58Obn8mihNdGKxoAQ0QeGVw2I6PhFqXMBjQEQ5KjVIQpYErUSj1\nY8S27ECzAeWtd73lOO+8jbPdGaB7DY2022r7JTNa+pGvxHFFMPiIKXvLv9W6JwSO\n3bIA98pcmTUU6v11BhUIu8pXaPs/+7Q0c2PR1ePIOFppfWp6RAwNik7tkh0Qjzsi\nLLbf7cXG8Il5VGVeXxu9j33fubft6+TFB9FnPJU7kf5CelJAgATSOVdL9JJ9/5vv\n5Z3JCbKREjimKQg7ruvKzO1N504hAQf8bzLOaYyEUsZ36icwCt6lrzAraB+s1Owh\nrSJJds4PwvIHKvlqEoOaOwSuGXr+oYYk+kFeJXxArCe24yk2bzXiV9AZWN//ZPbD\nAUl22yu+vLlPFArVG1gh9hwuAHz4lLXLNxoU5DK5FtRg7AWqXzL6aiMSrNQQu9Ki\ngrRLDotwJ6rWB8FniPqEwwjJioTI0jdygQ+NFkrk1zVRpTgPjIRLlTbA9ded4F2P\nq5HuAAi5nVIf7PiZu3lWsUna0uXYYYtbr/CrN8V7Go6Gvn7FexUeYWjoC4eLc0mh\nF3N+KXiOyuBBL3VzdKKXOn/3LnQJuExgi0Y2GRAtnQIDAQABo4GRMIGOMA8GA1Ud\nEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMjMwMjE0\nMDkxOTM4WoEPMjA1MzAyMTQwOTQ5MzhaMB8GA1UdIwQYMBaAFNfWVmJcPxeB5nNE\nKfVRBe8LYDesMB0GA1UdDgQWBBTX1lZiXD8XgeZzRCn1UQXvC2A3rDANBgkqhkiG\n9w0BAQsFAAOCAgEASZwp/j3snkV/qz48/iNvNz53p1P/eJ/8SUSAV2acbtp5/81F\nrUyTv7VZxukQt+X4jPuHxR6L2LM/ApYKu4qO79e0wIMgOJdZRWT89ncT8gnXocg4\ndAjq+UhM+h8EnLT/7G5WNnKTbJU+LF/eDwurycwVPhaPZvyyELih0bTewGMZzO9T\nqnU2IoslH7+byNfBX+ymNwmqe2K89iIt8dZY3Yy7UvQLp3apensajdytmoFiLoYF\nkHJHL6HJZ4SwDWywuJsWt9CZFC+cEpsjqI2mQx7p5S3leKcfZJRktneyqFz7Casp\n6x5tddH20MWlwx2fHvMaLbLIH+UoCm7zX/3a5iOhdpBcS5gBgizuRy0CGl9/NMVp\ntXKtPvPPnm34KegRJyvgWQsbYetKymmlpNXNURuUjnnN3/audF2xLBuGU/7RMAZB\nNAdigkz0fseHdA6wIR4JIIDBsxU9Rm3T8QaSP++glYocbncxtut4KQx77oKlT36k\nKV6eqi34jsDz/A0GhZtO3PfiCXzQFFEeerMjr/rRYSpltQHZuOMHyiR20vBKvu+G\nBIBCFXARaH7Xx7v+506bnJWlHEqkydAJjKrOSNIekpfXEentZsw33PXXG3SbpupC\nrF0y4Fj0gUf/0hLifhzcSXaWwx2fS8pcKjdbPYrROJsh2uO/RUPT4Fh3Hyg=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV\nBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk\nLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv\nb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ\nBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg\nTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v\nIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv\nxie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H\nWyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\nA1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB\neAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo\njbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ\n+efcMQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD\nVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0\nZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G\nCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y\nOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx\nFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp\nZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o\ndTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP\nkd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc\ncbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U\nfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7\nN4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC\nxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1\n+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\nA1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM\nPcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG\nSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h\nmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk\nddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775\ntyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c\n2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t\nHMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw\nCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD\nVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw\nMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV\nUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy\nb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq\nhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR\nogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb\nhGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3\nFQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV\nL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB\niudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl\nMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw\nNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5\nIDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG\nEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N\naWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ\nNt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0\nZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1\nHLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm\ngGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ\njEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc\naDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG\nYaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6\nW6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K\nUGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH\n+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q\nW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/\nBAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC\nLgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC\ngMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6\ntZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh\nSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2\nTaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3\npvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR\nxpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp\nGWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9\ndOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN\nAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB\nRA+GsCyRxj3qrg+E\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM\nBQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG\nT1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0\naW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx\nCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD\nb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB\ndXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA\niQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH\n38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE\nHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz\nkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP\nszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq\nvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf\nnZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG\nYQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo\n0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a\nCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K\nAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I\n36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB\nAf8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN\nqo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj\ncu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm\n+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL\nhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe\nlHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7\np/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8\npiKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR\nLBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX\n5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO\ndh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul\n9XXeifdy\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG\nEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3\nMDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl\ncnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR\ndGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB\npzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM\nb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm\naWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz\nIEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT\nlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz\nAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5\nVA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG\nILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2\nBJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG\nAQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M\nU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh\nbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C\n+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC\nbLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F\nuLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2\nXjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB\nijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly\naWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl\nZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w\nNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G\nA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD\nVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX\nSVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR\nVVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2\nw93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF\nmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg\n4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9\n4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw\nEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx\nSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2\nftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8\nvPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa\nhNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi\nFj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ\n/L7fCg0=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt\nMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg\nRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i\nYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x\nCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG\nb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh\nbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3\nHEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx\nWuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX\n1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk\nu7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P\n99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r\nM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB\nBAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh\ncViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5\ngSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO\nZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf\naPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic\nNc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw\nCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91\nbmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg\nUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ\nBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu\nZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS\nb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni\neUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W\np2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T\nrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV\n57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg\nMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00\nMjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV\nwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe\nrNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341\n68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh\n4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp\nUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o\nabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc\n3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G\nKubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt\nhfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO\nTk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt\nzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD\nggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC\nMTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2\ncDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN\nqXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5\nYCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv\nb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2\n8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k\nNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj\nZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp\nq1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt\nnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x\nGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv\nb3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV\nBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W\nYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa\nGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg\nFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J\nWpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB\nrrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp\n+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1\nksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i\nUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz\nPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og\n/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH\noycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI\nyV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud\nEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2\nA8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL\nMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT\nElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f\nBluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn\ng/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl\nfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K\nWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha\nB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc\nhLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR\nTUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD\nmbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z\nohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y\n4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza\n8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00\nMjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf\nqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW\nn4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym\nc5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+\nO7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1\no9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j\nIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq\nIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz\n8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh\nvNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l\n7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG\ncC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD\nggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66\nAarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC\nroijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga\nW/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n\nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE\n+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV\ncsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd\ndbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg\nKCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM\nHVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4\nWSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x\nGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv\nb3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV\nBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W\nYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM\nV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB\n4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr\nH556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd\n8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv\nvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT\nmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe\nbtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc\nT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt\nWAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ\nc6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A\n4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD\nVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG\nCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0\naXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0\naWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu\ndC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw\nczALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G\nA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC\nTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg\nUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0\n7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem\nd1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd\n+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B\n4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN\nt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x\nDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57\nk8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s\nzHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j\nWy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT\nmJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK\n4SVhM7JZG+Ju1zdXtg2pEto=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00\nMjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR\n/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu\nFoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR\nU7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c\nra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR\nFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k\nA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw\neyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl\nsSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp\nVzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q\nA4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+\nydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD\nggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px\nKGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI\nFUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv\noxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg\nu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP\n0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf\n3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl\n8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+\nDhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN\nPlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/\nywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT\nAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD\nVQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx\nNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT\nHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5\nIENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl\ndB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK\nULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu\n9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O\nbe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl\nMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe\nU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX\nDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy\ndXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj\nYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV\nOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr\nzbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM\nVAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ\nhNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO\nojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw\nawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs\nOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3\nDQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF\ncoJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc\nokgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8\nt/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy\n1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/\nSjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb\nMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow\nGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj\nYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL\nMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE\nBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM\nGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua\nBtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe\n3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4\nYgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR\nrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm\nez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU\noBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF\nMAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t\nb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF\nAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q\nGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz\nRt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2\nG9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi\nl2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3\nsmPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw\nMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW\n/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g\nPKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u\nQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY\nSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv\nIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/\nRxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4\nzJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd\nBA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB\nZQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL\nMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE\nBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT\nIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw\nMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy\nZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N\nT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv\nbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR\nFtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J\ncfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW\nBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/\nBAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm\nfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv\nGDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB\nhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV\nBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5\nMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT\nEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR\nQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh\ndGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR\n6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X\npz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC\n9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV\n/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf\nZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z\n+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w\nqP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah\nSL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC\nu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf\nFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq\ncrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E\nFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB\n/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl\nwFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM\n4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV\n2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna\nFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ\nCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK\nboHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke\njkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL\nS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb\nQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl\n0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB\nNVOFBkpdn627G190\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICMTCCAbegAwIBAgIQbvXTp0GOoFlApzBr0kBlVjAKBggqhkjOPQQDAzBaMQsw\nCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTEwLwYDVQQDEyhT\nZWN0aWdvIFB1YmxpYyBFbWFpbCBQcm90ZWN0aW9uIFJvb3QgRTQ2MB4XDTIxMDMy\nMjAwMDAwMFoXDTQ2MDMyMTIzNTk1OVowWjELMAkGA1UEBhMCR0IxGDAWBgNVBAoT\nD1NlY3RpZ28gTGltaXRlZDExMC8GA1UEAxMoU2VjdGlnbyBQdWJsaWMgRW1haWwg\nUHJvdGVjdGlvbiBSb290IEU0NjB2MBAGByqGSM49AgEGBSuBBAAiA2IABLinUpT1\nPgWwG/YfsdN+ueQFZlSAzmylaH3kU1LbgvrEht9DePfIrRa8P3gyy2vTSdZE5bN+\nn3umxizy4rbTibCaPEvOiUvGxss6SWAPRrxtTnqcyZuFewq2sEfCiOPU0aNCMEAw\nHQYDVR0OBBYEFC1OjKfCI7JXqQZrPmsrifPDXkfOMA4GA1UdDwEB/wQEAwIBhjAP\nBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCSnRpZY0VYjhsW5H16\nbDZIMB8rcueQMzT9JKLGBoxvOzJXWvj+xkkSU5rZELKZUXICMAUlKjMh/JPmIqLM\ncFUoNVaiB8QhhCMaTEyZUJmSFMtK3Fb79dOPaiz1cTr4izsDng==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFgDCCA2igAwIBAgIQHUSeuQ2DkXSu3fLriLemozANBgkqhkiG9w0BAQwFADBa\nMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTEwLwYDVQQD\nEyhTZWN0aWdvIFB1YmxpYyBFbWFpbCBQcm90ZWN0aW9uIFJvb3QgUjQ2MB4XDTIx\nMDMyMjAwMDAwMFoXDTQ2MDMyMTIzNTk1OVowWjELMAkGA1UEBhMCR0IxGDAWBgNV\nBAoTD1NlY3RpZ28gTGltaXRlZDExMC8GA1UEAxMoU2VjdGlnbyBQdWJsaWMgRW1h\naWwgUHJvdGVjdGlvbiBSb290IFI0NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAJHlG/qqbTcrdccuXxSl2yyXtixGj2nZ7JYt8x1avtMdI+ZoCf9KEXMa\nrmefdprS5+y42V8r+SZWUa92nan8F+8yCtAjPLosT0eD7J0FaEJeBuDV6CtoSJey\n+vOkcTV9NJsXi39NDdvcTwVMlGK/NfovyKccZtlxX+XmWlXKq/S4dxlFUEVOSqvb\nnmbBGbc3QshWpUAS+TPoOEU6xoSjAo4vJLDDQYUHSZzP3NHyJm/tMxwzZypFN9mF\nZSIasbUQUglrA8YfcD2RxH2QPe1m+JD/JeDtkqKLMSmtnBJmeGOdV+z7C96O3IvL\nOql39Lrl7DiMi+YTZqdpWMOCGhrN8Z/YU5JOSX2pRefxQyFatz5AzWOJz9m/x1AL\n4bzniJatntQX2l3P4JH9phDUuQOBm2ms+4SogTXrG+tobHxgPsPfybSudB1Ird1u\nEYbhKmo2Fq7IzrzbWPxAk0DYjlOXwqwiOOWIMbMuoe/s4EIN6v+TVkoGpJtMAmhk\nj1ZQwYEF/cvbxdcV8mu1dsOj+TLOyrVKqRt9Gdx/x2p+ley2uI39lUqcoytti/Fw\n5UcrAFzkuZ7U+NlYKdDL4ChibK6cYuLMvDaTQfXv/kZilbBXSnQsR1Ipnd2ioU9C\nwpLOLVBSXowKoffYncX4/TaHTlf9aKFfmYMc8LXd6JLTZUBVypaFAgMBAAGjQjBA\nMB0GA1UdDgQWBBSn15V360rDJ82TvjdMJoQhFH1dmDAOBgNVHQ8BAf8EBAMCAYYw\nDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQwFAAOCAgEANNLxFfOTAdRyi/Cr\nCB8TPHO0sKvoeNlsupqvJuwQgOUNUzHd4/qMUSIkMze4GH46+ljoNOWM4KEfCUHS\nNz/Mywk1Qojp/BHXz0KqpHC2ccFTvcV0r8QiJGPPYoJ9yctRwYiQbVtcvvuZqLq2\nhrDpZgvlG2uv6iuGp9+oI0yWP09XQhgVg0Pxhia3KgPOC53opWgejG+9heMbUY/n\nFy8r0NZ4wi3dcojUZZ76mdR+55cKkgGapamEOgwqdD0zGMiH9+ik9YZCOf1rdSn8\nAAasoqUaVI7pUEkXZq9LBC2blIClVKuMVxdEnw/WaGRytEseAcfZm5TZg5mvEgUR\no5gi0vJXyiT5ujgVEki6Yzv8i5V41nIHVszN/J0c0MVkO2M0zwSZircweXq28sbV\n2VR6hwt+TveE7BTziBYS8dWuChoJ7oat5av9rsMpeXTDAV8Rm991mcZK95uPbEns\nIS+0AlmzLdBykLoLFHR4S8/BX1VyjlQrE876WAzTuyzZqZFh+PjxtnvevKnMkgTM\nS2tfc4C2Ie1QT9d2h27O39K3vWKhfVhiaEVStj/eEtvtBGmedoiqAW3ahsdgG8NS\nrDfsUHGAciohRQpTRzwZ643SWQTeJbDrHzVvYH3Xtca7CyeN4E1U5c8dJgFuOzXI\nIBKJg/DS7Vg7NJ27MfUy/THzVho=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw\nCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T\nZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN\nMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG\nA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT\nZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA\nIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC\nWvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+\n6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B\nAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa\nqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q\n4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf\nMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD\nEy1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw\nHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY\nMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp\nYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa\nef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz\nSDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf\niOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X\nME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3\nIuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS\nVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE\nSJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu\n+Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt\n8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L\nHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt\nzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P\nAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c\nmTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ\nYKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52\ngDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA\nFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB\nJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX\nDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui\nTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5\ndHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65\nLvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp\n0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY\nQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl\neSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT\nJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx\nMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT\nCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg\nVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm\naWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo\nI+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng\no4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G\nA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB\nzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW\nRNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB\niDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\ncnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\nBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw\nMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV\nBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU\naGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy\ndGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B\n3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY\ntJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/\nFp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2\nVN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT\n79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6\nc0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT\nYo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l\nc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee\nUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE\nHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd\nBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G\nA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF\nUp/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO\nVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3\nATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs\n8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR\niQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze\nSf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ\nXHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/\nqS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB\nVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB\nL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG\njjxDah2nGN59PRbxYvnKkKj9\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH\nMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF\neHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx\nMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV\nBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog\nD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS\nsPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop\nO2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk\nsHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi\nc0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj\nVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz\nKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/\nTuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G\nsx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs\n1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD\nfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T\nAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN\nl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR\nap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ\nVBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5\nc6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp\n4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s\nt2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj\n2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO\nvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C\nxR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx\ncmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM\nfjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9\nMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH\nbG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x\nCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds\nb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr\nb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9\nkmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm\nVHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R\nVogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc\nC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj\ntm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY\nD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv\nj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl\nNaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6\niIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP\nO6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/\nBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV\nZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj\nL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5\n1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl\n1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU\nb3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV\nPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj\ny88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb\nEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg\nDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI\n+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy\nYiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX\nUB+K+wb1whnw0A==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICQDCCAcagAwIBAgIQdvhIHq7wPHAf4D8lVAGD1TAKBggqhkjOPQQDAzBRMQsw\nCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9T\nU0wuY29tIENsaWVudCBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzAzMloX\nDTQ2MDgxOTE2MzAzMVowUTELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw\nb3JhdGlvbjEoMCYGA1UEAwwfU1NMLmNvbSBDbGllbnQgRUNDIFJvb3QgQ0EgMjAy\nMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABC1Tfp+LPrM2ulDizOvcuiaK04wGP2cP\n7/UX5dSumkYqQQEHaedncfHCAzbG8CtSjs8UkmikPnBREmmNeKKCyikUwOSUIrJE\nkmBvyASkZ9Wi0PPQ1+qOPA+60kBHkDTufaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAf\nBgNVHSMEGDAWgBS3/i1ixYFTzVIaL11goMNd+7IcHDAdBgNVHQ4EFgQUt/4tYsWB\nU81SGi9dYKDDXfuyHBwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUC\nME0HES0R+7kmwyHdcuEX/MHPFOpJznGHjtZT3BHNXVSKr9kt9IxR6rxmR+J/lYNg\nZQIxAIwhTE+75bBQ35BiSebMkdv4P11xkQiOT5LJf6Zc6hN+7W3E6MMqb1wR4aXz\nalqaTQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFjzCCA3egAwIBAgIQdq/uiJMVRbZQU5uAnKTfmjANBgkqhkiG9w0BAQsFADBR\nMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSgwJgYDVQQD\nDB9TU0wuY29tIENsaWVudCBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzEw\nN1oXDTQ2MDgxOTE2MzEwNlowUTELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBD\nb3Jwb3JhdGlvbjEoMCYGA1UEAwwfU1NMLmNvbSBDbGllbnQgUlNBIFJvb3QgQ0Eg\nMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALhY20Yw+8k/48jw\nATM04tpIqBjpIG6a1wHh1SmPMLQjauTLYrC+4p8gvT5UoDlox4Y3ZnQGBu90K9rc\nn4SpUi+Q0u5+fPulIq1vcEZnlj0p1KO7VnsUBFnBIWNEHrIfElyQh2UNiPYeiCLi\nY1S78zb41n/c2v8pNanGbg5pWz/YvoKHFXBdsMdcEg9jpjjNz3O5ww6JJjcbP2Ic\nMmnRm9n/VZAx3rFj3c/FdHf874ghU78AMRomLAAwpV9s4+T2AIrKmIecdAN6i2bs\nfv2jjzUlXHils6T7PW2pivBsiIKL/UrQb+TXo7SONEk4vs5F5dIcyl7CNxSLzWZW\nMzed5WvsQ5JkoELadW/AFez5ab00uYp7+hb7Vf5SIOgEBFZWZfU3RJjIikbpt6y4\n6L5ijlQ2W/c7cL9d7i26X95CGYbwf4vrCMvYvuoOQkKgNnNXF+0y6tCN6Acbm5no\nxJpiBA5I9zwSuvdYwZqM6cewIzZWNB3LbNq6B4Qd/dGsn+bCie/DuWwYs2mHV1+1\nDDhbpyEkKjunNJGetFTqKE/TwaOL5OYr1fKdv5thACLd1ktEHz9dVv7enHjMmVuq\n5L2620NLrUwmTKNNNIpsdDYT22L8m7IFgf+uPwzN9hui9DnnyvVMXPtUdzWAWsAS\noRMBM2c9nYGhqfWFJFiIeOf042hVAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8w\nHwYDVR0jBBgwFoAU8DhClDSpPAB/Uu45pfdLDbxqfSMwHQYDVR0OBBYEFPA4QpQ0\nqTwAf1LuOaX3Sw28an0jMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOC\nAgEAmU/b8OrWEfoq/cirbeQOc2LSQp8V/nxwUj9kh4IxP0VALuEinwZmKfyW0y2N\ntjjH2fMnwVkpoIz2cyQPKCLXTmHdE93bnzJSk/tPzOo4PJhqA6sWryHRQq59RSvq\nxM+KWZ+CcHY6+GImyRCXWEAkpC25LymAJ+GJa3LKSQhxN1MF8YDO00IC0vzC0ZQG\n7gfi9oPif5/nu1bDW7/dlZMJHiTBzybNraSuwrRp56q17TeU6d3RY4VrmnpKVnbc\nGYUo1OTGpNi4lkF30LRZ8UYFh4cCH2m5ghjQQ9km2hpnqNZ1durybQ5C/4gmom6E\n/n5iG/DGPe3AHGrHkda4ADdJm7mEBaHNbjHWROpTi7pTmB2hkIrphfgb8pNYw8jc\nmiZPPiDPT0PzEIx/EGF6NsqqC33Mn0dEWa6llcaZU+MHaz1JELAY/10OhUMUS+dr\n00q1smBh3GlJAiNd6JJxw5yfRWd5HtwyhrqqVTxkbzK1EEAV3nJAeOBucLtu6wno\nOdmsupJ13UPKugGVrRqBKzrw48UvDBhNEMauwO3+BVJ/GQXLqa81CAw4IuT+VuVT\nPr/k1rPZCMM91TMygSTFqeFlEbgyMzBxGEkdGkXGmhSKWDkobvPLUblJJmR4A8eR\nEYOpuZA0tm+qBZ6FKFeZvn8nBkliTaH8CeErRglMFJtWj0U=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T\nU0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx\nNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv\ndXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv\nbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA\nVIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku\nWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP\nMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX\n5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ\nytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg\nh5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV\nBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE\nCgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy\ndGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy\nMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G\nA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD\nDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq\nM0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf\nOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa\n4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9\nHSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR\naZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA\nb9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ\nGp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV\nPWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO\npgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu\nUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY\nMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV\nHSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4\n9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW\ns47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5\nSm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg\ncLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM\n79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz\n/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt\nll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm\nKf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK\nQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ\nw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi\nS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07\nmKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T\nU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0\naW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz\nWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0\nb24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS\nb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI\n7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg\nCemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud\nEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD\nVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T\nkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+\ngA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE\nBhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK\nDA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz\nOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv\ndXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv\nbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R\nxFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX\nqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC\nC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3\n6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh\n/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF\nYD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E\nJNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc\nUS4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8\nZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm\n+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi\nM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV\nHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G\nA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV\ncpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc\nHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs\nPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/\nq5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0\ncuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr\na6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I\nH37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y\nK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu\nnLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf\noYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY\nIc2wBlX7Jz9TkHCpBB5XJ7k=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw\nCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT\nU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2\nMDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh\ndGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG\nByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm\nacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN\nSeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME\nGDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW\nuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp\n15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN\nb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO\nMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD\nDBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX\nDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw\nb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC\nAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP\nL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY\nt6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins\nS657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3\nPnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO\nL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3\nR2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w\ndr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS\n+YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS\nd66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG\nAtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f\ngTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j\nBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z\nNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt\nhEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM\nQtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf\nR4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ\nDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW\nP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy\nlrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq\nbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w\nAgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q\nr5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji\nMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU\n98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln\nbiBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF\nMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT\nd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8\n76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+\nbbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c\n6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE\nemA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd\nMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt\nMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y\nMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y\nFGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi\naG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM\ngI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB\nqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7\nlqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn\n8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov\nL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6\n45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO\nUYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5\nO1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC\nbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv\nGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a\n77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC\nhdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3\n92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp\nLd6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w\nZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt\nQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFlzCCA3+gAwIBAgIURg7UAXGQoBqDLEpCECgV0mEbrTIwDQYJKoZIhvcNAQEL\nBQAwUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEtMCsGA1UE\nAxMkU3dpc3NTaWduIFJTQSBTTUlNRSBSb290IENBIDIwMjIgLSAxMB4XDTIyMDYw\nODEwNTMxM1oXDTQ3MDYwODEwNTMxM1owUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoT\nDFN3aXNzU2lnbiBBRzEtMCsGA1UEAxMkU3dpc3NTaWduIFJTQSBTTUlNRSBSb290\nIENBIDIwMjIgLSAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1Pv6\nP4aimXAJOsnWoU4Bzka1LSRIDUXprMka1zKApObTytbyKTfsmizWgc7mG52xD0Hf\nWNNfqqB5WQuMrfnF+Rz7w+k1QHTDwQzLZ/ucXgwj+dAv+kyCRRy19R/4GW7ak7dO\naIN+Yi0djJUfcNnOWowhXai+CKlWbdn3uZCZxzvXvZ4uyWdXLiHO8DKD+wQB+beC\nRA2yy3oJoUg+T8ALahsb7M8dnn8GkKwoBQuo5lQ7oqcsOROZqPs06/XwvQHYiBHI\nrroZAkkC3IostL1hYOydeFxqiy8Xhl7yT5MAa13FsqmlGOrmbX5XBfsH/Lx8oUOx\nZhyoZ/urN/aqqrh6Qfc51YyfrnI2J+RixkOZ8aFB6f+Jnw9Jr8kUBhcnZDkNpbQq\nW+w8+5/FX8Y7XSYZ8oQpuJVECVL9bDDQYo8opYGWK5QvJnXkCYwK3zjzfl04joKa\njNyers4SQjoi8jWNT9IayEkzC/o2P/8sa2ogcUzNrRA/aTKEjlzuU4hE4t3MAzCS\nhnmQKkt1+1JixPRvTffbI6EY3UVTF5pjJEiJIs1+mwEcgCgDj1sr+h/jfBm95o+x\nQHag8sc3sjKUEDLNpxOX8TssejQie3Q6QOKvgvjBwXj8X+Q1f8D0TPBMsuqHA3Il\nWYMqCKRR3s/uqOfoQD+I8DarCU7YoKh/8+EJ27kCAwEAAaNjMGEwDwYDVR0TAQH/\nBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAUzC6tiYyD40CjJWml\n6pJ90jc6x8YwHQYDVR0OBBYEFMwurYmMg+NAoyVppeqSfdI3OsfGMA0GCSqGSIb3\nDQEBCwUAA4ICAQAAB2YWpe3Hub+8yJGtWO1eEgWz9kabe+SEEC8HsVpeMm5tAPBe\nx5piOYdN5Dzzvva6alNshG0H1GHKZ2a+mz5FMJ1R0tdaQq6dkg4jq9AVlD6omsqb\n7cHCXyGjmYD8uaZhDlCAgCfH6H2g1JR6mAPn7kKL81JQXO++sHZaHAmhv4PAHnZl\n0CVBW2mRk3f5jEvwLNubBgAXg/palLSGie+8CgsS+AZN0nPikThduWpLT6ev2iYl\nkiMafB8nDZGE7xdy9kbrazs3qdTVmmO6XnmMKrWbojS1zJYn+XkIPH9t4P983MUm\nr8OhemkW3Yc1c8ZrMWtWAS1PmdnuyuHQg962hecW+NGuM0j7Gs9dX4qEYXQHbxmw\nUSGyoQSxe1OP76JFrR+Y3flqBGyqNsWvjOopSUrn/1ezxjwRSRgX5maF4egj8osO\nPJPEP3ZOfmKiKcsWMN4saa+Rp+JX5TNMv9iOB6J/oTVGaUqoICn/694glVmxrk0w\na9iatAMfwjjkINUO1howTGicjODtoQ+OQl3rgCoSeaYXF7SVKo40kae90ayoGkMh\ni97v4KxGJWUKxiuhmz4i6Bg4tSb2LMoIIN4w0a1U/dxIFZ/Np0HXNziFME8SiEM0\ng9cqTdQAV1zlyvDd4ZIoKxh1vUekQhPpVlqNSl7ODnU1gHMZDywpi7uVuA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE\nAxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx\nMTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT\nd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg\nMjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX\nvDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7\nLCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX\n5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE\nEPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt\n/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x\n0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5\nKaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM\n0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd\nOxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta\nclXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK\nwP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD\nAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4\nDxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL\nBQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3\n10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz\nHqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ\niJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc\ngC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM\nZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF\nLhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp\nzv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td\nAo9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0\nrk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO\ngLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ\nMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290\nIENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5\nWhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO\nLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg\nQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P\n40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF\navcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/\n34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i\nJkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu\nj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf\nXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP\n2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA\nS9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA\noS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC\nkHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW\n5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd\nBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB\nAGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t\ntGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn\n68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn\nTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t\nRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx\nf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI\nQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz\n8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4\nNxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX\nxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6\nt5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx\nEjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT\nVFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5\nNTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT\nB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF\n10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz\n0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh\nMBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH\nzIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc\n46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2\nyKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi\nlaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP\noA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA\nBDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE\nqYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm\n4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB\n/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL\n1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn\nLhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF\nH6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo\nRI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+\nnile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh\n15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW\n6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW\nnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j\nwa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz\naGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy\nKwbQBM0=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFlTCCA32gAwIBAgIQQAE0jMIAAAAAAAAAAZdY9DANBgkqhkiG9w0BAQwFADBU\nMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290\nIENBMR8wHQYDVQQDExZUV0NBIEdsb2JhbCBSb290IENBIEcyMB4XDTIyMTEyMjA2\nNDIyMVoXDTQ3MTEyMjE1NTk1OVowVDELMAkGA1UEBhMCVFcxEjAQBgNVBAoTCVRB\nSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEfMB0GA1UEAxMWVFdDQSBHbG9iYWwg\nUm9vdCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKoO1SCS\nAa2C+QwIkTRrihbQRhb/A7jYjeqTNPv/K739bqrcm/KGgVX1iRzEjXVqWHiREx4C\nE3A9774K5wCPuDHldMUwvv991pnlwkKjzyHWswh/kdVh5qKVEA3vXpcLSTjVIrDX\ni1lvnzWbf9KRzHp/u6Cf3lUz9kuNCup9CcB53L1E4v4c52QhKM8ESuK0v4Z5KrsO\nk8mPXqwwOVKQB7nqnCZCFMRnRv7RGmihPlAZoyYKJymQwva063OaeB7hmPRlDDUh\nBvgL3mLlTcGzXdm5+mGXKuPqx0RVJJL+Eqc/xHfgLQKBB9X7feYQnjq0qO/s+1Dq\nNc/MfrtCuURsUum/KnIfP96bcOncWsU7u7/wWYWvL8GwFHkFrHWfJfURJwZgIcdt\nZb6oiZzlrEbf+F1EA41gvfexDcwv70FUL+5rlblOfDTfO/l3nX3NBz0cBjMSgOxy\nnPItgtrVO8TH+QTDZAJ89TVgp7RGKS4b76VYgC56iVE4Njz9oXe4gDDQit6NpzQm\n7CO7GFUYNkXu7QEGqk2/ZAzKmJcaMQJm+HhoW4jfCajnm/o0bXAcIa0Ii/Khtqx2\nar/xgCUAvjweTa65PLaVY71rfkcSkFVFEY3sFx/BvieBk1djaQAmd4vDWeV70Q1E\n8qjw94WaBffCLnCak4XYlZAxkFSm7AufN0UPAgMBAAGjYzBhMA4GA1UdDwEB/wQE\nAwIBBjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFJKM1DbRW0dTxHENhN1k\nKvU2ZEDnMB0GA1UdDgQWBBSSjNQ20VtHU8RxDYTdZCr1NmRA5zANBgkqhkiG9w0B\nAQwFAAOCAgEAJfxL2pC02nXnQTqB0ab+oGrzGHFiaiQIi6l6TclVzs8QKC4EGZYF\nz10CICo7s1U/Ac1CzbJ37f9183x325alz4xnBvSkm3L2IUkJmKMyXndaYwnvYkOX\nAji16jwYUGj8WVvZedTx5FZIE1bY03ELXniUOBFF+gUX9Q51HmJSYUa6LhmthrSI\nD7FQ5kAANBqVnZPgUfnUVUbplTwlhi6X1wExGETsHGDpfWmvMviXQCUkto0aVTzF\nt/e8BlI7cTBwPnEXfvFmBF5dvIoxQ6aSHXtU0qU2i2+N1l7a1MMuHd85VWCCMJ4n\n/46A3WNMplU12NAzqYBtPl6dzKhngGb6mVcMUsoZdbA4NVUqgcWMHlbXX5DyINja\n4GZx6bJ4q2e5JG5rNnL8b439f3I5KGdSkQUfV2XSo6cNYfqh59U1RpXJBof2MOwy\nUamsVsAhTqMUdAU6vOO/bT1OP16lpG0pv4RRdVOOhhr1UXAqDRxOQOH9o+OlK2eQ\nksdsroW/OpsXFcqcKpPUTTkNvCAIo42IbAkNjK5EIU3JcezYJtcXni0RGDyjIn24\nJ1S/aMg7QsyPXk7n3MLF+mpED41WiHrfiYRsoLM+PfFlAAmI6irrQM6zXawyF67B\nm+nQwfVJlN2nznxaB+uuIJwXMJJpk3Lzmltxm/5q33owaY6zLtsPLN0=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES\nMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU\nV0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz\nWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO\nLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm\naWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE\nAcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH\nK3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX\nRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z\nrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx\n3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq\nhkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC\nMErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls\nXebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D\nlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn\naspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ\nYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx\nCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE\nAwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1\nNTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ\nMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq\nAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9\nvVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9\nlRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD\nn3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT\n7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o\n6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC\nTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6\nWT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R\nDolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI\npEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj\nYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy\nrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw\nAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ\n8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi\n0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM\nA8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS\nSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K\nTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF\n6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er\n3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt\nTy3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT\nVmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW\nysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA\nrBPuUBQemMc=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw\nNzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv\nb3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD\nVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2\nMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F\nVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1\n7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X\nZ75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+\n/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs\n81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm\ndtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe\nOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu\nsDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4\npgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs\nslESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ\narMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD\nVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG\n9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl\ndxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx\n0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj\nTQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed\nY2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7\nQ4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI\nOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7\nvVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW\nt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn\nHL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx\nSK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM\nBQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp\nZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe\nFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw\nIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU\ncnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS\nT1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK\nAtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1\nnyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep\nqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA\nyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs\nhH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX\nzhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv\nkV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT\nf9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA\nuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB\no2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih\nMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E\nBAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4\nwM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2\nXFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1\nJKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j\nITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV\nVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx\nxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on\nAX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d\n7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj\ngKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV\n+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo\nFGWsJwt0ivKH\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw\nWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs\nIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y\nMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD\nVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz\ndEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx\ns8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw\nLxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij\nYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD\npm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE\nAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR\nUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj\n/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICNjCCAbugAwIBAgIUWsL4KU/jfcVeHRhvO5MgH/97ui0wCgYIKoZIzj0EAwMw\nWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs\nIEluYy4xJDAiBgNVBAMTG1RydXN0QXNpYSBTTUlNRSBFQ0MgUm9vdCBDQTAeFw0y\nNDA1MTUwNTQxNTlaFw00NDA1MTUwNTQxNThaMFoxCzAJBgNVBAYTAkNOMSUwIwYD\nVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDExtUcnVz\ndEFzaWEgU01JTUUgRUNDIFJvb3QgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATN\n2fsnvWnshsmQQ7FwF5SnyXcjOj8jZdMcox0eQlQg69BCu1m5i6zyho1Ljh2qliIj\nOXZtkpvrIst6Q6Jz/XNLwiUPKrFpxv9F36k8lYC7qR5Kky/sHB2I9BGSN583mHKj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFDFn5nKyDeYioKzPfiKnWTLj\nZiOlMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNpADBmAjEA3TpMjaTGf+29\npcZPPv0xSyjWilbfZRZ3h037ujIIgeCeM0iLn5SG7wErlOaM1tSOAjEAn4GcsCb9\nK9by9XGEnqjHiozWWBFStbgEy8xxdWPixhk42W1sGXGkFhkhk7oGRChs\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFhDCCA2ygAwIBAgIUWu5x394MV4W1uzYi17h2RgJzyv8wDQYJKoZIhvcNAQEM\nBQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp\nZXMsIEluYy4xJDAiBgNVBAMTG1RydXN0QXNpYSBTTUlNRSBSU0EgUm9vdCBDQTAe\nFw0yNDA1MTUwNTQyMDFaFw00NDA1MTUwNTQyMDBaMFoxCzAJBgNVBAYTAkNOMSUw\nIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDExtU\ncnVzdEFzaWEgU01JTUUgUlNBIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQCYlZytPFlz05N2pkhUphyIckxN4YL/GhMfUN6M2ZBC0byZ0zej\n13E6yt1eG5BhQm6PQAFzfR8xutQdbgTSqpCESjMKRJ9aGR+0bi1o/K/An0oQEr8+\ngsKCsC/nkG+QZBCD7Ow2lAx8T+ACDT2HeUJNAOUwrnAfFf36z1IlNk15ILvxEJjg\nYIfJ9XgMIu0C5hFs8ZtakRF0htD+eJKWBMOY78Zwr6mQqhb2Iu3Y+kYoceLJCMBQ\nvHajui2W8hH5pL0QVvgnbStLZIjcF13PAAiKkq4azBLX3/AQKPPNOuo6Eowb52EJ\nQ2rkOOn+dDnbzQo7w09T1q5x1TiDhx/O50zzEVWH37ev9+sahhBtqO1I3TLQ26oq\nC3J3KXf9eug/eCAqaL7ebwjmtYVHgDf5cZaLpZhWl3wRZRaO1M7YJ9T5WsWnjbvR\nNw2lq2Vd2nSTiF7bdfZ/m8KasW0IAgyYSrvNMK92NQKFViNRCUAJBffwPR7CyHoa\nusVBFbkNdrS0pLhF/Y2jOz0DKs2zlX80e92hT9k6/yf1DcIBnP9ZdVoayefS/X9P\nD7X+DTzmoNb7tXZctDBNED/+4utaDrFPT1B+CDMCkVcySYmnQBBQF2ufY7qyslaY\ndvT/cukEnNSnTE/2Oh9aVDFvy7oyrfhtr0XHe2NE38L9eOhKirB0dRbejwIDAQAB\no0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSAGqpDwcl/ixqWRbw9u2tI\nUmxbqzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACp1gaGCIOp/\nVq4JMJcQePTZQBRSpO5qf/AJKNYQY+BOe8kxxwilF+uvhuKXB0+pDqKFzO2kgIEd\nWlMGPEwaqbeEhs989YUKcJnQ7TaRjed3Ls6EnCiGLSU1jEwB5n3bYV3id4TTAdFi\n3QyiCmSk/PDtOkjyOew11qF6F3Hs09LsuCb7rRVwVkrPZMC5YFv35s2gwgMr+bLl\n2rqlNxzYjdp5dCpn5KJ6xyyNpcFqgWzM9ak5aiJ9ouIIzemT27rLH3V3nveYrxTk\nO6BMp3LntV5TScz/klfxWSsJuulSk8APRQth1mxZcwvY+QEv2gNPNxz034NeC0Gg\nsXw5AKFs0Ni0kXIrGz+imtHE3yvVyJV9hM12G9zkJMY/FSI9hadCK+1+cVlhSMI9\nkWNAfCmzgBYKJfwYYA5TrQ4qzvxBOs2x5GprzDltyE1luKqTiHhuDwKL4JaOdB/Q\nfuF0t/aBauQjrI79jzUdmnEKTypVL/4YwQD3e0iKZa9vCB1D51q4H6ToA+v9TLW0\nk6gx3kOdEr3n6aTS32/8b0aj7zFOjRerG6ng+Kk0VqEO53TsqIeF2Hc1S40+bnJ8\nSMwfcrNxdNQkhrzIwON5FAHO2fqBxlyz+V0MOL7O8o6NXz0l4VE5I6jqAI4Es79y\noMK6g/vNpJd1IJq/p1Di3a0sH/Q/o8gx\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw\nWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs\nIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw\nNTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE\nChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB\nc2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/\nAT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp\nguMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw\nDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01\nL18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR\nOkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM\nBQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp\nZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN\nMjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG\nA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1\nc3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+\nNmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ\nQ1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561\nHmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32\nft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb\nxNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX\ni9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ\nUNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j\nTnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT\nbE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8\nS8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA\nMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT\nMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3\nRz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4\niqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt\n7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp\n2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ\ng3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj\npQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M\npugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP\nXvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe\nSsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0\nly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy\n323imttUQ/hHWKNddBWcwauwxzQ=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----","-----BEGIN CERTIFICATE-----\nMIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx\nNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3\ndy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy\ndmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB\ndXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6\n38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP\nKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q\nDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4\nqEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa\nJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi\nPvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P\nBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs\njVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0\neS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD\nggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR\nvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt\nqZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa\nIR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy\ni6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ\nO+7ETPTsJ3xCwnR8gooJybQDJbw=\n-----END CERTIFICATE-----"];s(8630);var Ut=s(152);function Pt(t,e){let n=0;if(1===t.length)return t[0];for(let r=t.length-1;r>=0;r--)n+=t[t.length-1-r]*Math.pow(2,e*r);return n}function Gt(t,e,n=-1){const r=n;let i=t,o=0,s=Math.pow(2,e);for(let n=1;n<8;n++){if(t<s){let t;if(r<0)t=new ArrayBuffer(n),o=n;else{if(r<n)return new ArrayBuffer(0);t=new ArrayBuffer(r),o=r}const s=new Uint8Array(t);for(let t=n-1;t>=0;t--){const n=Math.pow(2,t*e);s[o-t-1]=Math.floor(i/n),i-=s[o-t-1]*n}return t}s*=Math.pow(2,e)}return new ArrayBuffer(0)}function Vt(...t){let e=0,n=0;for(const n of t)e+=n.length;const r=new ArrayBuffer(e),i=new Uint8Array(r);for(const e of t)i.set(e,n),n+=e.length;return i}function Ht(){const t=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){const e=255===t[0]&&128&t[1],n=0===t[0]&&!(128&t[1]);(e||n)&&this.warnings.push("Needlessly long format")}const e=new ArrayBuffer(this.valueHex.byteLength),n=new Uint8Array(e);for(let t=0;t<this.valueHex.byteLength;t++)n[t]=0;n[0]=128&t[0];const r=Pt(n,8),i=new ArrayBuffer(this.valueHex.byteLength),o=new Uint8Array(i);for(let e=0;e<this.valueHex.byteLength;e++)o[e]=t[e];o[0]&=127;return Pt(o,8)-r}function jt(t,e){const n=t.toString(10);if(e<n.length)return"";const r=e-n.length,i=new Array(r);for(let t=0;t<r;t++)i[t]="0";return i.join("").concat(n)}Math.log(2);
|
|
35
|
+
/*!
|
|
36
|
+
* Copyright (c) 2014, GMO GlobalSign
|
|
37
|
+
* Copyright (c) 2015-2022, Peculiar Ventures
|
|
38
|
+
* All rights reserved.
|
|
39
|
+
*
|
|
40
|
+
* Author 2014-2019, Yury Strozhevsky
|
|
41
|
+
*
|
|
42
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
|
43
|
+
* are permitted provided that the following conditions are met:
|
|
44
|
+
*
|
|
45
|
+
* * Redistributions of source code must retain the above copyright notice, this
|
|
46
|
+
* list of conditions and the following disclaimer.
|
|
47
|
+
*
|
|
48
|
+
* * Redistributions in binary form must reproduce the above copyright notice, this
|
|
49
|
+
* list of conditions and the following disclaimer in the documentation and/or
|
|
50
|
+
* other materials provided with the distribution.
|
|
51
|
+
*
|
|
52
|
+
* * Neither the name of the copyright holder nor the names of its
|
|
53
|
+
* contributors may be used to endorse or promote products derived from
|
|
54
|
+
* this software without specific prior written permission.
|
|
55
|
+
*
|
|
56
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
57
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
58
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
59
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
60
|
+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
61
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
62
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
63
|
+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
64
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
65
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
function Yt(){if("undefined"==typeof BigInt)throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function zt(t){let e=0,n=0;for(let n=0;n<t.length;n++){e+=t[n].byteLength}const r=new Uint8Array(e);for(let e=0;e<t.length;e++){const i=t[e];r.set(new Uint8Array(i),n),n+=i.byteLength}return r.buffer}function Jt(t,e,n,r){return e instanceof Uint8Array?e.byteLength?n<0?(t.error="Wrong parameter: inputOffset less than zero",!1):r<0?(t.error="Wrong parameter: inputLength less than zero",!1):!(e.byteLength-n-r<0)||(t.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):(t.error="Wrong parameter: inputBuffer has zero length",!1):(t.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}class Wt{constructor(){this.items=[]}write(t){this.items.push(t)}final(){return zt(this.items)}}const qt=[new Uint8Array([1])],Kt="0123456789",Xt="name",Zt="valueHexView",$t="isHexOnly",te="idBlock",ee="tagClass",ne="tagNumber",re="isConstructed",ie="fromBER",oe="toBER",se="local",ae="",ce=new ArrayBuffer(0),le=new Uint8Array(0),ue="EndOfContent",he="OCTET STRING",de="BIT STRING";function pe(t){var e;return(e=class extends t{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(t){this.valueHexView=new Uint8Array(t)}constructor(...t){var e;super(...t);const n=t[0]||{};this.isHexOnly=null!==(e=n.isHexOnly)&&void 0!==e&&e,this.valueHexView=n.valueHex?Ut._H.toUint8Array(n.valueHex):le}fromBER(t,e,n){const r=t instanceof ArrayBuffer?new Uint8Array(t):t;if(!Jt(this,r,e,n))return-1;const i=e+n;return this.valueHexView=r.subarray(e,i),this.valueHexView.length?(this.blockLength=n,i):(this.warnings.push("Zero buffer length"),e)}toBER(t=!1){return this.isHexOnly?t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",ce)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:Ut.U$.ToHex(this.valueHexView)}}}).NAME="hexBlock",e}class fe{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(t){this.valueBeforeDecodeView=new Uint8Array(t)}constructor({blockLength:t=0,error:e=ae,warnings:n=[],valueBeforeDecode:r=le}={}){this.blockLength=t,this.error=e,this.warnings=n,this.valueBeforeDecodeView=Ut._H.toUint8Array(r)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:Ut.U$.ToHex(this.valueBeforeDecodeView)}}}fe.NAME="baseBlock";class Ae extends fe{fromBER(t,e,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(t,e){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}}Ae.NAME="valueBlock";class ge extends(pe(fe)){constructor({idBlock:t={}}={}){var e,n,r,i;super(),t?(this.isHexOnly=null!==(e=t.isHexOnly)&&void 0!==e&&e,this.valueHexView=t.valueHex?Ut._H.toUint8Array(t.valueHex):le,this.tagClass=null!==(n=t.tagClass)&&void 0!==n?n:-1,this.tagNumber=null!==(r=t.tagNumber)&&void 0!==r?r:-1,this.isConstructed=null!==(i=t.isConstructed)&&void 0!==i&&i):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(t=!1){let e=0;switch(this.tagClass){case 1:e|=0;break;case 2:e|=64;break;case 3:e|=128;break;case 4:e|=192;break;default:return this.error="Unknown tag class",ce}if(this.isConstructed&&(e|=32),this.tagNumber<31&&!this.isHexOnly){const n=new Uint8Array(1);if(!t){let t=this.tagNumber;t&=31,e|=t,n[0]=e}return n.buffer}if(!this.isHexOnly){const n=Gt(this.tagNumber,7),r=new Uint8Array(n),i=n.byteLength,o=new Uint8Array(i+1);if(o[0]=31|e,!t){for(let t=0;t<i-1;t++)o[t+1]=128|r[t];o[i]=r[i-1]}return o.buffer}const n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=31|e,!t){const t=this.valueHexView;for(let e=0;e<t.length-1;e++)n[e+1]=128|t[e];n[this.valueHexView.byteLength]=t[t.length-1]}return n.buffer}fromBER(t,e,n){const r=Ut._H.toUint8Array(t);if(!Jt(this,r,e,n))return-1;const i=r.subarray(e,e+n);if(0===i.length)return this.error="Zero buffer length",-1;switch(192&i[0]){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=!(32&~i[0]),this.isHexOnly=!1;const o=31&i[0];if(31!==o)this.tagNumber=o,this.blockLength=1;else{let t=1,e=this.valueHexView=new Uint8Array(255),n=255;for(;128&i[t];){if(e[t-1]=127&i[t],t++,t>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(t===n){n+=255;const t=new Uint8Array(n);for(let n=0;n<e.length;n++)t[n]=e[n];e=this.valueHexView=new Uint8Array(n)}}this.blockLength=t+1,e[t-1]=127&i[t];const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e[n];e=this.valueHexView=new Uint8Array(t),e.set(r),this.blockLength<=9?this.tagNumber=Pt(e,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(1===this.tagClass&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return e+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}}ge.NAME="identificationBlock";class Ee extends fe{constructor({lenBlock:t={}}={}){var e,n,r;super(),this.isIndefiniteForm=null!==(e=t.isIndefiniteForm)&&void 0!==e&&e,this.longFormUsed=null!==(n=t.longFormUsed)&&void 0!==n&&n,this.length=null!==(r=t.length)&&void 0!==r?r:0}fromBER(t,e,n){const r=Ut._H.toUint8Array(t);if(!Jt(this,r,e,n))return-1;const i=r.subarray(e,e+n);if(0===i.length)return this.error="Zero buffer length",-1;if(255===i[0])return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=128===i[0],this.isIndefiniteForm)return this.blockLength=1,e+this.blockLength;if(this.longFormUsed=!!(128&i[0]),!1===this.longFormUsed)return this.length=i[0],this.blockLength=1,e+this.blockLength;const o=127&i[0];if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;const s=e+1,a=r.subarray(s,s+o);return 0===a[o-1]&&this.warnings.push("Needlessly long encoded length"),this.length=Pt(a,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),!1===t&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){const r=Gt(this.length,8);if(r.byteLength>127)return this.error="Too big length",ce;if(e=new ArrayBuffer(r.byteLength+1),t)return e;const i=new Uint8Array(r);n=new Uint8Array(e),n[0]=128|r.byteLength;for(let t=0;t<r.byteLength;t++)n[t+1]=i[t];return e}return e=new ArrayBuffer(1),!1===t&&(n=new Uint8Array(e),n[0]=this.length),e}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}}Ee.NAME="lengthBlock";const me={};class ye extends fe{constructor({name:t=ae,optional:e=!1,primitiveSchema:n,...r}={},i){super(r),this.name=t,this.optional=e,n&&(this.primitiveSchema=n),this.idBlock=new ge(r),this.lenBlock=new Ee(r),this.valueBlock=i?new i(r):new Ae(r)}fromBER(t,e,n){const r=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return-1===r?(this.error=this.valueBlock.error,r):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),r)}toBER(t,e){const n=e||new Wt;e||we(this);const r=this.idBlock.toBER(t);if(n.write(r),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(t,n),n.write(new ArrayBuffer(2));else{const e=this.valueBlock.toBER(t);this.lenBlock.length=e.byteLength;const r=this.lenBlock.toBER(t);n.write(r),n.write(e)}return e?ce:n.final()}toJSON(){const t={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(t.primitiveSchema=this.primitiveSchema.toJSON()),t}toString(t="ascii"){return"ascii"===t?this.onAsciiEncoding():Ut.U$.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${Ut.U$.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(t){if(this===t)return!0;if(!(t instanceof this.constructor))return!1;return function(t,e){if(t.byteLength!==e.byteLength)return!1;const n=new Uint8Array(t),r=new Uint8Array(e);for(let t=0;t<n.length;t++)if(n[t]!==r[t])return!1;return!0}(this.toBER(),t.toBER())}}function we(t){var e;if(t instanceof me.Constructed)for(const e of t.valueBlock.value)we(e)&&(t.lenBlock.isIndefiniteForm=!0);return!!(null===(e=t.lenBlock)||void 0===e?void 0:e.isIndefiniteForm)}ye.NAME="BaseBlock";class Ie extends ye{getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}constructor({value:t=ae,...e}={},n){super(e,n),t&&this.fromString(t)}fromBER(t,e,n){const r=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return-1===r?(this.error=this.valueBlock.error,r):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),r)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}}Ie.NAME="BaseStringBlock";class Ce extends(pe(Ae)){constructor({isHexOnly:t=!0,...e}={}){super(e),this.isHexOnly=t}}var Be,Te,be,De,Me,Ne,Se,ve,_e,Le,xe,Re,Fe,Oe,ke,Qe,Ue,Pe,Ge,Ve,He,je,Ye,ze,Je,We,qe,Ke,Xe,Ze,$e,tn,en,nn,rn;Ce.NAME="PrimitiveValueBlock";class on extends ye{constructor(t={}){super(t,Ce),this.idBlock.isConstructed=!1}}function sn(t,e=0,n=t.length){const r=e;let i=new ye({},Ae);const o=new fe;if(!Jt(o,t,e,n))return i.error=o.error,{offset:-1,result:i};if(!t.subarray(e,e+n).length)return i.error="Zero buffer length",{offset:-1,result:i};let s=i.idBlock.fromBER(t,e,n);if(i.idBlock.warnings.length&&i.warnings.concat(i.idBlock.warnings),-1===s)return i.error=i.idBlock.error,{offset:-1,result:i};if(e=s,n-=i.idBlock.blockLength,s=i.lenBlock.fromBER(t,e,n),i.lenBlock.warnings.length&&i.warnings.concat(i.lenBlock.warnings),-1===s)return i.error=i.lenBlock.error,{offset:-1,result:i};if(e=s,n-=i.lenBlock.blockLength,!i.idBlock.isConstructed&&i.lenBlock.isIndefiniteForm)return i.error="Indefinite length form used for primitive encoding form",{offset:-1,result:i};let a=ye;if(1===i.idBlock.tagClass){if(i.idBlock.tagNumber>=37&&!1===i.idBlock.isHexOnly)return i.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:i};switch(i.idBlock.tagNumber){case 0:if(i.idBlock.isConstructed&&i.lenBlock.length>0)return i.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:i};a=me.EndOfContent;break;case 1:a=me.Boolean;break;case 2:a=me.Integer;break;case 3:a=me.BitString;break;case 4:a=me.OctetString;break;case 5:a=me.Null;break;case 6:a=me.ObjectIdentifier;break;case 10:a=me.Enumerated;break;case 12:a=me.Utf8String;break;case 13:a=me.RelativeObjectIdentifier;break;case 14:a=me.TIME;break;case 15:return i.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:i};case 16:a=me.Sequence;break;case 17:a=me.Set;break;case 18:a=me.NumericString;break;case 19:a=me.PrintableString;break;case 20:a=me.TeletexString;break;case 21:a=me.VideotexString;break;case 22:a=me.IA5String;break;case 23:a=me.UTCTime;break;case 24:a=me.GeneralizedTime;break;case 25:a=me.GraphicString;break;case 26:a=me.VisibleString;break;case 27:a=me.GeneralString;break;case 28:a=me.UniversalString;break;case 29:a=me.CharacterString;break;case 30:a=me.BmpString;break;case 31:a=me.DATE;break;case 32:a=me.TimeOfDay;break;case 33:a=me.DateTime;break;case 34:a=me.Duration;break;default:{const t=i.idBlock.isConstructed?new me.Constructed:new me.Primitive;t.idBlock=i.idBlock,t.lenBlock=i.lenBlock,t.warnings=i.warnings,i=t}}}else a=i.idBlock.isConstructed?me.Constructed:me.Primitive;return i=function(t,e){if(t instanceof e)return t;const n=new e;return n.idBlock=t.idBlock,n.lenBlock=t.lenBlock,n.warnings=t.warnings,n.valueBeforeDecodeView=t.valueBeforeDecodeView,n}(i,a),s=i.fromBER(t,e,i.lenBlock.isIndefiniteForm?n:i.lenBlock.length),i.valueBeforeDecodeView=t.subarray(r,r+i.blockLength),{offset:s,result:i}}function an(t){if(!t.byteLength){const t=new ye({},Ae);return t.error="Input buffer has zero length",{offset:-1,result:t}}return sn(Ut._H.toUint8Array(t).slice(),0,t.byteLength)}function cn(t,e){return t?1:e}Be=on,me.Primitive=Be,on.NAME="PRIMITIVE";class ln extends Ae{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){const r=Ut._H.toUint8Array(t);if(!Jt(this,r,e,n))return-1;if(this.valueBeforeDecodeView=r.subarray(e,e+n),0===this.valueBeforeDecodeView.length)return this.warnings.push("Zero buffer length"),e;let i=e;for(;cn(this.isIndefiniteForm,n)>0;){const t=sn(r,i,n);if(-1===t.offset)return this.error=t.result.error,this.warnings.concat(t.result.warnings),-1;if(i=t.offset,this.blockLength+=t.result.blockLength,n-=t.result.blockLength,this.value.push(t.result),this.isIndefiniteForm&&t.result.constructor.NAME===ue)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===ue?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(t,e){const n=e||new Wt;for(let e=0;e<this.value.length;e++)this.value[e].toBER(t,n);return e?ce:n.final()}toJSON(){const t={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(const e of this.value)t.value.push(e.toJSON());return t}}ln.NAME="ConstructedValueBlock";class un extends ye{constructor(t={}){super(t,ln),this.idBlock.isConstructed=!0}fromBER(t,e,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;const r=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return-1===r?(this.error=this.valueBlock.error,r):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),r)}onAsciiEncoding(){const t=[];for(const e of this.valueBlock.value)t.push(e.toString("ascii").split("\n").map(t=>` ${t}`).join("\n"));const e=3===this.idBlock.tagClass?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :\n${t.join("\n")}`:`${e} :`}}Te=un,me.Constructed=Te,un.NAME="CONSTRUCTED";class hn extends Ae{fromBER(t,e,n){return e}toBER(t){return ce}}hn.override="EndOfContentValueBlock";class dn extends ye{constructor(t={}){super(t,hn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}be=dn,me.EndOfContent=be,dn.NAME=ue;class pn extends ye{constructor(t={}){super(t,Ae),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){const n=new ArrayBuffer(2);if(!t){const t=new Uint8Array(n);t[0]=5,t[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}}De=pn,me.Null=De,pn.NAME="NULL";class fn extends(pe(Ae)){get value(){for(const t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=Ut._H.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}fromBER(t,e,n){const r=Ut._H.toUint8Array(t);return Jt(this,r,e,n)?(this.valueHexView=r.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ht.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}fn.NAME="BooleanValueBlock";class An extends ye{getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}constructor(t={}){super(t,fn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}Me=An,me.Boolean=Me,An.NAME="BOOLEAN";class gn extends(pe(ln)){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let r=0;if(this.isConstructed){if(this.isHexOnly=!1,r=ln.prototype.fromBER.call(this,t,e,n),-1===r)return r;for(let t=0;t<this.value.length;t++){const e=this.value[t].constructor.NAME;if(e===ue){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(e!==he)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,r=super.fromBER(t,e,n),this.blockLength=n;return r}toBER(t,e){return this.isConstructed?ln.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}gn.NAME="OctetStringValueBlock";class En extends ye{constructor({idBlock:t={},lenBlock:e={},...n}={}){var r,i;null!==(r=n.isConstructed)&&void 0!==r||(n.isConstructed=!!(null===(i=n.value)||void 0===i?void 0:i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},gn),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,0===n)return 0===this.idBlock.error.length&&(this.blockLength+=this.idBlock.blockLength),0===this.lenBlock.error.length&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){const r=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(r.byteLength){const t=sn(r,0,r.byteLength);-1!==t.offset&&t.offset===n&&(this.valueBlock.value=[t.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return un.prototype.onAsciiEncoding.call(this);return`${this.constructor.NAME} : ${Ut.U$.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;const t=[];for(const e of this.valueBlock.value)e instanceof Ne&&t.push(e.valueBlock.valueHexView);return Ut._H.concat(t)}}Ne=En,me.OctetString=Ne,En.NAME=he;class mn extends(pe(ln)){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let r=-1;if(this.isConstructed){if(r=ln.prototype.fromBER.call(this,t,e,n),-1===r)return r;for(const t of this.value){const e=t.constructor.NAME;if(e===ue){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(e!==de)return this.error="BIT STRING may consists of BIT STRINGs only",-1;const n=t.valueBlock;if(this.unusedBits>0&&n.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=n.unusedBits}return r}const i=Ut._H.toUint8Array(t);if(!Jt(this,i,e,n))return-1;const o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){const t=o.subarray(1);try{if(t.byteLength){const e=sn(t,0,t.byteLength);-1!==e.offset&&e.offset===n-1&&(this.value=[e.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return ln.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return ce;const n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}mn.NAME="BitStringValueBlock";class yn extends ye{constructor({idBlock:t={},lenBlock:e={},...n}={}){var r,i;null!==(r=n.isConstructed)&&void 0!==r||(n.isConstructed=!!(null===(i=n.value)||void 0===i?void 0:i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return un.prototype.onAsciiEncoding.call(this);{const t=[],e=this.valueBlock.valueHexView;for(const n of e)t.push(n.toString(2).padStart(8,"0"));const n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}}function wn(t,e){const n=new Uint8Array([0]),r=new Uint8Array(t),i=new Uint8Array(e);let o=r.slice(0);const s=o.length-1,a=i.slice(0),c=a.length-1;let l=0;let u=0;for(let t=c<s?s:c;t>=0;t--,u++){if(!0==u<a.length)l=o[s-u]+a[c-u]+n[0];else l=o[s-u]+n[0];if(n[0]=l/10,!0==u>=o.length)o=Vt(new Uint8Array([l%10]),o);else o[s-u]=l%10}return n[0]>0&&(o=Vt(n,o)),o}function In(t){if(t>=qt.length)for(let e=qt.length;e<=t;e++){const t=new Uint8Array([0]);let n=qt[e-1].slice(0);for(let e=n.length-1;e>=0;e--){const r=new Uint8Array([(n[e]<<1)+t[0]]);t[0]=r[0]/10,n[e]=r[0]%10}t[0]>0&&(n=Vt(t,n)),qt.push(n)}return qt[t]}function Cn(t,e){let n=0;const r=new Uint8Array(t),i=new Uint8Array(e),o=r.slice(0),s=o.length-1,a=i.slice(0),c=a.length-1;let l,u=0;for(let t=c;t>=0;t--,u++)if(l=o[s-u]-a[c-u]-n,!0==l<0)n=1,o[s-u]=l+10;else n=0,o[s-u]=l;if(n>0)for(let t=s-c+1;t>=0;t--,u++){if(l=o[s-u]-n,!(l<0)){n=0,o[s-u]=l;break}n=1,o[s-u]=l+10}return o.slice()}Se=yn,me.BitString=Se,yn.NAME=de;class Bn extends(pe(Ae)){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Ht.call(this)))}constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),void 0!==t&&(this.valueDec=t)}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(function(t){const e=t<0?-1*t:t;let n=128;for(let r=1;r<8;r++){if(e<=n){if(t<0){const t=Gt(n-e,8,r);return new Uint8Array(t)[0]|=128,t}let i=Gt(e,8,r),o=new Uint8Array(i);if(128&o[0]){const t=i.slice(0),e=new Uint8Array(t);i=new ArrayBuffer(i.byteLength+1),o=new Uint8Array(i);for(let n=0;n<t.byteLength;n++)o[n+1]=e[n];o[0]=0}return i}n*=Math.pow(2,8)}return new ArrayBuffer(0)}(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,r=0){const i=this.fromBER(t,e,n);if(-1===i)return i;const o=this.valueHexView;return 0===o[0]&&128&o[1]?this.valueHexView=o.subarray(1):0!==r&&o.length<r&&(r-o.length>1&&(r=o.length+1),this.valueHexView=o.subarray(r-o.length)),i}toDER(t=!1){const e=this.valueHexView;switch(!0){case!!(128&e[0]):{const t=new Uint8Array(this.valueHexView.length+1);t[0]=0,t.set(e,1),this.valueHexView=t}break;case 0===e[0]&&!(128&e[1]):this.valueHexView=this.valueHexView.subarray(1)}return this.toBER(t)}fromBER(t,e,n){const r=super.fromBER(t,e,n);return-1===r||this.setValueHex(),r}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){const t=8*this.valueHexView.length-1;let e,n=new Uint8Array(8*this.valueHexView.length/3),r=0;const i=this.valueHexView;let o="",s=!1;for(let s=i.byteLength-1;s>=0;s--){e=i[s];for(let i=0;i<8;i++){if(!(1&~e))if(r===t)n=Cn(In(r),n),o="-";else n=wn(n,In(r));r++,e>>=1}}for(let t=0;t<n.length;t++)n[t]&&(s=!0),s&&(o+=Kt.charAt(n[t]));return!1===s&&(o+=Kt.charAt(0)),o}}ve=Bn,Bn.NAME="IntegerValueBlock",Object.defineProperty(ve.prototype,"valueHex",{set:function(t){this.valueHexView=new Uint8Array(t),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});class Tn extends ye{constructor(t={}){super(t,Bn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Yt(),BigInt(this.valueBlock.toString())}static fromBigInt(t){Yt();const e=BigInt(t),n=new Wt,r=e.toString(16).replace(/^-/,""),i=new Uint8Array(Ut.U$.FromHex(r));if(e<0){const t=new Uint8Array(i.length+(128&i[0]?1:0));t[0]|=128;const r=BigInt(`0x${Ut.U$.ToHex(t)}`)+e,o=Ut._H.toUint8Array(Ut.U$.FromHex(r.toString(16)));o[0]|=128,n.write(o)}else 128&i[0]&&n.write(new Uint8Array([0])),n.write(i);return new _e({valueHex:n.final()})}convertToDER(){const t=new _e({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new _e({valueHex:0===this.valueBlock.valueHexView[0]?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}_e=Tn,me.Integer=_e,Tn.NAME="INTEGER";class bn extends Tn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}Le=bn,me.Enumerated=Le,bn.NAME="ENUMERATED";class Dn extends(pe(Ae)){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;const r=Ut._H.toUint8Array(t);if(!Jt(this,r,e,n))return-1;const i=r.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let t=0;t<n&&(this.valueHexView[t]=127&i[t],this.blockLength++,128&i[t]);t++);const o=new Uint8Array(this.blockLength);for(let t=0;t<this.blockLength;t++)o[t]=this.valueHexView[t];return this.valueHexView=o,128&i[this.blockLength-1]?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Pt(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){Yt();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;const n=new Uint8Array(e.length/7);for(let t=0;t<n.length;t++)n[t]=parseInt(e.slice(7*t,7*t+7),2)+(t+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);const e=this.valueHexView,n=new Uint8Array(this.blockLength);for(let t=0;t<this.blockLength-1;t++)n[t]=128|e[t];return n[this.blockLength-1]=e[this.blockLength-1],n.buffer}const e=Gt(this.valueDec,7);if(0===e.byteLength)return this.error="Error during encoding SID value",ce;const n=new Uint8Array(e.byteLength);if(!t){const t=new Uint8Array(e),r=e.byteLength-1;for(let e=0;e<r;e++)n[e]=128|t[e];n[r]=t[r]}return n}toString(){let t="";if(this.isHexOnly)t=Ut.U$.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}Dn.NAME="sidBlock";class Mn extends Ae{constructor({value:t=ae,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let r=e;for(;n>0;){const e=new Dn;if(r=e.fromBER(t,r,n),-1===r)return this.blockLength=0,this.error=e.error,r;0===this.value.length&&(e.isFirstSid=!0),this.blockLength+=e.blockLength,n-=e.blockLength,this.value.push(e)}return r}toBER(t){const e=[];for(let n=0;n<this.value.length;n++){const r=this.value[n].toBER(t);if(0===r.byteLength)return this.error=this.value[n].error,ce;e.push(r)}return zt(e)}fromString(t){this.value=[];let e=0,n=0,r="",i=!1;do{if(n=t.indexOf(".",e),r=-1===n?t.substring(e):t.substring(e,n),e=n+1,i){const t=this.value[0];let e=0;switch(t.valueDec){case 0:break;case 1:e=40;break;case 2:e=80;break;default:return void(this.value=[])}const n=parseInt(r,10);if(isNaN(n))return;t.valueDec=n+e,i=!1}else{const t=new Dn;if(r>Number.MAX_SAFE_INTEGER){Yt();const e=BigInt(r);t.valueBigInt=e}else if(t.valueDec=parseInt(r,10),isNaN(t.valueDec))return;this.value.length||(t.isFirstSid=!0,i=!0),this.value.push(t)}}while(-1!==n)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let r=this.value[n].toString();0!==n&&(t=`${t}.`),e?(r=`{${r}}`,this.value[n].isFirstSid?t=`2.{${r} - 80}`:t+=r):t+=r}return t}toJSON(){const t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}}Mn.NAME="ObjectIdentifierValueBlock";class Nn extends ye{getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}constructor(t={}){super(t,Mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}xe=Nn,me.ObjectIdentifier=xe,Nn.NAME="OBJECT IDENTIFIER";class Sn extends(pe(fe)){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(0===n)return e;const r=Ut._H.toUint8Array(t);if(!Jt(this,r,e,n))return-1;const i=r.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let t=0;t<n&&(this.valueHexView[t]=127&i[t],this.blockLength++,128&i[t]);t++);const o=new Uint8Array(this.blockLength);for(let t=0;t<this.blockLength;t++)o[t]=this.valueHexView[t];return this.valueHexView=o,128&i[this.blockLength-1]?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Pt(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);const e=this.valueHexView,n=new Uint8Array(this.blockLength);for(let t=0;t<this.blockLength-1;t++)n[t]=128|e[t];return n[this.blockLength-1]=e[this.blockLength-1],n.buffer}const e=Gt(this.valueDec,7);if(0===e.byteLength)return this.error="Error during encoding SID value",ce;const n=new Uint8Array(e.byteLength);if(!t){const t=new Uint8Array(e),r=e.byteLength-1;for(let e=0;e<r;e++)n[e]=128|t[e];n[r]=t[r]}return n.buffer}toString(){let t="";return t=this.isHexOnly?Ut.U$.ToHex(this.valueHexView):this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}Sn.NAME="relativeSidBlock";class vn extends Ae{constructor({value:t=ae,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let r=e;for(;n>0;){const e=new Sn;if(r=e.fromBER(t,r,n),-1===r)return this.blockLength=0,this.error=e.error,r;this.blockLength+=e.blockLength,n-=e.blockLength,this.value.push(e)}return r}toBER(t,e){const n=[];for(let e=0;e<this.value.length;e++){const r=this.value[e].toBER(t);if(0===r.byteLength)return this.error=this.value[e].error,ce;n.push(r)}return zt(n)}fromString(t){this.value=[];let e=0,n=0,r="";do{n=t.indexOf(".",e),r=-1===n?t.substring(e):t.substring(e,n),e=n+1;const i=new Sn;if(i.valueDec=parseInt(r,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(-1!==n);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let r=this.value[n].toString();0!==n&&(t=`${t}.`),e?(r=`{${r}}`,t+=r):t+=r}return t}toJSON(){const t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}}vn.NAME="RelativeObjectIdentifierValueBlock";class _n extends ye{getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}constructor(t={}){super(t,vn),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}Re=_n,me.RelativeObjectIdentifier=Re,_n.NAME="RelativeObjectIdentifier";class Ln extends un{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}Fe=Ln,me.Sequence=Fe,Ln.NAME="SEQUENCE";class xn extends un{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}Oe=xn,me.Set=Oe,xn.NAME="SET";class Rn extends(pe(Ae)){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=ae}toJSON(){return{...super.toJSON(),value:this.value}}}Rn.NAME="StringValueBlock";class Fn extends Rn{}Fn.NAME="SimpleStringValueBlock";class On extends Ie{constructor({...t}={}){super(t,Fn)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,Ut._H.toUint8Array(t))}fromString(t){const e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let r=0;r<e;r++)n[r]=t.charCodeAt(r);this.valueBlock.value=t}}On.NAME="SIMPLE STRING";class kn extends On{fromBuffer(t){this.valueBlock.valueHexView=Ut._H.toUint8Array(t);try{this.valueBlock.value=Ut.U$.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=Ut.U$.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(Ut.U$.FromUtf8String(t)),this.valueBlock.value=t}}kn.NAME="Utf8StringValueBlock";class Qn extends kn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}ke=Qn,me.Utf8String=ke,Qn.NAME="UTF8String";class Un extends On{fromBuffer(t){this.valueBlock.value=Ut.U$.ToUtf16String(t),this.valueBlock.valueHexView=Ut._H.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(Ut.U$.FromUtf16String(t))}}Un.NAME="BmpStringValueBlock";class Pn extends Un{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}Qe=Pn,me.BmpString=Qe,Pn.NAME="BMPString";class Gn extends On{fromBuffer(t){const e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let t=0;t<n.length;t+=4)n[t]=n[t+3],n[t+1]=n[t+2],n[t+2]=0,n[t+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){const e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(4*e);for(let r=0;r<e;r++){const e=Gt(t.charCodeAt(r),8),i=new Uint8Array(e);if(i.length>4)continue;const o=4-i.length;for(let t=i.length-1;t>=0;t--)n[4*r+t+o]=i[t]}this.valueBlock.value=t}}Gn.NAME="UniversalStringValueBlock";class Vn extends Gn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}Ue=Vn,me.UniversalString=Ue,Vn.NAME="UniversalString";class Hn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}Pe=Hn,me.NumericString=Pe,Hn.NAME="NumericString";class jn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}Ge=jn,me.PrintableString=Ge,jn.NAME="PrintableString";class Yn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}Ve=Yn,me.TeletexString=Ve,Yn.NAME="TeletexString";class zn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}He=zn,me.VideotexString=He,zn.NAME="VideotexString";class Jn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}je=Jn,me.IA5String=je,Jn.NAME="IA5String";class Wn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}Ye=Wn,me.GraphicString=Ye,Wn.NAME="GraphicString";class qn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}ze=qn,me.VisibleString=ze,qn.NAME="VisibleString";class Kn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}Je=Kn,me.GeneralString=Je,Kn.NAME="GeneralString";class Xn extends On{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}We=Xn,me.CharacterString=We,Xn.NAME="CharacterString";class Zn extends qn{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let e=0;e<t.length;e++)this.valueBlock.valueHexView[e]=t.charCodeAt(e)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,Ut._H.toUint8Array(t)))}toBuffer(){const t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){const e=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/gi.exec(t);if(null===e)return void(this.error="Wrong input string for conversion");const n=parseInt(e[1],10);this.year=n>=50?1900+n:2e3+n,this.month=parseInt(e[2],10),this.day=parseInt(e[3],10),this.hour=parseInt(e[4],10),this.minute=parseInt(e[5],10),this.second=parseInt(e[6],10)}toString(t="iso"){if("iso"===t){const t=new Array(7);return t[0]=jt(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=jt(this.month,2),t[2]=jt(this.day,2),t[3]=jt(this.hour,2),t[4]=jt(this.minute,2),t[5]=jt(this.second,2),t[6]="Z",t.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}qe=Zn,me.UTCTime=qe,Zn.NAME="UTCTime";class $n extends Zn{constructor(t={}){var e;super(t),null!==(e=this.millisecond)&&void 0!==e||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){const t=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(t)}fromString(t){let e,n=!1,r="",i="",o=0,s=0,a=0;if("Z"===t[t.length-1])r=t.substring(0,t.length-1),n=!0;else{const e=new Number(t[t.length-1]);if(isNaN(e.valueOf()))throw new Error("Wrong input string for conversion");r=t}if(n){if(-1!==r.indexOf("+"))throw new Error("Wrong input string for conversion");if(-1!==r.indexOf("-"))throw new Error("Wrong input string for conversion")}else{let t=1,e=r.indexOf("+"),n="";if(-1===e&&(e=r.indexOf("-"),t=-1),-1!==e){if(n=r.substring(e+1),r=r.substring(0,e),2!==n.length&&4!==n.length)throw new Error("Wrong input string for conversion");let i=parseInt(n.substring(0,2),10);if(isNaN(i.valueOf()))throw new Error("Wrong input string for conversion");if(s=t*i,4===n.length){if(i=parseInt(n.substring(2,4),10),isNaN(i.valueOf()))throw new Error("Wrong input string for conversion");a=t*i}}}let c=r.indexOf(".");if(-1===c&&(c=r.indexOf(",")),-1!==c){const t=new Number(`0${r.substring(c)}`);if(isNaN(t.valueOf()))throw new Error("Wrong input string for conversion");o=t.valueOf(),i=r.substring(0,c)}else i=r;switch(!0){case 8===i.length:if(e=/(\d{4})(\d{2})(\d{2})/gi,-1!==c)throw new Error("Wrong input string for conversion");break;case 10===i.length:if(e=/(\d{4})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let t=60*o;this.minute=Math.floor(t),t=60*(t-this.minute),this.second=Math.floor(t),t=1e3*(t-this.second),this.millisecond=Math.floor(t)}break;case 12===i.length:if(e=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let t=60*o;this.second=Math.floor(t),t=1e3*(t-this.second),this.millisecond=Math.floor(t)}break;case 14===i.length:if(e=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){const t=1e3*o;this.millisecond=Math.floor(t)}break;default:throw new Error("Wrong input string for conversion")}const l=e.exec(i);if(null===l)throw new Error("Wrong input string for conversion");for(let t=1;t<l.length;t++)switch(t){case 1:this.year=parseInt(l[t],10);break;case 2:this.month=parseInt(l[t],10);break;case 3:this.day=parseInt(l[t],10);break;case 4:this.hour=parseInt(l[t],10)+s;break;case 5:this.minute=parseInt(l[t],10)+a;break;case 6:this.second=parseInt(l[t],10);break;default:throw new Error("Wrong input string for conversion")}if(!1===n){const t=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=t.getUTCFullYear(),this.month=t.getUTCMonth(),this.day=t.getUTCDay(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds(),this.millisecond=t.getUTCMilliseconds()}}toString(t="iso"){if("iso"===t){const t=[];return t.push(jt(this.year,4)),t.push(jt(this.month,2)),t.push(jt(this.day,2)),t.push(jt(this.hour,2)),t.push(jt(this.minute,2)),t.push(jt(this.second,2)),0!==this.millisecond&&(t.push("."),t.push(jt(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}Ke=$n,me.GeneralizedTime=Ke,$n.NAME="GeneralizedTime";class tr extends Qn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}Xe=tr,me.DATE=Xe,tr.NAME="DATE";class er extends Qn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}Ze=er,me.TimeOfDay=Ze,er.NAME="TimeOfDay";class nr extends Qn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}$e=nr,me.DateTime=$e,nr.NAME="DateTime";class rr extends Qn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}tn=rr,me.Duration=tn,rr.NAME="Duration";class ir extends Qn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}en=ir,me.TIME=en,ir.NAME="TIME";class or{constructor({name:t=ae,optional:e=!1}={}){this.name=t,this.optional=e}}class sr extends or{constructor({value:t=[],...e}={}){super(e),this.value=t}}class ar extends or{constructor({value:t=new or,local:e=!1,...n}={}){super(n),this.value=t,this.local=e}}class cr{get data(){return this.dataView.slice().buffer}set data(t){this.dataView=Ut._H.toUint8Array(t)}constructor({data:t=le}={}){this.dataView=Ut._H.toUint8Array(t)}fromBER(t,e,n){const r=e+n;return this.dataView=Ut._H.toUint8Array(t).subarray(e,r),r}toBER(t){return this.dataView.slice().buffer}}function lr(t,e,n){if(n instanceof sr){for(const r of n.value){if(lr(t,e,r).verified)return{verified:!0,result:t}}{const t={verified:!1,result:{error:"Wrong values for Choice type"}};return n.hasOwnProperty(Xt)&&(t.name=n.name),t}}if(n instanceof or)return n.hasOwnProperty(Xt)&&(t[n.name]=e),{verified:!0,result:t};if(t instanceof Object==!1)return{verified:!1,result:{error:"Wrong root object"}};if(e instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(n instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(te in n==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(ie in n.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(oe in n.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};const r=n.idBlock.toBER(!1);if(0===r.byteLength)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(-1===n.idBlock.fromBER(r,0,r.byteLength))return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(!1===n.idBlock.hasOwnProperty(ee))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.idBlock.tagClass!==e.idBlock.tagClass)return{verified:!1,result:t};if(!1===n.idBlock.hasOwnProperty(ne))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.idBlock.tagNumber!==e.idBlock.tagNumber)return{verified:!1,result:t};if(!1===n.idBlock.hasOwnProperty(re))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.idBlock.isConstructed!==e.idBlock.isConstructed)return{verified:!1,result:t};if(!($t in n.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.idBlock.isHexOnly!==e.idBlock.isHexOnly)return{verified:!1,result:t};if(n.idBlock.isHexOnly){if(Zt in n.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};const r=n.idBlock.valueHexView,i=e.idBlock.valueHexView;if(r.length!==i.length)return{verified:!1,result:t};for(let e=0;e<r.length;e++)if(r[e]!==i[1])return{verified:!1,result:t}}if(n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&(t[n.name]=e)),n instanceof me.Constructed){let r=0,i={verified:!1,result:{error:"Unknown error"}},o=n.valueBlock.value.length;if(o>0&&n.valueBlock.value[0]instanceof ar&&(o=e.valueBlock.value.length),0===o)return{verified:!0,result:t};if(0===e.valueBlock.value.length&&0!==n.valueBlock.value.length){let e=!0;for(let t=0;t<n.valueBlock.value.length;t++)e=e&&(n.valueBlock.value[t].optional||!1);return e?{verified:!0,result:t}:(n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&delete t[n.name]),t.error="Inconsistent object length",{verified:!1,result:t})}for(let s=0;s<o;s++)if(s-r>=e.valueBlock.value.length){if(!1===n.valueBlock.value[s].optional){const e={verified:!1,result:t};return t.error="Inconsistent length between ASN.1 data and schema",n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&(delete t[n.name],e.name=n.name)),e}}else if(n.valueBlock.value[0]instanceof ar){if(i=lr(t,e.valueBlock.value[s],n.valueBlock.value[0].value),!1===i.verified){if(!n.valueBlock.value[0].optional)return n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&delete t[n.name]),i;r++}if(Xt in n.valueBlock.value[0]&&n.valueBlock.value[0].name.length>0){let r={};r=se in n.valueBlock.value[0]&&n.valueBlock.value[0].local?e:t,void 0===r[n.valueBlock.value[0].name]&&(r[n.valueBlock.value[0].name]=[]),r[n.valueBlock.value[0].name].push(e.valueBlock.value[s])}}else if(i=lr(t,e.valueBlock.value[s-r],n.valueBlock.value[s]),!1===i.verified){if(!n.valueBlock.value[s].optional)return n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&delete t[n.name]),i;r++}if(!1===i.verified){const e={verified:!1,result:t};return n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&(delete t[n.name],e.name=n.name)),e}return{verified:!0,result:t}}if(n.primitiveSchema&&Zt in e.valueBlock){const r=sn(e.valueBlock.valueHexView);if(-1===r.offset){const e={verified:!1,result:r.result};return n.name&&(n.name=n.name.replace(/^\s+|\s+$/g,ae),n.name&&(delete t[n.name],e.name=n.name)),e}return lr(t,r.result,n.primitiveSchema)}return{verified:!0,result:t}}function ur(t,e){if(e instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};const n=sn(Ut._H.toUint8Array(t));return-1===n.offset?{verified:!1,result:n.result}:lr(n.result,n.result,e)}!function(t){t[t.Sequence=0]="Sequence",t[t.Set=1]="Set",t[t.Choice=2]="Choice"}(nn||(nn={})),function(t){t[t.Any=1]="Any",t[t.Boolean=2]="Boolean",t[t.OctetString=3]="OctetString",t[t.BitString=4]="BitString",t[t.Integer=5]="Integer",t[t.Enumerated=6]="Enumerated",t[t.ObjectIdentifier=7]="ObjectIdentifier",t[t.Utf8String=8]="Utf8String",t[t.BmpString=9]="BmpString",t[t.UniversalString=10]="UniversalString",t[t.NumericString=11]="NumericString",t[t.PrintableString=12]="PrintableString",t[t.TeletexString=13]="TeletexString",t[t.VideotexString=14]="VideotexString",t[t.IA5String=15]="IA5String",t[t.GraphicString=16]="GraphicString",t[t.VisibleString=17]="VisibleString",t[t.GeneralString=18]="GeneralString",t[t.CharacterString=19]="CharacterString",t[t.UTCTime=20]="UTCTime",t[t.GeneralizedTime=21]="GeneralizedTime",t[t.DATE=22]="DATE",t[t.TimeOfDay=23]="TimeOfDay",t[t.DateTime=24]="DateTime",t[t.Duration=25]="Duration",t[t.TIME=26]="TIME",t[t.Null=27]="Null"}(rn||(rn={}));class hr{constructor(t,e=0){if(this.unusedBits=0,this.value=new ArrayBuffer(0),t)if("number"==typeof t)this.fromNumber(t);else{if(!Ut._H.isBufferSource(t))throw TypeError("Unsupported type of 'params' argument for BitString");this.unusedBits=e,this.value=Ut._H.toArrayBuffer(t)}}fromASN(t){if(!(t instanceof yn))throw new TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=t.valueBlock.unusedBits,this.value=t.valueBlock.valueHex,this}toASN(){return new yn({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(t){return new yn({name:t})}toNumber(){let t="";const e=new Uint8Array(this.value);for(const n of e)t+=n.toString(2).padStart(8,"0");return t=t.split("").reverse().join(""),this.unusedBits&&(t=t.slice(this.unusedBits).padStart(this.unusedBits,"0")),parseInt(t,2)}fromNumber(t){let e=t.toString(2);const n=e.length+7>>3;this.unusedBits=(n<<3)-e.length;const r=new Uint8Array(n);e=e.padStart(n<<3,"0").split("").reverse().join("");let i=0;for(;i<n;)r[i]=parseInt(e.slice(i<<3,8+(i<<3)),2),i++;this.value=r.buffer}}class dr{get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(t){"number"==typeof t?this.buffer=new ArrayBuffer(t):Ut._H.isBufferSource(t)?this.buffer=Ut._H.toArrayBuffer(t):Array.isArray(t)?this.buffer=new Uint8Array(t):this.buffer=new ArrayBuffer(0)}fromASN(t){if(!(t instanceof En))throw new TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=t.valueBlock.valueHex,this}toASN(){return new En({valueHex:this.buffer})}toSchema(t){return new En({name:t})}}const pr={fromASN:t=>t instanceof pn?null:t.valueBeforeDecodeView,toASN:t=>{if(null===t)return new pn;const e=an(t);if(e.result.error)throw new Error(e.result.error);return e.result}},fr={fromASN:t=>t.valueBlock.valueHexView.byteLength>=4?t.valueBlock.toString():t.valueBlock.valueDec,toASN:t=>new Tn({value:+t})},Ar={fromASN:t=>t.valueBlock.valueDec,toASN:t=>new bn({value:t})},gr={fromASN:t=>t.valueBlock.valueHexView,toASN:t=>new Tn({valueHex:t})},Er={fromASN:t=>t.valueBlock.valueHexView,toASN:t=>new yn({valueHex:t})},mr={fromASN:t=>t.valueBlock.toString(),toASN:t=>new Nn({value:t})},yr={fromASN:t=>t.valueBlock.value,toASN:t=>new An({value:t})},wr={fromASN:t=>t.valueBlock.valueHexView,toASN:t=>new En({valueHex:t})},Ir={fromASN:t=>new dr(t.getValue()),toASN:t=>t.toASN()};function Cr(t){return{fromASN:t=>t.valueBlock.value,toASN:e=>new t({value:e})}}const Br=Cr(Qn),Tr=Cr(Pn),br=Cr(Vn),Dr=Cr(Hn),Mr=Cr(jn),Nr=Cr(Yn),Sr=Cr(zn),vr=Cr(Jn),_r=Cr(Wn),Lr=Cr(qn),xr=Cr(Kn),Rr=Cr(Xn),Fr={fromASN:t=>t.toDate(),toASN:t=>new Zn({valueDate:t})},Or={fromASN:t=>t.toDate(),toASN:t=>new $n({valueDate:t})},kr={fromASN:()=>null,toASN:()=>new pn};function Qr(t){switch(t){case rn.Any:return pr;case rn.BitString:return Er;case rn.BmpString:return Tr;case rn.Boolean:return yr;case rn.CharacterString:return Rr;case rn.Enumerated:return Ar;case rn.GeneralString:return xr;case rn.GeneralizedTime:return Or;case rn.GraphicString:return _r;case rn.IA5String:return vr;case rn.Integer:return fr;case rn.Null:return kr;case rn.NumericString:return Dr;case rn.ObjectIdentifier:return mr;case rn.OctetString:return wr;case rn.PrintableString:return Mr;case rn.TeletexString:return Nr;case rn.UTCTime:return Fr;case rn.UniversalString:return br;case rn.Utf8String:return Br;case rn.VideotexString:return Sr;case rn.VisibleString:return Lr;default:return null}}function Ur(t){return"function"==typeof t&&t.prototype?!(!t.prototype.toASN||!t.prototype.fromASN)||Ur(t.prototype):!!(t&&"object"==typeof t&&"toASN"in t&&"fromASN"in t)}function Pr(t){var e;if(t){const n=Object.getPrototypeOf(t);return(null===(e=null==n?void 0:n.prototype)||void 0===e?void 0:e.constructor)===Array||Pr(n)}return!1}function Gr(t,e){if(!t||!e)return!1;if(t.byteLength!==e.byteLength)return!1;const n=new Uint8Array(t),r=new Uint8Array(e);for(let e=0;e<t.byteLength;e++)if(n[e]!==r[e])return!1;return!0}const Vr=new class{constructor(){this.items=new WeakMap}has(t){return this.items.has(t)}get(t,e=!1){const n=this.items.get(t);if(!n)throw new Error(`Cannot get schema for '${t.prototype.constructor.name}' target`);if(e&&!n.schema)throw new Error(`Schema '${t.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return n}cache(t){const e=this.get(t);e.schema||(e.schema=this.create(t,!0))}createDefault(t){const e={type:nn.Sequence,items:{}},n=this.findParentSchema(t);return n&&(Object.assign(e,n),e.items=Object.assign({},e.items,n.items)),e}create(e,n){const r=this.items.get(e)||this.createDefault(e),i=[];for(const e in r.items){const o=r.items[e],s=n?e:"";let a;if("number"==typeof o.type){const e=rn[o.type],n=t[e];if(!n)throw new Error(`Cannot get ASN1 class by name '${e}'`);a=new n({name:s})}else if(Ur(o.type)){a=(new o.type).toSchema(s)}else if(o.optional){this.get(o.type).type===nn.Choice?a=new or({name:s}):(a=this.create(o.type,!1),a.name=s)}else a=new or({name:s});const c=!!o.optional||void 0!==o.defaultValue;if(o.repeated){a.name="";a=new("set"===o.repeated?xn:Ln)({name:"",value:[new ar({name:s,value:a})]})}if(null!==o.context&&void 0!==o.context)if(o.implicit)if("number"==typeof o.type||Ur(o.type)){const t=o.repeated?un:on;i.push(new t({name:s,optional:c,idBlock:{tagClass:3,tagNumber:o.context}}))}else{this.cache(o.type);const t=!!o.repeated;let e=t?a:this.get(o.type,!0).schema;e="valueBlock"in e?e.valueBlock.value:e.value,i.push(new un({name:t?"":s,optional:c,idBlock:{tagClass:3,tagNumber:o.context},value:e}))}else i.push(new un({optional:c,idBlock:{tagClass:3,tagNumber:o.context},value:[a]}));else a.optional=c,i.push(a)}switch(r.type){case nn.Sequence:return new Ln({value:i,name:""});case nn.Set:return new xn({value:i,name:""});case nn.Choice:return new sr({value:i,name:""});default:throw new Error("Unsupported ASN1 type in use")}}set(t,e){return this.items.set(t,e),this}findParentSchema(t){const e=Object.getPrototypeOf(t);if(e){return this.items.get(e)||this.findParentSchema(e)}return null}},Hr=t=>e=>{let n;Vr.has(e)?n=Vr.get(e):(n=Vr.createDefault(e),Vr.set(e,n)),Object.assign(n,t)},jr=t=>(e,n)=>{let r;Vr.has(e.constructor)?r=Vr.get(e.constructor):(r=Vr.createDefault(e.constructor),Vr.set(e.constructor,r));const i=Object.assign({},t);if("number"==typeof i.type&&!i.converter){const r=Qr(t.type);if(!r)throw new Error(`Cannot get default converter for property '${n}' of ${e.constructor.name}`);i.converter=r}i.raw=t.raw,r.items[n]=i};class Yr extends Error{constructor(){super(...arguments),this.schemas=[]}}class zr{static parse(t,e){const n=an(t);if(n.result.error)throw new Error(n.result.error);return this.fromASN(n.result,e)}static fromASN(t,e){try{if(Ur(e)){return(new e).fromASN(t)}const n=Vr.get(e);Vr.cache(e);let r=n.schema;const i=this.handleChoiceTypes(t,n,e,r);if(null==i?void 0:i.result)return i.result;(null==i?void 0:i.targetSchema)&&(r=i.targetSchema);const o=this.handleSequenceTypes(t,n,e,r),s=new e;return Pr(e)?this.handleArrayTypes(t,n,e):(this.processSchemaItems(n,o,s),s)}catch(t){throw t instanceof Yr&&t.schemas.push(e.name),t}}static handleChoiceTypes(t,e,n,r){if(t.constructor===un&&e.type===nn.Choice&&3===t.idBlock.tagClass)for(const r in e.items){const i=e.items[r];if(i.context===t.idBlock.tagNumber&&i.implicit&&"function"==typeof i.type&&Vr.has(i.type)){const e=Vr.get(i.type);if(e&&e.type===nn.Sequence){const e=new Ln;if("value"in t.valueBlock&&Array.isArray(t.valueBlock.value)&&"value"in e.valueBlock){e.valueBlock.value=t.valueBlock.value;const o=this.fromASN(e,i.type),s=new n;return s[r]=o,{result:s}}}}}else if(t.constructor===un&&e.type!==nn.Choice){const n=new un({idBlock:{tagClass:3,tagNumber:t.idBlock.tagNumber},value:e.schema.valueBlock.value});for(const n in e.items)delete t[n];return{targetSchema:n}}return null}static handleSequenceTypes(t,e,n,r){if(e.type===nn.Sequence){const e=lr({},t,r);if(!e.verified)throw new Yr(`Data does not match to ${n.name} ASN1 schema.${e.result.error?` ${e.result.error}`:""}`);return e}{const e=lr({},t,r);if(!e.verified)throw new Yr(`Data does not match to ${n.name} ASN1 schema.${e.result.error?` ${e.result.error}`:""}`);return e}}static processRepeatedField(t,e,n){let r=t.slice(e);if(1===r.length&&"Sequence"===r[0].constructor.name){const t=r[0];t.valueBlock&&t.valueBlock.value&&Array.isArray(t.valueBlock.value)&&(r=t.valueBlock.value)}if("number"==typeof n.type){const t=Qr(n.type);if(!t)throw new Error(`No converter for ASN.1 type ${n.type}`);return r.filter(t=>t&&t.valueBlock).map(e=>{try{return t.fromASN(e)}catch{return}}).filter(t=>void 0!==t)}return r.filter(t=>t&&t.valueBlock).map(t=>{try{return this.fromASN(t,n.type)}catch{return}}).filter(t=>void 0!==t)}static processPrimitiveField(t,e){const n=Qr(e.type);if(!n)throw new Error(`No converter for ASN.1 type ${e.type}`);return n.fromASN(t)}static isOptionalChoiceField(t){return t.optional&&"function"==typeof t.type&&Vr.has(t.type)&&Vr.get(t.type).type===nn.Choice}static processOptionalChoiceField(t,e){try{return{processed:!0,value:this.fromASN(t,e.type)}}catch(t){if(t instanceof Yr&&/Wrong values for Choice type/.test(t.message))return{processed:!1};throw t}}static handleArrayTypes(t,e,n){if(!("value"in t.valueBlock)||!Array.isArray(t.valueBlock.value))throw new Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");const r=e.itemType;if("number"==typeof r){const e=Qr(r);if(!e)throw new Error(`Cannot get default converter for array item of ${n.name} ASN1 schema`);return n.from(t.valueBlock.value,t=>e.fromASN(t))}return n.from(t.valueBlock.value,t=>this.fromASN(t,r))}static processSchemaItems(t,e,n){for(const r in t.items){const i=e.result[r];if(!i)continue;const o=t.items[r],s=o.type;let a;a="number"==typeof s||Ur(s)?this.processPrimitiveSchemaItem(i,o,s):this.processComplexSchemaItem(i,o,s),a&&"object"==typeof a&&"value"in a&&"raw"in a?(n[r]=a.value,n[`${r}Raw`]=a.raw):n[r]=a}}static processPrimitiveSchemaItem(t,e,n){var r;const i=null!==(r=e.converter)&&void 0!==r?r:Ur(n)?new n:null;if(!i)throw new Error("Converter is empty");return e.repeated?this.processRepeatedPrimitiveItem(t,e,i):this.processSinglePrimitiveItem(t,e,n,i)}static processRepeatedPrimitiveItem(t,e,n){if(e.implicit){const r=new("sequence"===e.repeated?Ln:xn);r.valueBlock=t.valueBlock;const i=an(r.toBER(!1));if(-1===i.offset)throw new Error(`Cannot parse the child item. ${i.result.error}`);if(!("value"in i.result.valueBlock)||!Array.isArray(i.result.valueBlock.value))throw new Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");const o=i.result.valueBlock.value;return Array.from(o,t=>n.fromASN(t))}return Array.from(t,t=>n.fromASN(t))}static processSinglePrimitiveItem(e,n,r,i){let o=e;if(n.implicit){let e;if(Ur(r))e=(new r).toSchema("");else{const n=rn[r],i=t[n];if(!i)throw new Error(`Cannot get '${n}' class from asn1js module`);e=new i}e.valueBlock=o.valueBlock,o=an(e.toBER(!1)).result}return i.fromASN(o)}static processComplexSchemaItem(t,e,n){if(e.repeated){if(!Array.isArray(t))throw new Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(t,t=>this.fromASN(t,n))}{const r=this.handleImplicitTagging(t,e,n);if(!this.isOptionalChoiceField(e)){const i=this.fromASN(r,n);return e.raw?{value:i,raw:t.valueBeforeDecodeView}:i}try{return this.fromASN(r,n)}catch(t){if(t instanceof Yr&&/Wrong values for Choice type/.test(t.message))return;throw t}}}static handleImplicitTagging(t,e,n){if(e.implicit&&"number"==typeof e.context){const e=Vr.get(n);if(e.type===nn.Sequence){const e=new Ln;if("value"in t.valueBlock&&Array.isArray(t.valueBlock.value)&&"value"in e.valueBlock)return e.valueBlock.value=t.valueBlock.value,e}else if(e.type===nn.Set){const e=new xn;if("value"in t.valueBlock&&Array.isArray(t.valueBlock.value)&&"value"in e.valueBlock)return e.valueBlock.value=t.valueBlock.value,e}}return t}}class Jr{static serialize(t){return t instanceof ye?t.toBER(!1):this.toASN(t).toBER(!1)}static toASN(t){if(t&&"object"==typeof t&&Ur(t))return t.toASN();if(!t||"object"!=typeof t)throw new TypeError("Parameter 1 should be type of Object.");const e=t.constructor,n=Vr.get(e);Vr.cache(e);let r,i=[];if(n.itemType){if(!Array.isArray(t))throw new TypeError("Parameter 1 should be type of Array.");if("number"==typeof n.itemType){const r=Qr(n.itemType);if(!r)throw new Error(`Cannot get default converter for array item of ${e.name} ASN1 schema`);i=t.map(t=>r.toASN(t))}else i=t.map(t=>this.toAsnItem({type:n.itemType},"[]",e,t))}else for(const r in n.items){const o=n.items[r],s=t[r];if(void 0===s||o.defaultValue===s||"object"==typeof o.defaultValue&&"object"==typeof s&&Gr(this.serialize(o.defaultValue),this.serialize(s)))continue;const a=Jr.toAsnItem(o,r,e,s);if("number"==typeof o.context)if(o.implicit)if(o.repeated||"number"!=typeof o.type&&!Ur(o.type))i.push(new un({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context},value:a.valueBlock.value}));else{const t={};t.valueHex=a instanceof pn?a.valueBeforeDecodeView:a.valueBlock.toBER(),i.push(new on({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context},...t}))}else i.push(new un({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context},value:[a]}));else o.repeated?i=i.concat(a):i.push(a)}switch(n.type){case nn.Sequence:r=new Ln({value:i});break;case nn.Set:r=new xn({value:i});break;case nn.Choice:if(!i[0])throw new Error(`Schema '${e.name}' has wrong data. Choice cannot be empty.`);r=i[0]}return r}static toAsnItem(t,e,n,r){let i;if("number"==typeof t.type){const o=t.converter;if(!o)throw new Error(`Property '${e}' doesn't have converter for type ${rn[t.type]} in schema '${n.name}'`);if(t.repeated){if(!Array.isArray(r))throw new TypeError("Parameter 'objProp' should be type of Array.");const e=Array.from(r,t=>o.toASN(t));i=new("sequence"===t.repeated?Ln:xn)({value:e})}else i=o.toASN(r)}else if(t.repeated){if(!Array.isArray(r))throw new TypeError("Parameter 'objProp' should be type of Array.");const e=Array.from(r,t=>this.toASN(t));i=new("sequence"===t.repeated?Ln:xn)({value:e})}else i=this.toASN(r);return i}}class Wr extends Array{constructor(t=[]){if("number"==typeof t)super(t);else{super();for(const e of t)this.push(e)}}}class qr{static serialize(t){return Jr.serialize(t)}static parse(t,e){return zr.parse(t,e)}static toString(t){const e=an(Ut._H.isBufferSource(t)?Ut._H.toArrayBuffer(t):qr.serialize(t));if(-1===e.offset)throw new Error(`Cannot decode ASN.1 data. ${e.result.error}`);return e.result.toString()}}function Kr(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s}Object.create;Object.create;function Xr(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)}function Zr(t,e,n,r,i){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?i.call(t,n):i?i.value=n:e.set(t,n),n}"function"==typeof SuppressedError&&SuppressedError;class $r{static isIPv4(t){return/^(\d{1,3}\.){3}\d{1,3}$/.test(t)}static parseIPv4(t){const e=t.split(".");if(4!==e.length)throw new Error("Invalid IPv4 address");return e.map(t=>{const e=parseInt(t,10);if(isNaN(e)||e<0||e>255)throw new Error("Invalid IPv4 address part");return e})}static parseIPv6(t){const e=this.expandIPv6(t).split(":");if(8!==e.length)throw new Error("Invalid IPv6 address");return e.reduce((t,e)=>{const n=parseInt(e,16);if(isNaN(n)||n<0||n>65535)throw new Error("Invalid IPv6 address part");return t.push(n>>8&255),t.push(255&n),t},[])}static expandIPv6(t){if(!t.includes("::"))return t;const e=t.split("::");if(e.length>2)throw new Error("Invalid IPv6 address");const n=e[0]?e[0].split(":"):[],r=e[1]?e[1].split(":"):[],i=8-(n.length+r.length);if(i<0)throw new Error("Invalid IPv6 address");return[...n,...Array(i).fill("0"),...r].join(":")}static formatIPv6(t){const e=[];for(let n=0;n<16;n+=2)e.push((t[n]<<8|t[n+1]).toString(16));return this.compressIPv6(e.join(":"))}static compressIPv6(t){const e=t.split(":");let n=-1,r=0,i=-1,o=0;for(let t=0;t<e.length;t++)"0"===e[t]?(-1===i&&(i=t),o++):(o>r&&(n=i,r=o),i=-1,o=0);if(o>r&&(n=i,r=o),r>1){return`${e.slice(0,n).join(":")}::${e.slice(n+r).join(":")}`}return t}static parseCIDR(t){const[e,n]=t.split("/"),r=parseInt(n,10);if(this.isIPv4(e)){if(r<0||r>32)throw new Error("Invalid IPv4 prefix length");return[this.parseIPv4(e),r]}if(r<0||r>128)throw new Error("Invalid IPv6 prefix length");return[this.parseIPv6(e),r]}static decodeIP(t){if(64===t.length&&0===parseInt(t,16))return"::/0";if(16!==t.length)return t;const e=parseInt(t.slice(8),16).toString(2).split("").reduce((t,e)=>t+ +e,0);let n=t.slice(0,8).replace(/(.{2})/g,t=>`${parseInt(t,16)}.`);return n=n.slice(0,-1),`${n}/${e}`}static toString(t){const e=new Uint8Array(t);if(4===e.length)return Array.from(e).join(".");if(16===e.length)return this.formatIPv6(e);if(8===e.length||32===e.length){const t=e.length/2,n=e.slice(0,t),r=e.slice(t);if(e.every(t=>0===t))return 8===e.length?"0.0.0.0/0":"::/0";const i=r.reduce((t,e)=>t+(e.toString(2).match(/1/g)||[]).length,0);if(8===e.length){return`${Array.from(n).join(".")}/${i}`}return`${this.formatIPv6(n)}/${i}`}return this.decodeIP(Ut.U$.ToHex(t))}static fromString(t){if(t.includes("/")){const[e,n]=this.parseCIDR(t),r=new Uint8Array(e.length);let i=n;for(let t=0;t<r.length;t++)i>=8?(r[t]=255,i-=8):i>0&&(r[t]=255<<8-i,i=0);const o=new Uint8Array(2*e.length);return o.set(e,0),o.set(r,e.length),o.buffer}const e=this.isIPv4(t)?this.parseIPv4(t):this.parseIPv6(t);return new Uint8Array(e).buffer}}var ti,ei,ni;let ri=class{constructor(t={}){Object.assign(this,t)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};Kr([jr({type:rn.TeletexString})],ri.prototype,"teletexString",void 0),Kr([jr({type:rn.PrintableString})],ri.prototype,"printableString",void 0),Kr([jr({type:rn.UniversalString})],ri.prototype,"universalString",void 0),Kr([jr({type:rn.Utf8String})],ri.prototype,"utf8String",void 0),Kr([jr({type:rn.BmpString})],ri.prototype,"bmpString",void 0),ri=Kr([Hr({type:nn.Choice})],ri);let ii=class extends ri{constructor(t={}){super(t),Object.assign(this,t)}toString(){return this.ia5String||(this.anyValue?Ut.U$.ToHex(this.anyValue):super.toString())}};Kr([jr({type:rn.IA5String})],ii.prototype,"ia5String",void 0),Kr([jr({type:rn.Any})],ii.prototype,"anyValue",void 0),ii=Kr([Hr({type:nn.Choice})],ii);class oi{constructor(t={}){this.type="",this.value=new ii,Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],oi.prototype,"type",void 0),Kr([jr({type:ii})],oi.prototype,"value",void 0);let si=ti=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ti.prototype)}};si=ti=Kr([Hr({type:nn.Set,itemType:oi})],si);let ai=ei=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ei.prototype)}};ai=ei=Kr([Hr({type:nn.Sequence,itemType:si})],ai);let ci=ni=class extends ai{constructor(t){super(t),Object.setPrototypeOf(this,ni.prototype)}};ci=ni=Kr([Hr({type:nn.Sequence})],ci);const li={fromASN:t=>$r.toString(wr.fromASN(t)),toASN:t=>wr.toASN($r.fromString(t))};class ui{constructor(t={}){this.typeId="",this.value=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],ui.prototype,"typeId",void 0),Kr([jr({type:rn.Any,context:0})],ui.prototype,"value",void 0);class hi{constructor(t={}){this.partyName=new ri,Object.assign(this,t)}}Kr([jr({type:ri,optional:!0,context:0,implicit:!0})],hi.prototype,"nameAssigner",void 0),Kr([jr({type:ri,context:1,implicit:!0})],hi.prototype,"partyName",void 0);let di=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:ui,context:0,implicit:!0})],di.prototype,"otherName",void 0),Kr([jr({type:rn.IA5String,context:1,implicit:!0})],di.prototype,"rfc822Name",void 0),Kr([jr({type:rn.IA5String,context:2,implicit:!0})],di.prototype,"dNSName",void 0),Kr([jr({type:rn.Any,context:3,implicit:!0})],di.prototype,"x400Address",void 0),Kr([jr({type:ci,context:4,implicit:!1})],di.prototype,"directoryName",void 0),Kr([jr({type:hi,context:5})],di.prototype,"ediPartyName",void 0),Kr([jr({type:rn.IA5String,context:6,implicit:!0})],di.prototype,"uniformResourceIdentifier",void 0),Kr([jr({type:rn.OctetString,context:7,implicit:!0,converter:li})],di.prototype,"iPAddress",void 0),Kr([jr({type:rn.ObjectIdentifier,context:8,implicit:!0})],di.prototype,"registeredID",void 0),di=Kr([Hr({type:nn.Choice})],di);const pi="1.3.6.1.5.5.7",fi=`${pi}.3`,Ai=`${pi}.48`,gi=`${Ai}.1`,Ei=`${Ai}.2`,mi=`${Ai}.3`,yi=`${Ai}.5`,wi="2.5.29";var Ii;const Ci=`${`${pi}.1`}.1`;class Bi{constructor(t={}){this.accessMethod="",this.accessLocation=new di,Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Bi.prototype,"accessMethod",void 0),Kr([jr({type:di})],Bi.prototype,"accessLocation",void 0);let Ti=Ii=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ii.prototype)}};Ti=Ii=Kr([Hr({type:nn.Sequence,itemType:Bi})],Ti);const bi=`${wi}.35`;class Di extends dr{}class Mi{constructor(t={}){t&&Object.assign(this,t)}}Kr([jr({type:Di,context:0,optional:!0,implicit:!0})],Mi.prototype,"keyIdentifier",void 0),Kr([jr({type:di,context:1,optional:!0,implicit:!0,repeated:"sequence"})],Mi.prototype,"authorityCertIssuer",void 0),Kr([jr({type:rn.Integer,context:2,optional:!0,implicit:!0,converter:gr})],Mi.prototype,"authorityCertSerialNumber",void 0);const Ni=`${wi}.19`;class Si{constructor(t={}){this.cA=!1,Object.assign(this,t)}}var vi;Kr([jr({type:rn.Boolean,defaultValue:!1})],Si.prototype,"cA",void 0),Kr([jr({type:rn.Integer,optional:!0})],Si.prototype,"pathLenConstraint",void 0);let _i=vi=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,vi.prototype)}};var Li;_i=vi=Kr([Hr({type:nn.Sequence,itemType:di})],_i);let xi=Li=class extends _i{constructor(t){super(t),Object.setPrototypeOf(this,Li.prototype)}};var Ri;xi=Li=Kr([Hr({type:nn.Sequence})],xi);const Fi=`${wi}.32`;let Oi=class{constructor(t={}){Object.assign(this,t)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};Kr([jr({type:rn.IA5String})],Oi.prototype,"ia5String",void 0),Kr([jr({type:rn.VisibleString})],Oi.prototype,"visibleString",void 0),Kr([jr({type:rn.BmpString})],Oi.prototype,"bmpString",void 0),Kr([jr({type:rn.Utf8String})],Oi.prototype,"utf8String",void 0),Oi=Kr([Hr({type:nn.Choice})],Oi);class ki{constructor(t={}){this.organization=new Oi,this.noticeNumbers=[],Object.assign(this,t)}}Kr([jr({type:Oi})],ki.prototype,"organization",void 0),Kr([jr({type:rn.Integer,repeated:"sequence"})],ki.prototype,"noticeNumbers",void 0);class Qi{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:ki,optional:!0})],Qi.prototype,"noticeRef",void 0),Kr([jr({type:Oi,optional:!0})],Qi.prototype,"explicitText",void 0);let Ui=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:rn.IA5String})],Ui.prototype,"cPSuri",void 0),Kr([jr({type:Qi})],Ui.prototype,"userNotice",void 0),Ui=Kr([Hr({type:nn.Choice})],Ui);class Pi{constructor(t={}){this.policyQualifierId="",this.qualifier=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Pi.prototype,"policyQualifierId",void 0),Kr([jr({type:rn.Any})],Pi.prototype,"qualifier",void 0);class Gi{constructor(t={}){this.policyIdentifier="",Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Gi.prototype,"policyIdentifier",void 0),Kr([jr({type:Pi,repeated:"sequence",optional:!0})],Gi.prototype,"policyQualifiers",void 0);let Vi=Ri=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ri.prototype)}};Vi=Ri=Kr([Hr({type:nn.Sequence,itemType:Gi})],Vi);let Hi=class{constructor(t=0){this.value=t}};Kr([jr({type:rn.Integer})],Hi.prototype,"value",void 0),Hi=Kr([Hr({type:nn.Choice})],Hi);let ji=class extends Hi{};var Yi;ji=Kr([Hr({type:nn.Choice})],ji);const zi=`${wi}.31`;var Ji;!function(t){t[t.unused=1]="unused",t[t.keyCompromise=2]="keyCompromise",t[t.cACompromise=4]="cACompromise",t[t.affiliationChanged=8]="affiliationChanged",t[t.superseded=16]="superseded",t[t.cessationOfOperation=32]="cessationOfOperation",t[t.certificateHold=64]="certificateHold",t[t.privilegeWithdrawn=128]="privilegeWithdrawn",t[t.aACompromise=256]="aACompromise"}(Ji||(Ji={}));class Wi extends hr{toJSON(){const t=[],e=this.toNumber();return e&Ji.aACompromise&&t.push("aACompromise"),e&Ji.affiliationChanged&&t.push("affiliationChanged"),e&Ji.cACompromise&&t.push("cACompromise"),e&Ji.certificateHold&&t.push("certificateHold"),e&Ji.cessationOfOperation&&t.push("cessationOfOperation"),e&Ji.keyCompromise&&t.push("keyCompromise"),e&Ji.privilegeWithdrawn&&t.push("privilegeWithdrawn"),e&Ji.superseded&&t.push("superseded"),e&Ji.unused&&t.push("unused"),t}toString(){return`[${this.toJSON().join(", ")}]`}}let qi=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:di,context:0,repeated:"sequence",implicit:!0})],qi.prototype,"fullName",void 0),Kr([jr({type:si,context:1,implicit:!0})],qi.prototype,"nameRelativeToCRLIssuer",void 0),qi=Kr([Hr({type:nn.Choice})],qi);class Ki{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:qi,context:0,optional:!0})],Ki.prototype,"distributionPoint",void 0),Kr([jr({type:Wi,context:1,optional:!0,implicit:!0})],Ki.prototype,"reasons",void 0),Kr([jr({type:di,context:2,optional:!0,repeated:"sequence",implicit:!0})],Ki.prototype,"cRLIssuer",void 0);let Xi=Yi=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Yi.prototype)}};var Zi;Xi=Yi=Kr([Hr({type:nn.Sequence,itemType:Ki})],Xi);let $i=Zi=class extends Xi{constructor(t){super(t),Object.setPrototypeOf(this,Zi.prototype)}};$i=Zi=Kr([Hr({type:nn.Sequence,itemType:Ki})],$i);class to{constructor(t={}){this.onlyContainsUserCerts=to.ONLY,this.onlyContainsCACerts=to.ONLY,this.indirectCRL=to.ONLY,this.onlyContainsAttributeCerts=to.ONLY,Object.assign(this,t)}}to.ONLY=!1,Kr([jr({type:qi,context:0,optional:!0})],to.prototype,"distributionPoint",void 0),Kr([jr({type:rn.Boolean,context:1,defaultValue:to.ONLY,implicit:!0})],to.prototype,"onlyContainsUserCerts",void 0),Kr([jr({type:rn.Boolean,context:2,defaultValue:to.ONLY,implicit:!0})],to.prototype,"onlyContainsCACerts",void 0),Kr([jr({type:Wi,context:3,optional:!0,implicit:!0})],to.prototype,"onlySomeReasons",void 0),Kr([jr({type:rn.Boolean,context:4,defaultValue:to.ONLY,implicit:!0})],to.prototype,"indirectCRL",void 0),Kr([jr({type:rn.Boolean,context:5,defaultValue:to.ONLY,implicit:!0})],to.prototype,"onlyContainsAttributeCerts",void 0);var eo;!function(t){t[t.unspecified=0]="unspecified",t[t.keyCompromise=1]="keyCompromise",t[t.cACompromise=2]="cACompromise",t[t.affiliationChanged=3]="affiliationChanged",t[t.superseded=4]="superseded",t[t.cessationOfOperation=5]="cessationOfOperation",t[t.certificateHold=6]="certificateHold",t[t.removeFromCRL=8]="removeFromCRL",t[t.privilegeWithdrawn=9]="privilegeWithdrawn",t[t.aACompromise=10]="aACompromise"}(eo||(eo={}));let no=class{constructor(t=eo.unspecified){this.reason=eo.unspecified,this.reason=t}toJSON(){return eo[this.reason]}toString(){return this.toJSON()}};var ro;Kr([jr({type:rn.Enumerated})],no.prototype,"reason",void 0),no=Kr([Hr({type:nn.Choice})],no);const io=`${wi}.37`;let oo=ro=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ro.prototype)}};oo=ro=Kr([Hr({type:nn.Sequence,itemType:rn.ObjectIdentifier})],oo);const so=`${fi}.1`,ao=`${fi}.2`,co=`${fi}.3`,lo=`${fi}.4`,uo=`${fi}.8`,ho=`${fi}.9`;let po=class{constructor(t=new ArrayBuffer(0)){this.value=t}};Kr([jr({type:rn.Integer,converter:gr})],po.prototype,"value",void 0),po=Kr([Hr({type:nn.Choice})],po);let fo=class{constructor(t){this.value=new Date,t&&(this.value=t)}};var Ao;Kr([jr({type:rn.GeneralizedTime})],fo.prototype,"value",void 0),fo=Kr([Hr({type:nn.Choice})],fo);const go=`${wi}.18`;let Eo=Ao=class extends _i{constructor(t){super(t),Object.setPrototypeOf(this,Ao.prototype)}};Eo=Ao=Kr([Hr({type:nn.Sequence})],Eo);const mo=`${wi}.15`;var yo,wo;!function(t){t[t.digitalSignature=1]="digitalSignature",t[t.nonRepudiation=2]="nonRepudiation",t[t.keyEncipherment=4]="keyEncipherment",t[t.dataEncipherment=8]="dataEncipherment",t[t.keyAgreement=16]="keyAgreement",t[t.keyCertSign=32]="keyCertSign",t[t.cRLSign=64]="cRLSign",t[t.encipherOnly=128]="encipherOnly",t[t.decipherOnly=256]="decipherOnly"}(yo||(yo={}));class Io extends hr{toJSON(){const t=this.toNumber(),e=[];return t&yo.cRLSign&&e.push("crlSign"),t&yo.dataEncipherment&&e.push("dataEncipherment"),t&yo.decipherOnly&&e.push("decipherOnly"),t&yo.digitalSignature&&e.push("digitalSignature"),t&yo.encipherOnly&&e.push("encipherOnly"),t&yo.keyAgreement&&e.push("keyAgreement"),t&yo.keyCertSign&&e.push("keyCertSign"),t&yo.keyEncipherment&&e.push("keyEncipherment"),t&yo.nonRepudiation&&e.push("nonRepudiation"),e}toString(){return`[${this.toJSON().join(", ")}]`}}class Co{constructor(t={}){this.base=new di,this.minimum=0,Object.assign(this,t)}}Kr([jr({type:di})],Co.prototype,"base",void 0),Kr([jr({type:rn.Integer,context:0,defaultValue:0,implicit:!0})],Co.prototype,"minimum",void 0),Kr([jr({type:rn.Integer,context:1,optional:!0,implicit:!0})],Co.prototype,"maximum",void 0);let Bo=wo=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,wo.prototype)}};Bo=wo=Kr([Hr({type:nn.Sequence,itemType:Co})],Bo);class To{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:Bo,context:0,optional:!0,implicit:!0})],To.prototype,"permittedSubtrees",void 0),Kr([jr({type:Bo,context:1,optional:!0,implicit:!0})],To.prototype,"excludedSubtrees",void 0);class bo{constructor(t={}){Object.assign(this,t)}}var Do;Kr([jr({type:rn.Integer,context:0,implicit:!0,optional:!0,converter:gr})],bo.prototype,"requireExplicitPolicy",void 0),Kr([jr({type:rn.Integer,context:1,implicit:!0,optional:!0,converter:gr})],bo.prototype,"inhibitPolicyMapping",void 0);class Mo{constructor(t={}){this.issuerDomainPolicy="",this.subjectDomainPolicy="",Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Mo.prototype,"issuerDomainPolicy",void 0),Kr([jr({type:rn.ObjectIdentifier})],Mo.prototype,"subjectDomainPolicy",void 0);let No=Do=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Do.prototype)}};var So;No=Do=Kr([Hr({type:nn.Sequence,itemType:Mo})],No);const vo=`${wi}.17`;let _o=So=class extends _i{constructor(t){super(t),Object.setPrototypeOf(this,So.prototype)}};_o=So=Kr([Hr({type:nn.Sequence})],_o);class Lo{constructor(t={}){this.type="",this.values=[],Object.assign(this,t)}}var xo;Kr([jr({type:rn.ObjectIdentifier})],Lo.prototype,"type",void 0),Kr([jr({type:rn.Any,repeated:"set"})],Lo.prototype,"values",void 0);let Ro=xo=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,xo.prototype)}};Ro=xo=Kr([Hr({type:nn.Sequence,itemType:Lo})],Ro);const Fo=`${wi}.14`;class Oo extends Di{}class ko{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:rn.GeneralizedTime,context:0,implicit:!0,optional:!0})],ko.prototype,"notBefore",void 0),Kr([jr({type:rn.GeneralizedTime,context:1,implicit:!0,optional:!0})],ko.prototype,"notAfter",void 0);var Qo,Uo;!function(t){t[t.keyUpdateAllowed=1]="keyUpdateAllowed",t[t.newExtensions=2]="newExtensions",t[t.pKIXCertificate=4]="pKIXCertificate"}(Qo||(Qo={}));class Po extends hr{toJSON(){const t=[],e=this.toNumber();return e&Qo.pKIXCertificate&&t.push("pKIXCertificate"),e&Qo.newExtensions&&t.push("newExtensions"),e&Qo.keyUpdateAllowed&&t.push("keyUpdateAllowed"),t}toString(){return`[${this.toJSON().join(", ")}]`}}class Go{constructor(t={}){this.entrustVers="",this.entrustInfoFlags=new Po,Object.assign(this,t)}}Kr([jr({type:rn.GeneralString})],Go.prototype,"entrustVers",void 0),Kr([jr({type:Po})],Go.prototype,"entrustInfoFlags",void 0);let Vo=Uo=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Uo.prototype)}};Vo=Uo=Kr([Hr({type:nn.Sequence,itemType:Bi})],Vo);class Ho{constructor(t={}){this.algorithm="",Object.assign(this,t)}isEqual(t){return t instanceof Ho&&t.algorithm==this.algorithm&&(t.parameters&&this.parameters&&Ut.n4(t.parameters,this.parameters)||t.parameters===this.parameters)}}Kr([jr({type:rn.ObjectIdentifier})],Ho.prototype,"algorithm",void 0),Kr([jr({type:rn.Any,optional:!0})],Ho.prototype,"parameters",void 0);class jo{constructor(t={}){this.algorithm=new Ho,this.subjectPublicKey=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:Ho})],jo.prototype,"algorithm",void 0),Kr([jr({type:rn.BitString})],jo.prototype,"subjectPublicKey",void 0);let Yo=class{constructor(t){if(t)if("string"==typeof t||"number"==typeof t||t instanceof Date){const e=new Date(t);e.getUTCFullYear()>2049?this.generalTime=e:this.utcTime=e}else Object.assign(this,t)}getTime(){const t=this.utcTime||this.generalTime;if(!t)throw new Error("Cannot get time from CHOICE object");return t}};Kr([jr({type:rn.UTCTime})],Yo.prototype,"utcTime",void 0),Kr([jr({type:rn.GeneralizedTime})],Yo.prototype,"generalTime",void 0),Yo=Kr([Hr({type:nn.Choice})],Yo);class zo{constructor(t){this.notBefore=new Yo(new Date),this.notAfter=new Yo(new Date),t&&(this.notBefore=new Yo(t.notBefore),this.notAfter=new Yo(t.notAfter))}}var Jo;Kr([jr({type:Yo})],zo.prototype,"notBefore",void 0),Kr([jr({type:Yo})],zo.prototype,"notAfter",void 0);class Wo{constructor(t={}){this.extnID="",this.critical=Wo.CRITICAL,this.extnValue=new dr,Object.assign(this,t)}}Wo.CRITICAL=!1,Kr([jr({type:rn.ObjectIdentifier})],Wo.prototype,"extnID",void 0),Kr([jr({type:rn.Boolean,defaultValue:Wo.CRITICAL})],Wo.prototype,"critical",void 0),Kr([jr({type:dr})],Wo.prototype,"extnValue",void 0);let qo=Jo=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Jo.prototype)}};var Ko;qo=Jo=Kr([Hr({type:nn.Sequence,itemType:Wo})],qo),function(t){t[t.v1=0]="v1",t[t.v2=1]="v2",t[t.v3=2]="v3"}(Ko||(Ko={}));class Xo{constructor(t={}){this.version=Ko.v1,this.serialNumber=new ArrayBuffer(0),this.signature=new Ho,this.issuer=new ci,this.validity=new zo,this.subject=new ci,this.subjectPublicKeyInfo=new jo,Object.assign(this,t)}}Kr([jr({type:rn.Integer,context:0,defaultValue:Ko.v1})],Xo.prototype,"version",void 0),Kr([jr({type:rn.Integer,converter:gr})],Xo.prototype,"serialNumber",void 0),Kr([jr({type:Ho})],Xo.prototype,"signature",void 0),Kr([jr({type:ci})],Xo.prototype,"issuer",void 0),Kr([jr({type:zo})],Xo.prototype,"validity",void 0),Kr([jr({type:ci})],Xo.prototype,"subject",void 0),Kr([jr({type:jo})],Xo.prototype,"subjectPublicKeyInfo",void 0),Kr([jr({type:rn.BitString,context:1,implicit:!0,optional:!0})],Xo.prototype,"issuerUniqueID",void 0),Kr([jr({type:rn.BitString,context:2,implicit:!0,optional:!0})],Xo.prototype,"subjectUniqueID",void 0),Kr([jr({type:qo,context:3,optional:!0})],Xo.prototype,"extensions",void 0);class Zo{constructor(t={}){this.tbsCertificate=new Xo,this.signatureAlgorithm=new Ho,this.signatureValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:Xo,raw:!0})],Zo.prototype,"tbsCertificate",void 0),Kr([jr({type:Ho})],Zo.prototype,"signatureAlgorithm",void 0),Kr([jr({type:rn.BitString})],Zo.prototype,"signatureValue",void 0);class $o{constructor(t={}){this.userCertificate=new ArrayBuffer(0),this.revocationDate=new Yo,Object.assign(this,t)}}Kr([jr({type:rn.Integer,converter:gr})],$o.prototype,"userCertificate",void 0),Kr([jr({type:Yo})],$o.prototype,"revocationDate",void 0),Kr([jr({type:Wo,optional:!0,repeated:"sequence"})],$o.prototype,"crlEntryExtensions",void 0);class ts{constructor(t={}){this.signature=new Ho,this.issuer=new ci,this.thisUpdate=new Yo,Object.assign(this,t)}}Kr([jr({type:rn.Integer,optional:!0})],ts.prototype,"version",void 0),Kr([jr({type:Ho})],ts.prototype,"signature",void 0),Kr([jr({type:ci})],ts.prototype,"issuer",void 0),Kr([jr({type:Yo})],ts.prototype,"thisUpdate",void 0),Kr([jr({type:Yo,optional:!0})],ts.prototype,"nextUpdate",void 0),Kr([jr({type:$o,repeated:"sequence",optional:!0})],ts.prototype,"revokedCertificates",void 0),Kr([jr({type:Wo,optional:!0,context:0,repeated:"sequence"})],ts.prototype,"crlExtensions",void 0);class es{constructor(t={}){this.tbsCertList=new ts,this.signatureAlgorithm=new Ho,this.signature=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:ts,raw:!0})],es.prototype,"tbsCertList",void 0),Kr([jr({type:Ho})],es.prototype,"signatureAlgorithm",void 0),Kr([jr({type:rn.BitString})],es.prototype,"signature",void 0);class ns{constructor(t={}){this.issuer=new ci,this.serialNumber=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:ci})],ns.prototype,"issuer",void 0),Kr([jr({type:rn.Integer,converter:gr})],ns.prototype,"serialNumber",void 0);let rs=class{constructor(t={}){Object.assign(this,t)}};var is;Kr([jr({type:Oo,context:0,implicit:!0})],rs.prototype,"subjectKeyIdentifier",void 0),Kr([jr({type:ns})],rs.prototype,"issuerAndSerialNumber",void 0),rs=Kr([Hr({type:nn.Choice})],rs),function(t){t[t.v0=0]="v0",t[t.v1=1]="v1",t[t.v2=2]="v2",t[t.v3=3]="v3",t[t.v4=4]="v4",t[t.v5=5]="v5"}(is||(is={}));let os=class extends Ho{};os=Kr([Hr({type:nn.Sequence})],os);let ss=class extends Ho{};ss=Kr([Hr({type:nn.Sequence})],ss);let as=class extends Ho{};as=Kr([Hr({type:nn.Sequence})],as);let cs=class extends Ho{};cs=Kr([Hr({type:nn.Sequence})],cs);let ls=class extends Ho{};ls=Kr([Hr({type:nn.Sequence})],ls);let us=class extends Ho{};us=Kr([Hr({type:nn.Sequence})],us);class hs{constructor(t={}){this.attrType="",this.attrValues=[],Object.assign(this,t)}}var ds;Kr([jr({type:rn.ObjectIdentifier})],hs.prototype,"attrType",void 0),Kr([jr({type:rn.Any,repeated:"set"})],hs.prototype,"attrValues",void 0);class ps{constructor(t={}){this.version=is.v0,this.sid=new rs,this.digestAlgorithm=new os,this.signatureAlgorithm=new ss,this.signature=new dr,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],ps.prototype,"version",void 0),Kr([jr({type:rs})],ps.prototype,"sid",void 0),Kr([jr({type:os})],ps.prototype,"digestAlgorithm",void 0),Kr([jr({type:hs,repeated:"set",context:0,implicit:!0,optional:!0,raw:!0})],ps.prototype,"signedAttrs",void 0),Kr([jr({type:ss})],ps.prototype,"signatureAlgorithm",void 0),Kr([jr({type:dr})],ps.prototype,"signature",void 0),Kr([jr({type:hs,repeated:"set",context:1,implicit:!0,optional:!0})],ps.prototype,"unsignedAttrs",void 0);let fs=ds=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ds.prototype)}};fs=ds=Kr([Hr({type:nn.Set,itemType:ps})],fs);let As=class extends ps{};As=Kr([Hr({type:nn.Sequence})],As);let gs=class extends Yo{};gs=Kr([Hr({type:nn.Choice})],gs);class Es{constructor(t={}){this.acIssuer=new di,this.acSerial=0,this.attrs=[],Object.assign(this,t)}}var ms;Kr([jr({type:di})],Es.prototype,"acIssuer",void 0),Kr([jr({type:rn.Integer})],Es.prototype,"acSerial",void 0),Kr([jr({type:Lo,repeated:"sequence"})],Es.prototype,"attrs",void 0);let ys=ms=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ms.prototype)}};ys=ms=Kr([Hr({type:nn.Sequence,itemType:rn.ObjectIdentifier})],ys);class ws{constructor(t={}){this.permitUnSpecified=!0,Object.assign(this,t)}}Kr([jr({type:rn.Integer,optional:!0})],ws.prototype,"pathLenConstraint",void 0),Kr([jr({type:ys,implicit:!0,context:0,optional:!0})],ws.prototype,"permittedAttrs",void 0),Kr([jr({type:ys,implicit:!0,context:1,optional:!0})],ws.prototype,"excludedAttrs",void 0),Kr([jr({type:rn.Boolean,defaultValue:!0})],ws.prototype,"permitUnSpecified",void 0);class Is{constructor(t={}){this.issuer=new _i,this.serial=new ArrayBuffer(0),this.issuerUID=new ArrayBuffer(0),Object.assign(this,t)}}var Cs;Kr([jr({type:_i})],Is.prototype,"issuer",void 0),Kr([jr({type:rn.Integer,converter:gr})],Is.prototype,"serial",void 0),Kr([jr({type:rn.BitString,optional:!0})],Is.prototype,"issuerUID",void 0),function(t){t[t.publicKey=0]="publicKey",t[t.publicKeyCert=1]="publicKeyCert",t[t.otherObjectTypes=2]="otherObjectTypes"}(Cs||(Cs={}));class Bs{constructor(t={}){this.digestedObjectType=Cs.publicKey,this.digestAlgorithm=new Ho,this.objectDigest=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.Enumerated})],Bs.prototype,"digestedObjectType",void 0),Kr([jr({type:rn.ObjectIdentifier,optional:!0})],Bs.prototype,"otherObjectTypeID",void 0),Kr([jr({type:Ho})],Bs.prototype,"digestAlgorithm",void 0),Kr([jr({type:rn.BitString})],Bs.prototype,"objectDigest",void 0);class Ts{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:_i,optional:!0})],Ts.prototype,"issuerName",void 0),Kr([jr({type:Is,context:0,implicit:!0,optional:!0})],Ts.prototype,"baseCertificateID",void 0),Kr([jr({type:Bs,context:1,implicit:!0,optional:!0})],Ts.prototype,"objectDigestInfo",void 0);let bs=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:di,repeated:"sequence"})],bs.prototype,"v1Form",void 0),Kr([jr({type:Ts,context:0,implicit:!0})],bs.prototype,"v2Form",void 0),bs=Kr([Hr({type:nn.Choice})],bs);class Ds{constructor(t={}){this.notBeforeTime=new Date,this.notAfterTime=new Date,Object.assign(this,t)}}Kr([jr({type:rn.GeneralizedTime})],Ds.prototype,"notBeforeTime",void 0),Kr([jr({type:rn.GeneralizedTime})],Ds.prototype,"notAfterTime",void 0);class Ms{constructor(t={}){Object.assign(this,t)}}var Ns,Ss;Kr([jr({type:Is,implicit:!0,context:0,optional:!0})],Ms.prototype,"baseCertificateID",void 0),Kr([jr({type:_i,implicit:!0,context:1,optional:!0})],Ms.prototype,"entityName",void 0),Kr([jr({type:Bs,implicit:!0,context:2,optional:!0})],Ms.prototype,"objectDigestInfo",void 0),function(t){t[t.v2=1]="v2"}(Ns||(Ns={}));class vs{constructor(t={}){this.version=Ns.v2,this.holder=new Ms,this.issuer=new bs,this.signature=new Ho,this.serialNumber=new ArrayBuffer(0),this.attrCertValidityPeriod=new Ds,this.attributes=[],Object.assign(this,t)}}Kr([jr({type:rn.Integer})],vs.prototype,"version",void 0),Kr([jr({type:Ms})],vs.prototype,"holder",void 0),Kr([jr({type:bs})],vs.prototype,"issuer",void 0),Kr([jr({type:Ho})],vs.prototype,"signature",void 0),Kr([jr({type:rn.Integer,converter:gr})],vs.prototype,"serialNumber",void 0),Kr([jr({type:Ds})],vs.prototype,"attrCertValidityPeriod",void 0),Kr([jr({type:Lo,repeated:"sequence"})],vs.prototype,"attributes",void 0),Kr([jr({type:rn.BitString,optional:!0})],vs.prototype,"issuerUniqueID",void 0),Kr([jr({type:qo,optional:!0})],vs.prototype,"extensions",void 0);class _s{constructor(t={}){this.acinfo=new vs,this.signatureAlgorithm=new Ho,this.signatureValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:vs})],_s.prototype,"acinfo",void 0),Kr([jr({type:Ho})],_s.prototype,"signatureAlgorithm",void 0),Kr([jr({type:rn.BitString})],_s.prototype,"signatureValue",void 0),function(t){t[t.unmarked=1]="unmarked",t[t.unclassified=2]="unclassified",t[t.restricted=4]="restricted",t[t.confidential=8]="confidential",t[t.secret=16]="secret",t[t.topSecret=32]="topSecret"}(Ss||(Ss={}));class Ls extends hr{}class xs{constructor(t={}){this.type="",this.value=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier,implicit:!0,context:0})],xs.prototype,"type",void 0),Kr([jr({type:rn.Any,implicit:!0,context:1})],xs.prototype,"value",void 0);class Rs{constructor(t={}){this.policyId="",this.classList=new Ls(Ss.unclassified),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Rs.prototype,"policyId",void 0),Kr([jr({type:Ls,defaultValue:new Ls(Ss.unclassified)})],Rs.prototype,"classList",void 0),Kr([jr({type:xs,repeated:"set"})],Rs.prototype,"securityCategories",void 0);class Fs{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:dr})],Fs.prototype,"cotets",void 0),Kr([jr({type:rn.ObjectIdentifier})],Fs.prototype,"oid",void 0),Kr([jr({type:rn.Utf8String})],Fs.prototype,"string",void 0);class Os{constructor(t={}){this.values=[],Object.assign(this,t)}}Kr([jr({type:_i,implicit:!0,context:0,optional:!0})],Os.prototype,"policyAuthority",void 0),Kr([jr({type:Fs,repeated:"sequence"})],Os.prototype,"values",void 0);var ks;class Qs{constructor(t={}){this.targetCertificate=new Is,Object.assign(this,t)}}Kr([jr({type:Is})],Qs.prototype,"targetCertificate",void 0),Kr([jr({type:di,optional:!0})],Qs.prototype,"targetName",void 0),Kr([jr({type:Bs,optional:!0})],Qs.prototype,"certDigestInfo",void 0);let Us=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:di,context:0,implicit:!0})],Us.prototype,"targetName",void 0),Kr([jr({type:di,context:1,implicit:!0})],Us.prototype,"targetGroup",void 0),Kr([jr({type:Qs,context:2,implicit:!0})],Us.prototype,"targetCert",void 0),Us=Kr([Hr({type:nn.Choice})],Us);let Ps=ks=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ks.prototype)}};var Gs;Ps=ks=Kr([Hr({type:nn.Sequence,itemType:Us})],Ps);let Vs=Gs=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Gs.prototype)}};Vs=Gs=Kr([Hr({type:nn.Sequence,itemType:Ps})],Vs);class Hs{constructor(t={}){Object.assign(this,t)}}Kr([jr({type:_i,implicit:!0,context:0,optional:!0})],Hs.prototype,"roleAuthority",void 0),Kr([jr({type:di,implicit:!0,context:1})],Hs.prototype,"roleName",void 0);class js{constructor(t={}){this.service=new di,this.ident=new di,Object.assign(this,t)}}var Ys;Kr([jr({type:di})],js.prototype,"service",void 0),Kr([jr({type:di})],js.prototype,"ident",void 0),Kr([jr({type:dr,optional:!0})],js.prototype,"authInfo",void 0);class zs{constructor(t={}){this.otherCertFormat="",this.otherCert=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],zs.prototype,"otherCertFormat",void 0),Kr([jr({type:rn.Any})],zs.prototype,"otherCert",void 0);let Js=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:Zo})],Js.prototype,"certificate",void 0),Kr([jr({type:_s,context:2,implicit:!0})],Js.prototype,"v2AttrCert",void 0),Kr([jr({type:zs,context:3,implicit:!0})],Js.prototype,"other",void 0),Js=Kr([Hr({type:nn.Choice})],Js);let Ws=Ys=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ys.prototype)}};Ws=Ys=Kr([Hr({type:nn.Set,itemType:Js})],Ws);class qs{constructor(t={}){this.contentType="",this.content=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],qs.prototype,"contentType",void 0),Kr([jr({type:rn.Any,context:0})],qs.prototype,"content",void 0);let Ks=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:dr})],Ks.prototype,"single",void 0),Kr([jr({type:rn.Any})],Ks.prototype,"any",void 0),Ks=Kr([Hr({type:nn.Choice})],Ks);class Xs{constructor(t={}){this.eContentType="",Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Xs.prototype,"eContentType",void 0),Kr([jr({type:Ks,context:0,optional:!0})],Xs.prototype,"eContent",void 0);let Zs=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:dr,context:0,implicit:!0,optional:!0})],Zs.prototype,"value",void 0),Kr([jr({type:dr,converter:Ir,context:0,implicit:!0,optional:!0,repeated:"sequence"})],Zs.prototype,"constructedValue",void 0),Zs=Kr([Hr({type:nn.Choice})],Zs);class $s{constructor(t={}){this.contentType="",this.contentEncryptionAlgorithm=new cs,Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],$s.prototype,"contentType",void 0),Kr([jr({type:cs})],$s.prototype,"contentEncryptionAlgorithm",void 0),Kr([jr({type:Zs,optional:!0})],$s.prototype,"encryptedContent",void 0);class ta{constructor(t={}){this.keyAttrId="",Object.assign(this,t)}}var ea;Kr([jr({type:rn.ObjectIdentifier})],ta.prototype,"keyAttrId",void 0),Kr([jr({type:rn.Any,optional:!0})],ta.prototype,"keyAttr",void 0);class na{constructor(t={}){this.subjectKeyIdentifier=new Oo,Object.assign(this,t)}}Kr([jr({type:Oo})],na.prototype,"subjectKeyIdentifier",void 0),Kr([jr({type:rn.GeneralizedTime,optional:!0})],na.prototype,"date",void 0),Kr([jr({type:ta,optional:!0})],na.prototype,"other",void 0);let ra=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:na,context:0,implicit:!0,optional:!0})],ra.prototype,"rKeyId",void 0),Kr([jr({type:ns,optional:!0})],ra.prototype,"issuerAndSerialNumber",void 0),ra=Kr([Hr({type:nn.Choice})],ra);class ia{constructor(t={}){this.rid=new ra,this.encryptedKey=new dr,Object.assign(this,t)}}Kr([jr({type:ra})],ia.prototype,"rid",void 0),Kr([jr({type:dr})],ia.prototype,"encryptedKey",void 0);let oa=ea=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ea.prototype)}};oa=ea=Kr([Hr({type:nn.Sequence,itemType:ia})],oa);class sa{constructor(t={}){this.algorithm=new Ho,this.publicKey=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:Ho})],sa.prototype,"algorithm",void 0),Kr([jr({type:rn.BitString})],sa.prototype,"publicKey",void 0);let aa=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:Oo,context:0,implicit:!0,optional:!0})],aa.prototype,"subjectKeyIdentifier",void 0),Kr([jr({type:sa,context:1,implicit:!0,optional:!0})],aa.prototype,"originatorKey",void 0),Kr([jr({type:ns,optional:!0})],aa.prototype,"issuerAndSerialNumber",void 0),aa=Kr([Hr({type:nn.Choice})],aa);class ca{constructor(t={}){this.version=is.v3,this.originator=new aa,this.keyEncryptionAlgorithm=new as,this.recipientEncryptedKeys=new oa,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],ca.prototype,"version",void 0),Kr([jr({type:aa,context:0})],ca.prototype,"originator",void 0),Kr([jr({type:dr,context:1,optional:!0})],ca.prototype,"ukm",void 0),Kr([jr({type:as})],ca.prototype,"keyEncryptionAlgorithm",void 0),Kr([jr({type:oa})],ca.prototype,"recipientEncryptedKeys",void 0);let la=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:Oo,context:0,implicit:!0})],la.prototype,"subjectKeyIdentifier",void 0),Kr([jr({type:ns})],la.prototype,"issuerAndSerialNumber",void 0),la=Kr([Hr({type:nn.Choice})],la);class ua{constructor(t={}){this.version=is.v0,this.rid=new la,this.keyEncryptionAlgorithm=new as,this.encryptedKey=new dr,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],ua.prototype,"version",void 0),Kr([jr({type:la})],ua.prototype,"rid",void 0),Kr([jr({type:as})],ua.prototype,"keyEncryptionAlgorithm",void 0),Kr([jr({type:dr})],ua.prototype,"encryptedKey",void 0);class ha{constructor(t={}){this.keyIdentifier=new dr,Object.assign(this,t)}}Kr([jr({type:dr})],ha.prototype,"keyIdentifier",void 0),Kr([jr({type:rn.GeneralizedTime,optional:!0})],ha.prototype,"date",void 0),Kr([jr({type:ta,optional:!0})],ha.prototype,"other",void 0);class da{constructor(t={}){this.version=is.v4,this.kekid=new ha,this.keyEncryptionAlgorithm=new as,this.encryptedKey=new dr,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],da.prototype,"version",void 0),Kr([jr({type:ha})],da.prototype,"kekid",void 0),Kr([jr({type:as})],da.prototype,"keyEncryptionAlgorithm",void 0),Kr([jr({type:dr})],da.prototype,"encryptedKey",void 0);class pa{constructor(t={}){this.version=is.v0,this.keyEncryptionAlgorithm=new as,this.encryptedKey=new dr,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],pa.prototype,"version",void 0),Kr([jr({type:us,context:0,optional:!0})],pa.prototype,"keyDerivationAlgorithm",void 0),Kr([jr({type:as})],pa.prototype,"keyEncryptionAlgorithm",void 0),Kr([jr({type:dr})],pa.prototype,"encryptedKey",void 0);class fa{constructor(t={}){this.oriType="",this.oriValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],fa.prototype,"oriType",void 0),Kr([jr({type:rn.Any})],fa.prototype,"oriValue",void 0);let Aa=class{constructor(t={}){Object.assign(this,t)}};var ga;Kr([jr({type:ua,optional:!0})],Aa.prototype,"ktri",void 0),Kr([jr({type:ca,context:1,implicit:!0,optional:!0})],Aa.prototype,"kari",void 0),Kr([jr({type:da,context:2,implicit:!0,optional:!0})],Aa.prototype,"kekri",void 0),Kr([jr({type:pa,context:3,implicit:!0,optional:!0})],Aa.prototype,"pwri",void 0),Kr([jr({type:fa,context:4,implicit:!0,optional:!0})],Aa.prototype,"ori",void 0),Aa=Kr([Hr({type:nn.Choice})],Aa);let Ea=ga=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ga.prototype)}};var ma;Ea=ga=Kr([Hr({type:nn.Set,itemType:Aa})],Ea);class ya{constructor(t={}){this.otherRevInfoFormat="",this.otherRevInfo=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],ya.prototype,"otherRevInfoFormat",void 0),Kr([jr({type:rn.Any})],ya.prototype,"otherRevInfo",void 0);let wa=class{constructor(t={}){this.other=new ya,Object.assign(this,t)}};Kr([jr({type:ya,context:1,implicit:!0})],wa.prototype,"other",void 0),wa=Kr([Hr({type:nn.Choice})],wa);let Ia=ma=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,ma.prototype)}};Ia=ma=Kr([Hr({type:nn.Set,itemType:wa})],Ia);class Ca{constructor(t={}){Object.assign(this,t)}}var Ba;Kr([jr({type:Ws,context:0,implicit:!0,optional:!0})],Ca.prototype,"certs",void 0),Kr([jr({type:Ia,context:1,implicit:!0,optional:!0})],Ca.prototype,"crls",void 0);let Ta=Ba=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ba.prototype)}};Ta=Ba=Kr([Hr({type:nn.Set,itemType:hs})],Ta);class ba{constructor(t={}){this.version=is.v0,this.recipientInfos=new Ea,this.encryptedContentInfo=new $s,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],ba.prototype,"version",void 0),Kr([jr({type:Ca,context:0,implicit:!0,optional:!0})],ba.prototype,"originatorInfo",void 0),Kr([jr({type:Ea})],ba.prototype,"recipientInfos",void 0),Kr([jr({type:$s})],ba.prototype,"encryptedContentInfo",void 0),Kr([jr({type:Ta,context:1,implicit:!0,optional:!0})],ba.prototype,"unprotectedAttrs",void 0);const Da="1.2.840.113549.1.7.2";var Ma;let Na=Ma=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ma.prototype)}};Na=Ma=Kr([Hr({type:nn.Set,itemType:os})],Na);class Sa{constructor(t={}){this.version=is.v0,this.digestAlgorithms=new Na,this.encapContentInfo=new Xs,this.signerInfos=new fs,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],Sa.prototype,"version",void 0),Kr([jr({type:Na})],Sa.prototype,"digestAlgorithms",void 0),Kr([jr({type:Xs})],Sa.prototype,"encapContentInfo",void 0),Kr([jr({type:Ws,context:0,implicit:!0,optional:!0})],Sa.prototype,"certificates",void 0),Kr([jr({type:Ia,context:1,implicit:!0,optional:!0})],Sa.prototype,"crls",void 0),Kr([jr({type:fs})],Sa.prototype,"signerInfos",void 0);const va="1.2.840.10045.2.1",_a="1.2.840.10045.4.1",La="1.2.840.10045.4.3.1",xa="1.2.840.10045.4.3.2",Ra="1.2.840.10045.4.3.3",Fa="1.2.840.10045.4.3.4",Oa="1.2.840.10045.3.1.7",ka="1.3.132.0.34",Qa="1.3.132.0.35";function Ua(t){return new Ho({algorithm:t})}const Pa=Ua(_a),Ga=(Ua(La),Ua(xa)),Va=Ua(Ra),Ha=Ua(Fa);let ja=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:rn.ObjectIdentifier})],ja.prototype,"fieldType",void 0),Kr([jr({type:rn.Any})],ja.prototype,"parameters",void 0),ja=Kr([Hr({type:nn.Sequence})],ja);let Ya=class{constructor(t={}){Object.assign(this,t)}};var za;Kr([jr({type:rn.OctetString})],Ya.prototype,"a",void 0),Kr([jr({type:rn.OctetString})],Ya.prototype,"b",void 0),Kr([jr({type:rn.BitString,optional:!0})],Ya.prototype,"seed",void 0),Ya=Kr([Hr({type:nn.Sequence})],Ya),function(t){t[t.ecpVer1=1]="ecpVer1"}(za||(za={}));let Ja=class{constructor(t={}){this.version=za.ecpVer1,Object.assign(this,t)}};Kr([jr({type:rn.Integer})],Ja.prototype,"version",void 0),Kr([jr({type:ja})],Ja.prototype,"fieldID",void 0),Kr([jr({type:Ya})],Ja.prototype,"curve",void 0),Kr([jr({type:class extends dr{}})],Ja.prototype,"base",void 0),Kr([jr({type:rn.Integer,converter:gr})],Ja.prototype,"order",void 0),Kr([jr({type:rn.Integer,optional:!0})],Ja.prototype,"cofactor",void 0),Ja=Kr([Hr({type:nn.Sequence})],Ja);let Wa=class{constructor(t={}){Object.assign(this,t)}};Kr([jr({type:rn.ObjectIdentifier})],Wa.prototype,"namedCurve",void 0),Kr([jr({type:rn.Null})],Wa.prototype,"implicitCurve",void 0),Kr([jr({type:Ja})],Wa.prototype,"specifiedCurve",void 0),Wa=Kr([Hr({type:nn.Choice})],Wa);class qa{constructor(t={}){this.version=1,this.privateKey=new dr,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],qa.prototype,"version",void 0),Kr([jr({type:dr})],qa.prototype,"privateKey",void 0),Kr([jr({type:Wa,context:0,optional:!0})],qa.prototype,"parameters",void 0),Kr([jr({type:rn.BitString,context:1,optional:!0})],qa.prototype,"publicKey",void 0);class Ka{constructor(t={}){this.r=new ArrayBuffer(0),this.s=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.Integer,converter:gr})],Ka.prototype,"r",void 0),Kr([jr({type:rn.Integer,converter:gr})],Ka.prototype,"s",void 0);const Xa="1.2.840.113549.1.1",Za=`${Xa}.1`,$a=`${Xa}.7`,tc=`${Xa}.9`,ec=`${Xa}.10`,nc=`${Xa}.2`,rc=`${Xa}.4`,ic=`${Xa}.5`,oc=`${Xa}.14`,sc=`${Xa}.11`,ac=`${Xa}.12`,cc=`${Xa}.13`,lc=`${Xa}.15`,uc=`${Xa}.16`,hc="1.3.14.3.2.26",dc="2.16.840.1.101.3.4.2.4",pc="2.16.840.1.101.3.4.2.1",fc="2.16.840.1.101.3.4.2.2",Ac="2.16.840.1.101.3.4.2.3",gc=`${Xa}.8`;function Ec(t){return new Ho({algorithm:t,parameters:null})}Ec("1.2.840.113549.2.2"),Ec("1.2.840.113549.2.5");const mc=Ec(hc),yc=(Ec(dc),Ec(pc),Ec(fc),Ec(Ac),Ec("2.16.840.1.101.3.4.2.5"),Ec("2.16.840.1.101.3.4.2.6"),new Ho({algorithm:gc,parameters:qr.serialize(mc)})),wc=new Ho({algorithm:tc,parameters:qr.serialize(wr.toASN(new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer))});Ec(Za),Ec(nc),Ec(rc),Ec(ic),Ec(lc),Ec(uc),Ec(ac),Ec(cc),Ec(lc),Ec(uc);class Ic{constructor(t={}){this.hashAlgorithm=new Ho(mc),this.maskGenAlgorithm=new Ho({algorithm:gc,parameters:qr.serialize(mc)}),this.pSourceAlgorithm=new Ho(wc),Object.assign(this,t)}}Kr([jr({type:Ho,context:0,defaultValue:mc})],Ic.prototype,"hashAlgorithm",void 0),Kr([jr({type:Ho,context:1,defaultValue:yc})],Ic.prototype,"maskGenAlgorithm",void 0),Kr([jr({type:Ho,context:2,defaultValue:wc})],Ic.prototype,"pSourceAlgorithm",void 0);new Ho({algorithm:$a,parameters:qr.serialize(new Ic)});class Cc{constructor(t={}){this.hashAlgorithm=new Ho(mc),this.maskGenAlgorithm=new Ho({algorithm:gc,parameters:qr.serialize(mc)}),this.saltLength=20,this.trailerField=1,Object.assign(this,t)}}Kr([jr({type:Ho,context:0,defaultValue:mc})],Cc.prototype,"hashAlgorithm",void 0),Kr([jr({type:Ho,context:1,defaultValue:yc})],Cc.prototype,"maskGenAlgorithm",void 0),Kr([jr({type:rn.Integer,context:2,defaultValue:20})],Cc.prototype,"saltLength",void 0),Kr([jr({type:rn.Integer,context:3,defaultValue:1})],Cc.prototype,"trailerField",void 0);new Ho({algorithm:ec,parameters:qr.serialize(new Cc)});class Bc{constructor(t={}){this.digestAlgorithm=new Ho,this.digest=new dr,Object.assign(this,t)}}var Tc;Kr([jr({type:Ho})],Bc.prototype,"digestAlgorithm",void 0),Kr([jr({type:dr})],Bc.prototype,"digest",void 0);class bc{constructor(t={}){this.prime=new ArrayBuffer(0),this.exponent=new ArrayBuffer(0),this.coefficient=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.Integer,converter:gr})],bc.prototype,"prime",void 0),Kr([jr({type:rn.Integer,converter:gr})],bc.prototype,"exponent",void 0),Kr([jr({type:rn.Integer,converter:gr})],bc.prototype,"coefficient",void 0);let Dc=Tc=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Tc.prototype)}};Dc=Tc=Kr([Hr({type:nn.Sequence,itemType:bc})],Dc);class Mc{constructor(t={}){this.version=0,this.modulus=new ArrayBuffer(0),this.publicExponent=new ArrayBuffer(0),this.privateExponent=new ArrayBuffer(0),this.prime1=new ArrayBuffer(0),this.prime2=new ArrayBuffer(0),this.exponent1=new ArrayBuffer(0),this.exponent2=new ArrayBuffer(0),this.coefficient=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.Integer})],Mc.prototype,"version",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"modulus",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"publicExponent",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"privateExponent",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"prime1",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"prime2",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"exponent1",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"exponent2",void 0),Kr([jr({type:rn.Integer,converter:gr})],Mc.prototype,"coefficient",void 0),Kr([jr({type:Dc,optional:!0})],Mc.prototype,"otherPrimeInfos",void 0);class Nc{constructor(t={}){this.modulus=new ArrayBuffer(0),this.publicExponent=new ArrayBuffer(0),Object.assign(this,t)}}var Sc;Kr([jr({type:rn.Integer,converter:gr})],Nc.prototype,"modulus",void 0),Kr([jr({type:rn.Integer,converter:gr})],Nc.prototype,"publicExponent",void 0),function(t){t[t.Transient=0]="Transient",t[t.Singleton=1]="Singleton",t[t.ResolutionScoped=2]="ResolutionScoped",t[t.ContainerScoped=3]="ContainerScoped"}(Sc||(Sc={}));const vc=Sc;
|
|
69
|
+
/*! *****************************************************************************
|
|
70
|
+
Copyright (c) Microsoft Corporation.
|
|
71
|
+
|
|
72
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
73
|
+
purpose with or without fee is hereby granted.
|
|
74
|
+
|
|
75
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
76
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
77
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
78
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
79
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
80
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
81
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
82
|
+
***************************************************************************** */
|
|
83
|
+
var _c=function(t,e){return _c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},_c(t,e)};function Lc(t,e){function n(){this.constructor=t}_c(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function xc(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})}function Rc(t,e){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=e.call(t,s)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function Fc(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Oc(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function kc(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(Oc(arguments[e]));return t}function Qc(t){return!!t.useClass}function Uc(t){return!!t.useFactory}var Pc=function(){function t(t){this.wrap=t,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return t.prototype.createProxy=function(t){var e,n=this,r=!1;return new Proxy({},this.createHandler(function(){return r||(e=t(n.wrap()),r=!0),e}))},t.prototype.createHandler=function(t){var e={};return this.reflectMethods.forEach(function(n){e[n]=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return e[0]=t(),Reflect[n].apply(void 0,kc(e))}}),e},t}();function Gc(t){return"string"==typeof t||"symbol"==typeof t}function Vc(t){return"object"==typeof t&&"token"in t&&"transform"in t}function Hc(t){return!!t.useToken}function jc(t){return null!=t.useValue}var Yc=function(){function t(){this._registryMap=new Map}return t.prototype.entries=function(){return this._registryMap.entries()},t.prototype.getAll=function(t){return this.ensure(t),this._registryMap.get(t)},t.prototype.get=function(t){this.ensure(t);var e=this._registryMap.get(t);return e[e.length-1]||null},t.prototype.set=function(t,e){this.ensure(t),this._registryMap.get(t).push(e)},t.prototype.setAll=function(t,e){this._registryMap.set(t,e)},t.prototype.has=function(t){return this.ensure(t),this._registryMap.get(t).length>0},t.prototype.clear=function(){this._registryMap.clear()},t.prototype.ensure=function(t){this._registryMap.has(t)||this._registryMap.set(t,[])},t}();const zc=Yc;const Jc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Lc(e,t),e}(zc);const Wc=function(){this.scopedResolutions=new Map};function qc(t,e,n){var r=Oc(t.toString().match(/constructor\(([\w, ]+)\)/)||[],2)[1],i=function(t,e){return null===t?"at position #"+e:'"'+t.split(",")[e].trim()+'" at position #'+e}(void 0===r?null:r,e);return function(t,e,n){return void 0===n&&(n=" "),kc([t],e.message.split("\n").map(function(t){return n+t})).join("\n")}("Cannot inject the dependency "+i+' of "'+t.name+'" constructor. Reason:',n)}var Kc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Lc(e,t),e}(zc),Xc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Lc(e,t),e}(zc);const Zc=function(){this.preResolution=new Kc,this.postResolution=new Xc};var $c=new Map,tl=function(){function t(t){this.parent=t,this._registry=new Jc,this.interceptors=new Zc,this.disposed=!1,this.disposables=new Set}return t.prototype.register=function(t,e,n){var r;if(void 0===n&&(n={lifecycle:vc.Transient}),this.ensureNotDisposed(),r=function(t){return Qc(t)||jc(t)||Hc(t)||Uc(t)}(e)?e:{useClass:e},Hc(r))for(var i=[t],o=r;null!=o;){var s=o.useToken;if(i.includes(s))throw new Error("Token registration cycle detected! "+kc(i,[s]).join(" -> "));i.push(s);var a=this._registry.get(s);o=a&&Hc(a.provider)?a.provider:null}if((n.lifecycle===vc.Singleton||n.lifecycle==vc.ContainerScoped||n.lifecycle==vc.ResolutionScoped)&&(jc(r)||Uc(r)))throw new Error('Cannot use lifecycle "'+vc[n.lifecycle]+'" with ValueProviders or FactoryProviders');return this._registry.set(t,{provider:r,options:n}),this},t.prototype.registerType=function(t,e){return this.ensureNotDisposed(),Gc(e)?this.register(t,{useToken:e}):this.register(t,{useClass:e})},t.prototype.registerInstance=function(t,e){return this.ensureNotDisposed(),this.register(t,{useValue:e})},t.prototype.registerSingleton=function(t,e){if(this.ensureNotDisposed(),Gc(t)){if(Gc(e))return this.register(t,{useToken:e},{lifecycle:vc.Singleton});if(e)return this.register(t,{useClass:e},{lifecycle:vc.Singleton});throw new Error('Cannot register a type name as a singleton without a "to" token')}var n=t;return e&&!Gc(e)&&(n=e),this.register(t,{useClass:n},{lifecycle:vc.Singleton})},t.prototype.resolve=function(t,e,n){void 0===e&&(e=new Wc),void 0===n&&(n=!1),this.ensureNotDisposed();var r=this.getRegistration(t);if(!r&&Gc(t)){if(n)return;throw new Error('Attempted to resolve unregistered dependency token: "'+t.toString()+'"')}if(this.executePreResolutionInterceptor(t,"Single"),r){var i=this.resolveRegistration(r,e);return this.executePostResolutionInterceptor(t,i,"Single"),i}if(function(t){return"function"==typeof t||t instanceof Pc}(t)){i=this.construct(t,e);return this.executePostResolutionInterceptor(t,i,"Single"),i}throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},t.prototype.executePreResolutionInterceptor=function(t,e){var n,r;if(this.interceptors.preResolution.has(t)){var i=[];try{for(var o=Fc(this.interceptors.preResolution.getAll(t)),s=o.next();!s.done;s=o.next()){var a=s.value;"Once"!=a.options.frequency&&i.push(a),a.callback(t,e)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}this.interceptors.preResolution.setAll(t,i)}},t.prototype.executePostResolutionInterceptor=function(t,e,n){var r,i;if(this.interceptors.postResolution.has(t)){var o=[];try{for(var s=Fc(this.interceptors.postResolution.getAll(t)),a=s.next();!a.done;a=s.next()){var c=a.value;"Once"!=c.options.frequency&&o.push(c),c.callback(t,e,n)}}catch(t){r={error:t}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}this.interceptors.postResolution.setAll(t,o)}},t.prototype.resolveRegistration=function(t,e){if(this.ensureNotDisposed(),t.options.lifecycle===vc.ResolutionScoped&&e.scopedResolutions.has(t))return e.scopedResolutions.get(t);var n,r=t.options.lifecycle===vc.Singleton,i=t.options.lifecycle===vc.ContainerScoped,o=r||i;return n=jc(t.provider)?t.provider.useValue:Hc(t.provider)?o?t.instance||(t.instance=this.resolve(t.provider.useToken,e)):this.resolve(t.provider.useToken,e):Qc(t.provider)?o?t.instance||(t.instance=this.construct(t.provider.useClass,e)):this.construct(t.provider.useClass,e):Uc(t.provider)?t.provider.useFactory(this):this.construct(t.provider,e),t.options.lifecycle===vc.ResolutionScoped&&e.scopedResolutions.set(t,n),n},t.prototype.resolveAll=function(t,e,n){var r=this;void 0===e&&(e=new Wc),void 0===n&&(n=!1),this.ensureNotDisposed();var i=this.getAllRegistrations(t);if(!i&&Gc(t)){if(n)return[];throw new Error('Attempted to resolve unregistered dependency token: "'+t.toString()+'"')}if(this.executePreResolutionInterceptor(t,"All"),i){var o=i.map(function(t){return r.resolveRegistration(t,e)});return this.executePostResolutionInterceptor(t,o,"All"),o}var s=[this.construct(t,e)];return this.executePostResolutionInterceptor(t,s,"All"),s},t.prototype.isRegistered=function(t,e){return void 0===e&&(e=!1),this.ensureNotDisposed(),this._registry.has(t)||e&&(this.parent||!1)&&this.parent.isRegistered(t,!0)},t.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},t.prototype.clearInstances=function(){var t,e;this.ensureNotDisposed();try{for(var n=Fc(this._registry.entries()),r=n.next();!r.done;r=n.next()){var i=Oc(r.value,2),o=i[0],s=i[1];this._registry.setAll(o,s.filter(function(t){return!jc(t.provider)}).map(function(t){return t.instance=void 0,t}))}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t.prototype.createChildContainer=function(){var e,n;this.ensureNotDisposed();var r=new t(this);try{for(var i=Fc(this._registry.entries()),o=i.next();!o.done;o=i.next()){var s=Oc(o.value,2),a=s[0],c=s[1];c.some(function(t){return t.options.lifecycle===vc.ContainerScoped})&&r._registry.setAll(a,c.map(function(t){return t.options.lifecycle===vc.ContainerScoped?{provider:t.provider,options:t.options}:t}))}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return r},t.prototype.beforeResolution=function(t,e,n){void 0===n&&(n={frequency:"Always"}),this.interceptors.preResolution.set(t,{callback:e,options:n})},t.prototype.afterResolution=function(t,e,n){void 0===n&&(n={frequency:"Always"}),this.interceptors.postResolution.set(t,{callback:e,options:n})},t.prototype.dispose=function(){return xc(this,void 0,void 0,function(){var t;return Rc(this,function(e){switch(e.label){case 0:return this.disposed=!0,t=[],this.disposables.forEach(function(e){var n=e.dispose();n&&t.push(n)}),[4,Promise.all(t)];case 1:return e.sent(),[2]}})})},t.prototype.getRegistration=function(t){return this.isRegistered(t)?this._registry.get(t):this.parent?this.parent.getRegistration(t):null},t.prototype.getAllRegistrations=function(t){return this.isRegistered(t)?this._registry.getAll(t):this.parent?this.parent.getAllRegistrations(t):null},t.prototype.construct=function(t,e){var n=this;if(t instanceof Pc)return t.createProxy(function(t){return n.resolve(t,e)});var r,i=function(){var r=$c.get(t);if(!r||0===r.length){if(0===t.length)return new t;throw new Error('TypeInfo not known for "'+t.name+'"')}var i=r.map(n.resolveParams(e,t));return new(t.bind.apply(t,kc([void 0],i)))}();return"function"!=typeof(r=i).dispose||r.dispose.length>0||this.disposables.add(i),i},t.prototype.resolveParams=function(t,e){var n=this;return function(r,i){var o,s,a,c;try{return"object"==typeof(c=r)&&"token"in c&&"multiple"in c?Vc(r)?r.multiple?(o=n.resolve(r.transform)).transform.apply(o,kc([n.resolveAll(r.token,new Wc,r.isOptional)],r.transformArgs)):(s=n.resolve(r.transform)).transform.apply(s,kc([n.resolve(r.token,t,r.isOptional)],r.transformArgs)):r.multiple?n.resolveAll(r.token,new Wc,r.isOptional):n.resolve(r.token,t,r.isOptional):Vc(r)?(a=n.resolve(r.transform,t)).transform.apply(a,kc([n.resolve(r.token,t)],r.transformArgs)):n.resolve(r,t)}catch(t){throw new Error(qc(e,i,t))}}},t.prototype.ensureNotDisposed=function(){if(this.disposed)throw new Error("This container has been disposed, you cannot interact with a disposed container")},t}(),el=new tl;var nl="injectionTokens";const rl=function(t){return function(e){$c.set(e,function(t){var e=Reflect.getMetadata("design:paramtypes",t)||[],n=Reflect.getOwnMetadata(nl,t)||{};return Object.keys(n).forEach(function(t){e[+t]=n[t]}),e}(e)),t&&t.token&&(Array.isArray(t.token)?t.token.forEach(function(t){el.register(t,e)}):el.register(t.token,e))}};if("undefined"==typeof Reflect||!Reflect.getMetadata)throw new Error("tsyringe requires a reflect polyfill. Please add 'import \"reflect-metadata\"' to the top of your entry point.");var il;class ol{constructor(t={}){this.attrId="",this.attrValues=[],Object.assign(t)}}Kr([jr({type:rn.ObjectIdentifier})],ol.prototype,"attrId",void 0),Kr([jr({type:rn.Any,repeated:"set"})],ol.prototype,"attrValues",void 0);let sl=il=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,il.prototype)}};var al;sl=il=Kr([Hr({type:nn.Sequence,itemType:ol})],sl);let cl=al=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,al.prototype)}};cl=al=Kr([Hr({type:nn.Sequence,itemType:qs})],cl);class ll{constructor(t={}){this.certId="",this.certValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],ll.prototype,"certId",void 0),Kr([jr({type:rn.Any,context:0})],ll.prototype,"certValue",void 0);class ul{constructor(t={}){this.crlId="",this.crltValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],ul.prototype,"crlId",void 0),Kr([jr({type:rn.Any,context:0})],ul.prototype,"crltValue",void 0);class hl extends dr{}class dl{constructor(t={}){this.encryptionAlgorithm=new Ho,this.encryptedData=new hl,Object.assign(this,t)}}var pl,fl;Kr([jr({type:Ho})],dl.prototype,"encryptionAlgorithm",void 0),Kr([jr({type:hl})],dl.prototype,"encryptedData",void 0),function(t){t[t.v1=0]="v1"}(fl||(fl={}));class Al extends dr{}let gl=pl=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,pl.prototype)}};gl=pl=Kr([Hr({type:nn.Sequence,itemType:Lo})],gl);class El{constructor(t={}){this.version=fl.v1,this.privateKeyAlgorithm=new Ho,this.privateKey=new Al,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],El.prototype,"version",void 0),Kr([jr({type:Ho})],El.prototype,"privateKeyAlgorithm",void 0),Kr([jr({type:Al})],El.prototype,"privateKey",void 0),Kr([jr({type:gl,implicit:!0,context:0,optional:!0})],El.prototype,"attributes",void 0);let ml=class extends El{};ml=Kr([Hr({type:nn.Sequence})],ml);let yl=class extends dl{};yl=Kr([Hr({type:nn.Sequence})],yl);class wl{constructor(t={}){this.secretTypeId="",this.secretValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],wl.prototype,"secretTypeId",void 0),Kr([jr({type:rn.Any,context:0})],wl.prototype,"secretValue",void 0);class Il{constructor(t={}){this.mac=new Bc,this.macSalt=new dr,this.iterations=1,Object.assign(this,t)}}Kr([jr({type:Bc})],Il.prototype,"mac",void 0),Kr([jr({type:dr})],Il.prototype,"macSalt",void 0),Kr([jr({type:rn.Integer,defaultValue:1})],Il.prototype,"iterations",void 0);class Cl{constructor(t={}){this.version=3,this.authSafe=new qs,this.macData=new Il,Object.assign(this,t)}}var Bl;Kr([jr({type:rn.Integer})],Cl.prototype,"version",void 0),Kr([jr({type:qs})],Cl.prototype,"authSafe",void 0),Kr([jr({type:Il,optional:!0})],Cl.prototype,"macData",void 0);class Tl{constructor(t={}){this.bagId="",this.bagValue=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:rn.ObjectIdentifier})],Tl.prototype,"bagId",void 0),Kr([jr({type:rn.Any,context:0})],Tl.prototype,"bagValue",void 0),Kr([jr({type:ol,repeated:"set",optional:!0})],Tl.prototype,"bagAttributes",void 0);let bl=Bl=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Bl.prototype)}};var Dl,Ml,Nl;bl=Bl=Kr([Hr({type:nn.Sequence,itemType:Tl})],bl);const Sl="1.2.840.113549.1.9",vl=`${Sl}.7`,_l=`${Sl}.14`;let Ll=class extends ri{constructor(t={}){super(t)}toString(){return{}.toString(),this.ia5String||super.toString()}};Kr([jr({type:rn.IA5String})],Ll.prototype,"ia5String",void 0),Ll=Kr([Hr({type:nn.Choice})],Ll);let xl=class extends qs{};xl=Kr([Hr({type:nn.Sequence})],xl);let Rl=class extends Cl{};Rl=Kr([Hr({type:nn.Sequence})],Rl);let Fl=class extends dl{};Fl=Kr([Hr({type:nn.Sequence})],Fl);let Ol=class{constructor(t=""){this.value=t}toString(){return this.value}};Kr([jr({type:rn.IA5String})],Ol.prototype,"value",void 0),Ol=Kr([Hr({type:nn.Choice})],Ol);let kl=class extends Ll{};kl=Kr([Hr({type:nn.Choice})],kl);let Ql=class extends ri{};Ql=Kr([Hr({type:nn.Choice})],Ql);let Ul=class{constructor(t=new Date){this.value=t}};Kr([jr({type:rn.GeneralizedTime})],Ul.prototype,"value",void 0),Ul=Kr([Hr({type:nn.Choice})],Ul);let Pl=class extends ri{};Pl=Kr([Hr({type:nn.Choice})],Pl);let Gl=class{constructor(t="M"){this.value=t}toString(){return this.value}};Kr([jr({type:rn.PrintableString})],Gl.prototype,"value",void 0),Gl=Kr([Hr({type:nn.Choice})],Gl);let Vl=class{constructor(t=""){this.value=t}toString(){return this.value}};Kr([jr({type:rn.PrintableString})],Vl.prototype,"value",void 0),Vl=Kr([Hr({type:nn.Choice})],Vl);let Hl=class extends Vl{};Hl=Kr([Hr({type:nn.Choice})],Hl);let jl=class extends ri{};jl=Kr([Hr({type:nn.Choice})],jl);let Yl=class{constructor(t=""){this.value=t}toString(){return this.value}};Kr([jr({type:rn.ObjectIdentifier})],Yl.prototype,"value",void 0),Yl=Kr([Hr({type:nn.Choice})],Yl);let zl=class extends Yo{};zl=Kr([Hr({type:nn.Choice})],zl);let Jl=class{constructor(t=0){this.value=t}toString(){return this.value.toString()}};Kr([jr({type:rn.Integer})],Jl.prototype,"value",void 0),Jl=Kr([Hr({type:nn.Choice})],Jl);let Wl=class extends ps{};Wl=Kr([Hr({type:nn.Sequence})],Wl);let ql=class extends ri{};ql=Kr([Hr({type:nn.Choice})],ql);let Kl=Dl=class extends qo{constructor(t){super(t),Object.setPrototypeOf(this,Dl.prototype)}};Kl=Dl=Kr([Hr({type:nn.Sequence})],Kl);let Xl=Ml=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Ml.prototype)}};Xl=Ml=Kr([Hr({type:nn.Set,itemType:hs})],Xl);let Zl=class{constructor(t=""){this.value=t}toString(){return this.value}};Kr([jr({type:rn.BmpString})],Zl.prototype,"value",void 0),Zl=Kr([Hr({type:nn.Choice})],Zl);let $l=class extends Ho{};$l=Kr([Hr({type:nn.Sequence})],$l);let tu=Nl=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,Nl.prototype)}};var eu;tu=Nl=Kr([Hr({type:nn.Sequence,itemType:$l})],tu);let nu=eu=class extends Wr{constructor(t){super(t),Object.setPrototypeOf(this,eu.prototype)}};nu=eu=Kr([Hr({type:nn.Sequence,itemType:Lo})],nu);class ru{constructor(t={}){this.version=0,this.subject=new ci,this.subjectPKInfo=new jo,this.attributes=new nu,Object.assign(this,t)}}Kr([jr({type:rn.Integer})],ru.prototype,"version",void 0),Kr([jr({type:ci})],ru.prototype,"subject",void 0),Kr([jr({type:jo})],ru.prototype,"subjectPKInfo",void 0),Kr([jr({type:nu,implicit:!0,context:0,optional:!0})],ru.prototype,"attributes",void 0);class iu{constructor(t={}){this.certificationRequestInfo=new ru,this.signatureAlgorithm=new Ho,this.signature=new ArrayBuffer(0),Object.assign(this,t)}}Kr([jr({type:ru,raw:!0})],iu.prototype,"certificationRequestInfo",void 0),Kr([jr({type:Ho})],iu.prototype,"signatureAlgorithm",void 0),Kr([jr({type:rn.BitString})],iu.prototype,"signature",void 0);
|
|
84
|
+
/*!
|
|
85
|
+
* MIT License
|
|
86
|
+
*
|
|
87
|
+
* Copyright (c) Peculiar Ventures. All rights reserved.
|
|
88
|
+
*
|
|
89
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
90
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
91
|
+
* in the Software without restriction, including without limitation the rights
|
|
92
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
93
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
94
|
+
* furnished to do so, subject to the following conditions:
|
|
95
|
+
*
|
|
96
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
97
|
+
* copies or substantial portions of the Software.
|
|
98
|
+
*
|
|
99
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
100
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
101
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
102
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
103
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
104
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
105
|
+
* SOFTWARE.
|
|
106
|
+
*
|
|
107
|
+
*/
|
|
108
|
+
const ou="crypto.algorithm";const su="crypto.algorithmProvider";var au;el.registerSingleton(su,class{getAlgorithms(){return el.resolveAll(ou)}toAsnAlgorithm(t){for(const e of this.getAlgorithms()){const n=e.toAsnAlgorithm(t);if(n)return n}if(/^[0-9.]+$/.test(t.name)){const e=new Ho({algorithm:t.name});if("parameters"in t){const n=t;e.parameters=n.parameters}return e}throw new Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(t){for(const e of this.getAlgorithms()){const n=e.toWebAlgorithm(t);if(n)return n}return{name:t.algorithm,parameters:t.parameters}}});const cu="1.3.36.3.3.2.8.1.1",lu=`${cu}.1`,uu=`${cu}.2`,hu=`${cu}.3`,du=`${cu}.4`,pu=`${cu}.5`,fu=`${cu}.6`,Au=`${cu}.7`,gu=`${cu}.8`,Eu=`${cu}.9`,mu=`${cu}.10`,yu=`${cu}.11`,wu=`${cu}.12`,Iu=`${cu}.13`,Cu=`${cu}.14`,Bu="brainpoolP160r1",Tu="brainpoolP160t1",bu="brainpoolP192r1",Du="brainpoolP192t1",Mu="brainpoolP224r1",Nu="brainpoolP224t1",Su="brainpoolP256r1",vu="brainpoolP256t1",_u="brainpoolP320r1",Lu="brainpoolP320t1",xu="brainpoolP384r1",Ru="brainpoolP384t1",Fu="brainpoolP512r1",Ou="brainpoolP512t1",ku="ECDSA";let Qu=au=class{toAsnAlgorithm(t){if(t.name.toLowerCase()===ku.toLowerCase())if("hash"in t){switch(("string"==typeof t.hash?t.hash:t.hash.name).toLowerCase()){case"sha-1":return Pa;case"sha-256":return Ga;case"sha-384":return Va;case"sha-512":return Ha}}else if("namedCurve"in t){let e="";switch(t.namedCurve){case"P-256":e=Oa;break;case"K-256":e=au.SECP256K1;break;case"P-384":e=ka;break;case"P-521":e=Qa;break;case Bu:e=lu;break;case Tu:e=uu;break;case bu:e=hu;break;case Du:e=du;break;case Mu:e=pu;break;case Nu:e=fu;break;case Su:e=Au;break;case vu:e=gu;break;case _u:e=Eu;break;case Lu:e=mu;break;case xu:e=yu;break;case Ru:e=wu;break;case Fu:e=Iu;break;case Ou:e=Cu}if(e)return new Ho({algorithm:va,parameters:qr.serialize(new Wa({namedCurve:e}))})}return null}toWebAlgorithm(t){switch(t.algorithm){case _a:return{name:ku,hash:{name:"SHA-1"}};case xa:return{name:ku,hash:{name:"SHA-256"}};case Ra:return{name:ku,hash:{name:"SHA-384"}};case Fa:return{name:ku,hash:{name:"SHA-512"}};case va:if(!t.parameters)throw new TypeError("Cannot get required parameters from EC algorithm");switch(qr.parse(t.parameters,Wa).namedCurve){case Oa:return{name:ku,namedCurve:"P-256"};case au.SECP256K1:return{name:ku,namedCurve:"K-256"};case ka:return{name:ku,namedCurve:"P-384"};case Qa:return{name:ku,namedCurve:"P-521"};case lu:return{name:ku,namedCurve:Bu};case uu:return{name:ku,namedCurve:Tu};case hu:return{name:ku,namedCurve:bu};case du:return{name:ku,namedCurve:Du};case pu:return{name:ku,namedCurve:Mu};case fu:return{name:ku,namedCurve:Nu};case Au:return{name:ku,namedCurve:Su};case gu:return{name:ku,namedCurve:vu};case Eu:return{name:ku,namedCurve:_u};case mu:return{name:ku,namedCurve:Lu};case yu:return{name:ku,namedCurve:xu};case wu:return{name:ku,namedCurve:Ru};case Iu:return{name:ku,namedCurve:Fu};case Cu:return{name:ku,namedCurve:Ou}}}return null}};Qu.SECP256K1="1.3.132.0.10",Qu=au=Kr([rl()],Qu),el.registerSingleton(ou,Qu);const Uu=Symbol("name"),Pu=Symbol("value");class Gu{constructor(t,e={},n=""){this[Uu]=t,this[Pu]=n;for(const t in e)this[t]=e[t]}}Gu.NAME=Uu,Gu.VALUE=Pu;class Vu{static toString(t){const e=this.items[t];return e||t}}Vu.items={[hc]:"sha1",[dc]:"sha224",[pc]:"sha256",[fc]:"sha384",[Ac]:"sha512",[Za]:"rsaEncryption",[ic]:"sha1WithRSAEncryption",[oc]:"sha224WithRSAEncryption",[sc]:"sha256WithRSAEncryption",[ac]:"sha384WithRSAEncryption",[cc]:"sha512WithRSAEncryption",[va]:"ecPublicKey",[_a]:"ecdsaWithSHA1",[La]:"ecdsaWithSHA224",[xa]:"ecdsaWithSHA256",[Ra]:"ecdsaWithSHA384",[Fa]:"ecdsaWithSHA512",[so]:"TLS WWW server authentication",[ao]:"TLS WWW client authentication",[co]:"Code Signing",[lo]:"E-mail Protection",[uo]:"Time Stamping",[ho]:"OCSP Signing",[Da]:"Signed Data"};class Hu{static serialize(t){return this.serializeObj(t).join("\n")}static pad(t=0){return"".padStart(2*t," ")}static serializeObj(t,e=0){const n=[];let r=this.pad(e++),i="";const o=t[Gu.VALUE];o&&(i=` ${o}`),n.push(`${r}${t[Gu.NAME]}:${i}`),r=this.pad(e);for(const i in t){if("symbol"==typeof i)continue;const o=t[i],s=i?`${i}: `:"";if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)n.push(`${r}${s}${o}`);else if(o instanceof Date)n.push(`${r}${s}${o.toUTCString()}`);else if(Array.isArray(o))for(const t of o)t[Gu.NAME]=i,n.push(...this.serializeObj(t,e));else if(o instanceof Gu)o[Gu.NAME]=i,n.push(...this.serializeObj(o,e));else if(Ut._H.isBufferSource(o))i?(n.push(`${r}${s}`),n.push(...this.serializeBufferSource(o,e+1))):n.push(...this.serializeBufferSource(o,e));else{if(!("toTextObject"in o))throw new TypeError("Cannot serialize data in text format. Unsupported type.");{const t=o.toTextObject();t[Gu.NAME]=i,n.push(...this.serializeObj(t,e))}}}return n}static serializeBufferSource(t,e=0){const n=this.pad(e),r=Ut._H.toUint8Array(t),i=[];for(let t=0;t<r.length;){const e=[];for(let n=0;n<16&&t<r.length;n++){8===n&&e.push("");const i=r[t++].toString(16).padStart(2,"0");e.push(i)}i.push(`${n}${e.join(" ")}`)}return i}static serializeAlgorithm(t){return this.algorithmSerializer.toTextObject(t)}}var ju,Yu;Hu.oidSerializer=Vu,Hu.algorithmSerializer=class{static toTextObject(t){const e=new Gu("Algorithm Identifier",{},Vu.toString(t.algorithm));if(t.parameters)switch(t.algorithm){case va:{const n=(new Qu).toWebAlgorithm(t);n&&"namedCurve"in n?e["Named Curve"]=n.namedCurve:e.Parameters=t.parameters;break}default:e.Parameters=t.parameters}return e}};class zu{get rawData(){return Xr(this,ju,"f")||Zr(this,ju,qr.serialize(this.asn),"f"),Xr(this,ju,"f")}constructor(...t){ju.set(this,void 0),Ut._H.isBufferSource(t[0])?(this.asn=qr.parse(t[0],t[1]),Zr(this,ju,Ut._H.toArrayBuffer(t[0]),"f"),this.onInit(this.asn)):(this.asn=t[0],this.onInit(this.asn))}equal(t){return t instanceof zu&&(0,Ut.n4)(t.rawData,this.rawData)}toString(t="text"){switch(t){case"asn":return qr.toString(this.rawData);case"text":return Hu.serialize(this.toTextObject());case"hex":return Ut.U$.ToHex(this.rawData);case"base64":return Ut.U$.ToBase64(this.rawData);case"base64url":return Ut.U$.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){const t=this.toTextObjectEmpty();return t[""]=this.rawData,t}toTextObjectEmpty(t){return new Gu(this.getTextName(),{},t)}}ju=new WeakMap,zu.NAME="ASN";class Ju extends zu{constructor(...t){let e;e=Ut._H.isBufferSource(t[0])?Ut._H.toArrayBuffer(t[0]):qr.serialize(new Wo({extnID:t[0],critical:t[1],extnValue:new dr(Ut._H.toArrayBuffer(t[2]))})),super(e,Wo)}onInit(t){this.type=t.extnID,this.critical=t.critical,this.value=t.extnValue.buffer}toTextObject(){const t=this.toTextObjectWithoutValue();return t[""]=this.value,t}toTextObjectWithoutValue(){const t=this.toTextObjectEmpty(this.critical?"critical":void 0);return t[Gu.NAME]===Ju.NAME&&(t[Gu.NAME]=Vu.toString(this.type)),t}}class Wu{static isCryptoKeyPair(t){return t&&t.privateKey&&t.publicKey}static isCryptoKey(t){return t&&t.usages&&t.type&&t.algorithm&&void 0!==t.extractable}constructor(){this.items=new Map,this[Yu]="CryptoProvider","undefined"!=typeof self&&"undefined"!=typeof crypto?this.set(Wu.DEFAULT,crypto):void 0!==s.g&&s.g.crypto&&s.g.crypto.subtle&&this.set(Wu.DEFAULT,s.g.crypto)}clear(){this.items.clear()}delete(t){return this.items.delete(t)}forEach(t,e){return this.items.forEach(t,e)}has(t){return this.items.has(t)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(t=Wu.DEFAULT){const e=this.items.get(t.toLowerCase());if(!e)throw new Error(`Cannot get Crypto by name '${t}'`);return e}set(t,e){if("string"==typeof t){if(!e)throw new TypeError("Argument 'value' is required");this.items.set(t.toLowerCase(),e)}else this.items.set(Wu.DEFAULT,t);return this}}Yu=Symbol.toStringTag,Wu.DEFAULT="default";const qu=new Wu,Ku=/^[0-2](?:\.[1-9][0-9]*)+$/;class Xu{constructor(t={}){this.items={};for(const e in t)this.register(e,t[e])}get(t){return this.items[t]||null}findId(t){return function(t){return new RegExp(Ku).test(t)}(t)?t:this.get(t)}register(t,e){this.items[t]=e,this.items[e]=t}}const Zu=new Xu;function $u(t,e){return`\\${Ut.U$.ToHex(Ut.U$.FromUtf8String(e)).toUpperCase()}`}Zu.register("CN","2.5.4.3"),Zu.register("L","2.5.4.7"),Zu.register("ST","2.5.4.8"),Zu.register("O","2.5.4.10"),Zu.register("OU","2.5.4.11"),Zu.register("C","2.5.4.6"),Zu.register("DC","0.9.2342.19200300.100.1.25"),Zu.register("E","1.2.840.113549.1.9.1"),Zu.register("G","2.5.4.42"),Zu.register("I","2.5.4.43"),Zu.register("SN","2.5.4.4"),Zu.register("T","2.5.4.12");class th{static isASCII(t){for(let e=0;e<t.length;e++){if(t.charCodeAt(e)>255)return!1}return!0}static isPrintableString(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(t)}constructor(t,e={}){this.extraNames=new Xu,this.asn=new ci;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];this.extraNames.register(t,n)}"string"==typeof t?this.asn=this.fromString(t):t instanceof ci?this.asn=t:Ut._H.isBufferSource(t)?this.asn=qr.parse(t,ci):this.asn=this.fromJSON(t)}getField(t){const e=this.extraNames.findId(t)||Zu.findId(t),n=[];for(const t of this.asn)for(const r of t)r.type===e&&n.push(r.value.toString());return n}getName(t){return this.extraNames.get(t)||Zu.get(t)}toString(){return this.asn.map(t=>t.map(t=>`${this.getName(t.type)||t.type}=${t.value.anyValue?`#${Ut.U$.ToHex(t.value.anyValue)}`:t.value.toString().replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,$u)}`).join("+")).join(", ")}toJSON(){var t;const e=[];for(const n of this.asn){const r={};for(const e of n){const n=this.getName(e.type)||e.type;null!==(t=r[n])&&void 0!==t||(r[n]=[]),r[n].push(e.value.anyValue?`#${Ut.U$.ToHex(e.value.anyValue)}`:e.value.toString())}e.push(r)}return e}fromString(t){const e=new ci,n=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g;let r=null,i=",";for(;r=n.exec(`${t},`);){let[,t,n]=r;const o=n[n.length-1];","!==o&&"+"!==o||(n=n.slice(0,n.length-1),r[3]=o);const s=r[3];t=this.getTypeOid(t);const a=this.createAttribute(t,n);"+"===i?e[e.length-1].push(a):e.push(new si([a])),i=s}return e}fromJSON(t){const e=new ci;for(const n of t){const t=new si;for(const e in n){const r=this.getTypeOid(e),i=n[e];for(const e of i){const n=this.createAttribute(r,e);t.push(n)}}e.push(t)}return e}getTypeOid(t){if(/[\d.]+/.test(t)||(t=this.getName(t)||""),!t)throw new Error(`Cannot get OID for name type '${t}'`);return t}createAttribute(t,e){const n=new oi({type:t});if("object"==typeof e)for(const t in e)switch(t){case"ia5String":n.value.ia5String=e[t];break;case"utf8String":n.value.utf8String=e[t];break;case"universalString":n.value.universalString=e[t];break;case"bmpString":n.value.bmpString=e[t];break;case"printableString":n.value.printableString=e[t]}else if("#"===e[0])n.value.anyValue=Ut.U$.FromHex(e.slice(1));else{const r=this.processStringValue(e);t===this.getName("E")||t===this.getName("DC")?n.value.ia5String=r:th.isPrintableString(r)?n.value.printableString=r:n.value.utf8String=r}return n}processStringValue(t){const e=/"(.*?[^\\])?"/.exec(t);return e&&(t=e[1]),t.replace(/\\0a/gi,"\n").replace(/\\0d/gi,"\r").replace(/\\0g/gi,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return qr.serialize(this.asn)}async getThumbprint(...t){var e;let n,r="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(r=t[0]||r,n=t[1]||qu.get()):n=t[0]||qu.get(),await n.subtle.digest(r,this.toArrayBuffer())}}const eh="Cannot initialize GeneralName from ASN.1 data.",nh=`${eh} Unsupported string format in use.`,rh=`${eh} Value doesn't match to GUID regular expression.`,ih=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,oh="1.3.6.1.4.1.311.25.1",sh="1.3.6.1.4.1.311.20.2.3",ah="dns",ch="dn",lh="email",uh="ip",hh="url",dh="guid",ph="upn",fh="id";class Ah extends zu{constructor(...t){let e;if(2===t.length)switch(t[0]){case ch:{const n=new th(t[1]).toArrayBuffer(),r=qr.parse(n,ci);e=new di({directoryName:r});break}case ah:e=new di({dNSName:t[1]});break;case lh:e=new di({rfc822Name:t[1]});break;case dh:{const n=new RegExp(ih,"i").exec(t[1]);if(!n)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");const r=n.slice(1).map((t,e)=>e<3?Ut.U$.ToHex(new Uint8Array(Ut.U$.FromHex(t)).reverse()):t).join("");e=new di({otherName:new ui({typeId:oh,value:qr.serialize(new dr(Ut.U$.FromHex(r)))})});break}case uh:e=new di({iPAddress:t[1]});break;case fh:e=new di({registeredID:t[1]});break;case ph:e=new di({otherName:new ui({typeId:sh,value:qr.serialize(Br.toASN(t[1]))})});break;case hh:e=new di({uniformResourceIdentifier:t[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else e=Ut._H.isBufferSource(t[0])?qr.parse(t[0],di):t[0];super(e)}onInit(t){if(null!=t.dNSName)this.type=ah,this.value=t.dNSName;else if(null!=t.rfc822Name)this.type=lh,this.value=t.rfc822Name;else if(null!=t.iPAddress)this.type=uh,this.value=t.iPAddress;else if(null!=t.uniformResourceIdentifier)this.type=hh,this.value=t.uniformResourceIdentifier;else if(null!=t.registeredID)this.type=fh,this.value=t.registeredID;else if(null!=t.directoryName)this.type=ch,this.value=new th(t.directoryName).toString();else{if(null==t.otherName)throw new Error(nh);if(t.otherName.typeId===oh){this.type=dh;const e=qr.parse(t.otherName.value,dr),n=new RegExp(ih,"i").exec(Ut.U$.ToHex(e));if(!n)throw new Error(rh);this.value=n.slice(1).map((t,e)=>e<3?Ut.U$.ToHex(new Uint8Array(Ut.U$.FromHex(t)).reverse()):t).join("-")}else{if(t.otherName.typeId!==sh)throw new Error(nh);this.type=ph,this.value=qr.parse(t.otherName.value,ri).toString()}}}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let t;switch(this.type){case ch:case ah:case dh:case uh:case fh:case ph:case hh:t=this.type.toUpperCase();break;case lh:t="Email";break;default:throw new Error("Unsupported GeneralName type")}let e=this.value;return this.type===fh&&(e=Vu.toString(e)),new Gu(t,void 0,e)}}class gh extends zu{constructor(t){let e;if(t instanceof _i)e=t;else if(Array.isArray(t)){const n=[];for(const e of t)if(e instanceof di)n.push(e);else{const t=qr.parse(new Ah(e.type,e.value).rawData,di);n.push(t)}e=new _i(n)}else{if(!Ut._H.isBufferSource(t))throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");e=qr.parse(t,_i)}super(e)}onInit(t){const e=[];for(const n of t){let t=null;try{t=new Ah(n)}catch{continue}e.push(t)}this.items=e}toJSON(){return this.items.map(t=>t.toJSON())}toTextObject(){const t=super.toTextObjectEmpty();for(const e of this.items){const n=e.toTextObject();let r=t[n[Gu.NAME]];Array.isArray(r)||(r=[],t[n[Gu.NAME]]=r),r.push(n)}return t}}gh.NAME="GeneralNames";const Eh="-{5}",mh="\\n",yh="\\n",wh=`${`${Eh}BEGIN (${`[^${mh}]+`}(?=${Eh}))${Eh}`}${yh}(?:((?:${`[^:${mh}]+`}: ${`(?:[^${mh}]+${yh}(?: +[^${mh}]+${yh})*)`})+))?${yh}?(${`(?:[a-zA-Z0-9=+/]+${yh})+`})${`${Eh}END \\1${Eh}`}`;class Ih{static isPem(t){return"string"==typeof t&&new RegExp(wh,"g").test(t.replace(/\r/g,""))}static decodeWithHeaders(t){t=t.replace(/\r/g,"");const e=new RegExp(wh,"g"),n=[];let r=null;for(;r=e.exec(t);){const t=r[3].replace(new RegExp(`[${mh}]+`,"g"),""),e={type:r[1],headers:[],rawData:Ut.U$.FromBase64(t)},i=r[2];if(i){const t=i.split(new RegExp(yh,"g"));let n=null;for(const r of t){const[t,i]=r.split(/:(.*)/);if(void 0===i){if(!n)throw new Error("Cannot parse PEM string. Incorrect header value");n.value+=t.trim()}else n&&e.headers.push(n),n={key:t,value:i.trim()}}n&&e.headers.push(n)}n.push(e)}return n}static decode(t){return this.decodeWithHeaders(t).map(t=>t.rawData)}static decodeFirst(t){const e=this.decode(t);if(!e.length)throw new RangeError("PEM string doesn't contain any objects");return e[0]}static encode(t,e){if(Array.isArray(t)){const n=new Array;return e?t.forEach(t=>{if(!Ut._H.isBufferSource(t))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");n.push(this.encodeStruct({type:e,rawData:Ut._H.toArrayBuffer(t)}))}):t.forEach(t=>{if(!("type"in t))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");n.push(this.encodeStruct(t))}),n.join("\n")}if(!e)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:e,rawData:Ut._H.toArrayBuffer(t)})}static encodeStruct(t){var e;const n=t.type.toLocaleUpperCase(),r=[];if(r.push(`-----BEGIN ${n}-----`),null===(e=t.headers)||void 0===e?void 0:e.length){for(const e of t.headers)r.push(`${e.key}: ${e.value}`);r.push("")}const i=Ut.U$.ToBase64(t.rawData);let o,s=0;const a=Array();for(;s<i.length&&(i.length-s<64?o=i.substring(s):(o=i.substring(s,s+64),s+=64),0!==o.length)&&(a.push(o),!(o.length<64)););return r.push(...a),r.push(`-----END ${n}-----`),r.join("\n")}}Ih.CertificateTag="CERTIFICATE",Ih.CrlTag="CRL",Ih.CertificateRequestTag="CERTIFICATE REQUEST",Ih.PublicKeyTag="PUBLIC KEY",Ih.PrivateKeyTag="PRIVATE KEY";class Ch extends zu{static isAsnEncoded(t){return Ut._H.isBufferSource(t)||"string"==typeof t}static toArrayBuffer(t){if("string"==typeof t){if(Ih.isPem(t))return Ih.decode(t)[0];if(Ut.U$.isHex(t))return Ut.U$.FromHex(t);if(Ut.U$.isBase64(t))return Ut.U$.FromBase64(t);if(Ut.U$.isBase64Url(t))return Ut.U$.FromBase64Url(t);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}{const e=Ut._H.toUint8Array(t);if(e.length>0&&48===e[0])return Ut._H.toArrayBuffer(t);const n=Ut.U$.ToBinary(t);if(Ih.isPem(n))return Ih.decode(n)[0];if(Ut.U$.isHex(n))return Ut.U$.FromHex(n);if(Ut.U$.isBase64(n))return Ut.U$.FromBase64(n);if(Ut.U$.isBase64Url(n))return Ut.U$.FromBase64Url(n);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...t){Ch.isAsnEncoded(t[0])?super(Ch.toArrayBuffer(t[0]),t[1]):super(t[0])}toString(t="pem"){return"pem"===t?Ih.encode(this.rawData,this.tag):super.toString(t)}}class Bh extends Ch{static async create(t,e=qu.get()){if(t instanceof Bh)return t;if(Wu.isCryptoKey(t)){if("public"!==t.type)throw new TypeError("Public key is required");const n=await e.subtle.exportKey("spki",t);return new Bh(n)}if(t.publicKey)return t.publicKey;if(Ut._H.isBufferSource(t))return new Bh(t);throw new TypeError("Unsupported PublicKeyType")}constructor(t){Ch.isAsnEncoded(t)?super(t,jo):super(t),this.tag=Ih.PublicKeyTag}async export(...t){let e,n=["verify"],r={hash:"SHA-256",...this.algorithm};t.length>1?(r=t[0]||r,n=t[1]||n,e=t[2]||qu.get()):e=t[0]||qu.get();let i=this.rawData;const o=qr.parse(this.rawData,jo);return o.algorithm.algorithm===ec&&(i=function(t,e){return t.algorithm=new Ho({algorithm:Za,parameters:null}),e=qr.serialize(t),e}(o,i)),e.subtle.importKey("spki",i,r,!0,n)}onInit(t){const e=el.resolve(su),n=this.algorithm=e.toWebAlgorithm(t.algorithm);switch(t.algorithm.algorithm){case Za:{const e=qr.parse(t.subjectPublicKey,Nc),r=Ut._H.toUint8Array(e.modulus);n.publicExponent=Ut._H.toUint8Array(e.publicExponent),n.modulusLength=(r[0]?r:r.slice(1)).byteLength<<3;break}}}async getThumbprint(...t){var e;let n,r="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(r=t[0]||r,n=t[1]||qu.get()):n=t[0]||qu.get(),await n.subtle.digest(r,this.rawData)}async getKeyIdentifier(...t){let e,n="SHA-1";1===t.length?"string"==typeof t[0]?(n=t[0],e=qu.get()):e=t[0]:2===t.length?(n=t[0],e=t[1]):e=qu.get();const r=qr.parse(this.rawData,jo);return await e.subtle.digest(n,r.subjectPublicKey)}toTextObject(){const t=this.toTextObjectEmpty(),e=qr.parse(this.rawData,jo);if(t.Algorithm=Hu.serializeAlgorithm(e.algorithm),e.algorithm.algorithm===va)t["EC Point"]=e.subjectPublicKey;else t["Raw Data"]=e.subjectPublicKey;return t}}class Th extends Ju{static async create(t,e=!1,n=qu.get()){if("name"in t&&"serialNumber"in t)return new Th(t,e);const r=await Bh.create(t,n),i=await r.getKeyIdentifier(n);return new Th(Ut.U$.ToHex(i),e)}constructor(...t){if(Ut._H.isBufferSource(t[0]))super(t[0]);else if("string"==typeof t[0]){const e=new Mi({keyIdentifier:new Di(Ut.U$.FromHex(t[0]))});super(bi,t[1],qr.serialize(e))}else{const e=t[0],n=e.name instanceof gh?qr.parse(e.name.rawData,_i):e.name,r=new Mi({authorityCertIssuer:n,authorityCertSerialNumber:Ut.U$.FromHex(e.serialNumber)});super(bi,t[1],qr.serialize(r))}}onInit(t){super.onInit(t);const e=qr.parse(t.extnValue,Mi);e.keyIdentifier&&(this.keyId=Ut.U$.ToHex(e.keyIdentifier)),(e.authorityCertIssuer||e.authorityCertSerialNumber)&&(this.certId={name:e.authorityCertIssuer||[],serialNumber:e.authorityCertSerialNumber?Ut.U$.ToHex(e.authorityCertSerialNumber):""})}toTextObject(){const t=this.toTextObjectWithoutValue(),e=qr.parse(this.value,Mi);return e.authorityCertIssuer&&(t["Authority Issuer"]=new gh(e.authorityCertIssuer).toTextObject()),e.authorityCertSerialNumber&&(t["Authority Serial Number"]=e.authorityCertSerialNumber),e.keyIdentifier&&(t[""]=e.keyIdentifier),t}}Th.NAME="Authority Key Identifier";class bh extends Ju{constructor(...t){if(Ut._H.isBufferSource(t[0])){super(t[0]);const e=qr.parse(this.value,Si);this.ca=e.cA,this.pathLength=e.pathLenConstraint}else{const e=new Si({cA:t[0],pathLenConstraint:t[1]});super(Ni,t[2],qr.serialize(e)),this.ca=t[0],this.pathLength=t[1]}}toTextObject(){const t=this.toTextObjectWithoutValue();return this.ca&&(t.CA=this.ca),void 0!==this.pathLength&&(t["Path Length"]=this.pathLength),t}}var Dh,Mh;bh.NAME="Basic Constraints",function(t){t.serverAuth="1.3.6.1.5.5.7.3.1",t.clientAuth="1.3.6.1.5.5.7.3.2",t.codeSigning="1.3.6.1.5.5.7.3.3",t.emailProtection="1.3.6.1.5.5.7.3.4",t.timeStamping="1.3.6.1.5.5.7.3.8",t.ocspSigning="1.3.6.1.5.5.7.3.9"}(Dh||(Dh={}));class Nh extends Ju{constructor(...t){if(Ut._H.isBufferSource(t[0])){super(t[0]);const e=qr.parse(this.value,oo);this.usages=e.map(t=>t)}else{const e=new oo(t[0]);super(io,t[1],qr.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[""]=this.usages.map(t=>Vu.toString(t)).join(", "),t}}Nh.NAME="Extended Key Usages",function(t){t[t.digitalSignature=1]="digitalSignature",t[t.nonRepudiation=2]="nonRepudiation",t[t.keyEncipherment=4]="keyEncipherment",t[t.dataEncipherment=8]="dataEncipherment",t[t.keyAgreement=16]="keyAgreement",t[t.keyCertSign=32]="keyCertSign",t[t.cRLSign=64]="cRLSign",t[t.encipherOnly=128]="encipherOnly",t[t.decipherOnly=256]="decipherOnly"}(Mh||(Mh={}));class Sh extends Ju{constructor(...t){if(Ut._H.isBufferSource(t[0])){super(t[0]);const e=qr.parse(this.value,Io);this.usages=e.toNumber()}else{const e=new Io(t[0]);super(mo,t[1],qr.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=qr.parse(this.value,Io);return t[""]=e.toJSON().join(", "),t}}Sh.NAME="Key Usages";class vh extends Ju{static async create(t,e=!1,n=qu.get()){const r=await Bh.create(t,n),i=await r.getKeyIdentifier(n);return new vh(Ut.U$.ToHex(i),e)}constructor(...t){if(Ut._H.isBufferSource(t[0])){super(t[0]);const e=qr.parse(this.value,Oo);this.keyId=Ut.U$.ToHex(e)}else{const e="string"==typeof t[0]?Ut.U$.FromHex(t[0]):t[0],n=new Oo(e);super(Fo,t[1],qr.serialize(n)),this.keyId=Ut.U$.ToHex(e)}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=qr.parse(this.value,Oo);return t[""]=e,t}}vh.NAME="Subject Key Identifier";class _h extends Ju{constructor(...t){Ut._H.isBufferSource(t[0])?super(t[0]):super(vo,t[1],new gh(t[0]||[]).rawData)}onInit(t){super.onInit(t);const e=qr.parse(t.extnValue,_o);this.names=new gh(e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.names.toTextObject();for(const n in e)t[n]=e[n];return t}}_h.NAME="Subject Alternative Name";class Lh{static register(t,e){this.items.set(t,e)}static create(t){const e=new Ju(t),n=this.items.get(e.type);return n?new n(t):e}}Lh.items=new Map;class xh extends Ju{constructor(...t){var e;if(Ut._H.isBufferSource(t[0])){super(t[0]);const e=qr.parse(this.value,Vi);this.policies=e.map(t=>t.policyIdentifier)}else{const n=t[0],r=null!==(e=t[1])&&void 0!==e&&e,i=new Vi(n.map(t=>new Gi({policyIdentifier:t})));super(Fi,r,qr.serialize(i)),this.policies=n}}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Policy=this.policies.map(t=>new Gu("",{},Vu.toString(t))),t}}xh.NAME="Certificate Policies",Lh.register(Fi,xh);class Rh extends Ju{constructor(...t){var e;if(Ut._H.isBufferSource(t[0]))super(t[0]);else if(Array.isArray(t[0])&&"string"==typeof t[0][0]){const e=t[0].map(t=>new Ki({distributionPoint:new qi({fullName:[new di({uniformResourceIdentifier:t})]})})),n=new Xi(e);super(zi,t[1],qr.serialize(n))}else{const e=new Xi(t[0]);super(zi,t[1],qr.serialize(e))}null!==(e=this.distributionPoints)&&void 0!==e||(this.distributionPoints=[])}onInit(t){super.onInit(t);const e=qr.parse(t.extnValue,Xi);this.distributionPoints=e}toTextObject(){const t=this.toTextObjectWithoutValue();return t["Distribution Point"]=this.distributionPoints.map(t=>{var e;const n={};return t.distributionPoint&&(n[""]=null===(e=t.distributionPoint.fullName)||void 0===e?void 0:e.map(t=>new Ah(t).toString()).join(", ")),t.reasons&&(n.Reasons=t.reasons.toString()),t.cRLIssuer&&(n["CRL Issuer"]=t.cRLIssuer.map(t=>t.toString()).join(", ")),n}),t}}Rh.NAME="CRL Distribution Points";class Fh extends Ju{constructor(...t){var e,n,r,i;if(Ut._H.isBufferSource(t[0]))super(t[0]);else if(t[0]instanceof Ti){const e=new Ti(t[0]);super(Ci,t[1],qr.serialize(e))}else{const e=t[0],n=new Ti;kh(n,e,gi,"ocsp"),kh(n,e,Ei,"caIssuers"),kh(n,e,mi,"timeStamping"),kh(n,e,yi,"caRepository"),super(Ci,t[1],qr.serialize(n))}null!==(e=this.ocsp)&&void 0!==e||(this.ocsp=[]),null!==(n=this.caIssuers)&&void 0!==n||(this.caIssuers=[]),null!==(r=this.timeStamping)&&void 0!==r||(this.timeStamping=[]),null!==(i=this.caRepository)&&void 0!==i||(this.caRepository=[])}onInit(t){super.onInit(t),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[];qr.parse(t.extnValue,Ti).forEach(t=>{switch(t.accessMethod){case gi:this.ocsp.push(new Ah(t.accessLocation));break;case Ei:this.caIssuers.push(new Ah(t.accessLocation));break;case mi:this.timeStamping.push(new Ah(t.accessLocation));break;case yi:this.caRepository.push(new Ah(t.accessLocation))}})}toTextObject(){const t=this.toTextObjectWithoutValue();return this.ocsp.length&&Oh(t,"OCSP",this.ocsp),this.caIssuers.length&&Oh(t,"CA Issuers",this.caIssuers),this.timeStamping.length&&Oh(t,"Time Stamping",this.timeStamping),this.caRepository.length&&Oh(t,"CA Repository",this.caRepository),t}}function Oh(t,e,n){if(1===n.length)t[e]=n[0].toTextObject();else{const r=new Gu("");n.forEach((t,e)=>{const n=t.toTextObject(),i=`${n[Gu.NAME]} ${e+1}`;let o=r[i];Array.isArray(o)||(o=[],r[i]=o),o.push(n)}),t[e]=r}}function kh(t,e,n,r){const i=e[r];if(i){(Array.isArray(i)?i:[i]).forEach(e=>{"string"==typeof e&&(e=new Ah("url",e)),t.push(new Bi({accessMethod:n,accessLocation:qr.parse(e.rawData,di)}))})}}Fh.NAME="Authority Info Access";class Qh extends Ju{constructor(...t){Ut._H.isBufferSource(t[0])?super(t[0]):super(go,t[1],new gh(t[0]||[]).rawData)}onInit(t){super.onInit(t);const e=qr.parse(t.extnValue,_i);this.names=new gh(e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.names.toTextObject();for(const n in e)t[n]=e[n];return t}}Qh.NAME="Issuer Alternative Name";class Uh extends zu{constructor(...t){let e;if(Ut._H.isBufferSource(t[0]))e=Ut._H.toArrayBuffer(t[0]);else{const n=t[0],r=Array.isArray(t[1])?t[1].map(t=>Ut._H.toArrayBuffer(t)):[];e=qr.serialize(new Lo({type:n,values:r}))}super(e,Lo)}onInit(t){this.type=t.type,this.values=t.values}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Value=this.values.map(t=>new Gu("",{"":t})),t}toTextObjectWithoutValue(){const t=this.toTextObjectEmpty();return t[Gu.NAME]===Uh.NAME&&(t[Gu.NAME]=Vu.toString(this.type)),t}}Uh.NAME="Attribute";class Ph extends Uh{constructor(...t){var e;if(Ut._H.isBufferSource(t[0]))super(t[0]);else{const e=new ql({printableString:t[0]});super(vl,[qr.serialize(e)])}null!==(e=this.password)&&void 0!==e||(this.password="")}onInit(t){if(super.onInit(t),this.values[0]){const t=qr.parse(this.values[0],ql);this.password=t.toString()}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[Gu.VALUE]=this.password,t}}Ph.NAME="Challenge Password";class Gh extends Uh{constructor(...t){var e;if(Ut._H.isBufferSource(t[0]))super(t[0]);else{const e=t[0],n=new qo;for(const t of e)n.push(qr.parse(t.rawData,Wo));super(_l,[qr.serialize(n)])}null!==(e=this.items)&&void 0!==e||(this.items=[])}onInit(t){if(super.onInit(t),this.values[0]){const t=qr.parse(this.values[0],qo);this.items=t.map(t=>Lh.create(qr.serialize(t)))}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.items.map(t=>t.toTextObject());for(const n of e)t[n[Gu.NAME]]=n;return t}}Gh.NAME="Extensions";class Vh{static register(t,e){this.items.set(t,e)}static create(t){const e=new Uh(t),n=this.items.get(e.type);return n?new n(t):e}}Vh.items=new Map;const Hh="crypto.signatureFormatter";var jh;let Yh=jh=class{static createPssParams(t,e){const n=jh.getHashAlgorithm(t);return n?new Cc({hashAlgorithm:n,maskGenAlgorithm:new Ho({algorithm:gc,parameters:qr.serialize(n)}),saltLength:e}):null}static getHashAlgorithm(t){const e=el.resolve(su);return"string"==typeof t?e.toAsnAlgorithm({name:t}):"object"==typeof t&&t&&"name"in t?e.toAsnAlgorithm(t):null}toAsnAlgorithm(t){switch(t.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if(!("hash"in t))return new Ho({algorithm:Za,parameters:null});{let e;if("string"==typeof t.hash)e=t.hash;else{if(!t.hash||"object"!=typeof t.hash||!("name"in t.hash)||"string"!=typeof t.hash.name)throw new Error("Cannot get hash algorithm name");e=t.hash.name.toUpperCase()}switch(e.toLowerCase()){case"sha-1":return new Ho({algorithm:ic,parameters:null});case"sha-256":return new Ho({algorithm:sc,parameters:null});case"sha-384":return new Ho({algorithm:ac,parameters:null});case"sha-512":return new Ho({algorithm:cc,parameters:null})}}break;case"rsa-pss":if("hash"in t){if(!("saltLength"in t)||"number"!=typeof t.saltLength)throw new Error("Cannot get 'saltLength' from 'alg' argument");const e=jh.createPssParams(t.hash,t.saltLength);if(!e)throw new Error("Cannot create PSS parameters");return new Ho({algorithm:ec,parameters:qr.serialize(e)})}return new Ho({algorithm:ec,parameters:null})}return null}toWebAlgorithm(t){switch(t.algorithm){case Za:return{name:"RSASSA-PKCS1-v1_5"};case ic:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case sc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case ac:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case cc:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case ec:if(t.parameters){const e=qr.parse(t.parameters,Cc);return{name:"RSA-PSS",hash:el.resolve(su).toWebAlgorithm(e.hashAlgorithm),saltLength:e.saltLength}}return{name:"RSA-PSS"}}return null}};Yh=jh=Kr([rl()],Yh),el.registerSingleton(ou,Yh);let zh=class{toAsnAlgorithm(t){switch(t.name.toLowerCase()){case"sha-1":return new Ho({algorithm:hc});case"sha-256":return new Ho({algorithm:pc});case"sha-384":return new Ho({algorithm:fc});case"sha-512":return new Ho({algorithm:Ac})}return null}toWebAlgorithm(t){switch(t.algorithm){case hc:return{name:"SHA-1"};case pc:return{name:"SHA-256"};case fc:return{name:"SHA-384"};case Ac:return{name:"SHA-512"}}return null}};zh=Kr([rl()],zh),el.registerSingleton(ou,zh);class Jh{addPadding(t,e){const n=Ut._H.toUint8Array(e),r=new Uint8Array(t);return r.set(n,t-n.length),r.buffer}removePadding(t,e=!1){let n=Ut._H.toUint8Array(t);for(let t=0;t<n.length;t++)if(n[t]){n=n.slice(t);break}if(e&&n[0]>127){const t=new Uint8Array(n.length+1);return t.set(n,1),t.buffer}return n.buffer}toAsnSignature(t,e){if("ECDSA"===t.name){const n=t.namedCurve,r=Jh.namedCurveSize.get(n)||Jh.defaultNamedCurveSize,i=new Ka,o=Ut._H.toUint8Array(e);return i.r=this.removePadding(o.slice(0,r),!0),i.s=this.removePadding(o.slice(r,r+r),!0),qr.serialize(i)}return null}toWebSignature(t,e){if("ECDSA"===t.name){const n=qr.parse(e,Ka),r=t.namedCurve,i=Jh.namedCurveSize.get(r)||Jh.defaultNamedCurveSize,o=this.addPadding(i,this.removePadding(n.r)),s=this.addPadding(i,this.removePadding(n.s));return(0,Ut.kg)(o,s)}return null}}Jh.namedCurveSize=new Map,Jh.defaultNamedCurveSize=32;const Wh="1.3.101.110",qh="1.3.101.111",Kh="1.3.101.112",Xh="1.3.101.113";let Zh=class{toAsnAlgorithm(t){let e=null;switch(t.name.toLowerCase()){case"ed25519":e=Kh;break;case"x25519":e=Wh;break;case"eddsa":switch(t.namedCurve.toLowerCase()){case"ed25519":e=Kh;break;case"ed448":e=Xh}break;case"ecdh-es":switch(t.namedCurve.toLowerCase()){case"x25519":e=Wh;break;case"x448":e=qh}}return e?new Ho({algorithm:e}):null}toWebAlgorithm(t){switch(t.algorithm){case Kh:return{name:"Ed25519"};case Xh:return{name:"EdDSA",namedCurve:"Ed448"};case Wh:return{name:"X25519"};case qh:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};var $h,td,ed,nd,rd,id,od,sd,ad,cd,ld,ud,hd,dd,pd,fd,Ad,gd,Ed,md,yd;Zh=Kr([rl()],Zh),el.registerSingleton(ou,Zh);class wd extends Ch{get subjectName(){return Xr(this,td,"f")||Zr(this,td,new th(this.asn.certificationRequestInfo.subject),"f"),Xr(this,td,"f")}get subject(){return Xr(this,ed,"f")||Zr(this,ed,this.subjectName.toString(),"f"),Xr(this,ed,"f")}get signatureAlgorithm(){if(!Xr(this,nd,"f")){const t=el.resolve(su);Zr(this,nd,t.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return Xr(this,nd,"f")}get signature(){return Xr(this,rd,"f")||Zr(this,rd,this.asn.signature,"f"),Xr(this,rd,"f")}get publicKey(){return Xr(this,id,"f")||Zr(this,id,new Bh(this.asn.certificationRequestInfo.subjectPKInfo),"f"),Xr(this,id,"f")}get attributes(){return Xr(this,od,"f")||Zr(this,od,this.asn.certificationRequestInfo.attributes.map(t=>Vh.create(qr.serialize(t))),"f"),Xr(this,od,"f")}get extensions(){if(!Xr(this,sd,"f")){Zr(this,sd,[],"f");const t=this.getAttribute(_l);t instanceof Gh&&Zr(this,sd,t.items,"f")}return Xr(this,sd,"f")}get tbs(){return Xr(this,$h,"f")||Zr(this,$h,this.asn.certificationRequestInfoRaw||qr.serialize(this.asn.certificationRequestInfo),"f"),Xr(this,$h,"f")}constructor(t){const e=Ch.isAsnEncoded(t)?[t,iu]:[t];super(e[0],e[1]),$h.set(this,void 0),td.set(this,void 0),ed.set(this,void 0),nd.set(this,void 0),rd.set(this,void 0),id.set(this,void 0),od.set(this,void 0),sd.set(this,void 0),this.tag=Ih.CertificateRequestTag}onInit(t){}getAttribute(t){for(const e of this.attributes)if(e.type===t)return e;return null}getAttributes(t){return this.attributes.filter(e=>e.type===t)}getExtension(t){for(const e of this.extensions)if(e.type===t)return e;return null}getExtensions(t){return this.extensions.filter(e=>e.type===t)}async verify(t=qu.get()){const e={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(e,["verify"],t),r=el.resolveAll(Hh).reverse();let i=null;for(const t of r)if(i=t.toWebSignature(e,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await t.subtle.verify(this.signatureAlgorithm,n,i,this.tbs)}toTextObject(){const t=this.toTextObjectEmpty(),e=qr.parse(this.rawData,iu),n=e.certificationRequestInfo,r=new Gu("",{Version:`${Ko[n.version]} (${n.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){const t=new Gu("");for(const e of this.attributes){const n=e.toTextObject();t[n[Gu.NAME]]=n}r.Attributes=t}return t.Data=r,t.Signature=new Gu("",{Algorithm:Hu.serializeAlgorithm(e.signatureAlgorithm),"":e.signature}),t}}$h=new WeakMap,td=new WeakMap,ed=new WeakMap,nd=new WeakMap,rd=new WeakMap,id=new WeakMap,od=new WeakMap,sd=new WeakMap,wd.NAME="PKCS#10 Certificate Request";class Id extends Ch{get publicKey(){return Xr(this,md,"f")||Zr(this,md,new Bh(this.asn.tbsCertificate.subjectPublicKeyInfo),"f"),Xr(this,md,"f")}get serialNumber(){if(!Xr(this,cd,"f")){const t=this.asn.tbsCertificate;let e=new Uint8Array(t.serialNumber);e.length>1&&0===e[0]&&e[1]>127&&(e=e.slice(1)),Zr(this,cd,Ut.U$.ToHex(e),"f")}return Xr(this,cd,"f")}get subjectName(){return Xr(this,ld,"f")||Zr(this,ld,new th(this.asn.tbsCertificate.subject),"f"),Xr(this,ld,"f")}get subject(){return Xr(this,ud,"f")||Zr(this,ud,this.subjectName.toString(),"f"),Xr(this,ud,"f")}get issuerName(){return Xr(this,hd,"f")||Zr(this,hd,new th(this.asn.tbsCertificate.issuer),"f"),Xr(this,hd,"f")}get issuer(){return Xr(this,dd,"f")||Zr(this,dd,this.issuerName.toString(),"f"),Xr(this,dd,"f")}get notBefore(){if(!Xr(this,pd,"f")){const t=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!t)throw new Error("Cannot get 'notBefore' value");Zr(this,pd,t,"f")}return Xr(this,pd,"f")}get notAfter(){if(!Xr(this,fd,"f")){const t=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!t)throw new Error("Cannot get 'notAfter' value");Zr(this,fd,t,"f")}return Xr(this,fd,"f")}get signatureAlgorithm(){if(!Xr(this,Ad,"f")){const t=el.resolve(su);Zr(this,Ad,t.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return Xr(this,Ad,"f")}get signature(){return Xr(this,gd,"f")||Zr(this,gd,this.asn.signatureValue,"f"),Xr(this,gd,"f")}get extensions(){return Xr(this,Ed,"f")||(Zr(this,Ed,[],"f"),this.asn.tbsCertificate.extensions&&Zr(this,Ed,this.asn.tbsCertificate.extensions.map(t=>Lh.create(qr.serialize(t))),"f")),Xr(this,Ed,"f")}get tbs(){return Xr(this,ad,"f")||Zr(this,ad,this.asn.tbsCertificateRaw||qr.serialize(this.asn.tbsCertificate),"f"),Xr(this,ad,"f")}constructor(t){const e=Ch.isAsnEncoded(t)?[t,Zo]:[t];super(e[0],e[1]),ad.set(this,void 0),cd.set(this,void 0),ld.set(this,void 0),ud.set(this,void 0),hd.set(this,void 0),dd.set(this,void 0),pd.set(this,void 0),fd.set(this,void 0),Ad.set(this,void 0),gd.set(this,void 0),Ed.set(this,void 0),md.set(this,void 0),this.tag=Ih.CertificateTag}onInit(t){}getExtension(t){for(const e of this.extensions)if("string"==typeof t){if(e.type===t)return e}else if(e instanceof t)return e;return null}getExtensions(t){return this.extensions.filter(e=>"string"==typeof t?e.type===t:e instanceof t)}async verify(t={},e=qu.get()){let n,r;const i=t.publicKey;try{if(i)if("publicKey"in i)n={...i.publicKey.algorithm,...this.signatureAlgorithm},r=await i.publicKey.export(n,["verify"],e);else if(i instanceof Bh)n={...i.algorithm,...this.signatureAlgorithm},r=await i.export(n,["verify"],e);else if(Ut._H.isBufferSource(i)){const t=new Bh(i);n={...t.algorithm,...this.signatureAlgorithm},r=await t.export(n,["verify"],e)}else n={...i.algorithm,...this.signatureAlgorithm},r=i;else n={...this.publicKey.algorithm,...this.signatureAlgorithm},r=await this.publicKey.export(n,["verify"],e)}catch{return!1}const o=el.resolveAll(Hh).reverse();let s=null;for(const t of o)if(s=t.toWebSignature(n,this.signature),s)break;if(!s)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");const a=await e.subtle.verify(this.signatureAlgorithm,r,s,this.tbs);if(t.signatureOnly)return a;{const e=(t.date||new Date).getTime();return a&&this.notBefore.getTime()<e&&e<this.notAfter.getTime()}}async getThumbprint(...t){let e,n="SHA-1";return t[0]&&(t[0].subtle?e=t[0]:(n=t[0]||n,e=t[1])),null!=e||(e=qu.get()),await e.subtle.digest(n,this.rawData)}async isSelfSigned(t=qu.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},t)}toTextObject(){const t=this.toTextObjectEmpty(),e=qr.parse(this.rawData,Zo),n=e.tbsCertificate,r=new Gu("",{Version:`${Ko[n.version]} (${n.version})`,"Serial Number":n.serialNumber,"Signature Algorithm":Hu.serializeAlgorithm(n.signature),Issuer:this.issuer,Validity:new Gu("",{"Not Before":n.validity.notBefore.getTime(),"Not After":n.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(n.issuerUniqueID&&(r["Issuer Unique ID"]=n.issuerUniqueID),n.subjectUniqueID&&(r["Subject Unique ID"]=n.subjectUniqueID),this.extensions.length){const t=new Gu("");for(const e of this.extensions){const n=e.toTextObject();t[n[Gu.NAME]]=n}r.Extensions=t}return t.Data=r,t.Signature=new Gu("",{Algorithm:Hu.serializeAlgorithm(e.signatureAlgorithm),"":e.signatureValue}),t}}ad=new WeakMap,cd=new WeakMap,ld=new WeakMap,ud=new WeakMap,hd=new WeakMap,dd=new WeakMap,pd=new WeakMap,fd=new WeakMap,Ad=new WeakMap,gd=new WeakMap,Ed=new WeakMap,md=new WeakMap,Id.NAME="Certificate";!function(t){t[t.unspecified=0]="unspecified",t[t.keyCompromise=1]="keyCompromise",t[t.cACompromise=2]="cACompromise",t[t.affiliationChanged=3]="affiliationChanged",t[t.superseded=4]="superseded",t[t.cessationOfOperation=5]="cessationOfOperation",t[t.certificateHold=6]="certificateHold",t[t.removeFromCRL=8]="removeFromCRL",t[t.privilegeWithdrawn=9]="privilegeWithdrawn",t[t.aACompromise=10]="aACompromise"}(yd||(yd={}));new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;Lh.register(Ni,bh),Lh.register(io,Nh),Lh.register(mo,Sh),Lh.register(Fo,vh),Lh.register(bi,Th),Lh.register(vo,_h),Lh.register(zi,Rh),Lh.register(Ci,Fh),Lh.register(go,Qh),Vh.register(vl,Ph),Vh.register(_l,Gh),el.registerSingleton(Hh,class{toAsnSignature(t,e){return Ut._H.toArrayBuffer(e)}toWebSignature(t,e){return Ut._H.toArrayBuffer(e)}}),el.registerSingleton(Hh,Jh),Jh.namedCurveSize.set("P-256",32),Jh.namedCurveSize.set("K-256",32),Jh.namedCurveSize.set("P-384",48),Jh.namedCurveSize.set("P-521",66);function Cd(t){let e;try{e=new Id(t)}catch(t){throw new Error(`Unsupported certificate: ${t}`)}return{internal:e,isWithinValidity(){const t=new Date;return t>e.notBefore&&t<e.notAfter},getAIAExtension(){const t=e.getExtension("1.3.6.1.5.5.7.1.1");return t?.caIssuers?.find(t=>"url"===t.type)?.value},getSubjectField:t=>e.subjectName.getField(t),getAlternativeDNSNames(){const t=e.extensions.find(t=>"2.5.29.17"===t.type);return t instanceof _h?t.names.items.filter(t=>"dns"===t.type).map(t=>t.value):[]},isIssuer:({internal:t})=>t.issuer===e.subject,getPublicKey:()=>({buffer:new Uint8Array(e.publicKey.rawData),algorithm:e.publicKey.algorithm.name}),async verifyIssued(t){const n=function(t,{signatureAlgorithm:e}){if(!("name"in e))throw new Error("Missing signature algorithm name");const{name:n,hash:r}=e,{algorithm:i}=t;if(i.name!==n)throw new Error(`Signature algorithm ${n} does not match public key algorithm ${i.name}`);let o;switch(r.name){case"SHA-256":o="SHA256";break;case"SHA-384":o="SHA384";break;case"SHA-512":o="SHA512";break;case"SHA-1":o="SHA1";break;default:throw new Error(`Unsupported hash algorithm: ${r.name}`)}switch(n){case"RSASSA-PKCS1-v1_5":case"RSA-PKCS1-SHA1":return`RSA-PKCS1-${o}`;case"ECDSA":if("SHA512"===o||"SHA1"===o)throw new Error(`Unsupported hash algorithm for ECDSA: ${o}`);switch(i.namedCurve){case"P-256":return`ECDSA-SECP256R1-${o}`;case"P-384":return`ECDSA-SECP384R1-${o}`;default:throw new Error(`Unsupported named curve: ${i.namedCurve}`)}default:throw new Error(`Unsupported signature algorithm: ${n}`)}}(e.publicKey,t.internal),r=await C.importKey(n,new Uint8Array(e.publicKey.rawData),"public"),i=new Uint8Array(t.internal.signature);return await C.verify(n,{publicKey:r,signature:i,data:new Uint8Array(t.internal.tbs)})},serialiseToPem:()=>e.toString("pem")}}function Bd(t){return Cd(t)}async function Td(t){const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch certificate from ${t}: ${e.statusText}`);const n=await e.arrayBuffer();return new Uint8Array(n)}const bd=Z("TLS 1.3, server CertificateVerify");let Dd;function Md(t,{version:e}){const n="TLS1_3"===e?function(e){const n=t.slice(0,e);return t=t.slice(e),n}(1)[0]:0;t=i(3);const r=[];for(;t.length;){const t=Bd(i(3));r.push(t),"TLS1_3"===e&&i(2)}return{certificates:r,ctx:n};function i(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}}function Nd(t){const e=function(e){const n=t.slice(0,e);return t=t.slice(e),n}(2),n=H.find(t=>K(V[t].identifier,e));if(!n)throw new Error(`Unsupported signature algorithm '${e}'`);return{algorithm:n,signature:function(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}(2)}}async function Sd({signature:t,algorithm:e,publicKey:n,signatureData:r}){const{algorithm:i}=V[e],o=await C.importKey(i,n.buffer,"public");if(!await C.verify(i,{data:r,signature:t,publicKey:o}))throw new Error(`${e} signature verification failed`)}async function vd(t,e){const n=await At(t,e);return q([new Uint8Array(64).fill(32),bd,new Uint8Array([0]),n])}async function _d({clientRandom:t,serverRandom:e,curveType:n,publicKey:r}){const i=await C.exportKey(r);return q([t,e,q([new Uint8Array([3]),T[n].identifier]),at(i).slice(1)])}async function Ld(t,e,n,r=Td,i){const o=[...Rd(),...i||[]],s=t[0];if(![...s.getSubjectField("CN"),...s.getAlternativeDNSNames()].some(t=>function(t,e){const n=t.split("."),r=e.split(".");if(r.length!==n.length){if("*"!==r[0]||r.length!==n.length+1)return!1;r.shift()}return n.every((t,e)=>t===r[e]||"*"===r[e])}(e,t)))throw new Error(`Certificate is not for host ${e}`);t=[...t];for(let e=0;e<t.length;e++){const i=t[e],s=i.getSubjectField("CN");if(!i.isWithinValidity())throw new Error(`Certificate ${s} (i: ${e}) is outside validity`);let a=xd(t.slice(e+1),i);if(a||(a=xd(o,i)),!a){const o=i.getAIAExtension();if(!o)throw new Error(`Missing issuer for certificate ${s} (i: ${e})`);if(TLS_INTERMEDIATE_CA_CACHE?.[o])a=TLS_INTERMEDIATE_CA_CACHE[o];else{n.debug({aiaExt:o,cn:s},"fetching issuer certificate via AIA extension");const e=await r(o);a=await Cd(e),t.push(a),TLS_INTERMEDIATE_CA_CACHE[o]=a}}if(!a.isWithinValidity())throw new Error(`Issuer Cert ${s} is not within validity period`);if(!await a.verifyIssued(i)){const t=a.getSubjectField("CN");throw new Error(`Verification of ${s} failed by issuer ${t} (i: ${e})`)}}}function xd(t,e){for(const n of t)if(n.isIssuer(e))return n}function Rd(){return Dd||(Dd=Qt.map(Cd),"undefined"!=typeof TLS_ADDITIONAL_ROOT_CA_LIST&&Dd.push(...TLS_ADDITIONAL_ROOT_CA_LIST.map(Cd)),Dd)}function Fd(t){return Od(t,{ALPN:t=>{const e=st(t);return $(st(e,1))},SUPPORTED_VERSIONS:nt,PRE_SHARED_KEY:()=>({supported:!0}),KEY_SHARE:t=>{const e=t.slice(0,2),n=U.find(t=>K(T[t].identifier,e));if(!n)throw new Error(`Unsupported key type '${e}'`);return{type:n,publicKey:st(t.slice(2))}}})}function Od(t,e){t=o(2);const n={},r=new Set;for(;t.length;){const t=i(2)[1],s=o(2),a=Y.find(e=>j[e]===t);if(r.has(t))throw new Error(`Duplicate extension '${a}' (${t})`);a&&a in e&&(n[a]=e[a](s))}return n;function i(e){const n=t.slice(0,e);return t=t.slice(e),n}function o(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}}async function kd(t){l(2);const e=l(32),n=function(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}(1),r=l(2),i=G.find(t=>K(P[t].identifier,r));if(!i)throw new Error(`Unsupported cipher suite '${r}'`);const o=l(1)[0];if(0!==o)throw new Error(`Unsupported compression method '${o.toString(16)}'`);const s=Fd(t),a=s.SUPPORTED_VERSIONS||"TLS1_2",c=s.KEY_SHARE;if("TLS1_3"===a&&!c)throw new Error("Missing key share in TLS 1.3");return{serverTlsVersion:a,serverRandom:e,sessionId:n,cipherSuite:i,supportsPsk:!!s.PRE_SHARED_KEY?.supported,extensions:s,...c?{publicKey:await C.importKey(T[c.type].algorithm,c.publicKey,"public"),publicKeyType:c.type}:{}};function l(e){const n=t.slice(0,e);return t=t.slice(e),n}}function Qd(t){const e=s(4).getUint32(0),n=s(4).getUint32(0),r=a(1),i=a(2),o=a(2);return{ticket:i,lifetimeS:e,ticketAgeAddMs:n,nonce:r,expiresAt:new Date(Date.now()+1e3*e),extensions:o};function s(e){const n=t.slice(0,e);return t=t.slice(e),X(n)}function a(e=2){const n=st(t,e);return t=t.slice(n.length+e),n}}async function Ud(t,e){if(!("recordHeader"in e))throw new Error("recordHeader is required for decrypt");const{key:n,recordNumber:r,cipherSuite:i}=e,{cipher:o,hashLength:s}=P[i];return et(o)?async function(r){const i=t.slice(0,16),o=t.slice(16);let a=await C.decrypt(r,{key:n,iv:i,data:o});a=function(t){const e=t[t.length-1];for(let n=0;n<e;n++)if(t[t.length-1-n]!==e)throw new Error("Invalid padding");return t.slice(0,t.length-e)}(a),a=a.slice(0,-1);const c=a.slice(-s),l=a.slice(0,-s),u=await Hd(l,e);if(!K(c,u))throw new Error(`MAC mismatch: expected ${W(u)}, got ${W(c)}`);return{plaintext:l,iv:i}}(o):async function(i){let o=e.iv;const s=12-o.length;if(s){const e=t.slice(0,s);t=t.slice(s),o=q([o,e])}else"TLS1_3"!==e.version&&"CHACHA20-POLY1305"!==i||void 0===r||(o=tt(o,r));const a=t.slice(-16),c=Gd((t=t.slice(0,-16)).length,e),{plaintext:l}=await C.authenticatedDecrypt(i,{key:n,iv:o,data:t,aead:c,authTag:a});if(l.length!==t.length)throw new Error("Decrypted length does not match encrypted length");return{plaintext:l,iv:o}}(o)}async function Pd(t,e){const{key:n,recordNumber:r,cipherSuite:i}=e,{cipher:o}=P[i];let s=e.iv;return et(o)?async function(r){s=function(t,e){const n=new Uint8Array(e);return n.set(t,e-t.length),n}(e.iv,16).slice(0,16);const i=await Hd(t,e),o=function(t,e){const n=t.length%e===0?t.length+e:Math.ceil(t.length/e)*e,r=n-t.length-1,i=new Uint8Array(n);return i.set(t),i.fill(r,t.length),i.fill(r,n-1),i}(q([t,i]),16),a=await C.encrypt(r,{key:n,iv:s,data:o});return{ciphertext:q([s,a]),iv:s}}(o):async function(i){const o=Gd(t.length,e),a=12-s.length;let c,l=s;if(a&&void 0!==r){c=new Uint8Array(a);X(c).setUint32(a-4,r),l=q([s,c])}else"TLS1_3"!==e.version&&"CHACHA20-POLY1305"!==i||void 0===r||(l=tt(l,r));const u=await C.authenticatedEncrypt(i,{key:n,iv:l,data:t,aead:o});c&&(u.ciphertext=q([c,u.ciphertext]));return{ciphertext:q([u.ciphertext,u.authTag]),iv:l}}(o)}function Gd(t,e){let n;if("TLS1_3"===e.version){const r=t+16;n="recordHeaderOpts"in e?rt(r,e.recordHeaderOpts):jd(e.recordHeader,r)}else n=Vd(t,e);return n}function Vd(t,e){const{recordNumber:n}=e,r="recordHeaderOpts"in e?rt(t,e.recordHeaderOpts):jd(e.recordHeader,t),i=new Uint8Array(8);return X(i).setUint32(4,n||0),q([i,r])}async function Hd(t,e){const{macKey:n,cipherSuite:r}=e;if(!n)throw new Error("macKey is required for non-AEAD cipher");const{hashAlgorithm:i}=P[r],o=q([Vd(t.length,e),t]);return await C.hmac(i,n,o)}function jd(t,e){const n=new Uint8Array(t);return X(n).setUint16(3,e),n}function Yd({host:t,verifyServerCertificate:e=!0,rootCAs:n,logger:r,cipherSuites:i,namedCurves:o=U,supportedProtocolVersions:s,signatureAlgorithms:a,applicationLayerProtocols:c,fetchCertificateBytes:l,write:u,onRead:h,onApplicationData:d,onSessionTicket:p,onTlsEnd:f,onHandshake:A,onRecvCertificates:g}){const E=r||xt,m=function(t){let e,n,r=new Uint8Array(0),i=0;return{getPendingBuffer:()=>r,*onData(o){for(r=q([r,o]);r.length;){if(!e){if(r.length<5)break;const o=r[0];e=o;const s=X(r);i=s.getUint16(3),n=r.slice(0,5),r=r.slice(5),t.trace({bytesLeft:i,recvBuffer:r.length,type:e},"starting processing packet")}if(r.length<i)break;const o=r.slice(0,i);t.trace({type:e},"got complete packet");const s={type:e,packet:{header:n,content:o}};e=void 0,r=r.slice(o.length),yield s}},reset(){e=void 0,n=void 0,r=new Uint8Array(0),i=0}}}(E),{enqueue:y}=(()=>{let t=Promise.resolve();return{enqueue:(e,...n)=>(t=(async()=>{try{await t}catch{}return await e(...n)})(),t)}})(),w={};let I,B,b,F,G,V,H,j,Y,Z=!1,$=!1,tt=new Uint8Array,et=[],nt=0,it=0,st=!1,ct=new Uint8Array,lt=!1,gt=!1;const Et=async({type:r,packet:{content:i,header:o}})=>{if($)return void E.warn("connection closed, ignoring packet");let s,a={type:"plaintext"};if(st||r===z.WRAPPED_RECORD){E.trace("recv wrapped record");const t="serverMacKey"in b?b.serverMacKey:void 0,e=await Ud(i,{key:b.serverEncKey,iv:b.serverIv,recordHeader:o,recordNumber:it,cipherSuite:I,version:G,macKey:t});if("TLS1_3"===G){const t=e.plaintext[e.plaintext.length-1];s=Object.entries(Q).find(([,e])=>e===t)?.[0]}a={type:"ciphertext",encKey:b.serverEncKey,fixedIv:b.serverIv,iv:e.iv,recordNumber:it,macKey:t,ciphertext:i,plaintext:e.plaintext,contentType:s},i=e.plaintext,s&&(i=i.slice(0,-1)),E.trace({recordRecvCount:it,contentType:s,length:i.length},"decrypted wrapped record"),it+=1}if(h?.({content:i,header:o},a),r!==z.WRAPPED_RECORD&&r!==z.HELLO)return r===z.CHANGE_CIPHER_SPEC?(E.debug("received change cipher spec"),void(st=!0)):r===z.ALERT?void await It(i):void E.warn({type:r.toString(16),chunk:W(i)},"cannot process message");try{await async function({content:r,contentType:i,header:o}){if(i??=o[0],i===Q.HANDSHAKE){let s;for(ct=q([ct,r]);s=a();){const{type:c,content:u}=s;switch(c){case D:E.trace("received server hello");const h=await kd(u);if(!h.supportsPsk&&B)throw new Error("Server does not support PSK");I=h.cipherSuite,G=h.serverTlsVersion,H=h.serverRandom,yt(h.extensions?.ALPN);const f=P[I];E.debug({cipherSuite:I,connTlsVersion:G,selectedAlpn:j},"processed server hello"),h.publicKeyType&&h.publicKey?await Bt({publicKeyType:h.publicKeyType,publicKey:h.publicKey}):"isRsaEcdh"in f&&f.isRsaEcdh&&(F="RSA");break;case S:const A=Fd(u);E.debug({len:u.length,extData:A},"received encrypted extensions"),yt(A?.ALPN);break;case M:throw new Error("Hello retry not supported. Please re-establish connection");case v:E.trace({len:u.length},"received certificate");const m=Md(u,{version:G});Y=m.certificates,E.debug({len:Y.length},"parsed certificates"),e&&!gt&&(await Ld(Y,t,E,l,n),E.debug("verified certificate chain"),gt=!0),g?.({certificates:Y});break;case R:E.debug({len:u.length},"received certificate verify");const y=Nd(u);if(E.debug({alg:y.algorithm},"parsed certificate verify"),!Y?.length)throw new Error("No certificates received");const C=await vd(et.slice(0,-1),I);await Sd({...y,publicKey:Y[0].getPublicKey(),signatureData:C});break;case O:await Ct(u);break;case k:const T=await ht(b.serverSecret,I),U=await pt(T,I);b={...b,serverSecret:T,serverEncKey:U.encKey,serverIv:U.iv},it=0,E.debug("updated server traffic keys");break;case N:if("TLS1_3"===G){E.debug({len:r.length},"received session ticket");const X=Qd(u);p?.(X)}else E.warn("ignoring received session ticket in TLS 1.2");break;case L:E.debug("received client certificate request"),lt=!0;break;case _:if(E.trace("received server key share"),!Y?.length)throw new Error("No certificates received");const z=await _t(u);E.debug({publicKeyType:z.publicKeyType,signatureAlgorithm:z.signatureAlgorithm},"got server key share");const J=await _d({clientRandom:V,serverRandom:H,curveType:z.publicKeyType,publicKey:z.publicKey});await Sd({signature:z.signatureBytes,algorithm:z.signatureAlgorithm,publicKey:Y[0].getPublicKey(),signatureData:J}),E.debug("verified server key share signature"),e&&!gt&&(await Ld(Y,t,E,l,n),E.debug("verified certificate chain"),gt=!0),await Bt(z);break;case x:if(E.debug("server hello done"),!F)throw new Error("Key exchange without key-type not supported");let W;if("RSA"===F){if(b)throw new Error("Keys already computed, despite RSA key type");const{preMasterSecret:$,encrypted:tt}=await Lt(Y[0],G);W=await vt(tt),b=await ut({preMasterSecret:$,clientRandom:V,serverRandom:H,cipherSuite:I})}else W=await St(w[F].pubKey);await Ot({type:"HELLO",data:W}),et.push(W),await bt();const K=await Mt({secret:b.masterSecret,handshakeMessages:et,cipherSuite:I});await Dt({data:K,type:"HELLO"}),et.push(K);break;default:E.warn({type:c.toString(16)},"cannot process record")}}function a(){if(!ct.length)return;const t=ct[0],e=ot(ct.slice(1),3);if(!e)return void E.warn("missing bytes from packet");const n=4+e.length;return Z||et.push(ct.slice(0,n)),ct=ct.slice(n),{type:t,content:e}}}else i===Q.APPLICATION_DATA?(E.trace({len:r.length},"received application data"),d?.(r)):i===Q.ALERT?await It(r):E.warn({record:r,contentType:i?.toString(16)},"cannot process record")}({content:i,contentType:s?Q[s]:void 0,header:o})}catch(t){E.error({err:t},"error processing record"),kt(t)}},mt=t=>y(Et,t);function yt(t){if(j=t||c?.[0],j&&!c?.includes(j))throw new Error(`Server selected unsupported ALPN: "${j}"`)}async function It(t){if($)return void E.warn("connection closed, ignoring alert");const{level:e,description:n}=function(t){const e=X(t),n=e.getUint8(0),r=e.getUint8(1),i=Rt.find(([,t])=>t===n)?.[0];if(!i)throw new Error(`Unknown alert level ${n}`);const o=Ft.find(([,t])=>t===r)?.[0];if(!o)throw new Error(`Unknown alert description ${r}`);return{level:i,description:o}}(t),r="HANDSHAKE_FAILURE"===n||"PROTOCOL_VERSION"===n?"Unsupported TLS version":"received alert";E["WARNING"===e?"warn":"error"]({level:e,description:n},r),"FATAL"!==e&&"CLOSE_NOTIFY"!==n||kt("FATAL"===e?new Error(`Fatal alert: ${n}`):void 0)}async function Ct(t){if(E.debug("received server finish"),!gt&&!B&&e)throw new Error("Finish received before certificate verification");"TLS1_2"===G?await async function(t){if(!K(await Nt("server",{handshakeMessages:et.slice(0,-1),secret:b.masterSecret,cipherSuite:I}),t))throw new Error("Server finish does not match")}(t):await async function(t){const e=await dt({hellos:et,cipherSuite:I,secretType:"ap",masterSecret:b.masterSecret}),n=et.slice(0,-1);await async function(t,e){if(!K(await Tt(e),t))throw new Error("Invalid finish message")}(t,{secret:b.serverSecret,handshakeMessages:n,cipherSuite:I}),E.debug("server finish verified"),await async function(){if(lt){const t=q([new Uint8Array([v,0]),at(new Uint8Array([0,0,0,0]))]);E.trace({cert:W(t)},"sending zero certs"),await Dt({type:"WRAPPED_RECORD",data:t,contentType:"HANDSHAKE"}),et.push(t)}}();const r=await async function(t){const e=await Tt(t);return q([new Uint8Array([O,0]),at(e)])}({secret:b.clientSecret,handshakeMessages:et,cipherSuite:I});E.trace({finish:W(r)},"sending client finish"),await Dt({type:"WRAPPED_RECORD",data:r,contentType:"HANDSHAKE"}),et.push(r),b=e,nt=0,it=0}(t),Z=!0,A?.()}async function Bt(t){F=t.publicKeyType;const{keyPair:e,algorithm:n}=await Qt(t.publicKeyType),r=await C.calculateSharedSecret(n,e.privKey,t.publicKey);b="TLS1_2"===G?await ut({preMasterSecret:r,clientRandom:V,serverRandom:H,cipherSuite:I}):await dt({hellos:et,cipherSuite:I,secretType:"hs",masterSecret:r,earlySecret:B}),E.debug({keyType:F},"computed shared keys")}async function bt(){E.debug("sending change cipher spec");const t=new Uint8Array([1]);await Ot({type:"CHANGE_CIPHER_SPEC",data:t})}async function Dt(t){E.trace({...t,data:W(t.data)},"writing enc packet");const e="clientMacKey"in b?b.clientMacKey:void 0;let n=t.data;"TLS1_3"===G&&void 0!==t.contentType&&(n=q([n,new Uint8Array([Q[t.contentType]])]));const{ciphertext:r,iv:i}=await Pd(n,{key:b.clientEncKey,iv:b.clientIv,recordNumber:nt,cipherSuite:I,macKey:e,recordHeaderOpts:{type:t.type,version:t.version},version:G}),o=rt(r.length,t);await u({header:o,content:r},{type:"ciphertext",encKey:b.clientEncKey,fixedIv:b.clientIv,iv:i,recordNumber:nt,macKey:e,ciphertext:r,plaintext:n,contentType:t.contentType}),nt+=1}async function Ot(t){E.trace({...t,data:W(t.data)},"writing packet");const e=rt(t.data.length,t);await u({header:e,content:t.data},{type:"plaintext"})}async function kt(t){await y(()=>{}),E.trace({err:t},"ended tls connection"),$=!0,Z=!1,et=[],b=void 0,nt=0,it=0,B=void 0,I=void 0,F=void 0,V=void 0,H=void 0,m.reset(),f?.(t)}async function Qt(t){const e=T[t].algorithm;return w[t]??=await C.generateKeyPair(e),{algorithm:e,keyPair:w[t]}}return{getMetadata:()=>({cipherSuite:I,keyType:F,version:G,selectedAlpn:j}),hasEnded:()=>$,getKeys(){if(b)return{...b,recordSendCount:nt,recordRecvCount:it}},getSessionId:()=>tt,isHandshakeDone:()=>Z,getPskFromTicket:t=>async function(t,{masterKey:e,hellos:n,cipherSuite:r}){const{hashAlgorithm:i,hashLength:o}=P[r],s=await At(n,r),a=await ft(i,e,"res master",s,o),c=await ft(i,a,"resumption",t.nonce,o),l=await C.hash(i,new Uint8Array),u=await C.extract(i,o,c,""),h=await ft(i,u,"res binder",l,o),d=await ft(i,h,"finished",new Uint8Array,o),p=Math.floor(t.lifetimeS/1e3+t.ticketAgeAddMs);return{identity:t.ticket,ticketAge:p,finishKey:await C.importKey(i,d),resumeMasterSecret:a,earlySecret:u,cipherSuite:r}}(t,{masterKey:b.masterSecret,hellos:et,cipherSuite:I}),async startHandshake(e){if(Z)throw new Error("Handshake already done");tt=C.randomBytes(32),$=!1,V=e?.random||C.randomBytes(32);const n=await wt({host:t,keysToShare:await Promise.all(o.map(async t=>{const{keyPair:e}=await Qt(t);return{type:t,key:e.pubKey}})),random:V,sessionId:tt,psk:e?.psk,cipherSuites:i,supportedProtocolVersions:s,signatureAlgorithms:a,applicationLayerProtocols:c});et.push(n),e?.psk&&(B=e.psk.earlySecret),await Ot({type:"HELLO",data:n})},async handleReceivedBytes(t){await Promise.all(Array.from(m.onData(t)).map(mt))},handleReceivedPacket:mt,async updateTrafficKeys(t=!1){const e=function(t){const e=at(new Uint8Array([J[t]]));return q([new Uint8Array([k,0]),e])}(t?"UPDATE_REQUESTED":"UPDATE_NOT_REQUESTED");await Dt({data:e,type:"WRAPPED_RECORD",contentType:"HANDSHAKE"});const n=await ht(b.clientSecret,I),r=await pt(n,I);b={...b,clientSecret:n,clientEncKey:r.encKey,clientIv:r.iv},nt=0,E.info("updated client traffic keys")},async write(t){if(!Z)throw new Error("Handshake not done");const e=function(t,e){const n=[];for(let r=0;r<t.length;r+=e)n.push(t.slice(r,r+e));return n}(t,16380);for(const t of e)await Dt({data:t,type:"WRAPPED_RECORD",contentType:"APPLICATION_DATA"})},end:kt}}
|
|
109
|
+
/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */
|
|
110
|
+
function zd(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name}function Jd(t){if("boolean"!=typeof t)throw new Error(`boolean expected, not ${t}`)}function Wd(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function qd(t,...e){if(!zd(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Kd(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Xd(t,e){qd(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Zd(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function $d(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function tp(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const ep=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function np(t){if("string"==typeof t)t=function(t){if("string"!=typeof t)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(t))}(t);else{if(!zd(t))throw new Error("Uint8Array expected, got "+typeof t);t=hp(t)}return t}function rp(t,e){return t.buffer===e.buffer&&t.byteOffset<e.byteOffset+e.byteLength&&e.byteOffset<t.byteOffset+t.byteLength}function ip(t,e){if(rp(t,e)&&t.byteOffset<e.byteOffset)throw new Error("complex overlap of input and output is not supported")}function op(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return 0===n}const sp=(t,e)=>{function n(n,...r){if(qd(n),!ep)throw new Error("Non little-endian hardware is not yet supported");if(void 0!==t.nonceLength){const e=r[0];if(!e)throw new Error("nonce / iv required");t.varSizeNonce?qd(e):qd(e,t.nonceLength)}const i=t.tagLength;i&&void 0!==r[1]&&qd(r[1]);const o=e(n,...r),s=(t,e)=>{if(void 0!==e){if(2!==t)throw new Error("cipher output not supported");qd(e)}};let a=!1;const c={encrypt(t,e){if(a)throw new Error("cannot encrypt() twice with same key + nonce");return a=!0,qd(t),s(o.encrypt.length,e),o.encrypt(t,e)},decrypt(t,e){if(qd(t),i&&t.length<i)throw new Error("invalid ciphertext length: smaller than tagLength="+i);return s(o.decrypt.length,e),o.decrypt(t,e)}};return c}return Object.assign(n,t),n};function ap(t,e,n=!0){if(void 0===e)return new Uint8Array(t);if(e.length!==t)throw new Error("invalid output length, expected "+t+", got: "+e.length);if(n&&!up(e))throw new Error("invalid output, must be aligned");return e}function cp(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),a=Number(n&o),c=r?4:0,l=r?0:4;t.setUint32(e+c,s,r),t.setUint32(e+l,a,r)}function lp(t,e,n){Jd(n);const r=new Uint8Array(16),i=tp(r);return cp(i,0,BigInt(e),n),cp(i,8,BigInt(t),n),r}function up(t){return t.byteOffset%4==0}function hp(t){return Uint8Array.from(t)}const dp=16,pp=new Uint8Array(16),fp=Zd(pp),Ap=(t,e,n,r)=>({s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^225<<24&-(1&(1&r))}),gp=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255;class Ep{constructor(t,e){this.blockLen=dp,this.outputLen=dp,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,qd(t=np(t),16);const n=tp(t);let r=n.getUint32(0,!1),i=n.getUint32(4,!1),o=n.getUint32(8,!1),s=n.getUint32(12,!1);const a=[];for(let t=0;t<128;t++)a.push({s0:gp(r),s1:gp(i),s2:gp(o),s3:gp(s)}),({s0:r,s1:i,s2:o,s3:s}=Ap(r,i,o,s));const c=(t=>t>65536?8:t>1024?4:2)(e||1024);if(![1,2,4,8].includes(c))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=c;const l=128/c,u=this.windowSize=2**c,h=[];for(let t=0;t<l;t++)for(let e=0;e<u;e++){let n=0,r=0,i=0,o=0;for(let s=0;s<c;s++){if(!(e>>>c-s-1&1))continue;const{s0:l,s1:u,s2:h,s3:d}=a[c*t+s];n^=l,r^=u,i^=h,o^=d}h.push({s0:n,s1:r,s2:i,s3:o})}this.t=h}_updateBlock(t,e,n,r){t^=this.s0,e^=this.s1,n^=this.s2,r^=this.s3;const{W:i,t:o,windowSize:s}=this;let a=0,c=0,l=0,u=0;const h=(1<<i)-1;let d=0;for(const p of[t,e,n,r])for(let t=0;t<4;t++){const e=p>>>8*t&255;for(let t=8/i-1;t>=0;t--){const n=e>>>i*t&h,{s0:r,s1:p,s2:f,s3:A}=o[d*s+n];a^=r,c^=p,l^=f,u^=A,d+=1}}this.s0=a,this.s1=c,this.s2=l,this.s3=u}update(t){Kd(this),qd(t=np(t));const e=Zd(t),n=Math.floor(t.length/dp),r=t.length%dp;for(let t=0;t<n;t++)this._updateBlock(e[4*t+0],e[4*t+1],e[4*t+2],e[4*t+3]);return r&&(pp.set(t.subarray(n*dp)),this._updateBlock(fp[0],fp[1],fp[2],fp[3]),$d(fp)),this}destroy(){const{t}=this;for(const e of t)e.s0=0,e.s1=0,e.s2=0,e.s3=0}digestInto(t){Kd(this),Xd(t,this),this.finished=!0;const{s0:e,s1:n,s2:r,s3:i}=this,o=Zd(t);return o[0]=e,o[1]=n,o[2]=r,o[3]=i,t}digest(){const t=new Uint8Array(dp);return this.digestInto(t),this.destroy(),t}}class mp extends Ep{constructor(t,e){qd(t=np(t));const n=function(t){t.reverse();const e=1&t[15];let n=0;for(let e=0;e<t.length;e++){const r=t[e];t[e]=r>>>1|n,n=(1&r)<<7}return t[0]^=225&-e,t}(hp(t));super(n,e),$d(n)}update(t){t=np(t),Kd(this);const e=Zd(t),n=t.length%dp,r=Math.floor(t.length/dp);for(let t=0;t<r;t++)this._updateBlock(gp(e[4*t+3]),gp(e[4*t+2]),gp(e[4*t+1]),gp(e[4*t+0]));return n&&(pp.set(t.subarray(r*dp)),this._updateBlock(gp(fp[3]),gp(fp[2]),gp(fp[1]),gp(fp[0])),$d(fp)),this}digestInto(t){Kd(this),Xd(t,this),this.finished=!0;const{s0:e,s1:n,s2:r,s3:i}=this,o=Zd(t);return o[0]=e,o[1]=n,o[2]=r,o[3]=i,t.reverse()}}function yp(t){const e=(e,n)=>t(n,e.length).update(np(e)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(e,n)=>t(e,n),e}yp((t,e)=>new Ep(t,e)),yp((t,e)=>new mp(t,e));const wp=16;function Ip(t){return t<<1^283&-(t>>7)}function Cp(t,e){let n=0;for(;e>0;e>>=1)n^=t&-(1&e),t=Ip(t);return n}const Bp=(()=>{const t=new Uint8Array(256);for(let e=0,n=1;e<256;e++,n^=Ip(n))t[e]=n;const e=new Uint8Array(256);e[0]=99;for(let n=0;n<255;n++){let r=t[255-n];r|=r<<8,e[t[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return $d(t),e})(),Tp=Bp.map((t,e)=>Bp.indexOf(e)),bp=t=>t<<24|t>>>8,Dp=t=>t<<8|t>>>24;function Mp(t,e){if(256!==t.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>e(t[r])),r=n.map(Dp),i=r.map(Dp),o=i.map(Dp),s=new Uint32Array(65536),a=new Uint32Array(65536),c=new Uint16Array(65536);for(let e=0;e<256;e++)for(let l=0;l<256;l++){const u=256*e+l;s[u]=n[e]^r[l],a[u]=i[e]^o[l],c[u]=t[e]<<8|t[l]}return{sbox:t,sbox2:c,T0:n,T1:r,T2:i,T3:o,T01:s,T23:a}}const Np=Mp(Bp,t=>Cp(t,3)<<24|t<<16|t<<8|Cp(t,2)),Sp=Mp(Tp,t=>Cp(t,11)<<24|Cp(t,13)<<16|Cp(t,9)<<8|Cp(t,14)),vp=(()=>{const t=new Uint8Array(16);for(let e=0,n=1;e<16;e++,n=Ip(n))t[e]=n;return t})();function _p(t){qd(t);const e=t.length;if(![16,24,32].includes(e))throw new Error("aes: invalid key size, should be 16, 24 or 32, got "+e);const{sbox2:n}=Np,r=[];up(t)||r.push(t=hp(t));const i=Zd(t),o=i.length,s=t=>Rp(n,t,t,t,t),a=new Uint32Array(e+28);a.set(i);for(let t=o;t<a.length;t++){let e=a[t-1];t%o===0?e=s(bp(e))^vp[t/o-1]:o>6&&t%o===4&&(e=s(e)),a[t]=a[t-o]^e}return $d(...r),a}function Lp(t){const e=_p(t),n=e.slice(),r=e.length,{sbox2:i}=Np,{T0:o,T1:s,T2:a,T3:c}=Sp;for(let t=0;t<r;t+=4)for(let i=0;i<4;i++)n[t+i]=e[r-t-4+i];$d(e);for(let t=4;t<r-4;t++){const e=n[t],r=Rp(i,e,e,e,e);n[t]=o[255&r]^s[r>>>8&255]^a[r>>>16&255]^c[r>>>24]}return n}function xp(t,e,n,r,i,o){return t[n<<8&65280|r>>>8&255]^e[i>>>8&65280|o>>>24&255]}function Rp(t,e,n,r,i){return t[255&e|65280&n]|t[r>>>16&255|i>>>16&65280]<<16}function Fp(t,e,n,r,i){const{sbox2:o,T01:s,T23:a}=Np;let c=0;e^=t[c++],n^=t[c++],r^=t[c++],i^=t[c++];const l=t.length/4-2;for(let o=0;o<l;o++){const o=t[c++]^xp(s,a,e,n,r,i),l=t[c++]^xp(s,a,n,r,i,e),u=t[c++]^xp(s,a,r,i,e,n),h=t[c++]^xp(s,a,i,e,n,r);e=o,n=l,r=u,i=h}return{s0:t[c++]^Rp(o,e,n,r,i),s1:t[c++]^Rp(o,n,r,i,e),s2:t[c++]^Rp(o,r,i,e,n),s3:t[c++]^Rp(o,i,e,n,r)}}function Op(t,e,n,r,i){const{sbox2:o,T01:s,T23:a}=Sp;let c=0;e^=t[c++],n^=t[c++],r^=t[c++],i^=t[c++];const l=t.length/4-2;for(let o=0;o<l;o++){const o=t[c++]^xp(s,a,e,i,r,n),l=t[c++]^xp(s,a,n,e,i,r),u=t[c++]^xp(s,a,r,n,e,i),h=t[c++]^xp(s,a,i,r,n,e);e=o,n=l,r=u,i=h}return{s0:t[c++]^Rp(o,e,i,r,n),s1:t[c++]^Rp(o,n,e,i,r),s2:t[c++]^Rp(o,r,n,e,i),s3:t[c++]^Rp(o,i,r,n,e)}}function kp(t){if(qd(t),t.length%wp!==0)throw new Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size 16")}function Qp(t,e,n){qd(t);let r=t.length;const i=r%wp;if(!e&&0!==i)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");up(t)||(t=hp(t));const o=Zd(t);if(e){let t=wp-i;t||(t=wp),r+=t}ip(t,n=ap(r,n));return{b:o,o:Zd(n),out:n}}function Up(t,e){if(!e)return t;const n=t.length;if(!n)throw new Error("aes/pcks5: empty ciphertext not allowed");const r=t[n-1];if(r<=0||r>16)throw new Error("aes/pcks5: wrong padding");const i=t.subarray(0,-r);for(let e=0;e<r;e++)if(t[n-e-1]!==r)throw new Error("aes/pcks5: wrong padding");return i}function Pp(t){const e=new Uint8Array(16),n=Zd(e);e.set(t);const r=wp-t.length;for(let t=wp-r;t<wp;t++)e[t]=r;return n}const Gp=sp({blockSize:16,nonceLength:16},function(t,e,n={}){const r=!n.disablePadding;return{encrypt(n,i){const o=_p(t),{b:s,o:a,out:c}=Qp(n,r,i);let l=e;const u=[o];up(l)||u.push(l=hp(l));const h=Zd(l);let d=h[0],p=h[1],f=h[2],A=h[3],g=0;for(;g+4<=s.length;)d^=s[g+0],p^=s[g+1],f^=s[g+2],A^=s[g+3],({s0:d,s1:p,s2:f,s3:A}=Fp(o,d,p,f,A)),a[g++]=d,a[g++]=p,a[g++]=f,a[g++]=A;if(r){const t=Pp(n.subarray(4*g));d^=t[0],p^=t[1],f^=t[2],A^=t[3],({s0:d,s1:p,s2:f,s3:A}=Fp(o,d,p,f,A)),a[g++]=d,a[g++]=p,a[g++]=f,a[g++]=A}return $d(...u),c},decrypt(n,i){kp(n);const o=Lp(t);let s=e;const a=[o];up(s)||a.push(s=hp(s));const c=Zd(s);i=ap(n.length,i),up(n)||a.push(n=hp(n)),ip(n,i);const l=Zd(n),u=Zd(i);let h=c[0],d=c[1],p=c[2],f=c[3];for(let t=0;t+4<=l.length;){const e=h,n=d,r=p,i=f;h=l[t+0],d=l[t+1],p=l[t+2],f=l[t+3];const{s0:s,s1:a,s2:c,s3:A}=Op(o,h,d,p,f);u[t++]=s^e,u[t++]=a^n,u[t++]=c^r,u[t++]=A^i}return $d(...a),Up(i,r)}}});const Vp=t=>Uint8Array.from(t.split("").map(t=>t.charCodeAt(0))),Hp=Vp("expand 16-byte k"),jp=Vp("expand 32-byte k"),Yp=Zd(Hp),zp=Zd(jp);function Jp(t,e){return t<<e|t>>>32-e}function Wp(t){return t.byteOffset%4==0}const qp=2**32-1,Kp=new Uint32Array;function Xp(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:o,rounds:s}=function(t,e){if(null==e||"object"!=typeof e)throw new Error("options must be defined");return Object.assign(t,e)}({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if("function"!=typeof t)throw new Error("core must be a function");return Wd(i),Wd(s),Jd(o),Jd(n),(e,a,c,l,u=0)=>{qd(e),qd(a),qd(c);const h=c.length;if(void 0===l&&(l=new Uint8Array(h)),qd(l),Wd(u),u<0||u>=qp)throw new Error("arx: counter overflow");if(l.length<h)throw new Error(`arx: output (${l.length}) is shorter than data (${h})`);const d=[];let p,f,A=e.length;if(32===A)d.push(p=hp(e)),f=zp;else{if(16!==A||!n)throw new Error(`arx: invalid 32-byte key, got length=${A}`);p=new Uint8Array(32),p.set(e),p.set(e,16),f=Yp,d.push(p)}Wp(a)||d.push(a=hp(a));const g=Zd(p);if(r){if(24!==a.length)throw new Error("arx: extended nonce must be 24 bytes");r(f,g,Zd(a.subarray(0,16)),g),a=a.subarray(16)}const E=16-i;if(E!==a.length)throw new Error(`arx: nonce must be ${E} or 16 bytes`);if(12!==E){const t=new Uint8Array(12);t.set(a,o?0:12-a.length),a=t,d.push(a)}const m=Zd(a);return function(t,e,n,r,i,o,s,a){const c=i.length,l=new Uint8Array(64),u=Zd(l),h=Wp(i)&&Wp(o),d=h?Zd(i):Kp,p=h?Zd(o):Kp;for(let f=0;f<c;s++){if(t(e,n,r,u,s,a),s>=qp)throw new Error("arx: counter overflow");const A=Math.min(64,c-f);if(h&&64===A){const t=f/4;if(f%4!=0)throw new Error("arx: invalid block position");for(let e,n=0;n<16;n++)e=t+n,p[e]=d[e]^u[n];f+=64;continue}for(let t,e=0;e<A;e++)t=f+e,o[t]=i[t]^l[e];f+=A}}(t,f,g,m,c,l,u,s),$d(...d),l}}const Zp=(t,e)=>255&t[e++]|(255&t[e++])<<8;class $p{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,qd(t=np(t),32);const e=Zp(t,0),n=Zp(t,2),r=Zp(t,4),i=Zp(t,6),o=Zp(t,8),s=Zp(t,10),a=Zp(t,12),c=Zp(t,14);this.r[0]=8191&e,this.r[1]=8191&(e>>>13|n<<3),this.r[2]=7939&(n>>>10|r<<6),this.r[3]=8191&(r>>>7|i<<9),this.r[4]=255&(i>>>4|o<<12),this.r[5]=o>>>1&8190,this.r[6]=8191&(o>>>14|s<<2),this.r[7]=8065&(s>>>11|a<<5),this.r[8]=8191&(a>>>8|c<<8),this.r[9]=c>>>5&127;for(let e=0;e<8;e++)this.pad[e]=Zp(t,16+2*e)}process(t,e,n=!1){const r=n?0:2048,{h:i,r:o}=this,s=o[0],a=o[1],c=o[2],l=o[3],u=o[4],h=o[5],d=o[6],p=o[7],f=o[8],A=o[9],g=Zp(t,e+0),E=Zp(t,e+2),m=Zp(t,e+4),y=Zp(t,e+6),w=Zp(t,e+8),I=Zp(t,e+10),C=Zp(t,e+12),B=Zp(t,e+14);let T=i[0]+(8191&g),b=i[1]+(8191&(g>>>13|E<<3)),D=i[2]+(8191&(E>>>10|m<<6)),M=i[3]+(8191&(m>>>7|y<<9)),N=i[4]+(8191&(y>>>4|w<<12)),S=i[5]+(w>>>1&8191),v=i[6]+(8191&(w>>>14|I<<2)),_=i[7]+(8191&(I>>>11|C<<5)),L=i[8]+(8191&(C>>>8|B<<8)),x=i[9]+(B>>>5|r),R=0,F=R+T*s+b*(5*A)+D*(5*f)+M*(5*p)+N*(5*d);R=F>>>13,F&=8191,F+=S*(5*h)+v*(5*u)+_*(5*l)+L*(5*c)+x*(5*a),R+=F>>>13,F&=8191;let O=R+T*a+b*s+D*(5*A)+M*(5*f)+N*(5*p);R=O>>>13,O&=8191,O+=S*(5*d)+v*(5*h)+_*(5*u)+L*(5*l)+x*(5*c),R+=O>>>13,O&=8191;let k=R+T*c+b*a+D*s+M*(5*A)+N*(5*f);R=k>>>13,k&=8191,k+=S*(5*p)+v*(5*d)+_*(5*h)+L*(5*u)+x*(5*l),R+=k>>>13,k&=8191;let Q=R+T*l+b*c+D*a+M*s+N*(5*A);R=Q>>>13,Q&=8191,Q+=S*(5*f)+v*(5*p)+_*(5*d)+L*(5*h)+x*(5*u),R+=Q>>>13,Q&=8191;let U=R+T*u+b*l+D*c+M*a+N*s;R=U>>>13,U&=8191,U+=S*(5*A)+v*(5*f)+_*(5*p)+L*(5*d)+x*(5*h),R+=U>>>13,U&=8191;let P=R+T*h+b*u+D*l+M*c+N*a;R=P>>>13,P&=8191,P+=S*s+v*(5*A)+_*(5*f)+L*(5*p)+x*(5*d),R+=P>>>13,P&=8191;let G=R+T*d+b*h+D*u+M*l+N*c;R=G>>>13,G&=8191,G+=S*a+v*s+_*(5*A)+L*(5*f)+x*(5*p),R+=G>>>13,G&=8191;let V=R+T*p+b*d+D*h+M*u+N*l;R=V>>>13,V&=8191,V+=S*c+v*a+_*s+L*(5*A)+x*(5*f),R+=V>>>13,V&=8191;let H=R+T*f+b*p+D*d+M*h+N*u;R=H>>>13,H&=8191,H+=S*l+v*c+_*a+L*s+x*(5*A),R+=H>>>13,H&=8191;let j=R+T*A+b*f+D*p+M*d+N*h;R=j>>>13,j&=8191,j+=S*u+v*l+_*c+L*a+x*s,R+=j>>>13,j&=8191,R=(R<<2)+R|0,R=R+F|0,F=8191&R,R>>>=13,O+=R,i[0]=F,i[1]=O,i[2]=k,i[3]=Q,i[4]=U,i[5]=P,i[6]=G,i[7]=V,i[8]=H,i[9]=j}finalize(){const{h:t,pad:e}=this,n=new Uint16Array(10);let r=t[1]>>>13;t[1]&=8191;for(let e=2;e<10;e++)t[e]+=r,r=t[e]>>>13,t[e]&=8191;t[0]+=5*r,r=t[0]>>>13,t[0]&=8191,t[1]+=r,r=t[1]>>>13,t[1]&=8191,t[2]+=r,n[0]=t[0]+5,r=n[0]>>>13,n[0]&=8191;for(let e=1;e<10;e++)n[e]=t[e]+r,r=n[e]>>>13,n[e]&=8191;n[9]-=8192;let i=(1^r)-1;for(let t=0;t<10;t++)n[t]&=i;i=~i;for(let e=0;e<10;e++)t[e]=t[e]&i|n[e];t[0]=65535&(t[0]|t[1]<<13),t[1]=65535&(t[1]>>>3|t[2]<<10),t[2]=65535&(t[2]>>>6|t[3]<<7),t[3]=65535&(t[3]>>>9|t[4]<<4),t[4]=65535&(t[4]>>>12|t[5]<<1|t[6]<<14),t[5]=65535&(t[6]>>>2|t[7]<<11),t[6]=65535&(t[7]>>>5|t[8]<<8),t[7]=65535&(t[8]>>>8|t[9]<<5);let o=t[0]+e[0];t[0]=65535&o;for(let n=1;n<8;n++)o=(t[n]+e[n]|0)+(o>>>16)|0,t[n]=65535&o;$d(n)}update(t){Kd(this),qd(t=np(t));const{buffer:e,blockLen:n}=this,r=t.length;for(let i=0;i<r;){const o=Math.min(n-this.pos,r-i);if(o!==n)e.set(t.subarray(i,i+o),this.pos),this.pos+=o,i+=o,this.pos===n&&(this.process(e,0,!1),this.pos=0);else for(;n<=r-i;i+=n)this.process(t,i)}return this}destroy(){$d(this.h,this.r,this.buffer,this.pad)}digestInto(t){Kd(this),Xd(t,this),this.finished=!0;const{buffer:e,h:n}=this;let{pos:r}=this;if(r){for(e[r++]=1;r<16;r++)e[r]=0;this.process(e,0,!0)}this.finalize();let i=0;for(let e=0;e<8;e++)t[i++]=n[e]>>>0,t[i++]=n[e]>>>8;return t}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}}const tf=function(t){const e=(e,n)=>t(n).update(np(e)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=e=>t(e),e}(t=>new $p(t));function ef(t,e,n,r,i,o=20){let s=t[0],a=t[1],c=t[2],l=t[3],u=e[0],h=e[1],d=e[2],p=e[3],f=e[4],A=e[5],g=e[6],E=e[7],m=i,y=n[0],w=n[1],I=n[2],C=s,B=a,T=c,b=l,D=u,M=h,N=d,S=p,v=f,_=A,L=g,x=E,R=m,F=y,O=w,k=I;for(let t=0;t<o;t+=2)C=C+D|0,R=Jp(R^C,16),v=v+R|0,D=Jp(D^v,12),C=C+D|0,R=Jp(R^C,8),v=v+R|0,D=Jp(D^v,7),B=B+M|0,F=Jp(F^B,16),_=_+F|0,M=Jp(M^_,12),B=B+M|0,F=Jp(F^B,8),_=_+F|0,M=Jp(M^_,7),T=T+N|0,O=Jp(O^T,16),L=L+O|0,N=Jp(N^L,12),T=T+N|0,O=Jp(O^T,8),L=L+O|0,N=Jp(N^L,7),b=b+S|0,k=Jp(k^b,16),x=x+k|0,S=Jp(S^x,12),b=b+S|0,k=Jp(k^b,8),x=x+k|0,S=Jp(S^x,7),C=C+M|0,k=Jp(k^C,16),L=L+k|0,M=Jp(M^L,12),C=C+M|0,k=Jp(k^C,8),L=L+k|0,M=Jp(M^L,7),B=B+N|0,R=Jp(R^B,16),x=x+R|0,N=Jp(N^x,12),B=B+N|0,R=Jp(R^B,8),x=x+R|0,N=Jp(N^x,7),T=T+S|0,F=Jp(F^T,16),v=v+F|0,S=Jp(S^v,12),T=T+S|0,F=Jp(F^T,8),v=v+F|0,S=Jp(S^v,7),b=b+D|0,O=Jp(O^b,16),_=_+O|0,D=Jp(D^_,12),b=b+D|0,O=Jp(O^b,8),_=_+O|0,D=Jp(D^_,7);let Q=0;r[Q++]=s+C|0,r[Q++]=a+B|0,r[Q++]=c+T|0,r[Q++]=l+b|0,r[Q++]=u+D|0,r[Q++]=h+M|0,r[Q++]=d+N|0,r[Q++]=p+S|0,r[Q++]=f+v|0,r[Q++]=A+_|0,r[Q++]=g+L|0,r[Q++]=E+x|0,r[Q++]=m+R|0,r[Q++]=y+F|0,r[Q++]=w+O|0,r[Q++]=I+k|0}const nf=Xp(ef,{counterRight:!1,counterLength:4,allowShortKeys:!1}),rf=Xp(ef,{counterRight:!1,counterLength:8,extendNonceFn:function(t,e,n,r){let i=t[0],o=t[1],s=t[2],a=t[3],c=e[0],l=e[1],u=e[2],h=e[3],d=e[4],p=e[5],f=e[6],A=e[7],g=n[0],E=n[1],m=n[2],y=n[3];for(let t=0;t<20;t+=2)i=i+c|0,g=Jp(g^i,16),d=d+g|0,c=Jp(c^d,12),i=i+c|0,g=Jp(g^i,8),d=d+g|0,c=Jp(c^d,7),o=o+l|0,E=Jp(E^o,16),p=p+E|0,l=Jp(l^p,12),o=o+l|0,E=Jp(E^o,8),p=p+E|0,l=Jp(l^p,7),s=s+u|0,m=Jp(m^s,16),f=f+m|0,u=Jp(u^f,12),s=s+u|0,m=Jp(m^s,8),f=f+m|0,u=Jp(u^f,7),a=a+h|0,y=Jp(y^a,16),A=A+y|0,h=Jp(h^A,12),a=a+h|0,y=Jp(y^a,8),A=A+y|0,h=Jp(h^A,7),i=i+l|0,y=Jp(y^i,16),f=f+y|0,l=Jp(l^f,12),i=i+l|0,y=Jp(y^i,8),f=f+y|0,l=Jp(l^f,7),o=o+u|0,g=Jp(g^o,16),A=A+g|0,u=Jp(u^A,12),o=o+u|0,g=Jp(g^o,8),A=A+g|0,u=Jp(u^A,7),s=s+h|0,E=Jp(E^s,16),d=d+E|0,h=Jp(h^d,12),s=s+h|0,E=Jp(E^s,8),d=d+E|0,h=Jp(h^d,7),a=a+c|0,m=Jp(m^a,16),p=p+m|0,c=Jp(c^p,12),a=a+c|0,m=Jp(m^a,8),p=p+m|0,c=Jp(c^p,7);let w=0;r[w++]=i,r[w++]=o,r[w++]=s,r[w++]=a,r[w++]=g,r[w++]=E,r[w++]=m,r[w++]=y},allowShortKeys:!1}),of=new Uint8Array(16),sf=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(of.subarray(n))},af=new Uint8Array(32);function cf(t,e,n,r,i){const o=t(e,n,af),s=tf.create(o);i&&sf(s,i),sf(s,r);const a=lp(r.length,i?i.length:0,!0);s.update(a);const c=s.digest();return $d(o,a),c}const lf=t=>(e,n,r)=>{const i=16;return{encrypt(o,s){const a=o.length;(s=ap(a+i,s,!1)).set(o);const c=s.subarray(0,-16);t(e,n,c,c,1);const l=cf(t,e,n,c,r);return s.set(l,a),$d(l),s},decrypt(o,s){s=ap(o.length-i,s,!1);const a=o.subarray(0,-16),c=o.subarray(-16),l=cf(t,e,n,a,r);if(!op(c,l))throw new Error("invalid tag");return s.set(o.subarray(0,-16)),t(e,n,s,s,1),$d(l),s}}},uf=sp({blockSize:64,nonceLength:12,tagLength:16},lf(nf)),hf=(lf(rf),"object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0);function df(t,...e){if(!((n=t)instanceof Uint8Array||null!=n&&"object"==typeof n&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}new Uint8Array(new Uint32Array([287454020]).buffer)[0];const pf=48,ff=57,Af=65,gf=70,Ef=97,mf=102;function yf(t){return t>=pf&&t<=ff?t-pf:t>=Af&&t<=gf?t-(Af-10):t>=Ef&&t<=mf?t-(Ef-10):void 0}function wf(t=32){if(hf&&"function"==typeof hf.getRandomValues)return hf.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function If(t,e,n){let r;if("string"==typeof e)try{r=function(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let e=0,i=0;e<n;e++,i+=2){const n=yf(t.charCodeAt(i)),o=yf(t.charCodeAt(i+1));if(void 0===n||void 0===o){const e=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character "'+e+'" at index '+i)}r[e]=16*n+o}return r}(e)}catch(n){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${n}`)}else{if(!((i=e)instanceof Uint8Array||null!=i&&"object"==typeof i&&"Uint8Array"===i.constructor.name))throw new Error(`${t} must be hex string or Uint8Array`);r=Uint8Array.from(e)}
|
|
111
|
+
/*! micro-rsa-dsa-dh - MIT License (c) 2024 Paul Miller (paulmillr.com) */
|
|
112
|
+
var i;const o=r.length;if("number"==typeof n&&o!==n)throw new Error(`${t} expected ${n} bytes, got ${o}`);return r}function Cf(t,e){if(t>=256n**BigInt(e))throw new Error("integer too large");const n=new Uint8Array(e);for(let r=e-1;r>=0;r--)n[r]=Number(0xffn&t),t>>=8n;return n}function Bf(t){let e=0n;for(let n=0;n<t.length;n++)e=(e<<8n)+BigInt(t[n]);return e}function Tf(t,e,n){if(n<=0n||e<0n)throw new Error("Expected power/modulo > 0");if(1n===n)return 0n;let r=1n;for(;e>0n;)1n&e&&(r=r*t%n),t=t*t%n,e>>=1n;return r}const bf=t=>{if(null===t||"object"!=typeof t||"bigint"!=typeof t.n||"bigint"!=typeof t.e)throw new Error("wrong private key")},Df=t=>{if(null===t||"object"!=typeof t||"bigint"!=typeof t.n||"bigint"!=typeof t.d)throw new Error("wrong private key")};function Mf(t,e){const{n,e:r}=t;if(e<0n||e>=n)throw new Error("message representative out of range");return Tf(e,r,n)}function Nf(t,e){const{n}=t;if(e<0n||e>=n)throw new Error("ciphertext representative out of range");return Tf(e,t.d,n)}const Sf={encrypt(t,e){bf(t),e=If("message",e);const{n}=t,r=Math.ceil(n.toString(16).length/2),i=e.length;if(i>r-11)throw new Error("message too long");const o=r-i-3,s=new Uint8Array(o);for(let t=0;t<o;t++){let e=0;for(;0===e;)e=wf(1)[0];s[t]=e}return Cf(Mf(t,Bf(function(...t){let e=0;for(let n=0;n<t.length;n++){const r=t[n];df(r),e+=r.length}const n=new Uint8Array(e);for(let e=0,r=0;e<t.length;e++){const i=t[e];n.set(i,r),r+=i.length}return n}(new Uint8Array([0,2]),s,new Uint8Array([0]),e))),r)},decrypt(t,e){Df(t),e=If("ciphertext",e);const{n}=t,r=Math.ceil(n.toString(16).length/2);if(e.length!==r||r<11)throw new Error("decryption error");const i=Nf(t,Bf(e));if(i>=n)throw new Error("decryption error");const o=Cf(i,r);if(0!==o[0]||2!==o[1])throw new Error("decryption error");let s=-1;for(let t=2;t<o.length;t++)if(0===o[t]){s=t;break}if(-1===s||s<10)throw new Error("decryption error");return o.subarray(s+1)}};function vf(t){return t instanceof Uint8Array?t:new Uint8Array(t)}const _f=8n;function Lf(t){let e=0n;for(const n of t.values()){const t=BigInt(n);e=(e<<_f)+t}return e}const xf=globalThis.crypto,Rf=xf.subtle,Ff=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]),Of=new Uint8Array([48,129,182,2,1,0,48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,34,4,129,158,48,129,155,2,1,1,4,48]),kf=new Uint8Array([48,129,182,2,1,0,48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,34,4,129,158,48,129,155,2,1,1,4,48]),Qf={X25519:32,"P-384":48,"P-256":32},Uf={importKey(t,e,...n){let r,i,o="raw";switch(t){case"AES-256-GCM":case"AES-128-GCM":r={name:"AES-GCM",length:"AES-256-GCM"===t?256:128},i=["encrypt","decrypt"];break;case"AES-128-CBC":r={name:"AES-CBC",length:128},i=["encrypt","decrypt"];break;case"CHACHA20-POLY1305":return e;case"SHA-1":case"SHA-256":case"SHA-384":r={name:"HMAC",hash:{name:t}},i=["sign","verify"];break;case"P-384":case"P-256":if(r={name:"ECDH",namedCurve:t},i=[],"private"===n[0]){i=["deriveBits"],o="pkcs8";e=q(["P-256"===t?kf:Of,e])}break;case"X25519":r={name:"X25519"},i=[],"private"===n[0]&&(i=["deriveBits"],o="pkcs8",e=q([Ff,e]));break;case"RSA-PSS-SHA256":o="spki",i=["verify"],r={name:"RSA-PSS",hash:"SHA-256"};break;case"RSA-PKCS1-SHA512":case"RSA-PKCS1-SHA256":case"RSA-PKCS1-SHA384":case"RSA-PKCS1-SHA1":o="spki",i=["verify"],r={name:"RSASSA-PKCS1-v1_5",hash:Vf(t)};break;case"RSA-PCKS1_5":return function(t){const e=zr.parse(t,sa),n=zr.parse(e.publicKey,Nc);return{e:Lf(vf(n.publicExponent)),n:Lf(vf(n.modulus))}}(e);case"ECDSA-SECP256R1-SHA256":case"ECDSA-SECP256R1-SHA384":case"ECDSA-SECP384R1-SHA384":case"ECDSA-SECP384R1-SHA256":o="spki",i=["verify"],r={name:"ECDSA",namedCurve:t.includes("P256")?"P-256":"P-384"};break;default:throw new Error(`Unsupported algorithm ${t}`)}return Rf.importKey(o,e,r,!0,i)},async exportKey(t){if(t instanceof Uint8Array)return t;if("private"===t.type&&("X25519"===t.algorithm.name||"ECDH"===t.algorithm.name)){const e=Pf(await Rf.exportKey("pkcs8",t)),n="X25519"===t.algorithm.name?Ff:Of;return e.slice(n.length)}return Pf(await Rf.exportKey("raw",t))},async generateKeyPair(t){let e;switch(t){case"P-384":case"P-256":e={name:"ECDH",namedCurve:t};break;case"X25519":e={name:"X25519"};break;default:throw new Error(`Unsupported algorithm ${t}`)}const n=await Rf.generateKey(e,!0,["deriveBits"]);return{pubKey:n.publicKey,privKey:n.privateKey}},async calculateSharedSecret(t,e,n){const r="X25519"===t?"X25519":"ECDH";return Pf(await Rf.deriveBits({name:r,public:n},e,8*Qf[t]))},randomBytes(t){const e=new Uint8Array(t);return xf.getRandomValues(e)},asymmetricEncrypt(t,{publicKey:e,data:n}){if("RSA-PCKS1_5"!==t)throw new Error(`Unsupported cipher suite ${t}`);return Sf.encrypt(e,n)},async encrypt(t,{iv:e,data:n,key:r}){const i="AES-128-CBC"===t?"AES-CBC":"";return Pf(await Rf.encrypt({name:i,iv:e},r,n)).slice(0,n.length)},async decrypt(t,{key:e,iv:n,data:r}){if("AES-128-CBC"!==t)throw new Error(`Unsupported cipher suite: ${t}`);const i=e instanceof Uint8Array?e:await this.exportKey(e);return Gp(i,n,{disablePadding:!0}).decrypt(r)},async authenticatedEncrypt(t,{iv:e,aead:n,key:r,data:i}){let o;if("CHACHA20-POLY1305"===t){const t=r instanceof Uint8Array?r:await this.exportKey(r);o=uf(t,e,n).encrypt(i)}else o=Pf(await Rf.encrypt({name:"AES-GCM",iv:e,additionalData:n},r,i));return{ciphertext:o.slice(0,-16),authTag:o.slice(-16)}},async authenticatedDecrypt(t,{iv:e,aead:n,key:r,data:i,authTag:o}){if(!o)throw new Error("authTag is required");const s=q([i,o]);let a;if("CHACHA20-POLY1305"===t){const t=r instanceof Uint8Array?r:await this.exportKey(r);a=uf(t,e,n).decrypt(s)}else a=Pf(await Rf.decrypt({name:"AES-GCM",iv:e,additionalData:n},r,s));return{plaintext:a}},async verify(t,{data:e,signature:n,publicKey:r}){let i;switch(t){case"RSA-PSS-SHA256":i={name:"RSA-PSS",saltLength:32};break;case"RSA-PKCS1-SHA512":case"RSA-PKCS1-SHA256":case"RSA-PKCS1-SHA384":case"RSA-PKCS1-SHA1":i={name:"RSASSA-PKCS1-v1_5"};break;case"ECDSA-SECP256R1-SHA256":case"ECDSA-SECP256R1-SHA384":case"ECDSA-SECP384R1-SHA256":case"ECDSA-SECP384R1-SHA384":n=function(t){const e=zr.parse(t,Ka),n=Gf(new Uint8Array(e.r)),r=Gf(new Uint8Array(e.s));return q([n,r])}(n),i={name:"ECDSA",hash:Vf(t)};break;default:throw new Error(`Unsupported algorithm ${t}`)}return Rf.verify(i,r,n,e)},hash:async(t,e)=>Pf(await Rf.digest(t,e)),hmac:async(t,e,n)=>Pf(await Rf.sign({name:"HMAC",hash:t},e,n)),async extract(t,e,n,r){(r="string"==typeof r?Z(r):r).length||(r=new Uint8Array(e));const i=await this.importKey(t,r);return this.hmac(t,i,n)}};function Pf(t){return new Uint8Array(t)}function Gf(t){return t.length>32&&0===t[0]?t=t.slice(1):t.length<32&&(t=q([new Uint8Array(32-t.length).fill(0),t])),t}function Vf(t){if(t.endsWith("SHA256"))return"SHA-256";if(t.endsWith("SHA384"))return"SHA-384";if(t.endsWith("SHA512"))return"SHA-512";if(t.endsWith("SHA1"))return"SHA-1";throw new Error(`Unsupported signature algorithm: ${t}`)}var Hf="http://localhost:8001",jf=function(){return"".concat(Hf,"/api/sdk/update/session/")},Yf="PROOF_GENERATION_STARTED",zf="PROOF_GENERATION_SUCCESS",Jf="PROOF_GENERATION_FAILED",Wf="background",qf="offscreen",Kf="GENERATE_PROOF",Xf="GET_PRIVATE_KEY",Zf="GET_PRIVATE_KEY_RESPONSE",$f="OFFSCREEN_DOCUMENT_READY",tA="GENERATE_PROOF_RESPONSE",eA="PING_OFFSCREEN";let nA=!1,rA=!1;const iA={debug:1,default:2,info:2,warning:3,error:4,off:5};let oA=iA.default,sA=null;const aA=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(n){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var cA,lA;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(cA||(cA={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(lA||(lA={}));const uA="0123456789abcdef";class hA{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const n=t.toLowerCase();null==iA[n]&&this.throwArgumentError("invalid log level name","logLevel",t),oA>iA[n]||console.log.apply(console,e)}debug(...t){this._log(hA.levels.DEBUG,t)}info(...t){this._log(hA.levels.INFO,t)}warn(...t){this._log(hA.levels.WARNING,t)}makeError(t,e,n){if(rA)return this.makeError("censored error",e,{});e||(e=hA.errors.UNKNOWN_ERROR),n||(n={});const r=[];Object.keys(n).forEach(t=>{const e=n[t];try{if(e instanceof Uint8Array){let n="";for(let t=0;t<e.length;t++)n+=uA[e[t]>>4],n+=uA[15&e[t]];r.push(t+"=Uint8Array(0x"+n+")")}else r.push(t+"="+JSON.stringify(e))}catch(e){r.push(t+"="+JSON.stringify(n[t].toString()))}}),r.push(`code=${e}`),r.push(`version=${this.version}`);const i=t;let o="";switch(e){case lA.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case lA.CALL_EXCEPTION:case lA.INSUFFICIENT_FUNDS:case lA.MISSING_NEW:case lA.NONCE_EXPIRED:case lA.REPLACEMENT_UNDERPRICED:case lA.TRANSACTION_REPLACED:case lA.UNPREDICTABLE_GAS_LIMIT:o=e}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),r.length&&(t+=" ("+r.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=e,Object.keys(n).forEach(function(t){s[t]=n[t]}),s}throwError(t,e,n){throw this.makeError(t,e,n)}throwArgumentError(t,e,n){return this.throwError(t,hA.errors.INVALID_ARGUMENT,{argument:e,value:n})}assert(t,e,n,r){t||this.throwError(e,n,r)}assertArgument(t,e,n,r){t||this.throwArgumentError(e,n,r)}checkNormalize(t){null==t&&(t="platform missing String.prototype.normalize"),aA&&this.throwError("platform missing String.prototype.normalize",hA.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:aA})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,hA.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,hA.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,n){n=n?": "+n:"",t<e&&this.throwError("missing argument"+n,hA.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+n,hA.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",hA.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",hA.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",hA.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return sA||(sA=new hA("logger/5.8.0")),sA}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",hA.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),nA){if(!t)return;this.globalLogger().throwError("error censorship permanent",hA.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}rA=!!t,nA=!!e}static setLogLevel(t){const e=iA[t.toLowerCase()];null!=e?oA=e:hA.globalLogger().warn("invalid log level - "+t)}static from(t){return new hA(t)}}hA.errors=lA,hA.levels=cA;const dA=new hA("bytes/5.8.0");function pA(t){return!!t.toHexString}function fA(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return fA(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function AA(t){return IA(t)&&!(t.length%2)||EA(t)}function gA(t){return"number"==typeof t&&t==t&&t%1==0}function EA(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!gA(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const n=t[e];if(!gA(n)||n<0||n>=256)return!1}return!0}function mA(t,e){if(e||(e={}),"number"==typeof t){dA.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),fA(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),pA(t)&&(t=t.toHexString()),IA(t)){let n=t.substring(2);n.length%2&&("left"===e.hexPad?n="0"+n:"right"===e.hexPad?n+="0":dA.throwArgumentError("hex data is odd-length","value",t));const r=[];for(let t=0;t<n.length;t+=2)r.push(parseInt(n.substring(t,t+2),16));return fA(new Uint8Array(r))}return EA(t)?fA(new Uint8Array(t)):dA.throwArgumentError("invalid arrayify value","value",t)}function yA(t){const e=t.map(t=>mA(t)),n=e.reduce((t,e)=>t+e.length,0),r=new Uint8Array(n);return e.reduce((t,e)=>(r.set(e,t),t+e.length),0),fA(r)}function wA(t){let e=mA(t);if(0===e.length)return e;let n=0;for(;n<e.length&&0===e[n];)n++;return n&&(e=e.slice(n)),e}function IA(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/))&&(!e||t.length===2+2*e)}const CA="0123456789abcdef";function BA(t,e){if(e||(e={}),"number"==typeof t){dA.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=CA[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),pA(t))return t.toHexString();if(IA(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":dA.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(EA(t)){let e="0x";for(let n=0;n<t.length;n++){let r=t[n];e+=CA[(240&r)>>4]+CA[15&r]}return e}return dA.throwArgumentError("invalid hexlify value","value",t)}function TA(t){if("string"!=typeof t)t=BA(t);else if(!IA(t)||t.length%2)return null;return(t.length-2)/2}function bA(t,e,n){return"string"!=typeof t?t=BA(t):(!IA(t)||t.length%2)&&dA.throwArgumentError("invalid hexData","value",t),e=2+2*e,null!=n?"0x"+t.substring(e,2+2*n):"0x"+t.substring(e)}function DA(t){let e="0x";return t.forEach(t=>{e+=BA(t).substring(2)}),e}function MA(t,e){for("string"!=typeof t?t=BA(t):IA(t)||dA.throwArgumentError("invalid hex string","value",t),t.length>2*e+2&&dA.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function NA(t){const e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(AA(t)){let n=mA(t);64===n.length?(e.v=27+(n[32]>>7),n[32]&=127,e.r=BA(n.slice(0,32)),e.s=BA(n.slice(32,64))):65===n.length?(e.r=BA(n.slice(0,32)),e.s=BA(n.slice(32,64)),e.v=n[64]):dA.throwArgumentError("invalid signature string","signature",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:dA.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(n[32]|=128),e._vs=BA(n.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const n=function(t,e){(t=mA(t)).length>e&&dA.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(e);return n.set(t,e-t.length),fA(n)}(mA(e._vs),32);e._vs=BA(n);const r=n[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=r:e.recoveryParam!==r&&dA.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),n[0]&=127;const i=BA(n);null==e.s?e.s=i:e.s!==i&&dA.throwArgumentError("signature v mismatch _vs","signature",t)}if(null==e.recoveryParam)null==e.v?dA.throwArgumentError("signature missing v and recoveryParam","signature",t):0===e.v||1===e.v?e.recoveryParam=e.v:e.recoveryParam=1-e.v%2;else if(null==e.v)e.v=27+e.recoveryParam;else{const n=0===e.v||1===e.v?e.v:1-e.v%2;e.recoveryParam!==n&&dA.throwArgumentError("signature recoveryParam mismatch v","signature",t)}null!=e.r&&IA(e.r)?e.r=MA(e.r,32):dA.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&IA(e.s)?e.s=MA(e.s,32):dA.throwArgumentError("signature missing or invalid s","signature",t);const n=mA(e.s);n[0]>=128&&dA.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(n[0]|=128);const r=BA(n);e._vs&&(IA(e._vs)||dA.throwArgumentError("signature invalid _vs","signature",t),e._vs=MA(e._vs,32)),null==e._vs?e._vs=r:e._vs!==r&&dA.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}function SA(t){return BA(yA([(t=NA(t)).r,t.s,t.recoveryParam?"0x1c":"0x1b"]))}function vA(t){t=atob(t);const e=[];for(let n=0;n<t.length;n++)e.push(t.charCodeAt(n));return mA(e)}function _A(t){t=mA(t);let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e)}var LA=s(9404),xA=s.n(LA),RA=s(7952),FA=s.n(RA);"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==s.g?s.g:"undefined"!=typeof self&&self;function OA(t,e,n){return n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},t(n,n.exports),n.exports}var kA=QA;function QA(t,e){if(!t)throw new Error(e||"Assertion failed")}QA.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)};var UA=OA(function(t,e){var n=e;function r(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",n=0;n<t.length;n++)e+=r(t[n].toString(16));return e}n.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"!=typeof t){for(var r=0;r<t.length;r++)n[r]=0|t[r];return n}if("hex"===e){(t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t);for(r=0;r<t.length;r+=2)n.push(parseInt(t[r]+t[r+1],16))}else for(r=0;r<t.length;r++){var i=t.charCodeAt(r),o=i>>8,s=255&i;o?n.push(o,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(t,e){return"hex"===e?i(t):t}}),PA=OA(function(t,e){var n=e;n.assert=kA,n.toArray=UA.toArray,n.zero2=UA.zero2,n.toHex=UA.toHex,n.encode=UA.encode,n.getNAF=function(t,e,n){var r,i=new Array(Math.max(t.bitLength(),n)+1);for(r=0;r<i.length;r+=1)i[r]=0;var o=1<<e+1,s=t.clone();for(r=0;r<i.length;r++){var a,c=s.andln(o-1);s.isOdd()?(a=c>(o>>1)-1?(o>>1)-c:c,s.isubn(a)):a=0,i[r]=a,s.iushrn(1)}return i},n.getJSF=function(t,e){var n=[[],[]];t=t.clone(),e=e.clone();for(var r,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,c=t.andln(3)+i&3,l=e.andln(3)+o&3;3===c&&(c=-1),3===l&&(l=-1),s=1&c?3!==(r=t.andln(7)+i&7)&&5!==r||2!==l?c:-c:0,n[0].push(s),a=1&l?3!==(r=e.andln(7)+o&7)&&5!==r||2!==c?l:-l:0,n[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return n},n.cachedProperty=function(t,e,n){var r="_"+e;t.prototype[e]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new(xA())(t,"hex","le")}}),GA=PA.getNAF,VA=PA.getJSF,HA=PA.assert;function jA(t,e){this.type=t,this.p=new(xA())(e.p,16),this.red=e.prime?xA().red(e.prime):xA().mont(this.p),this.zero=new(xA())(0).toRed(this.red),this.one=new(xA())(1).toRed(this.red),this.two=new(xA())(2).toRed(this.red),this.n=e.n&&new(xA())(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var YA=jA;function zA(t,e){this.curve=t,this.type=e,this.precomputed=null}jA.prototype.point=function(){throw new Error("Not implemented")},jA.prototype.validate=function(){throw new Error("Not implemented")},jA.prototype._fixedNafMul=function(t,e){HA(t.precomputed);var n=t._getDoubles(),r=GA(e,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<r.length;o+=n.step){s=0;for(var c=o+n.step-1;c>=o;c--)s=(s<<1)+r[c];a.push(s)}for(var l=this.jpoint(null,null,null),u=this.jpoint(null,null,null),h=i;h>0;h--){for(o=0;o<a.length;o++)(s=a[o])===h?u=u.mixedAdd(n.points[o]):s===-h&&(u=u.mixedAdd(n.points[o].neg()));l=l.add(u)}return l.toP()},jA.prototype._wnafMul=function(t,e){var n=4,r=t._getNAFPoints(n);n=r.wnd;for(var i=r.points,o=GA(e,n,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var c=0;a>=0&&0===o[a];a--)c++;if(a>=0&&c++,s=s.dblp(c),a<0)break;var l=o[a];HA(0!==l),s="affine"===t.type?l>0?s.mixedAdd(i[l-1>>1]):s.mixedAdd(i[-l-1>>1].neg()):l>0?s.add(i[l-1>>1]):s.add(i[-l-1>>1].neg())}return"affine"===t.type?s.toP():s},jA.prototype._wnafMulAdd=function(t,e,n,r,i){var o,s,a,c=this._wnafT1,l=this._wnafT2,u=this._wnafT3,h=0;for(o=0;o<r;o++){var d=(a=e[o])._getNAFPoints(t);c[o]=d.wnd,l[o]=d.points}for(o=r-1;o>=1;o-=2){var p=o-1,f=o;if(1===c[p]&&1===c[f]){var A=[e[p],null,null,e[f]];0===e[p].y.cmp(e[f].y)?(A[1]=e[p].add(e[f]),A[2]=e[p].toJ().mixedAdd(e[f].neg())):0===e[p].y.cmp(e[f].y.redNeg())?(A[1]=e[p].toJ().mixedAdd(e[f]),A[2]=e[p].add(e[f].neg())):(A[1]=e[p].toJ().mixedAdd(e[f]),A[2]=e[p].toJ().mixedAdd(e[f].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],E=VA(n[p],n[f]);for(h=Math.max(E[0].length,h),u[p]=new Array(h),u[f]=new Array(h),s=0;s<h;s++){var m=0|E[0][s],y=0|E[1][s];u[p][s]=g[3*(m+1)+(y+1)],u[f][s]=0,l[p]=A}}else u[p]=GA(n[p],c[p],this._bitLength),u[f]=GA(n[f],c[f],this._bitLength),h=Math.max(u[p].length,h),h=Math.max(u[f].length,h)}var w=this.jpoint(null,null,null),I=this._wnafT4;for(o=h;o>=0;o--){for(var C=0;o>=0;){var B=!0;for(s=0;s<r;s++)I[s]=0|u[s][o],0!==I[s]&&(B=!1);if(!B)break;C++,o--}if(o>=0&&C++,w=w.dblp(C),o<0)break;for(s=0;s<r;s++){var T=I[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),w="affine"===a.type?w.mixedAdd(a):w.add(a))}}for(o=0;o<r;o++)l[o]=null;return i?w:w.toP()},jA.BasePoint=zA,zA.prototype.eq=function(){throw new Error("Not implemented")},zA.prototype.validate=function(){return this.curve.validate(this)},jA.prototype.decodePoint=function(t,e){t=PA.toArray(t,e);var n=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*n)return 6===t[0]?HA(t[t.length-1]%2==0):7===t[0]&&HA(t[t.length-1]%2==1),this.point(t.slice(1,1+n),t.slice(1+n,1+2*n));if((2===t[0]||3===t[0])&&t.length-1===n)return this.pointFromX(t.slice(1,1+n),3===t[0]);throw new Error("Unknown point format")},zA.prototype.encodeCompressed=function(t){return this.encode(t,!0)},zA.prototype._encode=function(t){var e=this.curve.p.byteLength(),n=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",e))},zA.prototype.encode=function(t,e){return PA.encode(this._encode(e),t)},zA.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},zA.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},zA.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)r=r.dbl();n.push(r)}return{step:t,points:n}},zA.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],n=(1<<t)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)e[i]=e[i-1].add(r);return{wnd:t,points:e}},zA.prototype._getBeta=function(){return null},zA.prototype.dblp=function(t){for(var e=this,n=0;n<t;n++)e=e.dbl();return e};var JA=OA(function(t){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}}),WA=PA.assert;function qA(t){YA.call(this,"short",t),this.a=new(xA())(t.a,16).toRed(this.red),this.b=new(xA())(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}JA(qA,YA);var KA=qA;function XA(t,e,n,r){YA.BasePoint.call(this,t,"affine"),null===e&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new(xA())(e,16),this.y=new(xA())(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function ZA(t,e,n,r){YA.BasePoint.call(this,t,"jacobian"),null===e&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new(xA())(0)):(this.x=new(xA())(e,16),this.y=new(xA())(n,16),this.z=new(xA())(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}qA.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,n;if(t.beta)e=new(xA())(t.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);e=(e=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(t.lambda)n=new(xA())(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?n=i[0]:(n=i[1],WA(0===this.g.mul(n).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:n,basis:t.basis?t.basis.map(function(t){return{a:new(xA())(t.a,16),b:new(xA())(t.b,16)}}):this._getEndoBasis(n)}}},qA.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:xA().mont(t),n=new(xA())(2).toRed(e).redInvm(),r=n.redNeg(),i=new(xA())(3).toRed(e).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},qA.prototype._getEndoBasis=function(t){for(var e,n,r,i,o,s,a,c,l,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=t,d=this.n.clone(),p=new(xA())(1),f=new(xA())(0),A=new(xA())(0),g=new(xA())(1),E=0;0!==h.cmpn(0);){var m=d.div(h);c=d.sub(m.mul(h)),l=A.sub(m.mul(p));var y=g.sub(m.mul(f));if(!r&&c.cmp(u)<0)e=a.neg(),n=p,r=c.neg(),i=l;else if(r&&2===++E)break;a=c,d=h,h=c,A=p,p=l,g=f,f=y}o=c.neg(),s=l;var w=r.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(w)>=0&&(o=e,s=n),r.negative&&(r=r.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:r,b:i},{a:o,b:s}]},qA.prototype._endoSplit=function(t){var e=this.endo.basis,n=e[0],r=e[1],i=r.b.mul(t).divRound(this.n),o=n.b.neg().mul(t).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),c=i.mul(n.b),l=o.mul(r.b);return{k1:t.sub(s).sub(a),k2:c.add(l).neg()}},qA.prototype.pointFromX=function(t,e){(t=new(xA())(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(e&&!i||!e&&i)&&(r=r.redNeg()),this.point(t,r)},qA.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,n=t.y,r=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},qA.prototype._endoWnafMulAdd=function(t,e,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[o],c=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),c=c.neg(!0)),r[2*o]=a,r[2*o+1]=c,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,r,i,2*o,n),u=0;u<2*o;u++)r[u]=null,i[u]=null;return l},JA(XA,YA.BasePoint),qA.prototype.point=function(t,e,n){return new XA(this,t,e,n)},qA.prototype.pointFromJSON=function(t,e){return XA.fromJSON(this,t,e)},XA.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var n=this.curve,r=function(t){return n.point(t.x.redMul(n.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(r)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(r)}}}return e}},XA.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},XA.fromJSON=function(t,e,n){"string"==typeof e&&(e=JSON.parse(e));var r=t.point(e[0],e[1],n);if(!e[2])return r;function i(e){return t.point(e[0],e[1],n)}var o=e[2];return r.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[r].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[r].concat(o.naf.points.map(i))}},r},XA.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},XA.prototype.isInfinity=function(){return this.inf},XA.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var n=e.redSqr().redISub(this.x).redISub(t.x),r=e.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},XA.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,n=this.x.redSqr(),r=t.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(e).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},XA.prototype.getX=function(){return this.x.fromRed()},XA.prototype.getY=function(){return this.y.fromRed()},XA.prototype.mul=function(t){return t=new(xA())(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},XA.prototype.mulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},XA.prototype.jmulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},XA.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},XA.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var n=this.precomputed,r=function(t){return t.neg()};e.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return e},XA.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},JA(ZA,YA.BasePoint),qA.prototype.jpoint=function(t,e,n){return new ZA(this,t,e,n)},ZA.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),n=this.x.redMul(e),r=this.y.redMul(e).redMul(t);return this.curve.point(n,r)},ZA.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ZA.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(e),i=t.x.redMul(n),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),u=l.redMul(a),h=r.redMul(l),d=c.redSqr().redIAdd(u).redISub(h).redISub(h),p=c.redMul(h.redISub(d)).redISub(o.redMul(u)),f=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(d,p,f)},ZA.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),n=this.x,r=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),u=n.redMul(c),h=a.redSqr().redIAdd(l).redISub(u).redISub(u),d=a.redMul(u.redISub(h)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(h,d,p)},ZA.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var n=this;for(e=0;e<t;e++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,c=a.redSqr().redSqr(),l=s.redAdd(s);for(e=0;e<t;e++){var u=o.redSqr(),h=l.redSqr(),d=h.redSqr(),p=u.redAdd(u).redIAdd(u).redIAdd(r.redMul(c)),f=o.redMul(h),A=p.redSqr().redISub(f.redAdd(f)),g=f.redISub(A),E=p.redMul(g);E=E.redIAdd(E).redISub(d);var m=l.redMul(a);e+1<t&&(c=c.redMul(d)),o=A,a=m,l=E}return this.curve.jpoint(o,l.redMul(i),a)},ZA.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ZA.prototype._zeroDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r),c=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=c,e=a.redMul(s.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.x.redSqr(),h=this.y.redSqr(),d=h.redSqr(),p=this.x.redAdd(h).redSqr().redISub(u).redISub(d);p=p.redIAdd(p);var f=u.redAdd(u).redIAdd(u),A=f.redSqr(),g=d.redIAdd(d);g=(g=g.redIAdd(g)).redIAdd(g),t=A.redISub(p).redISub(p),e=f.redMul(p.redISub(t)).redISub(g),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(t,e,n)},ZA.prototype._threeDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),c=a.redSqr().redISub(s).redISub(s);t=c;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=a.redMul(s.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.z.redSqr(),h=this.y.redSqr(),d=this.x.redMul(h),p=this.x.redSub(u).redMul(this.x.redAdd(u));p=p.redAdd(p).redIAdd(p);var f=d.redIAdd(d),A=(f=f.redIAdd(f)).redAdd(f);t=p.redSqr().redISub(A),n=this.y.redAdd(this.z).redSqr().redISub(h).redISub(u);var g=h.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),e=p.redMul(f.redISub(t)).redISub(g)}return this.curve.jpoint(t,e,n)},ZA.prototype._dbl=function(){var t=this.curve.a,e=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),o=e.redSqr(),s=n.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),c=e.redAdd(e),l=(c=c.redIAdd(c)).redMul(s),u=a.redSqr().redISub(l.redAdd(l)),h=l.redISub(u),d=s.redSqr();d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var p=a.redMul(h).redISub(d),f=n.redAdd(n).redMul(r);return this.curve.jpoint(u,p,f)},ZA.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr(),r=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).redISub(r),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),c=r.redIAdd(r);c=(c=(c=c.redIAdd(c)).redIAdd(c)).redIAdd(c);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(c),u=e.redMul(l);u=(u=u.redIAdd(u)).redIAdd(u);var h=this.x.redMul(a).redISub(u);h=(h=h.redIAdd(h)).redIAdd(h);var d=this.y.redMul(l.redMul(c.redISub(l)).redISub(s.redMul(a)));d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var p=this.z.redAdd(s).redSqr().redISub(n).redISub(a);return this.curve.jpoint(h,d,p)},ZA.prototype.mul=function(t,e){return t=new(xA())(t,e),this.curve._wnafMul(this,t)},ZA.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),n=t.z.redSqr();if(0!==this.x.redMul(n).redISub(t.x.redMul(e)).cmpn(0))return!1;var r=e.redMul(this.z),i=n.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(r)).cmpn(0)},ZA.prototype.eqXToP=function(t){var e=this.z.redSqr(),n=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(n))return!0;for(var r=t.clone(),i=this.curve.redN.redMul(e);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},ZA.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},ZA.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var $A=OA(function(t,e){var n=e;n.base=YA,n.short=KA,n.mont=null,n.edwards=null}),tg=OA(function(t,e){var n,r=e,i=PA.assert;function o(t){"short"===t.type?this.curve=new $A.short(t):"edwards"===t.type?this.curve=new $A.edwards(t):this.curve=new $A.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(r,t,{configurable:!0,enumerable:!0,get:function(){var n=new o(e);return Object.defineProperty(r,t,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:FA().sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:FA().sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:FA().sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:FA().sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:FA().sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:FA().sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:FA().sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(t){n=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:FA().sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})});function eg(t){if(!(this instanceof eg))return new eg(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=UA.toArray(t.entropy,t.entropyEnc||"hex"),n=UA.toArray(t.nonce,t.nonceEnc||"hex"),r=UA.toArray(t.pers,t.persEnc||"hex");kA(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,n,r)}var ng=eg;eg.prototype._init=function(t,e,n){var r=t.concat(e).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},eg.prototype._hmac=function(){return new(FA().hmac)(this.hash,this.K)},eg.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},eg.prototype.reseed=function(t,e,n,r){"string"!=typeof e&&(r=n,n=e,e=null),t=UA.toArray(t,e),n=UA.toArray(n,r),kA(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(n||[])),this._reseed=1},eg.prototype.generate=function(t,e,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(r=n,n=e,e=null),n&&(n=UA.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<t;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,t);return this._update(n),this._reseed++,UA.encode(o,e)};var rg=PA.assert;function ig(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var og=ig;ig.fromPublic=function(t,e,n){return e instanceof ig?e:new ig(t,{pub:e,pubEnc:n})},ig.fromPrivate=function(t,e,n){return e instanceof ig?e:new ig(t,{priv:e,privEnc:n})},ig.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},ig.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},ig.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},ig.prototype._importPrivate=function(t,e){this.priv=new(xA())(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},ig.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?rg(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||rg(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},ig.prototype.derive=function(t){return t.validate()||rg(t.validate(),"public point not validated"),t.mul(this.priv).getX()},ig.prototype.sign=function(t,e,n){return this.ec.sign(t,this,e,n)},ig.prototype.verify=function(t,e,n){return this.ec.verify(t,e,this,void 0,n)},ig.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var sg=PA.assert;function ag(t,e){if(t instanceof ag)return t;this._importDER(t,e)||(sg(t.r&&t.s,"Signature without r or s"),this.r=new(xA())(t.r,16),this.s=new(xA())(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}var cg=ag;function lg(){this.place=0}function ug(t,e){var n=t[e.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===t[e.place])return!1;for(var i=0,o=0,s=e.place;o<r;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function hg(t){for(var e=0,n=t.length-1;!t[e]&&!(128&t[e+1])&&e<n;)e++;return 0===e?t:t.slice(e)}function dg(t,e){if(e<128)t.push(e);else{var n=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|n);--n;)t.push(e>>>(n<<3)&255);t.push(e)}}ag.prototype._importDER=function(t,e){t=PA.toArray(t,e);var n=new lg;if(48!==t[n.place++])return!1;var r=ug(t,n);if(!1===r)return!1;if(r+n.place!==t.length)return!1;if(2!==t[n.place++])return!1;var i=ug(t,n);if(!1===i)return!1;if(128&t[n.place])return!1;var o=t.slice(n.place,i+n.place);if(n.place+=i,2!==t[n.place++])return!1;var s=ug(t,n);if(!1===s)return!1;if(t.length!==s+n.place)return!1;if(128&t[n.place])return!1;var a=t.slice(n.place,s+n.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new(xA())(o),this.s=new(xA())(a),this.recoveryParam=null,!0},ag.prototype.toDER=function(t){var e=this.r.toArray(),n=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&n[0]&&(n=[0].concat(n)),e=hg(e),n=hg(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];dg(r,e.length),(r=r.concat(e)).push(2),dg(r,n.length);var i=r.concat(n),o=[48];return dg(o,i.length),o=o.concat(i),PA.encode(o,t)};var pg=function(){throw new Error("unsupported")},fg=PA.assert;function Ag(t){if(!(this instanceof Ag))return new Ag(t);"string"==typeof t&&(fg(Object.prototype.hasOwnProperty.call(tg,t),"Unknown curve "+t),t=tg[t]),t instanceof tg.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var gg=Ag;Ag.prototype.keyPair=function(t){return new og(this,t)},Ag.prototype.keyFromPrivate=function(t,e){return og.fromPrivate(this,t,e)},Ag.prototype.keyFromPublic=function(t,e){return og.fromPublic(this,t,e)},Ag.prototype.genKeyPair=function(t){t||(t={});for(var e=new ng({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||pg(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new(xA())(2));;){var i=new(xA())(e.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Ag.prototype._truncateToN=function(t,e,n){var r;if(xA().isBN(t)||"number"==typeof t)r=(t=new(xA())(t,16)).byteLength();else if("object"==typeof t)r=t.length,t=new(xA())(t,16);else{var i=t.toString();r=i.length+1>>>1,t=new(xA())(i,16)}"number"!=typeof n&&(n=8*r);var o=n-this.n.bitLength();return o>0&&(t=t.ushrn(o)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},Ag.prototype.sign=function(t,e,n,r){if("object"==typeof n&&(r=n,n=null),r||(r={}),"string"!=typeof t&&"number"!=typeof t&&!xA().isBN(t)){fg("object"==typeof t&&t&&"number"==typeof t.length,"Expected message to be an array-like, a hex string, or a BN instance"),fg(t.length>>>0===t.length);for(var i=0;i<t.length;i++)fg((255&t[i])===t[i])}e=this.keyFromPrivate(e,n),t=this._truncateToN(t,!1,r.msgBitLength),fg(!t.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=e.getPrivate().toArray("be",o),a=t.toArray("be",o);fg(new(xA())(a).eq(t),"Can not sign message");for(var c=new ng({hash:this.hash,entropy:s,nonce:a,pers:r.pers,persEnc:r.persEnc||"utf8"}),l=this.n.sub(new(xA())(1)),u=0;;u++){var h=r.k?r.k(u):new(xA())(c.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(l)>=0)){var d=this.g.mul(h);if(!d.isInfinity()){var p=d.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var A=h.invm(this.n).mul(f.mul(e.getPrivate()).iadd(t));if(0!==(A=A.umod(this.n)).cmpn(0)){var g=(d.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return r.canonical&&A.cmp(this.nh)>0&&(A=this.n.sub(A),g^=1),new cg({r:f,s:A,recoveryParam:g})}}}}}},Ag.prototype.verify=function(t,e,n,r,i){i||(i={}),t=this._truncateToN(t,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var o=(e=new cg(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),l=c.mul(t).umod(this.n),u=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,n.getPublic(),u)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,n.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},Ag.prototype.recoverPubKey=function(t,e,n,r){fg((3&n)===n,"The recovery param is more than two bits"),e=new cg(e,r);var i=this.n,o=new(xA())(t),s=e.r,a=e.s,c=1&n,l=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=l?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var u=e.r.invm(i),h=i.sub(o).mul(u).umod(i),d=a.mul(u).umod(i);return this.g.mulAdd(h,s,d)},Ag.prototype.getKeyRecoveryParam=function(t,e,n,r){if(null!==(e=new cg(e,r)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Eg=OA(function(t,e){var n=e;n.version="6.6.1",n.utils=PA,n.rand=function(){throw new Error("unsupported")},n.curve=$A,n.curves=tg,n.ec=gg,n.eddsa=null}).ec;var mg=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const yg=new hA("properties/5.8.0");function wg(t,e,n){Object.defineProperty(t,e,{enumerable:!0,value:n,writable:!1})}function Ig(t){return mg(this,void 0,void 0,function*(){const e=Object.keys(t).map(e=>{const n=t[e];return Promise.resolve(n).then(t=>({key:e,value:t}))});return(yield Promise.all(e)).reduce((t,e)=>(t[e.key]=e.value,t),{})})}function Cg(t){const e={};for(const n in t)e[n]=t[n];return e}const Bg={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Tg(t){if(null==t||Bg[typeof t])return!0;if(Array.isArray(t)||"object"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let n=0;n<e.length;n++){let r=null;try{r=t[e[n]]}catch(t){continue}if(!Tg(r))return!1}return!0}return yg.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function bg(t){if(Tg(t))return t;if(Array.isArray(t))return Object.freeze(t.map(t=>Dg(t)));if("object"==typeof t){const e={};for(const n in t){const r=t[n];void 0!==r&&wg(e,n,Dg(r))}return e}return yg.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function Dg(t){return bg(t)}class Mg{constructor(t){for(const e in t)this[e]=Dg(t[e])}}const Ng=new hA("signing-key/5.8.0");let Sg=null;function vg(){return Sg||(Sg=new Eg("secp256k1")),Sg}class _g{constructor(t){wg(this,"curve","secp256k1"),wg(this,"privateKey",BA(t)),32!==TA(this.privateKey)&&Ng.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=vg().keyFromPrivate(mA(this.privateKey));wg(this,"publicKey","0x"+e.getPublic(!1,"hex")),wg(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),wg(this,"_isSigningKey",!0)}_addPoint(t){const e=vg().keyFromPublic(mA(this.publicKey)),n=vg().keyFromPublic(mA(t));return"0x"+e.pub.add(n.pub).encodeCompressed("hex")}signDigest(t){const e=vg().keyFromPrivate(mA(this.privateKey)),n=mA(t);32!==n.length&&Ng.throwArgumentError("bad digest length","digest",t);const r=e.sign(n,{canonical:!0});return NA({recoveryParam:r.recoveryParam,r:MA("0x"+r.r.toString(16),32),s:MA("0x"+r.s.toString(16),32)})}computeSharedSecret(t){const e=vg().keyFromPrivate(mA(this.privateKey)),n=vg().keyFromPublic(mA(Lg(t)));return MA("0x"+e.derive(n.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}}function Lg(t,e){const n=mA(t);if(32===n.length){const t=new _g(n);return e?"0x"+vg().keyFromPrivate(n).getPublic(!0,"hex"):t.publicKey}return 33===n.length?e?BA(n):"0x"+vg().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?e?"0x"+vg().keyFromPublic(n).getPublic(!0,"hex"):BA(n):Ng.throwArgumentError("invalid public or private key","key","[REDACTED]")}var xg=xA().BN;const Rg=new hA("bignumber/5.8.0"),Fg={},Og=9007199254740991;let kg=!1;class Qg{constructor(t,e){t!==Fg&&Rg.throwError("cannot call constructor directly; use BigNumber.from",hA.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return Pg(Gg(this).fromTwos(t))}toTwos(t){return Pg(Gg(this).toTwos(t))}abs(){return"-"===this._hex[0]?Qg.from(this._hex.substring(1)):this}add(t){return Pg(Gg(this).add(Gg(t)))}sub(t){return Pg(Gg(this).sub(Gg(t)))}div(t){return Qg.from(t).isZero()&&Vg("division-by-zero","div"),Pg(Gg(this).div(Gg(t)))}mul(t){return Pg(Gg(this).mul(Gg(t)))}mod(t){const e=Gg(t);return e.isNeg()&&Vg("division-by-zero","mod"),Pg(Gg(this).umod(e))}pow(t){const e=Gg(t);return e.isNeg()&&Vg("negative-power","pow"),Pg(Gg(this).pow(e))}and(t){const e=Gg(t);return(this.isNegative()||e.isNeg())&&Vg("unbound-bitwise-result","and"),Pg(Gg(this).and(e))}or(t){const e=Gg(t);return(this.isNegative()||e.isNeg())&&Vg("unbound-bitwise-result","or"),Pg(Gg(this).or(e))}xor(t){const e=Gg(t);return(this.isNegative()||e.isNeg())&&Vg("unbound-bitwise-result","xor"),Pg(Gg(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&Vg("negative-width","mask"),Pg(Gg(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&Vg("negative-width","shl"),Pg(Gg(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&Vg("negative-width","shr"),Pg(Gg(this).shrn(t))}eq(t){return Gg(this).eq(Gg(t))}lt(t){return Gg(this).lt(Gg(t))}lte(t){return Gg(this).lte(Gg(t))}gt(t){return Gg(this).gt(Gg(t))}gte(t){return Gg(this).gte(Gg(t))}isNegative(){return"-"===this._hex[0]}isZero(){return Gg(this).isZero()}toNumber(){try{return Gg(this).toNumber()}catch(t){Vg("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return Rg.throwError("this platform does not support BigInt",hA.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?kg||(kg=!0,Rg.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?Rg.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",hA.errors.UNEXPECTED_ARGUMENT,{}):Rg.throwError("BigNumber.toString does not accept parameters",hA.errors.UNEXPECTED_ARGUMENT,{})),Gg(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof Qg)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new Qg(Fg,Ug(t)):t.match(/^-?[0-9]+$/)?new Qg(Fg,Ug(new xg(t))):Rg.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&Vg("underflow","BigNumber.from",t),(t>=Og||t<=-Og)&&Vg("overflow","BigNumber.from",t),Qg.from(String(t));const e=t;if("bigint"==typeof e)return Qg.from(e.toString());if(EA(e))return Qg.from(BA(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return Qg.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(IA(t)||"-"===t[0]&&IA(t.substring(1))))return Qg.from(t)}return Rg.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function Ug(t){if("string"!=typeof t)return Ug(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&Rg.throwArgumentError("invalid hex","value",t),"0x00"===(t=Ug(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function Pg(t){return Qg.from(Ug(t))}function Gg(t){const e=Qg.from(t).toHexString();return"-"===e[0]?new xg("-"+e.substring(3),16):new xg(e.substring(2),16)}function Vg(t,e,n){const r={fault:t,operation:e};return null!=n&&(r.value=n),Rg.throwError(t,hA.errors.NUMERIC_FAULT,r)}var Hg=s(1176),jg=s.n(Hg);function Yg(t){return"0x"+jg().keccak_256(mA(t))}const zg=new hA("address/5.8.0");function Jg(t){IA(t,20)||zg.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let t=0;t<40;t++)n[t]=e[t].charCodeAt(0);const r=mA(Yg(n));for(let t=0;t<40;t+=2)r[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&r[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const Wg={};for(let t=0;t<10;t++)Wg[String(t)]=String(t);for(let t=0;t<26;t++)Wg[String.fromCharCode(65+t)]=String(10+t);const qg=Math.floor((Kg=9007199254740991,Math.log10?Math.log10(Kg):Math.log(Kg)/Math.LN10));var Kg;function Xg(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>Wg[t]).join("");for(;e.length>=qg;){let t=e.substring(0,qg);e=parseInt(t,10)%97+e.substring(t.length)}let n=String(98-parseInt(e,10)%97);for(;n.length<2;)n="0"+n;return n}function Zg(t){let e=null;if("string"!=typeof t&&zg.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=Jg(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&zg.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==Xg(t)&&zg.throwArgumentError("bad icap checksum","address",t),n=t.substring(4),e=new xg(n,36).toString(16);e.length<40;)e="0"+e;e=Jg("0x"+e)}else zg.throwArgumentError("invalid address","address",t);var n;return e}const $g=new hA("rlp/5.8.0");function tE(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function eE(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(eE(t))}),e.length<=55)return e.unshift(192+e.length),e;const n=tE(e.length);return n.unshift(247+n.length),n.concat(e)}AA(t)||$g.throwArgumentError("RLP object must be BytesLike","object",t);const e=Array.prototype.slice.call(mA(t));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const n=tE(e.length);return n.unshift(183+n.length),n.concat(e)}function nE(t){return BA(eE(t))}const rE=new hA("transactions/5.8.0");var iE;!function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"}(iE||(iE={}));const oE=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],sE={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function aE(t){return Zg(bA(Yg(bA(Lg(t),1)),12))}function cE(t,e){return aE(function(t,e){const n=NA(e),r={r:mA(n.r),s:mA(n.s)};return"0x"+vg().recoverPubKey(mA(t),r,n.recoveryParam).encode("hex",!1)}(mA(t),e))}function lE(t,e){const n=wA(Qg.from(t).toHexString());return n.length>32&&rE.throwArgumentError("invalid length for "+e,"transaction:"+e,t),n}function uE(t,e){return{address:Zg(t),storageKeys:(e||[]).map((e,n)=>(32!==TA(e)&&rE.throwArgumentError("invalid access list storageKey",`accessList[${t}:${n}]`,e),e.toLowerCase()))}}function hE(t){if(Array.isArray(t))return t.map((t,e)=>Array.isArray(t)?(t.length>2&&rE.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${e}]`,t),uE(t[0],t[1])):uE(t.address,t.storageKeys));const e=Object.keys(t).map(e=>{const n=t[e].reduce((t,e)=>(t[e]=!0,t),{});return uE(e,Object.keys(n).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}function dE(t){return hE(t).map(t=>[t.address,t.storageKeys])}function pE(t,e){if(null!=t.gasPrice){const e=Qg.from(t.gasPrice),n=Qg.from(t.maxFeePerGas||0);e.eq(n)||rE.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:n})}const n=[lE(t.chainId||0,"chainId"),lE(t.nonce||0,"nonce"),lE(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),lE(t.maxFeePerGas||0,"maxFeePerGas"),lE(t.gasLimit||0,"gasLimit"),null!=t.to?Zg(t.to):"0x",lE(t.value||0,"value"),t.data||"0x",dE(t.accessList||[])];if(e){const t=NA(e);n.push(lE(t.recoveryParam,"recoveryParam")),n.push(wA(t.r)),n.push(wA(t.s))}return DA(["0x02",nE(n)])}function fE(t,e){const n=[lE(t.chainId||0,"chainId"),lE(t.nonce||0,"nonce"),lE(t.gasPrice||0,"gasPrice"),lE(t.gasLimit||0,"gasLimit"),null!=t.to?Zg(t.to):"0x",lE(t.value||0,"value"),t.data||"0x",dE(t.accessList||[])];if(e){const t=NA(e);n.push(lE(t.recoveryParam,"recoveryParam")),n.push(wA(t.r)),n.push(wA(t.s))}return DA(["0x01",nE(n)])}function AE(t,e){var n,r;r=sE,(n=t)&&"object"==typeof n||yg.throwArgumentError("invalid object","object",n),Object.keys(n).forEach(t=>{r[t]||yg.throwArgumentError("invalid object key - "+t,"transaction:"+t,n)});const i=[];oE.forEach(function(e){let n=t[e.name]||[];const r={};e.numeric&&(r.hexPad="left"),n=mA(BA(n,r)),e.length&&n.length!==e.length&&n.length>0&&rE.throwArgumentError("invalid length for "+e.name,"transaction:"+e.name,n),e.maxLength&&(n=wA(n),n.length>e.maxLength&&rE.throwArgumentError("invalid length for "+e.name,"transaction:"+e.name,n)),i.push(BA(n))});let o=0;if(null!=t.chainId?(o=t.chainId,"number"!=typeof o&&rE.throwArgumentError("invalid transaction.chainId","transaction",t)):e&&!AA(e)&&e.v>28&&(o=Math.floor((e.v-35)/2)),0!==o&&(i.push(BA(o)),i.push("0x"),i.push("0x")),!e)return nE(i);const s=NA(e);let a=27+s.recoveryParam;return 0!==o?(i.pop(),i.pop(),i.pop(),a+=2*o+8,s.v>28&&s.v!==a&&rE.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e)):s.v!==a&&rE.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e),i.push(BA(a)),i.push(wA(mA(s.r))),i.push(wA(mA(s.s))),nE(i)}function gE(t,e){if(null==t.type||0===t.type)return null!=t.accessList&&rE.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",t),AE(t,e);switch(t.type){case 1:return fE(t,e);case 2:return pE(t,e)}return rE.throwError(`unsupported transaction type: ${t.type}`,hA.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:t.type})}function EE(){let t=0,e=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(t|=(127&r)<<n,!(128&r))return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(15&n)<<28,e=(112&n)>>4,!(128&n))return this.assertBounds(),[t,e];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(e|=(127&r)<<n,!(128&r))return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function mE(t,e,n){for(let r=0;r<28;r+=7){const i=t>>>r,o=!(i>>>7==0&&0==e),s=255&(o?128|i:i);if(n.push(s),!o)return}const r=t>>>28&15|(7&e)<<4,i=!!(e>>3);if(n.push(255&(i?128|r:r)),i){for(let t=3;t<31;t+=7){const r=e>>>t,i=!(r>>>7==0),o=255&(i?128|r:r);if(n.push(o),!i)return}n.push(e>>>31&1)}}const yE=4294967296;function wE(t){const e="-"===t[0];e&&(t=t.slice(1));const n=1e6;let r=0,i=0;function o(e,o){const s=Number(t.slice(e,o));i*=n,r=r*n+s,r>=yE&&(i+=r/yE|0,r%=yE)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),e?BE(r,i):CE(r,i)}function IE(t,e){if(({lo:t,hi:e}=function(t,e){return{lo:t>>>0,hi:e>>>0}}(t,e)),e<=2097151)return String(yE*e+t);const n=16777215&(t>>>24|e<<8),r=e>>16&65535;let i=(16777215&t)+6777216*n+6710656*r,o=n+8147497*r,s=2*r;const a=1e7;return i>=a&&(o+=Math.floor(i/a),i%=a),o>=a&&(s+=Math.floor(o/a),o%=a),s.toString()+TE(o)+TE(i)}function CE(t,e){return{lo:0|t,hi:0|e}}function BE(t,e){return e=~e,t?t=1+~t:e+=1,CE(t,e)}const TE=t=>{const e=String(t);return"0000000".slice(e.length)+e};function bE(t,e){if(t>=0){for(;t>127;)e.push(127&t|128),t>>>=7;e.push(t)}else{for(let n=0;n<9;n++)e.push(127&t|128),t>>=7;e.push(1)}}function DE(){let t=this.buf[this.pos++],e=127&t;if(!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<7,!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<14,!(128&t))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(127&t)<<21,!(128&t))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(15&t)<<28;for(let e=5;128&t&&e<10;e++)t=this.buf[this.pos++];if(128&t)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var ME=s(5606);const NE=SE();function SE(){const t=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof t.getBigInt64&&"function"==typeof t.getBigUint64&&"function"==typeof t.setBigInt64&&"function"==typeof t.setBigUint64&&(!!globalThis.Deno||"object"!=typeof ME||"object"!=typeof ME.env||"1"!==ME.env.BUF_BIGINT_DISABLE)){const e=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),i=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(t){const r="bigint"==typeof t?t:BigInt(t);if(r>n||r<e)throw new Error(`invalid int64: ${t}`);return r},uParse(t){const e="bigint"==typeof t?t:BigInt(t);if(e>i||e<r)throw new Error(`invalid uint64: ${t}`);return e},enc(e){return t.setBigInt64(0,this.parse(e),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(e){return t.setBigInt64(0,this.uParse(e),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec:(e,n)=>(t.setInt32(0,e,!0),t.setInt32(4,n,!0),t.getBigInt64(0,!0)),uDec:(e,n)=>(t.setInt32(0,e,!0),t.setInt32(4,n,!0),t.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:t=>("string"!=typeof t&&(t=t.toString()),vE(t),t),uParse:t=>("string"!=typeof t&&(t=t.toString()),_E(t),t),enc:t=>("string"!=typeof t&&(t=t.toString()),vE(t),wE(t)),uEnc:t=>("string"!=typeof t&&(t=t.toString()),_E(t),wE(t)),dec:(t,e)=>function(t,e){let n=CE(t,e);const r=2147483648&n.hi;r&&(n=BE(n.lo,n.hi));const i=IE(n.lo,n.hi);return r?"-"+i:i}(t,e),uDec:(t,e)=>IE(t,e)}}function vE(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function _E(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}const LE=Symbol.for("@bufbuild/protobuf/text-encoding");function xE(){if(null==globalThis[LE]){const t=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[LE]={encodeUtf8:e=>t.encode(e),decodeUtf8:t=>e.decode(t),checkUtf8(t){try{return encodeURIComponent(t),!0}catch(t){return!1}}}}return globalThis[LE]}var RE;!function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"}(RE||(RE={}));const FE=34028234663852886e22,OE=-34028234663852886e22;class kE{constructor(t=xE().encodeUtf8){this.encodeUtf8=t,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let t=0;for(let e=0;e<this.chunks.length;e++)t+=this.chunks[e].length;let e=new Uint8Array(t),n=0;for(let t=0;t<this.chunks.length;t++)e.set(this.chunks[t],n),n+=this.chunks[t].length;return this.chunks=[],e}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let t=this.finish(),e=this.stack.pop();if(!e)throw new Error("invalid state, fork stack empty");return this.chunks=e.chunks,this.buf=e.buf,this.uint32(t.byteLength),this.raw(t)}tag(t,e){return this.uint32((t<<3|e)>>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(PE(t);t>127;)this.buf.push(127&t|128),t>>>=7;return this.buf.push(t),this}int32(t){return UE(t),bE(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let e=this.encodeUtf8(t);return this.uint32(e.byteLength),this.raw(e)}float(t){!function(t){if("string"==typeof t){const e=t;if(t=Number(t),Number.isNaN(t)&&"NaN"!==e)throw new Error("invalid float32: "+e)}else if("number"!=typeof t)throw new Error("invalid float32: "+typeof t);if(Number.isFinite(t)&&(t>FE||t<OE))throw new Error("invalid float32: "+t)}(t);let e=new Uint8Array(4);return new DataView(e.buffer).setFloat32(0,t,!0),this.raw(e)}double(t){let e=new Uint8Array(8);return new DataView(e.buffer).setFloat64(0,t,!0),this.raw(e)}fixed32(t){PE(t);let e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,t,!0),this.raw(e)}sfixed32(t){UE(t);let e=new Uint8Array(4);return new DataView(e.buffer).setInt32(0,t,!0),this.raw(e)}sint32(t){return UE(t),bE(t=(t<<1^t>>31)>>>0,this.buf),this}sfixed64(t){let e=new Uint8Array(8),n=new DataView(e.buffer),r=NE.enc(t);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(e)}fixed64(t){let e=new Uint8Array(8),n=new DataView(e.buffer),r=NE.uEnc(t);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(e)}int64(t){let e=NE.enc(t);return mE(e.lo,e.hi,this.buf),this}sint64(t){const e=NE.enc(t),n=e.hi>>31;return mE(e.lo<<1^n,(e.hi<<1|e.lo>>>31)^n,this.buf),this}uint64(t){const e=NE.uEnc(t);return mE(e.lo,e.hi,this.buf),this}}class QE{constructor(t,e=xE().decodeUtf8){this.decodeUtf8=e,this.varint64=EE,this.uint32=DE,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}tag(){let t=this.uint32(),e=t>>>3,n=7&t;if(e<=0||n<0||n>5)throw new Error("illegal tag: field no "+e+" wire type "+n);return[e,n]}skip(t,e){let n=this.pos;switch(t){case RE.Varint:for(;128&this.buf[this.pos++];);break;case RE.Bit64:this.pos+=4;case RE.Bit32:this.pos+=4;break;case RE.LengthDelimited:let n=this.uint32();this.pos+=n;break;case RE.StartGroup:for(;;){const[t,n]=this.tag();if(n===RE.EndGroup){if(void 0!==e&&t!==e)throw new Error("invalid end group tag");break}this.skip(n,t)}break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let t=this.uint32();return t>>>1^-(1&t)}int64(){return NE.dec(...this.varint64())}uint64(){return NE.uDec(...this.varint64())}sint64(){let[t,e]=this.varint64(),n=-(1&t);return t=(t>>>1|(1&e)<<31)^n,e=e>>>1^n,NE.dec(t,e)}bool(){let[t,e]=this.varint64();return 0!==t||0!==e}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return NE.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return NE.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),e=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(e,e+t)}string(){return this.decodeUtf8(this.bytes())}}function UE(t){if("string"==typeof t)t=Number(t);else if("number"!=typeof t)throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>2147483647||t<-2147483648)throw new Error("invalid int32: "+t)}function PE(t){if("string"==typeof t)t=Number(t);else if("number"!=typeof t)throw new Error("invalid uint32: "+typeof t);if(!Number.isInteger(t)||t>4294967295||t<0)throw new Error("invalid uint32: "+t)}const GE=0,VE=1,HE=2,jE=-1;function YE(t){switch(t){case 0:case"TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN":return GE;case 1:case"TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT":return VE;case 2:case"TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER":return HE;default:return jE}}const zE=0,JE=1,WE=-1;function qE(t){switch(t){case 0:case"SERVICE_SIGNATURE_TYPE_UNKNOWN":return zE;case 1:case"SERVICE_SIGNATURE_TYPE_ETH":return JE;default:return WE}}const KE=0,XE=1,ZE=2,$E=3,tm=4,em=5,nm=-1;function rm(t){switch(t){case 0:case"ATTESTOR_VERSION_UNKNOWN":return KE;case 1:case"ATTESTOR_VERSION_1_0_0":return XE;case 2:case"ATTESTOR_VERSION_1_1_0":return ZE;case 3:case"ATTESTOR_VERSION_2_0_0":return $E;case 4:case"ATTESTOR_VERSION_2_0_1":return tm;case 5:case"ATTESTOR_VERSION_3_0_0":return em;default:return nm}}const im={ERROR_NO_ERROR:0,ERROR_INTERNAL:1,ERROR_BAD_REQUEST:2,ERROR_NOT_FOUND:3,ERROR_PROXY_ERROR:4,ERROR_INVALID_CLAIM:5,ERROR_NETWORK_ERROR:6,ERROR_PAYMENT_REFUSED:7,ERROR_BGP_ANNOUNCEMENT_OVERLAP:8,ERROR_AUTHENTICATION_FAILED:9,ERROR_TIMEOUT:10,ERROR_TOPRF_OUT_OF_BOUNDS:11,ERROR_CERTIFICATE_FETCH_FAILED:12,UNRECOGNIZED:-1};function om(t){switch(t){case 0:case"ERROR_NO_ERROR":return im.ERROR_NO_ERROR;case 1:case"ERROR_INTERNAL":return im.ERROR_INTERNAL;case 2:case"ERROR_BAD_REQUEST":return im.ERROR_BAD_REQUEST;case 3:case"ERROR_NOT_FOUND":return im.ERROR_NOT_FOUND;case 4:case"ERROR_PROXY_ERROR":return im.ERROR_PROXY_ERROR;case 5:case"ERROR_INVALID_CLAIM":return im.ERROR_INVALID_CLAIM;case 6:case"ERROR_NETWORK_ERROR":return im.ERROR_NETWORK_ERROR;case 7:case"ERROR_PAYMENT_REFUSED":return im.ERROR_PAYMENT_REFUSED;case 8:case"ERROR_BGP_ANNOUNCEMENT_OVERLAP":return im.ERROR_BGP_ANNOUNCEMENT_OVERLAP;case 9:case"ERROR_AUTHENTICATION_FAILED":return im.ERROR_AUTHENTICATION_FAILED;case 10:case"ERROR_TIMEOUT":return im.ERROR_TIMEOUT;case 11:case"ERROR_TOPRF_OUT_OF_BOUNDS":return im.ERROR_TOPRF_OUT_OF_BOUNDS;case 12:case"ERROR_CERTIFICATE_FETCH_FAILED":return im.ERROR_CERTIFICATE_FETCH_FAILED;default:return im.UNRECOGNIZED}}const sm=0,am=1,cm=-1;function lm(t){switch(t){case 0:case"ZK_ENGINE_SNARKJS":return sm;case 1:case"ZK_ENGINE_GNARK":return am;default:return cm}}function um(t){switch(t){case sm:return"ZK_ENGINE_SNARKJS";case am:return"ZK_ENGINE_GNARK";default:return"UNRECOGNIZED"}}const hm={encode:(t,e=new kE)=>(""!==t.provider&&e.uint32(10).string(t.provider),""!==t.parameters&&e.uint32(18).string(t.parameters),""!==t.owner&&e.uint32(26).string(t.owner),0!==t.timestampS&&e.uint32(32).uint32(t.timestampS),""!==t.context&&e.uint32(50).string(t.context),""!==t.identifier&&e.uint32(66).string(t.identifier),0!==t.epoch&&e.uint32(72).uint32(t.epoch),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={provider:"",parameters:"",owner:"",timestampS:0,context:"",identifier:"",epoch:0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.provider=n.string();continue;case 2:if(18!==t)break;i.parameters=n.string();continue;case 3:if(26!==t)break;i.owner=n.string();continue;case 4:if(32!==t)break;i.timestampS=n.uint32();continue;case 6:if(50!==t)break;i.context=n.string();continue;case 8:if(66!==t)break;i.identifier=n.string();continue;case 9:if(72!==t)break;i.epoch=n.uint32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({provider:my(t.provider)?globalThis.String(t.provider):"",parameters:my(t.parameters)?globalThis.String(t.parameters):"",owner:my(t.owner)?globalThis.String(t.owner):"",timestampS:my(t.timestampS)?globalThis.Number(t.timestampS):0,context:my(t.context)?globalThis.String(t.context):"",identifier:my(t.identifier)?globalThis.String(t.identifier):"",epoch:my(t.epoch)?globalThis.Number(t.epoch):0}),toJSON(t){const e={};return""!==t.provider&&(e.provider=t.provider),""!==t.parameters&&(e.parameters=t.parameters),""!==t.owner&&(e.owner=t.owner),0!==t.timestampS&&(e.timestampS=Math.round(t.timestampS)),""!==t.context&&(e.context=t.context),""!==t.identifier&&(e.identifier=t.identifier),0!==t.epoch&&(e.epoch=Math.round(t.epoch)),e},create:t=>hm.fromPartial(t??{}),fromPartial(t){const e={provider:"",parameters:"",owner:"",timestampS:0,context:"",identifier:"",epoch:0};return e.provider=t.provider??"",e.parameters=t.parameters??"",e.owner=t.owner??"",e.timestampS=t.timestampS??0,e.context=t.context??"",e.identifier=t.identifier??"",e.epoch=t.epoch??0,e}};const dm={encode:(t,e=new kE)=>(0!==t.code&&e.uint32(8).int32(t.code),""!==t.message&&e.uint32(18).string(t.message),""!==t.data&&e.uint32(26).string(t.data),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={code:0,message:"",data:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.code=n.int32();continue;case 2:if(18!==t)break;i.message=n.string();continue;case 3:if(26!==t)break;i.data=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({code:my(t.code)?om(t.code):0,message:my(t.message)?globalThis.String(t.message):"",data:my(t.data)?globalThis.String(t.data):""}),toJSON(t){const e={};return 0!==t.code&&(e.code=function(t){switch(t){case im.ERROR_NO_ERROR:return"ERROR_NO_ERROR";case im.ERROR_INTERNAL:return"ERROR_INTERNAL";case im.ERROR_BAD_REQUEST:return"ERROR_BAD_REQUEST";case im.ERROR_NOT_FOUND:return"ERROR_NOT_FOUND";case im.ERROR_PROXY_ERROR:return"ERROR_PROXY_ERROR";case im.ERROR_INVALID_CLAIM:return"ERROR_INVALID_CLAIM";case im.ERROR_NETWORK_ERROR:return"ERROR_NETWORK_ERROR";case im.ERROR_PAYMENT_REFUSED:return"ERROR_PAYMENT_REFUSED";case im.ERROR_BGP_ANNOUNCEMENT_OVERLAP:return"ERROR_BGP_ANNOUNCEMENT_OVERLAP";case im.ERROR_AUTHENTICATION_FAILED:return"ERROR_AUTHENTICATION_FAILED";case im.ERROR_TIMEOUT:return"ERROR_TIMEOUT";case im.ERROR_TOPRF_OUT_OF_BOUNDS:return"ERROR_TOPRF_OUT_OF_BOUNDS";case im.ERROR_CERTIFICATE_FETCH_FAILED:return"ERROR_CERTIFICATE_FETCH_FAILED";default:return"UNRECOGNIZED"}}(t.code)),""!==t.message&&(e.message=t.message),""!==t.data&&(e.data=t.data),e},create:t=>dm.fromPartial(t??{}),fromPartial(t){const e={code:0,message:"",data:""};return e.code=t.code??0,e.message=t.message??"",e.data=t.data??"",e}};const pm={encode:(t,e=new kE)=>(0!==t.id&&e.uint32(8).uint32(t.id),""!==t.host&&e.uint32(18).string(t.host),0!==t.port&&e.uint32(24).uint32(t.port),""!==t.geoLocation&&e.uint32(34).string(t.geoLocation),""!==t.proxySessionId&&e.uint32(42).string(t.proxySessionId),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={id:0,host:"",port:0,geoLocation:"",proxySessionId:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.id=n.uint32();continue;case 2:if(18!==t)break;i.host=n.string();continue;case 3:if(24!==t)break;i.port=n.uint32();continue;case 4:if(34!==t)break;i.geoLocation=n.string();continue;case 5:if(42!==t)break;i.proxySessionId=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({id:my(t.id)?globalThis.Number(t.id):0,host:my(t.host)?globalThis.String(t.host):"",port:my(t.port)?globalThis.Number(t.port):0,geoLocation:my(t.geoLocation)?globalThis.String(t.geoLocation):"",proxySessionId:my(t.proxySessionId)?globalThis.String(t.proxySessionId):""}),toJSON(t){const e={};return 0!==t.id&&(e.id=Math.round(t.id)),""!==t.host&&(e.host=t.host),0!==t.port&&(e.port=Math.round(t.port)),""!==t.geoLocation&&(e.geoLocation=t.geoLocation),""!==t.proxySessionId&&(e.proxySessionId=t.proxySessionId),e},create:t=>pm.fromPartial(t??{}),fromPartial(t){const e={id:0,host:"",port:0,geoLocation:"",proxySessionId:""};return e.id=t.id??0,e.host=t.host??"",e.port=t.port??0,e.geoLocation=t.geoLocation??"",e.proxySessionId=t.proxySessionId??"",e}};const fm={encode:(t,e=new kE)=>(""!==t.url&&e.uint32(10).string(t.url),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={url:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.url=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({url:my(t.url)?globalThis.String(t.url):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),e},create:t=>fm.fromPartial(t??{}),fromPartial(t){const e={url:""};return e.url=t.url??"",e}};function Am(){return{bytes:new Uint8Array(0)}}const gm={encode:(t,e=new kE)=>(0!==t.bytes.length&&e.uint32(10).bytes(t.bytes),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Am();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.bytes=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({bytes:my(t.bytes)?Ay(t.bytes):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.bytes.length&&(e.bytes=gy(t.bytes)),e},create:t=>gm.fromPartial(t??{}),fromPartial(t){const e=Am();return e.bytes=t.bytes??new Uint8Array(0),e}};const Em={encode:(t,e=new kE)=>(0!==t.id&&e.uint32(8).uint32(t.id),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={id:0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.id=n.uint32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({id:my(t.id)?globalThis.Number(t.id):0}),toJSON(t){const e={};return 0!==t.id&&(e.id=Math.round(t.id)),e},create:t=>Em.fromPartial(t??{}),fromPartial(t){const e={id:0};return e.id=t.id??0,e}};const mm={encode:(t,e=new kE)=>e,decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={};for(;n.pos<r;){const t=n.uint32();if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({}),toJSON:t=>({}),create:t=>mm.fromPartial(t??{}),fromPartial:t=>({})};function ym(){return{tunnelId:0,message:new Uint8Array(0)}}const wm={encode:(t,e=new kE)=>(0!==t.tunnelId&&e.uint32(8).uint32(t.tunnelId),0!==t.message.length&&e.uint32(18).bytes(t.message),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=ym();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.tunnelId=n.uint32();continue;case 2:if(18!==t)break;i.message=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({tunnelId:my(t.tunnelId)?globalThis.Number(t.tunnelId):0,message:my(t.message)?Ay(t.message):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.tunnelId&&(e.tunnelId=Math.round(t.tunnelId)),0!==t.message.length&&(e.message=gy(t.message)),e},create:t=>wm.fromPartial(t??{}),fromPartial(t){const e=ym();return e.tunnelId=t.tunnelId??0,e.message=t.message??new Uint8Array(0),e}};const Im={encode:(t,e=new kE)=>(0!==t.tunnelId&&e.uint32(8).uint32(t.tunnelId),void 0!==t.error&&dm.encode(t.error,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={tunnelId:0,error:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.tunnelId=n.uint32();continue;case 2:if(18!==t)break;i.error=dm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({tunnelId:my(t.tunnelId)?globalThis.Number(t.tunnelId):0,error:my(t.error)?dm.fromJSON(t.error):void 0}),toJSON(t){const e={};return 0!==t.tunnelId&&(e.tunnelId=Math.round(t.tunnelId)),void 0!==t.error&&(e.error=dm.toJSON(t.error)),e},create:t=>Im.fromPartial(t??{}),fromPartial(t){const e={tunnelId:0,error:void 0};return e.tunnelId=t.tunnelId??0,e.error=void 0!==t.error&&null!==t.error?dm.fromPartial(t.error):void 0,e}};const Cm={encode:(t,e=new kE)=>(void 0!==t.directReveal&&Tm.encode(t.directReveal,e.uint32(10).fork()).join(),void 0!==t.zkReveal&&bm.encode(t.zkReveal,e.uint32(18).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={directReveal:void 0,zkReveal:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.directReveal=Tm.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.zkReveal=bm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({directReveal:my(t.directReveal)?Tm.fromJSON(t.directReveal):void 0,zkReveal:my(t.zkReveal)?bm.fromJSON(t.zkReveal):void 0}),toJSON(t){const e={};return void 0!==t.directReveal&&(e.directReveal=Tm.toJSON(t.directReveal)),void 0!==t.zkReveal&&(e.zkReveal=bm.toJSON(t.zkReveal)),e},create:t=>Cm.fromPartial(t??{}),fromPartial(t){const e={directReveal:void 0,zkReveal:void 0};return e.directReveal=void 0!==t.directReveal&&null!==t.directReveal?Tm.fromPartial(t.directReveal):void 0,e.zkReveal=void 0!==t.zkReveal&&null!==t.zkReveal?bm.fromPartial(t.zkReveal):void 0,e}};function Bm(){return{key:new Uint8Array(0),iv:new Uint8Array(0),recordNumber:0}}const Tm={encode:(t,e=new kE)=>(0!==t.key.length&&e.uint32(10).bytes(t.key),0!==t.iv.length&&e.uint32(18).bytes(t.iv),0!==t.recordNumber&&e.uint32(24).uint32(t.recordNumber),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Bm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.key=n.bytes();continue;case 2:if(18!==t)break;i.iv=n.bytes();continue;case 3:if(24!==t)break;i.recordNumber=n.uint32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({key:my(t.key)?Ay(t.key):new Uint8Array(0),iv:my(t.iv)?Ay(t.iv):new Uint8Array(0),recordNumber:my(t.recordNumber)?globalThis.Number(t.recordNumber):0}),toJSON(t){const e={};return 0!==t.key.length&&(e.key=gy(t.key)),0!==t.iv.length&&(e.iv=gy(t.iv)),0!==t.recordNumber&&(e.recordNumber=Math.round(t.recordNumber)),e},create:t=>Tm.fromPartial(t??{}),fromPartial(t){const e=Bm();return e.key=t.key??new Uint8Array(0),e.iv=t.iv??new Uint8Array(0),e.recordNumber=t.recordNumber??0,e}};const bm={encode(t,e=new kE){for(const n of t.proofs)Mm.encode(n,e.uint32(10).fork()).join();for(const n of t.toprfs)Sm.encode(n,e.uint32(18).fork()).join();return e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={proofs:[],toprfs:[]};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.proofs.push(Mm.decode(n,n.uint32()));continue;case 2:if(18!==t)break;i.toprfs.push(Sm.decode(n,n.uint32()));continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({proofs:globalThis.Array.isArray(t?.proofs)?t.proofs.map(t=>Mm.fromJSON(t)):[],toprfs:globalThis.Array.isArray(t?.toprfs)?t.toprfs.map(t=>Sm.fromJSON(t)):[]}),toJSON(t){const e={};return t.proofs?.length&&(e.proofs=t.proofs.map(t=>Mm.toJSON(t))),t.toprfs?.length&&(e.toprfs=t.toprfs.map(t=>Sm.toJSON(t))),e},create:t=>bm.fromPartial(t??{}),fromPartial(t){const e={proofs:[],toprfs:[]};return e.proofs=t.proofs?.map(t=>Mm.fromPartial(t))||[],e.toprfs=t.toprfs?.map(t=>Sm.fromPartial(t))||[],e}};function Dm(){return{decryptedRedactedCiphertext:new Uint8Array(0),redactedPlaintext:new Uint8Array(0),startIdx:0,proofData:new Uint8Array(0)}}const Mm={encode:(t,e=new kE)=>(0!==t.decryptedRedactedCiphertext.length&&e.uint32(18).bytes(t.decryptedRedactedCiphertext),0!==t.redactedPlaintext.length&&e.uint32(26).bytes(t.redactedPlaintext),0!==t.startIdx&&e.uint32(32).uint32(t.startIdx),0!==t.proofData.length&&e.uint32(42).bytes(t.proofData),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Dm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 2:if(18!==t)break;i.decryptedRedactedCiphertext=n.bytes();continue;case 3:if(26!==t)break;i.redactedPlaintext=n.bytes();continue;case 4:if(32!==t)break;i.startIdx=n.uint32();continue;case 5:if(42!==t)break;i.proofData=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({decryptedRedactedCiphertext:my(t.decryptedRedactedCiphertext)?Ay(t.decryptedRedactedCiphertext):new Uint8Array(0),redactedPlaintext:my(t.redactedPlaintext)?Ay(t.redactedPlaintext):new Uint8Array(0),startIdx:my(t.startIdx)?globalThis.Number(t.startIdx):0,proofData:my(t.proofData)?Ay(t.proofData):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.decryptedRedactedCiphertext.length&&(e.decryptedRedactedCiphertext=gy(t.decryptedRedactedCiphertext)),0!==t.redactedPlaintext.length&&(e.redactedPlaintext=gy(t.redactedPlaintext)),0!==t.startIdx&&(e.startIdx=Math.round(t.startIdx)),0!==t.proofData.length&&(e.proofData=gy(t.proofData)),e},create:t=>Mm.fromPartial(t??{}),fromPartial(t){const e=Dm();return e.decryptedRedactedCiphertext=t.decryptedRedactedCiphertext??new Uint8Array(0),e.redactedPlaintext=t.redactedPlaintext??new Uint8Array(0),e.startIdx=t.startIdx??0,e.proofData=t.proofData??new Uint8Array(0),e}};function Nm(){return{startIdx:0,proofData:new Uint8Array(0),payload:void 0}}const Sm={encode:(t,e=new kE)=>(0!==t.startIdx&&e.uint32(8).uint32(t.startIdx),0!==t.proofData.length&&e.uint32(18).bytes(t.proofData),void 0!==t.payload&&_m.encode(t.payload,e.uint32(26).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Nm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.startIdx=n.uint32();continue;case 2:if(18!==t)break;i.proofData=n.bytes();continue;case 3:if(26!==t)break;i.payload=_m.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({startIdx:my(t.startIdx)?globalThis.Number(t.startIdx):0,proofData:my(t.proofData)?Ay(t.proofData):new Uint8Array(0),payload:my(t.payload)?_m.fromJSON(t.payload):void 0}),toJSON(t){const e={};return 0!==t.startIdx&&(e.startIdx=Math.round(t.startIdx)),0!==t.proofData.length&&(e.proofData=gy(t.proofData)),void 0!==t.payload&&(e.payload=_m.toJSON(t.payload)),e},create:t=>Sm.fromPartial(t??{}),fromPartial(t){const e=Nm();return e.startIdx=t.startIdx??0,e.proofData=t.proofData??new Uint8Array(0),e.payload=void 0!==t.payload&&null!==t.payload?_m.fromPartial(t.payload):void 0,e}};function vm(){return{dataLocation:void 0,nullifier:new Uint8Array(0),responses:[]}}const _m={encode(t,e=new kE){void 0!==t.dataLocation&&Lm.encode(t.dataLocation,e.uint32(10).fork()).join(),0!==t.nullifier.length&&e.uint32(18).bytes(t.nullifier);for(const n of t.responses)dy.encode(n,e.uint32(26).fork()).join();return e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=vm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.dataLocation=Lm.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.nullifier=n.bytes();continue;case 3:if(26!==t)break;i.responses.push(dy.decode(n,n.uint32()));continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({dataLocation:my(t.dataLocation)?Lm.fromJSON(t.dataLocation):void 0,nullifier:my(t.nullifier)?Ay(t.nullifier):new Uint8Array(0),responses:globalThis.Array.isArray(t?.responses)?t.responses.map(t=>dy.fromJSON(t)):[]}),toJSON(t){const e={};return void 0!==t.dataLocation&&(e.dataLocation=Lm.toJSON(t.dataLocation)),0!==t.nullifier.length&&(e.nullifier=gy(t.nullifier)),t.responses?.length&&(e.responses=t.responses.map(t=>dy.toJSON(t))),e},create:t=>_m.fromPartial(t??{}),fromPartial(t){const e=vm();return e.dataLocation=void 0!==t.dataLocation&&null!==t.dataLocation?Lm.fromPartial(t.dataLocation):void 0,e.nullifier=t.nullifier??new Uint8Array(0),e.responses=t.responses?.map(t=>dy.fromPartial(t))||[],e}};const Lm={encode:(t,e=new kE)=>(0!==t.fromIndex&&e.uint32(8).uint32(t.fromIndex),0!==t.length&&e.uint32(16).uint32(t.length),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={fromIndex:0,length:0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.fromIndex=n.uint32();continue;case 2:if(16!==t)break;i.length=n.uint32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({fromIndex:my(t.fromIndex)?globalThis.Number(t.fromIndex):0,length:my(t.length)?globalThis.Number(t.length):0}),toJSON(t){const e={};return 0!==t.fromIndex&&(e.fromIndex=Math.round(t.fromIndex)),0!==t.length&&(e.length=Math.round(t.length)),e},create:t=>Lm.fromPartial(t??{}),fromPartial(t){const e={fromIndex:0,length:0};return e.fromIndex=t.fromIndex??0,e.length=t.length??0,e}};const xm={encode:(t,e=new kE)=>(""!==t.provider&&e.uint32(10).string(t.provider),""!==t.parameters&&e.uint32(18).string(t.parameters),""!==t.owner&&e.uint32(26).string(t.owner),0!==t.timestampS&&e.uint32(32).uint32(t.timestampS),""!==t.context&&e.uint32(42).string(t.context),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={provider:"",parameters:"",owner:"",timestampS:0,context:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.provider=n.string();continue;case 2:if(18!==t)break;i.parameters=n.string();continue;case 3:if(26!==t)break;i.owner=n.string();continue;case 4:if(32!==t)break;i.timestampS=n.uint32();continue;case 5:if(42!==t)break;i.context=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({provider:my(t.provider)?globalThis.String(t.provider):"",parameters:my(t.parameters)?globalThis.String(t.parameters):"",owner:my(t.owner)?globalThis.String(t.owner):"",timestampS:my(t.timestampS)?globalThis.Number(t.timestampS):0,context:my(t.context)?globalThis.String(t.context):""}),toJSON(t){const e={};return""!==t.provider&&(e.provider=t.provider),""!==t.parameters&&(e.parameters=t.parameters),""!==t.owner&&(e.owner=t.owner),0!==t.timestampS&&(e.timestampS=Math.round(t.timestampS)),""!==t.context&&(e.context=t.context),e},create:t=>xm.fromPartial(t??{}),fromPartial(t){const e={provider:"",parameters:"",owner:"",timestampS:0,context:""};return e.provider=t.provider??"",e.parameters=t.parameters??"",e.owner=t.owner??"",e.timestampS=t.timestampS??0,e.context=t.context??"",e}};function Rm(){return{verificationBundle:new Uint8Array(0),data:void 0,signatures:void 0}}const Fm={encode:(t,e=new kE)=>(0!==t.verificationBundle.length&&e.uint32(10).bytes(t.verificationBundle),void 0!==t.data&&xm.encode(t.data,e.uint32(18).fork()).join(),void 0!==t.signatures&&km.encode(t.signatures,e.uint32(26).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Rm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.verificationBundle=n.bytes();continue;case 2:if(18!==t)break;i.data=xm.decode(n,n.uint32());continue;case 3:if(26!==t)break;i.signatures=km.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({verificationBundle:my(t.verificationBundle)?Ay(t.verificationBundle):new Uint8Array(0),data:my(t.data)?xm.fromJSON(t.data):void 0,signatures:my(t.signatures)?km.fromJSON(t.signatures):void 0}),toJSON(t){const e={};return 0!==t.verificationBundle.length&&(e.verificationBundle=gy(t.verificationBundle)),void 0!==t.data&&(e.data=xm.toJSON(t.data)),void 0!==t.signatures&&(e.signatures=km.toJSON(t.signatures)),e},create:t=>Fm.fromPartial(t??{}),fromPartial(t){const e=Rm();return e.verificationBundle=t.verificationBundle??new Uint8Array(0),e.data=void 0!==t.data&&null!==t.data?xm.fromPartial(t.data):void 0,e.signatures=void 0!==t.signatures&&null!==t.signatures?km.fromPartial(t.signatures):void 0,e}};function Om(){return{requestSignature:new Uint8Array(0)}}const km={encode:(t,e=new kE)=>(0!==t.requestSignature.length&&e.uint32(10).bytes(t.requestSignature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Om();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.requestSignature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({requestSignature:my(t.requestSignature)?Ay(t.requestSignature):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.requestSignature.length&&(e.requestSignature=gy(t.requestSignature)),e},create:t=>km.fromPartial(t??{}),fromPartial(t){const e=Om();return e.requestSignature=t.requestSignature??new Uint8Array(0),e}};const Qm={encode:(t,e=new kE)=>(void 0!==t.request&&Fm.encode(t.request,e.uint32(10).fork()).join(),void 0!==t.claim&&hm.encode(t.claim,e.uint32(18).fork()).join(),void 0!==t.error&&dm.encode(t.error,e.uint32(26).fork()).join(),void 0!==t.signatures&&Pm.encode(t.signatures,e.uint32(34).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={request:void 0,claim:void 0,error:void 0,signatures:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.request=Fm.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.claim=hm.decode(n,n.uint32());continue;case 3:if(26!==t)break;i.error=dm.decode(n,n.uint32());continue;case 4:if(34!==t)break;i.signatures=Pm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({request:my(t.request)?Fm.fromJSON(t.request):void 0,claim:my(t.claim)?hm.fromJSON(t.claim):void 0,error:my(t.error)?dm.fromJSON(t.error):void 0,signatures:my(t.signatures)?Pm.fromJSON(t.signatures):void 0}),toJSON(t){const e={};return void 0!==t.request&&(e.request=Fm.toJSON(t.request)),void 0!==t.claim&&(e.claim=hm.toJSON(t.claim)),void 0!==t.error&&(e.error=dm.toJSON(t.error)),void 0!==t.signatures&&(e.signatures=Pm.toJSON(t.signatures)),e},create:t=>Qm.fromPartial(t??{}),fromPartial(t){const e={request:void 0,claim:void 0,error:void 0,signatures:void 0};return e.request=void 0!==t.request&&null!==t.request?Fm.fromPartial(t.request):void 0,e.claim=void 0!==t.claim&&null!==t.claim?hm.fromPartial(t.claim):void 0,e.error=void 0!==t.error&&null!==t.error?dm.fromPartial(t.error):void 0,e.signatures=void 0!==t.signatures&&null!==t.signatures?Pm.fromPartial(t.signatures):void 0,e}};function Um(){return{attestorAddress:"",claimSignature:new Uint8Array(0),resultSignature:new Uint8Array(0)}}const Pm={encode:(t,e=new kE)=>(""!==t.attestorAddress&&e.uint32(10).string(t.attestorAddress),0!==t.claimSignature.length&&e.uint32(18).bytes(t.claimSignature),0!==t.resultSignature.length&&e.uint32(26).bytes(t.resultSignature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Um();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.attestorAddress=n.string();continue;case 2:if(18!==t)break;i.claimSignature=n.bytes();continue;case 3:if(26!==t)break;i.resultSignature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({attestorAddress:my(t.attestorAddress)?globalThis.String(t.attestorAddress):"",claimSignature:my(t.claimSignature)?Ay(t.claimSignature):new Uint8Array(0),resultSignature:my(t.resultSignature)?Ay(t.resultSignature):new Uint8Array(0)}),toJSON(t){const e={};return""!==t.attestorAddress&&(e.attestorAddress=t.attestorAddress),0!==t.claimSignature.length&&(e.claimSignature=gy(t.claimSignature)),0!==t.resultSignature.length&&(e.resultSignature=gy(t.resultSignature)),e},create:t=>Pm.fromPartial(t??{}),fromPartial(t){const e=Um();return e.attestorAddress=t.attestorAddress??"",e.claimSignature=t.claimSignature??new Uint8Array(0),e.resultSignature=t.resultSignature??new Uint8Array(0),e}};function Gm(){return{request:void 0,data:void 0,transcript:[],signatures:void 0,zkEngine:0,fixedServerIV:new Uint8Array(0),fixedClientIV:new Uint8Array(0)}}const Vm={encode(t,e=new kE){void 0!==t.request&&pm.encode(t.request,e.uint32(10).fork()).join(),void 0!==t.data&&xm.encode(t.data,e.uint32(18).fork()).join();for(const n of t.transcript)zm.encode(n,e.uint32(26).fork()).join();return void 0!==t.signatures&&jm.encode(t.signatures,e.uint32(34).fork()).join(),0!==t.zkEngine&&e.uint32(40).int32(t.zkEngine),0!==t.fixedServerIV.length&&e.uint32(50).bytes(t.fixedServerIV),0!==t.fixedClientIV.length&&e.uint32(58).bytes(t.fixedClientIV),e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Gm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.request=pm.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.data=xm.decode(n,n.uint32());continue;case 3:if(26!==t)break;i.transcript.push(zm.decode(n,n.uint32()));continue;case 4:if(34!==t)break;i.signatures=jm.decode(n,n.uint32());continue;case 5:if(40!==t)break;i.zkEngine=n.int32();continue;case 6:if(50!==t)break;i.fixedServerIV=n.bytes();continue;case 7:if(58!==t)break;i.fixedClientIV=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({request:my(t.request)?pm.fromJSON(t.request):void 0,data:my(t.data)?xm.fromJSON(t.data):void 0,transcript:globalThis.Array.isArray(t?.transcript)?t.transcript.map(t=>zm.fromJSON(t)):[],signatures:my(t.signatures)?jm.fromJSON(t.signatures):void 0,zkEngine:my(t.zkEngine)?lm(t.zkEngine):0,fixedServerIV:my(t.fixedServerIV)?Ay(t.fixedServerIV):new Uint8Array(0),fixedClientIV:my(t.fixedClientIV)?Ay(t.fixedClientIV):new Uint8Array(0)}),toJSON(t){const e={};return void 0!==t.request&&(e.request=pm.toJSON(t.request)),void 0!==t.data&&(e.data=xm.toJSON(t.data)),t.transcript?.length&&(e.transcript=t.transcript.map(t=>zm.toJSON(t))),void 0!==t.signatures&&(e.signatures=jm.toJSON(t.signatures)),0!==t.zkEngine&&(e.zkEngine=um(t.zkEngine)),0!==t.fixedServerIV.length&&(e.fixedServerIV=gy(t.fixedServerIV)),0!==t.fixedClientIV.length&&(e.fixedClientIV=gy(t.fixedClientIV)),e},create:t=>Vm.fromPartial(t??{}),fromPartial(t){const e=Gm();return e.request=void 0!==t.request&&null!==t.request?pm.fromPartial(t.request):void 0,e.data=void 0!==t.data&&null!==t.data?xm.fromPartial(t.data):void 0,e.transcript=t.transcript?.map(t=>zm.fromPartial(t))||[],e.signatures=void 0!==t.signatures&&null!==t.signatures?jm.fromPartial(t.signatures):void 0,e.zkEngine=t.zkEngine??0,e.fixedServerIV=t.fixedServerIV??new Uint8Array(0),e.fixedClientIV=t.fixedClientIV??new Uint8Array(0),e}};function Hm(){return{requestSignature:new Uint8Array(0)}}const jm={encode:(t,e=new kE)=>(0!==t.requestSignature.length&&e.uint32(10).bytes(t.requestSignature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Hm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.requestSignature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({requestSignature:my(t.requestSignature)?Ay(t.requestSignature):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.requestSignature.length&&(e.requestSignature=gy(t.requestSignature)),e},create:t=>jm.fromPartial(t??{}),fromPartial(t){const e=Hm();return e.requestSignature=t.requestSignature??new Uint8Array(0),e}};function Ym(){return{sender:0,message:new Uint8Array(0),reveal:void 0}}const zm={encode:(t,e=new kE)=>(0!==t.sender&&e.uint32(8).int32(t.sender),0!==t.message.length&&e.uint32(18).bytes(t.message),void 0!==t.reveal&&Cm.encode(t.reveal,e.uint32(26).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Ym();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.sender=n.int32();continue;case 2:if(18!==t)break;i.message=n.bytes();continue;case 3:if(26!==t)break;i.reveal=Cm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({sender:my(t.sender)?YE(t.sender):0,message:my(t.message)?Ay(t.message):new Uint8Array(0),reveal:my(t.reveal)?Cm.fromJSON(t.reveal):void 0}),toJSON(t){const e={};return 0!==t.sender&&(e.sender=function(t){switch(t){case GE:return"TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN";case VE:return"TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT";case HE:return"TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER";default:return"UNRECOGNIZED"}}(t.sender)),0!==t.message.length&&(e.message=gy(t.message)),void 0!==t.reveal&&(e.reveal=Cm.toJSON(t.reveal)),e},create:t=>zm.fromPartial(t??{}),fromPartial(t){const e=Ym();return e.sender=t.sender??0,e.message=t.message??new Uint8Array(0),e.reveal=void 0!==t.reveal&&null!==t.reveal?Cm.fromPartial(t.reveal):void 0,e}};const Jm={encode:(t,e=new kE)=>(void 0!==t.request&&Vm.encode(t.request,e.uint32(10).fork()).join(),void 0!==t.claim&&hm.encode(t.claim,e.uint32(18).fork()).join(),void 0!==t.error&&dm.encode(t.error,e.uint32(26).fork()).join(),void 0!==t.signatures&&qm.encode(t.signatures,e.uint32(34).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={request:void 0,claim:void 0,error:void 0,signatures:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.request=Vm.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.claim=hm.decode(n,n.uint32());continue;case 3:if(26!==t)break;i.error=dm.decode(n,n.uint32());continue;case 4:if(34!==t)break;i.signatures=qm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({request:my(t.request)?Vm.fromJSON(t.request):void 0,claim:my(t.claim)?hm.fromJSON(t.claim):void 0,error:my(t.error)?dm.fromJSON(t.error):void 0,signatures:my(t.signatures)?qm.fromJSON(t.signatures):void 0}),toJSON(t){const e={};return void 0!==t.request&&(e.request=Vm.toJSON(t.request)),void 0!==t.claim&&(e.claim=hm.toJSON(t.claim)),void 0!==t.error&&(e.error=dm.toJSON(t.error)),void 0!==t.signatures&&(e.signatures=qm.toJSON(t.signatures)),e},create:t=>Jm.fromPartial(t??{}),fromPartial(t){const e={request:void 0,claim:void 0,error:void 0,signatures:void 0};return e.request=void 0!==t.request&&null!==t.request?Vm.fromPartial(t.request):void 0,e.claim=void 0!==t.claim&&null!==t.claim?hm.fromPartial(t.claim):void 0,e.error=void 0!==t.error&&null!==t.error?dm.fromPartial(t.error):void 0,e.signatures=void 0!==t.signatures&&null!==t.signatures?qm.fromPartial(t.signatures):void 0,e}};function Wm(){return{attestorAddress:"",claimSignature:new Uint8Array(0),resultSignature:new Uint8Array(0)}}const qm={encode:(t,e=new kE)=>(""!==t.attestorAddress&&e.uint32(10).string(t.attestorAddress),0!==t.claimSignature.length&&e.uint32(18).bytes(t.claimSignature),0!==t.resultSignature.length&&e.uint32(26).bytes(t.resultSignature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Wm();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.attestorAddress=n.string();continue;case 2:if(18!==t)break;i.claimSignature=n.bytes();continue;case 3:if(26!==t)break;i.resultSignature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({attestorAddress:my(t.attestorAddress)?globalThis.String(t.attestorAddress):"",claimSignature:my(t.claimSignature)?Ay(t.claimSignature):new Uint8Array(0),resultSignature:my(t.resultSignature)?Ay(t.resultSignature):new Uint8Array(0)}),toJSON(t){const e={};return""!==t.attestorAddress&&(e.attestorAddress=t.attestorAddress),0!==t.claimSignature.length&&(e.claimSignature=gy(t.claimSignature)),0!==t.resultSignature.length&&(e.resultSignature=gy(t.resultSignature)),e},create:t=>qm.fromPartial(t??{}),fromPartial(t){const e=Wm();return e.attestorAddress=t.attestorAddress??"",e.claimSignature=t.claimSignature??new Uint8Array(0),e.resultSignature=t.resultSignature??new Uint8Array(0),e}};function Km(){return{chainId:0,jsonCreateClaimRequest:"",requestSignature:new Uint8Array(0)}}const Xm={encode:(t,e=new kE)=>(0!==t.chainId&&e.uint32(8).uint32(t.chainId),""!==t.jsonCreateClaimRequest&&e.uint32(18).string(t.jsonCreateClaimRequest),0!==t.requestSignature.length&&e.uint32(26).bytes(t.requestSignature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=Km();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.chainId=n.uint32();continue;case 2:if(18!==t)break;i.jsonCreateClaimRequest=n.string();continue;case 3:if(26!==t)break;i.requestSignature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({chainId:my(t.chainId)?globalThis.Number(t.chainId):0,jsonCreateClaimRequest:my(t.jsonCreateClaimRequest)?globalThis.String(t.jsonCreateClaimRequest):"",requestSignature:my(t.requestSignature)?Ay(t.requestSignature):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.chainId&&(e.chainId=Math.round(t.chainId)),""!==t.jsonCreateClaimRequest&&(e.jsonCreateClaimRequest=t.jsonCreateClaimRequest),0!==t.requestSignature.length&&(e.requestSignature=gy(t.requestSignature)),e},create:t=>Xm.fromPartial(t??{}),fromPartial(t){const e=Km();return e.chainId=t.chainId??0,e.jsonCreateClaimRequest=t.jsonCreateClaimRequest??"",e.requestSignature=t.requestSignature??new Uint8Array(0),e}};const Zm={encode:(t,e=new kE)=>(""!==t.txHash&&e.uint32(10).string(t.txHash),0!==t.taskIndex&&e.uint32(16).uint32(t.taskIndex),""!==t.jsonTask&&e.uint32(26).string(t.jsonTask),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={txHash:"",taskIndex:0,jsonTask:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.txHash=n.string();continue;case 2:if(16!==t)break;i.taskIndex=n.uint32();continue;case 3:if(26!==t)break;i.jsonTask=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({txHash:my(t.txHash)?globalThis.String(t.txHash):"",taskIndex:my(t.taskIndex)?globalThis.Number(t.taskIndex):0,jsonTask:my(t.jsonTask)?globalThis.String(t.jsonTask):""}),toJSON(t){const e={};return""!==t.txHash&&(e.txHash=t.txHash),0!==t.taskIndex&&(e.taskIndex=Math.round(t.taskIndex)),""!==t.jsonTask&&(e.jsonTask=t.jsonTask),e},create:t=>Zm.fromPartial(t??{}),fromPartial(t){const e={txHash:"",taskIndex:0,jsonTask:""};return e.txHash=t.txHash??"",e.taskIndex=t.taskIndex??0,e.jsonTask=t.jsonTask??"",e}};const $m={encode:(t,e=new kE)=>(0!==t.chainId&&e.uint32(8).uint32(t.chainId),0!==t.taskIndex&&e.uint32(16).uint32(t.taskIndex),""!==t.completedTaskJson&&e.uint32(26).string(t.completedTaskJson),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={chainId:0,taskIndex:0,completedTaskJson:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.chainId=n.uint32();continue;case 2:if(16!==t)break;i.taskIndex=n.uint32();continue;case 3:if(26!==t)break;i.completedTaskJson=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({chainId:my(t.chainId)?globalThis.Number(t.chainId):0,taskIndex:my(t.taskIndex)?globalThis.Number(t.taskIndex):0,completedTaskJson:my(t.completedTaskJson)?globalThis.String(t.completedTaskJson):""}),toJSON(t){const e={};return 0!==t.chainId&&(e.chainId=Math.round(t.chainId)),0!==t.taskIndex&&(e.taskIndex=Math.round(t.taskIndex)),""!==t.completedTaskJson&&(e.completedTaskJson=t.completedTaskJson),e},create:t=>$m.fromPartial(t??{}),fromPartial(t){const e={chainId:0,taskIndex:0,completedTaskJson:""};return e.chainId=t.chainId??0,e.taskIndex=t.taskIndex??0,e.completedTaskJson=t.completedTaskJson??"",e}};const ty={encode:(t,e=new kE)=>(""!==t.txHash&&e.uint32(10).string(t.txHash),""!==t.taskCompletedObjectJson&&e.uint32(18).string(t.taskCompletedObjectJson),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={txHash:"",taskCompletedObjectJson:""};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.txHash=n.string();continue;case 2:if(18!==t)break;i.taskCompletedObjectJson=n.string();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({txHash:my(t.txHash)?globalThis.String(t.txHash):"",taskCompletedObjectJson:my(t.taskCompletedObjectJson)?globalThis.String(t.taskCompletedObjectJson):""}),toJSON(t){const e={};return""!==t.txHash&&(e.txHash=t.txHash),""!==t.taskCompletedObjectJson&&(e.taskCompletedObjectJson=t.taskCompletedObjectJson),e},create:t=>ty.fromPartial(t??{}),fromPartial(t){const e={txHash:"",taskCompletedObjectJson:""};return e.txHash=t.txHash??"",e.taskCompletedObjectJson=t.taskCompletedObjectJson??"",e}};const ey={encode:(t,e=new kE)=>(0!==t.timestamp&&e.uint32(8).uint32(t.timestamp),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={timestamp:0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.timestamp=n.uint32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({timestamp:my(t.timestamp)?globalThis.Number(t.timestamp):0}),toJSON(t){const e={};return 0!==t.timestamp&&(e.timestamp=Math.round(t.timestamp)),e},create:t=>ey.fromPartial(t??{}),fromPartial(t){const e={timestamp:0};return e.timestamp=t.timestamp??0,e}};const ny={encode(t,e=new kE){0!==t.taskId&&e.uint32(8).uint32(t.taskId),0!==t.requiredAttestors&&e.uint32(16).uint32(t.requiredAttestors);for(const n of t.hosts)e.uint32(26).string(n);return e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={taskId:0,requiredAttestors:0,hosts:[]};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.taskId=n.uint32();continue;case 2:if(16!==t)break;i.requiredAttestors=n.uint32();continue;case 3:if(26!==t)break;i.hosts.push(n.string());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({taskId:my(t.taskId)?globalThis.Number(t.taskId):0,requiredAttestors:my(t.requiredAttestors)?globalThis.Number(t.requiredAttestors):0,hosts:globalThis.Array.isArray(t?.hosts)?t.hosts.map(t=>globalThis.String(t)):[]}),toJSON(t){const e={};return 0!==t.taskId&&(e.taskId=Math.round(t.taskId)),0!==t.requiredAttestors&&(e.requiredAttestors=Math.round(t.requiredAttestors)),t.hosts?.length&&(e.hosts=t.hosts),e},create:t=>ny.fromPartial(t??{}),fromPartial(t){const e={taskId:0,requiredAttestors:0,hosts:[]};return e.taskId=t.taskId??0,e.requiredAttestors=t.requiredAttestors??0,e.hosts=t.hosts?.map(t=>t)||[],e}};const ry={encode(t,e=new kE){""!==t.id&&e.uint32(10).string(t.id),0!==t.createdAt&&e.uint32(16).uint32(t.createdAt),0!==t.expiresAt&&e.uint32(24).uint32(t.expiresAt);for(const n of t.hostWhitelist)e.uint32(34).string(n);return e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={id:"",createdAt:0,expiresAt:0,hostWhitelist:[]};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.id=n.string();continue;case 2:if(16!==t)break;i.createdAt=n.uint32();continue;case 3:if(24!==t)break;i.expiresAt=n.uint32();continue;case 4:if(34!==t)break;i.hostWhitelist.push(n.string());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({id:my(t.id)?globalThis.String(t.id):"",createdAt:my(t.createdAt)?globalThis.Number(t.createdAt):0,expiresAt:my(t.expiresAt)?globalThis.Number(t.expiresAt):0,hostWhitelist:globalThis.Array.isArray(t?.hostWhitelist)?t.hostWhitelist.map(t=>globalThis.String(t)):[]}),toJSON(t){const e={};return""!==t.id&&(e.id=t.id),0!==t.createdAt&&(e.createdAt=Math.round(t.createdAt)),0!==t.expiresAt&&(e.expiresAt=Math.round(t.expiresAt)),t.hostWhitelist?.length&&(e.hostWhitelist=t.hostWhitelist),e},create:t=>ry.fromPartial(t??{}),fromPartial(t){const e={id:"",createdAt:0,expiresAt:0,hostWhitelist:[]};return e.id=t.id??"",e.createdAt=t.createdAt??0,e.expiresAt=t.expiresAt??0,e.hostWhitelist=t.hostWhitelist?.map(t=>t)||[],e}};function iy(){return{data:void 0,signature:new Uint8Array(0)}}const oy={encode:(t,e=new kE)=>(void 0!==t.data&&ry.encode(t.data,e.uint32(10).fork()).join(),0!==t.signature.length&&e.uint32(18).bytes(t.signature),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=iy();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.data=ry.decode(n,n.uint32());continue;case 2:if(18!==t)break;i.signature=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({data:my(t.data)?ry.fromJSON(t.data):void 0,signature:my(t.signature)?Ay(t.signature):new Uint8Array(0)}),toJSON(t){const e={};return void 0!==t.data&&(e.data=ry.toJSON(t.data)),0!==t.signature.length&&(e.signature=gy(t.signature)),e},create:t=>oy.fromPartial(t??{}),fromPartial(t){const e=iy();return e.data=void 0!==t.data&&null!==t.data?ry.fromPartial(t.data):void 0,e.signature=t.signature??new Uint8Array(0),e}};const sy={encode:(t,e=new kE)=>(0!==t.clientVersion&&e.uint32(16).int32(t.clientVersion),0!==t.signatureType&&e.uint32(24).int32(t.signatureType),void 0!==t.auth&&oy.encode(t.auth,e.uint32(34).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={clientVersion:0,signatureType:0,auth:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 2:if(16!==t)break;i.clientVersion=n.int32();continue;case 3:if(24!==t)break;i.signatureType=n.int32();continue;case 4:if(34!==t)break;i.auth=oy.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({clientVersion:my(t.clientVersion)?rm(t.clientVersion):0,signatureType:my(t.signatureType)?qE(t.signatureType):0,auth:my(t.auth)?oy.fromJSON(t.auth):void 0}),toJSON(t){const e={};return 0!==t.clientVersion&&(e.clientVersion=function(t){switch(t){case KE:return"ATTESTOR_VERSION_UNKNOWN";case XE:return"ATTESTOR_VERSION_1_0_0";case ZE:return"ATTESTOR_VERSION_1_1_0";case $E:return"ATTESTOR_VERSION_2_0_0";case tm:return"ATTESTOR_VERSION_2_0_1";case em:return"ATTESTOR_VERSION_3_0_0";default:return"UNRECOGNIZED"}}(t.clientVersion)),0!==t.signatureType&&(e.signatureType=function(t){switch(t){case zE:return"SERVICE_SIGNATURE_TYPE_UNKNOWN";case JE:return"SERVICE_SIGNATURE_TYPE_ETH";default:return"UNRECOGNIZED"}}(t.signatureType)),void 0!==t.auth&&(e.auth=oy.toJSON(t.auth)),e},create:t=>sy.fromPartial(t??{}),fromPartial(t){const e={clientVersion:0,signatureType:0,auth:void 0};return e.clientVersion=t.clientVersion??0,e.signatureType=t.signatureType??0,e.auth=void 0!==t.auth&&null!==t.auth?oy.fromPartial(t.auth):void 0,e}};function ay(){return{toprfPublicKey:new Uint8Array(0)}}const cy={encode:(t,e=new kE)=>(0!==t.toprfPublicKey.length&&e.uint32(10).bytes(t.toprfPublicKey),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=ay();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.toprfPublicKey=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({toprfPublicKey:my(t.toprfPublicKey)?Ay(t.toprfPublicKey):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.toprfPublicKey.length&&(e.toprfPublicKey=gy(t.toprfPublicKey)),e},create:t=>cy.fromPartial(t??{}),fromPartial(t){const e=ay();return e.toprfPublicKey=t.toprfPublicKey??new Uint8Array(0),e}};function ly(){return{maskedData:new Uint8Array(0),engine:0}}const uy={encode:(t,e=new kE)=>(0!==t.maskedData.length&&e.uint32(10).bytes(t.maskedData),0!==t.engine&&e.uint32(16).int32(t.engine),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=ly();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.maskedData=n.bytes();continue;case 2:if(16!==t)break;i.engine=n.int32();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({maskedData:my(t.maskedData)?Ay(t.maskedData):new Uint8Array(0),engine:my(t.engine)?lm(t.engine):0}),toJSON(t){const e={};return 0!==t.maskedData.length&&(e.maskedData=gy(t.maskedData)),0!==t.engine&&(e.engine=um(t.engine)),e},create:t=>uy.fromPartial(t??{}),fromPartial(t){const e=ly();return e.maskedData=t.maskedData??new Uint8Array(0),e.engine=t.engine??0,e}};function hy(){return{publicKeyShare:new Uint8Array(0),evaluated:new Uint8Array(0),c:new Uint8Array(0),r:new Uint8Array(0)}}const dy={encode:(t,e=new kE)=>(0!==t.publicKeyShare.length&&e.uint32(10).bytes(t.publicKeyShare),0!==t.evaluated.length&&e.uint32(18).bytes(t.evaluated),0!==t.c.length&&e.uint32(26).bytes(t.c),0!==t.r.length&&e.uint32(34).bytes(t.r),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i=hy();for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.publicKeyShare=n.bytes();continue;case 2:if(18!==t)break;i.evaluated=n.bytes();continue;case 3:if(26!==t)break;i.c=n.bytes();continue;case 4:if(34!==t)break;i.r=n.bytes();continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({publicKeyShare:my(t.publicKeyShare)?Ay(t.publicKeyShare):new Uint8Array(0),evaluated:my(t.evaluated)?Ay(t.evaluated):new Uint8Array(0),c:my(t.c)?Ay(t.c):new Uint8Array(0),r:my(t.r)?Ay(t.r):new Uint8Array(0)}),toJSON(t){const e={};return 0!==t.publicKeyShare.length&&(e.publicKeyShare=gy(t.publicKeyShare)),0!==t.evaluated.length&&(e.evaluated=gy(t.evaluated)),0!==t.c.length&&(e.c=gy(t.c)),0!==t.r.length&&(e.r=gy(t.r)),e},create:t=>dy.fromPartial(t??{}),fromPartial(t){const e=hy();return e.publicKeyShare=t.publicKeyShare??new Uint8Array(0),e.evaluated=t.evaluated??new Uint8Array(0),e.c=t.c??new Uint8Array(0),e.r=t.r??new Uint8Array(0),e}};const py={encode:(t,e=new kE)=>(0!==t.id&&e.uint32(8).uint64(t.id),void 0!==t.initRequest&&sy.encode(t.initRequest,e.uint32(18).fork()).join(),void 0!==t.initResponse&&cy.encode(t.initResponse,e.uint32(26).fork()).join(),void 0!==t.connectionTerminationAlert&&dm.encode(t.connectionTerminationAlert,e.uint32(34).fork()).join(),void 0!==t.requestError&&dm.encode(t.requestError,e.uint32(42).fork()).join(),void 0!==t.createTunnelRequest&&pm.encode(t.createTunnelRequest,e.uint32(50).fork()).join(),void 0!==t.createTunnelResponse&&mm.encode(t.createTunnelResponse,e.uint32(58).fork()).join(),void 0!==t.disconnectTunnelRequest&&Em.encode(t.disconnectTunnelRequest,e.uint32(66).fork()).join(),void 0!==t.disconnectTunnelResponse&&mm.encode(t.disconnectTunnelResponse,e.uint32(74).fork()).join(),void 0!==t.tunnelMessage&&wm.encode(t.tunnelMessage,e.uint32(82).fork()).join(),void 0!==t.tunnelDisconnectEvent&&Im.encode(t.tunnelDisconnectEvent,e.uint32(90).fork()).join(),void 0!==t.claimTunnelRequest&&Vm.encode(t.claimTunnelRequest,e.uint32(98).fork()).join(),void 0!==t.claimTunnelResponse&&Jm.encode(t.claimTunnelResponse,e.uint32(106).fork()).join(),void 0!==t.createClaimOnChainRequest&&Xm.encode(t.createClaimOnChainRequest,e.uint32(114).fork()).join(),void 0!==t.createClaimOnChainResponse&&Zm.encode(t.createClaimOnChainResponse,e.uint32(122).fork()).join(),void 0!==t.completeClaimOnChainRequest&&$m.encode(t.completeClaimOnChainRequest,e.uint32(130).fork()).join(),void 0!==t.completeClaimOnChainResponse&&ty.encode(t.completeClaimOnChainResponse,e.uint32(138).fork()).join(),void 0!==t.toprfRequest&&uy.encode(t.toprfRequest,e.uint32(146).fork()).join(),void 0!==t.toprfResponse&&dy.encode(t.toprfResponse,e.uint32(154).fork()).join(),void 0!==t.createTaskOnMechainRequest&&ey.encode(t.createTaskOnMechainRequest,e.uint32(162).fork()).join(),void 0!==t.createTaskOnMechainResponse&&ny.encode(t.createTaskOnMechainResponse,e.uint32(170).fork()).join(),void 0!==t.claimTeeBundleRequest&&Fm.encode(t.claimTeeBundleRequest,e.uint32(178).fork()).join(),void 0!==t.claimTeeBundleResponse&&Qm.encode(t.claimTeeBundleResponse,e.uint32(186).fork()).join(),void 0!==t.fetchCertificateBytesRequest&&fm.encode(t.fetchCertificateBytesRequest,e.uint32(194).fork()).join(),void 0!==t.fetchCertificateBytesResponse&&gm.encode(t.fetchCertificateBytesResponse,e.uint32(202).fork()).join(),e),decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={id:0,initRequest:void 0,initResponse:void 0,connectionTerminationAlert:void 0,requestError:void 0,createTunnelRequest:void 0,createTunnelResponse:void 0,disconnectTunnelRequest:void 0,disconnectTunnelResponse:void 0,tunnelMessage:void 0,tunnelDisconnectEvent:void 0,claimTunnelRequest:void 0,claimTunnelResponse:void 0,createClaimOnChainRequest:void 0,createClaimOnChainResponse:void 0,completeClaimOnChainRequest:void 0,completeClaimOnChainResponse:void 0,toprfRequest:void 0,toprfResponse:void 0,createTaskOnMechainRequest:void 0,createTaskOnMechainResponse:void 0,claimTeeBundleRequest:void 0,claimTeeBundleResponse:void 0,fetchCertificateBytesRequest:void 0,fetchCertificateBytesResponse:void 0};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(8!==t)break;i.id=Ey(n.uint64());continue;case 2:if(18!==t)break;i.initRequest=sy.decode(n,n.uint32());continue;case 3:if(26!==t)break;i.initResponse=cy.decode(n,n.uint32());continue;case 4:if(34!==t)break;i.connectionTerminationAlert=dm.decode(n,n.uint32());continue;case 5:if(42!==t)break;i.requestError=dm.decode(n,n.uint32());continue;case 6:if(50!==t)break;i.createTunnelRequest=pm.decode(n,n.uint32());continue;case 7:if(58!==t)break;i.createTunnelResponse=mm.decode(n,n.uint32());continue;case 8:if(66!==t)break;i.disconnectTunnelRequest=Em.decode(n,n.uint32());continue;case 9:if(74!==t)break;i.disconnectTunnelResponse=mm.decode(n,n.uint32());continue;case 10:if(82!==t)break;i.tunnelMessage=wm.decode(n,n.uint32());continue;case 11:if(90!==t)break;i.tunnelDisconnectEvent=Im.decode(n,n.uint32());continue;case 12:if(98!==t)break;i.claimTunnelRequest=Vm.decode(n,n.uint32());continue;case 13:if(106!==t)break;i.claimTunnelResponse=Jm.decode(n,n.uint32());continue;case 14:if(114!==t)break;i.createClaimOnChainRequest=Xm.decode(n,n.uint32());continue;case 15:if(122!==t)break;i.createClaimOnChainResponse=Zm.decode(n,n.uint32());continue;case 16:if(130!==t)break;i.completeClaimOnChainRequest=$m.decode(n,n.uint32());continue;case 17:if(138!==t)break;i.completeClaimOnChainResponse=ty.decode(n,n.uint32());continue;case 18:if(146!==t)break;i.toprfRequest=uy.decode(n,n.uint32());continue;case 19:if(154!==t)break;i.toprfResponse=dy.decode(n,n.uint32());continue;case 20:if(162!==t)break;i.createTaskOnMechainRequest=ey.decode(n,n.uint32());continue;case 21:if(170!==t)break;i.createTaskOnMechainResponse=ny.decode(n,n.uint32());continue;case 22:if(178!==t)break;i.claimTeeBundleRequest=Fm.decode(n,n.uint32());continue;case 23:if(186!==t)break;i.claimTeeBundleResponse=Qm.decode(n,n.uint32());continue;case 24:if(194!==t)break;i.fetchCertificateBytesRequest=fm.decode(n,n.uint32());continue;case 25:if(202!==t)break;i.fetchCertificateBytesResponse=gm.decode(n,n.uint32());continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({id:my(t.id)?globalThis.Number(t.id):0,initRequest:my(t.initRequest)?sy.fromJSON(t.initRequest):void 0,initResponse:my(t.initResponse)?cy.fromJSON(t.initResponse):void 0,connectionTerminationAlert:my(t.connectionTerminationAlert)?dm.fromJSON(t.connectionTerminationAlert):void 0,requestError:my(t.requestError)?dm.fromJSON(t.requestError):void 0,createTunnelRequest:my(t.createTunnelRequest)?pm.fromJSON(t.createTunnelRequest):void 0,createTunnelResponse:my(t.createTunnelResponse)?mm.fromJSON(t.createTunnelResponse):void 0,disconnectTunnelRequest:my(t.disconnectTunnelRequest)?Em.fromJSON(t.disconnectTunnelRequest):void 0,disconnectTunnelResponse:my(t.disconnectTunnelResponse)?mm.fromJSON(t.disconnectTunnelResponse):void 0,tunnelMessage:my(t.tunnelMessage)?wm.fromJSON(t.tunnelMessage):void 0,tunnelDisconnectEvent:my(t.tunnelDisconnectEvent)?Im.fromJSON(t.tunnelDisconnectEvent):void 0,claimTunnelRequest:my(t.claimTunnelRequest)?Vm.fromJSON(t.claimTunnelRequest):void 0,claimTunnelResponse:my(t.claimTunnelResponse)?Jm.fromJSON(t.claimTunnelResponse):void 0,createClaimOnChainRequest:my(t.createClaimOnChainRequest)?Xm.fromJSON(t.createClaimOnChainRequest):void 0,createClaimOnChainResponse:my(t.createClaimOnChainResponse)?Zm.fromJSON(t.createClaimOnChainResponse):void 0,completeClaimOnChainRequest:my(t.completeClaimOnChainRequest)?$m.fromJSON(t.completeClaimOnChainRequest):void 0,completeClaimOnChainResponse:my(t.completeClaimOnChainResponse)?ty.fromJSON(t.completeClaimOnChainResponse):void 0,toprfRequest:my(t.toprfRequest)?uy.fromJSON(t.toprfRequest):void 0,toprfResponse:my(t.toprfResponse)?dy.fromJSON(t.toprfResponse):void 0,createTaskOnMechainRequest:my(t.createTaskOnMechainRequest)?ey.fromJSON(t.createTaskOnMechainRequest):void 0,createTaskOnMechainResponse:my(t.createTaskOnMechainResponse)?ny.fromJSON(t.createTaskOnMechainResponse):void 0,claimTeeBundleRequest:my(t.claimTeeBundleRequest)?Fm.fromJSON(t.claimTeeBundleRequest):void 0,claimTeeBundleResponse:my(t.claimTeeBundleResponse)?Qm.fromJSON(t.claimTeeBundleResponse):void 0,fetchCertificateBytesRequest:my(t.fetchCertificateBytesRequest)?fm.fromJSON(t.fetchCertificateBytesRequest):void 0,fetchCertificateBytesResponse:my(t.fetchCertificateBytesResponse)?gm.fromJSON(t.fetchCertificateBytesResponse):void 0}),toJSON(t){const e={};return 0!==t.id&&(e.id=Math.round(t.id)),void 0!==t.initRequest&&(e.initRequest=sy.toJSON(t.initRequest)),void 0!==t.initResponse&&(e.initResponse=cy.toJSON(t.initResponse)),void 0!==t.connectionTerminationAlert&&(e.connectionTerminationAlert=dm.toJSON(t.connectionTerminationAlert)),void 0!==t.requestError&&(e.requestError=dm.toJSON(t.requestError)),void 0!==t.createTunnelRequest&&(e.createTunnelRequest=pm.toJSON(t.createTunnelRequest)),void 0!==t.createTunnelResponse&&(e.createTunnelResponse=mm.toJSON(t.createTunnelResponse)),void 0!==t.disconnectTunnelRequest&&(e.disconnectTunnelRequest=Em.toJSON(t.disconnectTunnelRequest)),void 0!==t.disconnectTunnelResponse&&(e.disconnectTunnelResponse=mm.toJSON(t.disconnectTunnelResponse)),void 0!==t.tunnelMessage&&(e.tunnelMessage=wm.toJSON(t.tunnelMessage)),void 0!==t.tunnelDisconnectEvent&&(e.tunnelDisconnectEvent=Im.toJSON(t.tunnelDisconnectEvent)),void 0!==t.claimTunnelRequest&&(e.claimTunnelRequest=Vm.toJSON(t.claimTunnelRequest)),void 0!==t.claimTunnelResponse&&(e.claimTunnelResponse=Jm.toJSON(t.claimTunnelResponse)),void 0!==t.createClaimOnChainRequest&&(e.createClaimOnChainRequest=Xm.toJSON(t.createClaimOnChainRequest)),void 0!==t.createClaimOnChainResponse&&(e.createClaimOnChainResponse=Zm.toJSON(t.createClaimOnChainResponse)),void 0!==t.completeClaimOnChainRequest&&(e.completeClaimOnChainRequest=$m.toJSON(t.completeClaimOnChainRequest)),void 0!==t.completeClaimOnChainResponse&&(e.completeClaimOnChainResponse=ty.toJSON(t.completeClaimOnChainResponse)),void 0!==t.toprfRequest&&(e.toprfRequest=uy.toJSON(t.toprfRequest)),void 0!==t.toprfResponse&&(e.toprfResponse=dy.toJSON(t.toprfResponse)),void 0!==t.createTaskOnMechainRequest&&(e.createTaskOnMechainRequest=ey.toJSON(t.createTaskOnMechainRequest)),void 0!==t.createTaskOnMechainResponse&&(e.createTaskOnMechainResponse=ny.toJSON(t.createTaskOnMechainResponse)),void 0!==t.claimTeeBundleRequest&&(e.claimTeeBundleRequest=Fm.toJSON(t.claimTeeBundleRequest)),void 0!==t.claimTeeBundleResponse&&(e.claimTeeBundleResponse=Qm.toJSON(t.claimTeeBundleResponse)),void 0!==t.fetchCertificateBytesRequest&&(e.fetchCertificateBytesRequest=fm.toJSON(t.fetchCertificateBytesRequest)),void 0!==t.fetchCertificateBytesResponse&&(e.fetchCertificateBytesResponse=gm.toJSON(t.fetchCertificateBytesResponse)),e},create:t=>py.fromPartial(t??{}),fromPartial(t){const e={id:0,initRequest:void 0,initResponse:void 0,connectionTerminationAlert:void 0,requestError:void 0,createTunnelRequest:void 0,createTunnelResponse:void 0,disconnectTunnelRequest:void 0,disconnectTunnelResponse:void 0,tunnelMessage:void 0,tunnelDisconnectEvent:void 0,claimTunnelRequest:void 0,claimTunnelResponse:void 0,createClaimOnChainRequest:void 0,createClaimOnChainResponse:void 0,completeClaimOnChainRequest:void 0,completeClaimOnChainResponse:void 0,toprfRequest:void 0,toprfResponse:void 0,createTaskOnMechainRequest:void 0,createTaskOnMechainResponse:void 0,claimTeeBundleRequest:void 0,claimTeeBundleResponse:void 0,fetchCertificateBytesRequest:void 0,fetchCertificateBytesResponse:void 0};return e.id=t.id??0,e.initRequest=void 0!==t.initRequest&&null!==t.initRequest?sy.fromPartial(t.initRequest):void 0,e.initResponse=void 0!==t.initResponse&&null!==t.initResponse?cy.fromPartial(t.initResponse):void 0,e.connectionTerminationAlert=void 0!==t.connectionTerminationAlert&&null!==t.connectionTerminationAlert?dm.fromPartial(t.connectionTerminationAlert):void 0,e.requestError=void 0!==t.requestError&&null!==t.requestError?dm.fromPartial(t.requestError):void 0,e.createTunnelRequest=void 0!==t.createTunnelRequest&&null!==t.createTunnelRequest?pm.fromPartial(t.createTunnelRequest):void 0,e.createTunnelResponse=void 0!==t.createTunnelResponse&&null!==t.createTunnelResponse?mm.fromPartial(t.createTunnelResponse):void 0,e.disconnectTunnelRequest=void 0!==t.disconnectTunnelRequest&&null!==t.disconnectTunnelRequest?Em.fromPartial(t.disconnectTunnelRequest):void 0,e.disconnectTunnelResponse=void 0!==t.disconnectTunnelResponse&&null!==t.disconnectTunnelResponse?mm.fromPartial(t.disconnectTunnelResponse):void 0,e.tunnelMessage=void 0!==t.tunnelMessage&&null!==t.tunnelMessage?wm.fromPartial(t.tunnelMessage):void 0,e.tunnelDisconnectEvent=void 0!==t.tunnelDisconnectEvent&&null!==t.tunnelDisconnectEvent?Im.fromPartial(t.tunnelDisconnectEvent):void 0,e.claimTunnelRequest=void 0!==t.claimTunnelRequest&&null!==t.claimTunnelRequest?Vm.fromPartial(t.claimTunnelRequest):void 0,e.claimTunnelResponse=void 0!==t.claimTunnelResponse&&null!==t.claimTunnelResponse?Jm.fromPartial(t.claimTunnelResponse):void 0,e.createClaimOnChainRequest=void 0!==t.createClaimOnChainRequest&&null!==t.createClaimOnChainRequest?Xm.fromPartial(t.createClaimOnChainRequest):void 0,e.createClaimOnChainResponse=void 0!==t.createClaimOnChainResponse&&null!==t.createClaimOnChainResponse?Zm.fromPartial(t.createClaimOnChainResponse):void 0,e.completeClaimOnChainRequest=void 0!==t.completeClaimOnChainRequest&&null!==t.completeClaimOnChainRequest?$m.fromPartial(t.completeClaimOnChainRequest):void 0,e.completeClaimOnChainResponse=void 0!==t.completeClaimOnChainResponse&&null!==t.completeClaimOnChainResponse?ty.fromPartial(t.completeClaimOnChainResponse):void 0,e.toprfRequest=void 0!==t.toprfRequest&&null!==t.toprfRequest?uy.fromPartial(t.toprfRequest):void 0,e.toprfResponse=void 0!==t.toprfResponse&&null!==t.toprfResponse?dy.fromPartial(t.toprfResponse):void 0,e.createTaskOnMechainRequest=void 0!==t.createTaskOnMechainRequest&&null!==t.createTaskOnMechainRequest?ey.fromPartial(t.createTaskOnMechainRequest):void 0,e.createTaskOnMechainResponse=void 0!==t.createTaskOnMechainResponse&&null!==t.createTaskOnMechainResponse?ny.fromPartial(t.createTaskOnMechainResponse):void 0,e.claimTeeBundleRequest=void 0!==t.claimTeeBundleRequest&&null!==t.claimTeeBundleRequest?Fm.fromPartial(t.claimTeeBundleRequest):void 0,e.claimTeeBundleResponse=void 0!==t.claimTeeBundleResponse&&null!==t.claimTeeBundleResponse?Qm.fromPartial(t.claimTeeBundleResponse):void 0,e.fetchCertificateBytesRequest=void 0!==t.fetchCertificateBytesRequest&&null!==t.fetchCertificateBytesRequest?fm.fromPartial(t.fetchCertificateBytesRequest):void 0,e.fetchCertificateBytesResponse=void 0!==t.fetchCertificateBytesResponse&&null!==t.fetchCertificateBytesResponse?gm.fromPartial(t.fetchCertificateBytesResponse):void 0,e}};const fy={encode(t,e=new kE){for(const n of t.messages)py.encode(n,e.uint32(10).fork()).join();return e},decode(t,e){const n=t instanceof QE?t:new QE(t);let r=void 0===e?n.len:n.pos+e;const i={messages:[]};for(;n.pos<r;){const t=n.uint32();switch(t>>>3){case 1:if(10!==t)break;i.messages.push(py.decode(n,n.uint32()));continue}if(4==(7&t)||0===t)break;n.skip(7&t)}return i},fromJSON:t=>({messages:globalThis.Array.isArray(t?.messages)?t.messages.map(t=>py.fromJSON(t)):[]}),toJSON(t){const e={};return t.messages?.length&&(e.messages=t.messages.map(t=>py.toJSON(t))),e},create:t=>fy.fromPartial(t??{}),fromPartial(t){const e={messages:[]};return e.messages=t.messages?.map(t=>py.fromPartial(t))||[],e}};function Ay(t){if(globalThis.Buffer)return Uint8Array.from(globalThis.Buffer.from(t,"base64"));{const e=globalThis.atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;++t)n[t]=e.charCodeAt(t);return n}}function gy(t){if(globalThis.Buffer)return globalThis.Buffer.from(t).toString("base64");{const e=[];return t.forEach(t=>{e.push(globalThis.String.fromCharCode(t))}),globalThis.btoa(e.join(""))}}function Ey(t){const e=globalThis.Number(t.toString());if(e>globalThis.Number.MAX_SAFE_INTEGER)throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");if(e<globalThis.Number.MIN_SAFE_INTEGER)throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");return e}function my(t){return null!=t}const yy=443,wy="/browser-rpc/resources",Iy={signatureType:JE,clientVersion:em,auth:void 0},Cy={version:em},By=9e4,Ty="reclaim-toprf";s(8287).hp;const by="*".charCodeAt(0);function Dy(t){return"number"==typeof t?new Uint32Array(t):Uint32Array.from(t)}function My(t){const e=[];for(const n of t)for(let t=0;t<8;t++)n>>7-t&1?e.push(1):e.push(0);return e}function Ny(t){const e=new Uint8Array(t.length/8);for(let n=0;n<t.length;n+=8)e[n/8]=Ly(t.slice(n,n+8));return e}function Sy(t,...e){const{uint8ArrayToBits:n}=Oy[t],r=[];for(const i of e)"number"==typeof i?r.push(...vy(t,i)):r.push(...n(i));return r}function vy(t,e){const{uint8ArrayToBits:n,isLittleEndian:r}=Oy[t],i=new Uint8Array(4);return new DataView(i.buffer).setUint32(0,e,r),n(function(t,e){const{isLittleEndian:n}=Oy[t],r=new Uint8Array(4),i=new DataView(r.buffer);return i.setUint32(0,e,n),r}(t,e)).flat()}function _y(t,e=32){const n=[];for(let r=2**(e-1);r>=1;r/=2){const e=t>=r?1:0;n.push(e),t-=e*r}return n}function Ly(t){let e=0,n=2**(t.length-1);for(const r of t)e+=r*n,n/=2;return e}function xy(t){const{chunkSize:e,bitsPerWord:n,blocksPerChunk:r}=Oy[t];return e*n/(8*r)}function Ry(t,e,n){const r=xy(t),i=[];for(let t=0;t<e.length;t+=r)i.push({iv:n,ciphertext:e.slice(t,t+r),offsetBytes:t});return i}function Fy(t,e){const n=xy(e);return Math.ceil(t/n)*n}const Oy={chacha20:{index:0,chunkSize:32,bitsPerWord:32,keySizeBytes:32,ivSizeBytes:12,startCounter:1,blocksPerChunk:2,isLittleEndian:!0,uint8ArrayToBits:t=>function(t){const e=[];for(const n of t)e.push(_y(n));return e}(function(t){const e=Dy(t.length/4),n=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let t=0;t<e.length;t++)e[t]=n.getUint32(4*t,!0);return e}(t)).flat(),bitsToUint8Array:t=>{const e=function(t){const e=new Uint32Array(t.length/32);for(let n=0;n<t.length;n+=32)e[n/32]=Ly(t.slice(n,n+32));return e}(t);return function(t){const e=new Uint8Array(4*t.length),n=new DataView(e.buffer,e.byteOffset,e.byteLength);for(const[e,r]of t.entries())n.setUint32(4*e,r,!0);return e}(e)},encrypt:ky("CHACHA20-POLY1305")},"aes-256-ctr":{index:2,chunkSize:80,bitsPerWord:8,keySizeBytes:32,ivSizeBytes:12,startCounter:2,blocksPerChunk:5,isLittleEndian:!1,uint8ArrayToBits:My,bitsToUint8Array:Ny,encrypt:ky("AES-256-GCM")},"aes-128-ctr":{index:1,chunkSize:80,bitsPerWord:8,keySizeBytes:16,ivSizeBytes:12,startCounter:2,blocksPerChunk:5,isLittleEndian:!1,uint8ArrayToBits:My,bitsToUint8Array:Ny,encrypt:ky("AES-128-GCM")}};function ky(t){return async({key:e,iv:n,in:r})=>{const i=await C.importKey(t,e),{ciphertext:o}=await C.authenticatedEncrypt(t,{key:i,iv:n,data:r,aead:new Uint8Array(0)});return o.slice(0,r.length)}}async function Qy(t){const{algorithm:e,operator:n,logger:r}=t,{witness:i,plaintextArray:o}=await async function({algorithm:t,privateInput:{key:e},publicInput:n}){const{keySizeBytes:r}=Oy[t];if(e.length!==r)throw new Error(`key must be ${r} bytes`);const i={key:e,...await Uy({publicInput:n,algorithm:t,key:e})};return{witness:i,plaintextArray:i.out}}(t);let s;s="mask"in t?await n.generateWitness({...i,toprf:t.toprf,mask:t.mask}):await n.generateWitness(i);const{proof:a}=await n.groth16Prove(s,r);return{algorithm:e,proofData:a,plaintext:"mask"in t?void 0:o}}async function Uy({publicInput:t,algorithm:e,...n}){const{ivSizeBytes:r}=Oy[e],i=[],o=[],s=[],a=xy(e),c=Py(e);if(!(t=Array.isArray(t)?t:[t]).length)throw new Error("at least one public input is required");for(const[n,{ciphertext:r,iv:o,offsetBytes:s=0}]of t.entries()){const l=Ry(e,r,o);for(const t of l)await u({...t,offsetBytes:s+(t.offsetBytes||0)});if(n<t.length-1)continue;const h=i.reduce((t,e)=>t+e.length,0);if(h>=c)continue;const d=c-h,p=s+Fy(r.length,e);for(let t=0;t<d;t+=a)await u({ciphertext:new Uint8Array,iv:o,offsetBytes:p+t})}const l={noncesAndCounters:s,in:q(i),out:"plaintext"in n&&n.plaintext?n.plaintext:q(o)};if(l.in.length!==Py(e))throw new Error(`Ciphertext must be exactly ${c}b, got ${l.in.length}b`);return l;async function u({ciphertext:t,iv:c,offsetBytes:l=0}){if(c.length!==r)throw new Error(`iv must be ${r} bytes`);const u=function(t,e){const{startCounter:n}=Oy[t],r=xy(t);if(e%r!==0)throw new Error(`offset(${e}) must be a multiple of block size(${r})`);return n+e/r}(e,l);if(s.push({nonce:c,counter:u,boundary:void 0}),t=function(t,e){if(t.length>e)throw new Error(`ciphertext must be <= ${e}b`);if(t.length<e){const n=new Uint8Array(e);n.set(t),t=n}return t}(t,a),i.push(t),"key"in n){const r=await async function({algorithm:t,key:e,iv:n,startOffset:r,ciphertext:i}){const{encrypt:o}=Oy[t],s=new Uint8Array(r+i.length);s.set(i,r);const a=await o({key:e,iv:n,in:s});return a.slice(r)}({algorithm:e,key:n.key,iv:c,startOffset:l,ciphertext:t});o.push(r)}}}function Py(t){const{blocksPerChunk:e}=Oy[t];return xy(t)*e}function Gy({baseUrl:t="http://localhost:8001/browser-rpc/resources/"}={}){return{async fetch(e,n){const r=`${t}/${e}/${n}`,i=await fetch(r);if(!i.ok)throw new Error(`${e}-${n} fetch failed with code: ${i.status}`);const o=await i.arrayBuffer();return new Uint8Array(o)}}}function Vy({basePath:t="../resources"}={}){return{async fetch(e,n){const r=`${t}/${e}/${n}`,{readFile:i}=await s.e(174).then(s.t.bind(s,7174,19)),{join:o,dirname:a}=await s.e(975).then(s.t.bind(s,7975,19)),c=o(a("file:///Users/joseph/code/github/joclaim/reclaim-browser-extension-sdk/node_modules/@joclaim/zk-symmetric-crypto/lib/file-fetch.js".replace("file://","")),r);return await i(c)}}}new Uint8Array(4).fill(by);function Hy(t){return(new TextDecoder).decode(t)}function jy(t){return(new TextEncoder).encode(t)}const Yy=()=>Math.floor(Date.now()/1e3);function zy(t,e){for(let n=0;n<t.length;n++)if(K(t.slice(n,n+e.length),e))return n;return-1}function Jy(t){if(t.includes("CHACHA20"))return"chacha20";if(t.includes("AES_256_GCM"))return"aes-256-ctr";if(t.includes("AES_128_GCM"))return"aes-128-ctr";throw new Error(`${t} not supported for ZK ops`)}function Wy(t,e,n){return"function"==typeof e?e(t,n):e}function qy(){return X(C.randomBytes(4)).getUint32(0)}function Ky(){return qy()}function Xy(t){return t.endsWith("Request")?{type:t.slice(0,-7),direction:"request"}:t.endsWith("Response")?{type:t.slice(0,-8),direction:"response"}:void 0}function Zy(t){return`${t}Request`}function $y(t,e){return"ciphertext"===t.type&&("APPLICATION_DATA"===t.contentType||t.data[0]===z.WRAPPED_RECORD&&"TLS1_2"===e)}function tw(...t){return fy.create({messages:t.map(t=>py.create({...t,id:t.id||qy()}))})}var ew=s(4874),nw=s(5606);function rw(){return"undefined"!=typeof navigator&&"ReactNative"===navigator.product?"react-native":"undefined"!=typeof window?"browser":"node"}function iw(t){if(void 0!==nw)return nw?.env[t]}const ow=["ownerPrivateKey","secretParams"],sw=iw("LOG_LEVEL");let aw,cw,lw=(0,ew.pino)();function uw(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}function hw(t){if(!uw(t)&&!Array.isArray(t))return t;const e=JSON.parse(JSON.stringify(t,function(){const t=new WeakSet;return function(e,n){if("object"==typeof n&&null!==n){if(t.has(n))return"[CIRCULAR]";t.add(n)}return n}}()));for(const t in e)if(ow.includes(t)&&(e[t]="[REDACTED]"),Array.isArray(e[t]))for(const[n,r]of e[t].entries())e[t][n]=hw(r);else uw(e[t])&&(e[t]=hw(e[t]));return e}function dw(t){return aw||(aw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),cw=aw.slice(0,-2).concat("-","_")),"url"==t?cw:aw}!function(t,e,n){const r={timestamp:ew.stdTimeFunctions.isoTime};t&&(r.formatters={log:hw},r.serializers={redact:hw},r.browser={write:{fatal:t=>o("fatal",t),error:t=>o("error",t),warn:t=>o("warn",t),info:t=>o("info",t),debug:t=>o("debug",t),trace:t=>o("trace",t)}});const i=(0,ew.pino)(r);return i.level=e||"info",lw=i,i;function o(t,e){e=hw(e);const{msg:r,...i}=e;console[t]?console[t](i,r):console.log(i,r),n?.(t,e)}}(!1,sw);const pw="*".charCodeAt(0);function fw(t){for(const e of t)if("*"!==e&&e!==pw)return!1;return!0}function Aw(t,e){const n=new Uint8Array(t);for(const t of e)for(let e=t.fromIndex;e<t.toIndex;e++)n[e]=pw;return n}function gw(t,e){return function(t,e="std"){const n=dw(e),r="std"==e;let i,o="",s=0,a=0;for(let e=0;e<t.length;e++)switch(i=t[e],s){case 0:o+=n[i>>2],a=(3&i)<<4,s=1;break;case 1:o+=n[a|i>>4],a=(15&i)<<2,s=2;break;case 2:o+=n[a|i>>6],o+=n[63&i],s=0}return s&&(o+=n[a],r&&(o+="=",1==s&&(o+="="))),o}(t).padEnd(e,"0").slice(0,e)}const Ew=Z("\r\n");function mw(){const t={statusCode:0,statusMessage:"",headers:{},body:new Uint8Array,complete:!1,headersComplete:!1,headerIndices:new Map,headerEndIdx:0};let e=0,n=!1,r=new Uint8Array,i=0;return{res:t,onChunk(a){if(r=q([r,a]),!t.headersComplete)for(let r=s();void 0!==r;r=s())if(t.statusCode){if(""===r){if(t.headersComplete=!0,t.headerEndIdx=i-4,t.headers["transfer-encoding"]?.includes("chunked")){n=!0,t.chunks=[];break}if(t.headers["content-length"]){e=Number(t.headers["content-length"]);break}e=-1;break}if(t.complete)throw new Error("got more data after response was complete");{const[e,n]=r.split(": ");t.headers[e.toLowerCase()]=n,t.headerIndices[e.toLowerCase()]={fromIndex:i-r.length-Ew.length,toIndex:i-Ew.length}}}else{const[,e,n]=r.match(/HTTP\/\d\.\d (\d+) (.*)/)||[];t.statusCode=Number(e),t.statusMessage=n,t.statusLineEndIndex=i-Ew.length}if(t.headersComplete&&(e&&(o(),e||n||(t.complete=!0)),"0"===t.headers["content-length"]&&(t.complete=!0),n))for(let n=s();void 0!==n;n=s()){if(""===n)continue;const r=Number.parseInt(n,16);if(r){if(t.chunks?.push({fromIndex:i,toIndex:i+r}),e=r,o(),e)break}else t.complete=!0}},streamEnded(){if(!t.headersComplete)throw new Error("stream ended before headers were complete");if(r.length)throw new Error("stream ended before remaining data arrived");if(e>0)throw new Error("stream ended before all body bytes were received");t.complete=!0}};function o(){if(t.complete)throw new Error("got more data after response was complete");let n;t.bodyStartIndex||(t.bodyStartIndex=i),-1===e?n=r.length:(n=Math.min(e,r.length),e-=n),t.body=q([t.body,r.slice(0,n)]),r=r.slice(n),i+=n}function s(){const t=zy(r,Ew);if(-1===t)return;const e=Hy(r.slice(0,t));return r=r.slice(t+Ew.length),i+=t+Ew.length,e}}var yw=s(8287).hp;const ww="function"==typeof yw,Iw=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),Cw=(t=>{let e={};return t.forEach((t,n)=>e[t]=n),e})(Iw),Bw=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Tw=String.fromCharCode.bind(String),bw="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):t=>new Uint8Array(Array.prototype.slice.call(t,0)),Dw=t=>t.replace(/=/g,"").replace(/[+\/]/g,t=>"+"==t?"-":"_"),Mw=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),Nw=t=>{let e,n,r,i,o="";const s=t.length%3;for(let s=0;s<t.length;){if((n=t.charCodeAt(s++))>255||(r=t.charCodeAt(s++))>255||(i=t.charCodeAt(s++))>255)throw new TypeError("invalid character found");e=n<<16|r<<8|i,o+=Iw[e>>18&63]+Iw[e>>12&63]+Iw[e>>6&63]+Iw[63&e]}return s?o.slice(0,s-3)+"===".substring(s):o},Sw="function"==typeof btoa?t=>btoa(t):ww?t=>yw.from(t,"binary").toString("base64"):Nw,vw=ww?t=>yw.from(t).toString("base64"):t=>{let e=[];for(let n=0,r=t.length;n<r;n+=4096)e.push(Tw.apply(null,t.subarray(n,n+4096)));return Sw(e.join(""))},_w=(t,e=!1)=>e?Dw(vw(t)):vw(t),Lw=t=>{if(t=t.replace(/\s+/g,""),!Bw.test(t))throw new TypeError("malformed base64.");let e,n,r;t+="==".slice(2-(3&t.length));let i=[];for(let o=0;o<t.length;)e=Cw[t.charAt(o++)]<<18|Cw[t.charAt(o++)]<<12|(n=Cw[t.charAt(o++)])<<6|(r=Cw[t.charAt(o++)]),64===n?i.push(Tw(e>>16&255)):64===r?i.push(Tw(e>>16&255,e>>8&255)):i.push(Tw(e>>16&255,e>>8&255,255&e));return i.join("")},xw="function"==typeof atob?t=>atob(Mw(t)):ww?t=>yw.from(t,"base64").toString("binary"):Lw,Rw=ww?t=>bw(yw.from(t,"base64")):t=>bw(xw(t).split("").map(t=>t.charCodeAt(0))),Fw=t=>Rw(Ow(t)),Ow=t=>Mw(t.replace(/[-_]/g,t=>"-"==t?"+":"/")),kw=_w,Qw=Fw;var Uw=s(5606),Pw=s(8287).hp;const Gw="../../bin/gnark";let Vw;const Hw={x64:"x86_64"},jw={};async function Yw(t,e,n,r){Vw??=async function(){const t=await Promise.resolve().then(s.t.bind(s,2447,19)).catch(()=>{});if(!t)throw new Error("Koffi not available, cannot use gnark");const{join:e,dirname:n}=await s.e(975).then(s.t.bind(s,7975,19)),r=n("file:///Users/joseph/code/github/joclaim/reclaim-browser-extension-sdk/node_modules/@joclaim/zk-symmetric-crypto/lib/gnark/utils.js".replace("file://","")),{default:i}=t;i.reset();const o=i.struct("GoSlice",{data:"void *",len:"longlong",cap:"longlong"}),a=i.struct("ProveReturn",{r0:"void *",r1:"longlong"}),c=i.struct("LibReturn",{r0:"void *",r1:"longlong"}),l=Hw[Uw.arch]||Uw.arch,u=Uw.platform,h=e(r,`${Gw}/${u}-${l}-libverify.so`),d=e(r,`${Gw}/${u}-${l}-libprove.so`);try{const t=i.load(h),e=i.load(d);return{verify:t.func("Verify","unsigned char",[o]),free:e.func("Free","void",["void *"]),vfree:t.func("VFree","void",["void *"]),prove:e.func("Prove",a,[o]),initAlgorithm:e.func("InitAlgorithm","unsigned char",["unsigned char",o,o]),generateThresholdKeys:t.func("GenerateThresholdKeys",c,[o]),oprfEvaluate:t.func("OPRFEvaluate",c,[o]),generateOPRFRequest:e.func("GenerateOPRFRequestData",c,[o]),toprfFinalize:e.func("TOPRFFinalize",c,[o]),koffi:i}}catch(t){if(t.message.includes("not a mach-o"))throw new Error(`Gnark library not compatible with OS/arch (${u}/${l})`);if(t.message.toLowerCase().includes("no such file"))throw new Error(`Gnark library not built for OS/arch (${u}/${l})`);throw t}}();const i=await Vw;if(jw[t])return i;const[o,a]=await Promise.all([n.fetch("gnark",`pk.${e}`,r),n.fetch("gnark",`r1cs.${e}`,r)]),c={data:o,len:o.length,cap:o.length},l={data:a,len:a.length,cap:a.length};return await i.initAlgorithm(t,c,l),jw[t]=!0,i}function zw(t){return(new TextEncoder).encode(t)}function Jw(t,e){const n=Ww(t,e);return zw(JSON.stringify(n))}function Ww(t,e){return{cipher:t+("toprf"in e?"-toprf":""),key:"key"in e?kw(e.key):void 0,ciphertext:"out"in e&&e.out?.length?kw(e.out):void 0,blocks:e.noncesAndCounters.map(t=>({nonce:kw(t.nonce),counter:t.counter,boundary:t.boundary||null})),input:kw(e.in),toprf:function(){if(!("toprf"in e))return{};const{locations:t,domainSeparator:n,output:r,responses:i}=e.toprf;return{locations:t,domainSeparator:kw(zw(n)),output:kw(r),responses:i.map(qw),mask:"mask"in e?kw(e.mask):""}}()}}function qw({publicKeyShare:t,evaluated:e,c:n,r}){return{publicKeyShare:kw(t),evaluated:kw(e),c:kw(n),r:kw(r)}}function Kw(t,e){return t({data:"string"==typeof e?Pw.from(e):e,len:e.length,cap:e.length})}async function Xw(t,e){const{free:n,koffi:r}=await Vw,i=Kw(t,e),o=Pw.from(r.decode(i.r0,"unsigned char",i.r1)).toString();return n(i.r0),JSON.parse(o)}const Zw={chacha20:{ext:"chacha20"},"aes-128-ctr":{ext:"aes128"},"aes-256-ctr":{ext:"aes256"}};async function $w(t,e,n){const{ext:r}=Zw[t],{index:i}=Oy[t];return Yw(i,r,e,n)}var tI=s(2447),eI=s(8287).hp;const nI={chacha20:{ext:"chacha20_oprf",id:3},"aes-128-ctr":{ext:"aes128_oprf",id:4},"aes-256-ctr":{ext:"aes256_oprf",id:5}};var rI=s(228);class iI extends Error{constructor(t){super(t),this.name="TimeoutError"}}class oI extends Error{constructor(t){super(),this.name="AbortError",this.message=t}}const sI=t=>void 0===globalThis.DOMException?new oI(t):new DOMException(t),aI=t=>{const e=void 0===t.reason?sI("This operation was aborted."):t.reason;return e instanceof Error?e:sI(e)};class cI{#t=[];enqueue(t,e){const n={priority:(e={priority:0,...e}).priority,id:e.id,run:t};if(0===this.size||this.#t[this.size-1].priority>=e.priority)return void this.#t.push(n);const r=function(t,e,n){let r=0,i=t.length;for(;i>0;){const o=Math.trunc(i/2);let s=r+o;n(t[s],e)<=0?(r=++s,i-=o+1):i=o}return r}(this.#t,n,(t,e)=>e.priority-t.priority);this.#t.splice(r,0,n)}setPriority(t,e){const n=this.#t.findIndex(e=>e.id===t);if(-1===n)throw new ReferenceError(`No promise function with the id "${t}" exists in the queue.`);const[r]=this.#t.splice(n,1);this.enqueue(r.run,{priority:e,id:t})}dequeue(){const t=this.#t.shift();return t?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(t=>t.run)}get size(){return this.#t.length}}class lI extends rI{#e;#n;#r=0;#i;#o;#s=0;#a;#c;#t;#l;#u=0;#h;#d;#p;#f=1n;timeout;constructor(t){if(super(),!("number"==typeof(t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:cI,...t}).intervalCap&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(void 0===t.interval||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#e=t.carryoverConcurrencyCount,this.#n=t.intervalCap===Number.POSITIVE_INFINITY||0===t.interval,this.#i=t.intervalCap,this.#o=t.interval,this.#t=new t.queueClass,this.#l=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#p=!0===t.throwOnTimeout,this.#d=!1===t.autoStart}get#A(){return this.#n||this.#r<this.#i}get#g(){return this.#u<this.#h}#E(){this.#u--,this.#m(),this.emit("next")}#y(){this.#w(),this.#I(),this.#c=void 0}get#C(){const t=Date.now();if(void 0===this.#a){const e=this.#s-t;if(!(e<0))return void 0===this.#c&&(this.#c=setTimeout(()=>{this.#y()},e)),!0;this.#r=this.#e?this.#u:0}return!1}#m(){if(0===this.#t.size)return this.#a&&clearInterval(this.#a),this.#a=void 0,this.emit("empty"),0===this.#u&&this.emit("idle"),!1;if(!this.#d){const t=!this.#C;if(this.#A&&this.#g){const e=this.#t.dequeue();return!!e&&(this.emit("active"),e(),t&&this.#I(),!0)}}return!1}#I(){this.#n||void 0!==this.#a||(this.#a=setInterval(()=>{this.#w()},this.#o),this.#s=Date.now()+this.#o)}#w(){0===this.#r&&0===this.#u&&this.#a&&(clearInterval(this.#a),this.#a=void 0),this.#r=this.#e?this.#u:0,this.#B()}#B(){for(;this.#m(););}get concurrency(){return this.#h}set concurrency(t){if(!("number"==typeof t&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#h=t,this.#B()}async#T(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}setPriority(t,e){this.#t.setPriority(t,e)}async add(t,e={}){return e.id??=(this.#f++).toString(),e={timeout:this.timeout,throwOnTimeout:this.#p,...e},new Promise((n,r)=>{this.#t.enqueue(async()=>{this.#u++;try{e.signal?.throwIfAborted(),this.#r++;let r=t({signal:e.signal});e.timeout&&(r=function(t,e){const{milliseconds:n,fallback:r,message:i,customTimers:o={setTimeout,clearTimeout}}=e;let s,a;const c=new Promise((c,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(e.signal){const{signal:t}=e;t.aborted&&l(aI(t)),a=()=>{l(aI(t))},t.addEventListener("abort",a,{once:!0})}if(n===Number.POSITIVE_INFINITY)return void t.then(c,l);const u=new iI;s=o.setTimeout.call(void 0,()=>{if(r)try{c(r())}catch(t){l(t)}else"function"==typeof t.cancel&&t.cancel(),!1===i?c():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${n} milliseconds`,l(u))},n),(async()=>{try{c(await t)}catch(t){l(t)}})()}).finally(()=>{c.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}(Promise.resolve(r),{milliseconds:e.timeout})),e.signal&&(r=Promise.race([r,this.#T(e.signal)]));const i=await r;n(i),this.emit("completed",i)}catch(t){if(t instanceof iI&&!e.throwOnTimeout)return void n();r(t),this.emit("error",t)}finally{this.#E()}},e),this.emit("add"),this.#m()})}async addAll(t,e){return Promise.all(t.map(async t=>this.add(t,e)))}start(){return this.#d?(this.#d=!1,this.#B(),this):this}pause(){this.#d=!0}clear(){this.#t=new this.#l}async onEmpty(){0!==this.#t.size&&await this.#b("empty")}async onSizeLessThan(t){this.#t.size<t||await this.#b("next",()=>this.#t.size<t)}async onIdle(){0===this.#u&&0===this.#t.size||await this.#b("idle")}async#b(t,e){return new Promise(n=>{const r=()=>{e&&!e()||(this.off(t,r),n())};this.on(t,r)})}get size(){return this.#t.size}sizeBy(t){return this.#t.filter(t).length}get pending(){return this.#u}get isPaused(){return this.#d}}const uI=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function hI(t,e){return e&&10!=e?16==e?"0x"==t.slice(0,2)?BigInt(t):BigInt("0x"+t):void 0:BigInt(t)}const dI=hI;function pI(t){const e=t.toString(16);return 4*(e.length-1)+uI[parseInt(e[0],16)]}function fI(t){return BigInt(t)<BigInt(0)}function AI(t){return!t}function gI(t,e){return BigInt(t)<<BigInt(e)}function EI(t,e){return BigInt(t)>>BigInt(e)}const mI=gI,yI=EI;function wI(t){return(BigInt(t)&BigInt(1))==BigInt(1)}function II(t){let e=BigInt(t);const n=[];for(;e;){if(e&BigInt(1)){const t=2-Number(e%BigInt(4));n.push(t),e-=BigInt(t)}else n.push(0);e>>=BigInt(1)}return n}function CI(t){let e=BigInt(t);const n=[];for(;e;)e&BigInt(1)?n.push(1):n.push(0),e>>=BigInt(1);return n}function BI(t){if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(t)}function TI(t,e){return BigInt(t)+BigInt(e)}function bI(t,e){return BigInt(t)-BigInt(e)}function DI(t){return-BigInt(t)}function MI(t,e){return BigInt(t)*BigInt(e)}function NI(t,e){return BigInt(t)**BigInt(e)}function SI(t,e){return BigInt(t)/BigInt(e)}function vI(t,e){return BigInt(t)%BigInt(e)}function _I(t,e){return BigInt(t)==BigInt(e)}function LI(t,e){return BigInt(t)>BigInt(e)}function xI(t,e){return BigInt(t)>=BigInt(e)}function RI(t,e){return BigInt(t)&BigInt(e)}function FI(t,e,n,r){const i="0000000"+n.toString(16),o=new Uint32Array(t.buffer,t.byteOffset+e,r/4),s=1+(4*(i.length-7)-1>>5);for(let t=0;t<s;t++)o[t]=parseInt(i.substring(i.length-8*t-8,i.length-8*t),16);for(let t=s;t<o.length;t++)o[t]=0;for(let e=4*o.length;e<r;e++)t[e]=BI(RI(EI(n,8*e),255))}function OI(t,e,n,r){const i="0000000"+n.toString(16),o=new DataView(t.buffer,t.byteOffset+e,r),s=1+(4*(i.length-7)-1>>5);for(let t=0;t<s;t++)o.setUint32(r-4*t-4,parseInt(i.substring(i.length-8*t-8,i.length-8*t),16),!1);for(let t=0;t<r/4-s;t++)o[t]=0}function kI(t,e,n){n=n||t.byteLength,e=e||0;const r=new Uint32Array(t.buffer,t.byteOffset+e,n/4),i=new Array(n/4);return r.forEach((t,e)=>i[i.length-e-1]=t.toString(16).padStart(8,"0")),hI(i.join(""),16)}function QI(t,e,n){n=n||t.byteLength,e=e||0;const r=new DataView(t.buffer,t.byteOffset+e,n),i=new Array(n/4);for(let t=0;t<n/4;t++)i[t]=r.getUint32(4*t,!1).toString(16).padStart(8,"0");return hI(i.join(""),16)}function UI(t,e){return t.toString(e)}function PI(t){const e=new Uint8Array(Math.floor((pI(t)-1)/8)+1);return FI(e,0,t,e.byteLength),e}const GI=dI(0),VI=dI(1);var HI=Object.freeze({__proto__:null,abs:function(t){return BigInt(t)>=0?BigInt(t):-BigInt(t)},add:TI,band:RI,bitLength:pI,bits:CI,bor:function(t,e){return BigInt(t)|BigInt(e)},bxor:function(t,e){return BigInt(t)^BigInt(e)},div:SI,e:dI,eq:_I,exp:function(t,e){return BigInt(t)**BigInt(e)},fromArray:function(t,e){let n=BigInt(0);e=BigInt(e);for(let r=0;r<t.length;r++)n=n*e+BigInt(t[r]);return n},fromRprBE:QI,fromRprLE:kI,fromString:hI,geq:xI,gt:LI,isNegative:fI,isOdd:wI,isZero:AI,land:function(t,e){return BigInt(t)&&BigInt(e)},leq:function(t,e){return BigInt(t)<=BigInt(e)},lnot:function(t){return!BigInt(t)},lor:function(t,e){return BigInt(t)||BigInt(e)},lt:function(t,e){return BigInt(t)<BigInt(e)},mod:vI,mul:MI,naf:II,neg:DI,neq:function(t,e){return BigInt(t)!=BigInt(e)},one:VI,pow:NI,shiftLeft:gI,shiftRight:EI,shl:mI,shr:yI,square:function(t){return BigInt(t)*BigInt(t)},sub:bI,toArray:function(t,e){const n=[];let r=BigInt(t);for(e=BigInt(e);r;)n.unshift(Number(r%e)),r/=e;return n},toLEBuff:PI,toNumber:BI,toRprBE:OI,toRprLE:FI,toString:UI,zero:GI});const jI=[];for(let t=0;t<256;t++)jI[t]=YI(t,8);function YI(t,e){let n=0,r=t;for(let t=0;t<e;t++)n<<=1,n|=1&r,r>>=1;return n}function zI(t,e,n){if(AI(n))return t.one;const r=CI(n);if(0==r.length)return t.one;let i=e;for(let n=r.length-2;n>=0;n--)i=t.square(i),r[n]&&(i=t.mul(i,e));return i}function JI(t){if(t.m%2==1)if(_I(vI(t.p,4),1))if(_I(vI(t.p,8),1))if(_I(vI(t.p,16),1))!function(t){t.sqrt_q=NI(t.p,t.m),t.sqrt_s=0,t.sqrt_t=bI(t.sqrt_q,1);for(;!wI(t.sqrt_t);)t.sqrt_s=t.sqrt_s+1,t.sqrt_t=SI(t.sqrt_t,2);let e=t.one;for(;t.eq(e,t.one);){const n=t.random();t.sqrt_z=t.pow(n,t.sqrt_t),e=t.pow(t.sqrt_z,2**(t.sqrt_s-1))}t.sqrt_tm1d2=SI(bI(t.sqrt_t,1),2),t.sqrt=function(t){const e=this;if(e.isZero(t))return e.zero;let n=e.pow(t,e.sqrt_tm1d2);const r=e.pow(e.mul(e.square(n),t),2**(e.sqrt_s-1));if(e.eq(r,e.negone))return null;let i=e.sqrt_s,o=e.mul(t,n),s=e.mul(o,n),a=e.sqrt_z;for(;!e.eq(s,e.one);){let t=e.square(s),r=1;for(;!e.eq(t,e.one);)t=e.square(t),r++;n=a;for(let t=0;t<i-r-1;t++)n=e.square(n);a=e.square(n),s=e.mul(s,a),o=e.mul(o,n),i=r}return e.geq(o,e.zero)?o:e.neg(o)}}(t);else{if(!_I(vI(t.p,16),9))throw new Error("Field withot sqrt");!function(t){t.sqrt=function(){throw new Error("Sqrt alg 4 not implemented")}}(t)}else{if(!_I(vI(t.p,8),5))throw new Error("Field withot sqrt");!function(t){t.sqrt=function(){throw new Error("Sqrt alg 3 not implemented")}}(t)}else _I(vI(t.p,4),3)&&function(t){t.sqrt_q=NI(t.p,t.m),t.sqrt_e1=SI(bI(t.sqrt_q,3),4),t.sqrt=function(e){if(this.isZero(e))return this.zero;const n=this.pow(e,this.sqrt_e1),r=this.mul(this.square(n),e);if(this.eq(r,this.negone))return null;const i=this.mul(n,e);return t.geq(i,t.zero)?i:t.neg(i)}}(t);else{const e=vI(NI(t.p,t.m/2),4);1==e?function(t){t.sqrt=function(){throw new Error("Sqrt alg 10 not implemented")}}(t):3==e?function(t){t.sqrt_q=NI(t.p,t.m/2),t.sqrt_e34=SI(bI(t.sqrt_q,3),4),t.sqrt_e12=SI(bI(t.sqrt_q,1),2),t.frobenius=function(e,n){return e%2==1?t.conjugate(n):n},t.sqrt=function(t){const e=this,n=e.pow(t,e.sqrt_e34),r=e.mul(e.square(n),t),i=e.mul(e.frobenius(1,r),r);if(e.eq(i,e.negone))return null;const o=e.mul(n,t);let s;if(e.eq(r,e.negone))s=e.mul(o,[e.F.zero,e.F.one]);else{const t=e.pow(e.add(e.one,r),e.sqrt_e12);s=e.mul(t,o)}return e.geq(s,e.zero)?s:e.neg(s)}}(t):function(t){t.sqrt=function(){throw new Error("Sqrt alg 8 not implemented")}}(t)}}function WI(t,e,n,r,i){t[e]=t[e]+t[n]>>>0,t[i]=(t[i]^t[e])>>>0,t[i]=(t[i]<<16|t[i]>>>16&65535)>>>0,t[r]=t[r]+t[i]>>>0,t[n]=(t[n]^t[r])>>>0,t[n]=(t[n]<<12|t[n]>>>20&4095)>>>0,t[e]=t[e]+t[n]>>>0,t[i]=(t[i]^t[e])>>>0,t[i]=(t[i]<<8|t[i]>>>24&255)>>>0,t[r]=t[r]+t[i]>>>0,t[n]=(t[n]^t[r])>>>0,t[n]=(t[n]<<7|t[n]>>>25&127)>>>0}function qI(t){WI(t,0,4,8,12),WI(t,1,5,9,13),WI(t,2,6,10,14),WI(t,3,7,11,15),WI(t,0,5,10,15),WI(t,1,6,11,12),WI(t,2,7,8,13),WI(t,3,4,9,14)}class KI{constructor(t){t=t||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return TI(MI(this.nextU32(),4294967296),this.nextU32())}nextBool(){return!(1&~this.nextU32())}update(){for(let t=0;t<16;t++)this.buff[t]=this.state[t];for(let t=0;t<10;t++)qI(this.buff);for(let t=0;t<16;t++)this.buff[t]=this.buff[t]+this.state[t]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}function XI(t){let e=new Uint8Array(t);if(void 0!==globalThis.crypto)globalThis.crypto.getRandomValues(e);else for(let n=0;n<t;n++)e[n]=4294967296*Math.random()>>>0;return e}let ZI=null;function $I(){return ZI||(ZI=new KI(function(){const t=XI(32),e=new Uint32Array(t.buffer),n=[];for(let t=0;t<8;t++)n.push(e[t]);return n}()),ZI)}class tC{constructor(t,e,n){this.F=e,this.G=t,this.opMulGF=n;let r=e.sqrt_t||e.t,i=e.sqrt_s||e.s,o=e.one;for(;e.eq(e.pow(o,e.half),e.one);)o=e.add(o,e.one);this.w=new Array(i+1),this.wi=new Array(i+1),this.w[i]=this.F.pow(o,r),this.wi[i]=this.F.inv(this.w[i]);let s=i-1;for(;s>=0;)this.w[s]=this.F.square(this.w[s+1]),this.wi[s]=this.F.square(this.wi[s+1]),s--;this.roots=[],this._setRoots(Math.min(i,15))}_setRoots(t){for(let e=t;e>=0&&!this.roots[e];e--){let t=this.F.one;const n=1<<e,r=new Array(n);for(let i=0;i<n;i++)r[i]=t,t=this.F.mul(t,this.w[e]);this.roots[e]=r}}fft(t){if(t.length<=1)return t;const e=eC(t.length-1)+1;this._setRoots(e);const n=1<<e;if(t.length!=n)throw new Error("Size must be multiple of 2");return nC(this,t,e,0,1)}ifft(t){if(t.length<=1)return t;const e=eC(t.length-1)+1;this._setRoots(e);const n=1<<e;if(t.length!=n)throw new Error("Size must be multiple of 2");const r=nC(this,t,e,0,1),i=this.F.inv(this.F.mulScalar(this.F.one,n)),o=new Array(n);for(let t=0;t<n;t++)o[t]=this.opMulGF(r[(n-t)%n],i);return o}}function eC(t){return(4294901760&t?(t&=4294901760,16):0)|(4278255360&t?(t&=4278255360,8):0)|(4042322160&t?(t&=4042322160,4):0)|(3435973836&t?(t&=3435973836,2):0)|!!(2863311530&t)}function nC(t,e,n,r,i){const o=1<<n;if(1==o)return[e[r]];if(2==o)return[t.G.add(e[r],e[r+i]),t.G.sub(e[r],e[r+i])];const s=o>>1,a=nC(t,e,n-1,r,2*i),c=nC(t,e,n-1,r+i,2*i),l=new Array(o);for(let e=0;e<s;e++)l[e]=t.G.add(a[e],t.opMulGF(c[e],t.roots[n][e])),l[e+s]=t.G.sub(a[e],t.opMulGF(c[e],t.roots[n][e]));return l}class rC{constructor(t){this.type="F1",this.one=BigInt(1),this.zero=BigInt(0),this.p=BigInt(t),this.m=1,this.negone=this.p-this.one,this.two=BigInt(2),this.half=this.p>>this.one,this.bitLength=pI(this.p),this.mask=(this.one<<BigInt(this.bitLength))-this.one,this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=this.e(this.one<<BigInt(64*this.n64)),this.Ri=this.inv(this.R);const e=this.negone>>this.one;this.nqr=this.two;let n=this.pow(this.nqr,e);for(;!this.eq(n,this.negone);)this.nqr=this.nqr+this.one,n=this.pow(this.nqr,e);for(this.s=0,this.t=this.negone;(this.t&this.one)==this.zero;)this.s=this.s+1,this.t=this.t>>this.one;this.nqr_to_t=this.pow(this.nqr,this.t),JI(this),this.FFT=new tC(this,this,this.mul.bind(this)),this.fft=this.FFT.fft.bind(this.FFT),this.ifft=this.FFT.ifft.bind(this.FFT),this.w=this.FFT.w,this.wi=this.FFT.wi,this.shift=this.square(this.nqr),this.k=this.exp(this.nqr,2**this.s)}e(t,e){let n;if(e?16==e&&(n=BigInt("0x"+t)):n=BigInt(t),n<0){let t=-n;return t>=this.p&&(t%=this.p),this.p-t}return n>=this.p?n%this.p:n}add(t,e){const n=t+e;return n>=this.p?n-this.p:n}sub(t,e){return t>=e?t-e:this.p-e+t}neg(t){return t?this.p-t:t}mul(t,e){return t*e%this.p}mulScalar(t,e){return t*this.e(e)%this.p}square(t){return t*t%this.p}eq(t,e){return t==e}neq(t,e){return t!=e}lt(t,e){return(t>this.half?t-this.p:t)<(e>this.half?e-this.p:e)}gt(t,e){return(t>this.half?t-this.p:t)>(e>this.half?e-this.p:e)}leq(t,e){return(t>this.half?t-this.p:t)<=(e>this.half?e-this.p:e)}geq(t,e){return(t>this.half?t-this.p:t)>=(e>this.half?e-this.p:e)}div(t,e){return this.mul(t,this.inv(e))}idiv(t,e){if(!e)throw new Error("Division by zero");return t/e}inv(t){if(!t)throw new Error("Division by zero");let e=this.zero,n=this.p,r=this.one,i=t%this.p;for(;i;){let t=n/i;[e,r]=[r,e-t*r],[n,i]=[i,n-t*i]}return e<this.zero&&(e+=this.p),e}mod(t,e){return t%e}pow(t,e){return zI(this,t,e)}exp(t,e){return zI(this,t,e)}band(t,e){const n=t&e&this.mask;return n>=this.p?n-this.p:n}bor(t,e){const n=(t|e)&this.mask;return n>=this.p?n-this.p:n}bxor(t,e){const n=(t^e)&this.mask;return n>=this.p?n-this.p:n}bnot(t){const e=t^this.mask;return e>=this.p?e-this.p:e}shl(t,e){if(Number(e)<this.bitLength){const n=t<<e&this.mask;return n>=this.p?n-this.p:n}{const n=this.p-e;return Number(n)<this.bitLength?t>>n:this.zero}}shr(t,e){if(Number(e)<this.bitLength)return t>>e;{const n=this.p-e;if(Number(n)<this.bitLength){const e=t<<n&this.mask;return e>=this.p?e-this.p:e}return 0}}land(t,e){return t&&e?this.one:this.zero}lor(t,e){return t||e?this.one:this.zero}lnot(t){return t?this.zero:this.one}sqrt_old(t){if(t==this.zero)return this.zero;if(this.pow(t,this.negone>>this.one)!=this.one)return null;let e=this.s,n=this.nqr_to_t,r=this.pow(t,this.t),i=this.pow(t,this.add(this.t,this.one)>>this.one);for(;r!=this.one;){let t=this.square(r),o=1;for(;t!=this.one;)o++,t=this.square(t);let s=n;for(let t=0;t<e-o-1;t++)s=this.square(s);e=o,n=this.square(s),r=this.mul(r,n),i=this.mul(i,s)}return i>this.p>>this.one&&(i=this.neg(i)),i}normalize(t,e){if((t=BigInt(t,e))<0){let e=-t;return e>=this.p&&(e%=this.p),this.p-e}return t>=this.p?t%this.p:t}random(){const t=2*this.bitLength/8;let e=this.zero;for(let n=0;n<t;n++)e=(e<<BigInt(8))+BigInt(XI(1)[0]);return e%this.p}toString(t,e){let n;if(e=e||10,t>this.half&&10==e){n="-"+(this.p-t).toString(e)}else n=t.toString(e);return n}isZero(t){return t==this.zero}fromRng(t){let e;do{e=this.zero;for(let n=0;n<this.n64;n++)e+=t.nextU64()<<BigInt(64*n);e&=this.mask}while(e>=this.p);return e=e*this.Ri%this.p,e}fft(t){return this.FFT.fft(t)}ifft(t){return this.FFT.ifft(t)}toRprLE(t,e,n){FI(t,e,n,8*this.n64)}toRprBE(t,e,n){OI(t,e,n,8*this.n64)}toRprBEM(t,e,n){return this.toRprBE(t,e,this.mul(this.R,n))}toRprLEM(t,e,n){return this.toRprLE(t,e,this.mul(this.R,n))}fromRprLE(t,e){return kI(t,e,this.n8)}fromRprBE(t,e){return QI(t,e,this.n8)}fromRprLEM(t,e){return this.mul(this.fromRprLE(t,e),this.Ri)}fromRprBEM(t,e){return this.mul(this.fromRprBE(t,e),this.Ri)}toObject(t){return t}}var iC={bigInt2BytesLE:function(t,e){const n=Array(e);let r=BigInt(t);for(let t=0;t<e;t++)n[t]=Number(0xFFn&r),r>>=8n;return n},bigInt2U32LE:function(t,e){const n=Array(e);let r=BigInt(t);for(let t=0;t<e;t++)n[t]=Number(0xFFFFFFFFn&r),r>>=32n;return n},isOcamNum:function(t){return!!Array.isArray(t)&&(3==t.length&&("number"==typeof t[0]&&("number"==typeof t[1]&&!!Array.isArray(t[2]))))}},oC=function(t,e,n,r,i,o,s){const a=t.addFunction(e);a.addParam("base","i32"),a.addParam("scalar","i32"),a.addParam("scalarLength","i32"),a.addParam("r","i32"),a.addLocal("i","i32"),a.addLocal("b","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(n));a.addCode(c.if(c.i32_eqz(c.getLocal("scalarLength")),[...c.call(s,c.getLocal("r")),...c.ret([])])),a.addCode(c.call(o,c.getLocal("base"),l)),a.addCode(c.call(s,c.getLocal("r"))),a.addCode(c.setLocal("i",c.getLocal("scalarLength"))),a.addCode(c.block(c.loop(c.setLocal("i",c.i32_sub(c.getLocal("i"),c.i32_const(1))),c.setLocal("b",c.i32_load8_u(c.i32_add(c.getLocal("scalar"),c.getLocal("i")))),...function(){const t=[];for(let e=0;e<8;e++)t.push(...c.call(i,c.getLocal("r"),c.getLocal("r")),...c.if(c.i32_ge_u(c.getLocal("b"),c.i32_const(128>>e)),[...c.setLocal("b",c.i32_sub(c.getLocal("b"),c.i32_const(128>>e))),...c.call(r,c.getLocal("r"),l,c.getLocal("r"))]));return t}(),c.br_if(1,c.i32_eqz(c.getLocal("i"))),c.br(0))))},sC=function(t,e){const n=8*t.modules[e].n64,r=t.addFunction(e+"_batchInverse");r.addParam("pIn","i32"),r.addParam("inStep","i32"),r.addParam("n","i32"),r.addParam("pOut","i32"),r.addParam("outStep","i32"),r.addLocal("itAux","i32"),r.addLocal("itIn","i32"),r.addLocal("itOut","i32"),r.addLocal("i","i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(n));r.addCode(i.setLocal("itAux",i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal("itAux"),i.i32_mul(i.i32_add(i.getLocal("n"),i.i32_const(1)),i.i32_const(n))))),r.addCode(i.call(e+"_one",i.getLocal("itAux")),i.setLocal("itIn",i.getLocal("pIn")),i.setLocal("itAux",i.i32_add(i.getLocal("itAux"),i.i32_const(n))),i.setLocal("i",i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal("i"),i.getLocal("n"))),i.if(i.call(e+"_isZero",i.getLocal("itIn")),i.call(e+"_copy",i.i32_sub(i.getLocal("itAux"),i.i32_const(n)),i.getLocal("itAux")),i.call(e+"_mul",i.getLocal("itIn"),i.i32_sub(i.getLocal("itAux"),i.i32_const(n)),i.getLocal("itAux"))),i.setLocal("itIn",i.i32_add(i.getLocal("itIn"),i.getLocal("inStep"))),i.setLocal("itAux",i.i32_add(i.getLocal("itAux"),i.i32_const(n))),i.setLocal("i",i.i32_add(i.getLocal("i"),i.i32_const(1))),i.br(0))),i.setLocal("itIn",i.i32_sub(i.getLocal("itIn"),i.getLocal("inStep"))),i.setLocal("itAux",i.i32_sub(i.getLocal("itAux"),i.i32_const(n))),i.setLocal("itOut",i.i32_add(i.getLocal("pOut"),i.i32_mul(i.i32_sub(i.getLocal("n"),i.i32_const(1)),i.getLocal("outStep")))),i.call(e+"_inverse",i.getLocal("itAux"),i.getLocal("itAux")),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal("i"))),i.if(i.call(e+"_isZero",i.getLocal("itIn")),[...i.call(e+"_copy",i.getLocal("itAux"),i.i32_sub(i.getLocal("itAux"),i.i32_const(n))),...i.call(e+"_zero",i.getLocal("itOut"))],[...i.call(e+"_copy",i.i32_sub(i.getLocal("itAux"),i.i32_const(n)),o),...i.call(e+"_mul",i.getLocal("itAux"),i.getLocal("itIn"),i.i32_sub(i.getLocal("itAux"),i.i32_const(n))),...i.call(e+"_mul",i.getLocal("itAux"),o,i.getLocal("itOut"))]),i.setLocal("itIn",i.i32_sub(i.getLocal("itIn"),i.getLocal("inStep"))),i.setLocal("itOut",i.i32_sub(i.getLocal("itOut"),i.getLocal("outStep"))),i.setLocal("itAux",i.i32_sub(i.getLocal("itAux"),i.i32_const(n))),i.setLocal("i",i.i32_sub(i.getLocal("i"),i.i32_const(1))),i.br(0)))),r.addCode(i.i32_store(i.i32_const(0),i.getLocal("itAux")))};var aC=function(t,e,n,r,i,o){void 0===o&&(o=r<i);const s=t.addFunction(e);s.addParam("pIn","i32"),s.addParam("n","i32"),s.addParam("pOut","i32"),s.addLocal("i","i32"),s.addLocal("itIn","i32"),s.addLocal("itOut","i32");const a=s.getCodeBuilder();o?s.addCode(a.setLocal("itIn",a.i32_add(a.getLocal("pIn"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.i32_const(1)),a.i32_const(r)))),a.setLocal("itOut",a.i32_add(a.getLocal("pOut"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.i32_const(1)),a.i32_const(i)))),a.setLocal("i",a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("i"),a.getLocal("n"))),a.call(n,a.getLocal("itIn"),a.getLocal("itOut")),a.setLocal("itIn",a.i32_sub(a.getLocal("itIn"),a.i32_const(r))),a.setLocal("itOut",a.i32_sub(a.getLocal("itOut"),a.i32_const(i))),a.setLocal("i",a.i32_add(a.getLocal("i"),a.i32_const(1))),a.br(0)))):s.addCode(a.setLocal("itIn",a.getLocal("pIn")),a.setLocal("itOut",a.getLocal("pOut")),a.setLocal("i",a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("i"),a.getLocal("n"))),a.call(n,a.getLocal("itIn"),a.getLocal("itOut")),a.setLocal("itIn",a.i32_add(a.getLocal("itIn"),a.i32_const(r))),a.setLocal("itOut",a.i32_add(a.getLocal("itOut"),a.i32_const(i))),a.setLocal("i",a.i32_add(a.getLocal("i"),a.i32_const(1))),a.br(0))))};var cC=function(t,e,n,r,i,o){void 0===o&&(o=r<i);const s=t.addFunction(e);s.addParam("pIn1","i32"),s.addParam("pIn2","i32"),s.addParam("n","i32"),s.addParam("pOut","i32"),s.addLocal("i","i32"),s.addLocal("itIn1","i32"),s.addLocal("itIn2","i32"),s.addLocal("itOut","i32");const a=s.getCodeBuilder();o?s.addCode(a.setLocal("itIn1",a.i32_add(a.getLocal("pIn1"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.i32_const(1)),a.i32_const(r)))),a.setLocal("itIn2",a.i32_add(a.getLocal("pIn2"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.i32_const(1)),a.i32_const(r)))),a.setLocal("itOut",a.i32_add(a.getLocal("pOut"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.i32_const(1)),a.i32_const(i)))),a.setLocal("i",a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("i"),a.getLocal("n"))),a.call(n,a.getLocal("itIn1"),a.getLocal("itIn2"),a.getLocal("itOut")),a.setLocal("itIn1",a.i32_sub(a.getLocal("itIn1"),a.i32_const(r))),a.setLocal("itIn2",a.i32_sub(a.getLocal("itIn2"),a.i32_const(r))),a.setLocal("itOut",a.i32_sub(a.getLocal("itOut"),a.i32_const(i))),a.setLocal("i",a.i32_add(a.getLocal("i"),a.i32_const(1))),a.br(0)))):s.addCode(a.setLocal("itIn1",a.getLocal("pIn1")),a.setLocal("itIn2",a.getLocal("pIn2")),a.setLocal("itOut",a.getLocal("pOut")),a.setLocal("i",a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("i"),a.getLocal("n"))),a.call(n,a.getLocal("itIn1"),a.getLocal("itIn2"),a.getLocal("itOut")),a.setLocal("itIn1",a.i32_add(a.getLocal("itIn1"),a.i32_const(r))),a.setLocal("itIn2",a.i32_add(a.getLocal("itIn2"),a.i32_const(r))),a.setLocal("itOut",a.i32_add(a.getLocal("itOut"),a.i32_const(i))),a.setLocal("i",a.i32_add(a.getLocal("i"),a.i32_const(1))),a.br(0))))};var lC={};function uC(t,e){return t===e?0:t>e?1:-1}function hC(t){return t*t}function dC(t){return t%2n!=0n}function pC(t){return t%2n==0n}function fC(t){return t<0n}function AC(t){return t>0n}function gC(t){return fC(t)?t.toString(2).length-1:t.toString(2).length}function EC(t){return t<0n?-t:t}function mC(t){return 1n===EC(t)}function yC(t,e){for(var n,r,i,o=0n,s=1n,a=e,c=EC(t);0n!==c;)n=a/c,r=o,i=a,o=s,a=c,s=r-n*s,c=i-n*c;if(!mC(a))throw new Error(t.toString()+" and "+e.toString()+" are not co-prime");return-1===uC(o,0n)&&(o+=e),fC(t)?-o:o}function wC(t,e,n){if(0n===n)throw new Error("Cannot take modPow with modulus 0");var r=1n,i=t%n;for(fC(e)&&(e*=-1n,i=yC(i,n));AC(e);){if(0n===i)return 0n;dC(e)&&(r=r*i%n),e/=2n,i=hC(i)%n}return r}function IC(t,e){return 0n!==e&&(!!mC(e)||(0===function(t,e){return(t=t>=0n?t:-t)===(e=e>=0n?e:-e)?0:t>e?1:-1}(e,2n)?pC(t):t%e===0n))}function CC(t,e){for(var n,r,i,o=function(t){return t-1n}(t),s=o,a=0;pC(s);)s/=2n,a++;t:for(r=0;r<e.length;r++)if(!(t<e[r]||mC(i=wC(BigInt(e[r]),s,t))||i===o)){for(n=a-1;0!=n;n--){if(mC(i=hC(i)%t))return!1;if(i===o)continue t}return!1}return!0}lC.bitLength=gC,lC.isOdd=dC,lC.isNegative=fC,lC.abs=EC,lC.isUnit=mC,lC.compare=uC,lC.modInv=yC,lC.modPow=wC,lC.isPrime=function(t){var e=function(t){var e=EC(t);return!mC(e)&&(2n===e||3n===e||5n===e||!(pC(e)||IC(e,3n)||IC(e,5n))&&(e<49n||void 0))}(t);if(void 0!==e)return e;var n=EC(t),r=gC(n);if(r<=64)return CC(n,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var i=Math.log(2)*Number(r),o=Math.ceil(i),s=[],a=0;a<o;a++)s.push(BigInt(a+2));return CC(n,s)},lC.square=hC;const BC=function(t,e,n){const r=n||"int";if(t.modules[r])return r;t.modules[r]={};const i=2*e,o=8*e;return function(){const n=t.addFunction(r+"_copy");n.addParam("px","i32"),n.addParam("pr","i32");const i=n.getCodeBuilder();for(let t=0;t<e;t++)n.addCode(i.i64_store(i.getLocal("pr"),8*t,i.i64_load(i.getLocal("px"),8*t)))}(),function(){const n=t.addFunction(r+"_zero");n.addParam("pr","i32");const i=n.getCodeBuilder();for(let t=0;t<e;t++)n.addCode(i.i64_store(i.getLocal("pr"),8*t,i.i64_const(0)))}(),function(){const n=t.addFunction(r+"_isZero");n.addParam("px","i32"),n.setReturnType("i32");const i=n.getCodeBuilder();n.addCode(function t(e){return 0==e?i.ret(i.i64_eqz(i.i64_load(i.getLocal("px")))):i.if(i.i64_eqz(i.i64_load(i.getLocal("px"),8*e)),t(e-1),i.ret(i.i32_const(0)))}(e-1)),n.addCode(i.ret(i.i32_const(0)))}(),function(){const n=t.addFunction(r+"_one");n.addParam("pr","i32");const i=n.getCodeBuilder();n.addCode(i.i64_store(i.getLocal("pr"),0,i.i64_const(1)));for(let t=1;t<e;t++)n.addCode(i.i64_store(i.getLocal("pr"),8*t,i.i64_const(0)))}(),function(){const n=t.addFunction(r+"_eq");n.addParam("px","i32"),n.addParam("py","i32"),n.setReturnType("i32");const i=n.getCodeBuilder();n.addCode(function t(e){return 0==e?i.ret(i.i64_eq(i.i64_load(i.getLocal("px")),i.i64_load(i.getLocal("py")))):i.if(i.i64_eq(i.i64_load(i.getLocal("px"),8*e),i.i64_load(i.getLocal("py"),8*e)),t(e-1),i.ret(i.i32_const(0)))}(e-1)),n.addCode(i.ret(i.i32_const(0)))}(),function(){const n=t.addFunction(r+"_gte");n.addParam("px","i32"),n.addParam("py","i32"),n.setReturnType("i32");const i=n.getCodeBuilder();n.addCode(function t(e){return 0==e?i.ret(i.i64_ge_u(i.i64_load(i.getLocal("px")),i.i64_load(i.getLocal("py")))):i.if(i.i64_lt_u(i.i64_load(i.getLocal("px"),8*e),i.i64_load(i.getLocal("py"),8*e)),i.ret(i.i32_const(0)),i.if(i.i64_gt_u(i.i64_load(i.getLocal("px"),8*e),i.i64_load(i.getLocal("py"),8*e)),i.ret(i.i32_const(1)),t(e-1)))}(e-1)),n.addCode(i.ret(i.i32_const(0)))}(),function(){const e=t.addFunction(r+"_add");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32"),e.setReturnType("i32"),e.addLocal("c","i64");const n=e.getCodeBuilder();e.addCode(n.setLocal("c",n.i64_add(n.i64_load32_u(n.getLocal("x")),n.i64_load32_u(n.getLocal("y"))))),e.addCode(n.i64_store32(n.getLocal("r"),n.getLocal("c")));for(let t=1;t<i;t++)e.addCode(n.setLocal("c",n.i64_add(n.i64_add(n.i64_load32_u(n.getLocal("x"),4*t),n.i64_load32_u(n.getLocal("y"),4*t)),n.i64_shr_u(n.getLocal("c"),n.i64_const(32))))),e.addCode(n.i64_store32(n.getLocal("r"),4*t,n.getLocal("c")));e.addCode(n.i32_wrap_i64(n.i64_shr_u(n.getLocal("c"),n.i64_const(32))))}(),function(){const e=t.addFunction(r+"_sub");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32"),e.setReturnType("i32"),e.addLocal("c","i64");const n=e.getCodeBuilder();e.addCode(n.setLocal("c",n.i64_sub(n.i64_load32_u(n.getLocal("x")),n.i64_load32_u(n.getLocal("y"))))),e.addCode(n.i64_store32(n.getLocal("r"),n.i64_and(n.getLocal("c"),n.i64_const("0xFFFFFFFF"))));for(let t=1;t<i;t++)e.addCode(n.setLocal("c",n.i64_add(n.i64_sub(n.i64_load32_u(n.getLocal("x"),4*t),n.i64_load32_u(n.getLocal("y"),4*t)),n.i64_shr_s(n.getLocal("c"),n.i64_const(32))))),e.addCode(n.i64_store32(n.getLocal("r"),4*t,n.i64_and(n.getLocal("c"),n.i64_const("0xFFFFFFFF"))));e.addCode(n.i32_wrap_i64(n.i64_shr_s(n.getLocal("c"),n.i64_const(32))))}(),function(){const e=t.addFunction(r+"_mul");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32"),e.addLocal("c0","i64"),e.addLocal("c1","i64");for(let t=0;t<i;t++)e.addLocal("x"+t,"i64"),e.addLocal("y"+t,"i64");const n=e.getCodeBuilder(),o=[],s=[];function a(t,e){let r,i;return o[t]?r=n.getLocal("x"+t):(r=n.teeLocal("x"+t,n.i64_load32_u(n.getLocal("x"),4*t)),o[t]=!0),s[e]?i=n.getLocal("y"+e):(i=n.teeLocal("y"+e,n.i64_load32_u(n.getLocal("y"),4*e)),s[e]=!0),n.i64_mul(r,i)}let c="c0",l="c1";for(let t=0;t<2*i-1;t++){for(let r=Math.max(0,t-i+1);r<=t&&r<i;r++){const i=t-r;e.addCode(n.setLocal(c,n.i64_add(n.i64_and(n.getLocal(c),n.i64_const(4294967295)),a(r,i)))),e.addCode(n.setLocal(l,n.i64_add(n.getLocal(l),n.i64_shr_u(n.getLocal(c),n.i64_const(32)))))}e.addCode(n.i64_store32(n.getLocal("r"),4*t,n.getLocal(c))),[c,l]=[l,c],e.addCode(n.setLocal(l,n.i64_shr_u(n.getLocal(c),n.i64_const(32))))}e.addCode(n.i64_store32(n.getLocal("r"),4*i*2-4,n.getLocal(c)))}(),function(){const e=t.addFunction(r+"_square");e.addParam("x","i32"),e.addParam("r","i32"),e.addLocal("c0","i64"),e.addLocal("c1","i64"),e.addLocal("c0_old","i64"),e.addLocal("c1_old","i64");for(let t=0;t<i;t++)e.addLocal("x"+t,"i64");const n=e.getCodeBuilder(),o=[];function s(t,e){let r,i;return o[t]?r=n.getLocal("x"+t):(r=n.teeLocal("x"+t,n.i64_load32_u(n.getLocal("x"),4*t)),o[t]=!0),o[e]?i=n.getLocal("x"+e):(i=n.teeLocal("x"+e,n.i64_load32_u(n.getLocal("x"),4*e)),o[e]=!0),n.i64_mul(r,i)}let a="c0",c="c1",l="c0_old",u="c1_old";for(let t=0;t<2*i-1;t++){e.addCode(n.setLocal(a,n.i64_const(0)),n.setLocal(c,n.i64_const(0)));for(let r=Math.max(0,t-i+1);r<t+1>>1&&r<i;r++){const i=t-r;e.addCode(n.setLocal(a,n.i64_add(n.i64_and(n.getLocal(a),n.i64_const(4294967295)),s(r,i)))),e.addCode(n.setLocal(c,n.i64_add(n.getLocal(c),n.i64_shr_u(n.getLocal(a),n.i64_const(32)))))}e.addCode(n.setLocal(a,n.i64_shl(n.i64_and(n.getLocal(a),n.i64_const(4294967295)),n.i64_const(1)))),e.addCode(n.setLocal(c,n.i64_add(n.i64_shl(n.getLocal(c),n.i64_const(1)),n.i64_shr_u(n.getLocal(a),n.i64_const(32))))),t%2==0&&(e.addCode(n.setLocal(a,n.i64_add(n.i64_and(n.getLocal(a),n.i64_const(4294967295)),s(t>>1,t>>1)))),e.addCode(n.setLocal(c,n.i64_add(n.getLocal(c),n.i64_shr_u(n.getLocal(a),n.i64_const(32)))))),t>0&&(e.addCode(n.setLocal(a,n.i64_add(n.i64_and(n.getLocal(a),n.i64_const(4294967295)),n.i64_and(n.getLocal(l),n.i64_const(4294967295))))),e.addCode(n.setLocal(c,n.i64_add(n.i64_add(n.getLocal(c),n.i64_shr_u(n.getLocal(a),n.i64_const(32))),n.getLocal(u))))),e.addCode(n.i64_store32(n.getLocal("r"),4*t,n.getLocal(a))),e.addCode(n.setLocal(l,n.getLocal(c)),n.setLocal(u,n.i64_shr_u(n.getLocal(l),n.i64_const(32))))}e.addCode(n.i64_store32(n.getLocal("r"),4*i*2-4,n.getLocal(l)))}(),function(){const e=t.addFunction(r+"_squareOld");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(r+"_mul",n.getLocal("x"),n.getLocal("x"),n.getLocal("r")))}(),function(){!function(){const e=t.addFunction(r+"__mul1");e.addParam("px","i32"),e.addParam("y","i64"),e.addParam("pr","i32"),e.addLocal("c","i64");const n=e.getCodeBuilder();e.addCode(n.setLocal("c",n.i64_mul(n.i64_load32_u(n.getLocal("px"),0,0),n.getLocal("y")))),e.addCode(n.i64_store32(n.getLocal("pr"),0,0,n.getLocal("c")));for(let t=1;t<i;t++)e.addCode(n.setLocal("c",n.i64_add(n.i64_mul(n.i64_load32_u(n.getLocal("px"),4*t,0),n.getLocal("y")),n.i64_shr_u(n.getLocal("c"),n.i64_const(32))))),e.addCode(n.i64_store32(n.getLocal("pr"),4*t,0,n.getLocal("c")))}(),function(){const e=t.addFunction(r+"__add1");e.addParam("x","i32"),e.addParam("y","i64"),e.addLocal("c","i64"),e.addLocal("px","i32");const n=e.getCodeBuilder();e.addCode(n.setLocal("px",n.getLocal("x"))),e.addCode(n.setLocal("c",n.i64_add(n.i64_load32_u(n.getLocal("px"),0,0),n.getLocal("y")))),e.addCode(n.i64_store32(n.getLocal("px"),0,0,n.getLocal("c"))),e.addCode(n.setLocal("c",n.i64_shr_u(n.getLocal("c"),n.i64_const(32)))),e.addCode(n.block(n.loop(n.br_if(1,n.i64_eqz(n.getLocal("c"))),n.setLocal("px",n.i32_add(n.getLocal("px"),n.i32_const(4))),n.setLocal("c",n.i64_add(n.i64_load32_u(n.getLocal("px"),0,0),n.getLocal("c"))),n.i64_store32(n.getLocal("px"),0,0,n.getLocal("c")),n.setLocal("c",n.i64_shr_u(n.getLocal("c"),n.i64_const(32))),n.br(0))))}();const e=t.addFunction(r+"_div");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("c","i32"),e.addParam("r","i32"),e.addLocal("rr","i32"),e.addLocal("cc","i32"),e.addLocal("eX","i32"),e.addLocal("eY","i32"),e.addLocal("sy","i64"),e.addLocal("sx","i64"),e.addLocal("ec","i32");const n=e.getCodeBuilder(),s=n.i32_const(t.alloc(o)),a=n.i32_const(t.alloc(o)),c=n.i32_const(t.alloc(o)),l=n.getLocal("cc"),u=n.getLocal("rr"),h=t.alloc(2*o),d=n.i32_const(h),p=n.i32_const(h+o);e.addCode(n.if(n.getLocal("c"),n.setLocal("cc",n.getLocal("c")),n.setLocal("cc",a))),e.addCode(n.if(n.getLocal("r"),n.setLocal("rr",n.getLocal("r")),n.setLocal("rr",c))),e.addCode(n.call(r+"_copy",n.getLocal("x"),u)),e.addCode(n.call(r+"_copy",n.getLocal("y"),s)),e.addCode(n.call(r+"_zero",l)),e.addCode(n.call(r+"_zero",d)),e.addCode(n.setLocal("eX",n.i32_const(o-1))),e.addCode(n.setLocal("eY",n.i32_const(o-1))),e.addCode(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(s,n.getLocal("eY")),0,0),n.i32_eq(n.getLocal("eY"),n.i32_const(3)))),n.setLocal("eY",n.i32_sub(n.getLocal("eY"),n.i32_const(1))),n.br(0)))),e.addCode(n.setLocal("sy",n.i64_add(n.i64_load32_u(n.i32_sub(n.i32_add(s,n.getLocal("eY")),n.i32_const(3)),0,0),n.i64_const(1)))),e.addCode(n.if(n.i64_eq(n.getLocal("sy"),n.i64_const(1)),n.drop(n.i64_div_u(n.i64_const(0),n.i64_const(0))))),e.addCode(n.block(n.loop(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(u,n.getLocal("eX")),0,0),n.i32_eq(n.getLocal("eX"),n.i32_const(7)))),n.setLocal("eX",n.i32_sub(n.getLocal("eX"),n.i32_const(1))),n.br(0))),n.setLocal("sx",n.i64_load(n.i32_sub(n.i32_add(u,n.getLocal("eX")),n.i32_const(7)),0,0)),n.setLocal("sx",n.i64_div_u(n.getLocal("sx"),n.getLocal("sy"))),n.setLocal("ec",n.i32_sub(n.i32_sub(n.getLocal("eX"),n.getLocal("eY")),n.i32_const(4))),n.block(n.loop(n.br_if(1,n.i32_and(n.i64_eqz(n.i64_and(n.getLocal("sx"),n.i64_const("0xFFFFFFFF00000000"))),n.i32_ge_s(n.getLocal("ec"),n.i32_const(0)))),n.setLocal("sx",n.i64_shr_u(n.getLocal("sx"),n.i64_const(8))),n.setLocal("ec",n.i32_add(n.getLocal("ec"),n.i32_const(1))),n.br(0))),n.if(n.i64_eqz(n.getLocal("sx")),[...n.br_if(2,n.i32_eqz(n.call(r+"_gte",u,s))),...n.setLocal("sx",n.i64_const(1)),...n.setLocal("ec",n.i32_const(0))]),n.call(r+"__mul1",s,n.getLocal("sx"),p),n.drop(n.call(r+"_sub",u,n.i32_sub(p,n.getLocal("ec")),u)),n.call(r+"__add1",n.i32_add(l,n.getLocal("ec")),n.getLocal("sx")),n.br(0))))}(),function(){const e=t.addFunction(r+"_inverseMod");e.addParam("px","i32"),e.addParam("pm","i32"),e.addParam("pr","i32"),e.addLocal("t","i32"),e.addLocal("newt","i32"),e.addLocal("r","i32"),e.addLocal("qq","i32"),e.addLocal("qr","i32"),e.addLocal("newr","i32"),e.addLocal("swp","i32"),e.addLocal("x","i32"),e.addLocal("signt","i32"),e.addLocal("signnewt","i32"),e.addLocal("signx","i32");const n=e.getCodeBuilder(),i=n.i32_const(t.alloc(o)),s=n.i32_const(t.alloc(o)),a=n.i32_const(t.alloc(o)),c=n.i32_const(t.alloc(o)),l=n.i32_const(t.alloc(o)),u=n.i32_const(t.alloc(o)),h=n.i32_const(t.alloc(2*o)),d=n.i32_const(t.alloc(o));e.addCode(n.setLocal("t",i),n.call(r+"_zero",i),n.setLocal("signt",n.i32_const(0))),e.addCode(n.setLocal("r",s),n.call(r+"_copy",n.getLocal("pm"),s)),e.addCode(n.setLocal("newt",a),n.call(r+"_one",a),n.setLocal("signnewt",n.i32_const(0))),e.addCode(n.setLocal("newr",c),n.call(r+"_copy",n.getLocal("px"),c)),e.addCode(n.setLocal("qq",l)),e.addCode(n.setLocal("qr",u)),e.addCode(n.setLocal("x",d)),e.addCode(n.block(n.loop(n.br_if(1,n.call(r+"_isZero",n.getLocal("newr"))),n.call(r+"_div",n.getLocal("r"),n.getLocal("newr"),n.getLocal("qq"),n.getLocal("qr")),n.call(r+"_mul",n.getLocal("qq"),n.getLocal("newt"),h),n.if(n.getLocal("signt"),n.if(n.getLocal("signnewt"),n.if(n.call(r+"_gte",h,n.getLocal("t")),[...n.drop(n.call(r+"_sub",h,n.getLocal("t"),n.getLocal("x"))),...n.setLocal("signx",n.i32_const(0))],[...n.drop(n.call(r+"_sub",n.getLocal("t"),h,n.getLocal("x"))),...n.setLocal("signx",n.i32_const(1))]),[...n.drop(n.call(r+"_add",h,n.getLocal("t"),n.getLocal("x"))),...n.setLocal("signx",n.i32_const(1))]),n.if(n.getLocal("signnewt"),[...n.drop(n.call(r+"_add",h,n.getLocal("t"),n.getLocal("x"))),...n.setLocal("signx",n.i32_const(0))],n.if(n.call(r+"_gte",n.getLocal("t"),h),[...n.drop(n.call(r+"_sub",n.getLocal("t"),h,n.getLocal("x"))),...n.setLocal("signx",n.i32_const(0))],[...n.drop(n.call(r+"_sub",h,n.getLocal("t"),n.getLocal("x"))),...n.setLocal("signx",n.i32_const(1))]))),n.setLocal("swp",n.getLocal("t")),n.setLocal("t",n.getLocal("newt")),n.setLocal("newt",n.getLocal("x")),n.setLocal("x",n.getLocal("swp")),n.setLocal("signt",n.getLocal("signnewt")),n.setLocal("signnewt",n.getLocal("signx")),n.setLocal("swp",n.getLocal("r")),n.setLocal("r",n.getLocal("newr")),n.setLocal("newr",n.getLocal("qr")),n.setLocal("qr",n.getLocal("swp")),n.br(0)))),e.addCode(n.if(n.getLocal("signt"),n.drop(n.call(r+"_sub",n.getLocal("pm"),n.getLocal("t"),n.getLocal("pr"))),n.call(r+"_copy",n.getLocal("t"),n.getLocal("pr"))))}(),t.exportFunction(r+"_copy"),t.exportFunction(r+"_zero"),t.exportFunction(r+"_one"),t.exportFunction(r+"_isZero"),t.exportFunction(r+"_eq"),t.exportFunction(r+"_gte"),t.exportFunction(r+"_add"),t.exportFunction(r+"_sub"),t.exportFunction(r+"_mul"),t.exportFunction(r+"_square"),t.exportFunction(r+"_squareOld"),t.exportFunction(r+"_div"),t.exportFunction(r+"_inverseMod"),r},TC=iC,bC=oC,DC=sC,MC=aC,NC=cC,{bitLength:SC,modInv:vC,modPow:_C,isPrime:LC,isOdd:xC,square:RC}=lC;var FC=function(t,e,n,r){const i=BigInt(e),o=Math.floor((SC(i-1n)-1)/64)+1,s=2*o,a=8*o,c=n||"f1m";if(t.modules[c])return c;const l=BC(t,o,r),u=t.alloc(a,TC.bigInt2BytesLE(i,a)),h=t.alloc(TC.bigInt2BytesLE(RC(1n<<BigInt(64*o))%i,a)),d=t.alloc(TC.bigInt2BytesLE((1n<<BigInt(64*o))%i,a)),p=t.alloc(TC.bigInt2BytesLE(0n,a)),f=i-1n,A=f>>1n,g=t.alloc(a,TC.bigInt2BytesLE(A,a)),E=A+1n,m=t.alloc(a,TC.bigInt2BytesLE(E,a));t.modules[c]={pq:u,pR2:h,n64:o,q:i,pOne:d,pZero:p,pePlusOne:m};let y=2n;if(LC(i))for(;_C(y,A,i)!==f;)y+=1n;let w=0,I=f;for(;!xC(I)&&0n!==I;)w++,I>>=1n;const C=t.alloc(a,TC.bigInt2BytesLE(I,a)),B=_C(y,I,i),T=t.alloc(TC.bigInt2BytesLE((B<<BigInt(64*o))%i,a)),b=I+1n>>1n,D=t.alloc(a,TC.bigInt2BytesLE(b,a));return t.exportFunction(l+"_copy",c+"_copy"),t.exportFunction(l+"_zero",c+"_zero"),t.exportFunction(l+"_isZero",c+"_isZero"),t.exportFunction(l+"_eq",c+"_eq"),function(){const e=t.addFunction(c+"_isOne");e.addParam("x","i32"),e.setReturnType("i32");const n=e.getCodeBuilder();e.addCode(n.ret(n.call(l+"_eq",n.getLocal("x"),n.i32_const(d))))}(),function(){const e=t.addFunction(c+"_add");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.if(n.call(l+"_add",n.getLocal("x"),n.getLocal("y"),n.getLocal("r")),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))),n.if(n.call(l+"_gte",n.getLocal("r"),n.i32_const(u)),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))))))}(),function(){const e=t.addFunction(c+"_sub");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.if(n.call(l+"_sub",n.getLocal("x"),n.getLocal("y"),n.getLocal("r")),n.drop(n.call(l+"_add",n.getLocal("r"),n.i32_const(u),n.getLocal("r")))))}(),function(){const e=t.addFunction(c+"_neg");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(c+"_sub",n.i32_const(p),n.getLocal("x"),n.getLocal("r")))}(),function(){const e=t.alloc(s*s*8),n=t.addFunction(c+"_mReduct");n.addParam("t","i32"),n.addParam("r","i32"),n.addLocal("np32","i64"),n.addLocal("c","i64"),n.addLocal("m","i64");const r=n.getCodeBuilder(),o=Number(0x100000000n-vC(i,0x100000000n));n.addCode(r.setLocal("np32",r.i64_const(o)));for(let t=0;t<s;t++){n.addCode(r.setLocal("c",r.i64_const(0))),n.addCode(r.setLocal("m",r.i64_and(r.i64_mul(r.i64_load32_u(r.getLocal("t"),4*t),r.getLocal("np32")),r.i64_const("0xFFFFFFFF"))));for(let e=0;e<s;e++)n.addCode(r.setLocal("c",r.i64_add(r.i64_add(r.i64_load32_u(r.getLocal("t"),4*(t+e)),r.i64_shr_u(r.getLocal("c"),r.i64_const(32))),r.i64_mul(r.i64_load32_u(r.i32_const(u),4*e),r.getLocal("m"))))),n.addCode(r.i64_store32(r.getLocal("t"),4*(t+e),r.getLocal("c")));n.addCode(r.i64_store32(r.i32_const(e),4*t,r.i64_shr_u(r.getLocal("c"),r.i64_const(32))))}n.addCode(r.call(c+"_add",r.i32_const(e),r.i32_add(r.getLocal("t"),r.i32_const(4*s)),r.getLocal("r")))}(),function(){const e=t.addFunction(c+"_mul");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32"),e.addLocal("c0","i64"),e.addLocal("c1","i64"),e.addLocal("np32","i64");for(let t=0;t<s;t++)e.addLocal("x"+t,"i64"),e.addLocal("y"+t,"i64"),e.addLocal("m"+t,"i64"),e.addLocal("q"+t,"i64");const n=e.getCodeBuilder(),r=Number(0x100000000n-vC(i,0x100000000n));e.addCode(n.setLocal("np32",n.i64_const(r)));const o=[],a=[],h=[];function d(t,e){let r,i;return o[t]?r=n.getLocal("x"+t):(r=n.teeLocal("x"+t,n.i64_load32_u(n.getLocal("x"),4*t)),o[t]=!0),a[e]?i=n.getLocal("y"+e):(i=n.teeLocal("y"+e,n.i64_load32_u(n.getLocal("y"),4*e)),a[e]=!0),n.i64_mul(r,i)}function p(t,e){let r,i;return h[t]?r=n.getLocal("q"+t):(r=n.teeLocal("q"+t,n.i64_load32_u(n.i32_const(0),u+4*t)),h[t]=!0),i=n.getLocal("m"+e),n.i64_mul(r,i)}let f="c0",A="c1";for(let t=0;t<2*s-1;t++){for(let r=Math.max(0,t-s+1);r<=t&&r<s;r++){const i=t-r;e.addCode(n.setLocal(f,n.i64_add(n.i64_and(n.getLocal(f),n.i64_const(4294967295)),d(r,i)))),e.addCode(n.setLocal(A,n.i64_add(n.getLocal(A),n.i64_shr_u(n.getLocal(f),n.i64_const(32)))))}for(let r=Math.max(1,t-s+1);r<=t&&r<s;r++){const i=t-r;e.addCode(n.setLocal(f,n.i64_add(n.i64_and(n.getLocal(f),n.i64_const(4294967295)),p(r,i)))),e.addCode(n.setLocal(A,n.i64_add(n.getLocal(A),n.i64_shr_u(n.getLocal(f),n.i64_const(32)))))}t<s&&(e.addCode(n.setLocal("m"+t,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(f),n.i64_const(4294967295)),n.getLocal("np32")),n.i64_const("0xFFFFFFFF")))),e.addCode(n.setLocal(f,n.i64_add(n.i64_and(n.getLocal(f),n.i64_const(4294967295)),p(0,t)))),e.addCode(n.setLocal(A,n.i64_add(n.getLocal(A),n.i64_shr_u(n.getLocal(f),n.i64_const(32)))))),t>=s&&e.addCode(n.i64_store32(n.getLocal("r"),4*(t-s),n.getLocal(f))),[f,A]=[A,f],e.addCode(n.setLocal(A,n.i64_shr_u(n.getLocal(f),n.i64_const(32))))}e.addCode(n.i64_store32(n.getLocal("r"),4*s-4,n.getLocal(f))),e.addCode(n.if(n.i32_wrap_i64(n.getLocal(A)),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))),n.if(n.call(l+"_gte",n.getLocal("r"),n.i32_const(u)),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))))))}(),function(){const e=t.addFunction(c+"_square");e.addParam("x","i32"),e.addParam("r","i32"),e.addLocal("c0","i64"),e.addLocal("c1","i64"),e.addLocal("c0_old","i64"),e.addLocal("c1_old","i64"),e.addLocal("np32","i64");for(let t=0;t<s;t++)e.addLocal("x"+t,"i64"),e.addLocal("m"+t,"i64"),e.addLocal("q"+t,"i64");const n=e.getCodeBuilder(),r=Number(0x100000000n-vC(i,0x100000000n));e.addCode(n.setLocal("np32",n.i64_const(r)));const o=[],a=[];function h(t,e){let r,i;return o[t]?r=n.getLocal("x"+t):(r=n.teeLocal("x"+t,n.i64_load32_u(n.getLocal("x"),4*t)),o[t]=!0),o[e]?i=n.getLocal("x"+e):(i=n.teeLocal("x"+e,n.i64_load32_u(n.getLocal("x"),4*e)),o[e]=!0),n.i64_mul(r,i)}function d(t,e){let r,i;return a[t]?r=n.getLocal("q"+t):(r=n.teeLocal("q"+t,n.i64_load32_u(n.i32_const(0),u+4*t)),a[t]=!0),i=n.getLocal("m"+e),n.i64_mul(r,i)}let p="c0",f="c1",A="c0_old",g="c1_old";for(let t=0;t<2*s-1;t++){e.addCode(n.setLocal(p,n.i64_const(0)),n.setLocal(f,n.i64_const(0)));for(let r=Math.max(0,t-s+1);r<t+1>>1&&r<s;r++){const i=t-r;e.addCode(n.setLocal(p,n.i64_add(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),h(r,i)))),e.addCode(n.setLocal(f,n.i64_add(n.getLocal(f),n.i64_shr_u(n.getLocal(p),n.i64_const(32)))))}e.addCode(n.setLocal(p,n.i64_shl(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),n.i64_const(1)))),e.addCode(n.setLocal(f,n.i64_add(n.i64_shl(n.getLocal(f),n.i64_const(1)),n.i64_shr_u(n.getLocal(p),n.i64_const(32))))),t%2==0&&(e.addCode(n.setLocal(p,n.i64_add(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),h(t>>1,t>>1)))),e.addCode(n.setLocal(f,n.i64_add(n.getLocal(f),n.i64_shr_u(n.getLocal(p),n.i64_const(32)))))),t>0&&(e.addCode(n.setLocal(p,n.i64_add(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),n.i64_and(n.getLocal(A),n.i64_const(4294967295))))),e.addCode(n.setLocal(f,n.i64_add(n.i64_add(n.getLocal(f),n.i64_shr_u(n.getLocal(p),n.i64_const(32))),n.getLocal(g)))));for(let r=Math.max(1,t-s+1);r<=t&&r<s;r++){const i=t-r;e.addCode(n.setLocal(p,n.i64_add(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),d(r,i)))),e.addCode(n.setLocal(f,n.i64_add(n.getLocal(f),n.i64_shr_u(n.getLocal(p),n.i64_const(32)))))}t<s&&(e.addCode(n.setLocal("m"+t,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),n.getLocal("np32")),n.i64_const("0xFFFFFFFF")))),e.addCode(n.setLocal(p,n.i64_add(n.i64_and(n.getLocal(p),n.i64_const(4294967295)),d(0,t)))),e.addCode(n.setLocal(f,n.i64_add(n.getLocal(f),n.i64_shr_u(n.getLocal(p),n.i64_const(32)))))),t>=s&&e.addCode(n.i64_store32(n.getLocal("r"),4*(t-s),n.getLocal(p))),e.addCode(n.setLocal(A,n.getLocal(f)),n.setLocal(g,n.i64_shr_u(n.getLocal(A),n.i64_const(32))))}e.addCode(n.i64_store32(n.getLocal("r"),4*s-4,n.getLocal(A))),e.addCode(n.if(n.i32_wrap_i64(n.getLocal(g)),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))),n.if(n.call(l+"_gte",n.getLocal("r"),n.i32_const(u)),n.drop(n.call(l+"_sub",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))))))}(),function(){const e=t.addFunction(c+"_squareOld");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(c+"_mul",n.getLocal("x"),n.getLocal("x"),n.getLocal("r")))}(),function(){const e=t.addFunction(c+"_toMontgomery");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(c+"_mul",n.getLocal("x"),n.i32_const(h),n.getLocal("r")))}(),function(){const e=t.alloc(2*a),n=t.addFunction(c+"_fromMontgomery");n.addParam("x","i32"),n.addParam("r","i32");const r=n.getCodeBuilder();n.addCode(r.call(l+"_copy",r.getLocal("x"),r.i32_const(e))),n.addCode(r.call(l+"_zero",r.i32_const(e+a))),n.addCode(r.call(c+"_mReduct",r.i32_const(e),r.getLocal("r")))}(),function(){const e=t.addFunction(c+"_isNegative");e.addParam("x","i32"),e.setReturnType("i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(a));e.addCode(n.call(c+"_fromMontgomery",n.getLocal("x"),r),n.call(l+"_gte",r,n.i32_const(m)))}(),function(){const e=t.addFunction(c+"_sign");e.addParam("x","i32"),e.setReturnType("i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(a));e.addCode(n.if(n.call(l+"_isZero",n.getLocal("x")),n.ret(n.i32_const(0))),n.call(c+"_fromMontgomery",n.getLocal("x"),r),n.if(n.call(l+"_gte",r,n.i32_const(m)),n.ret(n.i32_const(-1))),n.ret(n.i32_const(1)))}(),function(){const e=t.addFunction(c+"_inverse");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(c+"_fromMontgomery",n.getLocal("x"),n.getLocal("r"))),e.addCode(n.call(l+"_inverseMod",n.getLocal("r"),n.i32_const(u),n.getLocal("r"))),e.addCode(n.call(c+"_toMontgomery",n.getLocal("r"),n.getLocal("r")))}(),function(){const e=t.addFunction(c+"_one");e.addParam("pr","i32");const n=e.getCodeBuilder();e.addCode(n.call(l+"_copy",n.i32_const(d),n.getLocal("pr")))}(),function(){const e=t.addFunction(c+"_load");e.addParam("scalar","i32"),e.addParam("scalarLen","i32"),e.addParam("r","i32"),e.addLocal("p","i32"),e.addLocal("l","i32"),e.addLocal("i","i32"),e.addLocal("j","i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(a)),i=t.alloc(a),o=n.i32_const(i);e.addCode(n.call(l+"_zero",n.getLocal("r")),n.setLocal("i",n.i32_const(a)),n.setLocal("p",n.getLocal("scalar")),n.block(n.loop(n.br_if(1,n.i32_gt_u(n.getLocal("i"),n.getLocal("scalarLen"))),n.if(n.i32_eq(n.getLocal("i"),n.i32_const(a)),n.call(c+"_one",r),n.call(c+"_mul",r,n.i32_const(h),r)),n.call(c+"_mul",n.getLocal("p"),r,o),n.call(c+"_add",n.getLocal("r"),o,n.getLocal("r")),n.setLocal("p",n.i32_add(n.getLocal("p"),n.i32_const(a))),n.setLocal("i",n.i32_add(n.getLocal("i"),n.i32_const(a))),n.br(0))),n.setLocal("l",n.i32_rem_u(n.getLocal("scalarLen"),n.i32_const(a))),n.if(n.i32_eqz(n.getLocal("l")),n.ret([])),n.call(l+"_zero",o),n.setLocal("j",n.i32_const(0)),n.block(n.loop(n.br_if(1,n.i32_eq(n.getLocal("j"),n.getLocal("l"))),n.i32_store8(n.getLocal("j"),i,n.i32_load8_u(n.getLocal("p"))),n.setLocal("p",n.i32_add(n.getLocal("p"),n.i32_const(1))),n.setLocal("j",n.i32_add(n.getLocal("j"),n.i32_const(1))),n.br(0))),n.if(n.i32_eq(n.getLocal("i"),n.i32_const(a)),n.call(c+"_one",r),n.call(c+"_mul",r,n.i32_const(h),r)),n.call(c+"_mul",o,r,o),n.call(c+"_add",n.getLocal("r"),o,n.getLocal("r")))}(),function(){const e=t.addFunction(c+"_timesScalar");e.addParam("x","i32"),e.addParam("scalar","i32"),e.addParam("scalarLen","i32"),e.addParam("r","i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(a));e.addCode(n.call(c+"_load",n.getLocal("scalar"),n.getLocal("scalarLen"),r),n.call(c+"_toMontgomery",r,r),n.call(c+"_mul",n.getLocal("x"),r,n.getLocal("r")))}(),DC(t,c),MC(t,c+"_batchToMontgomery",c+"_toMontgomery",a,a),MC(t,c+"_batchFromMontgomery",c+"_fromMontgomery",a,a),MC(t,c+"_batchNeg",c+"_neg",a,a),NC(t,c+"_batchAdd",c+"_add",a,a),NC(t,c+"_batchSub",c+"_sub",a,a),NC(t,c+"_batchMul",c+"_mul",a,a),t.exportFunction(c+"_add"),t.exportFunction(c+"_sub"),t.exportFunction(c+"_neg"),t.exportFunction(c+"_isNegative"),t.exportFunction(c+"_isOne"),t.exportFunction(c+"_sign"),t.exportFunction(c+"_mReduct"),t.exportFunction(c+"_mul"),t.exportFunction(c+"_square"),t.exportFunction(c+"_squareOld"),t.exportFunction(c+"_fromMontgomery"),t.exportFunction(c+"_toMontgomery"),t.exportFunction(c+"_inverse"),t.exportFunction(c+"_one"),t.exportFunction(c+"_load"),t.exportFunction(c+"_timesScalar"),bC(t,c+"_exp",a,c+"_mul",c+"_square",l+"_copy",c+"_one"),t.exportFunction(c+"_exp"),t.exportFunction(c+"_batchInverse"),LC(i)&&(!function(){const e=t.addFunction(c+"_sqrt");e.addParam("n","i32"),e.addParam("r","i32"),e.addLocal("m","i32"),e.addLocal("i","i32"),e.addLocal("j","i32");const n=e.getCodeBuilder(),r=n.i32_const(d),i=n.i32_const(t.alloc(a)),o=n.i32_const(t.alloc(a)),s=n.i32_const(t.alloc(a)),l=n.i32_const(t.alloc(a)),u=n.i32_const(t.alloc(a));e.addCode(n.if(n.call(c+"_isZero",n.getLocal("n")),n.ret(n.call(c+"_zero",n.getLocal("r")))),n.setLocal("m",n.i32_const(w)),n.call(c+"_copy",n.i32_const(T),i),n.call(c+"_exp",n.getLocal("n"),n.i32_const(C),n.i32_const(a),o),n.call(c+"_exp",n.getLocal("n"),n.i32_const(D),n.i32_const(a),s),n.block(n.loop(n.br_if(1,n.call(c+"_eq",o,r)),n.call(c+"_square",o,l),n.setLocal("i",n.i32_const(1)),n.block(n.loop(n.br_if(1,n.call(c+"_eq",l,r)),n.call(c+"_square",l,l),n.setLocal("i",n.i32_add(n.getLocal("i"),n.i32_const(1))),n.br(0))),n.call(c+"_copy",i,u),n.setLocal("j",n.i32_sub(n.i32_sub(n.getLocal("m"),n.getLocal("i")),n.i32_const(1))),n.block(n.loop(n.br_if(1,n.i32_eqz(n.getLocal("j"))),n.call(c+"_square",u,u),n.setLocal("j",n.i32_sub(n.getLocal("j"),n.i32_const(1))),n.br(0))),n.setLocal("m",n.getLocal("i")),n.call(c+"_square",u,i),n.call(c+"_mul",o,i,o),n.call(c+"_mul",s,u,s),n.br(0))),n.if(n.call(c+"_isNegative",s),n.call(c+"_neg",s,n.getLocal("r")),n.call(c+"_copy",s,n.getLocal("r"))))}(),function(){const e=t.addFunction(c+"_isSquare");e.addParam("n","i32"),e.setReturnType("i32");const n=e.getCodeBuilder(),r=n.i32_const(d),i=n.i32_const(t.alloc(a));e.addCode(n.if(n.call(c+"_isZero",n.getLocal("n")),n.ret(n.i32_const(1))),n.call(c+"_exp",n.getLocal("n"),n.i32_const(g),n.i32_const(a),i),n.call(c+"_eq",i,r))}(),t.exportFunction(c+"_sqrt"),t.exportFunction(c+"_isSquare")),t.exportFunction(c+"_batchToMontgomery"),t.exportFunction(c+"_batchFromMontgomery"),c};const OC=FC,{bitLength:kC}=lC;var QC=function(t,e,n,r,i){const o=BigInt(e),s=Math.floor((kC(o-1n)-1)/64)+1,a=8*s,c=n||"f1";if(t.modules[c])return c;t.modules[c]={n64:s};const l=i||"int",u=OC(t,o,r,l),h=t.modules[u].pR2,d=t.modules[u].pq,p=t.modules[u].pePlusOne;return function(){const e=t.alloc(a),n=t.addFunction(c+"_mul");n.addParam("x","i32"),n.addParam("y","i32"),n.addParam("r","i32");const r=n.getCodeBuilder();n.addCode(r.call(u+"_mul",r.getLocal("x"),r.getLocal("y"),r.i32_const(e))),n.addCode(r.call(u+"_mul",r.i32_const(e),r.i32_const(h),r.getLocal("r")))}(),function(){const e=t.addFunction(c+"_square");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(c+"_mul",n.getLocal("x"),n.getLocal("x"),n.getLocal("r")))}(),function(){const e=t.addFunction(c+"_inverse");e.addParam("x","i32"),e.addParam("r","i32");const n=e.getCodeBuilder();e.addCode(n.call(l+"_inverseMod",n.getLocal("x"),n.i32_const(d),n.getLocal("r")))}(),function(){const e=t.addFunction(c+"_isNegative");e.addParam("x","i32"),e.setReturnType("i32");const n=e.getCodeBuilder();e.addCode(n.call(l+"_gte",n.getLocal("x"),n.i32_const(p)))}(),t.exportFunction(u+"_add",c+"_add"),t.exportFunction(u+"_sub",c+"_sub"),t.exportFunction(u+"_neg",c+"_neg"),t.exportFunction(c+"_mul"),t.exportFunction(c+"_square"),t.exportFunction(c+"_inverse"),t.exportFunction(c+"_isNegative"),t.exportFunction(u+"_copy",c+"_copy"),t.exportFunction(u+"_zero",c+"_zero"),t.exportFunction(u+"_one",c+"_one"),t.exportFunction(u+"_isZero",c+"_isZero"),t.exportFunction(u+"_eq",c+"_eq"),c};const UC=oC,PC=sC,GC=iC;var VC=function(t,e,n,r){if(t.modules[n])return n;const i=8*t.modules[r].n64,o=t.modules[r].q;return t.modules[n]={n64:2*t.modules[r].n64},function(){const e=t.addFunction(n+"_isZero");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.i32_and(o.call(r+"_isZero",s),o.call(r+"_isZero",a)))}(),function(){const e=t.addFunction(n+"_isOne");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.ret(o.i32_and(o.call(r+"_isOne",s),o.call(r+"_isZero",a))))}(),function(){const e=t.addFunction(n+"_zero");e.addParam("x","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.call(r+"_zero",s),o.call(r+"_zero",a))}(),function(){const e=t.addFunction(n+"_one");e.addParam("x","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.call(r+"_one",s),o.call(r+"_zero",a))}(),function(){const e=t.addFunction(n+"_copy");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_copy",s,c),o.call(r+"_copy",a,l))}(),function(){const o=t.addFunction(n+"_mul");o.addParam("x","i32"),o.addParam("y","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.getLocal("y"),u=s.i32_add(s.getLocal("y"),s.i32_const(i)),h=s.getLocal("r"),d=s.i32_add(s.getLocal("r"),s.i32_const(i)),p=s.i32_const(t.alloc(i)),f=s.i32_const(t.alloc(i)),A=s.i32_const(t.alloc(i)),g=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_mul",a,l,p),s.call(r+"_mul",c,u,f),s.call(r+"_add",a,c,A),s.call(r+"_add",l,u,g),s.call(r+"_mul",A,g,A),s.call(e,f,h),s.call(r+"_add",p,h,h),s.call(r+"_add",p,f,d),s.call(r+"_sub",A,d,d))}(),function(){const e=t.addFunction(n+"_mul1");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("y"),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_mul",s,c,l),o.call(r+"_mul",a,c,u))}(),function(){const o=t.addFunction(n+"_square");o.addParam("x","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.getLocal("r"),u=s.i32_add(s.getLocal("r"),s.i32_const(i)),h=s.i32_const(t.alloc(i)),d=s.i32_const(t.alloc(i)),p=s.i32_const(t.alloc(i)),f=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_mul",a,c,h),s.call(r+"_add",a,c,d),s.call(e,c,p),s.call(r+"_add",a,p,p),s.call(e,h,f),s.call(r+"_add",f,h,f),s.call(r+"_mul",d,p,l),s.call(r+"_sub",l,f,l),s.call(r+"_add",h,h,u))}(),function(){const e=t.addFunction(n+"_add");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("y"),l=o.i32_add(o.getLocal("y"),o.i32_const(i)),u=o.getLocal("r"),h=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_add",s,c,u),o.call(r+"_add",a,l,h))}(),function(){const e=t.addFunction(n+"_sub");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("y"),l=o.i32_add(o.getLocal("y"),o.i32_const(i)),u=o.getLocal("r"),h=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_sub",s,c,u),o.call(r+"_sub",a,l,h))}(),function(){const e=t.addFunction(n+"_neg");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_neg",s,c),o.call(r+"_neg",a,l))}(),function(){const e=t.addFunction(n+"_conjugate");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_copy",s,c),o.call(r+"_neg",a,l))}(),function(){const e=t.addFunction(n+"_toMontgomery");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_toMontgomery",s,c),o.call(r+"_toMontgomery",a,l))}(),function(){const e=t.addFunction(n+"_fromMontgomery");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_fromMontgomery",s,c),o.call(r+"_fromMontgomery",a,l))}(),function(){const e=t.addFunction(n+"_eq");e.addParam("x","i32"),e.addParam("y","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("y"),l=o.i32_add(o.getLocal("y"),o.i32_const(i));e.addCode(o.i32_and(o.call(r+"_eq",s,c),o.call(r+"_eq",a,l)))}(),function(){const o=t.addFunction(n+"_inverse");o.addParam("x","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.getLocal("r"),u=s.i32_add(s.getLocal("r"),s.i32_const(i)),h=s.i32_const(t.alloc(i)),d=s.i32_const(t.alloc(i)),p=s.i32_const(t.alloc(i)),f=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_square",a,h),s.call(r+"_square",c,d),s.call(e,d,p),s.call(r+"_sub",h,p,p),s.call(r+"_inverse",p,f),s.call(r+"_mul",a,f,l),s.call(r+"_mul",c,f,u),s.call(r+"_neg",u,u))}(),function(){const e=t.addFunction(n+"_timesScalar");e.addParam("x","i32"),e.addParam("scalar","i32"),e.addParam("scalarLen","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.getLocal("r"),l=o.i32_add(o.getLocal("r"),o.i32_const(i));e.addCode(o.call(r+"_timesScalar",s,o.getLocal("scalar"),o.getLocal("scalarLen"),c),o.call(r+"_timesScalar",a,o.getLocal("scalar"),o.getLocal("scalarLen"),l))}(),function(){const e=t.addFunction(n+"_sign");e.addParam("x","i32"),e.addLocal("s","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.setLocal("s",o.call(r+"_sign",a)),o.if(o.getLocal("s"),o.ret(o.getLocal("s"))),o.ret(o.call(r+"_sign",s)))}(),function(){const e=t.addFunction(n+"_isNegative");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i));e.addCode(o.if(o.call(r+"_isZero",a),o.ret(o.call(r+"_isNegative",s))),o.ret(o.call(r+"_isNegative",a)))}(),t.exportFunction(n+"_isZero"),t.exportFunction(n+"_isOne"),t.exportFunction(n+"_zero"),t.exportFunction(n+"_one"),t.exportFunction(n+"_copy"),t.exportFunction(n+"_mul"),t.exportFunction(n+"_mul1"),t.exportFunction(n+"_square"),t.exportFunction(n+"_add"),t.exportFunction(n+"_sub"),t.exportFunction(n+"_neg"),t.exportFunction(n+"_sign"),t.exportFunction(n+"_conjugate"),t.exportFunction(n+"_fromMontgomery"),t.exportFunction(n+"_toMontgomery"),t.exportFunction(n+"_eq"),t.exportFunction(n+"_inverse"),PC(t,n),UC(t,n+"_exp",2*i,n+"_mul",n+"_square",n+"_copy",n+"_one"),function(){const e=t.addFunction(n+"_sqrt");e.addParam("a","i32"),e.addParam("pr","i32");const s=e.getCodeBuilder(),a=s.i32_const(t.alloc(GC.bigInt2BytesLE((BigInt(o||0)-3n)/4n,i))),c=s.i32_const(t.alloc(GC.bigInt2BytesLE((BigInt(o||0)-1n)/2n,i))),l=s.getLocal("a"),u=s.i32_const(t.alloc(2*i)),h=s.i32_const(t.alloc(2*i)),d=s.i32_const(t.alloc(2*i)),p=t.alloc(2*i),f=s.i32_const(p),A=s.i32_const(p),g=s.i32_const(p+i),E=s.i32_const(t.alloc(2*i)),m=s.i32_const(t.alloc(2*i));e.addCode(s.call(n+"_one",f),s.call(n+"_neg",f,f),s.call(n+"_exp",l,a,s.i32_const(i),u),s.call(n+"_square",u,h),s.call(n+"_mul",l,h,h),s.call(n+"_conjugate",h,d),s.call(n+"_mul",d,h,d),s.if(s.call(n+"_eq",d,f),s.unreachable()),s.call(n+"_mul",u,l,E),s.if(s.call(n+"_eq",h,f),[...s.call(r+"_zero",A),...s.call(r+"_one",g),...s.call(n+"_mul",f,E,s.getLocal("pr"))],[...s.call(n+"_one",m),...s.call(n+"_add",m,h,m),...s.call(n+"_exp",m,c,s.i32_const(i),m),...s.call(n+"_mul",m,E,s.getLocal("pr"))]))}(),function(){const e=t.addFunction(n+"_isSquare");e.addParam("a","i32"),e.setReturnType("i32");const r=e.getCodeBuilder(),s=r.i32_const(t.alloc(GC.bigInt2BytesLE((BigInt(o||0)-3n)/4n,i))),a=r.getLocal("a"),c=r.i32_const(t.alloc(2*i)),l=r.i32_const(t.alloc(2*i)),u=r.i32_const(t.alloc(2*i)),h=t.alloc(2*i),d=r.i32_const(h);e.addCode(r.call(n+"_one",d),r.call(n+"_neg",d,d),r.call(n+"_exp",a,s,r.i32_const(i),c),r.call(n+"_square",c,l),r.call(n+"_mul",a,l,l),r.call(n+"_conjugate",l,u),r.call(n+"_mul",u,l,u),r.if(r.call(n+"_eq",u,d),r.ret(r.i32_const(0))),r.ret(r.i32_const(1)))}(),t.exportFunction(n+"_exp"),t.exportFunction(n+"_timesScalar"),t.exportFunction(n+"_batchInverse"),t.exportFunction(n+"_sqrt"),t.exportFunction(n+"_isSquare"),t.exportFunction(n+"_isNegative"),n};const HC=oC,jC=sC;var YC=function(t,e,n,r){if(t.modules[n])return n;const i=8*t.modules[r].n64;return t.modules[n]={n64:3*t.modules[r].n64},function(){const e=t.addFunction(n+"_isZero");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.i32_and(o.i32_and(o.call(r+"_isZero",s),o.call(r+"_isZero",a)),o.call(r+"_isZero",c)))}(),function(){const e=t.addFunction(n+"_isOne");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.ret(o.i32_and(o.i32_and(o.call(r+"_isOne",s),o.call(r+"_isZero",a)),o.call(r+"_isZero",c))))}(),function(){const e=t.addFunction(n+"_zero");e.addParam("x","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.call(r+"_zero",s),o.call(r+"_zero",a),o.call(r+"_zero",c))}(),function(){const e=t.addFunction(n+"_one");e.addParam("x","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.call(r+"_one",s),o.call(r+"_zero",a),o.call(r+"_zero",c))}(),function(){const e=t.addFunction(n+"_copy");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i)),h=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_copy",s,l),o.call(r+"_copy",a,u),o.call(r+"_copy",c,h))}(),function(){const o=t.addFunction(n+"_mul");o.addParam("x","i32"),o.addParam("y","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.i32_add(s.getLocal("x"),s.i32_const(2*i)),u=s.getLocal("y"),h=s.i32_add(s.getLocal("y"),s.i32_const(i)),d=s.i32_add(s.getLocal("y"),s.i32_const(2*i)),p=s.getLocal("r"),f=s.i32_add(s.getLocal("r"),s.i32_const(i)),A=s.i32_add(s.getLocal("r"),s.i32_const(2*i)),g=s.i32_const(t.alloc(i)),E=s.i32_const(t.alloc(i)),m=s.i32_const(t.alloc(i)),y=s.i32_const(t.alloc(i)),w=s.i32_const(t.alloc(i)),I=s.i32_const(t.alloc(i)),C=s.i32_const(t.alloc(i)),B=s.i32_const(t.alloc(i)),T=s.i32_const(t.alloc(i)),b=s.i32_const(t.alloc(i)),D=s.i32_const(t.alloc(i)),M=s.i32_const(t.alloc(i)),N=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_mul",a,u,g),s.call(r+"_mul",c,h,E),s.call(r+"_mul",l,d,m),s.call(r+"_add",a,c,y),s.call(r+"_add",u,h,w),s.call(r+"_add",a,l,I),s.call(r+"_add",u,d,C),s.call(r+"_add",c,l,B),s.call(r+"_add",h,d,T),s.call(r+"_add",g,E,b),s.call(r+"_add",g,m,D),s.call(r+"_add",E,m,M),s.call(r+"_mul",B,T,p),s.call(r+"_sub",p,M,p),s.call(e,p,p),s.call(r+"_add",g,p,p),s.call(r+"_mul",y,w,f),s.call(r+"_sub",f,b,f),s.call(e,m,N),s.call(r+"_add",f,N,f),s.call(r+"_mul",I,C,A),s.call(r+"_sub",A,D,A),s.call(r+"_add",A,E,A))}(),function(){const o=t.addFunction(n+"_square");o.addParam("x","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.i32_add(s.getLocal("x"),s.i32_const(2*i)),u=s.getLocal("r"),h=s.i32_add(s.getLocal("r"),s.i32_const(i)),d=s.i32_add(s.getLocal("r"),s.i32_const(2*i)),p=s.i32_const(t.alloc(i)),f=s.i32_const(t.alloc(i)),A=s.i32_const(t.alloc(i)),g=s.i32_const(t.alloc(i)),E=s.i32_const(t.alloc(i)),m=s.i32_const(t.alloc(i)),y=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_square",a,p),s.call(r+"_mul",a,c,f),s.call(r+"_add",f,f,A),s.call(r+"_sub",a,c,g),s.call(r+"_add",g,l,g),s.call(r+"_square",g,g),s.call(r+"_mul",c,l,E),s.call(r+"_add",E,E,m),s.call(r+"_square",l,y),s.call(e,m,u),s.call(r+"_add",p,u,u),s.call(e,y,h),s.call(r+"_add",A,h,h),s.call(r+"_add",p,y,d),s.call(r+"_sub",m,d,d),s.call(r+"_add",g,d,d),s.call(r+"_add",A,d,d))}(),function(){const e=t.addFunction(n+"_add");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("y"),u=o.i32_add(o.getLocal("y"),o.i32_const(i)),h=o.i32_add(o.getLocal("y"),o.i32_const(2*i)),d=o.getLocal("r"),p=o.i32_add(o.getLocal("r"),o.i32_const(i)),f=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_add",s,l,d),o.call(r+"_add",a,u,p),o.call(r+"_add",c,h,f))}(),function(){const e=t.addFunction(n+"_sub");e.addParam("x","i32"),e.addParam("y","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("y"),u=o.i32_add(o.getLocal("y"),o.i32_const(i)),h=o.i32_add(o.getLocal("y"),o.i32_const(2*i)),d=o.getLocal("r"),p=o.i32_add(o.getLocal("r"),o.i32_const(i)),f=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_sub",s,l,d),o.call(r+"_sub",a,u,p),o.call(r+"_sub",c,h,f))}(),function(){const e=t.addFunction(n+"_neg");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i)),h=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_neg",s,l),o.call(r+"_neg",a,u),o.call(r+"_neg",c,h))}(),function(){const e=t.addFunction(n+"_sign");e.addParam("x","i32"),e.addLocal("s","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.setLocal("s",o.call(r+"_sign",c)),o.if(o.getLocal("s"),o.ret(o.getLocal("s"))),o.setLocal("s",o.call(r+"_sign",a)),o.if(o.getLocal("s"),o.ret(o.getLocal("s"))),o.ret(o.call(r+"_sign",s)))}(),function(){const e=t.addFunction(n+"_toMontgomery");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i)),h=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_toMontgomery",s,l),o.call(r+"_toMontgomery",a,u),o.call(r+"_toMontgomery",c,h))}(),function(){const e=t.addFunction(n+"_fromMontgomery");e.addParam("x","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i)),h=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_fromMontgomery",s,l),o.call(r+"_fromMontgomery",a,u),o.call(r+"_fromMontgomery",c,h))}(),function(){const e=t.addFunction(n+"_eq");e.addParam("x","i32"),e.addParam("y","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("y"),u=o.i32_add(o.getLocal("y"),o.i32_const(i)),h=o.i32_add(o.getLocal("y"),o.i32_const(2*i));e.addCode(o.i32_and(o.i32_and(o.call(r+"_eq",s,l),o.call(r+"_eq",a,u)),o.call(r+"_eq",c,h)))}(),function(){const o=t.addFunction(n+"_inverse");o.addParam("x","i32"),o.addParam("r","i32");const s=o.getCodeBuilder(),a=s.getLocal("x"),c=s.i32_add(s.getLocal("x"),s.i32_const(i)),l=s.i32_add(s.getLocal("x"),s.i32_const(2*i)),u=s.getLocal("r"),h=s.i32_add(s.getLocal("r"),s.i32_const(i)),d=s.i32_add(s.getLocal("r"),s.i32_const(2*i)),p=s.i32_const(t.alloc(i)),f=s.i32_const(t.alloc(i)),A=s.i32_const(t.alloc(i)),g=s.i32_const(t.alloc(i)),E=s.i32_const(t.alloc(i)),m=s.i32_const(t.alloc(i)),y=s.i32_const(t.alloc(i)),w=s.i32_const(t.alloc(i)),I=s.i32_const(t.alloc(i)),C=s.i32_const(t.alloc(i)),B=s.i32_const(t.alloc(i));o.addCode(s.call(r+"_square",a,p),s.call(r+"_square",c,f),s.call(r+"_square",l,A),s.call(r+"_mul",a,c,g),s.call(r+"_mul",a,l,E),s.call(r+"_mul",c,l,m),s.call(e,m,y),s.call(r+"_sub",p,y,y),s.call(e,A,w),s.call(r+"_sub",w,g,w),s.call(r+"_sub",f,E,I),s.call(r+"_mul",l,w,C),s.call(r+"_mul",c,I,B),s.call(r+"_add",C,B,C),s.call(e,C,C),s.call(r+"_mul",a,y,B),s.call(r+"_add",B,C,C),s.call(r+"_inverse",C,C),s.call(r+"_mul",C,y,u),s.call(r+"_mul",C,w,h),s.call(r+"_mul",C,I,d))}(),function(){const e=t.addFunction(n+"_timesScalar");e.addParam("x","i32"),e.addParam("scalar","i32"),e.addParam("scalarLen","i32"),e.addParam("r","i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i)),l=o.getLocal("r"),u=o.i32_add(o.getLocal("r"),o.i32_const(i)),h=o.i32_add(o.getLocal("r"),o.i32_const(2*i));e.addCode(o.call(r+"_timesScalar",s,o.getLocal("scalar"),o.getLocal("scalarLen"),l),o.call(r+"_timesScalar",a,o.getLocal("scalar"),o.getLocal("scalarLen"),u),o.call(r+"_timesScalar",c,o.getLocal("scalar"),o.getLocal("scalarLen"),h))}(),function(){const e=t.addFunction(n+"_isNegative");e.addParam("x","i32"),e.setReturnType("i32");const o=e.getCodeBuilder(),s=o.getLocal("x"),a=o.i32_add(o.getLocal("x"),o.i32_const(i)),c=o.i32_add(o.getLocal("x"),o.i32_const(2*i));e.addCode(o.if(o.call(r+"_isZero",c),o.if(o.call(r+"_isZero",a),o.ret(o.call(r+"_isNegative",s)),o.ret(o.call(r+"_isNegative",a)))),o.ret(o.call(r+"_isNegative",c)))}(),t.exportFunction(n+"_isZero"),t.exportFunction(n+"_isOne"),t.exportFunction(n+"_zero"),t.exportFunction(n+"_one"),t.exportFunction(n+"_copy"),t.exportFunction(n+"_mul"),t.exportFunction(n+"_square"),t.exportFunction(n+"_add"),t.exportFunction(n+"_sub"),t.exportFunction(n+"_neg"),t.exportFunction(n+"_sign"),t.exportFunction(n+"_fromMontgomery"),t.exportFunction(n+"_toMontgomery"),t.exportFunction(n+"_eq"),t.exportFunction(n+"_inverse"),jC(t,n),HC(t,n+"_exp",3*i,n+"_mul",n+"_square",n+"_copy",n+"_one"),t.exportFunction(n+"_exp"),t.exportFunction(n+"_timesScalar"),t.exportFunction(n+"_batchInverse"),t.exportFunction(n+"_isNegative"),n};const zC=function(t,e,n,r,i,o,s,a){const c=t.addFunction(e);c.addParam("base","i32"),c.addParam("scalar","i32"),c.addParam("scalarLength","i32"),c.addParam("r","i32"),c.addLocal("old0","i32"),c.addLocal("nbits","i32"),c.addLocal("i","i32"),c.addLocal("last","i32"),c.addLocal("cur","i32"),c.addLocal("carry","i32"),c.addLocal("p","i32");const l=c.getCodeBuilder(),u=l.i32_const(t.alloc(n));function h(t){return l.i32_and(l.i32_shr_u(l.i32_load(l.i32_add(l.getLocal("scalar"),l.i32_and(l.i32_shr_u(t,l.i32_const(3)),l.i32_const(4294967292)))),l.i32_and(t,l.i32_const(31))),l.i32_const(1))}function d(t){return[...l.i32_store8(l.getLocal("p"),l.i32_const(t)),...l.setLocal("p",l.i32_add(l.getLocal("p"),l.i32_const(1)))]}c.addCode(l.if(l.i32_eqz(l.getLocal("scalarLength")),[...l.call(a,l.getLocal("r")),...l.ret([])]),l.setLocal("nbits",l.i32_shl(l.getLocal("scalarLength"),l.i32_const(3))),l.setLocal("old0",l.i32_load(l.i32_const(0))),l.setLocal("p",l.getLocal("old0")),l.i32_store(l.i32_const(0),l.i32_and(l.i32_add(l.i32_add(l.getLocal("old0"),l.i32_const(32)),l.getLocal("nbits")),l.i32_const(4294967288))),l.setLocal("i",l.i32_const(1)),l.setLocal("last",h(l.i32_const(0))),l.setLocal("carry",l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal("i"),l.getLocal("nbits"))),l.setLocal("cur",h(l.getLocal("i"))),l.if(l.getLocal("last"),l.if(l.getLocal("cur"),l.if(l.getLocal("carry"),[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(1)),...d(1)],[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(1)),...d(255)]),l.if(l.getLocal("carry"),[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(1)),...d(255)],[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(0)),...d(1)])),l.if(l.getLocal("cur"),l.if(l.getLocal("carry"),[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(1)),...d(0)],[...l.setLocal("last",l.i32_const(1)),...l.setLocal("carry",l.i32_const(0)),...d(0)]),l.if(l.getLocal("carry"),[...l.setLocal("last",l.i32_const(1)),...l.setLocal("carry",l.i32_const(0)),...d(0)],[...l.setLocal("last",l.i32_const(0)),...l.setLocal("carry",l.i32_const(0)),...d(0)]))),l.setLocal("i",l.i32_add(l.getLocal("i"),l.i32_const(1))),l.br(0))),l.if(l.getLocal("last"),l.if(l.getLocal("carry"),[...d(255),...d(0),...d(1)],[...d(1)]),l.if(l.getLocal("carry"),[...d(0),...d(1)])),l.setLocal("p",l.i32_sub(l.getLocal("p"),l.i32_const(1))),l.call(s,l.getLocal("base"),u),l.call(a,l.getLocal("r")),l.block(l.loop(l.call(i,l.getLocal("r"),l.getLocal("r")),l.setLocal("cur",l.i32_load8_u(l.getLocal("p"))),l.if(l.getLocal("cur"),l.if(l.i32_eq(l.getLocal("cur"),l.i32_const(1)),l.call(r,l.getLocal("r"),u,l.getLocal("r")),l.call(o,l.getLocal("r"),u,l.getLocal("r")))),l.br_if(1,l.i32_eq(l.getLocal("old0"),l.getLocal("p"))),l.setLocal("p",l.i32_sub(l.getLocal("p"),l.i32_const(1))),l.br(0))),l.i32_store(l.i32_const(0),l.getLocal("old0")))},JC=aC,WC=function(t,e,n,r,i){const o=8*t.modules[e].n64;function s(){const r=t.addFunction(n);r.addParam("pBases","i32"),r.addParam("pScalars","i32"),r.addParam("scalarSize","i32"),r.addParam("n","i32"),r.addParam("pr","i32"),r.addLocal("chunkSize","i32"),r.addLocal("nChunks","i32"),r.addLocal("itScalar","i32"),r.addLocal("endScalar","i32"),r.addLocal("itBase","i32"),r.addLocal("itBit","i32"),r.addLocal("i","i32"),r.addLocal("j","i32"),r.addLocal("nTable","i32"),r.addLocal("pTable","i32"),r.addLocal("idx","i32"),r.addLocal("pIdxTable","i32");const i=r.getCodeBuilder(),s=i.i32_const(t.alloc(o)),a=t.alloc([17,17,17,17,17,17,17,17,17,17,16,16,15,14,13,13,12,11,10,9,8,7,7,6,5,4,3,2,1,1,1,1]);r.addCode(i.call(e+"_zero",i.getLocal("pr")),i.if(i.i32_eqz(i.getLocal("n")),i.ret([])),i.setLocal("chunkSize",i.i32_load8_u(i.i32_clz(i.getLocal("n")),a)),i.setLocal("nChunks",i.i32_add(i.i32_div_u(i.i32_sub(i.i32_shl(i.getLocal("scalarSize"),i.i32_const(3)),i.i32_const(1)),i.getLocal("chunkSize")),i.i32_const(1))),i.setLocal("itBit",i.i32_mul(i.i32_sub(i.getLocal("nChunks"),i.i32_const(1)),i.getLocal("chunkSize"))),i.block(i.loop(i.br_if(1,i.i32_lt_s(i.getLocal("itBit"),i.i32_const(0))),i.if(i.i32_eqz(i.call(e+"_isZero",i.getLocal("pr"))),[...i.setLocal("j",i.i32_const(0)),...i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal("j"),i.getLocal("chunkSize"))),i.call(e+"_double",i.getLocal("pr"),i.getLocal("pr")),i.setLocal("j",i.i32_add(i.getLocal("j"),i.i32_const(1))),i.br(0)))]),i.call(n+"_chunk",i.getLocal("pBases"),i.getLocal("pScalars"),i.getLocal("scalarSize"),i.getLocal("n"),i.getLocal("itBit"),i.getLocal("chunkSize"),s),i.call(e+"_add",i.getLocal("pr"),s,i.getLocal("pr")),i.setLocal("itBit",i.i32_sub(i.getLocal("itBit"),i.getLocal("chunkSize"))),i.br(0))))}!function(){const e=t.addFunction(n+"_getChunk");e.addParam("pScalar","i32"),e.addParam("scalarSize","i32"),e.addParam("startBit","i32"),e.addParam("chunkSize","i32"),e.addLocal("bitsToEnd","i32"),e.addLocal("mask","i32"),e.setReturnType("i32");const r=e.getCodeBuilder();e.addCode(r.setLocal("bitsToEnd",r.i32_sub(r.i32_mul(r.getLocal("scalarSize"),r.i32_const(8)),r.getLocal("startBit"))),r.if(r.i32_gt_s(r.getLocal("chunkSize"),r.getLocal("bitsToEnd")),r.setLocal("mask",r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal("bitsToEnd")),r.i32_const(1))),r.setLocal("mask",r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal("chunkSize")),r.i32_const(1)))),r.i32_and(r.i32_shr_u(r.i32_load(r.i32_add(r.getLocal("pScalar"),r.i32_shr_u(r.getLocal("startBit"),r.i32_const(3))),0,0),r.i32_and(r.getLocal("startBit"),r.i32_const(7))),r.getLocal("mask")))}(),function(){const r=t.addFunction(n+"_reduceTable");r.addParam("pTable","i32"),r.addParam("p","i32"),r.addLocal("half","i32"),r.addLocal("it1","i32"),r.addLocal("it2","i32"),r.addLocal("pAcc","i32");const i=r.getCodeBuilder();r.addCode(i.if(i.i32_eq(i.getLocal("p"),i.i32_const(1)),i.ret([])),i.setLocal("half",i.i32_shl(i.i32_const(1),i.i32_sub(i.getLocal("p"),i.i32_const(1)))),i.setLocal("it1",i.getLocal("pTable")),i.setLocal("it2",i.i32_add(i.getLocal("pTable"),i.i32_mul(i.getLocal("half"),i.i32_const(o)))),i.setLocal("pAcc",i.i32_sub(i.getLocal("it2"),i.i32_const(o))),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal("it1"),i.getLocal("pAcc"))),i.call(e+"_add",i.getLocal("it1"),i.getLocal("it2"),i.getLocal("it1")),i.call(e+"_add",i.getLocal("pAcc"),i.getLocal("it2"),i.getLocal("pAcc")),i.setLocal("it1",i.i32_add(i.getLocal("it1"),i.i32_const(o))),i.setLocal("it2",i.i32_add(i.getLocal("it2"),i.i32_const(o))),i.br(0))),i.call(n+"_reduceTable",i.getLocal("pTable"),i.i32_sub(i.getLocal("p"),i.i32_const(1))),i.setLocal("p",i.i32_sub(i.getLocal("p"),i.i32_const(1))),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal("p"))),i.call(e+"_double",i.getLocal("pAcc"),i.getLocal("pAcc")),i.setLocal("p",i.i32_sub(i.getLocal("p"),i.i32_const(1))),i.br(0))),i.call(e+"_add",i.getLocal("pTable"),i.getLocal("pAcc"),i.getLocal("pTable")))}(),function(){const s=t.addFunction(n+"_chunk");s.addParam("pBases","i32"),s.addParam("pScalars","i32"),s.addParam("scalarSize","i32"),s.addParam("n","i32"),s.addParam("startBit","i32"),s.addParam("chunkSize","i32"),s.addParam("pr","i32"),s.addLocal("nChunks","i32"),s.addLocal("itScalar","i32"),s.addLocal("endScalar","i32"),s.addLocal("itBase","i32"),s.addLocal("i","i32"),s.addLocal("j","i32"),s.addLocal("nTable","i32"),s.addLocal("pTable","i32"),s.addLocal("idx","i32"),s.addLocal("pIdxTable","i32");const a=s.getCodeBuilder();s.addCode(a.if(a.i32_eqz(a.getLocal("n")),[...a.call(e+"_zero",a.getLocal("pr")),...a.ret([])]),a.setLocal("nTable",a.i32_shl(a.i32_const(1),a.getLocal("chunkSize"))),a.setLocal("pTable",a.i32_load(a.i32_const(0))),a.i32_store(a.i32_const(0),a.i32_add(a.getLocal("pTable"),a.i32_mul(a.getLocal("nTable"),a.i32_const(o)))),a.setLocal("j",a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("j"),a.getLocal("nTable"))),a.call(e+"_zero",a.i32_add(a.getLocal("pTable"),a.i32_mul(a.getLocal("j"),a.i32_const(o)))),a.setLocal("j",a.i32_add(a.getLocal("j"),a.i32_const(1))),a.br(0))),a.setLocal("itBase",a.getLocal("pBases")),a.setLocal("itScalar",a.getLocal("pScalars")),a.setLocal("endScalar",a.i32_add(a.getLocal("pScalars"),a.i32_mul(a.getLocal("n"),a.getLocal("scalarSize")))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal("itScalar"),a.getLocal("endScalar"))),a.setLocal("idx",a.call(n+"_getChunk",a.getLocal("itScalar"),a.getLocal("scalarSize"),a.getLocal("startBit"),a.getLocal("chunkSize"))),a.if(a.getLocal("idx"),[...a.setLocal("pIdxTable",a.i32_add(a.getLocal("pTable"),a.i32_mul(a.i32_sub(a.getLocal("idx"),a.i32_const(1)),a.i32_const(o)))),...a.call(r,a.getLocal("pIdxTable"),a.getLocal("itBase"),a.getLocal("pIdxTable"))]),a.setLocal("itScalar",a.i32_add(a.getLocal("itScalar"),a.getLocal("scalarSize"))),a.setLocal("itBase",a.i32_add(a.getLocal("itBase"),a.i32_const(i))),a.br(0))),a.call(n+"_reduceTable",a.getLocal("pTable"),a.getLocal("chunkSize")),a.call(e+"_copy",a.getLocal("pTable"),a.getLocal("pr")),a.i32_store(a.i32_const(0),a.getLocal("pTable")))}(),s(),t.exportFunction(n),t.exportFunction(n+"_chunk")};var qC=function(t,e,n,r){const i=t.modules[n].n64,o=8*i;if(t.modules[e])return e;return t.modules[e]={n64:3*i},function(){const r=t.addFunction(e+"_isZeroAffine");r.addParam("p1","i32"),r.setReturnType("i32");const i=r.getCodeBuilder();r.addCode(i.i32_and(i.call(n+"_isZero",i.getLocal("p1")),i.call(n+"_isZero",i.i32_add(i.getLocal("p1"),i.i32_const(o)))))}(),function(){const r=t.addFunction(e+"_isZero");r.addParam("p1","i32"),r.setReturnType("i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_isZero",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))))}(),function(){const r=t.addFunction(e+"_zeroAffine");r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_zero",i.getLocal("pr"))),r.addCode(i.call(n+"_zero",i.i32_add(i.getLocal("pr"),i.i32_const(o))))}(),function(){const r=t.addFunction(e+"_zero");r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_zero",i.getLocal("pr"))),r.addCode(i.call(n+"_one",i.i32_add(i.getLocal("pr"),i.i32_const(o)))),r.addCode(i.call(n+"_zero",i.i32_add(i.getLocal("pr"),i.i32_const(2*o))))}(),function(){const n=t.addFunction(e+"_copyAffine");n.addParam("ps","i32"),n.addParam("pd","i32");const r=n.getCodeBuilder();for(let t=0;t<2*i;t++)n.addCode(r.i64_store(r.getLocal("pd"),8*t,r.i64_load(r.getLocal("ps"),8*t)))}(),function(){const n=t.addFunction(e+"_copy");n.addParam("ps","i32"),n.addParam("pd","i32");const r=n.getCodeBuilder();for(let t=0;t<3*i;t++)n.addCode(r.i64_store(r.getLocal("pd"),8*t,r.i64_load(r.getLocal("ps"),8*t)))}(),function(){const r=t.addFunction(e+"_toJacobian");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.getLocal("pr"),l=i.i32_add(i.getLocal("pr"),i.i32_const(o)),u=i.i32_add(i.getLocal("pr"),i.i32_const(2*o));r.addCode(i.if(i.call(e+"_isZeroAffine",i.getLocal("p1")),i.call(e+"_zero",i.getLocal("pr")),[...i.call(n+"_one",u),...i.call(n+"_copy",a,l),...i.call(n+"_copy",s,c)]))}(),function(){const r=t.addFunction(e+"_eqAffine");r.addParam("p1","i32"),r.addParam("p2","i32"),r.setReturnType("i32"),r.addLocal("z1","i32");const i=r.getCodeBuilder();r.addCode(i.ret(i.i32_and(i.call(n+"_eq",i.getLocal("p1"),i.getLocal("p2")),i.call(n+"_eq",i.i32_add(i.getLocal("p1"),i.i32_const(o)),i.i32_add(i.getLocal("p2"),i.i32_const(o))))))}(),function(){const r=t.addFunction(e+"_eqMixed");r.addParam("p1","i32"),r.addParam("p2","i32"),r.setReturnType("i32"),r.addLocal("z1","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o));r.addCode(i.setLocal("z1",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))));const c=i.getLocal("z1"),l=i.getLocal("p2"),u=i.i32_add(i.getLocal("p2"),i.i32_const(o)),h=i.i32_const(t.alloc(o)),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),i.ret(i.call(e+"_isZeroAffine",i.getLocal("p2")))),i.if(i.call(e+"_isZeroAffine",i.getLocal("p2")),i.ret(i.i32_const(0))),i.if(i.call(n+"_isOne",c),i.ret(i.call(e+"_eqAffine",i.getLocal("p1"),i.getLocal("p2")))),i.call(n+"_square",c,h),i.call(n+"_mul",l,h,d),i.call(n+"_mul",c,h,p),i.call(n+"_mul",u,p,f),i.if(i.call(n+"_eq",s,d),i.if(i.call(n+"_eq",a,f),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}(),function(){const r=t.addFunction(e+"_eq");r.addParam("p1","i32"),r.addParam("p2","i32"),r.setReturnType("i32"),r.addLocal("z1","i32"),r.addLocal("z2","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o));r.addCode(i.setLocal("z1",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))));const c=i.getLocal("z1"),l=i.getLocal("p2"),u=i.i32_add(i.getLocal("p2"),i.i32_const(o));r.addCode(i.setLocal("z2",i.i32_add(i.getLocal("p2"),i.i32_const(2*o))));const h=i.getLocal("z2"),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o)),E=i.i32_const(t.alloc(o)),m=i.i32_const(t.alloc(o)),y=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),i.ret(i.call(e+"_isZero",i.getLocal("p2")))),i.if(i.call(e+"_isZero",i.getLocal("p2")),i.ret(i.i32_const(0))),i.if(i.call(n+"_isOne",c),i.ret(i.call(e+"_eqMixed",i.getLocal("p2"),i.getLocal("p1")))),i.if(i.call(n+"_isOne",h),i.ret(i.call(e+"_eqMixed",i.getLocal("p1"),i.getLocal("p2")))),i.call(n+"_square",c,d),i.call(n+"_square",h,p),i.call(n+"_mul",s,p,f),i.call(n+"_mul",l,d,A),i.call(n+"_mul",c,d,g),i.call(n+"_mul",h,p,E),i.call(n+"_mul",a,E,m),i.call(n+"_mul",u,g,y),i.if(i.call(n+"_eq",f,A),i.if(i.call(n+"_eq",m,y),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}(),function(){const r=t.addFunction(e+"_doubleAffine");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.getLocal("pr"),l=i.i32_add(i.getLocal("pr"),i.i32_const(o)),u=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),h=i.i32_const(t.alloc(o)),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZeroAffine",i.getLocal("p1")),[...i.call(e+"_toJacobian",i.getLocal("p1"),i.getLocal("pr")),...i.ret([])]),i.call(n+"_square",s,h),i.call(n+"_square",a,d),i.call(n+"_square",d,p),i.call(n+"_add",s,d,f),i.call(n+"_square",f,f),i.call(n+"_sub",f,h,f),i.call(n+"_sub",f,p,f),i.call(n+"_add",f,f,f),i.call(n+"_add",h,h,A),i.call(n+"_add",A,h,A),i.call(n+"_add",a,a,u),i.call(n+"_square",A,c),i.call(n+"_sub",c,f,c),i.call(n+"_sub",c,f,c),i.call(n+"_add",p,p,g),i.call(n+"_add",g,g,g),i.call(n+"_add",g,g,g),i.call(n+"_sub",f,c,l),i.call(n+"_mul",l,A,l),i.call(n+"_sub",l,g,l))}(),function(){const r=t.addFunction(e+"_double");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.i32_add(i.getLocal("p1"),i.i32_const(2*o)),l=i.getLocal("pr"),u=i.i32_add(i.getLocal("pr"),i.i32_const(o)),h=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o)),E=i.i32_const(t.alloc(o)),m=i.i32_const(t.alloc(o)),y=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),[...i.call(e+"_copy",i.getLocal("p1"),i.getLocal("pr")),...i.ret([])]),i.if(i.call(n+"_isOne",c),[...i.ret(i.call(e+"_doubleAffine",i.getLocal("p1"),i.getLocal("pr"))),...i.ret([])]),i.call(n+"_square",s,d),i.call(n+"_square",a,p),i.call(n+"_square",p,f),i.call(n+"_add",s,p,A),i.call(n+"_square",A,A),i.call(n+"_sub",A,d,A),i.call(n+"_sub",A,f,A),i.call(n+"_add",A,A,A),i.call(n+"_add",d,d,g),i.call(n+"_add",g,d,g),i.call(n+"_square",g,E),i.call(n+"_mul",a,c,m),i.call(n+"_add",A,A,l),i.call(n+"_sub",E,l,l),i.call(n+"_add",f,f,y),i.call(n+"_add",y,y,y),i.call(n+"_add",y,y,y),i.call(n+"_sub",A,l,u),i.call(n+"_mul",u,g,u),i.call(n+"_sub",u,y,u),i.call(n+"_add",m,m,h))}(),function(){const r=t.addFunction(e+"_addAffine");r.addParam("p1","i32"),r.addParam("p2","i32"),r.addParam("pr","i32"),r.addLocal("z1","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o));r.addCode(i.setLocal("z1",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))));const c=i.getLocal("p2"),l=i.i32_add(i.getLocal("p2"),i.i32_const(o)),u=i.getLocal("pr"),h=i.i32_add(i.getLocal("pr"),i.i32_const(o)),d=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o)),E=i.i32_const(t.alloc(o)),m=i.i32_const(t.alloc(o)),y=i.i32_const(t.alloc(o)),w=i.i32_const(t.alloc(o)),I=i.i32_const(t.alloc(o)),C=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZeroAffine",i.getLocal("p1")),[...i.call(e+"_copyAffine",i.getLocal("p2"),i.getLocal("pr")),...i.call(n+"_one",i.i32_add(i.getLocal("pr"),i.i32_const(2*o))),...i.ret([])]),i.if(i.call(e+"_isZeroAffine",i.getLocal("p2")),[...i.call(e+"_copyAffine",i.getLocal("p1"),i.getLocal("pr")),...i.call(n+"_one",i.i32_add(i.getLocal("pr"),i.i32_const(2*o))),...i.ret([])]),i.if(i.call(n+"_eq",s,c),i.if(i.call(n+"_eq",a,l),[...i.call(e+"_doubleAffine",i.getLocal("p2"),i.getLocal("pr")),...i.ret([])])),i.call(n+"_sub",c,s,p),i.call(n+"_sub",l,a,A),i.call(n+"_square",p,f),i.call(n+"_add",f,f,g),i.call(n+"_add",g,g,g),i.call(n+"_mul",p,g,E),i.call(n+"_add",A,A,m),i.call(n+"_mul",s,g,w),i.call(n+"_square",m,y),i.call(n+"_add",w,w,I),i.call(n+"_sub",y,E,u),i.call(n+"_sub",u,I,u),i.call(n+"_mul",a,E,C),i.call(n+"_add",C,C,C),i.call(n+"_sub",w,u,h),i.call(n+"_mul",h,m,h),i.call(n+"_sub",h,C,h),i.call(n+"_add",p,p,d))}(),function(){const r=t.addFunction(e+"_addMixed");r.addParam("p1","i32"),r.addParam("p2","i32"),r.addParam("pr","i32"),r.addLocal("z1","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o));r.addCode(i.setLocal("z1",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))));const c=i.getLocal("z1"),l=i.getLocal("p2"),u=i.i32_add(i.getLocal("p2"),i.i32_const(o)),h=i.getLocal("pr"),d=i.i32_add(i.getLocal("pr"),i.i32_const(o)),p=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),f=i.i32_const(t.alloc(o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o)),E=i.i32_const(t.alloc(o)),m=i.i32_const(t.alloc(o)),y=i.i32_const(t.alloc(o)),w=i.i32_const(t.alloc(o)),I=i.i32_const(t.alloc(o)),C=i.i32_const(t.alloc(o)),B=i.i32_const(t.alloc(o)),T=i.i32_const(t.alloc(o)),b=i.i32_const(t.alloc(o)),D=i.i32_const(t.alloc(o)),M=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),[...i.call(e+"_copyAffine",i.getLocal("p2"),i.getLocal("pr")),...i.call(n+"_one",i.i32_add(i.getLocal("pr"),i.i32_const(2*o))),...i.ret([])]),i.if(i.call(e+"_isZeroAffine",i.getLocal("p2")),[...i.call(e+"_copy",i.getLocal("p1"),i.getLocal("pr")),...i.ret([])]),i.if(i.call(n+"_isOne",c),[...i.call(e+"_addAffine",s,l,h),...i.ret([])]),i.call(n+"_square",c,f),i.call(n+"_mul",l,f,A),i.call(n+"_mul",c,f,g),i.call(n+"_mul",u,g,E),i.if(i.call(n+"_eq",s,A),i.if(i.call(n+"_eq",a,E),[...i.call(e+"_doubleAffine",i.getLocal("p2"),i.getLocal("pr")),...i.ret([])])),i.call(n+"_sub",A,s,m),i.call(n+"_sub",E,a,w),i.call(n+"_square",m,y),i.call(n+"_add",y,y,I),i.call(n+"_add",I,I,I),i.call(n+"_mul",m,I,C),i.call(n+"_add",w,w,B),i.call(n+"_mul",s,I,b),i.call(n+"_square",B,T),i.call(n+"_add",b,b,D),i.call(n+"_sub",T,C,h),i.call(n+"_sub",h,D,h),i.call(n+"_mul",a,C,M),i.call(n+"_add",M,M,M),i.call(n+"_sub",b,h,d),i.call(n+"_mul",d,B,d),i.call(n+"_sub",d,M,d),i.call(n+"_add",c,m,p),i.call(n+"_square",p,p),i.call(n+"_sub",p,f,p),i.call(n+"_sub",p,y,p))}(),function(){const r=t.addFunction(e+"_add");r.addParam("p1","i32"),r.addParam("p2","i32"),r.addParam("pr","i32"),r.addLocal("z1","i32"),r.addLocal("z2","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o));r.addCode(i.setLocal("z1",i.i32_add(i.getLocal("p1"),i.i32_const(2*o))));const c=i.getLocal("z1"),l=i.getLocal("p2"),u=i.i32_add(i.getLocal("p2"),i.i32_const(o));r.addCode(i.setLocal("z2",i.i32_add(i.getLocal("p2"),i.i32_const(2*o))));const h=i.getLocal("z2"),d=i.getLocal("pr"),p=i.i32_add(i.getLocal("pr"),i.i32_const(o)),f=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),A=i.i32_const(t.alloc(o)),g=i.i32_const(t.alloc(o)),E=i.i32_const(t.alloc(o)),m=i.i32_const(t.alloc(o)),y=i.i32_const(t.alloc(o)),w=i.i32_const(t.alloc(o)),I=i.i32_const(t.alloc(o)),C=i.i32_const(t.alloc(o)),B=i.i32_const(t.alloc(o)),T=i.i32_const(t.alloc(o)),b=i.i32_const(t.alloc(o)),D=i.i32_const(t.alloc(o)),M=i.i32_const(t.alloc(o)),N=i.i32_const(t.alloc(o)),S=i.i32_const(t.alloc(o)),v=i.i32_const(t.alloc(o)),_=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),[...i.call(e+"_copy",i.getLocal("p2"),i.getLocal("pr")),...i.ret([])]),i.if(i.call(e+"_isZero",i.getLocal("p2")),[...i.call(e+"_copy",i.getLocal("p1"),i.getLocal("pr")),...i.ret([])]),i.if(i.call(n+"_isOne",c),[...i.call(e+"_addMixed",l,s,d),...i.ret([])]),i.if(i.call(n+"_isOne",h),[...i.call(e+"_addMixed",s,l,d),...i.ret([])]),i.call(n+"_square",c,A),i.call(n+"_square",h,g),i.call(n+"_mul",s,g,E),i.call(n+"_mul",l,A,m),i.call(n+"_mul",c,A,y),i.call(n+"_mul",h,g,w),i.call(n+"_mul",a,w,I),i.call(n+"_mul",u,y,C),i.if(i.call(n+"_eq",E,m),i.if(i.call(n+"_eq",I,C),[...i.call(e+"_double",i.getLocal("p1"),i.getLocal("pr")),...i.ret([])])),i.call(n+"_sub",m,E,B),i.call(n+"_sub",C,I,T),i.call(n+"_add",B,B,b),i.call(n+"_square",b,b),i.call(n+"_mul",B,b,D),i.call(n+"_add",T,T,M),i.call(n+"_mul",E,b,S),i.call(n+"_square",M,N),i.call(n+"_add",S,S,v),i.call(n+"_sub",N,D,d),i.call(n+"_sub",d,v,d),i.call(n+"_mul",I,D,_),i.call(n+"_add",_,_,_),i.call(n+"_sub",S,d,p),i.call(n+"_mul",p,M,p),i.call(n+"_sub",p,_,p),i.call(n+"_add",c,h,f),i.call(n+"_square",f,f),i.call(n+"_sub",f,A,f),i.call(n+"_sub",f,g,f),i.call(n+"_mul",f,B,f))}(),function(){const r=t.addFunction(e+"_negAffine");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.getLocal("pr"),l=i.i32_add(i.getLocal("pr"),i.i32_const(o));r.addCode(i.call(n+"_copy",s,c),i.call(n+"_neg",a,l))}(),function(){const r=t.addFunction(e+"_neg");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.i32_add(i.getLocal("p1"),i.i32_const(2*o)),l=i.getLocal("pr"),u=i.i32_add(i.getLocal("pr"),i.i32_const(o)),h=i.i32_add(i.getLocal("pr"),i.i32_const(2*o));r.addCode(i.call(n+"_copy",s,l),i.call(n+"_neg",a,u),i.call(n+"_copy",c,h))}(),function(){const n=t.addFunction(e+"_subAffine");n.addParam("p1","i32"),n.addParam("p2","i32"),n.addParam("pr","i32");const r=n.getCodeBuilder(),i=r.i32_const(t.alloc(3*o));n.addCode(r.call(e+"_negAffine",r.getLocal("p2"),i),r.call(e+"_addAffine",r.getLocal("p1"),i,r.getLocal("pr")))}(),function(){const n=t.addFunction(e+"_subMixed");n.addParam("p1","i32"),n.addParam("p2","i32"),n.addParam("pr","i32");const r=n.getCodeBuilder(),i=r.i32_const(t.alloc(3*o));n.addCode(r.call(e+"_negAffine",r.getLocal("p2"),i),r.call(e+"_addMixed",r.getLocal("p1"),i,r.getLocal("pr")))}(),function(){const n=t.addFunction(e+"_sub");n.addParam("p1","i32"),n.addParam("p2","i32"),n.addParam("pr","i32");const r=n.getCodeBuilder(),i=r.i32_const(t.alloc(3*o));n.addCode(r.call(e+"_neg",r.getLocal("p2"),i),r.call(e+"_add",r.getLocal("p1"),i,r.getLocal("pr")))}(),function(){const r=t.addFunction(e+"_fromMontgomeryAffine");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_fromMontgomery",i.getLocal("p1"),i.getLocal("pr")));for(let t=1;t<2;t++)r.addCode(i.call(n+"_fromMontgomery",i.i32_add(i.getLocal("p1"),i.i32_const(t*o)),i.i32_add(i.getLocal("pr"),i.i32_const(t*o))))}(),function(){const r=t.addFunction(e+"_fromMontgomery");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_fromMontgomery",i.getLocal("p1"),i.getLocal("pr")));for(let t=1;t<3;t++)r.addCode(i.call(n+"_fromMontgomery",i.i32_add(i.getLocal("p1"),i.i32_const(t*o)),i.i32_add(i.getLocal("pr"),i.i32_const(t*o))))}(),function(){const r=t.addFunction(e+"_toMontgomeryAffine");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_toMontgomery",i.getLocal("p1"),i.getLocal("pr")));for(let t=1;t<2;t++)r.addCode(i.call(n+"_toMontgomery",i.i32_add(i.getLocal("p1"),i.i32_const(t*o)),i.i32_add(i.getLocal("pr"),i.i32_const(t*o))))}(),function(){const r=t.addFunction(e+"_toMontgomery");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder();r.addCode(i.call(n+"_toMontgomery",i.getLocal("p1"),i.getLocal("pr")));for(let t=1;t<3;t++)r.addCode(i.call(n+"_toMontgomery",i.i32_add(i.getLocal("p1"),i.i32_const(t*o)),i.i32_add(i.getLocal("pr"),i.i32_const(t*o))))}(),function(){const r=t.addFunction(e+"_toAffine");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.i32_add(i.getLocal("p1"),i.i32_const(2*o)),l=i.getLocal("pr"),u=i.i32_add(i.getLocal("pr"),i.i32_const(o)),h=i.i32_const(t.alloc(o)),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),[...i.call(n+"_zero",l),...i.call(n+"_zero",u)],[...i.call(n+"_inverse",c,h),...i.call(n+"_square",h,d),...i.call(n+"_mul",h,d,p),...i.call(n+"_mul",s,d,l),...i.call(n+"_mul",a,p,u)]))}(),function(){const i=t.addFunction(e+"_inCurveAffine");i.addParam("pIn","i32"),i.setReturnType("i32");const s=i.getCodeBuilder(),a=s.getLocal("pIn"),c=s.i32_add(s.getLocal("pIn"),s.i32_const(o)),l=s.i32_const(t.alloc(o)),u=s.i32_const(t.alloc(o));i.addCode(s.call(n+"_square",c,l),s.call(n+"_square",a,u),s.call(n+"_mul",a,u,u),s.call(n+"_add",u,s.i32_const(r),u),s.ret(s.call(n+"_eq",l,u)))}(),function(){const n=t.addFunction(e+"_inCurve");n.addParam("pIn","i32"),n.setReturnType("i32");const r=n.getCodeBuilder(),i=r.i32_const(t.alloc(2*o));n.addCode(r.call(e+"_toAffine",r.getLocal("pIn"),i),r.ret(r.call(e+"_inCurveAffine",i)))}(),function(){const r=t.addFunction(e+"_batchToAffine");r.addParam("pIn","i32"),r.addParam("n","i32"),r.addParam("pOut","i32"),r.addLocal("pAux","i32"),r.addLocal("itIn","i32"),r.addLocal("itAux","i32"),r.addLocal("itOut","i32"),r.addLocal("i","i32");const i=r.getCodeBuilder(),s=i.i32_const(t.alloc(o));r.addCode(i.setLocal("pAux",i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal("pAux"),i.i32_mul(i.getLocal("n"),i.i32_const(o)))),i.call(n+"_batchInverse",i.i32_add(i.getLocal("pIn"),i.i32_const(2*o)),i.i32_const(3*o),i.getLocal("n"),i.getLocal("pAux"),i.i32_const(o)),i.setLocal("itIn",i.getLocal("pIn")),i.setLocal("itAux",i.getLocal("pAux")),i.setLocal("itOut",i.getLocal("pOut")),i.setLocal("i",i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal("i"),i.getLocal("n"))),i.if(i.call(n+"_isZero",i.getLocal("itAux")),[...i.call(n+"_zero",i.getLocal("itOut")),...i.call(n+"_zero",i.i32_add(i.getLocal("itOut"),i.i32_const(o)))],[...i.call(n+"_mul",i.getLocal("itAux"),i.i32_add(i.getLocal("itIn"),i.i32_const(o)),s),...i.call(n+"_square",i.getLocal("itAux"),i.getLocal("itAux")),...i.call(n+"_mul",i.getLocal("itAux"),i.getLocal("itIn"),i.getLocal("itOut")),...i.call(n+"_mul",i.getLocal("itAux"),s,i.i32_add(i.getLocal("itOut"),i.i32_const(o)))]),i.setLocal("itIn",i.i32_add(i.getLocal("itIn"),i.i32_const(3*o))),i.setLocal("itOut",i.i32_add(i.getLocal("itOut"),i.i32_const(2*o))),i.setLocal("itAux",i.i32_add(i.getLocal("itAux"),i.i32_const(o))),i.setLocal("i",i.i32_add(i.getLocal("i"),i.i32_const(1))),i.br(0))),i.i32_store(i.i32_const(0),i.getLocal("pAux")))}(),function(){const r=t.addFunction(e+"_normalize");r.addParam("p1","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),s=i.getLocal("p1"),a=i.i32_add(i.getLocal("p1"),i.i32_const(o)),c=i.i32_add(i.getLocal("p1"),i.i32_const(2*o)),l=i.getLocal("pr"),u=i.i32_add(i.getLocal("pr"),i.i32_const(o)),h=i.i32_add(i.getLocal("pr"),i.i32_const(2*o)),d=i.i32_const(t.alloc(o)),p=i.i32_const(t.alloc(o)),f=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZero",i.getLocal("p1")),i.call(e+"_zero",i.getLocal("pr")),[...i.call(n+"_inverse",c,d),...i.call(n+"_square",d,p),...i.call(n+"_mul",d,p,f),...i.call(n+"_mul",s,p,l),...i.call(n+"_mul",a,f,u),...i.call(n+"_one",h)]))}(),function(){const n=t.addFunction(e+"__reverseBytes");n.addParam("pIn","i32"),n.addParam("n","i32"),n.addParam("pOut","i32"),n.addLocal("itOut","i32"),n.addLocal("itIn","i32");const r=n.getCodeBuilder();n.addCode(r.setLocal("itOut",r.i32_sub(r.i32_add(r.getLocal("pOut"),r.getLocal("n")),r.i32_const(1))),r.setLocal("itIn",r.getLocal("pIn")),r.block(r.loop(r.br_if(1,r.i32_lt_s(r.getLocal("itOut"),r.getLocal("pOut"))),r.i32_store8(r.getLocal("itOut"),r.i32_load8_u(r.getLocal("itIn"))),r.setLocal("itOut",r.i32_sub(r.getLocal("itOut"),r.i32_const(1))),r.setLocal("itIn",r.i32_add(r.getLocal("itIn"),r.i32_const(1))),r.br(0))))}(),function(){const n=t.addFunction(e+"_LEMtoU");n.addParam("pIn","i32"),n.addParam("pOut","i32");const r=n.getCodeBuilder(),i=t.alloc(2*o),s=r.i32_const(i),a=r.i32_const(i),c=r.i32_const(i+o);n.addCode(r.if(r.call(e+"_isZeroAffine",r.getLocal("pIn")),[...r.call(e+"_zeroAffine",r.getLocal("pOut")),...r.ret([])]),r.call(e+"_fromMontgomeryAffine",r.getLocal("pIn"),s),r.call(e+"__reverseBytes",a,r.i32_const(o),r.getLocal("pOut")),r.call(e+"__reverseBytes",c,r.i32_const(o),r.i32_add(r.getLocal("pOut"),r.i32_const(o))))}(),function(){const r=t.addFunction(e+"_LEMtoC");r.addParam("pIn","i32"),r.addParam("pOut","i32");const i=r.getCodeBuilder(),s=i.i32_const(t.alloc(o));r.addCode(i.if(i.call(e+"_isZeroAffine",i.getLocal("pIn")),[...i.call(n+"_zero",i.getLocal("pOut")),...i.i32_store8(i.getLocal("pOut"),i.i32_const(64)),...i.ret([])]),i.call(n+"_fromMontgomery",i.getLocal("pIn"),s),i.call(e+"__reverseBytes",s,i.i32_const(o),i.getLocal("pOut")),i.if(i.i32_eq(i.call(n+"_sign",i.i32_add(i.getLocal("pIn"),i.i32_const(o))),i.i32_const(-1)),i.i32_store8(i.getLocal("pOut"),i.i32_or(i.i32_load8_u(i.getLocal("pOut")),i.i32_const(128)))))}(),function(){const n=t.addFunction(e+"_UtoLEM");n.addParam("pIn","i32"),n.addParam("pOut","i32");const r=n.getCodeBuilder(),i=t.alloc(2*o),s=r.i32_const(i),a=r.i32_const(i),c=r.i32_const(i+o);n.addCode(r.if(r.i32_and(r.i32_load8_u(r.getLocal("pIn")),r.i32_const(64)),[...r.call(e+"_zeroAffine",r.getLocal("pOut")),...r.ret([])]),r.call(e+"__reverseBytes",r.getLocal("pIn"),r.i32_const(o),a),r.call(e+"__reverseBytes",r.i32_add(r.getLocal("pIn"),r.i32_const(o)),r.i32_const(o),c),r.call(e+"_toMontgomeryAffine",s,r.getLocal("pOut")))}(),function(){const i=t.addFunction(e+"_CtoLEM");i.addParam("pIn","i32"),i.addParam("pOut","i32"),i.addLocal("firstByte","i32"),i.addLocal("greatest","i32");const s=i.getCodeBuilder(),a=t.alloc(2*o),c=s.i32_const(a),l=s.i32_const(a+o);i.addCode(s.setLocal("firstByte",s.i32_load8_u(s.getLocal("pIn"))),s.if(s.i32_and(s.getLocal("firstByte"),s.i32_const(64)),[...s.call(e+"_zeroAffine",s.getLocal("pOut")),...s.ret([])]),s.setLocal("greatest",s.i32_and(s.getLocal("firstByte"),s.i32_const(128))),s.call(n+"_copy",s.getLocal("pIn"),l),s.i32_store8(l,s.i32_and(s.getLocal("firstByte"),s.i32_const(63))),s.call(e+"__reverseBytes",l,s.i32_const(o),c),s.call(n+"_toMontgomery",c,s.getLocal("pOut")),s.call(n+"_square",s.getLocal("pOut"),l),s.call(n+"_mul",s.getLocal("pOut"),l,l),s.call(n+"_add",l,s.i32_const(r),l),s.call(n+"_sqrt",l,l),s.call(n+"_neg",l,c),s.if(s.i32_eq(s.call(n+"_sign",l),s.i32_const(-1)),s.if(s.getLocal("greatest"),s.call(n+"_copy",l,s.i32_add(s.getLocal("pOut"),s.i32_const(o))),s.call(n+"_neg",l,s.i32_add(s.getLocal("pOut"),s.i32_const(o)))),s.if(s.getLocal("greatest"),s.call(n+"_neg",l,s.i32_add(s.getLocal("pOut"),s.i32_const(o))),s.call(n+"_copy",l,s.i32_add(s.getLocal("pOut"),s.i32_const(o))))))}(),JC(t,e+"_batchLEMtoU",e+"_LEMtoU",2*o,2*o),JC(t,e+"_batchLEMtoC",e+"_LEMtoC",2*o,o),JC(t,e+"_batchUtoLEM",e+"_UtoLEM",2*o,2*o),JC(t,e+"_batchCtoLEM",e+"_CtoLEM",o,2*o,!0),JC(t,e+"_batchToJacobian",e+"_toJacobian",2*o,3*o,!0),WC(t,e,e+"_multiexp",e+"_add",3*o),WC(t,e,e+"_multiexpAffine",e+"_addMixed",2*o),zC(t,e+"_timesScalar",3*o,e+"_add",e+"_double",e+"_sub",e+"_copy",e+"_zero"),zC(t,e+"_timesScalarAffine",2*o,e+"_addMixed",e+"_double",e+"_subMixed",e+"_copyAffine",e+"_zero"),t.exportFunction(e+"_isZero"),t.exportFunction(e+"_isZeroAffine"),t.exportFunction(e+"_eq"),t.exportFunction(e+"_eqMixed"),t.exportFunction(e+"_eqAffine"),t.exportFunction(e+"_copy"),t.exportFunction(e+"_copyAffine"),t.exportFunction(e+"_zero"),t.exportFunction(e+"_zeroAffine"),t.exportFunction(e+"_double"),t.exportFunction(e+"_doubleAffine"),t.exportFunction(e+"_add"),t.exportFunction(e+"_addMixed"),t.exportFunction(e+"_addAffine"),t.exportFunction(e+"_neg"),t.exportFunction(e+"_negAffine"),t.exportFunction(e+"_sub"),t.exportFunction(e+"_subMixed"),t.exportFunction(e+"_subAffine"),t.exportFunction(e+"_fromMontgomery"),t.exportFunction(e+"_fromMontgomeryAffine"),t.exportFunction(e+"_toMontgomery"),t.exportFunction(e+"_toMontgomeryAffine"),t.exportFunction(e+"_timesScalar"),t.exportFunction(e+"_timesScalarAffine"),t.exportFunction(e+"_normalize"),t.exportFunction(e+"_LEMtoU"),t.exportFunction(e+"_LEMtoC"),t.exportFunction(e+"_UtoLEM"),t.exportFunction(e+"_CtoLEM"),t.exportFunction(e+"_batchLEMtoU"),t.exportFunction(e+"_batchLEMtoC"),t.exportFunction(e+"_batchUtoLEM"),t.exportFunction(e+"_batchCtoLEM"),t.exportFunction(e+"_toAffine"),t.exportFunction(e+"_toJacobian"),t.exportFunction(e+"_batchToAffine"),t.exportFunction(e+"_batchToJacobian"),t.exportFunction(e+"_inCurve"),t.exportFunction(e+"_inCurveAffine"),e};const{isOdd:KC,modInv:XC,modPow:ZC}=lC,$C=iC;var tB=function(t,e,n,r,i){const o=8*t.modules[r].n64,s=8*t.modules[n].n64,a=t.modules[r].q;let c=a-1n,l=0;for(;!KC(c);)l++,c>>=1n;let u=2n;for(;1n===ZC(u,a>>1n,a);)u+=1n;const h=new Array(l+1);h[l]=ZC(u,c,a);let d=l-1;for(;d>=0;)h[d]=ZC(h[d+1],2n,a),d--;const p=[],f=(1n<<BigInt(8*o))%a;for(let t=0;t<h.length;t++){const e=h[t]*f%a;p.push(...$C.bigInt2BytesLE(e,o))}const A=t.alloc(p),g=new Array(l+1);g[0]=1n;for(let t=1;t<=l;t++)g[t]=2n*g[t-1];const E=[];for(let t=0;t<=l;t++){const e=XC(g[t],a)*f%a;E.push(...$C.bigInt2BytesLE(e,o))}const m=t.alloc(E),y=ZC(u,2n,a),w=[],I=[];for(let t=0;t<=l;t++){const e=ZC(y,2n**BigInt(t),a),n=XC(a+1n-e,a);w.push(...$C.bigInt2BytesLE(e*f%a,o)),I.push(...$C.bigInt2BytesLE(n*f%a,o))}const C=t.alloc(w),B=t.alloc(I);function T(t){let e=0;for(let n=0;n<8;n++)t&1<<n&&(e|=128>>n);return e}const b=Array(256);for(let t=0;t<256;t++)b[t]=T(t);const D=t.alloc(b);function M(){const n=t.addFunction(e+"_fft");n.addParam("px","i32"),n.addParam("n","i32"),n.addLocal("bits","i32");const i=n.getCodeBuilder(),s=i.i32_const(t.alloc(o));n.addCode(i.setLocal("bits",i.call(e+"__log2",i.getLocal("n"))),i.call(r+"_one",s),i.call(e+"_rawfft",i.getLocal("px"),i.getLocal("bits"),i.i32_const(0),s))}!function(){const n=t.addFunction(e+"__rev");n.addParam("x","i32"),n.addParam("bits","i32"),n.setReturnType("i32");const r=n.getCodeBuilder();n.addCode(r.i32_rotl(r.i32_add(r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.getLocal("x"),r.i32_const(255)),D,0),r.i32_const(24)),r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal("x"),r.i32_const(8)),r.i32_const(255)),D,0),r.i32_const(16))),r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal("x"),r.i32_const(16)),r.i32_const(255)),D,0),r.i32_const(8)),r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal("x"),r.i32_const(24)),r.i32_const(255)),D,0))),r.getLocal("bits")))}(),function(){const r=t.addFunction(e+"__reversePermutation");r.addParam("px","i32"),r.addParam("bits","i32"),r.addLocal("n","i32"),r.addLocal("i","i32"),r.addLocal("ri","i32"),r.addLocal("idx1","i32"),r.addLocal("idx2","i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(s));r.addCode(i.setLocal("n",i.i32_shl(i.i32_const(1),i.getLocal("bits"))),i.setLocal("i",i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal("i"),i.getLocal("n"))),i.setLocal("idx1",i.i32_add(i.getLocal("px"),i.i32_mul(i.getLocal("i"),i.i32_const(s)))),i.setLocal("ri",i.call(e+"__rev",i.getLocal("i"),i.getLocal("bits"))),i.setLocal("idx2",i.i32_add(i.getLocal("px"),i.i32_mul(i.getLocal("ri"),i.i32_const(s)))),i.if(i.i32_lt_u(i.getLocal("i"),i.getLocal("ri")),[...i.call(n+"_copy",i.getLocal("idx1"),o),...i.call(n+"_copy",i.getLocal("idx2"),i.getLocal("idx1")),...i.call(n+"_copy",o,i.getLocal("idx2"))]),i.setLocal("i",i.i32_add(i.getLocal("i"),i.i32_const(1))),i.br(0))))}(),function(){const o=t.addFunction(e+"__fftFinal");o.addParam("px","i32"),o.addParam("bits","i32"),o.addParam("reverse","i32"),o.addParam("mulFactor","i32"),o.addLocal("n","i32"),o.addLocal("ndiv2","i32"),o.addLocal("pInv2","i32"),o.addLocal("i","i32"),o.addLocal("mask","i32"),o.addLocal("idx1","i32"),o.addLocal("idx2","i32");const a=o.getCodeBuilder(),c=a.i32_const(t.alloc(s));o.addCode(a.if(a.i32_and(a.i32_eqz(a.getLocal("reverse")),a.call(r+"_isOne",a.getLocal("mulFactor"))),a.ret([])),a.setLocal("n",a.i32_shl(a.i32_const(1),a.getLocal("bits"))),a.setLocal("mask",a.i32_sub(a.getLocal("n"),a.i32_const(1))),a.setLocal("i",a.i32_const(1)),a.setLocal("ndiv2",a.i32_shr_u(a.getLocal("n"),a.i32_const(1))),a.block(a.loop(a.br_if(1,a.i32_ge_u(a.getLocal("i"),a.getLocal("ndiv2"))),a.setLocal("idx1",a.i32_add(a.getLocal("px"),a.i32_mul(a.getLocal("i"),a.i32_const(s)))),a.setLocal("idx2",a.i32_add(a.getLocal("px"),a.i32_mul(a.i32_sub(a.getLocal("n"),a.getLocal("i")),a.i32_const(s)))),a.if(a.getLocal("reverse"),a.if(a.call(r+"_isOne",a.getLocal("mulFactor")),[...a.call(n+"_copy",a.getLocal("idx1"),c),...a.call(n+"_copy",a.getLocal("idx2"),a.getLocal("idx1")),...a.call(n+"_copy",c,a.getLocal("idx2"))],[...a.call(n+"_copy",a.getLocal("idx1"),c),...a.call(i,a.getLocal("idx2"),a.getLocal("mulFactor"),a.getLocal("idx1")),...a.call(i,c,a.getLocal("mulFactor"),a.getLocal("idx2"))]),a.if(a.call(r+"_isOne",a.getLocal("mulFactor")),[],[...a.call(i,a.getLocal("idx1"),a.getLocal("mulFactor"),a.getLocal("idx1")),...a.call(i,a.getLocal("idx2"),a.getLocal("mulFactor"),a.getLocal("idx2"))])),a.setLocal("i",a.i32_add(a.getLocal("i"),a.i32_const(1))),a.br(0))),a.if(a.call(r+"_isOne",a.getLocal("mulFactor")),[],[...a.call(i,a.getLocal("px"),a.getLocal("mulFactor"),a.getLocal("px")),...a.setLocal("idx2",a.i32_add(a.getLocal("px"),a.i32_mul(a.getLocal("ndiv2"),a.i32_const(s)))),...a.call(i,a.getLocal("idx2"),a.getLocal("mulFactor"),a.getLocal("idx2"))]))}(),function(){const a=t.addFunction(e+"_rawfft");a.addParam("px","i32"),a.addParam("bits","i32"),a.addParam("reverse","i32"),a.addParam("mulFactor","i32"),a.addLocal("s","i32"),a.addLocal("k","i32"),a.addLocal("j","i32"),a.addLocal("m","i32"),a.addLocal("mdiv2","i32"),a.addLocal("n","i32"),a.addLocal("pwm","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s)),h=c.i32_const(t.alloc(s));a.addCode(c.call(e+"__reversePermutation",c.getLocal("px"),c.getLocal("bits")),c.setLocal("n",c.i32_shl(c.i32_const(1),c.getLocal("bits"))),c.setLocal("s",c.i32_const(1)),c.block(c.loop(c.br_if(1,c.i32_gt_u(c.getLocal("s"),c.getLocal("bits"))),c.setLocal("m",c.i32_shl(c.i32_const(1),c.getLocal("s"))),c.setLocal("pwm",c.i32_add(c.i32_const(A),c.i32_mul(c.getLocal("s"),c.i32_const(o)))),c.setLocal("k",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal("k"),c.getLocal("n"))),c.call(r+"_one",l),c.setLocal("mdiv2",c.i32_shr_u(c.getLocal("m"),c.i32_const(1))),c.setLocal("j",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal("j"),c.getLocal("mdiv2"))),c.setLocal("idx1",c.i32_add(c.getLocal("px"),c.i32_mul(c.i32_add(c.getLocal("k"),c.getLocal("j")),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("idx1"),c.i32_mul(c.getLocal("mdiv2"),c.i32_const(s)))),c.call(i,c.getLocal("idx2"),l,u),c.call(n+"_copy",c.getLocal("idx1"),h),c.call(n+"_add",h,u,c.getLocal("idx1")),c.call(n+"_sub",h,u,c.getLocal("idx2")),c.call(r+"_mul",l,c.getLocal("pwm"),l),c.setLocal("j",c.i32_add(c.getLocal("j"),c.i32_const(1))),c.br(0))),c.setLocal("k",c.i32_add(c.getLocal("k"),c.getLocal("m"))),c.br(0))),c.setLocal("s",c.i32_add(c.getLocal("s"),c.i32_const(1))),c.br(0))),c.call(e+"__fftFinal",c.getLocal("px"),c.getLocal("bits"),c.getLocal("reverse"),c.getLocal("mulFactor")))}(),function(){const n=t.addFunction(e+"__log2");n.addParam("n","i32"),n.setReturnType("i32"),n.addLocal("bits","i32"),n.addLocal("aux","i32");const r=n.getCodeBuilder();n.addCode(r.setLocal("aux",r.i32_shr_u(r.getLocal("n"),r.i32_const(1)))),n.addCode(r.setLocal("bits",r.i32_const(0))),n.addCode(r.block(r.loop(r.br_if(1,r.i32_eqz(r.getLocal("aux"))),r.setLocal("aux",r.i32_shr_u(r.getLocal("aux"),r.i32_const(1))),r.setLocal("bits",r.i32_add(r.getLocal("bits"),r.i32_const(1))),r.br(0)))),n.addCode(r.if(r.i32_ne(r.getLocal("n"),r.i32_shl(r.i32_const(1),r.getLocal("bits"))),r.unreachable())),n.addCode(r.if(r.i32_gt_u(r.getLocal("bits"),r.i32_const(l)),r.unreachable())),n.addCode(r.getLocal("bits"))}(),M(),function(){const n=t.addFunction(e+"_ifft");n.addParam("px","i32"),n.addParam("n","i32"),n.addLocal("bits","i32"),n.addLocal("pInv2","i32");const r=n.getCodeBuilder();n.addCode(r.setLocal("bits",r.call(e+"__log2",r.getLocal("n"))),r.setLocal("pInv2",r.i32_add(r.i32_const(m),r.i32_mul(r.getLocal("bits"),r.i32_const(o)))),r.call(e+"_rawfft",r.getLocal("px"),r.getLocal("bits"),r.i32_const(1),r.getLocal("pInv2")))}(),function(){const a=t.addFunction(e+"_fftJoin");a.addParam("pBuff1","i32"),a.addParam("pBuff2","i32"),a.addParam("n","i32"),a.addParam("first","i32"),a.addParam("inc","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32"),a.addLocal("i","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s)),h=c.i32_const(t.alloc(s));a.addCode(c.call(r+"_copy",c.getLocal("first"),l),c.setLocal("i",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("i"),c.getLocal("n"))),c.setLocal("idx1",c.i32_add(c.getLocal("pBuff1"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("pBuff2"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.call(i,c.getLocal("idx2"),l,u),c.call(n+"_copy",c.getLocal("idx1"),h),c.call(n+"_add",h,u,c.getLocal("idx1")),c.call(n+"_sub",h,u,c.getLocal("idx2")),c.call(r+"_mul",l,c.getLocal("inc"),l),c.setLocal("i",c.i32_add(c.getLocal("i"),c.i32_const(1))),c.br(0))))}(),function(){const a=t.addFunction(e+"_fftJoinExt");a.addParam("pBuff1","i32"),a.addParam("pBuff2","i32"),a.addParam("n","i32"),a.addParam("first","i32"),a.addParam("inc","i32"),a.addParam("totalBits","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32"),a.addLocal("i","i32"),a.addLocal("pShiftToM","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s));a.addCode(c.setLocal("pShiftToM",c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal("totalBits"),c.i32_const(o)))),c.call(r+"_copy",c.getLocal("first"),l),c.setLocal("i",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("i"),c.getLocal("n"))),c.setLocal("idx1",c.i32_add(c.getLocal("pBuff1"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("pBuff2"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.call(n+"_add",c.getLocal("idx1"),c.getLocal("idx2"),u),c.call(i,c.getLocal("idx2"),c.getLocal("pShiftToM"),c.getLocal("idx2")),c.call(n+"_add",c.getLocal("idx1"),c.getLocal("idx2"),c.getLocal("idx2")),c.call(i,c.getLocal("idx2"),l,c.getLocal("idx2")),c.call(n+"_copy",u,c.getLocal("idx1")),c.call(r+"_mul",l,c.getLocal("inc"),l),c.setLocal("i",c.i32_add(c.getLocal("i"),c.i32_const(1))),c.br(0))))}(),function(){const a=t.addFunction(e+"_fftJoinExtInv");a.addParam("pBuff1","i32"),a.addParam("pBuff2","i32"),a.addParam("n","i32"),a.addParam("first","i32"),a.addParam("inc","i32"),a.addParam("totalBits","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32"),a.addLocal("i","i32"),a.addLocal("pShiftToM","i32"),a.addLocal("pSConst","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s));a.addCode(c.setLocal("pShiftToM",c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal("totalBits"),c.i32_const(o)))),c.setLocal("pSConst",c.i32_add(c.i32_const(B),c.i32_mul(c.getLocal("totalBits"),c.i32_const(o)))),c.call(r+"_copy",c.getLocal("first"),l),c.setLocal("i",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("i"),c.getLocal("n"))),c.setLocal("idx1",c.i32_add(c.getLocal("pBuff1"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("pBuff2"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.call(i,c.getLocal("idx2"),l,u),c.call(n+"_sub",c.getLocal("idx1"),u,c.getLocal("idx2")),c.call(i,c.getLocal("idx2"),c.getLocal("pSConst"),c.getLocal("idx2")),c.call(i,c.getLocal("idx1"),c.getLocal("pShiftToM"),c.getLocal("idx1")),c.call(n+"_sub",u,c.getLocal("idx1"),c.getLocal("idx1")),c.call(i,c.getLocal("idx1"),c.getLocal("pSConst"),c.getLocal("idx1")),c.call(r+"_mul",l,c.getLocal("inc"),l),c.setLocal("i",c.i32_add(c.getLocal("i"),c.i32_const(1))),c.br(0))))}(),function(){const a=t.addFunction(e+"_fftMix");a.addParam("pBuff","i32"),a.addParam("n","i32"),a.addParam("exp","i32"),a.addLocal("nGroups","i32"),a.addLocal("nPerGroup","i32"),a.addLocal("nPerGroupDiv2","i32"),a.addLocal("pairOffset","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32"),a.addLocal("i","i32"),a.addLocal("j","i32"),a.addLocal("pwm","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s)),h=c.i32_const(t.alloc(s));a.addCode(c.setLocal("nPerGroup",c.i32_shl(c.i32_const(1),c.getLocal("exp"))),c.setLocal("nPerGroupDiv2",c.i32_shr_u(c.getLocal("nPerGroup"),c.i32_const(1))),c.setLocal("nGroups",c.i32_shr_u(c.getLocal("n"),c.getLocal("exp"))),c.setLocal("pairOffset",c.i32_mul(c.getLocal("nPerGroupDiv2"),c.i32_const(s))),c.setLocal("pwm",c.i32_add(c.i32_const(A),c.i32_mul(c.getLocal("exp"),c.i32_const(o)))),c.setLocal("i",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("i"),c.getLocal("nGroups"))),c.call(r+"_one",l),c.setLocal("j",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("j"),c.getLocal("nPerGroupDiv2"))),c.setLocal("idx1",c.i32_add(c.getLocal("pBuff"),c.i32_mul(c.i32_add(c.i32_mul(c.getLocal("i"),c.getLocal("nPerGroup")),c.getLocal("j")),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("idx1"),c.getLocal("pairOffset"))),c.call(i,c.getLocal("idx2"),l,u),c.call(n+"_copy",c.getLocal("idx1"),h),c.call(n+"_add",h,u,c.getLocal("idx1")),c.call(n+"_sub",h,u,c.getLocal("idx2")),c.call(r+"_mul",l,c.getLocal("pwm"),l),c.setLocal("j",c.i32_add(c.getLocal("j"),c.i32_const(1))),c.br(0))),c.setLocal("i",c.i32_add(c.getLocal("i"),c.i32_const(1))),c.br(0))))}(),function(){const r=t.addFunction(e+"_fftFinal");r.addParam("pBuff","i32"),r.addParam("n","i32"),r.addParam("factor","i32"),r.addLocal("idx1","i32"),r.addLocal("idx2","i32"),r.addLocal("i","i32"),r.addLocal("ndiv2","i32");const o=r.getCodeBuilder(),a=o.i32_const(t.alloc(s));r.addCode(o.setLocal("ndiv2",o.i32_shr_u(o.getLocal("n"),o.i32_const(1))),o.if(o.i32_and(o.getLocal("n"),o.i32_const(1)),o.call(i,o.i32_add(o.getLocal("pBuff"),o.i32_mul(o.getLocal("ndiv2"),o.i32_const(s))),o.getLocal("factor"),o.i32_add(o.getLocal("pBuff"),o.i32_mul(o.getLocal("ndiv2"),o.i32_const(s))))),o.setLocal("i",o.i32_const(0)),o.block(o.loop(o.br_if(1,o.i32_ge_u(o.getLocal("i"),o.getLocal("ndiv2"))),o.setLocal("idx1",o.i32_add(o.getLocal("pBuff"),o.i32_mul(o.getLocal("i"),o.i32_const(s)))),o.setLocal("idx2",o.i32_add(o.getLocal("pBuff"),o.i32_mul(o.i32_sub(o.i32_sub(o.getLocal("n"),o.i32_const(1)),o.getLocal("i")),o.i32_const(s)))),o.call(i,o.getLocal("idx2"),o.getLocal("factor"),a),o.call(i,o.getLocal("idx1"),o.getLocal("factor"),o.getLocal("idx2")),o.call(n+"_copy",a,o.getLocal("idx1")),o.setLocal("i",o.i32_add(o.getLocal("i"),o.i32_const(1))),o.br(0))))}(),function(){const a=t.addFunction(e+"_prepareLagrangeEvaluation");a.addParam("pBuff1","i32"),a.addParam("pBuff2","i32"),a.addParam("n","i32"),a.addParam("first","i32"),a.addParam("inc","i32"),a.addParam("totalBits","i32"),a.addLocal("idx1","i32"),a.addLocal("idx2","i32"),a.addLocal("i","i32"),a.addLocal("pShiftToM","i32"),a.addLocal("pSConst","i32");const c=a.getCodeBuilder(),l=c.i32_const(t.alloc(o)),u=c.i32_const(t.alloc(s));a.addCode(c.setLocal("pShiftToM",c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal("totalBits"),c.i32_const(o)))),c.setLocal("pSConst",c.i32_add(c.i32_const(B),c.i32_mul(c.getLocal("totalBits"),c.i32_const(o)))),c.call(r+"_copy",c.getLocal("first"),l),c.setLocal("i",c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal("i"),c.getLocal("n"))),c.setLocal("idx1",c.i32_add(c.getLocal("pBuff1"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.setLocal("idx2",c.i32_add(c.getLocal("pBuff2"),c.i32_mul(c.getLocal("i"),c.i32_const(s)))),c.call(i,c.getLocal("idx1"),c.getLocal("pShiftToM"),u),c.call(n+"_sub",c.getLocal("idx2"),u,u),c.call(n+"_sub",c.getLocal("idx1"),c.getLocal("idx2"),c.getLocal("idx2")),c.call(i,u,c.getLocal("pSConst"),c.getLocal("idx1")),c.call(i,c.getLocal("idx2"),l,c.getLocal("idx2")),c.call(r+"_mul",l,c.getLocal("inc"),l),c.setLocal("i",c.i32_add(c.getLocal("i"),c.i32_const(1))),c.br(0))))}(),t.exportFunction(e+"_fft"),t.exportFunction(e+"_ifft"),t.exportFunction(e+"_rawfft"),t.exportFunction(e+"_fftJoin"),t.exportFunction(e+"_fftJoinExt"),t.exportFunction(e+"_fftJoinExtInv"),t.exportFunction(e+"_fftMix"),t.exportFunction(e+"_fftFinal"),t.exportFunction(e+"_prepareLagrangeEvaluation")},eB=function(t,e,n){const r=8*t.modules[n].n64;return function(){const i=t.addFunction(e+"_zero");i.addParam("px","i32"),i.addParam("n","i32"),i.addLocal("lastp","i32"),i.addLocal("p","i32");const o=i.getCodeBuilder();i.addCode(o.setLocal("p",o.getLocal("px")),o.setLocal("lastp",o.i32_add(o.getLocal("px"),o.i32_mul(o.getLocal("n"),o.i32_const(r)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("p"),o.getLocal("lastp"))),o.call(n+"_zero",o.getLocal("p")),o.setLocal("p",o.i32_add(o.getLocal("p"),o.i32_const(r))),o.br(0))))}(),function(){const i=t.addFunction(e+"_constructLC");i.addParam("ppolynomials","i32"),i.addParam("psignals","i32"),i.addParam("nSignals","i32"),i.addParam("pres","i32"),i.addLocal("i","i32"),i.addLocal("j","i32"),i.addLocal("pp","i32"),i.addLocal("ps","i32"),i.addLocal("pd","i32"),i.addLocal("ncoefs","i32");const o=i.getCodeBuilder(),s=o.i32_const(t.alloc(r));i.addCode(o.setLocal("i",o.i32_const(0)),o.setLocal("pp",o.getLocal("ppolynomials")),o.setLocal("ps",o.getLocal("psignals")),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("i"),o.getLocal("nSignals"))),o.setLocal("ncoefs",o.i32_load(o.getLocal("pp"))),o.setLocal("pp",o.i32_add(o.getLocal("pp"),o.i32_const(4))),o.setLocal("j",o.i32_const(0)),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("j"),o.getLocal("ncoefs"))),o.setLocal("pd",o.i32_add(o.getLocal("pres"),o.i32_mul(o.i32_load(o.getLocal("pp")),o.i32_const(r)))),o.setLocal("pp",o.i32_add(o.getLocal("pp"),o.i32_const(4))),o.call(n+"_mul",o.getLocal("ps"),o.getLocal("pp"),s),o.call(n+"_add",s,o.getLocal("pd"),o.getLocal("pd")),o.setLocal("pp",o.i32_add(o.getLocal("pp"),o.i32_const(r))),o.setLocal("j",o.i32_add(o.getLocal("j"),o.i32_const(1))),o.br(0))),o.setLocal("ps",o.i32_add(o.getLocal("ps"),o.i32_const(r))),o.setLocal("i",o.i32_add(o.getLocal("i"),o.i32_const(1))),o.br(0))))}(),t.exportFunction(e+"_zero"),t.exportFunction(e+"_constructLC"),e},nB=function(t,e,n){const r=8*t.modules[n].n64;return function(){const i=t.addFunction(e+"_buildABC");i.addParam("pCoefs","i32"),i.addParam("nCoefs","i32"),i.addParam("pWitness","i32"),i.addParam("pA","i32"),i.addParam("pB","i32"),i.addParam("pC","i32"),i.addParam("offsetOut","i32"),i.addParam("nOut","i32"),i.addParam("offsetWitness","i32"),i.addParam("nWitness","i32"),i.addLocal("it","i32"),i.addLocal("ita","i32"),i.addLocal("itb","i32"),i.addLocal("last","i32"),i.addLocal("m","i32"),i.addLocal("c","i32"),i.addLocal("s","i32"),i.addLocal("pOut","i32");const o=i.getCodeBuilder(),s=o.i32_const(t.alloc(r));i.addCode(o.setLocal("ita",o.getLocal("pA")),o.setLocal("itb",o.getLocal("pB")),o.setLocal("last",o.i32_add(o.getLocal("pA"),o.i32_mul(o.getLocal("nOut"),o.i32_const(r)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("ita"),o.getLocal("last"))),o.call(n+"_zero",o.getLocal("ita")),o.call(n+"_zero",o.getLocal("itb")),o.setLocal("ita",o.i32_add(o.getLocal("ita"),o.i32_const(r))),o.setLocal("itb",o.i32_add(o.getLocal("itb"),o.i32_const(r))),o.br(0))),o.setLocal("it",o.getLocal("pCoefs")),o.setLocal("last",o.i32_add(o.getLocal("pCoefs"),o.i32_mul(o.getLocal("nCoefs"),o.i32_const(r+12)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("it"),o.getLocal("last"))),o.setLocal("s",o.i32_load(o.getLocal("it"),8)),o.if(o.i32_or(o.i32_lt_u(o.getLocal("s"),o.getLocal("offsetWitness")),o.i32_ge_u(o.getLocal("s"),o.i32_add(o.getLocal("offsetWitness"),o.getLocal("nWitness")))),[...o.setLocal("it",o.i32_add(o.getLocal("it"),o.i32_const(r+12))),...o.br(1)]),o.setLocal("m",o.i32_load(o.getLocal("it"))),o.if(o.i32_eq(o.getLocal("m"),o.i32_const(0)),o.setLocal("pOut",o.getLocal("pA")),o.if(o.i32_eq(o.getLocal("m"),o.i32_const(1)),o.setLocal("pOut",o.getLocal("pB")),[...o.setLocal("it",o.i32_add(o.getLocal("it"),o.i32_const(r+12))),...o.br(1)])),o.setLocal("c",o.i32_load(o.getLocal("it"),4)),o.if(o.i32_or(o.i32_lt_u(o.getLocal("c"),o.getLocal("offsetOut")),o.i32_ge_u(o.getLocal("c"),o.i32_add(o.getLocal("offsetOut"),o.getLocal("nOut")))),[...o.setLocal("it",o.i32_add(o.getLocal("it"),o.i32_const(r+12))),...o.br(1)]),o.setLocal("pOut",o.i32_add(o.getLocal("pOut"),o.i32_mul(o.i32_sub(o.getLocal("c"),o.getLocal("offsetOut")),o.i32_const(r)))),o.call(n+"_mul",o.i32_add(o.getLocal("pWitness"),o.i32_mul(o.i32_sub(o.getLocal("s"),o.getLocal("offsetWitness")),o.i32_const(r))),o.i32_add(o.getLocal("it"),o.i32_const(12)),s),o.call(n+"_add",o.getLocal("pOut"),s,o.getLocal("pOut")),o.setLocal("it",o.i32_add(o.getLocal("it"),o.i32_const(r+12))),o.br(0))),o.setLocal("ita",o.getLocal("pA")),o.setLocal("itb",o.getLocal("pB")),o.setLocal("it",o.getLocal("pC")),o.setLocal("last",o.i32_add(o.getLocal("pA"),o.i32_mul(o.getLocal("nOut"),o.i32_const(r)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("ita"),o.getLocal("last"))),o.call(n+"_mul",o.getLocal("ita"),o.getLocal("itb"),o.getLocal("it")),o.setLocal("ita",o.i32_add(o.getLocal("ita"),o.i32_const(r))),o.setLocal("itb",o.i32_add(o.getLocal("itb"),o.i32_const(r))),o.setLocal("it",o.i32_add(o.getLocal("it"),o.i32_const(r))),o.br(0))))}(),function(){const i=t.addFunction(e+"_joinABC");i.addParam("pA","i32"),i.addParam("pB","i32"),i.addParam("pC","i32"),i.addParam("n","i32"),i.addParam("pP","i32"),i.addLocal("ita","i32"),i.addLocal("itb","i32"),i.addLocal("itc","i32"),i.addLocal("itp","i32"),i.addLocal("last","i32");const o=i.getCodeBuilder(),s=o.i32_const(t.alloc(r));i.addCode(o.setLocal("ita",o.getLocal("pA")),o.setLocal("itb",o.getLocal("pB")),o.setLocal("itc",o.getLocal("pC")),o.setLocal("itp",o.getLocal("pP")),o.setLocal("last",o.i32_add(o.getLocal("pA"),o.i32_mul(o.getLocal("n"),o.i32_const(r)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("ita"),o.getLocal("last"))),o.call(n+"_mul",o.getLocal("ita"),o.getLocal("itb"),s),o.call(n+"_sub",s,o.getLocal("itc"),o.getLocal("itp")),o.setLocal("ita",o.i32_add(o.getLocal("ita"),o.i32_const(r))),o.setLocal("itb",o.i32_add(o.getLocal("itb"),o.i32_const(r))),o.setLocal("itc",o.i32_add(o.getLocal("itc"),o.i32_const(r))),o.setLocal("itp",o.i32_add(o.getLocal("itp"),o.i32_const(r))),o.br(0))))}(),function(){const i=t.addFunction(e+"_batchAdd");i.addParam("pa","i32"),i.addParam("pb","i32"),i.addParam("n","i32"),i.addParam("pr","i32"),i.addLocal("ita","i32"),i.addLocal("itb","i32"),i.addLocal("itr","i32"),i.addLocal("last","i32");const o=i.getCodeBuilder();i.addCode(o.setLocal("ita",o.getLocal("pa")),o.setLocal("itb",o.getLocal("pb")),o.setLocal("itr",o.getLocal("pr")),o.setLocal("last",o.i32_add(o.getLocal("pa"),o.i32_mul(o.getLocal("n"),o.i32_const(r)))),o.block(o.loop(o.br_if(1,o.i32_eq(o.getLocal("ita"),o.getLocal("last"))),o.call(n+"_add",o.getLocal("ita"),o.getLocal("itb"),o.getLocal("itr")),o.setLocal("ita",o.i32_add(o.getLocal("ita"),o.i32_const(r))),o.setLocal("itb",o.i32_add(o.getLocal("itb"),o.i32_const(r))),o.setLocal("itr",o.i32_add(o.getLocal("itr"),o.i32_const(r))),o.br(0))))}(),t.exportFunction(e+"_buildABC"),t.exportFunction(e+"_joinABC"),t.exportFunction(e+"_batchAdd"),e},rB=function(t,e,n,r,i,o,s,a){const c=t.addFunction(e);c.addParam("pIn","i32"),c.addParam("n","i32"),c.addParam("pFirst","i32"),c.addParam("pInc","i32"),c.addParam("pOut","i32"),c.addLocal("pOldFree","i32"),c.addLocal("i","i32"),c.addLocal("pFrom","i32"),c.addLocal("pTo","i32");const l=c.getCodeBuilder(),u=l.i32_const(t.alloc(s));c.addCode(l.setLocal("pFrom",l.getLocal("pIn")),l.setLocal("pTo",l.getLocal("pOut"))),c.addCode(l.call(r+"_copy",l.getLocal("pFirst"),u)),c.addCode(l.setLocal("i",l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal("i"),l.getLocal("n"))),l.call(a,l.getLocal("pFrom"),u,l.getLocal("pTo")),l.setLocal("pFrom",l.i32_add(l.getLocal("pFrom"),l.i32_const(i))),l.setLocal("pTo",l.i32_add(l.getLocal("pTo"),l.i32_const(o))),l.call(r+"_mul",u,l.getLocal("pInc"),u),l.setLocal("i",l.i32_add(l.getLocal("i"),l.i32_const(1))),l.br(0)))),t.exportFunction(e)};const iB=iC,oB=FC,sB=QC,aB=VC,cB=YC,lB=qC,uB=tB,hB=eB,dB=nB,pB=rB,{bitLength:fB,modInv:AB,isOdd:gB,isNegative:EB}=lC;const mB=iC,yB=FC,wB=QC,IB=VC,CB=YC,BB=qC,TB=tB,bB=eB,DB=nB,MB=rB,{bitLength:NB,isOdd:SB,isNegative:vB}=lC;var _B=function(t,e){const n=e||"bn128";if(t.modules[n])return n;const r=21888242871839275222246405745257275088696311157297823662689037894645226208583n,i=21888242871839275222246405745257275088548364400416034343698204186575808495617n,o=Math.floor((fB(r-1n)-1)/64)+1,s=8*o,a=s,c=s,l=2*c,u=12*c,h=t.alloc(iB.bigInt2BytesLE(i,a)),d=oB(t,r,"f1m");sB(t,i,"fr","frm");const p=t.alloc(iB.bigInt2BytesLE(y(3n),c)),f=lB(t,"g1m","f1m",p);uB(t,"frm","frm","frm","frm_mul"),hB(t,"pol","frm"),dB(t,"qap","frm");const A=aB(t,"f1m_neg","f2m","f1m"),g=t.alloc([...iB.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...iB.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]),E=lB(t,"g2m","f2m",g);function m(e,n){const r=t.addFunction(e);r.addParam("pG","i32"),r.addParam("pFr","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(s));r.addCode(i.call("frm_fromMontgomery",i.getLocal("pFr"),o),i.call(n,i.getLocal("pG"),o,i.i32_const(s),i.getLocal("pr"))),t.exportFunction(e)}function y(t){return BigInt(t)*(1n<<BigInt(8*c))%r}m("g1m_timesFr","g1m_timesScalar"),uB(t,"g1m","g1m","frm","g1m_timesFr"),m("g2m_timesFr","g2m_timesScalar"),uB(t,"g2m","g2m","frm","g2m_timesFr"),m("g1m_timesFrAffine","g1m_timesScalarAffine"),m("g2m_timesFrAffine","g2m_timesScalarAffine"),pB(t,"frm_batchApplyKey","fmr","frm",s,s,s,"frm_mul"),pB(t,"g1m_batchApplyKey","g1m","frm",3*s,3*s,s,"g1m_timesFr"),pB(t,"g1m_batchApplyKeyMixed","g1m","frm",2*s,3*s,s,"g1m_timesFrAffine"),pB(t,"g2m_batchApplyKey","g2m","frm",2*s*3,3*s*2,s,"g2m_timesFr"),pB(t,"g2m_batchApplyKeyMixed","g2m","frm",2*s*2,3*s*2,s,"g2m_timesFrAffine");const w=[1n,2n,1n],I=t.alloc([...iB.bigInt2BytesLE(y(w[0]),c),...iB.bigInt2BytesLE(y(w[1]),c),...iB.bigInt2BytesLE(y(w[2]),c)]),C=[0n,1n,0n],B=t.alloc([...iB.bigInt2BytesLE(y(C[0]),c),...iB.bigInt2BytesLE(y(C[1]),c),...iB.bigInt2BytesLE(y(C[2]),c)]),T=[[10857046999023057135944570762232829481370756359578518086990519993285655852781n,11559732032986387107991004021392285783925812861821192530917403151452391805634n],[8495653923123431417604973247489272438418190587263600148770280649306958101930n,4082367875863433681332203403145435568316851327593401208105741076214120093531n],[1n,0n]],b=t.alloc([...iB.bigInt2BytesLE(y(T[0][0]),c),...iB.bigInt2BytesLE(y(T[0][1]),c),...iB.bigInt2BytesLE(y(T[1][0]),c),...iB.bigInt2BytesLE(y(T[1][1]),c),...iB.bigInt2BytesLE(y(T[2][0]),c),...iB.bigInt2BytesLE(y(T[2][1]),c)]),D=[[0n,0n],[1n,0n],[0n,0n]],M=t.alloc([...iB.bigInt2BytesLE(y(D[0][0]),c),...iB.bigInt2BytesLE(y(D[0][1]),c),...iB.bigInt2BytesLE(y(D[1][0]),c),...iB.bigInt2BytesLE(y(D[1][1]),c),...iB.bigInt2BytesLE(y(D[2][0]),c),...iB.bigInt2BytesLE(y(D[2][1]),c)]),N=t.alloc([...iB.bigInt2BytesLE(y(1),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c),...iB.bigInt2BytesLE(y(0),c)]),S=t.alloc([...iB.bigInt2BytesLE(y(9),c),...iB.bigInt2BytesLE(y(1),c)]),v=t.alloc([...iB.bigInt2BytesLE(y(AB(2n,r)),c),...iB.bigInt2BytesLE(0n,c)]),_=S,L=t.alloc([...iB.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...iB.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]);!function(){const e=t.addFunction(n+"_mulNR6");e.addParam("x","i32"),e.addParam("pr","i32");const r=e.getCodeBuilder();e.addCode(r.call(A+"_mul",r.i32_const(S),r.getLocal("x"),r.getLocal("pr")))}();const x=cB(t,n+"_mulNR6","f6m","f2m");!function(){const e=t.addFunction(n+"_mulNR12");e.addParam("x","i32"),e.addParam("pr","i32");const r=e.getCodeBuilder();e.addCode(r.call(A+"_mul",r.i32_const(S),r.i32_add(r.getLocal("x"),r.i32_const(4*s)),r.getLocal("pr")),r.call(A+"_copy",r.getLocal("x"),r.i32_add(r.getLocal("pr"),r.i32_const(2*s))),r.call(A+"_copy",r.i32_add(r.getLocal("x"),r.i32_const(2*s)),r.i32_add(r.getLocal("pr"),r.i32_const(4*s))))}();const R=aB(t,n+"_mulNR12","ftm",x),F=function(t){let e=t;const n=[];for(;e>0n;)gB(e)?n.push(1):n.push(0),e>>=1n;return n}(29793968203157093288n),O=t.alloc(F),k=3*l,Q=F.length-1,U=F.reduce((t,e)=>t+(0!=e?1:0),0),P=6*s,G=3*s*2+(U+Q+1)*k;t.modules[n]={n64:o,pG1gen:I,pG1zero:B,pG1b:p,pG2gen:b,pG2zero:M,pG2b:g,pq:t.modules.f1m.pq,pr:h,pOneT:N,prePSize:P,preQSize:G,r:i.toString(),q:r.toString()};function V(e){const i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[8376118865763821496583973867626364092589906065868298776909617916018768340080n,16469823323077808223889137241176536799009286646108169935659301613961712198316n],[21888242871839275220042445260109153167277707414472061641714758635765020556617n,0n],[11697423496358154304825782922584725312912383441159505038794027105778954184319n,303847389135065887422783454877609941456349188919719272345083954437860409601n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3321304630594332808241809054958361220322477375291206261884409189760185844239n,5722266937896532885780051958958348231143373700109372999374820235121374419868n],[21888242871839275222246405745257275088696311157297823662689037894645226208582n,0n],[13512124006075453725662431877630910996106405091429524885779419978626457868503n,5418419548761466998357268504080738289687024511189653727029736280683514010267n],[2203960485148121921418603742825762020974279258880205651966n,0n],[10190819375481120917420622822672549775783927716138318623895010788866272024264n,21584395482704209334823622290379665147239961968378104390343953940207365798982n],[2203960485148121921418603742825762020974279258880205651967n,0n],[18566938241244942414004596690298913868373833782006617400804628704885040364344n,16165975933942742336466353786298926857552937457188450663314217659523851788715n]]],o=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[21575463638280843010398324269430826099269044274347216827212613867836435027261n,10307601595873709700152284273816112264069230130616436755625194854815875713954n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3772000881919853776433695186713858239009073593817195771773381919316419345261n,2236595495967245188281701248203181795121068902605861227855261137820944008926n],[2203960485148121921418603742825762020974279258880205651966n,0n],[18429021223477853657660792034369865839114504446431234726392080002137598044644n,9344045779998320333812420223237981029506012124075525679208581902008406485703n]],[[1n,0n],[2581911344467009335267311115468803099551665605076196740867805258568234346338n,19937756971775647987995932169929341994314640652964949448313374472400716661030n],[2203960485148121921418603742825762020974279258880205651966n,0n],[5324479202449903542726783395506214481928257762400643279780343368557297135718n,16208900380737693084919495127334387981393726419856888799917914180988844123039n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[13981852324922362344252311234282257507216387789820983642040889267519694726527n,7629828391165209371577384193250820201684255241773809077146787135900891633097n]]],s=t.addFunction(n+"__frobeniusMap"+e);s.addParam("x","i32"),s.addParam("r","i32");const a=s.getCodeBuilder();for(let n=0;n<6;n++){const r=0==n?a.getLocal("x"):a.i32_add(a.getLocal("x"),a.i32_const(n*l)),h=r,p=a.i32_add(a.getLocal("x"),a.i32_const(n*l+c)),f=0==n?a.getLocal("r"):a.i32_add(a.getLocal("r"),a.i32_const(n*l)),g=f,E=a.i32_add(a.getLocal("r"),a.i32_const(n*l+c)),m=u(i[Math.floor(n/3)][e%12],o[n%3][e%6]),w=t.alloc([...iB.bigInt2BytesLE(y(m[0]),32),...iB.bigInt2BytesLE(y(m[1]),32)]);e%2==1?s.addCode(a.call(d+"_copy",h,g),a.call(d+"_neg",p,E),a.call(A+"_mul",f,a.i32_const(w),f)):s.addCode(a.call(A+"_mul",r,a.i32_const(w),f))}function u(t,e){const n=BigInt(t[0]),i=BigInt(t[1]),o=BigInt(e[0]),s=BigInt(e[1]),a=[(n*o-i*s)%r,(n*s+i*o)%r];return EB(a[0])&&(a[0]=a[0]+r),a}}function H(e,r){const i=function(t){let e=t;const n=[];for(;e>0n;){if(gB(e)){const t=2-Number(e%4n);n.push(t),e-=BigInt(t)}else n.push(0);e>>=1n}return n}(e).map(t=>-1==t?255:t),o=t.alloc(i),s=t.addFunction(n+"__cyclotomicExp_"+r);s.addParam("x","i32"),s.addParam("r","i32"),s.addLocal("bit","i32"),s.addLocal("i","i32");const a=s.getCodeBuilder(),c=a.getLocal("x"),l=a.getLocal("r"),h=a.i32_const(t.alloc(u));s.addCode(a.call(R+"_conjugate",c,h),a.call(R+"_one",l),a.if(a.teeLocal("bit",a.i32_load8_s(a.i32_const(i.length-1),o)),a.if(a.i32_eq(a.getLocal("bit"),a.i32_const(1)),a.call(R+"_mul",l,c,l),a.call(R+"_mul",l,h,l))),a.setLocal("i",a.i32_const(i.length-2)),a.block(a.loop(a.call(n+"__cyclotomicSquare",l,l),a.if(a.teeLocal("bit",a.i32_load8_s(a.getLocal("i"),o)),a.if(a.i32_eq(a.getLocal("bit"),a.i32_const(1)),a.call(R+"_mul",l,c,l),a.call(R+"_mul",l,h,l))),a.br_if(1,a.i32_eqz(a.getLocal("i"))),a.setLocal("i",a.i32_sub(a.getLocal("i"),a.i32_const(1))),a.br(0))))}function j(){!function(){const e=t.addFunction(n+"__cyclotomicSquare");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=r.i32_add(r.getLocal("x"),r.i32_const(l)),s=r.i32_add(r.getLocal("x"),r.i32_const(2*l)),a=r.i32_add(r.getLocal("x"),r.i32_const(3*l)),c=r.i32_add(r.getLocal("x"),r.i32_const(4*l)),u=r.i32_add(r.getLocal("x"),r.i32_const(5*l)),h=r.getLocal("r"),d=r.i32_add(r.getLocal("r"),r.i32_const(l)),p=r.i32_add(r.getLocal("r"),r.i32_const(2*l)),f=r.i32_add(r.getLocal("r"),r.i32_const(3*l)),g=r.i32_add(r.getLocal("r"),r.i32_const(4*l)),E=r.i32_add(r.getLocal("r"),r.i32_const(5*l)),m=r.i32_const(t.alloc(l)),y=r.i32_const(t.alloc(l)),w=r.i32_const(t.alloc(l)),I=r.i32_const(t.alloc(l)),C=r.i32_const(t.alloc(l)),B=r.i32_const(t.alloc(l)),T=r.i32_const(t.alloc(l)),b=r.i32_const(t.alloc(l));e.addCode(r.call(A+"_mul",i,c,T),r.call(A+"_mul",c,r.i32_const(S),m),r.call(A+"_add",i,m,m),r.call(A+"_add",i,c,b),r.call(A+"_mul",b,m,m),r.call(A+"_mul",r.i32_const(S),T,b),r.call(A+"_add",T,b,b),r.call(A+"_sub",m,b,m),r.call(A+"_add",T,T,y),r.call(A+"_mul",a,s,T),r.call(A+"_mul",s,r.i32_const(S),w),r.call(A+"_add",a,w,w),r.call(A+"_add",a,s,b),r.call(A+"_mul",b,w,w),r.call(A+"_mul",r.i32_const(S),T,b),r.call(A+"_add",T,b,b),r.call(A+"_sub",w,b,w),r.call(A+"_add",T,T,I),r.call(A+"_mul",o,u,T),r.call(A+"_mul",u,r.i32_const(S),C),r.call(A+"_add",o,C,C),r.call(A+"_add",o,u,b),r.call(A+"_mul",b,C,C),r.call(A+"_mul",r.i32_const(S),T,b),r.call(A+"_add",T,b,b),r.call(A+"_sub",C,b,C),r.call(A+"_add",T,T,B),r.call(A+"_sub",m,i,h),r.call(A+"_add",h,h,h),r.call(A+"_add",m,h,h),r.call(A+"_add",y,c,g),r.call(A+"_add",g,g,g),r.call(A+"_add",y,g,g),r.call(A+"_mul",B,r.i32_const(_),b),r.call(A+"_add",b,a,f),r.call(A+"_add",f,f,f),r.call(A+"_add",b,f,f),r.call(A+"_sub",C,s,p),r.call(A+"_add",p,p,p),r.call(A+"_add",C,p,p),r.call(A+"_sub",w,o,d),r.call(A+"_add",d,d,d),r.call(A+"_add",w,d,d),r.call(A+"_add",I,u,E),r.call(A+"_add",E,E,E),r.call(A+"_add",I,E,E))}(),H(4965661367192848881n,"w0");const e=t.addFunction(n+"__finalExponentiationLastChunk");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=r.getLocal("r"),s=r.i32_const(t.alloc(u)),a=r.i32_const(t.alloc(u)),c=r.i32_const(t.alloc(u)),h=r.i32_const(t.alloc(u)),d=r.i32_const(t.alloc(u)),p=r.i32_const(t.alloc(u)),f=r.i32_const(t.alloc(u)),g=r.i32_const(t.alloc(u)),E=r.i32_const(t.alloc(u)),m=r.i32_const(t.alloc(u)),y=r.i32_const(t.alloc(u)),w=r.i32_const(t.alloc(u)),I=r.i32_const(t.alloc(u)),C=r.i32_const(t.alloc(u)),B=r.i32_const(t.alloc(u)),T=r.i32_const(t.alloc(u)),b=r.i32_const(t.alloc(u)),D=r.i32_const(t.alloc(u)),M=r.i32_const(t.alloc(u)),N=r.i32_const(t.alloc(u)),v=r.i32_const(t.alloc(u));e.addCode(r.call(n+"__cyclotomicExp_w0",i,s),r.call(R+"_conjugate",s,s),r.call(n+"__cyclotomicSquare",s,a),r.call(n+"__cyclotomicSquare",a,c),r.call(R+"_mul",c,a,h),r.call(n+"__cyclotomicExp_w0",h,d),r.call(R+"_conjugate",d,d),r.call(n+"__cyclotomicSquare",d,p),r.call(n+"__cyclotomicExp_w0",p,f),r.call(R+"_conjugate",f,f),r.call(R+"_conjugate",h,g),r.call(R+"_conjugate",f,E),r.call(R+"_mul",E,d,m),r.call(R+"_mul",m,g,y),r.call(R+"_mul",y,a,w),r.call(R+"_mul",y,d,I),r.call(R+"_mul",I,i,C),r.call(n+"__frobeniusMap1",w,B),r.call(R+"_mul",B,C,T),r.call(n+"__frobeniusMap2",y,b),r.call(R+"_mul",b,T,D),r.call(R+"_conjugate",i,M),r.call(R+"_mul",M,w,N),r.call(n+"__frobeniusMap3",N,v),r.call(R+"_mul",v,D,o))}const Y=t.alloc(P),z=t.alloc(G);function J(e){const r=t.addFunction(n+"_pairingEq"+e);for(let t=0;t<e;t++)r.addParam("p_"+t,"i32"),r.addParam("q_"+t,"i32");r.addParam("c","i32"),r.setReturnType("i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(u)),s=i.i32_const(t.alloc(u));r.addCode(i.call(R+"_one",o));for(let t=0;t<e;t++)r.addCode(i.call(n+"_prepareG1",i.getLocal("p_"+t),i.i32_const(Y))),r.addCode(i.call(n+"_prepareG2",i.getLocal("q_"+t),i.i32_const(z))),r.addCode(i.call(n+"_millerLoop",i.i32_const(Y),i.i32_const(z),s)),r.addCode(i.call(R+"_mul",o,s,o));r.addCode(i.call(n+"_finalExponentiation",o,o)),r.addCode(i.call(R+"_eq",o,i.getLocal("c")))}!function(){const e=t.addFunction(n+"_prepAddStep");e.addParam("pQ","i32"),e.addParam("pR","i32"),e.addParam("pCoef","i32");const r=e.getCodeBuilder(),i=r.getLocal("pQ"),o=r.i32_add(r.getLocal("pQ"),r.i32_const(l)),s=r.getLocal("pR"),a=r.i32_add(r.getLocal("pR"),r.i32_const(l)),c=r.i32_add(r.getLocal("pR"),r.i32_const(2*l)),u=r.getLocal("pCoef"),h=r.i32_add(r.getLocal("pCoef"),r.i32_const(l)),d=r.i32_add(r.getLocal("pCoef"),r.i32_const(2*l)),p=h,f=r.i32_const(t.alloc(l)),g=r.i32_const(t.alloc(l)),E=r.i32_const(t.alloc(l)),m=r.i32_const(t.alloc(l)),y=r.i32_const(t.alloc(l)),w=r.i32_const(t.alloc(l)),I=r.i32_const(t.alloc(l));e.addCode(r.call(A+"_mul",i,c,p),r.call(A+"_sub",s,p,p),r.call(A+"_mul",o,c,f),r.call(A+"_sub",a,f,f),r.call(A+"_square",p,g),r.call(A+"_square",f,E),r.call(A+"_mul",p,g,m),r.call(A+"_mul",s,g,y),r.call(A+"_add",y,y,I),r.call(A+"_mul",c,E,w),r.call(A+"_add",m,w,w),r.call(A+"_sub",w,I,w),r.call(A+"_mul",p,w,s),r.call(A+"_mul",m,a,a),r.call(A+"_sub",y,w,I),r.call(A+"_mul",f,I,I),r.call(A+"_sub",I,a,a),r.call(A+"_mul",c,m,c),r.call(A+"_mul",p,o,I),r.call(A+"_mul",f,i,u),r.call(A+"_sub",u,I,u),r.call(A+"_mul",u,r.i32_const(_),u),r.call(A+"_neg",f,d))}(),function(){const e=t.addFunction(n+"_prepDblStep");e.addParam("pR","i32"),e.addParam("pCoef","i32");const r=e.getCodeBuilder(),i=r.getLocal("pR"),o=r.i32_add(r.getLocal("pR"),r.i32_const(l)),s=r.i32_add(r.getLocal("pR"),r.i32_const(2*l)),a=r.getLocal("pCoef"),c=r.i32_add(r.getLocal("pCoef"),r.i32_const(l)),u=r.i32_add(r.getLocal("pCoef"),r.i32_const(2*l)),h=r.i32_const(t.alloc(l)),d=r.i32_const(t.alloc(l)),p=r.i32_const(t.alloc(l)),f=r.i32_const(t.alloc(l)),g=r.i32_const(t.alloc(l)),E=r.i32_const(t.alloc(l)),m=r.i32_const(t.alloc(l)),y=r.i32_const(t.alloc(l)),w=r.i32_const(t.alloc(l)),I=r.i32_const(t.alloc(l)),C=r.i32_const(t.alloc(l)),B=r.i32_const(t.alloc(l));e.addCode(r.call(A+"_mul",o,r.i32_const(v),h),r.call(A+"_mul",i,h,h),r.call(A+"_square",o,d),r.call(A+"_square",s,p),r.call(A+"_add",p,p,f),r.call(A+"_add",f,p,f),r.call(A+"_mul",r.i32_const(L),f,g),r.call(A+"_add",g,g,E),r.call(A+"_add",g,E,E),r.call(A+"_add",d,E,m),r.call(A+"_mul",m,r.i32_const(v),m),r.call(A+"_add",d,p,B),r.call(A+"_add",o,s,y),r.call(A+"_square",y,y),r.call(A+"_sub",y,B,y),r.call(A+"_sub",g,d,w),r.call(A+"_square",i,I),r.call(A+"_square",g,C),r.call(A+"_sub",d,E,B),r.call(A+"_mul",h,B,i),r.call(A+"_add",C,C,B),r.call(A+"_add",C,B,B),r.call(A+"_square",m,o),r.call(A+"_sub",o,B,o),r.call(A+"_mul",d,y,s),r.call(A+"_mul",r.i32_const(_),w,a),r.call(A+"_neg",y,c),r.call(A+"_add",I,I,u),r.call(A+"_add",I,u,u))}(),function(){const e=t.addFunction(n+"_prepareG1");e.addParam("pP","i32"),e.addParam("ppreP","i32");const r=e.getCodeBuilder();e.addCode(r.call(f+"_normalize",r.getLocal("pP"),r.getLocal("ppreP")))}(),function(){!function(){const e=t.addFunction(n+"_mulByQ");e.addParam("p1","i32"),e.addParam("pr","i32");const r=e.getCodeBuilder(),i=r.getLocal("p1"),o=r.i32_add(r.getLocal("p1"),r.i32_const(l)),s=r.i32_add(r.getLocal("p1"),r.i32_const(2*l)),a=r.getLocal("pr"),u=r.i32_add(r.getLocal("pr"),r.i32_const(l)),h=r.i32_add(r.getLocal("pr"),r.i32_const(2*l)),d=r.i32_const(t.alloc([...iB.bigInt2BytesLE(y("21575463638280843010398324269430826099269044274347216827212613867836435027261"),c),...iB.bigInt2BytesLE(y("10307601595873709700152284273816112264069230130616436755625194854815875713954"),c)])),p=r.i32_const(t.alloc([...iB.bigInt2BytesLE(y("2821565182194536844548159561693502659359617185244120367078079554186484126554"),c),...iB.bigInt2BytesLE(y("3505843767911556378687030309984248845540243509899259641013678093033130930403"),c)]));e.addCode(r.call(A+"_conjugate",i,a),r.call(A+"_mul",d,a,a),r.call(A+"_conjugate",o,u),r.call(A+"_mul",p,u,u),r.call(A+"_conjugate",s,h))}();const e=t.addFunction(n+"_prepareG2");e.addParam("pQ","i32"),e.addParam("ppreQ","i32"),e.addLocal("pCoef","i32"),e.addLocal("i","i32");const r=e.getCodeBuilder(),i=r.getLocal("pQ"),o=t.alloc(3*l),s=r.i32_const(o),a=r.i32_const(o),u=r.i32_const(o+l),h=r.i32_const(o+2*l),d=r.i32_add(r.getLocal("ppreQ"),r.i32_const(0)),p=r.i32_add(r.getLocal("ppreQ"),r.i32_const(l)),f=t.alloc(3*l),g=r.i32_const(f),m=t.alloc(3*l),w=r.i32_const(m),I=r.i32_const(m+l);e.addCode(r.call(E+"_normalize",i,d),r.call(A+"_copy",d,a),r.call(A+"_copy",p,u),r.call(A+"_one",h)),e.addCode(r.setLocal("pCoef",r.i32_add(r.getLocal("ppreQ"),r.i32_const(3*l))),r.setLocal("i",r.i32_const(F.length-2)),r.block(r.loop(r.call(n+"_prepDblStep",s,r.getLocal("pCoef")),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))),r.if(r.i32_load8_s(r.getLocal("i"),O),[...r.call(n+"_prepAddStep",d,s,r.getLocal("pCoef")),...r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k)))]),r.br_if(1,r.i32_eqz(r.getLocal("i"))),r.setLocal("i",r.i32_sub(r.getLocal("i"),r.i32_const(1))),r.br(0)))),e.addCode(r.call(n+"_mulByQ",d,g),r.call(n+"_mulByQ",g,w)),e.addCode(r.call(A+"_neg",I,I),r.call(n+"_prepAddStep",g,s,r.getLocal("pCoef")),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))),r.call(n+"_prepAddStep",w,s,r.getLocal("pCoef")),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))))}(),function(){const e=t.addFunction(n+"__mulBy024");e.addParam("pEll0","i32"),e.addParam("pEllVW","i32"),e.addParam("pEllVV","i32"),e.addParam("pR","i32");const r=e.getCodeBuilder(),i=r.getLocal("pEll0"),o=r.getLocal("pEllVV"),a=r.getLocal("pEllVW"),c=r.getLocal("pR"),u=r.i32_add(r.getLocal("pR"),r.i32_const(2*s)),h=r.i32_add(r.getLocal("pR"),r.i32_const(4*s)),d=r.i32_add(r.getLocal("pR"),r.i32_const(6*s)),p=r.i32_add(r.getLocal("pR"),r.i32_const(8*s)),f=r.i32_add(r.getLocal("pR"),r.i32_const(10*s)),g=r.i32_const(t.alloc(l)),E=r.i32_const(t.alloc(l)),m=r.i32_const(t.alloc(l)),y=r.i32_const(t.alloc(l)),w=r.i32_const(t.alloc(l)),I=r.i32_const(t.alloc(l)),C=r.i32_const(t.alloc(l)),B=r.i32_const(t.alloc(l)),T=r.i32_const(t.alloc(l)),b=r.i32_const(t.alloc(l)),D=r.i32_const(t.alloc(l));e.addCode(r.call(A+"_mul",c,i,C),r.call(A+"_mul",h,o,B),r.call(A+"_mul",p,a,T),r.call(A+"_add",c,p,m),r.call(A+"_add",c,h,E),r.call(A+"_add",u,d,y),r.call(A+"_add",y,f,y),r.call(A+"_mul",u,o,b),r.call(A+"_add",b,T,w),r.call(A+"_mul",r.i32_const(S),w,I),r.call(A+"_add",I,C,c),r.call(A+"_mul",f,a,w),r.call(A+"_add",b,w,b),r.call(A+"_add",w,B,w),r.call(A+"_mul",r.i32_const(S),w,I),r.call(A+"_mul",u,i,w),r.call(A+"_add",b,w,b),r.call(A+"_add",I,w,u),r.call(A+"_add",i,o,g),r.call(A+"_mul",E,g,w),r.call(A+"_add",C,B,D),r.call(A+"_sub",w,D,w),r.call(A+"_mul",d,a,I),r.call(A+"_add",b,I,b),r.call(A+"_add",h,p,g),r.call(A+"_add",w,I,h),r.call(A+"_add",o,a,E),r.call(A+"_mul",E,g,w),r.call(A+"_add",B,T,D),r.call(A+"_sub",w,D,w),r.call(A+"_mul",r.i32_const(S),w,I),r.call(A+"_mul",d,i,w),r.call(A+"_add",b,w,b),r.call(A+"_add",I,w,d),r.call(A+"_mul",f,o,w),r.call(A+"_add",b,w,b),r.call(A+"_mul",r.i32_const(S),w,I),r.call(A+"_add",i,a,g),r.call(A+"_mul",m,g,w),r.call(A+"_add",C,T,D),r.call(A+"_sub",w,D,w),r.call(A+"_add",I,w,p),r.call(A+"_add",i,o,g),r.call(A+"_add",g,a,g),r.call(A+"_mul",y,g,w),r.call(A+"_sub",w,b,f))}(),function(){const e=t.addFunction(n+"__mulBy024Old");e.addParam("pEll0","i32"),e.addParam("pEllVW","i32"),e.addParam("pEllVV","i32"),e.addParam("pR","i32");const r=e.getCodeBuilder(),i=r.getLocal("pEll0"),o=r.getLocal("pEllVV"),s=r.getLocal("pEllVW"),a=r.getLocal("pR"),c=t.alloc(u),h=r.i32_const(c),d=r.i32_const(c),p=r.i32_const(c+l),f=r.i32_const(c+2*l),g=r.i32_const(c+3*l),E=r.i32_const(c+4*l),m=r.i32_const(c+5*l);e.addCode(r.call(A+"_copy",i,d),r.call(A+"_zero",p),r.call(A+"_copy",o,f),r.call(A+"_zero",g),r.call(A+"_copy",s,E),r.call(A+"_zero",m),r.call(R+"_mul",h,a,a))}(),function(){const e=t.addFunction(n+"_millerLoop");e.addParam("ppreP","i32"),e.addParam("ppreQ","i32"),e.addParam("r","i32"),e.addLocal("pCoef","i32"),e.addLocal("i","i32");const r=e.getCodeBuilder(),i=r.getLocal("ppreP"),o=r.i32_add(r.getLocal("ppreP"),r.i32_const(c)),s=r.getLocal("pCoef"),a=r.i32_add(r.getLocal("pCoef"),r.i32_const(l)),u=r.i32_add(r.getLocal("pCoef"),r.i32_const(2*l)),h=t.alloc(l),d=r.i32_const(h),p=t.alloc(l),f=r.i32_const(p),g=r.getLocal("r");e.addCode(r.call(R+"_one",g),r.setLocal("pCoef",r.i32_add(r.getLocal("ppreQ"),r.i32_const(3*l))),r.setLocal("i",r.i32_const(F.length-2)),r.block(r.loop(r.call(R+"_square",g,g),r.call(A+"_mul1",a,o,d),r.call(A+"_mul1",u,i,f),r.call(n+"__mulBy024",s,d,f,g),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))),r.if(r.i32_load8_s(r.getLocal("i"),O),[...r.call(A+"_mul1",a,o,d),...r.call(A+"_mul1",u,i,f),...r.call(n+"__mulBy024",s,d,f,g),...r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k)))]),r.br_if(1,r.i32_eqz(r.getLocal("i"))),r.setLocal("i",r.i32_sub(r.getLocal("i"),r.i32_const(1))),r.br(0)))),e.addCode(r.call(A+"_mul1",a,o,d),r.call(A+"_mul1",u,i,f),r.call(n+"__mulBy024",s,d,f,g),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))),r.call(A+"_mul1",a,o,d),r.call(A+"_mul1",u,i,f),r.call(n+"__mulBy024",s,d,f,g),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(k))))}();for(let e=0;e<10;e++)V(e),t.exportFunction(n+"__frobeniusMap"+e);!function(){const e=t.addFunction(n+"_finalExponentiationOld");e.addParam("x","i32"),e.addParam("r","i32");const r=t.alloc(iB.bigInt2BytesLE(552484233613224096312617126783173147097382103762957654188882734314196910839907541213974502761540629817009608548654680343627701153829446747810907373256841551006201639677726139946029199968412598804882391702273019083653272047566316584365559776493027495458238373902875937659943504873220554161550525926302303331747463515644711876653177129578303191095900909191624817826566688241804408081892785725967931714097716709526092261278071952560171111444072049229123565057483750161460024353346284167282452756217662335528813519139808291170539072125381230815729071544861602750936964829313608137325426383735122175229541155376346436093930287402089517426973178917569713384748081827255472576937471496195752727188261435633271238710131736096299798168852925540549342330775279877006784354801422249722573783561685179618816480037695005515426162362431072245638324744480n,352)),i=e.getCodeBuilder();e.addCode(i.call(R+"_exp",i.getLocal("x"),i.i32_const(r),i.i32_const(352),i.getLocal("r")))}(),function(){!function(){const e=t.addFunction(n+"__finalExponentiationFirstChunk");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=i,a=r.i32_add(i,r.i32_const(6*s)),c=r.getLocal("r"),l=t.alloc(u),h=r.i32_const(l),d=h,p=r.i32_const(l+6*s),f=r.i32_const(t.alloc(u)),A=r.i32_const(t.alloc(u)),g=r.i32_const(t.alloc(u));e.addCode(r.call(x+"_copy",o,d),r.call(x+"_neg",a,p),r.call(R+"_inverse",i,f),r.call(R+"_mul",h,f,A),r.call(n+"__frobeniusMap2",A,g),r.call(R+"_mul",A,g,c))}(),j();const e=t.addFunction(n+"_finalExponentiation");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=r.getLocal("r"),a=r.i32_const(t.alloc(u));e.addCode(r.call(n+"__finalExponentiationFirstChunk",i,a),r.call(n+"__finalExponentiationLastChunk",a,o))}();for(let e=1;e<=5;e++)J(e),t.exportFunction(n+"_pairingEq"+e);!function(){const e=t.addFunction(n+"_pairing");e.addParam("p","i32"),e.addParam("q","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.i32_const(t.alloc(u));e.addCode(r.call(n+"_prepareG1",r.getLocal("p"),r.i32_const(Y))),e.addCode(r.call(n+"_prepareG2",r.getLocal("q"),r.i32_const(z))),e.addCode(r.call(n+"_millerLoop",r.i32_const(Y),r.i32_const(z),i)),e.addCode(r.call(n+"_finalExponentiation",i,r.getLocal("r")))}(),t.exportFunction(n+"_pairing"),t.exportFunction(n+"_prepareG1"),t.exportFunction(n+"_prepareG2"),t.exportFunction(n+"_millerLoop"),t.exportFunction(n+"_finalExponentiation"),t.exportFunction(n+"_finalExponentiationOld"),t.exportFunction(n+"__mulBy024"),t.exportFunction(n+"__mulBy024Old"),t.exportFunction(n+"__cyclotomicSquare"),t.exportFunction(n+"__cyclotomicExp_w0")},LB=function(t,e){const n=e||"bls12381";if(t.modules[n])return n;const r=0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn,i=0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001n,o=Math.floor((NB(r-1n)-1)/64)+1,s=8*o,a=s,c=2*a,l=12*a,u=Math.floor((NB(i-1n)-1)/64)+1,h=8*u,d=h,p=t.alloc(mB.bigInt2BytesLE(i,d)),f=yB(t,r,"f1m","intq");wB(t,i,"fr","frm","intr");const A=t.alloc(mB.bigInt2BytesLE(I(4n),a)),g=BB(t,"g1m","f1m",A);TB(t,"frm","frm","frm","frm_mul"),bB(t,"pol","frm"),DB(t,"qap","frm");const E=IB(t,"f1m_neg","f2m","f1m"),m=t.alloc([...mB.bigInt2BytesLE(I(4n),a),...mB.bigInt2BytesLE(I(4n),a)]),y=BB(t,"g2m","f2m",m);function w(e,n){const r=t.addFunction(e);r.addParam("pG","i32"),r.addParam("pFr","i32"),r.addParam("pr","i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(h));r.addCode(i.call("frm_fromMontgomery",i.getLocal("pFr"),o),i.call(n,i.getLocal("pG"),o,i.i32_const(h),i.getLocal("pr"))),t.exportFunction(e)}function I(t){return BigInt(t)*(1n<<BigInt(8*a))%r}w("g1m_timesFr","g1m_timesScalar"),TB(t,"g1m","g1m","frm","g1m_timesFr"),w("g2m_timesFr","g2m_timesScalar"),TB(t,"g2m","g2m","frm","g2m_timesFr"),w("g1m_timesFrAffine","g1m_timesScalarAffine"),w("g2m_timesFrAffine","g2m_timesScalarAffine"),MB(t,"frm_batchApplyKey","fmr","frm",h,h,h,"frm_mul"),MB(t,"g1m_batchApplyKey","g1m","frm",3*s,3*s,h,"g1m_timesFr"),MB(t,"g1m_batchApplyKeyMixed","g1m","frm",2*s,3*s,h,"g1m_timesFrAffine"),MB(t,"g2m_batchApplyKey","g2m","frm",2*s*3,3*s*2,h,"g2m_timesFr"),MB(t,"g2m_batchApplyKeyMixed","g2m","frm",2*s*2,3*s*2,h,"g2m_timesFrAffine");const C=[3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507n,1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569n,1n],B=t.alloc([...mB.bigInt2BytesLE(I(C[0]),a),...mB.bigInt2BytesLE(I(C[1]),a),...mB.bigInt2BytesLE(I(C[2]),a)]),T=[0n,1n,0n],b=t.alloc([...mB.bigInt2BytesLE(I(T[0]),a),...mB.bigInt2BytesLE(I(T[1]),a),...mB.bigInt2BytesLE(I(T[2]),a)]),D=[[352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160n,3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758n],[1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905n,927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582n],[1n,0n]],M=t.alloc([...mB.bigInt2BytesLE(I(D[0][0]),a),...mB.bigInt2BytesLE(I(D[0][1]),a),...mB.bigInt2BytesLE(I(D[1][0]),a),...mB.bigInt2BytesLE(I(D[1][1]),a),...mB.bigInt2BytesLE(I(D[2][0]),a),...mB.bigInt2BytesLE(I(D[2][1]),a)]),N=[[0n,0n],[1n,0n],[0n,0n]],S=t.alloc([...mB.bigInt2BytesLE(I(N[0][0]),a),...mB.bigInt2BytesLE(I(N[0][1]),a),...mB.bigInt2BytesLE(I(N[1][0]),a),...mB.bigInt2BytesLE(I(N[1][1]),a),...mB.bigInt2BytesLE(I(N[2][0]),a),...mB.bigInt2BytesLE(I(N[2][1]),a)]),v=t.alloc([...mB.bigInt2BytesLE(I(1n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a),...mB.bigInt2BytesLE(I(0n),a)]),_=t.alloc([...mB.bigInt2BytesLE(I(1n),a),...mB.bigInt2BytesLE(I(1n),a)]);!function(){const e=t.addFunction(E+"_mulNR");e.addParam("x","i32"),e.addParam("pr","i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(a)),i=n.getLocal("x"),o=n.i32_add(n.getLocal("x"),n.i32_const(a)),s=n.getLocal("pr"),c=n.i32_add(n.getLocal("pr"),n.i32_const(a));e.addCode(n.call(f+"_copy",i,r),n.call(f+"_sub",i,o,s),n.call(f+"_add",r,o,c))}();const L=CB(t,E+"_mulNR","f6m","f2m");!function(){const e=t.addFunction(L+"_mulNR");e.addParam("x","i32"),e.addParam("pr","i32");const n=e.getCodeBuilder(),r=n.i32_const(t.alloc(2*a));e.addCode(n.call(E+"_copy",n.getLocal("x"),r),n.call(E+"_mulNR",n.i32_add(n.getLocal("x"),n.i32_const(4*s)),n.getLocal("pr")),n.call(E+"_copy",n.i32_add(n.getLocal("x"),n.i32_const(2*s)),n.i32_add(n.getLocal("pr"),n.i32_const(4*s))),n.call(E+"_copy",r,n.i32_add(n.getLocal("pr"),n.i32_const(2*s))))}();const x=IB(t,L+"_mulNR","ftm",L),R=function(t){let e=t;const n=[];for(;e>0n;)SB(e)?n.push(1):n.push(0),e>>=1n;return n}(0xd201000000010000n),F=t.alloc(R),O=3*c,k=R.length-1,Q=R.reduce((t,e)=>t+(0!=e?1:0),0),U=6*s,P=3*s*2+(Q+k+1)*O,G=15132376222941642752n;function V(e){const n=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n,151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n],[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n,877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n,3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n,3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n]]],i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[0n,4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[0n,1n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[0n,793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n]],[[1n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n]]],o=t.addFunction(x+"_frobeniusMap"+e);o.addParam("x","i32"),o.addParam("r","i32");const l=o.getCodeBuilder();for(let r=0;r<6;r++){const h=0==r?l.getLocal("x"):l.i32_add(l.getLocal("x"),l.i32_const(r*c)),d=h,p=l.i32_add(l.getLocal("x"),l.i32_const(r*c+a)),A=0==r?l.getLocal("r"):l.i32_add(l.getLocal("r"),l.i32_const(r*c)),g=A,m=l.i32_add(l.getLocal("r"),l.i32_const(r*c+a)),y=u(n[Math.floor(r/3)][e%12],i[r%3][e%6]),w=t.alloc([...mB.bigInt2BytesLE(I(y[0]),s),...mB.bigInt2BytesLE(I(y[1]),s)]);e%2==1?o.addCode(l.call(f+"_copy",d,g),l.call(f+"_neg",p,m),l.call(E+"_mul",A,l.i32_const(w),A)):o.addCode(l.call(E+"_mul",h,l.i32_const(w),A))}function u(t,e){const n=t[0],i=t[1],o=e[0],s=e[1],a=[(n*o-i*s)%r,(n*s+i*o)%r];return vB(a[0])&&(a[0]=a[0]+r),a}}function H(e,r,i){const o=function(t){let e=t;const n=[];for(;e>0n;){if(SB(e)){const t=2-Number(e%4n);n.push(t),e-=BigInt(t)}else n.push(0);e>>=1n}return n}(e).map(t=>-1==t?255:t),s=t.alloc(o),a=t.addFunction(n+"__cyclotomicExp_"+i);a.addParam("x","i32"),a.addParam("r","i32"),a.addLocal("bit","i32"),a.addLocal("i","i32");const c=a.getCodeBuilder(),u=c.getLocal("x"),h=c.getLocal("r"),d=c.i32_const(t.alloc(l));a.addCode(c.call(x+"_conjugate",u,d),c.call(x+"_one",h),c.if(c.teeLocal("bit",c.i32_load8_s(c.i32_const(o.length-1),s)),c.if(c.i32_eq(c.getLocal("bit"),c.i32_const(1)),c.call(x+"_mul",h,u,h),c.call(x+"_mul",h,d,h))),c.setLocal("i",c.i32_const(o.length-2)),c.block(c.loop(c.call(n+"__cyclotomicSquare",h,h),c.if(c.teeLocal("bit",c.i32_load8_s(c.getLocal("i"),s)),c.if(c.i32_eq(c.getLocal("bit"),c.i32_const(1)),c.call(x+"_mul",h,u,h),c.call(x+"_mul",h,d,h))),c.br_if(1,c.i32_eqz(c.getLocal("i"))),c.setLocal("i",c.i32_sub(c.getLocal("i"),c.i32_const(1))),c.br(0)))),r&&a.addCode(c.call(x+"_conjugate",h,h))}t.modules[n]={n64q:o,n64r:u,n8q:s,n8r:h,pG1gen:B,pG1zero:b,pG1b:A,pG2gen:M,pG2zero:S,pG2b:m,pq:t.modules.f1m.pq,pr:p,pOneT:v,r:i,q:r,prePSize:U,preQSize:P},function(){const e=t.addFunction(L+"_mul1");e.addParam("pA","i32"),e.addParam("pC1","i32"),e.addParam("pR","i32");const n=e.getCodeBuilder(),r=n.getLocal("pA"),i=n.i32_add(n.getLocal("pA"),n.i32_const(2*a)),o=n.i32_add(n.getLocal("pA"),n.i32_const(4*a)),s=n.getLocal("pC1"),c=n.getLocal("pR"),l=n.i32_add(n.getLocal("pR"),n.i32_const(2*a)),u=n.i32_add(n.getLocal("pR"),n.i32_const(4*a)),h=n.i32_const(t.alloc(2*a)),d=n.i32_const(t.alloc(2*a));e.addCode(n.call(E+"_add",r,i,h),n.call(E+"_add",i,o,d),n.call(E+"_mul",i,s,u),n.call(E+"_mul",d,s,c),n.call(E+"_sub",c,u,c),n.call(E+"_mulNR",c,c),n.call(E+"_mul",h,s,l),n.call(E+"_sub",l,u,l))}(),function(){const e=t.addFunction(L+"_mul01");e.addParam("pA","i32"),e.addParam("pC0","i32"),e.addParam("pC1","i32"),e.addParam("pR","i32");const n=e.getCodeBuilder(),r=n.getLocal("pA"),i=n.i32_add(n.getLocal("pA"),n.i32_const(2*a)),o=n.i32_add(n.getLocal("pA"),n.i32_const(4*a)),s=n.getLocal("pC0"),c=n.getLocal("pC1"),l=n.getLocal("pR"),u=n.i32_add(n.getLocal("pR"),n.i32_const(2*a)),h=n.i32_add(n.getLocal("pR"),n.i32_const(4*a)),d=n.i32_const(t.alloc(2*a)),p=n.i32_const(t.alloc(2*a)),f=n.i32_const(t.alloc(2*a)),A=n.i32_const(t.alloc(2*a));e.addCode(n.call(E+"_mul",r,s,d),n.call(E+"_mul",i,c,p),n.call(E+"_add",r,i,f),n.call(E+"_add",r,o,A),n.call(E+"_add",i,o,l),n.call(E+"_mul",l,c,l),n.call(E+"_sub",l,p,l),n.call(E+"_mulNR",l,l),n.call(E+"_add",l,d,l),n.call(E+"_add",s,c,u),n.call(E+"_mul",u,f,u),n.call(E+"_sub",u,d,u),n.call(E+"_sub",u,p,u),n.call(E+"_mul",A,s,h),n.call(E+"_sub",h,d,h),n.call(E+"_add",h,p,h))}(),function(){const e=t.addFunction(x+"_mul014");e.addParam("pA","i32"),e.addParam("pC0","i32"),e.addParam("pC1","i32"),e.addParam("pC4","i32"),e.addParam("pR","i32");const n=e.getCodeBuilder(),r=n.getLocal("pA"),i=n.i32_add(n.getLocal("pA"),n.i32_const(6*a)),o=n.getLocal("pC0"),s=n.getLocal("pC1"),c=n.getLocal("pC4"),l=n.i32_const(t.alloc(6*a)),u=n.i32_const(t.alloc(6*a)),h=n.i32_const(t.alloc(2*a)),d=n.getLocal("pR"),p=n.i32_add(n.getLocal("pR"),n.i32_const(6*a));e.addCode(n.call(L+"_mul01",r,o,s,l),n.call(L+"_mul1",i,c,u),n.call(E+"_add",s,c,h),n.call(L+"_add",i,r,p),n.call(L+"_mul01",p,o,h,p),n.call(L+"_sub",p,l,p),n.call(L+"_sub",p,u,p),n.call(L+"_copy",u,d),n.call(L+"_mulNR",d,d),n.call(L+"_add",d,l,d))}(),function(){const e=t.addFunction(n+"_ell");e.addParam("pP","i32"),e.addParam("pCoefs","i32"),e.addParam("pF","i32");const r=e.getCodeBuilder(),i=r.getLocal("pP"),o=r.i32_add(r.getLocal("pP"),r.i32_const(s)),c=r.getLocal("pF"),l=r.getLocal("pCoefs"),u=r.i32_add(r.getLocal("pCoefs"),r.i32_const(a)),h=r.i32_add(r.getLocal("pCoefs"),r.i32_const(2*a)),d=r.i32_add(r.getLocal("pCoefs"),r.i32_const(3*a)),p=r.i32_add(r.getLocal("pCoefs"),r.i32_const(4*a)),A=t.alloc(2*a),g=r.i32_const(A),E=r.i32_const(A),m=r.i32_const(A+a),y=t.alloc(2*a),w=r.i32_const(y),I=r.i32_const(y),C=r.i32_const(y+a);e.addCode(r.call(f+"_mul",l,o,E),r.call(f+"_mul",u,o,m),r.call(f+"_mul",h,i,I),r.call(f+"_mul",d,i,C),r.call(x+"_mul014",c,p,w,g,c))}();const j=t.alloc(U),Y=t.alloc(P);function z(e){const r=t.addFunction(n+"_pairingEq"+e);for(let t=0;t<e;t++)r.addParam("p_"+t,"i32"),r.addParam("q_"+t,"i32");r.addParam("c","i32"),r.setReturnType("i32");const i=r.getCodeBuilder(),o=i.i32_const(t.alloc(l)),s=i.i32_const(t.alloc(l));r.addCode(i.call(x+"_one",o));for(let t=0;t<e;t++)r.addCode(i.call(n+"_prepareG1",i.getLocal("p_"+t),i.i32_const(j))),r.addCode(i.call(n+"_prepareG2",i.getLocal("q_"+t),i.i32_const(Y))),r.addCode(i.if(i.i32_eqz(i.call(g+"_inGroupAffine",i.i32_const(j))),i.ret(i.i32_const(0))),i.if(i.i32_eqz(i.call(y+"_inGroupAffine",i.i32_const(Y))),i.ret(i.i32_const(0)))),r.addCode(i.call(n+"_millerLoop",i.i32_const(j),i.i32_const(Y),s)),r.addCode(i.call(x+"_mul",o,s,o));r.addCode(i.call(n+"_finalExponentiation",o,o)),r.addCode(i.call(x+"_eq",o,i.getLocal("c")))}for(let e=0;e<10;e++)V(e),t.exportFunction(x+"_frobeniusMap"+e);!function(){const e=t.addFunction(g+"_inGroupAffine");e.addParam("p","i32"),e.setReturnType("i32");const n=e.getCodeBuilder(),r=(G*G-1n)/3n,i=n.i32_const(t.alloc(mB.bigInt2BytesLE(I(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),s))),o=n.i32_const(t.alloc(mB.bigInt2BytesLE(I(793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n),s))),c=n.i32_const(t.alloc(mB.bigInt2BytesLE(r,16))),l=n.getLocal("p"),u=n.i32_add(n.getLocal("p"),n.i32_const(a)),h=t.alloc(3*a),d=n.i32_const(h),p=n.i32_const(h),A=n.i32_const(h+a),E=t.alloc(2*a),m=n.i32_const(E),y=n.i32_const(E),w=n.i32_const(E+a);e.addCode(n.if(n.call(g+"_isZeroAffine",n.getLocal("p")),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(g+"_inCurveAffine",n.getLocal("p"))),n.ret(n.i32_const(0))),n.call(f+"_mul",l,i,p),n.call(f+"_copy",u,A),n.call(f+"_mul",l,o,y),n.call(f+"_copy",u,w),n.call(g+"_doubleAffine",d,d),n.call(g+"_subMixed",d,n.getLocal("p"),d),n.call(g+"_subMixed",d,m,d),n.call(g+"_timesScalar",d,c,n.i32_const(16),d),n.ret(n.call(g+"_eqMixed",d,m)));const C=t.addFunction(g+"_inGroup");C.addParam("pIn","i32"),C.setReturnType("i32");const B=C.getCodeBuilder(),T=B.i32_const(t.alloc(2*a));C.addCode(B.call(g+"_toAffine",B.getLocal("pIn"),T),B.ret(B.call(g+"_inGroupAffine",T)))}(),function(){const e=t.addFunction(y+"_inGroupAffine");e.addParam("p","i32"),e.setReturnType("i32");const n=e.getCodeBuilder(),r=[2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279894n,2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279893n],i=[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],o=n.i32_const(t.alloc([...mB.bigInt2BytesLE(I(r[0]),s),...mB.bigInt2BytesLE(I(r[1]),s)])),l=n.i32_const(t.alloc(mB.bigInt2BytesLE(I(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),s))),u=n.i32_const(t.alloc([...mB.bigInt2BytesLE(I(i[0]),s),...mB.bigInt2BytesLE(I(i[1]),s)])),h=n.i32_const(t.alloc(mB.bigInt2BytesLE(G,8))),d=n.getLocal("p"),p=n.i32_add(n.getLocal("p"),n.i32_const(c)),A=n.i32_const(t.alloc(a)),g=n.i32_const(t.alloc(c)),m=n.i32_const(t.alloc(c)),w=t.alloc(2*c),C=n.i32_const(w),B=n.i32_const(w),T=n.i32_const(w),b=n.i32_const(w+a),D=n.i32_const(w+c),M=n.i32_const(w+c),N=n.i32_const(w+c+a),S=t.alloc(3*c),v=n.i32_const(S),_=n.i32_const(S),L=n.i32_const(S),x=n.i32_const(S+a),R=n.i32_const(S+c),F=n.i32_const(S+c),O=n.i32_const(S+c+a),k=n.i32_const(S+2*c);e.addCode(n.if(n.call(y+"_isZeroAffine",n.getLocal("p")),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(y+"_inCurveAffine",n.getLocal("p"))),n.ret(n.i32_const(0))),n.call(E+"_mul",d,o,g),n.call(E+"_mul",p,o,m),n.call(E+"_mul1",g,l,B),n.call(E+"_neg",m,D),n.call(E+"_neg",g,_),n.call(E+"_mul",m,u,R),n.call(f+"_sub",T,b,A),n.call(f+"_add",T,b,b),n.call(f+"_copy",A,T),n.call(f+"_sub",M,N,A),n.call(f+"_add",M,N,N),n.call(f+"_copy",A,M),n.call(f+"_add",L,x,A),n.call(f+"_sub",L,x,x),n.call(f+"_copy",A,L),n.call(f+"_sub",O,F,A),n.call(f+"_add",F,O,O),n.call(f+"_copy",A,F),n.call(E+"_one",k),n.call(y+"_timesScalar",v,h,n.i32_const(8),v),n.call(y+"_addMixed",v,C,v),n.ret(n.call(y+"_eqMixed",v,n.getLocal("p"))));const Q=t.addFunction(y+"_inGroup");Q.addParam("pIn","i32"),Q.setReturnType("i32");const U=Q.getCodeBuilder(),P=U.i32_const(t.alloc(2*c));Q.addCode(U.call(y+"_toAffine",U.getLocal("pIn"),P),U.ret(U.call(y+"_inGroupAffine",P)))}(),function(){const e=t.addFunction(n+"_prepAddStep");e.addParam("R","i32"),e.addParam("Q","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("R"),o=r.i32_add(r.getLocal("R"),r.i32_const(2*s)),a=r.i32_add(r.getLocal("R"),r.i32_const(4*s)),l=r.getLocal("Q"),u=r.i32_add(r.getLocal("Q"),r.i32_const(2*s)),h=r.getLocal("r"),d=r.i32_add(r.getLocal("r"),r.i32_const(2*s)),p=r.i32_add(r.getLocal("r"),r.i32_const(4*s)),f=r.i32_const(t.alloc(c)),A=r.i32_const(t.alloc(c)),g=r.i32_const(t.alloc(c)),m=r.i32_const(t.alloc(c)),y=r.i32_const(t.alloc(c)),w=r.i32_const(t.alloc(c)),I=r.i32_const(t.alloc(c)),C=r.i32_const(t.alloc(c)),B=r.i32_const(t.alloc(c)),T=r.i32_const(t.alloc(c)),b=r.i32_const(t.alloc(c));e.addCode(r.call(E+"_square",a,f),r.call(E+"_square",u,A),r.call(E+"_mul",f,l,m),r.call(E+"_add",u,a,d),r.call(E+"_square",d,d),r.call(E+"_sub",d,A,d),r.call(E+"_sub",d,f,d),r.call(E+"_mul",d,f,d),r.call(E+"_sub",m,i,y),r.call(E+"_square",y,w),r.call(E+"_add",w,w,I),r.call(E+"_add",I,I,I),r.call(E+"_mul",I,y,C),r.call(E+"_sub",d,o,B),r.call(E+"_sub",B,o,B),r.call(E+"_mul",B,l,p),r.call(E+"_mul",I,i,T),r.call(E+"_square",B,i),r.call(E+"_sub",i,C,i),r.call(E+"_sub",i,T,i),r.call(E+"_sub",i,T,i),r.call(E+"_add",a,y,a),r.call(E+"_square",a,a),r.call(E+"_sub",a,f,a),r.call(E+"_sub",a,w,a),r.call(E+"_add",u,a,h),r.call(E+"_sub",T,i,b),r.call(E+"_mul",b,B,b),r.call(E+"_mul",o,C,m),r.call(E+"_add",m,m,m),r.call(E+"_sub",b,m,o),r.call(E+"_square",h,h),r.call(E+"_sub",h,A,h),r.call(E+"_square",a,g),r.call(E+"_sub",h,g,h),r.call(E+"_add",p,p,p),r.call(E+"_sub",p,h,p),r.call(E+"_add",a,a,h),r.call(E+"_neg",B,B),r.call(E+"_add",B,B,d))}(),function(){const e=t.addFunction(n+"_prepDblStep");e.addParam("R","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("R"),o=r.i32_add(r.getLocal("R"),r.i32_const(2*s)),a=r.i32_add(r.getLocal("R"),r.i32_const(4*s)),l=r.getLocal("r"),u=r.i32_add(r.getLocal("r"),r.i32_const(2*s)),h=r.i32_add(r.getLocal("r"),r.i32_const(4*s)),d=r.i32_const(t.alloc(c)),p=r.i32_const(t.alloc(c)),f=r.i32_const(t.alloc(c)),A=r.i32_const(t.alloc(c)),g=r.i32_const(t.alloc(c));e.addCode(r.call(E+"_square",i,l),r.call(E+"_square",o,p),r.call(E+"_square",p,f),r.call(E+"_add",p,i,u),r.call(E+"_square",u,u),r.call(E+"_sub",u,l,u),r.call(E+"_sub",u,f,u),r.call(E+"_add",u,u,u),r.call(E+"_add",l,l,A),r.call(E+"_add",A,l,A),r.call(E+"_add",i,A,h),r.call(E+"_square",A,g),r.call(E+"_square",a,d),r.call(E+"_sub",g,u,i),r.call(E+"_sub",i,u,i),r.call(E+"_add",a,o,a),r.call(E+"_square",a,a),r.call(E+"_sub",a,p,a),r.call(E+"_sub",a,d,a),r.call(E+"_sub",u,i,o),r.call(E+"_mul",o,A,o),r.call(E+"_add",f,f,f),r.call(E+"_add",f,f,f),r.call(E+"_add",f,f,f),r.call(E+"_sub",o,f,o),r.call(E+"_mul",A,d,u),r.call(E+"_add",u,u,u),r.call(E+"_neg",u,u),r.call(E+"_square",h,h),r.call(E+"_sub",h,l,h),r.call(E+"_sub",h,g,h),r.call(E+"_add",p,p,p),r.call(E+"_add",p,p,p),r.call(E+"_sub",h,p,h),r.call(E+"_mul",a,d,l),r.call(E+"_add",l,l,l))}(),function(){const e=t.addFunction(n+"_prepareG1");e.addParam("pP","i32"),e.addParam("ppreP","i32");const r=e.getCodeBuilder();e.addCode(r.call(g+"_normalize",r.getLocal("pP"),r.getLocal("ppreP")))}(),function(){const e=t.addFunction(n+"_prepareG2");e.addParam("pQ","i32"),e.addParam("ppreQ","i32"),e.addLocal("pCoef","i32"),e.addLocal("i","i32");const r=e.getCodeBuilder(),i=r.getLocal("pQ"),o=t.alloc(3*c),s=r.i32_const(o),a=r.getLocal("ppreQ");e.addCode(r.call(y+"_normalize",i,a),r.if(r.call(y+"_isZero",a),r.ret([])),r.call(y+"_copy",a,s),r.setLocal("pCoef",r.i32_add(r.getLocal("ppreQ"),r.i32_const(3*c)))),e.addCode(r.setLocal("i",r.i32_const(R.length-2)),r.block(r.loop(r.call(n+"_prepDblStep",s,r.getLocal("pCoef")),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(O))),r.if(r.i32_load8_s(r.getLocal("i"),F),[...r.call(n+"_prepAddStep",s,a,r.getLocal("pCoef")),...r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(O)))]),r.br_if(1,r.i32_eqz(r.getLocal("i"))),r.setLocal("i",r.i32_sub(r.getLocal("i"),r.i32_const(1))),r.br(0))))}(),function(){const e=t.addFunction(n+"_millerLoop");e.addParam("ppreP","i32"),e.addParam("ppreQ","i32"),e.addParam("r","i32"),e.addLocal("pCoef","i32"),e.addLocal("i","i32");const r=e.getCodeBuilder(),i=r.getLocal("ppreP"),o=r.getLocal("pCoef"),s=r.getLocal("r");e.addCode(r.call(x+"_one",s),r.if(r.call(g+"_isZero",i),r.ret([])),r.if(r.call(g+"_isZero",r.getLocal("ppreQ")),r.ret([])),r.setLocal("pCoef",r.i32_add(r.getLocal("ppreQ"),r.i32_const(3*c))),r.setLocal("i",r.i32_const(R.length-2)),r.block(r.loop(r.call(n+"_ell",i,o,s),r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(O))),r.if(r.i32_load8_s(r.getLocal("i"),F),[...r.call(n+"_ell",i,o,s),...r.setLocal("pCoef",r.i32_add(r.getLocal("pCoef"),r.i32_const(O)))]),r.call(x+"_square",s,s),r.br_if(1,r.i32_eq(r.getLocal("i"),r.i32_const(1))),r.setLocal("i",r.i32_sub(r.getLocal("i"),r.i32_const(1))),r.br(0))),r.call(n+"_ell",i,o,s)),e.addCode(r.call(x+"_conjugate",s,s))}(),function(){const e=t.addFunction(n+"_finalExponentiationOld");e.addParam("x","i32"),e.addParam("r","i32");const r=t.alloc(mB.bigInt2BytesLE(322277361516934140462891564586510139908379969514828494218366688025288661041104682794998680497580008899973249814104447692778988208376779573819485263026159588510513834876303014016798809919343532899164848730280942609956670917565618115867287399623286813270357901731510188149934363360381614501334086825442271920079363289954510565375378443704372994881406797882676971082200626541916413184642520269678897559532260949334760604962086348898118982248842634379637598665468817769075878555493752214492790122785850202957575200176084204422751485957336465472324810982833638490904279282696134323072515220044451592646885410572234451732790590013479358343841220074174848221722017083597872017638514103174122784843925578370430843522959600095676285723737049438346544753168912974976791528535276317256904336520179281145394686565050419250614107803233314658825463117900250701199181529205942363159325765991819433914303908860460720581408201373164047773794825411011922305820065611121544561808414055302212057471395719432072209245600258134364584636810093520285711072578721435517884103526483832733289802426157301542744476740008494780363354305116978805620671467071400711358839553375340724899735460480144599782014906586543813292157922220645089192130209334926661588737007768565838519456601560804957985667880395221049249803753582637708560n,544)),i=e.getCodeBuilder();e.addCode(i.call(x+"_exp",i.getLocal("x"),i.i32_const(r),i.i32_const(544),i.getLocal("r")))}(),function(){!function(){const e=t.addFunction(n+"__cyclotomicSquare");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=r.i32_add(r.getLocal("x"),r.i32_const(c)),s=r.i32_add(r.getLocal("x"),r.i32_const(2*c)),a=r.i32_add(r.getLocal("x"),r.i32_const(3*c)),l=r.i32_add(r.getLocal("x"),r.i32_const(4*c)),u=r.i32_add(r.getLocal("x"),r.i32_const(5*c)),h=r.getLocal("r"),d=r.i32_add(r.getLocal("r"),r.i32_const(c)),p=r.i32_add(r.getLocal("r"),r.i32_const(2*c)),f=r.i32_add(r.getLocal("r"),r.i32_const(3*c)),A=r.i32_add(r.getLocal("r"),r.i32_const(4*c)),g=r.i32_add(r.getLocal("r"),r.i32_const(5*c)),m=r.i32_const(t.alloc(c)),y=r.i32_const(t.alloc(c)),w=r.i32_const(t.alloc(c)),I=r.i32_const(t.alloc(c)),C=r.i32_const(t.alloc(c)),B=r.i32_const(t.alloc(c)),T=r.i32_const(t.alloc(c)),b=r.i32_const(t.alloc(c));e.addCode(r.call(E+"_mul",i,l,T),r.call(E+"_mulNR",l,m),r.call(E+"_add",i,m,m),r.call(E+"_add",i,l,b),r.call(E+"_mul",b,m,m),r.call(E+"_mulNR",T,b),r.call(E+"_add",T,b,b),r.call(E+"_sub",m,b,m),r.call(E+"_add",T,T,y),r.call(E+"_mul",a,s,T),r.call(E+"_mulNR",s,w),r.call(E+"_add",a,w,w),r.call(E+"_add",a,s,b),r.call(E+"_mul",b,w,w),r.call(E+"_mulNR",T,b),r.call(E+"_add",T,b,b),r.call(E+"_sub",w,b,w),r.call(E+"_add",T,T,I),r.call(E+"_mul",o,u,T),r.call(E+"_mulNR",u,C),r.call(E+"_add",o,C,C),r.call(E+"_add",o,u,b),r.call(E+"_mul",b,C,C),r.call(E+"_mulNR",T,b),r.call(E+"_add",T,b,b),r.call(E+"_sub",C,b,C),r.call(E+"_add",T,T,B),r.call(E+"_sub",m,i,h),r.call(E+"_add",h,h,h),r.call(E+"_add",m,h,h),r.call(E+"_add",y,l,A),r.call(E+"_add",A,A,A),r.call(E+"_add",y,A,A),r.call(E+"_mul",B,r.i32_const(_),b),r.call(E+"_add",b,a,f),r.call(E+"_add",f,f,f),r.call(E+"_add",b,f,f),r.call(E+"_sub",C,s,p),r.call(E+"_add",p,p,p),r.call(E+"_add",C,p,p),r.call(E+"_sub",w,o,d),r.call(E+"_add",d,d,d),r.call(E+"_add",w,d,d),r.call(E+"_add",I,u,g),r.call(E+"_add",g,g,g),r.call(E+"_add",I,g,g))}(),H(G,true,"w0");const e=t.addFunction(n+"_finalExponentiation");e.addParam("x","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.getLocal("x"),o=r.getLocal("r"),s=r.i32_const(t.alloc(l)),a=r.i32_const(t.alloc(l)),u=r.i32_const(t.alloc(l)),h=r.i32_const(t.alloc(l)),d=r.i32_const(t.alloc(l)),p=r.i32_const(t.alloc(l)),f=r.i32_const(t.alloc(l));e.addCode(r.call(x+"_frobeniusMap6",i,s),r.call(x+"_inverse",i,a),r.call(x+"_mul",s,a,u),r.call(x+"_copy",u,a),r.call(x+"_frobeniusMap2",u,u),r.call(x+"_mul",u,a,u),r.call(n+"__cyclotomicSquare",u,a),r.call(x+"_conjugate",a,a),r.call(n+"__cyclotomicExp_w0",u,h),r.call(n+"__cyclotomicSquare",h,d),r.call(x+"_mul",a,h,p),r.call(n+"__cyclotomicExp_w0",p,a),r.call(n+"__cyclotomicExp_w0",a,s),r.call(n+"__cyclotomicExp_w0",s,f),r.call(x+"_mul",f,d,f),r.call(n+"__cyclotomicExp_w0",f,d),r.call(x+"_conjugate",p,p),r.call(x+"_mul",d,p,d),r.call(x+"_mul",d,u,d),r.call(x+"_conjugate",u,p),r.call(x+"_mul",a,u,a),r.call(x+"_frobeniusMap3",a,a),r.call(x+"_mul",f,p,f),r.call(x+"_frobeniusMap1",f,f),r.call(x+"_mul",h,s,h),r.call(x+"_frobeniusMap2",h,h),r.call(x+"_mul",h,a,h),r.call(x+"_mul",h,f,h),r.call(x+"_mul",h,d,o))}();for(let e=1;e<=5;e++)z(e),t.exportFunction(n+"_pairingEq"+e);!function(){const e=t.addFunction(n+"_pairing");e.addParam("p","i32"),e.addParam("q","i32"),e.addParam("r","i32");const r=e.getCodeBuilder(),i=r.i32_const(t.alloc(l));e.addCode(r.call(n+"_prepareG1",r.getLocal("p"),r.i32_const(j))),e.addCode(r.call(n+"_prepareG2",r.getLocal("q"),r.i32_const(Y))),e.addCode(r.call(n+"_millerLoop",r.i32_const(j),r.i32_const(Y),i)),e.addCode(r.call(n+"_finalExponentiation",i,r.getLocal("r")))}(),t.exportFunction(n+"_pairing"),t.exportFunction(n+"_prepareG1"),t.exportFunction(n+"_prepareG2"),t.exportFunction(n+"_millerLoop"),t.exportFunction(n+"_finalExponentiation"),t.exportFunction(n+"_finalExponentiationOld"),t.exportFunction(n+"__cyclotomicSquare"),t.exportFunction(n+"__cyclotomicExp_w0"),t.exportFunction(L+"_mul1"),t.exportFunction(L+"_mul01"),t.exportFunction(x+"_mul014"),t.exportFunction(g+"_inGroupAffine"),t.exportFunction(g+"_inGroup"),t.exportFunction(y+"_inGroupAffine"),t.exportFunction(y+"_inGroup")};function xB(t,e){let n=t;void 0===e&&0==(e=Math.floor((pI(t)-1)/8)+1)&&(e=1);const r=new Uint8Array(e),i=new DataView(r.buffer);let o=0;for(;o<e;)o+4<=e?(i.setUint32(o,Number(n&BigInt(4294967295)),!0),o+=4,n>>=BigInt(32)):o+2<=e?(i.setUint16(o,Number(n&BigInt(65535)),!0),o+=2,n>>=BigInt(16)):(i.setUint8(o,Number(n&BigInt(255)),!0),o+=1,n>>=BigInt(8));if(n)throw new Error("Number does not fit in this length");return r}const RB=[];for(let t=0;t<256;t++)RB[t]=FB(t,8);function FB(t,e){let n=0,r=t;for(let t=0;t<e;t++)n<<=1,n|=1&r,r>>=1;return n}function OB(t,e){return(RB[t>>>24]|RB[t>>>16&255]<<8|RB[t>>>8&255]<<16|RB[255&t]<<24)>>>32-e}function kB(t){return(4294901760&t?(t&=4294901760,16):0)|(4278255360&t?(t&=4278255360,8):0)|(4042322160&t?(t&=4042322160,4):0)|(3435973836&t?(t&=3435973836,2):0)|!!(2863311530&t)}function QB(t,e){const n=t.byteLength/e,r=kB(n);if(n!=1<<r)throw new Error("Invalid number of pointers");for(let i=0;i<n;i++){const n=OB(i,r);if(i>n){const r=t.slice(i*e,(i+1)*e);t.set(t.slice(n*e,(n+1)*e),i*e),t.set(r,n*e)}}}function UB(t,e){const n=new Uint8Array(e*t.length);for(let r=0;r<t.length;r++)n.set(t[r],r*e);return n}function PB(t,e){const n=t.byteLength/e,r=new Array(n);for(let i=0;i<n;i++)r[i]=t.slice(i*e,i*e+e);return r}var GB=Object.freeze({__proto__:null,array2buffer:UB,beBuff2int:function(t){let e=BigInt(0),n=t.length,r=0;const i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n>0;)n>=4?(n-=4,e+=BigInt(i.getUint32(n))<<BigInt(8*r),r+=4):n>=2?(n-=2,e+=BigInt(i.getUint16(n))<<BigInt(8*r),r+=2):(n-=1,e+=BigInt(i.getUint8(n))<<BigInt(8*r),r+=1);return e},beInt2Buff:function(t,e){let n=t;const r=new Uint8Array(e),i=new DataView(r.buffer);let o=e;for(;o>0;)o-4>=0?(o-=4,i.setUint32(o,Number(n&BigInt(4294967295))),n>>=BigInt(32)):o-2>=0?(o-=2,i.setUint16(o,Number(n&BigInt(65535))),n>>=BigInt(16)):(o-=1,i.setUint8(o,Number(n&BigInt(255))),n>>=BigInt(8));if(n)throw new Error("Number does not fit in this length");return r},bitReverse:OB,buffReverseBits:QB,buffer2array:PB,leBuff2int:function(t){let e=BigInt(0),n=0;const r=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n<t.length;)n+4<=t.length?(e+=BigInt(r.getUint32(n,!0))<<BigInt(8*n),n+=4):n+2<=t.length?(e+=BigInt(r.getUint16(n,!0))<<BigInt(8*n),n+=2):(e+=BigInt(r.getUint8(n,!0))<<BigInt(8*n),n+=1);return e},leInt2Buff:xB,log2:kB,stringifyBigInts:function t(e){if("bigint"==typeof e||void 0!==e.eq)return e.toString(10);if(e instanceof Uint8Array)return kI(e,0);if(Array.isArray(e))return e.map(t);if("object"==typeof e){const n={};return Object.keys(e).forEach(r=>{n[r]=t(e[r])}),n}return e},stringifyFElements:function t(e,n){if("bigint"==typeof n||void 0!==n.eq)return n.toString(10);if(n instanceof Uint8Array)return e.toString(e.e(n));if(Array.isArray(n))return n.map(t.bind(this,e));if("object"==typeof n){const r={};return Object.keys(n).forEach(i=>{r[i]=t(e,n[i])}),r}return n},unstringifyBigInts:function t(e){if("string"==typeof e&&/^[0-9]+$/.test(e))return BigInt(e);if("string"==typeof e&&/^0x[0-9a-fA-F]+$/.test(e))return BigInt(e);if(Array.isArray(e))return e.map(t);if("object"==typeof e){if(null===e)return null;const n={};return Object.keys(e).forEach(r=>{n[r]=t(e[r])}),n}return e},unstringifyFElements:function t(e,n){if("string"==typeof n&&/^[0-9]+$/.test(n))return e.e(n);if("string"==typeof n&&/^0x[0-9a-fA-F]+$/.test(n))return e.e(n);if(Array.isArray(n))return n.map(t.bind(this,e));if("object"==typeof n){if(null===n)return null;const r={};return Object.keys(n).forEach(i=>{r[i]=t(e,n[i])}),r}return n}});const VB=1<<30;class HB{constructor(t){this.buffers=[],this.byteLength=t;for(let e=0;e<t;e+=VB){const n=Math.min(t-e,VB);this.buffers.push(new Uint8Array(n))}}slice(t,e){void 0===e&&(e=this.byteLength),void 0===t&&(t=0);const n=e-t,r=Math.floor(t/VB);if(r==Math.floor((t+n-1)/VB)||0==n)return this.buffers[r].slice(t%VB,t%VB+n);let i,o=r,s=t%VB,a=n;for(;a>0;){const t=s+a>VB?VB-s:a,e=new Uint8Array(this.buffers[o].buffer,this.buffers[o].byteOffset+s,t);if(t==n)return e.slice();i||(i=n<=VB?new Uint8Array(n):new HB(n)),i.set(e,n-a),a-=t,o++,s=0}return i}set(t,e){void 0===e&&(e=0);const n=t.byteLength;if(0==n)return;const r=Math.floor(e/VB);if(r==Math.floor((e+n-1)/VB))return t instanceof HB&&1==t.buffers.length?this.buffers[r].set(t.buffers[0],e%VB):this.buffers[r].set(t,e%VB);let i=r,o=e%VB,s=n;for(;s>0;){const e=o+s>VB?VB-o:s,r=t.slice(n-s,n-s+e);new Uint8Array(this.buffers[i].buffer,this.buffers[i].byteOffset+o,e).set(r),s-=e,i++,o=0}}}function jB(t,e,n,r){return async function(i){const o=Math.floor(i.byteLength/n);if(o*n!==i.byteLength)throw new Error("Invalid buffer size");const s=Math.floor(o/t.concurrency),a=[];for(let c=0;c<t.concurrency;c++){let l;if(l=c<t.concurrency-1?s:o-c*s,0==l)continue;const u=[{cmd:"ALLOCSET",var:0,buff:i.slice(c*s*n,c*s*n+l*n)},{cmd:"ALLOC",var:1,len:r*l},{cmd:"CALL",fnName:e,params:[{var:0},{val:l},{var:1}]},{cmd:"GET",out:0,var:1,len:r*l}];a.push(t.queueAction(u))}const c=await Promise.all(a);let l;l=i instanceof HB?new HB(o*r):new Uint8Array(o*r);let u=0;for(let t=0;t<c.length;t++)l.set(c[t][0],u),u+=c[t][0].byteLength;return l}}class YB{constructor(t,e,n,r){if(this.tm=t,this.prefix=e,this.p=r,this.n8=n,this.type="F1",this.m=1,this.half=EI(r,VI),this.bitLength=pI(r),this.mask=bI(gI(VI,this.bitLength),VI),this.pOp1=t.alloc(n),this.pOp2=t.alloc(n),this.pOp3=t.alloc(n),this.tm.instance.exports[e+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,this.n8),this.tm.instance.exports[e+"_one"](this.pOp1),this.one=this.tm.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.n64=Math.floor(n/8),this.n32=Math.floor(n/4),8*this.n64!=this.n8)throw new Error("n8 must be a multiple of 8");this.half=EI(this.p,VI),this.nqr=this.two;let i=this.exp(this.nqr,this.half);for(;!this.eq(i,this.negone);)this.nqr=this.add(this.nqr,this.one),i=this.exp(this.nqr,this.half);this.shift=this.mul(this.nqr,this.nqr),this.shiftInv=this.inv(this.shift),this.s=0;let o=bI(this.p,VI);for(;!wI(o);)this.s=this.s+1,o=EI(o,VI);this.w=[],this.w[this.s]=this.exp(this.nqr,o);for(let t=this.s-1;t>=0;t--)this.w[t]=this.square(this.w[t+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=jB(t,e+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=jB(t,e+"_batchFromMontgomery",this.n8,this.n8)}op2(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2)}op1(t,e){return this.tm.setBuff(this.pOp1,e),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(t,e){return this.tm.setBuff(this.pOp1,e),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3)}add(t,e){return this.op2("_add",t,e)}eq(t,e){return this.op2Bool("_eq",t,e)}isZero(t){return this.op1Bool("_isZero",t)}sub(t,e){return this.op2("_sub",t,e)}neg(t){return this.op1("_neg",t)}inv(t){return this.op1("_inverse",t)}toMontgomery(t){return this.op1("_toMontgomery",t)}fromMontgomery(t){return this.op1("_fromMontgomery",t)}mul(t,e){return this.op2("_mul",t,e)}div(t,e){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(t){return this.op1("_square",t)}isSquare(t){return this.op1Bool("_isSquare",t)}sqrt(t){return this.op1("_sqrt",t)}exp(t,e){return e instanceof Uint8Array||(e=PI(dI(e))),this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,e.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(t){return this.op1Bool("_isNegative",t)}e(t,e){if(t instanceof Uint8Array)return t;let n=dI(t,e);fI(n)?(n=DI(n),LI(n,this.p)&&(n=vI(n,this.p)),n=bI(this.p,n)):LI(n,this.p)&&(n=vI(n,this.p));const r=xB(n,this.n8);return this.toMontgomery(r)}toString(t,e){return UI(kI(this.fromMontgomery(t),0),e)}fromRng(t){let e;const n=new Uint8Array(this.n8);do{e=GI;for(let n=0;n<this.n64;n++)e=TI(e,gI(t.nextU64(),64*n));e=RI(e,this.mask)}while(xI(e,this.p));return FI(n,0,e,this.n8),n}random(){return this.fromRng($I())}toObject(t){return kI(this.fromMontgomery(t),0)}fromObject(t){const e=new Uint8Array(this.n8);return FI(e,0,t,this.n8),this.toMontgomery(e)}toRprLE(t,e,n){t.set(this.fromMontgomery(n),e)}toRprBE(t,e,n){const r=this.fromMontgomery(n);for(let t=0;t<this.n8/2;t++){const e=r[t];r[t]=r[this.n8-1-t],r[this.n8-1-t]=e}t.set(r,e)}fromRprLE(t,e){e=e||0;const n=t.slice(e,e+this.n8);return this.toMontgomery(n)}async batchInverse(t){let e=!1;const n=this.n8,r=this.n8;Array.isArray(t)?(t=UB(t,n),e=!0):t=t.slice(0,t.byteLength);const i=Math.floor(t.byteLength/n);if(i*n!==t.byteLength)throw new Error("Invalid buffer size");const o=Math.floor(i/this.tm.concurrency),s=[];for(let e=0;e<this.tm.concurrency;e++){let a;if(a=e<this.tm.concurrency-1?o:i-e*o,0==a)continue;const c=[{cmd:"ALLOCSET",var:0,buff:t.slice(e*o*n,e*o*n+a*n)},{cmd:"ALLOC",var:1,len:r*a},{cmd:"CALL",fnName:this.prefix+"_batchInverse",params:[{var:0},{val:n},{val:a},{var:1},{val:r}]},{cmd:"GET",out:0,var:1,len:r*a}];s.push(this.tm.queueAction(c))}const a=await Promise.all(s);let c;c=t instanceof HB?new HB(i*r):new Uint8Array(i*r);let l=0;for(let t=0;t<a.length;t++)c.set(a[t][0],l),l+=a[t][0].byteLength;return e?PB(c,r):c}}class zB{constructor(t,e,n){this.tm=t,this.prefix=e,this.F=n,this.type="F2",this.m=2*n.m,this.n8=2*this.F.n8,this.n32=2*this.F.n32,this.n64=2*this.F.n64,this.pOp1=t.alloc(2*n.n8),this.pOp2=t.alloc(2*n.n8),this.pOp3=t.alloc(2*n.n8),this.tm.instance.exports[e+"_zero"](this.pOp1),this.zero=t.getBuff(this.pOp1,this.n8),this.tm.instance.exports[e+"_one"](this.pOp1),this.one=t.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2)}op1(t,e){return this.tm.setBuff(this.pOp1,e),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(t,e){return this.tm.setBuff(this.pOp1,e),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3)}add(t,e){return this.op2("_add",t,e)}eq(t,e){return this.op2Bool("_eq",t,e)}isZero(t){return this.op1Bool("_isZero",t)}sub(t,e){return this.op2("_sub",t,e)}neg(t){return this.op1("_neg",t)}inv(t){return this.op1("_inverse",t)}isNegative(t){return this.op1Bool("_isNegative",t)}toMontgomery(t){return this.op1("_toMontgomery",t)}fromMontgomery(t){return this.op1("_fromMontgomery",t)}mul(t,e){return this.op2("_mul",t,e)}mul1(t,e){return this.op2("_mul1",t,e)}div(t,e){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(t){return this.op1("_square",t)}isSquare(t){return this.op1Bool("_isSquare",t)}sqrt(t){return this.op1("_sqrt",t)}exp(t,e){return e instanceof Uint8Array||(e=PI(dI(e))),this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,e.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}e(t,e){if(t instanceof Uint8Array)return t;if(Array.isArray(t)&&2==t.length){const n=this.F.e(t[0],e),r=this.F.e(t[1],e),i=new Uint8Array(2*this.F.n8);return i.set(n),i.set(r,2*this.F.n8),i}throw new Error("invalid F2")}toString(t,e){return`[${this.F.toString(t.slice(0,this.F.n8),e)}, ${this.F.toString(t.slice(this.F.n8),e)}]`}fromRng(t){const e=this.F.fromRng(t),n=this.F.fromRng(t),r=new Uint8Array(2*this.F.n8);return r.set(e),r.set(n,this.F.n8),r}random(){return this.fromRng($I())}toObject(t){return[this.F.toObject(t.slice(0,this.F.n8)),this.F.toObject(t.slice(this.F.n8,2*this.F.n8))]}fromObject(t){const e=new Uint8Array(2*this.F.n8),n=this.F.fromObject(t[0]),r=this.F.fromObject(t[1]);return e.set(n),e.set(r,this.F.n8),e}c1(t){return t.slice(0,this.F.n8)}c2(t){return t.slice(this.F.n8)}}class JB{constructor(t,e,n){this.tm=t,this.prefix=e,this.F=n,this.type="F3",this.m=3*n.m,this.n8=3*this.F.n8,this.n32=3*this.F.n32,this.n64=3*this.F.n64,this.pOp1=t.alloc(3*n.n8),this.pOp2=t.alloc(3*n.n8),this.pOp3=t.alloc(3*n.n8),this.tm.instance.exports[e+"_zero"](this.pOp1),this.zero=t.getBuff(this.pOp1,this.n8),this.tm.instance.exports[e+"_one"](this.pOp1),this.one=t.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2)}op1(t,e){return this.tm.setBuff(this.pOp1,e),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(t,e){return this.tm.setBuff(this.pOp1,e),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3)}eq(t,e){return this.op2Bool("_eq",t,e)}isZero(t){return this.op1Bool("_isZero",t)}add(t,e){return this.op2("_add",t,e)}sub(t,e){return this.op2("_sub",t,e)}neg(t){return this.op1("_neg",t)}inv(t){return this.op1("_inverse",t)}isNegative(t){return this.op1Bool("_isNegative",t)}toMontgomery(t){return this.op1("_toMontgomery",t)}fromMontgomery(t){return this.op1("_fromMontgomery",t)}mul(t,e){return this.op2("_mul",t,e)}div(t,e){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(t){return this.op1("_square",t)}isSquare(t){return this.op1Bool("_isSquare",t)}sqrt(t){return this.op1("_sqrt",t)}exp(t,e){return e instanceof Uint8Array||(e=PI(dI(e))),this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,e.byteLength,this.pOp3),this.getBuff(this.pOp3,this.n8)}e(t,e){if(t instanceof Uint8Array)return t;if(Array.isArray(t)&&3==t.length){const n=this.F.e(t[0],e),r=this.F.e(t[1],e),i=this.F.e(t[2],e),o=new Uint8Array(3*this.F.n8);return o.set(n),o.set(r,this.F.n8),o.set(i,2*this.F.n8),o}throw new Error("invalid F3")}toString(t,e){return`[${this.F.toString(t.slice(0,this.F.n8),e)}, ${this.F.toString(t.slice(this.F.n8,2*this.F.n8),e)}, ${this.F.toString(t.slice(2*this.F.n8),e)}]`}fromRng(t){const e=this.F.fromRng(t),n=this.F.fromRng(t),r=this.F.fromRng(t),i=new Uint8Array(3*this.F.n8);return i.set(e),i.set(n,this.F.n8),i.set(r,2*this.F.n8),i}random(){return this.fromRng($I())}toObject(t){return[this.F.toObject(t.slice(0,this.F.n8)),this.F.toObject(t.slice(this.F.n8,2*this.F.n8)),this.F.toObject(t.slice(2*this.F.n8,3*this.F.n8))]}fromObject(t){const e=new Uint8Array(3*this.F.n8),n=this.F.fromObject(t[0]),r=this.F.fromObject(t[1]),i=this.F.fromObject(t[2]);return e.set(n),e.set(r,this.F.n8),e.set(i,2*this.F.n8),e}c1(t){return t.slice(0,this.F.n8)}c2(t){return t.slice(this.F.n8,2*this.F.n8)}c3(t){return t.slice(2*this.F.n8)}}class WB{constructor(t,e,n,r,i,o){this.tm=t,this.prefix=e,this.F=n,this.pOp1=t.alloc(3*n.n8),this.pOp2=t.alloc(3*n.n8),this.pOp3=t.alloc(3*n.n8),this.tm.instance.exports[e+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,3*n.n8),this.tm.instance.exports[e+"_zeroAffine"](this.pOp1),this.zeroAffine=this.tm.getBuff(this.pOp1,2*n.n8),this.one=this.tm.getBuff(r,3*n.n8),this.g=this.one,this.oneAffine=this.tm.getBuff(r,2*n.n8),this.gAffine=this.oneAffine,this.b=this.tm.getBuff(i,n.n8),o&&(this.cofactor=PI(o)),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.batchLEMtoC=jB(t,e+"_batchLEMtoC",2*n.n8,n.n8),this.batchLEMtoU=jB(t,e+"_batchLEMtoU",2*n.n8,2*n.n8),this.batchCtoLEM=jB(t,e+"_batchCtoLEM",n.n8,2*n.n8),this.batchUtoLEM=jB(t,e+"_batchUtoLEM",2*n.n8,2*n.n8),this.batchToJacobian=jB(t,e+"_batchToJacobian",2*n.n8,3*n.n8),this.batchToAffine=jB(t,e+"_batchToAffine",3*n.n8,2*n.n8)}op2(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op2bool(t,e,n){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp2,this.pOp3)}op1(t,e){return this.tm.setBuff(this.pOp1,e),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op1Affine(t,e){return this.tm.setBuff(this.pOp1,e),this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,2*this.F.n8)}op1Bool(t,e){return this.tm.setBuff(this.pOp1,e),!!this.tm.instance.exports[this.prefix+t](this.pOp1,this.pOp3)}add(t,e){if(t.byteLength==3*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2("_add",t,e);if(e.byteLength==2*this.F.n8)return this.op2("_addMixed",t,e);throw new Error("invalid point size")}if(t.byteLength==2*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2("_addMixed",e,t);if(e.byteLength==2*this.F.n8)return this.op2("_addAffine",t,e);throw new Error("invalid point size")}throw new Error("invalid point size")}sub(t,e){if(t.byteLength==3*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2("_sub",t,e);if(e.byteLength==2*this.F.n8)return this.op2("_subMixed",t,e);throw new Error("invalid point size")}if(t.byteLength==2*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2("_subMixed",e,t);if(e.byteLength==2*this.F.n8)return this.op2("_subAffine",t,e);throw new Error("invalid point size")}throw new Error("invalid point size")}neg(t){if(t.byteLength==3*this.F.n8)return this.op1("_neg",t);if(t.byteLength==2*this.F.n8)return this.op1Affine("_negAffine",t);throw new Error("invalid point size")}double(t){if(t.byteLength==3*this.F.n8)return this.op1("_double",t);if(t.byteLength==2*this.F.n8)return this.op1("_doubleAffine",t);throw new Error("invalid point size")}isZero(t){if(t.byteLength==3*this.F.n8)return this.op1Bool("_isZero",t);if(t.byteLength==2*this.F.n8)return this.op1Bool("_isZeroAffine",t);throw new Error("invalid point size")}timesScalar(t,e){let n;if(e instanceof Uint8Array||(e=PI(dI(e))),t.byteLength==3*this.F.n8)n=this.prefix+"_timesScalar";else{if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");n=this.prefix+"_timesScalarAffine"}return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[n](this.pOp1,this.pOp2,e.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}timesFr(t,e){let n;if(t.byteLength==3*this.F.n8)n=this.prefix+"_timesFr";else{if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");n=this.prefix+"_timesFrAffine"}return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,e),this.tm.instance.exports[n](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}eq(t,e){if(t.byteLength==3*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2bool("_eq",t,e);if(e.byteLength==2*this.F.n8)return this.op2bool("_eqMixed",t,e);throw new Error("invalid point size")}if(t.byteLength==2*this.F.n8){if(e.byteLength==3*this.F.n8)return this.op2bool("_eqMixed",e,t);if(e.byteLength==2*this.F.n8)return this.op2bool("_eqAffine",t,e);throw new Error("invalid point size")}throw new Error("invalid point size")}toAffine(t){if(t.byteLength==3*this.F.n8)return this.op1Affine("_toAffine",t);if(t.byteLength==2*this.F.n8)return t;throw new Error("invalid point size")}toJacobian(t){if(t.byteLength==3*this.F.n8)return t;if(t.byteLength==2*this.F.n8)return this.op1("_toJacobian",t);throw new Error("invalid point size")}toRprUncompressed(t,e,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(n.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoU"](this.pOp1,this.pOp1);const r=this.tm.getBuff(this.pOp1,2*this.F.n8);t.set(r,e)}fromRprUncompressed(t,e){const n=t.slice(e,e+2*this.F.n8);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+"_UtoLEM"](this.pOp1,this.pOp1),this.tm.getBuff(this.pOp1,2*this.F.n8)}toRprCompressed(t,e,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(n.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoC"](this.pOp1,this.pOp1);const r=this.tm.getBuff(this.pOp1,this.F.n8);t.set(r,e)}fromRprCompressed(t,e){const n=t.slice(e,e+this.F.n8);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+"_CtoLEM"](this.pOp1,this.pOp2),this.tm.getBuff(this.pOp2,2*this.F.n8)}toUncompressed(t){const e=new Uint8Array(2*this.F.n8);return this.toRprUncompressed(e,0,t),e}toRprLEM(t,e,n){if(n.byteLength!=2*this.F.n8){if(n.byteLength!=3*this.F.n8)throw new Error("invalid point size");{this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);const r=this.tm.getBuff(this.pOp1,2*this.F.n8);t.set(r,e)}}else t.set(n,e)}fromRprLEM(t,e){return e=e||0,t.slice(e,e+2*this.F.n8)}toString(t,e){if(t.byteLength==3*this.F.n8){return`[ ${this.F.toString(t.slice(0,this.F.n8),e)}, ${this.F.toString(t.slice(this.F.n8,2*this.F.n8),e)}, ${this.F.toString(t.slice(2*this.F.n8),e)} ]`}if(t.byteLength==2*this.F.n8){return`[ ${this.F.toString(t.slice(0,this.F.n8),e)}, ${this.F.toString(t.slice(this.F.n8),e)} ]`}throw new Error("invalid point size")}isValid(t){if(this.isZero(t))return!0;const e=this.F,n=this.toAffine(t),r=n.slice(0,this.F.n8),i=n.slice(this.F.n8,2*this.F.n8),o=e.add(e.mul(e.square(r),r),this.b),s=e.square(i);return e.eq(o,s)}fromRng(t){const e=this.F;let n,r,i=[];do{i[0]=e.fromRng(t),n=t.nextBool(),r=e.add(e.mul(e.square(i[0]),i[0]),this.b)}while(!e.isSquare(r));i[1]=e.sqrt(r);n^e.isNegative(i[1])&&(i[1]=e.neg(i[1]));let o=new Uint8Array(2*this.F.n8);return o.set(i[0]),o.set(i[1],this.F.n8),this.cofactor&&(o=this.timesScalar(o,this.cofactor)),o}toObject(t){if(this.isZero(t))return[this.F.toObject(this.F.zero),this.F.toObject(this.F.one),this.F.toObject(this.F.zero)];const e=this.F.toObject(t.slice(0,this.F.n8)),n=this.F.toObject(t.slice(this.F.n8,2*this.F.n8));let r;return r=t.byteLength==3*this.F.n8?this.F.toObject(t.slice(2*this.F.n8,3*this.F.n8)):this.F.toObject(this.F.one),[e,n,r]}fromObject(t){const e=this.F.fromObject(t[0]),n=this.F.fromObject(t[1]);let r;if(r=3==t.length?this.F.fromObject(t[2]):this.F.one,this.F.isZero(r,this.F.one))return this.zeroAffine;if(this.F.eq(r,this.F.one)){const t=new Uint8Array(2*this.F.n8);return t.set(e),t.set(n,this.F.n8),t}{const t=new Uint8Array(3*this.F.n8);return t.set(e),t.set(n,this.F.n8),t.set(r,2*this.F.n8),t}}e(t){return t instanceof Uint8Array?t:this.fromObject(t)}x(t){return this.toAffine(t).slice(0,this.F.n8)}y(t){return this.toAffine(t).slice(this.F.n8)}}class qB{constructor(){this.promise=new Promise((t,e)=>{this.reject=e,this.resolve=t})}}let KB;const XB='(function thread(self) {\n const MAXMEM = 32767;\n let instance;\n let memory;\n\n if (self) {\n self.onmessage = function(e) {\n let data;\n if (e.data) {\n data = e.data;\n } else {\n data = e;\n }\n\n if (data[0].cmd == "INIT") {\n init(data[0]).then(function() {\n self.postMessage(data.result);\n });\n } else if (data[0].cmd == "TERMINATE") {\n self.close();\n } else {\n const res = runTask(data);\n self.postMessage(res);\n }\n };\n }\n\n async function init(data) {\n const code = new Uint8Array(data.code);\n const wasmModule = await WebAssembly.compile(code);\n memory = new WebAssembly.Memory({initial:data.init, maximum: MAXMEM});\n\n instance = await WebAssembly.instantiate(wasmModule, {\n env: {\n "memory": memory\n }\n });\n }\n\n\n\n function alloc(length) {\n const u32 = new Uint32Array(memory.buffer, 0, 1);\n while (u32[0] & 3) u32[0]++; // Return always aligned pointers\n const res = u32[0];\n u32[0] += length;\n if (u32[0] + length > memory.buffer.byteLength) {\n const currentPages = memory.buffer.byteLength / 0x10000;\n let requiredPages = Math.floor((u32[0] + length) / 0x10000)+1;\n if (requiredPages>MAXMEM) requiredPages=MAXMEM;\n memory.grow(requiredPages-currentPages);\n }\n return res;\n }\n\n function allocBuffer(buffer) {\n const p = alloc(buffer.byteLength);\n setBuffer(p, buffer);\n return p;\n }\n\n function getBuffer(pointer, length) {\n const u8 = new Uint8Array(memory.buffer);\n return new Uint8Array(u8.buffer, u8.byteOffset + pointer, length);\n }\n\n function setBuffer(pointer, buffer) {\n const u8 = new Uint8Array(memory.buffer);\n u8.set(new Uint8Array(buffer), pointer);\n }\n\n function runTask(task) {\n if (task[0].cmd == "INIT") {\n return init(task[0]);\n }\n const ctx = {\n vars: [],\n out: []\n };\n const u32a = new Uint32Array(memory.buffer, 0, 1);\n const oldAlloc = u32a[0];\n for (let i=0; i<task.length; i++) {\n switch (task[i].cmd) {\n case "ALLOCSET":\n ctx.vars[task[i].var] = allocBuffer(task[i].buff);\n break;\n case "ALLOC":\n ctx.vars[task[i].var] = alloc(task[i].len);\n break;\n case "SET":\n setBuffer(ctx.vars[task[i].var], task[i].buff);\n break;\n case "CALL": {\n const params = [];\n for (let j=0; j<task[i].params.length; j++) {\n const p = task[i].params[j];\n if (typeof p.var !== "undefined") {\n params.push(ctx.vars[p.var] + (p.offset || 0));\n } else if (typeof p.val != "undefined") {\n params.push(p.val);\n }\n }\n instance.exports[task[i].fnName](...params);\n break;\n }\n case "GET":\n ctx.out[task[i].out] = getBuffer(ctx.vars[task[i].var], task[i].len).slice();\n break;\n default:\n throw new Error("Invalid cmd");\n }\n }\n const u32b = new Uint32Array(memory.buffer, 0, 1);\n u32b[0] = oldAlloc;\n return ctx.out;\n }\n\n\n return runTask;\n})(self)';if(globalThis?.Blob){const t=(new TextEncoder).encode(XB),e=new Blob([t],{type:"application/javascript"});KB=URL.createObjectURL(e)}else KB="data:application/javascript;base64,"+globalThis.btoa(XB);async function ZB(t,e){const n=new $B;n.memory=new WebAssembly.Memory({initial:25}),n.u8=new Uint8Array(n.memory.buffer),n.u32=new Uint32Array(n.memory.buffer);const r=await WebAssembly.compile(t.code);if(n.instance=await WebAssembly.instantiate(r,{env:{memory:n.memory}}),globalThis?.Worker||(e=!0),n.singleThread=e,n.initalPFree=n.u32[0],n.pq=t.pq,n.pr=t.pr,n.pG1gen=t.pG1gen,n.pG1zero=t.pG1zero,n.pG2gen=t.pG2gen,n.pG2zero=t.pG2zero,n.pOneT=t.pOneT,e)n.code=t.code,n.taskManager=function(t){const e=32767;let n,r;async function i(t){const i=new Uint8Array(t.code),o=await WebAssembly.compile(i);r=new WebAssembly.Memory({initial:t.init,maximum:e}),n=await WebAssembly.instantiate(o,{env:{memory:r}})}function o(t){const n=new Uint32Array(r.buffer,0,1);for(;3&n[0];)n[0]++;const i=n[0];if(n[0]+=t,n[0]+t>r.buffer.byteLength){const i=r.buffer.byteLength/65536;let o=Math.floor((n[0]+t)/65536)+1;o>e&&(o=e),r.grow(o-i)}return i}function s(t){const e=o(t.byteLength);return c(e,t),e}function a(t,e){const n=new Uint8Array(r.buffer);return new Uint8Array(n.buffer,n.byteOffset+t,e)}function c(t,e){new Uint8Array(r.buffer).set(new Uint8Array(e),t)}function l(t){if("INIT"==t[0].cmd)return i(t[0]);const e={vars:[],out:[]},l=new Uint32Array(r.buffer,0,1)[0];for(let r=0;r<t.length;r++)switch(t[r].cmd){case"ALLOCSET":e.vars[t[r].var]=s(t[r].buff);break;case"ALLOC":e.vars[t[r].var]=o(t[r].len);break;case"SET":c(e.vars[t[r].var],t[r].buff);break;case"CALL":{const i=[];for(let n=0;n<t[r].params.length;n++){const o=t[r].params[n];void 0!==o.var?i.push(e.vars[o.var]+(o.offset||0)):void 0!==o.val&&i.push(o.val)}n.exports[t[r].fnName](...i);break}case"GET":e.out[t[r].out]=a(e.vars[t[r].var],t[r].len).slice();break;default:throw new Error("Invalid cmd")}return new Uint32Array(r.buffer,0,1)[0]=l,e.out}return t&&(t.onmessage=function(e){let n;if(n=e.data?e.data:e,"INIT"==n[0].cmd)i(n[0]).then(function(){t.postMessage(n.result)});else if("TERMINATE"==n[0].cmd)t.close();else{const e=l(n);t.postMessage(e)}}),l}(),await n.taskManager([{cmd:"INIT",init:25,code:n.code.slice()}]),n.concurrency=1;else{n.workers=[],n.pendingDeferreds=[],n.working=[];let e=2;"object"==typeof navigator&&navigator.hardwareConcurrency&&(e=navigator.hardwareConcurrency),0==e&&(e=2),e>64&&(e=64),n.concurrency=e;for(let t=0;t<e;t++)n.workers[t]=new Worker(KB),n.workers[t].addEventListener("message",i(t)),n.working[t]=!1;const r=[];for(let e=0;e<n.workers.length;e++){const i=t.code.slice();r.push(n.postAction(e,[{cmd:"INIT",init:25,code:i}],[i.buffer]))}await Promise.all(r)}return n;function i(t){return function(e){let r;r=e&&e.data?e.data:e,n.working[t]=!1,n.pendingDeferreds[t].resolve(r),n.processWorks()}}}class $B{constructor(){this.actionQueue=[],this.oldPFree=0}startSyncOp(){if(0!=this.oldPFree)throw new Error("Sync operation in progress");this.oldPFree=this.u32[0]}endSyncOp(){if(0==this.oldPFree)throw new Error("No sync operation in progress");this.u32[0]=this.oldPFree,this.oldPFree=0}postAction(t,e,n,r){if(this.working[t])throw new Error("Posting a job t a working worker");return this.working[t]=!0,this.pendingDeferreds[t]=r||new qB,this.workers[t].postMessage(e,n),this.pendingDeferreds[t].promise}processWorks(){for(let t=0;t<this.workers.length&&this.actionQueue.length>0;t++)if(0==this.working[t]){const e=this.actionQueue.shift();this.postAction(t,e.data,e.transfers,e.deferred)}}queueAction(t,e){const n=new qB;if(this.singleThread){const e=this.taskManager(t);n.resolve(e)}else this.actionQueue.push({data:t,transfers:e,deferred:n}),this.processWorks();return n.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(t){const e=this.alloc(t.byteLength);return this.setBuff(e,t),e}getBuff(t,e){return this.u8.slice(t,t+e)}setBuff(t,e){this.u8.set(new Uint8Array(e),t)}alloc(t){for(;3&this.u32[0];)this.u32[0]++;const e=this.u32[0];return this.u32[0]+=t,e}async terminate(){for(let t=0;t<this.workers.length;t++)this.workers[t].postMessage([{cmd:"TERMINATE"}]);var t;await(t=200,new Promise(e=>setTimeout(e,t)))}}function tT(t,e){const n=t[e],r=t.Fr,i=t.tm;t[e].batchApplyKey=async function(t,o,s,a,c){let l,u,h,d,p;if(a=a||"affine",c=c||"affine","G1"==e)"jacobian"==a?(h=3*n.F.n8,l="g1m_batchApplyKey"):(h=2*n.F.n8,l="g1m_batchApplyKeyMixed"),d=3*n.F.n8,"jacobian"==c?p=3*n.F.n8:(u="g1m_batchToAffine",p=2*n.F.n8);else if("G2"==e)"jacobian"==a?(h=3*n.F.n8,l="g2m_batchApplyKey"):(h=2*n.F.n8,l="g2m_batchApplyKeyMixed"),d=3*n.F.n8,"jacobian"==c?p=3*n.F.n8:(u="g2m_batchToAffine",p=2*n.F.n8);else{if("Fr"!=e)throw new Error("Invalid group: "+e);l="frm_batchApplyKey",h=n.n8,d=n.n8,p=n.n8}const f=Math.floor(t.byteLength/h),A=Math.floor(f/i.concurrency),g=[];s=r.e(s);let E=r.e(o);for(let e=0;e<i.concurrency;e++){let n;if(n=e<i.concurrency-1?A:f-e*A,0==n)continue;const o=[];o.push({cmd:"ALLOCSET",var:0,buff:t.slice(e*A*h,e*A*h+n*h)}),o.push({cmd:"ALLOCSET",var:1,buff:E}),o.push({cmd:"ALLOCSET",var:2,buff:s}),o.push({cmd:"ALLOC",var:3,len:n*Math.max(d,p)}),o.push({cmd:"CALL",fnName:l,params:[{var:0},{val:n},{var:1},{var:2},{var:3}]}),u&&o.push({cmd:"CALL",fnName:u,params:[{var:3},{val:n},{var:3}]}),o.push({cmd:"GET",out:0,var:3,len:n*p}),g.push(i.queueAction(o)),E=r.mul(E,r.exp(s,n))}const m=await Promise.all(g);let y;y=t instanceof HB?new HB(f*p):new Uint8Array(f*p);let w=0;for(let t=0;t<m.length;t++)y.set(m[t][0],w),w+=m[t][0].byteLength;return y}}const eT=[1,1,1,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,16,17,17,17,17,17,17,17,17,17,17];function nT(t,e){const n=t[e],r=n.tm;async function i(t,r,i,o,s){if(!(t instanceof Uint8Array))throw o&&o.error(`${s} _multiExpChunk buffBases is not Uint8Array`),new Error(`${s} _multiExpChunk buffBases is not Uint8Array`);if(!(r instanceof Uint8Array))throw o&&o.error(`${s} _multiExpChunk buffScalars is not Uint8Array`),new Error(`${s} _multiExpChunk buffScalars is not Uint8Array`);let a,c;if(i=i||"affine","G1"==e)"affine"==i?(c="g1m_multiexpAffine_chunk",a=2*n.F.n8):(c="g1m_multiexp_chunk",a=3*n.F.n8);else{if("G2"!=e)throw new Error("Invalid group");"affine"==i?(c="g2m_multiexpAffine_chunk",a=2*n.F.n8):(c="g2m_multiexp_chunk",a=3*n.F.n8)}const l=Math.floor(t.byteLength/a);if(0==l)return n.zero;const u=Math.floor(r.byteLength/l);if(u*l!=r.byteLength)throw new Error("Scalar size does not match");const h=eT[kB(l)],d=Math.floor((8*u-1)/h)+1,p=[];for(let e=0;e<d;e++){const i=[{cmd:"ALLOCSET",var:0,buff:t},{cmd:"ALLOCSET",var:1,buff:r},{cmd:"ALLOC",var:2,len:3*n.F.n8},{cmd:"CALL",fnName:c,params:[{var:0},{var:1},{val:u},{val:l},{val:e*h},{val:Math.min(8*u-e*h,h)},{var:2}]},{cmd:"GET",out:0,var:2,len:3*n.F.n8}];p.push(n.tm.queueAction(i))}const f=await Promise.all(p);let A=n.zero;for(let t=f.length-1;t>=0;t--){if(!n.isZero(A))for(let t=0;t<h;t++)A=n.double(A);A=n.add(A,f[t][0])}return A}async function o(t,o,s,a,c){const l=1<<22;let u;if("G1"==e)u="affine"==s?2*n.F.n8:3*n.F.n8;else{if("G2"!=e)throw new Error("Invalid group");u="affine"==s?2*n.F.n8:3*n.F.n8}const h=Math.floor(t.byteLength/u);if(0==h)return n.zero;const d=Math.floor(o.byteLength/h);if(d*h!=o.byteLength)throw new Error("Scalar size does not match");const p=eT[kB(h)],f=Math.floor((8*d-1)/p)+1;let A;A=Math.floor(h/(r.concurrency/f)),A>l&&(A=l),A<1024&&(A=1024);const g=[];for(let e=0;e<h;e+=A){a&&a.debug(`Multiexp start: ${c}: ${e}/${h}`);const n=Math.min(h-e,A),r=t.slice(e*u,(e+n)*u),l=o.slice(e*d,(e+n)*d);g.push(i(r,l,s,a,c).then(t=>(a&&a.debug(`Multiexp end: ${c}: ${e}/${h}`),t)))}const E=await Promise.all(g);let m=n.zero;for(let t=E.length-1;t>=0;t--)m=n.add(m,E[t]);return m}n.multiExp=async function(t,e,n,r){return await o(t,e,"jacobian",n,r)},n.multiExpAffine=async function(t,e,n,r){return await o(t,e,"affine",n,r)}}function rT(t,e){const n=t[e],r=t.Fr,i=n.tm;async function o(t,a,c,l,u,h){c=c||"affine",l=l||"affine";let d,p,f,A,g,E,m,y;"G1"==e?("affine"==c?(d=2*n.F.n8,A="g1m_batchToJacobian"):d=3*n.F.n8,p=3*n.F.n8,a&&(y="g1m_fftFinal"),m="g1m_fftJoin",E="g1m_fftMix","affine"==l?(f=2*n.F.n8,g="g1m_batchToAffine"):f=3*n.F.n8):"G2"==e?("affine"==c?(d=2*n.F.n8,A="g2m_batchToJacobian"):d=3*n.F.n8,p=3*n.F.n8,a&&(y="g2m_fftFinal"),m="g2m_fftJoin",E="g2m_fftMix","affine"==l?(f=2*n.F.n8,g="g2m_batchToAffine"):f=3*n.F.n8):"Fr"==e&&(d=n.n8,p=n.n8,f=n.n8,a&&(y="frm_fftFinal"),E="frm_fftMix",m="frm_fftJoin");let w=!1;Array.isArray(t)?(t=UB(t,d),w=!0):t=t.slice(0,t.byteLength);const I=t.byteLength/d,C=kB(I);if(1<<C!=I)throw new Error("fft must be multiple of 2");if(C==r.s+1){let e;return e=a?await async function(t,e,n,i,a){let c,l;c=t.slice(0,t.byteLength/2),l=t.slice(t.byteLength/2,t.byteLength);const u=[];u.push(o(c,!0,e,"jacobian",i,a)),u.push(o(l,!0,e,"jacobian",i,a)),[c,l]=await Promise.all(u);const h=await s(c,l,"fftJoinExtInv",r.one,r.shiftInv,"jacobian",n,i,a);let d;d=h[0].byteLength>1<<28?new HB(2*h[0].byteLength):new Uint8Array(2*h[0].byteLength);return d.set(h[0]),d.set(h[1],h[0].byteLength),d}(t,c,l,u,h):await async function(t,e,n,i,a){let c,l;c=t.slice(0,t.byteLength/2),l=t.slice(t.byteLength/2,t.byteLength);const u=[];[c,l]=await s(c,l,"fftJoinExt",r.one,r.shift,e,"jacobian",i,a),u.push(o(c,!1,"jacobian",n,i,a)),u.push(o(l,!1,"jacobian",n,i,a));const h=await Promise.all(u);let d;d=h[0].byteLength>1<<28?new HB(2*h[0].byteLength):new Uint8Array(2*h[0].byteLength);return d.set(h[0]),d.set(h[1],h[0].byteLength),d}(t,c,l,u,h),w?PB(e,f):e}let B,T,b;a&&(B=r.inv(r.e(I))),QB(t,d);let D=Math.min(16384,I),M=I/D;for(;M<i.concurrency&&D>=16;)M*=2,D/=2;const N=kB(D),S=[];for(let e=0;e<M;e++){u&&u.debug(`${h}: fft ${C} mix start: ${e}/${M}`);const n=[];n.push({cmd:"ALLOC",var:0,len:p*D});const r=t.slice(D*e*d,D*(e+1)*d);n.push({cmd:"SET",var:0,buff:r}),A&&n.push({cmd:"CALL",fnName:A,params:[{var:0},{val:D},{var:0}]});for(let t=1;t<=N;t++)n.push({cmd:"CALL",fnName:E,params:[{var:0},{val:D},{val:t}]});N==C?(y&&(n.push({cmd:"ALLOCSET",var:1,buff:B}),n.push({cmd:"CALL",fnName:y,params:[{var:0},{val:D},{var:1}]})),g&&n.push({cmd:"CALL",fnName:g,params:[{var:0},{val:D},{var:0}]}),n.push({cmd:"GET",out:0,var:0,len:D*f})):n.push({cmd:"GET",out:0,var:0,len:p*D}),S.push(i.queueAction(n).then(t=>(u&&u.debug(`${h}: fft ${C} mix end: ${e}/${M}`),t)))}b=await Promise.all(S);for(let t=0;t<M;t++)b[t]=b[t][0];for(let t=N+1;t<=C;t++){u&&u.debug(`${h}: fft ${C} join: ${t}/${C}`);const e=1<<C-t,n=M/e,o=[];for(let s=0;s<e;s++)for(let a=0;a<n/2;a++){const c=r.exp(r.w[t],a*D),l=r.w[t],d=s*n+a,A=s*n+a+n/2,E=[];E.push({cmd:"ALLOCSET",var:0,buff:b[d]}),E.push({cmd:"ALLOCSET",var:1,buff:b[A]}),E.push({cmd:"ALLOCSET",var:2,buff:c}),E.push({cmd:"ALLOCSET",var:3,buff:l}),E.push({cmd:"CALL",fnName:m,params:[{var:0},{var:1},{val:D},{var:2},{var:3}]}),t==C?(y&&(E.push({cmd:"ALLOCSET",var:4,buff:B}),E.push({cmd:"CALL",fnName:y,params:[{var:0},{val:D},{var:4}]}),E.push({cmd:"CALL",fnName:y,params:[{var:1},{val:D},{var:4}]})),g&&(E.push({cmd:"CALL",fnName:g,params:[{var:0},{val:D},{var:0}]}),E.push({cmd:"CALL",fnName:g,params:[{var:1},{val:D},{var:1}]})),E.push({cmd:"GET",out:0,var:0,len:D*f}),E.push({cmd:"GET",out:1,var:1,len:D*f})):(E.push({cmd:"GET",out:0,var:0,len:D*p}),E.push({cmd:"GET",out:1,var:1,len:D*p})),o.push(i.queueAction(E).then(r=>(u&&u.debug(`${h}: fft ${C} join ${t}/${C} ${s+1}/${e} ${a}/${n/2}`),r)))}const s=await Promise.all(o);for(let t=0;t<e;t++)for(let e=0;e<n/2;e++){const r=t*n+e,i=t*n+e+n/2,o=s.shift();b[r]=o[0],b[i]=o[1]}}if(T=t instanceof HB?new HB(I*f):new Uint8Array(I*f),a){T.set(b[0].slice((D-1)*f));let t=f;for(let e=M-1;e>0;e--)T.set(b[e],t),t+=D*f,delete b[e];T.set(b[0].slice(0,(D-1)*f),t),delete b[0]}else for(let t=0;t<M;t++)T.set(b[t],D*f*t),delete b[t];return w?PB(T,f):T}async function s(t,o,s,a,c,l,u,h,d){let p,f,A,g,E,m;if("G1"==e)"affine"==l?(E=2*n.F.n8,f="g1m_batchToJacobian"):E=3*n.F.n8,m=3*n.F.n8,p="g1m_"+s,"affine"==u?(A="g1m_batchToAffine",g=2*n.F.n8):g=3*n.F.n8;else if("G2"==e)"affine"==l?(E=2*n.F.n8,f="g2m_batchToJacobian"):E=3*n.F.n8,p="g2m_"+s,m=3*n.F.n8,"affine"==u?(A="g2m_batchToAffine",g=2*n.F.n8):g=3*n.F.n8;else{if("Fr"!=e)throw new Error("Invalid group");E=r.n8,g=r.n8,m=r.n8,p="frm_"+s}if(t.byteLength!=o.byteLength)throw new Error("Invalid buffer size");const y=Math.floor(t.byteLength/E);if(y!=1<<kB(y))throw new Error("Invalid number of points");let w=Math.floor(y/i.concurrency);w<16&&(w=16),w>65536&&(w=65536);const I=[];for(let e=0;e<y;e+=w){h&&h.debug(`${d}: fftJoinExt Start: ${e}/${y}`);const n=Math.min(y-e,w),s=r.mul(a,r.exp(c,e)),l=[],u=t.slice(e*E,(e+n)*E),C=o.slice(e*E,(e+n)*E);l.push({cmd:"ALLOC",var:0,len:m*n}),l.push({cmd:"SET",var:0,buff:u}),l.push({cmd:"ALLOC",var:1,len:m*n}),l.push({cmd:"SET",var:1,buff:C}),l.push({cmd:"ALLOCSET",var:2,buff:s}),l.push({cmd:"ALLOCSET",var:3,buff:c}),f&&(l.push({cmd:"CALL",fnName:f,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:"CALL",fnName:f,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:"CALL",fnName:p,params:[{var:0},{var:1},{val:n},{var:2},{var:3},{val:r.s}]}),A&&(l.push({cmd:"CALL",fnName:A,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:"CALL",fnName:A,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:"GET",out:0,var:0,len:n*g}),l.push({cmd:"GET",out:1,var:1,len:n*g}),I.push(i.queueAction(l).then(t=>(h&&h.debug(`${d}: fftJoinExt End: ${e}/${y}`),t)))}const C=await Promise.all(I);let B,T;y*g>1<<28?(B=new HB(y*g),T=new HB(y*g)):(B=new Uint8Array(y*g),T=new Uint8Array(y*g));let b=0;for(let t=0;t<C.length;t++)B.set(C[t][0],b),T.set(C[t][1],b),b+=C[t][0].byteLength;return[B,T]}n.fft=async function(t,e,n,r,i){return await o(t,!1,e,n,r,i)},n.ifft=async function(t,e,n,r,i){return await o(t,!0,e,n,r,i)},n.lagrangeEvaluations=async function(t,i,a,c,l){let u;if(i=i||"affine",a=a||"affine","G1"==e)u="affine"==i?2*n.F.n8:3*n.F.n8;else if("G2"==e)u="affine"==i?2*n.F.n8:3*n.F.n8;else{if("Fr"!=e)throw new Error("Invalid group");u=r.n8}const h=t.byteLength/u,d=kB(h);if(2**d*u!=t.byteLength)throw c&&c.error("lagrangeEvaluations iinvalid input size"),new Error("lagrangeEvaluations invalid Input size");if(d<=r.s)return await n.ifft(t,i,a,c,l);if(d>r.s+1)throw c&&c.error("lagrangeEvaluations input too big"),new Error("lagrangeEvaluations input too big");let p=t.slice(0,t.byteLength/2),f=t.slice(t.byteLength/2,t.byteLength);const A=r.exp(r.shift,h/2),g=r.inv(r.sub(r.one,A));[p,f]=await s(p,f,"prepareLagrangeEvaluation",g,r.shiftInv,i,"jacobian",c,l+" prep");const E=[];let m;return E.push(o(p,!0,"jacobian",a,c,l+" t0")),E.push(o(f,!0,"jacobian",a,c,l+" t1")),[p,f]=await Promise.all(E),m=p.byteLength>1<<28?new HB(2*p.byteLength):new Uint8Array(2*p.byteLength),m.set(p),m.set(f,p.byteLength),m},n.fftMix=async function(t){const o=3*n.F.n8;let s,a;if("G1"==e)s="g1m_fftMix",a="g1m_fftJoin";else if("G2"==e)s="g2m_fftMix",a="g2m_fftJoin";else{if("Fr"!=e)throw new Error("Invalid group");s="frm_fftMix",a="frm_fftJoin"}const c=Math.floor(t.byteLength/o),l=kB(c);let u=1<<kB(i.concurrency);c<=2*u&&(u=1);const h=c/u,d=kB(h),p=[];for(let e=0;e<u;e++){const n=[],r=t.slice(e*h*o,(e+1)*h*o);n.push({cmd:"ALLOCSET",var:0,buff:r});for(let t=1;t<=d;t++)n.push({cmd:"CALL",fnName:s,params:[{var:0},{val:h},{val:t}]});n.push({cmd:"GET",out:0,var:0,len:h*o}),p.push(i.queueAction(n))}const f=await Promise.all(p),A=[];for(let t=0;t<f.length;t++)A[t]=f[t][0];for(let t=d+1;t<=l;t++){const e=1<<l-t,n=u/e,s=[];for(let c=0;c<e;c++)for(let e=0;e<n/2;e++){const l=r.exp(r.w[t],e*h),u=r.w[t],d=c*n+e,p=c*n+e+n/2,f=[];f.push({cmd:"ALLOCSET",var:0,buff:A[d]}),f.push({cmd:"ALLOCSET",var:1,buff:A[p]}),f.push({cmd:"ALLOCSET",var:2,buff:l}),f.push({cmd:"ALLOCSET",var:3,buff:u}),f.push({cmd:"CALL",fnName:a,params:[{var:0},{var:1},{val:h},{var:2},{var:3}]}),f.push({cmd:"GET",out:0,var:0,len:h*o}),f.push({cmd:"GET",out:1,var:1,len:h*o}),s.push(i.queueAction(f))}const c=await Promise.all(s);for(let t=0;t<e;t++)for(let e=0;e<n/2;e++){const r=t*n+e,i=t*n+e+n/2,o=c.shift();A[r]=o[0],A[i]=o[1]}}let g;g=t instanceof HB?new HB(c*o):new Uint8Array(c*o);let E=0;for(let t=0;t<u;t++)g.set(A[t],E),E+=A[t].byteLength;return g},n.fftJoin=async function(t,o,s,a){const c=3*n.F.n8;let l;if("G1"==e)l="g1m_fftJoin";else if("G2"==e)l="g2m_fftJoin";else{if("Fr"!=e)throw new Error("Invalid group");l="frm_fftJoin"}if(t.byteLength!=o.byteLength)throw new Error("Invalid buffer size");const u=Math.floor(t.byteLength/c);if(u!=1<<kB(u))throw new Error("Invalid number of points");let h=1<<kB(i.concurrency);u<=2*h&&(h=1);const d=u/h,p=[];for(let e=0;e<h;e++){const n=[],u=r.mul(s,r.exp(a,e*d)),h=t.slice(e*d*c,(e+1)*d*c),f=o.slice(e*d*c,(e+1)*d*c);n.push({cmd:"ALLOCSET",var:0,buff:h}),n.push({cmd:"ALLOCSET",var:1,buff:f}),n.push({cmd:"ALLOCSET",var:2,buff:u}),n.push({cmd:"ALLOCSET",var:3,buff:a}),n.push({cmd:"CALL",fnName:l,params:[{var:0},{var:1},{val:d},{var:2},{var:3}]}),n.push({cmd:"GET",out:0,var:0,len:d*c}),n.push({cmd:"GET",out:1,var:1,len:d*c}),p.push(i.queueAction(n))}const f=await Promise.all(p);let A,g;t instanceof HB?(A=new HB(u*c),g=new HB(u*c)):(A=new Uint8Array(u*c),g=new Uint8Array(u*c));let E=0;for(let t=0;t<f.length;t++)A.set(f[t][0],E),g.set(f[t][1],E),E+=f[t][0].byteLength;return[A,g]},n.fftFinal=async function(t,r){const o=3*n.F.n8,s=2*n.F.n8;let a,c;if("G1"==e)a="g1m_fftFinal",c="g1m_batchToAffine";else{if("G2"!=e)throw new Error("Invalid group");a="g2m_fftFinal",c="g2m_batchToAffine"}const l=Math.floor(t.byteLength/o);if(l!=1<<kB(l))throw new Error("Invalid number of points");const u=Math.floor(l/i.concurrency),h=[];for(let e=0;e<i.concurrency;e++){let n;if(n=e<i.concurrency-1?u:l-e*u,0==n)continue;const d=[],p=t.slice(e*u*o,(e*u+n)*o);d.push({cmd:"ALLOCSET",var:0,buff:p}),d.push({cmd:"ALLOCSET",var:1,buff:r}),d.push({cmd:"CALL",fnName:a,params:[{var:0},{val:n},{var:1}]}),d.push({cmd:"CALL",fnName:c,params:[{var:0},{val:n},{var:0}]}),d.push({cmd:"GET",out:0,var:0,len:n*s}),h.push(i.queueAction(d))}const d=await Promise.all(h);let p;p=t instanceof HB?new HB(l*s):new Uint8Array(l*s);let f=0;for(let t=d.length-1;t>=0;t--)p.set(d[t][0],f),f+=d[t][0].byteLength;return p}}async function iT(t){const e=await ZB(t.wasm,t.singleThread),n={};return n.q=dI(t.wasm.q.toString()),n.r=dI(t.wasm.r.toString()),n.name=t.name,n.tm=e,n.prePSize=t.wasm.prePSize,n.preQSize=t.wasm.preQSize,n.Fr=new YB(e,"frm",t.n8r,t.r),n.F1=new YB(e,"f1m",t.n8q,t.q),n.F2=new zB(e,"f2m",n.F1),n.G1=new WB(e,"g1m",n.F1,t.wasm.pG1gen,t.wasm.pG1b,t.cofactorG1),n.G2=new WB(e,"g2m",n.F2,t.wasm.pG2gen,t.wasm.pG2b,t.cofactorG2),n.F6=new JB(e,"f6m",n.F2),n.F12=new zB(e,"ftm",n.F6),n.Gt=n.F12,tT(n,"G1"),tT(n,"G2"),tT(n,"Fr"),nT(n,"G1"),nT(n,"G2"),rT(n,"G1"),rT(n,"G2"),rT(n,"Fr"),function(t){const e=t.tm;t.pairing=function(n,r){e.startSyncOp();const i=e.allocBuff(t.G1.toJacobian(n)),o=e.allocBuff(t.G2.toJacobian(r)),s=e.alloc(t.Gt.n8);e.instance.exports[t.name+"_pairing"](i,o,s);const a=e.getBuff(s,t.Gt.n8);return e.endSyncOp(),a},t.pairingEq=async function(){let n,r;arguments.length%2==1?(n=arguments[arguments.length-1],r=(arguments.length-1)/2):(n=t.Gt.one,r=arguments.length/2);const i=[];for(let n=0;n<r;n++){const r=[],o=t.G1.toJacobian(arguments[2*n]);r.push({cmd:"ALLOCSET",var:0,buff:o}),r.push({cmd:"ALLOC",var:1,len:t.prePSize});const s=t.G2.toJacobian(arguments[2*n+1]);r.push({cmd:"ALLOCSET",var:2,buff:s}),r.push({cmd:"ALLOC",var:3,len:t.preQSize}),r.push({cmd:"ALLOC",var:4,len:t.Gt.n8}),r.push({cmd:"CALL",fnName:t.name+"_prepareG1",params:[{var:0},{var:1}]}),r.push({cmd:"CALL",fnName:t.name+"_prepareG2",params:[{var:2},{var:3}]}),r.push({cmd:"CALL",fnName:t.name+"_millerLoop",params:[{var:1},{var:3},{var:4}]}),r.push({cmd:"GET",out:0,var:4,len:t.Gt.n8}),i.push(e.queueAction(r))}const o=await Promise.all(i);e.startSyncOp();const s=e.alloc(t.Gt.n8);e.instance.exports.ftm_one(s);for(let t=0;t<o.length;t++){const n=e.allocBuff(o[t][0]);e.instance.exports.ftm_mul(s,n,s)}e.instance.exports[t.name+"_finalExponentiation"](s,s);const a=e.allocBuff(n),c=!!e.instance.exports.ftm_eq(s,a);return e.endSyncOp(),c},t.prepareG1=function(t){this.tm.startSyncOp();const e=this.tm.allocBuff(t),n=this.tm.alloc(this.prePSize);this.tm.instance.exports[this.name+"_prepareG1"](e,n);const r=this.tm.getBuff(n,this.prePSize);return this.tm.endSyncOp(),r},t.prepareG2=function(t){this.tm.startSyncOp();const e=this.tm.allocBuff(t),n=this.tm.alloc(this.preQSize);this.tm.instance.exports[this.name+"_prepareG2"](e,n);const r=this.tm.getBuff(n,this.preQSize);return this.tm.endSyncOp(),r},t.millerLoop=function(t,e){this.tm.startSyncOp();const n=this.tm.allocBuff(t),r=this.tm.allocBuff(e),i=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_millerLoop"](n,r,i);const o=this.tm.getBuff(i,this.Gt.n8);return this.tm.endSyncOp(),o},t.finalExponentiation=function(t){this.tm.startSyncOp();const e=this.tm.allocBuff(t),n=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_finalExponentiation"](e,n);const r=this.tm.getBuff(n,this.Gt.n8);return this.tm.endSyncOp(),r}}(n),n.array2buffer=function(t,e){const n=new Uint8Array(e*t.length);for(let r=0;r<t.length;r++)n.set(t[r],r*e);return n},n.buffer2array=function(t,e){const n=t.byteLength/e,r=new Array(n);for(let i=0;i<n;i++)r[i]=t.slice(i*e,i*e+e);return r},n}function oT(t){return BigInt(t)}function sT(t){return t<0n}function aT(t){return 0n===t}function cT(t){const e=[],n=oT(t);return e.push(Number(0xFFn&n)),e.push(Number(n>>8n&0xFFn)),e.push(Number(n>>16n&0xFFn)),e.push(Number(n>>24n&0xFFn)),e}function lT(t){const e=function(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&t.charCodeAt(n)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}(t);return[...fT(e.length),...e]}function uT(t){const e=[];let n=oT(t);if(sT(n))throw new Error("Number cannot be negative");for(;!aT(n);)e.push(Number(0x7Fn&n)),n>>=7n;0==e.length&&e.push(0);for(let t=0;t<e.length-1;t++)e[t]=128|e[t];return e}function hT(t){let e,n;const r=function(t){return sT(t)?t.toString(2).length-1:t.toString(2).length}(t);t<0?(n=!0,e=(1n<<BigInt(r))+t):(n=!1,e=oT(t));const i=7-r%7,o=(1<<7-i)-1|128,s=uT(e+((1n<<BigInt(i))-1n<<BigInt(r)));return n||(s[s.length-1]=s[s.length-1]&o),s}function dT(t){let e=oT(t);if(e>0xFFFFFFFFn)throw new Error("Number too big");if(e>0x7FFFFFFFn&&(e-=0x100000000n),e<-2147483648n)throw new Error("Number too small");return hT(e)}function pT(t){let e=oT(t);if(e>0xFFFFFFFFFFFFFFFFn)throw new Error("Number too big");if(e>0x7FFFFFFFFFFFFFFFn&&(e-=0x10000000000000000n),e<-9223372036854775808n)throw new Error("Number too small");return hT(e)}function fT(t){let e=oT(t);if(e>0xFFFFFFFFn)throw new Error("Number too big");return uT(e)}function AT(t){return Array.from(t,function(t){return("0"+(255&t).toString(16)).slice(-2)}).join("")}class gT{constructor(t){this.func=t,this.functionName=t.functionName,this.module=t.module}setLocal(t,e){const n=this.func.localIdxByName[t];if(void 0===n)throw new Error(`Local Variable not defined: Function: ${this.functionName} local: ${t} `);return[...e,33,...fT(n)]}teeLocal(t,e){const n=this.func.localIdxByName[t];if(void 0===n)throw new Error(`Local Variable not defined: Function: ${this.functionName} local: ${t} `);return[...e,34,...fT(n)]}getLocal(t){const e=this.func.localIdxByName[t];if(void 0===e)throw new Error(`Local Variable not defined: Function: ${this.functionName} local: ${t} `);return[32,...fT(e)]}i64_load8_s(t,e,n){return[...t,48,void 0===n?0:n,...fT(e||0)]}i64_load8_u(t,e,n){return[...t,49,void 0===n?0:n,...fT(e||0)]}i64_load16_s(t,e,n){return[...t,50,void 0===n?1:n,...fT(e||0)]}i64_load16_u(t,e,n){return[...t,51,void 0===n?1:n,...fT(e||0)]}i64_load32_s(t,e,n){return[...t,52,void 0===n?2:n,...fT(e||0)]}i64_load32_u(t,e,n){return[...t,53,void 0===n?2:n,...fT(e||0)]}i64_load(t,e,n){return[...t,41,void 0===n?3:n,...fT(e||0)]}i64_store(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=3,s=e):Array.isArray(n)?(i=e,o=3,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,55,o,...fT(i)]}i64_store32(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=2,s=e):Array.isArray(n)?(i=e,o=2,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,62,o,...fT(i)]}i64_store16(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=1,s=e):Array.isArray(n)?(i=e,o=1,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,61,o,...fT(i)]}i64_store8(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=0,s=e):Array.isArray(n)?(i=e,o=0,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,60,o,...fT(i)]}i32_load8_s(t,e,n){return[...t,44,void 0===n?0:n,...fT(e||0)]}i32_load8_u(t,e,n){return[...t,45,void 0===n?0:n,...fT(e||0)]}i32_load16_s(t,e,n){return[...t,46,void 0===n?1:n,...fT(e||0)]}i32_load16_u(t,e,n){return[...t,47,void 0===n?1:n,...fT(e||0)]}i32_load(t,e,n){return[...t,40,void 0===n?2:n,...fT(e||0)]}i32_store(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=2,s=e):Array.isArray(n)?(i=e,o=2,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,54,o,...fT(i)]}i32_store16(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=1,s=e):Array.isArray(n)?(i=e,o=1,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,59,o,...fT(i)]}i32_store8(t,e,n,r){let i,o,s;return Array.isArray(e)?(i=0,o=0,s=e):Array.isArray(n)?(i=e,o=0,s=n):Array.isArray(r)&&(i=e,o=n,s=r),[...t,...s,58,o,...fT(i)]}call(t,...e){const n=this.module.functionIdxByName[t];if(void 0===n)throw new Error(`Function not defined: Function: ${t}`);return[...[].concat(...e),16,...fT(n)]}call_indirect(t,...e){return[...[].concat(...e),...t,17,0,0]}if(t,e,n){return n?[...t,4,64,...e,5,...n,11]:[...t,4,64,...e,11]}block(t){return[2,64,...t,11]}loop(...t){return[3,64,...[].concat(...t),11]}br_if(t,e){return[...e,13,...fT(t)]}br(t){return[12,...fT(t)]}ret(t){return[...t,15]}drop(t){return[...t,26]}i64_const(t){return[66,...pT(t)]}i32_const(t){return[65,...dT(t)]}i64_eqz(t){return[...t,80]}i64_eq(t,e){return[...t,...e,81]}i64_ne(t,e){return[...t,...e,82]}i64_lt_s(t,e){return[...t,...e,83]}i64_lt_u(t,e){return[...t,...e,84]}i64_gt_s(t,e){return[...t,...e,85]}i64_gt_u(t,e){return[...t,...e,86]}i64_le_s(t,e){return[...t,...e,87]}i64_le_u(t,e){return[...t,...e,88]}i64_ge_s(t,e){return[...t,...e,89]}i64_ge_u(t,e){return[...t,...e,90]}i64_add(t,e){return[...t,...e,124]}i64_sub(t,e){return[...t,...e,125]}i64_mul(t,e){return[...t,...e,126]}i64_div_s(t,e){return[...t,...e,127]}i64_div_u(t,e){return[...t,...e,128]}i64_rem_s(t,e){return[...t,...e,129]}i64_rem_u(t,e){return[...t,...e,130]}i64_and(t,e){return[...t,...e,131]}i64_or(t,e){return[...t,...e,132]}i64_xor(t,e){return[...t,...e,133]}i64_shl(t,e){return[...t,...e,134]}i64_shr_s(t,e){return[...t,...e,135]}i64_shr_u(t,e){return[...t,...e,136]}i64_extend_i32_s(t){return[...t,172]}i64_extend_i32_u(t){return[...t,173]}i64_clz(t){return[...t,121]}i64_ctz(t){return[...t,122]}i32_eqz(t){return[...t,69]}i32_eq(t,e){return[...t,...e,70]}i32_ne(t,e){return[...t,...e,71]}i32_lt_s(t,e){return[...t,...e,72]}i32_lt_u(t,e){return[...t,...e,73]}i32_gt_s(t,e){return[...t,...e,74]}i32_gt_u(t,e){return[...t,...e,75]}i32_le_s(t,e){return[...t,...e,76]}i32_le_u(t,e){return[...t,...e,77]}i32_ge_s(t,e){return[...t,...e,78]}i32_ge_u(t,e){return[...t,...e,79]}i32_add(t,e){return[...t,...e,106]}i32_sub(t,e){return[...t,...e,107]}i32_mul(t,e){return[...t,...e,108]}i32_div_s(t,e){return[...t,...e,109]}i32_div_u(t,e){return[...t,...e,110]}i32_rem_s(t,e){return[...t,...e,111]}i32_rem_u(t,e){return[...t,...e,112]}i32_and(t,e){return[...t,...e,113]}i32_or(t,e){return[...t,...e,114]}i32_xor(t,e){return[...t,...e,115]}i32_shl(t,e){return[...t,...e,116]}i32_shr_s(t,e){return[...t,...e,117]}i32_shr_u(t,e){return[...t,...e,118]}i32_rotl(t,e){return[...t,...e,119]}i32_rotr(t,e){return[...t,...e,120]}i32_wrap_i64(t){return[...t,167]}i32_clz(t){return[...t,103]}i32_ctz(t){return[...t,104]}unreachable(){return[0]}current_memory(){return[63,0]}comment(){return[]}}const ET={i32:127,i64:126,f32:125,f64:124,anyfunc:112,func:96,emptyblock:64};class mT{constructor(t,e,n,r,i){if("import"==n)this.fnType="import",this.moduleName=r,this.fieldName=i;else{if("internal"!=n)throw new Error("Invalid function fnType: "+n);this.fnType="internal"}this.module=t,this.fnName=e,this.params=[],this.locals=[],this.localIdxByName={},this.code=[],this.returnType=null,this.nextLocal=0}addParam(t,e){if(this.localIdxByName[t])throw new Error(`param already exists. Function: ${this.fnName}, Param: ${t} `);const n=this.nextLocal++;this.localIdxByName[t]=n,this.params.push({type:e})}addLocal(t,e,n){const r=n||1;if(this.localIdxByName[t])throw new Error(`local already exists. Function: ${this.fnName}, Param: ${t} `);const i=this.nextLocal++;this.localIdxByName[t]=i,this.locals.push({type:e,length:r})}setReturnType(t){if(this.returnType)throw new Error(`returnType already defined. Function: ${this.fnName}`);this.returnType=t}getSignature(){return[96,...[...fT(this.params.length),...this.params.map(t=>ET[t.type])],...this.returnType?[1,ET[this.returnType]]:[0]]}getBody(){const t=this.locals.map(t=>[...fT(t.length),ET[t.type]]),e=[...fT(this.locals.length),...[].concat(...t),...this.code,11];return[...fT(e.length),...e]}addCode(...t){this.code.push(...[].concat(...t))}getCodeBuilder(){return new gT(this)}}class yT{constructor(){this.functions=[],this.functionIdxByName={},this.nImportFunctions=0,this.nInternalFunctions=0,this.memory={pagesSize:1,moduleName:"env",fieldName:"memory"},this.free=8,this.datas=[],this.modules={},this.exports=[],this.functionsTable=[]}build(){return this._setSignatures(),new Uint8Array([...cT(1836278016),...cT(1),...this._buildType(),...this._buildImport(),...this._buildFunctionDeclarations(),...this._buildFunctionsTable(),...this._buildExports(),...this._buildElements(),...this._buildCode(),...this._buildData()])}addFunction(t){if(void 0!==this.functionIdxByName[t])throw new Error(`Function already defined: ${t}`);const e=this.functions.length;return this.functionIdxByName[t]=e,this.functions.push(new mT(this,t,"internal")),this.nInternalFunctions++,this.functions[e]}addIimportFunction(t,e,n){if(void 0!==this.functionIdxByName[t])throw new Error(`Function already defined: ${t}`);if(this.functions.length>0&&"internal"==this.functions[this.functions.length-1].type)throw new Error(`Import functions must be declared before internal: ${t}`);let r=n||t;const i=this.functions.length;return this.functionIdxByName[t]=i,this.functions.push(new mT(this,t,"import",e,r)),this.nImportFunctions++,this.functions[i]}setMemory(t,e,n){this.memory={pagesSize:t,moduleName:e||"env",fieldName:n||"memory"}}exportFunction(t,e){const n=e||t;if(void 0===this.functionIdxByName[t])throw new Error(`Function not defined: ${t}`);const r=this.functionIdxByName[t];n!=t&&(this.functionIdxByName[n]=r),this.exports.push({exportName:n,idx:r})}addFunctionToTable(t){const e=this.functionIdxByName[t];this.functionsTable.push(e)}addData(t,e){this.datas.push({offset:t,bytes:e})}alloc(t,e){let n,r;(Array.isArray(t)||ArrayBuffer.isView(t))&&void 0===e?(n=t.length,r=t):(n=t,r=e),n=1+(n-1>>3)<<3;const i=this.free;return this.free+=n,r&&this.addData(i,r),i}allocString(t){const e=(new globalThis.TextEncoder).encode(t);return this.alloc([...e,0])}_setSignatures(){this.signatures=[];const t={};if(this.functionsTable.length>0){const e=this.functions[this.functionsTable[0]].getSignature();t["s_"+AT(e)]=0,this.signatures.push(e)}for(let e=0;e<this.functions.length;e++){const n=this.functions[e].getSignature(),r="s_"+AT(n);void 0===t[r]&&(t[r]=this.signatures.length,this.signatures.push(n)),this.functions[e].signatureIdx=t[r]}}_buildSection(t,e){return[t,...fT(e.length),...e]}_buildType(){return this._buildSection(1,[...fT(this.signatures.length),...[].concat(...this.signatures)])}_buildImport(){const t=[];t.push([...lT(this.memory.moduleName),...lT(this.memory.fieldName),2,0,...fT(this.memory.pagesSize)]);for(let e=0;e<this.nImportFunctions;e++)t.push([...lT(this.functions[e].moduleName),...lT(this.functions[e].fieldName),0,...fT(this.functions[e].signatureIdx)]);return this._buildSection(2,fT(t.length).concat(...t))}_buildFunctionDeclarations(){const t=[];for(let e=this.nImportFunctions;e<this.nImportFunctions+this.nInternalFunctions;e++)t.push(...fT(this.functions[e].signatureIdx));return this._buildSection(3,[...fT(t.length),...t])}_buildFunctionsTable(){return 0==this.functionsTable.length?[]:this._buildSection(4,[...fT(1),112,0,...fT(this.functionsTable.length)])}_buildElements(){if(0==this.functionsTable.length)return[];const t=[];for(let e=0;e<this.functionsTable.length;e++)t.push(...fT(this.functionsTable[e]));return this._buildSection(9,[...fT(1),...fT(0),65,...dT(0),11,...fT(this.functionsTable.length),...t])}_buildExports(){const t=[];for(let e=0;e<this.exports.length;e++)t.push([...lT(this.exports[e].exportName),0,...fT(this.exports[e].idx)]);return this._buildSection(7,fT(t.length).concat(...t))}_buildCode(){const t=[];for(let e=this.nImportFunctions;e<this.nImportFunctions+this.nInternalFunctions;e++)t.push(this.functions[e].getBody());return this._buildSection(10,fT(t.length).concat(...t))}_buildData(){const t=[];t.push([0,65,0,11,4,...cT(this.free)]);for(let e=0;e<this.datas.length;e++)t.push([0,65,...dT(this.datas[e].offset),11,...fT(this.datas[e].bytes.length),...this.datas[e].bytes]);return this._buildSection(11,fT(t.length).concat(...t))}}async function wT(t,e){if(!t&&globalThis.curve_bn128)return globalThis.curve_bn128;const n=new yT;n.setMemory(25),_B(n),e&&e(n);const r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bn128.pG1gen,r.pG1zero=n.modules.bn128.pG1zero,r.pG1b=n.modules.bn128.pG1b,r.pG2gen=n.modules.bn128.pG2gen,r.pG2zero=n.modules.bn128.pG2zero,r.pG2b=n.modules.bn128.pG2b,r.pOneT=n.modules.bn128.pOneT,r.prePSize=n.modules.bn128.prePSize,r.preQSize=n.modules.bn128.preQSize,r.n8q=32,r.n8r=32,r.q=n.modules.bn128.q,r.r=n.modules.bn128.r;const i={name:"bn128",wasm:r,q:dI("21888242871839275222246405745257275088696311157297823662689037894645226208583"),r:dI("21888242871839275222246405745257275088548364400416034343698204186575808495617"),n8q:32,n8r:32,cofactorG2:dI("30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d",16),singleThread:!!t},o=await iT(i);return o.terminate=async function(){i.singleThread||(globalThis.curve_bn128=null,await this.tm.terminate())},t||(globalThis.curve_bn128=o),o}async function IT(t,e){if(!t&&globalThis.curve_bls12381)return globalThis.curve_bls12381;const n=new yT;n.setMemory(25),LB(n),e&&e(n);const r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bls12381.pG1gen,r.pG1zero=n.modules.bls12381.pG1zero,r.pG1b=n.modules.bls12381.pG1b,r.pG2gen=n.modules.bls12381.pG2gen,r.pG2zero=n.modules.bls12381.pG2zero,r.pG2b=n.modules.bls12381.pG2b,r.pOneT=n.modules.bls12381.pOneT,r.prePSize=n.modules.bls12381.prePSize,r.preQSize=n.modules.bls12381.preQSize,r.n8q=48,r.n8r=32,r.q=n.modules.bls12381.q,r.r=n.modules.bls12381.r;const i={name:"bls12381",wasm:r,q:dI("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),r:dI("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),n8q:48,n8r:32,cofactorG1:dI("0x396c8c005555e1568c00aaab0000aaab",16),cofactorG2:dI("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5",16),singleThread:!!t},o=await iT(i);return o.terminate=async function(){i.singleThread||(globalThis.curve_bls12381=null,await this.tm.terminate())},t||(globalThis.curve_bls12381=o),o}globalThis.curve_bn128=null,globalThis.curve_bls12381=null;const CT=dI("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),BT=dI("21888242871839275222246405745257275088548364400416034343698204186575808495617");dI("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),dI("21888242871839275222246405745257275088696311157297823662689037894645226208583");const TT=HI,bT=GB;var DT=s(5606),MT={};async function NT(t,e,n,r){if(n=n||262144,"number"!=typeof e&&["w+","wx+","r","ax+","a+"].indexOf(e)<0)throw new Error("Invalid open option");const i=await MT.promises.open(t,e),o=await i.stat();return new ST(i,o,n,r,t)}class ST{constructor(t,e,n,r,i){for(this.fileName=i,this.fd=t,this.pos=0,this.pageSize=r||256;this.pageSize<e.blksize;)this.pageSize*=2;this.totalSize=e.size,this.totalPages=Math.floor((e.size-1)/this.pageSize)+1,this.maxPagesLoaded=Math.floor(n/this.pageSize)+1,this.pages={},this.pendingLoads=[],this.writing=!1,this.reading=!1,this.avBuffs=[],this.history={}}_loadPage(t){const e=this,n=new Promise((n,r)=>{e.pendingLoads.push({page:t,resolve:n,reject:r})});return e.__statusPage("After Load request: ",t),n}__statusPage(t,e){const n=[],r=this;if(!r.logHistory)return;n.push("=="+t+" "+e);let i="";for(let t=0;t<r.pendingLoads.length;t++)r.pendingLoads[t].page==e&&(i=i+" "+t);if(i&&n.push("Pending loads:"+i),void 0!==r.pages[e]){const t=r.pages[e];n.push("Loaded"),n.push("pendingOps: "+t.pendingOps),t.loading&&n.push("loading: "+t.loading),t.writing&&n.push("writing"),t.dirty&&n.push("dirty")}n.push("=="),r.history[e]||(r.history[e]=[]),r.history[e].push(n)}__printHistory(t){const e=this;e.history[t]||console.log("Empty History ",t),console.log("History "+t);for(let n=0;n<e.history[t].length;n++)for(let r=0;r<e.history[t][n].length;r++)console.log("-> "+e.history[t][n][r])}_triggerLoad(){const t=this;if(t.reading)return;if(0==t.pendingLoads.length)return;const e=Object.keys(t.pages),n=[];for(let r=0;r<e.length;r++){const i=t.pages[parseInt(e[r])];0!=i.dirty||0!=i.pendingOps||i.writing||i.loading||n.push(parseInt(e[r]))}let r=t.maxPagesLoaded-e.length;const i=[];for(;t.pendingLoads.length>0&&(void 0!==t.pages[t.pendingLoads[0].page]||r>0||n.length>0);){const e=t.pendingLoads.shift();if(void 0!==t.pages[e.page]){t.pages[e.page].pendingOps++;const r=n.indexOf(e.page);r>=0&&n.splice(r,1),t.pages[e.page].loading?t.pages[e.page].loading.push(e):e.resolve(),t.__statusPage("After Load (cached): ",e.page)}else{if(r)r--;else{const e=n.shift();t.__statusPage("Before Unload: ",e),t.avBuffs.unshift(t.pages[e]),delete t.pages[e],t.__statusPage("After Unload: ",e)}e.page>=t.totalPages?(t.pages[e.page]=o(),e.resolve(),t.__statusPage("After Load (new): ",e.page)):(t.reading=!0,t.pages[e.page]=o(),t.pages[e.page].loading=[e],i.push(t.fd.read(t.pages[e.page].buff,0,t.pageSize,e.page*t.pageSize).then(n=>{t.pages[e.page].size=n.bytesRead;const r=t.pages[e.page].loading;delete t.pages[e.page].loading;for(let t=0;t<r.length;t++)r[t].resolve();return t.__statusPage("After Load (loaded): ",e.page),n},t=>{e.reject(t)})),t.__statusPage("After Load (loading): ",e.page))}}function o(){if(t.avBuffs.length>0){const e=t.avBuffs.shift();return e.dirty=!1,e.pendingOps=1,e.size=0,e}return{dirty:!1,buff:new Uint8Array(t.pageSize),pendingOps:1,size:0}}Promise.all(i).then(()=>{t.reading=!1,t.pendingLoads.length>0&&setImmediate(t._triggerLoad.bind(t)),t._tryClose()})}_triggerWrite(){const t=this;if(t.writing)return;const e=Object.keys(t.pages),n=[];for(let r=0;r<e.length;r++){const i=t.pages[parseInt(e[r])];i.dirty&&(i.dirty=!1,i.writing=!0,t.writing=!0,n.push(t.fd.write(i.buff,0,i.size,parseInt(e[r])*t.pageSize).then(()=>{i.writing=!1},e=>{console.log("ERROR Writing: "+e),t.error=e,t._tryClose()})))}t.writing&&Promise.all(n).then(()=>{t.writing=!1,setImmediate(t._triggerWrite.bind(t)),t._tryClose(),t.pendingLoads.length>0&&setImmediate(t._triggerLoad.bind(t))})}_getDirtyPage(){for(let t in this.pages)if(this.pages[t].dirty)return t;return-1}async write(t,e){if(0==t.byteLength)return;const n=this;if(void 0===e&&(e=n.pos),n.pos=e+t.byteLength,n.totalSize<e+t.byteLength&&(n.totalSize=e+t.byteLength),n.pendingClose)throw new Error("Writing a closing file");const r=Math.floor(e/n.pageSize),i=Math.floor((e+t.byteLength-1)/n.pageSize),o=[];for(let t=r;t<=i;t++)o.push(n._loadPage(t));n._triggerLoad();let s=r,a=e%n.pageSize,c=t.byteLength;for(;c>0;){await o[s-r];const e=a+c>n.pageSize?n.pageSize-a:c,i=t.slice(t.byteLength-c,t.byteLength-c+e);new Uint8Array(n.pages[s].buff.buffer,a,e).set(i),n.pages[s].dirty=!0,n.pages[s].pendingOps--,n.pages[s].size=Math.max(a+e,n.pages[s].size),s>=n.totalPages&&(n.totalPages=s+1),c-=e,s++,a=0,n.writing||setImmediate(n._triggerWrite.bind(n))}}async read(t,e){let n=new Uint8Array(t);return await this.readToBuffer(n,0,t,e),n}async readToBuffer(t,e,n,r){if(0==n)return;const i=this;if(n>i.pageSize*i.maxPagesLoaded*.8){const t=Math.floor(1.1*n);this.maxPagesLoaded=Math.floor(t/i.pageSize)+1}if(void 0===r&&(r=i.pos),i.pos=r+n,i.pendingClose)throw new Error("Reading a closing file");const o=Math.floor(r/i.pageSize),s=Math.floor((r+n-1)/i.pageSize),a=[];for(let t=o;t<=s;t++)a.push(i._loadPage(t));i._triggerLoad();let c=o,l=r%i.pageSize,u=r+n>i.totalSize?n-(r+n-i.totalSize):n;for(;u>0;){await a[c-o],i.__statusPage("After Await (read): ",c);const r=l+u>i.pageSize?i.pageSize-l:u,s=new Uint8Array(i.pages[c].buff.buffer,i.pages[c].buff.byteOffset+l,r);t.set(s,e+n-u),i.pages[c].pendingOps--,i.__statusPage("After Op done: ",c),u-=r,c++,l=0,i.pendingLoads.length>0&&setImmediate(i._triggerLoad.bind(i))}this.pos=r+n}_tryClose(){const t=this;if(!t.pendingClose)return;t.error&&t.pendingCloseReject(t.error);t._getDirtyPage()>=0||t.writing||t.reading||t.pendingLoads.length>0||t.pendingClose()}close(){const t=this;if(t.pendingClose)throw new Error("Closing the file twice");return new Promise((e,n)=>{t.pendingClose=e,t.pendingCloseReject=n,t._tryClose()}).then(()=>{t.fd.close()},e=>{throw t.fd.close(),e})}async discard(){await this.close(),await MT.promises.unlink(this.fileName)}async writeULE32(t,e){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,t,!0),await this.write(n,e)}async writeUBE32(t,e){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,t,!1),await this.write(n,e)}async writeULE64(t,e){const n=new Uint8Array(8),r=new DataView(n.buffer);r.setUint32(0,4294967295&t,!0),r.setUint32(4,Math.floor(t/4294967296),!0),await this.write(n,e)}async readULE32(t){const e=await this.read(4,t);return new Uint32Array(e.buffer)[0]}async readUBE32(t){const e=await this.read(4,t);return new DataView(e.buffer).getUint32(0,!1)}async readULE64(t){const e=await this.read(8,t),n=new Uint32Array(e.buffer);return 4294967296*n[1]+n[0]}async readString(t){const e=this;if(e.pendingClose)throw new Error("Reading a closing file");let n=void 0===t?e.pos:t,r=Math.floor(n/e.pageSize),i=!1,o="";for(;!i;){let t=e._loadPage(r);e._triggerLoad(),await t,e.__statusPage("After Await (read): ",r);let s=n%e.pageSize;const a=new Uint8Array(e.pages[r].buff.buffer,e.pages[r].buff.byteOffset+s,e.pageSize-s);let c=a.findIndex(t=>0===t);i=-1!==c,i?(o+=(new TextDecoder).decode(a.slice(0,c)),e.pos=r*this.pageSize+s+c+1):(o+=(new TextDecoder).decode(a),e.pos=r*this.pageSize+s+a.length),e.pages[r].pendingOps--,e.__statusPage("After Op done: ",r),n=e.pos,r++,e.pendingLoads.length>0&&setImmediate(e._triggerLoad.bind(e))}return o}}const vT=new Uint8Array(4),_T=new DataView(vT.buffer),LT=new Uint8Array(8),xT=new DataView(LT.buffer);class RT{constructor(){this.pageSize=16384}_resizeIfNeeded(t){if(t>this.allocSize){const e=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),t),n=new Uint8Array(e);n.set(this.o.data),this.o.data=n,this.allocSize=e}}async write(t,e){if(void 0===e&&(e=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(e+t.byteLength),this.o.data.set(t.slice(),e),e+t.byteLength>this.totalSize&&(this.totalSize=e+t.byteLength),this.pos=e+t.byteLength}async readToBuffer(t,e,n,r){if(void 0===r&&(r=this.pos),this.readOnly&&r+n>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(r+n);const i=new Uint8Array(this.o.data.buffer,this.o.data.byteOffset+r,n);t.set(i,e),this.pos=r+n}async read(t,e){const n=new Uint8Array(t);return await this.readToBuffer(n,0,t,e),n}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(t,e){_T.setUint32(0,t,!0),await this.write(vT,e)}async writeUBE32(t,e){_T.setUint32(0,t,!1),await this.write(vT,e)}async writeULE64(t,e){xT.setUint32(0,4294967295&t,!0),xT.setUint32(4,Math.floor(t/4294967296),!0),await this.write(LT,e)}async readULE32(t){const e=await this.read(4,t);return new Uint32Array(e.buffer)[0]}async readUBE32(t){const e=await this.read(4,t);return new DataView(e.buffer).getUint32(0,!1)}async readULE64(t){const e=await this.read(8,t),n=new Uint32Array(e.buffer);return 4294967296*n[1]+n[0]}async readString(t){const e=this;let n=void 0===t?e.pos:t;if(n>this.totalSize){if(this.readOnly)throw new Error("Reading out of bounds");this._resizeIfNeeded(t)}const r=new Uint8Array(e.o.data.buffer,n,this.totalSize-n);let i=r.findIndex(t=>0===t),o="";return-1!==i?(o=(new TextDecoder).decode(r.slice(0,i)),e.pos=n+i+1):e.pos=n,o}}const FT=1<<22;const OT=new Uint8Array(4),kT=new DataView(OT.buffer),QT=new Uint8Array(8),UT=new DataView(QT.buffer);class PT{constructor(){this.pageSize=16384}_resizeIfNeeded(t){if(t<=this.totalSize)return;if(this.readOnly)throw new Error("Reading out of file bounds");const e=Math.floor((t-1)/FT)+1;for(let n=Math.max(this.o.data.length-1,0);n<e;n++){const r=new Uint8Array(n<e-1?FT:t-(e-1)*FT);n==this.o.data.length-1&&r.set(this.o.data[n]),this.o.data[n]=r}this.totalSize=t}async write(t,e){const n=this;if(void 0===e&&(e=n.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(e+t.byteLength);let r=Math.floor(e/FT),i=e%FT,o=t.byteLength;for(;o>0;){const e=i+o>FT?FT-i:o,s=t.slice(t.byteLength-o,t.byteLength-o+e);new Uint8Array(n.o.data[r].buffer,i,e).set(s),o-=e,r++,i=0}this.pos=e+t.byteLength}async readToBuffer(t,e,n,r){const i=this;if(void 0===r&&(r=i.pos),this.readOnly&&r+n>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(r+n);let o=Math.floor(r/FT),s=r%FT,a=n;for(;a>0;){const r=s+a>FT?FT-s:a,c=new Uint8Array(i.o.data[o].buffer,s,r);t.set(c,e+n-a),a-=r,o++,s=0}this.pos=r+n}async read(t,e){const n=new Uint8Array(t);return await this.readToBuffer(n,0,t,e),n}close(){}async discard(){}async writeULE32(t,e){kT.setUint32(0,t,!0),await this.write(OT,e)}async writeUBE32(t,e){kT.setUint32(0,t,!1),await this.write(OT,e)}async writeULE64(t,e){UT.setUint32(0,4294967295&t,!0),UT.setUint32(4,Math.floor(t/4294967296),!0),await this.write(QT,e)}async readULE32(t){const e=await this.read(4,t);return new Uint32Array(e.buffer)[0]}async readUBE32(t){const e=await this.read(4,t);return new DataView(e.buffer).getUint32(0,!1)}async readULE64(t){const e=await this.read(8,t),n=new Uint32Array(e.buffer);return 4294967296*n[1]+n[0]}async readString(t){const e=this;let n=void 0===t?e.pos:t;if(n>this.totalSize){if(this.readOnly)throw new Error("Reading out of bounds");this._resizeIfNeeded(t)}let r=!1,i="";for(;!r;){let t=Math.floor(n/FT),o=n%FT;if(void 0===e.o.data[t])throw new Error("ERROR");let s=Math.min(2048,e.o.data[t].length-o);const a=new Uint8Array(e.o.data[t].buffer,o,s);let c=a.findIndex(t=>0===t);r=-1!==c,r?(i+=(new TextDecoder).decode(a.slice(0,c)),e.pos=t*FT+o+c+1):(i+=(new TextDecoder).decode(a),e.pos=t*FT+o+a.length),n=e.pos}return i}}async function GT(t,e,n){if("string"==typeof t&&(t={type:"file",fileName:t,cacheSize:e||65536,pageSize:n||8192}),"file"==t.type)return await NT(t.fileName,1538,t.cacheSize,t.pageSize);if("mem"==t.type)return function(t){const e=t.initialSize||1<<20,n=new RT;return n.o=t,n.o.data=new Uint8Array(e),n.allocSize=e,n.totalSize=0,n.readOnly=!1,n.pos=0,n}(t);if("bigMem"==t.type)return function(t){const e=t.initialSize||0,n=new PT;n.o=t;const r=e?Math.floor((e-1)/FT)+1:0;n.o.data=[];for(let t=0;t<r-1;t++)n.o.data.push(new Uint8Array(FT));return r&&n.o.data.push(new Uint8Array(e-FT*(r-1))),n.totalSize=0,n.readOnly=!1,n.pos=0,n}(t);throw new Error("Invalid FastFile type: "+t.type)}async function VT(t,e,n){if(t instanceof Uint8Array&&(t={type:"mem",data:t}),"string"==typeof t){t={type:"mem",data:await fetch(t).then(function(t){return t.arrayBuffer()}).then(function(t){return new Uint8Array(t)})}}if("file"==t.type)return await NT(t.fileName,0,t.cacheSize,t.pageSize);if("mem"==t.type)return await function(t){const e=new RT;return e.o=t,e.allocSize=t.data.byteLength,e.totalSize=t.data.byteLength,e.readOnly=!0,e.pos=0,e}(t);if("bigMem"==t.type)return await function(t){const e=new PT;return e.o=t,e.totalSize=(t.data.length-1)*FT+t.data[t.data.length-1].byteLength,e.readOnly=!0,e.pos=0,e}(t);throw new Error("Invalid FastFile type: "+t.type)}async function HT(t,e,n,r,i){const o=await VT(t),s=await o.read(4);let a="";for(let t=0;t<4;t++)a+=String.fromCharCode(s[t]);if(a!=e)throw new Error(t+": Invalid File format");if(await o.readULE32()>n)throw new Error("Version not supported");const c=await o.readULE32();let l=[];for(let t=0;t<c;t++){let t=await o.readULE32(),e=await o.readULE64();void 0===l[t]&&(l[t]=[]),l[t].push({p:o.pos,size:e}),o.pos+=e}return{fd:o,sections:l}}async function jT(t,e,n,r,i,o){const s=await GT(t,i,o),a=new Uint8Array(4);for(let t=0;t<4;t++)a[t]=e.charCodeAt(t);return await s.write(a,0),await s.writeULE32(n),await s.writeULE32(r),s}async function YT(t,e){if(void 0!==t.writingSection)throw new Error("Already writing a section");await t.writeULE32(e),t.writingSection={pSectionSize:t.pos},await t.writeULE64(0)}async function zT(t){if(void 0===t.writingSection)throw new Error("Not writing a section");const e=t.pos-t.writingSection.pSectionSize-8,n=t.pos;t.pos=t.writingSection.pSectionSize,await t.writeULE64(e),t.pos=n,delete t.writingSection}async function JT(t,e,n){if(void 0!==t.readingSection)throw new Error("Already reading a section");if(!e[n])throw new Error(t.fileName+": Missing section "+n);if(e[n].length>1)throw new Error(t.fileName+": Section Duplicated "+n);t.pos=e[n][0].p,t.readingSection=e[n][0]}async function WT(t,e){if(void 0===t.readingSection)throw new Error("Not reading a section");if(!e&&t.pos-t.readingSection.p!=t.readingSection.size)throw new Error("Invalid section size reading");delete t.readingSection}async function qT(t,e,n,r){const i=new Uint8Array(n);TT.toRprLE(i,0,e,n),await t.write(i,r)}async function KT(t,e,n){const r=await t.read(e,n);return TT.fromRprLE(r,0,e)}async function XT(t,e,n,r,i){void 0===i&&(i=e[r][0].size);const o=t.pageSize;await JT(t,e,r),await YT(n,r);for(let e=0;e<i;e+=o){const r=Math.min(i-e,o),s=await t.read(r);await n.write(s)}await zT(n),await WT(t,i!=e[r][0].size)}async function ZT(t,e,n,r,i){if((r=void 0===r?0:r)+(i=void 0===i?e[n][0].size-r:i)>e[n][0].size)throw new Error("Reading out of the range of the section");let o;return o=i<1<<30?new Uint8Array(i):new HB(i),await t.readToBuffer(o,0,i,e[n][0].p+r),o}async function $T(t,e,n,r,i){const o=16*t.pageSize;if(await JT(t,e,i),await JT(n,r,i),e[i][0].size!=r[i][0].size)return!1;const s=e[i][0].size;for(let e=0;e<s;e+=o){const r=Math.min(s-e,o),i=await t.read(r),a=await n.read(r);for(let t=0;t<r;t++)if(i[t]!=a[t])return!1}return await WT(t),await WT(n),!0}const tb=TT.e("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),eb=TT.e("21888242871839275222246405745257275088548364400416034343698204186575808495617"),nb=TT.e("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),rb=TT.e("21888242871839275222246405745257275088696311157297823662689037894645226208583");async function ib(t,e){let n,r=e&&e.singleThread;if(TT.eq(t,eb))n=await wT(r);else{if(!TT.eq(t,tb))throw new Error(`Curve not supported: ${TT.toString(t)}`);n=await IT(r)}return n}async function ob(t,e){let n,r=e&&e.singleThread;if(TT.eq(t,rb))n=await wT(r);else{if(!TT.eq(t,nb))throw new Error(`Curve not supported: ${TT.toString(t)}`);n=await IT(r)}return n}async function sb(t,e){let n,r=e&&e.singleThread;const i=t.toUpperCase().match(/[A-Za-z0-9]+/g).join("");if(["BN128","BN254","ALTBN128"].indexOf(i)>=0)n=await wT(r);else{if(!(["BLS12381"].indexOf(i)>=0))throw new Error(`Curve not supported: ${t}`);n=await IT(r)}return n}var ab="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},cb={exports:{}},lb=function t(e,n){if(!e){var r=new ub(n);throw Error.captureStackTrace&&Error.captureStackTrace(r,t),r}};class ub extends Error{}ub.prototype.name="AssertionError";var hb={exports:{}};function db(t){return t.length}var pb={byteLength:db,toString:function(t){const e=t.byteLength;let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n},write:function(t,e,n=0,r=db(e)){const i=Math.min(r,t.byteLength-n);for(let r=0;r<i;r++)t[n+r]=e.charCodeAt(r);return i}};const fb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ab=new Uint8Array(256);for(let t=0;t<64;t++)Ab[fb.charCodeAt(t)]=t;function gb(t){let e=t.length;return 61===t.charCodeAt(e-1)&&e--,e>1&&61===t.charCodeAt(e-1)&&e--,3*e>>>2}Ab[45]=62,Ab[95]=63;var Eb={byteLength:gb,toString:function(t){const e=t.byteLength;let n="";for(let r=0;r<e;r+=3)n+=fb[t[r]>>2]+fb[(3&t[r])<<4|t[r+1]>>4]+fb[(15&t[r+1])<<2|t[r+2]>>6]+fb[63&t[r+2]];return e%3==2?n=n.substring(0,n.length-1)+"=":e%3==1&&(n=n.substring(0,n.length-2)+"=="),n},write:function(t,e,n=0,r=gb(e)){const i=Math.min(r,t.byteLength-n);for(let n=0,r=0;r<i;n+=4){const i=Ab[e.charCodeAt(n)],o=Ab[e.charCodeAt(n+1)],s=Ab[e.charCodeAt(n+2)],a=Ab[e.charCodeAt(n+3)];t[r++]=i<<2|o>>4,t[r++]=(15&o)<<4|s>>2,t[r++]=(3&s)<<6|63&a}return i}};function mb(t){return t.length>>>1}var yb={byteLength:mb,toString:function(t){const e=t.byteLength;t=new DataView(t.buffer,t.byteOffset,e);let n="",r=0;for(let i=e-e%4;r<i;r+=4)n+=t.getUint32(r).toString(16).padStart(8,"0");for(;r<e;r++)n+=t.getUint8(r).toString(16).padStart(2,"0");return n},write:function(t,e,n=0,r=mb(e)){const i=Math.min(r,t.byteLength-n);for(let r=0;r<i;r++){const i=wb(e.charCodeAt(2*r)),o=wb(e.charCodeAt(2*r+1));if(void 0===i||void 0===o)return t.subarray(0,r);t[n+r]=i<<4|o}return i}};function wb(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:void 0}function Ib(t){let e=0;for(let n=0,r=t.length;n<r;n++){const i=t.charCodeAt(n);if(i>=55296&&i<=56319&&n+1<r){const r=t.charCodeAt(n+1);if(r>=56320&&r<=57343){e+=4,n++;continue}}e+=i<=127?1:i<=2047?2:3}return e}let Cb,Bb;if("undefined"!=typeof TextDecoder){const t=new TextDecoder;Cb=function(e){return t.decode(e)}}else Cb=function(t){const e=t.byteLength;let n="",r=0;for(;r<e;){let i=t[r];if(i<=127){n+=String.fromCharCode(i),r++;continue}let o=0,s=0;if(i<=223?(o=1,s=31&i):i<=239?(o=2,s=15&i):i<=244&&(o=3,s=7&i),e-r-o>0){let e=0;for(;e<o;)i=t[r+e+1],s=s<<6|63&i,e+=1}else s=65533,o=e-r;n+=String.fromCodePoint(s),r+=o+1}return n};if("undefined"!=typeof TextEncoder){const t=new TextEncoder;Bb=function(e,n,r=0,i=Ib(n)){const o=Math.min(i,e.byteLength-r);return t.encodeInto(n,e.subarray(r,r+o)),o}}else Bb=function(t,e,n=0,r=Ib(e)){const i=Math.min(r,t.byteLength-n);t=t.subarray(n,n+i);let o=0,s=0;for(;o<e.length;){const n=e.codePointAt(o);if(n<=127){t[s++]=n,o++;continue}let r=0,i=0;for(n<=2047?(r=6,i=192):n<=65535?(r=12,i=224):n<=2097151&&(r=18,i=240),t[s++]=i|n>>r,r-=6;r>=0;)t[s++]=128|n>>r&63,r-=6;o+=n>=65536?2:1}return i};var Tb={byteLength:Ib,toString:Cb,write:Bb};function bb(t){return 2*t.length}var Db,Mb,Nb={byteLength:bb,toString:function(t){const e=t.byteLength;let n="";for(let r=0;r<e-1;r+=2)n+=String.fromCharCode(t[r]+256*t[r+1]);return n},write:function(t,e,n=0,r=bb(e)){const i=Math.min(r,t.byteLength-n);let o=i;for(let r=0;r<e.length&&!((o-=2)<0);++r){const i=e.charCodeAt(r),o=i>>8,s=i%256;t[n+2*r]=s,t[n+2*r+1]=o}return i}};!function(t,e){const n=pb,r=Eb,i=yb,o=Tb,s=Nb,a=255===new Uint8Array(Uint16Array.of(255).buffer)[0];function c(t){switch(t){case"ascii":return n;case"base64":return r;case"hex":return i;case"utf8":case"utf-8":case void 0:return o;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s;default:throw new Error(`Unknown encoding: ${t}`)}}function l(t){return t instanceof Uint8Array}function u(t,e,n){return"string"==typeof t?function(t,e){const n=c(e),r=new Uint8Array(n.byteLength(t));return n.write(r,t,0,r.byteLength),r}(t,e):Array.isArray(t)?function(t){const e=new Uint8Array(t.length);return e.set(t),e}(t):ArrayBuffer.isView(t)?function(t){const e=new Uint8Array(t.byteLength);return e.set(t),e}(t):function(t,e,n){return new Uint8Array(t,e,n)}(t,e,n)}function h(t,e,n,r,i){if(0===t.byteLength)return-1;if("string"==typeof n?(r=n,n=0):void 0===n?n=i?0:t.length-1:n<0&&(n+=t.byteLength),n>=t.byteLength){if(i)return-1;n=t.byteLength-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e)e=u(e,r);else if("number"==typeof e)return e&=255,i?t.indexOf(e,n):t.lastIndexOf(e,n);if(0===e.byteLength)return-1;if(i){let r=-1;for(let i=n;i<t.byteLength;i++)if(t[i]===e[-1===r?0:i-r]){if(-1===r&&(r=i),i-r+1===e.byteLength)return r}else-1!==r&&(i-=i-r),r=-1}else{n+e.byteLength>t.byteLength&&(n=t.byteLength-e.byteLength);for(let r=n;r>=0;r--){let n=!0;for(let i=0;i<e.byteLength;i++)if(t[r+i]!==e[i]){n=!1;break}if(n)return r}}return-1}function d(t,e,n,r){return h(t,e,n,r,!0)}function p(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}t.exports=e={isBuffer:l,isEncoding:function(t){try{return c(t),!0}catch{return!1}},alloc:function(t,n,r){const i=new Uint8Array(t);return void 0!==n&&e.fill(i,n,0,i.byteLength,r),i},allocUnsafe:function(t){return new Uint8Array(t)},allocUnsafeSlow:function(t){return new Uint8Array(t)},byteLength:function(t,e){return c(e).byteLength(t)},compare:function(t,e){if(t===e)return 0;const n=Math.min(t.byteLength,e.byteLength);t=new DataView(t.buffer,t.byteOffset,t.byteLength),e=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=0;for(let i=n-n%4;r<i;r+=4){if(t.getUint32(r,a)!==e.getUint32(r,a))break}for(;r<n;r++){const n=t.getUint8(r),i=e.getUint8(r);if(n<i)return-1;if(n>i)return 1}return t.byteLength>e.byteLength?1:t.byteLength<e.byteLength?-1:0},concat:function(t,e){void 0===e&&(e=t.reduce((t,e)=>t+e.byteLength,0));const n=new Uint8Array(e);let r=0;for(const e of t){if(r+e.byteLength>n.byteLength){const t=e.subarray(0,n.byteLength-r);return n.set(t,r),n}n.set(e,r),r+=e.byteLength}return n},copy:function(t,e,n=0,r=0,i=t.byteLength){if(i>0&&i<r)return 0;if(i===r)return 0;if(0===t.byteLength||0===e.byteLength)return 0;if(n<0)throw new RangeError("targetStart is out of range");if(r<0||r>=t.byteLength)throw new RangeError("sourceStart is out of range");if(i<0)throw new RangeError("sourceEnd is out of range");n>=e.byteLength&&(n=e.byteLength),i>t.byteLength&&(i=t.byteLength),e.byteLength-n<i-r&&(i=e.length-n+r);const o=i-r;return t===e?e.copyWithin(n,r,i):e.set(t.subarray(r,i),n),o},equals:function(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;const n=t.byteLength;t=new DataView(t.buffer,t.byteOffset,t.byteLength),e=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=0;for(let i=n-n%4;r<i;r+=4)if(t.getUint32(r,a)!==e.getUint32(r,a))return!1;for(;r<n;r++)if(t.getUint8(r)!==e.getUint8(r))return!1;return!0},fill:function(t,e,n,r,i){if("string"==typeof e?"string"==typeof n?(i=n,n=0,r=t.byteLength):"string"==typeof r&&(i=r,r=t.byteLength):"number"==typeof e?e&=255:"boolean"==typeof e&&(e=+e),n<0||t.byteLength<n||t.byteLength<r)throw new RangeError("Out of range index");if(void 0===n&&(n=0),void 0===r&&(r=t.byteLength),r<=n)return t;if(e||(e=0),"number"==typeof e)for(let i=n;i<r;++i)t[i]=e;else{const o=(e=l(e)?e:u(e,i)).byteLength;for(let i=0;i<r-n;++i)t[i+n]=e[i%o]}return t},from:u,includes:function(t,e,n,r){return-1!==d(t,e,n,r)},indexOf:d,lastIndexOf:function(t,e,n,r){return h(t,e,n,r,!1)},swap16:function(t){const e=t.byteLength;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let n=0;n<e;n+=2)p(t,n,n+1);return t},swap32:function(t){const e=t.byteLength;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let n=0;n<e;n+=4)p(t,n,n+3),p(t,n+1,n+2);return t},swap64:function(t){const e=t.byteLength;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let n=0;n<e;n+=8)p(t,n,n+7),p(t,n+1,n+6),p(t,n+2,n+5),p(t,n+3,n+4);return t},toBuffer:function(t){return t},toString:function(t,e,n=0,r=t.byteLength){const i=t.byteLength;return n>=i||r<=n?"":(n<0&&(n=0),r>i&&(r=i),(0!==n||r<i)&&(t=t.subarray(n,r)),c(e).toString(t))},write:function(t,e,n,r,i){return void 0===n?i="utf8":void 0===r&&"string"==typeof n?(i=n,n=void 0):void 0===i&&"string"==typeof r&&(i=r,r=void 0),c(i).write(t,e,n,r)},writeDoubleLE:function(t,e,n){return void 0===n&&(n=0),new DataView(t.buffer,t.byteOffset,t.byteLength).setFloat64(n,e,!0),n+8},writeFloatLE:function(t,e,n){return void 0===n&&(n=0),new DataView(t.buffer,t.byteOffset,t.byteLength).setFloat32(n,e,!0),n+4},writeUInt32LE:function(t,e,n){return void 0===n&&(n=0),new DataView(t.buffer,t.byteOffset,t.byteLength).setUint32(n,e,!0),n+4},writeInt32LE:function(t,e,n){return void 0===n&&(n=0),new DataView(t.buffer,t.byteOffset,t.byteLength).setInt32(n,e,!0),n+4},readDoubleLE:function(t,e){return void 0===e&&(e=0),new DataView(t.buffer,t.byteOffset,t.byteLength).getFloat64(e,!0)},readFloatLE:function(t,e){return void 0===e&&(e=0),new DataView(t.buffer,t.byteOffset,t.byteLength).getFloat32(e,!0)},readUInt32LE:function(t,e){return void 0===e&&(e=0),new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(e,!0)},readInt32LE:function(t,e){return void 0===e&&(e=0),new DataView(t.buffer,t.byteOffset,t.byteLength).getInt32(e,!0)}}}(hb,hb.exports);var Sb=lb,vb=hb.exports,_b=null,Lb="undefined"!=typeof WebAssembly&&function(){if(Mb)return Db;Mb=1;var t=(()=>{for(var t=new Uint8Array(128),e=0;e<64;e++)t[e<26?e+65:e<52?e+71:e<62?e-4:4*e-205]=e;return e=>{for(var n=e.length,r=new Uint8Array(3*(n-("="==e[n-1])-("="==e[n-2]))/4|0),i=0,o=0;i<n;){var s=t[e.charCodeAt(i++)],a=t[e.charCodeAt(i++)],c=t[e.charCodeAt(i++)],l=t[e.charCodeAt(i++)];r[o++]=s<<2|a>>4,r[o++]=a<<4|c>>2,r[o++]=c<<6|l}return r}})(),e=((t,e)=>function(){return e||(0,t[Object.keys(t)[0]])((e={exports:{}}).exports,e),e.exports})({"wasm-binary:./blake2b.wat"(e,n){n.exports=t("AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMKvz8EwAIAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAAQoiS853/zPmE6gBBACkDAIU3A4ABIABCu86qptjQ67O7f0EIKQMAhTcDiAEgAEKr8NP0r+68tzxBECkDAIU3A5ABIABC8e30+KWn/aelf0EYKQMAhTcDmAEgAELRhZrv+s+Uh9EAQSApAwCFNwOgASAAQp/Y+dnCkdqCm39BKCkDAIU3A6gBIABC6/qG2r+19sEfQTApAwCFNwOwASAAQvnC+JuRo7Pw2wBBOCkDAIU3A7gBIABCADcDwAEgAEIANwPIASAAQgA3A9ABC20BA38gAEHAAWohAyAAQcgBaiEEIAQpAwCnIQUCQANAIAEgAkYNASAFQYABRgRAIAMgAykDACAFrXw3AwBBACEFIAAQAwsgACAFaiABLQAAOgAAIAVBAWohBSABQQFqIQEMAAsLIAQgBa03AwALYQEDfyAAQcABaiEBIABByAFqIQIgASABKQMAIAIpAwB8NwMAIABCfzcD0AEgAikDAKchAwJAA0AgA0GAAUYNASAAIANqQQA6AAAgA0EBaiEDDAALCyACIAOtNwMAIAAQAwuqOwIgfgl/IABBgAFqISEgAEGIAWohIiAAQZABaiEjIABBmAFqISQgAEGgAWohJSAAQagBaiEmIABBsAFqIScgAEG4AWohKCAhKQMAIQEgIikDACECICMpAwAhAyAkKQMAIQQgJSkDACEFICYpAwAhBiAnKQMAIQcgKCkDACEIQoiS853/zPmE6gAhCUK7zqqm2NDrs7t/IQpCq/DT9K/uvLc8IQtC8e30+KWn/aelfyEMQtGFmu/6z5SH0QAhDUKf2PnZwpHagpt/IQ5C6/qG2r+19sEfIQ9C+cL4m5Gjs/DbACEQIAApAwAhESAAKQMIIRIgACkDECETIAApAxghFCAAKQMgIRUgACkDKCEWIAApAzAhFyAAKQM4IRggACkDQCEZIAApA0ghGiAAKQNQIRsgACkDWCEcIAApA2AhHSAAKQNoIR4gACkDcCEfIAApA3ghICANIAApA8ABhSENIA8gACkD0AGFIQ8gASAFIBF8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSASfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgE3x8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBR8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAVfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgFnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBd8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAYfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgGXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBp8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAbfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgHHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIB18fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAefHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgH3x8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFICB8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAffHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgG3x8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBV8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAZfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgGnx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHICB8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAefHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggF3x8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBJ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAdfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgEXx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBN8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAcfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGHx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBZ8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAUfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgHHx8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBl8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAdfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgEXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBZ8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByATfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggIHx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIB58fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAbfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgH3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBR8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAXfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggGHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBJ8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAafHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFXx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBh8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAafHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgFHx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBJ8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAefHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHXx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBx8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAffHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgE3x8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBd8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAWfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgG3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBV8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCARfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgIHx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBl8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAafHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEXx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBZ8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAYfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgE3x8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBV8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAbfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggIHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIB98fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiASfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgHHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIB18fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAXfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGXx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBR8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAefHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgE3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIB18fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAXfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgG3x8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBF8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAcfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggGXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBR8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAVfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHnx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBh8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAWfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggIHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIB98fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSASfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgGnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIB18fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAWfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgEnx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGICB8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAffHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBV8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAbfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgEXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBh8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAXfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgFHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBp8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCATfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgGXx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBx8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAefHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgHHx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBh8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAffHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgHXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBJ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAUfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGnx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBZ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiARfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgIHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBV8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAZfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggF3x8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBN8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAbfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgF3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFICB8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAffHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGnx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBx8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAUfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggEXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBl8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAdfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgE3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIB58fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAYfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggEnx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBV8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAbfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBt8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSATfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgGXx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBV8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAYfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgF3x8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBJ8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAWfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgIHx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBx8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAafHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgH3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBR8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAdfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgHnx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBF8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSARfHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEnx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBN8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAUfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgFXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBZ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAXfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBl8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAafHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgG3x8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBx8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAdfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggHnx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIB98fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAgfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgH3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBt8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAVfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBp8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAgfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggHnx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBd8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiASfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHXx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBF8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByATfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggHHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBh8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAWfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFHx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgISAhKQMAIAEgCYWFNwMAICIgIikDACACIAqFhTcDACAjICMpAwAgAyALhYU3AwAgJCAkKQMAIAQgDIWFNwMAICUgJSkDACAFIA2FhTcDACAmICYpAwAgBiAOhYU3AwAgJyAnKQMAIAcgD4WFNwMAICggKCkDACAIIBCFhTcDAAs=")}}),n=e(),r=WebAssembly.compile(n);return Db=async t=>(await WebAssembly.instantiate(await r,t)).exports}()().then(t=>{_b=t}),xb=64,Rb=[];cb.exports=Gb;var Fb=cb.exports.BYTES_MIN=16,Ob=cb.exports.BYTES_MAX=64;cb.exports.BYTES=32;var kb=cb.exports.KEYBYTES_MIN=16,Qb=cb.exports.KEYBYTES_MAX=64;cb.exports.KEYBYTES=32;var Ub=cb.exports.SALTBYTES=16,Pb=cb.exports.PERSONALBYTES=16;function Gb(t,e,n,r,i){if(!(this instanceof Gb))return new Gb(t,e,n,r,i);if(!_b)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");t||(t=32),!0!==i&&(Sb(t>=Fb,"digestLength must be at least "+Fb+", was given "+t),Sb(t<=Ob,"digestLength must be at most "+Ob+", was given "+t),null!=e&&(Sb(e instanceof Uint8Array,"key must be Uint8Array or Buffer"),Sb(e.length>=kb,"key must be at least "+kb+", was given "+e.length),Sb(e.length<=Qb,"key must be at least "+Qb+", was given "+e.length)),null!=n&&(Sb(n instanceof Uint8Array,"salt must be Uint8Array or Buffer"),Sb(n.length===Ub,"salt must be exactly "+Ub+", was given "+n.length)),null!=r&&(Sb(r instanceof Uint8Array,"personal must be Uint8Array or Buffer"),Sb(r.length===Pb,"personal must be exactly "+Pb+", was given "+r.length))),Rb.length||(Rb.push(xb),xb+=216),this.digestLength=t,this.finalized=!1,this.pointer=Rb.pop(),this._memory=new Uint8Array(_b.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=e?e.length:0,this._memory[2]=1,this._memory[3]=1,n&&this._memory.set(n,32),r&&this._memory.set(r,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),_b.blake2b_init(this.pointer,this.digestLength),e&&(this.update(e),this._memory.fill(0,xb,xb+e.length),this._memory[this.pointer+200]=128)}function Vb(){}function Hb(t){return(4294901760&t?(t&=4294901760,16):0)|(4278255360&t?(t&=4278255360,8):0)|(4042322160&t?(t&=4042322160,4):0)|(3435973836&t?(t&=3435973836,2):0)|!!(2863311530&t)}function jb(t,e){const n=new DataView(t.buffer,t.byteOffset,t.byteLength);let r="";for(let t=0;t<4;t++){t>0&&(r+="\n"),r+="\t\t";for(let e=0;e<4;e++)e>0&&(r+=" "),r+=n.getUint32(16*t+4*e).toString(16).padStart(8,"0")}return e&&(r=e+"\n"+r),r}function Yb(t,e){if(t.byteLength!=e.byteLength)return!1;for(var n=new Int8Array(t),r=new Int8Array(e),i=0;i!=t.byteLength;i++)if(n[i]!=r[i])return!1;return!0}function zb(t){const e=t.getPartialHash(),n=cb.exports(64);return n.setPartialHash(e),n}async function Jb(t,e,n,r,i){if(t.G1.isZero(e))return!1;if(t.G1.isZero(n))return!1;if(t.G2.isZero(r))return!1;if(t.G2.isZero(i))return!1;return await t.pairingEq(e,i,t.G1.neg(n),r)}function Wb(){return window.prompt("Enter a random text. (Entropy): ","")}function qb(t){let e=new Uint8Array(t);return globalThis.crypto.getRandomValues(e),e}async function Kb(t){{const e=await globalThis.crypto.subtle.digest("SHA-256",t.buffer);return new Uint8Array(e)}}function Xb(t,e){return new DataView(t.buffer).getUint32(e,!1)}async function Zb(t){for(;!t;)t=await Wb();const e=cb.exports(64);e.update(qb(64));const n=new TextEncoder;e.update(n.encode(t));const r=e.digest(),i=[];for(let t=0;t<8;t++)i[t]=Xb(r,4*t);return new KI(i)}async function $b(t,e){let n,r;e<32?(n=1<<e>>>0,r=1):(n=4294967296,r=1<<e-32>>>0);let i=t;for(let t=0;t<r;t++)for(let t=0;t<n;t++)i=await Kb(i);const o=new DataView(i.buffer,i.byteOffset,i.byteLength),s=[];for(let t=0;t<8;t++)s[t]=o.getUint32(4*t,!1);return new KI(s)}function tD(t){return t instanceof Uint8Array?t:("0x"==t.slice(0,2)&&(t=t.slice(2)),new Uint8Array(t.match(/[\da-f]{2}/gi).map(function(t){return parseInt(t,16)})))}function eD(t){return Array.prototype.map.call(t,function(t){return("0"+(255&t).toString(16)).slice(-2)}).join("")}Gb.prototype._realloc=function(t){_b.memory.grow(Math.max(0,Math.ceil(Math.abs(t-this._memory.length)/65536))),this._memory=new Uint8Array(_b.memory.buffer)},Gb.prototype.update=function(t){return Sb(!1===this.finalized,"Hash instance finalized"),Sb(t instanceof Uint8Array,"input must be Uint8Array or Buffer"),xb+t.length>this._memory.length&&this._realloc(xb+t.length),this._memory.set(t,xb),_b.blake2b_update(this.pointer,xb,xb+t.length),this},Gb.prototype.digest=function(t){if(Sb(!1===this.finalized,"Hash instance finalized"),this.finalized=!0,Rb.push(this.pointer),_b.blake2b_final(this.pointer),!t||"binary"===t)return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if("string"==typeof t)return vb.toString(this._memory,t,this.pointer+128,this.pointer+128+this.digestLength);Sb(t instanceof Uint8Array&&t.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var e=0;e<this.digestLength;e++)t[e]=this._memory[this.pointer+128+e];return t},Gb.prototype.final=Gb.prototype.digest,Gb.WASM=_b,Gb.SUPPORTED="undefined"!=typeof WebAssembly,Gb.ready=function(t){return t||(t=Vb),Lb?Lb.then(()=>t(),t):t(new Error("WebAssembly not supported"))},Gb.prototype.ready=Gb.ready,Gb.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)},Gb.prototype.setPartialHash=function(t){this._memory.set(t,this.pointer)};const nD=10;async function rD(t,e){await YT(t,1),await t.writeULE32(1),await zT(t);const n=await ob(e.q);await YT(t,2);const r=n.q,i=8*(Math.floor((TT.bitLength(r)-1)/64)+1),o=n.r,s=8*(Math.floor((TT.bitLength(o)-1)/64)+1);await t.writeULE32(i),await qT(t,r,i),await t.writeULE32(s),await qT(t,o,s),await t.writeULE32(e.nVars),await t.writeULE32(e.nPublic),await t.writeULE32(e.domainSize),await iD(t,n,e.vk_alpha_1),await iD(t,n,e.vk_beta_1),await oD(t,n,e.vk_beta_2),await oD(t,n,e.vk_gamma_2),await iD(t,n,e.vk_delta_1),await oD(t,n,e.vk_delta_2),await zT(t)}async function iD(t,e,n){const r=new Uint8Array(2*e.G1.F.n8);e.G1.toRprLEM(r,0,n),await t.write(r)}async function oD(t,e,n){const r=new Uint8Array(2*e.G2.F.n8);e.G2.toRprLEM(r,0,n),await t.write(r)}async function sD(t,e,n){const r=await t.read(2*e.G1.F.n8),i=e.G1.fromRprLEM(r,0);return n?e.G1.toObject(i):i}async function aD(t,e,n){const r=await t.read(2*e.G2.F.n8),i=e.G2.fromRprLEM(r,0);return n?e.G2.toObject(i):i}async function cD(t,e,n,r){await JT(t,e,1);const i=await t.readULE32();if(await WT(t),1===i)return await async function(t,e,n,r){const i={protocol:"groth16"};await JT(t,e,2);const o=await t.readULE32();i.n8q=o,i.q=await KT(t,o);const s=await t.readULE32();return i.n8r=s,i.r=await KT(t,s),i.curve=await ob(i.q,r),i.nVars=await t.readULE32(),i.nPublic=await t.readULE32(),i.domainSize=await t.readULE32(),i.power=Hb(i.domainSize),i.vk_alpha_1=await sD(t,i.curve,n),i.vk_beta_1=await sD(t,i.curve,n),i.vk_beta_2=await aD(t,i.curve,n),i.vk_gamma_2=await aD(t,i.curve,n),i.vk_delta_1=await sD(t,i.curve,n),i.vk_delta_2=await aD(t,i.curve,n),await WT(t),i}(t,e,n,r);if(2===i)return await async function(t,e,n,r){const i={protocol:"plonk"};await JT(t,e,2);const o=await t.readULE32();i.n8q=o,i.q=await KT(t,o);const s=await t.readULE32();return i.n8r=s,i.r=await KT(t,s),i.curve=await ob(i.q,r),i.nVars=await t.readULE32(),i.nPublic=await t.readULE32(),i.domainSize=await t.readULE32(),i.power=Hb(i.domainSize),i.nAdditions=await t.readULE32(),i.nConstraints=await t.readULE32(),i.k1=await t.read(s),i.k2=await t.read(s),i.Qm=await sD(t,i.curve,n),i.Ql=await sD(t,i.curve,n),i.Qr=await sD(t,i.curve,n),i.Qo=await sD(t,i.curve,n),i.Qc=await sD(t,i.curve,n),i.S1=await sD(t,i.curve,n),i.S2=await sD(t,i.curve,n),i.S3=await sD(t,i.curve,n),i.X_2=await aD(t,i.curve,n),await WT(t),i}(t,e,n,r);if(10===i)return await async function(t,e,n,r){const i={protocol:"fflonk"};i.protocolId=nD,await JT(t,e,2);const o=await t.readULE32();i.n8q=o,i.q=await KT(t,o),i.curve=await ob(i.q,r);const s=await t.readULE32();return i.n8r=s,i.r=await KT(t,s),i.nVars=await t.readULE32(),i.nPublic=await t.readULE32(),i.domainSize=await t.readULE32(),i.power=Hb(i.domainSize),i.nAdditions=await t.readULE32(),i.nConstraints=await t.readULE32(),i.k1=await t.read(s),i.k2=await t.read(s),i.w3=await t.read(s),i.w4=await t.read(s),i.w8=await t.read(s),i.wr=await t.read(s),i.X_2=await aD(t,i.curve,n),i.C0=await sD(t,i.curve,n),await WT(t),i}(t,e,n,r);throw new Error("Protocol not supported: ")}async function lD(t,e,n){const r={delta:{}};r.deltaAfter=await sD(t,e,n),r.delta.g1_s=await sD(t,e,n),r.delta.g1_sx=await sD(t,e,n),r.delta.g2_spx=await aD(t,e,n),r.transcript=await t.read(64),r.type=await t.readULE32();const i=await t.readULE32(),o=t.pos;let s=0;for(;t.pos-o<i;){const e=await t.read(1);if(e[0]<=s)throw new Error("Parameters in the contribution must be sorted");if(s=e[0],1==e[0]){const e=await t.read(1),n=await t.read(e[0]);r.name=(new TextDecoder).decode(n)}else if(2==e[0]){const e=await t.read(1);r.numIterationsExp=e[0]}else{if(3!=e[0])throw new Error("Parameter not recognized");{const e=await t.read(1);r.beaconHash=await t.read(e[0])}}}if(t.pos!=o+i)throw new Error("Parameters do not match");return r}async function uD(t,e,n){await JT(t,n,10);const r={contributions:[]};r.csHash=await t.read(64);const i=await t.readULE32();for(let n=0;n<i;n++){const n=await lD(t,e);r.contributions.push(n)}return await WT(t),r}async function hD(t,e,n){await iD(t,e,n.deltaAfter),await iD(t,e,n.delta.g1_s),await iD(t,e,n.delta.g1_sx),await oD(t,e,n.delta.g2_spx),await t.write(n.transcript),await t.writeULE32(n.type||0);const r=[];if(n.name){r.push(1);const t=new TextEncoder("utf-8").encode(n.name.substring(0,64));r.push(t.byteLength);for(let e=0;e<t.byteLength;e++)r.push(t[e])}if(1==n.type){r.push(2),r.push(n.numIterationsExp),r.push(3),r.push(n.beaconHash.byteLength);for(let t=0;t<n.beaconHash.byteLength;t++)r.push(n.beaconHash[t])}if(r.length>0){const e=new Uint8Array(r);await t.writeULE32(e.byteLength),await t.write(e)}else await t.writeULE32(0)}async function dD(t,e,n){await YT(t,10),await t.write(n.csHash),await t.writeULE32(n.contributions.length);for(let r=0;r<n.contributions.length;r++)await hD(t,e,n.contributions[r]);await zT(t)}function pD(t,e,n){const r=new Uint8Array(2*e.G1.F.n8);e.G1.toRprUncompressed(r,0,n),t.update(r)}function fD(t,e,n){pD(t,e,n.deltaAfter),pD(t,e,n.delta.g1_s),pD(t,e,n.delta.g1_sx),function(t,e,n){const r=new Uint8Array(2*e.G2.F.n8);e.G2.toRprUncompressed(r,0,n),t.update(r)}(t,e,n.delta.g2_spx),t.update(n.transcript)}async function AD(t,e){await JT(t,e,1);const n=await t.readULE32(),r=await KT(t,n),i=await t.readULE32();return await WT(t),{n8:n,q:r,nWitness:i}}const{stringifyBigInts:gD}=bT;async function ED(t,e,n,r){const{fd:i,sections:o}=await HT(e,"wtns",2),s=await AD(i,o),{fd:a,sections:c}=await HT(t,"zkey",2),l=await cD(a,c,void 0,r);if("groth16"!=l.protocol)throw new Error("zkey file is not groth16");if(!TT.eq(l.r,s.q))throw new Error("Curve of the witness does not match the curve of the proving key");if(s.nWitness!=l.nVars)throw new Error(`Invalid witness length. Circuit: ${l.nVars}, witness: ${s.nWitness}`);const u=l.curve,h=u.Fr,d=u.G1,p=u.G2,f=Hb(l.domainSize);n&&n.debug("Reading Wtns");const A=await ZT(i,o,2);n&&n.debug("Reading Coeffs");const g=await ZT(a,c,4);n&&n.debug("Building ABC");const[E,m,y]=await async function(t,e,n,r,i){const o=t.Fr.n8,s=12+e.n8r,a=(r.byteLength-4)/s,c=new HB(e.domainSize*o),l=new HB(e.domainSize*o),u=new HB(e.domainSize*o),h=[c,l];for(let e=0;e<a;e++){i&&e%1e6==0&&i.debug(`QAP AB: ${e}/${a}`);const c=r.slice(4+e*s,4+e*s+s),l=new DataView(c.buffer),u=l.getUint32(0,!0),d=l.getUint32(4,!0),p=l.getUint32(8,!0),f=c.slice(12,12+o);h[u].set(t.Fr.add(h[u].slice(d*o,d*o+o),t.Fr.mul(f,n.slice(p*o,p*o+o))),d*o)}for(let n=0;n<e.domainSize;n++)i&&n%1e6==0&&i.debug(`QAP C: ${n}/${e.domainSize}`),u.set(t.Fr.mul(c.slice(n*o,n*o+o),l.slice(n*o,n*o+o)),n*o);return[c,l,u]}(u,l,A,g,n),w=f==h.s?u.Fr.shift:u.Fr.w[f+1],I=await h.ifft(E,"","",n,"IFFT_A"),C=await h.batchApplyKey(I,h.e(1),w),B=await h.fft(C,"","",n,"FFT_A"),T=await h.ifft(m,"","",n,"IFFT_B"),b=await h.batchApplyKey(T,h.e(1),w),D=await h.fft(b,"","",n,"FFT_B"),M=await h.ifft(y,"","",n,"IFFT_C"),N=await h.batchApplyKey(M,h.e(1),w),S=await h.fft(N,"","",n,"FFT_C");n&&n.debug("Join ABC");const v=await async function(t,e,n,r,i,o){const s=1<<22,a=t.Fr.n8,c=Math.floor(n.byteLength/t.Fr.n8),l=[];for(let e=0;e<c;e+=s){o&&o.debug(`JoinABC: ${e}/${c}`);const u=Math.min(c-e,s),h=[],d=n.slice(e*a,(e+u)*a),p=r.slice(e*a,(e+u)*a),f=i.slice(e*a,(e+u)*a);h.push({cmd:"ALLOCSET",var:0,buff:d}),h.push({cmd:"ALLOCSET",var:1,buff:p}),h.push({cmd:"ALLOCSET",var:2,buff:f}),h.push({cmd:"ALLOC",var:3,len:u*a}),h.push({cmd:"CALL",fnName:"qap_joinABC",params:[{var:0},{var:1},{var:2},{val:u},{var:3}]}),h.push({cmd:"CALL",fnName:"frm_batchFromMontgomery",params:[{var:3},{val:u},{var:3}]}),h.push({cmd:"GET",out:0,var:3,len:u*a}),l.push(t.tm.queueAction(h))}const u=await Promise.all(l);let h;h=n instanceof HB?new HB(n.byteLength):new Uint8Array(n.byteLength);let d=0;for(let t=0;t<u.length;t++)h.set(u[t][0],d),d+=u[t][0].byteLength;return h}(u,0,B,D,S,n);let _={};n&&n.debug("Reading A Points");const L=await ZT(a,c,5);_.pi_a=await u.G1.multiExpAffine(L,A,n,"multiexp A"),n&&n.debug("Reading B1 Points");const x=await ZT(a,c,6);let R=await u.G1.multiExpAffine(x,A,n,"multiexp B1");n&&n.debug("Reading B2 Points");const F=await ZT(a,c,7);_.pi_b=await u.G2.multiExpAffine(F,A,n,"multiexp B2"),n&&n.debug("Reading C Points");const O=await ZT(a,c,8);_.pi_c=await u.G1.multiExpAffine(O,A.slice((l.nPublic+1)*u.Fr.n8),n,"multiexp C"),n&&n.debug("Reading H Points");const k=await ZT(a,c,9),Q=await u.G1.multiExpAffine(k,v,n,"multiexp H"),U=u.Fr.random(),P=u.Fr.random();_.pi_a=d.add(_.pi_a,l.vk_alpha_1),_.pi_a=d.add(_.pi_a,d.timesFr(l.vk_delta_1,U)),_.pi_b=p.add(_.pi_b,l.vk_beta_2),_.pi_b=p.add(_.pi_b,p.timesFr(l.vk_delta_2,P)),R=d.add(R,l.vk_beta_1),R=d.add(R,d.timesFr(l.vk_delta_1,P)),_.pi_c=d.add(_.pi_c,Q),_.pi_c=d.add(_.pi_c,d.timesFr(_.pi_a,P)),_.pi_c=d.add(_.pi_c,d.timesFr(R,U)),_.pi_c=d.add(_.pi_c,d.timesFr(l.vk_delta_1,h.neg(h.mul(U,P))));let G=[];for(let t=1;t<=l.nPublic;t++){const e=A.slice(t*h.n8,t*h.n8+h.n8);G.push(TT.fromRprLE(e))}return _.pi_a=d.toObject(d.toAffine(_.pi_a)),_.pi_b=p.toObject(p.toAffine(_.pi_b)),_.pi_c=d.toObject(d.toAffine(_.pi_c)),_.protocol="groth16",_.curve=u.name,await a.close(),await i.close(),_=gD(_),G=gD(G),{proof:_,publicSignals:G}}function mD(t){let e=[];return function t(e,n){if(Array.isArray(n))for(let r=0;r<n.length;r++)t(e,n[r]);else e.push(n)}(e,t),e}function yD(t,e){let n=BigInt(t)%e;return n<0&&(n+=e),n}function wD(t){const e=BigInt(2)**BigInt(64);let n=BigInt("0xCBF29CE484222325");for(let r=0;r<t.length;r++)n^=BigInt(t[r].charCodeAt(0)),n*=BigInt(1099511628211),n%=e;let r=n.toString(16),i=16-r.length;return r="0".repeat(i).concat(r),r}function ID(t,e){const n=[];let r=BigInt(t);const i=BigInt(4294967296);for(;r;)n.unshift(Number(r%i)),r/=i;if(e){let t=e-n.length;for(;t>0;)n.unshift(0),t--}return n}async function CD(t,e){let n,r,i;e=e||{};let o=1,s=0,a=0,c=!1;if(t instanceof WebAssembly.Instance)n=t,c=!0;else{let c=32767;if(e.memorySize&&(c=parseInt(e.memorySize),c<0))throw new Error("Invalid memory size");let l=!1;for(;!l;)try{i=new WebAssembly.Memory({initial:c}),l=!0}catch(t){if(c<=1)throw t;console.warn("Could not allocate "+1024*c*64+" bytes. This may cause severe instability. Trying with "+1024*c*64/2+" bytes"),c=Math.floor(c/2)}const d=await WebAssembly.compile(t);let p="",f="";n=await WebAssembly.instantiate(d,{env:{memory:i},runtime:{printDebug:function(t){console.log("printDebug:",t)},exceptionHandler:function(t){let e;throw e=1===t?"Signal not found. ":2===t?"Too many signals set. ":3===t?"Signal already set. ":4===t?"Assert Failed. ":5===t?"Not enough memory. ":6===t?"Input signal array access exceeds the size. ":"Unknown error. ",console.error("ERROR: ",t,p),new Error(e+p)},printErrorMessage:function(){p+=u()+"\n"},writeBufferMessage:function(){const t=u();"\n"===t?(console.log(f),f=""):(""!==f&&(f+=" "),f+=t)},showSharedRWMemory:function(){const t=n.exports.getFieldNumLen32(),e=new Uint32Array(t);for(let r=0;r<t;r++)e[t-1-r]=n.exports.readSharedRWMemory(r);if(o>=2&&(s>=1||a>=7)){""!==f&&(f+=" ");const t=TT.fromArray(e,4294967296).toString();f+=t}else console.log(TT.fromArray(e,4294967296))},error:function(t,n,i,o,s,a){let c;throw c=7===t?h(n)+" "+r.getFr(o).toString()+" != "+r.getFr(s).toString()+" "+h(a):9===t?h(n)+" "+r.getFr(o).toString()+" "+h(s):5===t&&e.sym?h(n)+" "+e.sym.labelIdx2Name[s]:h(n)+" "+i+" "+o+" "+s+" "+a,console.log("ERROR: ",t,c),new Error(c)},log:function(t){console.log(r.getFr(t).toString())},logGetSignal:function(t,n){e.logGetSignal&&e.logGetSignal(t,r.getFr(n))},logSetSignal:function(t,n){e.logSetSignal&&e.logSetSignal(t,r.getFr(n))},logStartComponent:function(t){e.logStartComponent&&e.logStartComponent(t)},logFinishComponent:function(t){e.logFinishComponent&&e.logFinishComponent(t)}}})}"function"==typeof n.exports.getVersion&&(o=n.exports.getVersion()),"function"==typeof n.exports.getMinorVersion&&(s=n.exports.getMinorVersion()),"function"==typeof n.exports.getPatchVersion&&(a=n.exports.getPatchVersion());const l=e&&(e.sanityCheck||e.logGetSignal||e.logSetSignal||e.logStartComponent||e.logFinishComponent);if(2===o)r=new TD(n,l);else{if(1!==o)throw new Error(`Unsupported circom version: ${o}`);if(c)throw new Error("Loading code from WebAssembly instance is not supported for circom version 1");r=new BD(i,n,l)}return r;function u(){let t="",e=n.exports.getMessageChar();for(;0!==e;)t+=String.fromCharCode(e),e=n.exports.getMessageChar();return t}function h(t){const e=new Uint8Array(i.buffer),n=[];for(let r=0;e[t+r]>0;r++)n.push(e[t+r]);return String.fromCharCode.apply(null,n)}}class BD{constructor(t,e,n){this.memory=t,this.i32=new Uint32Array(t.buffer),this.instance=e,this.n32=(this.instance.exports.getFrLen()>>2)-2;const r=this.instance.exports.getPRawPrime(),i=new Array(this.n32);for(let t=0;t<this.n32;t++)i[this.n32-1-t]=this.i32[(r>>2)+t];this.prime=TT.fromArray(i,4294967296),this.Fr=new rC(this.prime),this.mask32=TT.fromString("FFFFFFFF",16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(TT.shiftLeft(1,64*this.n64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=n}circom_version(){return 1}async _doCalculateWitness(t,e){this.instance.exports.init(this.sanityCheck||e?1:0);const n=this.allocInt(),r=this.allocFr();Object.keys(t).forEach(e=>{const i=wD(e),o=parseInt(i.slice(0,8),16),s=parseInt(i.slice(8,16),16);try{this.instance.exports.getSignalOffset32(n,0,o,s)}catch(t){throw new Error(`Signal ${e} is not an input of the circuit.`)}const a=this.getInt(n),c=mD(t[e]);for(let t=0;t<c.length;t++)this.setFr(r,c[t]),this.instance.exports.setSignal(0,0,a+t,r)})}async calculateWitness(t,e){const n=this,r=n.i32[0],i=[];await n._doCalculateWitness(t,e);for(let t=0;t<n.NVars;t++){const e=n.instance.exports.getPWitness(t);i.push(n.getFr(e))}return n.i32[0]=r,i}async calculateBinWitness(t,e){const n=this,r=n.i32[0];await n._doCalculateWitness(t,e);const i=n.instance.exports.getWitnessBuffer();n.i32[0]=r;const o=n.memory.buffer.slice(i,i+n.NVars*n.n64*8);return new Uint8Array(o)}allocInt(){const t=this.i32[0];return this.i32[0]=t+8,t}allocFr(){const t=this.i32[0];return this.i32[0]=t+4*this.n32+8,t}getInt(t){return this.i32[t>>2]}setInt(t,e){this.i32[t>>2]=e}getFr(t){const e=this,n=t>>2;if(2147483648&e.i32[n+1]){const t=new Array(e.n32);for(let r=0;r<e.n32;r++)t[e.n32-1-r]=e.i32[n+2+r];const i=e.Fr.e(TT.fromArray(t,4294967296));return 1073741824&e.i32[n+1]?(r=i,e.Fr.mul(e.RInv,r)):i}return 2147483648&e.i32[n]?e.Fr.e(e.i32[n]-4294967296):e.Fr.e(e.i32[n]);var r}setFr(t,e){const n=this;e=n.Fr.e(e);const r=n.Fr.neg(n.Fr.e("80000000",16)),i=n.Fr.e("7FFFFFFF",16);if(n.Fr.geq(e,r)&&n.Fr.leq(e,i)){let i;return n.Fr.geq(e,n.Fr.zero)?i=TT.toNumber(e):(i=TT.toNumber(n.Fr.sub(e,r)),i-=2147483648,i=4294967296+i),n.i32[t>>2]=i,void(n.i32[1+(t>>2)]=0)}n.i32[t>>2]=0,n.i32[1+(t>>2)]=2147483648;const o=TT.toArray(e,4294967296);for(let e=0;e<n.n32;e++){const r=o.length-1-e;n.i32[2+(t>>2)+e]=r>=0?o[r]:0}}}class TD{constructor(t,e){this.instance=t,this.version=this.instance.exports.getVersion(),this.n32=this.instance.exports.getFieldNumLen32(),this.instance.exports.getRawPrime();const n=new Uint32Array(this.n32);for(let t=0;t<this.n32;t++)n[this.n32-1-t]=this.instance.exports.readSharedRWMemory(t);this.prime=TT.fromArray(n,4294967296),this.witnessSize=this.instance.exports.getWitnessSize(),this.sanityCheck=e}circom_version(){return this.instance.exports.getVersion()}async _doCalculateWitness(t,e){this.instance.exports.init(this.sanityCheck||e?1:0);const n=Object.keys(t);let r=0;if(n.forEach(e=>{const n=wD(e),i=parseInt(n.slice(0,8),16),o=parseInt(n.slice(8,16),16),s=mD(t[e]);if("function"==typeof this.instance.exports.getInputSignalSize){let t=this.instance.exports.getInputSignalSize(i,o);if(t<0)throw new Error(`Signal ${e} not found\n`);if(s.length<t)throw new Error(`Not enough values for input signal ${e}\n`);if(s.length>t)throw new Error(`Too many values for input signal ${e}\n`)}for(let t=0;t<s.length;t++){const e=ID(yD(s[t],this.prime),this.n32);for(let t=0;t<this.n32;t++)this.instance.exports.writeSharedRWMemory(t,e[this.n32-1-t]);try{this.instance.exports.setInputSignal(i,o,t),r++}catch(t){throw new Error(t)}}}),r<this.instance.exports.getInputSize())throw new Error(`Not all inputs have been set. Only ${r} out of ${this.instance.exports.getInputSize()}`)}async calculateWitness(t,e){const n=[];await this._doCalculateWitness(t,e);for(let t=0;t<this.witnessSize;t++){this.instance.exports.getWitness(t);const e=new Uint32Array(this.n32);for(let t=0;t<this.n32;t++)e[this.n32-1-t]=this.instance.exports.readSharedRWMemory(t);n.push(TT.fromArray(e,4294967296))}return n}async calculateWTNSBin(t,e){const n=new Uint32Array(this.witnessSize*this.n32+this.n32+11),r=new Uint8Array(n.buffer);await this._doCalculateWitness(t,e),r[0]="w".charCodeAt(0),r[1]="t".charCodeAt(0),r[2]="n".charCodeAt(0),r[3]="s".charCodeAt(0),n[1]=2,n[2]=2,n[3]=1;const i=4*this.n32,o=(8+i).toString(16);n[4]=parseInt(o.slice(0,8),16),n[5]=parseInt(o.slice(8,16),16),n[6]=i,this.instance.exports.getRawPrime();let s=7;for(let t=0;t<this.n32;t++)n[s+t]=this.instance.exports.readSharedRWMemory(t);s+=this.n32,n[s]=this.witnessSize,s++,n[s]=2,s++;const a=(i*this.witnessSize).toString(16);n[s]=parseInt(a.slice(0,8),16),n[s+1]=parseInt(a.slice(8,16),16),s+=2;for(let t=0;t<this.witnessSize;t++){this.instance.exports.getWitness(t);for(let t=0;t<this.n32;t++)n[s+t]=this.instance.exports.readSharedRWMemory(t);s+=this.n32}return r}}const{unstringifyBigInts:bD}=bT;async function DD(t,e,n,r){const i=bD(t),o=await VT(e),s=await o.read(o.totalSize);await o.close();const a=await CD(s,r);if(1===a.circom_version()){const t=await a.calculateBinWitness(i),e=await jT(n,"wtns",2,2);await async function(t,e,n){await YT(t,1);const r=8*(Math.floor((TT.bitLength(n)-1)/64)+1);if(await t.writeULE32(r),await qT(t,n,r),e.byteLength%r!=0)throw new Error("Invalid witness length");await t.writeULE32(e.byteLength/r),await zT(t),await YT(t,2),await t.write(e),await zT(t)}(e,t,a.prime),await e.close()}else{const t=await GT(n),e=await a.calculateWTNSBin(i);await t.write(e),await t.close()}}const{unstringifyBigInts:MD}=bT;const{unstringifyBigInts:ND}=bT;const{unstringifyBigInts:SD}=bT;function vD(t){let e=t.toString(16);for(;e.length<64;)e="0"+e;return e=`"0x${e}"`,e}var _D=Object.freeze({__proto__:null,fullProve:async function(t,e,n,r,i,o){const s=MD(t),a={type:"mem"};return await DD(s,e,a,i),await ED(n,a,r,o)},prove:ED,verify:async function(t,e,n,r){const i=ND(t),o=ND(n),s=ND(e),a=await sb(i.curve),c=a.G1.fromObject(i.IC[0]),l=new Uint8Array(2*a.G1.F.n8*s.length),u=new Uint8Array(a.Fr.n8*s.length);if(!function(t,e){for(let n=0;n<e.length;n++)if(!TT.lt(e[n],t.r))return!1;return!0}(a,s))return r&&r.error("Public inputs are not valid."),!1;for(let t=0;t<s.length;t++){const e=a.G1.fromObject(i.IC[t+1]);l.set(e,t*a.G1.F.n8*2),TT.toRprLE(u,a.Fr.n8*t,s[t],a.Fr.n8)}let h=await a.G1.multiExpAffine(l,u);h=a.G1.add(h,c);const d=a.G1.fromObject(o.pi_a),p=a.G2.fromObject(o.pi_b),f=a.G1.fromObject(o.pi_c);if(!function(t,e){const n=t.G1,r=t.G2;return n.isValid(e.pi_a)&&r.isValid(e.pi_b)&&n.isValid(e.pi_c)}(a,{pi_a:d,pi_b:p,pi_c:f}))return r&&r.error("Proof commitments are not valid."),!1;const A=a.G2.fromObject(i.vk_gamma_2),g=a.G2.fromObject(i.vk_delta_2),E=a.G1.fromObject(i.vk_alpha_1),m=a.G2.fromObject(i.vk_beta_2);return await a.pairingEq(a.G1.neg(d),p,h,A,f,g,E,m)?(r&&r.info("OK!"),!0):(r&&r.error("Invalid proof"),!1)},exportSolidityCallData:async function(t,e){const n=SD(t),r=SD(e);let i,o="";for(let t=0;t<r.length;t++)""!=o&&(o+=","),o+=vD(r[t]);return i=`[${vD(n.pi_a[0])}, ${vD(n.pi_a[1])}],[[${vD(n.pi_b[0][1])}, ${vD(n.pi_b[0][0])}],[${vD(n.pi_b[1][1])}, ${vD(n.pi_b[1][0])}]],[${vD(n.pi_c[0])}, ${vD(n.pi_c[1])}],[${o}]`,i}});function LD(t,e){const n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=[];for(let t=0;t<8;t++)r[t]=n.getUint32(4*t);const i=new KI(r);return t.G2.fromRng(i)}async function xD(t,e){if(!e[1])throw new Error(t.fileName+": File has no header");if(e[1].length>1)throw new Error(t.fileName+": File has more than one header");t.pos=e[1][0].p;const n=await t.readULE32(),r=await t.read(n),i=TT.fromRprLE(r),o=await ob(i);if(8*o.F1.n64!=n)throw new Error(t.fileName+": Invalid size");const s=await t.readULE32(),a=await t.readULE32();if(t.pos-e[1][0].p!=e[1][0].size)throw new Error("Invalid PTau header size");return{curve:o,power:s,ceremonyPower:a}}async function RD(t,e,n,r,i,o,s,a,c,l){const u=i[o],h=2*u.F.n8,d=e[r][0].size/h;await JT(t,e,r),await YT(n,r);let p=s;for(let e=0;e<d;e+=65536){l&&l.debug(`Applying key: ${c}: ${e}/${d}`);const r=Math.min(d-e,65536);let o;o=await t.read(r*h),o=await u.batchApplyKey(o,p,a),await n.write(o),p=i.Fr.mul(p,i.Fr.exp(a,r))}await zT(n),await WT(t)}async function FD(t,e,n,r,i,o,s,a,c,l,u){const h=r[i],d=2*h.F.n8,p=Math.floor((1<<20)/d);let f=s;for(let i=0;i<o;i+=p){u&&u.debug(`Applying key ${l}: ${i}/${o}`);const s=Math.min(o-i,p),A=await t.read(s*d),g=await h.batchUtoLEM(A),E=await h.batchApplyKey(g,f,a);let m;m="COMPRESSED"==c?await h.batchLEMtoC(E):await h.batchLEMtoU(E),n&&n.update(m),await e.write(m),f=r.Fr.mul(f,r.Fr.exp(a,s))}}const OD=262144,kD={get:function(t,e){return isNaN(e)?t[e]:t.getElement(e)},set:function(t,e,n){return isNaN(e)?(t[e]=n,!0):t.setElement(e,n)}};class QD{constructor(t){this.length=t||0,this.arr=new Array(OD);for(let e=0;e<t;e+=OD)this.arr[e/OD]=new Array(Math.min(OD,t-e));return this}push(){for(let t=0;t<arguments.length;t++)this.setElement(this.length,arguments[t])}slice(t,e){const n=new Array(e-t);for(let r=t;r<e;r++)n[r-t]=this.getElement(r);return n}getElement(t){t=parseInt(t);const e=Math.floor(t/OD),n=t%OD;return this.arr[e]?this.arr[e][n]:void 0}setElement(t,e){t=parseInt(t);const n=Math.floor(t/OD);this.arr[n]||(this.arr[n]=new Array(OD));const r=t%OD;return this.arr[n][r]=e,t>=this.length&&(this.length=t+1),!0}getKeys(){const t=new UD;for(let e=0;e<this.arr.length;e++)if(this.arr[e])for(let n=0;n<this.arr[e].length;n++)void 0!==this.arr[e][n]&&t.push(e*OD+n);return t}}class UD{constructor(t){const e=new QD(t);return new Proxy(e,kD)}}var PD=UD;async function GD(t,e,n){let r;r="object"==typeof n?n:void 0===n?{singleThread:!1}:{singleThread:n};const i={};if(await JT(t,e,1),i.n8=await t.readULE32(),i.prime=await KT(t,i.n8),r.F){if(r.F.p!=i.prime)throw new Error("Different Prime");i.F=r.F}else if(r.getFieldFromPrime)i.F=await r.getFieldFromPrime(i.prime,r.singleThread);else if(r.getCurveFromPrime)i.curve=await r.getCurveFromPrime(i.prime,r.singleThread),i.F=i.curve.Fr;else try{i.curve=await async function(t,e,n){let r;if(_I(t,BT))r=await wT(e,n);else{if(!_I(t,CT))throw new Error(`Curve not supported: ${UI(t)}`);r=await IT(e,n)}return r}(i.prime,r.singleThread),i.F=i.curve.Fr}catch(t){i.F=new rC(i.prime)}return i.nVars=await t.readULE32(),i.nOutputs=await t.readULE32(),i.nPubInputs=await t.readULE32(),i.nPrvInputs=await t.readULE32(),i.nLabels=await t.readULE64(),i.nConstraints=await t.readULE32(),i.useCustomGates=void 0!==e[4]&&null!==e[4]&&void 0!==e[5]&&null!==e[5],await WT(t),i}async function VD(t,e,n){if("object"!=typeof n)throw new Error("readR1csFd: options must be an object");n.loadConstraints=!("loadConstraints"in n)||n.loadConstraints,n.loadMap="loadMap"in n&&n.loadMap,n.loadCustomGates=!("loadCustomGates"in n)||n.loadCustomGates;const r=await GD(t,e,n);return n.loadConstraints&&(r.constraints=await async function(t,e,n,r,i){let o;o="object"==typeof r?r:void 0===r?{}:{logger:r,loggerCtx:i};const s=await ZT(t,e,2);let a,c=0;a=n.nConstraints>1<<20?new PD:[];for(let t=0;t<n.nConstraints;t++){o.logger&&t%1e5==0&&o.logger.info(`${o.loggerCtx}: Loading constraints: ${t}/${n.nConstraints}`);const e=l();a.push(e)}return a;function l(){const t=[];return t[0]=u(),t[1]=u(),t[2]=u(),t}function u(){const t={},e=s.slice(c,c+4);c+=4;const r=new DataView(e.buffer).getUint32(0,!0),i=s.slice(c,c+(4+n.n8)*r);c+=(4+n.n8)*r;const o=new DataView(i.buffer);for(let e=0;e<r;e++){const r=o.getUint32(e*(4+n.n8),!0),s=n.F.fromRprLE(i,e*(4+n.n8)+4);t[r]=s}return t}}(t,e,r,n)),n.loadMap&&(r.map=await async function(t,e,n,r,i){let o;o="object"==typeof r?r:void 0===r?{}:{logger:r,loggerCtx:i};const s=await ZT(t,e,3);let a,c=0;a=n.nVars>1<<20?new PD:[];for(let t=0;t<n.nVars;t++){o.logger&&t%1e4==0&&o.logger.info(`${o.loggerCtx}: Loading map: ${t}/${n.nVars}`);const e=l();a.push(e)}return a;function l(){const t=s.slice(c,c+8);c+=8;const e=new DataView(t.buffer),n=e.getUint32(0,!0);return 4294967296*e.getUint32(4,!0)+n}}(t,e,r,n)),n.loadCustomGates&&(r.useCustomGates?(r.customGates=await async function(t,e,n){await JT(t,e,4);let r=await t.readULE32(),i=[];for(let e=0;e<r;e++){let e={};e.templateName=await t.readString();let r=await t.readULE32();e.parameters=Array(r);let o=await t.read(n.n8*r);for(let t=0;t<r;t++)e.parameters[t]=n.F.fromRprLE(o,t*n.n8,n.n8);i.push(e)}return await WT(t),i}(t,e,r),r.customGatesUses=await async function(t,e,n){const r=await ZT(t,e,5),i=new Uint32Array(r.buffer,r.byteOffset,r.byteLength/4),o=i[0];let s,a=1;s=o>1<<20?new PD:[];for(let t=0;t<o;t++){n.logger&&t%1e5==0&&n.logger.info(`${n.loggerCtx}: Loading custom gate uses: ${t}/${o}`);let e={};e.id=i[a++];let r=i[a++];e.signals=[];for(let t=0;t<r;t++){const t=i[a++],n=i[a++];e.signals.push(4294967296*n+t)}s.push(e)}return s}(t,e,n)):(r.customGates=[],r.customGatesUses=[])),r}TT.e("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),TT.e("21888242871839275222246405745257275088548364400416034343698204186575808495617");async function HD(t){const e={labelIdx2Name:["one"],varIdx2Name:["one"],componentIdx2Name:[]},n=await VT(t),r=await n.read(n.totalSize),i=new TextDecoder("utf-8").decode(r).split("\n");for(let t=0;t<i.length;t++){const n=i[t].split(",");4==n.length&&(e.varIdx2Name[n[1]]?e.varIdx2Name[n[1]]+="|"+n[3]:e.varIdx2Name[n[1]]=n[3],e.labelIdx2Name[n[0]]=n[3],e.componentIdx2Name[n[2]]||(e.componentIdx2Name[n[2]]=o(n[3])))}return await n.close(),e;function o(t){const e=t.split(".");return e.pop(),e.join(".")}}const{unstringifyBigInts:jD}=bT;var YD=Object.freeze({__proto__:null,calculate:DD,debug:async function(t,e,n,r,i,o){const s=jD(t),a=await VT(e),c=await a.read(a.totalSize);await a.close();const l={...i,sanityCheck:!0};let u=await HD(r);i.set&&(u||(u=await HD(r)),l.logSetSignal=function(t,e){o&&o.info("SET "+u.labelIdx2Name[t]+" <-- "+e.toString())}),i.get&&(u||(u=await HD(r)),l.logGetSignal=function(t,e){o&&o.info("GET "+u.labelIdx2Name[t]+" --\x3e "+e.toString())}),i.trigger&&(u||(u=await HD(r)),l.logStartComponent=function(t){o&&o.info("START: "+u.componentIdx2Name[t])},l.logFinishComponent=function(t){o&&o.info("FINISH: "+u.componentIdx2Name[t])}),l.sym=u;const h=await CD(c,l),d=await h.calculateWitness(s,!0),p=await jT(n,"wtns",2,2);await async function(t,e,n){await YT(t,1);const r=8*(Math.floor((TT.bitLength(n)-1)/64)+1);await t.writeULE32(r),await qT(t,n,r),await t.writeULE32(e.length),await zT(t),await YT(t,2);for(let n=0;n<e.length;n++)await qT(t,e[n],r);await zT(t)}(p,d,h.prime),await p.close()},exportJson:async function(t){return await async function(t){const{fd:e,sections:n}=await HT(t,"wtns",2),{n8:r,nWitness:i}=await AD(e,n);await JT(e,n,2);const o=[];for(let t=0;t<i;t++){const t=await KT(e,r);o.push(t)}return await WT(e),await e.close(),o}(t)},check:async function(t,e,n){n&&n.info("WITNESS CHECKING STARTED"),n&&n.info("> Reading r1cs file");const{fd:r,sections:i}=await HT(t,"r1cs",1),o=await VD(r,i,{loadConstraints:!1,loadCustomGates:!1});n&&n.info("> Reading witness file");const{fd:s,sections:a}=await HT(e,"wtns",2),c=await AD(s,a);if(!TT.eq(o.prime,c.q))throw new Error("Curve of the witness does not match the curve of the proving key");const l=await ZT(s,a,2);await s.close();const u=(await ib(o.prime)).Fr,h=u.n8,d=await ZT(r,i,2);n&&(n.info("----------------------------"),n.info(" WITNESS CHECK"),n.info(` Curve: ${o.curve.name}`),n.info(` Vars (wires): ${o.nVars}`),n.info(` Outputs: ${o.nOutputs}`),n.info(` Public Inputs: ${o.nPubInputs}`),n.info(` Private Inputs: ${o.nPrvInputs}`),n.info(` Labels: ${o.nLabels}`),n.info(` Constraints: ${o.nConstraints}`),n.info(` Custom Gates: ${o.useCustomGates}`),n.info("----------------------------")),n&&n.info("> Checking witness correctness");let p=0,f=!0;for(let t=0;t<o.nConstraints;t++){n&&0!==t&&t%5e5==0&&n.info(`··· processing r1cs constraints ${t}/${o.nConstraints}`);const e=g(),r=g(),i=g(),s=A(e),a=A(r),c=A(i);if(!u.eq(u.sub(u.mul(s,a),c),u.zero)){n.warn("··· aborting checking process at constraint "+t),f=!1;break}}return r.close(),n&&(f?(n.info("WITNESS IS CORRECT"),n.info("WITNESS CHECKING FINISHED SUCCESSFULLY")):(n.warn("WITNESS IS NOT CORRECT"),n.warn("WITNESS CHECKING FINISHED UNSUCCESSFULLY"))),f;function A(t){let e=u.zero;return Object.keys(t).forEach(n=>{const r=function(t){return u.fromRprLE(l.slice(t*h,t*h+h))}(n),i=t[n];e=u.add(e,u.mul(r,i))}),e}function g(){const t={},e=d.slice(p,p+4);p+=4;const n=new DataView(e.buffer).getUint32(0,!0),r=d.slice(p,p+(4+o.n8)*n);p+=(4+o.n8)*n;const i=new DataView(r.buffer);for(let e=0;e<n;e++){const n=i.getUint32(e*(4+o.n8),!0),s=o.F.fromRprLE(r,e*(4+o.n8)+4);t[n]=s}return t}}});const zD=262144,JD={get:function(t,e){return isNaN(e)?t[e]:t.getElement(e)},set:function(t,e,n){return isNaN(e)?(t[e]=n,!0):t.setElement(e,n)}};class WD{constructor(t){this.length=t||0,this.arr=new Array(zD);for(let e=0;e<t;e+=zD)this.arr[e/zD]=new Array(Math.min(zD,t-e));return this}push(){for(let t=0;t<arguments.length;t++)this.setElement(this.length,arguments[t])}slice(t,e){const n=new Array(e-t);for(let r=t;r<e;r++)n[r-t]=this.getElement(r);return n}getElement(t){t=parseInt(t);const e=Math.floor(t/zD),n=t%zD;return this.arr[e]?this.arr[e][n]:void 0}setElement(t,e){t=parseInt(t);const n=Math.floor(t/zD);this.arr[n]||(this.arr[n]=new Array(zD));const r=t%zD;return this.arr[n][r]=e,t>=this.length&&(this.length=t+1),!0}getKeys(){const t=new qD;for(let e=0;e<this.arr.length;e++)if(this.arr[e])for(let n=0;n<this.arr[e].length;n++)void 0!==this.arr[e][n]&&t.push(e*zD+n);return t}}class qD{constructor(t){const e=new WD(t);return new Proxy(e,JD)}}var KD=qD;async function XD(t,e,n,r){await cb.exports.ready();const i=cb.exports(64),{fd:o,sections:s}=await HT(e,"ptau",1),{curve:a,power:c}=await xD(o,s),{fd:l,sections:u}=await HT(t,"r1cs",1),h=await GD(l,u,!1),d=await jT(n,"zkey",1,10,1<<22,1<<24),p=2*a.G1.F.n8,f=2*a.G2.F.n8;if(h.prime!=a.r)return r&&r.error("r1cs curve does not match powers of tau ceremony curve"),-1;const A=Hb(h.nConstraints+h.nPubInputs+h.nOutputs+1-1)+1;if(A>c)return r&&r.error(`circuit too big for this power of tau ceremony. ${h.nConstraints}*2 > 2**${c}`),-1;if(!s[12])return r&&r.error("Powers of tau is not prepared."),-1;const g=h.nOutputs+h.nPubInputs,E=2**A;await YT(d,1),await d.writeULE32(1),await zT(d),await YT(d,2);const m=a.q,y=8*(Math.floor((TT.bitLength(m)-1)/64)+1),w=a.r,I=8*(Math.floor((TT.bitLength(w)-1)/64)+1),C=TT.mod(TT.shl(1,8*I),w),B=a.Fr.e(TT.mod(TT.mul(C,C),w));let T,b,D;await d.writeULE32(y),await qT(d,m,y),await d.writeULE32(I),await qT(d,w,I),await d.writeULE32(h.nVars),await d.writeULE32(g),await d.writeULE32(E),T=await o.read(p,s[4][0].p),await d.write(T),T=await a.G1.batchLEMtoU(T),i.update(T),b=await o.read(p,s[5][0].p),await d.write(b),b=await a.G1.batchLEMtoU(b),i.update(b),D=await o.read(f,s[6][0].p),await d.write(D),D=await a.G2.batchLEMtoU(D),i.update(D);const M=new Uint8Array(p);a.G1.toRprLEM(M,0,a.G1.g);const N=new Uint8Array(f);a.G2.toRprLEM(N,0,a.G2.g);const S=new Uint8Array(p);a.G1.toRprUncompressed(S,0,a.G1.g);const v=new Uint8Array(f);a.G2.toRprUncompressed(v,0,a.G2.g),await d.write(N),await d.write(M),await d.write(N),i.update(v),i.update(S),i.update(v),await zT(d),r&&r.info("Reading r1cs");let _=await ZT(l,u,2);const L=new KD(h.nVars),x=new KD(h.nVars),R=new KD(h.nVars),F=new KD(h.nVars-g-1),O=new Array(g+1);r&&r.info("Reading tauG1");let k=await ZT(o,s,12,(E-1)*p,E*p);r&&r.info("Reading tauG2");let Q=await ZT(o,s,13,(E-1)*f,E*f);r&&r.info("Reading alphatauG1");let U=await ZT(o,s,14,(E-1)*p,E*p);r&&r.info("Reading betatauG1");let P=await ZT(o,s,15,(E-1)*p,E*p);await async function(){const t=new Uint8Array(12+a.Fr.n8),e=new DataView(t.buffer),n=new Uint8Array(a.Fr.n8);a.Fr.toRprLE(n,0,a.Fr.e(1));let i=0;function o(){const t=_.slice(i,i+4);i+=4;return new DataView(t.buffer).getUint32(0,!0)}const s=new KD;for(let t=0;t<h.nConstraints;t++){r&&t%1e4==0&&r.debug(`processing constraints: ${t}/${h.nConstraints}`);const e=o();for(let n=0;n<e;n++){const e=o(),n=i;i+=a.Fr.n8;const r=0,c=p*t,l=3,u=p*t;void 0===L[e]&&(L[e]=[]),L[e].push([r,c,n]),e<=g?(void 0===O[e]&&(O[e]=[]),O[e].push([l,u,n])):(void 0===F[e-g-1]&&(F[e-g-1]=[]),F[e-g-1].push([l,u,n])),s.push([0,t,e,n])}const n=o();for(let e=0;e<n;e++){const e=o(),n=i;i+=a.Fr.n8;const r=0,c=p*t,l=1,u=f*t,h=2,d=p*t;void 0===x[e]&&(x[e]=[]),x[e].push([r,c,n]),void 0===R[e]&&(R[e]=[]),R[e].push([l,u,n]),e<=g?(void 0===O[e]&&(O[e]=[]),O[e].push([h,d,n])):(void 0===F[e-g-1]&&(F[e-g-1]=[]),F[e-g-1].push([h,d,n])),s.push([1,t,e,n])}const c=o();for(let e=0;e<c;e++){const e=o(),n=i;i+=a.Fr.n8;const r=0,s=p*t;e<=g?(void 0===O[e]&&(O[e]=[]),O[e].push([r,s,n])):(void 0===F[e-g-1]&&(F[e-g-1]=[]),F[e-g-1].push([r,s,n]))}}for(let t=0;t<=g;t++){const e=0,n=p*(h.nConstraints+t),r=3,i=p*(h.nConstraints+t);void 0===L[t]&&(L[t]=[]),L[t].push([e,n,-1]),void 0===O[t]&&(O[t]=[]),O[t].push([r,i,-1]),s.push([0,h.nConstraints+t,t,-1])}await YT(d,4);const c=new HB(s.length*(12+a.Fr.n8)+4),l=new Uint8Array(4);new DataView(l.buffer).setUint32(0,s.length,!0),c.set(l);let u=4;for(let t=0;t<s.length;t++)r&&t%1e5==0&&r.debug(`writing coeffs: ${t}/${s.length}`),A(s[t]);function A(r){let i;e.setUint32(0,r[0],!0),e.setUint32(4,r[1],!0),e.setUint32(8,r[2],!0),i=r[3]>=0?a.Fr.fromRprLE(_.slice(r[3],r[3]+a.Fr.n8),0):a.Fr.fromRprLE(n,0);const o=a.Fr.mul(i,B);a.Fr.toRprLE(t,12,o),c.set(t,u),u+=t.length}await d.write(c),await zT(d)}(),await V(3,"G1",O,"IC"),await async function(){await YT(d,9);const t=new HB(E*p);if(A<a.Fr.s){let e=await ZT(o,s,12,(2*E-1)*p,2*E*p);for(let n=0;n<E;n++){r&&n%1e4==0&&r.debug(`splitting buffer: ${n}/${E}`);const i=e.slice((2*n+1)*p,(2*n+1)*p+p);t.set(i,n*p)}}else{if(A!=a.Fr.s)throw r&&r.error("Circuit too big"),new Error("Circuit too big for this curve");{const e=s[12][0].p+(2**(A+1)-1)*p;await o.readToBuffer(t,0,E*p,e+E*p)}}await d.write(t),await zT(d)}(),await async function(){z(E-1);for(let t=0;t<E-1;t+=16384){r&&r.debug(`HashingHPoints: ${t}/${E}`);const e=Math.min(E-1,16384);await j(t,e)}}(),await V(8,"G1",F,"C"),await V(5,"G1",L,"A"),await V(6,"G1",x,"B1"),await V(7,"G2",R,"B2");const G=i.digest();return await YT(d,10),await d.write(G),await d.writeULE32(0),await zT(d),r&&r.info(jb(G,"Circuit hash: ")),await d.close(),await l.close(),await o.close(),G;async function V(t,e,n,o){const s=a[e];z(n.length),await YT(d,t);let c=[],l=0;for(;l<n.length;){let t=0;for(;l<n.length&&t<a.tm.concurrency;){r&&r.debug(`Writing points start ${o}: ${l}/${n.length}`);let i=1,s=n[l]?n[l].length:0;for(;l+i<n.length&&s+(n[l+i]?n[l+i].length:0)<32768&&i<32768;)s+=n[l+i]?n[l+i].length:0,i++;const a=n.slice(l,l+i),u=l;c.push(H(e,a,r,o).then(t=>(r&&r.debug(`Writing points end ${o}: ${u}/${n.length}`),t))),l+=i,t++}const u=await Promise.all(c);for(let t=0;t<u.length;t++){await d.write(u[t][0]);const e=await s.batchLEMtoU(u[t][0]);i.update(e)}c=[]}await zT(d)}async function H(t,e,n,r){const i=a[t],o=2*i.F.n8,s=3*i.F.n8,c=2*i.F.n8;let l,u,h,d;if("G1"==t)l="g1m_timesScalarAffine",u="g1m_multiexpAffine",h="g1m_batchToAffine",d="g1m_zero";else{if("G2"!=t)throw new Error("Invalid group");l="g2m_timesScalarAffine",u="g2m_multiexpAffine",h="g2m_batchToAffine",d="g2m_zero"}let p,f,A=0;for(let t=0;t<e.length;t++)A+=e[t]?e[t].length:0;A>32768?(p=new HB(A*o),f=new HB(A*a.Fr.n8)):(p=new Uint8Array(A*o),f=new Uint8Array(A*a.Fr.n8));let g=0,E=0;const m=[k,Q,U,P],y=new Uint8Array(a.Fr.n8);a.Fr.toRprLE(y,0,a.Fr.e(1));let w=0;for(let t=0;t<e.length;t++)if(e[t])for(let i=0;i<e[t].length;i++)n&&i&&i%1e4==0&&n.debug(`Configuring big array ${r}: ${i}/${e[t].length}`),p.set(m[e[t][i][0]].slice(e[t][i][1],e[t][i][1]+o),w*o),e[t][i][2]>=0?f.set(_.slice(e[t][i][2],e[t][i][2]+a.Fr.n8),w*a.Fr.n8):f.set(y,w*a.Fr.n8),w++;if(e.length>1){const t=[];t.push({cmd:"ALLOCSET",var:0,buff:p}),t.push({cmd:"ALLOCSET",var:1,buff:f}),t.push({cmd:"ALLOC",var:2,len:e.length*s}),g=0,E=0;let n=0;for(let r=0;r<e.length;r++)e[r]?(1==e[r].length?t.push({cmd:"CALL",fnName:l,params:[{var:0,offset:g},{var:1,offset:E},{val:a.Fr.n8},{var:2,offset:n}]}):t.push({cmd:"CALL",fnName:u,params:[{var:0,offset:g},{var:1,offset:E},{val:a.Fr.n8},{val:e[r].length},{var:2,offset:n}]}),g+=o*e[r].length,E+=a.Fr.n8*e[r].length,n+=s):(t.push({cmd:"CALL",fnName:d,params:[{var:2,offset:n}]}),n+=s);t.push({cmd:"CALL",fnName:h,params:[{var:2},{val:e.length},{var:2}]}),t.push({cmd:"GET",out:0,var:2,len:e.length*c});return await a.tm.queueAction(t)}{let t=await i.multiExpAffine(p,f,n,r);return t=[i.toAffine(t)],t}}async function j(t,e){const n=await o.read(e*p,s[2][0].p+(t+E)*p),r=await o.read(e*p,s[2][0].p+t*p),c=a.tm.concurrency,l=Math.floor(e/c),u=[];for(let t=0;t<c;t++){let i;if(i=t<c-1?l:e-t*l,0==i)continue;const o=n.slice(t*l*p,(t*l+i)*p),s=r.slice(t*l*p,(t*l+i)*p);u.push(Y(o,s))}const h=await Promise.all(u);for(let t=0;t<h.length;t++)i.update(h[t][0])}async function Y(t,e){const n=t.byteLength/p,r=3*a.G1.F.n8,i=[];i.push({cmd:"ALLOCSET",var:0,buff:t}),i.push({cmd:"ALLOCSET",var:1,buff:e}),i.push({cmd:"ALLOC",var:2,len:n*r});for(let t=0;t<n;t++)i.push({cmd:"CALL",fnName:"g1m_subAffine",params:[{var:0,offset:t*p},{var:1,offset:t*p},{var:2,offset:t*r}]});i.push({cmd:"CALL",fnName:"g1m_batchToAffine",params:[{var:2},{val:n},{var:2}]}),i.push({cmd:"CALL",fnName:"g1m_batchLEMtoU",params:[{var:2},{val:n},{var:2}]}),i.push({cmd:"GET",out:0,var:2,len:n*p});return await a.tm.queueAction(i)}function z(t){const e=new Uint8Array(4);new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(0,t,!1),i.update(e)}}const ZD=Jb;async function $D(t,e,n,r){let i;await cb.exports.ready();const{fd:o,sections:s}=await HT(n,"zkey",2),a=await cD(o,s,!1);if("groth16"!=a.protocol)throw new Error("zkey file is not groth16");const c=await ob(a.q),l=2*c.G1.F.n8,u=await uD(o,c,s),h=cb.exports(64);h.update(u.csHash);let d=c.G1.g;for(let t=0;t<u.contributions.length;t++){const e=u.contributions[t],n=zb(h);if(pD(n,c,e.delta.g1_s),pD(n,c,e.delta.g1_sx),!Yb(n.digest(),e.transcript))return console.log(`INVALID(${t}): Inconsistent transcript `),!1;const r=LD(c,e.transcript);if(i=await ZD(c,e.delta.g1_s,e.delta.g1_sx,r,e.delta.g2_spx),!0!==i)return console.log(`INVALID(${t}): public key G1 and G2 do not have the same ration `),!1;if(i=await ZD(c,d,e.deltaAfter,r,e.delta.g2_spx),!0!==i)return console.log(`INVALID(${t}): deltaAfter does not fillow the public key `),!1;if(1==e.type){const n=await $b(e.beaconHash,e.numIterationsExp),r=c.Fr.fromRng(n),i=c.G1.toAffine(c.G1.fromRng(n)),o=c.G1.toAffine(c.G1.timesFr(i,r));if(!0!==c.G1.eq(i,e.delta.g1_s))return console.log(`INVALID(${t}): Key of the beacon does not match. g1_s `),!1;if(!0!==c.G1.eq(o,e.delta.g1_sx))return console.log(`INVALID(${t}): Key of the beacon does not match. g1_sx `),!1}fD(h,c,e);const o=cb.exports(64);fD(o,c,e),e.contributionHash=o.digest(),d=e.deltaAfter}const{fd:p,sections:f}=await HT(t,"zkey",2),A=await cD(p,f,!1);if("groth16"!=A.protocol)throw new Error("zkeyinit file is not groth16");if(!TT.eq(A.q,a.q)||!TT.eq(A.r,a.r)||A.n8q!=a.n8q||A.n8r!=a.n8r)return r&&r.error("INVALID: Different curves"),!1;if(A.nVars!=a.nVars||A.nPublic!=a.nPublic||A.domainSize!=a.domainSize)return r&&r.error("INVALID: Different circuit parameters"),!1;if(!c.G1.eq(a.vk_alpha_1,A.vk_alpha_1))return r&&r.error("INVALID: Invalid alpha1"),!1;if(!c.G1.eq(a.vk_beta_1,A.vk_beta_1))return r&&r.error("INVALID: Invalid beta1"),!1;if(!c.G2.eq(a.vk_beta_2,A.vk_beta_2))return r&&r.error("INVALID: Invalid beta2"),!1;if(!c.G2.eq(a.vk_gamma_2,A.vk_gamma_2))return r&&r.error("INVALID: Invalid gamma2"),!1;if(!c.G1.eq(a.vk_delta_1,d))return r&&r.error("INVALID: Invalid delta1"),!1;if(i=await ZD(c,c.G1.g,d,c.G2.g,a.vk_delta_2),!0!==i)return r&&r.error("INVALID: Invalid delta2"),!1;const g=await uD(p,c,f);if(!Yb(u.csHash,g.csHash))return r&&r.error("INVALID: Circuit does not match"),!1;if(s[8][0].size!=l*(a.nVars-a.nPublic-1))return r&&r.error("INVALID: Invalid L section size"),!1;if(s[9][0].size!=l*a.domainSize)return r&&r.error("INVALID: Invalid H section size"),!1;let E;if(E=await $T(o,s,p,f,3),!E)return r&&r.error("INVALID: IC section is not identical"),!1;if(E=await $T(o,s,p,f,4),!E)return r&&r.error("Coeffs section is not identical"),!1;if(E=await $T(o,s,p,f,5),!E)return r&&r.error("A section is not identical"),!1;if(E=await $T(o,s,p,f,6),!E)return r&&r.error("B1 section is not identical"),!1;if(E=await $T(o,s,p,f,7),!E)return r&&r.error("B2 section is not identical"),!1;if(i=await async function(t,e,n,o,s,a,l,u,h){const d=1<<20,p=c[t],f=2*p.F.n8;await JT(e,n,a),await JT(o,s,a);let A=p.zero,g=p.zero;const E=n[a][0].size/f;for(let t=0;t<E;t+=d){r&&r.debug(`Same ratio check ${h}: ${t}/${E}`);const n=Math.min(E-t,d),i=await e.read(n*f),s=await o.read(n*f),a=qb(4*n),c=await p.multiExpAffine(i,a),l=await p.multiExpAffine(s,a);A=p.add(A,c),g=p.add(g,l)}return await WT(e),await WT(o),0==E||(i=await ZD(c,A,g,l,u),!0===i)}("G1",p,f,o,s,8,a.vk_delta_2,A.vk_delta_2,"L section"),!0!==i)return r&&r.error("L section does not match"),!1;if(i=await async function(){const t=1<<20,n=c.G1,l=c.Fr,u=2*n.F.n8,{fd:h,sections:d}=await HT(e,"ptau",1);let p=new HB(a.domainSize*a.n8r);const f=new Array(8);for(let t=0;t<8;t++)f[t]=Xb(qb(4),0);const g=new KI(f);for(let t=0;t<a.domainSize-1;t++){const e=l.fromRng(g);l.toRprLE(p,t*a.n8r,e)}l.toRprLE(p,(a.domainSize-1)*a.n8r,l.zero);let E,y=n.zero;for(let e=0;e<a.domainSize;e+=t){r&&r.debug(`H Verification(tau): ${e}/${a.domainSize}`);const i=Math.min(a.domainSize-e,t),o=await h.read(u*i,d[2][0].p+a.domainSize*u+e*u),s=await h.read(u*i,d[2][0].p+e*u),c=await m(o,s),l=p.slice(e*a.n8r,(e+i)*a.n8r),f=await n.multiExpAffine(c,l);y=n.add(y,f)}if(p=await l.batchToMontgomery(p),a.power<l.s)E=l.neg(l.e(2));else{const t=2**l.s,e=l.exp(l.shift,t);E=l.sub(e,l.one)}const w=a.power<l.s?l.w[a.power+1]:l.shift;p=await l.batchApplyKey(p,E,w),p=await l.fft(p),p=await l.batchFromMontgomery(p),await JT(o,s,9);let I=n.zero;for(let e=0;e<a.domainSize;e+=t){r&&r.debug(`H Verification(lagrange): ${e}/${a.domainSize}`);const i=Math.min(a.domainSize-e,t),s=await o.read(u*i),c=p.slice(e*a.n8r,(e+i)*a.n8r),l=await n.multiExpAffine(s,c);I=n.add(I,l)}return await WT(o),i=await ZD(c,y,I,a.vk_delta_2,A.vk_delta_2),!0===i}(),!0!==i)return r&&r.error("H section does not match"),!1;r&&r.info(jb(u.csHash,"Circuit Hash: ")),await o.close(),await p.close();for(let t=u.contributions.length-1;t>=0;t--){const e=u.contributions[t];r&&r.info("-------------------------"),r&&r.info(jb(e.contributionHash,`contribution #${t+1} ${e.name?e.name:""}:`)),1==e.type&&(r&&r.info(`Beacon generator: ${eD(e.beaconHash)}`),r&&r.info(`Beacon iterations Exp: ${e.numIterationsExp}`))}return r&&r.info("-------------------------"),r&&r.info("ZKey Ok!"),!0;async function m(t,e){const n=2*c.G1.F.n8,r=t.byteLength/n,i=c.tm.concurrency,o=Math.floor(r/i),s=[];for(let n=0;n<i;n++){let a;if(a=n<i-1?o:r-n*o,0==a)continue;const c=t.slice(n*o*l,(n*o+a)*l),u=e.slice(n*o*l,(n*o+a)*l);s.push(y(c,u))}const a=await Promise.all(s),u=new Uint8Array(r*n);let h=0;for(let t=0;t<a.length;t++)u.set(a[t][0],h),h+=a[t][0].byteLength;return u}async function y(t,e){const n=2*c.G1.F.n8,r=3*c.G1.F.n8,i=t.byteLength/n,o=[];o.push({cmd:"ALLOCSET",var:0,buff:t}),o.push({cmd:"ALLOCSET",var:1,buff:e}),o.push({cmd:"ALLOC",var:2,len:i*r});for(let t=0;t<i;t++)o.push({cmd:"CALL",fnName:"g1m_subAffine",params:[{var:0,offset:t*n},{var:1,offset:t*n},{var:2,offset:t*r}]});o.push({cmd:"CALL",fnName:"g1m_batchToAffine",params:[{var:2},{val:i},{var:2}]}),o.push({cmd:"GET",out:0,var:2,len:i*n});return await c.tm.queueAction(o)}}const{stringifyBigInts:tM}=bT;async function eM(t,e){e&&e.info("EXPORT VERIFICATION KEY STARTED");const{fd:n,sections:r}=await HT(t,"zkey",2),i=await cD(n,r);let o;if(e&&e.info("> Detected protocol: "+i.protocol),"groth16"===i.protocol)o=await async function(t,e,n){const r=await ob(t.q),i=2*r.G1.F.n8,o=await r.pairing(t.vk_alpha_1,t.vk_beta_2);let s={protocol:t.protocol,curve:r.name,nPublic:t.nPublic,vk_alpha_1:r.G1.toObject(t.vk_alpha_1),vk_beta_2:r.G2.toObject(t.vk_beta_2),vk_gamma_2:r.G2.toObject(t.vk_gamma_2),vk_delta_2:r.G2.toObject(t.vk_delta_2),vk_alphabeta_12:r.Gt.toObject(o)};await JT(e,n,3),s.IC=[];for(let n=0;n<=t.nPublic;n++){const t=await e.read(i),n=r.G1.toObject(t);s.IC.push(n)}return await WT(e),s=tM(s),s}(i,n,r);else if("plonk"===i.protocol)o=await async function(t){const e=await ob(t.q);let n={protocol:t.protocol,curve:e.name,nPublic:t.nPublic,power:t.power,k1:e.Fr.toObject(t.k1),k2:e.Fr.toObject(t.k2),Qm:e.G1.toObject(t.Qm),Ql:e.G1.toObject(t.Ql),Qr:e.G1.toObject(t.Qr),Qo:e.G1.toObject(t.Qo),Qc:e.G1.toObject(t.Qc),S1:e.G1.toObject(t.S1),S2:e.G1.toObject(t.S2),S3:e.G1.toObject(t.S3),X_2:e.G2.toObject(t.X_2),w:e.Fr.toObject(e.Fr.w[t.power])};return n=tM(n),n}(i);else{if(!i.protocolId||i.protocolId!==nD)throw new Error("zkey file protocol unrecognized");o=await async function(t){const e=await ob(t.q);let n={protocol:t.protocol,curve:e.name,nPublic:t.nPublic,power:t.power,k1:e.Fr.toObject(t.k1),k2:e.Fr.toObject(t.k2),w:e.Fr.toObject(e.Fr.w[t.power]),w3:e.Fr.toObject(t.w3),w4:e.Fr.toObject(t.w4),w8:e.Fr.toObject(t.w8),wr:e.Fr.toObject(t.wr),X_2:e.G2.toObject(t.X_2),C0:e.G1.toObject(t.C0)};return tM(n)}(i)}return await n.close(),e&&e.info("EXPORT VERIFICATION KEY FINISHED"),o}var nM={};const{unstringifyBigInts:rM,stringifyBigInts:iM}=bT;async function oM(t,e,n){n&&n.info("FFLONK EXPORT SOLIDITY VERIFIER STARTED");const r=await sb(t.curve);let i=l(t.w3);t.w3_2=u(r.Fr.square(i));let o=l(t.w4);t.w4_2=u(r.Fr.square(o)),t.w4_3=u(r.Fr.mul(r.Fr.square(o),o));let s=l(t.w8),a=r.Fr.one;for(let e=1;e<8;e++)a=r.Fr.mul(a,s),t["w8_"+e]=u(a);let c=e[t.protocol];return n&&n.info("FFLONK EXPORT SOLIDITY VERIFIER FINISHED"),nM.render(c,t);function l(t){const e=rM(t);return r.Fr.fromObject(e)}function u(t){const e=r.Fr.toObject(t);return iM(e)}}var sM=Object.freeze({__proto__:null,newZKey:XD,exportBellman:async function(t,e,n){const{fd:r,sections:i}=await HT(t,"zkey",2),o=await cD(r,i);if("groth16"!=o.protocol)throw new Error("zkey file is not groth16");const s=await ob(o.q),a=2*s.G1.F.n8,c=2*s.G2.F.n8,l=await uD(r,s,i),u=await GT(e);let h;await m(o.vk_alpha_1),await m(o.vk_beta_1),await y(o.vk_beta_2),await y(o.vk_gamma_2),await m(o.vk_delta_1),await y(o.vk_delta_2),h=await ZT(r,i,3),h=await s.G1.batchLEMtoU(h),await w("G1",h);const d=await ZT(r,i,9);let p,f,A,g,E;p=await s.G1.fft(d,"affine","jacobian",n),p=await s.G1.batchApplyKey(p,s.Fr.neg(s.Fr.e(2)),s.Fr.w[o.power+1],"jacobian","affine",n),p=p.slice(0,p.byteLength-a),p=await s.G1.batchLEMtoU(p),await w("G1",p),f=await ZT(r,i,8),f=await s.G1.batchLEMtoU(f),await w("G1",f),A=await ZT(r,i,5),A=await s.G1.batchLEMtoU(A),await w("G1",A),g=await ZT(r,i,6),g=await s.G1.batchLEMtoU(g),await w("G1",g),E=await ZT(r,i,7),E=await s.G2.batchLEMtoU(E),await w("G2",E),await u.write(l.csHash),await async function(t){const e=new Uint8Array(4);new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(0,t,!1),await u.write(e)}(l.contributions.length);for(let t=0;t<l.contributions.length;t++){const e=l.contributions[t];await m(e.deltaAfter),await m(e.delta.g1_s),await m(e.delta.g1_sx),await y(e.delta.g2_spx),await u.write(e.transcript)}async function m(t){const e=new Uint8Array(a);s.G1.toRprUncompressed(e,0,t),await u.write(e)}async function y(t){const e=new Uint8Array(c);s.G2.toRprUncompressed(e,0,t),await u.write(e)}async function w(t,e){let n;n="G1"==t?a:c;const r=new Uint8Array(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(0,e.byteLength/n,!1),await u.write(r),await u.write(e)}await r.close(),await u.close()},importBellman:async function(t,e,n,r,i){const{fd:o,sections:s}=await HT(t,"zkey",2),a=await cD(o,s,!1);if("groth16"!=a.protocol)throw new Error("zkey file is not groth16");const c=await ob(a.q),l=2*c.G1.F.n8,u=2*c.G2.F.n8,h=await uD(o,c,s),d={},p=await VT(e);p.pos=3*l+3*u+8+l*a.nVars+4+l*(a.domainSize-1)+4+l*a.nVars+4+l*a.nVars+4+u*a.nVars,d.csHash=await p.read(64);const f=await p.readUBE32();d.contributions=[];for(let t=0;t<f;t++){const e={delta:{}};e.deltaAfter=await C(p),e.delta.g1_s=await C(p),e.delta.g1_sx=await C(p),e.delta.g2_spx=await B(p),e.transcript=await p.read(64),t<h.contributions.length&&(e.type=h.contributions[t].type,1==e.type&&(e.beaconHash=h.contributions[t].beaconHash,e.numIterationsExp=h.contributions[t].numIterationsExp),h.contributions[t].name&&(e.name=h.contributions[t].name)),d.contributions.push(e)}if(!Yb(d.csHash,h.csHash))return i&&i.error("Hash of the original circuit does not match with the MPC one"),!1;if(h.contributions.length>d.contributions.length)return i&&i.error("The impoerted file does not include new contributions"),!1;for(let t=0;t<h.contributions.length;t++)if(!T(h.contributions[t],d.contributions[t]))return i&&i.error(`Previous contribution ${t} does not match`),!1;if(r)for(let t=h.contributions.length;t<d.contributions.length;t++)d.contributions[t].name=r;const A=await jT(n,"zkey",1,10);if(p.pos=0,p.pos+=l,p.pos+=l,p.pos+=u,p.pos+=u,a.vk_delta_1=await C(p),a.vk_delta_2=await B(p),await rD(A,a),await p.readUBE32()!=a.nPublic+1)return i&&i.error("Invalid number of points in IC"),await A.discard(),!1;if(p.pos+=l*(a.nPublic+1),await XT(o,s,A,3),await XT(o,s,A,4),await p.readUBE32()!=a.domainSize-1)return i&&i.error("Invalid number of points in H"),await A.discard(),!1;let g;const E=await p.read(l*(a.domainSize-1)),m=await c.G1.batchUtoLEM(E);g=new Uint8Array(a.domainSize*l),g.set(m),c.G1.toRprLEM(g,l*(a.domainSize-1),c.G1.zeroAffine);const y=c.Fr.neg(c.Fr.inv(c.Fr.e(2))),w=c.Fr.inv(c.Fr.w[a.power+1]);if(g=await c.G1.batchApplyKey(g,y,w,"affine","jacobian",i),g=await c.G1.ifft(g,"jacobian","affine",i),await YT(A,9),await A.write(g),await zT(A),await p.readUBE32()!=a.nVars-a.nPublic-1)return i&&i.error("Invalid number of points in L"),await A.discard(),!1;let I;return I=await p.read(l*(a.nVars-a.nPublic-1)),I=await c.G1.batchUtoLEM(I),await YT(A,8),await A.write(I),await zT(A),await p.readUBE32()!=a.nVars?(i&&i.error("Invalid number of points in A"),await A.discard(),!1):(p.pos+=l*a.nVars,await XT(o,s,A,5),await p.readUBE32()!=a.nVars?(i&&i.error("Invalid number of points in B1"),await A.discard(),!1):(p.pos+=l*a.nVars,await XT(o,s,A,6),await p.readUBE32()!=a.nVars?(i&&i.error("Invalid number of points in B2"),await A.discard(),!1):(p.pos+=u*a.nVars,await XT(o,s,A,7),await dD(A,c,d),await p.close(),await A.close(),await o.close(),!0)));async function C(t){const e=await t.read(2*c.G1.F.n8);return c.G1.fromRprUncompressed(e,0)}async function B(t){const e=await t.read(2*c.G2.F.n8);return c.G2.fromRprUncompressed(e,0)}function T(t,e){return!!c.G1.eq(t.deltaAfter,e.deltaAfter)&&(!!c.G1.eq(t.delta.g1_s,e.delta.g1_s)&&(!!c.G1.eq(t.delta.g1_sx,e.delta.g1_sx)&&(!!c.G2.eq(t.delta.g2_spx,e.delta.g2_spx)&&!!Yb(t.transcript,e.transcript))))}},verifyFromR1cs:async function(t,e,n,r){const i={type:"bigMem"};return await XD(t,e,i,r),await $D(i,e,n,r)},verifyFromInit:$D,contribute:async function(t,e,n,r,i){await cb.exports.ready();const{fd:o,sections:s}=await HT(t,"zkey",2),a=await cD(o,s);if("groth16"!=a.protocol)throw new Error("zkey file is not groth16");const c=await ob(a.q),l=await uD(o,c,s),u=await jT(e,"zkey",1,10),h=await Zb(r),d=cb.exports(64);d.update(l.csHash);for(let t=0;t<l.contributions.length;t++)fD(d,c,l.contributions[t]);const p={delta:{}};p.delta.prvKey=c.Fr.fromRng(h),p.delta.g1_s=c.G1.toAffine(c.G1.fromRng(h)),p.delta.g1_sx=c.G1.toAffine(c.G1.timesFr(p.delta.g1_s,p.delta.prvKey)),pD(d,c,p.delta.g1_s),pD(d,c,p.delta.g1_sx),p.transcript=d.digest(),p.delta.g2_sp=LD(c,p.transcript),p.delta.g2_spx=c.G2.toAffine(c.G2.timesFr(p.delta.g2_sp,p.delta.prvKey)),a.vk_delta_1=c.G1.timesFr(a.vk_delta_1,p.delta.prvKey),a.vk_delta_2=c.G2.timesFr(a.vk_delta_2,p.delta.prvKey),p.deltaAfter=a.vk_delta_1,p.type=0,n&&(p.name=n),l.contributions.push(p),await rD(u,a),await XT(o,s,u,3),await XT(o,s,u,4),await XT(o,s,u,5),await XT(o,s,u,6),await XT(o,s,u,7);const f=c.Fr.inv(p.delta.prvKey);await RD(o,s,u,8,c,"G1",f,c.Fr.e(1),"L Section",i),await RD(o,s,u,9,c,"G1",f,c.Fr.e(1),"H Section",i),await dD(u,c,l),await o.close(),await u.close();const A=cb.exports(64);fD(A,c,p);const g=A.digest();return i&&i.info(jb(l.csHash,"Circuit Hash: ")),i&&i.info(jb(g,"Contribution Hash: ")),g},beacon:async function(t,e,n,r,i,o){await cb.exports.ready();const s=tD(r);if(0==s.byteLength||2*s.byteLength!=r.length)return o&&o.error("Invalid Beacon Hash. (It must be a valid hexadecimal sequence)"),!1;if(s.length>=256)return o&&o.error("Maximum length of beacon hash is 255 bytes"),!1;if((i=parseInt(i))<10||i>63)return o&&o.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;const{fd:a,sections:c}=await HT(t,"zkey",2),l=await cD(a,c);if("groth16"!=l.protocol)throw new Error("zkey file is not groth16");const u=await ob(l.q),h=await uD(a,u,c),d=await jT(e,"zkey",1,10),p=await $b(s,i),f=cb.exports(64);f.update(h.csHash);for(let t=0;t<h.contributions.length;t++)fD(f,u,h.contributions[t]);const A={delta:{}};A.delta.prvKey=u.Fr.fromRng(p),A.delta.g1_s=u.G1.toAffine(u.G1.fromRng(p)),A.delta.g1_sx=u.G1.toAffine(u.G1.timesFr(A.delta.g1_s,A.delta.prvKey)),pD(f,u,A.delta.g1_s),pD(f,u,A.delta.g1_sx),A.transcript=f.digest(),A.delta.g2_sp=LD(u,A.transcript),A.delta.g2_spx=u.G2.toAffine(u.G2.timesFr(A.delta.g2_sp,A.delta.prvKey)),l.vk_delta_1=u.G1.timesFr(l.vk_delta_1,A.delta.prvKey),l.vk_delta_2=u.G2.timesFr(l.vk_delta_2,A.delta.prvKey),A.deltaAfter=l.vk_delta_1,A.type=1,A.numIterationsExp=i,A.beaconHash=s,n&&(A.name=n),h.contributions.push(A),await rD(d,l),await XT(a,c,d,3),await XT(a,c,d,4),await XT(a,c,d,5),await XT(a,c,d,6),await XT(a,c,d,7);const g=u.Fr.inv(A.delta.prvKey);await RD(a,c,d,8,u,"G1",g,u.Fr.e(1),"L Section",o),await RD(a,c,d,9,u,"G1",g,u.Fr.e(1),"H Section",o),await dD(d,u,h),await a.close(),await d.close();const E=cb.exports(64);fD(E,u,A);const m=E.digest();return o&&o.info(jb(m,"Contribution Hash: ")),m},exportJson:async function(t){const e=await async function(t,e){const{fd:n,sections:r}=await HT(t,"zkey",1),i=await cD(n,r,e),o=new rC(i.r),s=TT.mod(TT.shl(1,8*i.n8r),i.r),a=o.inv(s),c=o.mul(a,a);let l=await ob(i.q);await JT(n,r,3),i.IC=[];for(let t=0;t<=i.nPublic;t++){const t=await sD(n,l,e);i.IC.push(t)}await WT(n),await JT(n,r,4);const u=await n.readULE32();i.ccoefs=[];for(let t=0;t<u;t++){const t=await n.readULE32(),e=await n.readULE32(),r=await n.readULE32(),o=await h();i.ccoefs.push({matrix:t,constraint:e,signal:r,value:o})}await WT(n),await JT(n,r,5),i.A=[];for(let t=0;t<i.nVars;t++){const r=await sD(n,l,e);i.A[t]=r}await WT(n),await JT(n,r,6),i.B1=[];for(let t=0;t<i.nVars;t++){const r=await sD(n,l,e);i.B1[t]=r}await WT(n),await JT(n,r,7),i.B2=[];for(let t=0;t<i.nVars;t++){const r=await aD(n,l,e);i.B2[t]=r}await WT(n),await JT(n,r,8),i.C=[];for(let t=i.nPublic+1;t<i.nVars;t++){const r=await sD(n,l,e);i.C[t]=r}await WT(n),await JT(n,r,9),i.hExps=[];for(let t=0;t<i.domainSize;t++){const t=await sD(n,l,e);i.hExps.push(t)}return await WT(n),await n.close(),i;async function h(){const t=await KT(n,i.n8r);return o.mul(t,c)}}(t,!0);return delete e.curve,delete e.F,bT.stringifyBigInts(e)},bellmanContribute:async function(t,e,n,r,i){await cb.exports.ready();const o=await Zb(r),s=t.Fr.fromRng(o),a=t.Fr.inv(s),c=2*t.G1.F.n8,l=2*t.G2.F.n8,u=await VT(e),h=await GT(n);await N(c),await N(c),await N(l),await N(l);const d=await S(),p=t.G1.timesFr(d,s);await _(p);const f=await v(),A=t.G2.timesFr(f,s);await L(A);const g=await u.readUBE32();await h.writeUBE32(g),await N(g*c);const E=await u.readUBE32();await h.writeUBE32(E),await FD(u,h,null,t,"G1",E,a,t.Fr.e(1),"UNCOMPRESSED","H",i);const m=await u.readUBE32();await h.writeUBE32(m),await FD(u,h,null,t,"G1",m,a,t.Fr.e(1),"UNCOMPRESSED","L",i);const y=await u.readUBE32();await h.writeUBE32(y),await N(y*c);const w=await u.readUBE32();await h.writeUBE32(w),await N(w*c);const I=await u.readUBE32();await h.writeUBE32(I),await N(I*l);const C=cb.exports(64),B={};B.csHash=await u.read(64),C.update(B.csHash);const T=await u.readUBE32();B.contributions=[];for(let e=0;e<T;e++){const e={delta:{}};e.deltaAfter=await S(),e.delta.g1_s=await S(),e.delta.g1_sx=await S(),e.delta.g2_spx=await v(),e.transcript=await u.read(64),B.contributions.push(e),fD(C,t,e)}const b={delta:{}};b.delta.prvKey=s,b.delta.g1_s=t.G1.toAffine(t.G1.fromRng(o)),b.delta.g1_sx=t.G1.toAffine(t.G1.timesFr(b.delta.g1_s,s)),pD(C,t,b.delta.g1_s),pD(C,t,b.delta.g1_sx),b.transcript=C.digest(),b.delta.g2_sp=LD(t,b.transcript),b.delta.g2_spx=t.G2.toAffine(t.G2.timesFr(b.delta.g2_sp,s)),b.deltaAfter=p,b.type=0,B.contributions.push(b),await h.write(B.csHash),await h.writeUBE32(B.contributions.length);for(let t=0;t<B.contributions.length;t++){const e=B.contributions[t];await _(e.deltaAfter),await _(e.delta.g1_s),await _(e.delta.g1_sx),await L(e.delta.g2_spx),await h.write(e.transcript)}const D=cb.exports(64);fD(D,t,b);const M=D.digest();return i&&i.info(jb(M,"Contribution Hash: ")),await h.close(),await u.close(),M;async function N(t){const e=2*u.pageSize;for(let n=0;n<t;n+=e){const r=Math.min(t-n,e),i=await u.read(r);await h.write(i)}}async function S(){const e=await u.read(2*t.G1.F.n8);return t.G1.fromRprUncompressed(e,0)}async function v(){const e=await u.read(2*t.G2.F.n8);return t.G2.fromRprUncompressed(e,0)}async function _(e){const n=new Uint8Array(c);t.G1.toRprUncompressed(n,0,e),await h.write(n)}async function L(e){const n=new Uint8Array(l);t.G2.toRprUncompressed(n,0,e),await h.write(n)}},exportVerificationKey:eM,exportSolidityVerifier:async function(t,e,n){const r=await eM(t,n);if("fflonk"===r.protocol)return oM(r,e,n);let i=e[r.protocol];return nM.render(i,r)}});var aM,cM={exports:{}};
|
|
113
|
+
/**
|
|
114
|
+
* [js-sha3]{@link https://github.com/emn178/js-sha3}
|
|
115
|
+
*
|
|
116
|
+
* @version 0.8.0
|
|
117
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
118
|
+
* @copyright Chen, Yi-Cyuan 2015-2018
|
|
119
|
+
* @license MIT
|
|
120
|
+
*/aM=cM,function(){var t="input is invalid type",e="object"==typeof window,n=e?window:{};n.JS_SHA3_NO_WINDOW&&(e=!1);var r=!e&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof DT&&DT.versions&&DT.versions.node?n=ab:r&&(n=self);var i=!n.JS_SHA3_NO_COMMON_JS&&aM.exports,o=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),a=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],u=[224,256,384,512],h=[128,256],d=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!o||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var f=function(t,e,n){return function(r){return new S(t,e,t).update(r)[n]()}},A=function(t,e,n){return function(r,i){return new S(t,e,i).update(r)[n]()}},g=function(t,e,n){return function(e,r,i,o){return I["cshake"+t].update(e,r,i,o)[n]()}},E=function(t,e,n){return function(e,r,i,o){return I["kmac"+t].update(e,r,i,o)[n]()}},m=function(t,e,n,r){for(var i=0;i<d.length;++i){var o=d[i];t[o]=e(n,r,o)}return t},y=function(t,e){var n=f(t,e,"hex");return n.create=function(){return new S(t,e,t)},n.update=function(t){return n.create().update(t)},m(n,f,t,e)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:u,createMethod:y},{name:"sha3",padding:[6,1536,393216,100663296],bits:u,createMethod:y},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(t,e){var n=A(t,e,"hex");return n.create=function(n){return new S(t,e,n)},n.update=function(t,e){return n.create(e).update(t)},m(n,A,t,e)}},{name:"cshake",padding:a,bits:h,createMethod:function(t,e){var n=p[t],r=g(t,0,"hex");return r.create=function(r,i,o){return i||o?new S(t,e,r).bytepad([i,o],n):I["shake"+t].create(r)},r.update=function(t,e,n,i){return r.create(e,n,i).update(t)},m(r,g,t,e)}},{name:"kmac",padding:a,bits:h,createMethod:function(t,e){var n=p[t],r=E(t,0,"hex");return r.create=function(r,i,o){return new v(t,e,i).bytepad(["KMAC",o],n).bytepad([r],n)},r.update=function(t,e,n,i){return r.create(t,n,i).update(e)},m(r,E,t,e)}}],I={},C=[],B=0;B<w.length;++B)for(var T=w[B],b=T.bits,D=0;D<b.length;++D){var M=T.name+"_"+b[D];if(C.push(M),I[M]=T.createMethod(b[D],T.padding),"sha3"!==T.name){var N=T.name+b[D];C.push(N),I[N]=I[M]}}function S(t,e,n){this.blocks=[],this.s=[],this.padding=e,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function v(t,e,n){S.call(this,t,e,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,s,a=this.blocks,l=this.byteCount,u=e.length,h=this.blockCount,d=0,p=this.s;d<u;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<h+1;++i)a[i]=0;if(n)for(i=this.start;d<u&&i<l;++d)a[i>>2]|=e[d]<<c[3&i++];else for(i=this.start;d<u&&i<l;++d)(s=e.charCodeAt(d))<128?a[i>>2]|=s<<c[3&i++]:s<2048?(a[i>>2]|=(192|s>>6)<<c[3&i++],a[i>>2]|=(128|63&s)<<c[3&i++]):s<55296||s>=57344?(a[i>>2]|=(224|s>>12)<<c[3&i++],a[i>>2]|=(128|s>>6&63)<<c[3&i++],a[i>>2]|=(128|63&s)<<c[3&i++]):(s=65536+((1023&s)<<10|1023&e.charCodeAt(++d)),a[i>>2]|=(240|s>>18)<<c[3&i++],a[i>>2]|=(128|s>>12&63)<<c[3&i++],a[i>>2]|=(128|s>>6&63)<<c[3&i++],a[i>>2]|=(128|63&s)<<c[3&i++]);if(this.lastByteIndex=i,i>=l){for(this.start=i-l,this.block=a[h],i=0;i<h;++i)p[i]^=a[i];_(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(t,e){var n=255&t,r=1,i=[n];for(n=255&(t>>=8);n>0;)i.unshift(n),n=255&(t>>=8),++r;return e?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,s=e.length;if(n)i=s;else for(var a=0;a<e.length;++a){var c=e.charCodeAt(a);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((1023&c)<<10|1023&e.charCodeAt(++a)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(t,e){for(var n=this.encode(e),r=0;r<t.length;++r)n+=this.encodeString(t[r]);var i=e-n%e,o=[];return o.length=i,this.update(o),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,n=this.blockCount,r=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[n],e=1;e<n+1;++e)t[e]=0;for(t[n-1]|=2147483648,e=0;e<n;++e)r[e]^=t[e];_(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,a=0,c="";a<r;){for(o=0;o<e&&a<r;++o,++a)t=n[o],c+=s[t>>4&15]+s[15&t]+s[t>>12&15]+s[t>>8&15]+s[t>>20&15]+s[t>>16&15]+s[t>>28&15]+s[t>>24&15];a%e===0&&(_(n),o=0)}return i&&(t=n[o],c+=s[t>>4&15]+s[15&t],i>1&&(c+=s[t>>12&15]+s[t>>8&15]),i>2&&(c+=s[t>>20&15]+s[t>>16&15])),c},S.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(a);for(var c=new Uint32Array(t);s<r;){for(o=0;o<e&&s<r;++o,++s)c[s]=n[o];s%e===0&&_(n)}return i&&(c[o]=n[o],t=t.slice(0,a)),t},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var t,e,n=this.blockCount,r=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,c=[];a<i;){for(s=0;s<n&&a<i;++s,++a)t=a<<2,e=r[s],c[t]=255&e,c[t+1]=e>>8&255,c[t+2]=e>>16&255,c[t+3]=e>>24&255;a%n===0&&_(r)}return o&&(t=a<<2,e=r[s],c[t]=255&e,o>1&&(c[t+1]=e>>8&255),o>2&&(c[t+2]=e>>16&255)),c},v.prototype=new S,v.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var _=function(t){var e,n,r,i,o,s,a,c,u,h,d,p,f,A,g,E,m,y,w,I,C,B,T,b,D,M,N,S,v,_,L,x,R,F,O,k,Q,U,P,G,V,H,j,Y,z,J,W,q,K,X,Z,$,tt,et,nt,rt,it,ot,st,at,ct,lt,ut;for(r=0;r<48;r+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],s=t[2]^t[12]^t[22]^t[32]^t[42],a=t[3]^t[13]^t[23]^t[33]^t[43],c=t[4]^t[14]^t[24]^t[34]^t[44],u=t[5]^t[15]^t[25]^t[35]^t[45],h=t[6]^t[16]^t[26]^t[36]^t[46],d=t[7]^t[17]^t[27]^t[37]^t[47],e=(p=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),n=(f=t[9]^t[19]^t[29]^t[39]^t[49])^(a<<1|s>>>31),t[0]^=e,t[1]^=n,t[10]^=e,t[11]^=n,t[20]^=e,t[21]^=n,t[30]^=e,t[31]^=n,t[40]^=e,t[41]^=n,e=i^(c<<1|u>>>31),n=o^(u<<1|c>>>31),t[2]^=e,t[3]^=n,t[12]^=e,t[13]^=n,t[22]^=e,t[23]^=n,t[32]^=e,t[33]^=n,t[42]^=e,t[43]^=n,e=s^(h<<1|d>>>31),n=a^(d<<1|h>>>31),t[4]^=e,t[5]^=n,t[14]^=e,t[15]^=n,t[24]^=e,t[25]^=n,t[34]^=e,t[35]^=n,t[44]^=e,t[45]^=n,e=c^(p<<1|f>>>31),n=u^(f<<1|p>>>31),t[6]^=e,t[7]^=n,t[16]^=e,t[17]^=n,t[26]^=e,t[27]^=n,t[36]^=e,t[37]^=n,t[46]^=e,t[47]^=n,e=h^(i<<1|o>>>31),n=d^(o<<1|i>>>31),t[8]^=e,t[9]^=n,t[18]^=e,t[19]^=n,t[28]^=e,t[29]^=n,t[38]^=e,t[39]^=n,t[48]^=e,t[49]^=n,A=t[0],g=t[1],J=t[11]<<4|t[10]>>>28,W=t[10]<<4|t[11]>>>28,S=t[20]<<3|t[21]>>>29,v=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ct=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,F=t[2]<<1|t[3]>>>31,O=t[3]<<1|t[2]>>>31,E=t[13]<<12|t[12]>>>20,m=t[12]<<12|t[13]>>>20,q=t[22]<<10|t[23]>>>22,K=t[23]<<10|t[22]>>>22,_=t[33]<<13|t[32]>>>19,L=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ut=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,nt=t[4]<<30|t[5]>>>2,k=t[14]<<6|t[15]>>>26,Q=t[15]<<6|t[14]>>>26,y=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,x=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,b=t[6]<<28|t[7]>>>4,D=t[7]<<28|t[6]>>>4,rt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,U=t[26]<<25|t[27]>>>7,P=t[27]<<25|t[26]>>>7,I=t[36]<<21|t[37]>>>11,C=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Y=t[8]<<27|t[9]>>>5,z=t[9]<<27|t[8]>>>5,M=t[18]<<20|t[19]>>>12,N=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,V=t[39]<<8|t[38]>>>24,B=t[48]<<14|t[49]>>>18,T=t[49]<<14|t[48]>>>18,t[0]=A^~E&y,t[1]=g^~m&w,t[10]=b^~M&S,t[11]=D^~N&v,t[20]=F^~k&U,t[21]=O^~Q&P,t[30]=Y^~J&q,t[31]=z^~W&K,t[40]=et^~rt&ot,t[41]=nt^~it&st,t[2]=E^~y&I,t[3]=m^~w&C,t[12]=M^~S&_,t[13]=N^~v&L,t[22]=k^~U&G,t[23]=Q^~P&V,t[32]=J^~q&X,t[33]=W^~K&Z,t[42]=rt^~ot&at,t[43]=it^~st&ct,t[4]=y^~I&B,t[5]=w^~C&T,t[14]=S^~_&x,t[15]=v^~L&R,t[24]=U^~G&H,t[25]=P^~V&j,t[34]=q^~X&$,t[35]=K^~Z&tt,t[44]=ot^~at<,t[45]=st^~ct&ut,t[6]=I^~B&A,t[7]=C^~T&g,t[16]=_^~x&b,t[17]=L^~R&D,t[26]=G^~H&F,t[27]=V^~j&O,t[36]=X^~$&Y,t[37]=Z^~tt&z,t[46]=at^~lt&et,t[47]=ct^~ut&nt,t[8]=B^~A&E,t[9]=T^~g&m,t[18]=x^~b&M,t[19]=R^~D&N,t[28]=H^~F&k,t[29]=j^~O&Q,t[38]=$^~Y&J,t[39]=tt^~z&W,t[48]=lt^~et&rt,t[49]=ut^~nt&it,t[0]^=l[r],t[1]^=l[r+1]};if(i)aM.exports=I;else for(B=0;B<C.length;++B)n[C[B]]=I[C[B]]}();var lM=cM.exports;const{keccak256:uM}=lM;const{stringifyBigInts:hM}=bT;const{unstringifyBigInts:dM}=bT;const{unstringifyBigInts:pM}=bT;const{unstringifyBigInts:fM}=bT;const{stringifyBigInts:AM}=bT;const{unstringifyBigInts:gM}=bT;const{unstringifyBigInts:EM}=bT;const{unstringifyBigInts:mM}=bT;var yM=s(8287).hp;const wM=dm.fromJSON({});class IM extends Error{name="AttestorError";code;data;constructor(t,e,n){super(e),this.code=t,this.data=n}toProto(){return dm.create({code:im[this.code],message:this.message,data:JSON.stringify(this.data)})}static fromProto(t=wM){return new IM("number"==typeof t.code?function(t,e){for(const n in t)if(t[n]===e)return n;return}(im,t.code)||"UNRECOGNIZED":t.code,t.message,t.data?JSON.parse(t.data):void 0)}static fromError(t,e="ERROR_INTERNAL"){return t instanceof IM?t:new IM(e,t.message)}static badRequest(t,e){return new IM("ERROR_BAD_REQUEST",t,e)}}const CM=+(iw("ZK_CONCURRENCY")||10);async function BM({zkOperators:t,oprfOperators:e,logger:n=lw,zkProofConcurrency:r=CM,cipherSuite:i,zkEngine:o="snarkjs"}){const s=new lI({concurrency:r,autoStart:!0}),a=[];n=n.child({module:"zk",zkEngine:o});let c=0;return{async addPacketToProve(t,{redactedPlaintext:e,toprfs:n=[],overshotToprfFromPrevBlock:r},o,s){if("plaintext"===t.type)throw new Error("Cannot generate proof for plaintext");const l=Jy(i),u=TM(l),h=await C.exportKey(t.encKey),d=t.iv,p=function(t,e){Jy(e),t=t.slice(0,-16);const{ivLength:n}=P[e],r=12-n;return t.slice(r)}(t.ciphertext,i);r&&e.set(new Uint8Array(r.length).fill(pw));const f="TLS_AES_128_GCM_SHA256"===(A=i)||"TLS_AES_256_GCM_SHA384"===A||"TLS_CHACHA20_POLY1305_SHA256"===A?p.length-1:p.length;var A;const g={onGeneratedProofs:o,algorithm:l,proofsToGenerate:[],toprfsToGenerate:[],iv:t.fixedIv};for(const r of n){const n=f-(r.dataLocation.fromIndex+r.dataLocation.length);if(n<0){const e=s();if("ciphertext"!==e?.type)throw new IM("ERROR_INTERNAL","TOPRF data overshoots ciphertext length, but no next ciphertext packet found");if(e.encKey!==t.encKey)throw new IM("ERROR_INTERNAL","TOPRF data overshoots ciphertext length, but next packet has different encryption key");const i=e.ciphertext.slice(0,Math.abs(n)),o=e.iv;r.overshoot={ciphertext:i,iv:o,recordNumber:e.recordNumber}}const i=RM(l,r),o={fromIndex:i,toIndex:Math.min(i+u,p.length)};g.toprfsToGenerate.push(xM({key:h,iv:d,ciphertext:p,slice:o,toprf:{...r,dataLocation:{...r.dataLocation,fromIndex:r.dataLocation.fromIndex-i}}})),c+=1;const a=Math.min(f,r.dataLocation.fromIndex+r.dataLocation.length);for(let t=r.dataLocation.fromIndex;t<a;t++)e[t]=pw}for(let t=0;t<p.length;t+=u){const n=LM({key:h,iv:d,ciphertext:p,redactedPlaintext:e,slice:{fromIndex:t,toIndex:Math.min(t+u,p.length)}});n&&(g.proofsToGenerate.push(n),c+=1)}a.push(g)},getTotalChunksToProve:()=>c,async generateProofs(t){if(!a.length)return;const e=Date.now(),r=[];for(const{onGeneratedProofs:e,algorithm:n,proofsToGenerate:i,toprfsToGenerate:o}of a){const a=[],c=[];let h=i.length+o.length;for(const o of i)r.push(s.add(async()=>{const r=await l(n,o);t?.(),a.push(r),h-=1,0===h&&e(a,c)},{throwOnTimeout:!0}));for(const i of o)r.push(s.add(async()=>{const r=await u(n,i);t?.(),c.push(r),h-=1,0===h&&e(a,c)},{throwOnTimeout:!0}))}await Promise.all(r),n?.info({durationMs:Date.now()-e,zkProofsToGen:c},"generated ZK proofs"),a.splice(0,a.length),c=0;const o=Jy(i),d=await h(o);d.release?.()}};async function l(t,{startIdx:e,redactedPlaintext:r,privateInput:i,publicInput:o}){const s=h(t),a=await Qy({algorithm:t,privateInput:i,publicInput:o,operator:s,logger:n});return n?.debug({startIdx:e},"generated proof for chunk"),{proofData:"string"==typeof a.proofData?jy(a.proofData):a.proofData,decryptedRedactedCiphertext:a.plaintext||new Uint8Array,redactedPlaintext:r,startIdx:e}}async function u(t,{startIdx:r,privateInput:i,publicInput:s,toprf:a}){const c=function(t){return e?.[t]||vM(t,o,n)}(t),l=[];if(a?.overshoot){const{dataLocation:e,overshoot:{ciphertext:n}}=a;l.push({pos:e.fromIndex,len:e.length-n.length},{pos:Fy(e.fromIndex+e.length,t),len:n.length})}else a&&l.push({pos:a.dataLocation.fromIndex,len:a.dataLocation.length});const u=await Qy({algorithm:t,privateInput:i,publicInput:s,operator:c,logger:n,...a?{toprf:{locations:l,output:a.nullifier,responses:a.responses,domainSeparator:Ty},mask:a.mask}:{}});return n?.debug({toprfLocations:l},"generated TOPRF proof for chunk"),{startIdx:r,proofData:"string"==typeof u.proofData?jy(u.proofData):u.proofData,payload:a}}function h(e){return t?.[e]||SM(e,o,n)}}function TM(t){const{chunkSize:e,bitsPerWord:n}=Oy[t];return e*n/8}const bM={},DM={},MM={snarkjs:function({algorithm:t,fetcher:e,options:{maxProofConcurrency:n=2}={}}){let r,i,o;const s=new lI({concurrency:n});return{async generateWitness({out:n,...r},s){i||=function(n){return e.fetch("snarkjs",`${t}/circuit.wasm`,n)}(),o||=(async()=>{if(!YD.getWtnsCalculator)return;const t=WebAssembly.Memory;WebAssembly.Memory=class extends WebAssembly.Memory{constructor(){super({initial:5})}};try{return await YD.getWtnsCalculator(await i)}finally{WebAssembly.Memory=t}})();const{noncesAndCounters:[{nonce:a,counter:c}]}=r,l={key:Sy(t,r.key),nonce:Sy(t,a),counter:Sy(t,c),in:Sy(t,r.in)},u={type:"mem"};return await o?await YD.wtnsCalculateWithCalculator(l,await o,u):await YD.calculate(l,await i,u),u.data},async groth16Prove(t,e){r||=a();const{data:n}=await r,{proof:i}=await s.add(()=>_D.prove(n,t,e));return{proof:JSON.stringify(i)}},async groth16Verify(e,n,i){n="string"!=typeof n?yM.from(n).toString():n,r||=a();const o=await r;o.json||(o.json=await sM.exportVerificationKey(o.data));const{noncesAndCounters:[{nonce:s,counter:c}]}=e;return _D.verify(o.json,Sy(t,e.out,s,c,e.in),JSON.parse(n),i)},release(){r=void 0,i=void 0,o=void 0}};async function a(n){return{data:await e.fetch("snarkjs",`${t}/circuit_final.zkey`,n)}}},gnark:function({algorithm:t,fetcher:e}){return{generateWitness:async e=>Jw(t,e),async groth16Prove(n,r){const i=await $w(t,e,r),o=await Xw(i.prove,n);if("object"!=typeof o||!("proof"in o)||!o.proof)throw new Error(`Failed to create gnark proof: ${JSON.stringify(o)}`);return{proof:Qw(o.proof)}},async groth16Verify(n,r,i){const o=await $w(t,e,i),s=Ww(t,n),a=JSON.stringify({cipher:t,proof:"string"==typeof r?r:kw(r),publicSignals:s});return 1===Kw(o.verify,a)}}}},NM={gnark:function({fetcher:t,algorithm:e}){return{generateWitness:async t=>Jw(e,t),async groth16Prove(t,e){const r=await n(e),i=await Xw(r.prove,t);if("object"!=typeof i||!("proof"in i)||!i.proof)throw new Error(`Failed to create gnark TOPRF proof: ${JSON.stringify(i)}`);return{proof:Qw(i.proof)}},async groth16Verify(t,r,i){const o=await n(i),s=Ww(e,t),a=JSON.stringify({cipher:`${e}-toprf`,proof:"string"==typeof r?r:kw(r),publicSignals:s});return 1===Kw(o.verify,a)},async generateThresholdKeys(t,e,r){const i=await n(r),{generateThresholdKeys:o,vfree:s}=i,a={total:t,threshold:e},c=Kw(o,JSON.stringify(a)),l=eI.from(tI.decode(c.r0,"unsigned char",c.r1)).toString();s(c.r0);const u=JSON.parse(l),h=[];for(let t=0;t<u.shares.length;t++){const e=u.shares[t];h.push({index:e.index,publicKey:Fw(e.publicKey),privateKey:Fw(e.privateKey)})}return{publicKey:Fw(u.publicKey),privateKey:Fw(u.privateKey),shares:h}},async generateOPRFRequestData(t,e,r){const i=await n(r),o={data:kw(t),domainSeparator:e},s=await Xw(i.generateOPRFRequest,JSON.stringify(o));return{mask:Fw(s.mask),maskedData:Fw(s.maskedData),secretElements:[Fw(s.secretElements[0]),Fw(s.secretElements[1])]}},async finaliseOPRF(t,e,r,i){const o=await n(i),s={serverPublicKey:_w(t),request:{mask:_w(e.mask),maskedData:_w(e.maskedData),secretElements:[_w(e.secretElements[0]),_w(e.secretElements[1])]},responses:r.map(({publicKeyShare:t,evaluated:e,c:n,r})=>({publicKeyShare:_w(t),evaluated:_w(e),c:_w(n),r:_w(r)}))},a=await Xw(o.toprfFinalize,JSON.stringify(s));return Fw(a.output)},async evaluateOPRF(t,e,r){const i=await n(r),{oprfEvaluate:o,vfree:s}=i,a={serverPrivate:_w(t),maskedData:_w(e)},c=Kw(o,JSON.stringify(a)),l=eI.from(tI.decode(c.r0,"unsigned char",c.r1)).toString();s(c.r0);const u=JSON.parse(l);return{evaluated:Fw(u.evaluated),c:Fw(u.c),r:Fw(u.r)}}};async function n(n){const{ext:r,id:i}=nI[e];return Yw(i,r,t,n)}}};function SM(t,e,n){let r=bM[e];if(r||(bM[e]={},r=bM[e]),!r[t]){const i="node"===rw()?"local":"remote",o="remote"===i?FM():void 0;n?.info({type:i,algorithm:t,zkBaseUrl:o},"fetching zk operator");const s="local"===i?Vy():Gy({baseUrl:o}),a=MM[e];if(!a)throw new Error(`No ZK operator maker for ${e}`);r[t]=a({algorithm:t,fetcher:s})}return r[t]}function vM(t,e,n){let r=DM[e];if(r||(DM[e]={},r=DM[e]),!r[t]){const i="node"===rw()?"local":"remote",o="remote"===i?FM():void 0;n?.info({type:i,algorithm:t,zkBaseUrl:o},"fetching oprf operator");const s="local"===i?Vy():Gy({baseUrl:o}),a=NM[e];if(!a)throw new Error(`No OPRF operator maker for ${e}`);r[t]=a({algorithm:t,fetcher:s})}return r[t]}function _M(t){if("gnark"===t)return am;if("snarkjs"===t)return sm;throw new Error(`Unknown ZK engine: ${t}`)}function LM({key:t,iv:e,ciphertext:n,redactedPlaintext:r,slice:{fromIndex:i,toIndex:o}}){const s=n.slice(i,o),a=r.slice(i,o);if(!fw(a)){for(let t=0;t<s.length;t++)a[t]===pw&&(s[t]=pw);return{startIdx:i,redactedPlaintext:a,privateInput:{key:t},publicInput:{ciphertext:s,iv:e,offsetBytes:i}}}}function xM({key:t,iv:e,ciphertext:n,slice:{fromIndex:r,toIndex:i},toprf:o}){const s=n.slice(r,i);if(o?.overshoot){const{overshoot:{ciphertext:n,iv:i}}=o;return{privateInput:{key:t},publicInput:[{ciphertext:s,iv:e,offsetBytes:r},{ciphertext:n,iv:i}],toprf:o,startIdx:r}}return{privateInput:{key:t},publicInput:{ciphertext:s,iv:e,offsetBytes:r},toprf:o,startIdx:r}}function RM(t,{dataLocation:e,overshoot:n}){const r=TM(t),i=xy(t),o=Math.floor(e.fromIndex/r);if(Math.floor((e.fromIndex+e.length)/r)===o){const t=o*r;if(n){return t+Math.ceil(n.ciphertext.length/i)*i}return t}const s=Math.floor(e.fromIndex/i)*i;if(Math.ceil((e.fromIndex+e.length)/i)-s>r)throw new IM("ERROR_BAD_REQUEST","OPRF data cannot fit into a single chunk");return s}function FM(){return"string"!=typeof ATTESTOR_BASE_URL?wy:new URL(wy,ATTESTOR_BASE_URL).toString()}var OM=s(2341);function kM(t){return t&&OM(t)||""}var QM=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const UM=new hA("abstract-provider/5.8.0");class PM{constructor(){UM.checkAbstract(new.target,PM),wg(this,"_isProvider",!0)}getFeeData(){return QM(this,void 0,void 0,function*(){const{block:t,gasPrice:e}=yield Ig({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(t=>null)});let n=null,r=null,i=null;return t&&t.baseFeePerGas&&(n=t.baseFeePerGas,i=Qg.from("1500000000"),r=t.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:e}})}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}}var GM=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const VM=new hA("abstract-signer/5.8.0"),HM=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],jM=[hA.errors.INSUFFICIENT_FUNDS,hA.errors.NONCE_EXPIRED,hA.errors.REPLACEMENT_UNDERPRICED];class YM{constructor(){VM.checkAbstract(new.target,YM),wg(this,"_isSigner",!0)}getBalance(t){return GM(this,void 0,void 0,function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),t)})}getTransactionCount(t){return GM(this,void 0,void 0,function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),t)})}estimateGas(t){return GM(this,void 0,void 0,function*(){this._checkProvider("estimateGas");const e=yield Ig(this.checkTransaction(t));return yield this.provider.estimateGas(e)})}call(t,e){return GM(this,void 0,void 0,function*(){this._checkProvider("call");const n=yield Ig(this.checkTransaction(t));return yield this.provider.call(n,e)})}sendTransaction(t){return GM(this,void 0,void 0,function*(){this._checkProvider("sendTransaction");const e=yield this.populateTransaction(t),n=yield this.signTransaction(e);return yield this.provider.sendTransaction(n)})}getChainId(){return GM(this,void 0,void 0,function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId})}getGasPrice(){return GM(this,void 0,void 0,function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()})}getFeeData(){return GM(this,void 0,void 0,function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()})}resolveName(t){return GM(this,void 0,void 0,function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(t)})}checkTransaction(t){for(const e in t)-1===HM.indexOf(e)&&VM.throwArgumentError("invalid transaction key: "+e,"transaction",t);const e=Cg(t);return null==e.from?e.from=this.getAddress():e.from=Promise.all([Promise.resolve(e.from),this.getAddress()]).then(e=>(e[0].toLowerCase()!==e[1].toLowerCase()&&VM.throwArgumentError("from address mismatch","transaction",t),e[0])),e}populateTransaction(t){return GM(this,void 0,void 0,function*(){const e=yield Ig(this.checkTransaction(t));null!=e.to&&(e.to=Promise.resolve(e.to).then(t=>GM(this,void 0,void 0,function*(){if(null==t)return null;const e=yield this.resolveName(t);return null==e&&VM.throwArgumentError("provided ENS name resolves to null","tx.to",t),e})),e.to.catch(t=>{}));const n=null!=e.maxFeePerGas||null!=e.maxPriorityFeePerGas;if(null==e.gasPrice||2!==e.type&&!n?0!==e.type&&1!==e.type||!n||VM.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",t):VM.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",t),2!==e.type&&null!=e.type||null==e.maxFeePerGas||null==e.maxPriorityFeePerGas)if(0===e.type||1===e.type)null==e.gasPrice&&(e.gasPrice=this.getGasPrice());else{const t=yield this.getFeeData();if(null==e.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(e.type=2,null!=e.gasPrice){const t=e.gasPrice;delete e.gasPrice,e.maxFeePerGas=t,e.maxPriorityFeePerGas=t}else null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(n&&VM.throwError("network does not support EIP-1559",hA.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==e.gasPrice&&(e.gasPrice=t.gasPrice),e.type=0):VM.throwError("failed to get consistent fee data",hA.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===e.type&&(null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else e.type=2;return null==e.nonce&&(e.nonce=this.getTransactionCount("pending")),null==e.gasLimit&&(e.gasLimit=this.estimateGas(e).catch(t=>{if(jM.indexOf(t.code)>=0)throw t;return VM.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",hA.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,tx:e})})),null==e.chainId?e.chainId=this.getChainId():e.chainId=Promise.all([Promise.resolve(e.chainId),this.getChainId()]).then(e=>(0!==e[1]&&e[0]!==e[1]&&VM.throwArgumentError("chainId address mismatch","transaction",t),e[0])),yield Ig(e)})}_checkProvider(t){this.provider||VM.throwError("missing provider",hA.errors.UNSUPPORTED_OPERATION,{operation:t||"_checkProvider"})}static isSigner(t){return!(!t||!t._isSigner)}}const zM=new hA("strings/5.8.0");var JM,WM;function qM(t,e,n,r,i){if(t===WM.BAD_PREFIX||t===WM.UNEXPECTED_CONTINUE){let t=0;for(let r=e+1;r<n.length&&n[r]>>6==2;r++)t++;return t}return t===WM.OVERRUN?n.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(JM||(JM={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(WM||(WM={}));Object.freeze({error:function(t,e,n,r,i){return zM.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",n)},ignore:qM,replace:function(t,e,n,r,i){return t===WM.OVERLONG?(r.push(i),0):(r.push(65533),qM(t,e,n))}});function KM(t,e=JM.current){e!=JM.current&&(zM.checkNormalize(),t=t.normalize(e));let n=[];for(let e=0;e<t.length;e++){const r=t.charCodeAt(e);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){e++;const i=t.charCodeAt(e);if(e>=t.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&r)<<10)+(1023&i);n.push(o>>18|240),n.push(o>>12&63|128),n.push(o>>6&63|128),n.push(63&o|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return mA(n)}function XM(t){return"string"==typeof t&&(t=KM(t)),Yg(yA([KM("Ethereum Signed Message:\n"),KM(String(t.length)),t]))}function ZM(t){return Yg(KM(t))}var $M=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const tN=new hA("hash/5.8.0"),eN=new Uint8Array(32);eN.fill(0);const nN=Qg.from(-1),rN=Qg.from(0),iN=Qg.from(1),oN=Qg.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const sN=MA(iN.toHexString(),32),aN=MA(rN.toHexString(),32),cN={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},lN=["name","version","chainId","verifyingContract","salt"];function uN(t){return function(e){return"string"!=typeof e&&tN.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const hN={name:uN("name"),version:uN("version"),chainId:function(t){try{return Qg.from(t).toString()}catch(t){}return tN.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",t)},verifyingContract:function(t){try{return Zg(t).toLowerCase()}catch(t){}return tN.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){try{const e=mA(t);if(32!==e.length)throw new Error("bad length");return BA(e)}catch(t){}return tN.throwArgumentError('invalid domain value "salt"',"domain.salt",t)}};function dN(t){{const e=t.match(/^(u?)int(\d*)$/);if(e){const n=""===e[1],r=parseInt(e[2]||"256");(r%8!=0||r>256||e[2]&&e[2]!==String(r))&&tN.throwArgumentError("invalid numeric width","type",t);const i=oN.mask(n?r-1:r),o=n?i.add(iN).mul(nN):rN;return function(e){const n=Qg.from(e);return(n.lt(o)||n.gt(i))&&tN.throwArgumentError(`value out-of-bounds for ${t}`,"value",e),MA(n.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const n=parseInt(e[1]);return(0===n||n>32||e[1]!==String(n))&&tN.throwArgumentError("invalid bytes width","type",t),function(e){return mA(e).length!==n&&tN.throwArgumentError(`invalid length for ${t}`,"value",e),function(t){const e=mA(t),n=e.length%32;return n?DA([e,eN.slice(n)]):BA(e)}(e)}}}switch(t){case"address":return function(t){return MA(Zg(t),32)};case"bool":return function(t){return t?sN:aN};case"bytes":return function(t){return Yg(t)};case"string":return function(t){return ZM(t)}}return null}function pN(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}class fN{constructor(t){wg(this,"types",Object.freeze(Dg(t))),wg(this,"_encoderCache",{}),wg(this,"_types",{});const e={},n={},r={};Object.keys(t).forEach(t=>{e[t]={},n[t]=[],r[t]={}});for(const r in t){const i={};t[r].forEach(o=>{i[o.name]&&tN.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(r)}`,"types",t),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===r&&tN.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",t);dN(s)||(n[s]||tN.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",t),n[s].push(r),e[r][s]=!0)})}const i=Object.keys(n).filter(t=>0===n[t].length);0===i.length?tN.throwArgumentError("missing primary type","types",t):i.length>1&&tN.throwArgumentError(`ambiguous primary types or unused types: ${i.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),wg(this,"primaryType",i[0]),function i(o,s){s[o]&&tN.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",t),s[o]=!0,Object.keys(e[o]).forEach(t=>{n[t]&&(i(t,s),Object.keys(s).forEach(e=>{r[e][t]=!0}))}),delete s[o]}(this.primaryType,{});for(const e in r){const n=Object.keys(r[e]);n.sort(),this._types[e]=pN(e,t[e])+n.map(e=>pN(e,t[e])).join("")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=dN(t);if(e)return e}const e=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(e){const t=e[1],n=this.getEncoder(t),r=parseInt(e[3]);return e=>{r>=0&&e.length!==r&&tN.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);let i=e.map(n);return this._types[t]&&(i=i.map(Yg)),Yg(DA(i))}}const n=this.types[t];if(n){const e=ZM(this._types[t]);return t=>{const r=n.map(({name:e,type:n})=>{const r=this.getEncoder(n)(t[e]);return this._types[n]?Yg(r):r});return r.unshift(e),DA(r)}}return tN.throwArgumentError(`unknown type: ${t}`,"type",t)}encodeType(t){const e=this._types[t];return e||tN.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return Yg(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,n){if(dN(t))return n(t,e);const r=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const t=r[1],i=parseInt(r[3]);return i>=0&&e.length!==i&&tN.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(e=>this._visit(t,e,n))}const i=this.types[t];return i?i.reduce((t,{name:r,type:i})=>(t[r]=this._visit(i,e[r],n),t),{}):tN.throwArgumentError(`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new fN(t)}static getPrimaryType(t){return fN.from(t).primaryType}static hashStruct(t,e,n){return fN.from(e).hashStruct(t,n)}static hashDomain(t){const e=[];for(const n in t){const r=cN[n];r||tN.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",t),e.push({name:n,type:r})}return e.sort((t,e)=>lN.indexOf(t.name)-lN.indexOf(e.name)),fN.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,n){return DA(["0x1901",fN.hashDomain(t),fN.from(e).hash(n)])}static hash(t,e,n){return Yg(fN.encode(t,e,n))}static resolveNames(t,e,n,r){return $M(this,void 0,void 0,function*(){t=Cg(t);const i={};t.verifyingContract&&!IA(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=fN.from(e);o.visit(n,(t,e)=>("address"!==t||IA(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=yield r(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),n=o.visit(n,(t,e)=>"address"===t&&i[e]?i[e]:e),{domain:t,value:n}})}static getPayload(t,e,n){fN.hashDomain(t);const r={},i=[];lN.forEach(e=>{const n=t[e];null!=n&&(r[e]=hN[e](n),i.push({name:e,type:cN[e]}))});const o=fN.from(e),s=Cg(e);return s.EIP712Domain?tN.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",e):s.EIP712Domain=i,o.encode(n),{types:s,domain:r,primaryType:o.primaryType,message:o.visit(n,(t,e)=>{if(t.match(/^bytes(\d*)/))return BA(mA(e));if(t.match(/^u?int/))return Qg.from(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return"string"!=typeof e&&tN.throwArgumentError("invalid string","value",e),e}return tN.throwArgumentError("unsupported type","type",t)})}}}class AN{constructor(t){wg(this,"alphabet",t),wg(this,"base",t.length),wg(this,"_alphabetMap",{}),wg(this,"_leader",t.charAt(0));for(let e=0;e<t.length;e++)this._alphabetMap[t.charAt(e)]=e}encode(t){let e=mA(t);if(0===e.length)return"";let n=[0];for(let t=0;t<e.length;++t){let r=e[t];for(let t=0;t<n.length;++t)r+=n[t]<<8,n[t]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let t=0;0===e[t]&&t<e.length-1;++t)r+=this._leader;for(let t=n.length-1;t>=0;--t)r+=this.alphabet[n[t]];return r}decode(t){if("string"!=typeof t)throw new TypeError("Expected String");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let n=0;n<t.length;n++){let r=this._alphabetMap[t[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let t=0;t<e.length;++t)i+=e[t]*this.base,e[t]=255&i,i>>=8;for(;i>0;)e.push(255&i),i>>=8}for(let n=0;t[n]===this._leader&&n<t.length-1;++n)e.push(0);return mA(new Uint8Array(e.reverse()))}}new AN("abcdefghijklmnopqrstuvwxyz234567");const gN=new AN("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var EN;!function(t){t.sha256="sha256",t.sha512="sha512"}(EN||(EN={}));const mN=new hA("sha2/5.8.0");function yN(t){return"0x"+FA().sha256().update(mA(t)).digest("hex")}function wN(t,e,n){return EN[t]||mN.throwError("unsupported algorithm "+t,hA.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:t}),"0x"+FA().hmac(FA()[t],mA(e)).update(mA(n)).digest("hex")}function IN(t,e,n,r,i){let o;t=mA(t),e=mA(e);let s=1;const a=new Uint8Array(r),c=new Uint8Array(e.length+4);let l,u;c.set(e);for(let h=1;h<=s;h++){c[e.length]=h>>24&255,c[e.length+1]=h>>16&255,c[e.length+2]=h>>8&255,c[e.length+3]=255&h;let d=mA(wN(i,t,c));o||(o=d.length,u=new Uint8Array(o),s=Math.ceil(r/o),l=r-(s-1)*o),u.set(d);for(let e=1;e<n;e++){d=mA(wN(i,t,d));for(let t=0;t<o;t++)u[t]^=d[t]}const p=(h-1)*o,f=h===s?l:o;a.set(mA(u).slice(0,f),p)}return BA(a)}const CN=new hA("wordlists/5.8.0");class BN{constructor(t){CN.checkAbstract(new.target,BN),wg(this,"locale",t)}split(t){return t.toLowerCase().split(/ +/g)}join(t){return t.join(" ")}static check(t){const e=[];for(let n=0;n<2048;n++){const r=t.getWord(n);if(n!==t.getWordIndex(r))return"0x";e.push(r)}return ZM(e.join("\n")+"\n")}static register(t,e){e||(e=t.locale)}}let TN=null;function bN(t){if(null==TN&&(TN="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==BN.check(t)))throw TN=null,new Error("BIP39 Wordlist for en (English) FAILED")}const DN=new class extends BN{constructor(){super("en")}getWord(t){return bN(this),TN[t]}getWordIndex(t){return bN(this),TN.indexOf(t)}};BN.register(DN);const MN={en:DN},NN=new hA("hdnode/5.8.0"),SN=Qg.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),vN=KM("Bitcoin seed"),_N=2147483648;function LN(t){return(1<<t)-1<<8-t}function xN(t){return(1<<t)-1}function RN(t){return MA(BA(t),32)}function FN(t){return gN.encode(yA([t,bA(yN(yN(t)),0,4)]))}function ON(t){if(null==t)return MN.en;if("string"==typeof t){const e=MN[t];return null==e&&NN.throwArgumentError("unknown locale","wordlist",t),e}return t}const kN={},QN="m/44'/60'/0'/0/0";class UN{constructor(t,e,n,r,i,o,s,a){if(t!==kN)throw new Error("HDNode constructor cannot be called directly");if(e){const t=new _g(e);wg(this,"privateKey",t.privateKey),wg(this,"publicKey",t.compressedPublicKey)}else wg(this,"privateKey",null),wg(this,"publicKey",BA(n));var c;wg(this,"parentFingerprint",r),wg(this,"fingerprint",bA((c=yN(this.publicKey),"0x"+FA().ripemd160().update(mA(c)).digest("hex")),0,4)),wg(this,"address",aE(this.publicKey)),wg(this,"chainCode",i),wg(this,"index",o),wg(this,"depth",s),null==a?(wg(this,"mnemonic",null),wg(this,"path",null)):"string"==typeof a?(wg(this,"mnemonic",null),wg(this,"path",a)):(wg(this,"mnemonic",a),wg(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return FN(yA([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",BA(this.depth),this.parentFingerprint,MA(BA(this.index),4),this.chainCode,null!=this.privateKey?yA(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new UN(kN,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(t){if(t>4294967295)throw new Error("invalid index - "+String(t));let e=this.path;e&&(e+="/"+(2147483647&t));const n=new Uint8Array(37);if(t&_N){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(mA(this.privateKey),1),e&&(e+="'")}else n.set(mA(this.publicKey));for(let e=24;e>=0;e-=8)n[33+(e>>3)]=t>>24-e&255;const r=mA(wN(EN.sha512,this.chainCode,n)),i=r.slice(0,32),o=r.slice(32);let s=null,a=null;if(this.privateKey)s=RN(Qg.from(i).add(this.privateKey).mod(SN));else{a=new _g(BA(i))._addPoint(this.publicKey)}let c=e;const l=this.mnemonic;return l&&(c=Object.freeze({phrase:l.phrase,path:e,locale:l.locale||"en"})),new UN(kN,s,a,this.fingerprint,RN(o),t,this.depth+1,c)}derivePath(t){const e=t.split("/");if(0===e.length||"m"===e[0]&&0!==this.depth)throw new Error("invalid path - "+t);"m"===e[0]&&e.shift();let n=this;for(let t=0;t<e.length;t++){const r=e[t];if(r.match(/^[0-9]+'$/)){const t=parseInt(r.substring(0,r.length-1));if(t>=_N)throw new Error("invalid path index - "+r);n=n._derive(_N+t)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const t=parseInt(r);if(t>=_N)throw new Error("invalid path index - "+r);n=n._derive(t)}}}return n}static _fromSeed(t,e){const n=mA(t);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=mA(wN(EN.sha512,vN,n));return new UN(kN,RN(r.slice(0,32)),null,"0x00000000",RN(r.slice(32)),0,0,e)}static fromMnemonic(t,e,n){return t=GN(PN(t,n=ON(n)),n),UN._fromSeed(function(t,e){e||(e="");const n=KM("mnemonic"+e,JM.NFKD);return IN(KM(t,JM.NFKD),n,2048,64,"sha512")}(t,e),{phrase:t,path:"m",locale:n.locale})}static fromSeed(t){return UN._fromSeed(t,null)}static fromExtendedKey(t){const e=gN.decode(t);82===e.length&&FN(e.slice(0,78))===t||NN.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=e[4],r=BA(e.slice(5,9)),i=parseInt(BA(e.slice(9,13)).substring(2),16),o=BA(e.slice(13,45)),s=e.slice(45,78);switch(BA(e.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new UN(kN,null,BA(s),r,o,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new UN(kN,BA(s.slice(1)),null,r,o,i,n,null)}return NN.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function PN(t,e){e=ON(e),NN.checkNormalize();const n=e.split(t);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=mA(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let t=0;t<n.length;t++){let o=e.getWordIndex(n[t].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let t=0;t<11;t++)o&1<<10-t&&(r[i>>3]|=1<<7-i%8),i++}const o=32*n.length/3,s=LN(n.length/3);if((mA(yN(r.slice(0,o/8)))[0]&s)!==(r[r.length-1]&s))throw new Error("invalid checksum");return BA(r.slice(0,o/8))}function GN(t,e){if(e=ON(e),(t=mA(t)).length%4!=0||t.length<16||t.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let e=0;e<t.length;e++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=t[e],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=t[e]>>8-r,n.push(t[e]&xN(8-r)),r+=3);const i=t.length/4,o=mA(yN(t))[0]&LN(i);return n[n.length-1]<<=i,n[n.length-1]|=o>>8-i,e.join(n.map(t=>e.getWord(t)))}const VN=new hA("random/5.8.0");const HN=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==s.g)return s.g;throw new Error("unable to locate global object")}();let jN=HN.crypto||HN.msCrypto;function YN(t){(t<=0||t>1024||t%1||t!=t)&&VN.throwArgumentError("invalid length","length",t);const e=new Uint8Array(t);return jN.getRandomValues(e),mA(e)}jN&&jN.getRandomValues||(VN.warn("WARNING: Missing strong random number source"),jN={getRandomValues:function(t){return VN.throwError("no secure random source avaialble",hA.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var zN=s(2872),JN=s.n(zN),WN=s(9983),qN=s.n(WN);function KN(t){return"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),mA(t)}function XN(t,e){for(t=String(t);t.length<e;)t="0"+t;return t}function ZN(t){return"string"==typeof t?KM(t,JM.NFKC):mA(t)}function $N(t,e){let n=t;const r=e.toLowerCase().split("/");for(let t=0;t<r.length;t++){let e=null;for(const i in n)if(i.toLowerCase()===r[t]){e=n[i];break}if(null===e)return null;n=e}return n}function tS(t){const e=mA(t);e[6]=15&e[6]|64,e[8]=63&e[8]|128;const n=BA(e);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const eS="json-wallets/5.8.0";var nS=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const rS=new hA(eS);function iS(t){return null!=t&&t.mnemonic&&t.mnemonic.phrase}class oS extends Mg{isKeystoreAccount(t){return!(!t||!t._isKeystoreAccount)}}function sS(t,e){const n=KN($N(t,"crypto/ciphertext"));if(BA(Yg(yA([e.slice(16,32),n]))).substring(2)!==$N(t,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(t,e,n){if("aes-128-ctr"===$N(t,"crypto/cipher")){const r=KN($N(t,"crypto/cipherparams/iv")),i=new(JN().Counter)(r);return mA(new(JN().ModeOfOperation.ctr)(e,i).decrypt(n))}return null}(t,e.slice(0,16),n);r||rS.throwError("unsupported cipher",hA.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=e.slice(32,64),o=aE(r);if(t.address){let e=t.address.toLowerCase();if("0x"!==e.substring(0,2)&&(e="0x"+e),Zg(e)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:BA(r)};if("0.1"===$N(t,"x-ethers/version")){const e=KN($N(t,"x-ethers/mnemonicCiphertext")),n=KN($N(t,"x-ethers/mnemonicCounter")),r=new(JN().Counter)(n),o=new(JN().ModeOfOperation.ctr)(i,r),a=$N(t,"x-ethers/path")||QN,c=$N(t,"x-ethers/locale")||"en",l=mA(o.decrypt(e));try{const t=GN(l,c),e=UN.fromMnemonic(t,null,c).derivePath(a);if(e.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=e.mnemonic}catch(t){if(t.code!==hA.errors.INVALID_ARGUMENT||"wordlist"!==t.argument)throw t}}return new oS(s)}function aS(t,e,n,r,i){return mA(IN(t,e,n,r,i))}function cS(t,e,n,r,i){return Promise.resolve(aS(t,e,n,r,i))}function lS(t,e,n,r,i){const o=ZN(e),s=$N(t,"crypto/kdf");if(s&&"string"==typeof s){const e=function(t,e){return rS.throwArgumentError("invalid key-derivation function parameters",t,e)};if("scrypt"===s.toLowerCase()){const n=KN($N(t,"crypto/kdfparams/salt")),a=parseInt($N(t,"crypto/kdfparams/n")),c=parseInt($N(t,"crypto/kdfparams/r")),l=parseInt($N(t,"crypto/kdfparams/p"));a&&c&&l||e("kdf",s),a&a-1&&e("N",a);const u=parseInt($N(t,"crypto/kdfparams/dklen"));return 32!==u&&e("dklen",u),r(o,n,a,c,l,64,i)}if("pbkdf2"===s.toLowerCase()){const r=KN($N(t,"crypto/kdfparams/salt"));let i=null;const s=$N(t,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":e("prf",s);const a=parseInt($N(t,"crypto/kdfparams/c")),c=parseInt($N(t,"crypto/kdfparams/dklen"));return 32!==c&&e("dklen",c),n(o,r,a,c,i)}}return rS.throwArgumentError("unsupported key-derivation function","kdf",s)}const uS=new hA(eS);class hS extends Mg{isCrowdsaleAccount(t){return!(!t||!t._isCrowdsaleAccount)}}function dS(t,e){const n=JSON.parse(t);e=ZN(e);const r=Zg($N(n,"ethaddr")),i=KN($N(n,"encseed"));i&&i.length%16==0||uS.throwArgumentError("invalid encseed","json",t);const o=mA(IN(e,e,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),c=new(JN().ModeOfOperation.cbc)(o,s),l=JN().padding.pkcs7.strip(mA(c.decrypt(a)));let u="";for(let t=0;t<l.length;t++)u+=String.fromCharCode(l[t]);const h=Yg(KM(u));return new hS({_isCrowdsaleAccount:!0,address:r,privateKey:h})}function pS(t){let e=null;try{e=JSON.parse(t)}catch(t){return!1}return e.encseed&&e.ethaddr}function fS(t){let e=null;try{e=JSON.parse(t)}catch(t){return!1}return!(!e.version||parseInt(e.version)!==e.version||3!==parseInt(e.version))}function AS(t,e,n){if(pS(t)){n&&n(0);const r=dS(t,e);return n&&n(1),Promise.resolve(r)}return fS(t)?function(t,e,n){return nS(this,void 0,void 0,function*(){const r=JSON.parse(t);return sS(r,yield lS(r,e,cS,qN().scrypt,n))})}(t,e,n):Promise.reject(new Error("invalid JSON wallet"))}function gS(t,e){if(pS(t))return dS(t,e);if(fS(t))return function(t,e){const n=JSON.parse(t);return sS(n,lS(n,e,aS,qN().syncScrypt))}(t,e);throw new Error("invalid JSON wallet")}var ES=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(s,a)}c((r=r.apply(t,e||[])).next())})};const mS=new hA("wallet/5.8.0");class yS extends YM{constructor(t,e){if(super(),null!=(n=t)&&IA(n.privateKey,32)&&null!=n.address){const e=new _g(t.privateKey);if(wg(this,"_signingKey",()=>e),wg(this,"address",aE(this.publicKey)),this.address!==Zg(t.address)&&mS.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(t){const e=t.mnemonic;return e&&e.phrase}(t)){const e=t.mnemonic;wg(this,"_mnemonic",()=>({phrase:e.phrase,path:e.path||QN,locale:e.locale||"en"}));const n=this.mnemonic;aE(UN.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&mS.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else wg(this,"_mnemonic",()=>null)}else{if(_g.isSigningKey(t))"secp256k1"!==t.curve&&mS.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),wg(this,"_signingKey",()=>t);else{"string"==typeof t&&t.match(/^[0-9a-f]*$/i)&&64===t.length&&(t="0x"+t);const e=new _g(t);wg(this,"_signingKey",()=>e)}wg(this,"_mnemonic",()=>null),wg(this,"address",aE(this.publicKey))}var n;e&&!PM.isProvider(e)&&mS.throwArgumentError("invalid provider","provider",e),wg(this,"provider",e||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(t){return new yS(this,t)}signTransaction(t){return Ig(t).then(e=>{null!=e.from&&(Zg(e.from)!==this.address&&mS.throwArgumentError("transaction from address mismatch","transaction.from",t.from),delete e.from);const n=this._signingKey().signDigest(Yg(gE(e)));return gE(e,n)})}signMessage(t){return ES(this,void 0,void 0,function*(){return SA(this._signingKey().signDigest(XM(t)))})}_signTypedData(t,e,n){return ES(this,void 0,void 0,function*(){const r=yield fN.resolveNames(t,e,n,t=>(null==this.provider&&mS.throwError("cannot resolve ENS names without a provider",hA.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:t}),this.provider.resolveName(t)));return SA(this._signingKey().signDigest(fN.hash(r.domain,e,r.value)))})}encrypt(t,e,n){if("function"!=typeof e||n||(n=e,e={}),n&&"function"!=typeof n)throw new Error("invalid callback");return e||(e={}),function(t,e,n,r){try{if(Zg(t.address)!==aE(t.privateKey))throw new Error("address/privateKey mismatch");if(iS(t)){const e=t.mnemonic;if(UN.fromMnemonic(e.phrase,null,e.locale).derivePath(e.path||QN).privateKey!=t.privateKey)throw new Error("mnemonic mismatch")}}catch(t){return Promise.reject(t)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=mA(t.privateKey),o=ZN(e);let s=null,a=null,c=null;if(iS(t)){const e=t.mnemonic;s=mA(PN(e.phrase,e.locale||"en")),a=e.path||QN,c=e.locale||"en"}let l=n.client;l||(l="ethers.js");let u=null;u=n.salt?mA(n.salt):YN(32);let h=null;if(n.iv){if(h=mA(n.iv),16!==h.length)throw new Error("invalid iv")}else h=YN(16);let d=null;if(n.uuid){if(d=mA(n.uuid),16!==d.length)throw new Error("invalid uuid")}else d=YN(16);let p=1<<17,f=8,A=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(f=n.scrypt.r),n.scrypt.p&&(A=n.scrypt.p)),qN().scrypt(o,u,p,f,A,64,r).then(e=>{const n=(e=mA(e)).slice(0,16),r=e.slice(16,32),o=e.slice(32,64),g=new(JN().Counter)(h),E=mA(new(JN().ModeOfOperation.ctr)(n,g).encrypt(i)),m=Yg(yA([r,E])),y={address:t.address.substring(2).toLowerCase(),id:tS(d),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:BA(h).substring(2)},ciphertext:BA(E).substring(2),kdf:"scrypt",kdfparams:{salt:BA(u).substring(2),n:p,dklen:32,p:A,r:f},mac:m.substring(2)}};if(s){const t=YN(16),e=new(JN().Counter)(t),n=mA(new(JN().ModeOfOperation.ctr)(o,e).encrypt(s)),r=new Date,i=r.getUTCFullYear()+"-"+XN(r.getUTCMonth()+1,2)+"-"+XN(r.getUTCDate(),2)+"T"+XN(r.getUTCHours(),2)+"-"+XN(r.getUTCMinutes(),2)+"-"+XN(r.getUTCSeconds(),2)+".0Z";y["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+y.address,mnemonicCounter:BA(t).substring(2),mnemonicCiphertext:BA(n).substring(2),path:a,locale:c,version:"0.1"}}return JSON.stringify(y)})}(this,t,e,n)}static createRandom(t){let e=YN(16);t||(t={}),t.extraEntropy&&(e=mA(bA(Yg(yA([e,t.extraEntropy])),0,16)));const n=GN(e,t.locale);return yS.fromMnemonic(n,t.path,t.locale)}static fromEncryptedJson(t,e,n){return AS(t,e,n).then(t=>new yS(t))}static fromEncryptedJsonSync(t,e){return new yS(gS(t,e))}static fromMnemonic(t,e,n){return e||(e=QN),new yS(UN.fromMnemonic(t,null,n).derivePath(e))}}const{Kt:wS,uN:IS}=n,CS={getPublicKey:t=>mA(IS(t,!0)),getAddress:t=>wS(t).toLowerCase(),async sign(t,e){const n=function(t){if(!t)throw new Error("Private key missing");return new yS(t)}(e);return mA(await n.signMessage(t))},async verify(t,e,n){const r="string"==typeof n?n:BA(n),i=function(t,e){return cE(XM(t),e)}(t,e);return i.toLowerCase()===r.toLowerCase()}};const BS={[JE]:CS};s(1357);Event;const TS=["TLS_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_128_GCM_SHA256"],bS="node"===rw()?U:U.filter(t=>"X25519"!==t);function DS(){return{cipherSuites:TS,namedCurves:bS}}async function MS(t){const e=await async function(t){if(t instanceof ArrayBuffer)return new Uint8Array(t);if(t instanceof Uint8Array||"object"==typeof t&&t&&"buffer"in t)return t;if("string"==typeof t)return jy(t);if("undefined"!=typeof Blob&&t instanceof Blob)return new Uint8Array(await t.arrayBuffer());throw new Error("unsupported data: "+String(t))}(t),{messages:n}=fy.decode(e);for(const t of n)await NS.call(this,t)}function NS(t){if(this.logger?.trace({msg:t},"received message"),t.connectionTerminationAlert){const e=IM.fromProto(t.connectionTerminationAlert);return this.logger?.warn({err:"ERROR_NO_ERROR"!==e.code?e:void 0},"received connection termination alert"),void this.dispatchRPCEvent("connection-terminated",e)}const e=function(t){if(t.requestError)return{direction:"response",type:"error"};for(const e in t){if(!t[e])continue;const n=Xy(e);if(n)return n}}(t);if(e){if("response"===e.direction&&"error"===e.type)return void this.dispatchRPCEvent("rpc-response",{id:t.id,error:IM.fromProto(t.requestError)});const n=`${e.type}Response`;return"response"===e.direction?void this.dispatchRPCEvent("rpc-response",{id:t.id,type:e.type,data:t[n]}):this.isInitialised||"init"===e.type?new Promise((r,i)=>{this.dispatchRPCEvent("rpc-request",{requestId:t.id,type:e.type,data:t[Zy(e.type)],respond:o=>this.isOpen?"code"in o?(i(o),this.sendMessage({id:t.id,requestError:o.toProto()})):(r(),this.sendMessage({id:t.id,[n]:o})):(this.logger?.debug({type:e.type,res:o},"connection closed before responding"),void i(new Error("connection closed")))})}):(this.logger.warn({type:e.type},"RPC request received before initialisation"),void this.sendMessage({id:t.id,requestError:IM.badRequest("Initialise connection first").toProto()}))}t.tunnelMessage?this.dispatchRPCEvent("tunnel-message",t.tunnelMessage):t.tunnelDisconnectEvent?this.dispatchRPCEvent("tunnel-disconnect-event",t.tunnelDisconnectEvent):this.logger.warn({msg:t},"unhandled message")}TLS_ADDITIONAL_ROOT_CA_LIST.push("-----BEGIN CERTIFICATE-----\nMIIEszCCA5ugAwIBAgIQCyWUIs7ZgSoVoE6ZUooO+jANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xNzExMDIxMjI0MzNaFw0yNzExMDIxMjI0MzNaMGAxCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xHzAdBgNVBAMTFlJhcGlkU1NMIFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQC/uVklRBI1FuJdUEkFCuDL/I3aJQiaZ6aibRHj\nap/ap9zy1aYNrphe7YcaNwMoPsZvXDR+hNJOo9gbgOYVTPq8gXc84I75YKOHiVA4\nNrJJQZ6p2sJQyqx60HkEIjzIN+1LQLfXTlpuznToOa1hyTD0yyitFyOYwURM+/CI\n8FNFMpBhw22hpeAQkOOLmsqT5QZJYeik7qlvn8gfD+XdDnk3kkuuu0eG+vuyrSGr\n5uX5LRhFWlv1zFQDch/EKmd163m6z/ycx/qLa9zyvILc7cQpb+k7TLra9WE17YPS\nn9ANjG+ECo9PDW3N9lwhKQCNvw1gGoguyCQu7HE7BnW8eSSFAgMBAAGjggFmMIIB\nYjAdBgNVHQ4EFgQUDNtsgkkPSmcKuBTuesRIUojrVjgwHwYDVR0jBBgwFoAUTiJU\nIBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\nAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB\nBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud\nHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds\nb2JhbFJvb3RHMi5jcmwwYwYDVR0gBFwwWjA3BglghkgBhv1sAQEwKjAoBggrBgEF\nBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw\nCAYGZ4EMAQIBMAgGBmeBDAECAjANBgkqhkiG9w0BAQsFAAOCAQEAGUSlOb4K3Wtm\nSlbmE50UYBHXM0SKXPqHMzk6XQUpCheF/4qU8aOhajsyRQFDV1ih/uPIg7YHRtFi\nCTq4G+zb43X1T77nJgSOI9pq/TqCwtukZ7u9VLL3JAq3Wdy2moKLvvC8tVmRzkAe\n0xQCkRKIjbBG80MSyDX/R4uYgj6ZiNT/Zg6GI6RofgqgpDdssLc0XIRQEotxIZcK\nzP3pGJ9FCbMHmMLLyuBd+uCWvVcF2ogYAawufChS/PT61D9rqzPRS5I2uqa3tmIT\n44JhJgWhBnFMb7AGQkvNq9KNS9dd3GWc17H/dXa1enoxzWjE0hBdFjxPhUb0W3wi\n8o34/m8Fxw==\n-----END CERTIFICATE-----");class SS{eventTarget=new EventTarget;socket;logger;metadata;isInitialised=!1;constructor(t,e,n){this.socket=t,this.metadata=e,this.logger=n,t.addEventListener("error",t=>{const e=IM.fromError(t.error||new Error(t.message),"ERROR_NETWORK_ERROR");this.dispatchRPCEvent("connection-terminated",e)}),t.addEventListener("close",()=>this.dispatchRPCEvent("connection-terminated",new IM("ERROR_NO_ERROR","connection closed"))),t.addEventListener("message",async({data:t})=>{try{await MS.call(this,t)}catch(t){this.logger.error({err:t},"error processing message")}})}get isOpen(){return this.socket.readyState===this.socket.OPEN}get isClosed(){return this.socket.readyState===this.socket.CLOSED||this.socket.readyState===this.socket.CLOSING}async sendMessage(...t){if(this.isClosed)throw new IM("ERROR_NETWORK_ERROR","Connection closed, cannot send message");if(!this.isOpen)throw new IM("ERROR_NETWORK_ERROR","Wait for connection to open before sending message");const e=tw(...t),n=fy.encode(e).finish();return this.logger.trace({msg:e},"sending messages"),"sendPromise"in this.socket&&this.socket.sendPromise?await this.socket.sendPromise(n):this.socket.send(n),e}dispatchRPCEvent(t,e){const n=function(t,e){const n=new Event(t);return n.data=e,n}(t,e);this.eventTarget.dispatchEvent(n)}addEventListener(t,e){this.eventTarget.addEventListener(t,e)}removeEventListener(t,e){this.eventTarget.removeEventListener(t,e)}async terminateConnection(t){if(!this.isClosed)try{const e=t?IM.fromError(t):new IM("ERROR_NO_ERROR","");this.dispatchRPCEvent("connection-terminated",e),this.isOpen&&await this.sendMessage({connectionTerminationAlert:e.toProto()})}catch(t){this.logger?.error({err:t},"error terminating connection")}finally{this.socket.close()}}}function vS(t){return new WebSocket(t)}const{K3:_S}=n;class LS extends SS{waitForInitPromise;initResponse;constructor({url:t,initMessages:e=[],signatureType:n=Iy.signatureType,logger:r=lw,authRequest:i,makeWebSocket:o=vS}){const s={...Iy,signatureType:n,auth:i},a=tw({initRequest:s},...e),c=fy.encode(a).finish(),l=_S.encode(c);(t=new URL(t.toString())).searchParams.set("messages",l),super(o(t),s,r);const u=a.messages[0].id;this.waitForInitPromise=this.waitForResponse(u,By).then(t=>{r.info("client initialised"),this.isInitialised=!0,this.initResponse=t}),this.waitForInitPromise.catch(()=>{}),this.addEventListener("connection-terminated",t=>r.info({err:t.data},"connection terminated"))}async rpc(t,e,n=9e4){const r=qy();this.logger.debug({type:t,id:r},"sending rpc request");const i=Date.now();try{const i=this.waitForResponse(r,n);return await this.sendMessage({id:r,[Zy(t)]:e}),await i}finally{const e=Date.now()-i;this.logger.debug({type:t,timeTakenMs:e},"received rpc response")}}waitForResponse(t,e=9e4){if(this.isClosed)throw new IM("ERROR_NETWORK_ERROR","Client connection already closed");return new Promise((n,r)=>{const i=e=>{e.data.id===t&&(a(),"error"in e.data?r(e.data.error):n(e.data.data))},o=t=>{a(),"ERROR_NO_ERROR"!==t.data.code?r(t.data):r(new IM("ERROR_NETWORK_ERROR",t.data.message,t.data.data))},s=setTimeout(()=>{a(),r(new IM("ERROR_TIMEOUT",`RPC request timed out after ${e}ms`,{id:t}))},e),a=()=>{clearTimeout(s),this.removeEventListener("rpc-response",i),this.removeEventListener("connection-terminated",o)};this.addEventListener("rpc-response",i),this.addEventListener("connection-terminated",o)})}waitForInit=()=>{if(this.isClosed)throw new IM("ERROR_NETWORK_ERROR","Client connection already closed");return this.waitForInitPromise}}var xS;!function(t){t.AssignmentExpression="AssignmentExpression",t.AssignmentPattern="AssignmentPattern",t.ArrayExpression="ArrayExpression",t.ArrayPattern="ArrayPattern",t.ArrowFunctionExpression="ArrowFunctionExpression",t.AwaitExpression="AwaitExpression",t.BlockStatement="BlockStatement",t.BinaryExpression="BinaryExpression",t.BreakStatement="BreakStatement",t.CallExpression="CallExpression",t.CatchClause="CatchClause",t.ChainExpression="ChainExpression",t.ClassBody="ClassBody",t.ClassDeclaration="ClassDeclaration",t.ClassExpression="ClassExpression",t.ConditionalExpression="ConditionalExpression",t.ContinueStatement="ContinueStatement",t.Decorator="Decorator",t.DoWhileStatement="DoWhileStatement",t.DebuggerStatement="DebuggerStatement",t.EmptyStatement="EmptyStatement",t.ExportAllDeclaration="ExportAllDeclaration",t.ExportDefaultDeclaration="ExportDefaultDeclaration",t.ExportNamedDeclaration="ExportNamedDeclaration",t.ExportSpecifier="ExportSpecifier",t.ExpressionStatement="ExpressionStatement",t.ForStatement="ForStatement",t.ForOfStatement="ForOfStatement",t.ForInStatement="ForInStatement",t.FunctionDeclaration="FunctionDeclaration",t.FunctionExpression="FunctionExpression",t.Identifier="Identifier",t.IfStatement="IfStatement",t.ImportAttribute="ImportAttribute",t.ImportExpression="ImportExpression",t.ImportDeclaration="ImportDeclaration",t.ImportDefaultSpecifier="ImportDefaultSpecifier",t.ImportNamespaceSpecifier="ImportNamespaceSpecifier",t.ImportSpecifier="ImportSpecifier",t.Literal="Literal",t.LabeledStatement="LabeledStatement",t.LogicalExpression="LogicalExpression",t.MemberExpression="MemberExpression",t.MetaProperty="MetaProperty",t.MethodDefinition="MethodDefinition",t.NewExpression="NewExpression",t.ObjectExpression="ObjectExpression",t.ObjectPattern="ObjectPattern",t.Program="Program",t.Property="Property",t.PrivateIdentifier="PrivateIdentifier",t.RestElement="RestElement",t.ReturnStatement="ReturnStatement",t.SequenceExpression="SequenceExpression",t.SpreadElement="SpreadElement",t.StaticBlock="StaticBlock",t.Super="Super",t.SwitchCase="SwitchCase",t.SwitchStatement="SwitchStatement",t.TaggedTemplateExpression="TaggedTemplateExpression",t.TemplateElement="TemplateElement",t.TemplateLiteral="TemplateLiteral",t.ThisExpression="ThisExpression",t.ThrowStatement="ThrowStatement",t.TryStatement="TryStatement",t.UnaryExpression="UnaryExpression",t.UpdateExpression="UpdateExpression",t.VariableDeclaration="VariableDeclaration",t.VariableDeclarator="VariableDeclarator",t.WhileStatement="WhileStatement",t.WithStatement="WithStatement",t.YieldExpression="YieldExpression"}(xS||(xS={}));class RS{constructor(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}insertInnerComments(t,e){if(t.type===xS.BlockStatement&&0===t.body.length){const n=[];for(let t=this.leading.length-1;t>=0;--t){const r=this.leading[t];e.end.offset>=r.start&&(n.unshift(r.comment),this.leading.splice(t,1),this.trailing.splice(t,1))}n.length&&(t.innerComments=n)}}findTrailingComments(t){let e=[];if(this.trailing.length>0){for(let n=this.trailing.length-1;n>=0;--n){const r=this.trailing[n];r.start>=t.end.offset&&e.unshift(r.comment)}return this.trailing.length=0,e}const n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){const r=n.node.trailingComments[0];r&&r.range[0]>=t.end.offset&&(e=n.node.trailingComments,delete n.node.trailingComments)}return e}findLeadingComments(t){const e=[];let n;for(;this.stack.length>0;){const e=this.stack[this.stack.length-1];if(!(e&&e.start>=t.start.offset))break;n=e.node,this.stack.pop()}if(n){for(let r=(n.leadingComments?n.leadingComments.length:0)-1;r>=0;--r){const i=n.leadingComments[r];i.range[1]<=t.start.offset&&(e.unshift(i),n.leadingComments.splice(r,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,e}for(let n=this.leading.length-1;n>=0;--n){const r=this.leading[n];r.start<=t.start.offset&&(e.unshift(r.comment),this.leading.splice(n,1))}return e}visitNode(t,e){if(t.type===xS.Program&&t.body.length>0)return;this.insertInnerComments(t,e);const n=this.findTrailingComments(e),r=this.findLeadingComments(e);r.length>0&&(t.leadingComments=r),n.length>0&&(t.trailingComments=n),this.stack.push({node:t,start:e.start.offset})}visitComment(t,e){const n="L"===t.type[0]?"Line":"Block",r={type:n,value:t.value};if(t.range&&(r.range=t.range),t.loc&&(r.loc=t.loc),this.comments.push(r),this.attach){const r={comment:{type:n,value:t.value,range:[e.start.offset,e.end.offset]},start:e.start.offset};t.loc&&(r.comment.loc=t.loc),t.type=n,this.leading.push(r),this.trailing.push(r)}}visit(t,e){"LineComment"===t.type||"BlockComment"===t.type?this.visitComment(t,e):this.attach&&this.visitNode(t,e)}}const FS={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD46\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E\uDC5F\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},OS={fromCodePoint:t=>t<65536?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10))+String.fromCharCode(56320+(t-65536&1023)),isStringWellFormedUnicode(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(n>=55296&&n<=56319){if(e===t.length-1)return!1;if(e++,n=t.charCodeAt(e),n<56320&&n>57343)return!1}else if(n>=56320&&n<=57343)return!1}return!0},isWhiteSpace:t=>32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0,isLineTerminator:t=>10===t||13===t||8232===t||8233===t,isIdentifierStart:t=>36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&FS.NonAsciiIdentifierStart.test(OS.fromCodePoint(t)),isIdentifierPart:t=>36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&FS.NonAsciiIdentifierPart.test(OS.fromCodePoint(t)),isDecimalDigit:t=>t>=48&&t<=57,isDecimalDigitChar:t=>1===t.length&&OS.isDecimalDigit(t.charCodeAt(0)),isHexDigit:t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,isHexDigitChar:t=>1===t.length&&OS.isHexDigit(t.charCodeAt(0)),isOctalDigit:t=>t>=48&&t<=55,isOctalDigitChar:t=>1===t.length&&OS.isOctalDigit(t.charCodeAt(0))};var kS;!function(t){t.JSXAttribute="JSXAttribute",t.JSXClosingElement="JSXClosingElement",t.JSXClosingFragment="JSXClosingFragment",t.JSXElement="JSXElement",t.JSXEmptyExpression="JSXEmptyExpression",t.JSXExpressionContainer="JSXExpressionContainer",t.JSXIdentifier="JSXIdentifier",t.JSXMemberExpression="JSXMemberExpression",t.JSXNamespacedName="JSXNamespacedName",t.JSXOpeningElement="JSXOpeningElement",t.JSXOpeningFragment="JSXOpeningFragment",t.JSXSpreadAttribute="JSXSpreadAttribute",t.JSXText="JSXText"}(kS||(kS={}));class QS{constructor(t){this.type=kS.JSXClosingElement,this.name=t}}class US{constructor(){this.type=kS.JSXClosingFragment}}class PS{constructor(t,e,n){this.type=kS.JSXElement,this.openingElement=t,this.children=e,this.closingElement=n}}class GS{constructor(){this.type=kS.JSXEmptyExpression}}class VS{constructor(t){this.type=kS.JSXExpressionContainer,this.expression=t}}class HS{constructor(t){this.type=kS.JSXIdentifier,this.name=t}}class jS{constructor(t,e){this.type=kS.JSXMemberExpression,this.object=t,this.property=e}}class YS{constructor(t,e){this.type=kS.JSXAttribute,this.name=t,this.value=e}}class zS{constructor(t,e){this.type=kS.JSXNamespacedName,this.namespace=t,this.name=e}}class JS{constructor(t,e,n){this.type=kS.JSXOpeningElement,this.name=t,this.selfClosing=e,this.attributes=n}}class WS{constructor(t){this.type=kS.JSXOpeningFragment,this.selfClosing=t}}class qS{constructor(t){this.type=kS.JSXSpreadAttribute,this.argument=t}}class KS{constructor(t,e){this.type=kS.JSXText,this.value=t,this.raw=e}}class XS{constructor(t){this.type=xS.ArrayExpression,this.elements=t}}class ZS{constructor(t){this.type=xS.ArrayPattern,this.elements=t}}class $S{constructor(t,e,n,r){this.type=xS.ArrowFunctionExpression,this.id=null,this.params=t,this.body=e,this.generator=!1,this.expression=n,this.async=r}}class tv{constructor(t,e,n){this.type=xS.AssignmentExpression,this.operator=t,this.left=e,this.right=n}}class ev{constructor(t,e){this.type=xS.AssignmentPattern,this.left=t,this.right=e}}class nv{constructor(t,e,n,r){this.type=xS.FunctionDeclaration,this.id=t,this.params=e,this.body=n,this.generator=r,this.expression=!1,this.async=!0}}class rv{constructor(t){this.type=xS.AwaitExpression,this.argument=t}}class iv{constructor(t,e,n){this.type=xS.Literal,this.value=t,this.raw=e,this.bigint=n}}class ov{constructor(t,e,n){this.type=xS.BinaryExpression,this.operator=t,this.left=e,this.right=n}}class sv{constructor(t){this.type=xS.BlockStatement,this.body=t}}class av{constructor(t){this.type=xS.BreakStatement,this.label=t}}class cv{constructor(t,e,n){this.type=xS.CallExpression,this.callee=t,this.arguments=e,this.optional=n}}class lv{constructor(t,e){this.type=xS.CatchClause,this.param=t,this.body=e}}class uv{constructor(t){this.type=xS.ChainExpression,this.expression=t}}class hv{constructor(t){this.type=xS.ClassBody,this.body=t}}class dv{constructor(t,e,n,r){this.type=xS.ClassDeclaration,this.id=t,this.superClass=e,this.body=n,this.decorators=r}}class pv{constructor(t,e,n,r){this.type=xS.ClassExpression,this.id=t,this.superClass=e,this.body=n,this.decorators=r}}class fv{constructor(t,e,n){this.type=xS.ConditionalExpression,this.test=t,this.consequent=e,this.alternate=n}}class Av{constructor(t){this.type=xS.ContinueStatement,this.label=t}}class gv{constructor(){this.type=xS.DebuggerStatement}}class Ev{constructor(t){this.type=xS.Decorator,this.expression=t}}class mv{constructor(t,e){this.type=xS.ExpressionStatement,this.expression=t,this.directive=e}}class yv{constructor(t,e){this.type=xS.DoWhileStatement,this.body=t,this.test=e}}class wv{constructor(){this.type=xS.EmptyStatement}}class Iv{constructor(t,e,n){this.type=xS.ExportAllDeclaration,this.source=t,this.exported=e,this.assertions=n}}class Cv{constructor(t){this.type=xS.ExportDefaultDeclaration,this.declaration=t}}class Bv{constructor(t,e,n,r){this.type=xS.ExportNamedDeclaration,this.declaration=t,this.specifiers=e,this.source=n,this.assertions=r}}class Tv{constructor(t,e){this.type=xS.ExportSpecifier,this.exported=e,this.local=t}}class bv{constructor(t){this.type=xS.ExpressionStatement,this.expression=t}}class Dv{constructor(t,e,n){this.type=xS.ForInStatement,this.left=t,this.right=e,this.body=n,this.each=!1}}class Mv{constructor(t,e,n,r){this.type=xS.ForOfStatement,this.await=r,this.left=t,this.right=e,this.body=n}}class Nv{constructor(t,e,n,r){this.type=xS.ForStatement,this.init=t,this.test=e,this.update=n,this.body=r}}class Sv{constructor(t,e,n,r){this.type=xS.FunctionDeclaration,this.id=t,this.params=e,this.body=n,this.generator=r,this.expression=!1,this.async=!1}}class vv{constructor(t,e,n,r,i){this.type=xS.FunctionExpression,this.id=t,this.params=e,this.body=n,this.generator=r,this.expression=!1,this.async=i}}class _v{constructor(t){this.type=xS.Identifier,this.name=t}}class Lv{constructor(t,e,n){this.type=xS.IfStatement,this.test=t,this.consequent=e,this.alternate=n}}class xv{constructor(t,e){this.type=xS.ImportAttribute,this.key=t,this.value=e}}class Rv{constructor(t,e){this.type=xS.ImportExpression,this.source=t,this.attributes=e}}class Fv{constructor(t,e,n){this.type=xS.ImportDeclaration,this.specifiers=t,this.source=e,this.assertions=n}}class Ov{constructor(t){this.type=xS.ImportDefaultSpecifier,this.local=t}}class kv{constructor(t){this.type=xS.ImportNamespaceSpecifier,this.local=t}}class Qv{constructor(t,e){this.type=xS.ImportSpecifier,this.local=t,this.imported=e}}class Uv{constructor(t,e){this.type=xS.LabeledStatement,this.label=t,this.body=e}}class Pv{constructor(t,e){this.type=xS.Literal,this.value=t,this.raw=e}}class Gv{constructor(t,e,n){this.type=xS.LogicalExpression,this.operator=t,this.left=e,this.right=n}}class Vv{constructor(t,e,n,r){this.type=xS.MemberExpression,this.computed=t,this.object=e,this.property=n,this.optional=r}}class Hv{constructor(t,e){this.type=xS.MetaProperty,this.meta=t,this.property=e}}class jv{constructor(t,e,n,r,i,o){this.type=xS.MethodDefinition,this.key=t,this.computed=e,this.value=n,this.kind=r,this.static=i,this.decorators=o}}class Yv{constructor(t){this.type=xS.Program,this.body=t,this.sourceType="module"}}class zv{constructor(t,e){this.type=xS.NewExpression,this.callee=t,this.arguments=e}}class Jv{constructor(t){this.type=xS.ObjectExpression,this.properties=t}}class Wv{constructor(t){this.type=xS.ObjectPattern,this.properties=t}}class qv{constructor(t){this.type=xS.PrivateIdentifier,this.name=t}}class Kv{constructor(t,e,n,r,i,o){this.type=xS.Property,this.key=e,this.computed=n,this.value=r,this.kind=t,this.method=i,this.shorthand=o}}class Xv{constructor(t,e,n,r,i){this.type=xS.Property,this.key=t,this.computed=e,this.value=n,this.static=r,this.decorators=i}}class Zv{constructor(t,e,n,r){this.type=xS.Literal,this.value=t,this.raw=e,this.regex={pattern:n,flags:r}}}class $v{constructor(t){this.type=xS.RestElement,this.argument=t}}class t_{constructor(t){this.type=xS.ReturnStatement,this.argument=t}}class e_{constructor(t){this.type=xS.Program,this.body=t,this.sourceType="script"}}class n_{constructor(t){this.type=xS.SequenceExpression,this.expressions=t}}class r_{constructor(t){this.type=xS.SpreadElement,this.argument=t}}class i_{constructor(t){this.type=xS.StaticBlock,this.body=t}}class o_{constructor(){this.type=xS.Super}}class s_{constructor(t,e){this.type=xS.SwitchCase,this.test=t,this.consequent=e}}class a_{constructor(t,e){this.type=xS.SwitchStatement,this.discriminant=t,this.cases=e}}class c_{constructor(t,e){this.type=xS.TaggedTemplateExpression,this.tag=t,this.quasi=e}}class l_{constructor(t,e){this.type=xS.TemplateElement,this.value=t,this.tail=e}}class u_{constructor(t,e){this.type=xS.TemplateLiteral,this.quasis=t,this.expressions=e}}class h_{constructor(){this.type=xS.ThisExpression}}class d_{constructor(t){this.type=xS.ThrowStatement,this.argument=t}}class p_{constructor(t,e,n){this.type=xS.TryStatement,this.block=t,this.handler=e,this.finalizer=n}}class f_{constructor(t,e){this.type=xS.UnaryExpression,this.operator=t,this.argument=e,this.prefix=!0}}class A_{constructor(t,e,n){this.type=xS.UpdateExpression,this.operator=t,this.argument=e,this.prefix=n}}class g_{constructor(t,e){this.type=xS.VariableDeclaration,this.declarations=t,this.kind=e}}class E_{constructor(t,e){this.type=xS.VariableDeclarator,this.id=t,this.init=e}}class m_{constructor(t,e){this.type=xS.WhileStatement,this.test=t,this.body=e}}class y_{constructor(t,e){this.type=xS.WithStatement,this.object=t,this.body=e}}class w_{constructor(t,e){this.type=xS.YieldExpression,this.argument=t,this.delegate=e}}function I_(t,e){if(!t)throw new Error("ASSERT: "+e)}class C_{constructor(){this.errors=[],this.tolerant=!1}recordError(t){this.errors.push(t)}tolerate(t){if(!this.tolerant)throw t;this.recordError(t)}constructError(t,e){let n=new Error(t);try{throw n}catch(t){Object.create&&Object.defineProperty&&(n=Object.create(t),Object.defineProperty(n,"column",{value:e}))}return n}createError(t,e,n,r){const i="Line "+e+": "+r,o=this.constructError(i,n);o.index=t,o.lineNumber=e,o.description=r;return o}throwError(t,e,n,r){throw this.createError(t,e,n,r)}tolerateError(t,e,n,r){const i=this.createError(t,e,n,r);if(!this.tolerant)throw i;this.recordError(i)}}const B_="Async functions can only be declared at the top level or inside a block.",T_="Unexpected token",b_="Getter must not have any formal parameters",D_="Setter must have exactly one formal parameter",M_="Setter function argument must not be a rest parameter",N_="Cannot use 'import.meta' outside a module",S_="Class constructor may not be an async method",v_="Class constructor may not be a private method",__="Class constructor may not be an accessor",L_="Missing initializer in %0 declaration",x_="Unexpected token =",R_="Unexpected token =",F_="Duplicate binding %0",O_="A class may only have one constructor",k_="Duplicate parameter name not allowed in this context",Q_="Duplicate __proto__ fields are not allowed in object literals",U_="%0 loop variable declaration may not have an initializer",P_="Generator declarations are not allowed in legacy contexts",G_="Illegal break statement",V_="Illegal continue statement",H_="Unexpected token",j_="Unexpected token",Y_="Illegal 'use strict' directive in function with non-simple parameter list",z_="Illegal return statement",J_="Keyword must not contain escaped characters",W_="Invalid hexadecimal escape sequence",q_="Invalid left-hand side in assignment",K_="Invalid left-hand side in for-in",X_="Invalid left-hand side in for-loop",Z_="Unexpected token",$_="Invalid regular expression",tL="Invalid tagged template on optional chain",eL="Invalid Unicode escape sequence",nL="let is disallowed as a lexically bound name",rL="Unexpected token",iL="More than one default clause in switch statement",oL="Illegal newline after throw",sL="Unexpected token",aL="The `as` and `from` contextual keywords must not contain Unicode escape sequences.",cL="Missing catch or finally after try",lL="Decorators must not be followed by a semicolon.",uL="Numeric separator must be exactly one underscore",hL="Numeric separator is not allowed here",dL="Rest parameter must be last formal parameter",pL="Unexpected token",fL="%0 '%1' has already been declared",AL="Classes may not have static property named prototype",gL="Catch variable may not be eval or arguments in strict mode",EL="Delete of an unqualified identifier in strict mode.",mL="In strict mode code, functions can only be declared at top level or inside a block",yL="Function name may not be eval or arguments in strict mode",wL="Assignment to eval or arguments is not allowed in strict mode",IL="Postfix increment/decrement may not have eval or arguments operand in strict mode",CL="Prefix increment/decrement may not have eval or arguments operand in strict mode",BL="Strict mode code may not include a with statement",TL="Octal literals are not allowed in strict mode.",bL="Parameter name eval or arguments is not allowed in strict mode",DL="Use of future reserved word in strict mode",ML="Variable name may not be eval or arguments in strict mode",NL="Octal literals are not allowed in template strings.",SL="\\8 and \\9 are not allowed in template strings.",vL="Unexpected end of input",_L="Unexpected identifier",LL="Unexpected number",xL="Unexpected reserved word",RL="Unexpected string",FL="'super' keyword unexpected here",OL="Unexpected quasi %0",kL="Unexpected token %0",QL="Unexpected token ILLEGAL",UL="Undefined label '%0'",PL="Invalid regular expression: missing /";function GL(t){return"0123456789abcdef".indexOf(t.toLowerCase())}function VL(t){return"01234567".indexOf(t)}class HL{constructor(t,e){this.source=t,this.errorHandler=e,this.trackComment=!1,this.isModule=!1,this.length=t.length,this.index=0,this.lineNumber=t.length>0?1:0,this.lineStart=0,this.curlyStack=[]}saveState(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart,curlyStack:this.curlyStack.slice()}}restoreState(t){this.index=t.index,this.lineNumber=t.lineNumber,this.lineStart=t.lineStart,this.curlyStack=t.curlyStack}eof(){return this.index>=this.length}throwUnexpectedToken(t=QL){return this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,t)}tolerateUnexpectedToken(t=QL){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,t)}skipSingleLineComment(t){let e,n,r=[];for(this.trackComment&&(r=[],e=this.index-t,n={start:{line:this.lineNumber,column:this.index-this.lineStart-t},end:{}});!this.eof();){const i=this.source.charCodeAt(this.index);if(++this.index,OS.isLineTerminator(i)){if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart-1};const i={multiLine:!1,slice:[e+t,this.index-1],range:[e,this.index-1],loc:n};r.push(i)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,r}}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};const i={multiLine:!1,slice:[e+t,this.index],range:[e,this.index],loc:n};r.push(i)}return r}skipMultiLineComment(){let t,e,n=[];for(this.trackComment&&(n=[],t=this.index-2,e={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){const r=this.source.charCodeAt(this.index);if(OS.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};const r={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:e};n.push(r)}return n}++this.index}else++this.index}if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};const r={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:e};n.push(r)}return this.tolerateUnexpectedToken(),n}scanComments(){let t;this.trackComment&&(t=[]);let e=0===this.index;for(;!this.eof();){let n=this.source.charCodeAt(this.index);if(OS.isWhiteSpace(n))++this.index;else if(OS.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,e=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;const n=this.skipSingleLineComment(2);this.trackComment&&(t=t.concat(n)),e=!0}else{if(42!==n)break;{this.index+=2;const e=this.skipMultiLineComment();this.trackComment&&(t=t.concat(e))}}else if(e&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;{this.index+=3;const e=this.skipSingleLineComment(3);this.trackComment&&(t=t.concat(e))}}else{if(60!==n||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;{this.index+=4;const e=this.skipSingleLineComment(4);this.trackComment&&(t=t.concat(e))}}}return t}isFutureReservedWord(t){switch(t){case"enum":case"export":case"import":case"super":return!0;default:return!1}}isStrictModeReservedWord(t){switch(t){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}isRestrictedWord(t){return"eval"===t||"arguments"===t}isKeyword(t){switch(t.length){case 2:return"if"===t||"in"===t||"do"===t;case 3:return"var"===t||"for"===t||"new"===t||"try"===t||"let"===t;case 4:return"this"===t||"else"===t||"case"===t||"void"===t||"with"===t||"enum"===t;case 5:return"while"===t||"break"===t||"catch"===t||"throw"===t||"const"===t||"yield"===t||"class"===t||"super"===t;case 6:return"return"===t||"typeof"===t||"delete"===t||"switch"===t||"export"===t||"import"===t;case 7:return"default"===t||"finally"===t||"extends"===t;case 8:return"function"===t||"continue"===t||"debugger"===t;case 10:return"instanceof"===t;default:return!1}}codePointAt(t){let e=this.source.charCodeAt(t);if(e>=55296&&e<=56319){const n=this.source.charCodeAt(t+1);if(n>=56320&&n<=57343){e=1024*(e-55296)+n-56320+65536}}return e}scanHexEscape(t){const e="u"===t?4:2;let n=0;for(let t=0;t<e;++t){if(this.eof()||!OS.isHexDigit(this.source.charCodeAt(this.index)))return null;n=16*n+GL(this.source[this.index++])}return String.fromCharCode(n)}tryToScanUnicodeCodePointEscape(){let t=this.source[this.index],e=0;if("}"===t)return null;for(;!this.eof()&&(t=this.source[this.index++],OS.isHexDigit(t.charCodeAt(0)));)e=16*e+GL(t);return e>1114111||"}"!==t?null:OS.fromCodePoint(e)}scanUnicodeCodePointEscape(){const t=this.tryToScanUnicodeCodePointEscape();return null===t?this.throwUnexpectedToken():t}getIdentifier(){const t=this.index++;for(;!this.eof();){const e=this.source.charCodeAt(this.index);if(92===e)return this.index=t,this.getComplexIdentifier();if(e>=55296&&e<57343)return this.index=t,this.getComplexIdentifier();if(!OS.isIdentifierPart(e))break;++this.index}return this.source.slice(t,this.index)}getComplexIdentifier(){let t,e=this.codePointAt(this.index),n=OS.fromCodePoint(e);for(this.index+=n.length,92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):(t=this.scanHexEscape("u"),null!==t&&"\\"!==t&&OS.isIdentifierStart(t.charCodeAt(0))||this.throwUnexpectedToken()),n=t);!this.eof()&&(e=this.codePointAt(this.index),OS.isIdentifierPart(e));)t=OS.fromCodePoint(e),n+=t,this.index+=t.length,92===e&&(n=n.substr(0,n.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):(t=this.scanHexEscape("u"),null!==t&&"\\"!==t&&OS.isIdentifierPart(t.charCodeAt(0))||this.throwUnexpectedToken()),n+=t);return n}octalToDecimal(t){let e="0"!==t,n=VL(t);return!this.eof()&&OS.isOctalDigit(this.source.charCodeAt(this.index))&&(e=!0,n=8*n+VL(this.source[this.index++]),"0123".indexOf(t)>=0&&!this.eof()&&OS.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+VL(this.source[this.index++]))),{code:n,octal:e}}scanIdentifier(){let t;const e=this.index,n=92===this.source.charCodeAt(e),r=n?this.getComplexIdentifier():this.getIdentifier();if(t=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3,3!==t&&e+r.length!==this.index){const t=this.index;this.index=e,this.tolerateUnexpectedToken(J_),this.index=t}return{type:t,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index,escaped:n}}scanPunctuator(){const t=this.index;let e=this.source[this.index];switch(e){case"(":case"{":"{"===e&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,e="...");break;case"}":++this.index,this.curlyStack.pop();break;case"?":++this.index,"?"===this.source[this.index]&&(++this.index,"="===this.source[this.index]?(++this.index,e="??="):e="??"),"."!==this.source[this.index]||/^\d$/.test(this.source[this.index+1])||(++this.index,e="?.");break;case"#":case")":case";":case",":case"[":case"]":case":":case"~":case"@":++this.index;break;default:e=this.source.substr(this.index,4),">>>="===e?this.index+=4:(e=e.substr(0,3),"==="===e||"!=="===e||">>>"===e||"<<="===e||">>="===e||"**="===e||"&&="===e||"||="===e?this.index+=3:(e=e.substr(0,2),"&&"===e||"||"===e||"=="===e||"!="===e||"+="===e||"-="===e||"*="===e||"/="===e||"++"===e||"--"===e||"<<"===e||">>"===e||"&="===e||"|="===e||"^="===e||"%="===e||"<="===e||">="===e||"=>"===e||"**"===e?this.index+=2:(e=this.source[this.index],"<>=!+-*%&|^/".indexOf(e)>=0&&++this.index)))}return this.index===t&&this.throwUnexpectedToken(),{type:7,value:e,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanHexLiteral(t){let e=this.scanLiteralPart(OS.isHexDigitChar);return 0===e.length&&this.throwUnexpectedToken(),"n"===this.source[this.index]?(this.index++,{type:6,value:BigInt("0x"+e),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}):(OS.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+e,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index})}scanBinaryLiteral(t){let e,n=this.scanLiteralPart(t=>"0"===t||"1"===t);return 0===n.length&&this.throwUnexpectedToken(),"n"===this.source[this.index]?(this.index++,{type:6,value:BigInt("0b"+n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}):(this.eof()||(e=this.source.charCodeAt(this.index),(OS.isIdentifierStart(e)||OS.isDecimalDigit(e))&&this.throwUnexpectedToken()),{type:6,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index})}scanOctalLiteral(t,e){let n="",r=!1;return OS.isOctalDigit(t.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index,n+=this.scanLiteralPart(OS.isOctalDigitChar),r||0!==n.length||this.throwUnexpectedToken(),"n"===this.source[this.index]?(this.index++,{type:6,value:BigInt("0o"+n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}):((OS.isIdentifierStart(this.source.charCodeAt(this.index))||OS.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index})}isImplicitOctalLiteral(){for(let t=this.index+1;t<this.length;++t){const e=this.source[t];if("8"===e||"9"===e||"n"===e)return!1;if(!OS.isOctalDigit(e.charCodeAt(0)))return!0}return!0}scanLiteralPart(t){let e="";for("_"===this.source[this.index]&&this.throwUnexpectedToken(hL);this.source[this.index]&&(t(this.source[this.index])||"_"===this.source[this.index]);)"_"!==this.source[this.index]&&(e+=this.source[this.index]),this.index++,"_"===this.source[this.index-1]&&"_"===this.source[this.index]&&this.throwUnexpectedToken(uL);return"_"===this.source[this.index-1]&&this.throwUnexpectedToken(hL),e}scanNumericLiteral(){const t=this.index;let e=this.source[t];I_(OS.isDecimalDigit(e.charCodeAt(0))||"."===e,"Numeric literal must start with a decimal digit or a decimal point");let n="";if("."!==e){if(n=this.source[this.index++],e=this.source[this.index],"0"===n){if("x"===e||"X"===e)return++this.index,this.scanHexLiteral(t);if("b"===e||"B"===e)return++this.index,this.scanBinaryLiteral(t);if("o"===e||"O"===e)return this.scanOctalLiteral(e,t);if(e&&OS.isOctalDigit(e.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(e,t)}this.index--,n=this.scanLiteralPart(OS.isDecimalDigitChar),e=this.source[this.index]}if("."===e&&(n+=this.source[this.index++],n+=this.scanLiteralPart(OS.isDecimalDigitChar),e=this.source[this.index]),"e"===e||"E"===e)n+=this.source[this.index++],e=this.source[this.index],"+"!==e&&"-"!==e||(n+=this.source[this.index++]),OS.isDecimalDigit(this.source.charCodeAt(this.index))?n+=this.scanLiteralPart(OS.isDecimalDigitChar):this.throwUnexpectedToken();else if("n"===e)return n.length>1&&"0"===n[0]&&this.throwUnexpectedToken(),this.index++,{type:6,value:BigInt(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index};return OS.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanStringLiteral(){const t=this.index;let e=this.source[t];I_("'"===e||'"'===e,"String literal must starts with a quote"),++this.index;let n=!1,r="";for(;!this.eof();){let t=this.source[this.index++];if(t===e){e="";break}if("\\"===t)if(t=this.source[this.index++],t&&OS.isLineTerminator(t.charCodeAt(0)))++this.lineNumber,"\r"===t&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(t){case"u":if("{"===this.source[this.index])++this.index,r+=this.scanUnicodeCodePointEscape();else{const e=this.scanHexEscape(t);null===e&&this.throwUnexpectedToken(),r+=e}break;case"x":const e=this.scanHexEscape(t);null===e&&this.throwUnexpectedToken(W_),r+=e;break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=t,this.tolerateUnexpectedToken();break;default:if(t&&OS.isOctalDigit(t.charCodeAt(0))){const e=this.octalToDecimal(t);n=e.octal||n,r+=String.fromCharCode(e.code)}else r+=t}else{if(OS.isLineTerminator(t.charCodeAt(0)))break;r+=t}}return""!==e&&(this.index=t,this.throwUnexpectedToken()),{type:8,value:r,octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanTemplate(){let t="",e=!1;const n=this.index,r="`"===this.source[n];let i=!1,o=null,s=2;for(++this.index;!this.eof();){let n=this.source[this.index++];if("`"===n){s=1,i=!0,e=!0;break}if("$"===n){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,e=!0;break}t+=n}else{if(null!==o)continue;if("\\"===n)if(n=this.source[this.index++],OS.isLineTerminator(n.charCodeAt(0)))++this.lineNumber,"\r"===n&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(n){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+="\t";break;case"u":if("{"===this.source[this.index]){++this.index;const e=this.tryToScanUnicodeCodePointEscape();null===e?o="u":t+=e}else{const e=this.scanHexEscape(n);null===e?o="u":t+=e}break;case"x":const e=this.scanHexEscape(n);null===e?o="x":t+=e;break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:"0"===n?OS.isDecimalDigit(this.source.charCodeAt(this.index))?o="0":t+="\0":OS.isDecimalDigitChar(n)?o=n:t+=n}else OS.isLineTerminator(n.charCodeAt(0))?(++this.lineNumber,"\r"===n&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,t+="\n"):t+=n}}return e||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:10,value:this.source.slice(n+1,this.index-s),cooked:null===o?t:null,head:r,tail:i,notEscapeSequenceHead:o,lineNumber:this.lineNumber,lineStart:this.lineStart,start:n,end:this.index}}testRegExp(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(t,e,n)=>{const r=parseInt(e||n,16);return r>1114111&&this.throwUnexpectedToken($_),r<=65535?String.fromCharCode(r):""}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,""));try{RegExp(n)}catch(t){this.throwUnexpectedToken($_)}try{return new RegExp(t,e)}catch(t){return null}}scanRegExpBody(){let t=this.source[this.index];I_("/"===t,"Regular expression literal must start with a slash");let e=this.source[this.index++],n=!1,r=!1;for(;!this.eof();)if(t=this.source[this.index++],e+=t,"\\"===t)t=this.source[this.index++],OS.isLineTerminator(t.charCodeAt(0))&&this.throwUnexpectedToken(PL),e+=t;else if(OS.isLineTerminator(t.charCodeAt(0)))this.throwUnexpectedToken(PL);else if(n)"]"===t&&(n=!1);else{if("/"===t){r=!0;break}"["===t&&(n=!0)}return r||this.throwUnexpectedToken(PL),e.substr(1,e.length-2)}scanRegExpFlags(){let t="",e="";for(;!this.eof();){let n=this.source[this.index];if(!OS.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())e+=n,t+=n;else if(n=this.source[this.index],"u"===n){++this.index;let n=this.index;const r=this.scanHexEscape("u");if(null!==r)for(e+=r,t+="\\u";n<this.index;++n)t+=this.source[n];else this.index=n,e+="u",t+="\\u";this.tolerateUnexpectedToken()}else t+="\\",this.tolerateUnexpectedToken()}return e}scanRegExp(){const t=this.index,e=this.scanRegExpBody(),n=this.scanRegExpFlags();return{type:9,value:"",pattern:e,flags:n,regex:this.testRegExp(e,n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}lex(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};const t=this.source.charCodeAt(this.index);return OS.isIdentifierStart(t)?this.scanIdentifier():40===t||41===t||59===t?this.scanPunctuator():39===t||34===t?this.scanStringLiteral():46===t?OS.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():OS.isDecimalDigit(t)?this.scanNumericLiteral():96===t||125===t&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():t>=55296&&t<57343&&OS.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()}}const jL={1:"Boolean",2:"<end>",3:"Identifier",4:"Keyword",5:"Null",6:"Numeric",7:"Punctuator",8:"String",9:"RegularExpression",10:"Template"},YL="ArrowParameterPlaceHolder";class zL{constructor(t,e={},n){this.config={range:"boolean"==typeof e.range&&e.range,loc:"boolean"==typeof e.loc&&e.loc,source:null,tokens:"boolean"==typeof e.tokens&&e.tokens,comment:"boolean"==typeof e.comment&&e.comment,tolerant:"boolean"==typeof e.tolerant&&e.tolerant},this.config.loc&&e.source&&null!==e.source&&(this.config.source=String(e.source)),this.delegate=n,this.errorHandler=new C_,this.errorHandler.tolerant=1==this.config.tolerant,this.scanner=new HL(t,this.errorHandler),this.scanner.trackComment=1==this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"??":5,"||":6,"&&":7,"|":8,"^":9,"&":10,"==":11,"!=":11,"===":11,"!==":11,"<":12,">":12,"<=":12,">=":12,"<<":13,">>":13,">>>":13,"+":14,"-":14,"*":15,"/":15,"%":15},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,isAsync:!1,allowIn:!0,allowStrictDirective:!0,allowSuper:!1,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inConstructor:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,inClassConstructor:!1,labelSet:{},strict:!1,decorators:null},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwError(t,...e){const n=e.slice(),r=t.replace(/%(\d)/g,(t,e)=>(I_(e<n.length,"Message reference must be in range"),n[e])),i=this.lastMarker.index,o=this.lastMarker.line,s=this.lastMarker.column+1;throw this.errorHandler.createError(i,o,s,r)}tolerateError(t,...e){const n=e.slice(),r=t.replace(/%(\d)/g,(t,e)=>(I_(e<n.length,"Message reference must be in range"),n[e])),i=this.lastMarker.index,o=this.scanner.lineNumber,s=this.lastMarker.column+1;this.errorHandler.tolerateError(i,o,s,r)}unexpectedTokenError(t,e){let n,r=e||kL;if(t?(e||(r=2===t.type?vL:3===t.type?_L:6===t.type?LL:8===t.type?RL:10===t.type?OL:kL,4===t.type&&(this.scanner.isFutureReservedWord(t.value)?r=xL:this.context.strict&&this.scanner.isStrictModeReservedWord(t.value)&&(r=DL))),n=t.value):n="ILLEGAL",r=r.replace("%0",n),t&&"number"==typeof t.lineNumber){const e=t.start,n=t.lineNumber,i=this.lastMarker.index-this.lastMarker.column,o=t.start-i+1;return this.errorHandler.createError(e,n,o,r)}{const t=this.lastMarker.index,e=this.lastMarker.line,n=this.lastMarker.column+1;return this.errorHandler.createError(t,e,n,r)}}throwUnexpectedToken(t,e){throw this.unexpectedTokenError(t,e)}tolerateUnexpectedToken(t,e){this.errorHandler.tolerate(this.unexpectedTokenError(t,e))}tolerateInvalidLoopStatement(){(this.matchKeyword("class")||this.matchKeyword("function"))&&this.tolerateError(kL,this.lookahead)}collectComments(){if(this.config.comment){const t=this.scanner.scanComments();if(t.length>0&&this.delegate)for(let e=0;e<t.length;++e){const n=t[e],r={type:n.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(n.slice[0],n.slice[1])};this.config.range&&(r.range=n.range),this.config.loc&&(r.loc=n.loc);const i={start:{line:n.loc.start.line,column:n.loc.start.column,offset:n.range[0]},end:{line:n.loc.end.line,column:n.loc.end.column,offset:n.range[1]}};this.delegate(r,i)}}else this.scanner.scanComments()}getTokenRaw(t){return this.scanner.source.slice(t.start,t.end)}convertToken(t){const e={type:jL[t.type],value:this.getTokenRaw(t)};if(this.config.range&&(e.range=[t.start,t.end]),this.config.loc&&(e.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===t.type){const n=t.pattern,r=t.flags;e.regex={pattern:n,flags:r}}return e}nextToken(){const t=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);const e=this.scanner.lex();return this.hasLineTerminator=t.lineNumber!==e.lineNumber,e&&this.context.strict&&3===e.type&&this.scanner.isStrictModeReservedWord(e.value)&&(e.type=4),this.lookahead=e,this.config.tokens&&2!==e.type&&this.tokens.push(this.convertToken(e)),t}nextRegexToken(){this.collectComments();const t=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(t))),this.lookahead=t,this.nextToken(),t}createNode(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}startNode(t,e=0){let n=t.start-t.lineStart,r=t.lineNumber;return n<0&&(n+=e,r--),{index:t.start,line:r,column:n}}finalize(t,e){if(this.config.range&&(e.range=[t.index,this.lastMarker.index]),this.config.loc&&(e.loc={start:{line:t.line,column:t.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(e.loc.source=this.config.source)),this.delegate){const n={start:{line:t.line,column:t.column,offset:t.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(e,n)}return e}expect(t){const e=this.nextToken();7===e.type&&e.value===t||this.throwUnexpectedToken(e)}expectCommaSeparator(){if(this.config.tolerant){const t=this.lookahead;7===t.type&&","===t.value?this.nextToken():7===t.type&&";"===t.value?(this.nextToken(),this.tolerateUnexpectedToken(t)):this.tolerateUnexpectedToken(t,kL)}else this.expect(",")}expectKeyword(t){const e=this.nextToken();4===e.type&&e.value===t||this.throwUnexpectedToken(e)}match(t){return 7===this.lookahead.type&&this.lookahead.value===t}matchKeyword(t){return 4===this.lookahead.type&&this.lookahead.value===t}matchContextualKeyword(t){return 3===this.lookahead.type&&this.lookahead.value===t}matchAssign(){if(7!==this.lookahead.type)return!1;const t=this.lookahead.value;return"="===t||"*="===t||"**="===t||"/="===t||"%="===t||"+="===t||"-="===t||"<<="===t||">>="===t||">>>="===t||"&="===t||"^="===t||"|="===t||"&&="===t||"||="===t||"??="===t}isolateCoverGrammar(t){const e=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;const i=t.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=e,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i}inheritCoverGrammar(t){const e=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;const i=t.call(this);return this.context.isBindingElement=this.context.isBindingElement&&e,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i}consumeSemicolon(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)}parsePrimaryExpression(){const t=this.createNode();let e,n,r;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.isAsync)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(t,new _v(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,TL),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e="bigint"==typeof n.value?this.finalize(t,new iv(n.value,r,n.value.toString())):this.finalize(t,new Pv(n.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(t,new Pv("true"===n.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(t,new Pv(null,r));break;case 10:e=this.parseTemplateLiteral({isTagged:!1});break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(t,new Zv(n.regex,r,n.pattern,n.flags));break;case"#":this.nextToken(),e=this.finalize(t,new qv(this.nextToken().value));break;case"@":let i=this.parseDecorators();this.context.decorators=i,this.parsePrimaryExpression(),this.context.decorators=null,e=this.finalize(t,new qv(this.nextToken().value));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(t,new _v(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(t,new h_)):this.matchKeyword("class")?e=this.parseClassExpression():this.matchKeyword("new")?e=this.parseNewExpression():this.matchImportCall()?e=this.parseImportCall():this.matchImportMeta()?(this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,N_),e=this.parseImportMeta()):e=this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e}parseSpreadElement(){const t=this.createNode();this.expect("...");const e=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(t,new r_(e))}parseArrayInitializer(){const t=this.createNode(),e=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),e.push(null);else if(this.match("...")){const t=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),e.push(t)}else e.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(t,new XS(e))}parsePropertyMethod(t){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;const e=this.context.strict,n=this.context.allowStrictDirective;this.context.allowStrictDirective=t.simple;const r=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&t.firstRestricted&&this.tolerateUnexpectedToken(t.firstRestricted,t.message),this.context.strict&&t.stricted&&this.tolerateUnexpectedToken(t.stricted,t.message),this.context.strict=e,this.context.allowStrictDirective=n,r}parsePropertyMethodFunction(t){const e=this.createNode(),n=this.context.allowYield;this.context.allowYield=!0;const r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(e,new vv(null,r.params,i,t,!1))}parsePropertyMethodAsyncFunction(t){const e=this.createNode(),n=this.context.allowYield,r=this.context.isAsync;this.context.allowYield=!1,this.context.isAsync=!0;const i=this.parseFormalParameters(),o=this.parsePropertyMethod(i);return this.context.allowYield=n,this.context.isAsync=r,this.finalize(e,new vv(null,i.params,o,t,!0))}parseObjectPropertyKey(t=!1){const e=this.createNode(),n=this.nextToken();let r;switch(n.type){case 8:case 6:this.context.strict&&n.octal&&this.tolerateUnexpectedToken(n,TL);const i=this.getTokenRaw(n);r="bigint"==typeof n.value?this.finalize(e,new iv(n.value,i,n.value.toString())):this.finalize(e,new Pv(n.value,i));break;case 3:case 1:case 5:case 4:r=this.finalize(e,t?new qv(n.value):new _v(n.value));break;case 7:"["===n.value?(r=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):r=this.throwUnexpectedToken(n);break;default:r=this.throwUnexpectedToken(n)}return r}isPropertyKey(t,e){return t.type===xS.Identifier&&t.name===e||t.type===xS.Literal&&t.value===e}parseObjectProperty(t){const e=this.createNode(),n=this.lookahead;let r,i=null,o=null,s=!1,a=!1,c=!1,l=!1,u=!1;if(3===n.type){const t=n.value;this.nextToken(),s=this.match("["),l=!(this.hasLineTerminator||"async"!==t||this.match(":")||this.match("(")||this.match(",")),u=this.match("*"),u&&this.nextToken(),i=l?this.parseObjectPropertyKey():this.finalize(e,new _v(t))}else this.match("*")?this.nextToken():(s=this.match("["),i=this.parseObjectPropertyKey());const h=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&h)r="get",s=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,o=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&h)r="set",s=this.match("["),i=this.parseObjectPropertyKey(),o=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&h)r="init",s=this.match("["),i=this.parseObjectPropertyKey(),o=this.parseGeneratorMethod(!1),a=!0;else if(i||this.throwUnexpectedToken(this.lookahead),r="init",this.match(":")&&!l)!s&&this.isPropertyKey(i,"__proto__")&&(t.value&&this.tolerateError(Q_),t.value=!0),this.nextToken(),o=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))o=l?this.parsePropertyMethodAsyncFunction(u):this.parsePropertyMethodFunction(u),a=!0;else if(3===n.type){const t=this.finalize(e,new _v(n.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),c=!0;const n=this.isolateCoverGrammar(this.parseAssignmentExpression);o=this.finalize(e,new ev(t,n))}else c=!0,o=t}else this.throwUnexpectedToken(this.nextToken());return this.finalize(e,new Kv(r,i,s,o,a,c))}parseObjectInitializer(){const t=this.createNode();this.expect("{");const e=[],n={value:!1};for(;!this.match("}");){const t=this.match("...")?this.parseSpreadElement():this.parseObjectProperty(n);e.push(t),this.match("}")||t.method&&!this.match(",")||this.expectCommaSeparator()}return this.expect("}"),this.finalize(t,new Jv(e))}throwTemplateLiteralEarlyErrors(t){switch(t.notEscapeSequenceHead){case"u":return this.throwUnexpectedToken(t,eL);case"x":return this.throwUnexpectedToken(t,W_);case"8":case"9":return this.throwUnexpectedToken(t,SL);default:return this.throwUnexpectedToken(t,NL)}}parseTemplateHead(t){I_(this.lookahead.head,"Template literal must start with a template head");const e=this.createNode(),n=this.nextToken();t.isTagged||null===n.notEscapeSequenceHead||this.throwTemplateLiteralEarlyErrors(n);const r=n.value,i=n.cooked;return this.finalize(e,new l_({raw:r,cooked:i},n.tail))}parseTemplateElement(t){10!==this.lookahead.type&&this.throwUnexpectedToken();const e=this.createNode(),n=this.nextToken();t.isTagged||null===n.notEscapeSequenceHead||this.throwTemplateLiteralEarlyErrors(n);const r=n.value,i=n.cooked;return this.finalize(e,new l_({raw:r,cooked:i},n.tail))}parseTemplateLiteral(t){const e=this.createNode(),n=[],r=[];let i=this.parseTemplateHead(t);for(r.push(i);!i.tail;)n.push(this.parseExpression()),i=this.parseTemplateElement(t),r.push(i);return this.finalize(e,new u_(r,n))}reinterpretExpressionAsPattern(t){switch(t.type){case xS.Identifier:case xS.MemberExpression:case xS.RestElement:case xS.AssignmentPattern:break;case xS.SpreadElement:t.type=xS.RestElement,this.reinterpretExpressionAsPattern(t.argument);break;case xS.ArrayExpression:t.type=xS.ArrayPattern;for(let e=0;e<t.elements.length;e++)null!==t.elements[e]&&this.reinterpretExpressionAsPattern(t.elements[e]);break;case xS.ObjectExpression:t.type=xS.ObjectPattern;for(let e=0;e<t.properties.length;e++){const n=t.properties[e];this.reinterpretExpressionAsPattern(n.type===xS.SpreadElement?n:n.value)}break;case xS.AssignmentExpression:t.type=xS.AssignmentPattern,delete t.operator,this.reinterpretExpressionAsPattern(t.left)}}parseGroupExpression(){let t;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),t={type:YL,params:[],async:!1};else{const e=this.lookahead,n=[];if(this.match("..."))t=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),t={type:YL,params:[t],async:!1};else{let r=!1;if(this.context.isBindingElement=!0,t=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){const i=[];for(this.context.isAssignmentTarget=!1,i.push(t);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(let t=0;t<i.length;t++)this.reinterpretExpressionAsPattern(i[t]);r=!0,t={type:YL,params:i,async:!1}}else if(this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(n)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(let t=0;t<i.length;t++)this.reinterpretExpressionAsPattern(i[t]);r=!0,t={type:YL,params:i,async:!1}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(r)break}r||(t=this.finalize(this.startNode(e),new n_(i)))}if(!r){if(this.expect(")"),this.match("=>")&&(t.type===xS.Identifier&&"yield"===t.name&&(r=!0,t={type:YL,params:[t],async:!1}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),t.type===xS.SequenceExpression)for(let e=0;e<t.expressions.length;e++)this.reinterpretExpressionAsPattern(t.expressions[e]);else this.reinterpretExpressionAsPattern(t);const e=t.type===xS.SequenceExpression?t.expressions:[t];t={type:YL,params:e,async:!1}}this.context.isBindingElement=!1}}}return t}parseArguments(){this.expect("(");const t=[];if(!this.match(")"))for(;;){const e=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(t.push(e),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),t}isIdentifierName(t){return 3===t.type||4===t.type||1===t.type||5===t.type}parseIdentifierName(t=!1){let e=!1,n=this.createNode(),r=this.nextToken();return"#"===r.value&&t&&(r=this.nextToken(),e=!0),this.isIdentifierName(r)||this.throwUnexpectedToken(r),this.finalize(n,e?new qv(r.value):new _v(r.value))}parseNewExpression(){const t=this.createNode(),e=this.parseIdentifierName();let n;if(I_("new"===e.name,"New expression must start with `new`"),this.match("."))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&"target"===this.lookahead.value){const t=this.parseIdentifierName();n=new Hv(e,t)}else this.throwUnexpectedToken(this.lookahead);else if(this.matchKeyword("import"))this.throwUnexpectedToken(this.lookahead);else{const t=this.isolateCoverGrammar(this.parseLeftHandSideExpression),e=this.match("(")?this.parseArguments():[];n=new zv(t,e),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,n)}parseAsyncArgument(){const t=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,t}parseAsyncArguments(){this.expect("(");const t=[];if(!this.match(")"))for(;;){const e=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(t.push(e),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),t}matchImportCall(){let t=this.matchKeyword("import");if(t){const e=this.scanner.saveState();this.scanner.scanComments();const n=this.scanner.lex();this.scanner.restoreState(e),t=7===n.type&&"("===n.value}return t}parseImportCall(){const t=this.createNode();this.expectKeyword("import"),this.expect("(");const e=this.parseAssignmentExpression();let n=null;return this.match(",")&&(this.nextToken(),n=this.parseObjectInitializer()),!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(t,new Rv(e,n))}matchImportMeta(){let t=this.matchKeyword("import");if(t){const e=this.scanner.saveState();this.scanner.scanComments();const n=this.scanner.lex();if(7===n.type&&"."===n.value){this.scanner.scanComments();const e=this.scanner.lex();t=3===e.type&&"meta"===e.value,t&&e.end-e.start!==4&&this.tolerateUnexpectedToken(e,J_)}else t=!1;this.scanner.restoreState(e)}return t}parseImportMeta(){const t=this.createNode(),e=this.parseIdentifierName();this.expect(".");const n=this.parseIdentifierName();return this.context.isAssignmentTarget=!1,this.finalize(t,new Hv(e,n))}parseLeftHandSideExpressionAllowCall(){const t=this.lookahead,e=this.matchContextualKeyword("async"),n=this.context.allowIn;let r;this.context.allowIn=!0;const i=this.matchKeyword("super");i&&this.context.inFunctionBody?(r=this.createNode(),this.nextToken(),r=this.finalize(r,new o_),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):r=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression),!i||!this.match("(")||this.context.inClassConstructor&&this.context.allowSuper||this.tolerateError(FL);let o=!1;for(;;){let n=!1;if(this.match("?.")&&(n=!0,o=!0,this.expect("?.")),this.match("(")){const i=e&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;const o=i?this.parseAsyncArguments():this.parseArguments();if(r.type===xS.ImportExpression&&1!==o.length&&this.tolerateError(T_),r=this.finalize(this.startNode(t),new cv(r,o,n)),i&&this.match("=>")){for(let t=0;t<o.length;++t)this.reinterpretExpressionAsPattern(o[t]);r={type:YL,params:o,async:!0}}}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!n,this.expect("[");const e=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),r=this.finalize(this.startNode(t),new Vv(!0,r,e,n))}else if(10===this.lookahead.type&&this.lookahead.head){n&&this.throwUnexpectedToken(this.lookahead),o&&this.throwError(tL);const e=this.parseTemplateLiteral({isTagged:!0});r=this.finalize(this.startNode(t),new c_(r,e))}else{if(!this.match(".")&&!n)break;{this.context.isBindingElement=!1,this.context.isAssignmentTarget=!n,n||this.expect(".");const e=this.parseIdentifierName(!0);r=this.finalize(this.startNode(t),new Vv(!1,r,e,n))}}}return this.context.allowIn=n,o?new uv(r):r}parseSuper(){const t=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(t,new o_)}parseLeftHandSideExpression(){I_(this.context.allowIn,"callee of new expression always allow in keyword.");const t=this.startNode(this.lookahead);let e=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression),n=!1;for(;;){let r=!1;if(this.match("?.")&&(r=!0,n=!0,this.expect("?.")),this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!r,this.expect("[");const n=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),e=this.finalize(t,new Vv(!0,e,n,r))}else if(10===this.lookahead.type&&this.lookahead.head){r&&this.throwUnexpectedToken(this.lookahead),n&&this.throwError(tL);const i=this.parseTemplateLiteral({isTagged:!0});e=this.finalize(t,new c_(e,i))}else{if(!this.match(".")&&!r)break;{this.context.isBindingElement=!1,this.context.isAssignmentTarget=!r,r||this.expect(".");const n=this.parseIdentifierName();e=this.finalize(t,new Vv(!1,e,n,r))}}}return n?new uv(e):e}parseUpdateExpression(){let t;const e=this.lookahead;if(this.match("++")||this.match("--")){const n=this.startNode(e),r=this.nextToken();t=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&t.type===xS.Identifier&&this.scanner.isRestrictedWord(t.name)&&this.tolerateError(CL),this.context.isAssignmentTarget||this.tolerateError(q_);const i=!0;t=this.finalize(n,new A_(r.value,t,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(t=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match("++")||this.match("--"))){this.context.strict&&t.type===xS.Identifier&&this.scanner.isRestrictedWord(t.name)&&this.tolerateError(IL),this.context.isAssignmentTarget||this.tolerateError(q_),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;const n=this.nextToken().value,r=!1;t=this.finalize(this.startNode(e),new A_(n,t,r))}return t}parseAwaitExpression(){const t=this.createNode();this.nextToken();const e=this.parseUnaryExpression();return this.finalize(t,new rv(e))}parseUnaryExpression(){let t;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){const e=this.startNode(this.lookahead),n=this.nextToken();t=this.inheritCoverGrammar(this.parseUnaryExpression),t=this.finalize(e,new f_(n.value,t)),this.context.strict&&"delete"===t.operator&&t.argument.type===xS.Identifier&&this.tolerateError(EL),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else t=(this.context.isModule&&!this.context.inFunctionBody||this.context.isAsync)&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return t}parseExponentiationExpression(){const t=this.lookahead,e=this.match("(");let n=this.inheritCoverGrammar(this.parseUnaryExpression);if((n.type!==xS.UnaryExpression||e)&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;const e=n,r=this.isolateCoverGrammar(this.parseExponentiationExpression);n=this.finalize(this.startNode(t),new ov("**",e,r))}return n}binaryPrecedence(t){const e=t.value;let n;return n=7===t.type?this.operatorPrecedence[e]||0:4===t.type&&("instanceof"===e||this.context.allowIn&&"in"===e)?12:0,n}parseBinaryExpression(){const t=this.lookahead;let e=this.inheritCoverGrammar(this.parseExponentiationExpression),n=!0,r=!0;const i=t=>{"&&"!==t.value&&"||"!==t.value||(r=!1),"??"===t.value&&(n=!1)},o=this.lookahead;let s=this.binaryPrecedence(o);if(s>0){i(o),this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;const a=[t,this.lookahead];let c=e,l=this.isolateCoverGrammar(this.parseExponentiationExpression);const u=[c,o.value,l],h=[s];for(;s=this.binaryPrecedence(this.lookahead),!(s<=0);){for((n||"&&"!==this.lookahead.value&&"||"!==this.lookahead.value)&&(r||"??"!==this.lookahead.value)||this.throwUnexpectedToken(this.lookahead),i(this.lookahead);u.length>2&&s<=h[h.length-1];){l=u.pop();const t=u.pop();h.pop(),c=u.pop(),a.pop();const e=a[a.length-1],n=this.startNode(e,e.lineStart),r="||"===t||"&&"===t||"??"===t;u.push(this.finalize(n,r?new Gv(t,c,l):new ov(t,c,l)))}u.push(this.nextToken().value),h.push(s),a.push(this.lookahead),u.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}let d=u.length-1;e=u[d];let p=a.pop();for(;d>1;){const t=a.pop(),n=p&&p.lineStart,r=this.startNode(t,n),i=u[d-1],o="||"===i||"&&"===i||"??"===i;e=this.finalize(r,o?new Gv(i,u[d-2],e):new ov(i,u[d-2],e)),d-=2,p=t}}return e}parseConditionalExpression(){const t=this.lookahead;let e=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();const n=this.context.allowIn;this.context.allowIn=!0;const r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");const i=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new fv(e,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return e}checkPatternParam(t,e){switch(e.type){case xS.Identifier:this.validateParam(t,e,e.name);break;case xS.RestElement:this.checkPatternParam(t,e.argument);break;case xS.AssignmentPattern:this.checkPatternParam(t,e.left);break;case xS.ArrayPattern:for(let n=0;n<e.elements.length;n++)null!==e.elements[n]&&this.checkPatternParam(t,e.elements[n]);break;case xS.ObjectPattern:for(let n=0;n<e.properties.length;n++){const r=e.properties[n];this.checkPatternParam(t,r.type===xS.RestElement?r:r.value)}}t.simple=t.simple&&e instanceof _v}reinterpretAsCoverFormalsList(t){let e=[t];const n={simple:!0,paramSet:{}};let r=!1;switch(t.type){case xS.Identifier:break;case YL:e=t.params,r=t.async;break;default:return null}for(let t=0;t<e.length;++t){const i=e[t];i.type===xS.AssignmentPattern?i.right.type===xS.YieldExpression&&(i.right.argument&&this.throwUnexpectedToken(this.lookahead),i.right.type=xS.Identifier,i.right.name="yield",delete i.right.argument,delete i.right.delegate):r&&i.type===xS.Identifier&&"await"===i.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(n,i),e[t]=i}if(this.context.strict||!this.context.allowYield)for(let t=0;t<e.length;++t){e[t].type===xS.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(n.hasDuplicateParameterNames){const t=this.context.strict?n.stricted:n.firstRestricted;this.throwUnexpectedToken(t,k_)}return{simple:n.simple,params:e,stricted:n.stricted,firstRestricted:n.firstRestricted,message:n.message}}parseAssignmentExpression(){let t;if(!this.context.allowYield&&this.matchKeyword("yield"))t=this.parseYieldExpression();else{const e=this.lookahead;let n=e;if(t=this.parseConditionalExpression(),3===n.type&&n.lineNumber===this.lookahead.lineNumber&&"async"===n.value&&(3===this.lookahead.type||this.matchKeyword("yield"))){const e=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(e),t={type:YL,params:[e],async:!0}}if(t.type===YL||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;const n=t.async,r=this.reinterpretAsCoverFormalsList(t);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;const i=this.context.strict,o=this.context.allowStrictDirective;this.context.allowStrictDirective=r.simple;const s=this.context.allowYield,a=this.context.isAsync;this.context.allowYield=!0,this.context.isAsync=n;const c=this.startNode(e);let l;if(this.expect("=>"),this.match("{")){const t=this.context.allowIn;this.context.allowIn=!0,l=this.parseFunctionSourceElements(),this.context.allowIn=t}else l=this.isolateCoverGrammar(this.parseAssignmentExpression);const u=l.type!==xS.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),t=this.finalize(c,new $S(r.params,l,u,n)),this.context.strict=i,this.context.allowStrictDirective=o,this.context.allowYield=s,this.context.isAsync=a}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(q_),this.context.strict&&t.type===xS.Identifier){const e=t;this.scanner.isRestrictedWord(e.name)&&this.tolerateUnexpectedToken(n,wL),this.scanner.isStrictModeReservedWord(e.name)&&this.tolerateUnexpectedToken(n,DL)}this.match("=")?this.reinterpretExpressionAsPattern(t):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();const r=n.value,i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new tv(r,t,i)),this.context.firstCoverInitializedNameError=null}}return t}parseExpression(){const t=this.lookahead;let e=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){const n=[];for(n.push(e);2!==this.lookahead.type&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(t),new n_(n))}return e}parseStatementListItem(){let t;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,H_),t=this.parseExportDeclaration();break;case"import":this.matchImportCall()?t=this.parseExpressionStatement():this.matchImportMeta()?t=this.parseStatement():(this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,j_),t=this.parseImportDeclaration());break;case"const":t=this.parseLexicalDeclaration({inFor:!1});break;case"function":t=this.parseFunctionDeclaration();break;case"class":t=this.parseClassDeclaration();break;case"let":t=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:t=this.parseStatement()}else t=this.parseStatement();return t}parseBlock(){const t=this.createNode();this.expect("{");const e=[];for(;!this.match("}");)e.push(this.parseStatementListItem());return this.expect("}"),this.finalize(t,new sv(e))}parseLexicalBinding(t,e){const n=this.createNode(),r=this.parsePattern([],t);this.context.strict&&r.type===xS.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(ML);let i=null;return"const"===t?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(L_,"const")):(!e.inFor&&r.type!==xS.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new E_(r,i))}parseBindingList(t,e){const n=[this.parseLexicalBinding(t,e)];for(;this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(t,e));return n}isLexicalDeclaration(){const t=this.scanner.saveState();this.scanner.scanComments();const e=this.scanner.lex();return this.scanner.restoreState(t),3===e.type||7===e.type&&"["===e.value||7===e.type&&"{"===e.value||4===e.type&&"let"===e.value||4===e.type&&"yield"===e.value}parseLexicalDeclaration(t){const e=this.createNode(),n=this.nextToken().value;I_("let"===n||"const"===n,"Lexical declaration must be either let or const");const r=this.parseBindingList(n,t);return this.consumeSemicolon(),this.finalize(e,new g_(r,n))}isInitializedProperty(){let t=this.scanner.saveState();this.scanner.scanComments();let e=this.scanner.lex();return this.scanner.restoreState(t),3===this.lookahead.type&&"="===e.value}isDeclaredProperty(){let t=this.scanner.saveState();this.scanner.scanComments();let e=this.scanner.lex();return this.scanner.restoreState(t),3===this.lookahead.type&&";"===e.value||3===this.lookahead.type&&e.lineNumber!==this.startMarker.line}parseBindingRestElement(t,e){const n=this.createNode();this.expect("...");const r=this.parsePattern(t,e);return this.finalize(n,new $v(r))}parseArrayPattern(t,e){const n=this.createNode();this.expect("[");const r=[];for(;!this.match("]");)if(this.match(","))this.nextToken(),r.push(null);else{if(this.match("...")){r.push(this.parseBindingRestElement(t,e));break}r.push(this.parsePatternWithDefault(t,e)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new ZS(r))}parsePropertyPattern(t,e){const n=this.createNode();let r=!1,i=!1;let o,s;if(3===this.lookahead.type){const r=this.lookahead;o=this.parseVariableIdentifier();const a=this.finalize(n,new _v(r.value));if(this.match("=")){t.push(r),i=!0,this.nextToken();const e=this.parseAssignmentExpression();s=this.finalize(this.startNode(r),new ev(a,e))}else this.match(":")?(this.expect(":"),s=this.parsePatternWithDefault(t,e)):(t.push(r),i=!0,s=a)}else r=this.match("["),o=this.parseObjectPropertyKey(),this.expect(":"),s=this.parsePatternWithDefault(t,e);return this.finalize(n,new Kv("init",o,r,s,!1,i))}parseRestProperty(t){const e=this.createNode();this.expect("...");const n=this.parsePattern(t);return this.match("=")&&this.throwError(R_),this.match("}")||this.throwError(pL),this.finalize(e,new $v(n))}parseObjectPattern(t,e){const n=this.createNode(),r=[];for(this.expect("{");!this.match("}");)r.push(this.match("...")?this.parseRestProperty(t):this.parsePropertyPattern(t,e)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new Wv(r))}parsePattern(t,e){let n;return this.match("[")?n=this.parseArrayPattern(t,e):this.match("{")?n=this.parseObjectPattern(t,e):(!this.matchKeyword("let")||"const"!==e&&"let"!==e||this.tolerateUnexpectedToken(this.lookahead,nL),t.push(this.lookahead),n=this.parseVariableIdentifier(e)),n}parsePatternWithDefault(t,e){const n=this.lookahead;let r=this.parsePattern(t,e);if(this.match("=")){this.nextToken();const t=this.context.allowYield;this.context.allowYield=!0;const e=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=t,r=this.finalize(this.startNode(n),new ev(r,e))}return r}parseVariableIdentifier(t){const e=this.createNode(),n=this.nextToken();return 4===n.type&&"yield"===n.value?this.context.strict?this.tolerateUnexpectedToken(n,DL):this.context.allowYield||this.throwUnexpectedToken(n):3!==n.type?this.context.strict&&4===n.type&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,DL):(this.context.strict||"let"!==n.value||"var"!==t)&&this.throwUnexpectedToken(n):(this.context.isModule||this.context.isAsync)&&3===n.type&&"await"===n.value&&this.tolerateUnexpectedToken(n),this.finalize(e,new _v(n.value))}parseVariableDeclaration(t){const e=this.createNode(),n=this.parsePattern([],"var");this.context.strict&&n.type===xS.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(ML);let r=null;return this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):n.type===xS.Identifier||t.inFor||this.expect("="),this.finalize(e,new E_(n,r))}parseVariableDeclarationList(t){const e={inFor:t.inFor},n=[];for(n.push(this.parseVariableDeclaration(e));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(e));return n}parseVariableStatement(){const t=this.createNode();this.expectKeyword("var");const e=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(t,new g_(e,"var"))}parseEmptyStatement(){const t=this.createNode();return this.expect(";"),this.finalize(t,new wv)}parseExpressionStatement(){const t=this.createNode(),e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new bv(e))}parseIfClause(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(mL),this.parseStatement()}parseIfStatement(){const t=this.createNode();let e,n=null;this.expectKeyword("if"),this.expect("(");const r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new wv)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseIfClause())),this.finalize(t,new Lv(r,e,n))}parseDoWhileStatement(){const t=this.createNode();this.expectKeyword("do"),this.tolerateInvalidLoopStatement();const e=this.context.inIteration;this.context.inIteration=!0;const n=this.parseStatement();this.context.inIteration=e,this.expectKeyword("while"),this.expect("(");const r=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(t,new yv(n,r))}parseWhileStatement(){const t=this.createNode();let e;this.expectKeyword("while"),this.expect("(");const n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new wv);else{this.expect(")");const t=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=t}return this.finalize(t,new m_(n,e))}parseForStatement(){let t,e,n=null,r=null,i=null,o=!0,s=!1;const a=this.createNode();if(this.expectKeyword("for"),this.matchContextualKeyword("await")&&(this.context.isAsync||this.tolerateUnexpectedToken(this.lookahead),s=!0,this.nextToken()),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();const r=this.context.allowIn;this.context.allowIn=!1;const i=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=r,!s&&1===i.length&&this.matchKeyword("in")){const r=i[0];r.init&&(r.id.type===xS.ArrayPattern||r.id.type===xS.ObjectPattern||this.context.strict)&&this.tolerateError(U_,"for-in"),n=this.finalize(n,new g_(i,"var")),this.nextToken(),t=n,e=this.parseExpression(),n=null}else 1===i.length&&null===i[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new g_(i,"var")),this.nextToken(),t=n,e=this.parseAssignmentExpression(),n=null,o=!1):(n=this.finalize(n,new g_(i,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();const r=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){const i=this.context.allowIn;this.context.allowIn=!1;const s=this.parseBindingList(r,{inFor:!0});this.context.allowIn=i,1===s.length&&null===s[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new g_(s,r)),this.nextToken(),t=n,e=this.parseExpression(),n=null):1===s.length&&null===s[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new g_(s,r)),this.nextToken(),t=n,e=this.parseAssignmentExpression(),n=null,o=!1):(this.consumeSemicolon(),n=this.finalize(n,new g_(s,r)))}else n=this.finalize(n,new _v(r)),this.nextToken(),t=n,e=this.parseExpression(),n=null}else{const r=this.lookahead,i=this.context.isBindingElement,s=this.context.isAssignmentTarget,a=this.context.firstCoverInitializedNameError,c=this.context.allowIn;if(this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=c,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==xS.AssignmentExpression||this.tolerateError(K_),this.nextToken(),this.reinterpretExpressionAsPattern(n),t=n,e=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==xS.AssignmentExpression||this.tolerateError(X_),this.nextToken(),this.reinterpretExpressionAsPattern(n),t=n,e=this.parseAssignmentExpression(),n=null,o=!1;else{if(this.context.isBindingElement=i,this.context.isAssignmentTarget=s,this.context.firstCoverInitializedNameError=a,this.match(",")){const t=[n];for(;this.match(",");)this.nextToken(),t.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(r),new n_(t))}this.expect(";")}}let c;if(void 0===t&&(this.match(";")||(r=this.isolateCoverGrammar(this.parseExpression)),this.expect(";"),this.match(")")||(i=this.isolateCoverGrammar(this.parseExpression))),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),c=this.finalize(this.createNode(),new wv);else{this.expect(")"),this.tolerateInvalidLoopStatement();const t=this.context.inIteration;this.context.inIteration=!0,c=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=t}return void 0===t?this.finalize(a,new Nv(n,r,i,c)):o?this.finalize(a,new Dv(t,e,c)):this.finalize(a,new Mv(t,e,c,s))}parseContinueStatement(){const t=this.createNode();this.expectKeyword("continue");let e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){const t=this.parseVariableIdentifier();e=t;const n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(UL,t.name)}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.throwError(V_),this.finalize(t,new Av(e))}parseBreakStatement(){const t=this.createNode();this.expectKeyword("break");let e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){const t=this.parseVariableIdentifier(),n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(UL,t.name),e=t}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.context.inSwitch||this.throwError(G_),this.finalize(t,new av(e))}parseReturnStatement(){this.context.inFunctionBody||this.tolerateError(z_);const t=this.createNode();this.expectKeyword("return");const e=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&2!==this.lookahead.type||8===this.lookahead.type||10===this.lookahead.type?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(t,new t_(e))}parseWithStatement(){this.context.strict&&this.tolerateError(BL);const t=this.createNode();let e;this.expectKeyword("with"),this.expect("(");const n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new wv)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new y_(n,e))}parseSwitchCase(){const t=this.createNode();let e;this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");const n=[];for(;!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)n.push(this.parseStatementListItem());return this.finalize(t,new s_(e,n))}parseSwitchStatement(){const t=this.createNode();this.expectKeyword("switch"),this.expect("(");const e=this.parseExpression();this.expect(")");const n=this.context.inSwitch;this.context.inSwitch=!0;const r=[];let i=!1;for(this.expect("{");!this.match("}");){const t=this.parseSwitchCase();null===t.test&&(i&&this.throwError(iL),i=!0),r.push(t)}return this.expect("}"),this.context.inSwitch=n,this.finalize(t,new a_(e,r))}parseLabelledStatement(){const t=this.createNode(),e=this.parseExpression();let n;if(e.type===xS.Identifier&&this.match(":")){this.nextToken();const t=e,r="$"+t.name;let i;if(Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(fL,"Label",t.name),this.context.labelSet[r]=!0,this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),i=this.parseClassDeclaration();else if(this.matchKeyword("function")){const t=this.lookahead,e=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(t,mL):e.generator&&this.tolerateUnexpectedToken(t,P_),i=e}else i=this.parseStatement();delete this.context.labelSet[r],n=new Uv(t,i)}else this.consumeSemicolon(),n=new bv(e);return this.finalize(t,n)}parseThrowStatement(){const t=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(oL);const e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new d_(e))}parseCatchClause(){const t=this.createNode();this.expectKeyword("catch");let e=null;if(this.match("(")){this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);const t=[];e=this.parsePattern(t);const n={};for(let e=0;e<t.length;e++){const r="$"+t[e].value;Object.prototype.hasOwnProperty.call(n,r)&&this.tolerateError(F_,t[e].value),n[r]=!0}this.context.strict&&e.type===xS.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(gL),this.expect(")")}const n=this.parseBlock();return this.finalize(t,new lv(e,n))}parseFinallyClause(){return this.expectKeyword("finally"),this.parseBlock()}parseTryStatement(){const t=this.createNode();this.expectKeyword("try");const e=this.parseBlock(),n=this.matchKeyword("catch")?this.parseCatchClause():null,r=this.matchKeyword("finally")?this.parseFinallyClause():null;return n||r||this.throwError(cL),this.finalize(t,new p_(e,n,r))}parseDebuggerStatement(){const t=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(t,new gv)}parseStatement(){let t;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:t=this.parseExpressionStatement();break;case 7:const e=this.lookahead.value;t="{"===e?this.parseBlock():"("===e?this.parseExpressionStatement():";"===e?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:t=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":t=this.parseBreakStatement();break;case"continue":t=this.parseContinueStatement();break;case"debugger":t=this.parseDebuggerStatement();break;case"do":t=this.parseDoWhileStatement();break;case"for":t=this.parseForStatement();break;case"function":t=this.parseFunctionDeclaration();break;case"if":t=this.parseIfStatement();break;case"return":t=this.parseReturnStatement();break;case"switch":t=this.parseSwitchStatement();break;case"throw":t=this.parseThrowStatement();break;case"try":t=this.parseTryStatement();break;case"var":t=this.parseVariableStatement();break;case"while":t=this.parseWhileStatement();break;case"with":t=this.parseWithStatement();break;default:t=this.parseExpressionStatement()}break;default:t=this.throwUnexpectedToken(this.lookahead)}return t}parseFunctionSourceElements(){const t=this.createNode();this.expect("{");const e=this.parseDirectivePrologues(),n=this.context.labelSet,r=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match("}");)e.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=n,this.context.inIteration=r,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(t,new sv(e))}validateParam(t,e,n){const r="$"+n;this.context.strict?(this.scanner.isRestrictedWord(n)&&(t.stricted=e,t.message=bL),Object.prototype.hasOwnProperty.call(t.paramSet,r)&&(t.stricted=e,t.hasDuplicateParameterNames=!0)):t.firstRestricted||(this.scanner.isRestrictedWord(n)?(t.firstRestricted=e,t.message=bL):this.scanner.isStrictModeReservedWord(n)?(t.firstRestricted=e,t.message=DL):Object.prototype.hasOwnProperty.call(t.paramSet,r)&&(t.stricted=e,t.hasDuplicateParameterNames=!0)),"function"==typeof Object.defineProperty?Object.defineProperty(t.paramSet,r,{value:!0,enumerable:!0,writable:!0,configurable:!0}):t.paramSet[r]=!0}parseRestElement(t){const e=this.createNode();this.expect("...");const n=this.parsePattern(t);return this.match("=")&&this.throwError(x_),this.match(")")||this.throwError(dL),this.finalize(e,new $v(n))}parseFormalParameter(t){const e=[],n=this.match("...")?this.parseRestElement(e):this.parsePatternWithDefault(e);for(let n=0;n<e.length;n++)this.validateParam(t,e[n],e[n].value);t.simple=t.simple&&n instanceof _v,t.params.push(n)}parseFormalParameters(t){const e={simple:!0,hasDuplicateParameterNames:!1,params:[],firstRestricted:t};if(this.expect("("),!this.match(")"))for(e.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(e),!this.match(")"))&&(this.expect(","),!this.match(")")););return this.expect(")"),e.hasDuplicateParameterNames&&(this.context.strict||this.context.isAsync||!e.simple)&&this.throwError(k_),{simple:e.simple,params:e.params,stricted:e.stricted,firstRestricted:e.firstRestricted,message:e.message}}matchAsyncFunction(){let t=this.matchContextualKeyword("async");if(t){const e=this.scanner.saveState();this.scanner.scanComments();const n=this.scanner.lex();this.scanner.restoreState(e),t=e.lineNumber===n.lineNumber&&4===n.type&&"function"===n.value}return t}parseFunctionDeclaration(t){const e=this.createNode(),n=this.matchContextualKeyword("async");n&&(this.context.inIteration&&this.tolerateError(B_),this.nextToken()),this.expectKeyword("function");const r=this.match("*");let i;r&&this.nextToken();let o=null,s=null;if(!t||!this.match("(")){const t=this.lookahead;o=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(t.value)&&this.tolerateUnexpectedToken(t,yL):this.scanner.isRestrictedWord(t.value)?(s=t,i=yL):this.scanner.isStrictModeReservedWord(t.value)&&(s=t,i=DL)}const a=this.context.isAsync,c=this.context.allowYield;this.context.isAsync=n,this.context.allowYield=!r;const l=this.parseFormalParameters(s),u=l.params,h=l.stricted;s=l.firstRestricted,l.message&&(i=l.message);const d=this.context.strict,p=this.context.allowStrictDirective;this.context.allowStrictDirective=l.simple;const f=this.parseFunctionSourceElements();return this.context.strict&&s&&this.throwUnexpectedToken(s,i),this.context.strict&&h&&this.tolerateUnexpectedToken(h,i),this.context.strict=d,this.context.allowStrictDirective=p,this.context.isAsync=a,this.context.allowYield=c,n?this.finalize(e,new nv(o,u,f,r)):this.finalize(e,new Sv(o,u,f,r))}parseFunctionExpression(){const t=this.createNode(),e=this.matchContextualKeyword("async");e&&this.nextToken(),this.expectKeyword("function");const n=this.match("*");let r;n&&this.nextToken();let i,o=null;const s=this.context.isAsync,a=this.context.allowYield;if(this.context.isAsync=e,this.context.allowYield=!n,!this.match("(")){const t=this.lookahead;o=this.context.strict||n||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(t.value)&&this.tolerateUnexpectedToken(t,yL):this.scanner.isRestrictedWord(t.value)?(i=t,r=yL):this.scanner.isStrictModeReservedWord(t.value)&&(i=t,r=DL)}const c=this.parseFormalParameters(i),l=c.params,u=c.stricted;i=c.firstRestricted,c.message&&(r=c.message);const h=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=c.simple;const p=this.parseFunctionSourceElements();return this.context.strict&&i&&this.throwUnexpectedToken(i,r),this.context.strict&&u&&this.tolerateUnexpectedToken(u,r),this.context.strict=h,this.context.allowStrictDirective=d,this.context.isAsync=s,this.context.allowYield=a,this.finalize(t,new vv(o,l,p,n,e))}parseDirective(){const t=this.lookahead,e=this.createNode(),n=this.parseExpression(),r=n.type===xS.Literal?this.getTokenRaw(t).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(e,r?new mv(n,r):new bv(n))}parseDirectivePrologues(){let t=null;const e=[];for(;;){const n=this.lookahead;if(8!==n.type)break;const r=this.parseDirective();e.push(r);const i=r.directive;if("string"!=typeof i)break;"use strict"===i?(this.context.strict=!0,t&&this.tolerateUnexpectedToken(t,TL),this.context.allowStrictDirective||this.tolerateUnexpectedToken(n,Y_)):!t&&n.octal&&(t=n)}return e}qualifiedPropertyName(t){switch(t.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return"["===t.value||"#"===t.value}return!1}parseGetterMethod(){const t=this.createNode(),e=!1,n=this.context.allowYield;this.context.allowYield=!0;const r=this.parseFormalParameters();r.params.length>0&&this.tolerateError(b_);const i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new vv(null,r.params,i,e,!1))}parseSetterMethod(){const t=this.createNode(),e=!1,n=this.context.allowYield;this.context.allowYield=!0;const r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(D_):r.params[0]instanceof $v&&this.tolerateError(M_);const i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new vv(null,r.params,i,e,!1))}parseGeneratorMethod(t){const e=this.createNode(),n=this.context.allowYield;this.context.allowYield=!0;const r=this.parseFormalParameters();this.context.allowYield=!1;const i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(e,new vv(null,r.params,i,!0,t))}isStartOfExpression(){let t=!0;const e=this.lookahead.value;switch(this.lookahead.type){case 7:t="["===e||"("===e||"{"===e||"+"===e||"-"===e||"!"===e||"~"===e||"++"===e||"--"===e||"/"===e||"/="===e;break;case 4:t="class"===e||"delete"===e||"function"===e||"let"===e||"new"===e||"super"===e||"this"===e||"typeof"===e||"void"===e||"yield"===e}return t}parseYieldExpression(){const t=this.createNode();this.expectKeyword("yield");let e=null,n=!1;if(!this.hasLineTerminator){const t=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),e=this.parseAssignmentExpression()):this.isStartOfExpression()&&(e=this.parseAssignmentExpression()),this.context.allowYield=t}return this.finalize(t,new w_(e,n))}parseStaticBlock(){const t=this.createNode();this.expect("{");const e=[];for(;!this.match("}");)e.push(this.parseStatementListItem());return this.expect("}"),this.finalize(t,new i_(e))}parseDecorator(){const t=this.createNode();this.expect("@");const e=this.context.strict,n=this.context.allowYield,r=this.context.isAsync;this.context.strict=!1,this.context.allowYield=!0,this.context.isAsync=!1;const i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);return this.context.strict=e,this.context.allowYield=n,this.context.isAsync=r,this.match(";")&&this.throwError(lL),this.finalize(t,new Ev(i))}parseDecorators(){let t=null;for(;this.match("@");)null==t&&(t=[]),t.push(this.parseDecorator());return t}parseClassElement(t){let e=this.lookahead;const n=this.createNode(),r=this.context.inConstructor;let i="",o=null,s=null,a=!1,c=!1,l=!1,u=!1,h=!1,d=!1;const p=this.parseDecorators();if(p&&(e=this.lookahead),this.match("*"))this.nextToken();else{a=this.match("["),this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead),o=this.parseObjectPropertyKey(d);const t=o;if(this.context.inConstructor=3===e.type&&"constructor"===e.value,"static"===t.name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(e=this.lookahead,l=!0,a=this.match("["),this.match("*")?(this.nextToken(),this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead)):(this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead),o=this.parseObjectPropertyKey(d))),"static"===t.name&&this.match("{"))return this.parseStaticBlock();if(3===e.type&&!this.hasLineTerminator&&"async"===e.value){const t=this.lookahead.value;":"!==t&&"("!==t&&(u=!0,h=this.match("*"),h&&this.nextToken(),e=this.lookahead,a=this.match("["),this.match("*")?(this.nextToken(),this.match("#")&&(d=!0,this.nextToken())):(this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead),o=this.parseObjectPropertyKey(d)),3!==e.type||"constructor"!==e.value||l||this.tolerateUnexpectedToken(e,S_))}}3===e.type&&"constructor"===e.value&&d&&this.tolerateUnexpectedToken(e,v_);const f=this.qualifiedPropertyName(this.lookahead);if(3===e.type||8===e.type?"get"===e.value&&f?(i="get",this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead),a=this.match("["),o=this.parseObjectPropertyKey(d),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===e.value&&f?(i="set",this.match("#")&&(d=!0,this.nextToken(),e=this.lookahead),a=this.match("["),o=this.parseObjectPropertyKey(d),s=this.parseSetterMethod()):this.match("(")||(i="property",a=!1,this.match("=")&&(this.nextToken(),s=this.isolateCoverGrammar(this.parseAssignmentExpression))):7===e.type&&"*"===e.value&&f?(i="init",a=this.match("["),o=this.parseObjectPropertyKey(d),s=this.parseGeneratorMethod(u),c=!0):7!==e.type||"["!==e.value||this.match("(")||(i="property",a=!0,this.match("=")&&(this.nextToken(),s=this.isolateCoverGrammar(this.parseAssignmentExpression))),!i&&o&&this.match("(")){const t=this.context.inClassConstructor;this.context.inClassConstructor="constructor"===e.value,i="init",s=u?this.parsePropertyMethodAsyncFunction(h):this.parsePropertyMethodFunction(h),this.context.inClassConstructor=t,c=!0}return i||this.throwUnexpectedToken(this.lookahead),"init"===i&&(i="method"),a||(l&&this.isPropertyKey(o,"prototype")&&this.throwUnexpectedToken(e,AL),!l&&this.isPropertyKey(o,"constructor")&&(("method"!==i||!c||s&&s.generator)&&this.throwUnexpectedToken(e,__),t.value?this.throwUnexpectedToken(e,O_):t.value=!0,i="constructor")),this.context.inConstructor=r,"property"===i?(this.consumeSemicolon(),this.finalize(n,new Xv(o,a,s,l,p))):this.finalize(n,new jv(o,a,s,i,l,p))}parseClassElementList(){const t=[],e={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():t.push(this.parseClassElement(e));return this.expect("}"),t}parseClassBody(){const t=this.createNode(),e=this.parseClassElementList();return this.finalize(t,new hv(e))}parseClassDeclaration(t){const e=this.createNode(),n=this.context.strict,r=this.context.allowSuper;this.context.strict=!0,this.expectKeyword("class");const i=t&&3!==this.lookahead.type?null:this.parseVariableIdentifier();let o=null;this.matchKeyword("extends")&&(this.nextToken(),o=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall),this.context.allowSuper=!0);const s=this.parseClassBody();return this.context.allowSuper=r,this.context.strict=n,this.finalize(e,new dv(i,o,s,this.context.decorators))}parseClassExpression(){const t=this.createNode(),e=this.context.strict;this.context.strict=!0,this.expectKeyword("class");const n=3===this.lookahead.type?this.parseVariableIdentifier():null;let r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall),this.context.allowSuper=!0);const i=this.parseClassBody();return this.context.strict=e,this.finalize(t,new pv(n,r,i,this.context.decorators))}parseModule(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;const t=this.createNode(),e=this.parseDirectivePrologues();for(;2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new Yv(e))}parseScript(){const t=this.createNode(),e=this.parseDirectivePrologues();for(;2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new e_(e))}parseImportAttributes(){if("assert"===this.lookahead.value){this.nextToken(),this.expect("{");const t=[];for(;!this.match("}");)t.push(this.parseImportAttribute()),this.match("}")||this.expectCommaSeparator();return this.expect("}"),t}return null}parseImportAttribute(){const t=this.createNode();3!==this.lookahead.type&&this.throwUnexpectedToken(this.nextToken());const e=this.parseIdentifierName();this.match(":")||this.throwUnexpectedToken(this.nextToken()),this.nextToken();const n=this.nextToken(),r=this.getTokenRaw(n),i=this.finalize(t,new Pv(n.value,r));return this.finalize(t,new xv(e,i))}parseModuleSpecifier(){const t=this.createNode();8!==this.lookahead.type&&this.throwError(Z_);const e=this.nextToken(),n=this.getTokenRaw(e);return OS.isStringWellFormedUnicode(e.value)||this.throwError(Z_),this.finalize(t,new Pv(e.value,n))}parseImportSpecifier(){const t=this.createNode();let e,n;return 3===this.lookahead.type?(e=this.parseVariableIdentifier(),n=e,this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseVariableIdentifier())):(e=8==this.lookahead.type?this.parseModuleSpecifier():this.parseIdentifierName(),n=e,this.matchContextualKeyword("as")?(this.nextToken(),n=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(t,new Qv(n,e))}parseNamedImports(){this.expect("{");const t=[];for(;!this.match("}");)t.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),t}parseImportDefaultSpecifier(){const t=this.createNode(),e=this.parseIdentifierName();return this.finalize(t,new Ov(e))}parseImportNamespaceSpecifier(){const t=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(sL),this.lookahead.escaped&&this.throwError(aL),this.nextToken();const e=this.parseIdentifierName();return this.finalize(t,new kv(e))}parseImportDeclaration(){this.context.inFunctionBody&&this.throwError(j_);const t=this.createNode();let e;this.expectKeyword("import");let n=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){const t=this.lookahead.value?kL:rL;this.throwError(t,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}const r=this.parseImportAttributes();return this.consumeSemicolon(),this.finalize(t,new Fv(n,e,r))}parseExportSpecifier(){const t=this.createNode(),e=8==this.lookahead.type?this.parseModuleSpecifier():this.parseIdentifierName();let n=e;return this.matchContextualKeyword("as")&&(this.lookahead.escaped&&this.throwError(aL),this.nextToken(),n=8==this.lookahead.type?this.parseModuleSpecifier():this.parseIdentifierName()),this.finalize(t,new Tv(e,n))}parseExportDeclaration(){this.context.inFunctionBody&&this.throwError(H_);const t=this.createNode();let e;if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){const n=this.parseFunctionDeclaration(!0);e=this.finalize(t,new Cv(n))}else if(this.matchKeyword("class")){const n=this.parseClassDeclaration(!0);e=this.finalize(t,new Cv(n))}else if(this.matchContextualKeyword("async")){const n=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();e=this.finalize(t,new Cv(n))}else{this.matchContextualKeyword("from")&&this.throwError(kL,this.lookahead.value);const n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),e=this.finalize(t,new Cv(n))}else if(this.match("*")){this.nextToken();let n=null;if(this.matchContextualKeyword("as")&&(this.lookahead.escaped&&this.throwError(aL),this.nextToken(),n=8==this.lookahead.type?this.parseModuleSpecifier():this.parseIdentifierName()),!this.matchContextualKeyword("from")){const t=this.lookahead.value?kL:rL;this.throwError(t,this.lookahead.value)}this.lookahead.escaped&&this.throwError(aL),this.nextToken();const r=this.parseModuleSpecifier(),i=this.parseImportAttributes();this.consumeSemicolon(),e=this.finalize(t,new Iv(r,n,i))}else if(4===this.lookahead.type){let n;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new Bv(n,[],null,null))}else if(this.matchAsyncFunction()){const n=this.parseFunctionDeclaration();e=this.finalize(t,new Bv(n,[],null,null))}else{const n=[];let r=null,i=!1,o=null;for(this.expect("{");!this.match("}");)i=i||this.matchKeyword("default"),n.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.lookahead.escaped&&this.throwError(aL),this.nextToken(),r=this.parseModuleSpecifier(),o=this.parseImportAttributes(),this.consumeSemicolon();else if(i){const t=this.lookahead.value?kL:rL;this.throwError(t,this.lookahead.value)}else o=this.parseImportAttributes(),this.consumeSemicolon();e=this.finalize(t,new Bv(null,n,r,o))}return e}}const JL={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"};function WL(t){let e;switch(t.type){case kS.JSXIdentifier:e=t.name;break;case kS.JSXNamespacedName:const n=t;e=WL(n.namespace)+":"+WL(n.name);break;case kS.JSXMemberExpression:const r=t;e=WL(r.object)+"."+WL(r.property)}return e}jL[100]="JSXIdentifier",jL[101]="JSXText";class qL extends zL{constructor(t,e,n){super(t,e,n)}parsePrimaryExpression(){return this.match("<")?this.parseJSXRoot():super.parsePrimaryExpression()}startJSX(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column}finishJSX(){this.nextToken()}reenterJSX(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()}createJSXNode(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}createJSXChildNode(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}scanXHTMLEntity(t){let e="&",n=!0,r=!1,i=!1,o=!1;for(;!this.scanner.eof()&&n&&!r;){const s=this.scanner.source[this.scanner.index];if(s===t)break;if(r=";"===s,e+=s,++this.scanner.index,!r)switch(e.length){case 2:i="#"===s;break;case 3:i&&(o="x"===s,n=o||OS.isDecimalDigit(s.charCodeAt(0)),i=i&&!o);break;default:n=n&&!(i&&!OS.isDecimalDigit(s.charCodeAt(0))),n=n&&!(o&&!OS.isHexDigit(s.charCodeAt(0)))}}if(n&&r&&e.length>2){const t=e.substr(1,e.length-2);i&&t.length>1?e=String.fromCharCode(parseInt(t.substr(1),10)):o&&t.length>2?e=String.fromCharCode(parseInt("0"+t.substr(1),16)):i||o||!JL[t]||(e=JL[t])}return e}lexJSX(){const t=this.scanner.source.charCodeAt(this.scanner.index);if(60===t||62===t||47===t||58===t||61===t||123===t||125===t){return{type:7,value:this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===t||39===t){const t=this.scanner.index,e=this.scanner.source[this.scanner.index++];let n="";for(;!this.scanner.eof();){const t=this.scanner.source[this.scanner.index++];if(t===e)break;n+="&"===t?this.scanXHTMLEntity(e):t}return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===t){const t=this.scanner.source.charCodeAt(this.scanner.index+1),e=this.scanner.source.charCodeAt(this.scanner.index+2),n=46===t&&46===e?"...":".",r=this.scanner.index;return this.scanner.index+=n.length,{type:7,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(96===t)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(OS.isIdentifierStart(t)&&92!==t){const t=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){const t=this.scanner.source.charCodeAt(this.scanner.index);if(OS.isIdentifierPart(t)&&92!==t)++this.scanner.index;else{if(45!==t)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()}nextJSXToken(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;const t=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(t)),t}nextJSXText(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;const t=this.scanner.index;let e="";for(;!this.scanner.eof();){const t=this.scanner.source[this.scanner.index];if("{"===t||"<"===t)break;++this.scanner.index,e+=t,OS.isLineTerminator(t.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===t&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;const n={type:101,value:e,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index};return e.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n}peekJSXToken(){const t=this.scanner.saveState();this.scanner.scanComments();const e=this.lexJSX();return this.scanner.restoreState(t),e}expectJSX(t){const e=this.nextJSXToken();7===e.type&&e.value===t||this.throwUnexpectedToken(e)}matchJSX(t){const e=this.peekJSXToken();return 7===e.type&&e.value===t}parseJSXIdentifier(){const t=this.createJSXNode(),e=this.nextJSXToken();return 100!==e.type&&this.throwUnexpectedToken(e),this.finalize(t,new HS(e.value))}parseJSXElementName(){const t=this.createJSXNode();let e=this.parseJSXIdentifier();if(this.matchJSX(":")){const n=e;this.expectJSX(":");const r=this.parseJSXIdentifier();e=this.finalize(t,new zS(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){const n=e;this.expectJSX(".");const r=this.parseJSXIdentifier();e=this.finalize(t,new jS(n,r))}return e}parseJSXAttributeName(){const t=this.createJSXNode();let e;const n=this.parseJSXIdentifier();if(this.matchJSX(":")){const r=n;this.expectJSX(":");const i=this.parseJSXIdentifier();e=this.finalize(t,new zS(r,i))}else e=n;return e}parseJSXStringLiteralAttribute(){const t=this.createJSXNode(),e=this.nextJSXToken();8!==e.type&&this.throwUnexpectedToken(e);const n=this.getTokenRaw(e);return this.finalize(t,new Pv(e.value,n))}parseJSXExpressionAttribute(){const t=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");const e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new VS(e))}parseJSXAttributeValue(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()}parseJSXNameValueAttribute(){const t=this.createJSXNode(),e=this.parseJSXAttributeName();let n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(t,new YS(e,n))}parseJSXSpreadAttribute(){const t=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();const e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new qS(e))}parseJSXAttributes(){const t=[];for(;!this.matchJSX("/")&&!this.matchJSX(">");){const e=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();t.push(e)}return t}parseJSXOpeningElement(){const t=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX(">"))return this.expectJSX(">"),this.finalize(t,new WS(!1));const e=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new JS(e,r,n))}parseJSXBoundaryElement(){const t=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){if(this.expectJSX("/"),this.matchJSX(">"))return this.expectJSX(">"),this.finalize(t,new US);const e=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(t,new QS(e))}const e=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new JS(e,r,n))}parseJSXEmptyExpression(){const t=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(t,new GS)}parseJSXExpressionContainer(){const t=this.createJSXNode();let e;return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new VS(e))}parseJSXChildren(){const t=[];for(;!this.scanner.eof();){const e=this.createJSXChildNode(),n=this.nextJSXText();if(n.start<n.end){const r=this.getTokenRaw(n),i=this.finalize(e,new KS(n.value,r));t.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;{const e=this.parseJSXExpressionContainer();t.push(e)}}return t}parseComplexJSXElement(t){const e=[];for(;!this.scanner.eof();){t.children=t.children.concat(this.parseJSXChildren());const n=this.createJSXChildNode(),r=this.parseJSXBoundaryElement();if(r.type===kS.JSXOpeningElement){const i=r;if(i.selfClosing){const e=this.finalize(n,new PS(i,[],null));t.children.push(e)}else e.push(t),t={node:n,opening:i,closing:null,children:[]}}if(r.type===kS.JSXClosingElement){t.closing=r;const n=WL(t.opening.name);if(n!==WL(t.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",n),!(e.length>0))break;{const n=this.finalize(t.node,new PS(t.opening,t.children,t.closing));(t=e[e.length-1]).children.push(n),e.pop()}}if(r.type===kS.JSXClosingFragment){if(t.closing=r,t.opening.type===kS.JSXOpeningFragment)break;this.tolerateError("Expected corresponding JSX closing tag for jsx fragment")}}return t}parseJSXElement(){const t=this.createJSXNode(),e=this.parseJSXOpeningElement();let n=[],r=null;if(!e.selfClosing){const i=this.parseComplexJSXElement({node:t,opening:e,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(t,new PS(e,n,r))}parseJSXRoot(){this.config.tokens&&this.tokens.pop(),this.startJSX();const t=this.parseJSXElement();return this.finishJSX(),t}isStartOfExpression(){return super.isStartOfExpression()||this.match("<")}}function KL(t,e,n){let r=null;const i=(t,e)=>{n&&n(t,e),r&&r.visit(t,e)};let o="function"==typeof n?i:null,s=!1;if(e){s="boolean"==typeof e.comment&&e.comment;const t="boolean"==typeof e.attachComment&&e.attachComment;(s||t)&&(r=new RS,r.attach=t,e.comment=!0,o=i)}let a,c=!1;e&&"string"==typeof e.sourceType&&(c="module"===e.sourceType),a=e&&"boolean"==typeof e.jsx&&e.jsx?new qL(t,e,o):new zL(t,e,o);const l=c?a.parseModule():a.parseScript();return s&&r&&(l.comments=r.comments),a.config.tokens&&(l.tokens=a.tokens),a.config.tolerant&&(l.errors=a.errorHandler.errors),l}function XL(t,e,n){const r=e||{};return r.sourceType="script",KL(t,r,n)}class ZL{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+ZL.version}static addUnaryOp(t){return ZL.max_unop_len=Math.max(t.length,ZL.max_unop_len),ZL.unary_ops[t]=1,ZL}static addBinaryOp(t,e,n){return ZL.max_binop_len=Math.max(t.length,ZL.max_binop_len),ZL.binary_ops[t]=e,n?ZL.right_associative.add(t):ZL.right_associative.delete(t),ZL}static addIdentifierChar(t){return ZL.additional_identifier_chars.add(t),ZL}static addLiteral(t,e){return ZL.literals[t]=e,ZL}static removeUnaryOp(t){return delete ZL.unary_ops[t],t.length===ZL.max_unop_len&&(ZL.max_unop_len=ZL.getMaxKeyLen(ZL.unary_ops)),ZL}static removeAllUnaryOps(){return ZL.unary_ops={},ZL.max_unop_len=0,ZL}static removeIdentifierChar(t){return ZL.additional_identifier_chars.delete(t),ZL}static removeBinaryOp(t){return delete ZL.binary_ops[t],t.length===ZL.max_binop_len&&(ZL.max_binop_len=ZL.getMaxKeyLen(ZL.binary_ops)),ZL.right_associative.delete(t),ZL}static removeAllBinaryOps(){return ZL.binary_ops={},ZL.max_binop_len=0,ZL}static removeLiteral(t){return delete ZL.literals[t],ZL}static removeAllLiterals(){return ZL.literals={},ZL}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new ZL(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(t=>t.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return ZL.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!ZL.binary_ops[String.fromCharCode(t)]||ZL.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return ZL.isIdentifierStart(t)||ZL.isDecimalDigit(t)}throwError(t){const e=new Error(t+" at character "+this.index);throw e.index=this.index,e.description=t,e}runHook(t,e){if(ZL.hooks[t]){const n={context:this,node:e};return ZL.hooks.run(t,n),n.node}return e}searchHook(t){if(ZL.hooks[t]){const e={context:this};return ZL.hooks[t].find(function(t){return t.call(e.context,e),e.node}),e.node}}gobbleSpaces(){let t=this.code;for(;t===ZL.SPACE_CODE||t===ZL.TAB_CODE||t===ZL.LF_CODE||t===ZL.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");const t=this.gobbleExpressions(),e=1===t.length?t[0]:{type:ZL.COMPOUND,body:t};return this.runHook("after-all",e)}gobbleExpressions(t){let e,n,r=[];for(;this.index<this.expr.length;)if(e=this.code,e===ZL.SEMCOL_CODE||e===ZL.COMMA_CODE)this.index++;else if(n=this.gobbleExpression())r.push(n);else if(this.index<this.expr.length){if(e===t)break;this.throwError('Unexpected "'+this.char+'"')}return r}gobbleExpression(){const t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,ZL.max_binop_len),e=t.length;for(;e>0;){if(ZL.binary_ops.hasOwnProperty(t)&&(!ZL.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!ZL.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=e,t;t=t.substr(0,--e)}return!1}gobbleBinaryExpression(){let t,e,n,r,i,o,s,a,c;if(o=this.gobbleToken(),!o)return o;if(e=this.gobbleBinaryOp(),!e)return o;for(i={value:e,prec:ZL.binaryPrecedence(e),right_a:ZL.right_associative.has(e)},s=this.gobbleToken(),s||this.throwError("Expected expression after "+e),r=[o,i,s];e=this.gobbleBinaryOp();){if(n=ZL.binaryPrecedence(e),0===n){this.index-=e.length;break}i={value:e,prec:n,right_a:ZL.right_associative.has(e)},c=e;const a=t=>i.right_a&&t.right_a?n>t.prec:n<=t.prec;for(;r.length>2&&a(r[r.length-2]);)s=r.pop(),e=r.pop().value,o=r.pop(),t={type:ZL.BINARY_EXP,operator:e,left:o,right:s},r.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+c),r.push(i,t)}for(a=r.length-1,t=r[a];a>1;)t={type:ZL.BINARY_EXP,operator:r[a-1].value,left:r[a-2],right:t},a-=2;return t}gobbleToken(){let t,e,n,r;if(this.gobbleSpaces(),r=this.searchHook("gobble-token"),r)return this.runHook("after-token",r);if(t=this.code,ZL.isDecimalDigit(t)||t===ZL.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===ZL.SQUOTE_CODE||t===ZL.DQUOTE_CODE)r=this.gobbleStringLiteral();else if(t===ZL.OBRACK_CODE)r=this.gobbleArray();else{for(e=this.expr.substr(this.index,ZL.max_unop_len),n=e.length;n>0;){if(ZL.unary_ops.hasOwnProperty(e)&&(!ZL.isIdentifierStart(this.code)||this.index+e.length<this.expr.length&&!ZL.isIdentifierPart(this.expr.charCodeAt(this.index+e.length)))){this.index+=n;const t=this.gobbleToken();return t||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:ZL.UNARY_EXP,operator:e,argument:t,prefix:!0})}e=e.substr(0,--n)}ZL.isIdentifierStart(t)?(r=this.gobbleIdentifier(),ZL.literals.hasOwnProperty(r.name)?r={type:ZL.LITERAL,value:ZL.literals[r.name],raw:r.name}:r.name===ZL.this_str&&(r={type:ZL.THIS_EXP})):t===ZL.OPAREN_CODE&&(r=this.gobbleGroup())}return r?(r=this.gobbleTokenProperty(r),this.runHook("after-token",r)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let e=this.code;for(;e===ZL.PERIOD_CODE||e===ZL.OBRACK_CODE||e===ZL.OPAREN_CODE||e===ZL.QUMARK_CODE;){let n;if(e===ZL.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==ZL.PERIOD_CODE)break;n=!0,this.index+=2,this.gobbleSpaces(),e=this.code}this.index++,e===ZL.OBRACK_CODE?((t={type:ZL.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()}).property||this.throwError('Unexpected "'+this.char+'"'),this.gobbleSpaces(),e=this.code,e!==ZL.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):e===ZL.OPAREN_CODE?t={type:ZL.CALL_EXP,arguments:this.gobbleArguments(ZL.CPAREN_CODE),callee:t}:(e===ZL.PERIOD_CODE||n)&&(n&&this.index--,this.gobbleSpaces(),t={type:ZL.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),n&&(t.optional=!0),this.gobbleSpaces(),e=this.code}return t}gobbleNumericLiteral(){let t,e,n="";for(;ZL.isDecimalDigit(this.code);)n+=this.expr.charAt(this.index++);if(this.code===ZL.PERIOD_CODE)for(n+=this.expr.charAt(this.index++);ZL.isDecimalDigit(this.code);)n+=this.expr.charAt(this.index++);if(t=this.char,"e"===t||"E"===t){for(n+=this.expr.charAt(this.index++),t=this.char,"+"!==t&&"-"!==t||(n+=this.expr.charAt(this.index++));ZL.isDecimalDigit(this.code);)n+=this.expr.charAt(this.index++);ZL.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+n+this.char+")")}return e=this.code,ZL.isIdentifierStart(e)?this.throwError("Variable names cannot start with a number ("+n+this.char+")"):(e===ZL.PERIOD_CODE||1===n.length&&n.charCodeAt(0)===ZL.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:ZL.LITERAL,value:parseFloat(n),raw:n}}gobbleStringLiteral(){let t="";const e=this.index,n=this.expr.charAt(this.index++);let r=!1;for(;this.index<this.expr.length;){let e=this.expr.charAt(this.index++);if(e===n){r=!0;break}if("\\"===e)switch(e=this.expr.charAt(this.index++),e){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+="\t";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=e}else t+=e}return r||this.throwError('Unclosed quote after "'+t+'"'),{type:ZL.LITERAL,value:t,raw:this.expr.substring(e,this.index)}}gobbleIdentifier(){let t=this.code,e=this.index;for(ZL.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,ZL.isIdentifierPart(t));)this.index++;return{type:ZL.IDENTIFIER,name:this.expr.slice(e,this.index)}}gobbleArguments(t){const e=[];let n=!1,r=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let i=this.code;if(i===t){n=!0,this.index++,t===ZL.CPAREN_CODE&&r&&r>=e.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}if(i===ZL.COMMA_CODE){if(this.index++,r++,r!==e.length)if(t===ZL.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===ZL.CBRACK_CODE)for(let t=e.length;t<r;t++)e.push(null)}else if(e.length!==r&&0!==r)this.throwError("Expected comma");else{const t=this.gobbleExpression();t&&t.type!==ZL.COMPOUND||this.throwError("Expected comma"),e.push(t)}}return n||this.throwError("Expected "+String.fromCharCode(t)),e}gobbleGroup(){this.index++;let t=this.gobbleExpressions(ZL.CPAREN_CODE);if(this.code===ZL.CPAREN_CODE)return this.index++,1===t.length?t[0]:!!t.length&&{type:ZL.SEQUENCE_EXP,expressions:t};this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:ZL.ARRAY_EXP,elements:this.gobbleArguments(ZL.CBRACK_CODE)}}}const $L=new class{add(t,e,n){if("string"!=typeof arguments[0])for(let t in arguments[0])this.add(t,arguments[0][t],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(t){this[t]=this[t]||[],e&&this[t][n?"unshift":"push"](e)},this)}run(t,e){this[t]=this[t]||[],this[t].forEach(function(t){t.call(e&&e.context?e.context:e,e)})}};Object.assign(ZL,{hooks:$L,plugins:new class{constructor(t){this.jsep=t,this.registered={}}register(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];e.forEach(t=>{if("object"!=typeof t||!t.name||!t.init)throw new Error("Invalid JSEP plugin format");this.registered[t.name]||(t.init(this.jsep),this.registered[t.name]=t)})}}(ZL),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"??":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"}),ZL.max_unop_len=ZL.getMaxKeyLen(ZL.unary_ops),ZL.max_binop_len=ZL.getMaxKeyLen(ZL.binary_ops);const tx=t=>new ZL(t).parse(),ex=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(ZL).filter(t=>!ex.includes(t)&&void 0===tx[t]).forEach(t=>{tx[t]=ZL[t]}),tx.Jsep=ZL;var nx={name:"ternary",init(t){t.hooks.add("after-expression",function(e){if(e.node&&this.code===t.QUMARK_CODE){this.index++;const n=e.node,r=this.gobbleExpression();if(r||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;const i=this.gobbleExpression();if(i||this.throwError("Expected expression"),e.node={type:"ConditionalExpression",test:n,consequent:r,alternate:i},n.operator&&t.binary_ops[n.operator]<=.9){let r=n;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;e.node.test=r.right,r.right=e.node,e.node=n}}else this.throwError("Expected :")}})}};tx.plugins.register(nx);var rx={name:"regex",init(t){t.hooks.add("gobble-token",function(e){if(47===this.code){const n=++this.index;let r=!1;for(;this.index<this.expr.length;){if(47===this.code&&!r){const r=this.expr.slice(n,this.index);let i,o="";for(;++this.index<this.expr.length;){const t=this.code;if(!(t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57))break;o+=this.char}try{i=new RegExp(r,o)}catch(t){this.throwError(t.message)}return e.node={type:t.LITERAL,value:i,raw:this.expr.slice(n-1,this.index)},e.node=this.gobbleTokenProperty(e.node),e.node}this.code===t.OBRACK_CODE?r=!0:r&&this.code===t.CBRACK_CODE&&(r=!1),this.index+=92===this.code?2:1}this.throwError("Unclosed Regex")}})}};const ix={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[43,45],assignmentPrecedence:.9,init(t){const e=[t.IDENTIFIER,t.MEMBER_EXP];function n(t){ix.assignmentOperators.has(t.operator)?(t.type="AssignmentExpression",n(t.left),n(t.right)):t.operator||Object.values(t).forEach(t=>{t&&"object"==typeof t&&n(t)})}ix.assignmentOperators.forEach(e=>t.addBinaryOp(e,ix.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(t){const n=this.code;ix.updateOperators.some(t=>t===n&&t===this.expr.charCodeAt(this.index+1))&&(this.index+=2,t.node={type:"UpdateExpression",operator:43===n?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},t.node.argument&&e.includes(t.node.argument.type)||this.throwError(`Unexpected ${t.node.operator}`))}),t.hooks.add("after-token",function(t){if(t.node){const n=this.code;ix.updateOperators.some(t=>t===n&&t===this.expr.charCodeAt(this.index+1))&&(e.includes(t.node.type)||this.throwError(`Unexpected ${t.node.operator}`),this.index+=2,t.node={type:"UpdateExpression",operator:43===n?"++":"--",argument:t.node,prefix:!1})}}),t.hooks.add("after-expression",function(t){t.node&&n(t.node)})}};tx.plugins.register(rx,ix),tx.addUnaryOp("typeof"),tx.addLiteral("null",null),tx.addLiteral("undefined",void 0);const ox=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),sx={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return sx.evalBinaryExpression(t,e);case"Compound":return sx.evalCompound(t,e);case"ConditionalExpression":return sx.evalConditionalExpression(t,e);case"Identifier":return sx.evalIdentifier(t,e);case"Literal":return sx.evalLiteral(t,e);case"MemberExpression":return sx.evalMemberExpression(t,e);case"UnaryExpression":return sx.evalUnaryExpression(t,e);case"ArrayExpression":return sx.evalArrayExpression(t,e);case"CallExpression":return sx.evalCallExpression(t,e);case"AssignmentExpression":return sx.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression:(t,e)=>({"||":(t,e)=>t||e(),"&&":(t,e)=>t&&e(),"|":(t,e)=>t|e(),"^":(t,e)=>t^e(),"&":(t,e)=>t&e(),"==":(t,e)=>t==e(),"!=":(t,e)=>t!=e(),"===":(t,e)=>t===e(),"!==":(t,e)=>t!==e(),"<":(t,e)=>t<e(),">":(t,e)=>t>e(),"<=":(t,e)=>t<=e(),">=":(t,e)=>t>=e(),"<<":(t,e)=>t<<e(),">>":(t,e)=>t>>e(),">>>":(t,e)=>t>>>e(),"+":(t,e)=>t+e(),"-":(t,e)=>t-e(),"*":(t,e)=>t*e(),"/":(t,e)=>t/e(),"%":(t,e)=>t%e()}[t.operator](sx.evalAst(t.left,e),()=>sx.evalAst(t.right,e))),evalCompound(t,e){let n;for(let r=0;r<t.body.length;r++){"Identifier"===t.body[r].type&&["var","let","const"].includes(t.body[r].name)&&t.body[r+1]&&"AssignmentExpression"===t.body[r+1].type&&(r+=1);const i=t.body[r];n=sx.evalAst(i,e)}return n},evalConditionalExpression:(t,e)=>sx.evalAst(t.test,e)?sx.evalAst(t.consequent,e):sx.evalAst(t.alternate,e),evalIdentifier(t,e){if(Object.hasOwn(e,t.name))return e[t.name];throw ReferenceError(`${t.name} is not defined`)},evalLiteral:t=>t.value,evalMemberExpression(t,e){const n=String(t.computed?sx.evalAst(t.property):t.property.name),r=sx.evalAst(t.object,e);if(null==r)throw TypeError(`Cannot read properties of ${r} (reading '${n}')`);if(!Object.hasOwn(r,n)&&ox.has(n))throw TypeError(`Cannot read properties of ${r} (reading '${n}')`);const i=r[n];return"function"==typeof i?i.bind(r):i},evalUnaryExpression:(t,e)=>({"-":t=>-sx.evalAst(t,e),"!":t=>!sx.evalAst(t,e),"~":t=>~sx.evalAst(t,e),"+":t=>+sx.evalAst(t,e),typeof:t=>typeof sx.evalAst(t,e)}[t.operator](t.argument)),evalArrayExpression:(t,e)=>t.elements.map(t=>sx.evalAst(t,e)),evalCallExpression(t,e){const n=t.arguments.map(t=>sx.evalAst(t,e));return sx.evalAst(t.callee,e)(...n)},evalAssignmentExpression(t,e){if("Identifier"!==t.left.type)throw SyntaxError("Invalid left-hand side in assignment");const n=t.left.name,r=sx.evalAst(t.right,e);return e[n]=r,e[n]}};function ax(t,e){return(t=t.slice()).push(e),t}function cx(t,e){return(e=e.slice()).unshift(t),e}class lx extends Error{constructor(t){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=t,this.name="NewError"}}function ux(t,e,n,r,i){if(!(this instanceof ux))try{return new ux(t,e,n,r,i)}catch(t){if(!t.avoidNew)throw t;return t.value}"string"==typeof t&&(i=r,r=n,n=e,e=t,t=null);const o=t&&"object"==typeof t;if(t=t||{},this.json=t.json||n,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=!Object.hasOwn(t,"wrap")||t.wrap,this.sandbox=t.sandbox||{},this.eval=void 0===t.eval?"safe":t.eval,this.ignoreEvalErrors=void 0!==t.ignoreEvalErrors&&t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||r||null,this.otherTypeCallback=t.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},!1!==t.autostart){const r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=n;const i=this.evaluate(r);if(!i||"object"!=typeof i)throw new lx(i);return i}}ux.prototype.evaluate=function(t,e,n,r){let i=this.parent,o=this.parentProperty,{flatten:s,wrap:a}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,n=n||this.callback,this.currOtherTypeCallback=r||this.otherTypeCallback,e=e||this.json,(t=t||this.path)&&"object"==typeof t&&!Array.isArray(t)){if(!t.path&&""!==t.path)throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),s=Object.hasOwn(t,"flatten")?t.flatten:s,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,a=Object.hasOwn(t,"wrap")?t.wrap:a,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,n=Object.hasOwn(t,"callback")?t.callback:n,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,i=Object.hasOwn(t,"parent")?t.parent:i,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(i=i||null,o=o||null,Array.isArray(t)&&(t=ux.toPathString(t)),!t&&""!==t||!e)return;const c=ux.toPathArray(t);"$"===c[0]&&c.length>1&&c.shift(),this._hasParentSelector=null;const l=this._trace(c,e,["$"],i,o,n).filter(function(t){return t&&!t.isParentSelector});return l.length?a||1!==l.length||l[0].hasArrExpr?l.reduce((t,e)=>{const n=this._getPreferredOutput(e);return s&&Array.isArray(n)?t=t.concat(n):t.push(n),t},[]):this._getPreferredOutput(l[0]):a?[]:void 0},ux.prototype._getPreferredOutput=function(t){const e=this.currResultType;switch(e){case"all":{const e=Array.isArray(t.path)?t.path:ux.toPathArray(t.path);return t.pointer=ux.toPointer(e),t.path="string"==typeof t.path?t.path:ux.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return ux.toPathString(t[e]);case"pointer":return ux.toPointer(t.path);default:throw new TypeError("Unknown result type")}},ux.prototype._handleCallback=function(t,e,n){if(e){const r=this._getPreferredOutput(t);t.path="string"==typeof t.path?t.path:ux.toPathString(t.path),e(r,n,t)}},ux.prototype._trace=function(t,e,n,r,i,o,s,a){let c;if(!t.length)return c={path:n,value:e,parent:r,parentProperty:i,hasArrExpr:s},this._handleCallback(c,o,"value"),c;const l=t[0],u=t.slice(1),h=[];function d(t){Array.isArray(t)?t.forEach(t=>{h.push(t)}):h.push(t)}if(("string"!=typeof l||a)&&e&&Object.hasOwn(e,l))d(this._trace(u,e[l],ax(n,l),e,l,o,s));else if("*"===l)this._walk(e,t=>{d(this._trace(u,e[t],ax(n,t),e,t,o,!0,!0))});else if(".."===l)d(this._trace(u,e,n,r,i,o,s)),this._walk(e,r=>{"object"==typeof e[r]&&d(this._trace(t.slice(),e[r],ax(n,r),e,r,o,!0))});else{if("^"===l)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:u,isParentSelector:!0};if("~"===l)return c={path:ax(n,l),value:i,parent:r,parentProperty:null},this._handleCallback(c,o,"property"),c;if("$"===l)d(this._trace(u,e,n,null,null,o,s));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(l))d(this._slice(l,u,e,n,r,i,o));else if(0===l.indexOf("?(")){if(!1===this.currEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");const t=l.replace(/^\?\((.*?)\)$/u,"$1"),s=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(t);s?this._walk(e,t=>{const a=[s[2]],c=s[1]?e[t][s[1]]:e[t];this._trace(a,c,n,r,i,o,!0).length>0&&d(this._trace(u,e[t],ax(n,t),e,t,o,!0))}):this._walk(e,s=>{this._eval(t,e[s],s,n,r,i)&&d(this._trace(u,e[s],ax(n,s),e,s,o,!0))})}else if("("===l[0]){if(!1===this.currEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");d(this._trace(cx(this._eval(l,e,n.at(-1),n.slice(0,-1),r,i),u),e,n,r,i,o,s))}else if("@"===l[0]){let t=!1;const s=l.slice(1,-2);switch(s){case"scalar":e&&["object","function"].includes(typeof e)||(t=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===s&&(t=!0);break;case"integer":!Number.isFinite(e)||e%1||(t=!0);break;case"number":Number.isFinite(e)&&(t=!0);break;case"nonFinite":"number"!=typeof e||Number.isFinite(e)||(t=!0);break;case"object":e&&typeof e===s&&(t=!0);break;case"array":Array.isArray(e)&&(t=!0);break;case"other":t=this.currOtherTypeCallback(e,n,r,i);break;case"null":null===e&&(t=!0);break;default:throw new TypeError("Unknown value type "+s)}if(t)return c={path:n,value:e,parent:r,parentProperty:i},this._handleCallback(c,o,"value"),c}else if("`"===l[0]&&e&&Object.hasOwn(e,l.slice(1))){const t=l.slice(1);d(this._trace(u,e[t],ax(n,t),e,t,o,s,!0))}else if(l.includes(",")){const t=l.split(",");for(const s of t)d(this._trace(cx(s,u),e,n,r,i,o,!0))}else!a&&e&&Object.hasOwn(e,l)&&d(this._trace(u,e[l],ax(n,l),e,l,o,s,!0))}if(this._hasParentSelector)for(let t=0;t<h.length;t++){const n=h[t];if(n&&n.isParentSelector){const a=this._trace(n.expr,e,n.path,r,i,o,s);if(Array.isArray(a)){h[t]=a[0];const e=a.length;for(let n=1;n<e;n++)t++,h.splice(t,0,a[n])}else h[t]=a}}return h},ux.prototype._walk=function(t,e){if(Array.isArray(t)){const n=t.length;for(let t=0;t<n;t++)e(t)}else t&&"object"==typeof t&&Object.keys(t).forEach(t=>{e(t)})},ux.prototype._slice=function(t,e,n,r,i,o,s){if(!Array.isArray(n))return;const a=n.length,c=t.split(":"),l=c[2]&&Number.parseInt(c[2])||1;let u=c[0]&&Number.parseInt(c[0])||0,h=c[1]&&Number.parseInt(c[1])||a;u=u<0?Math.max(0,u+a):Math.min(a,u),h=h<0?Math.max(0,h+a):Math.min(a,h);const d=[];for(let t=u;t<h;t+=l){this._trace(cx(t,e),n,r,i,o,s,!0).forEach(t=>{d.push(t)})}return d},ux.prototype._eval=function(t,e,n,r,i,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=i,this.currSandbox._$_property=n,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;const s=t.includes("@path");s&&(this.currSandbox._$_path=ux.toPathString(r.concat([n])));const a=this.currEval+"Script:"+t;if(!ux.cache[a]){let e=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(s&&(e=e.replaceAll("@path","_$_path")),"safe"===this.currEval||!0===this.currEval||void 0===this.currEval)ux.cache[a]=new this.safeVm.Script(e);else if("native"===this.currEval)ux.cache[a]=new this.vm.Script(e);else if("function"==typeof this.currEval&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){const t=this.currEval;ux.cache[a]=new t(e)}else{if("function"!=typeof this.currEval)throw new TypeError(`Unknown "eval" property "${this.currEval}"`);ux.cache[a]={runInNewContext:t=>this.currEval(e,t)}}}try{return ux.cache[a].runInNewContext(this.currSandbox)}catch(e){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+e.message+": "+t)}},ux.cache={},ux.toPathString=function(t){const e=t,n=e.length;let r="$";for(let t=1;t<n;t++)/^(~|\^|@.*?\(\))$/u.test(e[t])||(r+=/^[0-9*]+$/u.test(e[t])?"["+e[t]+"]":"['"+e[t]+"']");return r},ux.toPointer=function(t){const e=t,n=e.length;let r="";for(let t=1;t<n;t++)/^(~|\^|@.*?\(\))$/u.test(e[t])||(r+="/"+e[t].toString().replaceAll("~","~0").replaceAll("/","~1"));return r},ux.toPathArray=function(t){const{cache:e}=ux;if(e[t])return e[t].concat();const n=[],r=t.replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu,";$&;").replaceAll(/[['](\??\(.*?\))[\]'](?!.\])/gu,function(t,e){return"[#"+(n.push(e)-1)+"]"}).replaceAll(/\[['"]([^'\]]*)['"]\]/gu,function(t,e){return"['"+e.replaceAll(".","%@%").replaceAll("~","%%@@%%")+"']"}).replaceAll("~",";~;").replaceAll(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu,";").replaceAll("%@%",".").replaceAll("%%@@%%","~").replaceAll(/(?:;)?(\^+)(?:;)?/gu,function(t,e){return";"+e.split("").join(";")+";"}).replaceAll(/;;;|;;/gu,";..;").replaceAll(/;$|'?\]|'$/gu,"").split(";").map(function(t){const e=t.match(/#(\d+)/u);return e&&e[1]?n[e[1]]:t});return e[t]=r,e[t].concat()},ux.prototype.safeVm={Script:class{constructor(t){this.code=t,this.ast=tx(this.code)}runInNewContext(t){const e=Object.assign(Object.create(null),t);return sx.evalAst(this.ast,e)}}};ux.prototype.vm={Script:class{constructor(t){this.code=t}runInNewContext(t){let e=this.code;const n=Object.keys(t),r=[];!function(t,e,n){const r=t.length;for(let i=0;i<r;i++)n(t[i])&&e.push(t.splice(i--,1)[0])}(n,r,e=>"function"==typeof t[e]);const i=n.map(e=>t[e]);e=r.reduce((e,n)=>{let r=t[n].toString();return/function/u.test(r)||(r="function "+r),"var "+n+"="+r+";"+e},"")+e,/(['"])use strict\1/u.test(e)||n.includes("arguments")||(e="var arguments = undefined;"+e),e=e.replace(/;\s*$/u,"");const o=e.lastIndexOf(";"),s=-1!==o?e.slice(0,o+1)+" return "+e.slice(o+1):" return "+e;return new Function(...n,s)(...i)}}};const hx=new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]),dx="�";var px;!function(t){t[t.EOF=-1]="EOF",t[t.NULL=0]="NULL",t[t.TABULATION=9]="TABULATION",t[t.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",t[t.LINE_FEED=10]="LINE_FEED",t[t.FORM_FEED=12]="FORM_FEED",t[t.SPACE=32]="SPACE",t[t.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",t[t.QUOTATION_MARK=34]="QUOTATION_MARK",t[t.AMPERSAND=38]="AMPERSAND",t[t.APOSTROPHE=39]="APOSTROPHE",t[t.HYPHEN_MINUS=45]="HYPHEN_MINUS",t[t.SOLIDUS=47]="SOLIDUS",t[t.DIGIT_0=48]="DIGIT_0",t[t.DIGIT_9=57]="DIGIT_9",t[t.SEMICOLON=59]="SEMICOLON",t[t.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",t[t.EQUALS_SIGN=61]="EQUALS_SIGN",t[t.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",t[t.QUESTION_MARK=63]="QUESTION_MARK",t[t.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",t[t.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",t[t.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",t[t.GRAVE_ACCENT=96]="GRAVE_ACCENT",t[t.LATIN_SMALL_A=97]="LATIN_SMALL_A",t[t.LATIN_SMALL_Z=122]="LATIN_SMALL_Z"}(px||(px={}));const fx="--",Ax="[CDATA[",gx="doctype",Ex="script",mx="public",yx="system";function wx(t){return t>=55296&&t<=57343}function Ix(t){return 32!==t&&10!==t&&13!==t&&9!==t&&12!==t&&t>=1&&t<=31||t>=127&&t<=159}function Cx(t){return t>=64976&&t<=65007||hx.has(t)}var Bx;!function(t){t.controlCharacterInInputStream="control-character-in-input-stream",t.noncharacterInInputStream="noncharacter-in-input-stream",t.surrogateInInputStream="surrogate-in-input-stream",t.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",t.endTagWithAttributes="end-tag-with-attributes",t.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",t.unexpectedSolidusInTag="unexpected-solidus-in-tag",t.unexpectedNullCharacter="unexpected-null-character",t.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",t.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",t.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",t.missingEndTagName="missing-end-tag-name",t.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",t.unknownNamedCharacterReference="unknown-named-character-reference",t.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",t.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",t.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",t.eofBeforeTagName="eof-before-tag-name",t.eofInTag="eof-in-tag",t.missingAttributeValue="missing-attribute-value",t.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",t.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",t.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",t.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",t.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",t.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",t.missingDoctypePublicIdentifier="missing-doctype-public-identifier",t.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",t.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",t.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",t.cdataInHtmlContent="cdata-in-html-content",t.incorrectlyOpenedComment="incorrectly-opened-comment",t.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",t.eofInDoctype="eof-in-doctype",t.nestedComment="nested-comment",t.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",t.eofInComment="eof-in-comment",t.incorrectlyClosedComment="incorrectly-closed-comment",t.eofInCdata="eof-in-cdata",t.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",t.nullCharacterReference="null-character-reference",t.surrogateCharacterReference="surrogate-character-reference",t.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",t.controlCharacterReference="control-character-reference",t.noncharacterCharacterReference="noncharacter-character-reference",t.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",t.missingDoctypeName="missing-doctype-name",t.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",t.duplicateAttribute="duplicate-attribute",t.nonConformingDoctype="non-conforming-doctype",t.missingDoctype="missing-doctype",t.misplacedDoctype="misplaced-doctype",t.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",t.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",t.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",t.openElementsLeftAfterEof="open-elements-left-after-eof",t.abandonedHeadElementChild="abandoned-head-element-child",t.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",t.nestedNoscriptInHead="nested-noscript-in-head",t.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"}(Bx||(Bx={}));class Tx{constructor(t){this.handler=t,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+Number(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(t,e){const{line:n,col:r,offset:i}=this,o=r+e,s=i+e;return{code:t,startLine:n,endLine:n,startCol:o,endCol:o,startOffset:s,endOffset:s}}_err(t){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(t,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(t){if(this.pos!==this.html.length-1){const e=this.html.charCodeAt(this.pos+1);if(function(t){return t>=56320&&t<=57343}(e))return this.pos++,this._addGap(),1024*(t-55296)+9216+e}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,px.EOF;return this._err(Bx.surrogateInInputStream),t}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(t,e){this.html.length>0?this.html+=t:this.html=t,this.endOfChunkHit=!1,this.lastChunkWritten=e}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(t,e){if(this.pos+t.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(e)return this.html.startsWith(t,this.pos);for(let e=0;e<t.length;e++){if((32|this.html.charCodeAt(this.pos+e))!==t.charCodeAt(e))return!1}return!0}peek(t){const e=this.pos+t;if(e>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,px.EOF;const n=this.html.charCodeAt(e);return n===px.CARRIAGE_RETURN?px.LINE_FEED:n}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,px.EOF;let t=this.html.charCodeAt(this.pos);if(t===px.CARRIAGE_RETURN)return this.isEol=!0,this.skipNextNewLine=!0,px.LINE_FEED;if(t===px.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine))return this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance();this.skipNextNewLine=!1,wx(t)&&(t=this._processSurrogate(t));return null===this.handler.onParseError||t>31&&t<127||t===px.LINE_FEED||t===px.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t}_checkForProblematicCharacters(t){Ix(t)?this._err(Bx.controlCharacterInInputStream):Cx(t)&&this._err(Bx.noncharacterInInputStream)}retreat(t){for(this.pos-=t;this.pos<this.lastGapPos;)this.lastGapPos=this.gapStack.pop(),this.pos--;this.isEol=!1}}var bx;function Dx(t,e){for(let n=t.attrs.length-1;n>=0;n--)if(t.attrs[n].name===e)return t.attrs[n].value;return null}!function(t){t[t.CHARACTER=0]="CHARACTER",t[t.NULL_CHARACTER=1]="NULL_CHARACTER",t[t.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",t[t.START_TAG=3]="START_TAG",t[t.END_TAG=4]="END_TAG",t[t.COMMENT=5]="COMMENT",t[t.DOCTYPE=6]="DOCTYPE",t[t.EOF=7]="EOF",t[t.HIBERNATION=8]="HIBERNATION"}(bx||(bx={}));const Mx=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(t=>t.charCodeAt(0)));var Nx;const Sx=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);Nx=String.fromCodePoint;function vx(t){var e;return t>=55296&&t<=57343||t>1114111?65533:null!==(e=Sx.get(t))&&void 0!==e?e:t}var _x;!function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(_x||(_x={}));var Lx,xx,Rx;function Fx(t){return t>=_x.ZERO&&t<=_x.NINE}function Ox(t){return t>=_x.UPPER_A&&t<=_x.UPPER_F||t>=_x.LOWER_A&&t<=_x.LOWER_F}function kx(t){return t===_x.EQUALS||function(t){return t>=_x.UPPER_A&&t<=_x.UPPER_Z||t>=_x.LOWER_A&&t<=_x.LOWER_Z||Fx(t)}(t)}!function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(Lx||(Lx={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(xx||(xx={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(Rx||(Rx={}));class Qx{constructor(t,e,n){this.decodeTree=t,this.emitCodePoint=e,this.errors=n,this.state=xx.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Rx.Strict}startEntity(t){this.decodeMode=t,this.state=xx.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case xx.EntityStart:return t.charCodeAt(e)===_x.NUM?(this.state=xx.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=xx.NamedEntity,this.stateNamedEntity(t,e));case xx.NumericStart:return this.stateNumericStart(t,e);case xx.NumericDecimal:return this.stateNumericDecimal(t,e);case xx.NumericHex:return this.stateNumericHex(t,e);case xx.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(32|t.charCodeAt(e))===_x.LOWER_X?(this.state=xx.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=xx.NumericDecimal,this.stateNumericDecimal(t,e))}addToNumericResult(t,e,n,r){if(e!==n){const i=n-e;this.result=this.result*Math.pow(r,i)+Number.parseInt(t.substr(e,i),r),this.consumed+=i}}stateNumericHex(t,e){const n=e;for(;e<t.length;){const r=t.charCodeAt(e);if(!Fx(r)&&!Ox(r))return this.addToNumericResult(t,n,e,16),this.emitNumericEntity(r,3);e+=1}return this.addToNumericResult(t,n,e,16),-1}stateNumericDecimal(t,e){const n=e;for(;e<t.length;){const r=t.charCodeAt(e);if(!Fx(r))return this.addToNumericResult(t,n,e,10),this.emitNumericEntity(r,2);e+=1}return this.addToNumericResult(t,n,e,10),-1}emitNumericEntity(t,e){var n;if(this.consumed<=e)return null===(n=this.errors)||void 0===n||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===_x.SEMI)this.consumed+=1;else if(this.decodeMode===Rx.Strict)return 0;return this.emitCodePoint(vx(this.result),this.consumed),this.errors&&(t!==_x.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,e){const{decodeTree:n}=this;let r=n[this.treeIndex],i=(r&Lx.VALUE_LENGTH)>>14;for(;e<t.length;e++,this.excess++){const o=t.charCodeAt(e);if(this.treeIndex=Ux(n,r,this.treeIndex+Math.max(1,i),o),this.treeIndex<0)return 0===this.result||this.decodeMode===Rx.Attribute&&(0===i||kx(o))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&Lx.VALUE_LENGTH)>>14,0!==i){if(o===_x.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==Rx.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:e,decodeTree:n}=this,r=(n[e]&Lx.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,r,this.consumed),null===(t=this.errors)||void 0===t||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,e,n){const{decodeTree:r}=this;return this.emitCodePoint(1===e?r[t]&~Lx.VALUE_LENGTH:r[t+1],n),3===e&&this.emitCodePoint(r[t+2],n),n}end(){var t;switch(this.state){case xx.NamedEntity:return 0===this.result||this.decodeMode===Rx.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case xx.NumericDecimal:return this.emitNumericEntity(0,2);case xx.NumericHex:return this.emitNumericEntity(0,3);case xx.NumericStart:return null===(t=this.errors)||void 0===t||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case xx.EntityStart:return 0}}}function Ux(t,e,n,r){const i=(e&Lx.BRANCH_LENGTH)>>7,o=e&Lx.JUMP_TABLE;if(0===i)return 0!==o&&r===o?n:-1;if(o){const e=r-o;return e<0||e>=i?-1:t[n+e]-1}let s=n,a=s+i-1;for(;s<=a;){const e=s+a>>>1,n=t[e];if(n<r)s=e+1;else{if(!(n>r))return t[e+i];a=e-1}}return-1}var Px,Gx,Vx,Hx,jx;!function(t){t.HTML="http://www.w3.org/1999/xhtml",t.MATHML="http://www.w3.org/1998/Math/MathML",t.SVG="http://www.w3.org/2000/svg",t.XLINK="http://www.w3.org/1999/xlink",t.XML="http://www.w3.org/XML/1998/namespace",t.XMLNS="http://www.w3.org/2000/xmlns/"}(Px||(Px={})),function(t){t.TYPE="type",t.ACTION="action",t.ENCODING="encoding",t.PROMPT="prompt",t.NAME="name",t.COLOR="color",t.FACE="face",t.SIZE="size"}(Gx||(Gx={})),function(t){t.NO_QUIRKS="no-quirks",t.QUIRKS="quirks",t.LIMITED_QUIRKS="limited-quirks"}(Vx||(Vx={})),function(t){t.A="a",t.ADDRESS="address",t.ANNOTATION_XML="annotation-xml",t.APPLET="applet",t.AREA="area",t.ARTICLE="article",t.ASIDE="aside",t.B="b",t.BASE="base",t.BASEFONT="basefont",t.BGSOUND="bgsound",t.BIG="big",t.BLOCKQUOTE="blockquote",t.BODY="body",t.BR="br",t.BUTTON="button",t.CAPTION="caption",t.CENTER="center",t.CODE="code",t.COL="col",t.COLGROUP="colgroup",t.DD="dd",t.DESC="desc",t.DETAILS="details",t.DIALOG="dialog",t.DIR="dir",t.DIV="div",t.DL="dl",t.DT="dt",t.EM="em",t.EMBED="embed",t.FIELDSET="fieldset",t.FIGCAPTION="figcaption",t.FIGURE="figure",t.FONT="font",t.FOOTER="footer",t.FOREIGN_OBJECT="foreignObject",t.FORM="form",t.FRAME="frame",t.FRAMESET="frameset",t.H1="h1",t.H2="h2",t.H3="h3",t.H4="h4",t.H5="h5",t.H6="h6",t.HEAD="head",t.HEADER="header",t.HGROUP="hgroup",t.HR="hr",t.HTML="html",t.I="i",t.IMG="img",t.IMAGE="image",t.INPUT="input",t.IFRAME="iframe",t.KEYGEN="keygen",t.LABEL="label",t.LI="li",t.LINK="link",t.LISTING="listing",t.MAIN="main",t.MALIGNMARK="malignmark",t.MARQUEE="marquee",t.MATH="math",t.MENU="menu",t.META="meta",t.MGLYPH="mglyph",t.MI="mi",t.MO="mo",t.MN="mn",t.MS="ms",t.MTEXT="mtext",t.NAV="nav",t.NOBR="nobr",t.NOFRAMES="noframes",t.NOEMBED="noembed",t.NOSCRIPT="noscript",t.OBJECT="object",t.OL="ol",t.OPTGROUP="optgroup",t.OPTION="option",t.P="p",t.PARAM="param",t.PLAINTEXT="plaintext",t.PRE="pre",t.RB="rb",t.RP="rp",t.RT="rt",t.RTC="rtc",t.RUBY="ruby",t.S="s",t.SCRIPT="script",t.SEARCH="search",t.SECTION="section",t.SELECT="select",t.SOURCE="source",t.SMALL="small",t.SPAN="span",t.STRIKE="strike",t.STRONG="strong",t.STYLE="style",t.SUB="sub",t.SUMMARY="summary",t.SUP="sup",t.TABLE="table",t.TBODY="tbody",t.TEMPLATE="template",t.TEXTAREA="textarea",t.TFOOT="tfoot",t.TD="td",t.TH="th",t.THEAD="thead",t.TITLE="title",t.TR="tr",t.TRACK="track",t.TT="tt",t.U="u",t.UL="ul",t.SVG="svg",t.VAR="var",t.WBR="wbr",t.XMP="xmp"}(Hx||(Hx={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.A=1]="A",t[t.ADDRESS=2]="ADDRESS",t[t.ANNOTATION_XML=3]="ANNOTATION_XML",t[t.APPLET=4]="APPLET",t[t.AREA=5]="AREA",t[t.ARTICLE=6]="ARTICLE",t[t.ASIDE=7]="ASIDE",t[t.B=8]="B",t[t.BASE=9]="BASE",t[t.BASEFONT=10]="BASEFONT",t[t.BGSOUND=11]="BGSOUND",t[t.BIG=12]="BIG",t[t.BLOCKQUOTE=13]="BLOCKQUOTE",t[t.BODY=14]="BODY",t[t.BR=15]="BR",t[t.BUTTON=16]="BUTTON",t[t.CAPTION=17]="CAPTION",t[t.CENTER=18]="CENTER",t[t.CODE=19]="CODE",t[t.COL=20]="COL",t[t.COLGROUP=21]="COLGROUP",t[t.DD=22]="DD",t[t.DESC=23]="DESC",t[t.DETAILS=24]="DETAILS",t[t.DIALOG=25]="DIALOG",t[t.DIR=26]="DIR",t[t.DIV=27]="DIV",t[t.DL=28]="DL",t[t.DT=29]="DT",t[t.EM=30]="EM",t[t.EMBED=31]="EMBED",t[t.FIELDSET=32]="FIELDSET",t[t.FIGCAPTION=33]="FIGCAPTION",t[t.FIGURE=34]="FIGURE",t[t.FONT=35]="FONT",t[t.FOOTER=36]="FOOTER",t[t.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",t[t.FORM=38]="FORM",t[t.FRAME=39]="FRAME",t[t.FRAMESET=40]="FRAMESET",t[t.H1=41]="H1",t[t.H2=42]="H2",t[t.H3=43]="H3",t[t.H4=44]="H4",t[t.H5=45]="H5",t[t.H6=46]="H6",t[t.HEAD=47]="HEAD",t[t.HEADER=48]="HEADER",t[t.HGROUP=49]="HGROUP",t[t.HR=50]="HR",t[t.HTML=51]="HTML",t[t.I=52]="I",t[t.IMG=53]="IMG",t[t.IMAGE=54]="IMAGE",t[t.INPUT=55]="INPUT",t[t.IFRAME=56]="IFRAME",t[t.KEYGEN=57]="KEYGEN",t[t.LABEL=58]="LABEL",t[t.LI=59]="LI",t[t.LINK=60]="LINK",t[t.LISTING=61]="LISTING",t[t.MAIN=62]="MAIN",t[t.MALIGNMARK=63]="MALIGNMARK",t[t.MARQUEE=64]="MARQUEE",t[t.MATH=65]="MATH",t[t.MENU=66]="MENU",t[t.META=67]="META",t[t.MGLYPH=68]="MGLYPH",t[t.MI=69]="MI",t[t.MO=70]="MO",t[t.MN=71]="MN",t[t.MS=72]="MS",t[t.MTEXT=73]="MTEXT",t[t.NAV=74]="NAV",t[t.NOBR=75]="NOBR",t[t.NOFRAMES=76]="NOFRAMES",t[t.NOEMBED=77]="NOEMBED",t[t.NOSCRIPT=78]="NOSCRIPT",t[t.OBJECT=79]="OBJECT",t[t.OL=80]="OL",t[t.OPTGROUP=81]="OPTGROUP",t[t.OPTION=82]="OPTION",t[t.P=83]="P",t[t.PARAM=84]="PARAM",t[t.PLAINTEXT=85]="PLAINTEXT",t[t.PRE=86]="PRE",t[t.RB=87]="RB",t[t.RP=88]="RP",t[t.RT=89]="RT",t[t.RTC=90]="RTC",t[t.RUBY=91]="RUBY",t[t.S=92]="S",t[t.SCRIPT=93]="SCRIPT",t[t.SEARCH=94]="SEARCH",t[t.SECTION=95]="SECTION",t[t.SELECT=96]="SELECT",t[t.SOURCE=97]="SOURCE",t[t.SMALL=98]="SMALL",t[t.SPAN=99]="SPAN",t[t.STRIKE=100]="STRIKE",t[t.STRONG=101]="STRONG",t[t.STYLE=102]="STYLE",t[t.SUB=103]="SUB",t[t.SUMMARY=104]="SUMMARY",t[t.SUP=105]="SUP",t[t.TABLE=106]="TABLE",t[t.TBODY=107]="TBODY",t[t.TEMPLATE=108]="TEMPLATE",t[t.TEXTAREA=109]="TEXTAREA",t[t.TFOOT=110]="TFOOT",t[t.TD=111]="TD",t[t.TH=112]="TH",t[t.THEAD=113]="THEAD",t[t.TITLE=114]="TITLE",t[t.TR=115]="TR",t[t.TRACK=116]="TRACK",t[t.TT=117]="TT",t[t.U=118]="U",t[t.UL=119]="UL",t[t.SVG=120]="SVG",t[t.VAR=121]="VAR",t[t.WBR=122]="WBR",t[t.XMP=123]="XMP"}(jx||(jx={}));const Yx=new Map([[Hx.A,jx.A],[Hx.ADDRESS,jx.ADDRESS],[Hx.ANNOTATION_XML,jx.ANNOTATION_XML],[Hx.APPLET,jx.APPLET],[Hx.AREA,jx.AREA],[Hx.ARTICLE,jx.ARTICLE],[Hx.ASIDE,jx.ASIDE],[Hx.B,jx.B],[Hx.BASE,jx.BASE],[Hx.BASEFONT,jx.BASEFONT],[Hx.BGSOUND,jx.BGSOUND],[Hx.BIG,jx.BIG],[Hx.BLOCKQUOTE,jx.BLOCKQUOTE],[Hx.BODY,jx.BODY],[Hx.BR,jx.BR],[Hx.BUTTON,jx.BUTTON],[Hx.CAPTION,jx.CAPTION],[Hx.CENTER,jx.CENTER],[Hx.CODE,jx.CODE],[Hx.COL,jx.COL],[Hx.COLGROUP,jx.COLGROUP],[Hx.DD,jx.DD],[Hx.DESC,jx.DESC],[Hx.DETAILS,jx.DETAILS],[Hx.DIALOG,jx.DIALOG],[Hx.DIR,jx.DIR],[Hx.DIV,jx.DIV],[Hx.DL,jx.DL],[Hx.DT,jx.DT],[Hx.EM,jx.EM],[Hx.EMBED,jx.EMBED],[Hx.FIELDSET,jx.FIELDSET],[Hx.FIGCAPTION,jx.FIGCAPTION],[Hx.FIGURE,jx.FIGURE],[Hx.FONT,jx.FONT],[Hx.FOOTER,jx.FOOTER],[Hx.FOREIGN_OBJECT,jx.FOREIGN_OBJECT],[Hx.FORM,jx.FORM],[Hx.FRAME,jx.FRAME],[Hx.FRAMESET,jx.FRAMESET],[Hx.H1,jx.H1],[Hx.H2,jx.H2],[Hx.H3,jx.H3],[Hx.H4,jx.H4],[Hx.H5,jx.H5],[Hx.H6,jx.H6],[Hx.HEAD,jx.HEAD],[Hx.HEADER,jx.HEADER],[Hx.HGROUP,jx.HGROUP],[Hx.HR,jx.HR],[Hx.HTML,jx.HTML],[Hx.I,jx.I],[Hx.IMG,jx.IMG],[Hx.IMAGE,jx.IMAGE],[Hx.INPUT,jx.INPUT],[Hx.IFRAME,jx.IFRAME],[Hx.KEYGEN,jx.KEYGEN],[Hx.LABEL,jx.LABEL],[Hx.LI,jx.LI],[Hx.LINK,jx.LINK],[Hx.LISTING,jx.LISTING],[Hx.MAIN,jx.MAIN],[Hx.MALIGNMARK,jx.MALIGNMARK],[Hx.MARQUEE,jx.MARQUEE],[Hx.MATH,jx.MATH],[Hx.MENU,jx.MENU],[Hx.META,jx.META],[Hx.MGLYPH,jx.MGLYPH],[Hx.MI,jx.MI],[Hx.MO,jx.MO],[Hx.MN,jx.MN],[Hx.MS,jx.MS],[Hx.MTEXT,jx.MTEXT],[Hx.NAV,jx.NAV],[Hx.NOBR,jx.NOBR],[Hx.NOFRAMES,jx.NOFRAMES],[Hx.NOEMBED,jx.NOEMBED],[Hx.NOSCRIPT,jx.NOSCRIPT],[Hx.OBJECT,jx.OBJECT],[Hx.OL,jx.OL],[Hx.OPTGROUP,jx.OPTGROUP],[Hx.OPTION,jx.OPTION],[Hx.P,jx.P],[Hx.PARAM,jx.PARAM],[Hx.PLAINTEXT,jx.PLAINTEXT],[Hx.PRE,jx.PRE],[Hx.RB,jx.RB],[Hx.RP,jx.RP],[Hx.RT,jx.RT],[Hx.RTC,jx.RTC],[Hx.RUBY,jx.RUBY],[Hx.S,jx.S],[Hx.SCRIPT,jx.SCRIPT],[Hx.SEARCH,jx.SEARCH],[Hx.SECTION,jx.SECTION],[Hx.SELECT,jx.SELECT],[Hx.SOURCE,jx.SOURCE],[Hx.SMALL,jx.SMALL],[Hx.SPAN,jx.SPAN],[Hx.STRIKE,jx.STRIKE],[Hx.STRONG,jx.STRONG],[Hx.STYLE,jx.STYLE],[Hx.SUB,jx.SUB],[Hx.SUMMARY,jx.SUMMARY],[Hx.SUP,jx.SUP],[Hx.TABLE,jx.TABLE],[Hx.TBODY,jx.TBODY],[Hx.TEMPLATE,jx.TEMPLATE],[Hx.TEXTAREA,jx.TEXTAREA],[Hx.TFOOT,jx.TFOOT],[Hx.TD,jx.TD],[Hx.TH,jx.TH],[Hx.THEAD,jx.THEAD],[Hx.TITLE,jx.TITLE],[Hx.TR,jx.TR],[Hx.TRACK,jx.TRACK],[Hx.TT,jx.TT],[Hx.U,jx.U],[Hx.UL,jx.UL],[Hx.SVG,jx.SVG],[Hx.VAR,jx.VAR],[Hx.WBR,jx.WBR],[Hx.XMP,jx.XMP]]);function zx(t){var e;return null!==(e=Yx.get(t))&&void 0!==e?e:jx.UNKNOWN}const Jx=jx,Wx={[Px.HTML]:new Set([Jx.ADDRESS,Jx.APPLET,Jx.AREA,Jx.ARTICLE,Jx.ASIDE,Jx.BASE,Jx.BASEFONT,Jx.BGSOUND,Jx.BLOCKQUOTE,Jx.BODY,Jx.BR,Jx.BUTTON,Jx.CAPTION,Jx.CENTER,Jx.COL,Jx.COLGROUP,Jx.DD,Jx.DETAILS,Jx.DIR,Jx.DIV,Jx.DL,Jx.DT,Jx.EMBED,Jx.FIELDSET,Jx.FIGCAPTION,Jx.FIGURE,Jx.FOOTER,Jx.FORM,Jx.FRAME,Jx.FRAMESET,Jx.H1,Jx.H2,Jx.H3,Jx.H4,Jx.H5,Jx.H6,Jx.HEAD,Jx.HEADER,Jx.HGROUP,Jx.HR,Jx.HTML,Jx.IFRAME,Jx.IMG,Jx.INPUT,Jx.LI,Jx.LINK,Jx.LISTING,Jx.MAIN,Jx.MARQUEE,Jx.MENU,Jx.META,Jx.NAV,Jx.NOEMBED,Jx.NOFRAMES,Jx.NOSCRIPT,Jx.OBJECT,Jx.OL,Jx.P,Jx.PARAM,Jx.PLAINTEXT,Jx.PRE,Jx.SCRIPT,Jx.SECTION,Jx.SELECT,Jx.SOURCE,Jx.STYLE,Jx.SUMMARY,Jx.TABLE,Jx.TBODY,Jx.TD,Jx.TEMPLATE,Jx.TEXTAREA,Jx.TFOOT,Jx.TH,Jx.THEAD,Jx.TITLE,Jx.TR,Jx.TRACK,Jx.UL,Jx.WBR,Jx.XMP]),[Px.MATHML]:new Set([Jx.MI,Jx.MO,Jx.MN,Jx.MS,Jx.MTEXT,Jx.ANNOTATION_XML]),[Px.SVG]:new Set([Jx.TITLE,Jx.FOREIGN_OBJECT,Jx.DESC]),[Px.XLINK]:new Set,[Px.XML]:new Set,[Px.XMLNS]:new Set},qx=new Set([Jx.H1,Jx.H2,Jx.H3,Jx.H4,Jx.H5,Jx.H6]);new Set([Hx.STYLE,Hx.SCRIPT,Hx.XMP,Hx.IFRAME,Hx.NOEMBED,Hx.NOFRAMES,Hx.PLAINTEXT]);var Kx;!function(t){t[t.DATA=0]="DATA",t[t.RCDATA=1]="RCDATA",t[t.RAWTEXT=2]="RAWTEXT",t[t.SCRIPT_DATA=3]="SCRIPT_DATA",t[t.PLAINTEXT=4]="PLAINTEXT",t[t.TAG_OPEN=5]="TAG_OPEN",t[t.END_TAG_OPEN=6]="END_TAG_OPEN",t[t.TAG_NAME=7]="TAG_NAME",t[t.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",t[t.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",t[t.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",t[t.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",t[t.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",t[t.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",t[t.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",t[t.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",t[t.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",t[t.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",t[t.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",t[t.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",t[t.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",t[t.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",t[t.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",t[t.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",t[t.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",t[t.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",t[t.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",t[t.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",t[t.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",t[t.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",t[t.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",t[t.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",t[t.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",t[t.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",t[t.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",t[t.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",t[t.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",t[t.BOGUS_COMMENT=40]="BOGUS_COMMENT",t[t.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",t[t.COMMENT_START=42]="COMMENT_START",t[t.COMMENT_START_DASH=43]="COMMENT_START_DASH",t[t.COMMENT=44]="COMMENT",t[t.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",t[t.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",t[t.COMMENT_END_DASH=49]="COMMENT_END_DASH",t[t.COMMENT_END=50]="COMMENT_END",t[t.COMMENT_END_BANG=51]="COMMENT_END_BANG",t[t.DOCTYPE=52]="DOCTYPE",t[t.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",t[t.DOCTYPE_NAME=54]="DOCTYPE_NAME",t[t.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",t[t.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",t[t.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",t[t.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",t[t.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",t[t.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",t[t.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",t[t.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",t[t.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",t[t.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",t[t.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",t[t.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",t[t.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",t[t.CDATA_SECTION=68]="CDATA_SECTION",t[t.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",t[t.CDATA_SECTION_END=70]="CDATA_SECTION_END",t[t.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",t[t.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"}(Kx||(Kx={}));const Xx={DATA:Kx.DATA,RCDATA:Kx.RCDATA,RAWTEXT:Kx.RAWTEXT,SCRIPT_DATA:Kx.SCRIPT_DATA,PLAINTEXT:Kx.PLAINTEXT,CDATA_SECTION:Kx.CDATA_SECTION};function Zx(t){return t>=px.LATIN_CAPITAL_A&&t<=px.LATIN_CAPITAL_Z}function $x(t){return function(t){return t>=px.LATIN_SMALL_A&&t<=px.LATIN_SMALL_Z}(t)||Zx(t)}function tR(t){return $x(t)||function(t){return t>=px.DIGIT_0&&t<=px.DIGIT_9}(t)}function eR(t){return t+32}function nR(t){return t===px.SPACE||t===px.LINE_FEED||t===px.TABULATION||t===px.FORM_FEED}function rR(t){return nR(t)||t===px.SOLIDUS||t===px.GREATER_THAN_SIGN}class iR{constructor(t,e){this.options=t,this.handler=e,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=Kx.DATA,this.returnState=Kx.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new Tx(e),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new Qx(Mx,(t,e)=>{this.preprocessor.pos=this.entityStartPos+e-1,this._flushCodePointConsumedAsCharacterReference(t)},e.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(Bx.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:t=>{this._err(Bx.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+t)},validateNumericCharacterReference:t=>{const e=function(t){return t===px.NULL?Bx.nullCharacterReference:t>1114111?Bx.characterReferenceOutsideUnicodeRange:wx(t)?Bx.surrogateCharacterReference:Cx(t)?Bx.noncharacterCharacterReference:Ix(t)||t===px.CARRIAGE_RETURN?Bx.controlCharacterReference:null}(t);e&&this._err(e,1)}}:void 0)}_err(t,e=0){var n,r;null===(r=(n=this.handler).onParseError)||void 0===r||r.call(n,this.preprocessor.getError(t,e))}getCurrentLocation(t){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-t,startOffset:this.preprocessor.offset-t,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this._callState(t)}this.inLoop=!1}}pause(){this.paused=!0}resume(t){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,this.inLoop||(this._runParsingLoop(),this.paused||null==t||t())}write(t,e,n){this.active=!0,this.preprocessor.write(t,e),this._runParsingLoop(),this.paused||null==n||n()}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t),this._runParsingLoop()}_ensureHibernation(){return!!this.preprocessor.endOfChunkHit&&(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0)}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(t){this.consumedAfterSnapshot+=t;for(let e=0;e<t;e++)this.preprocessor.advance()}_consumeSequenceIfMatch(t,e){return!!this.preprocessor.startsWith(t,e)&&(this._advanceBy(t.length-1),!0)}_createStartTagToken(){this.currentToken={type:bx.START_TAG,tagName:"",tagID:jx.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(1)}}_createEndTagToken(){this.currentToken={type:bx.END_TAG,tagName:"",tagID:jx.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(2)}}_createCommentToken(t){this.currentToken={type:bx.COMMENT,data:"",location:this.getCurrentLocation(t)}}_createDoctypeToken(t){this.currentToken={type:bx.DOCTYPE,name:t,forceQuirks:!1,publicId:null,systemId:null,location:this.currentLocation}}_createCharacterToken(t,e){this.currentCharacterToken={type:t,chars:e,location:this.currentLocation}}_createAttr(t){this.currentAttr={name:t,value:""},this.currentLocation=this.getCurrentLocation(0)}_leaveAttrName(){var t,e;const n=this.currentToken;if(null===Dx(n,this.currentAttr.name)){if(n.attrs.push(this.currentAttr),n.location&&this.currentLocation){(null!==(t=(e=n.location).attrs)&&void 0!==t?t:e.attrs=Object.create(null))[this.currentAttr.name]=this.currentLocation,this._leaveAttrValue()}}else this._err(Bx.duplicateAttribute)}_leaveAttrValue(){this.currentLocation&&(this.currentLocation.endLine=this.preprocessor.line,this.currentLocation.endCol=this.preprocessor.col,this.currentLocation.endOffset=this.preprocessor.offset)}prepareToken(t){this._emitCurrentCharacterToken(t.location),this.currentToken=null,t.location&&(t.location.endLine=this.preprocessor.line,t.location.endCol=this.preprocessor.col+1,t.location.endOffset=this.preprocessor.offset+1),this.currentLocation=this.getCurrentLocation(-1)}emitCurrentTagToken(){const t=this.currentToken;this.prepareToken(t),t.tagID=zx(t.tagName),t.type===bx.START_TAG?(this.lastStartTagName=t.tagName,this.handler.onStartTag(t)):(t.attrs.length>0&&this._err(Bx.endTagWithAttributes),t.selfClosing&&this._err(Bx.endTagWithTrailingSolidus),this.handler.onEndTag(t)),this.preprocessor.dropParsedChunk()}emitCurrentComment(t){this.prepareToken(t),this.handler.onComment(t),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(t){this.prepareToken(t),this.handler.onDoctype(t),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(t){if(this.currentCharacterToken){switch(t&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=t.startLine,this.currentCharacterToken.location.endCol=t.startCol,this.currentCharacterToken.location.endOffset=t.startOffset),this.currentCharacterToken.type){case bx.CHARACTER:this.handler.onCharacter(this.currentCharacterToken);break;case bx.NULL_CHARACTER:this.handler.onNullCharacter(this.currentCharacterToken);break;case bx.WHITESPACE_CHARACTER:this.handler.onWhitespaceCharacter(this.currentCharacterToken)}this.currentCharacterToken=null}}_emitEOFToken(){const t=this.getCurrentLocation(0);t&&(t.endLine=t.startLine,t.endCol=t.startCol,t.endOffset=t.startOffset),this._emitCurrentCharacterToken(t),this.handler.onEof({type:bx.EOF,location:t}),this.active=!1}_appendCharToCurrentCharacterToken(t,e){if(this.currentCharacterToken){if(this.currentCharacterToken.type===t)return void(this.currentCharacterToken.chars+=e);this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk()}this._createCharacterToken(t,e)}_emitCodePoint(t){const e=nR(t)?bx.WHITESPACE_CHARACTER:t===px.NULL?bx.NULL_CHARACTER:bx.CHARACTER;this._appendCharToCurrentCharacterToken(e,String.fromCodePoint(t))}_emitChars(t){this._appendCharToCurrentCharacterToken(bx.CHARACTER,t)}_startCharacterReference(){this.returnState=this.state,this.state=Kx.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?Rx.Attribute:Rx.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===Kx.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===Kx.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===Kx.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(t){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(t):this._emitCodePoint(t)}_callState(t){switch(this.state){case Kx.DATA:this._stateData(t);break;case Kx.RCDATA:this._stateRcdata(t);break;case Kx.RAWTEXT:this._stateRawtext(t);break;case Kx.SCRIPT_DATA:this._stateScriptData(t);break;case Kx.PLAINTEXT:this._statePlaintext(t);break;case Kx.TAG_OPEN:this._stateTagOpen(t);break;case Kx.END_TAG_OPEN:this._stateEndTagOpen(t);break;case Kx.TAG_NAME:this._stateTagName(t);break;case Kx.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(t);break;case Kx.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(t);break;case Kx.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(t);break;case Kx.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(t);break;case Kx.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(t);break;case Kx.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(t);break;case Kx.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(t);break;case Kx.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(t);break;case Kx.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(t);break;case Kx.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(t);break;case Kx.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(t);break;case Kx.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(t);break;case Kx.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(t);break;case Kx.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(t);break;case Kx.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(t);break;case Kx.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(t);break;case Kx.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(t);break;case Kx.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(t);break;case Kx.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(t);break;case Kx.ATTRIBUTE_NAME:this._stateAttributeName(t);break;case Kx.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(t);break;case Kx.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(t);break;case Kx.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(t);break;case Kx.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(t);break;case Kx.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(t);break;case Kx.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(t);break;case Kx.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(t);break;case Kx.BOGUS_COMMENT:this._stateBogusComment(t);break;case Kx.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(t);break;case Kx.COMMENT_START:this._stateCommentStart(t);break;case Kx.COMMENT_START_DASH:this._stateCommentStartDash(t);break;case Kx.COMMENT:this._stateComment(t);break;case Kx.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(t);break;case Kx.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(t);break;case Kx.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(t);break;case Kx.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(t);break;case Kx.COMMENT_END_DASH:this._stateCommentEndDash(t);break;case Kx.COMMENT_END:this._stateCommentEnd(t);break;case Kx.COMMENT_END_BANG:this._stateCommentEndBang(t);break;case Kx.DOCTYPE:this._stateDoctype(t);break;case Kx.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(t);break;case Kx.DOCTYPE_NAME:this._stateDoctypeName(t);break;case Kx.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(t);break;case Kx.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(t);break;case Kx.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(t);break;case Kx.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(t);break;case Kx.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(t);break;case Kx.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(t);break;case Kx.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(t);break;case Kx.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(t);break;case Kx.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(t);break;case Kx.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(t);break;case Kx.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(t);break;case Kx.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(t);break;case Kx.BOGUS_DOCTYPE:this._stateBogusDoctype(t);break;case Kx.CDATA_SECTION:this._stateCdataSection(t);break;case Kx.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(t);break;case Kx.CDATA_SECTION_END:this._stateCdataSectionEnd(t);break;case Kx.CHARACTER_REFERENCE:this._stateCharacterReference();break;case Kx.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(t);break;default:throw new Error("Unknown state")}}_stateData(t){switch(t){case px.LESS_THAN_SIGN:this.state=Kx.TAG_OPEN;break;case px.AMPERSAND:this._startCharacterReference();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitCodePoint(t);break;case px.EOF:this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateRcdata(t){switch(t){case px.AMPERSAND:this._startCharacterReference();break;case px.LESS_THAN_SIGN:this.state=Kx.RCDATA_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateRawtext(t){switch(t){case px.LESS_THAN_SIGN:this.state=Kx.RAWTEXT_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateScriptData(t){switch(t){case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._emitEOFToken();break;default:this._emitCodePoint(t)}}_statePlaintext(t){switch(t){case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateTagOpen(t){if($x(t))this._createStartTagToken(),this.state=Kx.TAG_NAME,this._stateTagName(t);else switch(t){case px.EXCLAMATION_MARK:this.state=Kx.MARKUP_DECLARATION_OPEN;break;case px.SOLIDUS:this.state=Kx.END_TAG_OPEN;break;case px.QUESTION_MARK:this._err(Bx.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=Kx.BOGUS_COMMENT,this._stateBogusComment(t);break;case px.EOF:this._err(Bx.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(Bx.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=Kx.DATA,this._stateData(t)}}_stateEndTagOpen(t){if($x(t))this._createEndTagToken(),this.state=Kx.TAG_NAME,this._stateTagName(t);else switch(t){case px.GREATER_THAN_SIGN:this._err(Bx.missingEndTagName),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken();break;default:this._err(Bx.invalidFirstCharacterOfTagName),this._createCommentToken(2),this.state=Kx.BOGUS_COMMENT,this._stateBogusComment(t)}}_stateTagName(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.BEFORE_ATTRIBUTE_NAME;break;case px.SOLIDUS:this.state=Kx.SELF_CLOSING_START_TAG;break;case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentTagToken();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.tagName+=dx;break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:e.tagName+=String.fromCodePoint(Zx(t)?eR(t):t)}}_stateRcdataLessThanSign(t){t===px.SOLIDUS?this.state=Kx.RCDATA_END_TAG_OPEN:(this._emitChars("<"),this.state=Kx.RCDATA,this._stateRcdata(t))}_stateRcdataEndTagOpen(t){$x(t)?(this.state=Kx.RCDATA_END_TAG_NAME,this._stateRcdataEndTagName(t)):(this._emitChars("</"),this.state=Kx.RCDATA,this._stateRcdata(t))}handleSpecialEndTag(t){if(!this.preprocessor.startsWith(this.lastStartTagName,!1))return!this._ensureHibernation();this._createEndTagToken();this.currentToken.tagName=this.lastStartTagName;switch(this.preprocessor.peek(this.lastStartTagName.length)){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:return this._advanceBy(this.lastStartTagName.length),this.state=Kx.BEFORE_ATTRIBUTE_NAME,!1;case px.SOLIDUS:return this._advanceBy(this.lastStartTagName.length),this.state=Kx.SELF_CLOSING_START_TAG,!1;case px.GREATER_THAN_SIGN:return this._advanceBy(this.lastStartTagName.length),this.emitCurrentTagToken(),this.state=Kx.DATA,!1;default:return!this._ensureHibernation()}}_stateRcdataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=Kx.RCDATA,this._stateRcdata(t))}_stateRawtextLessThanSign(t){t===px.SOLIDUS?this.state=Kx.RAWTEXT_END_TAG_OPEN:(this._emitChars("<"),this.state=Kx.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagOpen(t){$x(t)?(this.state=Kx.RAWTEXT_END_TAG_NAME,this._stateRawtextEndTagName(t)):(this._emitChars("</"),this.state=Kx.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=Kx.RAWTEXT,this._stateRawtext(t))}_stateScriptDataLessThanSign(t){switch(t){case px.SOLIDUS:this.state=Kx.SCRIPT_DATA_END_TAG_OPEN;break;case px.EXCLAMATION_MARK:this.state=Kx.SCRIPT_DATA_ESCAPE_START,this._emitChars("<!");break;default:this._emitChars("<"),this.state=Kx.SCRIPT_DATA,this._stateScriptData(t)}}_stateScriptDataEndTagOpen(t){$x(t)?(this.state=Kx.SCRIPT_DATA_END_TAG_NAME,this._stateScriptDataEndTagName(t)):(this._emitChars("</"),this.state=Kx.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=Kx.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStart(t){t===px.HYPHEN_MINUS?(this.state=Kx.SCRIPT_DATA_ESCAPE_START_DASH,this._emitChars("-")):(this.state=Kx.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStartDash(t){t===px.HYPHEN_MINUS?(this.state=Kx.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-")):(this.state=Kx.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscaped(t){switch(t){case px.HYPHEN_MINUS:this.state=Kx.SCRIPT_DATA_ESCAPED_DASH,this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateScriptDataEscapedDash(t){switch(t){case px.HYPHEN_MINUS:this.state=Kx.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.state=Kx.SCRIPT_DATA_ESCAPED,this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Kx.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedDashDash(t){switch(t){case px.HYPHEN_MINUS:this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case px.GREATER_THAN_SIGN:this.state=Kx.SCRIPT_DATA,this._emitChars(">");break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.state=Kx.SCRIPT_DATA_ESCAPED,this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Kx.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedLessThanSign(t){t===px.SOLIDUS?this.state=Kx.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:$x(t)?(this._emitChars("<"),this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(t)):(this._emitChars("<"),this.state=Kx.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagOpen(t){$x(t)?(this.state=Kx.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(t)):(this._emitChars("</"),this.state=Kx.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=Kx.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscapeStart(t){if(this.preprocessor.startsWith(Ex,!1)&&rR(this.preprocessor.peek(Ex.length))){this._emitCodePoint(t);for(let t=0;t<Ex.length;t++)this._emitCodePoint(this._consume());this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED}else this._ensureHibernation()||(this.state=Kx.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscaped(t){switch(t){case px.HYPHEN_MINUS:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED_DASH,this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDash(t){switch(t){case px.HYPHEN_MINUS:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDashDash(t){switch(t){case px.HYPHEN_MINUS:this._emitChars("-");break;case px.LESS_THAN_SIGN:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case px.GREATER_THAN_SIGN:this.state=Kx.SCRIPT_DATA,this._emitChars(">");break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(dx);break;case px.EOF:this._err(Bx.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedLessThanSign(t){t===px.SOLIDUS?(this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateScriptDataDoubleEscapeEnd(t){if(this.preprocessor.startsWith(Ex,!1)&&rR(this.preprocessor.peek(Ex.length))){this._emitCodePoint(t);for(let t=0;t<Ex.length;t++)this._emitCodePoint(this._consume());this.state=Kx.SCRIPT_DATA_ESCAPED}else this._ensureHibernation()||(this.state=Kx.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateBeforeAttributeName(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.SOLIDUS:case px.GREATER_THAN_SIGN:case px.EOF:this.state=Kx.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break;case px.EQUALS_SIGN:this._err(Bx.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=Kx.ATTRIBUTE_NAME;break;default:this._createAttr(""),this.state=Kx.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateAttributeName(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:case px.SOLIDUS:case px.GREATER_THAN_SIGN:case px.EOF:this._leaveAttrName(),this.state=Kx.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break;case px.EQUALS_SIGN:this._leaveAttrName(),this.state=Kx.BEFORE_ATTRIBUTE_VALUE;break;case px.QUOTATION_MARK:case px.APOSTROPHE:case px.LESS_THAN_SIGN:this._err(Bx.unexpectedCharacterInAttributeName),this.currentAttr.name+=String.fromCodePoint(t);break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.currentAttr.name+=dx;break;default:this.currentAttr.name+=String.fromCodePoint(Zx(t)?eR(t):t)}}_stateAfterAttributeName(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.SOLIDUS:this.state=Kx.SELF_CLOSING_START_TAG;break;case px.EQUALS_SIGN:this.state=Kx.BEFORE_ATTRIBUTE_VALUE;break;case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentTagToken();break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this._createAttr(""),this.state=Kx.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateBeforeAttributeValue(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.QUOTATION_MARK:this.state=Kx.ATTRIBUTE_VALUE_DOUBLE_QUOTED;break;case px.APOSTROPHE:this.state=Kx.ATTRIBUTE_VALUE_SINGLE_QUOTED;break;case px.GREATER_THAN_SIGN:this._err(Bx.missingAttributeValue),this.state=Kx.DATA,this.emitCurrentTagToken();break;default:this.state=Kx.ATTRIBUTE_VALUE_UNQUOTED,this._stateAttributeValueUnquoted(t)}}_stateAttributeValueDoubleQuoted(t){switch(t){case px.QUOTATION_MARK:this.state=Kx.AFTER_ATTRIBUTE_VALUE_QUOTED;break;case px.AMPERSAND:this._startCharacterReference();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.currentAttr.value+=dx;break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueSingleQuoted(t){switch(t){case px.APOSTROPHE:this.state=Kx.AFTER_ATTRIBUTE_VALUE_QUOTED;break;case px.AMPERSAND:this._startCharacterReference();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.currentAttr.value+=dx;break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueUnquoted(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this._leaveAttrValue(),this.state=Kx.BEFORE_ATTRIBUTE_NAME;break;case px.AMPERSAND:this._startCharacterReference();break;case px.GREATER_THAN_SIGN:this._leaveAttrValue(),this.state=Kx.DATA,this.emitCurrentTagToken();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this.currentAttr.value+=dx;break;case px.QUOTATION_MARK:case px.APOSTROPHE:case px.LESS_THAN_SIGN:case px.EQUALS_SIGN:case px.GRAVE_ACCENT:this._err(Bx.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=String.fromCodePoint(t);break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAfterAttributeValueQuoted(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this._leaveAttrValue(),this.state=Kx.BEFORE_ATTRIBUTE_NAME;break;case px.SOLIDUS:this._leaveAttrValue(),this.state=Kx.SELF_CLOSING_START_TAG;break;case px.GREATER_THAN_SIGN:this._leaveAttrValue(),this.state=Kx.DATA,this.emitCurrentTagToken();break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this._err(Bx.missingWhitespaceBetweenAttributes),this.state=Kx.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateSelfClosingStartTag(t){switch(t){case px.GREATER_THAN_SIGN:this.currentToken.selfClosing=!0,this.state=Kx.DATA,this.emitCurrentTagToken();break;case px.EOF:this._err(Bx.eofInTag),this._emitEOFToken();break;default:this._err(Bx.unexpectedSolidusInTag),this.state=Kx.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateBogusComment(t){const e=this.currentToken;switch(t){case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentComment(e);break;case px.EOF:this.emitCurrentComment(e),this._emitEOFToken();break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.data+=dx;break;default:e.data+=String.fromCodePoint(t)}}_stateMarkupDeclarationOpen(t){this._consumeSequenceIfMatch(fx,!0)?(this._createCommentToken(fx.length+1),this.state=Kx.COMMENT_START):this._consumeSequenceIfMatch(gx,!1)?(this.currentLocation=this.getCurrentLocation(gx.length+1),this.state=Kx.DOCTYPE):this._consumeSequenceIfMatch(Ax,!0)?this.inForeignNode?this.state=Kx.CDATA_SECTION:(this._err(Bx.cdataInHtmlContent),this._createCommentToken(Ax.length+1),this.currentToken.data="[CDATA[",this.state=Kx.BOGUS_COMMENT):this._ensureHibernation()||(this._err(Bx.incorrectlyOpenedComment),this._createCommentToken(2),this.state=Kx.BOGUS_COMMENT,this._stateBogusComment(t))}_stateCommentStart(t){switch(t){case px.HYPHEN_MINUS:this.state=Kx.COMMENT_START_DASH;break;case px.GREATER_THAN_SIGN:{this._err(Bx.abruptClosingOfEmptyComment),this.state=Kx.DATA;const t=this.currentToken;this.emitCurrentComment(t);break}default:this.state=Kx.COMMENT,this._stateComment(t)}}_stateCommentStartDash(t){const e=this.currentToken;switch(t){case px.HYPHEN_MINUS:this.state=Kx.COMMENT_END;break;case px.GREATER_THAN_SIGN:this._err(Bx.abruptClosingOfEmptyComment),this.state=Kx.DATA,this.emitCurrentComment(e);break;case px.EOF:this._err(Bx.eofInComment),this.emitCurrentComment(e),this._emitEOFToken();break;default:e.data+="-",this.state=Kx.COMMENT,this._stateComment(t)}}_stateComment(t){const e=this.currentToken;switch(t){case px.HYPHEN_MINUS:this.state=Kx.COMMENT_END_DASH;break;case px.LESS_THAN_SIGN:e.data+="<",this.state=Kx.COMMENT_LESS_THAN_SIGN;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.data+=dx;break;case px.EOF:this._err(Bx.eofInComment),this.emitCurrentComment(e),this._emitEOFToken();break;default:e.data+=String.fromCodePoint(t)}}_stateCommentLessThanSign(t){const e=this.currentToken;switch(t){case px.EXCLAMATION_MARK:e.data+="!",this.state=Kx.COMMENT_LESS_THAN_SIGN_BANG;break;case px.LESS_THAN_SIGN:e.data+="<";break;default:this.state=Kx.COMMENT,this._stateComment(t)}}_stateCommentLessThanSignBang(t){t===px.HYPHEN_MINUS?this.state=Kx.COMMENT_LESS_THAN_SIGN_BANG_DASH:(this.state=Kx.COMMENT,this._stateComment(t))}_stateCommentLessThanSignBangDash(t){t===px.HYPHEN_MINUS?this.state=Kx.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:(this.state=Kx.COMMENT_END_DASH,this._stateCommentEndDash(t))}_stateCommentLessThanSignBangDashDash(t){t!==px.GREATER_THAN_SIGN&&t!==px.EOF&&this._err(Bx.nestedComment),this.state=Kx.COMMENT_END,this._stateCommentEnd(t)}_stateCommentEndDash(t){const e=this.currentToken;switch(t){case px.HYPHEN_MINUS:this.state=Kx.COMMENT_END;break;case px.EOF:this._err(Bx.eofInComment),this.emitCurrentComment(e),this._emitEOFToken();break;default:e.data+="-",this.state=Kx.COMMENT,this._stateComment(t)}}_stateCommentEnd(t){const e=this.currentToken;switch(t){case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentComment(e);break;case px.EXCLAMATION_MARK:this.state=Kx.COMMENT_END_BANG;break;case px.HYPHEN_MINUS:e.data+="-";break;case px.EOF:this._err(Bx.eofInComment),this.emitCurrentComment(e),this._emitEOFToken();break;default:e.data+="--",this.state=Kx.COMMENT,this._stateComment(t)}}_stateCommentEndBang(t){const e=this.currentToken;switch(t){case px.HYPHEN_MINUS:e.data+="--!",this.state=Kx.COMMENT_END_DASH;break;case px.GREATER_THAN_SIGN:this._err(Bx.incorrectlyClosedComment),this.state=Kx.DATA,this.emitCurrentComment(e);break;case px.EOF:this._err(Bx.eofInComment),this.emitCurrentComment(e),this._emitEOFToken();break;default:e.data+="--!",this.state=Kx.COMMENT,this._stateComment(t)}}_stateDoctype(t){switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.BEFORE_DOCTYPE_NAME;break;case px.GREATER_THAN_SIGN:this.state=Kx.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t);break;case px.EOF:{this._err(Bx.eofInDoctype),this._createDoctypeToken(null);const t=this.currentToken;t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break}default:this._err(Bx.missingWhitespaceBeforeDoctypeName),this.state=Kx.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t)}}_stateBeforeDoctypeName(t){if(Zx(t))this._createDoctypeToken(String.fromCharCode(eR(t))),this.state=Kx.DOCTYPE_NAME;else switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.NULL:this._err(Bx.unexpectedNullCharacter),this._createDoctypeToken(dx),this.state=Kx.DOCTYPE_NAME;break;case px.GREATER_THAN_SIGN:{this._err(Bx.missingDoctypeName),this._createDoctypeToken(null);const t=this.currentToken;t.forceQuirks=!0,this.emitCurrentDoctype(t),this.state=Kx.DATA;break}case px.EOF:{this._err(Bx.eofInDoctype),this._createDoctypeToken(null);const t=this.currentToken;t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break}default:this._createDoctypeToken(String.fromCodePoint(t)),this.state=Kx.DOCTYPE_NAME}}_stateDoctypeName(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.AFTER_DOCTYPE_NAME;break;case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.name+=dx;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:e.name+=String.fromCodePoint(Zx(t)?eR(t):t)}}_stateAfterDoctypeName(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._consumeSequenceIfMatch(mx,!1)?this.state=Kx.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._consumeSequenceIfMatch(yx,!1)?this.state=Kx.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._ensureHibernation()||(this._err(Bx.invalidCharacterSequenceAfterDoctypeName),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t))}}_stateAfterDoctypePublicKeyword(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;break;case px.QUOTATION_MARK:this._err(Bx.missingWhitespaceAfterDoctypePublicKeyword),e.publicId="",this.state=Kx.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:this._err(Bx.missingWhitespaceAfterDoctypePublicKeyword),e.publicId="",this.state=Kx.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break;case px.GREATER_THAN_SIGN:this._err(Bx.missingDoctypePublicIdentifier),e.forceQuirks=!0,this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypePublicIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypePublicIdentifier(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.QUOTATION_MARK:e.publicId="",this.state=Kx.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:e.publicId="",this.state=Kx.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break;case px.GREATER_THAN_SIGN:this._err(Bx.missingDoctypePublicIdentifier),e.forceQuirks=!0,this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypePublicIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypePublicIdentifierDoubleQuoted(t){const e=this.currentToken;switch(t){case px.QUOTATION_MARK:this.state=Kx.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.publicId+=dx;break;case px.GREATER_THAN_SIGN:this._err(Bx.abruptDoctypePublicIdentifier),e.forceQuirks=!0,this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:e.publicId+=String.fromCodePoint(t)}}_stateDoctypePublicIdentifierSingleQuoted(t){const e=this.currentToken;switch(t){case px.APOSTROPHE:this.state=Kx.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.publicId+=dx;break;case px.GREATER_THAN_SIGN:this._err(Bx.abruptDoctypePublicIdentifier),e.forceQuirks=!0,this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:e.publicId+=String.fromCodePoint(t)}}_stateAfterDoctypePublicIdentifier(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;break;case px.GREATER_THAN_SIGN:this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.QUOTATION_MARK:this._err(Bx.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:this._err(Bx.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBetweenDoctypePublicAndSystemIdentifiers(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.GREATER_THAN_SIGN:this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.QUOTATION_MARK:e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateAfterDoctypeSystemKeyword(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:this.state=Kx.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;break;case px.QUOTATION_MARK:this._err(Bx.missingWhitespaceAfterDoctypeSystemKeyword),e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:this._err(Bx.missingWhitespaceAfterDoctypeSystemKeyword),e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case px.GREATER_THAN_SIGN:this._err(Bx.missingDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypeSystemIdentifier(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.QUOTATION_MARK:e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case px.APOSTROPHE:e.systemId="",this.state=Kx.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case px.GREATER_THAN_SIGN:this._err(Bx.missingDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.DATA,this.emitCurrentDoctype(e);break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.missingQuoteBeforeDoctypeSystemIdentifier),e.forceQuirks=!0,this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypeSystemIdentifierDoubleQuoted(t){const e=this.currentToken;switch(t){case px.QUOTATION_MARK:this.state=Kx.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.systemId+=dx;break;case px.GREATER_THAN_SIGN:this._err(Bx.abruptDoctypeSystemIdentifier),e.forceQuirks=!0,this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:e.systemId+=String.fromCodePoint(t)}}_stateDoctypeSystemIdentifierSingleQuoted(t){const e=this.currentToken;switch(t){case px.APOSTROPHE:this.state=Kx.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break;case px.NULL:this._err(Bx.unexpectedNullCharacter),e.systemId+=dx;break;case px.GREATER_THAN_SIGN:this._err(Bx.abruptDoctypeSystemIdentifier),e.forceQuirks=!0,this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:e.systemId+=String.fromCodePoint(t)}}_stateAfterDoctypeSystemIdentifier(t){const e=this.currentToken;switch(t){case px.SPACE:case px.LINE_FEED:case px.TABULATION:case px.FORM_FEED:break;case px.GREATER_THAN_SIGN:this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.EOF:this._err(Bx.eofInDoctype),e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break;default:this._err(Bx.unexpectedCharacterAfterDoctypeSystemIdentifier),this.state=Kx.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBogusDoctype(t){const e=this.currentToken;switch(t){case px.GREATER_THAN_SIGN:this.emitCurrentDoctype(e),this.state=Kx.DATA;break;case px.NULL:this._err(Bx.unexpectedNullCharacter);break;case px.EOF:this.emitCurrentDoctype(e),this._emitEOFToken()}}_stateCdataSection(t){switch(t){case px.RIGHT_SQUARE_BRACKET:this.state=Kx.CDATA_SECTION_BRACKET;break;case px.EOF:this._err(Bx.eofInCdata),this._emitEOFToken();break;default:this._emitCodePoint(t)}}_stateCdataSectionBracket(t){t===px.RIGHT_SQUARE_BRACKET?this.state=Kx.CDATA_SECTION_END:(this._emitChars("]"),this.state=Kx.CDATA_SECTION,this._stateCdataSection(t))}_stateCdataSectionEnd(t){switch(t){case px.GREATER_THAN_SIGN:this.state=Kx.DATA;break;case px.RIGHT_SQUARE_BRACKET:this._emitChars("]");break;default:this._emitChars("]]"),this.state=Kx.CDATA_SECTION,this._stateCdataSection(t)}}_stateCharacterReference(){let t=this.entityDecoder.write(this.preprocessor.html,this.preprocessor.pos);if(t<0){if(!this.preprocessor.lastChunkWritten)return this.active=!1,this.preprocessor.pos=this.preprocessor.html.length-1,this.consumedAfterSnapshot=0,void(this.preprocessor.endOfChunkHit=!0);t=this.entityDecoder.end()}0===t?(this.preprocessor.pos=this.entityStartPos,this._flushCodePointConsumedAsCharacterReference(px.AMPERSAND),this.state=!this._isCharacterReferenceInAttribute()&&tR(this.preprocessor.peek(1))?Kx.AMBIGUOUS_AMPERSAND:this.returnState):this.state=this.returnState}_stateAmbiguousAmpersand(t){tR(t)?this._flushCodePointConsumedAsCharacterReference(t):(t===px.SEMICOLON&&this._err(Bx.unknownNamedCharacterReference),this.state=this.returnState,this._callState(t))}}const oR=new Set([jx.DD,jx.DT,jx.LI,jx.OPTGROUP,jx.OPTION,jx.P,jx.RB,jx.RP,jx.RT,jx.RTC]),sR=new Set([...oR,jx.CAPTION,jx.COLGROUP,jx.TBODY,jx.TD,jx.TFOOT,jx.TH,jx.THEAD,jx.TR]),aR=new Set([jx.APPLET,jx.CAPTION,jx.HTML,jx.MARQUEE,jx.OBJECT,jx.TABLE,jx.TD,jx.TEMPLATE,jx.TH]),cR=new Set([...aR,jx.OL,jx.UL]),lR=new Set([...aR,jx.BUTTON]),uR=new Set([jx.ANNOTATION_XML,jx.MI,jx.MN,jx.MO,jx.MS,jx.MTEXT]),hR=new Set([jx.DESC,jx.FOREIGN_OBJECT,jx.TITLE]),dR=new Set([jx.TR,jx.TEMPLATE,jx.HTML]),pR=new Set([jx.TBODY,jx.TFOOT,jx.THEAD,jx.TEMPLATE,jx.HTML]),fR=new Set([jx.TABLE,jx.TEMPLATE,jx.HTML]),AR=new Set([jx.TD,jx.TH]);class gR{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(t,e,n){this.treeAdapter=e,this.handler=n,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=jx.UNKNOWN,this.current=t}_indexOf(t){return this.items.lastIndexOf(t,this.stackTop)}_isInTemplate(){return this.currentTagId===jx.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===Px.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(t,e){this.stackTop++,this.items[this.stackTop]=t,this.current=t,this.tagIDs[this.stackTop]=e,this.currentTagId=e,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(t,e,!0)}pop(){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!0)}replace(t,e){const n=this._indexOf(t);this.items[n]=e,n===this.stackTop&&(this.current=e)}insertAfter(t,e,n){const r=this._indexOf(t)+1;this.items.splice(r,0,e),this.tagIDs.splice(r,0,n),this.stackTop++,r===this.stackTop&&this._updateCurrentElement(),this.current&&void 0!==this.currentTagId&&this.handler.onItemPush(this.current,this.currentTagId,r===this.stackTop)}popUntilTagNamePopped(t){let e=this.stackTop+1;do{e=this.tagIDs.lastIndexOf(t,e-1)}while(e>0&&this.treeAdapter.getNamespaceURI(this.items[e])!==Px.HTML);this.shortenToLength(Math.max(e,0))}shortenToLength(t){for(;this.stackTop>=t;){const e=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,this.stackTop<t)}}popUntilElementPopped(t){const e=this._indexOf(t);this.shortenToLength(Math.max(e,0))}popUntilPopped(t,e){const n=this._indexOfTagNames(t,e);this.shortenToLength(Math.max(n,0))}popUntilNumberedHeaderPopped(){this.popUntilPopped(qx,Px.HTML)}popUntilTableCellPopped(){this.popUntilPopped(AR,Px.HTML)}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1)}_indexOfTagNames(t,e){for(let n=this.stackTop;n>=0;n--)if(t.has(this.tagIDs[n])&&this.treeAdapter.getNamespaceURI(this.items[n])===e)return n;return-1}clearBackTo(t,e){const n=this._indexOfTagNames(t,e);this.shortenToLength(n+1)}clearBackToTableContext(){this.clearBackTo(fR,Px.HTML)}clearBackToTableBodyContext(){this.clearBackTo(pR,Px.HTML)}clearBackToTableRowContext(){this.clearBackTo(dR,Px.HTML)}remove(t){const e=this._indexOf(t);e>=0&&(e===this.stackTop?this.pop():(this.items.splice(e,1),this.tagIDs.splice(e,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===jx.BODY?this.items[1]:null}contains(t){return this._indexOf(t)>-1}getCommonAncestor(t){const e=this._indexOf(t)-1;return e>=0?this.items[e]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.tagIDs[0]===jx.HTML}hasInDynamicScope(t,e){for(let n=this.stackTop;n>=0;n--){const r=this.tagIDs[n];switch(this.treeAdapter.getNamespaceURI(this.items[n])){case Px.HTML:if(r===t)return!0;if(e.has(r))return!1;break;case Px.SVG:if(hR.has(r))return!1;break;case Px.MATHML:if(uR.has(r))return!1}}return!0}hasInScope(t){return this.hasInDynamicScope(t,aR)}hasInListItemScope(t){return this.hasInDynamicScope(t,cR)}hasInButtonScope(t){return this.hasInDynamicScope(t,lR)}hasNumberedHeaderInScope(){for(let t=this.stackTop;t>=0;t--){const e=this.tagIDs[t];switch(this.treeAdapter.getNamespaceURI(this.items[t])){case Px.HTML:if(qx.has(e))return!0;if(aR.has(e))return!1;break;case Px.SVG:if(hR.has(e))return!1;break;case Px.MATHML:if(uR.has(e))return!1}}return!0}hasInTableScope(t){for(let e=this.stackTop;e>=0;e--)if(this.treeAdapter.getNamespaceURI(this.items[e])===Px.HTML)switch(this.tagIDs[e]){case t:return!0;case jx.TABLE:case jx.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let t=this.stackTop;t>=0;t--)if(this.treeAdapter.getNamespaceURI(this.items[t])===Px.HTML)switch(this.tagIDs[t]){case jx.TBODY:case jx.THEAD:case jx.TFOOT:return!0;case jx.TABLE:case jx.HTML:return!1}return!0}hasInSelectScope(t){for(let e=this.stackTop;e>=0;e--)if(this.treeAdapter.getNamespaceURI(this.items[e])===Px.HTML)switch(this.tagIDs[e]){case t:return!0;case jx.OPTION:case jx.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;void 0!==this.currentTagId&&oR.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;void 0!==this.currentTagId&&sR.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(t){for(;void 0!==this.currentTagId&&this.currentTagId!==t&&sR.has(this.currentTagId);)this.pop()}}var ER;!function(t){t[t.Marker=0]="Marker",t[t.Element=1]="Element"}(ER||(ER={}));const mR={type:ER.Marker};class yR{constructor(t){this.treeAdapter=t,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(t,e){const n=[],r=e.length,i=this.treeAdapter.getTagName(t),o=this.treeAdapter.getNamespaceURI(t);for(let t=0;t<this.entries.length;t++){const e=this.entries[t];if(e.type===ER.Marker)break;const{element:s}=e;if(this.treeAdapter.getTagName(s)===i&&this.treeAdapter.getNamespaceURI(s)===o){const e=this.treeAdapter.getAttrList(s);e.length===r&&n.push({idx:t,attrs:e})}}return n}_ensureNoahArkCondition(t){if(this.entries.length<3)return;const e=this.treeAdapter.getAttrList(t),n=this._getNoahArkConditionCandidates(t,e);if(n.length<3)return;const r=new Map(e.map(t=>[t.name,t.value]));let i=0;for(let t=0;t<n.length;t++){const e=n[t];e.attrs.every(t=>r.get(t.name)===t.value)&&(i+=1,i>=3&&this.entries.splice(e.idx,1))}}insertMarker(){this.entries.unshift(mR)}pushElement(t,e){this._ensureNoahArkCondition(t),this.entries.unshift({type:ER.Element,element:t,token:e})}insertElementAfterBookmark(t,e){const n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:ER.Element,element:t,token:e})}removeEntry(t){const e=this.entries.indexOf(t);-1!==e&&this.entries.splice(e,1)}clearToLastMarker(){const t=this.entries.indexOf(mR);-1===t?this.entries.length=0:this.entries.splice(0,t+1)}getElementEntryInScopeWithTagName(t){const e=this.entries.find(e=>e.type===ER.Marker||this.treeAdapter.getTagName(e.element)===t);return e&&e.type===ER.Element?e:null}getElementEntry(t){return this.entries.find(e=>e.type===ER.Element&&e.element===t)}}const wR={createDocument:()=>({nodeName:"#document",mode:Vx.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(t,e,n)=>({nodeName:t,tagName:t,attrs:n,namespaceURI:e,childNodes:[],parentNode:null}),createCommentNode:t=>({nodeName:"#comment",data:t,parentNode:null}),createTextNode:t=>({nodeName:"#text",value:t,parentNode:null}),appendChild(t,e){t.childNodes.push(e),e.parentNode=t},insertBefore(t,e,n){const r=t.childNodes.indexOf(n);t.childNodes.splice(r,0,e),e.parentNode=t},setTemplateContent(t,e){t.content=e},getTemplateContent:t=>t.content,setDocumentType(t,e,n,r){const i=t.childNodes.find(t=>"#documentType"===t.nodeName);if(i)i.name=e,i.publicId=n,i.systemId=r;else{const i={nodeName:"#documentType",name:e,publicId:n,systemId:r,parentNode:null};wR.appendChild(t,i)}},setDocumentMode(t,e){t.mode=e},getDocumentMode:t=>t.mode,detachNode(t){if(t.parentNode){const e=t.parentNode.childNodes.indexOf(t);t.parentNode.childNodes.splice(e,1),t.parentNode=null}},insertText(t,e){if(t.childNodes.length>0){const n=t.childNodes[t.childNodes.length-1];if(wR.isTextNode(n))return void(n.value+=e)}wR.appendChild(t,wR.createTextNode(e))},insertTextBefore(t,e,n){const r=t.childNodes[t.childNodes.indexOf(n)-1];r&&wR.isTextNode(r)?r.value+=e:wR.insertBefore(t,wR.createTextNode(e),n)},adoptAttributes(t,e){const n=new Set(t.attrs.map(t=>t.name));for(let r=0;r<e.length;r++)n.has(e[r].name)||t.attrs.push(e[r])},getFirstChild:t=>t.childNodes[0],getChildNodes:t=>t.childNodes,getParentNode:t=>t.parentNode,getAttrList:t=>t.attrs,getTagName:t=>t.tagName,getNamespaceURI:t=>t.namespaceURI,getTextNodeContent:t=>t.value,getCommentNodeContent:t=>t.data,getDocumentTypeNodeName:t=>t.name,getDocumentTypeNodePublicId:t=>t.publicId,getDocumentTypeNodeSystemId:t=>t.systemId,isTextNode:t=>"#text"===t.nodeName,isCommentNode:t=>"#comment"===t.nodeName,isDocumentTypeNode:t=>"#documentType"===t.nodeName,isElementNode:t=>Object.prototype.hasOwnProperty.call(t,"tagName"),setNodeSourceCodeLocation(t,e){t.sourceCodeLocation=e},getNodeSourceCodeLocation:t=>t.sourceCodeLocation,updateNodeSourceCodeLocation(t,e){t.sourceCodeLocation={...t.sourceCodeLocation,...e}}},IR="html",CR=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],BR=[...CR,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],TR=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),bR=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],DR=[...bR,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function MR(t,e){return e.some(e=>t.startsWith(e))}const NR="text/html",SR="application/xhtml+xml",vR=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(t=>[t.toLowerCase(),t])),_R=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:Px.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:Px.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:Px.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:Px.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:Px.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:Px.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:Px.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:Px.XML}],["xml:space",{prefix:"xml",name:"space",namespace:Px.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:Px.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:Px.XMLNS}]]),LR=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(t=>[t.toLowerCase(),t])),xR=new Set([jx.B,jx.BIG,jx.BLOCKQUOTE,jx.BODY,jx.BR,jx.CENTER,jx.CODE,jx.DD,jx.DIV,jx.DL,jx.DT,jx.EM,jx.EMBED,jx.H1,jx.H2,jx.H3,jx.H4,jx.H5,jx.H6,jx.HEAD,jx.HR,jx.I,jx.IMG,jx.LI,jx.LISTING,jx.MENU,jx.META,jx.NOBR,jx.OL,jx.P,jx.PRE,jx.RUBY,jx.S,jx.SMALL,jx.SPAN,jx.STRONG,jx.STRIKE,jx.SUB,jx.SUP,jx.TABLE,jx.TT,jx.U,jx.UL,jx.VAR]);function RR(t){for(let e=0;e<t.attrs.length;e++)if("definitionurl"===t.attrs[e].name){t.attrs[e].name="definitionURL";break}}function FR(t){for(let e=0;e<t.attrs.length;e++){const n=vR.get(t.attrs[e].name);null!=n&&(t.attrs[e].name=n)}}function OR(t){for(let e=0;e<t.attrs.length;e++){const n=_R.get(t.attrs[e].name);n&&(t.attrs[e].prefix=n.prefix,t.attrs[e].name=n.name,t.attrs[e].namespace=n.namespace)}}function kR(t,e,n,r){return(!r||r===Px.HTML)&&function(t,e,n){if(e===Px.MATHML&&t===jx.ANNOTATION_XML)for(let t=0;t<n.length;t++)if(n[t].name===Gx.ENCODING){const e=n[t].value.toLowerCase();return e===NR||e===SR}return e===Px.SVG&&(t===jx.FOREIGN_OBJECT||t===jx.DESC||t===jx.TITLE)}(t,e,n)||(!r||r===Px.MATHML)&&function(t,e){return e===Px.MATHML&&(t===jx.MI||t===jx.MO||t===jx.MN||t===jx.MS||t===jx.MTEXT)}(t,e)}var QR;!function(t){t[t.INITIAL=0]="INITIAL",t[t.BEFORE_HTML=1]="BEFORE_HTML",t[t.BEFORE_HEAD=2]="BEFORE_HEAD",t[t.IN_HEAD=3]="IN_HEAD",t[t.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",t[t.AFTER_HEAD=5]="AFTER_HEAD",t[t.IN_BODY=6]="IN_BODY",t[t.TEXT=7]="TEXT",t[t.IN_TABLE=8]="IN_TABLE",t[t.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",t[t.IN_CAPTION=10]="IN_CAPTION",t[t.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",t[t.IN_TABLE_BODY=12]="IN_TABLE_BODY",t[t.IN_ROW=13]="IN_ROW",t[t.IN_CELL=14]="IN_CELL",t[t.IN_SELECT=15]="IN_SELECT",t[t.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",t[t.IN_TEMPLATE=17]="IN_TEMPLATE",t[t.AFTER_BODY=18]="AFTER_BODY",t[t.IN_FRAMESET=19]="IN_FRAMESET",t[t.AFTER_FRAMESET=20]="AFTER_FRAMESET",t[t.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",t[t.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET"}(QR||(QR={}));const UR={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},PR=new Set([jx.TABLE,jx.TBODY,jx.TFOOT,jx.THEAD,jx.TR]),GR={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:wR,onParseError:null};class VR{constructor(t,e,n=null,r=null){this.fragmentContext=n,this.scriptHandler=r,this.currentToken=null,this.stopped=!1,this.insertionMode=QR.INITIAL,this.originalInsertionMode=QR.INITIAL,this.headElement=null,this.formElement=null,this.currentNotInHTML=!1,this.tmplInsertionModeStack=[],this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1,this.options={...GR,...t},this.treeAdapter=this.options.treeAdapter,this.onParseError=this.options.onParseError,this.onParseError&&(this.options.sourceCodeLocationInfo=!0),this.document=null!=e?e:this.treeAdapter.createDocument(),this.tokenizer=new iR(this.options,this),this.activeFormattingElements=new yR(this.treeAdapter),this.fragmentContextID=n?zx(this.treeAdapter.getTagName(n)):jx.UNKNOWN,this._setContextModes(null!=n?n:this.document,this.fragmentContextID),this.openElements=new gR(this.document,this.treeAdapter,this)}static parse(t,e){const n=new this(e);return n.tokenizer.write(t,!0),n.document}static getFragmentParser(t,e){const n={...GR,...e};null!=t||(t=n.treeAdapter.createElement(Hx.TEMPLATE,Px.HTML,[]));const r=n.treeAdapter.createElement("documentmock",Px.HTML,[]),i=new this(n,r,t);return i.fragmentContextID===jx.TEMPLATE&&i.tmplInsertionModeStack.unshift(QR.IN_TEMPLATE),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),i}getFragment(){const t=this.treeAdapter.getFirstChild(this.document),e=this.treeAdapter.createDocumentFragment();return this._adoptNodes(t,e),e}_err(t,e,n){var r;if(!this.onParseError)return;const i=null!==(r=t.location)&&void 0!==r?r:UR,o={code:e,startLine:i.startLine,startCol:i.startCol,startOffset:i.startOffset,endLine:n?i.startLine:i.endLine,endCol:n?i.startCol:i.endCol,endOffset:n?i.startOffset:i.endOffset};this.onParseError(o)}onItemPush(t,e,n){var r,i;null===(i=(r=this.treeAdapter).onItemPush)||void 0===i||i.call(r,t),n&&this.openElements.stackTop>0&&this._setContextModes(t,e)}onItemPop(t,e){var n,r;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),null===(r=(n=this.treeAdapter).onItemPop)||void 0===r||r.call(n,t,this.openElements.current),e){let t,e;0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,e=this.fragmentContextID):({current:t,currentTagId:e}=this.openElements),this._setContextModes(t,e)}}_setContextModes(t,e){const n=t===this.document||t&&this.treeAdapter.getNamespaceURI(t)===Px.HTML;this.currentNotInHTML=!n,this.tokenizer.inForeignNode=!n&&void 0!==t&&void 0!==e&&!this._isIntegrationPoint(e,t)}_switchToTextParsing(t,e){this._insertElement(t,Px.HTML),this.tokenizer.state=e,this.originalInsertionMode=this.insertionMode,this.insertionMode=QR.TEXT}switchToPlaintextParsing(){this.insertionMode=QR.TEXT,this.originalInsertionMode=QR.IN_BODY,this.tokenizer.state=Xx.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===Hx.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(this.fragmentContext&&this.treeAdapter.getNamespaceURI(this.fragmentContext)===Px.HTML)switch(this.fragmentContextID){case jx.TITLE:case jx.TEXTAREA:this.tokenizer.state=Xx.RCDATA;break;case jx.STYLE:case jx.XMP:case jx.IFRAME:case jx.NOEMBED:case jx.NOFRAMES:case jx.NOSCRIPT:this.tokenizer.state=Xx.RAWTEXT;break;case jx.SCRIPT:this.tokenizer.state=Xx.SCRIPT_DATA;break;case jx.PLAINTEXT:this.tokenizer.state=Xx.PLAINTEXT}}_setDocumentType(t){const e=t.name||"",n=t.publicId||"",r=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,e,n,r),t.location){const e=this.treeAdapter.getChildNodes(this.document).find(t=>this.treeAdapter.isDocumentTypeNode(t));e&&this.treeAdapter.setNodeSourceCodeLocation(e,t.location)}}_attachElementToTree(t,e){if(this.options.sourceCodeLocationInfo){const n=e&&{...e,startTag:e};this.treeAdapter.setNodeSourceCodeLocation(t,n)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const e=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(null!=e?e:this.document,t)}}_appendElement(t,e){const n=this.treeAdapter.createElement(t.tagName,e,t.attrs);this._attachElementToTree(n,t.location)}_insertElement(t,e){const n=this.treeAdapter.createElement(t.tagName,e,t.attrs);this._attachElementToTree(n,t.location),this.openElements.push(n,t.tagID)}_insertFakeElement(t,e){const n=this.treeAdapter.createElement(t,Px.HTML,[]);this._attachElementToTree(n,null),this.openElements.push(n,e)}_insertTemplate(t){const e=this.treeAdapter.createElement(t.tagName,Px.HTML,t.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(e,n),this._attachElementToTree(e,t.location),this.openElements.push(e,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(Hx.HTML,Px.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,jx.HTML)}_appendCommentNode(t,e){const n=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(e,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,t.location)}_insertCharacters(t){let e,n;if(this._shouldFosterParentOnInsertion()?(({parent:e,beforeElement:n}=this._findFosterParentingLocation()),n?this.treeAdapter.insertTextBefore(e,t.chars,n):this.treeAdapter.insertText(e,t.chars)):(e=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(e,t.chars)),!t.location)return;const r=this.treeAdapter.getChildNodes(e),i=n?r.lastIndexOf(n):r.length,o=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(o)){const{endLine:e,endCol:n,endOffset:r}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(o,{endLine:e,endCol:n,endOffset:r})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,t.location)}_adoptNodes(t,e){for(let n=this.treeAdapter.getFirstChild(t);n;n=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(e,n)}_setEndLocation(t,e){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&e.location){const n=e.location,r=this.treeAdapter.getTagName(t),i=e.type===bx.END_TAG&&r===e.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let e,n;return 0===this.openElements.stackTop&&this.fragmentContext?(e=this.fragmentContext,n=this.fragmentContextID):({current:e,currentTagId:n}=this.openElements),(t.tagID!==jx.SVG||this.treeAdapter.getTagName(e)!==Hx.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(e)!==Px.MATHML)&&(this.tokenizer.inForeignNode||(t.tagID===jx.MGLYPH||t.tagID===jx.MALIGNMARK)&&void 0!==n&&!this._isIntegrationPoint(n,e,Px.HTML))}_processToken(t){switch(t.type){case bx.CHARACTER:this.onCharacter(t);break;case bx.NULL_CHARACTER:this.onNullCharacter(t);break;case bx.COMMENT:this.onComment(t);break;case bx.DOCTYPE:this.onDoctype(t);break;case bx.START_TAG:this._processStartTag(t);break;case bx.END_TAG:this.onEndTag(t);break;case bx.EOF:this.onEof(t);break;case bx.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(t)}}_isIntegrationPoint(t,e,n){return kR(t,this.treeAdapter.getNamespaceURI(e),this.treeAdapter.getAttrList(e),n)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const e=this.activeFormattingElements.entries.findIndex(t=>t.type===ER.Marker||this.openElements.contains(t.element));for(let n=-1===e?t-1:e-1;n>=0;n--){const t=this.activeFormattingElements.entries[n];this._insertElement(t.token,this.treeAdapter.getNamespaceURI(t.element)),t.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=QR.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(jx.P),this.openElements.popUntilTagNamePopped(jx.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(0===t&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case jx.TR:return void(this.insertionMode=QR.IN_ROW);case jx.TBODY:case jx.THEAD:case jx.TFOOT:return void(this.insertionMode=QR.IN_TABLE_BODY);case jx.CAPTION:return void(this.insertionMode=QR.IN_CAPTION);case jx.COLGROUP:return void(this.insertionMode=QR.IN_COLUMN_GROUP);case jx.TABLE:return void(this.insertionMode=QR.IN_TABLE);case jx.BODY:return void(this.insertionMode=QR.IN_BODY);case jx.FRAMESET:return void(this.insertionMode=QR.IN_FRAMESET);case jx.SELECT:return void this._resetInsertionModeForSelect(t);case jx.TEMPLATE:return void(this.insertionMode=this.tmplInsertionModeStack[0]);case jx.HTML:return void(this.insertionMode=this.headElement?QR.AFTER_HEAD:QR.BEFORE_HEAD);case jx.TD:case jx.TH:if(t>0)return void(this.insertionMode=QR.IN_CELL);break;case jx.HEAD:if(t>0)return void(this.insertionMode=QR.IN_HEAD)}this.insertionMode=QR.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let e=t-1;e>0;e--){const t=this.openElements.tagIDs[e];if(t===jx.TEMPLATE)break;if(t===jx.TABLE)return void(this.insertionMode=QR.IN_SELECT_IN_TABLE)}this.insertionMode=QR.IN_SELECT}_isElementCausesFosterParenting(t){return PR.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&void 0!==this.openElements.currentTagId&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const e=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case jx.TEMPLATE:if(this.treeAdapter.getNamespaceURI(e)===Px.HTML)return{parent:this.treeAdapter.getTemplateContent(e),beforeElement:null};break;case jx.TABLE:{const n=this.treeAdapter.getParentNode(e);return n?{parent:n,beforeElement:e}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const e=this._findFosterParentingLocation();e.beforeElement?this.treeAdapter.insertBefore(e.parent,t,e.beforeElement):this.treeAdapter.appendChild(e.parent,t)}_isSpecialElement(t,e){const n=this.treeAdapter.getNamespaceURI(t);return Wx[n].has(e)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(t,e){t._insertCharacters(e),t.framesetOk=!1}(this,t);else switch(this.insertionMode){case QR.INITIAL:ZR(this,t);break;case QR.BEFORE_HTML:$R(this,t);break;case QR.BEFORE_HEAD:tF(this,t);break;case QR.IN_HEAD:rF(this,t);break;case QR.IN_HEAD_NO_SCRIPT:iF(this,t);break;case QR.AFTER_HEAD:oF(this,t);break;case QR.IN_BODY:case QR.IN_CAPTION:case QR.IN_CELL:case QR.IN_TEMPLATE:cF(this,t);break;case QR.TEXT:case QR.IN_SELECT:case QR.IN_SELECT_IN_TABLE:this._insertCharacters(t);break;case QR.IN_TABLE:case QR.IN_TABLE_BODY:case QR.IN_ROW:EF(this,t);break;case QR.IN_TABLE_TEXT:CF(this,t);break;case QR.IN_COLUMN_GROUP:DF(this,t);break;case QR.AFTER_BODY:FF(this,t);break;case QR.AFTER_AFTER_BODY:OF(this,t)}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(t,e){e.chars=dx,t._insertCharacters(e)}(this,t);else switch(this.insertionMode){case QR.INITIAL:ZR(this,t);break;case QR.BEFORE_HTML:$R(this,t);break;case QR.BEFORE_HEAD:tF(this,t);break;case QR.IN_HEAD:rF(this,t);break;case QR.IN_HEAD_NO_SCRIPT:iF(this,t);break;case QR.AFTER_HEAD:oF(this,t);break;case QR.TEXT:this._insertCharacters(t);break;case QR.IN_TABLE:case QR.IN_TABLE_BODY:case QR.IN_ROW:EF(this,t);break;case QR.IN_COLUMN_GROUP:DF(this,t);break;case QR.AFTER_BODY:FF(this,t);break;case QR.AFTER_AFTER_BODY:OF(this,t)}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML)KR(this,t);else switch(this.insertionMode){case QR.INITIAL:case QR.BEFORE_HTML:case QR.BEFORE_HEAD:case QR.IN_HEAD:case QR.IN_HEAD_NO_SCRIPT:case QR.AFTER_HEAD:case QR.IN_BODY:case QR.IN_TABLE:case QR.IN_CAPTION:case QR.IN_COLUMN_GROUP:case QR.IN_TABLE_BODY:case QR.IN_ROW:case QR.IN_CELL:case QR.IN_SELECT:case QR.IN_SELECT_IN_TABLE:case QR.IN_TEMPLATE:case QR.IN_FRAMESET:case QR.AFTER_FRAMESET:KR(this,t);break;case QR.IN_TABLE_TEXT:BF(this,t);break;case QR.AFTER_BODY:!function(t,e){t._appendCommentNode(e,t.openElements.items[0])}(this,t);break;case QR.AFTER_AFTER_BODY:case QR.AFTER_AFTER_FRAMESET:!function(t,e){t._appendCommentNode(e,t.document)}(this,t)}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case QR.INITIAL:!function(t,e){t._setDocumentType(e);const n=e.forceQuirks?Vx.QUIRKS:function(t){if(t.name!==IR)return Vx.QUIRKS;const{systemId:e}=t;if(e&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===e.toLowerCase())return Vx.QUIRKS;let{publicId:n}=t;if(null!==n){if(n=n.toLowerCase(),TR.has(n))return Vx.QUIRKS;let t=null===e?BR:CR;if(MR(n,t))return Vx.QUIRKS;if(t=null===e?bR:DR,MR(n,t))return Vx.LIMITED_QUIRKS}return Vx.NO_QUIRKS}(e);(function(t){return t.name===IR&&null===t.publicId&&(null===t.systemId||"about:legacy-compat"===t.systemId)})(e)||t._err(e,Bx.nonConformingDoctype);t.treeAdapter.setDocumentMode(t.document,n),t.insertionMode=QR.BEFORE_HTML}(this,t);break;case QR.BEFORE_HEAD:case QR.IN_HEAD:case QR.IN_HEAD_NO_SCRIPT:case QR.AFTER_HEAD:this._err(t,Bx.misplacedDoctype);break;case QR.IN_TABLE_TEXT:BF(this,t)}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,Bx.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?function(t,e){if(function(t){const e=t.tagID;return e===jx.FONT&&t.attrs.some(({name:t})=>t===Gx.COLOR||t===Gx.SIZE||t===Gx.FACE)||xR.has(e)}(e))kF(t),t._startTagOutsideForeignContent(e);else{const n=t._getAdjustedCurrentElement(),r=t.treeAdapter.getNamespaceURI(n);r===Px.MATHML?RR(e):r===Px.SVG&&(!function(t){const e=LR.get(t.tagName);null!=e&&(t.tagName=e,t.tagID=zx(t.tagName))}(e),FR(e)),OR(e),e.selfClosing?t._appendElement(e,r):t._insertElement(e,r),e.ackSelfClosing=!0}}(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case QR.INITIAL:ZR(this,t);break;case QR.BEFORE_HTML:!function(t,e){e.tagID===jx.HTML?(t._insertElement(e,Px.HTML),t.insertionMode=QR.BEFORE_HEAD):$R(t,e)}(this,t);break;case QR.BEFORE_HEAD:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.HEAD:t._insertElement(e,Px.HTML),t.headElement=t.openElements.current,t.insertionMode=QR.IN_HEAD;break;default:tF(t,e)}}(this,t);break;case QR.IN_HEAD:eF(this,t);break;case QR.IN_HEAD_NO_SCRIPT:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.BASEFONT:case jx.BGSOUND:case jx.HEAD:case jx.LINK:case jx.META:case jx.NOFRAMES:case jx.STYLE:eF(t,e);break;case jx.NOSCRIPT:t._err(e,Bx.nestedNoscriptInHead);break;default:iF(t,e)}}(this,t);break;case QR.AFTER_HEAD:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.BODY:t._insertElement(e,Px.HTML),t.framesetOk=!1,t.insertionMode=QR.IN_BODY;break;case jx.FRAMESET:t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_FRAMESET;break;case jx.BASE:case jx.BASEFONT:case jx.BGSOUND:case jx.LINK:case jx.META:case jx.NOFRAMES:case jx.SCRIPT:case jx.STYLE:case jx.TEMPLATE:case jx.TITLE:t._err(e,Bx.abandonedHeadElementChild),t.openElements.push(t.headElement,jx.HEAD),eF(t,e),t.openElements.remove(t.headElement);break;case jx.HEAD:t._err(e,Bx.misplacedStartTagForHeadElement);break;default:oF(t,e)}}(this,t);break;case QR.IN_BODY:pF(this,t);break;case QR.IN_TABLE:mF(this,t);break;case QR.IN_TABLE_TEXT:BF(this,t);break;case QR.IN_CAPTION:!function(t,e){const n=e.tagID;TF.has(n)?t.openElements.hasInTableScope(jx.CAPTION)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(jx.CAPTION),t.activeFormattingElements.clearToLastMarker(),t.insertionMode=QR.IN_TABLE,mF(t,e)):pF(t,e)}(this,t);break;case QR.IN_COLUMN_GROUP:bF(this,t);break;case QR.IN_TABLE_BODY:MF(this,t);break;case QR.IN_ROW:SF(this,t);break;case QR.IN_CELL:!function(t,e){const n=e.tagID;TF.has(n)?(t.openElements.hasInTableScope(jx.TD)||t.openElements.hasInTableScope(jx.TH))&&(t._closeTableCell(),SF(t,e)):pF(t,e)}(this,t);break;case QR.IN_SELECT:_F(this,t);break;case QR.IN_SELECT_IN_TABLE:!function(t,e){const n=e.tagID;n===jx.CAPTION||n===jx.TABLE||n===jx.TBODY||n===jx.TFOOT||n===jx.THEAD||n===jx.TR||n===jx.TD||n===jx.TH?(t.openElements.popUntilTagNamePopped(jx.SELECT),t._resetInsertionMode(),t._processStartTag(e)):_F(t,e)}(this,t);break;case QR.IN_TEMPLATE:!function(t,e){switch(e.tagID){case jx.BASE:case jx.BASEFONT:case jx.BGSOUND:case jx.LINK:case jx.META:case jx.NOFRAMES:case jx.SCRIPT:case jx.STYLE:case jx.TEMPLATE:case jx.TITLE:eF(t,e);break;case jx.CAPTION:case jx.COLGROUP:case jx.TBODY:case jx.TFOOT:case jx.THEAD:t.tmplInsertionModeStack[0]=QR.IN_TABLE,t.insertionMode=QR.IN_TABLE,mF(t,e);break;case jx.COL:t.tmplInsertionModeStack[0]=QR.IN_COLUMN_GROUP,t.insertionMode=QR.IN_COLUMN_GROUP,bF(t,e);break;case jx.TR:t.tmplInsertionModeStack[0]=QR.IN_TABLE_BODY,t.insertionMode=QR.IN_TABLE_BODY,MF(t,e);break;case jx.TD:case jx.TH:t.tmplInsertionModeStack[0]=QR.IN_ROW,t.insertionMode=QR.IN_ROW,SF(t,e);break;default:t.tmplInsertionModeStack[0]=QR.IN_BODY,t.insertionMode=QR.IN_BODY,pF(t,e)}}(this,t);break;case QR.AFTER_BODY:!function(t,e){e.tagID===jx.HTML?pF(t,e):FF(t,e)}(this,t);break;case QR.IN_FRAMESET:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.FRAMESET:t._insertElement(e,Px.HTML);break;case jx.FRAME:t._appendElement(e,Px.HTML),e.ackSelfClosing=!0;break;case jx.NOFRAMES:eF(t,e)}}(this,t);break;case QR.AFTER_FRAMESET:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.NOFRAMES:eF(t,e)}}(this,t);break;case QR.AFTER_AFTER_BODY:!function(t,e){e.tagID===jx.HTML?pF(t,e):OF(t,e)}(this,t);break;case QR.AFTER_AFTER_FRAMESET:!function(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.NOFRAMES:eF(t,e)}}(this,t)}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?function(t,e){if(e.tagID===jx.P||e.tagID===jx.BR)return kF(t),void t._endTagOutsideForeignContent(e);for(let n=t.openElements.stackTop;n>0;n--){const r=t.openElements.items[n];if(t.treeAdapter.getNamespaceURI(r)===Px.HTML){t._endTagOutsideForeignContent(e);break}const i=t.treeAdapter.getTagName(r);if(i.toLowerCase()===e.tagName){e.tagName=i,t.openElements.shortenToLength(n);break}}}(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case QR.INITIAL:ZR(this,t);break;case QR.BEFORE_HTML:!function(t,e){const n=e.tagID;n!==jx.HTML&&n!==jx.HEAD&&n!==jx.BODY&&n!==jx.BR||$R(t,e)}(this,t);break;case QR.BEFORE_HEAD:!function(t,e){const n=e.tagID;n===jx.HEAD||n===jx.BODY||n===jx.HTML||n===jx.BR?tF(t,e):t._err(e,Bx.endTagWithoutMatchingOpenElement)}(this,t);break;case QR.IN_HEAD:!function(t,e){switch(e.tagID){case jx.HEAD:t.openElements.pop(),t.insertionMode=QR.AFTER_HEAD;break;case jx.BODY:case jx.BR:case jx.HTML:rF(t,e);break;case jx.TEMPLATE:nF(t,e);break;default:t._err(e,Bx.endTagWithoutMatchingOpenElement)}}(this,t);break;case QR.IN_HEAD_NO_SCRIPT:!function(t,e){switch(e.tagID){case jx.NOSCRIPT:t.openElements.pop(),t.insertionMode=QR.IN_HEAD;break;case jx.BR:iF(t,e);break;default:t._err(e,Bx.endTagWithoutMatchingOpenElement)}}(this,t);break;case QR.AFTER_HEAD:!function(t,e){switch(e.tagID){case jx.BODY:case jx.HTML:case jx.BR:oF(t,e);break;case jx.TEMPLATE:nF(t,e);break;default:t._err(e,Bx.endTagWithoutMatchingOpenElement)}}(this,t);break;case QR.IN_BODY:AF(this,t);break;case QR.TEXT:!function(t,e){var n;e.tagID===jx.SCRIPT&&(null===(n=t.scriptHandler)||void 0===n||n.call(t,t.openElements.current));t.openElements.pop(),t.insertionMode=t.originalInsertionMode}(this,t);break;case QR.IN_TABLE:yF(this,t);break;case QR.IN_TABLE_TEXT:BF(this,t);break;case QR.IN_CAPTION:!function(t,e){const n=e.tagID;switch(n){case jx.CAPTION:case jx.TABLE:t.openElements.hasInTableScope(jx.CAPTION)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(jx.CAPTION),t.activeFormattingElements.clearToLastMarker(),t.insertionMode=QR.IN_TABLE,n===jx.TABLE&&yF(t,e));break;case jx.BODY:case jx.COL:case jx.COLGROUP:case jx.HTML:case jx.TBODY:case jx.TD:case jx.TFOOT:case jx.TH:case jx.THEAD:case jx.TR:break;default:AF(t,e)}}(this,t);break;case QR.IN_COLUMN_GROUP:!function(t,e){switch(e.tagID){case jx.COLGROUP:t.openElements.currentTagId===jx.COLGROUP&&(t.openElements.pop(),t.insertionMode=QR.IN_TABLE);break;case jx.TEMPLATE:nF(t,e);break;case jx.COL:break;default:DF(t,e)}}(this,t);break;case QR.IN_TABLE_BODY:NF(this,t);break;case QR.IN_ROW:vF(this,t);break;case QR.IN_CELL:!function(t,e){const n=e.tagID;switch(n){case jx.TD:case jx.TH:t.openElements.hasInTableScope(n)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(n),t.activeFormattingElements.clearToLastMarker(),t.insertionMode=QR.IN_ROW);break;case jx.TABLE:case jx.TBODY:case jx.TFOOT:case jx.THEAD:case jx.TR:t.openElements.hasInTableScope(n)&&(t._closeTableCell(),vF(t,e));break;case jx.BODY:case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.HTML:break;default:AF(t,e)}}(this,t);break;case QR.IN_SELECT:LF(this,t);break;case QR.IN_SELECT_IN_TABLE:!function(t,e){const n=e.tagID;n===jx.CAPTION||n===jx.TABLE||n===jx.TBODY||n===jx.TFOOT||n===jx.THEAD||n===jx.TR||n===jx.TD||n===jx.TH?t.openElements.hasInTableScope(n)&&(t.openElements.popUntilTagNamePopped(jx.SELECT),t._resetInsertionMode(),t.onEndTag(e)):LF(t,e)}(this,t);break;case QR.IN_TEMPLATE:!function(t,e){e.tagID===jx.TEMPLATE&&nF(t,e)}(this,t);break;case QR.AFTER_BODY:RF(this,t);break;case QR.IN_FRAMESET:!function(t,e){e.tagID!==jx.FRAMESET||t.openElements.isRootHtmlElementCurrent()||(t.openElements.pop(),t.fragmentContext||t.openElements.currentTagId===jx.FRAMESET||(t.insertionMode=QR.AFTER_FRAMESET))}(this,t);break;case QR.AFTER_FRAMESET:!function(t,e){e.tagID===jx.HTML&&(t.insertionMode=QR.AFTER_AFTER_FRAMESET)}(this,t);break;case QR.AFTER_AFTER_BODY:OF(this,t)}}onEof(t){switch(this.insertionMode){case QR.INITIAL:ZR(this,t);break;case QR.BEFORE_HTML:$R(this,t);break;case QR.BEFORE_HEAD:tF(this,t);break;case QR.IN_HEAD:rF(this,t);break;case QR.IN_HEAD_NO_SCRIPT:iF(this,t);break;case QR.AFTER_HEAD:oF(this,t);break;case QR.IN_BODY:case QR.IN_TABLE:case QR.IN_CAPTION:case QR.IN_COLUMN_GROUP:case QR.IN_TABLE_BODY:case QR.IN_ROW:case QR.IN_CELL:case QR.IN_SELECT:case QR.IN_SELECT_IN_TABLE:gF(this,t);break;case QR.TEXT:!function(t,e){t._err(e,Bx.eofInElementThatCanContainOnlyText),t.openElements.pop(),t.insertionMode=t.originalInsertionMode,t.onEof(e)}(this,t);break;case QR.IN_TABLE_TEXT:BF(this,t);break;case QR.IN_TEMPLATE:xF(this,t);break;case QR.AFTER_BODY:case QR.IN_FRAMESET:case QR.AFTER_FRAMESET:case QR.AFTER_AFTER_BODY:case QR.AFTER_AFTER_FRAMESET:XR(this,t)}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===px.LINE_FEED)){if(1===t.chars.length)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode)this._insertCharacters(t);else switch(this.insertionMode){case QR.IN_HEAD:case QR.IN_HEAD_NO_SCRIPT:case QR.AFTER_HEAD:case QR.TEXT:case QR.IN_COLUMN_GROUP:case QR.IN_SELECT:case QR.IN_SELECT_IN_TABLE:case QR.IN_FRAMESET:case QR.AFTER_FRAMESET:this._insertCharacters(t);break;case QR.IN_BODY:case QR.IN_CAPTION:case QR.IN_CELL:case QR.IN_TEMPLATE:case QR.AFTER_BODY:case QR.AFTER_AFTER_BODY:case QR.AFTER_AFTER_FRAMESET:aF(this,t);break;case QR.IN_TABLE:case QR.IN_TABLE_BODY:case QR.IN_ROW:EF(this,t);break;case QR.IN_TABLE_TEXT:IF(this,t)}}}function HR(t,e){let n=t.activeFormattingElements.getElementEntryInScopeWithTagName(e.tagName);return n?t.openElements.contains(n.element)?t.openElements.hasInScope(e.tagID)||(n=null):(t.activeFormattingElements.removeEntry(n),n=null):fF(t,e),n}function jR(t,e){let n=null,r=t.openElements.stackTop;for(;r>=0;r--){const i=t.openElements.items[r];if(i===e.element)break;t._isSpecialElement(i,t.openElements.tagIDs[r])&&(n=i)}return n||(t.openElements.shortenToLength(Math.max(r,0)),t.activeFormattingElements.removeEntry(e)),n}function YR(t,e,n){let r=e,i=t.openElements.getCommonAncestor(e);for(let o=0,s=i;s!==n;o++,s=i){i=t.openElements.getCommonAncestor(s);const n=t.activeFormattingElements.getElementEntry(s),a=n&&o>=3;!n||a?(a&&t.activeFormattingElements.removeEntry(n),t.openElements.remove(s)):(s=zR(t,n),r===e&&(t.activeFormattingElements.bookmark=n),t.treeAdapter.detachNode(r),t.treeAdapter.appendChild(s,r),r=s)}return r}function zR(t,e){const n=t.treeAdapter.getNamespaceURI(e.element),r=t.treeAdapter.createElement(e.token.tagName,n,e.token.attrs);return t.openElements.replace(e.element,r),e.element=r,r}function JR(t,e,n){const r=zx(t.treeAdapter.getTagName(e));if(t._isElementCausesFosterParenting(r))t._fosterParentElement(n);else{const i=t.treeAdapter.getNamespaceURI(e);r===jx.TEMPLATE&&i===Px.HTML&&(e=t.treeAdapter.getTemplateContent(e)),t.treeAdapter.appendChild(e,n)}}function WR(t,e,n){const r=t.treeAdapter.getNamespaceURI(n.element),{token:i}=n,o=t.treeAdapter.createElement(i.tagName,r,i.attrs);t._adoptNodes(e,o),t.treeAdapter.appendChild(e,o),t.activeFormattingElements.insertElementAfterBookmark(o,i),t.activeFormattingElements.removeEntry(n),t.openElements.remove(n.element),t.openElements.insertAfter(e,o,i.tagID)}function qR(t,e){for(let n=0;n<8;n++){const n=HR(t,e);if(!n)break;const r=jR(t,n);if(!r)break;t.activeFormattingElements.bookmark=n;const i=YR(t,r,n.element),o=t.openElements.getCommonAncestor(n.element);t.treeAdapter.detachNode(i),o&&JR(t,o,i),WR(t,r,n)}}function KR(t,e){t._appendCommentNode(e,t.openElements.currentTmplContentOrNode)}function XR(t,e){if(t.stopped=!0,e.location){const n=t.fragmentContext?0:2;for(let r=t.openElements.stackTop;r>=n;r--)t._setEndLocation(t.openElements.items[r],e);if(!t.fragmentContext&&t.openElements.stackTop>=0){const n=t.openElements.items[0],r=t.treeAdapter.getNodeSourceCodeLocation(n);if(r&&!r.endTag&&(t._setEndLocation(n,e),t.openElements.stackTop>=1)){const n=t.openElements.items[1],r=t.treeAdapter.getNodeSourceCodeLocation(n);r&&!r.endTag&&t._setEndLocation(n,e)}}}}function ZR(t,e){t._err(e,Bx.missingDoctype,!0),t.treeAdapter.setDocumentMode(t.document,Vx.QUIRKS),t.insertionMode=QR.BEFORE_HTML,t._processToken(e)}function $R(t,e){t._insertFakeRootElement(),t.insertionMode=QR.BEFORE_HEAD,t._processToken(e)}function tF(t,e){t._insertFakeElement(Hx.HEAD,jx.HEAD),t.headElement=t.openElements.current,t.insertionMode=QR.IN_HEAD,t._processToken(e)}function eF(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.BASE:case jx.BASEFONT:case jx.BGSOUND:case jx.LINK:case jx.META:t._appendElement(e,Px.HTML),e.ackSelfClosing=!0;break;case jx.TITLE:t._switchToTextParsing(e,Xx.RCDATA);break;case jx.NOSCRIPT:t.options.scriptingEnabled?t._switchToTextParsing(e,Xx.RAWTEXT):(t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_HEAD_NO_SCRIPT);break;case jx.NOFRAMES:case jx.STYLE:t._switchToTextParsing(e,Xx.RAWTEXT);break;case jx.SCRIPT:t._switchToTextParsing(e,Xx.SCRIPT_DATA);break;case jx.TEMPLATE:t._insertTemplate(e),t.activeFormattingElements.insertMarker(),t.framesetOk=!1,t.insertionMode=QR.IN_TEMPLATE,t.tmplInsertionModeStack.unshift(QR.IN_TEMPLATE);break;case jx.HEAD:t._err(e,Bx.misplacedStartTagForHeadElement);break;default:rF(t,e)}}function nF(t,e){t.openElements.tmplCount>0?(t.openElements.generateImpliedEndTagsThoroughly(),t.openElements.currentTagId!==jx.TEMPLATE&&t._err(e,Bx.closingOfElementWithOpenChildElements),t.openElements.popUntilTagNamePopped(jx.TEMPLATE),t.activeFormattingElements.clearToLastMarker(),t.tmplInsertionModeStack.shift(),t._resetInsertionMode()):t._err(e,Bx.endTagWithoutMatchingOpenElement)}function rF(t,e){t.openElements.pop(),t.insertionMode=QR.AFTER_HEAD,t._processToken(e)}function iF(t,e){const n=e.type===bx.EOF?Bx.openElementsLeftAfterEof:Bx.disallowedContentInNoscriptInHead;t._err(e,n),t.openElements.pop(),t.insertionMode=QR.IN_HEAD,t._processToken(e)}function oF(t,e){t._insertFakeElement(Hx.BODY,jx.BODY),t.insertionMode=QR.IN_BODY,sF(t,e)}function sF(t,e){switch(e.type){case bx.CHARACTER:cF(t,e);break;case bx.WHITESPACE_CHARACTER:aF(t,e);break;case bx.COMMENT:KR(t,e);break;case bx.START_TAG:pF(t,e);break;case bx.END_TAG:AF(t,e);break;case bx.EOF:gF(t,e)}}function aF(t,e){t._reconstructActiveFormattingElements(),t._insertCharacters(e)}function cF(t,e){t._reconstructActiveFormattingElements(),t._insertCharacters(e),t.framesetOk=!1}function lF(t,e){t._reconstructActiveFormattingElements(),t._appendElement(e,Px.HTML),t.framesetOk=!1,e.ackSelfClosing=!0}function uF(t){const e=Dx(t,Gx.TYPE);return null!=e&&"hidden"===e.toLowerCase()}function hF(t,e){t._switchToTextParsing(e,Xx.RAWTEXT)}function dF(t,e){t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML)}function pF(t,e){switch(e.tagID){case jx.I:case jx.S:case jx.B:case jx.U:case jx.EM:case jx.TT:case jx.BIG:case jx.CODE:case jx.FONT:case jx.SMALL:case jx.STRIKE:case jx.STRONG:!function(t,e){t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML),t.activeFormattingElements.pushElement(t.openElements.current,e)}(t,e);break;case jx.A:!function(t,e){const n=t.activeFormattingElements.getElementEntryInScopeWithTagName(Hx.A);n&&(qR(t,e),t.openElements.remove(n.element),t.activeFormattingElements.removeEntry(n)),t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML),t.activeFormattingElements.pushElement(t.openElements.current,e)}(t,e);break;case jx.H1:case jx.H2:case jx.H3:case jx.H4:case jx.H5:case jx.H6:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),void 0!==t.openElements.currentTagId&&qx.has(t.openElements.currentTagId)&&t.openElements.pop(),t._insertElement(e,Px.HTML)}(t,e);break;case jx.P:case jx.DL:case jx.OL:case jx.UL:case jx.DIV:case jx.DIR:case jx.NAV:case jx.MAIN:case jx.MENU:case jx.ASIDE:case jx.CENTER:case jx.FIGURE:case jx.FOOTER:case jx.HEADER:case jx.HGROUP:case jx.DIALOG:case jx.DETAILS:case jx.ADDRESS:case jx.ARTICLE:case jx.SEARCH:case jx.SECTION:case jx.SUMMARY:case jx.FIELDSET:case jx.BLOCKQUOTE:case jx.FIGCAPTION:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML)}(t,e);break;case jx.LI:case jx.DD:case jx.DT:!function(t,e){t.framesetOk=!1;const n=e.tagID;for(let e=t.openElements.stackTop;e>=0;e--){const r=t.openElements.tagIDs[e];if(n===jx.LI&&r===jx.LI||(n===jx.DD||n===jx.DT)&&(r===jx.DD||r===jx.DT)){t.openElements.generateImpliedEndTagsWithExclusion(r),t.openElements.popUntilTagNamePopped(r);break}if(r!==jx.ADDRESS&&r!==jx.DIV&&r!==jx.P&&t._isSpecialElement(t.openElements.items[e],r))break}t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML)}(t,e);break;case jx.BR:case jx.IMG:case jx.WBR:case jx.AREA:case jx.EMBED:case jx.KEYGEN:lF(t,e);break;case jx.HR:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._appendElement(e,Px.HTML),t.framesetOk=!1,e.ackSelfClosing=!0}(t,e);break;case jx.RB:case jx.RTC:!function(t,e){t.openElements.hasInScope(jx.RUBY)&&t.openElements.generateImpliedEndTags(),t._insertElement(e,Px.HTML)}(t,e);break;case jx.RT:case jx.RP:!function(t,e){t.openElements.hasInScope(jx.RUBY)&&t.openElements.generateImpliedEndTagsWithExclusion(jx.RTC),t._insertElement(e,Px.HTML)}(t,e);break;case jx.PRE:case jx.LISTING:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML),t.skipNextNewLine=!0,t.framesetOk=!1}(t,e);break;case jx.XMP:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._reconstructActiveFormattingElements(),t.framesetOk=!1,t._switchToTextParsing(e,Xx.RAWTEXT)}(t,e);break;case jx.SVG:!function(t,e){t._reconstructActiveFormattingElements(),FR(e),OR(e),e.selfClosing?t._appendElement(e,Px.SVG):t._insertElement(e,Px.SVG),e.ackSelfClosing=!0}(t,e);break;case jx.HTML:!function(t,e){0===t.openElements.tmplCount&&t.treeAdapter.adoptAttributes(t.openElements.items[0],e.attrs)}(t,e);break;case jx.BASE:case jx.LINK:case jx.META:case jx.STYLE:case jx.TITLE:case jx.SCRIPT:case jx.BGSOUND:case jx.BASEFONT:case jx.TEMPLATE:eF(t,e);break;case jx.BODY:!function(t,e){const n=t.openElements.tryPeekProperlyNestedBodyElement();n&&0===t.openElements.tmplCount&&(t.framesetOk=!1,t.treeAdapter.adoptAttributes(n,e.attrs))}(t,e);break;case jx.FORM:!function(t,e){const n=t.openElements.tmplCount>0;t.formElement&&!n||(t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML),n||(t.formElement=t.openElements.current))}(t,e);break;case jx.NOBR:!function(t,e){t._reconstructActiveFormattingElements(),t.openElements.hasInScope(jx.NOBR)&&(qR(t,e),t._reconstructActiveFormattingElements()),t._insertElement(e,Px.HTML),t.activeFormattingElements.pushElement(t.openElements.current,e)}(t,e);break;case jx.MATH:!function(t,e){t._reconstructActiveFormattingElements(),RR(e),OR(e),e.selfClosing?t._appendElement(e,Px.MATHML):t._insertElement(e,Px.MATHML),e.ackSelfClosing=!0}(t,e);break;case jx.TABLE:!function(t,e){t.treeAdapter.getDocumentMode(t.document)!==Vx.QUIRKS&&t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML),t.framesetOk=!1,t.insertionMode=QR.IN_TABLE}(t,e);break;case jx.INPUT:!function(t,e){t._reconstructActiveFormattingElements(),t._appendElement(e,Px.HTML),uF(e)||(t.framesetOk=!1),e.ackSelfClosing=!0}(t,e);break;case jx.PARAM:case jx.TRACK:case jx.SOURCE:!function(t,e){t._appendElement(e,Px.HTML),e.ackSelfClosing=!0}(t,e);break;case jx.IMAGE:!function(t,e){e.tagName=Hx.IMG,e.tagID=jx.IMG,lF(t,e)}(t,e);break;case jx.BUTTON:!function(t,e){t.openElements.hasInScope(jx.BUTTON)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(jx.BUTTON)),t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML),t.framesetOk=!1}(t,e);break;case jx.APPLET:case jx.OBJECT:case jx.MARQUEE:!function(t,e){t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML),t.activeFormattingElements.insertMarker(),t.framesetOk=!1}(t,e);break;case jx.IFRAME:!function(t,e){t.framesetOk=!1,t._switchToTextParsing(e,Xx.RAWTEXT)}(t,e);break;case jx.SELECT:!function(t,e){t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML),t.framesetOk=!1,t.insertionMode=t.insertionMode===QR.IN_TABLE||t.insertionMode===QR.IN_CAPTION||t.insertionMode===QR.IN_TABLE_BODY||t.insertionMode===QR.IN_ROW||t.insertionMode===QR.IN_CELL?QR.IN_SELECT_IN_TABLE:QR.IN_SELECT}(t,e);break;case jx.OPTION:case jx.OPTGROUP:!function(t,e){t.openElements.currentTagId===jx.OPTION&&t.openElements.pop(),t._reconstructActiveFormattingElements(),t._insertElement(e,Px.HTML)}(t,e);break;case jx.NOEMBED:case jx.NOFRAMES:hF(t,e);break;case jx.FRAMESET:!function(t,e){const n=t.openElements.tryPeekProperlyNestedBodyElement();t.framesetOk&&n&&(t.treeAdapter.detachNode(n),t.openElements.popAllUpToHtmlElement(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_FRAMESET)}(t,e);break;case jx.TEXTAREA:!function(t,e){t._insertElement(e,Px.HTML),t.skipNextNewLine=!0,t.tokenizer.state=Xx.RCDATA,t.originalInsertionMode=t.insertionMode,t.framesetOk=!1,t.insertionMode=QR.TEXT}(t,e);break;case jx.NOSCRIPT:t.options.scriptingEnabled?hF(t,e):dF(t,e);break;case jx.PLAINTEXT:!function(t,e){t.openElements.hasInButtonScope(jx.P)&&t._closePElement(),t._insertElement(e,Px.HTML),t.tokenizer.state=Xx.PLAINTEXT}(t,e);break;case jx.COL:case jx.TH:case jx.TD:case jx.TR:case jx.HEAD:case jx.FRAME:case jx.TBODY:case jx.TFOOT:case jx.THEAD:case jx.CAPTION:case jx.COLGROUP:break;default:dF(t,e)}}function fF(t,e){const n=e.tagName,r=e.tagID;for(let e=t.openElements.stackTop;e>0;e--){const i=t.openElements.items[e],o=t.openElements.tagIDs[e];if(r===o&&(r!==jx.UNKNOWN||t.treeAdapter.getTagName(i)===n)){t.openElements.generateImpliedEndTagsWithExclusion(r),t.openElements.stackTop>=e&&t.openElements.shortenToLength(e);break}if(t._isSpecialElement(i,o))break}}function AF(t,e){switch(e.tagID){case jx.A:case jx.B:case jx.I:case jx.S:case jx.U:case jx.EM:case jx.TT:case jx.BIG:case jx.CODE:case jx.FONT:case jx.NOBR:case jx.SMALL:case jx.STRIKE:case jx.STRONG:qR(t,e);break;case jx.P:!function(t){t.openElements.hasInButtonScope(jx.P)||t._insertFakeElement(Hx.P,jx.P),t._closePElement()}(t);break;case jx.DL:case jx.UL:case jx.OL:case jx.DIR:case jx.DIV:case jx.NAV:case jx.PRE:case jx.MAIN:case jx.MENU:case jx.ASIDE:case jx.BUTTON:case jx.CENTER:case jx.FIGURE:case jx.FOOTER:case jx.HEADER:case jx.HGROUP:case jx.DIALOG:case jx.ADDRESS:case jx.ARTICLE:case jx.DETAILS:case jx.SEARCH:case jx.SECTION:case jx.SUMMARY:case jx.LISTING:case jx.FIELDSET:case jx.BLOCKQUOTE:case jx.FIGCAPTION:!function(t,e){const n=e.tagID;t.openElements.hasInScope(n)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(n))}(t,e);break;case jx.LI:!function(t){t.openElements.hasInListItemScope(jx.LI)&&(t.openElements.generateImpliedEndTagsWithExclusion(jx.LI),t.openElements.popUntilTagNamePopped(jx.LI))}(t);break;case jx.DD:case jx.DT:!function(t,e){const n=e.tagID;t.openElements.hasInScope(n)&&(t.openElements.generateImpliedEndTagsWithExclusion(n),t.openElements.popUntilTagNamePopped(n))}(t,e);break;case jx.H1:case jx.H2:case jx.H3:case jx.H4:case jx.H5:case jx.H6:!function(t){t.openElements.hasNumberedHeaderInScope()&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilNumberedHeaderPopped())}(t);break;case jx.BR:!function(t){t._reconstructActiveFormattingElements(),t._insertFakeElement(Hx.BR,jx.BR),t.openElements.pop(),t.framesetOk=!1}(t);break;case jx.BODY:!function(t,e){if(t.openElements.hasInScope(jx.BODY)&&(t.insertionMode=QR.AFTER_BODY,t.options.sourceCodeLocationInfo)){const n=t.openElements.tryPeekProperlyNestedBodyElement();n&&t._setEndLocation(n,e)}}(t,e);break;case jx.HTML:!function(t,e){t.openElements.hasInScope(jx.BODY)&&(t.insertionMode=QR.AFTER_BODY,RF(t,e))}(t,e);break;case jx.FORM:!function(t){const e=t.openElements.tmplCount>0,{formElement:n}=t;e||(t.formElement=null),(n||e)&&t.openElements.hasInScope(jx.FORM)&&(t.openElements.generateImpliedEndTags(),e?t.openElements.popUntilTagNamePopped(jx.FORM):n&&t.openElements.remove(n))}(t);break;case jx.APPLET:case jx.OBJECT:case jx.MARQUEE:!function(t,e){const n=e.tagID;t.openElements.hasInScope(n)&&(t.openElements.generateImpliedEndTags(),t.openElements.popUntilTagNamePopped(n),t.activeFormattingElements.clearToLastMarker())}(t,e);break;case jx.TEMPLATE:nF(t,e);break;default:fF(t,e)}}function gF(t,e){t.tmplInsertionModeStack.length>0?xF(t,e):XR(t,e)}function EF(t,e){if(void 0!==t.openElements.currentTagId&&PR.has(t.openElements.currentTagId))switch(t.pendingCharacterTokens.length=0,t.hasNonWhitespacePendingCharacterToken=!1,t.originalInsertionMode=t.insertionMode,t.insertionMode=QR.IN_TABLE_TEXT,e.type){case bx.CHARACTER:CF(t,e);break;case bx.WHITESPACE_CHARACTER:IF(t,e)}else wF(t,e)}function mF(t,e){switch(e.tagID){case jx.TD:case jx.TH:case jx.TR:!function(t,e){t.openElements.clearBackToTableContext(),t._insertFakeElement(Hx.TBODY,jx.TBODY),t.insertionMode=QR.IN_TABLE_BODY,MF(t,e)}(t,e);break;case jx.STYLE:case jx.SCRIPT:case jx.TEMPLATE:eF(t,e);break;case jx.COL:!function(t,e){t.openElements.clearBackToTableContext(),t._insertFakeElement(Hx.COLGROUP,jx.COLGROUP),t.insertionMode=QR.IN_COLUMN_GROUP,bF(t,e)}(t,e);break;case jx.FORM:!function(t,e){t.formElement||0!==t.openElements.tmplCount||(t._insertElement(e,Px.HTML),t.formElement=t.openElements.current,t.openElements.pop())}(t,e);break;case jx.TABLE:!function(t,e){t.openElements.hasInTableScope(jx.TABLE)&&(t.openElements.popUntilTagNamePopped(jx.TABLE),t._resetInsertionMode(),t._processStartTag(e))}(t,e);break;case jx.TBODY:case jx.TFOOT:case jx.THEAD:!function(t,e){t.openElements.clearBackToTableContext(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_TABLE_BODY}(t,e);break;case jx.INPUT:!function(t,e){uF(e)?t._appendElement(e,Px.HTML):wF(t,e),e.ackSelfClosing=!0}(t,e);break;case jx.CAPTION:!function(t,e){t.openElements.clearBackToTableContext(),t.activeFormattingElements.insertMarker(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_CAPTION}(t,e);break;case jx.COLGROUP:!function(t,e){t.openElements.clearBackToTableContext(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_COLUMN_GROUP}(t,e);break;default:wF(t,e)}}function yF(t,e){switch(e.tagID){case jx.TABLE:t.openElements.hasInTableScope(jx.TABLE)&&(t.openElements.popUntilTagNamePopped(jx.TABLE),t._resetInsertionMode());break;case jx.TEMPLATE:nF(t,e);break;case jx.BODY:case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.HTML:case jx.TBODY:case jx.TD:case jx.TFOOT:case jx.TH:case jx.THEAD:case jx.TR:break;default:wF(t,e)}}function wF(t,e){const n=t.fosterParentingEnabled;t.fosterParentingEnabled=!0,sF(t,e),t.fosterParentingEnabled=n}function IF(t,e){t.pendingCharacterTokens.push(e)}function CF(t,e){t.pendingCharacterTokens.push(e),t.hasNonWhitespacePendingCharacterToken=!0}function BF(t,e){let n=0;if(t.hasNonWhitespacePendingCharacterToken)for(;n<t.pendingCharacterTokens.length;n++)wF(t,t.pendingCharacterTokens[n]);else for(;n<t.pendingCharacterTokens.length;n++)t._insertCharacters(t.pendingCharacterTokens[n]);t.insertionMode=t.originalInsertionMode,t._processToken(e)}const TF=new Set([jx.CAPTION,jx.COL,jx.COLGROUP,jx.TBODY,jx.TD,jx.TFOOT,jx.TH,jx.THEAD,jx.TR]);function bF(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.COL:t._appendElement(e,Px.HTML),e.ackSelfClosing=!0;break;case jx.TEMPLATE:eF(t,e);break;default:DF(t,e)}}function DF(t,e){t.openElements.currentTagId===jx.COLGROUP&&(t.openElements.pop(),t.insertionMode=QR.IN_TABLE,t._processToken(e))}function MF(t,e){switch(e.tagID){case jx.TR:t.openElements.clearBackToTableBodyContext(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_ROW;break;case jx.TH:case jx.TD:t.openElements.clearBackToTableBodyContext(),t._insertFakeElement(Hx.TR,jx.TR),t.insertionMode=QR.IN_ROW,SF(t,e);break;case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.TBODY:case jx.TFOOT:case jx.THEAD:t.openElements.hasTableBodyContextInTableScope()&&(t.openElements.clearBackToTableBodyContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE,mF(t,e));break;default:mF(t,e)}}function NF(t,e){const n=e.tagID;switch(e.tagID){case jx.TBODY:case jx.TFOOT:case jx.THEAD:t.openElements.hasInTableScope(n)&&(t.openElements.clearBackToTableBodyContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE);break;case jx.TABLE:t.openElements.hasTableBodyContextInTableScope()&&(t.openElements.clearBackToTableBodyContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE,yF(t,e));break;case jx.BODY:case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.HTML:case jx.TD:case jx.TH:case jx.TR:break;default:yF(t,e)}}function SF(t,e){switch(e.tagID){case jx.TH:case jx.TD:t.openElements.clearBackToTableRowContext(),t._insertElement(e,Px.HTML),t.insertionMode=QR.IN_CELL,t.activeFormattingElements.insertMarker();break;case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.TBODY:case jx.TFOOT:case jx.THEAD:case jx.TR:t.openElements.hasInTableScope(jx.TR)&&(t.openElements.clearBackToTableRowContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE_BODY,MF(t,e));break;default:mF(t,e)}}function vF(t,e){switch(e.tagID){case jx.TR:t.openElements.hasInTableScope(jx.TR)&&(t.openElements.clearBackToTableRowContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE_BODY);break;case jx.TABLE:t.openElements.hasInTableScope(jx.TR)&&(t.openElements.clearBackToTableRowContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE_BODY,NF(t,e));break;case jx.TBODY:case jx.TFOOT:case jx.THEAD:(t.openElements.hasInTableScope(e.tagID)||t.openElements.hasInTableScope(jx.TR))&&(t.openElements.clearBackToTableRowContext(),t.openElements.pop(),t.insertionMode=QR.IN_TABLE_BODY,NF(t,e));break;case jx.BODY:case jx.CAPTION:case jx.COL:case jx.COLGROUP:case jx.HTML:case jx.TD:case jx.TH:break;default:yF(t,e)}}function _F(t,e){switch(e.tagID){case jx.HTML:pF(t,e);break;case jx.OPTION:t.openElements.currentTagId===jx.OPTION&&t.openElements.pop(),t._insertElement(e,Px.HTML);break;case jx.OPTGROUP:t.openElements.currentTagId===jx.OPTION&&t.openElements.pop(),t.openElements.currentTagId===jx.OPTGROUP&&t.openElements.pop(),t._insertElement(e,Px.HTML);break;case jx.HR:t.openElements.currentTagId===jx.OPTION&&t.openElements.pop(),t.openElements.currentTagId===jx.OPTGROUP&&t.openElements.pop(),t._appendElement(e,Px.HTML),e.ackSelfClosing=!0;break;case jx.INPUT:case jx.KEYGEN:case jx.TEXTAREA:case jx.SELECT:t.openElements.hasInSelectScope(jx.SELECT)&&(t.openElements.popUntilTagNamePopped(jx.SELECT),t._resetInsertionMode(),e.tagID!==jx.SELECT&&t._processStartTag(e));break;case jx.SCRIPT:case jx.TEMPLATE:eF(t,e)}}function LF(t,e){switch(e.tagID){case jx.OPTGROUP:t.openElements.stackTop>0&&t.openElements.currentTagId===jx.OPTION&&t.openElements.tagIDs[t.openElements.stackTop-1]===jx.OPTGROUP&&t.openElements.pop(),t.openElements.currentTagId===jx.OPTGROUP&&t.openElements.pop();break;case jx.OPTION:t.openElements.currentTagId===jx.OPTION&&t.openElements.pop();break;case jx.SELECT:t.openElements.hasInSelectScope(jx.SELECT)&&(t.openElements.popUntilTagNamePopped(jx.SELECT),t._resetInsertionMode());break;case jx.TEMPLATE:nF(t,e)}}function xF(t,e){t.openElements.tmplCount>0?(t.openElements.popUntilTagNamePopped(jx.TEMPLATE),t.activeFormattingElements.clearToLastMarker(),t.tmplInsertionModeStack.shift(),t._resetInsertionMode(),t.onEof(e)):XR(t,e)}function RF(t,e){var n;if(e.tagID===jx.HTML){if(t.fragmentContext||(t.insertionMode=QR.AFTER_AFTER_BODY),t.options.sourceCodeLocationInfo&&t.openElements.tagIDs[0]===jx.HTML){t._setEndLocation(t.openElements.items[0],e);const r=t.openElements.items[1];r&&!(null===(n=t.treeAdapter.getNodeSourceCodeLocation(r))||void 0===n?void 0:n.endTag)&&t._setEndLocation(r,e)}}else FF(t,e)}function FF(t,e){t.insertionMode=QR.IN_BODY,sF(t,e)}function OF(t,e){t.insertionMode=QR.IN_BODY,sF(t,e)}function kF(t){for(;t.treeAdapter.getNamespaceURI(t.openElements.current)!==Px.HTML&&void 0!==t.openElements.currentTagId&&!t._isIntegrationPoint(t.openElements.currentTagId,t.openElements.current);)t.openElements.pop()}new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt;function QF(t,e){return function(n){let r,i=0,o="";for(;t.exec(n);)i!==r.index&&n.substring(i,r.index),e.get(r[0].charCodeAt(0)),r.index+1;return o+n.substring(i)}}new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]),new Set([Hx.AREA,Hx.BASE,Hx.BASEFONT,Hx.BGSOUND,Hx.BR,Hx.COL,Hx.EMBED,Hx.FRAME,Hx.HR,Hx.IMG,Hx.INPUT,Hx.KEYGEN,Hx.LINK,Hx.META,Hx.PARAM,Hx.SOURCE,Hx.TRACK,Hx.WBR]);new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]);var UF;!function(t){t[t.EOF=-1]="EOF",t[t.NULL=0]="NULL",t[t.TABULATION=9]="TABULATION",t[t.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",t[t.LINE_FEED=10]="LINE_FEED",t[t.FORM_FEED=12]="FORM_FEED",t[t.SPACE=32]="SPACE",t[t.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",t[t.QUOTATION_MARK=34]="QUOTATION_MARK",t[t.AMPERSAND=38]="AMPERSAND",t[t.APOSTROPHE=39]="APOSTROPHE",t[t.HYPHEN_MINUS=45]="HYPHEN_MINUS",t[t.SOLIDUS=47]="SOLIDUS",t[t.DIGIT_0=48]="DIGIT_0",t[t.DIGIT_9=57]="DIGIT_9",t[t.SEMICOLON=59]="SEMICOLON",t[t.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",t[t.EQUALS_SIGN=61]="EQUALS_SIGN",t[t.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",t[t.QUESTION_MARK=63]="QUESTION_MARK",t[t.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",t[t.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",t[t.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",t[t.GRAVE_ACCENT=96]="GRAVE_ACCENT",t[t.LATIN_SMALL_A=97]="LATIN_SMALL_A",t[t.LATIN_SMALL_Z=122]="LATIN_SMALL_Z"}(UF||(UF={}));var PF;!function(t){t.controlCharacterInInputStream="control-character-in-input-stream",t.noncharacterInInputStream="noncharacter-in-input-stream",t.surrogateInInputStream="surrogate-in-input-stream",t.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",t.endTagWithAttributes="end-tag-with-attributes",t.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",t.unexpectedSolidusInTag="unexpected-solidus-in-tag",t.unexpectedNullCharacter="unexpected-null-character",t.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",t.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",t.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",t.missingEndTagName="missing-end-tag-name",t.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",t.unknownNamedCharacterReference="unknown-named-character-reference",t.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",t.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",t.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",t.eofBeforeTagName="eof-before-tag-name",t.eofInTag="eof-in-tag",t.missingAttributeValue="missing-attribute-value",t.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",t.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",t.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",t.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",t.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",t.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",t.missingDoctypePublicIdentifier="missing-doctype-public-identifier",t.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",t.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",t.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",t.cdataInHtmlContent="cdata-in-html-content",t.incorrectlyOpenedComment="incorrectly-opened-comment",t.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",t.eofInDoctype="eof-in-doctype",t.nestedComment="nested-comment",t.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",t.eofInComment="eof-in-comment",t.incorrectlyClosedComment="incorrectly-closed-comment",t.eofInCdata="eof-in-cdata",t.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",t.nullCharacterReference="null-character-reference",t.surrogateCharacterReference="surrogate-character-reference",t.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",t.controlCharacterReference="control-character-reference",t.noncharacterCharacterReference="noncharacter-character-reference",t.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",t.missingDoctypeName="missing-doctype-name",t.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",t.duplicateAttribute="duplicate-attribute",t.nonConformingDoctype="non-conforming-doctype",t.missingDoctype="missing-doctype",t.misplacedDoctype="misplaced-doctype",t.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",t.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",t.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",t.openElementsLeftAfterEof="open-elements-left-after-eof",t.abandonedHeadElementChild="abandoned-head-element-child",t.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",t.nestedNoscriptInHead="nested-noscript-in-head",t.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"}(PF||(PF={}));var GF;!function(t){t[t.CHARACTER=0]="CHARACTER",t[t.NULL_CHARACTER=1]="NULL_CHARACTER",t[t.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",t[t.START_TAG=3]="START_TAG",t[t.END_TAG=4]="END_TAG",t[t.COMMENT=5]="COMMENT",t[t.DOCTYPE=6]="DOCTYPE",t[t.EOF=7]="EOF",t[t.HIBERNATION=8]="HIBERNATION"}(GF||(GF={}));var VF;new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),VF=String.fromCodePoint;var HF;!function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(HF||(HF={}));var jF,YF,zF;!function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(jF||(jF={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(YF||(YF={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(zF||(zF={}));var JF,WF,qF,KF,XF;!function(t){t.HTML="http://www.w3.org/1999/xhtml",t.MATHML="http://www.w3.org/1998/Math/MathML",t.SVG="http://www.w3.org/2000/svg",t.XLINK="http://www.w3.org/1999/xlink",t.XML="http://www.w3.org/XML/1998/namespace",t.XMLNS="http://www.w3.org/2000/xmlns/"}(JF||(JF={})),function(t){t.TYPE="type",t.ACTION="action",t.ENCODING="encoding",t.PROMPT="prompt",t.NAME="name",t.COLOR="color",t.FACE="face",t.SIZE="size"}(WF||(WF={})),function(t){t.NO_QUIRKS="no-quirks",t.QUIRKS="quirks",t.LIMITED_QUIRKS="limited-quirks"}(qF||(qF={})),function(t){t.A="a",t.ADDRESS="address",t.ANNOTATION_XML="annotation-xml",t.APPLET="applet",t.AREA="area",t.ARTICLE="article",t.ASIDE="aside",t.B="b",t.BASE="base",t.BASEFONT="basefont",t.BGSOUND="bgsound",t.BIG="big",t.BLOCKQUOTE="blockquote",t.BODY="body",t.BR="br",t.BUTTON="button",t.CAPTION="caption",t.CENTER="center",t.CODE="code",t.COL="col",t.COLGROUP="colgroup",t.DD="dd",t.DESC="desc",t.DETAILS="details",t.DIALOG="dialog",t.DIR="dir",t.DIV="div",t.DL="dl",t.DT="dt",t.EM="em",t.EMBED="embed",t.FIELDSET="fieldset",t.FIGCAPTION="figcaption",t.FIGURE="figure",t.FONT="font",t.FOOTER="footer",t.FOREIGN_OBJECT="foreignObject",t.FORM="form",t.FRAME="frame",t.FRAMESET="frameset",t.H1="h1",t.H2="h2",t.H3="h3",t.H4="h4",t.H5="h5",t.H6="h6",t.HEAD="head",t.HEADER="header",t.HGROUP="hgroup",t.HR="hr",t.HTML="html",t.I="i",t.IMG="img",t.IMAGE="image",t.INPUT="input",t.IFRAME="iframe",t.KEYGEN="keygen",t.LABEL="label",t.LI="li",t.LINK="link",t.LISTING="listing",t.MAIN="main",t.MALIGNMARK="malignmark",t.MARQUEE="marquee",t.MATH="math",t.MENU="menu",t.META="meta",t.MGLYPH="mglyph",t.MI="mi",t.MO="mo",t.MN="mn",t.MS="ms",t.MTEXT="mtext",t.NAV="nav",t.NOBR="nobr",t.NOFRAMES="noframes",t.NOEMBED="noembed",t.NOSCRIPT="noscript",t.OBJECT="object",t.OL="ol",t.OPTGROUP="optgroup",t.OPTION="option",t.P="p",t.PARAM="param",t.PLAINTEXT="plaintext",t.PRE="pre",t.RB="rb",t.RP="rp",t.RT="rt",t.RTC="rtc",t.RUBY="ruby",t.S="s",t.SCRIPT="script",t.SEARCH="search",t.SECTION="section",t.SELECT="select",t.SOURCE="source",t.SMALL="small",t.SPAN="span",t.STRIKE="strike",t.STRONG="strong",t.STYLE="style",t.SUB="sub",t.SUMMARY="summary",t.SUP="sup",t.TABLE="table",t.TBODY="tbody",t.TEMPLATE="template",t.TEXTAREA="textarea",t.TFOOT="tfoot",t.TD="td",t.TH="th",t.THEAD="thead",t.TITLE="title",t.TR="tr",t.TRACK="track",t.TT="tt",t.U="u",t.UL="ul",t.SVG="svg",t.VAR="var",t.WBR="wbr",t.XMP="xmp"}(KF||(KF={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.A=1]="A",t[t.ADDRESS=2]="ADDRESS",t[t.ANNOTATION_XML=3]="ANNOTATION_XML",t[t.APPLET=4]="APPLET",t[t.AREA=5]="AREA",t[t.ARTICLE=6]="ARTICLE",t[t.ASIDE=7]="ASIDE",t[t.B=8]="B",t[t.BASE=9]="BASE",t[t.BASEFONT=10]="BASEFONT",t[t.BGSOUND=11]="BGSOUND",t[t.BIG=12]="BIG",t[t.BLOCKQUOTE=13]="BLOCKQUOTE",t[t.BODY=14]="BODY",t[t.BR=15]="BR",t[t.BUTTON=16]="BUTTON",t[t.CAPTION=17]="CAPTION",t[t.CENTER=18]="CENTER",t[t.CODE=19]="CODE",t[t.COL=20]="COL",t[t.COLGROUP=21]="COLGROUP",t[t.DD=22]="DD",t[t.DESC=23]="DESC",t[t.DETAILS=24]="DETAILS",t[t.DIALOG=25]="DIALOG",t[t.DIR=26]="DIR",t[t.DIV=27]="DIV",t[t.DL=28]="DL",t[t.DT=29]="DT",t[t.EM=30]="EM",t[t.EMBED=31]="EMBED",t[t.FIELDSET=32]="FIELDSET",t[t.FIGCAPTION=33]="FIGCAPTION",t[t.FIGURE=34]="FIGURE",t[t.FONT=35]="FONT",t[t.FOOTER=36]="FOOTER",t[t.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",t[t.FORM=38]="FORM",t[t.FRAME=39]="FRAME",t[t.FRAMESET=40]="FRAMESET",t[t.H1=41]="H1",t[t.H2=42]="H2",t[t.H3=43]="H3",t[t.H4=44]="H4",t[t.H5=45]="H5",t[t.H6=46]="H6",t[t.HEAD=47]="HEAD",t[t.HEADER=48]="HEADER",t[t.HGROUP=49]="HGROUP",t[t.HR=50]="HR",t[t.HTML=51]="HTML",t[t.I=52]="I",t[t.IMG=53]="IMG",t[t.IMAGE=54]="IMAGE",t[t.INPUT=55]="INPUT",t[t.IFRAME=56]="IFRAME",t[t.KEYGEN=57]="KEYGEN",t[t.LABEL=58]="LABEL",t[t.LI=59]="LI",t[t.LINK=60]="LINK",t[t.LISTING=61]="LISTING",t[t.MAIN=62]="MAIN",t[t.MALIGNMARK=63]="MALIGNMARK",t[t.MARQUEE=64]="MARQUEE",t[t.MATH=65]="MATH",t[t.MENU=66]="MENU",t[t.META=67]="META",t[t.MGLYPH=68]="MGLYPH",t[t.MI=69]="MI",t[t.MO=70]="MO",t[t.MN=71]="MN",t[t.MS=72]="MS",t[t.MTEXT=73]="MTEXT",t[t.NAV=74]="NAV",t[t.NOBR=75]="NOBR",t[t.NOFRAMES=76]="NOFRAMES",t[t.NOEMBED=77]="NOEMBED",t[t.NOSCRIPT=78]="NOSCRIPT",t[t.OBJECT=79]="OBJECT",t[t.OL=80]="OL",t[t.OPTGROUP=81]="OPTGROUP",t[t.OPTION=82]="OPTION",t[t.P=83]="P",t[t.PARAM=84]="PARAM",t[t.PLAINTEXT=85]="PLAINTEXT",t[t.PRE=86]="PRE",t[t.RB=87]="RB",t[t.RP=88]="RP",t[t.RT=89]="RT",t[t.RTC=90]="RTC",t[t.RUBY=91]="RUBY",t[t.S=92]="S",t[t.SCRIPT=93]="SCRIPT",t[t.SEARCH=94]="SEARCH",t[t.SECTION=95]="SECTION",t[t.SELECT=96]="SELECT",t[t.SOURCE=97]="SOURCE",t[t.SMALL=98]="SMALL",t[t.SPAN=99]="SPAN",t[t.STRIKE=100]="STRIKE",t[t.STRONG=101]="STRONG",t[t.STYLE=102]="STYLE",t[t.SUB=103]="SUB",t[t.SUMMARY=104]="SUMMARY",t[t.SUP=105]="SUP",t[t.TABLE=106]="TABLE",t[t.TBODY=107]="TBODY",t[t.TEMPLATE=108]="TEMPLATE",t[t.TEXTAREA=109]="TEXTAREA",t[t.TFOOT=110]="TFOOT",t[t.TD=111]="TD",t[t.TH=112]="TH",t[t.THEAD=113]="THEAD",t[t.TITLE=114]="TITLE",t[t.TR=115]="TR",t[t.TRACK=116]="TRACK",t[t.TT=117]="TT",t[t.U=118]="U",t[t.UL=119]="UL",t[t.SVG=120]="SVG",t[t.VAR=121]="VAR",t[t.WBR=122]="WBR",t[t.XMP=123]="XMP"}(XF||(XF={}));new Map([[KF.A,XF.A],[KF.ADDRESS,XF.ADDRESS],[KF.ANNOTATION_XML,XF.ANNOTATION_XML],[KF.APPLET,XF.APPLET],[KF.AREA,XF.AREA],[KF.ARTICLE,XF.ARTICLE],[KF.ASIDE,XF.ASIDE],[KF.B,XF.B],[KF.BASE,XF.BASE],[KF.BASEFONT,XF.BASEFONT],[KF.BGSOUND,XF.BGSOUND],[KF.BIG,XF.BIG],[KF.BLOCKQUOTE,XF.BLOCKQUOTE],[KF.BODY,XF.BODY],[KF.BR,XF.BR],[KF.BUTTON,XF.BUTTON],[KF.CAPTION,XF.CAPTION],[KF.CENTER,XF.CENTER],[KF.CODE,XF.CODE],[KF.COL,XF.COL],[KF.COLGROUP,XF.COLGROUP],[KF.DD,XF.DD],[KF.DESC,XF.DESC],[KF.DETAILS,XF.DETAILS],[KF.DIALOG,XF.DIALOG],[KF.DIR,XF.DIR],[KF.DIV,XF.DIV],[KF.DL,XF.DL],[KF.DT,XF.DT],[KF.EM,XF.EM],[KF.EMBED,XF.EMBED],[KF.FIELDSET,XF.FIELDSET],[KF.FIGCAPTION,XF.FIGCAPTION],[KF.FIGURE,XF.FIGURE],[KF.FONT,XF.FONT],[KF.FOOTER,XF.FOOTER],[KF.FOREIGN_OBJECT,XF.FOREIGN_OBJECT],[KF.FORM,XF.FORM],[KF.FRAME,XF.FRAME],[KF.FRAMESET,XF.FRAMESET],[KF.H1,XF.H1],[KF.H2,XF.H2],[KF.H3,XF.H3],[KF.H4,XF.H4],[KF.H5,XF.H5],[KF.H6,XF.H6],[KF.HEAD,XF.HEAD],[KF.HEADER,XF.HEADER],[KF.HGROUP,XF.HGROUP],[KF.HR,XF.HR],[KF.HTML,XF.HTML],[KF.I,XF.I],[KF.IMG,XF.IMG],[KF.IMAGE,XF.IMAGE],[KF.INPUT,XF.INPUT],[KF.IFRAME,XF.IFRAME],[KF.KEYGEN,XF.KEYGEN],[KF.LABEL,XF.LABEL],[KF.LI,XF.LI],[KF.LINK,XF.LINK],[KF.LISTING,XF.LISTING],[KF.MAIN,XF.MAIN],[KF.MALIGNMARK,XF.MALIGNMARK],[KF.MARQUEE,XF.MARQUEE],[KF.MATH,XF.MATH],[KF.MENU,XF.MENU],[KF.META,XF.META],[KF.MGLYPH,XF.MGLYPH],[KF.MI,XF.MI],[KF.MO,XF.MO],[KF.MN,XF.MN],[KF.MS,XF.MS],[KF.MTEXT,XF.MTEXT],[KF.NAV,XF.NAV],[KF.NOBR,XF.NOBR],[KF.NOFRAMES,XF.NOFRAMES],[KF.NOEMBED,XF.NOEMBED],[KF.NOSCRIPT,XF.NOSCRIPT],[KF.OBJECT,XF.OBJECT],[KF.OL,XF.OL],[KF.OPTGROUP,XF.OPTGROUP],[KF.OPTION,XF.OPTION],[KF.P,XF.P],[KF.PARAM,XF.PARAM],[KF.PLAINTEXT,XF.PLAINTEXT],[KF.PRE,XF.PRE],[KF.RB,XF.RB],[KF.RP,XF.RP],[KF.RT,XF.RT],[KF.RTC,XF.RTC],[KF.RUBY,XF.RUBY],[KF.S,XF.S],[KF.SCRIPT,XF.SCRIPT],[KF.SEARCH,XF.SEARCH],[KF.SECTION,XF.SECTION],[KF.SELECT,XF.SELECT],[KF.SOURCE,XF.SOURCE],[KF.SMALL,XF.SMALL],[KF.SPAN,XF.SPAN],[KF.STRIKE,XF.STRIKE],[KF.STRONG,XF.STRONG],[KF.STYLE,XF.STYLE],[KF.SUB,XF.SUB],[KF.SUMMARY,XF.SUMMARY],[KF.SUP,XF.SUP],[KF.TABLE,XF.TABLE],[KF.TBODY,XF.TBODY],[KF.TEMPLATE,XF.TEMPLATE],[KF.TEXTAREA,XF.TEXTAREA],[KF.TFOOT,XF.TFOOT],[KF.TD,XF.TD],[KF.TH,XF.TH],[KF.THEAD,XF.THEAD],[KF.TITLE,XF.TITLE],[KF.TR,XF.TR],[KF.TRACK,XF.TRACK],[KF.TT,XF.TT],[KF.U,XF.U],[KF.UL,XF.UL],[KF.SVG,XF.SVG],[KF.VAR,XF.VAR],[KF.WBR,XF.WBR],[KF.XMP,XF.XMP]]);const ZF=XF;JF.HTML,new Set([ZF.ADDRESS,ZF.APPLET,ZF.AREA,ZF.ARTICLE,ZF.ASIDE,ZF.BASE,ZF.BASEFONT,ZF.BGSOUND,ZF.BLOCKQUOTE,ZF.BODY,ZF.BR,ZF.BUTTON,ZF.CAPTION,ZF.CENTER,ZF.COL,ZF.COLGROUP,ZF.DD,ZF.DETAILS,ZF.DIR,ZF.DIV,ZF.DL,ZF.DT,ZF.EMBED,ZF.FIELDSET,ZF.FIGCAPTION,ZF.FIGURE,ZF.FOOTER,ZF.FORM,ZF.FRAME,ZF.FRAMESET,ZF.H1,ZF.H2,ZF.H3,ZF.H4,ZF.H5,ZF.H6,ZF.HEAD,ZF.HEADER,ZF.HGROUP,ZF.HR,ZF.HTML,ZF.IFRAME,ZF.IMG,ZF.INPUT,ZF.LI,ZF.LINK,ZF.LISTING,ZF.MAIN,ZF.MARQUEE,ZF.MENU,ZF.META,ZF.NAV,ZF.NOEMBED,ZF.NOFRAMES,ZF.NOSCRIPT,ZF.OBJECT,ZF.OL,ZF.P,ZF.PARAM,ZF.PLAINTEXT,ZF.PRE,ZF.SCRIPT,ZF.SECTION,ZF.SELECT,ZF.SOURCE,ZF.STYLE,ZF.SUMMARY,ZF.TABLE,ZF.TBODY,ZF.TD,ZF.TEMPLATE,ZF.TEXTAREA,ZF.TFOOT,ZF.TH,ZF.THEAD,ZF.TITLE,ZF.TR,ZF.TRACK,ZF.UL,ZF.WBR,ZF.XMP]),JF.MATHML,new Set([ZF.MI,ZF.MO,ZF.MN,ZF.MS,ZF.MTEXT,ZF.ANNOTATION_XML]),JF.SVG,new Set([ZF.TITLE,ZF.FOREIGN_OBJECT,ZF.DESC]),JF.XLINK,new Set,JF.XML,new Set,JF.XMLNS,new Set,new Set([ZF.H1,ZF.H2,ZF.H3,ZF.H4,ZF.H5,ZF.H6]),new Set([KF.STYLE,KF.SCRIPT,KF.XMP,KF.IFRAME,KF.NOEMBED,KF.NOFRAMES,KF.PLAINTEXT]);var $F;!function(t){t[t.DATA=0]="DATA",t[t.RCDATA=1]="RCDATA",t[t.RAWTEXT=2]="RAWTEXT",t[t.SCRIPT_DATA=3]="SCRIPT_DATA",t[t.PLAINTEXT=4]="PLAINTEXT",t[t.TAG_OPEN=5]="TAG_OPEN",t[t.END_TAG_OPEN=6]="END_TAG_OPEN",t[t.TAG_NAME=7]="TAG_NAME",t[t.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",t[t.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",t[t.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",t[t.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",t[t.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",t[t.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",t[t.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",t[t.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",t[t.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",t[t.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",t[t.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",t[t.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",t[t.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",t[t.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",t[t.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",t[t.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",t[t.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",t[t.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",t[t.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",t[t.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",t[t.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",t[t.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",t[t.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",t[t.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",t[t.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",t[t.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",t[t.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",t[t.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",t[t.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",t[t.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",t[t.BOGUS_COMMENT=40]="BOGUS_COMMENT",t[t.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",t[t.COMMENT_START=42]="COMMENT_START",t[t.COMMENT_START_DASH=43]="COMMENT_START_DASH",t[t.COMMENT=44]="COMMENT",t[t.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",t[t.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",t[t.COMMENT_END_DASH=49]="COMMENT_END_DASH",t[t.COMMENT_END=50]="COMMENT_END",t[t.COMMENT_END_BANG=51]="COMMENT_END_BANG",t[t.DOCTYPE=52]="DOCTYPE",t[t.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",t[t.DOCTYPE_NAME=54]="DOCTYPE_NAME",t[t.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",t[t.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",t[t.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",t[t.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",t[t.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",t[t.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",t[t.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",t[t.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",t[t.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",t[t.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",t[t.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",t[t.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",t[t.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",t[t.CDATA_SECTION=68]="CDATA_SECTION",t[t.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",t[t.CDATA_SECTION_END=70]="CDATA_SECTION_END",t[t.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",t[t.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"}($F||($F={}));$F.DATA,$F.RCDATA,$F.RAWTEXT,$F.SCRIPT_DATA,$F.PLAINTEXT,$F.CDATA_SECTION;const tO=new Set([XF.DD,XF.DT,XF.LI,XF.OPTGROUP,XF.OPTION,XF.P,XF.RB,XF.RP,XF.RT,XF.RTC]),eO=(new Set([...tO,XF.CAPTION,XF.COLGROUP,XF.TBODY,XF.TD,XF.TFOOT,XF.TH,XF.THEAD,XF.TR]),new Set([XF.APPLET,XF.CAPTION,XF.HTML,XF.MARQUEE,XF.OBJECT,XF.TABLE,XF.TD,XF.TEMPLATE,XF.TH]));new Set([...eO,XF.OL,XF.UL]),new Set([...eO,XF.BUTTON]),new Set([XF.ANNOTATION_XML,XF.MI,XF.MN,XF.MO,XF.MS,XF.MTEXT]),new Set([XF.DESC,XF.FOREIGN_OBJECT,XF.TITLE]),new Set([XF.TR,XF.TEMPLATE,XF.HTML]),new Set([XF.TBODY,XF.TFOOT,XF.THEAD,XF.TEMPLATE,XF.HTML]),new Set([XF.TABLE,XF.TEMPLATE,XF.HTML]),new Set([XF.TD,XF.TH]);var nO;!function(t){t[t.Marker=0]="Marker",t[t.Element=1]="Element"}(nO||(nO={}));nO.Marker;const rO=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],iO=(new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"]);new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(t=>[t.toLowerCase(),t])),new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:JF.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:JF.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:JF.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:JF.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:JF.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:JF.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:JF.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:JF.XML}],["xml:space",{prefix:"xml",name:"space",namespace:JF.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:JF.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:JF.XMLNS}]]),new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(t=>[t.toLowerCase(),t])),new Set([XF.B,XF.BIG,XF.BLOCKQUOTE,XF.BODY,XF.BR,XF.CENTER,XF.CODE,XF.DD,XF.DIV,XF.DL,XF.DT,XF.EM,XF.EMBED,XF.H1,XF.H2,XF.H3,XF.H4,XF.H5,XF.H6,XF.HEAD,XF.HR,XF.I,XF.IMG,XF.LI,XF.LISTING,XF.MENU,XF.META,XF.NOBR,XF.OL,XF.P,XF.PRE,XF.RUBY,XF.S,XF.SMALL,XF.SPAN,XF.STRONG,XF.STRIKE,XF.SUB,XF.SUP,XF.TABLE,XF.TT,XF.U,XF.UL,XF.VAR]);var oO;!function(t){t[t.INITIAL=0]="INITIAL",t[t.BEFORE_HTML=1]="BEFORE_HTML",t[t.BEFORE_HEAD=2]="BEFORE_HEAD",t[t.IN_HEAD=3]="IN_HEAD",t[t.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",t[t.AFTER_HEAD=5]="AFTER_HEAD",t[t.IN_BODY=6]="IN_BODY",t[t.TEXT=7]="TEXT",t[t.IN_TABLE=8]="IN_TABLE",t[t.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",t[t.IN_CAPTION=10]="IN_CAPTION",t[t.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",t[t.IN_TABLE_BODY=12]="IN_TABLE_BODY",t[t.IN_ROW=13]="IN_ROW",t[t.IN_CELL=14]="IN_CELL",t[t.IN_SELECT=15]="IN_SELECT",t[t.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",t[t.IN_TEMPLATE=17]="IN_TEMPLATE",t[t.AFTER_BODY=18]="AFTER_BODY",t[t.IN_FRAMESET=19]="IN_FRAMESET",t[t.AFTER_FRAMESET=20]="AFTER_FRAMESET",t[t.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",t[t.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET"}(oO||(oO={}));new Set([XF.TABLE,XF.TBODY,XF.TFOOT,XF.THEAD,XF.TR]);new Set([XF.CAPTION,XF.COL,XF.COLGROUP,XF.TBODY,XF.TD,XF.TFOOT,XF.TH,XF.THEAD,XF.TR]);new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt;function sO(t,e){return function(n){let r,i=0,o="";for(;t.exec(n);)i!==r.index&&n.substring(i,r.index),e.get(r[0].charCodeAt(0)),r.index+1;return o+n.substring(i)}}new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]),new Set([KF.AREA,KF.BASE,KF.BASEFONT,KF.BGSOUND,KF.BR,KF.COL,KF.EMBED,KF.FRAME,KF.HR,KF.IMG,KF.INPUT,KF.KEYGEN,KF.LINK,KF.META,KF.PARAM,KF.SOURCE,KF.TRACK,KF.WBR]);var aO;!function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"}(aO||(aO={}));aO.Root,aO.Text,aO.Directive,aO.Comment,aO.Script,aO.Style,aO.Tag,aO.CDATA,aO.Doctype;class cO{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return IO(this,t)}}class lO extends cO{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}}class uO extends lO{constructor(){super(...arguments),this.type=aO.Text}get nodeType(){return 3}}class hO extends lO{constructor(){super(...arguments),this.type=aO.Comment}get nodeType(){return 8}}class dO extends lO{constructor(t,e){super(e),this.name=t,this.type=aO.Directive}get nodeType(){return 1}}class pO extends cO{constructor(t){super(),this.children=t}get firstChild(){var t;return null!==(t=this.children[0])&&void 0!==t?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}}class fO extends pO{constructor(){super(...arguments),this.type=aO.CDATA}get nodeType(){return 4}}class AO extends pO{constructor(){super(...arguments),this.type=aO.Root}get nodeType(){return 9}}class gO extends pO{constructor(t,e,n=[],r=("script"===t?aO.Script:"style"===t?aO.Style:aO.Tag)){super(n),this.name=t,this.attribs=e,this.type=r}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var e,n;return{name:t,value:this.attribs[t],namespace:null===(e=this["x-attribsNamespace"])||void 0===e?void 0:e[t],prefix:null===(n=this["x-attribsPrefix"])||void 0===n?void 0:n[t]}})}}function EO(t){return(e=t).type===aO.Tag||e.type===aO.Script||e.type===aO.Style;var e}function mO(t){return t.type===aO.Text}function yO(t){return t.type===aO.Comment}function wO(t){return t.type===aO.Directive}function IO(t,e=!1){let n;if(mO(t))n=new uO(t.data);else if(yO(t))n=new hO(t.data);else if(EO(t)){const r=e?CO(t.children):[],i=new gO(t.name,{...t.attribs},r);r.forEach(t=>t.parent=i),null!=t.namespace&&(i.namespace=t.namespace),t["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...t["x-attribsNamespace"]}),t["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...t["x-attribsPrefix"]}),n=i}else if(function(t){return t.type===aO.CDATA}(t)){const r=e?CO(t.children):[],i=new fO(r);r.forEach(t=>t.parent=i),n=i}else if(function(t){return t.type===aO.Root}(t)){const r=e?CO(t.children):[],i=new AO(r);r.forEach(t=>t.parent=i),t["x-mode"]&&(i["x-mode"]=t["x-mode"]),n=i}else{if(!wO(t))throw new Error(`Not implemented yet: ${t.type}`);{const e=new dO(t.name,t.data);null!=t["x-name"]&&(e["x-name"]=t["x-name"],e["x-publicId"]=t["x-publicId"],e["x-systemId"]=t["x-systemId"]),n=e}}return n.startIndex=t.startIndex,n.endIndex=t.endIndex,null!=t.sourceCodeLocation&&(n.sourceCodeLocation=t.sourceCodeLocation),n}function CO(t){const e=t.map(t=>IO(t,!0));for(let t=1;t<e.length;t++)e[t].prev=e[t-1],e[t-1].next=e[t];return e}function BO(t){const e=t.includes('"')?"'":'"';return e+t+e}const TO={isCommentNode:yO,isElementNode:EO,isTextNode:mO,createDocument(){const t=new AO([]);return t["x-mode"]=qF.NO_QUIRKS,t},createDocumentFragment:()=>new AO([]),createElement(t,e,n){const r=Object.create(null),i=Object.create(null),o=Object.create(null);for(let t=0;t<n.length;t++){const e=n[t].name;r[e]=n[t].value,i[e]=n[t].namespace,o[e]=n[t].prefix}const s=new gO(t,r,[]);return s.namespace=e,s["x-attribsNamespace"]=i,s["x-attribsPrefix"]=o,s},createCommentNode:t=>new hO(t),createTextNode:t=>new uO(t),appendChild(t,e){const n=t.children[t.children.length-1];n&&(n.next=e,e.prev=n),t.children.push(e),e.parent=t},insertBefore(t,e,n){const r=t.children.indexOf(n),{prev:i}=n;i&&(i.next=e,e.prev=i),n.prev=e,e.next=n,t.children.splice(r,0,e),e.parent=t},setTemplateContent(t,e){TO.appendChild(t,e)},getTemplateContent:t=>t.children[0],setDocumentType(t,e,n,r){const i=function(t,e,n){let r="!DOCTYPE ";return t&&(r+=t),e?r+=` PUBLIC ${BO(e)}`:n&&(r+=" SYSTEM"),n&&(r+=` ${BO(n)}`),r}(e,n,r);let o=t.children.find(t=>wO(t)&&"!doctype"===t.name);o?o.data=null!=i?i:null:(o=new dO("!doctype",i),TO.appendChild(t,o)),o["x-name"]=e,o["x-publicId"]=n,o["x-systemId"]=r},setDocumentMode(t,e){t["x-mode"]=e},getDocumentMode:t=>t["x-mode"],detachNode(t){if(t.parent){const e=t.parent.children.indexOf(t),{prev:n,next:r}=t;t.prev=null,t.next=null,n&&(n.next=r),r&&(r.prev=n),t.parent.children.splice(e,1),t.parent=null}},insertText(t,e){const n=t.children[t.children.length-1];n&&mO(n)?n.data+=e:TO.appendChild(t,TO.createTextNode(e))},insertTextBefore(t,e,n){const r=t.children[t.children.indexOf(n)-1];r&&mO(r)?r.data+=e:TO.insertBefore(t,TO.createTextNode(e),n)},adoptAttributes(t,e){for(let n=0;n<e.length;n++){const r=e[n].name;void 0===t.attribs[r]&&(t.attribs[r]=e[n].value,t["x-attribsNamespace"][r]=e[n].namespace,t["x-attribsPrefix"][r]=e[n].prefix)}},getFirstChild:t=>t.children[0],getChildNodes:t=>t.children,getParentNode:t=>t.parent,getAttrList:t=>t.attributes,getTagName:t=>t.name,getNamespaceURI:t=>t.namespace,getTextNodeContent:t=>t.data,getCommentNodeContent:t=>t.data,getDocumentTypeNodeName(t){var e;return null!==(e=t["x-name"])&&void 0!==e?e:""},getDocumentTypeNodePublicId(t){var e;return null!==(e=t["x-publicId"])&&void 0!==e?e:""},getDocumentTypeNodeSystemId(t){var e;return null!==(e=t["x-systemId"])&&void 0!==e?e:""},isDocumentTypeNode:t=>wO(t)&&"!doctype"===t.name,setNodeSourceCodeLocation(t,e){e&&(t.startIndex=e.startOffset,t.endIndex=e.endOffset),t.sourceCodeLocation=e},getNodeSourceCodeLocation:t=>t.sourceCodeLocation,updateNodeSourceCodeLocation(t,e){null!=e.endOffset&&(t.endIndex=e.endOffset),t.sourceCodeLocation={...t.sourceCodeLocation,...e}}};var bO=s(928),DO=s(3631),MO=s(1141);MO.Element.prototype.toString=function(){throw new Error("Element.toString() is not supported")},Object.defineProperty(MO.Node.prototype,"nodeName",{get:function(){return this.name}}),Object.defineProperty(MO.Node.prototype,"localName",{get:function(){return this.name}});const NO=Object.getOwnPropertyDescriptor(MO.Element.prototype,"attributes")?.get;function SO(t,e,n){return function(t,e,n){const r=function(t,e){return VR.parse(t,e)}(t,{treeAdapter:TO,sourceCodeLocationInfo:!0});r.name="root";const i=DO.parse(e),o=i.select({node:r,allowAnyNamespaceForNoPrefix:!0});if(!o.length)throw new Error(`Failed to find XPath: "${e}"`);return o.map(t=>function(t,e){if(!e)return{start:t.startIndex,end:t.endIndex};if(!("firstChild"in t)||!t.firstChild)throw new Error(`Node "${t.name}" has no children`);return{start:t.firstChild.startIndex,end:t.lastChild.endIndex}}(t,n))}(t,e,n)}function vO(t,e){const n=ux({path:e,json:JSON.parse(t),wrap:!1,resultType:"pointer",eval:"safe",ignoreEvalErrors:!0});if(!n)throw new Error("jsonPath not found");const r=XL("("+t+")",{range:!0});if(r.body[0]instanceof bv&&(r.body[0].expression instanceof Jv||r.body[0].expression instanceof XS)){const t=Array.isArray(n)?n:[n],e=[];for(const n of t){const t=_O(r.body[0].expression,"",[n]);t&&e.push({start:t.start-1,end:t.end-1})}return e}throw new Error("jsonPath not found")}function _O(t,e,n){if(t instanceof Jv)for(const r of t.properties){if(!(r instanceof Kv))continue;const t=r.key.type===xS.Literal?e+"/"+r.key.value:e;if(n.includes(t)&&"range"in r&&Array.isArray(r.range))return{start:r.range[0],end:r.range[1]};if(r.value instanceof Jv||r.value instanceof XS){const e=_O(r.value,t,n);if(e)return e}}if(t instanceof XS)for(let r=0;r<t.elements.length;r++){const i=t.elements[r];if(!i)continue;const o=e+"/"+r;if(n.includes(o)&&"range"in i&&Array.isArray(i.range))return{start:i.range[0],end:i.range[1]};if(i instanceof Jv){const t=_O(i,o,n);if(t)return t}if(i instanceof XS){const t=_O(i,o,n);if(t)return t}}return null}function LO(t){const e=[];for(const[n,r]of Object.entries(t||{}))e.push(`${n}: ${r}`);return e}function xO(t,e,n){if(n?.length){let e=0;for(const r of n){const n=r.toIndex-r.fromIndex;if(t>=e&&t<=e+n)return t-e+r.fromIndex;e+=n}throw new Error("position out of range")}return e+t}function RO(t,e,n){const r=[];if(!n?.length)return r;for(let i=1;i<n?.length;i++){const o=n[i];o.fromIndex>t&&o.fromIndex<e&&r.push({fromIndex:n[i-1].toIndex,toIndex:o.fromIndex})}return r}function FO(t){const e=mw();return e.onChunk(t),e.streamEnded(),e.res}function OO(t){return bO(t,"sgiu")}NO?Object.defineProperty(MO.Element.prototype,"attributes",{get:function(...t){const e=NO.call(this,...t);return e.item=t=>{const n=e[t];return{...n,nodeType:2,localName:n.name}},e}}):console.warn("[WARN] Unable to patch DOM: Element.attributes property descriptor not found");const kO="{".charCodeAt(0),QO="}".charCodeAt(0);function UO(t,e){if(0===t.length&&0===e?.length)return!0;if(!e)return!1;let n=-1,r=-1;for(;n<t.length&&r<e.length;){let t=i(),e=o();if(t!==e){if(t!==kO||e!==pw)return!1;if(i()!==kO)return!1;for(;(t=i())!==QO&&-1!==t;);for(;(t=i())!==QO&&-1!==t;);if(-1===t)return!1;for(;(e=o())===pw&&-1!==e;);if(-1===e)return-1===i();r--}}function i(){return n++,n<t.length?t[n]:-1}function o(){return e?(r++,r<e.length?e[r]:-1):-1}return n===t.length&&r===e.length}const{K3:PO}=n,GO={hostPort:function(t,e){const{host:n}=new URL(function(t,e){let n=t?.url;const r=new Set;let i=null;for(;i=jO.exec(n);)r.add(i[1]);for(const i of r)if(t.paramValues&&i in t.paramValues)n=n?.replaceAll(`{{${i}}}`,t.paramValues[i].toString());else{if(!e?.paramValues||!(i in e.paramValues))throw new Error(`parameter "${i}" value not found in templateParams`);n=n?.replaceAll(`{{${i}}}`,e.paramValues[i].toString())}return n}(t,e));if(!n)throw new Error("url is incorrect");return n},writeRedactionMode:t=>"writeRedactionMode"in t?t.writeRedactionMode:void 0,geoLocation:(t,e)=>"geoLocation"in t?function(t,e){if(t?.geoLocation){const n=new Set;let r=t.geoLocation,i=null;for(;i=jO.exec(r);)n.add(i[1]);for(const i of n)if(t.paramValues&&i in t.paramValues)r=r?.replaceAll(`{{${i}}}`,t.paramValues[i].toString());else{if(!e?.paramValues||!(i in e.paramValues))throw new Error(`parameter "${i}" value not found in templateParams`);r=r?.replaceAll(`{{${i}}}`,e.paramValues[i].toString())}if(!/^[A-Za-z]{2}$/gisu.test(r))throw new Error(`Geolocation ${r} is invalid`);return r}return}(t,e):void 0,proxySessionId:(t,e)=>"proxySessionId"in t?function(t,e){if(t?.proxySessionId){const r=new Set;let i=t.proxySessionId,o=null;for(;o=jO.exec(i);)r.add(o[1]);for(const n of r)if(t.paramValues&&n in t.paramValues)i=i?.replaceAll(`{{${n}}}`,t.paramValues[n].toString());else{if(!e?.paramValues||!(n in e.paramValues))throw new Error(`parameter "${n}" value not found in templateParams`);i=i?.replaceAll(`{{${n}}}`,e.paramValues[n].toString())}if(!("string"==typeof(n=i)&&n.length>=8&&n.length<15&&/^[a-z0-9]+$/.test(n)))throw new Error(`proxySessionId ${i} is invalid`);return i}var n;return}(t,e):void 0,additionalClientOptions(t){let e={applicationLayerProtocols:["http/1.1"]};return"additionalClientOptions"in t&&(e={...e,...t.additionalClientOptions}),e},createRequest(t,e,n){if(!t.cookieStr&&!t.authorisationHeader&&!t.headers)throw new Error("auth parameters are not set");const r=e.headers||{},i={...t.headers};t.cookieStr&&(i.Cookie=t.cookieStr),t.authorisationHeader&&(i.Authorization=t.authorisationHeader);Object.keys(r).some(t=>"user-agent"===t.toLowerCase())||Object.keys(i).some(t=>"user-agent"===t.toLowerCase())||(r["User-Agent"]="reclaim/0.0.1");const o=zO(e,t);e=o.newParams;const s=new URL(e.url),{pathname:a}=s,c=e.url.includes("?")?e.url.split("?")[1]:"";n.info({url:e.url,path:a,query:c.toString()});const l=e.body instanceof Uint8Array?e.body:jy(e.body||""),u=l.length,h=`${e.method} ${a}${c?.length?"?"+c:""} HTTP/1.1`,d=LO(i);n.info({requestLine:h});const p=jy([h,`Host: ${HO(s)}`,`Content-Length: ${u}`,"Connection: close","Accept-Encoding: identity",...LO(r),...d,"\r\n"].join("\r\n")),f=q([p,l]),A=d.join("\r\n"),g=zy(f,jy(A)),E=[{fromIndex:g,toIndex:g+A.length}];if(o.hiddenBodyParts?.length>0)for(const t of o.hiddenBodyParts)t.length&&E.push({fromIndex:p.length+t.index,toIndex:p.length+t.index+t.length});if(o.hiddenURLParts?.length>0)for(const t of o.hiddenURLParts)t.length&&E.push({fromIndex:t.index,toIndex:t.index+t.length});return E.sort((t,e)=>t.toIndex-e.toIndex),{data:f,redactions:E}},getResponseRedactions({response:t,params:e,logger:n,ctx:r}){n.debug({response:PO.encode(t),params:e});const i=FO(t);if(!e.responseRedactions?.length)return[];if(2!=(i.statusCode/100|0))throw n.error({response:PO.encode(t),params:e}),new Error(`Expected status 2xx, got ${i.statusCode} (${i.statusMessage})`);const o=zO(e,void 0,!0).newParams,s=i.statusLineEndIndex,a=i.bodyStartIndex??0;if(a<4)throw n.error({response:PO.encode(t)}),new Error("Failed to find response body");const c=[{fromIndex:0,toIndex:s}];if(VO(r)){if(!K(t.slice(i.headerEndIdx,i.headerEndIdx+4),jy("\r\n\r\n")))throw n.error({response:PO.encode(t)}),new Error(`Failed to find header/body separator at index ${i.headerEndIdx}`)}c.push({fromIndex:i.headerEndIdx,toIndex:i.headerEndIdx+4}),i.headerIndices.date&&c.push(i.headerIndices.date);const l=$(i.body),u=[];for(const t of o.responseRedactions||[]){const e=YO(l,t,a,i.chunks);for(const{reveal:t,redactions:n}of e)c.push(t),u.push(...n)}if(c.sort((t,e)=>t.toIndex-e.toIndex),c.length>1){let e=0;for(const t of c)e<t.fromIndex&&u.push({fromIndex:e,toIndex:t.fromIndex}),e=t.toIndex;u.push({fromIndex:e,toIndex:t.length})}for(const t of c)t.hash&&u.push(t);return u.sort((t,e)=>t.toIndex-e.toIndex),u},assertValidProviderReceipt({receipt:t,params:e,logger:n,ctx:r}){!function(){const r=t.filter(t=>"client"===t.sender).map(t=>t.message),i=t.filter(t=>"server"===t.sender).map(t=>t.message),o=PO.encode(q(r)),s=PO.encode(q(i));n.debug({request:o,response:s,params:e})}();let i={};const o="secretParams"in e?e.secretParams:void 0,s=zO(e,o,!o),a=s.newParams;i={...i,...s.extractedValues};const c=function(t){const e=t.filter(t=>"client"===t.sender);if(e[0].message[0]===pw)throw new Error("First client message request is redacted. Cannot parse");const n={method:"",url:"",protocol:"",headers:{}};let r=q(e.map(t=>t.message));for(let t=i();void 0!==t&&""!==t;t=i())if(n.method){let e=t.indexOf(":");-1===e&&(e=t.length-1);const r=t.slice(0,e).toLowerCase().trim(),i=t.slice(e+1).trim(),o=n.headers[r];"string"==typeof o?n.headers[r]=[o,i]:Array.isArray(o)?o.push(i):n.headers[r]=i}else{const[,e,r,i]=t.match(/(\w+) (.*) (.*)/)||[];n.method=e.toLowerCase(),n.url=r,n.protocol=i}if(r.length&&(n.body=r),!n.method)throw new Error("Client request is incomplete");return n;function i(){const t=zy(r,Ew);if(-1===t)return;const e=Hy(r.slice(0,t));return r=r.slice(t+Ew.length),e}}(t);if(c.method!==a.method.toLowerCase())throw new Error(`Invalid method: ${c.method}`);const l=new URL(a.url),{protocol:u,pathname:h}=l;if("https:"!==u)throw n.error("params URL: %s",a.url),new Error(`Expected protocol: https, found: ${u}`);const d=a.url.includes("?")?a.url.split("?")[1]:"",p=h.replaceAll("%7B","{").replaceAll("%7D","}")+(d?.length?"?"+d:"");if(!UO(jy(p),jy(c.url)))throw n.error("params URL: %s",a.url),new Error(`Expected path: ${p}, found: ${c.url}`);const f=HO(l);if(c.headers.host!==f)throw new Error(`Expected host: ${f}, found: ${c.headers.host}`);const A=c.headers.connection;if("close"!==A)throw new Error(`Connection header must be "close", got "${A}"`);const g=function(...t){const e=t.reduce((t,e)=>t+e.length,0),n=new Uint8Array(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n}(...t.filter(t=>"server"===t.sender).map(t=>t.message).filter(t=>!t.every(t=>t===pw)));let E;E=Hy(g);if(!OO("^HTTP\\/1.1 2\\d{2}").exec(E)){const t=OO("^HTTP\\/1.1 (\\d{3})").exec(E);if(t&&t.length>1)throw new Error(`Provider returned error ${t[1]}`);let e=E.indexOf("*");throw-1===e&&(e=E.indexOf("\n")),-1===e&&(e=12),new Error(`Response did not start with "HTTP/1.1 2XX" got "${E.slice(0,e)}"`)}let m;if(VO(r)){if(m=E.indexOf("\r\n\r\n",12)+4,m<4)throw new Error("Response body start not found")}else m=12;const y=OO("[dD]ate: ((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (?:[0-3][0-9]) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (?:[0-9]{4}) (?:[01][0-9]|2[0-3])(?::[0-5][0-9]){2} GMT)").exec(E);if(y&&y.length>1){const t=new Date(y[1]);Date.now()-t.getTime()>6e5&&n.info({dateHeader:y[0],current:Date.now()},"date header is off")}const w=a.body instanceof Uint8Array?a.body:jy(a.body||"");if(w.length>0&&!UO(w,c.body))throw new Error("request body mismatch");o||(E=E.slice(m).replace(/(\*){3,}/g,""));for(const{type:t,value:e,invert:n}of a.responseMatches||[]){const r=Boolean(n);switch(t){case"regex":const o=OO(e).exec(E),s=null!==o;if(s===r)throw new Error(`Invalid receipt. Regex "${e}" ${n?"matched":"didn't match"}`);if(!s)continue;const a=o?.groups;for(const t in a||[]){if(t in i)throw new Error(`Duplicate parameter ${t}`);const e=a?.[t];"string"==typeof e&&(i[t]=e)}break;case"contains":if(E.includes(e)===r)throw new Error(`Invalid receipt. Response ${n?"contains":"does not contain"} "${e}"`);break;default:throw new Error(`Invalid response match type ${t}`)}}return{extractedParameters:i}}};function VO({version:t}){return t>=tm}function HO(t){const e=t.hostname,n=t.port;return n&&443!==+n?`${e}:${n}`:e}const jO=/{{([^{}]+)}}/gis;function*YO(t,e,n,r){let i=t,o=0,s=-1;if(e.xPath){const n=SO(t,e.xPath,!!e.jsonPath);for(const{start:r,end:u}of n)i=t.slice(r,u),o=r,s=u-r,e.jsonPath?yield*a():e.regex?yield*c():yield*l()}else if(e.jsonPath)yield*a();else{if(!e.regex)throw new Error("Expected either xPath, jsonPath or regex for redaction");yield*c()}function*a(){const n=vO(i,e.jsonPath),r=o;for(const a of n){const n=a.start,u=a.end;i=t.slice(r+n,r+u),o=r+n,s=u-n,e.regex?yield*c():yield*l()}}function*c(){lw.debug({element:PO.encode(jy(i)),body:PO.encode(jy(t))});const n=OO(e.regex),a=i||t,c=n.exec(a);if(!c?.[0])throw new Error(`regexp ${e.regex} does not match found element '${PO.encode(jy(a))}'`);if(o+=c.index,s=n.lastIndex-c.index,i=c[0],e.hash&&(!c.groups||Object.keys(c.groups).length>1))throw new Error("Exactly one named capture group is needed per hashed redaction");if(!e.hash||!c.groups)return void(yield*l());const h=c[0],d=Object.values(c.groups)[0],p=h.indexOf(d);s=p,i=h.slice(0,p),yield*l(null),o+=p,i=d,s=d.length;const f=u(o,s,e.hash),A=RO(f.fromIndex,f.toIndex,r);if(A.length)throw new Error("Hash redactions cannot be performed if the redacted string is split between 2 or more HTTP chunks");yield{reveal:f,redactions:A},o+=d.length,i=h.slice(p+d.length),s=i.length,yield*l(null)}function*l(t=e.hash,n=r){if(o<0||!s)return;const i=u(o,s,t||void 0);yield{reveal:i,redactions:RO(i.fromIndex,i.toIndex,n)}}function u(t,e,i){return{fromIndex:xO(t,n,r),toIndex:xO(t+e,n,r),hash:i}}}function zO(t,e,n){const r=JSON.parse(JSON.stringify(t));let i={};const o=[],s=h(r.url,n);if(s&&(r.url=s.newParam,i={...s.extractedValues},s.hiddenParts.length)){const e=`https://${HO(new URL(r.url))}`.length-t.method.length-1;for(const t of s.hiddenParts)o.push({index:t.index-e,length:t.length})}let a,c=[];if(r.body){a=h("string"==typeof r.body?r.body:Hy(r.body),n),a&&(r.body=a.newParam,i={...i,...a.extractedValues},c=a.hiddenParts)}const l=h(r.geoLocation);l&&(r.geoLocation=l.newParam,i={...i,...l.extractedValues});const u=h(r.proxySessionId);if(u&&(r.proxySessionId=u.newParam,i={...i,...u.extractedValues}),r.responseRedactions)for(const t of r.responseRedactions){if(t.regex){const e=h(t.regex);t.regex=e?.newParam}if(t.xPath){const e=h(t.xPath);t.xPath=e?.newParam}if(t.jsonPath){const e=h(t.jsonPath);t.jsonPath=e?.newParam}}if(r.responseMatches)for(const t of r.responseMatches)if(""!==t.value){const e=h(t.value);t.value=e?.newParam,i={...i,...e?.extractedValues}}return{newParams:r,extractedValues:i,hiddenBodyParts:c,hiddenURLParts:o};function h(t,n){if(!t)return null;const i={},o=[];let s=0;return{newParam:t=t.replace(jO,(t,a,c)=>{if(r.paramValues&&a in r.paramValues)return i[a]=r.paramValues[a],s+=r.paramValues[a].length-t.length,r.paramValues[a];if(e){if(e?.paramValues&&a in e?.paramValues)return o.push({index:c+s,length:e.paramValues[a].length}),s+=e.paramValues[a].length-t.length,e.paramValues[a];throw new Error(`parameter's "${a}" value not found in paramValues and secret parameter's paramValues`)}if(n)return t;throw new Error(`parameter's "${a}" value not found in paramValues`)}),extractedValues:i,hiddenParts:o}}}const JO={http:GO},WO=async({onMessage:t,onClose:e,tlsOpts:n,request:r,connect:i,logger:o})=>{const s=[],a=r.id||Ky();let c,l,u,h;const d=new Promise((t,e)=>{u=t,h=e}),p=Yd({host:r.host,...n,logger:o,onHandshake(){u?.()},onApplicationData:e=>t?.(e),onTlsEnd:f,async write(t,e){const n=q([t.header,t.content]);if(s.push({sender:"client",message:{...e,data:n}}),!c){const t=qy();l=i([{id:t,createTunnelRequest:{host:r.host||"",port:r.port||443,geoLocation:r.geoLocation||"",proxySessionId:r.proxySessionId||"",id:a}},{tunnelMessage:{tunnelId:a,message:n}}]);try{await async function(){return c=await(({tunnelId:t,client:e,onClose:n,onMessage:r})=>{let i=!1;return e.addEventListener("tunnel-message",o),e.addEventListener("tunnel-disconnect-event",s),e.addEventListener("connection-terminated",a),{async write(n){await e.sendMessage({tunnelMessage:{tunnelId:t,message:n}})},async close(n){i||(c(n),await e.rpc("disconnectTunnel",{id:t}))}};function o({data:e}){e.tunnelId===t&&r?.(e.message)}function s({data:e}){e.tunnelId===t&&c(e.error?.code?IM.fromProto(e.error):void 0)}function a({data:t}){c(t)}function c(r){e.logger?.debug({tunnelId:t,err:r},"TCP tunnel closed"),e.removeEventListener("tunnel-message",o),e.removeEventListener("tunnel-disconnect-event",s),e.removeEventListener("connection-terminated",a),n?.(r),n=void 0,i=!0}})({tunnelId:a,client:l,onMessage(t){p.handleReceivedBytes(t)},onClose(t){p.end(t)}}),o?.debug("plaintext tunnel created"),c}(),await l.waitForResponse(t)}catch(t){f(t)}return}return c.write(n)},onRead(t,e){s.push({sender:"server",message:{...e,data:q([t.header,"ciphertext"===e.type?e.ciphertext:t.content])}})}});return await p.startHandshake(),await d,u=h=void 0,{transcript:s,tls:p,write:t=>p.write(t),async close(t){f(t);try{await c.close(t)}catch(t){o?.error({err:t},"err in close tunnel")}}};function f(t){e?.(t),e=void 0,h?.(t||new Error("TLS connection closed"))}},qO={};function KO({logger:t,maxRetries:e=3,...n}){const r=t||("logger"in n.client?n.client.logger:lw);return async function(t,{maxRetries:e=3,shouldRetry:n,logger:r}){let i=0;for(;i<e;)try{return await t(i)}catch(t){if(i+=1,i>=e)throw t;if(!n(t))throw t;r.info({err:t,retries:i},"retrying failed operation")}throw new Error("retries exhausted")}(t=>async function({name:t,params:e,secretParams:n,context:r,onStep:i,ownerPrivateKey:o,client:s,logger:a=lw,timestampS:c,updateProviderParams:l,updateParametersFromOprfData:u=!0,...h}){const d=JO[t],p=Wy(e,d.hostPort,n),f=Wy(e,d.geoLocation,n),A=Wy(e,d.proxySessionId,n),g=Wy(e,d.additionalClientOptions),E={...DS(),fetchCertificateBytes:J,...g},{zkEngine:m="snarkjs"}=h;let y=Wy(e,d.writeRedactionMode);const[w,I]=p.split(":"),B=mw();let T,b=!1;const D=new Map;let M;i?.({name:"connecting"});const N={host:w,port:I?+I:yy,geoLocation:f,proxySessionId:A,id:Ky()};a=a.child({tunnelId:N.id});const S="authRequest"in s?"function"==typeof s.authRequest?await s.authRequest():s.authRequest:void 0,v=await WO({tlsOpts:E,connect:t=>{let e=!1;return T="metadata"in s?s:function(t,e=()=>({})){const n=t.toString();let r,i=qO[n];if(i?.isClosed?r="closed":i||(r="non-existent"),r){const o=e();o?.logger?.info({key:n,createReason:r},"creating new client"),i=qO[n]=new LS({...o,url:t})}return i}(s.url,()=>(e=!0,{authRequest:S,initMessages:t,logger:a})),e||T.waitForInit().then(()=>T.sendMessage(...t)).catch(t=>{a.error({err:t},"error in sending init msgs")}),T},logger:a,request:N,onMessage(t){a.debug({bytes:t.length},"recv data from server"),B.onChunk(t),B.res.complete&&(a?.debug("got complete HTTP response from server"),setTimeout(()=>{M?.()},100))},onClose(t){const e=t?"error":"debug";a?.[e]({err:t},"tls session ended"),M?.(t);try{B.streamEnded()}catch{}}}),{version:_,cipherSuite:L}=v.tls.getMetadata();"TLS1_2"===_&&"zk"!==y&&(y="zk",a.info("TLS1.2 detected, defaulting to zk redaction mode"));const{redactions:x,data:R}=d.createRequest(n,e,a),F="string"==typeof R?Z(R):R;a.debug({redactions:x.length},"generated request");const O=new Promise((t,e)=>{M=n=>n?e(n):t()});i?.({name:"sending-request-data"});try{"zk"===y?await K():await W(),a.info("wrote request to server")}catch(t){a.error({err:t},"session errored during write, waiting for stream end")}if(i?.({name:"waiting-for-response"}),await O,await v.close(),a.info("session closed, processing response"),l){const{params:t,secretParams:r}=await l(v.transcript,_??"TLS1_2");e={...e,...t},n={...n,...r}}const k=BS[T.metadata.signatureType];let Q,U;const[P]=tt("server",1);P&&"ciphertext"===P.message.type&&(Q=P.message.fixedIv);const[G]=tt("client",1);G&&"ciphertext"===G.message.type&&(U=G.message.fixedIv);const V=await et(),H=Vm.create({request:N,data:{provider:t,parameters:kM(e),context:kM(r),timestampS:c??Yy(),owner:ot()},transcript:V,zkEngine:"gnark"===m?am:sm,fixedServerIV:Q,fixedClientIV:U});i?.({name:"waiting-for-verification"});const j=Vm.encode(H).finish(),Y=await k.sign(j,o);H.signatures={requestSignature:Y};const z=await T.rpc("claimTunnel",H);return a.info({success:!!z.claim},"recv claim response"),z;async function J(t){if(!T)throw new Error("attestor client not initialized");return(await T.rpc("fetchCertificateBytes",{url:t})).bytes}async function W(){let t=0;for(const e of x){const n=F.slice(t,e.fromIndex);n.length&&await X(n,!0);const r=F.slice(e.fromIndex,e.toIndex);await X(r,!1),t=e.toIndex}const e=x?.[x.length-1]?.toIndex||0,n=F.slice(e);n.length&&await X(n,!0)}async function K(){let t=v.transcript.length;await v.tls.write(F),t=v.transcript.length-t,$({type:"zk",redactedPlaintext:Aw(F,x)},t)}async function X(t,e){e!==b&&await v.tls.updateTrafficKeys();let n=v.transcript.length;await v.write(t),n=v.transcript.length-n,$(e?{type:"complete"}:void 0,n),b=e}function $(t,e=1){const n=tt("client",e);if(n.length)for(const e of n)it(e.message,t)}function tt(t,e){const n=[];for(let r=v.transcript.length-1;r>=0;r--){const i=v.transcript[r];if(i.sender===t&&(n.push(i),n.length===e))break}return n}async function et(){await nt();const t=Date.now(),e=await async function(t,e,{onZkProgress:n,...r}){const i=[],o=await BM(r);let s=0;await Promise.all(t.map(async({message:n,sender:r},s)=>{const a={sender:"client"===r?VE:HE,message:n.data,reveal:void 0};i.push(a);const c=e.get(n);if(c&&"plaintext"!==n.type)switch(c?.type){case"complete":a.reveal={directReveal:{key:await C.exportKey(n.encKey),iv:n.fixedIv,recordNumber:n.recordNumber}};break;case"zk":c.redactedPlaintext=q([c.redactedPlaintext,n.plaintext.slice(c.redactedPlaintext.length)]),await o.addPacketToProve(n,c,(t,e)=>a.reveal={zkReveal:{proofs:t,toprfs:e}},()=>{const e=t.slice(s+1).find(t=>t.sender===r);return e?.message})}}));const a=o.getTotalChunksToProve();return n?.(s,a),await o.generateProofs(()=>{s+=1,n?.(s,a)}),i}(v.transcript,D,{logger:a,cipherSuite:L,onZkProgress(e,n){const r=(Date.now()-t)/e*(n-e);i?.({name:"generating-zk-proofs",proofsDone:e,proofsTotal:n,approxTimeLeftS:Math.round(r/1e3)})},...h});return e}async function nt(){const t=v.transcript;let r="all";const i=[],o=[];for(const e of t){if("ciphertext"!==e.message.type||!$y(e.message,_))continue;const t="TLS1_3"===_?e.message.plaintext.slice(0,-1):e.message.plaintext;i.push({message:t,sender:e.sender}),"server"===e.sender&&o.push({plaintext:t,message:e.message})}d.getResponseRedactions&&"zk"===y?r=await async function(t,e,n){const r=t.map(t=>({block:t,redactedPlaintext:new Uint8Array(t.plaintext)})),i=q(t.map(t=>t.plaintext)),o=e(i);if(!o.length)return"all";let s=0,a=0,c=0;for(const t of o)await l(t);return r.filter(t=>!fw(t.redactedPlaintext));async function l(t){for(;c<t.fromIndex;)u();if(t.hash){const e=i.slice(t.fromIndex,t.toIndex),{nullifier:o,responses:l,mask:h}=await n(e),d={nullifier:o,responses:l,dataLocation:{fromIndex:a,length:t.toIndex-t.fromIndex},mask:h,plaintext:e},p=s,f=r[s];f.toprfs||=[],f.toprfs.push(d);const A=gw(o,d.dataLocation.length);let g=0,E=0;for(;c<t.toIndex;)s!==p&&(E+=1),r[s].redactedPlaintext[a]=A.charCodeAt(g),u(),g+=1;E&&(r[s].overshotToprfFromPrevBlock={length:E})}for(;c<t.toIndex;)r[s].redactedPlaintext[a]=pw,u()}function u(){c+=1,a+=1,a>=t[s].plaintext.length&&(s+=1,a=0)}}(o,t=>d.getResponseRedactions({response:t,params:e,logger:a,ctx:Cy}),rt):"zk"!==y&&(r="all");const s=i.filter(t=>"client"===t.sender);if("all"===r){for(const{message:e,sender:n}of t)"server"===n&&it(e,{type:"complete"});s.push(...i.filter(t=>"server"===t.sender))}else for(const{block:t,redactedPlaintext:n,overshotToprfFromPrevBlock:i,toprfs:o}of r)if(it(t.message,{type:"zk",redactedPlaintext:n,toprfs:o,overshotToprfFromPrevBlock:i}),s.push({sender:"server",message:n}),u&&o){let t=kM(e);for(const e of o){const n=Hy(e.plaintext),r=gw(e.nullifier,e.dataLocation.length);t=t.replaceAll(n,r)}e=JSON.parse(t)}await d.assertValidProviderReceipt({receipt:s,params:{...e,secretParams:n},logger:a,ctx:Cy});for(const e of t)if("ciphertext"===e.message.type){if($y(e.message,_))break;it(e.message,{type:"complete"})}}async function rt(t){a.info({length:t.length},"generating OPRF...");const e=h.oprfOperators?.chacha20||vM("chacha20",m,a),n=await e.generateOPRFRequestData(t,Ty,a),r=await T.rpc("toprf",{maskedData:n.maskedData,engine:_M(m)});return{nullifier:await e.finaliseOPRF(T.initResponse.toprfPublicKey,n,[r]),responses:[r],mask:n.mask,dataLocation:void 0,plaintext:t}}function it(t,e){e?D.set(t,e):D.delete(t)}function ot(){const{getAddress:t,getPublicKey:e}=k;return t(e(o))}}({...n,logger:t?r.child({attempt:t}):r}),{maxRetries:e,logger:r,shouldRetry:XO})}function XO(t){return!(t instanceof TypeError)&&(!!t?.message?.includes("stream ended before")||t instanceof IM&&"ERROR_INVALID_CLAIM"!==t.code&&"ERROR_BAD_REQUEST"!==t.code&&"ERROR_AUTHENTICATION_FAILED"!==t.code&&"ERROR_TOPRF_OUT_OF_BOUNDS"!==t.code)}var ZO=window.WebSocket;window.WebSocket;var $O=s(7770),tk=s(3859);function ek(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof a?r:a,l=Object.create(c.prototype);return nk(l,"_invoke",function(n,r,i){var o,a,c,l=0,u=i||[],h=!1,d={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return o=e,a=0,c=t,d.n=n,s}};function p(n,r){for(a=n,c=r,e=0;!h&&l&&!i&&e<u.length;e++){var i,o=u[e],p=d.p,f=o[2];n>3?(i=f===r)&&(c=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=n<2&&p<o[1])?(a=0,d.v=r,d.n=o[1]):p<f&&(i=n<3||o[0]>r||r>f)&&(o[4]=n,o[5]=r,d.n=f,a=0))}if(i||n>1)return s;throw h=!0,r}return function(i,u,f){if(l>1)throw TypeError("Generator is already running");for(h&&1===u&&p(u,f),a=u,c=f;(e=a<2?t:c)||!h;){o||(a?a<3?(a>1&&(d.n=-1),p(a,c)):d.n=c:d.v=c);try{if(l=2,o){if(a||(i="next"),e=o[i]){if(!(e=e.call(o,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,a<2&&(a=0)}else 1===a&&(e=o.return)&&e.call(o),a<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((e=(h=d.n<0)?c:n.call(r,d))!==s)break}catch(e){o=t,a=1,c=e}finally{l=1}}return{value:e,done:h}}}(n,i,o),!0),l}var s={};function a(){}function c(){}function l(){}e=Object.getPrototypeOf;var u=[][r]?e(e([][r]())):(nk(e={},r,function(){return this}),e),h=l.prototype=a.prototype=Object.create(u);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,nk(t,i,"GeneratorFunction")),t.prototype=Object.create(h),t}return c.prototype=l,nk(h,"constructor",l),nk(l,"constructor",c),c.displayName="GeneratorFunction",nk(l,i,"GeneratorFunction"),nk(h),nk(h,i,"Generator"),nk(h,r,function(){return this}),nk(h,"toString",function(){return"[object Generator]"}),(ek=function(){return{w:o,m:d}})()}function nk(t,e,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(t){i=0}nk=function(t,e,n,r){function o(e,n){nk(t,e,function(t){return this._invoke(e,n,t)})}e?i?i(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(o("next",0),o("throw",1),o("return",2))},nk(t,e,n,r)}function rk(t,e,n,r,i,o,s){try{var a=t[o](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function ik(t){return function(){var e=this,n=arguments;return new Promise(function(r,i){var o=t.apply(e,n);function s(t){rk(o,r,i,s,a,"next",t)}function a(t){rk(o,r,i,s,a,"throw",t)}s(void 0)})}}var ok,sk=function(){var t=ik(ek().m(function t(e,n,r,i){var o,s,a,c;return ek().w(function(t){for(;;)switch(t.p=t.n){case 0:return o=(0,$O.y8)({sessionId:e||"unknown",providerId:r||"unknown",appId:i||"unknown",source:"reclaim-extension-sdk",type:tk.LOG_TYPES.FETCH_DATA}),t.p=1,t.n=2,fetch("".concat(jf()),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e,status:n})});case 2:if((s=t.v).ok){t.n=3;break}throw new Error("Failed to update session status");case 3:return o.info({message:"Successfully updated session status: "+n,logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.FETCH_DATA}),t.n=4,s.json();case 4:return a=t.v,t.a(2,a);case 5:throw t.p=5,c=t.v,o.error({message:"Error updating session status: "+c.toString(),logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.FETCH_DATA,eventType:tk.EVENT_TYPES.UPDATE_SESSION_STATUS_ERROR}),c;case 6:return t.a(2)}},t,null,[[1,5]])}));return function(e,n,r,i){return t.apply(this,arguments)}}();function ak(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof a?r:a,l=Object.create(c.prototype);return ck(l,"_invoke",function(n,r,i){var o,a,c,l=0,u=i||[],h=!1,d={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return o=e,a=0,c=t,d.n=n,s}};function p(n,r){for(a=n,c=r,e=0;!h&&l&&!i&&e<u.length;e++){var i,o=u[e],p=d.p,f=o[2];n>3?(i=f===r)&&(c=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=n<2&&p<o[1])?(a=0,d.v=r,d.n=o[1]):p<f&&(i=n<3||o[0]>r||r>f)&&(o[4]=n,o[5]=r,d.n=f,a=0))}if(i||n>1)return s;throw h=!0,r}return function(i,u,f){if(l>1)throw TypeError("Generator is already running");for(h&&1===u&&p(u,f),a=u,c=f;(e=a<2?t:c)||!h;){o||(a?a<3?(a>1&&(d.n=-1),p(a,c)):d.n=c:d.v=c);try{if(l=2,o){if(a||(i="next"),e=o[i]){if(!(e=e.call(o,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,a<2&&(a=0)}else 1===a&&(e=o.return)&&e.call(o),a<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((e=(h=d.n<0)?c:n.call(r,d))!==s)break}catch(e){o=t,a=1,c=e}finally{l=1}}return{value:e,done:h}}}(n,i,o),!0),l}var s={};function a(){}function c(){}function l(){}e=Object.getPrototypeOf;var u=[][r]?e(e([][r]())):(ck(e={},r,function(){return this}),e),h=l.prototype=a.prototype=Object.create(u);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,ck(t,i,"GeneratorFunction")),t.prototype=Object.create(h),t}return c.prototype=l,ck(h,"constructor",l),ck(l,"constructor",c),c.displayName="GeneratorFunction",ck(l,i,"GeneratorFunction"),ck(h),ck(h,i,"Generator"),ck(h,r,function(){return this}),ck(h,"toString",function(){return"[object Generator]"}),(ak=function(){return{w:o,m:d}})()}function ck(t,e,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(t){i=0}ck=function(t,e,n,r){function o(e,n){ck(t,e,function(t){return this._invoke(e,n,t)})}e?i?i(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(o("next",0),o("throw",1),o("return",2))},ck(t,e,n,r)}function lk(t,e,n,r,i,o,s){try{var a=t[o](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function uk(t){return function(){var e=this,n=arguments;return new Promise(function(r,i){var o=t.apply(e,n);function s(t){lk(o,r,i,s,a,"next",t)}function a(t){lk(o,r,i,s,a,"throw",t)}s(void 0)})}}function hk(t){return hk="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hk(t)}function dk(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,pk(r.key),r)}}function pk(t){var e=function(t,e){if("object"!=hk(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=hk(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==hk(e)?e:e+""}ok=Uf,Object.assign(C,ok);var fk=(0,$O.y8)({sessionId:"unknown",providerId:"unknown",appId:"unknown",source:"reclaim-extension-sdk",type:tk.LOG_TYPES.OFFSCREEN});"undefined"==typeof WebAssembly&&a.w9.error(a.Ey.OFFSCREEN,"WebAssembly is not available in this browser context"),void 0!==s.g&&(s.g.WASM_PATH=chrome.runtime.getURL(""));var Ak=document.createElement("meta");Ak.httpEquiv="Cross-Origin-Embedder-Policy",Ak.content="require-corp",document.head.appendChild(Ak);var gk=document.createElement("meta");gk.httpEquiv="Cross-Origin-Opener-Policy",gk.content="same-origin",document.head.appendChild(gk),window.WebSocket=ZO;var Ek=function(){return function(t,e,n){return e&&dk(t.prototype,e),n&&dk(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}(function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.init()},[{key:"init",value:function(){fk.info({message:"[OFFSCREEN] Offscreen ready",logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.OFFSCREEN}),chrome.runtime.onMessage.addListener(this.handleMessage.bind(this));try{var t=s(3859).LOG_CONFIG_STORAGE_KEY;chrome.storage.local.get([t],function(e){var n=null==e?void 0:e[t];n&&"object"===hk(n)&&$O.Ow.setConfig(n)}),chrome.storage.onChanged.addListener(function(e,n){if("local"===n&&e[t]){var r=e[t].newValue||{};$O.Ow.setConfig(r)}})}catch(t){}this.sendReadySignal()}},{key:"sendReadySignal",value:function(){chrome.runtime.sendMessage({action:$f,source:qf,target:Wf})}},{key:"handleMessage",value:function(t,e,n){var r=this,i=t.action,o=t.source,s=t.target,a=t.data,c=t.sessionId,l=t.providerId;if(c&&l&&"unknown"!==c&&"unknown"!==l&&fk.setContext({sessionId:c,providerId:l,type:tk.LOG_TYPES.OFFSCREEN}),s===qf){switch(i){case eA:this.sendReadySignal(),n({success:!0});break;case Kf:uk(ak().m(function t(){var e,n,i,o;return ak().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,fk.info({message:"[OFFSCREEN] Generating proof",logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_STARTED}),t.n=1,r.generateProof(a,fk);case 1:if(n=t.v,!(i=(null==n||null===(e=n.error)||void 0===e?void 0:e.message)||("string"==typeof(null==n?void 0:n.error)?n.error:null))){t.n=2;break}return fk.error({message:"[OFFSCREEN] Proof contains embedded error:",logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_FAILED}),chrome.runtime.sendMessage({action:tA,source:qf,target:Wf,success:!1,error:i}),t.a(2);case 2:chrome.runtime.sendMessage({action:tA,source:qf,target:Wf,success:!0,proof:n}),t.n=4;break;case 3:t.p=3,o=t.v,fk.error({message:"[OFFSCREEN] Error generating proof: "+o.message,logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_FAILED}),chrome.runtime.sendMessage({action:tA,source:qf,target:Wf,success:!1,error:o.message||"Unknown error in proof generation"});case 4:return t.a(2)}},t,null,[[0,3]])}))(),n({received:!0});break;case Xf:try{var u=window.crypto.getRandomValues(new Uint8Array(32)),h="0x"+Array.from(u).map(function(t){return t.toString(16).padStart(2,"0")}).join("");chrome.runtime.sendMessage({action:Zf,source:qf,target:o,success:!0,privateKey:h}),fk.info({message:"[OFFSCREEN] Private key generated",logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.OFFSCREEN}),n({success:!0,received:!0})}catch(t){chrome.runtime.sendMessage({action:Zf,source:qf,target:o,success:!1,error:t.message||"Unknown error generating private key"}),fk.error({message:"[OFFSCREEN] Error generating private key: "+t.message,logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.OFFSCREEN}),n({success:!1,error:t.message})}break;default:fk.error({message:"[OFFSCREEN] Unknown action: "+i,logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.OFFSCREEN}),n({success:!1,error:"Unknown action"})}return!0}}},{key:"generateProof",value:(t=uk(ak().m(function t(e,n){var r,i,o,s,a;return ak().w(function(t){for(;;)switch(t.p=t.n){case 0:if(e){t.n=1;break}throw new Error("No claim data provided for proof generation");case 1:return r=e.sessionId,delete e.sessionId,t.p=2,n.info({message:"[OFFSCREEN] Updating session status to PROOF_GENERATION_STARTED",logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_STARTED}),t.n=3,sk(r,Yf);case 3:return i=new Promise(function(t,e){setTimeout(function(){e(new Error("Proof generation timed out after 2 minutes"))},12e4)}),t.n=4,KO(e);case 4:return o=t.v,n.info({message:"[OFFSCREEN] Attestor promise created",logLevel:tk.LOG_LEVEL.INFO,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_SUCCESS}),t.n=5,Promise.race([o,i]);case 5:return(s=t.v).publicData="string"==typeof e.publicData?e.publicData:null,n.info({message:"[OFFSCREEN] Attestor promise result: "+JSON.stringify(s),logLevel:tk.LOG_LEVEL.ALL,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.RESULT_RECEIVED,meta:{result:s}}),t.n=6,sk(r,zf);case 6:return t.a(2,s);case 7:return t.p=7,a=t.v,n.error({message:"[OFFSCREEN] Error generating proof: "+(null==a?void 0:a.message)||0,logLevel:tk.LOG_LEVEL.ERROR,type:tk.LOG_TYPES.OFFSCREEN,eventType:tk.EVENT_TYPES.PROOF_GENERATION_FAILED}),t.n=8,sk(r,Jf);case 8:throw a;case 9:return t.a(2)}},t,null,[[2,7]])})),function(e,n){return t.apply(this,arguments)})}]);var t}();new Ek})()})();
|
|
121
|
+
//# sourceMappingURL=offscreen.bundle.js.map
|