@bitgo-beta/key-card 0.0.1-beta.2012 → 0.0.1-beta.2014

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,30 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseVaultKeycardBox = parseVaultKeycardBox;
3
+ exports.parseSafeKeycardBox = parseSafeKeycardBox;
4
4
  exports.buildLinesFromPDFNodes = buildLinesFromPDFNodes;
5
5
  exports.parseKeycardFromLines = parseKeycardFromLines;
6
6
  const types_1 = require("./types");
7
7
  /**
8
- * Parses a vault keycard box value — the JSON packed by `generateVaultQrData`, e.g.
8
+ * Parses a safe keycard box value — the JSON packed by `generateSafeQrData`, e.g.
9
9
  * `{"secp256k1Multisig":"…","ecdsaMpc":"…",…}` — into its four roots. Validates that all four
10
10
  * roots are present. Recovery tooling calls this on the A/B/C box value returned by
11
11
  * {@link parseKeycardFromLines}, then decrypts each root value with the wallet password.
12
12
  */
13
- function parseVaultKeycardBox(data) {
13
+ function parseSafeKeycardBox(data) {
14
14
  let parsed;
15
15
  try {
16
16
  parsed = JSON.parse(data);
17
17
  }
18
18
  catch {
19
- throw new Error('parseVaultKeycardBox: value is not valid JSON');
19
+ throw new Error('parseSafeKeycardBox: value is not valid JSON');
20
20
  }
21
21
  if (typeof parsed !== 'object' || parsed === null) {
22
- throw new Error('parseVaultKeycardBox: value is not an object');
22
+ throw new Error('parseSafeKeycardBox: value is not an object');
23
23
  }
24
24
  const roots = parsed;
25
- for (const slot of types_1.VAULT_ROOT_ORDER) {
25
+ for (const slot of types_1.SAFE_ROOT_ORDER) {
26
26
  if (typeof roots[slot] !== 'string') {
27
- throw new Error(`parseVaultKeycardBox: missing or invalid root ${slot}`);
27
+ throw new Error(`parseSafeKeycardBox: missing or invalid root ${slot}`);
28
28
  }
29
29
  }
30
30
  return parsed;
@@ -59,7 +59,9 @@ function countChar(input, char) {
59
59
  return input.split(char).length - 1;
60
60
  }
61
61
  function isEncryptedWalletPasswordSectionTitle(title) {
62
- return title.toLowerCase().includes('encrypted wallet password');
62
+ const normalized = title.toLowerCase();
63
+ // Box D is titled "Encrypted Wallet Password" (wallet) or "Encrypted Safe Password" (safe).
64
+ return normalized.includes('encrypted wallet password') || normalized.includes('encrypted safe password');
63
65
  }
64
66
  /**
65
67
  * Reconstructs logical text lines from an unordered set of PDF text nodes.
@@ -183,4 +185,4 @@ function parseKeycardFromLines(lines) {
183
185
  value: normalizeSectionValue(values.join('\n')),
184
186
  }));
185
187
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VLZXljYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlS2V5Y2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSxvREFpQkM7QUFpREQsd0RBNERDO0FBRUQsc0RBeUVDO0FBOU5ELG1DQUE4RDtBQWU5RDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsSUFBSSxNQUFlLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBaUMsQ0FBQztJQUNoRCxLQUFLLE1BQU0sSUFBSSxJQUFJLHdCQUFnQixFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUEyQixDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLGtCQUFrQixHQUFHLGdDQUFnQyxDQUFDO0FBQzVELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDO0FBQzNDLE1BQU0sY0FBYyxHQUFHLDBCQUEwQixDQUFDO0FBRWxELCtFQUErRTtBQUMvRSxxRkFBcUY7QUFDckYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFDL0IsbUZBQW1G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U0FDNUYsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssRUFBRSxHQUFHLE9BQU8sS0FBSyxLQUFLLEVBQUU7UUFDN0IsS0FBSyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEQsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmF1bHRLZXljYXJkUm9vdHMsIFZBVUxUX1JPT1RfT1JERVIgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgUERGVGV4dE5vZGUgPSB7XG4gIHRleHQ6IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEtleWNhcmRFbnRyeSA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgdmF1bHQga2V5Y2FyZCBib3ggdmFsdWUg4oCUIHRoZSBKU09OIHBhY2tlZCBieSBgZ2VuZXJhdGVWYXVsdFFyRGF0YWAsIGUuZy5cbiAqIGB7XCJzZWNwMjU2azFNdWx0aXNpZ1wiOlwi4oCmXCIsXCJlY2RzYU1wY1wiOlwi4oCmXCIs4oCmfWAg4oCUIGludG8gaXRzIGZvdXIgcm9vdHMuIFZhbGlkYXRlcyB0aGF0IGFsbCBmb3VyXG4gKiByb290cyBhcmUgcHJlc2VudC4gUmVjb3ZlcnkgdG9vbGluZyBjYWxscyB0aGlzIG9uIHRoZSBBL0IvQyBib3ggdmFsdWUgcmV0dXJuZWQgYnlcbiAqIHtAbGluayBwYXJzZUtleWNhcmRGcm9tTGluZXN9LCB0aGVuIGRlY3J5cHRzIGVhY2ggcm9vdCB2YWx1ZSB3aXRoIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZhdWx0S2V5Y2FyZEJveChkYXRhOiBzdHJpbmcpOiBWYXVsdEtleWNhcmRSb290cyB7XG4gIGxldCBwYXJzZWQ6IHVua25vd247XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJzZVZhdWx0S2V5Y2FyZEJveDogdmFsdWUgaXMgbm90IHZhbGlkIEpTT04nKTtcbiAgfVxuICBpZiAodHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcgfHwgcGFyc2VkID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJzZVZhdWx0S2V5Y2FyZEJveDogdmFsdWUgaXMgbm90IGFuIG9iamVjdCcpO1xuICB9XG4gIGNvbnN0IHJvb3RzID0gcGFyc2VkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBmb3IgKGNvbnN0IHNsb3Qgb2YgVkFVTFRfUk9PVF9PUkRFUikge1xuICAgIGlmICh0eXBlb2Ygcm9vdHNbc2xvdF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHBhcnNlVmF1bHRLZXljYXJkQm94OiBtaXNzaW5nIG9yIGludmFsaWQgcm9vdCAke3Nsb3R9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZWQgYXMgVmF1bHRLZXljYXJkUm9vdHM7XG59XG5cbmNvbnN0IHNlY3Rpb25IZWFkZXJSZWdleCA9IC9eKFtBLURdKVxccypbOi4pLV1cXHMqKC4rPylcXHMqJC9pO1xuY29uc3QgZGF0YUxpbmVSZWdleCA9IC9eZGF0YVxccyo6XFxzKiguKikkL2k7XG5jb25zdCBmYXFIZWFkZXJSZWdleCA9IC9eQml0R29cXHMrS2V5Q2FyZFxccytGQVEkL2k7XG5cbi8vIFBERiBjb29yZGluYXRlIHRvbGVyYW5jZSBpbiBwb2ludHMuIE5vZGVzIHdpdGhpbiB0aGlzIGRpc3RhbmNlIG9uIHRoZSBZLWF4aXNcbi8vIGFyZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBsaW5lOyBub2RlcyBmdXJ0aGVyIGFwYXJ0IGFyZSBzZXBhcmF0ZSBsaW5lcy5cbmNvbnN0IFBERl9MSU5FX1lfVE9MRVJBTkNFID0gMjtcbi8vIEhvcml6b250YWwgZ2FwIGluIHBvaW50cyBhYm92ZSB3aGljaCBhIHNwYWNlIGlzIGluc2VydGVkIGJldHdlZW4gYWRqYWNlbnQgbm9kZXMuXG5jb25zdCBQREZfTk9ERV9HQVBfVEhSRVNIT0xEID0gMjtcblxuZnVuY3Rpb24gc2FuaXRpemVUZXh0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplU2VjdGlvblZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBUd28tcGFzcyByZW1vdmFsIG9mIFwiUGFydCBOXCIgcGFnZS1jb250aW51YXRpb24gbGFiZWxzOlxuICAvLyAxLiBMaW5lIGZpbHRlcjogcmVtb3ZlcyBsYWJlbHMgdGhhdCBhcHBlYXIgYXMgc3RhbmRhbG9uZSBsaW5lcy5cbiAgLy8gMi4gUmVnZXggcmVwbGFjZTogcmVtb3ZlcyBsYWJlbHMgZW1iZWRkZWQgbWlkLWxpbmUgd2hlblxuICAvLyAgICBidWlsZExpbmVzRnJvbVBERk5vZGVzIG1lcmdlcyB0aGVtIHdpdGggYWRqYWNlbnQgY29udGVudCBhdCB0aGUgc2FtZVxuICAvLyAgICB5LWNvb3JkaW5hdGUgKGUuZy4gXCIuLi5YODhiUGFydCAyIGxGUE1kLi4uXCIpLlxuICAvLyBqb2luKCcnKSBpbnRlbnRpb25hbGx5IHVzZXMgbm8gc2VwYXJhdG9yIOKAlCBzZWN0aW9uIHZhbHVlcyBhcmUgY29udGludW91c1xuICAvLyBzdHJpbmdzIChiYXNlNjQgLyB4cHViKSB0aGF0IHdyYXAgYWNyb3NzIFBERiBsaW5lcyB3aXRob3V0IHNwYWNlcy5cbiAgcmV0dXJuIHJhd1ZhbHVlXG4gICAgLnNwbGl0KCdcXG4nKVxuICAgIC5maWx0ZXIoKGxpbmUpID0+ICEvXlBhcnRcXHMrXFxkKyQvaS50ZXN0KGxpbmUudHJpbSgpKSlcbiAgICAuam9pbignJylcbiAgICAucmVwbGFjZSgvXFxzKlBhcnRcXHMrXFxkK1xccyovZ2ksICcnKVxuICAgIC50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGNvdW50Q2hhcihpbnB1dDogc3RyaW5nLCBjaGFyOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gaW5wdXQuc3BsaXQoY2hhcikubGVuZ3RoIC0gMTtcbn1cblxuZnVuY3Rpb24gaXNFbmNyeXB0ZWRXYWxsZXRQYXNzd29yZFNlY3Rpb25UaXRsZSh0aXRsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdlbmNyeXB0ZWQgd2FsbGV0IHBhc3N3b3JkJyk7XG59XG5cbi8qKlxuICogUmVjb25zdHJ1Y3RzIGxvZ2ljYWwgdGV4dCBsaW5lcyBmcm9tIGFuIHVub3JkZXJlZCBzZXQgb2YgUERGIHRleHQgbm9kZXMuXG4gKlxuICogUERGIHRleHQgZXh0cmFjdGlvbiByZXR1cm5zIGluZGl2aWR1YWwgcG9zaXRpb25lZCBmcmFnbWVudHMuIFRoaXMgZnVuY3Rpb25cbiAqIHNvcnRzIHRoZW0gYnkgcGFnZSB0aGVuIFktY29vcmRpbmF0ZSAodG9wLXRvLWJvdHRvbSksIGdyb3VwcyBmcmFnbWVudHNcbiAqIHdpdGhpbiBQREZfTElORV9ZX1RPTEVSQU5DRSBwb2ludHMgb2YgZWFjaCBvdGhlciBvbnRvIHRoZSBzYW1lIGxpbmUsIGFuZFxuICogaW5zZXJ0cyBhIHNwYWNlIGJldHdlZW4gZnJhZ21lbnRzIHRoYXQgYXJlIHNlcGFyYXRlZCBieSBtb3JlIHRoYW5cbiAqIFBERl9OT0RFX0dBUF9USFJFU0hPTEQgcG9pbnRzIGhvcml6b250YWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTGluZXNGcm9tUERGTm9kZXMobm9kZXM6IFBERlRleHROb2RlW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNvcnRlZE5vZGVzID0gWy4uLm5vZGVzXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKGEucGFnZSAhPT0gYi5wYWdlKSB7XG4gICAgICByZXR1cm4gYS5wYWdlIC0gYi5wYWdlO1xuICAgIH1cbiAgICBjb25zdCB5RGlmZiA9IE1hdGguYWJzKGEueSAtIGIueSk7XG4gICAgaWYgKHlEaWZmID4gUERGX0xJTkVfWV9UT0xFUkFOQ0UpIHtcbiAgICAgIHJldHVybiBiLnkgLSBhLnk7XG4gICAgfVxuICAgIHJldHVybiBhLnggLSBiLng7XG4gIH0pO1xuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudExpbmVOb2RlczogUERGVGV4dE5vZGVbXSA9IFtdO1xuICBsZXQgY3VycmVudFBhZ2UgPSAtMTtcbiAgbGV0IGN1cnJlbnRZID0gTnVtYmVyLk5hTjtcblxuICBmdW5jdGlvbiBmbHVzaExpbmUoKSB7XG4gICAgaWYgKGN1cnJlbnRMaW5lTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc29ydGVkTGluZU5vZGVzID0gWy4uLmN1cnJlbnRMaW5lTm9kZXNdLnNvcnQoKGEsIGIpID0+IGEueCAtIGIueCk7XG4gICAgbGV0IGxpbmUgPSAnJztcbiAgICBsZXQgcHJldmlvdXNSaWdodEVkZ2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBzb3J0ZWRMaW5lTm9kZXMpIHtcbiAgICAgIGNvbnN0IHBpZWNlID0gc2FuaXRpemVUZXh0KG5vZGUudGV4dCk7XG4gICAgICBpZiAoIXBpZWNlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJldmlvdXNSaWdodEVkZ2UgIT09IG51bGwgJiYgbm9kZS54IC0gcHJldmlvdXNSaWdodEVkZ2UgPiBQREZfTk9ERV9HQVBfVEhSRVNIT0xEKSB7XG4gICAgICAgIGxpbmUgKz0gJyAnO1xuICAgICAgfVxuICAgICAgbGluZSArPSBwaWVjZTtcbiAgICAgIHByZXZpb3VzUmlnaHRFZGdlID0gbm9kZS54ICsgbm9kZS53aWR0aDtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTGluZSA9IGxpbmUudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGluZSkge1xuICAgICAgbGluZXMucHVzaChub3JtYWxpemVkTGluZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBub2RlIG9mIHNvcnRlZE5vZGVzKSB7XG4gICAgY29uc3QgcGFnZUNoYW5nZWQgPSBub2RlLnBhZ2UgIT09IGN1cnJlbnRQYWdlO1xuICAgIGNvbnN0IGxpbmVDaGFuZ2VkID0gTnVtYmVyLmlzTmFOKGN1cnJlbnRZKSB8fCBNYXRoLmFicyhub2RlLnkgLSBjdXJyZW50WSkgPiBQREZfTElORV9ZX1RPTEVSQU5DRTtcbiAgICBpZiAocGFnZUNoYW5nZWQgfHwgbGluZUNoYW5nZWQpIHtcbiAgICAgIGZsdXNoTGluZSgpO1xuICAgICAgY3VycmVudExpbmVOb2RlcyA9IFtub2RlXTtcbiAgICAgIGN1cnJlbnRQYWdlID0gbm9kZS5wYWdlO1xuICAgICAgY3VycmVudFkgPSBub2RlLnk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjdXJyZW50TGluZU5vZGVzLnB1c2gobm9kZSk7XG4gIH1cblxuICBmbHVzaExpbmUoKTtcbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLZXljYXJkRnJvbUxpbmVzKGxpbmVzOiBzdHJpbmdbXSk6IEtleWNhcmRFbnRyeVtdIHtcbiAgY29uc3Qgc2VjdGlvbnM6IEFycmF5PHtcbiAgICBzZWN0aW9uOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xuICAgIGlzQ2FwdHVyaW5nRGF0YTogYm9vbGVhbjtcbiAgICBvcGVuQ3VybHlDb3VudDogbnVtYmVyO1xuICB9PiA9IFtdO1xuICBsZXQgY3VycmVudFNlY3Rpb25JbmRleCA9IC0xO1xuXG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGNvbnN0IGxhYmVsTWF0Y2ggPSBsaW5lLm1hdGNoKHNlY3Rpb25IZWFkZXJSZWdleCk7XG4gICAgaWYgKGxhYmVsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBsYWJlbE1hdGNoWzFdPy50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgdGl0bGUgPSBzYW5pdGl6ZVRleHQobGFiZWxNYXRjaFsyXSA/PyAnJyk7XG4gICAgICBpZiAoc2VjdGlvbiAmJiB0aXRsZSkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICBzZWN0aW9uLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHZhbHVlczogW10sXG4gICAgICAgICAgaXNDYXB0dXJpbmdEYXRhOiBmYWxzZSxcbiAgICAgICAgICBvcGVuQ3VybHlDb3VudDogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uSW5kZXggPSBzZWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFNlY3Rpb25JbmRleCA8IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbnNbY3VycmVudFNlY3Rpb25JbmRleF07XG4gICAgaWYgKCFjdXJyZW50U2VjdGlvbikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YUxpbmVNYXRjaCA9IGxpbmUubWF0Y2goZGF0YUxpbmVSZWdleCk7XG4gICAgaWYgKGRhdGFMaW5lTWF0Y2gpIHtcbiAgICAgIGN1cnJlbnRTZWN0aW9uLmlzQ2FwdHVyaW5nRGF0YSA9IHRydWU7XG4gICAgICBjb25zdCBpbmxpbmVWYWx1ZSA9IHNhbml0aXplVGV4dChkYXRhTGluZU1hdGNoWzFdID8/ICcnKTtcbiAgICAgIGlmIChpbmxpbmVWYWx1ZSkge1xuICAgICAgICBjdXJyZW50U2VjdGlvbi52YWx1ZXMucHVzaChpbmxpbmVWYWx1ZSk7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50ICs9IGNvdW50Q2hhcihpbmxpbmVWYWx1ZSwgJ3snKSAtIGNvdW50Q2hhcihpbmxpbmVWYWx1ZSwgJ30nKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEpIHtcbiAgICAgIGlmIChmYXFIZWFkZXJSZWdleC50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLmlzQ2FwdHVyaW5nRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFNlY3Rpb24udmFsdWVzLnB1c2gobGluZSk7XG5cbiAgICAgIC8vIEZvciBlbmNyeXB0ZWQgd2FsbGV0IHBhc3N3b3JkLCBkYXRhIGlzIGEgc2luZ2xlIEpTT04gb2JqZWN0LiBTdG9wIGFzXG4gICAgICAvLyBzb29uIGFzIHRoZSBvYmplY3QgY2xvc2VzIHNvIGZvb3Rlci9GQVEgY29udGVudCBpcyBub3QgYXBwZW5kZWQuXG4gICAgICBpZiAoaXNFbmNyeXB0ZWRXYWxsZXRQYXNzd29yZFNlY3Rpb25UaXRsZShjdXJyZW50U2VjdGlvbi50aXRsZSkpIHtcbiAgICAgICAgY3VycmVudFNlY3Rpb24ub3BlbkN1cmx5Q291bnQgKz0gY291bnRDaGFyKGxpbmUsICd7JykgLSBjb3VudENoYXIobGluZSwgJ30nKTtcbiAgICAgICAgaWYgKGN1cnJlbnRTZWN0aW9uLnZhbHVlcy5sZW5ndGggPiAwICYmIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50IDw9IDApIHtcbiAgICAgICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzZWN0aW9uc1xuICAgIC5maWx0ZXIoKHsgc2VjdGlvbiwgdmFsdWVzIH0pID0+IFsnQScsICdCJywgJ0MnLCAnRCddLmluY2x1ZGVzKHNlY3Rpb24pICYmIHZhbHVlcy5sZW5ndGggPiAwKVxuICAgIC5tYXAoKHsgc2VjdGlvbiwgdGl0bGUsIHZhbHVlcyB9KSA9PiAoe1xuICAgICAgbGFiZWw6IGAke3NlY3Rpb259OiAke3RpdGxlfWAsXG4gICAgICB2YWx1ZTogbm9ybWFsaXplU2VjdGlvblZhbHVlKHZhbHVlcy5qb2luKCdcXG4nKSksXG4gICAgfSkpO1xufVxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VLZXljYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlS2V5Y2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSxrREFpQkM7QUFtREQsd0RBNERDO0FBRUQsc0RBeUVDO0FBaE9ELG1DQUE0RDtBQWU1RDs7Ozs7R0FLRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsSUFBSSxNQUFlLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBaUMsQ0FBQztJQUNoRCxLQUFLLE1BQU0sSUFBSSxJQUFJLHVCQUFlLEVBQUUsQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQTBCLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQUcsZ0NBQWdDLENBQUM7QUFDNUQsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUFDM0MsTUFBTSxjQUFjLEdBQUcsMEJBQTBCLENBQUM7QUFFbEQsK0VBQStFO0FBQy9FLHFGQUFxRjtBQUNyRixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUMvQixtRkFBbUY7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R0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUM1RixHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsS0FBSyxFQUFFLEdBQUcsT0FBTyxLQUFLLEtBQUssRUFBRTtRQUM3QixLQUFLLEVBQUUscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlS2V5Y2FyZFJvb3RzLCBTQUZFX1JPT1RfT1JERVIgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgUERGVGV4dE5vZGUgPSB7XG4gIHRleHQ6IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEtleWNhcmRFbnRyeSA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgc2FmZSBrZXljYXJkIGJveCB2YWx1ZSDigJQgdGhlIEpTT04gcGFja2VkIGJ5IGBnZW5lcmF0ZVNhZmVRckRhdGFgLCBlLmcuXG4gKiBge1wic2VjcDI1NmsxTXVsdGlzaWdcIjpcIuKAplwiLFwiZWNkc2FNcGNcIjpcIuKAplwiLOKApn1gIOKAlCBpbnRvIGl0cyBmb3VyIHJvb3RzLiBWYWxpZGF0ZXMgdGhhdCBhbGwgZm91clxuICogcm9vdHMgYXJlIHByZXNlbnQuIFJlY292ZXJ5IHRvb2xpbmcgY2FsbHMgdGhpcyBvbiB0aGUgQS9CL0MgYm94IHZhbHVlIHJldHVybmVkIGJ5XG4gKiB7QGxpbmsgcGFyc2VLZXljYXJkRnJvbUxpbmVzfSwgdGhlbiBkZWNyeXB0cyBlYWNoIHJvb3QgdmFsdWUgd2l0aCB0aGUgd2FsbGV0IHBhc3N3b3JkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYWZlS2V5Y2FyZEJveChkYXRhOiBzdHJpbmcpOiBTYWZlS2V5Y2FyZFJvb3RzIHtcbiAgbGV0IHBhcnNlZDogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnNlU2FmZUtleWNhcmRCb3g6IHZhbHVlIGlzIG5vdCB2YWxpZCBKU09OJyk7XG4gIH1cbiAgaWYgKHR5cGVvZiBwYXJzZWQgIT09ICdvYmplY3QnIHx8IHBhcnNlZCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGFyc2VTYWZlS2V5Y2FyZEJveDogdmFsdWUgaXMgbm90IGFuIG9iamVjdCcpO1xuICB9XG4gIGNvbnN0IHJvb3RzID0gcGFyc2VkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBmb3IgKGNvbnN0IHNsb3Qgb2YgU0FGRV9ST09UX09SREVSKSB7XG4gICAgaWYgKHR5cGVvZiByb290c1tzbG90XSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcGFyc2VTYWZlS2V5Y2FyZEJveDogbWlzc2luZyBvciBpbnZhbGlkIHJvb3QgJHtzbG90fWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VkIGFzIFNhZmVLZXljYXJkUm9vdHM7XG59XG5cbmNvbnN0IHNlY3Rpb25IZWFkZXJSZWdleCA9IC9eKFtBLURdKVxccypbOi4pLV1cXHMqKC4rPylcXHMqJC9pO1xuY29uc3QgZGF0YUxpbmVSZWdleCA9IC9eZGF0YVxccyo6XFxzKiguKikkL2k7XG5jb25zdCBmYXFIZWFkZXJSZWdleCA9IC9eQml0R29cXHMrS2V5Q2FyZFxccytGQVEkL2k7XG5cbi8vIFBERiBjb29yZGluYXRlIHRvbGVyYW5jZSBpbiBwb2ludHMuIE5vZGVzIHdpdGhpbiB0aGlzIGRpc3RhbmNlIG9uIHRoZSBZLWF4aXNcbi8vIGFyZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBsaW5lOyBub2RlcyBmdXJ0aGVyIGFwYXJ0IGFyZSBzZXBhcmF0ZSBsaW5lcy5cbmNvbnN0IFBERl9MSU5FX1lfVE9MRVJBTkNFID0gMjtcbi8vIEhvcml6b250YWwgZ2FwIGluIHBvaW50cyBhYm92ZSB3aGljaCBhIHNwYWNlIGlzIGluc2VydGVkIGJldHdlZW4gYWRqYWNlbnQgbm9kZXMuXG5jb25zdCBQREZfTk9ERV9HQVBfVEhSRVNIT0xEID0gMjtcblxuZnVuY3Rpb24gc2FuaXRpemVUZXh0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplU2VjdGlvblZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBUd28tcGFzcyByZW1vdmFsIG9mIFwiUGFydCBOXCIgcGFnZS1jb250aW51YXRpb24gbGFiZWxzOlxuICAvLyAxLiBMaW5lIGZpbHRlcjogcmVtb3ZlcyBsYWJlbHMgdGhhdCBhcHBlYXIgYXMgc3RhbmRhbG9uZSBsaW5lcy5cbiAgLy8gMi4gUmVnZXggcmVwbGFjZTogcmVtb3ZlcyBsYWJlbHMgZW1iZWRkZWQgbWlkLWxpbmUgd2hlblxuICAvLyAgICBidWlsZExpbmVzRnJvbVBERk5vZGVzIG1lcmdlcyB0aGVtIHdpdGggYWRqYWNlbnQgY29udGVudCBhdCB0aGUgc2FtZVxuICAvLyAgICB5LWNvb3JkaW5hdGUgKGUuZy4gXCIuLi5YODhiUGFydCAyIGxGUE1kLi4uXCIpLlxuICAvLyBqb2luKCcnKSBpbnRlbnRpb25hbGx5IHVzZXMgbm8gc2VwYXJhdG9yIOKAlCBzZWN0aW9uIHZhbHVlcyBhcmUgY29udGludW91c1xuICAvLyBzdHJpbmdzIChiYXNlNjQgLyB4cHViKSB0aGF0IHdyYXAgYWNyb3NzIFBERiBsaW5lcyB3aXRob3V0IHNwYWNlcy5cbiAgcmV0dXJuIHJhd1ZhbHVlXG4gICAgLnNwbGl0KCdcXG4nKVxuICAgIC5maWx0ZXIoKGxpbmUpID0+ICEvXlBhcnRcXHMrXFxkKyQvaS50ZXN0KGxpbmUudHJpbSgpKSlcbiAgICAuam9pbignJylcbiAgICAucmVwbGFjZSgvXFxzKlBhcnRcXHMrXFxkK1xccyovZ2ksICcnKVxuICAgIC50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGNvdW50Q2hhcihpbnB1dDogc3RyaW5nLCBjaGFyOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gaW5wdXQuc3BsaXQoY2hhcikubGVuZ3RoIC0gMTtcbn1cblxuZnVuY3Rpb24gaXNFbmNyeXB0ZWRXYWxsZXRQYXNzd29yZFNlY3Rpb25UaXRsZSh0aXRsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aXRsZS50b0xvd2VyQ2FzZSgpO1xuICAvLyBCb3ggRCBpcyB0aXRsZWQgXCJFbmNyeXB0ZWQgV2FsbGV0IFBhc3N3b3JkXCIgKHdhbGxldCkgb3IgXCJFbmNyeXB0ZWQgU2FmZSBQYXNzd29yZFwiIChzYWZlKS5cbiAgcmV0dXJuIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ2VuY3J5cHRlZCB3YWxsZXQgcGFzc3dvcmQnKSB8fCBub3JtYWxpemVkLmluY2x1ZGVzKCdlbmNyeXB0ZWQgc2FmZSBwYXNzd29yZCcpO1xufVxuXG4vKipcbiAqIFJlY29uc3RydWN0cyBsb2dpY2FsIHRleHQgbGluZXMgZnJvbSBhbiB1bm9yZGVyZWQgc2V0IG9mIFBERiB0ZXh0IG5vZGVzLlxuICpcbiAqIFBERiB0ZXh0IGV4dHJhY3Rpb24gcmV0dXJucyBpbmRpdmlkdWFsIHBvc2l0aW9uZWQgZnJhZ21lbnRzLiBUaGlzIGZ1bmN0aW9uXG4gKiBzb3J0cyB0aGVtIGJ5IHBhZ2UgdGhlbiBZLWNvb3JkaW5hdGUgKHRvcC10by1ib3R0b20pLCBncm91cHMgZnJhZ21lbnRzXG4gKiB3aXRoaW4gUERGX0xJTkVfWV9UT0xFUkFOQ0UgcG9pbnRzIG9mIGVhY2ggb3RoZXIgb250byB0aGUgc2FtZSBsaW5lLCBhbmRcbiAqIGluc2VydHMgYSBzcGFjZSBiZXR3ZWVuIGZyYWdtZW50cyB0aGF0IGFyZSBzZXBhcmF0ZWQgYnkgbW9yZSB0aGFuXG4gKiBQREZfTk9ERV9HQVBfVEhSRVNIT0xEIHBvaW50cyBob3Jpem9udGFsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZExpbmVzRnJvbVBERk5vZGVzKG5vZGVzOiBQREZUZXh0Tm9kZVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBzb3J0ZWROb2RlcyA9IFsuLi5ub2Rlc10uc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChhLnBhZ2UgIT09IGIucGFnZSkge1xuICAgICAgcmV0dXJuIGEucGFnZSAtIGIucGFnZTtcbiAgICB9XG4gICAgY29uc3QgeURpZmYgPSBNYXRoLmFicyhhLnkgLSBiLnkpO1xuICAgIGlmICh5RGlmZiA+IFBERl9MSU5FX1lfVE9MRVJBTkNFKSB7XG4gICAgICByZXR1cm4gYi55IC0gYS55O1xuICAgIH1cbiAgICByZXR1cm4gYS54IC0gYi54O1xuICB9KTtcblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRMaW5lTm9kZXM6IFBERlRleHROb2RlW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRQYWdlID0gLTE7XG4gIGxldCBjdXJyZW50WSA9IE51bWJlci5OYU47XG5cbiAgZnVuY3Rpb24gZmx1c2hMaW5lKCkge1xuICAgIGlmIChjdXJyZW50TGluZU5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRlZExpbmVOb2RlcyA9IFsuLi5jdXJyZW50TGluZU5vZGVzXS5zb3J0KChhLCBiKSA9PiBhLnggLSBiLngpO1xuICAgIGxldCBsaW5lID0gJyc7XG4gICAgbGV0IHByZXZpb3VzUmlnaHRFZGdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygc29ydGVkTGluZU5vZGVzKSB7XG4gICAgICBjb25zdCBwaWVjZSA9IHNhbml0aXplVGV4dChub2RlLnRleHQpO1xuICAgICAgaWYgKCFwaWVjZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXZpb3VzUmlnaHRFZGdlICE9PSBudWxsICYmIG5vZGUueCAtIHByZXZpb3VzUmlnaHRFZGdlID4gUERGX05PREVfR0FQX1RIUkVTSE9MRCkge1xuICAgICAgICBsaW5lICs9ICcgJztcbiAgICAgIH1cbiAgICAgIGxpbmUgKz0gcGllY2U7XG4gICAgICBwcmV2aW91c1JpZ2h0RWRnZSA9IG5vZGUueCArIG5vZGUud2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZExpbmUgPSBsaW5lLnRyaW0oKTtcbiAgICBpZiAobm9ybWFsaXplZExpbmUpIHtcbiAgICAgIGxpbmVzLnB1c2gobm9ybWFsaXplZExpbmUpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBzb3J0ZWROb2Rlcykge1xuICAgIGNvbnN0IHBhZ2VDaGFuZ2VkID0gbm9kZS5wYWdlICE9PSBjdXJyZW50UGFnZTtcbiAgICBjb25zdCBsaW5lQ2hhbmdlZCA9IE51bWJlci5pc05hTihjdXJyZW50WSkgfHwgTWF0aC5hYnMobm9kZS55IC0gY3VycmVudFkpID4gUERGX0xJTkVfWV9UT0xFUkFOQ0U7XG4gICAgaWYgKHBhZ2VDaGFuZ2VkIHx8IGxpbmVDaGFuZ2VkKSB7XG4gICAgICBmbHVzaExpbmUoKTtcbiAgICAgIGN1cnJlbnRMaW5lTm9kZXMgPSBbbm9kZV07XG4gICAgICBjdXJyZW50UGFnZSA9IG5vZGUucGFnZTtcbiAgICAgIGN1cnJlbnRZID0gbm9kZS55O1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY3VycmVudExpbmVOb2Rlcy5wdXNoKG5vZGUpO1xuICB9XG5cbiAgZmx1c2hMaW5lKCk7XG4gIHJldHVybiBsaW5lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlS2V5Y2FyZEZyb21MaW5lcyhsaW5lczogc3RyaW5nW10pOiBLZXljYXJkRW50cnlbXSB7XG4gIGNvbnN0IHNlY3Rpb25zOiBBcnJheTx7XG4gICAgc2VjdGlvbjogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmFsdWVzOiBzdHJpbmdbXTtcbiAgICBpc0NhcHR1cmluZ0RhdGE6IGJvb2xlYW47XG4gICAgb3BlbkN1cmx5Q291bnQ6IG51bWJlcjtcbiAgfT4gPSBbXTtcbiAgbGV0IGN1cnJlbnRTZWN0aW9uSW5kZXggPSAtMTtcblxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBjb25zdCBsYWJlbE1hdGNoID0gbGluZS5tYXRjaChzZWN0aW9uSGVhZGVyUmVnZXgpO1xuICAgIGlmIChsYWJlbE1hdGNoKSB7XG4gICAgICBjb25zdCBzZWN0aW9uID0gbGFiZWxNYXRjaFsxXT8udG9VcHBlckNhc2UoKTtcbiAgICAgIGNvbnN0IHRpdGxlID0gc2FuaXRpemVUZXh0KGxhYmVsTWF0Y2hbMl0gPz8gJycpO1xuICAgICAgaWYgKHNlY3Rpb24gJiYgdGl0bGUpIHtcbiAgICAgICAgc2VjdGlvbnMucHVzaCh7XG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICB2YWx1ZXM6IFtdLFxuICAgICAgICAgIGlzQ2FwdHVyaW5nRGF0YTogZmFsc2UsXG4gICAgICAgICAgb3BlbkN1cmx5Q291bnQ6IDAsXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50U2VjdGlvbkluZGV4ID0gc2VjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTZWN0aW9uSW5kZXggPCAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25zW2N1cnJlbnRTZWN0aW9uSW5kZXhdO1xuICAgIGlmICghY3VycmVudFNlY3Rpb24pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGFMaW5lTWF0Y2ggPSBsaW5lLm1hdGNoKGRhdGFMaW5lUmVnZXgpO1xuICAgIGlmIChkYXRhTGluZU1hdGNoKSB7XG4gICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSB0cnVlO1xuICAgICAgY29uc3QgaW5saW5lVmFsdWUgPSBzYW5pdGl6ZVRleHQoZGF0YUxpbmVNYXRjaFsxXSA/PyAnJyk7XG4gICAgICBpZiAoaW5saW5lVmFsdWUpIHtcbiAgICAgICAgY3VycmVudFNlY3Rpb24udmFsdWVzLnB1c2goaW5saW5lVmFsdWUpO1xuICAgICAgICBjdXJyZW50U2VjdGlvbi5vcGVuQ3VybHlDb3VudCArPSBjb3VudENoYXIoaW5saW5lVmFsdWUsICd7JykgLSBjb3VudENoYXIoaW5saW5lVmFsdWUsICd9Jyk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFNlY3Rpb24uaXNDYXB0dXJpbmdEYXRhKSB7XG4gICAgICBpZiAoZmFxSGVhZGVyUmVnZXgudGVzdChsaW5lKSkge1xuICAgICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRTZWN0aW9uLnZhbHVlcy5wdXNoKGxpbmUpO1xuXG4gICAgICAvLyBGb3IgZW5jcnlwdGVkIHdhbGxldCBwYXNzd29yZCwgZGF0YSBpcyBhIHNpbmdsZSBKU09OIG9iamVjdC4gU3RvcCBhc1xuICAgICAgLy8gc29vbiBhcyB0aGUgb2JqZWN0IGNsb3NlcyBzbyBmb290ZXIvRkFRIGNvbnRlbnQgaXMgbm90IGFwcGVuZGVkLlxuICAgICAgaWYgKGlzRW5jcnlwdGVkV2FsbGV0UGFzc3dvcmRTZWN0aW9uVGl0bGUoY3VycmVudFNlY3Rpb24udGl0bGUpKSB7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50ICs9IGNvdW50Q2hhcihsaW5lLCAneycpIC0gY291bnRDaGFyKGxpbmUsICd9Jyk7XG4gICAgICAgIGlmIChjdXJyZW50U2VjdGlvbi52YWx1ZXMubGVuZ3RoID4gMCAmJiBjdXJyZW50U2VjdGlvbi5vcGVuQ3VybHlDb3VudCA8PSAwKSB7XG4gICAgICAgICAgY3VycmVudFNlY3Rpb24uaXNDYXB0dXJpbmdEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2VjdGlvbnNcbiAgICAuZmlsdGVyKCh7IHNlY3Rpb24sIHZhbHVlcyB9KSA9PiBbJ0EnLCAnQicsICdDJywgJ0QnXS5pbmNsdWRlcyhzZWN0aW9uKSAmJiB2YWx1ZXMubGVuZ3RoID4gMClcbiAgICAubWFwKCh7IHNlY3Rpb24sIHRpdGxlLCB2YWx1ZXMgfSkgPT4gKHtcbiAgICAgIGxhYmVsOiBgJHtzZWN0aW9ufTogJHt0aXRsZX1gLFxuICAgICAgdmFsdWU6IG5vcm1hbGl6ZVNlY3Rpb25WYWx1ZSh2YWx1ZXMuam9pbignXFxuJykpLFxuICAgIH0pKTtcbn1cbiJdfQ==
@@ -35,24 +35,26 @@ export interface GenerateLightningQrDataParams extends GenerateQrDataCoinParams
35
35
  userAuthKeychain: Keychain;
36
36
  }
37
37
  /**
38
- * Identifier for one of a vault's four roots (one per signing scheme). Each value is the
38
+ * Identifier for one of a safe's four roots (one per signing scheme). Each value is the
39
39
  * root's `rootKeyType`, which is also the key used in the keycard's per-box JSON.
40
40
  */
41
- export type VaultRootKeyType = 'secp256k1Multisig' | 'ecdsaMpc' | 'eddsaMpc' | 'ed25519Multisig';
41
+ export type SafeRootKeyType = 'secp256k1Multisig' | 'ecdsaMpc' | 'eddsaMpc' | 'ed25519Multisig';
42
42
  /**
43
- * Fixed render/scan order of the four roots on the vault keycard. Kept stable so a
43
+ * Fixed render/scan order of the four roots on the safe keycard. Kept stable so a
44
44
  * generated keycard and a re-scanned one line up slot-for-slot.
45
45
  */
46
- export declare const VAULT_ROOT_ORDER: VaultRootKeyType[];
46
+ export declare const SAFE_ROOT_ORDER: SafeRootKeyType[];
47
47
  /**
48
- * The JSON object encoded in a vault keycard box (A/B/C): the four roots keyed by
49
- * {@link VaultRootKeyType}. Values are per-root ciphertext for A/B (encryptedPrv or
48
+ * The JSON object encoded in a safe keycard box (A/B/C): the four roots keyed by
49
+ * {@link SafeRootKeyType}. Values are per-root ciphertext for A/B (encryptedPrv or
50
50
  * reducedEncryptedPrv) or public keys for C. The root-key-type keys are self-identifying, so a
51
51
  * consumer parses by key rather than by size/offset.
52
52
  */
53
- export type VaultKeycardRoots = Record<VaultRootKeyType, string>;
54
- export interface GenerateVaultQrDataParams extends GenerateQrDataCoinParams {
55
- roots: Record<VaultRootKeyType, KeychainsTriplet>;
53
+ export type SafeKeycardRoots = Record<SafeRootKeyType, string>;
54
+ /** The product a keycard belongs to, used for user-facing wording (e.g. Box D copy). */
55
+ export type KeycardEntity = 'wallet' | 'safe';
56
+ export interface GenerateSafeQrDataParams extends GenerateQrDataCoinParams {
57
+ roots: Record<SafeRootKeyType, KeychainsTriplet>;
56
58
  }
57
59
  export type GenerateKeycardParams = GenerateQrDataBaseParams & (GenerateQrDataForKeychainParams | GenerateQrDataParams | GenerateLightningQrDataParams);
58
60
  export interface IDrawKeyCard {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAE9C,aAAa,EAAE,QAAQ,CAAC;IAExB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IAEvC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IAEpE,cAAc,EAAE,QAAQ,CAAC;IAEzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,aAAa,EAAE,QAAQ,CAAC;IAExB,YAAY,EAAE,QAAQ,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAE7E,gBAAgB,EAAE,QAAQ,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEjG;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAAqE,CAAC;AAErH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IAEzE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,CAAC,+BAA+B,GAAG,oBAAoB,GAAG,6BAA6B,CAAC,CAAC;AAE3F,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE9E,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/src/types.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VAULT_ROOT_ORDER = void 0;
3
+ exports.SAFE_ROOT_ORDER = void 0;
4
4
  /**
5
- * Fixed render/scan order of the four roots on the vault keycard. Kept stable so a
5
+ * Fixed render/scan order of the four roots on the safe keycard. Kept stable so a
6
6
  * generated keycard and a re-scanned one line up slot-for-slot.
7
7
  */
8
- exports.VAULT_ROOT_ORDER = ['secp256k1Multisig', 'ecdsaMpc', 'eddsaMpc', 'ed25519Multisig'];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0VBOzs7R0FHRztBQUNVLFFBQUEsZ0JBQWdCLEdBQXVCLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIEtleWNoYWluLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4sIEtleUN1cnZlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFCYXNlUGFyYW1zIHtcbiAgYWN0aXZhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGtleUNhcmRJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHdhbGxldExhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFGb3JLZXljaGFpblBhcmFtcyB7XG4gIC8vIFRoZSBCaXRHbyBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIGN1cnZlIHVzZWQgZm9yIHRoZSBrZXlcbiAgY3VydmU6IEtleUN1cnZlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSBjb2luIG9mIHRoZSB3YWxsZXQgdGhhdCB3YXMvIGlzIGFib3V0IHRvIGJlIGNyZWF0ZWRcbiAgY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+O1xuICAvLyBBIGNvZGUgdGhhdCBjYW4gYmUgdXNlZCB0byBlbmNyeXB0IHRoZSB3YWxsZXQgcGFzc3dvcmQgdG8uXG4gIC8vIElmIGJvdGggdGhlIHBhc3NwaHJhc2UgYW5kIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYXJlIHBhc3NlZCwgdGhlbiB0aGlzIGNvZGUgZW5jcnlwdHMgdGhlIHBhc3NwaHJhc2Ugd2l0aCB0aGVcbiAgLy8gcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhbmQgcHV0cyB0aGUgcmVzdWx0IGludG8gQm94IEQuIEFsbG93cyByZWNvdmVyaWVzIG9mIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIC8vIFRoZSB3YWxsZXQgcGFzc3dvcmRcbiAgLy8gSWYgYm90aCB0aGUgcGFzc3BocmFzZSBhbmQgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhcmUgcGFzc2VkLCB0aGVuIHRoaXMgY29kZSBlbmNyeXB0cyB0aGUgcGFzc3BocmFzZSB3aXRoIHRoZVxuICAvLyBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFuZCBwdXRzIHRoZSByZXN1bHQgaW50byBCb3ggRC4gQWxsb3dzIHJlY292ZXJpZXMgb2YgdGhlIHdhbGxldCBwYXNzd29yZC5cbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVFyRGF0YVBhcmFtcyBleHRlbmRzIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSBiYWNrdXAga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUgbmFtZSBvZiB0aGUgM3JkIHBhcnR5IHByb3ZpZGVyIG9mIHRoZSBiYWNrdXAga2V5IGlmIG5laXRoZXIgdGhlIHVzZXIgbm9yIEJpdEdvIHN0b3JlcyBpdFxuICBiYWNrdXBLZXlQcm92aWRlcj86IHN0cmluZztcbiAgLy8gVGhlIGtleSBpZCBvZiB0aGUgYmFja3VwIGtleSwgb25seSB1c2VkIGZvciBjb2xkIGtleXNcbiAgYmFja3VwTWFzdGVyS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXkgdXNlZCB0byBkZXJpdmUgdGhlIGJhY2t1cCBrZXkgdXNpbmcge0BsaW5rIGJhY2t1cE1hc3RlcktleX0gYXMgdGhlIHNlZWQuXG4gICAqL1xuICBiYWNrdXBNYXN0ZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIC8vIFRoZSBCaXRHbyBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIHVzZXIga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIGtleSBpZCBvZiB0aGUgdXNlciBrZXksIG9ubHkgdXNlZCBmb3IgY29sZCBrZXlzXG4gIHVzZXJNYXN0ZXJLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleSB1c2VkIHRvIGRlcml2ZSB0aGUgdXNlciBrZXkgdXNpbmcge0BsaW5rIHVzZXJNYXN0ZXJLZXl9IGFzIHRoZSBzZWVkLlxuICAgKi9cbiAgdXNlck1hc3RlclB1YmxpY0tleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUxpZ2h0bmluZ1FyRGF0YVBhcmFtcyBleHRlbmRzIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSB1c2VyIGF1dGhlbnRpY2F0aW9uIGtleWNoYWluLCB1c2VkIHRvIHNpZ24gcGF5bWVudCByZXF1ZXN0cyBhbmQgd2FsbGV0IGNvbmZpZ3VyYXRpb24gdXBkYXRlc1xuICB1c2VyQXV0aEtleWNoYWluOiBLZXljaGFpbjtcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVyIGZvciBvbmUgb2YgYSB2YXVsdCdzIGZvdXIgcm9vdHMgKG9uZSBwZXIgc2lnbmluZyBzY2hlbWUpLiBFYWNoIHZhbHVlIGlzIHRoZVxuICogcm9vdCdzIGByb290S2V5VHlwZWAsIHdoaWNoIGlzIGFsc28gdGhlIGtleSB1c2VkIGluIHRoZSBrZXljYXJkJ3MgcGVyLWJveCBKU09OLlxuICovXG5leHBvcnQgdHlwZSBWYXVsdFJvb3RLZXlUeXBlID0gJ3NlY3AyNTZrMU11bHRpc2lnJyB8ICdlY2RzYU1wYycgfCAnZWRkc2FNcGMnIHwgJ2VkMjU1MTlNdWx0aXNpZyc7XG5cbi8qKlxuICogRml4ZWQgcmVuZGVyL3NjYW4gb3JkZXIgb2YgdGhlIGZvdXIgcm9vdHMgb24gdGhlIHZhdWx0IGtleWNhcmQuIEtlcHQgc3RhYmxlIHNvIGFcbiAqIGdlbmVyYXRlZCBrZXljYXJkIGFuZCBhIHJlLXNjYW5uZWQgb25lIGxpbmUgdXAgc2xvdC1mb3Itc2xvdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBVUxUX1JPT1RfT1JERVI6IFZhdWx0Um9vdEtleVR5cGVbXSA9IFsnc2VjcDI1NmsxTXVsdGlzaWcnLCAnZWNkc2FNcGMnLCAnZWRkc2FNcGMnLCAnZWQyNTUxOU11bHRpc2lnJ107XG5cbi8qKlxuICogVGhlIEpTT04gb2JqZWN0IGVuY29kZWQgaW4gYSB2YXVsdCBrZXljYXJkIGJveCAoQS9CL0MpOiB0aGUgZm91ciByb290cyBrZXllZCBieVxuICoge0BsaW5rIFZhdWx0Um9vdEtleVR5cGV9LiBWYWx1ZXMgYXJlIHBlci1yb290IGNpcGhlcnRleHQgZm9yIEEvQiAoZW5jcnlwdGVkUHJ2IG9yXG4gKiByZWR1Y2VkRW5jcnlwdGVkUHJ2KSBvciBwdWJsaWMga2V5cyBmb3IgQy4gVGhlIHJvb3Qta2V5LXR5cGUga2V5cyBhcmUgc2VsZi1pZGVudGlmeWluZywgc28gYVxuICogY29uc3VtZXIgcGFyc2VzIGJ5IGtleSByYXRoZXIgdGhhbiBieSBzaXplL29mZnNldC5cbiAqL1xuZXhwb3J0IHR5cGUgVmF1bHRLZXljYXJkUm9vdHMgPSBSZWNvcmQ8VmF1bHRSb290S2V5VHlwZSwgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVZhdWx0UXJEYXRhUGFyYW1zIGV4dGVuZHMgR2VuZXJhdGVRckRhdGFDb2luUGFyYW1zIHtcbiAgLy8gVGhlIGZvdXIgcm9vdCB0cmlwbGV0cyAodXNlci9iYWNrdXAvYml0Z28ga2V5Y2hhaW5zKSwga2V5ZWQgYnkgcm9vdEtleVR5cGUuXG4gIHJvb3RzOiBSZWNvcmQ8VmF1bHRSb290S2V5VHlwZSwgS2V5Y2hhaW5zVHJpcGxldD47XG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlS2V5Y2FyZFBhcmFtcyA9IEdlbmVyYXRlUXJEYXRhQmFzZVBhcmFtcyAmXG4gIChHZW5lcmF0ZVFyRGF0YUZvcktleWNoYWluUGFyYW1zIHwgR2VuZXJhdGVRckRhdGFQYXJhbXMgfCBHZW5lcmF0ZUxpZ2h0bmluZ1FyRGF0YVBhcmFtcyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYXdLZXlDYXJkIHtcbiAgYWN0aXZhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGtleUNhcmRJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHFyRGF0YTogUXJEYXRhO1xuICBxdWVzdGlvbnM6IEZBUVtdO1xuICB3YWxsZXRMYWJlbD86IHN0cmluZztcbiAgY3VydmU/OiBLZXlDdXJ2ZTtcbiAgLy8gQm94IGluZGljZXMgdG8gc3RhcnQgYSBuZXcgcGFnZSBiZWZvcmUuIE9taXQgZm9yIHRoZSBkZWZhdWx0IHdhbGxldCBsYXlvdXQuXG4gIHBhZ2VCcmVha0JlZm9yZUluZGljZXM/OiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGQVEge1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICAvLyB0aGUgYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiwgYWxyZWFkeSBzcGxpdCBpbnRvIGluZGl2aWR1YWwgbGluZXMgb2YgdGV4dFxuICBhbnN3ZXI6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFyRGF0YUVudHJ5IHtcbiAgZGF0YTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwdWJsaWNNYXN0ZXJLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIE1hc3RlclB1YmxpY0tleVFyRGF0YUVudHJ5ID0gT21pdDxRckRhdGFFbnRyeSwgJ3B1YmxpY01hc3RlcktleSc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFFyRGF0YSB7XG4gIGJhY2t1cD86IFFyRGF0YUVudHJ5O1xuICBiYWNrdXBNYXN0ZXJQdWJsaWNLZXk/OiBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeTtcbiAgYml0Z28/OiBRckRhdGFFbnRyeTtcbiAgcGFzc2NvZGU/OiBRckRhdGFFbnRyeTtcbiAgY3VydmU/OiBLZXlDdXJ2ZTtcbiAgdXNlcjogUXJEYXRhRW50cnk7XG4gIHVzZXJNYXN0ZXJQdWJsaWNLZXk/OiBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeTtcbn1cbiJdfQ==
8
+ exports.SAFE_ROOT_ORDER = ['secp256k1Multisig', 'ecdsaMpc', 'eddsaMpc', 'ed25519Multisig'];
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0VBOzs7R0FHRztBQUNVLFFBQUEsZUFBZSxHQUFzQixDQUFDLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuY3J5cHRpb25WZXJzaW9uLCBLZXljaGFpbiwgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBLZXlDdXJ2ZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhQmFzZVBhcmFtcyB7XG4gIGFjdGl2YXRpb25Db2RlPzogc3RyaW5nO1xuICBrZXlDYXJkSW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50O1xuICB3YWxsZXRMYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhRm9yS2V5Y2hhaW5QYXJhbXMge1xuICAvLyBUaGUgQml0R28ga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSBjdXJ2ZSB1c2VkIGZvciB0aGUga2V5XG4gIGN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVFyRGF0YUNvaW5QYXJhbXMge1xuICAvLyBUaGUgY29pbiBvZiB0aGUgd2FsbGV0IHRoYXQgd2FzLyBpcyBhYm91dCB0byBiZSBjcmVhdGVkXG4gIGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgLy8gQSBjb2RlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgd2FsbGV0IHBhc3N3b3JkIHRvLlxuICAvLyBJZiBib3RoIHRoZSBwYXNzcGhyYXNlIGFuZCBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFyZSBwYXNzZWQsIHRoZW4gdGhpcyBjb2RlIGVuY3J5cHRzIHRoZSBwYXNzcGhyYXNlIHdpdGggdGhlXG4gIC8vIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbnRvIEJveCBELiBBbGxvd3MgcmVjb3ZlcmllcyBvZiB0aGUgd2FsbGV0IHBhc3N3b3JkLlxuICBwYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICAvLyBUaGUgd2FsbGV0IHBhc3N3b3JkXG4gIC8vIElmIGJvdGggdGhlIHBhc3NwaHJhc2UgYW5kIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYXJlIHBhc3NlZCwgdGhlbiB0aGlzIGNvZGUgZW5jcnlwdHMgdGhlIHBhc3NwaHJhc2Ugd2l0aCB0aGVcbiAgLy8gcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhbmQgcHV0cyB0aGUgcmVzdWx0IGludG8gQm94IEQuIEFsbG93cyByZWNvdmVyaWVzIG9mIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFQYXJhbXMgZXh0ZW5kcyBHZW5lcmF0ZVFyRGF0YUNvaW5QYXJhbXMge1xuICAvLyBUaGUgYmFja3VwIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIGJhY2t1cEtleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIG5hbWUgb2YgdGhlIDNyZCBwYXJ0eSBwcm92aWRlciBvZiB0aGUgYmFja3VwIGtleSBpZiBuZWl0aGVyIHRoZSB1c2VyIG5vciBCaXRHbyBzdG9yZXMgaXRcbiAgYmFja3VwS2V5UHJvdmlkZXI/OiBzdHJpbmc7XG4gIC8vIFRoZSBrZXkgaWQgb2YgdGhlIGJhY2t1cCBrZXksIG9ubHkgdXNlZCBmb3IgY29sZCBrZXlzXG4gIGJhY2t1cE1hc3RlcktleT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5IHVzZWQgdG8gZGVyaXZlIHRoZSBiYWNrdXAga2V5IHVzaW5nIHtAbGluayBiYWNrdXBNYXN0ZXJLZXl9IGFzIHRoZSBzZWVkLlxuICAgKi9cbiAgYmFja3VwTWFzdGVyUHVibGljS2V5Pzogc3RyaW5nO1xuICAvLyBUaGUgQml0R28ga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSB1c2VyIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSBrZXkgaWQgb2YgdGhlIHVzZXIga2V5LCBvbmx5IHVzZWQgZm9yIGNvbGQga2V5c1xuICB1c2VyTWFzdGVyS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXkgdXNlZCB0byBkZXJpdmUgdGhlIHVzZXIga2V5IHVzaW5nIHtAbGluayB1c2VyTWFzdGVyS2V5fSBhcyB0aGUgc2VlZC5cbiAgICovXG4gIHVzZXJNYXN0ZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVMaWdodG5pbmdRckRhdGFQYXJhbXMgZXh0ZW5kcyBHZW5lcmF0ZVFyRGF0YUNvaW5QYXJhbXMge1xuICAvLyBUaGUgdXNlciBhdXRoZW50aWNhdGlvbiBrZXljaGFpbiwgdXNlZCB0byBzaWduIHBheW1lbnQgcmVxdWVzdHMgYW5kIHdhbGxldCBjb25maWd1cmF0aW9uIHVwZGF0ZXNcbiAgdXNlckF1dGhLZXljaGFpbjogS2V5Y2hhaW47XG59XG5cbi8qKlxuICogSWRlbnRpZmllciBmb3Igb25lIG9mIGEgc2FmZSdzIGZvdXIgcm9vdHMgKG9uZSBwZXIgc2lnbmluZyBzY2hlbWUpLiBFYWNoIHZhbHVlIGlzIHRoZVxuICogcm9vdCdzIGByb290S2V5VHlwZWAsIHdoaWNoIGlzIGFsc28gdGhlIGtleSB1c2VkIGluIHRoZSBrZXljYXJkJ3MgcGVyLWJveCBKU09OLlxuICovXG5leHBvcnQgdHlwZSBTYWZlUm9vdEtleVR5cGUgPSAnc2VjcDI1NmsxTXVsdGlzaWcnIHwgJ2VjZHNhTXBjJyB8ICdlZGRzYU1wYycgfCAnZWQyNTUxOU11bHRpc2lnJztcblxuLyoqXG4gKiBGaXhlZCByZW5kZXIvc2NhbiBvcmRlciBvZiB0aGUgZm91ciByb290cyBvbiB0aGUgc2FmZSBrZXljYXJkLiBLZXB0IHN0YWJsZSBzbyBhXG4gKiBnZW5lcmF0ZWQga2V5Y2FyZCBhbmQgYSByZS1zY2FubmVkIG9uZSBsaW5lIHVwIHNsb3QtZm9yLXNsb3QuXG4gKi9cbmV4cG9ydCBjb25zdCBTQUZFX1JPT1RfT1JERVI6IFNhZmVSb290S2V5VHlwZVtdID0gWydzZWNwMjU2azFNdWx0aXNpZycsICdlY2RzYU1wYycsICdlZGRzYU1wYycsICdlZDI1NTE5TXVsdGlzaWcnXTtcblxuLyoqXG4gKiBUaGUgSlNPTiBvYmplY3QgZW5jb2RlZCBpbiBhIHNhZmUga2V5Y2FyZCBib3ggKEEvQi9DKTogdGhlIGZvdXIgcm9vdHMga2V5ZWQgYnlcbiAqIHtAbGluayBTYWZlUm9vdEtleVR5cGV9LiBWYWx1ZXMgYXJlIHBlci1yb290IGNpcGhlcnRleHQgZm9yIEEvQiAoZW5jcnlwdGVkUHJ2IG9yXG4gKiByZWR1Y2VkRW5jcnlwdGVkUHJ2KSBvciBwdWJsaWMga2V5cyBmb3IgQy4gVGhlIHJvb3Qta2V5LXR5cGUga2V5cyBhcmUgc2VsZi1pZGVudGlmeWluZywgc28gYVxuICogY29uc3VtZXIgcGFyc2VzIGJ5IGtleSByYXRoZXIgdGhhbiBieSBzaXplL29mZnNldC5cbiAqL1xuZXhwb3J0IHR5cGUgU2FmZUtleWNhcmRSb290cyA9IFJlY29yZDxTYWZlUm9vdEtleVR5cGUsIHN0cmluZz47XG5cbi8qKiBUaGUgcHJvZHVjdCBhIGtleWNhcmQgYmVsb25ncyB0bywgdXNlZCBmb3IgdXNlci1mYWNpbmcgd29yZGluZyAoZS5nLiBCb3ggRCBjb3B5KS4gKi9cbmV4cG9ydCB0eXBlIEtleWNhcmRFbnRpdHkgPSAnd2FsbGV0JyB8ICdzYWZlJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVNhZmVRckRhdGFQYXJhbXMgZXh0ZW5kcyBHZW5lcmF0ZVFyRGF0YUNvaW5QYXJhbXMge1xuICAvLyBUaGUgZm91ciByb290IHRyaXBsZXRzICh1c2VyL2JhY2t1cC9iaXRnbyBrZXljaGFpbnMpLCBrZXllZCBieSByb290S2V5VHlwZS5cbiAgcm9vdHM6IFJlY29yZDxTYWZlUm9vdEtleVR5cGUsIEtleWNoYWluc1RyaXBsZXQ+O1xufVxuXG5leHBvcnQgdHlwZSBHZW5lcmF0ZUtleWNhcmRQYXJhbXMgPSBHZW5lcmF0ZVFyRGF0YUJhc2VQYXJhbXMgJlxuICAoR2VuZXJhdGVRckRhdGFGb3JLZXljaGFpblBhcmFtcyB8IEdlbmVyYXRlUXJEYXRhUGFyYW1zIHwgR2VuZXJhdGVMaWdodG5pbmdRckRhdGFQYXJhbXMpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEcmF3S2V5Q2FyZCB7XG4gIGFjdGl2YXRpb25Db2RlPzogc3RyaW5nO1xuICBrZXlDYXJkSW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50O1xuICBxckRhdGE6IFFyRGF0YTtcbiAgcXVlc3Rpb25zOiBGQVFbXTtcbiAgd2FsbGV0TGFiZWw/OiBzdHJpbmc7XG4gIGN1cnZlPzogS2V5Q3VydmU7XG4gIC8vIEJveCBpbmRpY2VzIHRvIHN0YXJ0IGEgbmV3IHBhZ2UgYmVmb3JlLiBPbWl0IGZvciB0aGUgZGVmYXVsdCB3YWxsZXQgbGF5b3V0LlxuICBwYWdlQnJlYWtCZWZvcmVJbmRpY2VzPzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRkFRIHtcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgLy8gdGhlIGFuc3dlciB0byB0aGUgcXVlc3Rpb24sIGFscmVhZHkgc3BsaXQgaW50byBpbmRpdmlkdWFsIGxpbmVzIG9mIHRleHRcbiAgYW5zd2VyOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRckRhdGFFbnRyeSB7XG4gIGRhdGE6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcHVibGljTWFzdGVyS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeSA9IE9taXQ8UXJEYXRhRW50cnksICdwdWJsaWNNYXN0ZXJLZXknPjtcblxuZXhwb3J0IGludGVyZmFjZSBRckRhdGEge1xuICBiYWNrdXA/OiBRckRhdGFFbnRyeTtcbiAgYmFja3VwTWFzdGVyUHVibGljS2V5PzogTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnk7XG4gIGJpdGdvPzogUXJEYXRhRW50cnk7XG4gIHBhc3Njb2RlPzogUXJEYXRhRW50cnk7XG4gIGN1cnZlPzogS2V5Q3VydmU7XG4gIHVzZXI6IFFyRGF0YUVudHJ5O1xuICB1c2VyTWFzdGVyUHVibGljS2V5PzogTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnk7XG59XG4iXX0=