@@ -1,42864 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.openpgp = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-(function (global){
-"use strict";
-
-!function (e, t) {
- "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).WebStreamsPolyfill = {});
-}(undefined, function (e) {
- "use strict";
- const t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? Symbol : e => `Symbol(${e})`;const r = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0,
- o = Number.isNaN || function (e) {
- return e != e;
- };function n(e) {
- return "object" == typeof e && null !== e || "function" == typeof e;
- }function i(e, t, r) {
- Object.defineProperty(e, t, { value: r, writable: !0, enumerable: !0, configurable: !0 });
- }function a(e) {
- return e.slice();
- }function s(e, t, r, o, n) {
- new Uint8Array(e).set(new Uint8Array(r, o, n), t);
- }function l(e) {
- return !1 !== function (e) {
- if ("number" != typeof e) return !1;if (o(e)) return !1;if (e < 0) return !1;return !0;
- }(e) && e !== 1 / 0;
- }function c(e, t, r) {
- if ("function" != typeof e) throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e, t, r);
- }function u(e, t, r, o) {
- const n = e[t];if (void 0 !== n) {
- if ("function" != typeof n) throw new TypeError(`${n} is not a method`);switch (r) {case 0:
- return () => f(n, e, o);case 1:
- return t => {
- const r = [t].concat(o);return f(n, e, r);
- };}
- }return () => Promise.resolve();
- }function d(e, t, r) {
- const o = e[t];if (void 0 !== o) return c(o, e, r);
- }function f(e, t, r) {
- try {
- return Promise.resolve(c(e, t, r));
- } catch (e) {
- return Promise.reject(e);
- }
- }function _(e) {
- return e;
- }function h(e) {
- if (e = Number(e), o(e) || e < 0) throw new RangeError("highWaterMark property of a queuing strategy must be non-negative and non-NaN");return e;
- }function b(e) {
- if (void 0 === e) return () => 1;if ("function" != typeof e) throw new TypeError("size property of a queuing strategy must be a function");return t => e(t);
- }function m(e, t, r) {
- return Promise.prototype.then.call(e, t, r);
- }function y(e, t, r) {
- let o, n;const i = new Promise((e, t) => {
- o = e, n = t;
- });void 0 === r && (r = e => {
- throw e;
- });return function (e, t, r) {
- let o = !1;const n = e => {
- !1 === o && (o = !0, r(e));
- };let i = 0,
- a = 0;const s = e.length,
- l = new Array(s);for (const r of e) {
- const e = i;m(r, r => {
- l[e] = r, ++a === s && t(l);
- }, n), ++i;
- }
- }(e, e => {
- try {
- const r = t(e);o(r);
- } catch (e) {
- n(e);
- }
- }, e => {
- try {
- const t = r(e);o(t);
- } catch (e) {
- n(e);
- }
- }), i;
- }function p(e) {}function w(e) {
- e && e instanceof p.AssertionError && setTimeout(() => {
- throw e;
- }, 0);
- }function g(e) {
- const t = e._queue.shift();return e._queueTotalSize -= t.size, e._queueTotalSize < 0 && (e._queueTotalSize = 0), t.value;
- }function S(e, t, r) {
- if (!l(r = Number(r))) throw new RangeError("Size must be a finite, non-NaN, non-negative number.");e._queue.push({ value: t, size: r }), e._queueTotalSize += r;
- }function v(e) {
- e._queue = [], e._queueTotalSize = 0;
- }p.AssertionError = function () {};const R = t("[[AbortSteps]]"),
- P = t("[[ErrorSteps]]");class WritableStream {
- constructor(e = {}, t = {}) {
- q(this);const r = t.size;let o = t.highWaterMark;if (void 0 !== e.type) throw new RangeError("Invalid type is specified");const n = b(r);void 0 === o && (o = 1), function (e, t, r, o) {
- const n = Object.create(WritableStreamDefaultController.prototype);const i = u(t, "write", 1, [n]),
- a = u(t, "close", 0, []),
- s = u(t, "abort", 1, []);$(e, n, function () {
- return d(t, "start", [n]);
- }, i, a, s, r, o);
- }(this, e, o = h(o), n);
- }get locked() {
- if (!1 === E(this)) throw G("locked");return C(this);
- }abort(e) {
- return !1 === E(this) ? Promise.reject(G("abort")) : !0 === C(this) ? Promise.reject(new TypeError("Cannot abort a stream that already has a writer")) : j(this, e);
- }getWriter() {
- if (!1 === E(this)) throw G("getWriter");return T(this);
- }
- }function T(e) {
- return new WritableStreamDefaultWriter(e);
- }function q(e) {
- e._state = "writable", e._storedError = void 0, e._writer = void 0, e._writableStreamController = void 0, e._writeRequests = [], e._inFlightWriteRequest = void 0, e._closeRequest = void 0, e._inFlightCloseRequest = void 0, e._pendingAbortRequest = void 0, e._backpressure = !1;
- }function E(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_writableStreamController");
- }function C(e) {
- return void 0 !== e._writer;
- }function j(e, t) {
- const r = e._state;if ("closed" === r || "errored" === r) return Promise.resolve(void 0);if (void 0 !== e._pendingAbortRequest) return e._pendingAbortRequest._promise;let o = !1;"erroring" === r && (o = !0, t = void 0);const n = new Promise((r, n) => {
- e._pendingAbortRequest = { _promise: void 0, _resolve: r, _reject: n, _reason: t, _wasAlreadyErroring: o };
- });return e._pendingAbortRequest._promise = n, !1 === o && W(e, t), n;
- }function A(e, t) {
- "writable" !== e._state ? B(e) : W(e, t);
- }function W(e, t) {
- const r = e._writableStreamController;e._state = "erroring", e._storedError = t;const o = e._writer;void 0 !== o && D(o, t), !1 === function (e) {
- if (void 0 === e._inFlightWriteRequest && void 0 === e._inFlightCloseRequest) return !1;return !0;
- }(e) && !0 === r._started && B(e);
- }function B(e) {
- e._state = "errored", e._writableStreamController[P]();const t = e._storedError;for (const r of e._writeRequests) r._reject(t);if (e._writeRequests = [], void 0 === e._pendingAbortRequest) return void z(e);const r = e._pendingAbortRequest;if (e._pendingAbortRequest = void 0, !0 === r._wasAlreadyErroring) return r._reject(t), void z(e);e._writableStreamController[R](r._reason).then(() => {
- r._resolve(), z(e);
- }, t => {
- r._reject(t), z(e);
- });
- }function O(e) {
- return void 0 !== e._closeRequest || void 0 !== e._inFlightCloseRequest;
- }function z(e) {
- void 0 !== e._closeRequest && (e._closeRequest._reject(e._storedError), e._closeRequest = void 0);const t = e._writer;void 0 !== t && ee(t, e._storedError);
- }function k(e, t) {
- const r = e._writer;void 0 !== r && t !== e._backpressure && (!0 === t ? function (e) {
- re(e);
- }(r) : ae(r)), e._backpressure = t;
- }class WritableStreamDefaultWriter {
- constructor(e) {
- if (!1 === E(e)) throw new TypeError("WritableStreamDefaultWriter can only be constructed with a WritableStream instance");if (!0 === C(e)) throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream = e, e._writer = this;const t = e._state;if ("writable" === t) !1 === O(e) && !0 === e._backpressure ? re(this) : ne(this), X(this);else if ("erroring" === t) oe(this, e._storedError), X(this);else if ("closed" === t) ne(this), function (e) {
- X(e), te(e);
- }(this);else {
- const t = e._storedError;oe(this, t), Z(this, t);
- }
- }get closed() {
- return !1 === F(this) ? Promise.reject(J("closed")) : this._closedPromise;
- }get desiredSize() {
- if (!1 === F(this)) throw J("desiredSize");if (void 0 === this._ownerWritableStream) throw K("desiredSize");return function (e) {
- const t = e._ownerWritableStream,
- r = t._state;if ("errored" === r || "erroring" === r) return null;if ("closed" === r) return 0;return Q(t._writableStreamController);
- }(this);
- }get ready() {
- return !1 === F(this) ? Promise.reject(J("ready")) : this._readyPromise;
- }abort(e) {
- return !1 === F(this) ? Promise.reject(J("abort")) : void 0 === this._ownerWritableStream ? Promise.reject(K("abort")) : function (e, t) {
- return j(e._ownerWritableStream, t);
- }(this, e);
- }close() {
- if (!1 === F(this)) return Promise.reject(J("close"));const e = this._ownerWritableStream;return void 0 === e ? Promise.reject(K("close")) : !0 === O(e) ? Promise.reject(new TypeError("cannot close an already-closing stream")) : L(this);
- }releaseLock() {
- if (!1 === F(this)) throw J("releaseLock");void 0 !== this._ownerWritableStream && M(this);
- }write(e) {
- return !1 === F(this) ? Promise.reject(J("write")) : void 0 === this._ownerWritableStream ? Promise.reject(K("write to")) : Y(this, e);
- }
- }function F(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_ownerWritableStream");
- }function L(e) {
- const t = e._ownerWritableStream,
- r = t._state;if ("closed" === r || "errored" === r) return Promise.reject(new TypeError(`The stream (in ${r} state) is not in the writable state and cannot be closed`));const o = new Promise((e, r) => {
- const o = { _resolve: e, _reject: r };t._closeRequest = o;
- });return !0 === t._backpressure && "writable" === r && ae(e), function (e) {
- S(e, "close", 0), x(e);
- }(t._writableStreamController), o;
- }function I(e, t) {
- "pending" === e._closedPromiseState ? ee(e, t) : function (e, t) {
- Z(e, t);
- }(e, t);
- }function D(e, t) {
- "pending" === e._readyPromiseState ? ie(e, t) : function (e, t) {
- oe(e, t);
- }(e, t);
- }function M(e) {
- const t = e._ownerWritableStream,
- r = new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");D(e, r), I(e, r), t._writer = void 0, e._ownerWritableStream = void 0;
- }function Y(e, t) {
- const r = e._ownerWritableStream,
- o = r._writableStreamController,
- n = function (e, t) {
- try {
- return e._strategySizeAlgorithm(t);
- } catch (t) {
- return H(e, t), 1;
- }
- }(o, t);if (r !== e._ownerWritableStream) return Promise.reject(K("write to"));const i = r._state;if ("errored" === i) return Promise.reject(r._storedError);if (!0 === O(r) || "closed" === i) return Promise.reject(new TypeError("The stream is closing or closed and cannot be written to"));if ("erroring" === i) return Promise.reject(r._storedError);const a = function (e) {
- return new Promise((t, r) => {
- const o = { _resolve: t, _reject: r };e._writeRequests.push(o);
- });
- }(r);return function (e, t, r) {
- const o = { chunk: t };try {
- S(e, o, r);
- } catch (t) {
- return void H(e, t);
- }const n = e._controlledWritableStream;if (!1 === O(n) && "writable" === n._state) {
- const t = U(e);k(n, t);
- }x(e);
- }(o, t, n), a;
- }class WritableStreamDefaultController {
- constructor() {
- throw new TypeError("WritableStreamDefaultController cannot be constructed explicitly");
- }error(e) {
- if (!1 === function (e) {
- if (!n(e)) return !1;if (!Object.prototype.hasOwnProperty.call(e, "_controlledWritableStream")) return !1;return !0;
- }(this)) throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController");"writable" === this._controlledWritableStream._state && V(this, e);
- }[R](e) {
- const t = this._abortAlgorithm(e);return N(this), t;
- }[P]() {
- v(this);
- }
- }function $(e, t, r, o, n, i, a, s) {
- t._controlledWritableStream = e, e._writableStreamController = t, t._queue = void 0, t._queueTotalSize = void 0, v(t), t._started = !1, t._strategySizeAlgorithm = s, t._strategyHWM = a, t._writeAlgorithm = o, t._closeAlgorithm = n, t._abortAlgorithm = i;const l = U(t);k(e, l);const c = r();Promise.resolve(c).then(() => {
- t._started = !0, x(t);
- }, r => {
- t._started = !0, A(e, r);
- }).catch(w);
- }function N(e) {
- e._writeAlgorithm = void 0, e._closeAlgorithm = void 0, e._abortAlgorithm = void 0, e._strategySizeAlgorithm = void 0;
- }function Q(e) {
- return e._strategyHWM - e._queueTotalSize;
- }function x(e) {
- const t = e._controlledWritableStream;if (!1 === e._started) return;if (void 0 !== t._inFlightWriteRequest) return;const r = t._state;if ("closed" === r || "errored" === r) return;if ("erroring" === r) return void B(t);if (0 === e._queue.length) return;const o = function (e) {
- return e._queue[0].value;
- }(e);"close" === o ? function (e) {
- const t = e._controlledWritableStream;(function (e) {
- e._inFlightCloseRequest = e._closeRequest, e._closeRequest = void 0;
- })(t), g(e);const r = e._closeAlgorithm();N(e), r.then(() => {
- !function (e) {
- e._inFlightCloseRequest._resolve(void 0), e._inFlightCloseRequest = void 0, "erroring" === e._state && (e._storedError = void 0, void 0 !== e._pendingAbortRequest && (e._pendingAbortRequest._resolve(), e._pendingAbortRequest = void 0)), e._state = "closed";const t = e._writer;void 0 !== t && te(t);
- }(t);
- }, e => {
- !function (e, t) {
- e._inFlightCloseRequest._reject(t), e._inFlightCloseRequest = void 0, void 0 !== e._pendingAbortRequest && (e._pendingAbortRequest._reject(t), e._pendingAbortRequest = void 0), A(e, t);
- }(t, e);
- }).catch(w);
- }(e) : function (e, t) {
- const r = e._controlledWritableStream;(function (e) {
- e._inFlightWriteRequest = e._writeRequests.shift();
- })(r), e._writeAlgorithm(t).then(() => {
- !function (e) {
- e._inFlightWriteRequest._resolve(void 0), e._inFlightWriteRequest = void 0;
- }(r);const t = r._state;if (g(e), !1 === O(r) && "writable" === t) {
- const t = U(e);k(r, t);
- }x(e);
- }, t => {
- "writable" === r._state && N(e), function (e, t) {
- e._inFlightWriteRequest._reject(t), e._inFlightWriteRequest = void 0, A(e, t);
- }(r, t);
- }).catch(w);
- }(e, o.chunk);
- }function H(e, t) {
- "writable" === e._controlledWritableStream._state && V(e, t);
- }function U(e) {
- return Q(e) <= 0;
- }function V(e, t) {
- const r = e._controlledWritableStream;N(e), W(r, t);
- }function G(e) {
- return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`);
- }function J(e) {
- return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`);
- }function K(e) {
- return new TypeError("Cannot " + e + " a stream using a released writer");
- }function X(e) {
- e._closedPromise = new Promise((t, r) => {
- e._closedPromise_resolve = t, e._closedPromise_reject = r, e._closedPromiseState = "pending";
- });
- }function Z(e, t) {
- X(e), ee(e, t);
- }function ee(e, t) {
- e._closedPromise.catch(() => {}), e._closedPromise_reject(t), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "rejected";
- }function te(e) {
- e._closedPromise_resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "resolved";
- }function re(e) {
- e._readyPromise = new Promise((t, r) => {
- e._readyPromise_resolve = t, e._readyPromise_reject = r;
- }), e._readyPromiseState = "pending";
- }function oe(e, t) {
- re(e), ie(e, t);
- }function ne(e) {
- re(e), ae(e);
- }function ie(e, t) {
- e._readyPromise.catch(() => {}), e._readyPromise_reject(t), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "rejected";
- }function ae(e) {
- e._readyPromise_resolve(void 0), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "fulfilled";
- }const se = Number.isInteger || function (e) {
- return "number" == typeof e && isFinite(e) && Math.floor(e) === e;
- },
- le = t("[[CancelSteps]]"),
- ce = t("[[PullSteps]]");class ReadableStream {
- constructor(e = {}, t = {}) {
- fe(this);const r = t.size;let o = t.highWaterMark;const n = e.type;if ("bytes" === String(n)) {
- if (void 0 !== r) throw new RangeError("The strategy for a byte stream cannot have a size function");void 0 === o && (o = 0), function (e, t, r) {
- const o = Object.create(ReadableByteStreamController.prototype);const n = u(t, "pull", 0, [o]),
- i = u(t, "cancel", 1, []);let a = t.autoAllocateChunkSize;if (void 0 !== a && (a = Number(a), !1 === se(a) || a <= 0)) throw new RangeError("autoAllocateChunkSize must be a positive integer");!function (e, t, r, o, n, i, a) {
- t._controlledReadableByteStream = e, t._pullAgain = !1, t._pulling = !1, He(t), t._queue = t._queueTotalSize = void 0, v(t), t._closeRequested = !1, t._started = !1, t._strategyHWM = h(i), t._pullAlgorithm = o, t._cancelAlgorithm = n, t._autoAllocateChunkSize = a, t._pendingPullIntos = [], e._readableStreamController = t;const s = r();Promise.resolve(s).then(() => {
- t._started = !0, xe(t);
- }, e => {
- nt(t, e);
- }).catch(w);
- }(e, o, function () {
- return d(t, "start", [o]);
- }, n, i, r, a);
- }(this, e, o = h(o));
- } else {
- if (void 0 !== n) throw new RangeError("Invalid type is specified");{
- const t = b(r);void 0 === o && (o = 1), function (e, t, r, o) {
- const n = Object.create(ReadableStreamDefaultController.prototype);const i = u(t, "pull", 0, [n]),
- a = u(t, "cancel", 1, []);$e(e, n, function () {
- return d(t, "start", [n]);
- }, i, a, r, o);
- }(this, e, o = h(o), t);
- }
- }
- }get locked() {
- if (!1 === _e(this)) throw st("locked");return he(this);
- }cancel(e) {
- return !1 === _e(this) ? Promise.reject(st("cancel")) : !0 === he(this) ? Promise.reject(new TypeError("Cannot cancel a stream that already has a reader")) : pe(this, e);
- }getReader({ mode: e } = {}) {
- if (!1 === _e(this)) throw st("getReader");if (void 0 === e) return ue(this);if ("byob" === (e = String(e))) return function (e) {
- return new ReadableStreamBYOBReader(e);
- }(this);throw new RangeError("Invalid mode is specified");
- }pipeThrough({ writable: e, readable: t }, { preventClose: r, preventAbort: o, preventCancel: n, signal: i } = {}) {
- if (!1 === _e(this)) throw st("pipeThrough");if (!1 === E(e)) throw new TypeError("writable argument to pipeThrough must be a WritableStream");if (!1 === _e(t)) throw new TypeError("readable argument to pipeThrough must be a ReadableStream");if (r = Boolean(r), o = Boolean(o), n = Boolean(n), void 0 !== i && !at(i)) throw new TypeError("ReadableStream.prototype.pipeThrough's signal option must be an AbortSignal");if (!0 === he(this)) throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if (!0 === C(e)) throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return be(this, e, r, o, n, i).catch(() => {}), t;
- }pipeTo(e, { preventClose: t, preventAbort: r, preventCancel: o, signal: n } = {}) {
- return !1 === _e(this) ? Promise.reject(st("pipeTo")) : !1 === E(e) ? Promise.reject(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream")) : (t = Boolean(t), r = Boolean(r), o = Boolean(o), void 0 === n || at(n) ? !0 === he(this) ? Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")) : !0 === C(e) ? Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")) : be(this, e, t, r, o, n) : Promise.reject(new TypeError("ReadableStream.prototype.pipeTo's signal option must be an AbortSignal")));
- }tee() {
- if (!1 === _e(this)) throw st("tee");const e = function (e, t) {
- const r = ue(e);let o,
- n,
- i,
- s,
- l,
- c = !1,
- u = !1,
- d = !1;const f = new Promise(e => {
- l = e;
- });function _() {
- return Be(r).then(e => {
- const t = e.value,
- r = e.done;if (!0 === r && !1 === c && (!1 === u && Le(i._readableStreamController), !1 === d && Le(s._readableStreamController), c = !0), !0 === c) return;const o = t,
- n = t;!1 === u && Ie(i._readableStreamController, o), !1 === d && Ie(s._readableStreamController, n);
- });
- }function h() {}return i = de(h, _, function (t) {
- if (u = !0, o = t, !0 === d) {
- const t = a([o, n]),
- r = pe(e, t);l(r);
- }return f;
- }), s = de(h, _, function (t) {
- if (d = !0, n = t, !0 === u) {
- const t = a([o, n]),
- r = pe(e, t);l(r);
- }return f;
- }), r._closedPromise.catch(e => {
- !0 !== c && (De(i._readableStreamController, e), De(s._readableStreamController, e), c = !0);
- }), [i, s];
- }(this);return a(e);
- }
- }function ue(e) {
- return new ReadableStreamDefaultReader(e);
- }function de(e, t, r, o = 1, n = () => 1) {
- const i = Object.create(ReadableStream.prototype);return fe(i), $e(i, Object.create(ReadableStreamDefaultController.prototype), e, t, r, o, n), i;
- }function fe(e) {
- e._state = "readable", e._reader = void 0, e._storedError = void 0, e._disturbed = !1;
- }function _e(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_readableStreamController");
- }function he(e) {
- return void 0 !== e._reader;
- }function be(e, t, r, o, n, i) {
- const a = ue(e),
- s = T(t);let l = !1,
- c = Promise.resolve();return new Promise((u, d) => {
- let f;if (void 0 !== i) {
- if (f = () => {
- const r = new DOMException("Aborted", "AbortError"),
- i = [];!1 === o && i.push(() => "writable" === t._state ? j(t, r) : Promise.resolve()), !1 === n && i.push(() => "readable" === e._state ? pe(e, r) : Promise.resolve()), b(() => y(i.map(e => e()), e => e), !0, r);
- }, !0 === i.aborted) return void f();i.addEventListener("abort", f);
- }if (h(e, a._closedPromise, e => {
- !1 === o ? b(() => j(t, e), !0, e) : m(!0, e);
- }), h(t, s._closedPromise, t => {
- !1 === n ? b(() => pe(e, t), !0, t) : m(!0, t);
- }), function (e, t, r) {
- "closed" === e._state ? r() : t.then(r).catch(w);
- }(e, a._closedPromise, () => {
- !1 === r ? b(() => function (e) {
- const t = e._ownerWritableStream,
- r = t._state;return !0 === O(t) || "closed" === r ? Promise.resolve() : "errored" === r ? Promise.reject(t._storedError) : L(e);
- }(s)) : m();
- }), !0 === O(t) || "closed" === t._state) {
- const t = new TypeError("the destination writable stream closed before all data could be piped to it");!1 === n ? b(() => pe(e, t), !0, t) : m(!0, t);
- }function _() {
- const e = c;return c.then(() => e !== c ? _() : void 0);
- }function h(e, t, r) {
- "errored" === e._state ? r(e._storedError) : t.catch(r).catch(w);
- }function b(e, r, o) {
- function n() {
- e().then(() => p(r, o), e => p(!0, e)).catch(w);
- }!0 !== l && (l = !0, "writable" === t._state && !1 === O(t) ? _().then(n) : n());
- }function m(e, r) {
- !0 !== l && (l = !0, "writable" === t._state && !1 === O(t) ? _().then(() => p(e, r)).catch(w) : p(e, r));
- }function p(e, t) {
- M(s), We(a), void 0 !== i && i.removeEventListener("abort", f), e ? d(t) : u(void 0);
- }new Promise((e, t) => {
- !function r(o) {
- o ? e() : (!0 === l ? Promise.resolve(!0) : s._readyPromise.then(() => Be(a).then(({ value: e, done: t }) => !0 === t || (c = Y(s, e).catch(() => {}), !1)))).then(r, t);
- }(!1);
- }).catch(e => {
- c = Promise.resolve(), w(e);
- });
- });
- }function me(e, t) {
- return new Promise((r, o) => {
- const n = { _resolve: r, _reject: o, _forAuthorCode: t };e._reader._readIntoRequests.push(n);
- });
- }function ye(e, t) {
- return new Promise((r, o) => {
- const n = { _resolve: r, _reject: o, _forAuthorCode: t };e._reader._readRequests.push(n);
- });
- }function pe(e, t) {
- if (e._disturbed = !0, "closed" === e._state) return Promise.resolve(void 0);if ("errored" === e._state) return Promise.reject(e._storedError);return we(e), e._readableStreamController[le](t).then(() => void 0);
- }function we(e) {
- e._state = "closed";const t = e._reader;if (void 0 !== t) {
- if (Ce(t)) {
- for (const _ref of t._readRequests) {
- const e = _ref._resolve;
- const r = _ref._forAuthorCode;
- e(ge(void 0, !0, r));
- }t._readRequests = [];
- }_t(t);
- }
- }function ge(e, t, r) {
- let o = null;!0 === r && (o = Object.prototype);const n = Object.create(o);return Object.defineProperty(n, "value", { value: e, enumerable: !0, writable: !0, configurable: !0 }), Object.defineProperty(n, "done", { value: t, enumerable: !0, writable: !0, configurable: !0 }), n;
- }function Se(e, t) {
- e._state = "errored", e._storedError = t;const r = e._reader;if (void 0 !== r) {
- if (Ce(r)) {
- for (const e of r._readRequests) e._reject(t);r._readRequests = [];
- } else {
- for (const e of r._readIntoRequests) e._reject(t);r._readIntoRequests = [];
- }ft(r, t);
- }
- }function ve(e, t, r) {
- const o = e._reader._readRequests.shift();o._resolve(ge(t, r, o._forAuthorCode));
- }function Re(e) {
- return e._reader._readIntoRequests.length;
- }function Pe(e) {
- return e._reader._readRequests.length;
- }function Te(e) {
- const t = e._reader;return void 0 !== t && !!Ee(t);
- }function qe(e) {
- const t = e._reader;return void 0 !== t && !!Ce(t);
- }class ReadableStreamDefaultReader {
- constructor(e) {
- if (!1 === _e(e)) throw new TypeError("ReadableStreamDefaultReader can only be constructed with a ReadableStream instance");if (!0 === he(e)) throw new TypeError("This stream has already been locked for exclusive reading by another reader");je(this, e), this._readRequests = [];
- }get closed() {
- return Ce(this) ? this._closedPromise : Promise.reject(ct("closed"));
- }cancel(e) {
- return Ce(this) ? void 0 === this._ownerReadableStream ? Promise.reject(lt("cancel")) : Ae(this, e) : Promise.reject(ct("cancel"));
- }read() {
- return Ce(this) ? void 0 === this._ownerReadableStream ? Promise.reject(lt("read from")) : Be(this, !0) : Promise.reject(ct("read"));
- }releaseLock() {
- if (!Ce(this)) throw ct("releaseLock");if (void 0 !== this._ownerReadableStream) {
- if (this._readRequests.length > 0) throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");We(this);
- }
- }
- }class ReadableStreamBYOBReader {
- constructor(e) {
- if (!_e(e)) throw new TypeError("ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a byte source");if (!1 === Ne(e._readableStreamController)) throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");if (he(e)) throw new TypeError("This stream has already been locked for exclusive reading by another reader");je(this, e), this._readIntoRequests = [];
- }get closed() {
- return Ee(this) ? this._closedPromise : Promise.reject(ht("closed"));
- }cancel(e) {
- return Ee(this) ? void 0 === this._ownerReadableStream ? Promise.reject(lt("cancel")) : Ae(this, e) : Promise.reject(ht("cancel"));
- }read(e) {
- return Ee(this) ? void 0 === this._ownerReadableStream ? Promise.reject(lt("read from")) : ArrayBuffer.isView(e) ? (e.buffer, 0 === e.byteLength ? Promise.reject(new TypeError("view must have non-zero byteLength")) : function (e, t, r = !1) {
- const o = e._ownerReadableStream;if (o._disturbed = !0, "errored" === o._state) return Promise.reject(o._storedError);return function (e, t, r) {
- const o = e._controlledReadableByteStream;let n = 1;t.constructor !== DataView && (n = t.constructor.BYTES_PER_ELEMENT);const i = t.constructor,
- a = { buffer: _(t.buffer), byteOffset: t.byteOffset, byteLength: t.byteLength, bytesFilled: 0, elementSize: n, ctor: i, readerType: "byob" };if (e._pendingPullIntos.length > 0) return e._pendingPullIntos.push(a), me(o, r);if ("closed" === o._state) {
- const e = new i(a.buffer, a.byteOffset, 0);return Promise.resolve(ge(e, !0, r));
- }if (e._queueTotalSize > 0) {
- if (!0 === Je(e, a)) {
- const t = Ve(a);return Xe(e), Promise.resolve(ge(t, !1, r));
- }if (!0 === e._closeRequested) {
- const t = new TypeError("Insufficient bytes to fill elements in the given buffer");return nt(e, t), Promise.reject(t);
- }
- }e._pendingPullIntos.push(a);const s = me(o, r);return xe(e), s;
- }(o._readableStreamController, t, r);
- }(this, e, !0)) : Promise.reject(new TypeError("view must be an array buffer view")) : Promise.reject(ht("read"));
- }releaseLock() {
- if (!Ee(this)) throw ht("releaseLock");if (void 0 !== this._ownerReadableStream) {
- if (this._readIntoRequests.length > 0) throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");We(this);
- }
- }
- }function Ee(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_readIntoRequests");
- }function Ce(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_readRequests");
- }function je(e, t) {
- e._ownerReadableStream = t, t._reader = e, "readable" === t._state ? ut(e) : "closed" === t._state ? function (e) {
- ut(e), _t(e);
- }(e) : dt(e, t._storedError);
- }function Ae(e, t) {
- return pe(e._ownerReadableStream, t);
- }function We(e) {
- "readable" === e._ownerReadableStream._state ? ft(e, new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")) : function (e, t) {
- dt(e, t);
- }(e, new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")), e._ownerReadableStream._reader = void 0, e._ownerReadableStream = void 0;
- }function Be(e, t = !1) {
- const r = e._ownerReadableStream;return r._disturbed = !0, "closed" === r._state ? Promise.resolve(ge(void 0, !0, t)) : "errored" === r._state ? Promise.reject(r._storedError) : r._readableStreamController[ce](t);
- }class ReadableStreamDefaultController {
- constructor() {
- throw new TypeError();
- }get desiredSize() {
- if (!1 === Oe(this)) throw bt("desiredSize");return Me(this);
- }close() {
- if (!1 === Oe(this)) throw bt("close");if (!1 === Ye(this)) throw new TypeError("The stream is not in a state that permits close");Le(this);
- }enqueue(e) {
- if (!1 === Oe(this)) throw bt("enqueue");if (!1 === Ye(this)) throw new TypeError("The stream is not in a state that permits enqueue");return Ie(this, e);
- }error(e) {
- if (!1 === Oe(this)) throw bt("error");De(this, e);
- }[le](e) {
- v(this);const t = this._cancelAlgorithm(e);return Fe(this), t;
- }[ce](e) {
- const t = this._controlledReadableStream;if (this._queue.length > 0) {
- const r = g(this);return !0 === this._closeRequested && 0 === this._queue.length ? (Fe(this), we(t)) : ze(this), Promise.resolve(ge(r, !1, e));
- }const r = ye(t, e);return ze(this), r;
- }
- }function Oe(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledReadableStream");
- }function ze(e) {
- !1 !== ke(e) && (!0 !== e._pulling ? (e._pulling = !0, e._pullAlgorithm().then(() => {
- if (e._pulling = !1, !0 === e._pullAgain) return e._pullAgain = !1, ze(e);
- }, t => {
- De(e, t);
- }).catch(w)) : e._pullAgain = !0);
- }function ke(e) {
- const t = e._controlledReadableStream;return !1 !== Ye(e) && !1 !== e._started && (!0 === he(t) && Pe(t) > 0 || Me(e) > 0);
- }function Fe(e) {
- e._pullAlgorithm = void 0, e._cancelAlgorithm = void 0, e._strategySizeAlgorithm = void 0;
- }function Le(e) {
- const t = e._controlledReadableStream;e._closeRequested = !0, 0 === e._queue.length && (Fe(e), we(t));
- }function Ie(e, t) {
- const r = e._controlledReadableStream;if (!0 === he(r) && Pe(r) > 0) ve(r, t, !1);else {
- let r;try {
- r = e._strategySizeAlgorithm(t);
- } catch (t) {
- throw De(e, t), t;
- }try {
- S(e, t, r);
- } catch (t) {
- throw De(e, t), t;
- }
- }ze(e);
- }function De(e, t) {
- const r = e._controlledReadableStream;"readable" === r._state && (v(e), Fe(e), Se(r, t));
- }function Me(e) {
- const t = e._controlledReadableStream._state;return "errored" === t ? null : "closed" === t ? 0 : e._strategyHWM - e._queueTotalSize;
- }function Ye(e) {
- const t = e._controlledReadableStream._state;return !1 === e._closeRequested && "readable" === t;
- }function $e(e, t, r, o, n, i, a) {
- t._controlledReadableStream = e, t._queue = void 0, t._queueTotalSize = void 0, v(t), t._started = !1, t._closeRequested = !1, t._pullAgain = !1, t._pulling = !1, t._strategySizeAlgorithm = a, t._strategyHWM = i, t._pullAlgorithm = o, t._cancelAlgorithm = n, e._readableStreamController = t;const s = r();Promise.resolve(s).then(() => {
- t._started = !0, ze(t);
- }, e => {
- De(t, e);
- }).catch(w);
- }class ReadableStreamBYOBRequest {
- constructor() {
- throw new TypeError("ReadableStreamBYOBRequest cannot be used directly");
- }get view() {
- if (!1 === Qe(this)) throw mt("view");return this._view;
- }respond(e) {
- if (!1 === Qe(this)) throw mt("respond");if (void 0 === this._associatedReadableByteStreamController) throw new TypeError("This BYOB request has been invalidated");this._view.buffer, function (e, t) {
- if (!1 === l(t = Number(t))) throw new RangeError("bytesWritten must be a finite");tt(e, t);
- }(this._associatedReadableByteStreamController, e);
- }respondWithNewView(e) {
- if (!1 === Qe(this)) throw mt("respond");if (void 0 === this._associatedReadableByteStreamController) throw new TypeError("This BYOB request has been invalidated");if (!ArrayBuffer.isView(e)) throw new TypeError("You can only respond with array buffer views");e.buffer, function (e, t) {
- const r = e._pendingPullIntos[0];if (r.byteOffset + r.bytesFilled !== t.byteOffset) throw new RangeError("The region specified by view does not match byobRequest");if (r.byteLength !== t.byteLength) throw new RangeError("The buffer of view has different capacity than byobRequest");r.buffer = t.buffer, tt(e, t.byteLength);
- }(this._associatedReadableByteStreamController, e);
- }
- }class ReadableByteStreamController {
- constructor() {
- throw new TypeError("ReadableByteStreamController constructor cannot be used directly");
- }get byobRequest() {
- if (!1 === Ne(this)) throw yt("byobRequest");if (void 0 === this._byobRequest && this._pendingPullIntos.length > 0) {
- const e = this._pendingPullIntos[0],
- t = new Uint8Array(e.buffer, e.byteOffset + e.bytesFilled, e.byteLength - e.bytesFilled),
- r = Object.create(ReadableStreamBYOBRequest.prototype);!function (e, t, r) {
- e._associatedReadableByteStreamController = t, e._view = r;
- }(r, this, t), this._byobRequest = r;
- }return this._byobRequest;
- }get desiredSize() {
- if (!1 === Ne(this)) throw yt("desiredSize");return it(this);
- }close() {
- if (!1 === Ne(this)) throw yt("close");if (!0 === this._closeRequested) throw new TypeError("The stream has already been closed; do not close it again!");const e = this._controlledReadableByteStream._state;if ("readable" !== e) throw new TypeError(`The stream (in ${e} state) is not in the readable state and cannot be closed`);!function (e) {
- const t = e._controlledReadableByteStream;if (e._queueTotalSize > 0) return void (e._closeRequested = !0);if (e._pendingPullIntos.length > 0) {
- const t = e._pendingPullIntos[0];if (t.bytesFilled > 0) {
- const t = new TypeError("Insufficient bytes to fill elements in the given buffer");throw nt(e, t), t;
- }
- }ot(e), we(t);
- }(this);
- }enqueue(e) {
- if (!1 === Ne(this)) throw yt("enqueue");if (!0 === this._closeRequested) throw new TypeError("stream is closed or draining");const t = this._controlledReadableByteStream._state;if ("readable" !== t) throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be enqueued to`);if (!ArrayBuffer.isView(e)) throw new TypeError("You can only enqueue array buffer views when using a ReadableByteStreamController");e.buffer, function (e, t) {
- const r = e._controlledReadableByteStream,
- o = t.buffer,
- n = t.byteOffset,
- i = t.byteLength,
- a = _(o);if (!0 === qe(r)) {
- if (0 === Pe(r)) Ge(e, a, n, i);else {
- const e = new Uint8Array(a, n, i);ve(r, e, !1);
- }
- } else !0 === Te(r) ? (Ge(e, a, n, i), et(e)) : Ge(e, a, n, i);xe(e);
- }(this, e);
- }error(e) {
- if (!1 === Ne(this)) throw yt("error");nt(this, e);
- }[le](e) {
- if (this._pendingPullIntos.length > 0) {
- this._pendingPullIntos[0].bytesFilled = 0;
- }v(this);const t = this._cancelAlgorithm(e);return ot(this), t;
- }[ce](e) {
- const t = this._controlledReadableByteStream;if (this._queueTotalSize > 0) {
- const t = this._queue.shift();let r;this._queueTotalSize -= t.byteLength, Xe(this);try {
- r = new Uint8Array(t.buffer, t.byteOffset, t.byteLength);
- } catch (e) {
- return Promise.reject(e);
- }return Promise.resolve(ge(r, !1, e));
- }const r = this._autoAllocateChunkSize;if (void 0 !== r) {
- let e;try {
- e = new ArrayBuffer(r);
- } catch (e) {
- return Promise.reject(e);
- }const t = { buffer: e, byteOffset: 0, byteLength: r, bytesFilled: 0, elementSize: 1, ctor: Uint8Array, readerType: "default" };this._pendingPullIntos.push(t);
- }const o = ye(t, e);return xe(this), o;
- }
- }function Ne(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledReadableByteStream");
- }function Qe(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_associatedReadableByteStreamController");
- }function xe(e) {
- !1 !== function (e) {
- const t = e._controlledReadableByteStream;if ("readable" !== t._state) return !1;if (!0 === e._closeRequested) return !1;if (!1 === e._started) return !1;if (!0 === qe(t) && Pe(t) > 0) return !0;if (!0 === Te(t) && Re(t) > 0) return !0;if (it(e) > 0) return !0;return !1;
- }(e) && (!0 !== e._pulling ? (e._pulling = !0, e._pullAlgorithm().then(() => {
- e._pulling = !1, !0 === e._pullAgain && (e._pullAgain = !1, xe(e));
- }, t => {
- nt(e, t);
- }).catch(w)) : e._pullAgain = !0);
- }function He(e) {
- Ze(e), e._pendingPullIntos = [];
- }function Ue(e, t) {
- let r = !1;"closed" === e._state && (r = !0);const o = Ve(t);"default" === t.readerType ? ve(e, o, r) : function (e, t, r) {
- const o = e._reader._readIntoRequests.shift();o._resolve(ge(t, r, o._forAuthorCode));
- }(e, o, r);
- }function Ve(e) {
- const t = e.bytesFilled,
- r = e.elementSize;return new e.ctor(e.buffer, e.byteOffset, t / r);
- }function Ge(e, t, r, o) {
- e._queue.push({ buffer: t, byteOffset: r, byteLength: o }), e._queueTotalSize += o;
- }function Je(e, t) {
- const r = t.elementSize,
- o = t.bytesFilled - t.bytesFilled % r,
- n = Math.min(e._queueTotalSize, t.byteLength - t.bytesFilled),
- i = t.bytesFilled + n,
- a = i - i % r;let l = n,
- c = !1;a > o && (l = a - t.bytesFilled, c = !0);const u = e._queue;for (; l > 0;) {
- const r = u[0],
- o = Math.min(l, r.byteLength),
- n = t.byteOffset + t.bytesFilled;s(t.buffer, n, r.buffer, r.byteOffset, o), r.byteLength === o ? u.shift() : (r.byteOffset += o, r.byteLength -= o), e._queueTotalSize -= o, Ke(e, o, t), l -= o;
- }return c;
- }function Ke(e, t, r) {
- Ze(e), r.bytesFilled += t;
- }function Xe(e) {
- 0 === e._queueTotalSize && !0 === e._closeRequested ? (ot(e), we(e._controlledReadableByteStream)) : xe(e);
- }function Ze(e) {
- void 0 !== e._byobRequest && (e._byobRequest._associatedReadableByteStreamController = void 0, e._byobRequest._view = void 0, e._byobRequest = void 0);
- }function et(e) {
- for (; e._pendingPullIntos.length > 0;) {
- if (0 === e._queueTotalSize) return;const t = e._pendingPullIntos[0];!0 === Je(e, t) && (rt(e), Ue(e._controlledReadableByteStream, t));
- }
- }function tt(e, t) {
- const r = e._pendingPullIntos[0];if ("closed" === e._controlledReadableByteStream._state) {
- if (0 !== t) throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");!function (e, t) {
- t.buffer = _(t.buffer);const r = e._controlledReadableByteStream;if (!0 === Te(r)) for (; Re(r) > 0;) Ue(r, rt(e));
- }(e, r);
- } else !function (e, t, r) {
- if (r.bytesFilled + t > r.byteLength) throw new RangeError("bytesWritten out of range");if (Ke(e, t, r), r.bytesFilled < r.elementSize) return;rt(e);const o = r.bytesFilled % r.elementSize;if (o > 0) {
- const t = r.byteOffset + r.bytesFilled,
- n = r.buffer.slice(t - o, t);Ge(e, n, 0, n.byteLength);
- }r.buffer = _(r.buffer), r.bytesFilled -= o, Ue(e._controlledReadableByteStream, r), et(e);
- }(e, t, r);xe(e);
- }function rt(e) {
- const t = e._pendingPullIntos.shift();return Ze(e), t;
- }function ot(e) {
- e._pullAlgorithm = void 0, e._cancelAlgorithm = void 0;
- }function nt(e, t) {
- const r = e._controlledReadableByteStream;"readable" === r._state && (He(e), v(e), ot(e), Se(r, t));
- }function it(e) {
- const t = e._controlledReadableByteStream._state;return "errored" === t ? null : "closed" === t ? 0 : e._strategyHWM - e._queueTotalSize;
- }function at(e) {
- if ("object" != typeof e || null === e) return !1;const t = Object.getOwnPropertyDescriptor(AbortSignal.prototype, "aborted").get;try {
- return t.call(e), !0;
- } catch (e) {
- return !1;
- }
- }function st(e) {
- return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`);
- }function lt(e) {
- return new TypeError("Cannot " + e + " a stream using a released reader");
- }function ct(e) {
- return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`);
- }function ut(e) {
- e._closedPromise = new Promise((t, r) => {
- e._closedPromise_resolve = t, e._closedPromise_reject = r;
- });
- }function dt(e, t) {
- ut(e), ft(e, t);
- }function ft(e, t) {
- e._closedPromise.catch(() => {}), e._closedPromise_reject(t), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0;
- }function _t(e) {
- e._closedPromise_resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0;
- }function ht(e) {
- return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`);
- }function bt(e) {
- return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`);
- }function mt(e) {
- return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`);
- }function yt(e) {
- return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`);
- }class ByteLengthQueuingStrategy {
- constructor({ highWaterMark: e }) {
- i(this, "highWaterMark", e);
- }size(e) {
- return e.byteLength;
- }
- }class CountQueuingStrategy {
- constructor({ highWaterMark: e }) {
- i(this, "highWaterMark", e);
- }size() {
- return 1;
- }
- }class TransformStream {
- constructor(e = {}, t = {}, r = {}) {
- const o = t.size;let n = t.highWaterMark;const i = r.size;let a = r.highWaterMark;if (void 0 !== e.writableType) throw new RangeError("Invalid writable type specified");const s = b(o);if (void 0 === n && (n = 1), n = h(n), void 0 !== e.readableType) throw new RangeError("Invalid readable type specified");const l = b(i);let c;void 0 === a && (a = 0), a = h(a), function (e, t, r, o, n, i) {
- function a() {
- return t;
- }e._writable = function (e, t, r, o, n = 1, i = () => 1) {
- const a = Object.create(WritableStream.prototype);return q(a), $(a, Object.create(WritableStreamDefaultController.prototype), e, t, r, o, n, i), a;
- }(a, function (t) {
- return function (e, t) {
- const r = e._transformStreamController;if (!0 === e._backpressure) {
- const o = e._backpressureChangePromise;return o.then(() => {
- const o = e._writable,
- n = o._state;if ("erroring" === n) throw o._storedError;return Tt(r, t);
- });
- }return Tt(r, t);
- }(e, t);
- }, function () {
- return function (e) {
- const t = e._readable,
- r = e._transformStreamController,
- o = r._flushAlgorithm();return Rt(r), o.then(() => {
- if ("errored" === t._state) throw t._storedError;const e = t._readableStreamController;!0 === Ye(e) && Le(e);
- }).catch(r => {
- throw wt(e, r), t._storedError;
- });
- }(e);
- }, function (t) {
- return function (e, t) {
- return wt(e, t), Promise.resolve();
- }(e, t);
- }, r, o), e._readable = de(a, function () {
- return function (e) {
- return St(e, !1), e._backpressureChangePromise;
- }(e);
- }, function (t) {
- return gt(e, t), Promise.resolve();
- }, n, i), e._backpressure = void 0, e._backpressureChangePromise = void 0, e._backpressureChangePromise_resolve = void 0, St(e, !0), e._transformStreamController = void 0;
- }(this, new Promise(e => {
- c = e;
- }), n, s, a, l), function (e, t) {
- const r = Object.create(TransformStreamDefaultController.prototype);let o = e => {
- try {
- return Pt(r, e), Promise.resolve();
- } catch (e) {
- return Promise.reject(e);
- }
- };const n = t.transform;if (void 0 !== n) {
- if ("function" != typeof n) throw new TypeError("transform is not a method");o = e => f(n, t, [e, r]);
- }const i = u(t, "flush", 0, [r]);!function (e, t, r, o) {
- t._controlledTransformStream = e, e._transformStreamController = t, t._transformAlgorithm = r, t._flushAlgorithm = o;
- }(e, r, o, i);
- }(this, e);const _ = d(e, "start", [this._transformStreamController]);c(_);
- }get readable() {
- if (!1 === pt(this)) throw Et("readable");return this._readable;
- }get writable() {
- if (!1 === pt(this)) throw Et("writable");return this._writable;
- }
- }function pt(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_transformStreamController");
- }function wt(e, t) {
- De(e._readable._readableStreamController, t), gt(e, t);
- }function gt(e, t) {
- Rt(e._transformStreamController), H(e._writable._writableStreamController, t), !0 === e._backpressure && St(e, !1);
- }function St(e, t) {
- void 0 !== e._backpressureChangePromise && e._backpressureChangePromise_resolve(), e._backpressureChangePromise = new Promise(t => {
- e._backpressureChangePromise_resolve = t;
- }), e._backpressure = t;
- }class TransformStreamDefaultController {
- constructor() {
- throw new TypeError("TransformStreamDefaultController instances cannot be created directly");
- }get desiredSize() {
- if (!1 === vt(this)) throw qt("desiredSize");return Me(this._controlledTransformStream._readable._readableStreamController);
- }enqueue(e) {
- if (!1 === vt(this)) throw qt("enqueue");Pt(this, e);
- }error(e) {
- if (!1 === vt(this)) throw qt("error");!function (e, t) {
- wt(e._controlledTransformStream, t);
- }(this, e);
- }terminate() {
- if (!1 === vt(this)) throw qt("terminate");!function (e) {
- const t = e._controlledTransformStream,
- r = t._readable._readableStreamController;!0 === Ye(r) && Le(r);const o = new TypeError("TransformStream terminated");gt(t, o);
- }(this);
- }
- }function vt(e) {
- return !!n(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledTransformStream");
- }function Rt(e) {
- e._transformAlgorithm = void 0, e._flushAlgorithm = void 0;
- }function Pt(e, t) {
- const r = e._controlledTransformStream,
- o = r._readable._readableStreamController;if (!1 === Ye(o)) throw new TypeError("Readable side is not in a state that permits enqueue");try {
- Ie(o, t);
- } catch (e) {
- throw gt(r, e), r._readable._storedError;
- }(function (e) {
- return !0 !== ke(e);
- })(o) !== r._backpressure && St(r, !0);
- }function Tt(e, t) {
- return e._transformAlgorithm(t).catch(t => {
- throw wt(e._controlledTransformStream, t), t;
- });
- }function qt(e) {
- return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`);
- }function Et(e) {
- return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`);
- }const Ct = { ReadableStream: ReadableStream, WritableStream: WritableStream, ByteLengthQueuingStrategy: ByteLengthQueuingStrategy, CountQueuingStrategy: CountQueuingStrategy, TransformStream: TransformStream };void 0 !== r && Object.assign(r, Ct), e.ReadableStream = ReadableStream, e.WritableStream = WritableStream, e.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy, e.CountQueuingStrategy = CountQueuingStrategy, e.TransformStream = TransformStream, Object.defineProperty(e, "__esModule", { value: !0 });
-});
-
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],2:[function(require,module,exports){
-'use strict';
-
-const ea_lib = require('email-addresses');
-
-exports.parse = function parse(line, startAt) {
- if (!line) throw 'Nothing to parse';
-
- line = line.trim();
-
- const addr = ea_lib({
- input: line,
- rfc6532: true, // unicode
- partial: false, // return failed parses
- simple: false, // simple AST
- strict: false, // turn off obs- features in the rfc
- rejectTLD: false, // domains require a "."
- startAt: startAt || null
- });
-
- if (!addr) throw 'No results';
-
- // console.log("Parsed to: ", require('util').inspect(addr, {depth: 10, colors: true}));
-
- return addr.addresses.map(map_addresses);
-};
-
-function map_addresses(adr) {
- if (adr.type === 'group') {
- return new Group(adr.name, adr.addresses.map(map_addresses));
- }
- let comments;
- if (adr.parts.comments) {
- comments = adr.parts.comments.map(function (c) {
- return c.tokens.trim();
- }).join(' ').trim();
- // if (comments.length) {
- // comments = '(' + comments + ')';
- // }
- }
- let l = adr.local;
- if (!adr.name && /:/.test(l)) l = '"' + l + '"';
- return new Address(adr.name, l + '@' + adr.domain, comments);
-}
-
-exports.parseFrom = function (line) {
- return exports.parse(line, 'from');
-};
-
-exports.parseSender = function (line) {
- return exports.parse(line, 'sender');
-};
-
-exports.parseReplyTo = function (line) {
- return exports.parse(line, 'reply-to');
-};
-
-class Group {
- constructor(display_name, addresses) {
- this.phrase = display_name;
- this.addresses = addresses;
- }
-
- format() {
- return this.phrase + ":" + this.addresses.map(function (a) {
- return a.format();
- }).join(',');
- }
-
- name() {
- let phrase = this.phrase;
-
- if (!(phrase && phrase.length)) {
- phrase = this.comment;
- }
-
- const name = _extract_name(phrase);
- return name;
- }
-}
-
-class Address {
- constructor(phrase, address, comment) {
- this.phrase = phrase || '';
- this.address = address || '';
- this.comment = comment || '';
- }
-
- host() {
- const match = /.*@(.*)$/.exec(this.address);
- if (!match) return null;
- return match[1];
- }
-
- user() {
- const match = /^(.*)@/.exec(this.address);
- if (!match) return null;
- return match[1];
- }
-
- format() {
- const phrase = this.phrase;
- const email = this.address;
- let comment = this.comment;
-
- const addr = [];
- const atext = new RegExp('^[\\-\\w !#$%&\'*+/=?^`{|}~]+$');
-
- if (phrase && phrase.length) {
- addr.push(atext.test(phrase.trim()) ? phrase : _quote_no_esc(phrase) ? phrase : '"' + phrase + '"');
-
- if (email && email.length) {
- addr.push("<" + email + ">");
- }
- } else if (email && email.length) {
- addr.push(email);
- }
-
- if (comment && /\S/.test(comment)) {
- comment = comment.replace(/^\s*\(?/, '(').replace(/\)?\s*$/, ')');
- }
-
- if (comment && comment.length) {
- addr.push(comment);
- }
-
- return addr.join(' ');
- }
-
- name() {
- let phrase = this.phrase;
- const addr = this.address;
-
- if (!(phrase && phrase.length)) {
- phrase = this.comment;
- }
-
- let name = _extract_name(phrase);
-
- // first.last@domain address
- if (name === '') {
- const match = /([^%.@_]+([._][^%.@_]+)+)[@%]/.exec(addr);
- if (match) {
- name = match[1].replace(/[._]+/g, ' ');
- name = _extract_name(name);
- }
- }
-
- if (name === '' && /\/g=/i.test(addr)) {
- // X400 style address
- let match = /\/g=([^/]*)/i.exec(addr);
- const f = match[1];
- match = /\/s=([^/]*)/i.exec(addr);
- const l = match[1];
- name = _extract_name(f + " " + l);
- }
-
- return name;
- }
-}
-
-exports.Address = Address;
-
-// This is because JS regexps have no equivalent of
-// zero-width negative look-behind assertion for: /(?<!\\)"/
-function _quote_no_esc(str) {
- if (/^"/.test(str)) return true;
- let match;
- while (match = /^[\s\S]*?([\s\S])"/.exec(str)) {
- if (match[1] !== '\\') {
- return true;
- }
- str = str.substr(match[0].length);
- }
- return false;
-}
-
-exports.isAllLower = function (string) {
- return string === string.toLowerCase();
-};
-
-exports.isAllUpper = function (string) {
- return string === string.toUpperCase();
-};
-
-exports.nameCase = function (string) {
-
- return string.toLowerCase().replace(/\b(\w+)/g, function (_, d1) {
- // Set the case of the name to first char upper rest lower
- return d1.charAt(0).toUpperCase() + d1.slice(1);
- }).replace(/\bMc(\w)/gi, function (_, d1) {
- // Scottish names such as 'McLeod'
- return 'Mc' + d1.toUpperCase();
- }).replace(/\bo'(\w)/gi, function (_, d1) {
- // Irish names such as 'O'Malley, O'Reilly'
- return 'O\'' + d1.toUpperCase();
- }).replace(/\b(x*(ix)?v*(iv)?i*)\b/ig, function (_, d1) {
- // Roman numerals, eg 'Level III Support'
- return d1.toUpperCase();
- });
-};
-
-// given a comment, attempt to extract a person's name
-function _extract_name(name) {
- // Using encodings, too hard. See Mail::Message::Field::Full.
- if (/=?.*?\?=/.test(name)) return '';
-
- // trim whitespace
- name = name.trim();
- name = name.replace(/\s+/, ' ');
-
- // Disregard numeric names (e.g. 123456.1234@compuserve.com)
- if (/^[\d ]+$/.test(name)) return '';
-
- name = name.replace(/^\((.*)\)$/, '$1') // remove outermost parenthesis
- .replace(/^"(.*)"$/, '$1') // remove outer quotation marks
- .replace(/\(.*?\)/g, '') // remove minimal embedded comments
- .replace(/\\/g, '') // remove all escapes
- .replace(/^"(.*)"$/, '$1') // remove internal quotation marks
- .replace(/^([^\s]+) ?, ?(.*)$/, '$2 $1') // reverse "Last, First M." if applicable
- .replace(/,.*/, '');
-
- // Change casing only when the name contains only upper or only
- // lower cased characters.
- if (exports.isAllUpper(name) || exports.isAllLower(name)) {
- // console.log("Changing case of: " + name);
- name = exports.nameCase(name);
- // console.log("Now: " + name);
- }
-
- // some cleanup
- name = name.replace(/\[[^\]]*\]/g, '').replace(/(^[\s'"]+|[\s'"]+$)/g, '').replace(/\s{2,}/g, ' ');
-
- return name;
-}
-
-},{"email-addresses":34}],3:[function(require,module,exports){
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-/**
- * @file {@link http://asmjs.org Asm.js} implementation of the {@link https://en.wikipedia.org/wiki/Advanced_Encryption_Standard Advanced Encryption Standard}.
- * @author Artem S Vybornov <vybornov@gmail.com>
- * @license MIT
- */
-var AES_asm = exports.AES_asm = function () {
- "use strict";
-
- /**
- * Galois Field stuff init flag
- */
-
- var ginit_done = false;
-
- /**
- * Galois Field exponentiation and logarithm tables for 3 (the generator)
- */
- var gexp3, glog3;
-
- /**
- * Init Galois Field tables
- */
- function ginit() {
- gexp3 = [], glog3 = [];
-
- var a = 1,
- c,
- d;
- for (c = 0; c < 255; c++) {
- gexp3[c] = a;
-
- // Multiply by three
- d = a & 0x80, a <<= 1, a &= 255;
- if (d === 0x80) a ^= 0x1b;
- a ^= gexp3[c];
-
- // Set the log table value
- glog3[gexp3[c]] = c;
- }
- gexp3[255] = gexp3[0];
- glog3[0] = 0;
-
- ginit_done = true;
- }
-
- /**
- * Galois Field multiplication
- * @param {number} a
- * @param {number} b
- * @return {number}
- */
- function gmul(a, b) {
- var c = gexp3[(glog3[a] + glog3[b]) % 255];
- if (a === 0 || b === 0) c = 0;
- return c;
- }
-
- /**
- * Galois Field reciprocal
- * @param {number} a
- * @return {number}
- */
- function ginv(a) {
- var i = gexp3[255 - glog3[a]];
- if (a === 0) i = 0;
- return i;
- }
-
- /**
- * AES stuff init flag
- */
- var aes_init_done = false;
-
- /**
- * Encryption, Decryption, S-Box and KeyTransform tables
- *
- * @type {number[]}
- */
- var aes_sbox;
-
- /**
- * @type {number[]}
- */
- var aes_sinv;
-
- /**
- * @type {number[][]}
- */
- var aes_enc;
-
- /**
- * @type {number[][]}
- */
- var aes_dec;
-
- /**
- * Init AES tables
- */
- function aes_init() {
- if (!ginit_done) ginit();
-
- // Calculates AES S-Box value
- function _s(a) {
- var c, s, x;
- s = x = ginv(a);
- for (c = 0; c < 4; c++) {
- s = (s << 1 | s >>> 7) & 255;
- x ^= s;
- }
- x ^= 99;
- return x;
- }
-
- // Tables
- aes_sbox = [], aes_sinv = [], aes_enc = [[], [], [], []], aes_dec = [[], [], [], []];
-
- for (var i = 0; i < 256; i++) {
- var s = _s(i);
-
- // S-Box and its inverse
- aes_sbox[i] = s;
- aes_sinv[s] = i;
-
- // Ecryption and Decryption tables
- aes_enc[0][i] = gmul(2, s) << 24 | s << 16 | s << 8 | gmul(3, s);
- aes_dec[0][s] = gmul(14, i) << 24 | gmul(9, i) << 16 | gmul(13, i) << 8 | gmul(11, i);
- // Rotate tables
- for (var t = 1; t < 4; t++) {
- aes_enc[t][i] = aes_enc[t - 1][i] >>> 8 | aes_enc[t - 1][i] << 24;
- aes_dec[t][s] = aes_dec[t - 1][s] >>> 8 | aes_dec[t - 1][s] << 24;
- }
- }
-
- aes_init_done = true;
- }
-
- /**
- * Asm.js module constructor.
- *
- * <p>
- * Heap buffer layout by offset:
- * <pre>
- * 0x0000 encryption key schedule
- * 0x0400 decryption key schedule
- * 0x0800 sbox
- * 0x0c00 inv sbox
- * 0x1000 encryption tables
- * 0x2000 decryption tables
- * 0x3000 reserved (future GCM multiplication lookup table)
- * 0x4000 data
- * </pre>
- * Don't touch anything before <code>0x400</code>.
- * </p>
- *
- * @alias AES_asm
- * @class
- * @param foreign - <i>ignored</i>
- * @param buffer - heap buffer to link with
- */
- var wrapper = function wrapper(foreign, buffer) {
- // Init AES stuff for the first time
- if (!aes_init_done) aes_init();
-
- // Fill up AES tables
- var heap = new Uint32Array(buffer);
- heap.set(aes_sbox, 0x0800 >> 2);
- heap.set(aes_sinv, 0x0c00 >> 2);
- for (var i = 0; i < 4; i++) {
- heap.set(aes_enc[i], 0x1000 + 0x400 * i >> 2);
- heap.set(aes_dec[i], 0x2000 + 0x400 * i >> 2);
- }
-
- /**
- * Calculate AES key schedules.
- * @instance
- * @memberof AES_asm
- * @param {number} ks - key size, 4/6/8 (for 128/192/256-bit key correspondingly)
- * @param {number} k0 - key vector components
- * @param {number} k1 - key vector components
- * @param {number} k2 - key vector components
- * @param {number} k3 - key vector components
- * @param {number} k4 - key vector components
- * @param {number} k5 - key vector components
- * @param {number} k6 - key vector components
- * @param {number} k7 - key vector components
- */
- function set_key(ks, k0, k1, k2, k3, k4, k5, k6, k7) {
- var ekeys = heap.subarray(0x000, 60),
- dkeys = heap.subarray(0x100, 0x100 + 60);
-
- // Encryption key schedule
- ekeys.set([k0, k1, k2, k3, k4, k5, k6, k7]);
- for (var i = ks, rcon = 1; i < 4 * ks + 28; i++) {
- var k = ekeys[i - 1];
- if (i % ks === 0 || ks === 8 && i % ks === 4) {
- k = aes_sbox[k >>> 24] << 24 ^ aes_sbox[k >>> 16 & 255] << 16 ^ aes_sbox[k >>> 8 & 255] << 8 ^ aes_sbox[k & 255];
- }
- if (i % ks === 0) {
- k = k << 8 ^ k >>> 24 ^ rcon << 24;
- rcon = rcon << 1 ^ (rcon & 0x80 ? 0x1b : 0);
- }
- ekeys[i] = ekeys[i - ks] ^ k;
- }
-
- // Decryption key schedule
- for (var j = 0; j < i; j += 4) {
- for (var jj = 0; jj < 4; jj++) {
- var k = ekeys[i - (4 + j) + (4 - jj) % 4];
- if (j < 4 || j >= i - 4) {
- dkeys[j + jj] = k;
- } else {
- dkeys[j + jj] = aes_dec[0][aes_sbox[k >>> 24]] ^ aes_dec[1][aes_sbox[k >>> 16 & 255]] ^ aes_dec[2][aes_sbox[k >>> 8 & 255]] ^ aes_dec[3][aes_sbox[k & 255]];
- }
- }
- }
-
- // Set rounds number
- asm.set_rounds(ks + 5);
- }
-
- // create library object with necessary properties
- var stdlib = { Uint8Array: Uint8Array, Uint32Array: Uint32Array };
-
- var asm = function (stdlib, foreign, buffer) {
- "use asm";
-
- var S0 = 0,
- S1 = 0,
- S2 = 0,
- S3 = 0,
- I0 = 0,
- I1 = 0,
- I2 = 0,
- I3 = 0,
- N0 = 0,
- N1 = 0,
- N2 = 0,
- N3 = 0,
- M0 = 0,
- M1 = 0,
- M2 = 0,
- M3 = 0,
- H0 = 0,
- H1 = 0,
- H2 = 0,
- H3 = 0,
- R = 0;
-
- var HEAP = new stdlib.Uint32Array(buffer),
- DATA = new stdlib.Uint8Array(buffer);
-
- /**
- * AES core
- * @param {number} k - precomputed key schedule offset
- * @param {number} s - precomputed sbox table offset
- * @param {number} t - precomputed round table offset
- * @param {number} r - number of inner rounds to perform
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _core(k, s, t, r, x0, x1, x2, x3) {
- k = k | 0;
- s = s | 0;
- t = t | 0;
- r = r | 0;
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- var t1 = 0,
- t2 = 0,
- t3 = 0,
- y0 = 0,
- y1 = 0,
- y2 = 0,
- y3 = 0,
- i = 0;
-
- t1 = t | 0x400, t2 = t | 0x800, t3 = t | 0xc00;
-
- // round 0
- x0 = x0 ^ HEAP[(k | 0) >> 2], x1 = x1 ^ HEAP[(k | 4) >> 2], x2 = x2 ^ HEAP[(k | 8) >> 2], x3 = x3 ^ HEAP[(k | 12) >> 2];
-
- // round 1..r
- for (i = 16; (i | 0) <= r << 4; i = i + 16 | 0) {
- y0 = HEAP[(t | x0 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x1 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x2 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x3 << 2 & 1020) >> 2] ^ HEAP[(k | i | 0) >> 2], y1 = HEAP[(t | x1 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x2 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x3 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x0 << 2 & 1020) >> 2] ^ HEAP[(k | i | 4) >> 2], y2 = HEAP[(t | x2 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x3 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x0 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x1 << 2 & 1020) >> 2] ^ HEAP[(k | i | 8) >> 2], y3 = HEAP[(t | x3 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x0 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x1 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x2 << 2 & 1020) >> 2] ^ HEAP[(k | i | 12) >> 2];
- x0 = y0, x1 = y1, x2 = y2, x3 = y3;
- }
-
- // final round
- S0 = HEAP[(s | x0 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x1 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x2 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x3 << 2 & 1020) >> 2] ^ HEAP[(k | i | 0) >> 2], S1 = HEAP[(s | x1 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x2 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x3 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x0 << 2 & 1020) >> 2] ^ HEAP[(k | i | 4) >> 2], S2 = HEAP[(s | x2 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x3 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x0 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x1 << 2 & 1020) >> 2] ^ HEAP[(k | i | 8) >> 2], S3 = HEAP[(s | x3 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x0 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x1 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x2 << 2 & 1020) >> 2] ^ HEAP[(k | i | 12) >> 2];
- }
-
- /**
- * ECB mode encryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _ecb_enc(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, x0, x1, x2, x3);
- }
-
- /**
- * ECB mode decryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _ecb_dec(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- var t = 0;
-
- _core(0x0400, 0x0c00, 0x2000, R, x0, x3, x2, x1);
-
- t = S1, S1 = S3, S3 = t;
- }
-
- /**
- * CBC mode encryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _cbc_enc(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, I0 ^ x0, I1 ^ x1, I2 ^ x2, I3 ^ x3);
-
- I0 = S0, I1 = S1, I2 = S2, I3 = S3;
- }
-
- /**
- * CBC mode decryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _cbc_dec(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- var t = 0;
-
- _core(0x0400, 0x0c00, 0x2000, R, x0, x3, x2, x1);
-
- t = S1, S1 = S3, S3 = t;
-
- S0 = S0 ^ I0, S1 = S1 ^ I1, S2 = S2 ^ I2, S3 = S3 ^ I3;
-
- I0 = x0, I1 = x1, I2 = x2, I3 = x3;
- }
-
- /**
- * CFB mode encryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _cfb_enc(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, I0, I1, I2, I3);
-
- I0 = S0 = S0 ^ x0, I1 = S1 = S1 ^ x1, I2 = S2 = S2 ^ x2, I3 = S3 = S3 ^ x3;
- }
-
- /**
- * CFB mode decryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _cfb_dec(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, I0, I1, I2, I3);
-
- S0 = S0 ^ x0, S1 = S1 ^ x1, S2 = S2 ^ x2, S3 = S3 ^ x3;
-
- I0 = x0, I1 = x1, I2 = x2, I3 = x3;
- }
-
- /**
- * OFB mode encryption / decryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _ofb(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, I0, I1, I2, I3);
-
- I0 = S0, I1 = S1, I2 = S2, I3 = S3;
-
- S0 = S0 ^ x0, S1 = S1 ^ x1, S2 = S2 ^ x2, S3 = S3 ^ x3;
- }
-
- /**
- * CTR mode encryption / decryption
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _ctr(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- _core(0x0000, 0x0800, 0x1000, R, N0, N1, N2, N3);
-
- N3 = ~M3 & N3 | M3 & N3 + 1;
- N2 = ~M2 & N2 | M2 & N2 + ((N3 | 0) == 0);
- N1 = ~M1 & N1 | M1 & N1 + ((N2 | 0) == 0);
- N0 = ~M0 & N0 | M0 & N0 + ((N1 | 0) == 0);
-
- S0 = S0 ^ x0;
- S1 = S1 ^ x1;
- S2 = S2 ^ x2;
- S3 = S3 ^ x3;
- }
-
- /**
- * GCM mode MAC calculation
- * @param {number} x0 - 128-bit input block vector
- * @param {number} x1 - 128-bit input block vector
- * @param {number} x2 - 128-bit input block vector
- * @param {number} x3 - 128-bit input block vector
- */
- function _gcm_mac(x0, x1, x2, x3) {
- x0 = x0 | 0;
- x1 = x1 | 0;
- x2 = x2 | 0;
- x3 = x3 | 0;
-
- var y0 = 0,
- y1 = 0,
- y2 = 0,
- y3 = 0,
- z0 = 0,
- z1 = 0,
- z2 = 0,
- z3 = 0,
- i = 0,
- c = 0;
-
- x0 = x0 ^ I0, x1 = x1 ^ I1, x2 = x2 ^ I2, x3 = x3 ^ I3;
-
- y0 = H0 | 0, y1 = H1 | 0, y2 = H2 | 0, y3 = H3 | 0;
-
- for (; (i | 0) < 128; i = i + 1 | 0) {
- if (y0 >>> 31) {
- z0 = z0 ^ x0, z1 = z1 ^ x1, z2 = z2 ^ x2, z3 = z3 ^ x3;
- }
-
- y0 = y0 << 1 | y1 >>> 31, y1 = y1 << 1 | y2 >>> 31, y2 = y2 << 1 | y3 >>> 31, y3 = y3 << 1;
-
- c = x3 & 1;
-
- x3 = x3 >>> 1 | x2 << 31, x2 = x2 >>> 1 | x1 << 31, x1 = x1 >>> 1 | x0 << 31, x0 = x0 >>> 1;
-
- if (c) x0 = x0 ^ 0xe1000000;
- }
-
- I0 = z0, I1 = z1, I2 = z2, I3 = z3;
- }
-
- /**
- * Set the internal rounds number.
- * @instance
- * @memberof AES_asm
- * @param {number} r - number if inner AES rounds
- */
- function set_rounds(r) {
- r = r | 0;
- R = r;
- }
-
- /**
- * Populate the internal state of the module.
- * @instance
- * @memberof AES_asm
- * @param {number} s0 - state vector
- * @param {number} s1 - state vector
- * @param {number} s2 - state vector
- * @param {number} s3 - state vector
- */
- function set_state(s0, s1, s2, s3) {
- s0 = s0 | 0;
- s1 = s1 | 0;
- s2 = s2 | 0;
- s3 = s3 | 0;
-
- S0 = s0, S1 = s1, S2 = s2, S3 = s3;
- }
-
- /**
- * Populate the internal iv of the module.
- * @instance
- * @memberof AES_asm
- * @param {number} i0 - iv vector
- * @param {number} i1 - iv vector
- * @param {number} i2 - iv vector
- * @param {number} i3 - iv vector
- */
- function set_iv(i0, i1, i2, i3) {
- i0 = i0 | 0;
- i1 = i1 | 0;
- i2 = i2 | 0;
- i3 = i3 | 0;
-
- I0 = i0, I1 = i1, I2 = i2, I3 = i3;
- }
-
- /**
- * Set nonce for CTR-family modes.
- * @instance
- * @memberof AES_asm
- * @param {number} n0 - nonce vector
- * @param {number} n1 - nonce vector
- * @param {number} n2 - nonce vector
- * @param {number} n3 - nonce vector
- */
- function set_nonce(n0, n1, n2, n3) {
- n0 = n0 | 0;
- n1 = n1 | 0;
- n2 = n2 | 0;
- n3 = n3 | 0;
-
- N0 = n0, N1 = n1, N2 = n2, N3 = n3;
- }
-
- /**
- * Set counter mask for CTR-family modes.
- * @instance
- * @memberof AES_asm
- * @param {number} m0 - counter mask vector
- * @param {number} m1 - counter mask vector
- * @param {number} m2 - counter mask vector
- * @param {number} m3 - counter mask vector
- */
- function set_mask(m0, m1, m2, m3) {
- m0 = m0 | 0;
- m1 = m1 | 0;
- m2 = m2 | 0;
- m3 = m3 | 0;
-
- M0 = m0, M1 = m1, M2 = m2, M3 = m3;
- }
-
- /**
- * Set counter for CTR-family modes.
- * @instance
- * @memberof AES_asm
- * @param {number} c0 - counter vector
- * @param {number} c1 - counter vector
- * @param {number} c2 - counter vector
- * @param {number} c3 - counter vector
- */
- function set_counter(c0, c1, c2, c3) {
- c0 = c0 | 0;
- c1 = c1 | 0;
- c2 = c2 | 0;
- c3 = c3 | 0;
-
- N3 = ~M3 & N3 | M3 & c3, N2 = ~M2 & N2 | M2 & c2, N1 = ~M1 & N1 | M1 & c1, N0 = ~M0 & N0 | M0 & c0;
- }
-
- /**
- * Store the internal state vector into the heap.
- * @instance
- * @memberof AES_asm
- * @param {number} pos - offset where to put the data
- * @return {number} The number of bytes have been written into the heap, always 16.
- */
- function get_state(pos) {
- pos = pos | 0;
-
- if (pos & 15) return -1;
-
- DATA[pos | 0] = S0 >>> 24, DATA[pos | 1] = S0 >>> 16 & 255, DATA[pos | 2] = S0 >>> 8 & 255, DATA[pos | 3] = S0 & 255, DATA[pos | 4] = S1 >>> 24, DATA[pos | 5] = S1 >>> 16 & 255, DATA[pos | 6] = S1 >>> 8 & 255, DATA[pos | 7] = S1 & 255, DATA[pos | 8] = S2 >>> 24, DATA[pos | 9] = S2 >>> 16 & 255, DATA[pos | 10] = S2 >>> 8 & 255, DATA[pos | 11] = S2 & 255, DATA[pos | 12] = S3 >>> 24, DATA[pos | 13] = S3 >>> 16 & 255, DATA[pos | 14] = S3 >>> 8 & 255, DATA[pos | 15] = S3 & 255;
-
- return 16;
- }
-
- /**
- * Store the internal iv vector into the heap.
- * @instance
- * @memberof AES_asm
- * @param {number} pos - offset where to put the data
- * @return {number} The number of bytes have been written into the heap, always 16.
- */
- function get_iv(pos) {
- pos = pos | 0;
-
- if (pos & 15) return -1;
-
- DATA[pos | 0] = I0 >>> 24, DATA[pos | 1] = I0 >>> 16 & 255, DATA[pos | 2] = I0 >>> 8 & 255, DATA[pos | 3] = I0 & 255, DATA[pos | 4] = I1 >>> 24, DATA[pos | 5] = I1 >>> 16 & 255, DATA[pos | 6] = I1 >>> 8 & 255, DATA[pos | 7] = I1 & 255, DATA[pos | 8] = I2 >>> 24, DATA[pos | 9] = I2 >>> 16 & 255, DATA[pos | 10] = I2 >>> 8 & 255, DATA[pos | 11] = I2 & 255, DATA[pos | 12] = I3 >>> 24, DATA[pos | 13] = I3 >>> 16 & 255, DATA[pos | 14] = I3 >>> 8 & 255, DATA[pos | 15] = I3 & 255;
-
- return 16;
- }
-
- /**
- * GCM initialization.
- * @instance
- * @memberof AES_asm
- */
- function gcm_init() {
- _ecb_enc(0, 0, 0, 0);
- H0 = S0, H1 = S1, H2 = S2, H3 = S3;
- }
-
- /**
- * Perform ciphering operation on the supplied data.
- * @instance
- * @memberof AES_asm
- * @param {number} mode - block cipher mode (see {@link AES_asm} mode constants)
- * @param {number} pos - offset of the data being processed
- * @param {number} len - length of the data being processed
- * @return {number} Actual amount of data have been processed.
- */
- function cipher(mode, pos, len) {
- mode = mode | 0;
- pos = pos | 0;
- len = len | 0;
-
- var ret = 0;
-
- if (pos & 15) return -1;
-
- while ((len | 0) >= 16) {
- _cipher_modes[mode & 7](DATA[pos | 0] << 24 | DATA[pos | 1] << 16 | DATA[pos | 2] << 8 | DATA[pos | 3], DATA[pos | 4] << 24 | DATA[pos | 5] << 16 | DATA[pos | 6] << 8 | DATA[pos | 7], DATA[pos | 8] << 24 | DATA[pos | 9] << 16 | DATA[pos | 10] << 8 | DATA[pos | 11], DATA[pos | 12] << 24 | DATA[pos | 13] << 16 | DATA[pos | 14] << 8 | DATA[pos | 15]);
-
- DATA[pos | 0] = S0 >>> 24, DATA[pos | 1] = S0 >>> 16 & 255, DATA[pos | 2] = S0 >>> 8 & 255, DATA[pos | 3] = S0 & 255, DATA[pos | 4] = S1 >>> 24, DATA[pos | 5] = S1 >>> 16 & 255, DATA[pos | 6] = S1 >>> 8 & 255, DATA[pos | 7] = S1 & 255, DATA[pos | 8] = S2 >>> 24, DATA[pos | 9] = S2 >>> 16 & 255, DATA[pos | 10] = S2 >>> 8 & 255, DATA[pos | 11] = S2 & 255, DATA[pos | 12] = S3 >>> 24, DATA[pos | 13] = S3 >>> 16 & 255, DATA[pos | 14] = S3 >>> 8 & 255, DATA[pos | 15] = S3 & 255;
-
- ret = ret + 16 | 0, pos = pos + 16 | 0, len = len - 16 | 0;
- }
-
- return ret | 0;
- }
-
- /**
- * Calculates MAC of the supplied data.
- * @instance
- * @memberof AES_asm
- * @param {number} mode - block cipher mode (see {@link AES_asm} mode constants)
- * @param {number} pos - offset of the data being processed
- * @param {number} len - length of the data being processed
- * @return {number} Actual amount of data have been processed.
- */
- function mac(mode, pos, len) {
- mode = mode | 0;
- pos = pos | 0;
- len = len | 0;
-
- var ret = 0;
-
- if (pos & 15) return -1;
-
- while ((len | 0) >= 16) {
- _mac_modes[mode & 1](DATA[pos | 0] << 24 | DATA[pos | 1] << 16 | DATA[pos | 2] << 8 | DATA[pos | 3], DATA[pos | 4] << 24 | DATA[pos | 5] << 16 | DATA[pos | 6] << 8 | DATA[pos | 7], DATA[pos | 8] << 24 | DATA[pos | 9] << 16 | DATA[pos | 10] << 8 | DATA[pos | 11], DATA[pos | 12] << 24 | DATA[pos | 13] << 16 | DATA[pos | 14] << 8 | DATA[pos | 15]);
-
- ret = ret + 16 | 0, pos = pos + 16 | 0, len = len - 16 | 0;
- }
-
- return ret | 0;
- }
-
- /**
- * AES cipher modes table (virual methods)
- */
- var _cipher_modes = [_ecb_enc, _ecb_dec, _cbc_enc, _cbc_dec, _cfb_enc, _cfb_dec, _ofb, _ctr];
-
- /**
- * AES MAC modes table (virual methods)
- */
- var _mac_modes = [_cbc_enc, _gcm_mac];
-
- /**
- * Asm.js module exports
- */
- return {
- set_rounds: set_rounds,
- set_state: set_state,
- set_iv: set_iv,
- set_nonce: set_nonce,
- set_mask: set_mask,
- set_counter: set_counter,
- get_state: get_state,
- get_iv: get_iv,
- gcm_init: gcm_init,
- cipher: cipher,
- mac: mac
- };
- }(stdlib, foreign, buffer);
-
- asm.set_key = set_key;
-
- return asm;
- };
-
- /**
- * AES enciphering mode constants
- * @enum {number}
- * @const
- */
- wrapper.ENC = {
- ECB: 0,
- CBC: 2,
- CFB: 4,
- OFB: 6,
- CTR: 7
- },
-
- /**
- * AES deciphering mode constants
- * @enum {number}
- * @const
- */
- wrapper.DEC = {
- ECB: 1,
- CBC: 3,
- CFB: 5,
- OFB: 6,
- CTR: 7
- },
-
- /**
- * AES MAC mode constants
- * @enum {number}
- * @const
- */
- wrapper.MAC = {
- CBC: 0,
- GCM: 1
- };
-
- /**
- * Heap data offset
- * @type {number}
- * @const
- */
- wrapper.HEAP_DATA = 0x4000;
-
- return wrapper;
-}();
-
-},{}],4:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES = undefined;
-
-var _aes = require('./aes.asm');
-
-var _utils = require('../other/utils');
-
-var _errors = require('../other/errors');
-
-var heap_pool = [];
-var asm_pool = [];
-var AES = /** @class */function () {
- function AES(key, iv, padding, mode) {
- if (padding === void 0) {
- padding = true;
- }
- this.pos = 0;
- this.len = 0;
- this.mode = mode;
- // The AES object state
- this.pos = 0;
- this.len = 0;
- this.key = key;
- this.iv = iv;
- this.padding = padding;
- // The AES "worker"
- this.acquire_asm();
- }
- AES.prototype.acquire_asm = function () {
- if (this.heap === undefined && this.asm === undefined) {
- this.heap = heap_pool.pop() || (0, _utils._heap_init)().subarray(_aes.AES_asm.HEAP_DATA);
- this.asm = asm_pool.pop() || (0, _aes.AES_asm)(null, this.heap.buffer);
- this.reset(this.key, this.iv);
- }
- };
- AES.prototype.release_asm = function () {
- heap_pool.push(this.heap);
- ;
- asm_pool.push(this.asm);
- this.heap = undefined;
- this.asm = undefined;
- };
- AES.prototype.reset = function (key, iv) {
- // Key
- var keylen = key.length;
- if (keylen !== 16 && keylen !== 24 && keylen !== 32) throw new _errors.IllegalArgumentError('illegal key size');
- var keyview = new DataView(key.buffer, key.byteOffset, key.byteLength);
- this.asm.set_key(keylen >> 2, keyview.getUint32(0), keyview.getUint32(4), keyview.getUint32(8), keyview.getUint32(12), keylen > 16 ? keyview.getUint32(16) : 0, keylen > 16 ? keyview.getUint32(20) : 0, keylen > 24 ? keyview.getUint32(24) : 0, keylen > 24 ? keyview.getUint32(28) : 0);
- // IV
- if (iv !== undefined) {
- if (iv.length !== 16) throw new _errors.IllegalArgumentError('illegal iv size');
- var ivview = new DataView(iv.buffer, iv.byteOffset, iv.byteLength);
- this.asm.set_iv(ivview.getUint32(0), ivview.getUint32(4), ivview.getUint32(8), ivview.getUint32(12));
- } else {
- this.asm.set_iv(0, 0, 0, 0);
- }
- };
- AES.prototype.AES_Encrypt_process = function (data) {
- if (!(0, _utils.is_bytes)(data)) throw new TypeError("data isn't of expected type");
- this.acquire_asm();
- var asm = this.asm;
- var heap = this.heap;
- var amode = _aes.AES_asm.ENC[this.mode];
- var hpos = _aes.AES_asm.HEAP_DATA;
- var pos = this.pos;
- var len = this.len;
- var dpos = 0;
- var dlen = data.length || 0;
- var rpos = 0;
- var rlen = len + dlen & -16;
- var wlen = 0;
- var result = new Uint8Array(rlen);
- while (dlen > 0) {
- wlen = (0, _utils._heap_write)(heap, pos + len, data, dpos, dlen);
- len += wlen;
- dpos += wlen;
- dlen -= wlen;
- wlen = asm.cipher(amode, hpos + pos, len);
- if (wlen) result.set(heap.subarray(pos, pos + wlen), rpos);
- rpos += wlen;
- if (wlen < len) {
- pos += wlen;
- len -= wlen;
- } else {
- pos = 0;
- len = 0;
- }
- }
- this.pos = pos;
- this.len = len;
- return result;
- };
- AES.prototype.AES_Encrypt_finish = function () {
- this.acquire_asm();
- var asm = this.asm;
- var heap = this.heap;
- var amode = _aes.AES_asm.ENC[this.mode];
- var hpos = _aes.AES_asm.HEAP_DATA;
- var pos = this.pos;
- var len = this.len;
- var plen = 16 - len % 16;
- var rlen = len;
- if (this.hasOwnProperty('padding')) {
- if (this.padding) {
- for (var p = 0; p < plen; ++p) {
- heap[pos + len + p] = plen;
- }
- len += plen;
- rlen = len;
- } else if (len % 16) {
- throw new _errors.IllegalArgumentError('data length must be a multiple of the block size');
- }
- } else {
- len += plen;
- }
- var result = new Uint8Array(rlen);
- if (len) asm.cipher(amode, hpos + pos, len);
- if (rlen) result.set(heap.subarray(pos, pos + rlen));
- this.pos = 0;
- this.len = 0;
- this.release_asm();
- return result;
- };
- AES.prototype.AES_Decrypt_process = function (data) {
- if (!(0, _utils.is_bytes)(data)) throw new TypeError("data isn't of expected type");
- this.acquire_asm();
- var asm = this.asm;
- var heap = this.heap;
- var amode = _aes.AES_asm.DEC[this.mode];
- var hpos = _aes.AES_asm.HEAP_DATA;
- var pos = this.pos;
- var len = this.len;
- var dpos = 0;
- var dlen = data.length || 0;
- var rpos = 0;
- var rlen = len + dlen & -16;
- var plen = 0;
- var wlen = 0;
- if (this.padding) {
- plen = len + dlen - rlen || 16;
- rlen -= plen;
- }
- var result = new Uint8Array(rlen);
- while (dlen > 0) {
- wlen = (0, _utils._heap_write)(heap, pos + len, data, dpos, dlen);
- len += wlen;
- dpos += wlen;
- dlen -= wlen;
- wlen = asm.cipher(amode, hpos + pos, len - (!dlen ? plen : 0));
- if (wlen) result.set(heap.subarray(pos, pos + wlen), rpos);
- rpos += wlen;
- if (wlen < len) {
- pos += wlen;
- len -= wlen;
- } else {
- pos = 0;
- len = 0;
- }
- }
- this.pos = pos;
- this.len = len;
- return result;
- };
- AES.prototype.AES_Decrypt_finish = function () {
- this.acquire_asm();
- var asm = this.asm;
- var heap = this.heap;
- var amode = _aes.AES_asm.DEC[this.mode];
- var hpos = _aes.AES_asm.HEAP_DATA;
- var pos = this.pos;
- var len = this.len;
- var rlen = len;
- if (len > 0) {
- if (len % 16) {
- if (this.hasOwnProperty('padding')) {
- throw new _errors.IllegalArgumentError('data length must be a multiple of the block size');
- } else {
- len += 16 - len % 16;
- }
- }
- asm.cipher(amode, hpos + pos, len);
- if (this.hasOwnProperty('padding') && this.padding) {
- var pad = heap[pos + rlen - 1];
- if (pad < 1 || pad > 16 || pad > rlen) throw new _errors.SecurityError('bad padding');
- var pcheck = 0;
- for (var i = pad; i > 1; i--) pcheck |= pad ^ heap[pos + rlen - i];
- if (pcheck) throw new _errors.SecurityError('bad padding');
- rlen -= pad;
- }
- }
- var result = new Uint8Array(rlen);
- if (rlen > 0) {
- result.set(heap.subarray(pos, pos + rlen));
- }
- this.pos = 0;
- this.len = 0;
- this.release_asm();
- return result;
- };
- return AES;
-}();
-exports.AES = AES;
-
-},{"../other/errors":15,"../other/utils":16,"./aes.asm":3}],5:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES_CBC = undefined;
-
-var _aes = require('./aes');
-
-var _utils = require('../other/utils');
-
-var __extends = undefined && undefined.__extends || function () {
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var AES_CBC = /** @class */function (_super) {
- __extends(AES_CBC, _super);
- function AES_CBC(key, iv, padding) {
- if (padding === void 0) {
- padding = true;
- }
- return _super.call(this, key, iv, padding, 'CBC') || this;
- }
- AES_CBC.encrypt = function (data, key, padding, iv) {
- if (padding === void 0) {
- padding = true;
- }
- return new AES_CBC(key, iv, padding).encrypt(data);
- };
- AES_CBC.decrypt = function (data, key, padding, iv) {
- if (padding === void 0) {
- padding = true;
- }
- return new AES_CBC(key, iv, padding).decrypt(data);
- };
- AES_CBC.prototype.encrypt = function (data) {
- var r1 = this.AES_Encrypt_process(data);
- var r2 = this.AES_Encrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- AES_CBC.prototype.decrypt = function (data) {
- var r1 = this.AES_Decrypt_process(data);
- var r2 = this.AES_Decrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- return AES_CBC;
-}(_aes.AES);
-exports.AES_CBC = AES_CBC;
-
-},{"../other/utils":16,"./aes":4}],6:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES_CFB = undefined;
-
-var _aes = require('./aes');
-
-var _utils = require('../other/utils');
-
-var __extends = undefined && undefined.__extends || function () {
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var AES_CFB = /** @class */function (_super) {
- __extends(AES_CFB, _super);
- function AES_CFB(key, iv) {
- var _this = _super.call(this, key, iv, true, 'CFB') || this;
- delete _this.padding;
- return _this;
- }
- AES_CFB.encrypt = function (data, key, iv) {
- return new AES_CFB(key, iv).encrypt(data);
- };
- AES_CFB.decrypt = function (data, key, iv) {
- return new AES_CFB(key, iv).decrypt(data);
- };
- AES_CFB.prototype.encrypt = function (data) {
- var r1 = this.AES_Encrypt_process(data);
- var r2 = this.AES_Encrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- AES_CFB.prototype.decrypt = function (data) {
- var r1 = this.AES_Decrypt_process(data);
- var r2 = this.AES_Decrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- return AES_CFB;
-}(_aes.AES);
-exports.AES_CFB = AES_CFB;
-
-},{"../other/utils":16,"./aes":4}],7:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES_CTR = undefined;
-
-var _aes = require('./aes');
-
-var _errors = require('../other/errors');
-
-var _utils = require('../other/utils');
-
-var __extends = undefined && undefined.__extends || function () {
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var AES_CTR = /** @class */function (_super) {
- __extends(AES_CTR, _super);
- function AES_CTR(key, nonce) {
- var _this = _super.call(this, key, undefined, false, 'CTR') || this;
- delete _this.padding;
- _this.AES_CTR_set_options(nonce);
- return _this;
- }
- AES_CTR.encrypt = function (data, key, nonce) {
- return new AES_CTR(key, nonce).encrypt(data);
- };
- AES_CTR.decrypt = function (data, key, nonce) {
- return new AES_CTR(key, nonce).encrypt(data);
- };
- AES_CTR.prototype.encrypt = function (data) {
- var r1 = this.AES_Encrypt_process(data);
- var r2 = this.AES_Encrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- AES_CTR.prototype.decrypt = function (data) {
- var r1 = this.AES_Encrypt_process(data);
- var r2 = this.AES_Encrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- AES_CTR.prototype.AES_CTR_set_options = function (nonce, counter, size) {
- if (size !== undefined) {
- if (size < 8 || size > 48) throw new _errors.IllegalArgumentError('illegal counter size');
- var mask = Math.pow(2, size) - 1;
- this.asm.set_mask(0, 0, mask / 0x100000000 | 0, mask | 0);
- } else {
- size = 48;
- this.asm.set_mask(0, 0, 0xffff, 0xffffffff);
- }
- if (nonce !== undefined) {
- var len = nonce.length;
- if (!len || len > 16) throw new _errors.IllegalArgumentError('illegal nonce size');
- var view = new DataView(new ArrayBuffer(16));
- new Uint8Array(view.buffer).set(nonce);
- this.asm.set_nonce(view.getUint32(0), view.getUint32(4), view.getUint32(8), view.getUint32(12));
- } else {
- throw new Error('nonce is required');
- }
- if (counter !== undefined) {
- if (counter < 0 || counter >= Math.pow(2, size)) throw new _errors.IllegalArgumentError('illegal counter value');
- this.asm.set_counter(0, 0, counter / 0x100000000 | 0, counter | 0);
- }
- };
- return AES_CTR;
-}(_aes.AES);
-exports.AES_CTR = AES_CTR;
-
-},{"../other/errors":15,"../other/utils":16,"./aes":4}],8:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES_ECB = undefined;
-
-var _aes = require('./aes');
-
-var _utils = require('../other/utils');
-
-var __extends = undefined && undefined.__extends || function () {
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var AES_ECB = /** @class */function (_super) {
- __extends(AES_ECB, _super);
- function AES_ECB(key, padding) {
- if (padding === void 0) {
- padding = false;
- }
- return _super.call(this, key, undefined, padding, 'ECB') || this;
- }
- AES_ECB.encrypt = function (data, key, padding) {
- if (padding === void 0) {
- padding = false;
- }
- return new AES_ECB(key, padding).encrypt(data);
- };
- AES_ECB.decrypt = function (data, key, padding) {
- if (padding === void 0) {
- padding = false;
- }
- return new AES_ECB(key, padding).decrypt(data);
- };
- AES_ECB.prototype.encrypt = function (data) {
- var r1 = this.AES_Encrypt_process(data);
- var r2 = this.AES_Encrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- AES_ECB.prototype.decrypt = function (data) {
- var r1 = this.AES_Decrypt_process(data);
- var r2 = this.AES_Decrypt_finish();
- return (0, _utils.joinBytes)(r1, r2);
- };
- return AES_ECB;
-}(_aes.AES);
-exports.AES_ECB = AES_ECB;
-
-},{"../other/utils":16,"./aes":4}],9:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.AES_GCM = undefined;
-
-var _errors = require('../other/errors');
-
-var _utils = require('../other/utils');
-
-var _aes = require('./aes');
-
-var _aes2 = require('./aes.asm');
-
-var __extends = undefined && undefined.__extends || function () {
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var _AES_GCM_data_maxLength = 68719476704; // 2^36 - 2^5
-var AES_GCM = /** @class */function (_super) {
- __extends(AES_GCM, _super);
- function AES_GCM(key, nonce, adata, tagSize) {
- if (tagSize === void 0) {
- tagSize = 16;
- }
- var _this = _super.call(this, key, undefined, false, 'CTR') || this;
- _this.tagSize = tagSize;
- _this.gamma0 = 0;
- _this.counter = 1;
- // Init GCM
- _this.asm.gcm_init();
- // Tag size
- if (_this.tagSize < 4 || _this.tagSize > 16) throw new _errors.IllegalArgumentError('illegal tagSize value');
- // Nonce
- var noncelen = nonce.length || 0;
- var noncebuf = new Uint8Array(16);
- if (noncelen !== 12) {
- _this._gcm_mac_process(nonce);
- _this.heap[0] = 0;
- _this.heap[1] = 0;
- _this.heap[2] = 0;
- _this.heap[3] = 0;
- _this.heap[4] = 0;
- _this.heap[5] = 0;
- _this.heap[6] = 0;
- _this.heap[7] = 0;
- _this.heap[8] = 0;
- _this.heap[9] = 0;
- _this.heap[10] = 0;
- _this.heap[11] = noncelen >>> 29;
- _this.heap[12] = noncelen >>> 21 & 255;
- _this.heap[13] = noncelen >>> 13 & 255;
- _this.heap[14] = noncelen >>> 5 & 255;
- _this.heap[15] = noncelen << 3 & 255;
- _this.asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA, 16);
- _this.asm.get_iv(_aes2.AES_asm.HEAP_DATA);
- _this.asm.set_iv(0, 0, 0, 0);
- noncebuf.set(_this.heap.subarray(0, 16));
- } else {
- noncebuf.set(nonce);
- noncebuf[15] = 1;
- }
- var nonceview = new DataView(noncebuf.buffer);
- _this.gamma0 = nonceview.getUint32(12);
- _this.asm.set_nonce(nonceview.getUint32(0), nonceview.getUint32(4), nonceview.getUint32(8), 0);
- _this.asm.set_mask(0, 0, 0, 0xffffffff);
- // Associated data
- if (adata !== undefined) {
- if (adata.length > _AES_GCM_data_maxLength) throw new _errors.IllegalArgumentError('illegal adata length');
- if (adata.length) {
- _this.adata = adata;
- _this._gcm_mac_process(adata);
- } else {
- _this.adata = undefined;
- }
- } else {
- _this.adata = undefined;
- }
- // Counter
- if (_this.counter < 1 || _this.counter > 0xffffffff) throw new RangeError('counter must be a positive 32-bit integer');
- _this.asm.set_counter(0, 0, 0, _this.gamma0 + _this.counter | 0);
- return _this;
- }
- AES_GCM.encrypt = function (cleartext, key, nonce, adata, tagsize) {
- return new AES_GCM(key, nonce, adata, tagsize).encrypt(cleartext);
- };
- AES_GCM.decrypt = function (ciphertext, key, nonce, adata, tagsize) {
- return new AES_GCM(key, nonce, adata, tagsize).decrypt(ciphertext);
- };
- AES_GCM.prototype.encrypt = function (data) {
- return this.AES_GCM_encrypt(data);
- };
- AES_GCM.prototype.decrypt = function (data) {
- return this.AES_GCM_decrypt(data);
- };
- AES_GCM.prototype.AES_GCM_Encrypt_process = function (data) {
- var dpos = 0;
- var dlen = data.length || 0;
- var asm = this.asm;
- var heap = this.heap;
- var counter = this.counter;
- var pos = this.pos;
- var len = this.len;
- var rpos = 0;
- var rlen = len + dlen & -16;
- var wlen = 0;
- if ((counter - 1 << 4) + len + dlen > _AES_GCM_data_maxLength) throw new RangeError('counter overflow');
- var result = new Uint8Array(rlen);
- while (dlen > 0) {
- wlen = (0, _utils._heap_write)(heap, pos + len, data, dpos, dlen);
- len += wlen;
- dpos += wlen;
- dlen -= wlen;
- wlen = asm.cipher(_aes2.AES_asm.ENC.CTR, _aes2.AES_asm.HEAP_DATA + pos, len);
- wlen = asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA + pos, wlen);
- if (wlen) result.set(heap.subarray(pos, pos + wlen), rpos);
- counter += wlen >>> 4;
- rpos += wlen;
- if (wlen < len) {
- pos += wlen;
- len -= wlen;
- } else {
- pos = 0;
- len = 0;
- }
- }
- this.counter = counter;
- this.pos = pos;
- this.len = len;
- return result;
- };
- AES_GCM.prototype.AES_GCM_Encrypt_finish = function () {
- var asm = this.asm;
- var heap = this.heap;
- var counter = this.counter;
- var tagSize = this.tagSize;
- var adata = this.adata;
- var pos = this.pos;
- var len = this.len;
- var result = new Uint8Array(len + tagSize);
- asm.cipher(_aes2.AES_asm.ENC.CTR, _aes2.AES_asm.HEAP_DATA + pos, len + 15 & -16);
- if (len) result.set(heap.subarray(pos, pos + len));
- var i = len;
- for (; i & 15; i++) heap[pos + i] = 0;
- asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA + pos, i);
- var alen = adata !== undefined ? adata.length : 0;
- var clen = (counter - 1 << 4) + len;
- heap[0] = 0;
- heap[1] = 0;
- heap[2] = 0;
- heap[3] = alen >>> 29;
- heap[4] = alen >>> 21;
- heap[5] = alen >>> 13 & 255;
- heap[6] = alen >>> 5 & 255;
- heap[7] = alen << 3 & 255;
- heap[8] = heap[9] = heap[10] = 0;
- heap[11] = clen >>> 29;
- heap[12] = clen >>> 21 & 255;
- heap[13] = clen >>> 13 & 255;
- heap[14] = clen >>> 5 & 255;
- heap[15] = clen << 3 & 255;
- asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA, 16);
- asm.get_iv(_aes2.AES_asm.HEAP_DATA);
- asm.set_counter(0, 0, 0, this.gamma0);
- asm.cipher(_aes2.AES_asm.ENC.CTR, _aes2.AES_asm.HEAP_DATA, 16);
- result.set(heap.subarray(0, tagSize), len);
- this.counter = 1;
- this.pos = 0;
- this.len = 0;
- return result;
- };
- AES_GCM.prototype.AES_GCM_Decrypt_process = function (data) {
- var dpos = 0;
- var dlen = data.length || 0;
- var asm = this.asm;
- var heap = this.heap;
- var counter = this.counter;
- var tagSize = this.tagSize;
- var pos = this.pos;
- var len = this.len;
- var rpos = 0;
- var rlen = len + dlen > tagSize ? len + dlen - tagSize & -16 : 0;
- var tlen = len + dlen - rlen;
- var wlen = 0;
- if ((counter - 1 << 4) + len + dlen > _AES_GCM_data_maxLength) throw new RangeError('counter overflow');
- var result = new Uint8Array(rlen);
- while (dlen > tlen) {
- wlen = (0, _utils._heap_write)(heap, pos + len, data, dpos, dlen - tlen);
- len += wlen;
- dpos += wlen;
- dlen -= wlen;
- wlen = asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA + pos, wlen);
- wlen = asm.cipher(_aes2.AES_asm.DEC.CTR, _aes2.AES_asm.HEAP_DATA + pos, wlen);
- if (wlen) result.set(heap.subarray(pos, pos + wlen), rpos);
- counter += wlen >>> 4;
- rpos += wlen;
- pos = 0;
- len = 0;
- }
- if (dlen > 0) {
- len += (0, _utils._heap_write)(heap, 0, data, dpos, dlen);
- }
- this.counter = counter;
- this.pos = pos;
- this.len = len;
- return result;
- };
- AES_GCM.prototype.AES_GCM_Decrypt_finish = function () {
- var asm = this.asm;
- var heap = this.heap;
- var tagSize = this.tagSize;
- var adata = this.adata;
- var counter = this.counter;
- var pos = this.pos;
- var len = this.len;
- var rlen = len - tagSize;
- if (len < tagSize) throw new _errors.IllegalStateError('authentication tag not found');
- var result = new Uint8Array(rlen);
- var atag = new Uint8Array(heap.subarray(pos + rlen, pos + len));
- var i = rlen;
- for (; i & 15; i++) heap[pos + i] = 0;
- asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA + pos, i);
- asm.cipher(_aes2.AES_asm.DEC.CTR, _aes2.AES_asm.HEAP_DATA + pos, i);
- if (rlen) result.set(heap.subarray(pos, pos + rlen));
- var alen = adata !== undefined ? adata.length : 0;
- var clen = (counter - 1 << 4) + len - tagSize;
- heap[0] = 0;
- heap[1] = 0;
- heap[2] = 0;
- heap[3] = alen >>> 29;
- heap[4] = alen >>> 21;
- heap[5] = alen >>> 13 & 255;
- heap[6] = alen >>> 5 & 255;
- heap[7] = alen << 3 & 255;
- heap[8] = heap[9] = heap[10] = 0;
- heap[11] = clen >>> 29;
- heap[12] = clen >>> 21 & 255;
- heap[13] = clen >>> 13 & 255;
- heap[14] = clen >>> 5 & 255;
- heap[15] = clen << 3 & 255;
- asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA, 16);
- asm.get_iv(_aes2.AES_asm.HEAP_DATA);
- asm.set_counter(0, 0, 0, this.gamma0);
- asm.cipher(_aes2.AES_asm.ENC.CTR, _aes2.AES_asm.HEAP_DATA, 16);
- var acheck = 0;
- for (var i_1 = 0; i_1 < tagSize; ++i_1) acheck |= atag[i_1] ^ heap[i_1];
- if (acheck) throw new _errors.SecurityError('data integrity check failed');
- this.counter = 1;
- this.pos = 0;
- this.len = 0;
- return result;
- };
- AES_GCM.prototype.AES_GCM_decrypt = function (data) {
- var result1 = this.AES_GCM_Decrypt_process(data);
- var result2 = this.AES_GCM_Decrypt_finish();
- var result = new Uint8Array(result1.length + result2.length);
- if (result1.length) result.set(result1);
- if (result2.length) result.set(result2, result1.length);
- return result;
- };
- AES_GCM.prototype.AES_GCM_encrypt = function (data) {
- var result1 = this.AES_GCM_Encrypt_process(data);
- var result2 = this.AES_GCM_Encrypt_finish();
- var result = new Uint8Array(result1.length + result2.length);
- if (result1.length) result.set(result1);
- if (result2.length) result.set(result2, result1.length);
- return result;
- };
- AES_GCM.prototype._gcm_mac_process = function (data) {
- var heap = this.heap;
- var asm = this.asm;
- var dpos = 0;
- var dlen = data.length || 0;
- var wlen = 0;
- while (dlen > 0) {
- wlen = (0, _utils._heap_write)(heap, 0, data, dpos, dlen);
- dpos += wlen;
- dlen -= wlen;
- while (wlen & 15) heap[wlen++] = 0;
- asm.mac(_aes2.AES_asm.MAC.GCM, _aes2.AES_asm.HEAP_DATA, wlen);
- }
- };
- return AES_GCM;
-}(_aes.AES);
-exports.AES_GCM = AES_GCM;
-
-},{"../other/errors":15,"../other/utils":16,"./aes":4,"./aes.asm":3}],10:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.Hash = undefined;
-
-var _utils = require('../other/utils');
-
-var _errors = require('../other/errors');
-
-var Hash = /** @class */function () {
- function Hash() {
- this.pos = 0;
- this.len = 0;
- this.acquire_asm();
- }
- Hash.prototype.acquire_asm = function () {
- if (this.heap === undefined && this.asm === undefined) {
- this.heap = this.constructor.heap_pool.pop() || (0, _utils._heap_init)();
- this.asm = this.constructor.asm_pool.pop() || this.constructor.asm_function({ Uint8Array: Uint8Array }, null, this.heap.buffer);
- this.reset();
- }
- };
- Hash.prototype.release_asm = function () {
- this.constructor.heap_pool.push(this.heap);
- ;
- this.constructor.asm_pool.push(this.asm);
- this.heap = undefined;
- this.asm = undefined;
- };
- Hash.prototype.reset = function () {
- this.acquire_asm();
- this.result = null;
- this.pos = 0;
- this.len = 0;
- this.asm.reset();
- return this;
- };
- Hash.prototype.process = function (data) {
- if (this.result !== null) throw new _errors.IllegalStateError('state must be reset before processing new data');
- this.acquire_asm();
- var asm = this.asm;
- var heap = this.heap;
- var hpos = this.pos;
- var hlen = this.len;
- var dpos = 0;
- var dlen = data.length;
- var wlen = 0;
- while (dlen > 0) {
- wlen = (0, _utils._heap_write)(heap, hpos + hlen, data, dpos, dlen);
- hlen += wlen;
- dpos += wlen;
- dlen -= wlen;
- wlen = asm.process(hpos, hlen);
- hpos += wlen;
- hlen -= wlen;
- if (!hlen) hpos = 0;
- }
- this.pos = hpos;
- this.len = hlen;
- return this;
- };
- Hash.prototype.finish = function () {
- if (this.result !== null) throw new _errors.IllegalStateError('state must be reset before processing new data');
- this.acquire_asm();
- this.asm.finish(this.pos, this.len, 0);
- this.result = new Uint8Array(this.HASH_SIZE);
- this.result.set(this.heap.subarray(0, this.HASH_SIZE));
- this.pos = 0;
- this.len = 0;
- this.release_asm();
- return this;
- };
- return Hash;
-}();
-exports.Hash = Hash;
-
-},{"../other/errors":15,"../other/utils":16}],11:[function(require,module,exports){
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.sha1_asm = sha1_asm;
-function sha1_asm(stdlib, foreign, buffer) {
- "use asm";
-
- // SHA256 state
-
- var H0 = 0,
- H1 = 0,
- H2 = 0,
- H3 = 0,
- H4 = 0,
- TOTAL0 = 0,
- TOTAL1 = 0;
-
- // HMAC state
- var I0 = 0,
- I1 = 0,
- I2 = 0,
- I3 = 0,
- I4 = 0,
- O0 = 0,
- O1 = 0,
- O2 = 0,
- O3 = 0,
- O4 = 0;
-
- // I/O buffer
- var HEAP = new stdlib.Uint8Array(buffer);
-
- function _core(w0, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15) {
- w0 = w0 | 0;
- w1 = w1 | 0;
- w2 = w2 | 0;
- w3 = w3 | 0;
- w4 = w4 | 0;
- w5 = w5 | 0;
- w6 = w6 | 0;
- w7 = w7 | 0;
- w8 = w8 | 0;
- w9 = w9 | 0;
- w10 = w10 | 0;
- w11 = w11 | 0;
- w12 = w12 | 0;
- w13 = w13 | 0;
- w14 = w14 | 0;
- w15 = w15 | 0;
-
- var a = 0,
- b = 0,
- c = 0,
- d = 0,
- e = 0,
- n = 0,
- t = 0,
- w16 = 0,
- w17 = 0,
- w18 = 0,
- w19 = 0,
- w20 = 0,
- w21 = 0,
- w22 = 0,
- w23 = 0,
- w24 = 0,
- w25 = 0,
- w26 = 0,
- w27 = 0,
- w28 = 0,
- w29 = 0,
- w30 = 0,
- w31 = 0,
- w32 = 0,
- w33 = 0,
- w34 = 0,
- w35 = 0,
- w36 = 0,
- w37 = 0,
- w38 = 0,
- w39 = 0,
- w40 = 0,
- w41 = 0,
- w42 = 0,
- w43 = 0,
- w44 = 0,
- w45 = 0,
- w46 = 0,
- w47 = 0,
- w48 = 0,
- w49 = 0,
- w50 = 0,
- w51 = 0,
- w52 = 0,
- w53 = 0,
- w54 = 0,
- w55 = 0,
- w56 = 0,
- w57 = 0,
- w58 = 0,
- w59 = 0,
- w60 = 0,
- w61 = 0,
- w62 = 0,
- w63 = 0,
- w64 = 0,
- w65 = 0,
- w66 = 0,
- w67 = 0,
- w68 = 0,
- w69 = 0,
- w70 = 0,
- w71 = 0,
- w72 = 0,
- w73 = 0,
- w74 = 0,
- w75 = 0,
- w76 = 0,
- w77 = 0,
- w78 = 0,
- w79 = 0;
-
- a = H0;
- b = H1;
- c = H2;
- d = H3;
- e = H4;
-
- // 0
- t = w0 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 1
- t = w1 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 2
- t = w2 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 3
- t = w3 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 4
- t = w4 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 5
- t = w5 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 6
- t = w6 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 7
- t = w7 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 8
- t = w8 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 9
- t = w9 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 10
- t = w10 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 11
- t = w11 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 12
- t = w12 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 13
- t = w13 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 14
- t = w14 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 15
- t = w15 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 16
- n = w13 ^ w8 ^ w2 ^ w0;
- w16 = n << 1 | n >>> 31;
- t = w16 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 17
- n = w14 ^ w9 ^ w3 ^ w1;
- w17 = n << 1 | n >>> 31;
- t = w17 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 18
- n = w15 ^ w10 ^ w4 ^ w2;
- w18 = n << 1 | n >>> 31;
- t = w18 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 19
- n = w16 ^ w11 ^ w5 ^ w3;
- w19 = n << 1 | n >>> 31;
- t = w19 + (a << 5 | a >>> 27) + e + (b & c | ~b & d) + 0x5a827999 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 20
- n = w17 ^ w12 ^ w6 ^ w4;
- w20 = n << 1 | n >>> 31;
- t = w20 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 21
- n = w18 ^ w13 ^ w7 ^ w5;
- w21 = n << 1 | n >>> 31;
- t = w21 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 22
- n = w19 ^ w14 ^ w8 ^ w6;
- w22 = n << 1 | n >>> 31;
- t = w22 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 23
- n = w20 ^ w15 ^ w9 ^ w7;
- w23 = n << 1 | n >>> 31;
- t = w23 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 24
- n = w21 ^ w16 ^ w10 ^ w8;
- w24 = n << 1 | n >>> 31;
- t = w24 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 25
- n = w22 ^ w17 ^ w11 ^ w9;
- w25 = n << 1 | n >>> 31;
- t = w25 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 26
- n = w23 ^ w18 ^ w12 ^ w10;
- w26 = n << 1 | n >>> 31;
- t = w26 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 27
- n = w24 ^ w19 ^ w13 ^ w11;
- w27 = n << 1 | n >>> 31;
- t = w27 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 28
- n = w25 ^ w20 ^ w14 ^ w12;
- w28 = n << 1 | n >>> 31;
- t = w28 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 29
- n = w26 ^ w21 ^ w15 ^ w13;
- w29 = n << 1 | n >>> 31;
- t = w29 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 30
- n = w27 ^ w22 ^ w16 ^ w14;
- w30 = n << 1 | n >>> 31;
- t = w30 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 31
- n = w28 ^ w23 ^ w17 ^ w15;
- w31 = n << 1 | n >>> 31;
- t = w31 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 32
- n = w29 ^ w24 ^ w18 ^ w16;
- w32 = n << 1 | n >>> 31;
- t = w32 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 33
- n = w30 ^ w25 ^ w19 ^ w17;
- w33 = n << 1 | n >>> 31;
- t = w33 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 34
- n = w31 ^ w26 ^ w20 ^ w18;
- w34 = n << 1 | n >>> 31;
- t = w34 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 35
- n = w32 ^ w27 ^ w21 ^ w19;
- w35 = n << 1 | n >>> 31;
- t = w35 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 36
- n = w33 ^ w28 ^ w22 ^ w20;
- w36 = n << 1 | n >>> 31;
- t = w36 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 37
- n = w34 ^ w29 ^ w23 ^ w21;
- w37 = n << 1 | n >>> 31;
- t = w37 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 38
- n = w35 ^ w30 ^ w24 ^ w22;
- w38 = n << 1 | n >>> 31;
- t = w38 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 39
- n = w36 ^ w31 ^ w25 ^ w23;
- w39 = n << 1 | n >>> 31;
- t = w39 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) + 0x6ed9eba1 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 40
- n = w37 ^ w32 ^ w26 ^ w24;
- w40 = n << 1 | n >>> 31;
- t = w40 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 41
- n = w38 ^ w33 ^ w27 ^ w25;
- w41 = n << 1 | n >>> 31;
- t = w41 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 42
- n = w39 ^ w34 ^ w28 ^ w26;
- w42 = n << 1 | n >>> 31;
- t = w42 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 43
- n = w40 ^ w35 ^ w29 ^ w27;
- w43 = n << 1 | n >>> 31;
- t = w43 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 44
- n = w41 ^ w36 ^ w30 ^ w28;
- w44 = n << 1 | n >>> 31;
- t = w44 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 45
- n = w42 ^ w37 ^ w31 ^ w29;
- w45 = n << 1 | n >>> 31;
- t = w45 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 46
- n = w43 ^ w38 ^ w32 ^ w30;
- w46 = n << 1 | n >>> 31;
- t = w46 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 47
- n = w44 ^ w39 ^ w33 ^ w31;
- w47 = n << 1 | n >>> 31;
- t = w47 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 48
- n = w45 ^ w40 ^ w34 ^ w32;
- w48 = n << 1 | n >>> 31;
- t = w48 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 49
- n = w46 ^ w41 ^ w35 ^ w33;
- w49 = n << 1 | n >>> 31;
- t = w49 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 50
- n = w47 ^ w42 ^ w36 ^ w34;
- w50 = n << 1 | n >>> 31;
- t = w50 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 51
- n = w48 ^ w43 ^ w37 ^ w35;
- w51 = n << 1 | n >>> 31;
- t = w51 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 52
- n = w49 ^ w44 ^ w38 ^ w36;
- w52 = n << 1 | n >>> 31;
- t = w52 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 53
- n = w50 ^ w45 ^ w39 ^ w37;
- w53 = n << 1 | n >>> 31;
- t = w53 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 54
- n = w51 ^ w46 ^ w40 ^ w38;
- w54 = n << 1 | n >>> 31;
- t = w54 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 55
- n = w52 ^ w47 ^ w41 ^ w39;
- w55 = n << 1 | n >>> 31;
- t = w55 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 56
- n = w53 ^ w48 ^ w42 ^ w40;
- w56 = n << 1 | n >>> 31;
- t = w56 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 57
- n = w54 ^ w49 ^ w43 ^ w41;
- w57 = n << 1 | n >>> 31;
- t = w57 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 58
- n = w55 ^ w50 ^ w44 ^ w42;
- w58 = n << 1 | n >>> 31;
- t = w58 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 59
- n = w56 ^ w51 ^ w45 ^ w43;
- w59 = n << 1 | n >>> 31;
- t = w59 + (a << 5 | a >>> 27) + e + (b & c | b & d | c & d) - 0x70e44324 | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 60
- n = w57 ^ w52 ^ w46 ^ w44;
- w60 = n << 1 | n >>> 31;
- t = w60 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 61
- n = w58 ^ w53 ^ w47 ^ w45;
- w61 = n << 1 | n >>> 31;
- t = w61 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 62
- n = w59 ^ w54 ^ w48 ^ w46;
- w62 = n << 1 | n >>> 31;
- t = w62 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 63
- n = w60 ^ w55 ^ w49 ^ w47;
- w63 = n << 1 | n >>> 31;
- t = w63 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 64
- n = w61 ^ w56 ^ w50 ^ w48;
- w64 = n << 1 | n >>> 31;
- t = w64 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 65
- n = w62 ^ w57 ^ w51 ^ w49;
- w65 = n << 1 | n >>> 31;
- t = w65 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 66
- n = w63 ^ w58 ^ w52 ^ w50;
- w66 = n << 1 | n >>> 31;
- t = w66 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 67
- n = w64 ^ w59 ^ w53 ^ w51;
- w67 = n << 1 | n >>> 31;
- t = w67 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 68
- n = w65 ^ w60 ^ w54 ^ w52;
- w68 = n << 1 | n >>> 31;
- t = w68 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 69
- n = w66 ^ w61 ^ w55 ^ w53;
- w69 = n << 1 | n >>> 31;
- t = w69 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 70
- n = w67 ^ w62 ^ w56 ^ w54;
- w70 = n << 1 | n >>> 31;
- t = w70 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 71
- n = w68 ^ w63 ^ w57 ^ w55;
- w71 = n << 1 | n >>> 31;
- t = w71 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 72
- n = w69 ^ w64 ^ w58 ^ w56;
- w72 = n << 1 | n >>> 31;
- t = w72 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 73
- n = w70 ^ w65 ^ w59 ^ w57;
- w73 = n << 1 | n >>> 31;
- t = w73 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 74
- n = w71 ^ w66 ^ w60 ^ w58;
- w74 = n << 1 | n >>> 31;
- t = w74 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 75
- n = w72 ^ w67 ^ w61 ^ w59;
- w75 = n << 1 | n >>> 31;
- t = w75 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 76
- n = w73 ^ w68 ^ w62 ^ w60;
- w76 = n << 1 | n >>> 31;
- t = w76 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 77
- n = w74 ^ w69 ^ w63 ^ w61;
- w77 = n << 1 | n >>> 31;
- t = w77 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 78
- n = w75 ^ w70 ^ w64 ^ w62;
- w78 = n << 1 | n >>> 31;
- t = w78 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- // 79
- n = w76 ^ w71 ^ w65 ^ w63;
- w79 = n << 1 | n >>> 31;
- t = w79 + (a << 5 | a >>> 27) + e + (b ^ c ^ d) - 0x359d3e2a | 0;
- e = d;d = c;c = b << 30 | b >>> 2;b = a;a = t;
-
- H0 = H0 + a | 0;
- H1 = H1 + b | 0;
- H2 = H2 + c | 0;
- H3 = H3 + d | 0;
- H4 = H4 + e | 0;
- }
-
- function _core_heap(offset) {
- offset = offset | 0;
-