-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathmsrcrypto.min.js
More file actions
19 lines (18 loc) · 125 KB
/
Copy pathmsrcrypto.min.js
File metadata and controls
19 lines (18 loc) · 125 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//*******************************************************************************
//
// Copyright 2020 Microsoft
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//*******************************************************************************
"use strict";var msrCryptoVersion="1.7.0";(function(Kr,Sr){if(typeof define==="function"&&define.amd){define([],function(){return Kr.msrCrypto=Sr(Kr)})}else if(typeof exports==="object"){module.exports=Sr(Kr)}else{Kr.msrCrypto=Sr(Kr)}})(this,function(Kr){Kr=Kr||{};var Sr=function(){var q={};q.register=function(r,e,t){if(!Object.prototype.hasOwnProperty.call(q,r)||typeof q[r]!=="object"){q[r]={}}var l=q[r];if(!Object.prototype.hasOwnProperty.call(l,e)){l[e]=t}};q.exists=function(r,e){if(!Object.prototype.hasOwnProperty.call(q,r)||typeof q[r]!=="object"){return false}var t=q[r];return Object.prototype.hasOwnProperty.call(t,e)&&typeof t[e]==="function"};var Qr=(function(){if(typeof document!=="undefined"){try{throw new Error}catch(e){if(e.stack){var r=/\w+:\/\/(?:[^/\s]+\/)*[^/\s]*\.js/.exec(e.stack);return r&&r.length>0?r[0]:null}}}else if(typeof self!=="undefined"&&typeof self.location!=="undefined"){return self.location.href}return null})();var he=false;var xe=typeof Worker!=="undefined";var re=typeof importScripts==="function"&&self instanceof WorkerGlobalScope;var zr=false;var jr=typeof ArrayBuffer!=="undefined";var ye=(function(){try{Object.defineProperty({},"oncomplete",{});return true}catch(r){return false}})();var Tr=false;var Wr=function(r,e,t,l,f){if(!ye){r[e]=t;return}var g={};l&&(g.get=l);f&&(g.set=f);Object.defineProperty(r,e,g)};var Hr={};var ee={};function me(r,e){if(r!==ee){throw new Error("Illegal constructor")}for(var t in e){if(e.hasOwnProperty(t)){this[t]=e[t]}}}var V=(function(){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function e(u){if("console"in self&&"log"in console){console.log(u)}}function t(u,N){var a=f(u);if(a!=="Array"&&a!=="Uint8Array"&&a!=="ArrayBuffer"){throw new Error("invalid input")}var T="";var K=o(u);if(!N){N=false}var U,Y,er,nr,W,tr,kr;var br;for(br=0;br<K.length;br+=3){U=K[br];Y=K[br+1];er=K[br+2];nr=U>>2;W=(U&3)<<4|Y>>4;tr=(Y&15)<<2|er>>6;kr=er&63;if(isNaN(Y)){tr=kr=64}else if(isNaN(er)){kr=64}T=T+r.charAt(nr)+r.charAt(W)+r.charAt(tr)+r.charAt(kr)}if(N){return T.replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}return T}function l(u){u=u.replace(/-/g,"+").replace(/_/g,"/");while(u.length%4!==0){u+="="}var N=[];var a,T,K;var U,Y,er,nr;var W;u=u.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(W=0;W<u.length;W+=4){U=r.indexOf(u.charAt(W));Y=r.indexOf(u.charAt(W+1));er=r.indexOf(u.charAt(W+2));nr=r.indexOf(u.charAt(W+3));a=U<<2|Y>>4;T=(Y&15)<<4|er>>2;K=(er&3)<<6|nr;N.push(a);if(er!==64){N.push(T)}if(nr!==64){N.push(K)}}return N}function f(u){return Object.prototype.toString.call(u).slice(8,-1)}function g(u,N){var a="";if(typeof N==="undefined"){N=false}for(var T=0;T<u.length;T++){if(N&&T%4===0&&T!==0){a+="-"}var K=u[T].toString(16).toUpperCase();if(K.length===1){a+="0"}a+=K}return a}function x(u,N){N=N||0;return u[N]<<24|u[N+1]<<16|u[N+2]<<8|u[N+3]}function C(u){u=u.replace(/\-/g,"");var N=[];while(u.length>=2){N.push(parseInt(u.substring(0,2),16));u=u.substring(2,u.length)}return N}function h(u){var N={};for(var a in u){if(u.hasOwnProperty(a)){N[a]=u[a]}}return N}function p(u,N,a){var T=l(u),K=[],U;if(isNaN(N)){return T}else{for(U=0;U<T.length;U+=N){K.push(T.slice(U,U+N))}}if(a){for(U=0;U<K.length;U++){K[U]=(K[U][0]<<24)+(K[U][1]<<16)+(K[U][2]<<8)+K[U][3]}}return K}function m(u){return[u>>>24&255,u>>>16&255,u>>>8&255,u&255]}function v(u){var N=[];for(var a=0;a<u.length;a++){N=N.concat(m(u[a]))}return N}function c(u,N,K){var T=Math.min(u.length,N.length),K=K||new Array(T);for(var U=0;U<T;U+=1){K[U]=u[U]^N[U]}return K}function n(u,N){if(isNaN(N)){N=0}var a=new Array(u);for(var T=0;T<u;T+=1){a[T]=N}return a}function o(u){if(!u){return[]}if(u.pop){return u}if(f(u)==="ArrayBuffer"){u=new Uint8Array(u)}else if(u.BYTES_PER_ELEMENT>1){u=new Uint8Array(u.buffer)}if(u.length===1){return[u[0]]}if(u.length<65536){return Array.apply(null,u)}var N=new Array(u.length);for(var a=0;a<u.length;a++){N[a]=u[a]}return N}function E(u,N,a){while(u.length<a){u.push(N)}return u}function s(u,N,a){while(u.length<a){u.unshift(N)}return u}function d(u,N){var a=true;if(u.length!==N.length){a=false}for(var T=0;T<u.length;T++){if(u[T]!==N[T]){a=false}}return a}function y(u,N,a){var T=u.length>>>0;var K=a|0;if(K<0){K=Math.max(T+K,0)}for(;K<T;K+=1){if(u[K]===N){return K}}return-1}function D(u){if(f(u)!=="Array"){return false}var N;for(var a=0;a<u.length;a++){N=u[a];if(isNaN(N)||N<0||N>255){return false}}return true}function b(u,N,a){if(!u){throw new Error(a)}if(N&&f(u)!==N){throw new Error(a)}return true}function H(u){var N=[];for(var a=0,T=0;a<u.length;a++){var K=u.charCodeAt(a);if(K<128){N[T++]=K}else if(K<2048){N[T++]=K>>>6|192;N[T++]=K&63|128}else if(K<55296||K>57343){N[T++]=K>>>12|224;N[T++]=K>>>6&63|128;N[T++]=K&63|128}else{K=(K-55296)*1024+(u.charCodeAt(++a)-56320)+65536;N[T++]=K>>>18|240;N[T++]=K>>>12&63|128;N[T++]=K>>>6&63|128;N[T++]=K&63|128}}return N}function Q(u){var N="",a;u=o(u);for(var T=0;T<u.length;){var K=u[T++];if(K<128){a=K}else if(K<224){a=(K<<6)+u[T++]-12416}else if(K<240){a=(K<<12)+(u[T++]<<6)+u[T++]-925824}else{a=(K<<18)+(u[T++]<<12)+(u[T++]<<6)+u[T++]-63447168}if(a>65535){var U=Math.floor((a-65536)/1024)+55296;var Y=(a-65536)%1024+56320;N+=String.fromCharCode(U,Y);continue}N+=String.fromCharCode(a)}return N}var J={IndexSizeError:1,HierarchyRequestError:3,WrongDocumentError:4,InvalidCharacterError:5,NoModificationAllowedError:7,NotFoundError:8,NotSupportedError:9,InUseAttributeError:10,InvalidStateError:11,SyntaxError:12,InvalidModificationError:13,NamespaceError:14,InvalidAccessError:15,TypeMismatchError:17,SecurityError:18,NetworkError:19,AbortError:20,URLMismatchError:21,QuotaExceededError:22,TimeoutError:23,InvalidNodeTypeError:24,DataCloneError:25};function P(u,N){N=N||"";try{return new DOMException(N,u)}catch(T){var a=new Error(N);a.name=u;if(J.hasOwnProperty(u)){a.code=J[u]}return a}}function w(u){if(!(u instanceof Array))return false;for(var N=0;N<u.length;N++){var a=u[N];if(!L(a)||a>255||a<0)return false}return true}function L(u){return typeof u==="number"&&isFinite(u)&&Math.floor(u)===u};return{consoleLog:e,toBase64:t,fromBase64:l,checkParam:b,getObjectType:f,bytesToHexString:g,bytesToInt32:x,stringToBytes:H,bytesToString:Q,unpackData:p,hexToBytesArray:C,int32ToBytes:m,int32ArrayToBytes:v,toArray:o,arraysEqual:d,indexOf:y,clone:h,xorVectors:c,padEnd:E,padFront:s,getVector:n,verifyByteArray:D,error:P,isBytes:w,isInteger:L}})();var Lr=(function(){var r={0:"CUSTOM",1:"BOOLEAN",2:"INTEGER",3:"BIT STRING",4:"OCTET STRING",5:"NULL",6:"OBJECT IDENTIFIER",16:"SEQUENCE",17:"SET",19:"PRINTABLE STRING",23:"UTCTime"};var e={0:"UNIVERSAL",1:"APPLICATION",2:"Context-Defined",3:"PRIVATE"};function t(h,p){p=!!p;var m=r[h[0]&31],v=h[1],c=0,n=!!(h[0]&32),o,E,s;if(v&128){for(c=0,v=0;c<(h[1]&127);c++){v=(v<<8)+h[2+c]}}s=2+c;if(m===void 0||v>h.length){return null}var d=n?[]:{};d.type=m;d.header=s;d.data=h.slice(0,v+s);if(n||p){if(d.type==="BIT STRING"&&h[s]===0){c++}o=h.slice(s,d.data.length);while(o.length>0){E=t(o);if(E===null){break}d.push(E);o=o.slice(E.data.length)}}return d}function l(h){var p=2,m=3,v=4,c=5,n=6,o=16,E=160,s=32;if(h.hasOwnProperty("INTEGER")){var d=h.INTEGER;if(V.isInteger(d))d=g(d);if(d[0]&128)d.unshift(0);var y=[p].concat(f(d),d);return y}if(h.hasOwnProperty("OCTET STRING")){var d=h["OCTET STRING"];if(!(d instanceof Array))d=l(d);var y=[v].concat(f(d),d);return y}if(h.hasOwnProperty("BIT STRING")){var d=h["BIT STRING"];if(!(d instanceof Array))d=l(d);d.unshift(0);var y=[m].concat(f(d),d);return y}if(h.hasOwnProperty("NULL")){return[c,0]}if(h.hasOwnProperty("OBJECT IDENTIFIER")){var d=x(h["OBJECT IDENTIFIER"]);var y=[n].concat(f(d),d);return y}if(h.hasOwnProperty("SEQUENCE")){var D=h.SEQUENCE;var d=[];for(var b=0;b<D.length;b++){d=d.concat(l(D[b]))}var y=[o|s].concat(f(d),d);return y}if(h.hasOwnProperty("APPLICATION")){var D=h.APPLICATION;var H=isNaN(parseInt(D[0]))?s:0;var Q=h.tag;var d=H?[]:h.APPLICATION;if(H){for(var b=0;b<D.length;b++){d=d.concat(l(D[b]))}}var y=[E|H|Q].concat(f(d),d);return y}throw new Error("unsupported asn.1 type")}function f(h){var p=h.length;if(p<=127)return[p];var m=g(p);m.unshift(m.length|128);return m}function g(h){var p=[];if(h===0)return[0];while(h>0){p.unshift(h&255);h>>>=8}return p}function x(h){var p=h.split(".");var m=[parseInt(p[0]*40+parseInt(p[1]))];for(var v=2;v<p.length;v++){var c=parseInt(p[v]);var n=[];while(c>0){n.push(c&127|128);c=c>>>7}n[0]=n[0]&127;m=m.concat(n.reverse())}return m}function C(h,p){var m=new Array(p+1).join(" ")+h.type+" ("+h.length+") "+bytesToHexString(h.data).substring(0,16)+"\n";if(!h.children){return m}for(var v=0;v<h.children.length;v++){m+=C(h.children[v],p+4)+""}return m}return{parse:t,encode:l,toString:function(h){return C(h,0)}}})();var Ae=(function(){function r(f){if(zr&&re){self.postMessage(f)}return f}var e,t,l;return{jsCryptoRunner:function(f){e=f.data.workerid;t=f.data.operationType;l=f.data.operationSubType;var g=f.data.operationType,x=f.data.algorithm.name,C,h=f.data;if(!q.hasOwnProperty(g)){throw new Error("unregistered algorithm.")}var p=q[g];if(typeof p!=="object"||p===null||!p.hasOwnProperty(x)){throw new Error("unregistered algorithm.")}var m=p[x];if(typeof m!=="function"){throw new Error("unregistered algorithm.")}if(h.operationSubType){C=r({type:h.operationSubType,result:m(h)})}else{C=r(m(h))}return C},returnResult:r}})();if(re){self.onmessage=function(r){if(!zr&&r.data.prngSeed){var e=r.data.prngSeed;Yr.init(e);zr=true;return Ae.returnResult({initialized:true})}if(zr===true){try{Ae.jsCryptoRunner(r)}catch(t){Ae.returnResult({error:{name:t&&t.name||"OperationError",message:t&&t.message||"",code:t&&t.code||0}})}}}}var te=(function(){var r=V;function e(x){var C=x.algorithm.name.slice(0,3).toUpperCase();if(C==="RSA"){return"RSA"}if(C==="ECD"){return"EC"}return"oct"}function t(x){return x.hash.name.substring(x.hash.name.indexOf("-")+1)}var l={"HMAC":function(x){return"HS"+t(x)},"AES-CBC":function(x){return"A"+x.length.toString()+"CBC"},"AES-GCM":function(x){return"A"+x.length.toString()+"GCM"},"AES-KW":function(x){return"A"+x.length.toString()+"KW"},"RSAES-PKCS1-V1_5":function(x){return"RSA1_5"},"RSASSA-PKCS1-V1_5":function(x){return"RS"+t(x)},"RSA-OAEP":function(x){if(x.hash.name.toUpperCase()==="SHA-1"){return"RSA-OAEP"}return"RSA-OAEP-"+t(x)},"RSA-PSS":function(x){return"PS"+t(x)},"ECDSA":function(x){return"EC-"+x.namedCurve.substring(x.namedCurve.indexOf("-")+1)}};function f(x,C){var h={};h.kty=e(x);h.ext=x.extractable;if(l[x.algorithm.name.toUpperCase()]){h.alg=l[x.algorithm.name.toUpperCase()](x.algorithm)}h.key_ops=x.usages;if(C.pop){h.k=r.toBase64(C,true)}else{for(var p in C){if(C[p].pop&&p!=="key_ops"){h[p]=r.toBase64(C[p],true)}}}if(x.algorithm.namedCurve){h.crv=x.algorithm.namedCurve}return h}function g(x,C,h){var p=JSON.parse(JSON.stringify(x));for(var m=0;m<h.length;m+=1){var v=p[h[m]];if(v){p[h[m]]=r.fromBase64(v)}}return p}return{keyToJwk:f,jwkToKey:g}})();function Re(){var r=24;var e=Math.floor(r/8);var t=(1<<r)-1;var l=1<<r;var f=t;var g=1/l;var x=31;var C=[1,256];for(var h=2;h<=e;h++){C[h]=C[h-1]*256}var p=[0];var m=[1];function v(I){var S,M=null;if(!arguments.length||typeof arguments[0]==="number"){M=new Array(I);for(S=0;S<I;S+=1){M[S]=0}}else if(typeof arguments[0]==="object"){M=new Array(I.length);for(S=0;S<I.length;S+=1){M[S]=I[S]}}return M}function c(I,S){I=I.replace(/^\s+|\s+$/g,"");var M=[0];var R=[0];S=S||10;for(var O=0;O<I.length;O+=1){var X=parseInt(I[O],S);if(isNaN(X)){throw new Error("Failed to convert string to integer in radix "+S.toString())}nr(M,S,R);Y(R,[X],M);T(M)}return M}function n(I,S){S=S||10;if(l<=S){throw new Error("DIGIT_BASE is smaller than RADIX; cannot convert.")}var M=I.length;var R=[];var O=[];var X=[];var j=[];var $=[];var ur=[];var lr;var cr="";var Ar="0";$[0]=S;while(Math.floor(l/$[0])>=S){$[0]=$[0]*S;Ar=Ar.concat("0")}for(lr=0;lr<M;lr+=1){ur[lr]=I[lr]}do{var Er=true;for(lr=0;lr<ur.length;lr+=1){if(ur[lr]!==0){Er=false;break}}if(Er){break}W(ur,$,R,O,X,j);T(R,ur.length,true);var pr=O[0].toString(S);cr=Ar.substring(0,Ar.length-pr.length)+pr+cr;var sr=ur;ur=R;R=sr}while(true);while(cr.length!==0&&cr[0]==="0"){cr=cr.substring(1,cr.length)}if(cr.length===0){cr="0"}return cr}function o(I){var S=v(I.length*8);var M=0;var R=I.length-1;while(R>=0){var O=0;while(O<8){var X=1<<O;var j=(I[R]&X)===X?1:0;var $=8*(I.length-R-1)+O;if(j===1){M=$+1}S[$]=j;O+=1}R--}return S.slice(0,M)}function E(I){var S=0;for(var M=0;M<r;M++){S=Math.max(S,-(I>>>M&1)&M)}return S}function s(I){var S=0;var M=0;while(S<I.length){if(M===0){var R=7;while(R>=0&&M===0){var O=1<<R;if((I[S]&O)===O){M=R+1}R--}}else{M+=8}S+=1}return M}function d(I,S,M){I=I.slice();var R=[],O=Math.pow(2,S),X=Math.pow(2,S-1);for(var j=0;j<M;j++){R[j]=I[0]%O-X;I[0]=I[0]-R[j];B.shiftRight(I,I,S-1)}R[j]=I[0];return R}function y(I,S){var M=I.length,R=new Array(M*r),O=0,X=0,j=0,$=0,ur,lr=new Array(Math.ceil(M*r/S));for(j=0,lr[0]=0;O<M;O++){for(X=0,ur=I[O];X<r;X++,ur>>>=1){if(j===S){lr[++$]=0;j=0}lr[$]+=(ur&1)<<j++}}return lr}function D(I,S,M){var R=Math.floor(S/B.DIGIT_BITS);var O=R+1;var X=S%B.DIGIT_BITS;var j=B.DIGIT_BITS-X;var $=I[R]>>>X|I[O]<<j;return $&B.DIGIT_MASK>>>B.DIGIT_BITS-M}function b(I,S,M){var R=Math.floor(S/r),O=S%r;return I[R]>>>O|I[R+1]<<r-O&t>>>r-M}function H(I,S,M,R,O){while(O-- >0){M[R+O]=I[S+O]}}function Q(I){var S,M=0;for(S=0;S<I.length;S+=1){M=M|I[S]}return!M}function J(I){return(I[0]&1)===0}function P(I,S){var M=I.length===S.length;for(var R=0;R<Math.min(I.length,S.length);R+=1){if(I[R]!==S[R]){M=false}}return M}function w(I){var S=Math.floor((I.length+e-1)/e);var M=new Array(S);M[0]=0;var R=0,O=0,X=0;for(var j=I.length-1;j>=0;j--){R=R+C[X++]*(I[j]&255);if(C[X]===l){X=0;M[O++]=R;R=0}}if(R!==0){M[O]=R}while(M[--S]==null){M[S]=0}return M}function L(I,S,M){var R,O,X;var j=[0];if(typeof S==="undefined"){S=true}for(R=0;R<I.length;R+=1){X=I[R];for(O=0;O<e;O+=1){j[R*e+O]=X&255;X=Math.floor(X/256)}}j.reverse();if(M===void 0){M=1}if(S){while(j.length>M&&j[0]===0){j.shift()}}return j}function u(I,S){if(typeof S==="undefined"){if(I<=1){S=1}else{var M=Math.log(I)/Math.LN2;S=Math.ceil(M/r)}}var R=[];while(I>0){R.push(I%l);I=Math.floor(I/l)}while(R.length<S){R.push(0)}return R}function N(I){for(var S=I.length-1;S>=0;S--){if(I[S]!==void 0&&I[S]!==0){return S}}return I[0]===0?-1:0}function a(I,S){var M=0,R,O;for(O=0;O<Math.max(I.length,S.length);O++){R=~~I[O]-~~S[O];M=R+(M&-!R)}return M}function T(I,S,M){var R=N(I);I.length=S||R+1;if(M){while(++R<I.length){I[R]=0}}if(I.length<=0){I[0]=0;I.length=1}return I}function K(I,S,M,R){if(M===void 0){M=1}else if(M>=r||M<0){throw new Error("Invalid bit count for shiftRight")}if(R===void 0){R=I.length}var O=R-1;var X=r-M;for(var j=0;j<O;j++){S[j]=(I[j+1]<<X|I[j]>>>M)&t}S[O]=I[O]>>>M}function U(I,S,M,R){if(M===void 0){M=1}else if(M>=r||M<0){throw new Error("bit count must be smaller than DIGIT_BITS and positive in shiftLeft")}if(R===void 0){R=I.length}var O=r-M;S[R]=I[R-1]>>>r-M||S[R];for(var X=R-1;X>0;X--){S[X]=(I[X]<<M|I[X-1]>>>O)&t}S[0]=I[0]<<M&t}function Y(I,S,M){var R=I;var O=S;if(S.length<I.length){R=S;O=I}var X=R.length;var j=0;var $;for($=0;$<X;$+=1){j+=R[$]+O[$];M[$]=j&t;j=j>>r}for($=X;$<O.length;$+=1){j+=O[$];M[$]=j&t;j=j>>r}M.length=O.length;if(j!==0){M[$]=j&t}return j}function er(I,S,M){var R=S.length;if(I.length<S.length){R=N(S)+1;if(I.length<R){throw new Error("Subtrahend is longer than minuend, not supported.")}}var O,X=0;for(O=0;O<R;O+=1){X+=I[O]-S[O];M[O]=X&t;X=X>>r}while(O<I.length){X+=I[O];M[O++]=X&t;X=X>>r}return X}function nr(I,S,M){S=typeof S==="number"?[S]:S;var R,O,X,j,$,ur,lr,cr=I.length,Ar=S.length,Er;for(R=0;R<cr+Ar;R+=1){M[R]=0}R=0;j=0;var pr=31;var sr=0;while(R<Ar){j=Math.min(j+pr,Ar);for(;R<j;R++){Er=S[R];for(O=0;O<cr;O++){M[R+O]+=I[O]*Er}}$=0;for(X=sr;X<R+cr;X++){ur=M[X]+$;lr=ur&t;M[X]=lr;$=(ur-lr)*g}M[X]=$;sr+=pr}M.length=cr+Ar;return M}function W(I,S,M,R,O,X){var j=N(I)+1;var $=N(S)+1;var ur,lr,cr,Ar,Er,pr,sr;if(j<$){H(I,0,R,0,I.length);R.length=I.length;T(R);M[0]=0;M.length=1;return}else if($===0||$===1&&S[$-1]===0){throw new Error("Division by zero.")}else if($===1){Er=S[0];lr=0;for(sr=j-1;sr>=0;sr--){Ar=lr*l+I[sr];M[sr]=Ar/Er&t;lr=Ar-M[sr]*Er&t}M.length=j;T(M);R[0]=lr;R.length=1;return}var $r=r-1-E(S[$-1]);var Vr=O||[];Vr.length=$;U(S,Vr,$r,$);var vr=X||[];vr.length=j;U(I,vr,$r,j);vr[j]=vr[j]||0;M.length=j-$+1;R.length=$;for(sr=j-$;sr>=0;sr--){ur=Math.floor((vr[sr+$]*l+vr[sr+$-1])/Vr[$-1]);lr=vr[sr+$]*l+vr[sr+$-1]-ur*Vr[$-1];while(true){if(ur>=l||ur*Vr[$-2]>lr*l+vr[sr+$-2]){ur=ur-1;lr=lr+Vr[$-1];if(lr<l){continue}}break}cr=0;for(pr=0;pr<$;pr++){Ar=ur*Vr[pr];Er=vr[pr+sr]-cr-(Ar&t);vr[pr+sr]=Er&t;cr=Math.floor(Ar/l)-Math.floor(Er/l)}Er=vr[sr+$]-cr;vr[sr+$]=Er&t;M[sr]=ur&t;if(Er<0){M[sr]=M[sr]-1;cr=0;for(pr=0;pr<$;pr++){Er=vr[pr+sr]+Vr[pr]+cr;vr[pr+sr]=Er&t;cr=Er>>r}vr[sr+$]=vr[sr+$]+cr&t}}for(pr=0;pr<$;pr++){R[pr]=(vr[pr]>>>$r|vr[pr+1]<<r-$r)&t}T(M);T(R)}function tr(I,S,M,R,O){var X=[];W(I,S,X,M,R,O);return M}function kr(I,S,M,R,O,X){var j=[];nr(I,S,j);W(j,M,j,R,O,X);return R}function br(I,S,M,R,O){var X;if(Q(I)){H(S,0,O,0,S.length);O.length=S.length;return 0}else if(Q(S)){H(I,0,O,0,I.length);O.length=I.length;return 0}else if(a(I,S)<0){X=I.slice(0);H(S,0,O,0,S.length);O.length=S.length}else{X=S.slice(0);H(I,0,O,0,I.length);O.length=I.length}T(O);T(X);var j=new Array(O.length);var $=new Array(O.length);var ur=new Array(O.length);var lr=R!==void 0;var cr;if(lr){cr=new Array(O.length);cr[0]=1;cr.length=1;R[0]=0;R.length=1}var Ar;var Er=new Array(O.length);var pr=M!==void 0;if(pr){Ar=new Array(O.length);Ar[0]=0;Ar.length=1;M[0]=1;M.length=1}var sr=-1;var $r=M;var Vr=R;var vr=O;var yr;while(!Q(X)){W(O,X,j,$,Er,ur);if(pr){nr(j,Ar,Er);Y(Er,M,Er);T(Er);yr=M;M=Ar;Ar=Er;Er=yr}if(lr){nr(j,cr,ur);Y(ur,R,ur);T(ur);yr=R;R=cr;cr=ur;ur=yr}yr=O;O=X;X=$;$=yr;sr++}if(pr){H(M,0,$r,0,M.length);$r.length=M.length}if(lr){H(R,0,Vr,0,R.length);Vr.length=R.length}H(O,0,vr,0,O.length);vr.length=O.length;return sr}function ir(I,S,M){var R=I;var O=S;if(a(I,S)>0){R=S;O=I}br(R,O,void 0,void 0,M);return T(M)}function Z(I,S,M,R){var O=new Array(S.length);var X=new Array(S.length);var j=new Array(S.length);var $=br(I,S,X,O,j);M=M||[];if(a(j,m)!==0){M[0]=NaN;M.length=1}else{if(($&1)===1){er(S,O,M)}else{H(O,0,M,0,O.length);M.length=O.length}if(R){T(M,S.length,true)}else{T(M)}}return M}function _(I,S,M,R){var O=[];M=M||[];er(S,[2],O);ar(I,O,S,M);T(M);return M}function ar(I,S,M,R){R=R||[];if(a(S,p)===0){R[0]=1}else if(a(S,m)===0){H(I,0,R,0,I.length);R.length=I.length}else{var O=new Br(M);T(I,O.s,true);O.modExp(I,S,R);R.length=M.length}return R}function Br(I,S){function M(A){var k=1;var G=2;var z=3;var rr=z&A;for(var or=2;or<=r;or+=1){if(G<rr){k+=G}G=G<<1;z=z<<1|1;rr=A*k&z}var xr=(~k&t)+1;return xr}function R(A,k,G){var z=k[0];var rr=M(z);var or=k.length;var xr=A.slice(0);var dr=[];var Fr=[];var Gr=[];var Cr=[1];for(var fr=0;fr<or;fr++){dr=xr[fr]*rr%l;nr(k,[dr],Gr);nr(Gr,Cr,Fr);Y(xr,Fr,xr);Cr.unshift(0)}xr=xr.slice(or);for(fr=0;fr<xr.length;fr++){G[fr]=xr[fr]}}function O(A,k,G,z){z=z||this;var rr=z.m,or=rr.length,xr=z.mPrime,dr=z.m0,Fr,Gr,Cr,fr=0,hr,ve,oe,de,qr,we=0;var Ur=v(or+2);while(fr<or){we=Math.min(or,we+16);for(;fr<we;){Fr=~~k[fr];Gr=Ur[0]+A[0]*Fr;Cr=(Gr&t)*xr&t;Ur[1]+=(dr*Cr+Gr)*g|0;for(hr=1,ve=0;hr<or;ve=hr,hr+=1){Ur[ve]=Ur[hr]+rr[hr]*Cr+A[hr]*Fr}Ur[ve]=Ur[hr];Ur[hr]=0;fr++}qr=0;for(hr=0;hr<or;hr++){oe=Ur[hr]+qr;de=oe&t;Ur[hr]=de;qr=(oe-de)*g}Ur[hr]=qr}for(fr=0;fr<or;fr+=1){G[fr]=Ur[fr]}G.length=or;var Xe=+(B.compareDigits(Ur,rr)>0);B.subtract(G,rr,z.temp2);Ar(Xe,G,z.temp2);return}function X(A){if(A.length<this.s){A.length=this.s;for(var k=0;k<this.s;k++){A[k]=isNaN(A[k])?0:A[k]}}var G=v(A.length);this.montgomeryMultiply(A,this.rSquaredModm,G);for(k=0;k<this.s;k+=1){A[k]=G[k]}}function j(A){this.montgomeryMultiply(A,this.one,this.temp1);for(var k=0;k<this.s;k+=1){A[k]=this.temp1[k]}}var $=[[158,2],[634,3],[1984,4],[5568,5],[14670,6]];function ur(A){var k=A*r;for(var G=0;G<$.length;G++){if(k<=$[G][0]){return $[G][1]}}return $[$.length-1][1]+1}function lr(A,k,G,z){z=!!z;var rr=ur(k.length);var or,xr,dr=y(k,rr).reverse(),Fr=this.rModM.slice(0),Gr=Math.pow(2,rr),Cr=F;Cr.length=Gr;Cr[0]=this.rModM;for(or=1;or<Gr;or++){Cr[or]=[];nr(Cr[or-1],A,Cr[or]);this.reduce(Cr[or])}var fr=[];var hr;for(or=0;or<dr.length;or++){for(xr=0;xr<rr;xr++){this.montgomeryMultiply(Fr,Fr,Fr)}hr=dr[or];z?fr=Cr[hr]:cr(Cr,hr,fr);this.montgomeryMultiply(Fr,fr,Fr)}this.montgomeryMultiply(Fr,this.one,G);return G}function cr(A,k,G){var z,rr,or,xr,dr;for(z=0;z<A[0].length;z++){G[z]=0}for(rr=0;rr<A.length;rr++){xr=A[rr];or=-(k===rr);for(dr=0;dr<xr.length;dr++){G[dr]=G[dr]|xr[dr]&or}}}function Ar(A,k,G){var z=-A;var rr=~z;for(var or=0;or<k.length;or++){k[or]=k[or]&rr|G[or]&z}}function Er(A,k){var G=this.m.length,z,rr,or,xr,dr,Fr,Gr,Cr=[];k=k||A;z=A.slice(G-1);rr=[];nr(z,this.mu,rr);or=rr.slice(G+1);xr=A.slice(0,G+1);dr=[];nr(or,sr,dr);dr=dr.slice(0,G+1);xr[G+1]=a(xr,dr)>>>31;for(Fr=0;Fr<k.length;Fr++){k[Fr]=0}er(xr,dr,k);Gr=+(a(k,sr)>0);B.subtract(k,sr,Cr);Ar(Gr,k,Cr);T(k);return}function pr(A){var k=A.length;var G=A[0];var z={m:A,mPrime:M(G),m0:G,temp1:v(2*k+1),temp2:v(2*k+1)};var rr=v(A.length*2);rr[rr.length]=1;z.mu=[];W(rr,A,z.mu,[]);var or=v(2*k+1);var xr=v(k+1);var dr=v(2*k+1);var Fr=v(2*k+1);var Gr=xr;Gr[k]=1;W(Gr,A,or,xr,dr,Fr);z.rModM=T(xr,k,true);var Cr=v(2*k+1);var fr=Cr;fr[k*2]=1;W(fr,A,or,Cr,dr,Fr);z.rSquaredModm=T(Cr,k,true);z.rCubedModm=v(k);O(Cr,Cr,z.rCubedModm,z);return z}S=S||pr(I);var sr=S.m;var $r=S.mu;var Vr=S.m0;var vr=sr.length;var yr=v(vr+1);var Mr=yr.slice(0,vr);Mr[0]=1;var Or=S.mPrime;var Ir=S.rModM;var ge=S.rSquaredModm;var ue=S.rCubedModm;var ce=v(2*vr+1);var Pr=v(2*vr+1);var F=new Array(4);F[0]=Ir;F[1]=new Array(vr);F[2]=new Array(vr);F[3]=new Array(vr);return{m:sr,m0:Vr,mPrime:Or,mu:$r,rSquaredModm:ge,s:vr,rModM:Ir,rCubedModm:ue,one:Mr,temp1:ce,temp2:Pr,convertToMontgomeryForm:X,convertToStandardForm:j,montgomeryMultiply:O,modExp:lr,reduce:Er,ctx:S}}function Rr(I){var S=w(I);var M=S.length;var R=u(0,M);var O=u(1,M);var X=v(M);var j=v(M);var $=new Br(S);function ur(yr){var Mr=w(yr);if(B.compareDigits(Mr,this.m_modulus)>=0){throw new Error("The number provided is not an element of this group")}T(Mr,this.m_digitWidth,true);return vr(Mr,this)}function lr(yr){var Mr=u(yr,this.m_digitWidth);return vr(Mr,this)}function cr(yr){B.normalizeDigitArray(yr,this.m_digitWidth,true);return vr(yr,this)}function Ar(yr){return a(this.m_modulus,yr.m_modulus)===0}function Er(yr,Mr,Or){var Ir;var ge=this.m_digitWidth;var ue=Or.m_digits;B.add(yr.m_digits,Mr.m_digits,ue);var ce=(a(ue,this.m_modulus)>>>31)-1&t;var Pr=0;for(Ir=0;Ir<ge;Ir+=1){Pr=ue[Ir]-(this.m_modulus[Ir]&ce)+Pr;ue[Ir]=Pr&t;Pr=Pr>>r}ue.length=ge}function pr(yr,Mr,Or){var Ir,ge=this.m_digitWidth;var ue=Or.m_digits;var ce=B.subtract(yr.m_digits,Mr.m_digits,Or.m_digits);if(ce===-1){ce=0;for(Ir=0;Ir<ge;Ir+=1){ce+=ue[Ir]+this.m_modulus[Ir];ue[Ir]=ce&t;ce=ce>>r}}}function sr(yr,Mr){B.modInv(yr.m_digits,this.m_modulus,Mr.m_digits)}function $r(yr,Mr,Or){return B.modMul(yr.m_digits,Mr.m_digits,this.m_modulus,Or.m_digits,X,j)}function Vr(yr,Mr,Or){Or=Or||vr([],this);if(a(Mr,R)===0){Or.m_digits=u(1,this.m_digitWidth)}else if(a(Mr,O)===0){for(var Ir=0;Ir<yr.m_digits.length;Ir++){Or.m_digits[Ir]=yr.m_digits[Ir]}Or.m_digits.length=yr.m_digits.length}else{this.montmul.modExp(yr.m_digits,Mr,Or.m_digits);Or.m_digits.length=this.montmul.s}return Or}function vr(yr,Mr){return{m_digits:yr,m_group:Mr,equals:function(Or){return a(this.m_digits,Or.m_digits)===0&&this.m_group.equals(this.m_group,Or.m_group)}}}return{m_modulus:S,m_digitWidth:M,montmul:$,createElementFromInteger:lr,createElementFromBytes:ur,createElementFromDigits:cr,equals:Ar,add:Er,subtract:pr,multiply:$r,inverse:sr,modexp:Vr}}return{DIGIT_BITS:r,DIGIT_NUM_BYTES:e,DIGIT_MASK:t,DIGIT_BASE:l,DIGIT_MAX:f,Zero:p,One:m,normalizeDigitArray:T,bytesToDigits:w,stringToDigits:c,digitsToString:n,intToDigits:u,digitsToBytes:L,isZero:Q,isEven:J,shiftRight:K,shiftLeft:U,compareDigits:a,bitLength:s,fixedWindowRecode:d,IntegerGroup:Rr,add:Y,subtract:er,multiply:nr,divRem:W,reduce:tr,modInv:Z,modInvCT:_,modExp:ar,modMul:kr,MontgomeryMultiplier:Br,gcd:ir,sequenceEqual:P,swapEndianness:function(I){return I.reverse()},computeBitArray:o}}var B=B||Re();function Pe(){var r=B.bytesToDigits;function e(o){var E,s=null;if(!arguments.length||typeof arguments[0]==="number"){s=[];for(E=0;E<o;E+=1){s[E]=0}}else if(typeof arguments[0]==="object"){s=[];for(E=0;E<o.length;E+=1){s[E]=o[E]}}return s}var t=function(o,E,s,d,y,D){var b=o.length;var H=g(this,false,y,D,null,false);return{p:o,a:E,b:s,order:d,generator:H,allocatePointStorage:function(){return g(this,false,B.intToDigits(0,b),B.intToDigits(0,b))},createPointAtInfinity:function(){return g(this,true,B.intToDigits(0,b),B.intToDigits(0,b))}}};var l=function(o){var E=new t(r(o.p),r(o.a),r(o.b),r(o.order),r(o.gx),r(o.gy));E.type=o.type;E.name=o.name;E.generator.curve=E;return E};var f=function(o){var E=new t(r(o.p),r(o.a),r(o.d),r(o.order),r(o.gx),r(o.gy));E.type=o.type;if(E.type===1){E.d=E.b.slice();delete E.b}E.rbits=o.info[2];E.name=o.name;E.generator.curve=E;return E};var g=function(o,E,s,d,y,D){var b;if(typeof y==="undefined"){y=null}if(typeof D==="undefined"){D=false}function H(P){if(!P){return false}if(b.isInfinity&&P.isInfinity){return true}if(b.z===null&&P.z!==null){return false}if(b.z!==null&&P.z===null){return false}if(b.z===null){return B.compareDigits(b.x,P.x)===0&&B.compareDigits(b.y,P.y)===0&&b.isInMontgomeryForm===P.isInMontgomeryForm}return B.compareDigits(b.x,P.x)===0&&B.compareDigits(b.y,P.y)===0&&B.compareDigits(b.z,P.z)===0&&b.isInMontgomeryForm===P.isInMontgomeryForm}function Q(P,w){w.curve=P.curve;w.x=P.x.slice();w.y=P.y.slice();if(P.z!==null){w.z=P.z.slice()}else{w.z=null}ye||(w.isAffine=P.isAffine);w.isInMontgomeryForm=P.isInMontgomeryForm;w.isInfinity=P.isInfinity;if(!w.equals(P)){throw new Error("Instances should be equal.")}}function J(){var P=g(b.curve,b.isInfinity,e(b.x),e(b.y),b.z?e(b.z):null,b.isInMontgomeryForm);b.ta&&(P.ta=e(b.ta));b.tb&&(P.tb=e(b.tb));return P}b={equals:function(P){return H(P)},copy:function(P){Q(this,P);return},clone:function(){return J()}};Wr(b,"curve",o,function(){return o},function(P){o=P});Wr(b,"x",s,function(){return s},function(P){s=P});Wr(b,"y",d,function(){return d},function(P){d=P});Wr(b,"z",y,function(){return y},function(P){y=P});Wr(b,"isInMontgomeryForm",D,function(){return D},function(P){D=P});Wr(b,"isInfinity",E,function(){return E},function(P){E=P});Wr(b,"isAffine",y===null,function(){return y===null});return b};var x=function(o){var E=o;var s=o.type===1;var d=o.p.length;var y=B.MontgomeryMultiplier(o.p);var D=o.a.slice();y.convertToMontgomeryForm(D);var b=B.isZero(o.a);var H=B.One;var Q=e(d);Q[0]=1;y.convertToMontgomeryForm(Q);var J=B.IntegerGroup(B.digitsToBytes(y.m),true);var P=e(d);var w=e(d);var L=e(d);var u=e(d);var N=e(d);var a=e(d);var T=e(d);var K=e(d);var U=e(d);var Y=e(d);var er=e(d);var nr=e(d);function W(F,A,k){var G=J.createElementFromInteger(0);G.m_digits=k;J.subtract(J.createElementFromDigits(F),J.createElementFromDigits(A),G)}function tr(F,A,k){var G=J.createElementFromInteger(0);G.m_digits=k;J.add(J.createElementFromDigits(F),J.createElementFromDigits(A),G)}function kr(F,A){B.modInv(F,E.p,A)}function br(F,A){var k=F.length;var G=o.p;if((F[0]&1)===1){var z=0;for(var rr=0;rr<k;rr+=1){z+=F[rr]+G[rr];A[rr]=z&B.DIGIT_MASK;z=z>>>B.DIGIT_BITS}z=z<<B.DIGIT_BITS-1;B.shiftRight(A,A);A[k-1]|=z}else{B.shiftRight(F,A)}}function ir(F,A,k){y.montgomeryMultiply(F,A,k)}function Z(F,A){y.montgomeryMultiply(F,F,A)}function _(F){var A=e(F.length);ir(F,y.rCubedModm,A);for(var k=0;k<A.length;k+=1){F[k]=A[k]}}function ar(F,A){if(F.isInfinity){A.isInfinity=true;return}Z(F.z,w);ir(F.z,F.y,N);tr(F.x,w,L);W(F.x,w,w);A.z=N.slice();ir(w,L,u);br(u,L);tr(u,L,w);Z(F.y,L);Z(w,N);ir(F.x,L,u);W(N,u,N);W(N,u,A.x);W(u,A.x,N);Z(L,u);ir(w,N,L);W(L,u,A.y);A.isInfinity=false;A.isInMontgomeryForm=true}function Br(F,A){if(F.isInfinity){A.isInfinity=true;return}Z(F.y,u);Z(F.x,N);tr(N,N,P);tr(P,N,N);ir(F.x,u,a);Z(u,P);br(N,w);Z(w,u);ir(F.y,F.z,U);for(var k=0;k<U.length;k+=1){A.z[k]=U[k]}W(u,a,A.x);W(A.x,a,A.x);W(a,A.x,N);ir(w,N,L);W(L,P,A.y);A.isInfinity=false;A.isInMontgomeryForm=true}function Rr(F,A){var k=A.clone();lr(k);if(!Er(k)){throw new Error("Invalid Parameter")}var G=A.clone();Ar(G);var z=[A.clone()];var rr=G.clone();var or=G.clone();I(G,or);cr(or);var xr;for(var dr=1;dr<Math.pow(2,F-2);dr++){M(rr,or,rr);xr=rr.clone();cr(xr);z[dr]=xr}return z}function I(F,A){if(typeof F==="undefined"){throw new Error("point undefined")}if(typeof A==="undefined"){throw new Error("outputPoint undefined")}if(F.isAffine){throw new Error("Given point was in Affine form. Use convertToJacobian() first.")}if(!F.isInMontgomeryForm){throw new Error("Given point must be in Montgomery form. Use montgomeryize() first.")}if(b){Br(F,A)}else{ar(F,A)}}function S(F,A,k){if(F.isInfinity){A.copy(k);this.convertToJacobianForm(k);return}if(A.isInfinity){F.copy(k);return}Z(F.z,a);ir(F.z,a,T);ir(A.x,a,N);ir(A.y,T,a);W(N,F.x,w);W(a,F.y,L);if(B.isZero(w)){if(B.isZero(L)){I(F,k);M(k,A,k);return}else{k.x=F.x.slice(0);k.y=F.y.slice(0);k.z=F.z.slice(0);return}}Z(L,N);Z(w,T);ir(T,F.x,a);ir(w,T,P);W(N,a,u);W(u,a,u);ir(F.z,w,N);W(u,a,u);ir(P,F.y,T);W(u,P,u);if(B.isZero(u)){for(i=0;i<k.x.length;i++){k.x[i]=0;k.y[i]=0;k.z[i]=0}k.y[0]=1;return}tr(T,T,w);ir(N,u,k.z);ir(L,u,N);Z(u,P);tr(w,N,w);ir(P,a,N);Z(w,K);ir(P,u,a);W(K,N,k.x);W(k.x,N,k.x);W(k.x,a,k.x);W(k.x,N,u);ir(a,T,P);ir(w,u,N);W(N,P,k.y);k.isInfinity=false;k.isInMontgomeryForm=true}function M(F,A,k){if(F===null){throw new Error("jacobianPoint")}if(A===null){throw new Error("affinePoint")}if(k===null){throw new Error("outputPoint")}if(F.curve!==A.curve||F.curve!==k.curve){throw new Error("All points must be from the same curve object.")}if(F.isAffine){throw new Error("Given jacobianPoint was in Affine form. Use ConvertToJacobian() before calling DoubleJacobianAddAffinePoints().")}if(!A.isAffine){throw new Error("Given affinePoint was in Jacobian form. Use ConvertToAffine() before calling DoubleJacobianAddAffinePoints().")}if(k.isAffine){throw new Error("Given jacobianPoint was in Jacobian form. Use ConvertToJacobian() before calling DoubleJacobianAddAffinePoints().")}if(!F.isInMontgomeryForm){throw new Error("Jacobian point must be in Montgomery form")}if(!A.isInMontgomeryForm){throw new Error("Affine point must be in Montgomery form")}if(F.isInfinity){A.copy(k);this.convertToJacobianForm(k);return}if(A.isInfinity){F.copy(k);return}Z(F.z,w);ir(w,F.z,L);ir(w,A.x,u);ir(L,A.y,N);W(u,F.x,w);W(N,F.y,L);var G;for(G=0;G<w.length;G+=1){if(w[G]!==0){ir(F.z,w,P);for(var z=0;z<d;z+=1){k.z[z]=P[z]}Z(w,u);ir(u,w,N);ir(u,F.x,a);tr(a,a,w);Z(L,k.x);W(k.x,w,k.x);W(k.x,N,k.x);W(a,k.x,u);ir(L,u,a);ir(F.y,N,T);W(a,T,k.y);k.isInfinity=false;k.isInMontgomeryForm=true;return}}for(G=0;G<L.length;G+=1){if(L[G]!==0){k.isInfinity=true;k.isInMontgomeryForm=true;return}}A.copy(k);this.convertToJacobianForm(k);this.double(k,k);k.isInMontgomeryForm=true}function R(F,A,k,G){if(A.isInfinity||B.isZero(F)){k.isInfinity=true;return}if(B.compareDigits(F,o.order)>=0){throw new Error("The scalar k must be in the range 1 <= k < order.")}F=F.slice();if(A.curve.type===1){var z=typeof A.ta!=="undefined";if(!z){$r(A)}Vr(F,A,k,G);if(!z){yr(A)}}else{var rr=A.isInMontgomeryForm,or=k.isInMontgomeryForm,xr=k.isAffine;if(!rr){ur(A)}if(!or){ur(k)}O(F,A,k);if(xr){cr(k)}if(!rr){lr(A)}if(!or){lr(k)}}return}function O(F,A,k){var G=A.clone();lr(G);if(!Er(G)){throw new Error("Invalid Parameters.")}var z=F[0]&1,rr=[];W(A.curve.order,F,rr);for(hr=0;hr<F.length;hr++){F[hr]=z-1&(F[hr]^rr[hr])^F[hr]}var or=d<=8?5:6;var xr=A.curve.p.length*B.DIGIT_BITS;var dr=Math.ceil(xr/(or-1));var Fr=B.fixedWindowRecode(F,or,dr);var Gr=Rr(or,A);var Cr=Math.floor(Math.abs(Fr[dr])-1)/2;var fr=Gr[Cr].clone();Ar(fr);for(var hr=dr-1;hr>=0;hr--){for(var ve=0;ve<or-2;ve++){I(fr,fr)}Cr=Math.floor((Math.abs(Fr[hr])-1)/2);var oe=X(Gr,Cr);W(oe.curve.p,oe.y,rr);var de=-(Fr[hr]>>>31);for(var qr=0;qr<oe.y.length;qr++){oe.y[qr]=oe.y[qr]&~de|rr[qr]&de}S(fr,oe,fr)}W(A.curve.p,fr.y,rr);for(hr=0;hr<fr.y.length;hr++){fr.y[hr]=z-1&(fr.y[hr]^rr[hr])^fr.y[hr]}fr.copy(k);return}function X(F,A){var k,G;for(var z=0;z<F.length;z++){k=+(z===A);G=[G,F[z].clone()][k]}return G}function j(F,A){var k=(A+1)%F.length;for(var G=0;G<F.length;G++){var z=F[k].clone();k=(k+1)%F.length}return z}function $(F,A){if(F!==A){F.copy(A)}W(F.curve.p,F.y,A.y)}function ur(F){if(F.isInMontgomeryForm){throw new Error("The given point is already in Montgomery form.")}if(!F.isInfinity){y.convertToMontgomeryForm(F.x);y.convertToMontgomeryForm(F.y);if(F.z!==null){y.convertToMontgomeryForm(F.z)}if(typeof F.ta!=="undefined"){y.convertToMontgomeryForm(F.ta);y.convertToMontgomeryForm(F.tb)}}F.isInMontgomeryForm=true}function lr(F){if(!F.isInMontgomeryForm){throw new Error("The given point is not in montgomery form.")}if(!F.isInfinity){y.convertToStandardForm(F.x);y.convertToStandardForm(F.y);if(F.z!==null){y.convertToStandardForm(F.z)}if(typeof F.ta!=="undefined"){y.convertToStandardForm(F.ta);y.convertToStandardForm(F.tb)}}F.isInMontgomeryForm=false}function cr(F){if(F.isInfinity){F.z=null;ye||(F.isAffine=true);return}B.modInv(F.z,o.p,nr,true);if(F.isInMontgomeryForm){ir(nr,y.rCubedModm,er);var A=nr;nr=er;er=A}Z(nr,Y);ir(F.x,Y,er);for(var k=0;k<d;k+=1){F.x[k]=er[k]}ir(F.y,Y,er);ir(er,nr,F.y);F.z=null;delete F.ta;delete F.tb;ye||(F.isAffine=true)}function Ar(F){if(!F.isAffine){throw new Error("The given point is not in Affine form.")}ye||(F.isAffine=false);var A,k,G=F.isInMontgomeryForm?Q:H;A=e(G.length);for(k=0;k<G.length;k+=1){A[k]=G[k]}F.z=A;return}function Er(F){if(F.isInfinity){return false}B.modMul(F.y,F.y,F.curve.p,w);B.modMul(F.x,F.x,F.curve.p,L);B.modMul(F.x,L,F.curve.p,u);tr(u,F.curve.b,L);B.modMul(F.x,F.curve.a,F.curve.p,u);tr(L,u,L);W(w,L,w);if(B.isZero(w)===false){return false}return true}function pr(F){if(F.ta){F=F.clone();yr(F)}B.modMul(F.y,F.y,F.curve.p,u);B.modMul(F.x,F.x,F.curve.p,L);B.add(L,u,w);B.reduce(N,F.curve.p,N);B.modMul(L,u,F.curve.p,N);B.modMul(F.curve.d,N,F.curve.p,u);B.add(u,[1],L);B.reduce(L,F.curve.p,L);B.subtract(w,L,w);if(B.isZero(w)===false){B.reduce(w,F.curve.p,w);if(B.isZero(w)===false){return false}}return true}function sr(F,A){var k=A.clone(),G=k.clone(),z=[];z[0]=Ir(A);Mr(k,k);G=Ir(k);k=A.clone();for(var rr=1;rr<F;rr++){ge(G,k,k);z[rr]=Ir(k)}return z}function $r(F){F.ta=F.x.slice();F.tb=F.y.slice();F.z=[1]}function Vr(F,A,k,G){if(!pr(A)){throw new Error("Invalid Parameter")}var z=A.curve.rbits;G=typeof G==="undefined"?true:G;var rr=d<=8?5:6;var or=Math.floor((z+(rr-2))/(rr-1));var xr,dr;F=F.slice();var Fr=A.clone();$r(Fr);if(G){Mr(Fr,Fr);Mr(Fr,Fr)}var Gr=sr(1<<rr-2,Fr);var Cr=F[0]&1,fr=[],hr;W(A.curve.order,F,fr);for(xr=0;xr<F.length;xr++){F[xr]=Cr-1&(F[xr]^fr[xr])^F[xr]}var ve=B.fixedWindowRecode(F,rr,or);var oe=Math.floor(Math.abs(ve[or])-1)/2;var de=Gr[oe];Fr.x=de.x.slice();Fr.y=de.y.slice();Fr.z=de.z.slice();for(xr=or-1;xr>=0;xr--){for(dr=0;dr<rr-1;dr++){Mr(Fr,Fr)}oe=Math.floor((Math.abs(ve[xr])-1)/2);var qr=vr(Gr,oe);var we=-(ve[xr]>>>31);W(A.curve.p,qr.x,fr);for(var Ur=0;Ur<qr.x.length;Ur++){qr.x[Ur]=qr.x[Ur]&~we|fr[Ur]&we}W(A.curve.p,qr.td,fr);for(Ur=0;Ur<qr.td.length;Ur++){qr.td[Ur]=qr.td[Ur]&~we|fr[Ur]&we}ge(qr,Fr,Fr)}W(A.curve.p,Fr.x,fr);for(xr=0;xr<Fr.x.length;xr++){Fr.x[xr]=Cr-1&(Fr.x[xr]^fr[xr])^Fr.x[xr]}yr(Fr);k.x=Fr.x.slice();k.y=Fr.y.slice();return}function vr(F,A){var k=(A+1)%F.length;for(var G=0;G<F.length;G++){var z={x:F[k].x.slice(),y:F[k].y.slice(),z:F[k].z.slice(),td:F[k].td.slice()};k=(k+1)%F.length}return z}function yr(F){B.modInv(F.z,o.p,nr,true);B.modMul(F.x,nr,o.p,F.x);B.modMul(F.y,nr,o.p,F.y);delete F.ta;delete F.tb;F.z=null;return}function Mr(F,A){if(typeof F.ta==="undefined"){throw new Error("Point should be in Extended Projective form.")}B.modMul(F.x,F.x,F.curve.p,P);B.modMul(F.y,F.y,F.curve.p,w);B.modMul(F.z,F.z,F.curve.p,F.ta);W(w,P,A.tb);tr(P,w,P);tr(F.ta,F.ta,F.ta);tr(F.y,F.y,F.y);W(F.ta,P,w);B.modMul(F.x,F.y,F.curve.p,A.ta);B.modMul(P,A.tb,F.curve.p,A.y);B.modMul(w,A.ta,F.curve.p,A.x);B.modMul(P,w,F.curve.p,A.z);return}function Or(F,A,k){var G=B;if(typeof F.ta==="undefined"){throw new Error("Point1 should be in Extended Projective form.")}if(typeof A.ta==="undefined"){throw new Error("Point2 should be in Extended Projective form.")}var z=Ir(F);ge(z,A,k);return}function Ir(F){var A=F.curve,k=A.p,G={x:F.x.slice(),y:F.y.slice(),z:F.z.slice(),td:[],curve:F.curve};B.modMul(F.ta,F.tb,k,Y);B.modMul(Y,A.d,k,G.td);return G}function ge(F,A,k){var G=B;var z=A.curve.p;w=[];L=[];u=[];G.modMul(A.z,F.z,z,u);G.modMul(A.ta,A.tb,z,w);tr(A.x,A.y,A.ta);G.modMul(w,F.td,z,L);tr(F.x,F.y,A.tb);W(u,L,w);tr(u,L,u);G.modMul(A.ta,A.tb,z,L);G.modMul(A.x,F.x,z,A.z);G.modMul(A.y,F.y,z,A.x);W(L,A.z,L);W(A.x,A.z,k.ta);W(L,A.x,k.tb);G.modMul(k.ta,u,z,k.y);G.modMul(k.tb,w,z,k.x);G.modMul(u,w,z,k.z);return}function ue(F,A){var k=F.curve.a.slice(),G=F.curve.d.slice(),z=F.curve.p,rr=B.modMul,or=B.modInv;w=[5];rr(k,w,z,L);W(L,G,L);rr(G,w,z,u);W(k,u,w);rr(F.y,w,z,u);tr(u,L,L);w=[1];W(w,F.y,u);w=[12];rr(w,u,z,N);or(N,z,N,true);rr(F.x,u,z,w);tr(w,w,u);tr(u,u,u);or(u,z,u,true);rr(N,L,z,A.x);w=[1];tr(F.y,w,w);W(k,G,L);rr(w,L,z,N);rr(N,u,z,A.y);return}function ce(F,A){var k=A.curve.a.slice(),G=A.curve.d.slice(),z=A.curve.p,rr=B.modMul,or=B.modInv;tr(F.x,F.x,w);tr(F.x,w,w);tr(w,w,w);W(w,k,L);W(L,G,L);tr(F.y,F.y,u);tr(F.y,u,u);tr(u,u,u);or(u,z,u,true);rr(L,u,z,A.x);tr(w,w,w);tr(w,G,L);tr(w,k,w);tr(k,k,u);W(L,u,L);W(L,u,L);W(L,k,L);tr(G,G,u);W(w,u,w);W(w,u,w);W(w,G,w);or(w,z,w,true);rr(w,L,z,A.y);return}var Pr={convertToMontgomeryForm:ur,convertToStandardForm:lr,convertToAffineForm:cr,convertToJacobianForm:Ar,generatePrecomputationTable:function(F,A){return Rr(F,A)}};if(s){Pr.double=Mr;Pr.add=Or;Pr.scalarMultiply=R;Pr.normalize=yr;Pr.convertToExtendedProjective=$r;Pr.convertTedToWeierstrass=ue;Pr.convertWeierstrassToTed=ce;Pr.validatePoint=pr;Pr.generatePrecomputationTable=function(F,A){return sr(F,A)}}else{Pr.double=I;Pr.mixedDoubleAdd=S;Pr.mixedAdd=M;Pr.scalarMultiply=R;Pr.negate=$;Pr.validatePoint=Er}return Pr};var C=function(){return{encodePoint:function(o){if(!o){throw new Error("point")}if(!o.isAffine){throw new Error("Point must be in affine form.")}if(o.isInMontgomeryForm){throw new Error("Point must not be in Montgomery form.")}if(o.isInfinity){return e(1)}else{var E=B.digitsToBytes(o.x);var s=B.digitsToBytes(o.y);var d=B.digitsToBytes(o.curve.p);var y=d.length;if(y<E.length||y<s.length){throw new Error("Point coordinate(s) are bigger than the field order.")}var D=e(2*y+1);D[0]=4;var b=y-E.length;for(var H=0;H<E.length;H++){D[H+1+b]=E[H]}b=y-s.length;for(H=0;H<s.length;H++){D[y+H+1+b]=s[H]}return D}},decodePoint:function(o,E){if(o.length<1){throw new Error("Byte array must have non-zero length")}var s=B.digitsToBytes(E.p);var d=s.length;if(o[0]===0&&o.length===1){return E.createPointAtInfinity()}else if(o[0]===4&&o.length===1+2*d){var y=e(d);var D=e(d);for(var b=0;b<d;b++){y[b]=o[b+1];D[b]=o[d+b+1]}var H=B.bytesToDigits(y);var Q=B.bytesToDigits(D);return g(E,false,H,Q)}else{throw new Error("Unsupported encoding format")}}}};var h=function(o){var E=o;var s=[];if(typeof o==="undefined"){throw new Error("modulus")}if(B.isEven(o)){throw new Error("Only odd moduli are supported")}var d=B.MontgomeryMultiplier(E);if(E[0]%4===3){B.add(E,B.One,s);B.shiftRight(s,s,2)}else{s=null}var y=new Array(E.length);var D=new Array(E.length);function b(Q){var J=B.intToDigits(0,16);d.modExp(Q,s,J);var P=[0];B.modMul(J,J,d.m,P);if(B.compareDigits(Q,P)!==0){return null}return J}var H={squareRoot:function(Q){if(s!==null){return b(Q)}else{throw new Error("GeneralCase not supported.")}},jacobiSymbol:function(Q){var J=7,P=3,w,L;w=Q.slice();L=E.slice();B.reduce(w,L,w,y,D);var u=1;while(!B.isZero(w)){while(B.isEven(w)){B.shiftRight(w,w);var N=L[0]&J;if(N===3||N===5){u=-u}}var a=w;w=L;L=a;var T=w[0]&P;var K=L[0]&P;if(T===3&&K===3){u=-u}B.reduce(w,L,w,y,D)}if(B.compareDigits(L,B.One)===0){return u}else{return 0}}};return H};var p={};var m={"P-256":32,"P-384":48,"P-521":66,"BN-254":32,"NUMSP256D1":32,"NUMSP256T1":32,"NUMSP384D1":48,"NUMSP384T1":48,"NUMSP512D1":64,"NUMSP512T1":64};var v=function(o){var E=p[o.toUpperCase()];if(!E){throw new Error(o+" Unsupported curve.")}if(E.type===0){return l(E)}if(E.type===1){return f(E)}throw new Error(o+" Unsupported curve type.")};var c=function(o,E,s,d){var y=v(o);var D=new g(y,false,r(E),r(s),d&&r(d),false);var b=new x(y);return b.validatePoint(D)};var n=function(o){if(!o){return void 0}return m[o.toUpperCase()]};return{createCurve:v,curveElementLength:n,curves:p,sec1EncodingFp:C,validatePoint:c,EllipticCurvePointFp:g,EllipticCurveOperatorFp:x,ModularSquareRootSolver:h}}var gr=gr||Pe();var Ue={name:"P-256",type:0,p:[255,255,255,255,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255],a:[255,255,255,255,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,252],b:[90,198,53,216,170,58,147,231,179,235,189,85,118,152,134,188,101,29,6,176,204,83,176,246,59,206,60,62,39,210,96,75],order:[255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,188,230,250,173,167,23,158,132,243,185,202,194,252,99,37,81],gx:[107,23,209,242,225,44,66,71,248,188,230,229,99,164,64,242,119,3,125,129,45,235,51,160,244,161,57,69,216,152,194,150],gy:[79,227,66,226,254,26,127,155,142,231,235,74,124,15,158,22,43,206,51,87,107,49,94,206,203,182,64,104,55,191,81,245],cf:1};var Oe={name:"P-384",type:0,p:[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255],a:[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,252],b:[179,49,47,167,226,62,231,228,152,142,5,107,227,248,45,25,24,29,156,110,254,129,65,18,3,20,8,143,80,19,135,90,198,86,57,141,138,46,209,157,42,133,200,237,211,236,42,239],order:[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,199,99,77,129,244,55,45,223,88,26,13,178,72,176,167,122,236,236,25,106,204,197,41,115],gx:[170,135,202,34,190,139,5,55,142,177,199,30,243,32,173,116,110,29,59,98,139,167,155,152,89,247,65,224,130,84,42,56,85,2,242,93,191,85,41,108,58,84,94,56,114,118,10,183],gy:[54,23,222,74,150,38,44,111,93,158,152,191,146,146,220,41,248,244,29,189,40,154,20,124,233,218,49,19,181,240,184,192,10,96,177,206,29,126,129,157,122,67,29,124,144,234,14,95],cf:1};var Le={name:"P-521",type:0,p:[1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],a:[1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252],b:[0,81,149,62,185,97,142,28,154,31,146,154,33,160,182,133,64,238,162,218,114,91,153,179,21,243,184,180,137,145,142,241,9,225,86,25,57,81,236,126,147,123,22,82,192,189,59,177,191,7,53,115,223,136,61,44,52,241,239,69,31,212,107,80,63,0],order:[1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,250,81,134,135,131,191,47,150,107,127,204,1,72,247,9,165,208,59,181,201,184,137,156,71,174,187,111,183,30,145,56,100,9],gx:[0,198,133,142,6,183,4,4,233,205,158,62,203,102,35,149,180,66,156,100,129,57,5,63,181,33,248,40,175,96,107,77,61,186,161,75,94,119,239,231,89,40,254,29,193,39,162,255,168,222,51,72,179,193,133,106,66,155,249,126,126,49,194,229,189,102],gy:[1,24,57,41,106,120,154,59,192,4,92,138,95,180,44,125,27,217,152,245,68,73,87,155,68,104,23,175,189,23,39,62,102,44,151,238,114,153,94,244,38,64,197,80,185,1,63,173,7,97,53,60,112,134,162,114,194,64,136,190,148,118,159,209,102,80],cf:1};if(typeof gr!=="undefined"){gr.curves["P-256"]=Ue;gr.curves["P-384"]=Oe;gr.curves["P-521"]=Le}var Ge={name:"BN-254",type:0,p:[37,35,100,130,64,0,0,1,186,52,77,128,0,0,0,8,97,33,0,0,0,0,0,19,167,0,0,0,0,0,0,19],a:[0],b:[2],order:[37,35,100,130,64,0,0,1,186,52,77,128,0,0,0,7,255,159,128,0,0,0,0,16,161,0,0,0,0,0,0,13],gx:[37,35,100,130,64,0,0,1,186,52,77,128,0,0,0,8,97,33,0,0,0,0,0,19,167,0,0,0,0,0,0,18],gy:[1],cf:1};if(typeof gr!=="undefined"){gr.curves["BN-254"]=Ge}var We={info:["numsp256d1",256,256,256],type:0,p:[67,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[64,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),b:[129,85,2].reverse(),order:[37,168,81,71,41,32,171,32,96,92,38,234,117,130,60,228,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),gx:[177,172,26,178,30,238,82,188,58,199,212,3,9,155,87,131,9,203,66,79,160,149,122,41,97,219,170,90,182,214,158,188].reverse(),gy:[159,222,132,33,203,185,181,128,187,15,49,21,209,195,85,201,53,224,4,126,247,139,68,115,166,182,153,51,241,192,143,208].reverse(),cf:1};var qe={info:["numsp256t1",256,255,256],name:"numsp256t1",type:1,p:[67,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[1],d:[85,195,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),order:[245,74,221,238,144,177,71,26,155,67,89,47,165,90,149,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64].reverse(),gx:[218,19,237,46,144,192,222,160,134,53,8,227,14,138,57,12,214,155,32,105,95,61,30,205,125,35,234,106,251,20,117,138].reverse(),gy:[230,137,138,121,231,22,166,47,211,110,133,16,216,97,95,113,16,128,75,166,217,101,150,206,199,37,217,217,159,62,213,68].reverse(),cf:4};var ze={info:["numsp384d1",384,384,384],name:"numsp384d1",type:0,p:[195,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[192,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),b:[187,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),order:[185,97,14,123,246,129,77,96,122,226,55,76,61,157,218,190,129,104,93,235,30,175,30,214,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),gx:[42,21,152,32,4,186,156,235,123,196,97,15,16,237,46,82,66,199,108,42,27,41,189,243,244,249,129,251,205,193,37,2,166,241,5,65,34,202,128,72,28,24,111,177,240,86,121,117].reverse(),gy:[22,7,24,102,236,184,116,92,38,173,244,191,219,180,214,188,126,131,26,18,125,131,32,185,156,115,127,248,119,105,4,176,126,207,132,5,48,61,227,215,56,142,155,225,104,227,222,172].reverse(),cf:1};var Qe={info:["numsp384t1",384,382,384],name:"numsp384t1",type:1,p:[195,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[1],d:[159,209,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),order:[125,137,163,230,196,220,185,32,121,200,53,171,90,85,228,97,207,225,107,180,28,26,71,226,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63].reverse(),gx:[222,107,32,108,228,64,213,80,19,148,69,101,177,146,242,111,64,99,49,243,168,255,99,87,0,76,190,229,70,244,11,179,181,93,229,154,18,162,182,192,108,38,169,69,251,17,177,97].reverse(),gy:[146,147,114,240,225,3,141,157,220,72,236,70,249,176,114,0,75,150,69,246,247,152,15,131,86,95,66,241,116,130,173,22,215,13,177,35,164,177,56,135,176,238,166,185,103,62,152,130].reverse(),cf:4};var _e={info:["numsp512d1",512,512,512],name:"numsp512d1",type:0,p:[199,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[196,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),b:[155,217,1].reverse(),order:[93,85,51,4,57,63,21,206,67,210,124,96,54,139,86,59,198,189,208,151,237,88,194,79,27,131,231,148,251,164,60,91,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),gx:[87,174,171,140,149,135,130,220,226,93,111,125,19,96,93,29,131,21,86,37,134,66,121,147,158,53,107,7,81,161,33,80,249,217,6,83,194,224,6,69,133,246,1,181,59,216,202,152,82,59,61,160,2,112,43,218,147,10,29,20,71,52,192,58].reverse(),gy:[166,39,53,56,96,135,160,35,233,15,253,76,30,92,43,207,2,86,90,178,64,168,33,193,233,237,14,139,218,21,132,162,20,79,209,123,12,38,75,143,140,187,188,171,222,219,151,75,0,177,235,99,220,238,14,206,179,86,173,41,202,84,58,148].reverse(),cf:4};var Ve={info:["numsp512t1",512,510,512],name:"numsp512t1",type:1,p:[199,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),a:[1].reverse(),d:[239,203,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255].reverse(),order:[109,212,238,27,245,140,70,103,255,236,239,109,120,5,70,42,245,134,182,112,201,216,63,158,186,145,207,47,109,99,240,180,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63].reverse(),gx:[254,87,236,153,41,171,185,197,21,240,196,124,66,37,229,15,173,4,137,86,146,201,189,120,15,115,70,238,78,193,33,70,71,129,59,39,190,126,161,39,130,163,196,77,159,231,209,47,51,197,211,136,120,203,24,122,156,182,141,18,109,49,142,223].reverse(),gy:[225,245,226,193,192,222,109,50,31,208,241,155,138,211,102,2,253,193,236,42,134,6,26,96,98,53,150,233,242,83,202,32,65,131,158,144,149,107,43,169,34,157,37,216,38,247,118,228,110,37,42,168,119,245,176,152,113,202,73,157,243,191,9,109].reverse(),cf:4};if(typeof gr!=="undefined"){gr.curves.NUMSP256D1=We;gr.curves.NUMSP384D1=ze;gr.curves.NUMSP512D1=_e;gr.curves.NUMSP256T1=qe;gr.curves.NUMSP384T1=Qe;gr.curves.NUMSP512T1=Ve}var ke=function(r,e,t,l,f,g,x){var C=V;var h=t.slice(),p=new Array(f),m=[],v=0;function c(y){var D=Math.floor(y.length/f);for(var b=0;b<D;b++){g(y,b,h,l,p)}v+=D;return y.slice(D*f)}function n(){var y=[];for(var D=0;D<h.length;D++){y=y.concat(C.int32ToBytes(h[D]))}y.length=x/8;return y}function o(y){var D=f-y.length%f;D<=f/8&&(D+=f);var b=C.getVector(D);b[0]=128;var H=(y.length+v*f)*8;for(var Q=1;Q<=8;Q++){b[D-Q]=H%256;H=Math.floor(H/256)}return y.concat(b)}function E(y){m=c(y);return d()}function s(y){m=m.concat(y);if(m.length>=f){m=c(m)}return}function d(){if(c(o(m)).length!==0){throw new Error("buffer.length !== 0")}var y=n();m=[];h=t.slice();v=0;return y}return{name:r,computeHash:E,process:s,finish:d,der:e,hashLen:x,maxMessageSize:4294967295}};var ne=(function(){function r(x,C,h,p,m){var v,c,n,o,E=64,s=4294967295;var d=h[0],y=h[1],D=h[2],b=h[3],H=h[4];for(c=0;c<16;c++){m[c]=e.bytesToInt32(x,C*E+c*4)}for(v=16;v<80;v++){o=m[v-3]^m[v-8]^m[v-14]^m[v-16];m[v]=o<<1|o>>>31}for(c=0;c<80;c++){n=d<<5|d>>>27;n+=c>=60?y^D^b:c>=40?y&D^y&b^D&b:c>=20?y^D^b:y&D^~y&b;n+=H+p[c]+m[c];H=b;b=D;D=y<<30|y>>>2;y=d;d=n}h[0]+=d&s;h[1]+=y&s;h[2]+=D&s;h[3]+=b&s;h[4]+=H&s;return h}var e=V,t=e.unpackData,l=t("Z0UjAe/Nq4mYutz+EDJUdsPS4fA=",4,1),f=t("WoJ5mVqCeZlagnmZWoJ5mVqCeZlagnmZWoJ5mVqCeZlagnmZWoJ5mVqCeZlagnmZWoJ5mVqCeZlagnmZWoJ5mVqCeZlagnmZWoJ5mVqCeZlu2euhbtnroW7Z66Fu2euhbtnroW7Z66Fu2euhbtnroW7Z66Fu2euhbtnroW7Z66Fu2euhbtnroW7Z66Fu2euhbtnroW7Z66Fu2euhbtnroY8bvNyPG7zcjxu83I8bvNyPG7zcjxu83I8bvNyPG7zcjxu83I8bvNyPG7zcjxu83I8bvNyPG7zcjxu83I8bvNyPG7zcjxu83I8bvNyPG7zcymLB1spiwdbKYsHWymLB1spiwdbKYsHWymLB1spiwdbKYsHWymLB1spiwdbKYsHWymLB1spiwdbKYsHWymLB1spiwdbKYsHWymLB1spiwdY",4,1),g=t("MCEwCQYFKw4DAhoFAAQU");return{sha1:function(){return ke("SHA-1",g,l,f,64,r,160)}}})();if(typeof q!=="undefined"){ne.instances={};ne.getInstance=function(r){return ne.instances[r]||(ne.instances[r]=ne.sha1())};ne.deleteInstance=function(r){ne.instances[r]=null;delete ne.instances[r]};ne.hash=function(r){if(r.operationSubType==="process"){ne.sha1.process(r.buffer);return}if(r.operationSubType==="finish"){return ne.sha1.finish()}return ne.sha1().computeHash(r.buffer)};q.register("digest","SHA-1",ne.hash)}Hr["SHA-1"]=ne.sha1;var Dr=(function(){var r=V;function e(h,p,m,v,c){var n,o,E,s,d,y=64,D=4294967295;var b=m[0],H=m[1],Q=m[2],J=m[3],P=m[4],w=m[5],L=m[6],u=m[7];for(o=0;o<16;o++){c[o]=r.bytesToInt32(h,p*y+o*4)}for(n=16;n<64;n++){s=c[n-15];d=c[n-2];c[n]=((d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10)+c[n-7]+((s>>>7|s<<25)^(s>>>18|s<<14)^s>>>3)+c[n-16];c[n]=c[n]&D}for(o=0;o<64;o++){E=u+((P>>>6|P<<26)^(P>>>11|P<<21)^(P>>>25|P<<7))+(P&w^~P&L)+v[o]+c[o];J+=E;E+=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&(H^Q)^H&Q);u=L;L=w;w=P;P=J;J=Q;Q=H;H=b;b=E}m[0]=m[0]+b>>>0;m[1]=m[1]+H>>>0;m[2]=m[2]+Q>>>0;m[3]=m[3]+J>>>0;m[4]=m[4]+P>>>0;m[5]=m[5]+w>>>0;m[6]=m[6]+L>>>0;m[7]=m[7]+u>>>0;return m}var t,l,f,g,x,C=r.unpackData;l=C("wQWe2DZ81QcwcN0X9w5ZOf/ACzFoWBURZPmPp776T6Q",4,1);f=C("agnmZ7tnroU8bvNypU/1OlEOUn+bBWiMH4PZq1vgzRk",4,1);t=C("QoovmHE3RJG1wPvP6bXbpTlWwltZ8RHxkj+CpKscXtXYB6qYEoNbASQxhb5VDH3Dcr5ddIDesf6b3AanwZvxdOSbacHvvkeGD8GdxiQMocwt6SxvSnSEqlywqdx2+YjamD5RUqgxxm2wAyfIv1l/x8bgC/PVp5FHBspjURQpKWcntwqFLhshOE0sbfxTOA0TZQpzVHZqCruBwskuknIshaK/6KGoGmZLwkuLcMdsUaPRkugZ1pkGJPQONYUQaqBwGaTBFh43bAgnSHdMNLC8tTkcDLNO2KpKW5zKT2gub/N0j4LueKVjb4TIeBSMxwIIkL7/+qRQbOu++aP3xnF48g",4,1);g=C("MC0wDQYJYIZIAWUDBAIEBQAEHA");x=C("MDEwDQYJYIZIAWUDBAIBBQAEIA");return{sha224:function(){return ke("SHA-224",g,l,t,64,e,224)},sha256:function(){return ke("SHA-256",x,f,t,64,e,256)}}})();if(typeof q!=="undefined"){Dr.instance224=Dr.instance224||Dr.sha224();Dr.instance256=Dr.instance256||Dr.sha256();Dr.instances={};Dr.getInstance224=function(r){return Dr.instances[r]||(Dr.instances[r]=Dr.sha224())};Dr.getInstance256=function(r){return Dr.instances[r]||(Dr.instances[r]=Dr.sha256())};Dr.deleteInstance=function(r){Dr.instances[r]=null;delete Dr.instances[r]};Dr.hash256=function(r){if(r.operationSubType==="process"){Dr.getInstance256(r.workerid).process(r.buffer);return null}if(r.operationSubType==="finish"){var e=Dr.getInstance256(r.workerid).finish();Dr.deleteInstance(r.workerid);return e}if(r.operationSubType==="abort"){Dr.deleteInstance(r.workerid);return}return Dr.instance256.computeHash(r.buffer)};Dr.hash224=function(r){if(r.operationSubType==="process"){Dr.getInstance224(r.workerid).process(r.buffer);return}if(r.operationSubType==="finish"){var e=Dr.getInstance224(r.workerid).finish()}if(r.operationSubType==="abort"){msrcryptoSha224.deleteInstance(r.workerid);return}return Dr.instance224.computeHash(r.buffer)};q.register("digest","SHA-224",Dr.hash224);q.register("digest","SHA-256",Dr.hash256)}Hr["SHA-224"]=Dr.sha224;Hr["SHA-256"]=Dr.sha256;var Nr=(function(){var r=V;function e(v,c,n,o,E){var s=c+o|0;var d=s>>>0<o>>>0;E[0]=v+n+d|0;E[1]=s;return}function t(v,c,n,o,E){var s,d,y=128,D,b,H,Q,J,P,w=[],L=[],u=[],N;var a=n[0],T=n[1],K=n[2],U=n[3],Y=n[4],er=n[5],nr=n[6],W=n[7],tr=n[8],kr=n[9],br=n[10],ir=n[11],Z=n[12],_=n[13],ar=n[14],Br=n[15];for(s=0;s<32;s++){N=c*y+s*4;E[s]=v.slice(N,N+4);E[s]=E[s][0]<<24|E[s][1]<<16|E[s][2]<<8|E[s][3]}for(s=32;s<160;s+=2){J=E[s-30];P=E[s-29];D=(J>>>1|P<<31)^(J>>>8|P<<24)^J>>>7;b=(P>>>1|J<<31)^(P>>>8|J<<24)^(P>>>7|J<<25);J=E[s-4];P=E[s-3];H=(J>>>19|P<<13)^(P>>>29|J<<3)^J>>>6;Q=(P>>>19|J<<13)^(J>>>29|P<<3)^(P>>>6|J<<26);e(H,Q,E[s-14],E[s-13],w);e(D,b,w[0],w[1],w);e(E[s-32],E[s-31],w[0],w[1],w);E[s]=w[0];E[s+1]=w[1]}for(d=0;d<160;d+=2){D=(tr>>>14|kr<<18)^(tr>>>18|kr<<14)^(kr>>>9|tr<<23);b=(kr>>>14|tr<<18)^(kr>>>18|tr<<14)^(tr>>>9|kr<<23);H=tr&br^Z&~tr;Q=kr&ir^_&~kr;e(ar,Br,D,b,w);e(H,Q,o[d],o[d+1],L);e(w[0],w[1],E[d],E[d+1],u);e(L[0],L[1],u[0],u[1],u);e(u[0],u[1],nr,W,w);nr=w[0];W=w[1];b=(T>>>28|a<<4)^(a>>>2|T<<30)^(a>>>7|T<<25);D=(a>>>28|T<<4)^(T>>>2|a<<30)^(T>>>7|a<<25);Q=T&(U^er)^U&er;H=a&(K^Y)^K&Y;e(u[0],u[1],D,b,w);D=w[0];b=w[1];e(H,Q,D,b,w);D=w[0];b=w[1];ar=Z;Br=_;Z=br;_=ir;br=tr;ir=kr;tr=nr;kr=W;nr=Y;W=er;Y=K;er=U;K=a;U=T;a=D;T=b}e(n[0],n[1],a,T,w);n[0]=w[0];n[1]=w[1];e(n[2],n[3],K,U,w);n[2]=w[0];n[3]=w[1];e(n[4],n[5],Y,er,w);n[4]=w[0];n[5]=w[1];e(n[6],n[7],nr,W,w);n[6]=w[0];n[7]=w[1];e(n[8],n[9],tr,kr,w);n[8]=w[0];n[9]=w[1];e(n[10],n[11],br,ir,w);n[10]=w[0];n[11]=w[1];e(n[12],n[13],Z,_,w);n[12]=w[0];n[13]=w[1];e(n[14],n[15],ar,Br,w);n[14]=w[0];n[15]=w[1];return n}var l,f,g,x,C,h,p,m=r.unpackData;l=m("y7udXcEFnthimikqNnzVB5FZAVowcN0XFS/s2PcOWTlnMyZn/8ALMY60SodoWBUR2wwuDWT5j6dHtUgdvvpPpA==",4,1);f=m("agnmZ/O8yQi7Z66FhMqnOzxu83L+lPgrpU/1Ol8dNvFRDlJ/reaC0ZsFaIwrPmwfH4PZq/tBvWtb4M0ZE34heQ",4,1);g=m("QoovmNcoriJxN0SRI+9lzbXA+8/sTTsv6bXbpYGJ27w5VsJb80i1OFnxEfG2BdAZkj+CpK8ZT5urHF7V2m2BGNgHqpijAwJCEoNbAUVwb74kMYW+TuSyjFUMfcPV/7Ticr5ddPJ7iW+A3rH+OxaWsZvcBqclxxI1wZvxdM9pJpTkm2nBnvFK0u++R4Y4TyXjD8GdxouM1bUkDKHMd6ycZS3pLG9ZKwJ1SnSEqm6m5INcsKncvUH71Hb5iNqDEVO1mD5RUu5m36uoMcZtLbQyELADJ8iY+yE/v1l/x77vDuTG4AvzPaiPwtWnkUeTCqclBspjUeADgm8UKSlnCg5ucCe3CoVG0i/8LhshOFwmySZNLG38WsQq7VM4DROdlbPfZQpzVIuvY952agq7PHeyqIHCyS5H7a7mknIshRSCNTuiv+ihTPEDZKgaZku8QjABwkuLcND4l5HHbFGjBlS+MNGS6BnW71IY1pkGJFVlqRD0DjWFV3EgKhBqoHAyu9G4GaTBFrjS0MgeN2wIUUGrUydId0zfjuuZNLC8teGbSKg5HAyzxclaY07YqkrjQYrLW5zKT3dj43NoLm/z1rK4o3SPgu5d77L8eKVjb0MXL2CEyHgUofCrcozHAggaZDnskL7/+iNjHiikUGzr3oK96b75o/eyxnkVxnF48uNyUyvKJz7O6iZhnNGGuMchwMIH6tp91s3g6x71fU9/7m7ReAbwZ6pyF2+6CmN9xaLImKYRP5gEvvkNrhtxCzUTHEcbKNt39SMEfYQyyqt7QMckkzyevgoVyb68Qx1nxJwQDUxMxdS+yz5Ctll/KZz8ZX4qX8tvqzrW+uxsRBmMSkdYFw==",4,1);x=m("MEEwDQYJYIZIAWUDBAICBQAEMA");C=m("MFEwDQYJYIZIAWUDBAIDBQAEQA");h=m("MC0wDQYJYIZIAWUDBAIFBQAEHA");p=m("MDEwDQYJYIZIAWUDBAIGBQAEIA");return{sha384:function(){return ke("SHA-384",x,l,g,128,t,384)},sha512:function(){return ke("SHA-512",C,f,g,128,t,512)},sha512_224:function(){return ke("SHA-512.224",h,f,g,128,t,224)},sha512_256:function(){return ke("SHA-512.256",p,f,g,128,t,256)}}})();if(typeof q!=="undefined"){Nr.instances={};Nr.getInstance384=function(r){return Nr.instances[r]||(Nr.instances[r]=Nr.sha384())};Nr.getInstance512=function(r){return Nr.instances[r]||(Nr.instances[r]=Nr.sha512())};Nr.deleteInstance=function(r){Nr.instances[r]=null;delete Nr.instances[r]};Nr.hash384=function(r){if(r.operationSubType==="process"){Nr.sha384.process(r.buffer);return}if(r.operationSubType==="finish"){return Nr.sha384.finish()}return Nr.sha384().computeHash(r.buffer)};Nr.hash512=function(r){if(r.operationSubType==="process"){Nr.sha512.process(r.buffer);return}if(r.operationSubType==="finish"){return Nr.sha512.finish()}return Nr.sha512().computeHash(r.buffer)};q.register("digest","SHA-384",Nr.hash384);q.register("digest","SHA-512",Nr.hash512)}Hr["SHA-384"]=Nr.sha384;Hr["SHA-512"]=Nr.sha512;var _r=function(r,e){var t={"384":128,"512":128}[e.name.replace(/SHA-/,"")]||64;var l;var f;var g=v();var x;var C;var h;function p(s,d){var y=new Array(s);for(var D=0;D<s.length;D++){y[D]=s[D]^d[D]}return y}function m(s,d){var y=s.slice();for(var D=s.length;D<d;D++){y.push(0)}return y}function v(){if(r.length===t){return r}if(r.length>t){return m(e.computeHash(r),t)}return m(r,t)}function c(s){if(!h){h=C.concat(s);e.process(h)}else{e.process(s)}return}function n(){var s=e.finish();var d=x.concat(s);return e.computeHash(d)}function o(){r=null;e=null;g=null}l=new Array(t);f=new Array(t);for(var E=0;E<t;E++){l[E]=54;f[E]=92}C=p(g,l);x=p(g,f);return{computeHmac:function(s,d,y){c(s);var D=n();o();return D},process:function(s,d,y){c(s);return null},finish:function(s,d){var y=n();o();return y}}};if(typeof q!=="undefined"){var ae={};_r.signHmac=function(r){var e=r.keyHandle.algorithm.hash.name.toUpperCase(),t=Hr[e](),l,f=r.workerid;if(!ae[f]){ae[f]=_r(r.keyData,t)}if(r.operationSubType==="process"){ae[f].process(r.buffer);return null}if(r.operationSubType==="finish"){l=ae[f].finish();ae[f]=null;return l}l=ae[f].computeHmac(r.buffer);ae[f]=null;return l};_r.verifyHmac=function(r){var e=r.keyHandle.algorithm.hash.name.toUpperCase(),t=Hr[e](),l,f=r.workerid;if(!ae[f]){ae[f]=_r(r.keyData,t)}if(r.operationSubType==="process"){ae[f].process(r.buffer);return null}if(r.operationSubType==="finish"){l=ae[f].finish();l=V.arraysEqual(l,r.signature);ae[f]=null;return l}l=ae[f].computeHmac(r.buffer);l=V.arraysEqual(l,r.signature);ae[f]=null;return l};_r.generateKey=function(r){var e={"SHA-1":512,"SHA-224":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024};var t=r.algorithm.length||e[r.algorithm.hash.name.toUpperCase()];var l=Yr.getBytes(Math.ceil(t/8));var f=l.length*8-t;if(f>0){l[l.length-1]&=255<<f&255}return{type:"keyGeneration",keyData:l,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"secret"}}};_r.importKey=function(r){var e,t=r.keyData.length*8;if(r.format==="jwk"){e=te.jwkToKey(r.keyData,r.algorithm,["k"]);e.alg=e.alg.replace("HS","SHA-")}else if(r.format==="raw"){e={k:V.toArray(r.keyData)}}else{throw new Error("unsupported import format")}return{type:"keyImport",keyData:e.k,keyHandle:{algorithm:{name:"HMAC",hash:{name:r.algorithm.hash.name}},extractable:r.extractable||e.extractable,usages:r.usages,type:"secret"}}};_r.exportKey=function(r){if(r.format==="jwk"){return{type:"keyExport",keyHandle:te.keyToJwk(r.keyHandle,r.keyData)}}if(r.format==="raw"){return{type:"keyExport",keyHandle:r.keyData}}throw new Error("unsupported export format")};q.register("importKey","HMAC",_r.importKey);q.register("exportKey","HMAC",_r.exportKey);q.register("generateKey","HMAC",_r.generateKey);q.register("sign","HMAC",_r.signHmac);q.register("verify","HMAC",_r.verifyHmac)}var pe=(function(){var r,e,t,l,f,g,x,C,h,p;return{aes:function(m){if(!r){r=V.unpackData("AAIEBggKDA4QEhQWGBocHiAiJCYoKiwuMDI0Njg6PD5AQkRGSEpMTlBSVFZYWlxeYGJkZmhqbG5wcnR2eHp8foCChIaIioyOkJKUlpianJ6goqSmqKqsrrCytLa4ury+wMLExsjKzM7Q0tTW2Nrc3uDi5Obo6uzu8PL09vj6/P4bGR8dExEXFQsJDw0DAQcFOzk/PTMxNzUrKS8tIyEnJVtZX11TUVdVS0lPTUNBR0V7eX99c3F3dWtpb21jYWdlm5mfnZORl5WLiY+Ng4GHhbu5v72zsbe1q6mvraOhp6Xb2d/d09HX1cvJz83DwcfF+/n//fPx9/Xr6e/t4+Hn5QADBgUMDwoJGBseHRQXEhEwMzY1PD86OSgrLi0kJyIhYGNmZWxvaml4e359dHdycVBTVlVcX1pZSEtOTURHQkHAw8bFzM/Kydjb3t3U19LR8PP29fz/+vno6+7t5Ofi4aCjpqWsr6qpuLu+vbS3srGQk5aVnJ+amYiLjo2Eh4KBm5idnpeUkZKDgIWGj4yJiquora6npKGis7C1tr+8ubr7+P3+9/Tx8uPg5ebv7Onqy8jNzsfEwcLT0NXW39zZ2ltYXV5XVFFSQ0BFRk9MSUpraG1uZ2RhYnNwdXZ/fHl6Ozg9Pjc0MTIjICUmLywpKgsIDQ4HBAECExAVFh8cGRoADhwSODYkKnB+bGJIRlRa4O788tjWxMqQnoyCqKa0utvVx8nj7f/xq6W3uZOdj4E7NScpAw0fEUtFV1lzfW9hraOxv5WbiYfd08HP5ev5901DUV91e2lnPTMhLwULGRd2eGpkTkBSXAYIGhQ+MCIslpiKhK6gsrzm6Pr03tDCzEFPXVN5d2VrMT8tIwkHFRuhr72zmZeFi9HfzcPp5/X7mpSGiKKsvrDq5Pb40tzOwHp0ZmhCTF5QCgQWGDI8LiDs4vD+1NrIxpySgI6kqri2DAIQHjQ6KCZ8cmBuREpYVjc5KyUPARMdR0lbVX9xY23X2cvF7+Hz/aepu7WfkYONAA0aFzQ5LiNoZXJ/XFFGS9Ddysfk6f7zuLWir4yBlpu7tqGsj4KVmNPeycTn6v3wa2ZxfF9SRUgDDhkUNzotIG1gd3pZVENOBQgfEjE8Kya9sKeqiYSTntXYz8Lh7Pv21tvMweLv+PW+s6SpioeQnQYLHBEyPyglbmN0eVpXQE3a18DN7uP0+bK/qKWGi5yRCgcQHT4zJClib3h1VltMQWFse3ZVWE9CCQQTHj0wJyqxvKumhYifktnUw87t4Pf6t7qtoIOOmZTf0sXI6+bx/GdqfXBTXklEDwIVGDs2ISwMARYbODUiL2RpfnNQXUpH3NHGy+jl8v+0ua6jgI2alwALFh0sJzoxWFNORXR/Ymmwu6atnJeKgejj/vXEz9LZe3BtZldcQUojKDU+DwQZEsvA3dbn7PH6k5iFjr+0qaL2/eDr2tHMx66luLOCiZSfRk1QW2phfHceFQgDMjkkL42Gm5Chqre81d7DyPny7+Q9NisgERoHDGVuc3hJQl9U9/zh6tvQzcavpLmyg4iVnkdMUVprYH12HxQJAjM4JS6Mh5qRoKu2vdTfwsn48+7lPDcqIRAbBg1kb3J5SENeVQEKFxwtJjswWVJPRHV+Y2ixuqesnZaLgOni//TFztPYenFsZ1ZdQEsiKTQ/DgUYE8rB3Nfm7fD7kpmEj761qKMACRIbJC02P0hBWlNsZX53kJmCi7S9pq/Y0crD/PXu5zsyKSAfFg0Ec3phaFdeRUyrormwj4adlOPq8fjHztXcdn9kbVJbQEk+NywlGhMIAebv9P3Cy9DZrqe8tYqDmJFNRF9WaWB7cgUMFx4hKDM63dTPxvnw6+KVnIeOsbijquzl/vfIwdrTpK22v4CJkpt8dW5nWFFKQzQ9Ji8QGQIL197FzPP64eiflo2Eu7KpoEdOVVxjanF4DwYdFCsiOTCak4iBvrespdLbwMn2/+TtCgMYES4nPDVCS1BZZm90faGos7qFjJee6eD78s3E39YxOCMqFRwHDnlwa2JdVE9GY3x3e/Jrb8UwAWcr/terdsqCyX36WUfwrdSir5ykcsC3/ZMmNj/3zDSl5fFx2DEVBMcjwxiWBZoHEoDi6yeydQmDLBobblqgUjvWsynjL4RT0QDtIPyxW2rLvjlKTFjP0O+q+0NNM4VF+QJ/UDyfqFGjQI+SnTj1vLbaIRD/89LNDBPsX5dEF8Snfj1kXRlzYIFP3CIqkIhG7rgU3l4L2+AyOgpJBiRcwtOsYpGV5HnnyDdtjdVOqWxW9Opleq4IunglLhymtMbo3XQfS72LinA+tWZIA/YOYTVXuYbBHZ7h+JgRadmOlJseh+nOVSjfjKGJDb/mQmhBmS0PsFS7FlIJatUwNqU4v0CjnoHz1/t84zmCmy//hzSOQ0TE3unLVHuUMqbCIz3uTJULQvrDTgguoWYo2SSydluiSW2L0SVy+PZkhmiYFtSkXMxdZbaSbHBIUP3tudpeFUZXp42dhJDYqwCMvNMK9+RYBbizRQbQLB6Pyj8PAsGvvQMBE4prOpERQU9n3OqX8s/O8LTmc5asdCLnrTWF4vk36Bx1325H8RpxHSnFiW+3Yg6qGL4b/FY+S8bSeSCa28D+eM1a9B/dqDOIB8cxsRIQWSeA7F9gUX+pGbVKDS3lep+TyZzvoOA7Ta4q9bDI67s8g1OZYRcrBH66d9Ym4WkUY1UhDH2NAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuN",256,false);e=r[0];t=r[1];l=r[2];f=r[3];g=r[4];x=r[5];C=r[6];h=r[7];p=r[8]}var v=128,c,n,o=4,E,s;c=m.length*8;switch(c){case 128:case 192:case 256:break;default:throw new Error("Unsupported keyLength")}n=c/32;E=n+6;var d=function(a){var T=a[1];a[1]=a[5];a[5]=a[9];a[9]=a[13];a[13]=T;T=a[2];a[2]=a[10];a[10]=T;T=a[6];a[6]=a[14];a[14]=T;T=a[15];a[15]=a[11];a[11]=a[7];a[7]=a[3];a[3]=T};var y=function(a){var T=a[13];a[13]=a[9];a[9]=a[5];a[5]=a[1];a[1]=T;T=a[10];a[10]=a[2];a[2]=T;T=a[14];a[14]=a[6];a[6]=T;T=a[3];a[3]=a[7];a[7]=a[11];a[11]=a[15];a[15]=T};var D=function(a){var T=a[0],K=a[1],U=a[2],Y=a[3],er=a[4],nr=a[5],W=a[6],tr=a[7],kr=a[8],br=a[9],ir=a[10],Z=a[11],_=a[12],ar=a[13],Br=a[14],Rr=a[15];a[0]=e[T]^t[K]^U^Y;a[1]=T^e[K]^t[U]^Y;a[2]=T^K^e[U]^t[Y];a[3]=t[T]^K^U^e[Y];a[4]=e[er]^t[nr]^W^tr;a[5]=er^e[nr]^t[W]^tr;a[6]=er^nr^e[W]^t[tr];a[7]=t[er]^nr^W^e[tr];a[8]=e[kr]^t[br]^ir^Z;a[9]=kr^e[br]^t[ir]^Z;a[10]=kr^br^e[ir]^t[Z];a[11]=t[kr]^br^ir^e[Z];a[12]=e[_]^t[ar]^Br^Rr;a[13]=_^e[ar]^t[Br]^Rr;a[14]=_^ar^e[Br]^t[Rr];a[15]=t[_]^ar^Br^e[Rr]};var b=function(a){var T=a[0],K=a[1],U=a[2],Y=a[3],er=a[4],nr=a[5],W=a[6],tr=a[7],kr=a[8],br=a[9],ir=a[10],Z=a[11],_=a[12],ar=a[13],Br=a[14],Rr=a[15];a[0]=l[T]^g[K]^f[U]^x[Y];a[1]=x[T]^l[K]^g[U]^f[Y];a[2]=f[T]^x[K]^l[U]^g[Y];a[3]=g[T]^f[K]^x[U]^l[Y];a[4]=l[er]^g[nr]^f[W]^x[tr];a[5]=x[er]^l[nr]^g[W]^f[tr];a[6]=f[er]^x[nr]^l[W]^g[tr];a[7]=g[er]^f[nr]^x[W]^l[tr];a[8]=l[kr]^g[br]^f[ir]^x[Z];a[9]=x[kr]^l[br]^g[ir]^f[Z];a[10]=f[kr]^x[br]^l[ir]^g[Z];a[11]=g[kr]^f[br]^x[ir]^l[Z];a[12]=l[_]^g[ar]^f[Br]^x[Rr];a[13]=x[_]^l[ar]^g[Br]^f[Rr];a[14]=f[_]^x[ar]^l[Br]^g[Rr];a[15]=g[_]^f[ar]^x[Br]^l[Rr]};var H=function(a,T){return[a[0]^T[0],a[1]^T[1],a[2]^T[2],a[3]^T[3]]};var Q=function(a,T,K){for(var U=0;U<a.length;U+=1){a[U]^=T[U+K]}};var J=function(a){var T=a[0];a[0]=a[1];a[1]=a[2];a[2]=a[3];a[3]=T};var P=function(a){for(var T=0;T<a.length;T+=1){a[T]=C[a[T]]}};var w=function(a){for(var T=0;T<a.length;T+=1){a[T]=h[a[T]]}};var L=function(a,T){return[a[4*T],a[4*T+1],a[4*T+2],a[4*T+3]]};var u=function(a,T,K,U){a[4*K]=T[4*U];a[4*K+1]=T[4*U+1];a[4*K+2]=T[4*U+2];a[4*K+3]=T[4*U+3]};var N=function(a){var T,K=[],U=0;while(U<4*n){K.push(a[U++])}U=n;while(U<o*(E+1)){T=L(K,U-1);if(U%n===0){var Y=U/n;var er=[p[Y],0,0,0];J(T);P(T);T=H(T,er)}else if(n>6&&U%n===4){P(T)}var nr=H(L(K,U-n),T);u(K,nr,U,0);U+=1}return K};s=N(m);return{encrypt:function(a){var T=a,K;Q(T,s,0);for(K=1;K<=E-1;K+=1){P(T);d(T);D(T);Q(T,s,4*K*o)}P(T);d(T);Q(T,s,4*E*o);return T},decrypt:function(a){var T=a,K;Q(T,s,4*E*o);for(K=E-1;K>=1;K-=1){y(T);w(T);Q(T,s,4*K*o);b(T)}y(T);w(T);Q(T,s,0);return T},clear:function(){},keyLength:c,blockSize:v}}}})();var Be=Be||{};Be.pkcsv7=function(r){function e(l){var f=l.length-1>=0?l.length-1:0;var g=l[f];var x=g.length;var C=x===r;if(C){var h=[];var p;for(p=0;p<r;p+=1){h.push(r)}l.push(h)}else{var m=r-x&255;while(g.length!==r){g.push(m)}}}function t(l){var f=true;if(l.length%r!==0){f=false}var g=l.slice(-r);var x=g[g.length-1];for(var C=0;C<r;C++){var h=r-C<=x;var p=g[C]===x;f=(h?p:true)&&f}var m=f?x:0;l.length-=m;return f}return{pad:e,unpad:t}};var fe=function(r){var e=r.blockSize/8;var t=Be.pkcsv7(e);var l=function(v){var c=[],n,o;for(n=0;n<v.length;n+=1){var E=v[n];for(o=0;o<E.length;o+=1){c.push(E[o])}}return c};function f(v){var c=[];h=h.concat(v);var n=Math.floor(h.length/e);for(var o=0;o<n;o++){c.push(h.slice(o*e,(o+1)*e))}h=h.slice(n*e);return c}function g(v){var c=[],n;for(var o=0;o<v.length;o++){n=V.xorVectors(m,v[o]);c.push(r.encrypt(n));m=c[o]}return c}function x(v){var c=[],n,o;for(var E=0;E<v.length;E+=1){n=v[E].slice(0,v[E].length);o=r.decrypt(n);c.push(V.xorVectors(m,o));m=v[E]}return c}function C(){h=[];p=[];m=null}var h=[],p=[],m;return{init:function(v){if(v.length!==e){throw new Error("Invalid iv size")}m=v.slice()},encrypt:function(v){var c=g(f(v));p=p.concat(l(c));return this.finishEncrypt()},processEncrypt:function(v){var c=l(g(f(v)));return c},finishEncrypt:function(){var v=h.length===1?[[h[0]]]:[h];t.pad(v);var c=p.concat(l(g(v)));C();return c},decrypt:function(v){this.processDecrypt(v);return this.finishDecrypt()},processDecrypt:function(v){var c=x(f(v));p=p.concat(l(c));return},finishDecrypt:function(){var v=p;var c=t.unpad(v);C();return v}}};if(typeof q!=="undefined"){var Jr={};fe.workerEncrypt=function(r){var e,t=r.workerid;if(!Jr[t]){Jr[t]=fe(pe.aes(r.keyData));Jr[t].init(r.algorithm.iv)}if(r.operationSubType==="process"){return Jr[t].processEncrypt(r.buffer)}if(r.operationSubType==="finish"){e=Jr[t].finishEncrypt();Jr[t]=null;return e}e=Jr[t].encrypt(r.buffer);Jr[t]=null;return e};fe.workerDecrypt=function(r){var e,t=r.workerid;if(!Jr[t]){Jr[t]=fe(pe.aes(r.keyData));Jr[t].init(r.algorithm.iv)}if(r.operationSubType==="process"){Jr[t].processDecrypt(r.buffer);return}if(r.operationSubType==="finish"){e=Jr[t].finishDecrypt();Jr[t]=null;return e}e=Jr[t].decrypt(r.buffer);Jr[t]=null;return e};fe.generateKey=function(r){if(r.algorithm.length!==128&&r.algorithm.length!==192&&r.algorithm.length!==256){throw new Error("invalid key length (should be 128, 192, or 256 bits)")}return{type:"keyGeneration",keyData:Yr.getBytes(Math.floor(r.algorithm.length/8)),keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"secret"}}};fe.importKey=function(r){var e;var t=r.keyData.length*8;if(r.format==="jwk"){e=te.jwkToKey(r.keyData,r.algorithm,["k"])}else if(r.format==="raw"){if(t!==128&&t!==192&&t!==256){throw new Error("invalid key length (should be 128, 192, or 256 bits)")}e={k:V.toArray(r.keyData)}}else{throw new Error("unsupported import format")}r.algorithm.length=e.k.length*8;return{keyData:e.k,keyHandle:{algorithm:r.algorithm,extractable:r.extractable||e.extractable,usages:r.usages,type:"secret"},type:"keyImport"}};fe.exportKey=function(r){if(r.format==="jwk"){return{type:"keyExport",keyHandle:te.keyToJwk(r.keyHandle,r.keyData)}}if(r.format==="raw"){return{type:"keyExport",keyHandle:r.keyData}}throw new Error("unsupported export format")};q.register("importKey","AES-CBC",fe.importKey);q.register("exportKey","AES-CBC",fe.exportKey);q.register("generateKey","AES-CBC",fe.generateKey);q.register("encrypt","AES-CBC",fe.workerEncrypt);q.register("decrypt","AES-CBC",fe.workerDecrypt)}var se=function(r){var e=V;var t=[],l,f,g,x,C,h=r.encrypt(e.getVector(16)),p=e.getVector(16),m=[],v=[],c,n=0;function o(K,U){var Y=Math.floor(U.length/16),er;for(var nr=0;nr<Y;nr++){er=U.slice(nr*16,nr*16+16);p=s(e.xorVectors(p,er),K)}m=U.slice(Y*16);return p}function E(){var K=16*Math.ceil(n/16)-n;var U=H(f.length*8),Y=H(n*8);var er=m.concat(e.getVector(K)).concat(U).concat(Y);return o(h,er)}function s(K,U){var Y=e.getVector(16),er=U.slice(0),nr,W,tr;for(tr=0;tr<128;tr++){nr=-y(K,tr)&255;for(W=0;W<16;W++){Y[W]=Y[W]^er[W]&nr}nr=-(er[15]&1)&255;d(er);er[0]^=225&nr}return Y}function d(K){for(var U=K.length-1;U>0;U--){K[U]=(K[U-1]&1)<<7|K[U]>>>1}K[0]=K[0]>>>1;return K}function y(K,U){var Y=Math.floor(U/8);return K[Y]>>7-U%8&1}function D(K){var U=256;for(var Y=1;Y<=4;Y++){U=(U>>>8)+K[K.length-Y];K[K.length-Y]=U&255}return K}function b(K,U){var Y=Math.ceil(U.length/16),er,nr=[];if(c!==K){c=K.slice()}for(var W=0;W<Y;W++){er=U.slice(W*16,W*16+16);var tr=r.encrypt(c.slice());nr=nr.concat(e.xorVectors(er,tr));c=D(c)}return nr}function H(K){return[0,0,0,0,K>>>24&255,K>>>16&255,K>>>8&255,K&255]}function Q(K){var U=16*Math.ceil(f.length/16)-f.length;return K.concat(e.getVector(U))}function J(){n=0;t=[];v=[];p=e.getVector(16);m=[];c=l=f=null}function P(K,U,Y){f=U||[];g=isNaN(Y)?128:Y;if(g%8!==0){throw V.error("DataError","tagLength must be a multiple of 8")}l=K;if(l.length===12){x=l.concat([0,0,0,1])}else{var er=16*Math.ceil(l.length/16)-l.length;x=o(h,l.concat(e.getVector(er+8)).concat(H(l.length*8)));p=e.getVector(16)}C=D(x.slice());o(h,Q(f))}function w(K){n=K.length;var U=b(C,K);o(h,U);var Y=E();var er=b(x,Y).slice(0,g/8);J();return U.slice().concat(er)}function L(K,U){n=K.length;var Y=b(C,K);o(h,K);var er=E();var nr=b(x,er).slice(0,g/8);J();if(e.arraysEqual(nr,U)){return Y}else{return null}}function u(K){t=t.concat(K);var U=t.slice(0,Math.floor(t.length/16)*16);n+=U.length;t=t.slice(U.length);var Y=b(c||C,U);v=v.concat(Y);o(h,Y)}function N(K){t=t.concat(K);var U=t.slice(0,Math.floor((t.length-g/8)/16)*16);n+=U.length;t=t.slice(U.length);var Y=b(c||C,U);v=v.concat(Y);o(h,U)}function a(){var K=b(c,t);v=v.concat(K);n+=t.length;var U=E();var Y=b(x,U).slice(0,g/8);var er=v.slice().concat(Y);J();return er}function T(){var K=Math.floor(g/8);var U=t.slice(-K);t=t.slice(0,t.length-K);var Y=b(c,t);v=v.concat(Y);n+=t.length;var er=E();var nr=b(x,er).slice(0,g/8);var W=v.slice();J();if(e.arraysEqual(nr,U)){return W}else{return null}}return{init:P,encrypt:w,decrypt:L,processEncrypt:u,processDecrypt:N,finishEncrypt:a,finishDecrypt:T}};if(typeof q!=="undefined"){var Zr={};se.encrypt=function(r){var e,t=r.workerid;if(!Zr[t]){Zr[t]=se(pe.aes(r.keyData));Zr[t].init(r.algorithm.iv,r.algorithm.additionalData,r.algorithm.tagLength)}if(r.operationSubType==="process"){Zr[t].processEncrypt(r.buffer);return}if(r.operationSubType==="finish"){e=Zr[t].finishEncrypt();Zr[t]=null;return e}e=Zr[t].encrypt(r.buffer);Zr[t]=null;return e};se.decrypt=function(r){var e,t=r.workerid;if(!Zr[t]){Zr[t]=se(pe.aes(r.keyData));Zr[t].init(r.algorithm.iv,r.algorithm.additionalData,r.algorithm.tagLength)}if(r.operationSubType==="process"){Zr[t].processDecrypt(r.buffer);return}if(r.operationSubType==="finish"){e=Zr[t].finishDecrypt();Zr[t]=null;if(e===null){throw V.error("OperationError","")}return e}var l=r.algorithm.tagLength?Math.floor(r.algorithm.tagLength/8):16;var f=r.buffer.slice(0,r.buffer.length-l);var g=r.buffer.slice(-l);e=Zr[t].decrypt(f,g);Zr[t]=null;if(e===null){throw V.error("OperationError","")}return e};se.generateKey=function(r){if(r.algorithm.length!==128&&r.algorithm.length!==192&&r.algorithm.length!==256){throw new Error("invalid key length (should be 128, 192, or 256 bits)")}return{type:"keyGeneration",keyData:Yr.getBytes(Math.floor(r.algorithm.length/8)),keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"secret"}}};se.importKey=function(r){var e,t=r.keyData.length*8;if(r.format==="jwk"){e=te.jwkToKey(r.keyData,r.algorithm,["k"])}else if(r.format==="raw"){if(t!==128&&t!==192&&t!==256){throw new Error("invalid key length (should be 128, 192, or 256 bits)")}e={k:V.toArray(r.keyData)}}else{throw new Error("unsupported import format")}return{type:"keyImport",keyData:e.k,keyHandle:{algorithm:r.algorithm,extractable:r.extractable||e.extractable,usages:r.usages,type:"secret"}}};se.exportKey=function(r){if(r.format==="jwk"){return{type:"keyExport",keyHandle:te.keyToJwk(r.keyHandle,r.keyData)}}if(r.format==="raw"){return{type:"keyExport",keyHandle:r.keyData}}throw new Error("unsupported export format")};q.register("importKey","AES-GCM",se.importKey);q.register("exportKey","AES-GCM",se.exportKey);q.register("generateKey","AES-GCM",se.generateKey);q.register("encrypt","AES-GCM",se.encrypt);q.register("decrypt","AES-GCM",se.decrypt)}var le=function(r){function e(l){var f=[[0]];for(var g=0;g<l.length;g+=8){f.push(l.slice(g,g+8))}var x=[166,166,166,166,166,166,166,166];var C=f.length-1;var h=[];for(var g=1;g<=C;g++){h[g]=f[g]}for(var p=0;p<=5;p++){for(var g=1;g<=C;g++){var m=C*p+g;var v=r.encrypt(x.concat(h[g]));h[g]=v.slice(8);x=v.slice(0,8);for(var c=7;m>0;c--,m>>>=8){x[c]^=m&255}}}var n=x;for(var g=1;g<=C;g++){n=n.concat(h[g])}return n}function t(l){var f=[];for(var g=0;g<l.length;g+=8){f.push(l.slice(g,g+8))}var x=f.length-1;var C=[];var h=[];var p=f[0];for(var g=1;g<=x;g++){C[g]=f[g]}for(var m=5;m>=0;m--){for(var g=x;g>=1;g--){var v=x*m+g;for(var c=7;v>0;c--,v>>>=8){p[c]^=v&255}var n=r.decrypt(p.concat(C[g]));p=n.slice(0,8);C[g]=n.slice(8)}}if(p.join(",")!=="166,166,166,166,166,166,166,166"){throw V.error("OperationError","")}for(var g=1;g<=x;g++){h=h.concat(C[g])}return h}return{encrypt:e,decrypt:t}};if(typeof q!=="undefined"){var Ee={};le.workerEncrypt=function(r){var e,t=r.workerid;if(r.buffer.length%8!==0){throw V.error("DataError","The AES-KW input data length is invalid: not a multiple of 8 bytes")}if(!Ee[t]){Ee[t]=le(pe.aes(r.keyData))}e=Ee[t].encrypt(r.buffer);Ee[t]=null;return e};le.workerDecrypt=function(r){var e,t=r.workerid;if(r.buffer.length%8!==0){throw V.error("DataError","The AES-KW input data length is invalid: not a multiple of 8 bytes")}if(!Ee[t]){Ee[t]=le(pe.aes(r.keyData))}e=Ee[t].decrypt(r.buffer);Ee[t]=null;return e};le.generateKey=function(r){if(r.algorithm.length!==128&&r.algorithm.length!==192&&r.algorithm.length!==256){throw V.error("OperationError","AES key length must be 128, 192, or 256 bits")}return{type:"keyGeneration",keyData:Yr.getBytes(Math.floor(r.algorithm.length/8)),keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"secret"}}};le.importKey=function(r){var e;var t=r.keyData.length*8;if(r.format==="jwk"){e=te.jwkToKey(r.keyData,r.algorithm,["k"])}else if(r.format==="raw"){if(t!==128&&t!==192&&t!==256){throw V.error("OperationError","AES key length must be 128, 192, or 256 bits")}e={k:V.toArray(r.keyData)}}else{throw new TypeError("Invalid keyFormat argument")}r.algorithm.length=e.k.length*8;return{keyData:e.k,keyHandle:{algorithm:r.algorithm,extractable:r.extractable||e.extractable,usages:r.usages,type:"secret"},type:"keyImport"}};le.exportKey=function(r){if(r.format==="jwk"){return{type:"keyExport",keyHandle:te.keyToJwk(r.keyHandle,r.keyData)}}if(r.format==="raw"){return{type:"keyExport",keyHandle:r.keyData}}throw new TypeError("Invalid keyFormat argument")};q.register("importKey","AES-KW",le.importKey);q.register("exportKey","AES-KW",le.exportKey);q.register("generateKey","AES-KW",le.generateKey);q.register("encrypt","AES-KW",le.workerEncrypt);q.register("decrypt","AES-KW",le.workerDecrypt)}function Se(){if(!(this instanceof Se)){throw new Error("create MsrcryptoPrng object with new keyword")}var r=false;var e;var t;var l;var f;var g=1;var x=Math.pow(2,48);h();function C(c){var n;for(n=c.length-1;n>=0;n-=1){c[n]+=1;if(c[n]>=256){c[n]=0}if(c[n]){break}}}function h(){e=V.getVector(32);t=V.getVector(16);l=32;f=48;g=1}function p(c,n){n=n||[0];if(n.length>f){throw new Error("Incorrect entropy or additionalEntropy length")}n=n.concat(V.getVector(f-n.length));c=c.concat(V.getVector((f-c.length%f)%f));for(var o=0;o<c.length;o+=f){var E=V.xorVectors(c.slice(o,o+f),n);m(E)}g=1}function m(c){var n=[];var o=new pe.aes(e);while(n.length<f){C(t);var E=t.slice(0,16);var s=o.encrypt(E);n=n.concat(s)}n=V.xorVectors(n,c);e=n.slice(0,l);t=n.slice(l)}function v(c,n){if(c>=65536){throw new Error("too much random requested")}if(g>x){throw new Error("Reseeding is required")}if(n&&n.length>0){while(n.length<f){n=n.concat(V.getVector(f-n.length))}m(n)}else{n=V.getVector(f)}var o=[];var E=new pe.aes(e);while(o.length<c){C(t);var s=t.slice(0,t.length);var d=E.encrypt(s);o=o.concat(d)}o=o.slice(0,c);m(n);g+=1;return o}return{reseed:p,getBytes:function(c,n){if(!r){throw new Error("can't get randomness before initialization")}return v(c,n)},getNonZeroBytes:function(c,n){if(!r){throw new Error("can't get randomness before initialization")}var o=[];var E;while(o.length<c){E=v(c,n);for(var s=0;s<E.length;s+=1){if(E[s]!==0){o.push(E[s])}}}return o.slice(0,c)},init:function(c,n){if(c.length<f){throw new Error("Initial entropy length too short")}h();p(c,n);r=true}}}var Yr=new Se;function Je(r){var e=48;var t=[];var l=128;var f=0;var g=new Se;var x=false;var C=false;var h=r;function p(){var n=["Cookie","RedirectUri","ETag","x-ms-client-antiforgery-id","x-ms-client-request-id","x-ms-client-session-id","SubscriptionPool"];var o,E=[];for(o=0;o<e;o+=1){E[o]=Math.floor(Math.random()*256)}var s=h.crypto||h.msCrypto;if(s&&typeof s.getRandomValues==="function"){if(r.Uint8Array){var d=new r.Uint8Array(e);s.getRandomValues(d);E=E.concat(Array.apply(null,d));C=true}}if(typeof XMLHttpRequest!=="undefined"){var y=new XMLHttpRequest;for(o=0;o<n.length;o+=1){try{var D=y.getResponseHeader(n[o]);if(D){var b=V.stringToBytes(D);E=E.concat(b)}}catch(H){}}}if(!C&&v){E=E.concat(t.splice(0,t.length));c.startCollectors()}x?g.reseed(E):g.init(E);x=true}function m(n){for(var o=0;o<n.length;++o){t.push(n[o])}if(t.length>=l){c.stopCollectors()}}var v=r&&r.addEventListener||typeof document!=="undefined"&&document.attachEvent;var c=(function(){return{startCollectors:function(){if(!this.collectorsRegistered){if(r.addEventListener){r.addEventListener("mousemove",this.MouseEventCallBack,true);r.addEventListener("load",this.LoadTimeCallBack,true)}else if(document.attachEvent){document.attachEvent("onmousemove",this.MouseEventCallBack);document.attachEvent("onload",this.LoadTimeCallBack)}else{throw new Error("Can't attach events for entropy collection")}this.collectorsRegistered=1}},stopCollectors:function(){if(this.collectorsRegistered){if(r.removeEventListener){r.removeEventListener("mousemove",this.MouseEventCallBack,1);r.removeEventListener("load",this.LoadTimeCallBack,1)}else if(r.detachEvent){r.detachEvent("onmousemove",this.MouseEventCallBack);r.detachEvent("onload",this.LoadTimeCallBack)}this.collectorsRegistered=0}},MouseEventCallBack:function(n){var o=new Date().valueOf();var E=n.x||n.clientX||n.offsetX||0;var s=n.y||n.clientY||n.offsetY||0;var d=[o&255,o>>8&255,o>>16&255,o>>24&255,E&255,E>>8&255,s&255,s>>8&255];m(d)},LoadTimeCallBack:function(){var n=new Date().valueOf();var o=[n&255,n>>8&255,n>>16&255,n>>24&255];m(o)}}})();return{init:function(){p();if(!C&&!f&&v){try{c.startCollectors()}catch(n){}}},reseed:function(n){g.reseed(n)},read:function(n){if(!x){throw new Error("Entropy pool is not initialized.")}var o=g.getBytes(n);p();return o}}}var Ne=(function(){var r=[];var e=[];var t=4096*4;function l(v){var c=new Array(v+1),n=[],o,E,s=Math.sqrt(v)|0;for(o=3;o<=s;o+=2){for(E=o*o;E<=v;E+=o*2){c[E]=0}}for(o=3;o<=v;o+=2){if(c[o]!==0){n.push(o)}}return n}function f(v){var c,n=e.length;for(c=0;c<n;c++){if((e[c]+v)%r[c]===0){return false}}return true}function g(v){var c,n,o,E,s,d,y=v.length-1,D=B.DIGIT_BASE,b=v[y];if(r.length===0){r=l(t)}d=r.length;e=new Array(d);for(c=0;c<d;c++){n=y;s=r[c];if(b<s){o=b;n--}else{o=0}while(n>=0){E=o*D+v[n--];o=E-(E/s|0)*s}e[c]=o}return}function x(v){var c=0,n=0,o=0,E;if(B.isZero(v)){return 0}for(c=0;v[c]===0;c++){}for(n=0,E=2;v[c]%E===0;E*=2,n++){}return c*B.DIGIT_BITS+n}function C(v){var c=0,n=0,o=0;if(B.isZero(v)){return 0}for(c=v.length-1;v[c]===0;c--){}for(n=B.DIGIT_BITS-1,o=1<<n;n>0;o=o>>>1,n--){if((v[c]&o)!==0){break}}return c*B.DIGIT_BITS+n}function h(v,c){var n=v;var o=[];B.subtract(n,[1],o);var E=x(o);var s=[];B.shiftRight(o,s,E);var d=C(n);var y;var D=B.MontgomeryMultiplier(n);for(var b=1;b<=c;b++){var H=false;do{y=m(d)}while(B.compareDigits(y,o)>=0);var Q=[];D.modExp(y,s,Q,true);if(B.compareDigits(Q,[1])===0||B.compareDigits(Q,o)===0){continue}for(var J=1;J<E;J++){D.montgomeryMultiply(Q,Q,Q);if(B.compareDigits(Q,o)===0){H=true;break}if(B.compareDigits(Q,[1])===0){return false}}if(H===false){return false}}return true}function p(v){var c=m(v),n=0,o,E=false,s=[];g(c);while(true){o=f(n);if(o){B.add(c,[n],s);if(h(s,6)===true){return s}}n+=2}}function m(v){var c=Math.ceil(v/8),n=Yr.getBytes(c),o;n[0]|=128;n[n.length-1]|=1;return B.bytesToDigits(n)}return{generatePrime:p}})();var Ze=function(r){var e=V,t=r.hasOwnProperty("n")&&r.hasOwnProperty("d"),l=r.hasOwnProperty("p")&&r.hasOwnProperty("q"),f=r.n.length;function g(p){var m=B.digitsToBytes(p);e.padFront(m,0,f);return m}function x(p,m,v){var c=B.bytesToDigits(m);var n=B.IntegerGroup(v);var o=n.createElementFromBytes(p);var E=n.modexp(o,c);return E.m_digits}function C(p){var m=x(p,r.d,r.n);return g(m)}function h(p){var m=B.bytesToDigits,v=r.p,c=r.q,n=r.dp,o=r.dq,E=r.qi,s=m(v),d=m(c),y=new Array(s.length+d.length),D=new Array(s.length+1),b=new Array(d.length+1),H=m(p),Q=B.MontgomeryMultiplier,J=new Q(r.ctxp?void 0:s,r.ctxp),P=new Q(r.ctxq?void 0:d,r.ctxq);J.reduce(H,y);J.modExp(y,m(n),D);P.reduce(H,y);P.modExp(y,m(o),b);var w=B.subtract(D,b,y);if(w!==0){B.subtract(b,D,y)}B.modMul(y,m(E),s,H);if(w!==0){B.subtract(s,H,H)}B.multiply(H,d,y);B.add(b,y,D);return g(D)}return{encrypt:function(p){var m=g(x(p,r.e,r.n,true));return m},decrypt:function(p){if(l){return h(p)}if(t){return C(p)}throw new Error("missing private key")}}};var be={mgf1:function(r,e,t){var l=[],f,g,x,C=t.hashLen/8;for(x=0;x<=Math.floor(e/C);x+=1){f=[x>>>24&255,x>>>16&255,x>>>8&255,x&255];g=t.computeHash(r.concat(f));l=l.concat(g)}return l.slice(0,e)},checkMessageVsMaxHash:function(r,e){if(r.length>(e.maxMessageSize||4294967295)){throw new Error("message too long")}return}};var ie=ie||{};ie.oaep=function(r,e){var t=V,l=Yr,f=r.n.length;if(e===null){throw new Error("must supply hashFunction")}function g(C,h){var p,m,v,c,n,o;var E,s,d,y;var D;if(C.length>f-2*(e.hashLen/8)-2){throw new Error("Message too long.")}if(h==null){h=[]}p=e.computeHash(h);m=f-C.length-2*p.length-2;v=t.getVector(m);n=p.concat(v,[1],C);o=l.getBytes(p.length);E=be.mgf1(o,f-p.length-1,e);s=t.xorVectors(n,E);d=be.mgf1(s,p.length,e);y=t.xorVectors(o,d);D=[0].concat(y).concat(s);C=D.slice();return C}function x(C,h){var p,m,v,c;var n,o,E;var s,d=0;var y=C[0]===0;if(!h){h=[]}p=e.computeHash(h);m=C.slice(1,p.length+1);v=C.slice(p.length+1);c=be.mgf1(v,p.length,e);n=t.xorVectors(m,c);o=be.mgf1(n,f-p.length-1,e);E=t.xorVectors(v,o);s=E.slice(0,p.length);y=y&&t.arraysEqual(p,s);E=E.slice(p.length);while(!E[d++]){}return{valid:y,data:E.slice(d)}}return{pad:function(C,h){return g(C,h)},unpad:function(C,h){return x(C,h)}}};var ie=ie||{};ie.pkcs1Encrypt=function(r){var e=Yr,t=r.n.length;function l(x){var C;if(x.length>t-11){throw new Error("message too long")}C=e.getNonZeroBytes(t-x.length-3);return[0,2].concat(C,[0],x)}function f(x){var C=x[0]===0&&x[1]===2;for(var h=2;h<10;h++){C=C&&!!x[h]}return C}function g(x){var C,h=f(x),p=0;for(C=1;C<x.length;C+=1){p=p||+!x[C]&&C+1}p=-h&&p;return{data:x.slice(p),valid:h}}return{pad:function(x){return l(x)},unpad:function(x){return g(x)}}};ie.pkcs1Sign=function(r,e){var t=V,l=r.n.length;function f(g){var x,C,h;C=e.computeHash(g.slice());x=e.der.concat(C);h=x.length;if(l<h+11){throw new Error("intended encoded message length too short")}return[0,1].concat(t.getVector(l-h-3,255),[0],x)}return{sign:function(g){return f(g)},verify:function(g,x){var C=f(x);return t.arraysEqual(g,C)}}};var ie=ie||{};ie.pss=function(r,e){var t=V,l=Yr;function f(x,C,h){var p=B.bitLength(r.n),m=p-1,v=Math.ceil(m/8),c=e.computeHash(x);C=h?h.length:C==null?c.length:C;if(v<c.length+C+2){throw new Error("encoding error")}h=h||l.getBytes(C);var n=[0,0,0,0,0,0,0,0].concat(c,h);var o=e.computeHash(n);var E=t.getVector(v-h.length-o.length-2);var s=E.concat([1],h);var d=be.mgf1(o,v-o.length-1,e);var y=t.xorVectors(s,d);var D=0;for(var b=0;b<8-(8*v-m);b++){D+=1<<b}y[0]&=D;var H=y.concat(o,[188]);return H}function g(x,C,h){var p=B.bitLength(r.n);var m=p-1;var v=Math.ceil(m/8);var c=e.computeHash(C);var n=c.length;h=h==null?n:h;if(v<n+h+2){return false}var o=x.slice(0,v-n-1);var E=x.slice(o.length,o.length+n);var s=be.mgf1(E,v-n-1,e);var d=t.xorVectors(o,s);d[0]&=255>>>8-(8*v-m);for(var y=0;y<v-n-h-2;y++){if(d[y]!==0){return false}}if(d[v-n-h-2]!==1){return false}var D=d.slice(d.length-h);var b=[0,0,0,0,0,0,0,0].concat(c,D);var H=e.computeHash(b);return t.arraysEqual(H,E)}return{sign:function(x,C,h){return f(x,C,h)},verify:function(x,C,h){return g(x,C,h)}}};var mr=function(r,e,t){var l=Ze(r);if(!e){throw new Error("padding mode")}function f(){if(!t||!t.computeHash){throw new Error("missing hash function")}}var g=null,x=null;var C;switch(e){case"RSAES-PKCS1-V1_5":C=ie.pkcs1Encrypt(r);break;case"RSASSA-PKCS1-V1_5":f();C=ie.pkcs1Sign(r,t);break;case"RSA-OAEP":f();C=ie.oaep(r,t);break;case"RSA-PSS":f();C=ie.pss(r,t);break;case"raw":C={pad:function(p){return p},unpad:function(p){return p}};break;default:throw new Error("invalid mode")}if(C){g=C.pad||C.sign;x=C.unpad||C.verify}var h={encrypt:function(p,m){var v;var c;if(g!==null){v=g(p,m)}else{v=p.slice()}c=l.encrypt(v);return c},decrypt:function(p,m){var v=l.decrypt(p);if(x!==null){v=x(v,m);if(v.valid===false){throw V.error("OperationError","")}v=v.data}else{v=v.slice(0)}return v},signData:function(p,m,v){return l.decrypt(g(p,m,v))},verifySignature:function(p,m,v){var c=l.encrypt(p);return x(c,m,v)},generateKeyPair:function(p){var m=genRsaKeyFromRandom(p)},mode:e};return h};if(typeof q!=="undefined"){mr.sign=function(r){var e,t=r.keyHandle.algorithm.hash.name,l=Hr[t.toUpperCase()](),f=r.algorithm.saltLength,g=r.algorithm.salt;e=mr(r.keyData,r.algorithm.name,l);return e.signData(r.buffer,f,g)};mr.verify=function(r){var e=r.keyHandle.algorithm.hash.name,t=Hr[e.toUpperCase()](),l,f=r.algorithm.saltLength;l=mr(r.keyData,r.algorithm.name,t);return l.verifySignature(r.signature,r.buffer,f)};mr.workerEncrypt=function(r){var e,t,l,f;switch(r.algorithm.name){case"RSAES-PKCS1-V1_5":t=mr(r.keyData,r.algorithm.name);e=t.encrypt(r.buffer);break;case"RSA-OAEP":f=r.keyHandle.algorithm.hash.name;if(!f){throw new Error("unsupported hash algorithm")}l=Hr[f.toUpperCase()]();t=mr(r.keyData,r.algorithm.name,l);e=t.encrypt(r.buffer);break;default:throw new Error("unsupported algorithm")}return e};mr.workerDecrypt=function(r){var e,t,l;switch(r.algorithm.name){case"RSAES-PKCS1-V1_5":t=mr(r.keyData,r.algorithm.name);e=t.decrypt(r.buffer);break;case"RSA-OAEP":var f=r.keyHandle.algorithm.hash.name;if(!f){throw new Error("unsupported hash algorithm")}l=Hr[f.toUpperCase()]();t=mr(r.keyData,r.algorithm.name,l);e=t.decrypt(r.buffer);break;default:throw new Error("unsupported algorithm")}return e};mr.importKey=function(r){var e;if(r.format==="jwk"){e=te.jwkToKey(r.keyData,r.algorithm,["n","e","d","p","q","dp","dq","qi"]);if(e.d){e.ctxp=new B.MontgomeryMultiplier(B.bytesToDigits(e.p)).ctx;e.ctxq=new B.MontgomeryMultiplier(B.bytesToDigits(e.q)).ctx}}else if(r.format==="spki"){var t=Lr.parse(r.keyData);if(t==null){throw new Error("invalid key data.")}var l=t[1];var f=Lr.parse(l.data.slice(l.header+1),true);if(f==null){throw new Error("invalid key data.")}var g=f[0],x=f[1];if(g.type!=="INTEGER"||x.type!=="INTEGER"){throw new Error("invalid key data.")}g=g.data.slice(g.header);x=x.data.slice(x.header);if(g[0]===0&&g[1]&128){g=g.slice(1)}if(x[0]===0&&x[1]&128){x=x.slice(1)}e={n:g,e:x}}else if(r.format==="pkcs8"){var t=Lr.parse(r.keyData);if(t==null){throw new Error("invalid key data.")}var l=t[2];var f=Lr.parse(l.data.slice(l.header),true);if(f==null){throw new Error("invalid key data.")}var C=["n","e","d","p","q","dp","dq","qi"];e={};for(var h=1;h<f.length;h++){var p=f[h];p=p.data.slice(p.header);if(p[0]===0&&p[1]&128){p=p.slice(1)}e[C[h-1]]=p}}else{throw new Error("unsupported key import format.")}return{type:"keyImport",keyData:e,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:e.d||e.dq?"private":"public"}}};mr.exportKey=function(r){var e="1.2.840.113549.1.1.1";if(r.format==="jwk"){var t=te.keyToJwk(r.keyHandle,r.keyData);return{type:"keyExport",keyHandle:t}}if(r.format==="spki"){var l=Lr.encode({SEQUENCE:[{SEQUENCE:[{"OBJECT IDENTIFIER":e},{NULL:1}]},{"BIT STRING":{SEQUENCE:[{INTEGER:r.keyData.n},{INTEGER:r.keyData.e}]}}]});return{type:"keyExport",keyHandle:l}}if(r.format==="pkcs8"){var l=Lr.encode({SEQUENCE:[{INTEGER:0},{SEQUENCE:[{"OBJECT IDENTIFIER":e},{NULL:1}]},{"OCTET STRING":{SEQUENCE:[{INTEGER:0},{INTEGER:r.keyData.n},{INTEGER:r.keyData.e},{INTEGER:r.keyData.d},{INTEGER:r.keyData.p},{INTEGER:r.keyData.q},{INTEGER:r.keyData.dp},{INTEGER:r.keyData.dq},{INTEGER:r.keyData.qi}]}}]});return{type:"keyExport",keyHandle:l}}throw new Error(r.format+" not implemented")};mr.genRsaKeyFromRandom=function(r,e){var t=e?B.bytesToDigits(e):[65537];do{var l=Ne.generatePrime(r/2);var f=Ne.generatePrime(r/2);if(B.compareDigits(f,l)>0){var g=l;l=f;f=g}var x=[];B.multiply(l,f,x);var C=[];B.subtract(l,[1],C);var h=[];B.subtract(f,[1],h);var p=[];B.multiply(C,h,p);var m=[];B.gcd(t,p,m);var v=B.compareDigits(m,B.One)===0}while(!v);var c=[];B.modInv(t,p,c);var n=[];B.reduce(c,C,n);var o=[];B.reduce(c,h,o);var E=[];B.modInv(f,l,E);var s=B.digitsToBytes;return{privateKey:{n:s(x),e:s(t),d:s(c),p:s(l),q:s(f),dp:s(n),dq:s(o),qi:s(E)},publicKey:{n:s(x),e:s(t)}}};mr.generateKeyPair=function(r){if(typeof r.algorithm.modulusLength==="undefined"){throw new Error("missing modulusLength")}var e;var t=B.bytesToDigits;switch(r.algorithm.modulusLength){case 1024:case 2048:case 4096:e=mr.genRsaKeyFromRandom(r.algorithm.modulusLength,r.algorithm.publicExponent);break;default:throw new Error("invalid modulusLength")}var l=e.privateKey;l.ctxp=new B.MontgomeryMultiplier(t(l.p)).ctx;l.ctxq=new B.MontgomeryMultiplier(t(l.q)).ctx;var f=r.algorithm.name;var g=f.slice(f.indexOf("-")+1).toUpperCase();var x,C;if(f==="RSASSA-PKCS1-V1_5"||f==="RSA-PSS"){x=["verify"];C=["sign"]}else{x=["encrypt","wrapKey"];C=["decrypt","unwrapKey"]}if(r.usages){var h=r.usages;var p=[];var m=[];var v;for(v=0;v<x.length;v+=1){if(V.indexOf(h,x[v])>=0){p.push(x[v])}}for(v=0;v<C.length;v+=1){if(V.indexOf(h,C[v])>=0){m.push(C[v])}}x=p;C=m}return{type:"keyGeneration",keyPair:{publicKey:{keyData:e.publicKey,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:x,type:"public"}},privateKey:{keyData:e.privateKey,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:C,type:"private"}}}}};q.register("sign","RSASSA-PKCS1-V1_5",mr.sign);q.register("sign","RSA-PSS",mr.sign);q.register("verify","RSASSA-PKCS1-V1_5",mr.verify);q.register("verify","RSA-PSS",mr.verify);q.register("encrypt","RSAES-PKCS1-V1_5",mr.workerEncrypt);q.register("decrypt","RSAES-PKCS1-V1_5",mr.workerDecrypt);q.register("encrypt","RSA-OAEP",mr.workerEncrypt);q.register("decrypt","RSA-OAEP",mr.workerDecrypt);q.register("importKey","RSA-OAEP",mr.importKey);q.register("importKey","RSAES-PKCS1-V1_5",mr.importKey);q.register("importKey","RSASSA-PKCS1-V1_5",mr.importKey);q.register("importKey","RSA-PSS",mr.importKey);q.register("exportKey","RSA-OAEP",mr.exportKey);q.register("exportKey","RSAES-PKCS1-V1_5",mr.exportKey);q.register("exportKey","RSASSA-PKCS1-V1_5",mr.exportKey);q.register("exportKey","RSA-PSS",mr.exportKey);q.register("generateKey","RSA-OAEP",mr.generateKeyPair);q.register("generateKey","RSAES-PKCS1-V1_5",mr.generateKeyPair);q.register("generateKey","RSASSA-PKCS1-V1_5",mr.generateKeyPair);q.register("generateKey","RSA-PSS",mr.generateKeyPair)}var Me=(function(){function r(e){var t=e.algorithm.hash.name,l=Hr[t.toUpperCase()](),f=e.algorithm;var g=wr.toArray(f.algorithmId).concat(wr.toArray(f.partyUInfo),wr.toArray(f.partyVInfo),wr.toArray(f.publicInfo)||[],wr.toArray(f.privateInfo)||[]);var x=Math.ceil(e.length/l.hashLen),C=1,h=e.keyData.concat(g),p=[];for(var m=0;m<x;m++){var v=wr.int32ToBytes(C++).concat(h);var c=l.computeHash(v);p=p.concat(c)}return p.slice(0,e.length/8)}return{deriveBits:r}})();if(typeof q!=="undefined"){Me.importKey=function(r){var e;if(r.format==="raw"){e=V.toArray(r.keyData)}else{throw new Error("unsupported import format")}if(r.extractable!==false){throw new Error("only extractable=false is supported.")}return{type:"keyImport",keyData:e,keyHandle:{algorithm:{name:"CONCAT"},extractable:false,usages:r.usages,type:"secret"}}};q.register("deriveBits","CONCAT",Me.deriveBits);q.register("importKey","CONCAT",Me.importKey)}var Ie=(function(){function r(e){var t=e.algorithm,l=e.keyData,f=e.length,g=t.iterations,x=Array.apply(null,t.salt),C=Math.ceil(f/8),h,p,m=[];switch(t.hash.name.toUpperCase()){case"SHA-1":h=20;break;case"SHA-256":h=32;break;case"SHA-384":h=48;break;case"SHA-512":h=64;break;default:throw new Error("Unsupported hash algorithm")}p=Math.ceil(C/h);var v=_r.importKey({format:"raw",keyData:l,algorithm:{name:"HMAC",hash:t.hash}});var c={algorithm:t,keyHandle:v.keyHandle,keyData:v.keyData,workerid:0,buffer:null};function n(E,s,d){var y=[],D=E.concat([d>>>24&255,d>>>16&255,d>>>8&255,d&255]);for(var b=0;b<s;b++){c.buffer=D;D=_r.signHmac(c);for(var H=0;H<h;H++){y[H]=~~y[H]^D[H]}}return y}for(var o=1;o<=p;o++){m=m.concat(n(x,g,o))}m.length=C;return m}return{deriveBits:r}})();if(typeof q!=="undefined"){Ie.importKey=function(r){var e;if(r.format==="raw"){e=V.toArray(r.keyData)}else{throw new Error("unsupported import format")}if(r.extractable!==false){throw new Error("only extractable=false is supported.")}return{type:"keyImport",keyData:e,keyHandle:{algorithm:{name:"PBKDF2"},extractable:false,usages:r.usages,type:"secret"}}};q.register("deriveBits","PBKDF2",Ie.deriveBits);q.register("importKey","PBKDF2",Ie.importKey)}var Ke=(function(){function r(e){var t=e.algorithm,l=e.keyData,f=e.length,g=t.salt,x=Math.ceil(f/8),C,h=[],p=V.toArray(t.info),m=[],v,c;switch(t.hash.name.toUpperCase()){case"SHA-1":C=20;break;case"SHA-256":C=32;break;case"SHA-384":C=48;break;case"SHA-512":C=64;break;default:throw new Error("Unsupported hash algorithm.")}if(t.salt==null){throw new Error("HkdfParams: salt: Missing required property.")}if(t.info==null){throw new Error("HkdfParams: info: Missing required property.")}if(f%8!==0){throw new Error("The length provided for HKDF is not a multiple of 8 bits.")}if(x>255*C){throw new Error("The length provided for HKDF is too large.")}if(g.length===0){g=V.getVector(C)}c={workerid:0,keyHandle:{algorithm:t},keyData:g,buffer:l};c.keyData=_r.signHmac(c);for(v=0;v<Math.ceil(x/C);v++){c.buffer=m.concat(p).concat([1+v]);m=_r.signHmac(c);h=h.concat(m)}return h.slice(0,x)}return{deriveBits:r}})();if(typeof q!=="undefined"){Ke.importKey=function(r){var e;if(r.format==="raw"){e=V.toArray(r.keyData)}else{throw new Error("unsupported import format")}if(r.extractable!==false){throw new Error("only extractable=false is supported.")}return{type:"keyImport",keyData:e,keyHandle:{algorithm:{name:"HKDF"},extractable:false,usages:r.usages,type:"secret"}}};q.register("deriveBits","HKDF",Ke.deriveBits);q.register("importKey","HKDF",Ke.importKey)}var He=(function(){function r(e){var t=e.algorithm,l=e.keyData,f=e.length,g=t.label,x=t.context,C=Math.ceil(f/8),h,p=[],m,v;switch(t.hash.name.toUpperCase()){case"SHA-1":h=20;break;case"SHA-256":h=32;break;case"SHA-384":h=48;break;case"SHA-512":h=64;break;default:throw new Error("Unsupported hash algorithm.")}if(t.label==null){throw new Error("HkdfCtrParams: label: Missing required property.")}if(t.context==null){throw new Error("HkdfCtrParams: context: Missing required property.")}if(f%8!==0){throw new Error("The length provided for HKDF-CTR is not a multiple of 8 bits.")}if(C>255*h){throw new Error("The length provided for HKDF-CTR is too large.")}v={workerid:0,keyHandle:{algorithm:t},keyData:l,buffer:l};var c=g.concat([0],x,wr.int32ToBytes(f));for(m=1;m<=Math.ceil(C/h);m++){v.buffer=wr.int32ToBytes(m).concat(c);p=p.concat(_r.signHmac(v))}return p.slice(0,C)}return{deriveBits:r}})();if(typeof q!=="undefined"){He.importKey=function(r){var e;if(r.format==="raw"){e=V.toArray(r.keyData)}else{throw new Error("unsupported import format")}if(r.extractable!==false){throw new Error("only extractable=false is supported.")}return{type:"keyImport",keyData:e,keyHandle:{algorithm:{name:"HKDF-CTR"},extractable:false,usages:r.usages,type:"secret"}}};q.register("deriveBits","HKDF-CTR",He.deriveBits);q.register("importKey","HKDF-CTR",He.importKey)}var Fe=function(r){var e=B.bytesToDigits,t=B.digitsToBytes,l=r,f=new gr.EllipticCurveOperatorFp(r);function g(h){var p=[],m=Yr.getBytes(r.order.length*B.DIGIT_NUM_BYTES);B.reduce(B.bytesToDigits(m),l.order,p);var v=l.allocatePointStorage();f.scalarMultiply(p,l.generator,v);return{privateKey:{x:t(v.x),y:t(v.y),d:t(p)},publicKey:{x:t(v.x),y:t(v.y)}}}function x(h,p,m){var v=new gr.EllipticCurvePointFp(l,false,e(p.x),e(p.y),null,false);var c=l.allocatePointStorage();f.convertToJacobianForm(c);f.convertToMontgomeryForm(c);f.scalarMultiply(e(h.d),v,c);f.convertToAffineForm(c);f.convertToStandardForm(c);var n=B.digitsToBytes(c.x,true,p.x.length);if(m&&n.length*8<m){throw new Error("DataError")}n=m?n.slice(0,Math.ceil(m/8)):n;var o=m%8;var E=o===0?255:65280>>>o;n[n.length-1]=n[n.length-1]&E;return n}function C(h){if(!l.generator.isInMontgomeryForm){f.convertToMontgomeryForm(l.generator)}var p=l.allocatePointStorage();f.convertToJacobianForm(p);f.convertToMontgomeryForm(p);f.scalarMultiply(e(h),l.generator,p);return{x:t(p.x),y:t(p.y)}}return{generateKey:g,deriveBits:x,computePublicKey:C}};var Ce=null;if(typeof q!=="undefined"){Fe.deriveBits=function(r){var e=gr.createCurve(r.algorithm.namedCurve.toUpperCase());var t=r.keyData;var l=r.additionalKeyData;Ce=Fe(e);var f=Ce.deriveBits(t,l,r.length);return f};Fe.deriveKey=function(r){throw new Error("not supported");return secretBytes};Fe.generateKey=function(r){var e=gr.createCurve(r.algorithm.namedCurve.toUpperCase());Ce=Fe(e);var t=Ce.generateKey();var l=gr.curveElementLength(r.algorithm.namedCurve);var f=V.padFront;t.publicKey.x=f(t.publicKey.x,0,l);t.publicKey.y=f(t.publicKey.y,0,l);t.privateKey.x=f(t.privateKey.x,0,l);t.privateKey.y=f(t.privateKey.y,0,l);t.privateKey.d=f(t.privateKey.d,0,l);return{type:"keyPairGeneration",keyPair:{publicKey:{keyData:t.publicKey,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:[],type:"public"}},privateKey:{keyData:t.privateKey,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"private"}}}}};Fe.importKey=function(r){try{if(r.format==="raw"){var e=r.keyData;if(e[0]!==4){throw new Error("DataError")}var t=~~((e.length-1)/2);var l=r.algorithm.namedCurve.toUpperCase();var f=e.slice(1,t+1),g=e.slice(t+1);if(gr.validatePoint(l,f,g)===false){throw new Error("DataError")}return{type:"keyImport",keyData:{x:f,y:g},keyHandle:{algorithm:r.algorithm,extractable:r.extractable||false,usages:r.usages,type:"public"}}}if(r.format==="jwk"){var x=te.jwkToKey(r.keyData,r.algorithm,["x","y","d","crv"]);if(x.d&&(!x.x||!x.y)){var C=gr.createCurve(r.algorithm.namedCurve.toUpperCase());Ce=Fe(C);var h=Ce.computePublicKey(x.d);x.x=h.x;x.y=h.y}var p=gr.curveElementLength(r.algorithm.namedCurve);if(x.x){x.x=V.padFront(x.x,0,p)}if(x.y){x.y=V.padFront(x.y,0,p)}if(x.d){x.d=V.padFront(x.d,0,p)}if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw new Error("DataError")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable||x.extractable,usages:r.usages,type:x.d?"private":"public"}}}if(r.format==="spki"){var m={"P-256":32,"P-384":48,"P-521":66};var p=m[r.algorithm.namedCurve];var v=Lr.parse(r.keyData);if(v==null){throw new Error("invalid key data.")}var c=v[1];var n=c.data.slice(c.header+1);if(n==null||n.shift()!==4||n.length!==p*2){throw new Error("invalid key data.")}var f=n.slice(0,p),g=n.slice(p);if(!V.isBytes(f)||!V.isBytes(g)){throw new Error("invalid key data.")}var x={x:f,y:g};if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw new Error("DataError")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"public"}}}if(r.format==="pkcs8"){var m={"P-256":32,"P-384":48,"P-521":66};var p=m[r.algorithm.namedCurve];var v=Lr.parse(r.keyData);if(v==null){throw new Error("invalid key data.")}var o=v[2];var n=Lr.parse(o.data.slice(o.header));if(n==null){throw new Error("invalid key data.")}var E=n[1].data.slice(n[1].header);var c=Lr.parse(n[2][0].data);var n=c.data.slice(c.header+1);if(n==null||n.shift()!==4||n.length!==p*2){throw new Error("invalid key data.")}var f=n.slice(0,p),g=n.slice(p);if(!V.isBytes(f)||!V.isBytes(g)){throw new Error("invalid key data.")}var x={x:f,y:g,d:E};if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw new Error("DataError")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"private"}}}}catch(s){throw V.error("DataError","")}};Fe.exportKey=function(r){var e="1.2.840.10045.2.1";var t={"P-256":"1.2.840.10045.3.1.7 ","P-384":"1.3.132.0.34","P-521":"1.3.132.0.35"};if(r.format==="raw"&&r.keyHandle.type==="public"){var l=[4].concat(r.keyData.x,r.keyData.y);return{type:"keyExport",keyHandle:l}}if(r.format==="jwk"){var f=te.keyToJwk(r.keyHandle,r.keyData);return{type:"keyExport",keyHandle:f}}if(r.format==="spki"){var g=Lr.encode({SEQUENCE:[{SEQUENCE:[{"OBJECT IDENTIFIER":e},{"OBJECT IDENTIFIER":t[r.algorithm.namedCurve]}]},{"BIT STRING":[4].concat(r.keyData.x,r.keyData.y)}]});return{type:"keyExport",keyHandle:g}}if(r.format==="pkcs8"){var g=Lr.encode({SEQUENCE:[{INTEGER:0},{SEQUENCE:[{"OBJECT IDENTIFIER":e},{"OBJECT IDENTIFIER":t[r.algorithm.namedCurve]}]},{"OCTET STRING":{SEQUENCE:[{INTEGER:1},{"OCTET STRING":r.keyData.d},{APPLICATION:[{"BIT STRING":[4].concat(r.keyData.x,r.keyData.y)}],tag:1}]}}]});return{type:"keyExport",keyHandle:g}}throw new Error("unsupported export format.")};q.register("importKey","ECDH",Fe.importKey);q.register("exportKey","ECDH",Fe.exportKey);q.register("generateKey","ECDH",Fe.generateKey);q.register("deriveBits","ECDH",Fe.deriveBits);q.register("deriveKey","ECDH",Fe.deriveKey)}var Xr=function(r){var e=B.bytesToDigits,t=B.digitsToBytes,l=new gr.EllipticCurveOperatorFp(r),f=t(r.order).length,g=r.type===1;function x(c){return C(e(c))}function C(c){var n=r.allocatePointStorage();l.scalarMultiply(c,r.generator,n);return{publicKey:n,privateKey:c}}function h(c){var n=[];if(!c){c=Yr.getBytes(r.order.length*B.DIGIT_NUM_BYTES)}B.reduce(B.bytesToDigits(c),r.order,n);return C(n)}function p(c){if(c.length>f){c.length=f}var n=e(c);if(g){var o=8-r.rbits%8;B.shiftRight(n,n,o)}B.reduce(n,r.order,n);return n}function m(c,n,o){if(!o){o=h()}var E=o.publicKey.x,s=o.privateKey,d=e(c.d),y=p(n.slice()),D=[],b=[],H=null;B.reduce(E,r.order,E);B.modMul(E,d,r.order,D);B.add(D,y,D);B.reduce(D,r.order,D);B.modInvCT(s,r.order,b);B.modMul(D,b,r.order,D);var Q=V.padFront(t(E,true,f),0,f);var J=V.padFront(t(D,true,f),0,f);H=Q.concat(J);return H}function v(c,n,o){var E=Math.floor(n.length/2),s=e(n.slice(0,E)),d=e(n.slice(E)),y=p(o.slice()),D=[],b=[];var H=new gr.EllipticCurvePointFp(r,false,e(c.x),e(c.y),null,false);B.modInv(d,r.order,d);B.modMul(y,d,r.order,D);B.modMul(s,d,r.order,b);var Q=r.allocatePointStorage();var J=r.allocatePointStorage();if(g){B.add(D,D,D);B.add(D,D,D);B.reduce(D,r.order,D);l.scalarMultiply(D,r.generator,Q,false);l.scalarMultiply(b,H,J,false);l.convertToExtendedProjective(Q);l.convertToExtendedProjective(J);l.add(J,Q,Q);l.normalize(Q)}else{l.scalarMultiply(D,r.generator,Q);l.scalarMultiply(b,H,J);l.convertToJacobianForm(Q);l.convertToMontgomeryForm(Q);l.convertToMontgomeryForm(J);l.mixedAdd(Q,J,Q);l.convertToAffineForm(Q);l.convertToStandardForm(Q)}if(Q.isInfinity){return false}B.reduce(Q.x,r.order,Q.x);return B.compareDigits(Q.x,s)===0}return{createKey:x,generateKey:h,sign:m,verify:v}};if(typeof q!=="undefined"){Xr.sign=function(r){V.checkParam(r.algorithm.hash,"Object","algorithm.hash");V.checkParam(r.algorithm.hash.name,"String","algorithm.hash.name");V.checkParam(r.keyHandle.algorithm.namedCurve,"String","p.keyHandle.algorithm.namedCurve");var e=r.algorithm.hash.name,t=gr.createCurve(r.keyHandle.algorithm.namedCurve.toUpperCase()),l=Hr[e.toUpperCase()](),f=l.computeHash(r.buffer);var g=Xr(t);return g.sign(r.keyData,f)};Xr.verify=function(r){var e=r.algorithm.hash.name,t=gr.createCurve(r.keyHandle.algorithm.namedCurve.toUpperCase()),l=Hr[e.toUpperCase()](),f=l.computeHash(r.buffer);var g=Xr(t);return g.verify(r.keyData,r.signature,f)};Xr.generateKey=function(r){var e=gr.createCurve(r.algorithm.namedCurve.toUpperCase());var t=Xr(e);var l=t.generateKey();var f=B.digitsToBytes;var g=gr.curveElementLength(r.algorithm.namedCurve);function x(m){return V.padFront(m,0,g)}var C=x(f(l.publicKey.x));var h=x(f(l.publicKey.y));var p=x(f(l.privateKey));return{type:"keyPairGeneration",keyPair:{publicKey:{keyData:{x:C,y:h},keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:["verify"],type:"public"}},privateKey:{keyData:{x:C,y:h,d:p},keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:["sign"],type:"private"}}}}};Xr.importKey=function(r){if(r.format==="raw"){var e=r.keyData;if(e[0]!==4){throw V.error("DataError","invalid point encoding")}var t=~~((e.length-1)/2);var l=r.algorithm.namedCurve.toUpperCase();var f=e.slice(1,t+1),g=e.slice(t+1);if(gr.validatePoint(l,f,g)===false){throw V.error("DataError","the imported point is not on the curve")}return{type:"keyImport",keyData:{x:f,y:g},keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"public"}}}if(r.format==="jwk"){var x=te.jwkToKey(r.keyData,r.algorithm,["x","y","d","crv"]);if(x.d&&(!x.x||!x.y)){var C=Xr.curves[r.algorithm.namedCurve]();var h=Xr(C);var p=h.computePublicKey(x.d);x.x=p.x;x.y=p.y}var m=gr.curveElementLength(r.algorithm.namedCurve);if(x.x){x.x=V.padFront(x.x,0,m)}if(x.y){x.y=V.padFront(x.y,0,m)}if(x.d){x.d=V.padFront(x.d,0,m)}if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw V.error("DataError","the imported point is not on the curve")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable||x.extractable,usages:r.usages,type:x.d?"private":"public"}}}if(r.format==="spki"){var v={"P-256":32,"P-384":48,"P-521":66};var m=v[r.algorithm.namedCurve];var c=Lr.parse(r.keyData);if(c==null){throw new Error("invalid key data.")}var n=c[1];var o=n.data.slice(n.header+1);if(o==null||o.shift()!==4||o.length!==m*2){throw new Error("invalid key data.")}var f=o.slice(0,m),g=o.slice(m);if(!V.isBytes(f)||!V.isBytes(g)){throw new Error("invalid key data.")}var x={x:f,y:g};if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw new Error("DataError")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"public"}}}if(r.format==="pkcs8"){var v={"P-256":32,"P-384":48,"P-521":66};var m=v[r.algorithm.namedCurve];var c=Lr.parse(r.keyData);if(c==null){throw new Error("invalid key data.")}var E=c[2];var o=Lr.parse(E.data.slice(E.header));if(o==null){throw new Error("invalid key data.")}var s=o[1].data.slice(o[1].header);var n=Lr.parse(o[2][0].data);var o=n.data.slice(n.header+1);if(o==null||o.shift()!==4||o.length!==m*2){throw new Error("invalid key data.")}var f=o.slice(0,m),g=o.slice(m);if(!V.isBytes(f)||!V.isBytes(g)){throw new Error("invalid key data.")}var x={x:f,y:g,d:s};if(gr.validatePoint(r.algorithm.namedCurve.toUpperCase(),x.x,x.y)===false){throw new Error("DataError")}return{type:"keyImport",keyData:x,keyHandle:{algorithm:r.algorithm,extractable:r.extractable,usages:r.usages,type:"private"}}}};Xr.exportKey=function(r){var e="1.2.840.10045.2.1";var t={"P-256":"1.2.840.10045.3.1.7 ","P-384":"1.3.132.0.34","P-521":"1.3.132.0.35"};if(r.format==="raw"&&r.keyHandle.type==="public"){var l=[4].concat(r.keyData.x,r.keyData.y);return{type:"keyExport",keyHandle:l}}if(r.format==="jwk"){var f=te.keyToJwk(r.keyHandle,r.keyData);return{type:"keyExport",keyHandle:f}}if(r.format==="spki"){var g=Lr.encode({SEQUENCE:[{SEQUENCE:[{"OBJECT IDENTIFIER":e},{"OBJECT IDENTIFIER":t[r.algorithm.namedCurve]}]},{"BIT STRING":[4].concat(r.keyData.x,r.keyData.y)}]});return{type:"keyExport",keyHandle:g}}if(r.format==="pkcs8"){var g=Lr.encode({SEQUENCE:[{INTEGER:0},{SEQUENCE:[{"OBJECT IDENTIFIER":e},{"OBJECT IDENTIFIER":t[r.algorithm.namedCurve]}]},{"OCTET STRING":{SEQUENCE:[{INTEGER:1},{"OCTET STRING":r.keyData.d},{APPLICATION:[{"BIT STRING":[4].concat(r.keyData.x,r.keyData.y)}],tag:1}]}}]});return{type:"keyExport",keyHandle:g}}throw new Error("unsupported export format.")};q.register("sign","ECDSA",Xr.sign);q.register("verify","ECDSA",Xr.verify);q.register("generateKey","ECDSA",Xr.generateKey);q.register("importKey","ECDSA",Xr.importKey);q.register("exportKey","ECDSA",Xr.exportKey)}var Te;var wr=V;Te=(function(){function r(){var s;function d(y){try{y.workerid=this.id;s=Ae.jsCryptoRunner({data:y})}catch(D){this.onerror({data:D,type:"error"});return}this.onmessage({data:s})}return{postMessage:d,onmessage:null,onerror:null,terminate:function(){}}}var e=function(s){return{process:function(d){return s.process(d)},finish:function(){return s.finish()},abort:function(){return s.abort()}}};function t(s){var d=null,y=null,D=null,b,H,Q,J;H=new Promise(function(w,L){Q=w;J=L});function P(w){if(w.type==="error"){if(J){if(w.data){try{if(!w.data.stack){w.data.stack="Error"}}catch(L){}try{if(w.data.code==null){w.data.code=0}}catch(L){}}J.apply(H,[w.data||w])}return}if(w.data.type==="process"){s(w.data.result,true);return}if(w.data.type==="finish"){s(w.data.result,true);return}this.result=s(w.data);Q.apply(H,[this.result]);return}b={dispatchEvent:P,promise:H,result:null};return b}function l(){function s(y){return new me(ee,y)}function d(y){var D,b,H;switch(y.type){case"keyGeneration":case"keyImport":case"keyDerive":if(y.keyPair){D=s(y.keyPair.publicKey.keyHandle);b=s(y.keyPair.privateKey.keyHandle);x.add(D,y.keyPair.publicKey.keyData);x.add(b,y.keyPair.privateKey.keyData);return{publicKey:D,privateKey:b}}else{H=s(y.keyHandle);x.add(H,y.keyData);return H}case"keyExport":return y.keyHandle;case"keyPairGeneration":D=s(y.keyPair.publicKey.keyHandle);b=s(y.keyPair.privateKey.keyHandle);x.add(D,y.keyPair.publicKey.keyData);x.add(b,y.keyPair.privateKey.keyData);return{publicKey:D,privateKey:b};default:throw new Error("Unknown key operation")}}return t(d)}function f(s){if(jr&&s.pop){return new Uint8Array(s).buffer}return s}function g(s){function d(b,H){b=b&&f(b);if(H){y.resolve(b);return}return b}var y=[],D=t(d);D.stream=s.algorithm.stream;y.add=function(b){var H,Q,J=new Promise(function(P,w){H=P;Q=w});J.label=b;y.push({resolve:H,reject:Q,promise:J});return J};y.resolve=function(b){var H=y.shift();H.resolve.apply(H.promise,[b])};D.process=function(b){s.operationSubType="process";s.buffer=wr.toArray(b);C.continueJob(this,wr.clone(s));return y.add("process")};D.finish=function(){s.operationSubType="finish";s.buffer=[];C.continueJob(this,wr.clone(s));return y.add("finish")};D.abort=function(){C.abortJob(this)};D.algorithm=s.algorithm||null;D.key=s.keyHandle||null;return D}var x=[];x.add=function(s,d){x.push({cryptoKey:s,keyData:d})};x.remove=function(s){for(var d=0;d<x.length;d+=1){if(x[d].cryptoKey===s){x=x.splice(d,1);return}}};x.lookup=function(s){for(var d=0;d<x.length;d+=1){if(x[d].cryptoKey===s){return x[d].keyData}}return null};var C=(function(){var s=12;var d=2;var y=[];var D=[];var b=0;var H=0;var Q=[];var J=typeof setImmediate==="undefined"?setTimeout:setImmediate;function P(){Q.shift()()}function w(Z){Q.push(Z);J(P,0)}var L=xe?"available":"unavailable";function u(){N(!Tr);for(var Z=0;Z<y.length;Z++){if(!y[Z].busy){return y[Z]}}return null}function N(Z){for(var _=y.length-1;_>=0;_-=1){if(y[_].isWebWorker===Z){y[_].terminate();y.splice(_,1)}}}function a(){var Z=0;for(var _=0;_<y.length;_++){if(!y[_].busy){Z+=1}}return Z}function T(Z){y.push(Z)}function K(Z){for(var _=0;_<y.length;_++){if(y[_]===Z){Z.terminate();y.splice(_,1);return}}}function U(Z){for(var _=0;_<y.length;_++){if(y[_].operation===Z){return y[_]}}return null}function Y(Z,_){D.push({operation:Z,data:_,id:b++})}function er(Z){Z.busy=false;if(Tr){if(D.length>0){var _=D.shift(),ar;br(_.operation,_.data);if(_.data.operationSubType==="process"){for(ar=0;ar<D.length;ar++){if(_.operation===D[ar].operation){br(D[ar].operation,D[ar].data)}}for(ar=D.length-1;ar>=0;ar--){if(_.operation===D[ar].operation){D.splice(ar,1)}}}}else if(a()>d){K(Z)}}}function nr(Z){var _;if(L==="pending"){throw new Error("Creating new worker while workerstatus=pending")}if(L==="ready"){try{_=new Worker(Qr);_.postMessage({prngSeed:Yr.getBytes(48)});_.isWebWorker=true}catch(ar){Tr=false;L="failed";_.terminate();_=r();_.isWebWorker=false}}else{_=r();_.isWebWorker=false}_.operation=Z;_.id=H++;_.busy=false;_.onmessage=function(ar){if(ar.data==null){return}if(ar.data.initialized===true){return}var Br=_.operation;ar.target||(ar.target={data:_.data});if(ar.data.error){er(_);Br.dispatchEvent({type:"error",data:wr.error(ar.data.error.name,ar.data.error.message)});return}for(var Rr=0;Rr<D.length;Rr++){if(D[Rr].operation===_.operation){var I=D[Rr];D.splice(Rr,1);ir(_,I.data);return}}if(!(ar.data.hasOwnProperty("type")&&ar.data.type==="process")){er(_)}Br.dispatchEvent(ar)};_.onerror=function(ar){var Br=_.operation;er(_);Br.dispatchEvent(ar)};T(_);return _}function W(Z){if(L==="unavailable"){wr.consoleLog("web workers not available in this browser.");return}if(Z===true&&L==="ready"){return}if(Z===false&&L==="available"){return}if(Z===false&&L==="ready"){Tr=false;L="available";wr.consoleLog("web workers disabled.");return}if(L==="pending"){return}L="pending";var _=new Worker(Qr);function ar(Br){var Rr=!!(Br.data&&Br.data.initialized===true);_.removeEventListener("message",ar,false);_.removeEventListener("error",ar,false);_.terminate();L=Rr?"ready":"failed";Tr=Rr;wr.consoleLog("web worker initialization "+(Rr?"succeeded. Now using web workers.":"failed. running synchronously."+(Br.message||"")));if(D.length>0){var I=D.shift();kr(I.operation,I.data)}return}_.addEventListener("message",ar,false);_.addEventListener("error",ar,false);_.postMessage({prngSeed:Yr.getBytes(48)});return}function tr(Z){var _=U(Z);if(_){K(_)}}function kr(Z,_){var ar=null;if(L==="pending"){Y(Z,_);return}ar=u();if(Tr&&ar===null&&y.length>=s){Y(Z,_);return}if(ar===null){ar=nr(Z)}if(ar===null){Y(Z,_);throw new Error("could not create new worker")}ar.operation=Z;ar.busy=true;_.workerid=ar.id;ir(ar,_)}function br(Z,_){var ar=U(Z);if(ar){ir(ar,_);return}kr(Z,_)}function ir(Z,_){_.workerid=Z.id;if(Tr){Z.postMessage(_)}else{var ar=(function(Br){return function(){return Z.postMessage(Br)}})(_);w(ar)}return}return{runJob:kr,continueJob:br,abortJob:tr,useWebWorkers:W}})();function h(s,d){if(!q.exists(s,d)){throw wr.error("NotSupportedError","Unrecognized or unsupported algorithm.")}}var p=[{name:"algorithm",type:"Object",required:true},{name:"keyHandle",type:"Object",required:true},{name:"buffer",type:"Array",required:false},{name:"signature",type:"Array",required:true},{name:"format",type:"String",required:true},{name:"keyData",type:"Object",required:true},{name:"extractable",type:"Boolean",required:false},{name:"usages",type:"Array",required:false},{name:"derivedKeyType",type:"Object",required:true},{name:"length",type:"Number",required:false},{name:"extractable",type:"Boolean",required:true},{name:"usages",type:"Array",required:true},{name:"keyData",type:"Array",required:true}];var m={encrypt:[0,1,2],decrypt:[0,1,2],sign:[0,1,2],verify:[0,1,3,2],digest:[0,2],generateKey:[0,6,7],importKeyRaw:[4,12,0,10,11],importKeyJwk:[4,5,0,10,11],exportKey:[0,4,1,6,7],deriveKey:[0,1,8,6,7],deriveBits:[0,1,9]};function v(s){var d=x.lookup(s);if(!d){throw wr.error("InvalidAccessError","key not found")}return d}function c(s,d){var y={operationType:s},D,b,H,Q;if(s==="importKey"&&(d[0]==="raw"||d[0]==="spki"||d[0]==="pkcs8")){s="importKeyRaw"}if(s==="importKey"&&d[0]==="jwk"){s="importKeyJwk"}D=m[s];for(Q=0;Q<D.length;Q+=1){b=p[D[Q]];H=d[Q];if(H==null){if(b.required){throw new TypeError("Missing required parameter: "+b.name)}else{continue}}if(b.name==="algorithm"&&wr.getObjectType(H)==="String"){H={name:H}}if(H.subarray){H=wr.toArray(H)}if(wr.getObjectType(H)==="ArrayBuffer"){H=wr.toArray(H)}if(V.getObjectType(H)!==b.type){throw new TypeError("Invalid type for parameter: "+b.name)}if(b.name==="algorithm"){H.name=H.name.toUpperCase();if(H.iv){H.iv=wr.toArray(H.iv)}if(H.publicExponent){H.publicExponent=wr.toArray(H.publicExponent)}if(H.salt){H.salt=wr.toArray(H.salt)}if(H.additionalData){H.additionalData=wr.toArray(H.additionalData)}if(H.hash&&!H.hash.name&&wr.getObjectType(H.hash)==="String"){H.hash={name:H.hash}}}if(y.hasOwnProperty(b.name)){y[b.name+"1"]=H}else{y[b.name]=H}}return y}function n(s,d,y){try{var D=c(s,d);h(s,D.algorithm.name);if(D.keyHandle){D.keyData=v(D.keyHandle)}if(D.keyHandle1){D.keyData1=v(D.keyHandle1)}if(D.algorithm&&D.algorithm.public){D.additionalKeyData=v(D.algorithm.public)}var b=y?l(D):g(D);if(y||D.buffer||s==="deriveBits"){C.runJob(b,D)}if(b.stream){return Promise.resolve(e(b))}return b.promise}catch(H){return Promise.reject(H)}}var o={encrypt:function(s,d,y){return n("encrypt",arguments,0)},decrypt:function(s,d,y){return n("decrypt",arguments,0)},sign:function(s,d,y){return n("sign",arguments,0)},verify:function(s,d,y,D){return n("verify",arguments,0)},digest:function(s,d){return n("digest",arguments,0)},generateKey:function(s,d,y){return n("generateKey",arguments,1)},deriveKey:function(s,d,y,D,b){var H=this.deriveBits,Q=this.importKey;return new Promise(function(J,P){var w;if(y.hash&&!y.hash.name&&wr.getObjectType(y.hash)==="String"){y.hash={name:y.hash}}switch(y.name.toUpperCase()){case"AES-CBC":case"AES-GCM":w=y.length;break;case"HMAC":w=y.length||{"SHA-1":512,"SHA-224":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[y.hash.name.toUpperCase()];break;default:P(new Error("No Supported"));return}H(s,d,w).then(function(L){return Q("raw",L,y,D,b)}).then(function(L){J(L)})["catch"](function(L){P(L)})})},deriveBits:function(s,d,y){return n("deriveBits",arguments,0)},importKey:function(s,d,y,D,b){return n("importKey",arguments,1)},exportKey:function(s,d){return n("exportKey",[d.algorithm,s,d],1)},wrapKey:function(s,d,y,D){var b=this.encrypt,H=this.exportKey;return new Promise(function(Q,J){if(d.extractable===false||wr.indexOf(y.usages,"wrapKey")<0||y.algorithm.name.toUpperCase()!==D.name){J(wr.error("InvalidAccessError","key cannot be wrapped with the supplied wrapping key"));return}H(s,d).then(function(P){return b(D,y,s==="jwk"?wr.stringToBytes(JSON.stringify(P,null,0)):P)}).then(function(P){Q(P)})["catch"](function(P){J(P)})})},unwrapKey:function(s,d,y,D,b,H,Q){var J=this.decrypt,P=this.importKey;return new Promise(function(w,L){if(wr.indexOf(y.usages,"unwrapKey")<0||y.algorithm.name.toUpperCase()!==D.name){L(wr.error("InvalidAccessError","key cannot be unwrapped with the supplied unwrapping key"));return}J(D,y,d).then(function(u){return P(s,s==="jwk"?JSON.parse(wr.bytesToString(u)):u,b,H,Q)}).then(function(u){w(u)})["catch"](function(u){L(u)})})}};var E={useWebWorkers:C.useWebWorkers};return{publicMethods:o,internalMethods:E}})();var Ye={subtle:Te?Te.publicMethods:null,CryptoKey:me,getRandomValues:function(r){var e;var t=V.getObjectType(r);if(t==="Float32Array"||t==="Float64Array"){throw V.error("TypeMismatchError","The provided ArrayBufferView is not an integer-typed array.")}var l=r.byteLength!=null?r.byteLength:r.length||0;if(l>65536){throw V.error("QuotaExceededError","The ArrayBufferView's byte length ("+l+") exceeds the number of bytes of entropy available via this API (65536).")}var f=Yr.getBytes(r.length);for(e=0;e<r.length;e+=1){r[e]=f[e]}return r},initPrng:function(r){var e=Object.prototype.toString.call(r);if(e!=="[object Array]"&&e!=="[object Uint8Array]"){throw new Error("entropyData must be a Array or Uint8Array")}De&&De.reseed(r);Yr.reseed(De.read(48));he=true},toBase64:function(r,e){return V.toBase64(r,e)},fromBase64:function(r){return V.fromBase64(r)},textToBytes:function(r){return V.stringToBytes(r)},bytesToText:function(r){return V.bytesToString(r)},asn1:Lr,url:Qr,version:msrCryptoVersion,useWebWorkers:function(r){return Te?Te.internalMethods.useWebWorkers(r):null}};var De;De=De||new Je(Kr);De.init();var je=De.read(48);Yr.init(je);return Ye};return Sr()});(function(Kr){var Sr=(function(){if(typeof globalThis!=="undefined"){return globalThis}if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}return this})();var q=typeof Sr.Promise!=="undefined"?Sr.Promise:Kr();if(typeof module==="object"&&module.exports){module.exports.Promise=module.exports.Promise||q}else if(Sr.msrCrypto){Sr.msrCrypto.Promise=Sr.msrCrypto.Promise||q}if(typeof Sr.Promise==="undefined"){Sr.Promise=q}})(function(){var Kr=function(Sr,q){if(!(this instanceof Kr)){throw new Error("use 'new' keyword with Promise constructor")}var Qr=0,he=null,xe=[];function re(Tr){var Wr=Qr===1?Tr.onCompleted:Tr.onRejected;if(!Wr){(Qr===1?Tr.resolveNext:Tr.rejectNext)(he);return}var Hr;try{Hr=Wr(he)}catch(ee){Tr.rejectNext(ee);return}Tr.resolveNext(Hr)}function zr(Tr,Wr){if(Qr!==0){return}if(Tr===1&&Wr&&(typeof Wr==="object"||typeof Wr==="function")){var Hr;try{Hr=Wr.then}catch(V){zr(2,V);return}if(typeof Hr==="function"){var ee=false;try{Hr.call(Wr,function(V){if(!ee){ee=true;zr(1,V)}},function(V){if(!ee){ee=true;zr(2,V)}})}catch(V){if(!ee){ee=true;zr(2,V)}}return}}Qr=Tr;he=Wr;for(var me=0;me<xe.length;me+=1){re(xe[me])}xe=[]}function jr(Tr){zr(1,Tr)}function ye(Tr){zr(2,Tr)}this.then=function(Tr,Wr){var Hr,ee;var me=new Kr(function(Lr,Ae){Hr=Lr;ee=Ae});var V={onCompleted:typeof Tr==="function"?Tr:null,onRejected:typeof Wr==="function"?Wr:null,resolveNext:Hr,rejectNext:ee};if(Qr===0){xe.push(V)}else{re(V)}return me};this["catch"]=function(Tr){return this.then(null,Tr)};try{Sr(jr,ye)}catch(Tr){ye(Tr)}return};Kr.all=function(Sr){var q=[],Qr=0,he;function xe(re,zr){return function(jr){q[re]=jr;Qr+=1;if(Qr===Sr.length){zr(q)}}}he=new Kr(function(re,zr){var jr;function ye(Tr){zr(Tr)}for(jr=0;jr<Sr.length;jr+=1){if(Sr[jr].then){Sr[jr].then(xe(jr,re));Sr[jr]["catch"](ye);continue}Kr.resolve(Sr[jr]).then(xe(jr,re))}});return he};Kr.race=function(Sr){var q=false,Qr;function he(xe){return function(re){if(!q){q=true;xe(re)}}}Qr=new Kr(function(xe,re){for(var zr=0;zr<Sr.length;zr+=1){Sr[zr].then(he(xe),he(re))}});return Qr};Kr.reject=function(Sr){return new Kr(function(q,Qr){Qr(Sr)})};Kr.resolve=function(Sr){return new Kr(function(q,Qr){q(Sr)})};return Kr});