@secrecy/lib 1.0.0-dev.63 → 1.0.0-dev.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,63 +1,52 @@
1
1
  import { setup, sodium } from "../sodium.js";
2
2
  import SparkMD5 from "spark-md5";
3
3
  import { chunks } from "../utils/utils.js";
4
-
5
4
  function assert(c, message) {
6
5
  if (!c) {
7
6
  throw new Error(message);
8
7
  }
9
8
  }
10
-
11
9
  export function secretstreamKeygen() {
12
10
  return sodium.crypto_secretstream_xchacha20poly1305_keygen();
13
11
  }
14
-
15
12
  function encrypt(key) {
16
13
  let destroyed = false;
17
14
  const {
18
15
  state,
19
16
  header
20
17
  } = sodium.crypto_secretstream_xchacha20poly1305_init_push(key);
21
-
22
18
  const encrypt = (tag, plaintext) => {
23
19
  assert(destroyed === false, "state already destroyed");
24
20
  return sodium.crypto_secretstream_xchacha20poly1305_push(state, plaintext, null, tag);
25
21
  };
26
-
27
22
  function destroy() {
28
23
  assert(destroyed === false, "state already destroyed");
29
24
  destroyed = true;
30
25
  }
31
-
32
26
  return {
33
27
  encrypt,
34
28
  destroy,
35
29
  header
36
30
  };
37
31
  }
38
-
39
32
  function decrypt(header, key) {
40
33
  assert(header.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES, `header must be at least HEADERBYTES (${sodium.crypto_secretstream_xchacha20poly1305_HEADERBYTES}) long`);
41
34
  assert(key.byteLength >= sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES, `key must be at least KEYBYTES (${sodium.crypto_secretstream_xchacha20poly1305_KEYBYTES}) long`);
42
35
  let destroyed = false;
43
36
  const state = sodium.crypto_secretstream_xchacha20poly1305_init_pull(header, key);
44
-
45
37
  const decrypt = ciphertext => {
46
38
  assert(destroyed === false, "state already destroyed");
47
39
  return sodium.crypto_secretstream_xchacha20poly1305_pull(state, ciphertext);
48
40
  };
49
-
50
41
  function destroy() {
51
42
  assert(destroyed === false, "state already destroyed");
52
43
  destroyed = true;
53
44
  }
54
-
55
45
  return {
56
46
  decrypt,
57
47
  destroy
58
48
  };
59
49
  }
60
-
61
50
  export const CHUNK_SIZE = 8192;
62
51
  export async function encryptSecretstream(key, data, progress, abort) {
63
52
  await setup();
@@ -85,12 +74,10 @@ export async function encryptSecretstream(key, data, progress, abort) {
85
74
  current: total
86
75
  });
87
76
  let lastPercent = total / max;
88
-
89
77
  for (const chunk of chunks(data, CHUNK_SIZE)) {
90
78
  if (abort != null && abort.signal.aborted) {
91
79
  throw new Error(`Encrypt aborted`);
92
80
  }
93
-
94
81
  spark.append(chunk);
95
82
  const tag = chunk.length < CHUNK_SIZE ? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL : sodium.crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;
96
83
  const crypted = crypt(tag, chunk);
@@ -98,7 +85,6 @@ export async function encryptSecretstream(key, data, progress, abort) {
98
85
  final.set(crypted, total);
99
86
  total += crypted.byteLength;
100
87
  const percent = total / max;
101
-
102
88
  if (percent > lastPercent + 0.01) {
103
89
  progress == null ? void 0 : progress({
104
90
  percent,
@@ -108,7 +94,6 @@ export async function encryptSecretstream(key, data, progress, abort) {
108
94
  lastPercent = percent;
109
95
  }
110
96
  }
111
-
112
97
  destroy();
113
98
  progress == null ? void 0 : progress({
114
99
  percent: 1,
@@ -139,17 +124,14 @@ export async function decryptSecretstream(key, data, progress, abort) {
139
124
  const final = new Uint8Array(max);
140
125
  let total = 0;
141
126
  let lastPercent = total / max;
142
-
143
127
  for (const chunk of chunks(data, chunkSize)) {
144
128
  if (abort != null && abort.signal.aborted) {
145
129
  throw new Error(`Decrypt aborted`);
146
130
  }
147
-
148
131
  const tmp = decryptt(chunk);
149
132
  final.set(tmp.message, total);
150
133
  total += tmp.message.byteLength;
151
134
  const percent = total / max;
152
-
153
135
  if (percent > lastPercent + 0.01) {
154
136
  progress == null ? void 0 : progress({
155
137
  percent,
@@ -159,7 +141,6 @@ export async function decryptSecretstream(key, data, progress, abort) {
159
141
  lastPercent = percent;
160
142
  }
161
143
  }
162
-
163
144
  destroy();
164
145
  progress == null ? void 0 : progress({
165
146
  percent: 1,
@@ -167,7 +148,9 @@ export async function decryptSecretstream(key, data, progress, abort) {
167
148
  current: total
168
149
  });
169
150
  return final.slice(0, total);
170
- } // async function mainSecretstream(random: Uint8Array): Promise<void> {
151
+ }
152
+
153
+ // async function mainSecretstream(random: Uint8Array): Promise<void> {
171
154
  // const key = secretstreamKeygen();
172
155
  // console.time("secretstream_encrypt");
173
156
  // const crypted = encryptSecretstream(key, random);
@@ -199,6 +182,7 @@ export async function decryptSecretstream(key, data, progress, abort) {
199
182
  // equals: first === final
200
183
  // });
201
184
  // }
185
+
202
186
  // async function main(): Promise<void> {
203
187
  // await ready;
204
188
  // console.time("randombytes_buf");
@@ -206,5 +190,6 @@ export async function decryptSecretstream(key, data, progress, abort) {
206
190
  // console.timeEnd("randombytes_buf");
207
191
  // await Promise.all([mainSecretstream(random), mainSecretbox(random)]);
208
192
  // }
193
+
209
194
  // main();
210
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXR1cCIsInNvZGl1bSIsIlNwYXJrTUQ1IiwiY2h1bmtzIiwiYXNzZXJ0IiwiYyIsIm1lc3NhZ2UiLCJFcnJvciIsInNlY3JldHN0cmVhbUtleWdlbiIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfa2V5Z2VuIiwiZW5jcnlwdCIsImtleSIsImRlc3Ryb3llZCIsInN0YXRlIiwiaGVhZGVyIiwiY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9pbml0X3B1c2giLCJ0YWciLCJwbGFpbnRleHQiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1c2giLCJkZXN0cm95IiwiZGVjcnlwdCIsImJ5dGVMZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTIiwiY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdWxsIiwiY2lwaGVydGV4dCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfcHVsbCIsIkNIVU5LX1NJWkUiLCJlbmNyeXB0U2VjcmV0c3RyZWFtIiwiZGF0YSIsInByb2dyZXNzIiwiYWJvcnQiLCJjcnlwdCIsImNyeXB0ZWRDaHVuayIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTIiwibWF4IiwiTWF0aCIsImNlaWwiLCJwZXJjZW50IiwidG90YWwiLCJjdXJyZW50IiwiZmluYWwiLCJVaW50OEFycmF5Iiwic3BhcmtFbmNyeXB0ZWQiLCJBcnJheUJ1ZmZlciIsInNwYXJrIiwic2V0IiwiYXBwZW5kIiwibGFzdFBlcmNlbnQiLCJjaHVuayIsInNpZ25hbCIsImFib3J0ZWQiLCJsZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X1RBR19GSU5BTCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfVEFHX01FU1NBR0UiLCJjcnlwdGVkIiwic2xpY2UiLCJtZDVFbmNyeXB0ZWQiLCJlbmQiLCJtZDUiLCJkZWNyeXB0U2VjcmV0c3RyZWFtIiwiZGVjcnlwdHQiLCJjaHVua1NpemUiLCJ0bXAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY3J5cHRvL2ZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXNzYWdlVGFnIH0gZnJvbSBcImxpYnNvZGl1bS13cmFwcGVyc1wiO1xuaW1wb3J0IHsgc2V0dXAsIHNvZGl1bSB9IGZyb20gXCIuLi9zb2RpdW0uanNcIjtcbmltcG9ydCBTcGFya01ENSBmcm9tIFwic3BhcmstbWQ1XCI7XG5pbXBvcnQgeyBjaHVua3MgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHMuanNcIjtcblxuZXhwb3J0IHR5cGUgRW5jcnlwdGVkRmlsZSA9IHtcbiAgZGF0YTogVWludDhBcnJheTtcbiAgbWQ1OiBzdHJpbmc7XG4gIG1kNUVuY3J5cHRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gYXNzZXJ0KGM6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIWMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxudHlwZSBFbmNyeXB0Rm4gPSAodGFnOiBudW1iZXIsIHBsYWludGV4dDogVWludDhBcnJheSkgPT4gVWludDhBcnJheTtcblxudHlwZSBEZWNyeXB0Rm4gPSAoY2lwaGVydGV4dDogVWludDhBcnJheSkgPT4gTWVzc2FnZVRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3JldHN0cmVhbUtleWdlbigpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X2tleWdlbigpO1xufVxuXG5mdW5jdGlvbiBlbmNyeXB0KGtleTogVWludDhBcnJheSk6IHtcbiAgZGVzdHJveTogKCkgPT4gdm9pZDtcbiAgZW5jcnlwdDogRW5jcnlwdEZuO1xuICBoZWFkZXI6IFVpbnQ4QXJyYXk7XG59IHtcbiAgbGV0IGRlc3Ryb3llZCA9IGZhbHNlO1xuICBjb25zdCB7IHN0YXRlLCBoZWFkZXIgfSA9XG4gICAgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdXNoKGtleSk7XG5cbiAgY29uc3QgZW5jcnlwdDogRW5jcnlwdEZuID0gKHRhZywgcGxhaW50ZXh0KSA9PiB7XG4gICAgYXNzZXJ0KGRlc3Ryb3llZCA9PT0gZmFsc2UsIFwic3RhdGUgYWxyZWFkeSBkZXN0cm95ZWRcIik7XG5cbiAgICByZXR1cm4gc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfcHVzaChcbiAgICAgIHN0YXRlLFxuICAgICAgcGxhaW50ZXh0LFxuICAgICAgbnVsbCxcbiAgICAgIHRhZ1xuICAgICk7XG4gIH07XG5cbiAgZnVuY3Rpb24gZGVzdHJveSgpOiB2b2lkIHtcbiAgICBhc3NlcnQoZGVzdHJveWVkID09PSBmYWxzZSwgXCJzdGF0ZSBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcbiAgICBkZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbmNyeXB0LFxuICAgIGRlc3Ryb3ksXG4gICAgaGVhZGVyXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlY3J5cHQoXG4gIGhlYWRlcjogVWludDhBcnJheSxcbiAga2V5OiBVaW50OEFycmF5XG4pOiB7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG4gIGRlY3J5cHQ6IERlY3J5cHRGbjtcbn0ge1xuICBhc3NlcnQoXG4gICAgaGVhZGVyLmJ5dGVMZW5ndGggPj1cbiAgICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTLFxuICAgIGBoZWFkZXIgbXVzdCBiZSBhdCBsZWFzdCBIRUFERVJCWVRFUyAoJHtzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9IRUFERVJCWVRFU30pIGxvbmdgXG4gICk7XG4gIGFzc2VydChcbiAgICBrZXkuYnl0ZUxlbmd0aCA+PSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyxcbiAgICBga2V5IG11c3QgYmUgYXQgbGVhc3QgS0VZQllURVMgKCR7c29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfS0VZQllURVN9KSBsb25nYFxuICApO1xuXG4gIGxldCBkZXN0cm95ZWQgPSBmYWxzZTtcbiAgY29uc3Qgc3RhdGUgPSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9pbml0X3B1bGwoXG4gICAgaGVhZGVyLFxuICAgIGtleVxuICApO1xuXG4gIGNvbnN0IGRlY3J5cHQ6IERlY3J5cHRGbiA9IGNpcGhlcnRleHQgPT4ge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuXG4gICAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1bGwoc3RhdGUsIGNpcGhlcnRleHQpO1xuICB9O1xuXG4gIGZ1bmN0aW9uIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgYXNzZXJ0KGRlc3Ryb3llZCA9PT0gZmFsc2UsIFwic3RhdGUgYWxyZWFkeSBkZXN0cm95ZWRcIik7XG4gICAgZGVzdHJveWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGVjcnlwdCxcbiAgICBkZXN0cm95XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBDSFVOS19TSVpFID0gODE5MjtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3MgPSB7XG4gIHBlcmNlbnQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgY3VycmVudDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRTZWNyZXRzdHJlYW0oXG4gIGtleTogVWludDhBcnJheSxcbiAgZGF0YTogVWludDhBcnJheSxcbiAgcHJvZ3Jlc3M/OiAocHJvZ3Jlc3M6IFByb2dyZXNzKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBhYm9ydD86IEFib3J0Q29udHJvbGxlclxuKTogUHJvbWlzZTxFbmNyeXB0ZWRGaWxlPiB7XG4gIGF3YWl0IHNldHVwKCk7XG4gIGNvbnN0IHsgZW5jcnlwdDogY3J5cHQsIGRlc3Ryb3ksIGhlYWRlciB9ID0gZW5jcnlwdChrZXkpO1xuICBjb25zdCBjcnlwdGVkQ2h1bmsgPVxuICAgIENIVU5LX1NJWkUgKyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9BQllURVM7XG4gIGNvbnN0IG1heCA9XG4gICAgTWF0aC5jZWlsKGRhdGEuYnl0ZUxlbmd0aCAvIENIVU5LX1NJWkUpICogY3J5cHRlZENodW5rICsgaGVhZGVyLmJ5dGVMZW5ndGg7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgY29uc3Qgc3BhcmtFbmNyeXB0ZWQgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcbiAgY29uc3Qgc3BhcmsgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcblxuICBmaW5hbC5zZXQoaGVhZGVyKTtcbiAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGhlYWRlcik7XG4gIGxldCB0b3RhbCA9IGhlYWRlci5ieXRlTGVuZ3RoO1xuICBwcm9ncmVzcz8uKHtcbiAgICBwZXJjZW50OiB0b3RhbCAvIG1heCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IHRvdGFsXG4gIH0pO1xuICBsZXQgbGFzdFBlcmNlbnQgPSB0b3RhbCAvIG1heDtcblxuICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcyhkYXRhLCBDSFVOS19TSVpFKSkge1xuICAgIGlmIChhYm9ydD8uc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRW5jcnlwdCBhYm9ydGVkYCk7XG4gICAgfVxuICAgIHNwYXJrLmFwcGVuZChjaHVuayk7XG4gICAgY29uc3QgdGFnID1cbiAgICAgIGNodW5rLmxlbmd0aCA8IENIVU5LX1NJWkVcbiAgICAgICAgPyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfRklOQUxcbiAgICAgICAgOiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfTUVTU0FHRTtcbiAgICBjb25zdCBjcnlwdGVkID0gY3J5cHQodGFnLCBjaHVuayk7XG4gICAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGNyeXB0ZWQpO1xuICAgIGZpbmFsLnNldChjcnlwdGVkLCB0b3RhbCk7XG4gICAgdG90YWwgKz0gY3J5cHRlZC5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IHBlcmNlbnQgPSB0b3RhbCAvIG1heDtcbiAgICBpZiAocGVyY2VudCA+IGxhc3RQZXJjZW50ICsgMC4wMSkge1xuICAgICAgcHJvZ3Jlc3M/Lih7XG4gICAgICAgIHBlcmNlbnQsXG4gICAgICAgIHRvdGFsOiBtYXgsXG4gICAgICAgIGN1cnJlbnQ6IHRvdGFsXG4gICAgICB9KTtcbiAgICAgIGxhc3RQZXJjZW50ID0gcGVyY2VudDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCk7XG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDEsXG4gICAgdG90YWwsXG4gICAgY3VycmVudDogdG90YWxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgZGF0YTogZmluYWwuc2xpY2UoMCwgdG90YWwpLFxuICAgIG1kNUVuY3J5cHRlZDogc3BhcmtFbmNyeXB0ZWQuZW5kKCksXG4gICAgbWQ1OiBzcGFyay5lbmQoKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdFNlY3JldHN0cmVhbShcbiAga2V5OiBVaW50OEFycmF5LFxuICBkYXRhOiBVaW50OEFycmF5LFxuICBwcm9ncmVzcz86IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD4sXG4gIGFib3J0PzogQWJvcnRDb250cm9sbGVyXG4pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgYXdhaXQgc2V0dXAoKTtcbiAgY29uc3QgaGVhZGVyID0gZGF0YS5zbGljZShcbiAgICAwLFxuICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTXG4gICk7XG4gIGRhdGEgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTKTtcblxuICBjb25zdCB7IGRlY3J5cHQ6IGRlY3J5cHR0LCBkZXN0cm95IH0gPSBkZWNyeXB0KGhlYWRlciwga2V5KTtcbiAgY29uc3QgY2h1bmtTaXplID1cbiAgICBDSFVOS19TSVpFICsgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTO1xuICBjb25zdCBtYXggPSBNYXRoLmNlaWwoZGF0YS5ieXRlTGVuZ3RoIC8gY2h1bmtTaXplKSAqIENIVU5LX1NJWkU7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgbGV0IHRvdGFsID0gMDtcblxuICBsZXQgbGFzdFBlcmNlbnQgPSB0b3RhbCAvIG1heDtcblxuICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcyhkYXRhLCBjaHVua1NpemUpKSB7XG4gICAgaWYgKGFib3J0Py5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWNyeXB0IGFib3J0ZWRgKTtcbiAgICB9XG4gICAgY29uc3QgdG1wID0gZGVjcnlwdHQoY2h1bmspO1xuICAgIGZpbmFsLnNldCh0bXAubWVzc2FnZSwgdG90YWwpO1xuICAgIHRvdGFsICs9IHRtcC5tZXNzYWdlLmJ5dGVMZW5ndGg7XG4gICAgY29uc3QgcGVyY2VudCA9IHRvdGFsIC8gbWF4O1xuICAgIGlmIChwZXJjZW50ID4gbGFzdFBlcmNlbnQgKyAwLjAxKSB7XG4gICAgICBwcm9ncmVzcz8uKHtcbiAgICAgICAgcGVyY2VudCxcbiAgICAgICAgdG90YWw6IG1heCxcbiAgICAgICAgY3VycmVudDogdG90YWxcbiAgICAgIH0pO1xuICAgICAgbGFzdFBlcmNlbnQgPSBwZXJjZW50O1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKTtcbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMSxcbiAgICB0b3RhbCxcbiAgICBjdXJyZW50OiB0b3RhbFxuICB9KTtcbiAgcmV0dXJuIGZpbmFsLnNsaWNlKDAsIHRvdGFsKTtcbn1cblxuLy8gYXN5bmMgZnVuY3Rpb24gbWFpblNlY3JldHN0cmVhbShyYW5kb206IFVpbnQ4QXJyYXkpOiBQcm9taXNlPHZvaWQ+IHtcbi8vICAgY29uc3Qga2V5ID0gc2VjcmV0c3RyZWFtS2V5Z2VuKCk7XG4vLyAgIGNvbnNvbGUudGltZShcInNlY3JldHN0cmVhbV9lbmNyeXB0XCIpO1xuLy8gICBjb25zdCBjcnlwdGVkID0gZW5jcnlwdFNlY3JldHN0cmVhbShrZXksIHJhbmRvbSk7XG4vLyAgIGNvbnNvbGUudGltZUVuZChcInNlY3JldHN0cmVhbV9lbmNyeXB0XCIpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRzdHJlYW1fZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZGVjcnlwdGVkID0gZGVjcnlwdFNlY3JldHN0cmVhbShrZXksIGNyeXB0ZWQpO1xuLy8gICBjb25zb2xlLnRpbWVFbmQoXCJzZWNyZXRzdHJlYW1fZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZmlyc3QgPSB0b19oZXgocmFuZG9tKS5zbGljZSgwLCAzMik7XG4vLyAgIGNvbnN0IGZpbmFsID0gdG9faGV4KGRlY3J5cHRlZCkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zb2xlLmxvZyh7XG4vLyAgICAgZmlyc3QsXG4vLyAgICAgZmluYWwsXG4vLyAgICAgZXF1YWxzOiBmaXJzdCA9PT0gZmluYWxcbi8vICAgfSk7XG4vLyB9XG4vLyBhc3luYyBmdW5jdGlvbiBtYWluU2VjcmV0Ym94KHJhbmRvbTogVWludDhBcnJheSk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBjb25zdCBrZXkgPSBnZW5lcmF0ZVNlY3JldEJveCgpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRib3hfZW5jcnlwdFwiKTtcbi8vICAgY29uc3QgY3J5cHRlZCA9IGVuY3J5cHRGaWxlKHJhbmRvbSwga2V5KTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwic2VjcmV0Ym94X2VuY3J5cHRcIik7XG4vLyAgIGNvbnNvbGUudGltZShcInNlY3JldGJveF9kZWNyeXB0XCIpO1xuLy8gICBjb25zdCBkZWNyeXB0ZWQgPSBkZWNyeXB0RmlsZShjcnlwdGVkLCBrZXkpO1xuLy8gICBjb25zb2xlLnRpbWVFbmQoXCJzZWNyZXRib3hfZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZmlyc3QgPSB0b19oZXgocmFuZG9tKS5zbGljZSgwLCAzMik7XG4vLyAgIGNvbnN0IGZpbmFsID0gdG9faGV4KGRlY3J5cHRlZCkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zb2xlLmxvZyh7XG4vLyAgICAgZmlyc3QsXG4vLyAgICAgZmluYWwsXG4vLyAgICAgZXF1YWxzOiBmaXJzdCA9PT0gZmluYWxcbi8vICAgfSk7XG4vLyB9XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4vLyAgIGF3YWl0IHJlYWR5O1xuLy8gICBjb25zb2xlLnRpbWUoXCJyYW5kb21ieXRlc19idWZcIik7XG4vLyAgIGNvbnN0IHJhbmRvbSA9IHJhbmRvbWJ5dGVzX2J1ZigxXzAwMF8wMDAgKiAxMDI0KTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwicmFuZG9tYnl0ZXNfYnVmXCIpO1xuLy8gICBhd2FpdCBQcm9taXNlLmFsbChbbWFpblNlY3JldHN0cmVhbShyYW5kb20pLCBtYWluU2VjcmV0Ym94KHJhbmRvbSldKTtcbi8vIH1cblxuLy8gbWFpbigpO1xuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxLQUFULEVBQWdCQyxNQUFoQixRQUE4QixjQUE5QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsV0FBckI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLG1CQUF2Qjs7QUFRQSxTQUFTQyxNQUFULENBQWdCQyxDQUFoQixFQUE0QkMsT0FBNUIsRUFBbUQ7RUFDakQsSUFBSSxDQUFDRCxDQUFMLEVBQVE7SUFDTixNQUFNLElBQUlFLEtBQUosQ0FBVUQsT0FBVixDQUFOO0VBQ0Q7QUFDRjs7QUFNRCxPQUFPLFNBQVNFLGtCQUFULEdBQTBDO0VBQy9DLE9BQU9QLE1BQU0sQ0FBQ1EsNENBQVAsRUFBUDtBQUNEOztBQUVELFNBQVNDLE9BQVQsQ0FBaUJDLEdBQWpCLEVBSUU7RUFDQSxJQUFJQyxTQUFTLEdBQUcsS0FBaEI7RUFDQSxNQUFNO0lBQUVDLEtBQUY7SUFBU0M7RUFBVCxJQUNKYixNQUFNLENBQUNjLCtDQUFQLENBQXVESixHQUF2RCxDQURGOztFQUdBLE1BQU1ELE9BQWtCLEdBQUcsQ0FBQ00sR0FBRCxFQUFNQyxTQUFOLEtBQW9CO0lBQzdDYixNQUFNLENBQUNRLFNBQVMsS0FBSyxLQUFmLEVBQXNCLHlCQUF0QixDQUFOO0lBRUEsT0FBT1gsTUFBTSxDQUFDaUIsMENBQVAsQ0FDTEwsS0FESyxFQUVMSSxTQUZLLEVBR0wsSUFISyxFQUlMRCxHQUpLLENBQVA7RUFNRCxDQVREOztFQVdBLFNBQVNHLE9BQVQsR0FBeUI7SUFDdkJmLE1BQU0sQ0FBQ1EsU0FBUyxLQUFLLEtBQWYsRUFBc0IseUJBQXRCLENBQU47SUFDQUEsU0FBUyxHQUFHLElB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
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXR1cCIsInNvZGl1bSIsIlNwYXJrTUQ1IiwiY2h1bmtzIiwiYXNzZXJ0IiwiYyIsIm1lc3NhZ2UiLCJFcnJvciIsInNlY3JldHN0cmVhbUtleWdlbiIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfa2V5Z2VuIiwiZW5jcnlwdCIsImtleSIsImRlc3Ryb3llZCIsInN0YXRlIiwiaGVhZGVyIiwiY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9pbml0X3B1c2giLCJ0YWciLCJwbGFpbnRleHQiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1c2giLCJkZXN0cm95IiwiZGVjcnlwdCIsImJ5dGVMZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTIiwiY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdWxsIiwiY2lwaGVydGV4dCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfcHVsbCIsIkNIVU5LX1NJWkUiLCJlbmNyeXB0U2VjcmV0c3RyZWFtIiwiZGF0YSIsInByb2dyZXNzIiwiYWJvcnQiLCJjcnlwdCIsImNyeXB0ZWRDaHVuayIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTIiwibWF4IiwiTWF0aCIsImNlaWwiLCJwZXJjZW50IiwidG90YWwiLCJjdXJyZW50IiwiZmluYWwiLCJVaW50OEFycmF5Iiwic3BhcmtFbmNyeXB0ZWQiLCJBcnJheUJ1ZmZlciIsInNwYXJrIiwic2V0IiwiYXBwZW5kIiwibGFzdFBlcmNlbnQiLCJjaHVuayIsInNpZ25hbCIsImFib3J0ZWQiLCJsZW5ndGgiLCJjcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X1RBR19GSU5BTCIsImNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfVEFHX01FU1NBR0UiLCJjcnlwdGVkIiwic2xpY2UiLCJtZDVFbmNyeXB0ZWQiLCJlbmQiLCJtZDUiLCJkZWNyeXB0U2VjcmV0c3RyZWFtIiwiZGVjcnlwdHQiLCJjaHVua1NpemUiLCJ0bXAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY3J5cHRvL2ZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXNzYWdlVGFnIH0gZnJvbSBcImxpYnNvZGl1bS13cmFwcGVyc1wiO1xuaW1wb3J0IHsgc2V0dXAsIHNvZGl1bSB9IGZyb20gXCIuLi9zb2RpdW0uanNcIjtcbmltcG9ydCBTcGFya01ENSBmcm9tIFwic3BhcmstbWQ1XCI7XG5pbXBvcnQgeyBjaHVua3MgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHMuanNcIjtcblxuZXhwb3J0IHR5cGUgRW5jcnlwdGVkRmlsZSA9IHtcbiAgZGF0YTogVWludDhBcnJheTtcbiAgbWQ1OiBzdHJpbmc7XG4gIG1kNUVuY3J5cHRlZDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gYXNzZXJ0KGM6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIWMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxudHlwZSBFbmNyeXB0Rm4gPSAodGFnOiBudW1iZXIsIHBsYWludGV4dDogVWludDhBcnJheSkgPT4gVWludDhBcnJheTtcblxudHlwZSBEZWNyeXB0Rm4gPSAoY2lwaGVydGV4dDogVWludDhBcnJheSkgPT4gTWVzc2FnZVRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3JldHN0cmVhbUtleWdlbigpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X2tleWdlbigpO1xufVxuXG5mdW5jdGlvbiBlbmNyeXB0KGtleTogVWludDhBcnJheSk6IHtcbiAgZGVzdHJveTogKCkgPT4gdm9pZDtcbiAgZW5jcnlwdDogRW5jcnlwdEZuO1xuICBoZWFkZXI6IFVpbnQ4QXJyYXk7XG59IHtcbiAgbGV0IGRlc3Ryb3llZCA9IGZhbHNlO1xuICBjb25zdCB7IHN0YXRlLCBoZWFkZXIgfSA9XG4gICAgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfaW5pdF9wdXNoKGtleSk7XG5cbiAgY29uc3QgZW5jcnlwdDogRW5jcnlwdEZuID0gKHRhZywgcGxhaW50ZXh0KSA9PiB7XG4gICAgYXNzZXJ0KGRlc3Ryb3llZCA9PT0gZmFsc2UsIFwic3RhdGUgYWxyZWFkeSBkZXN0cm95ZWRcIik7XG5cbiAgICByZXR1cm4gc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfcHVzaChcbiAgICAgIHN0YXRlLFxuICAgICAgcGxhaW50ZXh0LFxuICAgICAgbnVsbCxcbiAgICAgIHRhZ1xuICAgICk7XG4gIH07XG5cbiAgZnVuY3Rpb24gZGVzdHJveSgpOiB2b2lkIHtcbiAgICBhc3NlcnQoZGVzdHJveWVkID09PSBmYWxzZSwgXCJzdGF0ZSBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcbiAgICBkZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbmNyeXB0LFxuICAgIGRlc3Ryb3ksXG4gICAgaGVhZGVyXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlY3J5cHQoXG4gIGhlYWRlcjogVWludDhBcnJheSxcbiAga2V5OiBVaW50OEFycmF5XG4pOiB7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG4gIGRlY3J5cHQ6IERlY3J5cHRGbjtcbn0ge1xuICBhc3NlcnQoXG4gICAgaGVhZGVyLmJ5dGVMZW5ndGggPj1cbiAgICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTLFxuICAgIGBoZWFkZXIgbXVzdCBiZSBhdCBsZWFzdCBIRUFERVJCWVRFUyAoJHtzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9IRUFERVJCWVRFU30pIGxvbmdgXG4gICk7XG4gIGFzc2VydChcbiAgICBrZXkuYnl0ZUxlbmd0aCA+PSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9LRVlCWVRFUyxcbiAgICBga2V5IG11c3QgYmUgYXQgbGVhc3QgS0VZQllURVMgKCR7c29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfS0VZQllURVN9KSBsb25nYFxuICApO1xuXG4gIGxldCBkZXN0cm95ZWQgPSBmYWxzZTtcbiAgY29uc3Qgc3RhdGUgPSBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9pbml0X3B1bGwoXG4gICAgaGVhZGVyLFxuICAgIGtleVxuICApO1xuXG4gIGNvbnN0IGRlY3J5cHQ6IERlY3J5cHRGbiA9IGNpcGhlcnRleHQgPT4ge1xuICAgIGFzc2VydChkZXN0cm95ZWQgPT09IGZhbHNlLCBcInN0YXRlIGFscmVhZHkgZGVzdHJveWVkXCIpO1xuXG4gICAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X3B1bGwoc3RhdGUsIGNpcGhlcnRleHQpO1xuICB9O1xuXG4gIGZ1bmN0aW9uIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgYXNzZXJ0KGRlc3Ryb3llZCA9PT0gZmFsc2UsIFwic3RhdGUgYWxyZWFkeSBkZXN0cm95ZWRcIik7XG4gICAgZGVzdHJveWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGVjcnlwdCxcbiAgICBkZXN0cm95XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBDSFVOS19TSVpFID0gODE5MjtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3MgPSB7XG4gIHBlcmNlbnQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgY3VycmVudDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRTZWNyZXRzdHJlYW0oXG4gIGtleTogVWludDhBcnJheSxcbiAgZGF0YTogVWludDhBcnJheSxcbiAgcHJvZ3Jlc3M/OiAocHJvZ3Jlc3M6IFByb2dyZXNzKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBhYm9ydD86IEFib3J0Q29udHJvbGxlclxuKTogUHJvbWlzZTxFbmNyeXB0ZWRGaWxlPiB7XG4gIGF3YWl0IHNldHVwKCk7XG4gIGNvbnN0IHsgZW5jcnlwdDogY3J5cHQsIGRlc3Ryb3ksIGhlYWRlciB9ID0gZW5jcnlwdChrZXkpO1xuICBjb25zdCBjcnlwdGVkQ2h1bmsgPVxuICAgIENIVU5LX1NJWkUgKyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9BQllURVM7XG4gIGNvbnN0IG1heCA9XG4gICAgTWF0aC5jZWlsKGRhdGEuYnl0ZUxlbmd0aCAvIENIVU5LX1NJWkUpICogY3J5cHRlZENodW5rICsgaGVhZGVyLmJ5dGVMZW5ndGg7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgY29uc3Qgc3BhcmtFbmNyeXB0ZWQgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcbiAgY29uc3Qgc3BhcmsgPSBuZXcgU3BhcmtNRDUuQXJyYXlCdWZmZXIoKTtcblxuICBmaW5hbC5zZXQoaGVhZGVyKTtcbiAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGhlYWRlcik7XG4gIGxldCB0b3RhbCA9IGhlYWRlci5ieXRlTGVuZ3RoO1xuICBwcm9ncmVzcz8uKHtcbiAgICBwZXJjZW50OiB0b3RhbCAvIG1heCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IHRvdGFsXG4gIH0pO1xuICBsZXQgbGFzdFBlcmNlbnQgPSB0b3RhbCAvIG1heDtcblxuICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcyhkYXRhLCBDSFVOS19TSVpFKSkge1xuICAgIGlmIChhYm9ydD8uc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRW5jcnlwdCBhYm9ydGVkYCk7XG4gICAgfVxuICAgIHNwYXJrLmFwcGVuZChjaHVuayk7XG4gICAgY29uc3QgdGFnID1cbiAgICAgIGNodW5rLmxlbmd0aCA8IENIVU5LX1NJWkVcbiAgICAgICAgPyBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfRklOQUxcbiAgICAgICAgOiBzb2RpdW0uY3J5cHRvX3NlY3JldHN0cmVhbV94Y2hhY2hhMjBwb2x5MTMwNV9UQUdfTUVTU0FHRTtcbiAgICBjb25zdCBjcnlwdGVkID0gY3J5cHQodGFnLCBjaHVuayk7XG4gICAgc3BhcmtFbmNyeXB0ZWQuYXBwZW5kKGNyeXB0ZWQpO1xuICAgIGZpbmFsLnNldChjcnlwdGVkLCB0b3RhbCk7XG4gICAgdG90YWwgKz0gY3J5cHRlZC5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IHBlcmNlbnQgPSB0b3RhbCAvIG1heDtcbiAgICBpZiAocGVyY2VudCA+IGxhc3RQZXJjZW50ICsgMC4wMSkge1xuICAgICAgcHJvZ3Jlc3M/Lih7XG4gICAgICAgIHBlcmNlbnQsXG4gICAgICAgIHRvdGFsOiBtYXgsXG4gICAgICAgIGN1cnJlbnQ6IHRvdGFsXG4gICAgICB9KTtcbiAgICAgIGxhc3RQZXJjZW50ID0gcGVyY2VudDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCk7XG4gIHByb2dyZXNzPy4oe1xuICAgIHBlcmNlbnQ6IDEsXG4gICAgdG90YWwsXG4gICAgY3VycmVudDogdG90YWxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgZGF0YTogZmluYWwuc2xpY2UoMCwgdG90YWwpLFxuICAgIG1kNUVuY3J5cHRlZDogc3BhcmtFbmNyeXB0ZWQuZW5kKCksXG4gICAgbWQ1OiBzcGFyay5lbmQoKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdFNlY3JldHN0cmVhbShcbiAga2V5OiBVaW50OEFycmF5LFxuICBkYXRhOiBVaW50OEFycmF5LFxuICBwcm9ncmVzcz86IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD4sXG4gIGFib3J0PzogQWJvcnRDb250cm9sbGVyXG4pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgYXdhaXQgc2V0dXAoKTtcbiAgY29uc3QgaGVhZGVyID0gZGF0YS5zbGljZShcbiAgICAwLFxuICAgIHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTXG4gICk7XG4gIGRhdGEgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fc2VjcmV0c3RyZWFtX3hjaGFjaGEyMHBvbHkxMzA1X0hFQURFUkJZVEVTKTtcblxuICBjb25zdCB7IGRlY3J5cHQ6IGRlY3J5cHR0LCBkZXN0cm95IH0gPSBkZWNyeXB0KGhlYWRlciwga2V5KTtcbiAgY29uc3QgY2h1bmtTaXplID1cbiAgICBDSFVOS19TSVpFICsgc29kaXVtLmNyeXB0b19zZWNyZXRzdHJlYW1feGNoYWNoYTIwcG9seTEzMDVfQUJZVEVTO1xuICBjb25zdCBtYXggPSBNYXRoLmNlaWwoZGF0YS5ieXRlTGVuZ3RoIC8gY2h1bmtTaXplKSAqIENIVU5LX1NJWkU7XG5cbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMCxcbiAgICB0b3RhbDogbWF4LFxuICAgIGN1cnJlbnQ6IDBcbiAgfSk7XG4gIGNvbnN0IGZpbmFsID0gbmV3IFVpbnQ4QXJyYXkobWF4KTtcbiAgbGV0IHRvdGFsID0gMDtcblxuICBsZXQgbGFzdFBlcmNlbnQgPSB0b3RhbCAvIG1heDtcblxuICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcyhkYXRhLCBjaHVua1NpemUpKSB7XG4gICAgaWYgKGFib3J0Py5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWNyeXB0IGFib3J0ZWRgKTtcbiAgICB9XG4gICAgY29uc3QgdG1wID0gZGVjcnlwdHQoY2h1bmspO1xuICAgIGZpbmFsLnNldCh0bXAubWVzc2FnZSwgdG90YWwpO1xuICAgIHRvdGFsICs9IHRtcC5tZXNzYWdlLmJ5dGVMZW5ndGg7XG4gICAgY29uc3QgcGVyY2VudCA9IHRvdGFsIC8gbWF4O1xuICAgIGlmIChwZXJjZW50ID4gbGFzdFBlcmNlbnQgKyAwLjAxKSB7XG4gICAgICBwcm9ncmVzcz8uKHtcbiAgICAgICAgcGVyY2VudCxcbiAgICAgICAgdG90YWw6IG1heCxcbiAgICAgICAgY3VycmVudDogdG90YWxcbiAgICAgIH0pO1xuICAgICAgbGFzdFBlcmNlbnQgPSBwZXJjZW50O1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKTtcbiAgcHJvZ3Jlc3M/Lih7XG4gICAgcGVyY2VudDogMSxcbiAgICB0b3RhbCxcbiAgICBjdXJyZW50OiB0b3RhbFxuICB9KTtcbiAgcmV0dXJuIGZpbmFsLnNsaWNlKDAsIHRvdGFsKTtcbn1cblxuLy8gYXN5bmMgZnVuY3Rpb24gbWFpblNlY3JldHN0cmVhbShyYW5kb206IFVpbnQ4QXJyYXkpOiBQcm9taXNlPHZvaWQ+IHtcbi8vICAgY29uc3Qga2V5ID0gc2VjcmV0c3RyZWFtS2V5Z2VuKCk7XG4vLyAgIGNvbnNvbGUudGltZShcInNlY3JldHN0cmVhbV9lbmNyeXB0XCIpO1xuLy8gICBjb25zdCBjcnlwdGVkID0gZW5jcnlwdFNlY3JldHN0cmVhbShrZXksIHJhbmRvbSk7XG4vLyAgIGNvbnNvbGUudGltZUVuZChcInNlY3JldHN0cmVhbV9lbmNyeXB0XCIpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRzdHJlYW1fZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZGVjcnlwdGVkID0gZGVjcnlwdFNlY3JldHN0cmVhbShrZXksIGNyeXB0ZWQpO1xuLy8gICBjb25zb2xlLnRpbWVFbmQoXCJzZWNyZXRzdHJlYW1fZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZmlyc3QgPSB0b19oZXgocmFuZG9tKS5zbGljZSgwLCAzMik7XG4vLyAgIGNvbnN0IGZpbmFsID0gdG9faGV4KGRlY3J5cHRlZCkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zb2xlLmxvZyh7XG4vLyAgICAgZmlyc3QsXG4vLyAgICAgZmluYWwsXG4vLyAgICAgZXF1YWxzOiBmaXJzdCA9PT0gZmluYWxcbi8vICAgfSk7XG4vLyB9XG4vLyBhc3luYyBmdW5jdGlvbiBtYWluU2VjcmV0Ym94KHJhbmRvbTogVWludDhBcnJheSk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBjb25zdCBrZXkgPSBnZW5lcmF0ZVNlY3JldEJveCgpO1xuLy8gICBjb25zb2xlLnRpbWUoXCJzZWNyZXRib3hfZW5jcnlwdFwiKTtcbi8vICAgY29uc3QgY3J5cHRlZCA9IGVuY3J5cHRGaWxlKHJhbmRvbSwga2V5KTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwic2VjcmV0Ym94X2VuY3J5cHRcIik7XG4vLyAgIGNvbnNvbGUudGltZShcInNlY3JldGJveF9kZWNyeXB0XCIpO1xuLy8gICBjb25zdCBkZWNyeXB0ZWQgPSBkZWNyeXB0RmlsZShjcnlwdGVkLCBrZXkpO1xuLy8gICBjb25zb2xlLnRpbWVFbmQoXCJzZWNyZXRib3hfZGVjcnlwdFwiKTtcbi8vICAgY29uc3QgZmlyc3QgPSB0b19oZXgocmFuZG9tKS5zbGljZSgwLCAzMik7XG4vLyAgIGNvbnN0IGZpbmFsID0gdG9faGV4KGRlY3J5cHRlZCkuc2xpY2UoMCwgMzIpO1xuLy8gICBjb25zb2xlLmxvZyh7XG4vLyAgICAgZmlyc3QsXG4vLyAgICAgZmluYWwsXG4vLyAgICAgZXF1YWxzOiBmaXJzdCA9PT0gZmluYWxcbi8vICAgfSk7XG4vLyB9XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4vLyAgIGF3YWl0IHJlYWR5O1xuLy8gICBjb25zb2xlLnRpbWUoXCJyYW5kb21ieXRlc19idWZcIik7XG4vLyAgIGNvbnN0IHJhbmRvbSA9IHJhbmRvbWJ5dGVzX2J1ZigxXzAwMF8wMDAgKiAxMDI0KTtcbi8vICAgY29uc29sZS50aW1lRW5kKFwicmFuZG9tYnl0ZXNfYnVmXCIpO1xuLy8gICBhd2FpdCBQcm9taXNlLmFsbChbbWFpblNlY3JldHN0cmVhbShyYW5kb20pLCBtYWluU2VjcmV0Ym94KHJhbmRvbSldKTtcbi8vIH1cblxuLy8gbWFpbigpO1xuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxLQUFLLEVBQUVDLE1BQU0sUUFBUSxjQUFjO0FBQzVDLE9BQU9DLFFBQVEsTUFBTSxXQUFXO0FBQ2hDLFNBQVNDLE1BQU0sUUFBUSxtQkFBbUI7QUFRMUMsU0FBU0MsTUFBTSxDQUFDQyxDQUFVLEVBQUVDLE9BQWUsRUFBUTtFQUNqRCxJQUFJLENBQUNELENBQUMsRUFBRTtJQUNOLE1BQU0sSUFBSUUsS0FBSyxDQUFDRCxPQUFPLENBQUM7RUFDMUI7QUFDRjtBQU1BLE9BQU8sU0FBU0Usa0JBQWtCLEdBQWU7RUFDL0MsT0FBT1AsTUFBTSxDQUFDUSw0Q0FBNEMsRUFBRTtBQUM5RDtBQUVBLFNBQVNDLE9BQU8sQ0FBQ0MsR0FBZSxFQUk5QjtFQUNBLElBQUlDLFNBQVMsR0FBRyxLQUFLO0VBQ3JCLE1BQU07SUFBRUMsS0FBSztJQUFFQztFQUFPLENBQUMsR0FDckJiLE1BQU0sQ0FBQ2MsK0NBQStDLENBQUNKLEdBQUcsQ0FBQztFQUU3RCxNQUFNRCxPQUFrQixHQUFHLENBQUNNLEdBQUcsRUFBRUMsU0FBUyxLQUFLO0lBQzdDYixNQUFNLENBQUNRLFNBQVMsS0FBSyxLQUFLLEVBQUUseUJBQXlCLENBQUM7SUFFdEQsT0FBT1gsTUFBTSxDQUFDaUIsMENBQTBDLENBQ3RETCxLQUFLLEVBQ0xJLFNBQVMsRUFDVCxJQUFJLEVBQ0pELEdBQUcsQ0FDSjtFQUNILENBQUM7RUFFRCxTQUFTRyxPQUFPLEdBQVM7SUFDdkJmLE1BQU0sQ0FBQ1EsU0FBUyxLQUFLLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUN0REEsU0FBUyxHQUFHLElBQUk7RUFD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
@@ -12,7 +12,6 @@ export function decryptCryptoBox(data, publicKeyAlice, privateKeyBob) {
12
12
  if (data.length < sodium.crypto_box_NONCEBYTES + sodium.crypto_box_MACBYTES) {
13
13
  throw "data too short";
14
14
  }
15
-
16
15
  const nonce = data.slice(0, sodium.crypto_box_NONCEBYTES);
17
16
  const cipher = data.slice(sodium.crypto_box_NONCEBYTES);
18
17
  return sodium.crypto_box_open_easy(cipher, nonce, sodium.from_hex(publicKeyAlice), sodium.from_hex(privateKeyBob));
@@ -29,7 +28,6 @@ export function decryptSecretBox(data, key) {
29
28
  if (data.length < sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES) {
30
29
  throw "data too short";
31
30
  }
32
-
33
31
  const nonce = data.slice(0, sodium.crypto_secretbox_NONCEBYTES);
34
32
  const cipher = data.slice(sodium.crypto_secretbox_NONCEBYTES);
35
33
  return sodium.crypto_secretbox_open_easy(cipher, nonce, sodium.from_hex(key));
@@ -44,4 +42,4 @@ export function decryptAnonymous(data, _ref) {
44
42
  } = _ref;
45
43
  return sodium.crypto_box_seal_open(data, sodium.from_hex(publicKey), sodium.from_hex(privateKey));
46
44
  }
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25jYXRlbmF0ZSIsInNvZGl1bSIsImVuY3J5cHRDcnlwdG9Cb3giLCJkYXRhIiwicHVibGljS2V5Qm9iIiwicHJpdmF0ZUtleUFsaWNlIiwibm9uY2UiLCJyYW5kb21ieXRlc19idWYiLCJjcnlwdG9fYm94X05PTkNFQllURVMiLCJjcnlwdCIsImNyeXB0b19ib3hfZWFzeSIsImZyb21faGV4IiwiZ2VuZXJhdGVDcnlwdG9Cb3hLZXlQYWlyIiwiY3J5cHRvX2JveF9rZXlwYWlyIiwiZGVjcnlwdENyeXB0b0JveCIsInB1YmxpY0tleUFsaWNlIiwicHJpdmF0ZUtleUJvYiIsImxlbmd0aCIsImNyeXB0b19ib3hfTUFDQllURVMiLCJzbGljZSIsImNpcGhlciIsImNyeXB0b19ib3hfb3Blbl9lYXN5IiwiZ2VuZXJhdGVTZWNyZXRCb3hLZXkiLCJjcnlwdG9fc2VjcmV0Ym94X0tFWUJZVEVTIiwiZW5jcnlwdFNlY3JldEJveCIsImtleSIsImNyeXB0b19zZWNyZXRib3hfTk9OQ0VCWVRFUyIsImNyeXB0b19zZWNyZXRib3hfZWFzeSIsImRlY3J5cHRTZWNyZXRCb3giLCJjcnlwdG9fc2VjcmV0Ym94X01BQ0JZVEVTIiwiY3J5cHRvX3NlY3JldGJveF9vcGVuX2Vhc3kiLCJlbmNyeXB0QW5vbnltb3VzIiwicmVjZWl2ZXJQdWJsaWNLZXkiLCJjcnlwdG9fYm94X3NlYWwiLCJkZWNyeXB0QW5vbnltb3VzIiwicHJpdmF0ZUtleSIsInB1YmxpY0tleSIsImNyeXB0b19ib3hfc2VhbF9vcGVuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NyeXB0by9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25jYXRlbmF0ZSB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiO1xuaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uL3NvZGl1bS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXIge1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpdmF0ZUtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdENyeXB0b0JveChcbiAgZGF0YTogVWludDhBcnJheSxcbiAgcHVibGljS2V5Qm9iOiBzdHJpbmcsXG4gIHByaXZhdGVLZXlBbGljZTogc3RyaW5nXG4pOiBVaW50OEFycmF5IHtcbiAgY29uc3Qgbm9uY2UgPSBzb2RpdW0ucmFuZG9tYnl0ZXNfYnVmKHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICBjb25zdCBjcnlwdCA9IHNvZGl1bS5jcnlwdG9fYm94X2Vhc3koXG4gICAgZGF0YSxcbiAgICBub25jZSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHVibGljS2V5Qm9iKSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHJpdmF0ZUtleUFsaWNlKVxuICApO1xuICByZXR1cm4gY29uY2F0ZW5hdGUobm9uY2UsIGNyeXB0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQ3J5cHRvQm94S2V5UGFpcigpOiBLZXlQYWlyIHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X2tleXBhaXIoXCJoZXhcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0Q3J5cHRvQm94KFxuICBkYXRhOiBVaW50OEFycmF5LFxuICBwdWJsaWNLZXlBbGljZTogc3RyaW5nLFxuICBwcml2YXRlS2V5Qm9iOiBzdHJpbmdcbik6IFVpbnQ4QXJyYXkge1xuICBpZiAoZGF0YS5sZW5ndGggPCBzb2RpdW0uY3J5cHRvX2JveF9OT05DRUJZVEVTICsgc29kaXVtLmNyeXB0b19ib3hfTUFDQllURVMpIHtcbiAgICB0aHJvdyBcImRhdGEgdG9vIHNob3J0XCI7XG4gIH1cbiAgY29uc3Qgbm9uY2UgPSBkYXRhLnNsaWNlKDAsIHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICBjb25zdCBjaXBoZXIgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19ib3hfb3Blbl9lYXN5KFxuICAgIGNpcGhlcixcbiAgICBub25jZSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHVibGljS2V5QWxpY2UpLFxuICAgIHNvZGl1bS5mcm9tX2hleChwcml2YXRlS2V5Qm9iKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVTZWNyZXRCb3hLZXkoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNvZGl1bS5yYW5kb21ieXRlc19idWYoc29kaXVtLmNyeXB0b19zZWNyZXRib3hfS0VZQllURVMsIFwiaGV4XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdFNlY3JldEJveChkYXRhOiBVaW50OEFycmF5LCBrZXk6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBub25jZSA9IHNvZGl1bS5yYW5kb21ieXRlc19idWYoc29kaXVtLmNyeXB0b19zZWNyZXRib3hfTk9OQ0VCWVRFUyk7XG4gIGNvbnN0IGNyeXB0ID0gc29kaXVtLmNyeXB0b19zZWNyZXRib3hfZWFzeShkYXRhLCBub25jZSwgc29kaXVtLmZyb21faGV4KGtleSkpO1xuICByZXR1cm4gY29uY2F0ZW5hdGUobm9uY2UsIGNyeXB0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHRTZWNyZXRCb3goZGF0YTogVWludDhBcnJheSwga2V5OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgaWYgKFxuICAgIGRhdGEubGVuZ3RoIDxcbiAgICBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTICsgc29kaXVtLmNyeXB0b19zZWNyZXRib3hfTUFDQllURVNcbiAgKSB7XG4gICAgdGhyb3cgXCJkYXRhIHRvbyBzaG9ydFwiO1xuICB9XG4gIGNvbnN0IG5vbmNlID0gZGF0YS5zbGljZSgwLCBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTKTtcbiAgY29uc3QgY2lwaGVyID0gZGF0YS5zbGljZShzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTKTtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0Ym94X29wZW5fZWFzeShjaXBoZXIsIG5vbmNlLCBzb2RpdW0uZnJvbV9oZXgoa2V5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0QW5vbnltb3VzKFxuICBkYXRhOiBVaW50OEFycmF5LFxuICByZWNlaXZlclB1YmxpY0tleTogc3RyaW5nXG4pOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X3NlYWwoZGF0YSwgc29kaXVtLmZyb21faGV4KHJlY2VpdmVyUHVibGljS2V5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0QW5vbnltb3VzKFxuICBkYXRhOiBVaW50OEFycmF5LFxuICB7IHByaXZhdGVLZXksIHB1YmxpY0tleSB9OiBLZXlQYWlyXG4pOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X3NlYWxfb3BlbihcbiAgICBkYXRhLFxuICAgIHNvZGl1bS5mcm9tX2hleChwdWJsaWNLZXkpLFxuICAgIHNvZGl1bS5mcm9tX2hleChwcml2YXRlS2V5KVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxXQUFULFFBQTRCLG1CQUE1QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsY0FBdkI7QUFPQSxPQUFPLFNBQVNDLGdCQUFULENBQ0xDLElBREssRUFFTEMsWUFGSyxFQUdMQyxlQUhLLEVBSU87RUFDWixNQUFNQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sZUFBUCxDQUF1Qk4sTUFBTSxDQUFDTyxxQkFBOUIsQ0FBZDtFQUNBLE1BQU1DLEtBQUssR0FBR1IsTUFBTSxDQUFDUyxlQUFQLENBQ1pQLElBRFksRUFFWkcsS0FGWSxFQUdaTCxNQUFNLENBQUNVLFFBQVAsQ0FBZ0JQLFlBQWhCLENBSFksRUFJWkgsTUFBTSxDQUFDVSxRQUFQLENBQWdCTixlQUFoQixDQUpZLENBQWQ7RUFNQSxPQUFPTCxXQUFXLENBQUNNLEtBQUQsRUFBUUcsS0FBUixDQUFsQjtBQUNEO0FB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
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25jYXRlbmF0ZSIsInNvZGl1bSIsImVuY3J5cHRDcnlwdG9Cb3giLCJkYXRhIiwicHVibGljS2V5Qm9iIiwicHJpdmF0ZUtleUFsaWNlIiwibm9uY2UiLCJyYW5kb21ieXRlc19idWYiLCJjcnlwdG9fYm94X05PTkNFQllURVMiLCJjcnlwdCIsImNyeXB0b19ib3hfZWFzeSIsImZyb21faGV4IiwiZ2VuZXJhdGVDcnlwdG9Cb3hLZXlQYWlyIiwiY3J5cHRvX2JveF9rZXlwYWlyIiwiZGVjcnlwdENyeXB0b0JveCIsInB1YmxpY0tleUFsaWNlIiwicHJpdmF0ZUtleUJvYiIsImxlbmd0aCIsImNyeXB0b19ib3hfTUFDQllURVMiLCJzbGljZSIsImNpcGhlciIsImNyeXB0b19ib3hfb3Blbl9lYXN5IiwiZ2VuZXJhdGVTZWNyZXRCb3hLZXkiLCJjcnlwdG9fc2VjcmV0Ym94X0tFWUJZVEVTIiwiZW5jcnlwdFNlY3JldEJveCIsImtleSIsImNyeXB0b19zZWNyZXRib3hfTk9OQ0VCWVRFUyIsImNyeXB0b19zZWNyZXRib3hfZWFzeSIsImRlY3J5cHRTZWNyZXRCb3giLCJjcnlwdG9fc2VjcmV0Ym94X01BQ0JZVEVTIiwiY3J5cHRvX3NlY3JldGJveF9vcGVuX2Vhc3kiLCJlbmNyeXB0QW5vbnltb3VzIiwicmVjZWl2ZXJQdWJsaWNLZXkiLCJjcnlwdG9fYm94X3NlYWwiLCJkZWNyeXB0QW5vbnltb3VzIiwicHJpdmF0ZUtleSIsInB1YmxpY0tleSIsImNyeXB0b19ib3hfc2VhbF9vcGVuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NyeXB0by9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25jYXRlbmF0ZSB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiO1xuaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uL3NvZGl1bS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXIge1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpdmF0ZUtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdENyeXB0b0JveChcbiAgZGF0YTogVWludDhBcnJheSxcbiAgcHVibGljS2V5Qm9iOiBzdHJpbmcsXG4gIHByaXZhdGVLZXlBbGljZTogc3RyaW5nXG4pOiBVaW50OEFycmF5IHtcbiAgY29uc3Qgbm9uY2UgPSBzb2RpdW0ucmFuZG9tYnl0ZXNfYnVmKHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICBjb25zdCBjcnlwdCA9IHNvZGl1bS5jcnlwdG9fYm94X2Vhc3koXG4gICAgZGF0YSxcbiAgICBub25jZSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHVibGljS2V5Qm9iKSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHJpdmF0ZUtleUFsaWNlKVxuICApO1xuICByZXR1cm4gY29uY2F0ZW5hdGUobm9uY2UsIGNyeXB0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQ3J5cHRvQm94S2V5UGFpcigpOiBLZXlQYWlyIHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X2tleXBhaXIoXCJoZXhcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0Q3J5cHRvQm94KFxuICBkYXRhOiBVaW50OEFycmF5LFxuICBwdWJsaWNLZXlBbGljZTogc3RyaW5nLFxuICBwcml2YXRlS2V5Qm9iOiBzdHJpbmdcbik6IFVpbnQ4QXJyYXkge1xuICBpZiAoZGF0YS5sZW5ndGggPCBzb2RpdW0uY3J5cHRvX2JveF9OT05DRUJZVEVTICsgc29kaXVtLmNyeXB0b19ib3hfTUFDQllURVMpIHtcbiAgICB0aHJvdyBcImRhdGEgdG9vIHNob3J0XCI7XG4gIH1cbiAgY29uc3Qgbm9uY2UgPSBkYXRhLnNsaWNlKDAsIHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICBjb25zdCBjaXBoZXIgPSBkYXRhLnNsaWNlKHNvZGl1bS5jcnlwdG9fYm94X05PTkNFQllURVMpO1xuICByZXR1cm4gc29kaXVtLmNyeXB0b19ib3hfb3Blbl9lYXN5KFxuICAgIGNpcGhlcixcbiAgICBub25jZSxcbiAgICBzb2RpdW0uZnJvbV9oZXgocHVibGljS2V5QWxpY2UpLFxuICAgIHNvZGl1bS5mcm9tX2hleChwcml2YXRlS2V5Qm9iKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVTZWNyZXRCb3hLZXkoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNvZGl1bS5yYW5kb21ieXRlc19idWYoc29kaXVtLmNyeXB0b19zZWNyZXRib3hfS0VZQllURVMsIFwiaGV4XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdFNlY3JldEJveChkYXRhOiBVaW50OEFycmF5LCBrZXk6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBub25jZSA9IHNvZGl1bS5yYW5kb21ieXRlc19idWYoc29kaXVtLmNyeXB0b19zZWNyZXRib3hfTk9OQ0VCWVRFUyk7XG4gIGNvbnN0IGNyeXB0ID0gc29kaXVtLmNyeXB0b19zZWNyZXRib3hfZWFzeShkYXRhLCBub25jZSwgc29kaXVtLmZyb21faGV4KGtleSkpO1xuICByZXR1cm4gY29uY2F0ZW5hdGUobm9uY2UsIGNyeXB0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHRTZWNyZXRCb3goZGF0YTogVWludDhBcnJheSwga2V5OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgaWYgKFxuICAgIGRhdGEubGVuZ3RoIDxcbiAgICBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTICsgc29kaXVtLmNyeXB0b19zZWNyZXRib3hfTUFDQllURVNcbiAgKSB7XG4gICAgdGhyb3cgXCJkYXRhIHRvbyBzaG9ydFwiO1xuICB9XG4gIGNvbnN0IG5vbmNlID0gZGF0YS5zbGljZSgwLCBzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTKTtcbiAgY29uc3QgY2lwaGVyID0gZGF0YS5zbGljZShzb2RpdW0uY3J5cHRvX3NlY3JldGJveF9OT05DRUJZVEVTKTtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fc2VjcmV0Ym94X29wZW5fZWFzeShjaXBoZXIsIG5vbmNlLCBzb2RpdW0uZnJvbV9oZXgoa2V5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0QW5vbnltb3VzKFxuICBkYXRhOiBVaW50OEFycmF5LFxuICByZWNlaXZlclB1YmxpY0tleTogc3RyaW5nXG4pOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X3NlYWwoZGF0YSwgc29kaXVtLmZyb21faGV4KHJlY2VpdmVyUHVibGljS2V5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0QW5vbnltb3VzKFxuICBkYXRhOiBVaW50OEFycmF5LFxuICB7IHByaXZhdGVLZXksIHB1YmxpY0tleSB9OiBLZXlQYWlyXG4pOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHNvZGl1bS5jcnlwdG9fYm94X3NlYWxfb3BlbihcbiAgICBkYXRhLFxuICAgIHNvZGl1bS5mcm9tX2hleChwdWJsaWNLZXkpLFxuICAgIHNvZGl1bS5mcm9tX2hleChwcml2YXRlS2V5KVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxXQUFXLFFBQVEsbUJBQW1CO0FBQy9DLFNBQVNDLE1BQU0sUUFBUSxjQUFjO0FBT3JDLE9BQU8sU0FBU0MsZ0JBQWdCLENBQzlCQyxJQUFnQixFQUNoQkMsWUFBb0IsRUFDcEJDLGVBQXVCLEVBQ1g7RUFDWixNQUFNQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sZUFBZSxDQUFDTixNQUFNLENBQUNPLHFCQUFxQixDQUFDO0VBQ2xFLE1BQU1DLEtBQUssR0FBR1IsTUFBTSxDQUFDUyxlQUFlLENBQ2xDUCxJQUFJLEVBQ0pHLEtBQUssRUFDTEwsTUFBTSxDQUFDVSxRQUFRLENBQUNQLFlBQVksQ0FBQyxFQUM3QkgsTUFBTSxDQUFDVSxRQUFRLENBQUNOLGVBQWUsQ0FBQyxDQUNqQztFQUNELE9BQU9MLFdBQVcsQ0FBQ00sS0FBSyxFQUFFRyxLQUFLLENBQUM7QUFDbEM7QUFFQSxPQUFPLFNBQVNHLHdCQUF3QixHQUFZO0VBQ2xELE9BQU9YLE1BQU0sQ0FBQ1ksa0JBQWtCLENBQUMsS0FBSyxDQUFDO0FBQ3pDO0FBRUEsT0FBTyxTQUFTQyxnQkFBZ0IsQ0FDOUJYLElBQWdCLEVBQ2hCWSxjQUFzQixFQUN0QkMsYUFBcUIsRUFDVDtFQUNaLElBQUliLElBQUksQ0FBQ2MsTUFBTSxHQUFHaEIsTUFBTSxDQUFDTyxxQkFBcUIsR0FBR1AsTUFBTSxDQUFDaUIsbUJBQW1CLEVBQUU7SUFDM0UsTUFBTSxnQkFBZ0I7RUFDeEI7RUFDQSxNQUFNWixLQUFLLEdBQUdILElBQUksQ0FBQ2dCLEtBQUssQ0FBQyxDQUFDLEVBQUVsQixNQUFNLENBQUNPLHFCQUFxQixDQUFDO0VBQ3pELE1BQU1ZLE1BQU0sR0FBR2pCLElBQUksQ0FBQ2dCLEtBQUssQ0FBQ2xCLE1BQU0sQ0FBQ08scUJBQXFCLENBQUM7RUFDdkQsT0FBT1AsTUFBTSxDQUFDb0Isb0JBQW9CLENBQ2hDRCxNQUFNLEVBQ05kLEtBQUssRUFDTEwsTUFBTSxDQUFDVSxRQUFRLENBQUNJLGNBQWMsQ0FBQyxFQUMvQmQsTUFBTSxDQUFDVSxRQUFRLENBQUNLLGFBQWEsQ0FBQyxDQUMvQjtBQUNIO0FBRUEsT0FBTyxTQUFTTSxvQkFBb0IsR0FBVztFQUM3QyxPQUFPckIsTUFBTSxDQUFDTSxlQUFlLENBQUNOLE1BQU0sQ0FBQ3NCLHlCQUF5QixFQUFFLEtBQUssQ0FBQztBQUN4RTtBQUVBLE9BQU8sU0FBU0MsZ0JBQWdCLENBQUNyQixJQUFnQixFQUFFc0IsR0FBVyxFQUFjO0VBQzFFLE1BQU1uQixLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sZUFBZSxDQUFDTixNQUFNLENBQUN5QiwyQkFBMkIsQ0FBQztFQUN4RSxNQUFNakIsS0FBSyxHQUFHUixNQUFNLENBQUMwQixxQkFBcUIsQ0FBQ3hCLElBQUksRUFBRUcsS0FBSyxFQUFFTCxNQUFNLENBQUNVLFFBQVEsQ0FBQ2MsR0FBRyxDQUFDLENBQUM7RUFDN0UsT0FBT3pCLFdBQVcsQ0FBQ00sS0FBSyxFQUFFRyxLQUFLLENBQUM7QUFDbEM7QUFFQSxPQUFPLFNBQVNtQixnQkFBZ0IsQ0FBQ3pCLElBQWdCLEVBQUVzQixHQUFXLEVBQWM7RUFDMUUsSUFDRXRCLElBQUksQ0FBQ2MsTUFBTSxHQUNYaEIsTUFBTSxDQUFDeUIsMkJBQTJCLEdBQUd6QixNQUFNLENBQUM0Qix5QkFBeUIsRUFDckU7SUFDQSxNQUFNLGdCQUFnQjtFQUN4QjtFQUNBLE1BQU12QixLQUFLLEdBQUdILElBQUksQ0FBQ2dCLEtBQUssQ0FBQyxDQUFDLEVBQUVsQixNQUFNLENBQUN5QiwyQkFBMkIsQ0FBQztFQUMvRCxNQUFNTixNQUFNLEdBQUdqQixJQUFJLENBQUNnQixLQUFLLENBQUNsQixNQUFNLENBQUN5QiwyQkFBMkIsQ0FBQztFQUM3RCxPQUFPekIsTUFBTSxDQUFDNkIsMEJBQTBCLENBQUNWLE1BQU0sRUFBRWQsS0FBSyxFQUFFTCxNQUFNLENBQUNVLFFBQVEsQ0FBQ2MsR0FBRyxDQUFDLENBQUM7QUFDL0U7QUFFQSxPQUFPLFNBQVNNLGdCQUFnQixDQUM5QjVCLElBQWdCLEVBQ2hCNkIsaUJBQXlCLEVBQ2I7RUFDWixPQUFPL0IsTUFBTSxDQUFDZ0MsZUFBZSxDQUFDOUIsSUFBSSxFQUFFRixNQUFNLENBQUNVLFFBQVEsQ0FBQ3FCLGlCQUFpQixDQUFDLENBQUM7QUFDekU7QUFFQSxPQUFPLFNBQVNFLGdCQUFnQixDQUM5Qi9CLElBQWdCLFFBRUo7RUFBQSxJQURaO0lBQUVnQyxVQUFVO0lBQUVDO0VBQW1CLENBQUM7RUFFbEMsT0FBT25DLE1BQU0sQ0FBQ29DLG9CQUFvQixDQUNoQ2xDLElBQUksRUFDSkYsTUFBTSxDQUFDVSxRQUFRLENBQUN5QixTQUFTLENBQUMsRUFDMUJuQyxNQUFNLENBQUNVLFFBQVEsQ0FBQ3dCLFVBQVUsQ0FBQyxDQUM1QjtBQUNIIn0=
package/dist/index.js CHANGED
@@ -6,4 +6,4 @@ export * from "./sodium.js";
6
6
  export * from "./utils/store-buddy.js";
7
7
  export { Lang, FileContentType, MailType, PlanKind, Rights, PayInputType, UserRole, InfuraNetwork, Thunder } from "./zeus/index.js";
8
8
  export * from "./error.js";
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2xpZW50IiwiTGFuZyIsIkZpbGVDb250ZW50VHlwZSIsIk1haWxUeXBlIiwiUGxhbktpbmQiLCJSaWdodHMiLCJQYXlJbnB1dFR5cGUiLCJVc2VyUm9sZSIsIkluZnVyYU5ldHdvcmsiLCJUaHVuZGVyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NsaWVudC9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY3J5cHRvL2luZGV4LmpzXCI7XG5leHBvcnQgdHlwZSB7IFByb2dyZXNzIH0gZnJvbSBcIi4vY3J5cHRvL2ZpbGUuanNcIjtcbmV4cG9ydCB0eXBlIHtcbiAgVXNlcixcbiAgUXVlcnlMaW1pdHMsXG4gIERvd25sb2FkUHJvZ3Jlc3MsXG4gIFVzZXJEYXRhLFxuICBNYWlsTGltaXRzVmFsdWVzLFxuICBDbG91ZExpbWl0cyxcbiAgU2VuZFJlcG9ydCxcbiAgU3VjY2Vzc1Jlc3BvbnNlXG59IGZyb20gXCIuL0Jhc2VDbGllbnQuanNcIjtcbmV4cG9ydCB7IEJhc2VDbGllbnQgfSBmcm9tIFwiLi9CYXNlQ2xpZW50LmpzXCI7XG5leHBvcnQgdHlwZSB7XG4gIE5vZGUsXG4gIE5vZGVGdWxsLFxuICBGaWxlTWV0YWRhdGEsXG4gIFNlY3JlY3lVc2VyQXBwLFxuICBCYXNlTWFpbCxcbiAgUmVjZWl2ZWRNYWlsLFxuICBTZW50TWFpbCxcbiAgUHVibGljVXNlcixcbiAgVXNlckFwcFNldHRpbmdzLFxuICBOb2RlU2l6ZSxcbiAgVXNlckFwcE5vdGlmaWNhdGlvbnMsXG4gIE1haWxGaWxlLFxuICBNYWlsSW50ZWdyaXR5LFxuICBEcmFmdE1haWwsXG4gIE1haWwsXG4gIFdhaXRpbmdSZWNlaXZlZE1haWwsXG4gIE1haWxSZWNpcGllbnRJbnB1dFxufSBmcm9tIFwiLi9jbGllbnQvdHlwZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NsaWVudC9oZWxwZXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb2RpdW0uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL3N0b3JlLWJ1ZGR5LmpzXCI7XG5leHBvcnQge1xuICBMYW5nLFxuICBGaWxlQ29udGVudFR5cGUsXG4gIE1haWxUeXBlLFxuICBQbGFuS2luZCxcbiAgUmlnaHRzLFxuICBQYXlJbnB1dFR5cGUsXG4gIFVzZXJSb2xlLFxuICBJbmZ1cmFOZXR3b3JrLFxuICBUaHVuZGVyXG59IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3IuanNcIjtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBZDtBQUNBLGNBQWMsbUJBQWQ7QUFZQSxTQUFTQSxVQUFULFFBQTJCLGlCQUEzQjtBQW9CQSxjQUFjLHFCQUFkO0FBQ0EsY0FBYyxhQUFkO0FBQ0EsY0FBYyx3QkFBZDtBQUNBLFNBQ0VDLElBREYsRUFFRUMsZUFGRixFQUdFQyxRQUhGLEVBSUVDLFFBSkYsRUFLRUMsTUFMRixFQU1FQyxZQU5GLEVBT0VDLFFBUEYsRUFRRUMsYUFSRixFQVNFQyxPQVRGLFFBVU8saUJBVlA7QUFZQSxjQUFjLFlBQWQifQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2xpZW50IiwiTGFuZyIsIkZpbGVDb250ZW50VHlwZSIsIk1haWxUeXBlIiwiUGxhbktpbmQiLCJSaWdodHMiLCJQYXlJbnB1dFR5cGUiLCJVc2VyUm9sZSIsIkluZnVyYU5ldHdvcmsiLCJUaHVuZGVyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NsaWVudC9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY3J5cHRvL2luZGV4LmpzXCI7XG5leHBvcnQgdHlwZSB7IFByb2dyZXNzIH0gZnJvbSBcIi4vY3J5cHRvL2ZpbGUuanNcIjtcbmV4cG9ydCB0eXBlIHtcbiAgVXNlcixcbiAgUXVlcnlMaW1pdHMsXG4gIERvd25sb2FkUHJvZ3Jlc3MsXG4gIFVzZXJEYXRhLFxuICBNYWlsTGltaXRzVmFsdWVzLFxuICBDbG91ZExpbWl0cyxcbiAgU2VuZFJlcG9ydCxcbiAgU3VjY2Vzc1Jlc3BvbnNlXG59IGZyb20gXCIuL0Jhc2VDbGllbnQuanNcIjtcbmV4cG9ydCB7IEJhc2VDbGllbnQgfSBmcm9tIFwiLi9CYXNlQ2xpZW50LmpzXCI7XG5leHBvcnQgdHlwZSB7XG4gIE5vZGUsXG4gIE5vZGVGdWxsLFxuICBGaWxlTWV0YWRhdGEsXG4gIFNlY3JlY3lVc2VyQXBwLFxuICBCYXNlTWFpbCxcbiAgUmVjZWl2ZWRNYWlsLFxuICBTZW50TWFpbCxcbiAgUHVibGljVXNlcixcbiAgVXNlckFwcFNldHRpbmdzLFxuICBOb2RlU2l6ZSxcbiAgVXNlckFwcE5vdGlmaWNhdGlvbnMsXG4gIE1haWxGaWxlLFxuICBNYWlsSW50ZWdyaXR5LFxuICBEcmFmdE1haWwsXG4gIE1haWwsXG4gIFdhaXRpbmdSZWNlaXZlZE1haWwsXG4gIE1haWxSZWNpcGllbnRJbnB1dFxufSBmcm9tIFwiLi9jbGllbnQvdHlwZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NsaWVudC9oZWxwZXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb2RpdW0uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL3N0b3JlLWJ1ZGR5LmpzXCI7XG5leHBvcnQge1xuICBMYW5nLFxuICBGaWxlQ29udGVudFR5cGUsXG4gIE1haWxUeXBlLFxuICBQbGFuS2luZCxcbiAgUmlnaHRzLFxuICBQYXlJbnB1dFR5cGUsXG4gIFVzZXJSb2xlLFxuICBJbmZ1cmFOZXR3b3JrLFxuICBUaHVuZGVyXG59IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3IuanNcIjtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxtQkFBbUI7QUFZakMsU0FBU0EsVUFBVSxRQUFRLGlCQUFpQjtBQW9CNUMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxhQUFhO0FBQzNCLGNBQWMsd0JBQXdCO0FBQ3RDLFNBQ0VDLElBQUksRUFDSkMsZUFBZSxFQUNmQyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsTUFBTSxFQUNOQyxZQUFZLEVBQ1pDLFFBQVEsRUFDUkMsYUFBYSxFQUNiQyxPQUFPLFFBQ0YsaUJBQWlCO0FBRXhCLGNBQWMsWUFBWSJ9
@@ -4,25 +4,20 @@ export function compress(data) {
4
4
  if (data.byteLength > 15_000_000) {
5
5
  return concatenate(new Uint8Array([0]), data);
6
6
  }
7
-
8
7
  const compressed = new Uint8Array(compressBlockBound(data.byteLength));
9
8
  const compressedSize = compressBlockHC(data, compressed, 0);
10
-
11
9
  if (compressedSize === 0) {
12
10
  return concatenate(new Uint8Array([0]), data);
13
11
  }
14
-
15
12
  return concatenate(new Uint8Array([1]), compressed.slice(0, compressedSize));
16
13
  }
17
14
  export function uncompress(data) {
18
15
  const realData = data.slice(1);
19
-
20
16
  if (data[0] === 0) {
21
17
  return realData;
22
18
  }
23
-
24
19
  const dst = new Uint8Array(calcUncompressedLen(realData));
25
20
  const uncompressedSize = uncompressBlock(realData, dst);
26
21
  return dst.slice(0, uncompressedSize);
27
22
  }
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYWxjVW5jb21wcmVzc2VkTGVuIiwiY29tcHJlc3NCbG9ja0JvdW5kIiwiY29tcHJlc3NCbG9ja0hDIiwidW5jb21wcmVzc0Jsb2NrIiwiY29uY2F0ZW5hdGUiLCJjb21wcmVzcyIsImRhdGEiLCJieXRlTGVuZ3RoIiwiVWludDhBcnJheSIsImNvbXByZXNzZWQiLCJjb21wcmVzc2VkU2l6ZSIsInNsaWNlIiwidW5jb21wcmVzcyIsInJlYWxEYXRhIiwiZHN0IiwidW5jb21wcmVzc2VkU2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taW5pZnkvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY2FsY1VuY29tcHJlc3NlZExlbixcbiAgY29tcHJlc3NCbG9ja0JvdW5kLFxuICBjb21wcmVzc0Jsb2NrSEMsXG4gIHVuY29tcHJlc3NCbG9ja1xufSBmcm9tIFwiLi9sejQuanNcIjtcbmltcG9ydCB7IGNvbmNhdGVuYXRlIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzcyhkYXRhOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGlmIChkYXRhLmJ5dGVMZW5ndGggPiAxNV8wMDBfMDAwKSB7XG4gICAgcmV0dXJuIGNvbmNhdGVuYXRlKG5ldyBVaW50OEFycmF5KFswXSksIGRhdGEpO1xuICB9XG4gIGNvbnN0IGNvbXByZXNzZWQgPSBuZXcgVWludDhBcnJheShjb21wcmVzc0Jsb2NrQm91bmQoZGF0YS5ieXRlTGVuZ3RoKSk7XG4gIGNvbnN0IGNvbXByZXNzZWRTaXplID0gY29tcHJlc3NCbG9ja0hDKGRhdGEsIGNvbXByZXNzZWQsIDApO1xuICBpZiAoY29tcHJlc3NlZFNpemUgPT09IDApIHtcbiAgICByZXR1cm4gY29uY2F0ZW5hdGUobmV3IFVpbnQ4QXJyYXkoWzBdKSwgZGF0YSk7XG4gIH1cbiAgcmV0dXJuIGNvbmNhdGVuYXRlKG5ldyBVaW50OEFycmF5KFsxXSksIGNvbXByZXNzZWQuc2xpY2UoMCwgY29tcHJlc3NlZFNpemUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuY29tcHJlc3MoZGF0YTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCByZWFsRGF0YSA9IGRhdGEuc2xpY2UoMSk7XG4gIGlmIChkYXRhWzBdID09PSAwKSB7XG4gICAgcmV0dXJuIHJlYWxEYXRhO1xuICB9XG4gIGNvbnN0IGRzdCA9IG5ldyBVaW50OEFycmF5KGNhbGNVbmNvbXByZXNzZWRMZW4ocmVhbERhdGEpKTtcbiAgY29uc3QgdW5jb21wcmVzc2VkU2l6ZSA9IHVuY29tcHJlc3NCbG9jayhyZWFsRGF0YSwgZHN0KTtcbiAgcmV0dXJuIGRzdC5zbGljZSgwLCB1bmNvbXByZXNzZWRTaXplKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsbUJBREYsRUFFRUMsa0JBRkYsRUFHRUMsZUFIRixFQUlFQyxlQUpGLFFBS08sVUFMUDtBQU1BLFNBQVNDLFdBQVQsUUFBNEIsbUJBQTVCO0FBRUEsT0FBTyxTQUFTQyxRQUFULENBQWtCQyxJQUFsQixFQUFnRDtFQUNyRCxJQUFJQSxJQUFJLENBQUNDLFVBQUwsR0FBa0IsVUFBdEIsRUFBa0M7SUFDaEMsT0FBT0gsV0FBVyxDQUFDLElBQUlJLFVBQUosQ0FBZSxDQUFDLENBQUQsQ0FBZixDQUFELEVBQXNCRixJQUF0QixDQUFsQjtFQUNEOztFQUNELE1BQU1HLFVBQVUsR0FBRyxJQUFJRCxVQUFKLENBQWVQLGtCQUFrQixDQUFDSyxJQUFJLENBQUNDLFVBQU4sQ0FBakMsQ0FBbkI7RUFDQSxNQUFNRyxjQUFjLEdBQUdSLGVBQWUsQ0FBQ0ksSUFBRCxFQUFPRyxVQUFQLEVBQW1CLENBQW5CLENBQXRDOztFQUNBLElBQUlDLGNBQWMsS0FBSyxDQUF2QixFQUEwQjtJQUN4QixPQUFPTixXQUFXLENBQUMsSUFBSUksVUFBSixDQUFlLENBQUMsQ0FBRCxDQUFmLENBQUQsRUFBc0JGLElBQXRCLENBQWxCO0VBQ0Q7O0VBQ0QsT0FBT0YsV0FBVyxDQUFDLElBQUlJLFVBQUosQ0FBZSxDQUFDLENBQUQsQ0FBZixDQUFELEVBQXNCQyxVQUFVLENBQUNFLEtBQVgsQ0FBaUIsQ0FBakIsRUFBb0JELGNBQXBCLENBQXRCLENBQWxCO0FBQ0Q7QUFFRCxPQUFPLFNBQVNFLFVBQVQsQ0FBb0JOLElBQXBCLEVBQWtEO0VBQ3ZELE1BQU1PLFFBQVEsR0FBR1AsSUFBSSxDQUFDSyxLQUFMLENBQVcsQ0FBWCxDQUFqQjs7RUFDQSxJQUFJTCxJQUFJLENBQUMsQ0FBRCxDQUFKLEtBQVksQ0FBaEIsRUFBbUI7SUFDakIsT0FBT08sUUFBUDtFQUNEOztFQUNELE1BQU1DLEdBQUcsR0FBRyxJQUFJTixVQUFKLENBQWVSLG1CQUFtQixDQUFDYSxRQUFELENBQWxDLENBQVo7RUFDQSxNQUFNRSxnQkFBZ0IsR0FBR1osZUFBZSxDQUFDVSxRQUFELEVBQVdDLEdBQVgsQ0FBeEM7RUFDQSxPQUFPQSxHQUFHLENBQUNILEtBQUosQ0FBVSxDQUFWLEVBQWFJLGdCQUFiLENBQVA7QUFDRCJ9
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYWxjVW5jb21wcmVzc2VkTGVuIiwiY29tcHJlc3NCbG9ja0JvdW5kIiwiY29tcHJlc3NCbG9ja0hDIiwidW5jb21wcmVzc0Jsb2NrIiwiY29uY2F0ZW5hdGUiLCJjb21wcmVzcyIsImRhdGEiLCJieXRlTGVuZ3RoIiwiVWludDhBcnJheSIsImNvbXByZXNzZWQiLCJjb21wcmVzc2VkU2l6ZSIsInNsaWNlIiwidW5jb21wcmVzcyIsInJlYWxEYXRhIiwiZHN0IiwidW5jb21wcmVzc2VkU2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taW5pZnkvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY2FsY1VuY29tcHJlc3NlZExlbixcbiAgY29tcHJlc3NCbG9ja0JvdW5kLFxuICBjb21wcmVzc0Jsb2NrSEMsXG4gIHVuY29tcHJlc3NCbG9ja1xufSBmcm9tIFwiLi9sejQuanNcIjtcbmltcG9ydCB7IGNvbmNhdGVuYXRlIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzcyhkYXRhOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGlmIChkYXRhLmJ5dGVMZW5ndGggPiAxNV8wMDBfMDAwKSB7XG4gICAgcmV0dXJuIGNvbmNhdGVuYXRlKG5ldyBVaW50OEFycmF5KFswXSksIGRhdGEpO1xuICB9XG4gIGNvbnN0IGNvbXByZXNzZWQgPSBuZXcgVWludDhBcnJheShjb21wcmVzc0Jsb2NrQm91bmQoZGF0YS5ieXRlTGVuZ3RoKSk7XG4gIGNvbnN0IGNvbXByZXNzZWRTaXplID0gY29tcHJlc3NCbG9ja0hDKGRhdGEsIGNvbXByZXNzZWQsIDApO1xuICBpZiAoY29tcHJlc3NlZFNpemUgPT09IDApIHtcbiAgICByZXR1cm4gY29uY2F0ZW5hdGUobmV3IFVpbnQ4QXJyYXkoWzBdKSwgZGF0YSk7XG4gIH1cbiAgcmV0dXJuIGNvbmNhdGVuYXRlKG5ldyBVaW50OEFycmF5KFsxXSksIGNvbXByZXNzZWQuc2xpY2UoMCwgY29tcHJlc3NlZFNpemUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuY29tcHJlc3MoZGF0YTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCByZWFsRGF0YSA9IGRhdGEuc2xpY2UoMSk7XG4gIGlmIChkYXRhWzBdID09PSAwKSB7XG4gICAgcmV0dXJuIHJlYWxEYXRhO1xuICB9XG4gIGNvbnN0IGRzdCA9IG5ldyBVaW50OEFycmF5KGNhbGNVbmNvbXByZXNzZWRMZW4ocmVhbERhdGEpKTtcbiAgY29uc3QgdW5jb21wcmVzc2VkU2l6ZSA9IHVuY29tcHJlc3NCbG9jayhyZWFsRGF0YSwgZHN0KTtcbiAgcmV0dXJuIGRzdC5zbGljZSgwLCB1bmNvbXByZXNzZWRTaXplKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMsZUFBZSxRQUNWLFVBQVU7QUFDakIsU0FBU0MsV0FBVyxRQUFRLG1CQUFtQjtBQUUvQyxPQUFPLFNBQVNDLFFBQVEsQ0FBQ0MsSUFBZ0IsRUFBYztFQUNyRCxJQUFJQSxJQUFJLENBQUNDLFVBQVUsR0FBRyxVQUFVLEVBQUU7SUFDaEMsT0FBT0gsV0FBVyxDQUFDLElBQUlJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVGLElBQUksQ0FBQztFQUMvQztFQUNBLE1BQU1HLFVBQVUsR0FBRyxJQUFJRCxVQUFVLENBQUNQLGtCQUFrQixDQUFDSyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0VBQ3RFLE1BQU1HLGNBQWMsR0FBR1IsZUFBZSxDQUFDSSxJQUFJLEVBQUVHLFVBQVUsRUFBRSxDQUFDLENBQUM7RUFDM0QsSUFBSUMsY0FBYyxLQUFLLENBQUMsRUFBRTtJQUN4QixPQUFPTixXQUFXLENBQUMsSUFBSUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUYsSUFBSSxDQUFDO0VBQy9DO0VBQ0EsT0FBT0YsV0FBVyxDQUFDLElBQUlJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVDLFVBQVUsQ0FBQ0UsS0FBSyxDQUFDLENBQUMsRUFBRUQsY0FBYyxDQUFDLENBQUM7QUFDOUU7QUFFQSxPQUFPLFNBQVNFLFVBQVUsQ0FBQ04sSUFBZ0IsRUFBYztFQUN2RCxNQUFNTyxRQUFRLEdBQUdQLElBQUksQ0FBQ0ssS0FBSyxDQUFDLENBQUMsQ0FBQztFQUM5QixJQUFJTCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ2pCLE9BQU9PLFFBQVE7RUFDakI7RUFDQSxNQUFNQyxHQUFHLEdBQUcsSUFBSU4sVUFBVSxDQUFDUixtQkFBbUIsQ0FBQ2EsUUFBUSxDQUFDLENBQUM7RUFDekQsTUFBTUUsZ0JBQWdCLEdBQUdaLGVBQWUsQ0FBQ1UsUUFBUSxFQUFFQyxHQUFHLENBQUM7RUFDdkQsT0FBT0EsR0FBRyxDQUFDSCxLQUFLLENBQUMsQ0FBQyxFQUFFSSxnQkFBZ0IsQ0FBQztBQUN2QyJ9