sliftutils 1.9.5 → 1.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/misc/dist/strings.ts.cache +2 -2
- package/misc/https/dist/certs.ts.cache +2 -2
- package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
- package/package.json +1 -1
- package/security/authorizedKeys/daemon/dist/changes.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/git.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/notify.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/paths.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/readSignedRepo.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/repoFiles.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/revocation.ts.cache +6 -6
- package/security/authorizedKeys/daemon/dist/sessions.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/state.ts.cache +2 -2
- package/security/authorizedKeys/daemon/revocation.d.ts +2 -2
- package/security/authorizedKeys/daemon/revocation.ts +4 -3
- package/security/authorizedKeys/dist/authorizedKeys.ts.cache +2 -2
- package/security/authorizedKeys/dist/keysRepo.ts.cache +2 -2
- package/security/authorizedKeys/dist/revokeSource.ts.cache +2 -2
- package/security/authorizedKeys/dist/sources.ts.cache +2 -2
- package/security/authorizedKeys/dist/unrevoke.ts.cache +16 -7
- package/security/authorizedKeys/unrevoke.ts +12 -5
- package/security/helpers/dist/paths.ts.cache +2 -2
- package/security/helpers/dist/remoteSSH.ts.cache +2 -2
- package/security/helpers/dist/spawn.ts.cache +2 -2
- package/security/keys/dist/deriveKey.ts.cache +2 -2
- package/security/keys/dist/sshKeyFile.ts.cache +2 -2
- package/security/machines/dist/machines.ts.cache +26 -14
- package/security/machines/dist/printMachineId.ts.cache +4 -3
- package/security/machines/machines.d.ts +1 -0
- package/security/machines/machines.ts +25 -12
- package/security/notifications/dist/discord.ts.cache +2 -2
- package/security/signedFiles/dist/manifest.ts.cache +2 -2
- package/security/signedFiles/dist/sshsig.ts.cache +2 -2
- package/storage/remoteStorage/storageController.ts +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -16,6 +16,7 @@ const discord_1 = require("../../notifications/discord");
|
|
|
16
16
|
const changes_1 = require("./changes");
|
|
17
17
|
const sessions_1 = require("./sessions");
|
|
18
18
|
const state_1 = require("./state");
|
|
19
|
+
const batching_1 = require("socket-function/src/batching");
|
|
19
20
|
// A revocation says: this key, used from this address, is no longer accepted. An unrevoke says the
|
|
20
21
|
// opposite about one pair: this key is allowed from this address. They cancel out when both halves
|
|
21
22
|
// match, which is why a revocation is one event with an id of its own, and never a name derived
|
|
@@ -121,7 +122,7 @@ exports.unrevokesFor = unrevokesFor;
|
|
|
121
122
|
|
|
122
123
|
Deduplication is on the pair. The same key from a second address is a second event and gets its
|
|
123
124
|
own revocation, because an unrevoke only ever forgives the pair it names. */
|
|
124
|
-
|
|
125
|
+
exports.recordRevocation = (0, batching_1.runInSerial)(async (config) => {
|
|
125
126
|
let { sourceURL, fingerprint, keyLine, attempt, hostLabel } = config;
|
|
126
127
|
let state = (0, state_1.getState)();
|
|
127
128
|
let pair = pairKey({ fingerprint, ip: attempt.ip });
|
|
@@ -202,8 +203,7 @@ async function recordRevocation(config) {
|
|
|
202
203
|
+ `\nallowed only from: \`${attempt.required}\``,
|
|
203
204
|
});
|
|
204
205
|
return true;
|
|
205
|
-
}
|
|
206
|
-
exports.recordRevocation = recordRevocation;
|
|
206
|
+
});
|
|
207
207
|
/** Takes everything the revoke repos list into local state. Once here a revocation never leaves,
|
|
208
208
|
even if the file is deleted: the key that writes revocations is on every server, so an attacker
|
|
209
209
|
holding it could otherwise erase the record that locked them out. */
|
|
@@ -319,5 +319,5 @@ async function reportRevokedKeys() {
|
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
exports.reportRevokedKeys = reportRevokedKeys;
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2b2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJldm9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkRBQTZCO0FBQzdCLGdEQUF3QjtBQUN4QixtQ0FBcUM7QUFDckMsc0RBQThFO0FBQzlFLGtEQUFnRTtBQUNoRSx3Q0FBNEM7QUFDNUMsK0JBQStCO0FBQy9CLDJDQUFnSDtBQUNoSCx5REFBK0Q7QUFDL0QsdUNBQW9FO0FBQ3BFLHlDQUFpRTtBQUNqRSxtQ0FBOEM7QUFFOUMsbUdBQW1HO0FBQ25HLG1HQUFtRztBQUNuRyxnR0FBZ0c7QUFDaEcsMEZBQTBGO0FBQzFGLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUN0QyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDbEMsTUFBTSxpQkFBaUIsR0FBRyw0Q0FBNEMsQ0FBQztBQVV2RTtzQ0FDc0M7QUFDdEMsU0FBZ0IsT0FBTyxDQUFDLE1BQTJDO0lBQy9ELE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNoRCxDQUFDO0FBRkQsMEJBRUM7QUFFRCw2RkFBNkY7QUFDN0YsU0FBZ0IsZUFBZSxDQUFDLFdBQW1CO0lBQy9DLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUEsb0JBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN6SSxDQUFDO0FBSEQsMENBR0M7QUFFRCx5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RyxJQUFBLGdCQUFRLEdBQUUsQ0FBQztJQUN2QixLQUFLLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEQsSUFBSSxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyRCxTQUFTO1FBQ2IsQ0FBQztRQUNELFVBQVUsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sSUFBQSxpQkFBUyxHQUFFLENBQUM7UUFDbEIsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUEsK0JBQWMsRUFBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1AsU0FBUztRQUNiLENBQUM7UUFDRCxrREFBa0Q7UUFDbEQsSUFBSSxLQUFLLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxNQUFNLElBQUEsNEJBQWlCLEdBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUEsZ0NBQXNCLEVBQUM7WUFDbkIsUUFBUSxFQUFFLGlCQUFpQixVQUFVLENBQUMsRUFBRSxJQUFJLFNBQVMsY0FBYyxJQUFBLDRCQUFXLEVBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckYsSUFBSSxFQUNBLCtFQUErRTtrQkFDN0UsbUVBQW1FLEtBQUssRUFBRTtrQkFDMUUsY0FBYyxJQUFBLDZCQUFZLEVBQUMsR0FBRyxDQUFDLElBQUk7a0JBQ25DLEtBQUssa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUU7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUF6QkQsOENBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsga2V5RmluZ2VycHJpbnQsIGtleU5pY2VOYW1lLCBzdW1tYXJpemVLZXkgfSBmcm9tIFwiLi4vYXV0aG9yaXplZEtleXNcIjtcbmltcG9ydCB7IHJldm9rZVJlcG9QYXRoLCByZXZva2VSZXBvVVJMIH0gZnJvbSBcIi4uL3Jldm9rZVNvdXJjZVwiO1xuaW1wb3J0IHsgc291cmNlUmVwb1BhdGggfSBmcm9tIFwiLi4vc291cmNlc1wiO1xuaW1wb3J0IHsgcnVuR2l0IH0gZnJvbSBcIi4vZ2l0XCI7XG5pbXBvcnQgeyBlbnN1cmVSZXZva2VLZXksIGxpc3RSZXBvRGlyLCByZWFkUmVwb0ZpbGUsIHJldm9rZVJlcG8sIHNvdXJjZVJlcG8sIHN5bmNSZXBvRmlsZXMgfSBmcm9tIFwiLi9yZXBvRmlsZXNcIjtcbmltcG9ydCB7IG1lc3NhZ2VUaW1lc3RhbXAgfSBmcm9tIFwiLi4vLi4vbm90aWZpY2F0aW9ucy9kaXNjb3JkXCI7XG5pbXBvcnQgeyBhZGRDaGFuZ2VSZWFzb24sIGFkZExlYWRpbmdDaGFuZ2VSZWFzb24gfSBmcm9tIFwiLi9jaGFuZ2VzXCI7XG5pbXBvcnQgeyBkZXNjcmliZUFsbEVuZGVkLCBlbmRBbGxTU0hTZXNzaW9ucyB9IGZyb20gXCIuL3Nlc3Npb25zXCI7XG5pbXBvcnQgeyBnZXRTdGF0ZSwgc2F2ZVN0YXRlIH0gZnJvbSBcIi4vc3RhdGVcIjtcblxuLy8gQSByZXZvY2F0aW9uIHNheXM6IHRoaXMga2V5LCB1c2VkIGZyb20gdGhpcyBhZGRyZXNzLCBpcyBubyBsb25nZXIgYWNjZXB0ZWQuIEFuIHVucmV2b2tlIHNheXMgdGhlXG4vLyBvcHBvc2l0ZSBhYm91dCBvbmUgcGFpcjogdGhpcyBrZXkgaXMgYWxsb3dlZCBmcm9tIHRoaXMgYWRkcmVzcy4gVGhleSBjYW5jZWwgb3V0IHdoZW4gYm90aCBoYWx2ZXNcbi8vIG1hdGNoLCB3aGljaCBpcyB3aHkgYSByZXZvY2F0aW9uIGlzIG9uZSBldmVudCB3aXRoIGFuIGlkIG9mIGl0cyBvd24sIGFuZCBuZXZlciBhIG5hbWUgZGVyaXZlZFxuLy8gZnJvbSB0aGUga2V5IC0gZm9yZ2l2aW5nIGEga2V5IGZvciBvbmUgYWRkcmVzcyBtdXN0IG5vdCBtYWtlIGl0IHVucmV2b2thYmxlIGV2ZXJ5d2hlcmUuXG5jb25zdCBSRVZPQ0FUSU9OU19ESVIgPSBcInJldm9jYXRpb25zXCI7XG5jb25zdCBVTlJFVk9LRVNfRElSID0gXCJ1bnJldm9rZWRcIjtcbmNvbnN0IFJFVk9DQVRJT05fUkVBU09OID0gXCJhdXRoZW50aWNhdGVkIGFjY2VzcyBmcm9tIGFuIHVuYXBwcm92ZWQgSVBcIjtcblxuZXhwb3J0IHR5cGUgQXR0ZW1wdCA9IHtcbiAgICBpcDogc3RyaW5nO1xuICAgIHVzZXI6IHN0cmluZztcbiAgICBwb3J0OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ6IHN0cmluZztcbiAgICBsaW5lOiBzdHJpbmc7XG59O1xuXG4vKiogV2hhdCBhbiB1bnJldm9rZSBoYXMgdG8gbmFtZSB0byB1bmRvIGEgcmV2b2NhdGlvbiwgYW5kIHdoYXQgc3RvcHMgYSBzZWNvbmQgcmV2b2NhdGlvbiBvZiB0aGVcbiAgICBzYW1lIGtleSBmcm9tIHRoZSBzYW1lIGFkZHJlc3MuICovXG5leHBvcnQgZnVuY3Rpb24gcGFpcktleShjb25maWc6IHsgZmluZ2VycHJpbnQ6IHN0cmluZzsgaXA6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGAke2NvbmZpZy5maW5nZXJwcmludH0gJHtjb25maWcuaXB9YDtcbn1cblxuLyoqIFVuaXF1ZSB0byB0aGUgZXZlbnQuIFRoZSB0aW1lIGlzIHRoZXJlIHRvIHJlYWQsIHRoZSByYW5kb20gaGFsZiBpcyB0aGVyZSB0byBiZSB1bmlxdWUuICovXG5leHBvcnQgZnVuY3Rpb24gbmV3UmV2b2NhdGlvbklkKGZpbmdlcnByaW50OiBzdHJpbmcpIHtcbiAgICBsZXQgc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvWzouXS9nLCBcIi1cIik7XG4gICAgcmV0dXJuIGAke3N0YW1wfS0ke3JhbmRvbUJ5dGVzKDgpLnRvU3RyaW5nKFwiaGV4XCIpfS0ke2ZpbmdlcnByaW50LnJlcGxhY2UoL15TSEEyNTY6LywgXCJcIikuc2xpY2UoMCwgOCkucmVwbGFjZSgvW15BLVphLXowLTldKy9nLCBcIlwiKX1gO1xufVxuXG4vKiogV2h5IGEga2V5IHN0b3BwZWQgYmVpbmcgYWNjZXB0ZWQsIGluIHRoZSB3b3JkcyBvZiB3aGljaGV2ZXIgbWFjaGluZSBzYXcgaXQgaGFwcGVuLiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVSZXZvY2F0aW9uKHJldm9jYXRpb246IHsgcmV2b2tlZEF0OiBzdHJpbmc7IHJldm9rZWRCeTogc3RyaW5nOyByZWFzb246IHN0cmluZzsgaXA6IHN0cmluZyB9KSB7XG4gICAgbGV0IHdoZW4gPSBEYXRlLnBhcnNlKHJldm9jYXRpb24ucmV2b2tlZEF0KTtcbiAgICBsZXQgcGFydHMgPSBbXG4gICAgICAgIE51bWJlci5pc0Zpbml0ZSh3aGVuKSA/IGByZXZva2VkICR7bWVzc2FnZVRpbWVzdGFtcChuZXcgRGF0ZSh3aGVuKSl9YCA6IGByZXZva2VkIGF0IGFuIHVucmVjb3JkZWQgdGltZWAsXG4gICAgICAgIHJldm9jYXRpb24ucmV2b2tlZEJ5ICYmIGBieSBcXGAke3Jldm9jYXRpb24ucmV2b2tlZEJ5fVxcYGAgfHwgXCJcIixcbiAgICAgICAgcmV2b2NhdGlvbi5yZWFzb24gfHwgXCJcIixcbiAgICAgICAgcmV2b2NhdGlvbi5pcCAmJiBgZnJvbSBcXGAke3Jldm9jYXRpb24uaXB9XFxgYCB8fCBcIlwiLFxuICAgIF07XG4gICAgcmV0dXJuIHBhcnRzLmZpbHRlcihwYXJ0ID0+IHBhcnQpLmpvaW4oXCIsIFwiKTtcbn1cblxuZXhwb3J0IHR5cGUgUmV2b2NhdGlvbkZpbGUgPSB7XG4gICAgcmV2b2NhdGlvbklkOiBzdHJpbmc7XG4gICAgZmluZ2VycHJpbnQ6IHN0cmluZztcbiAgICBpcDogc3RyaW5nO1xuICAgIHJldm9rZWRBdDogc3RyaW5nO1xuICAgIHJldm9rZWRCeTogc3RyaW5nO1xuICAgIHJlYXNvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRSZXZvY2F0aW9uRmlsZXMoc291cmNlVVJMOiBzdHJpbmcpOiBQcm9taXNlPFJldm9jYXRpb25GaWxlW10+IHtcbiAgICBsZXQgcmVwbyA9IHJldm9rZVJlcG8oc291cmNlVVJMKTtcbiAgICBsZXQgcmV2b2NhdGlvbnM6IFJldm9jYXRpb25GaWxlW10gPSBbXTtcbiAgICBmb3IgKGxldCBuYW1lIG9mIGF3YWl0IGxpc3RSZXBvRGlyKHJlcG8sIFJFVk9DQVRJT05TX0RJUikpIHtcbiAgICAgICAgaWYgKCFuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkID0gSlNPTi5wYXJzZShhd2FpdCByZWFkUmVwb0ZpbGUocmVwbywgcGF0aC5qb2luKFJFVk9DQVRJT05TX0RJUiwgbmFtZSkpIHx8IFwiXCIpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZC5maW5nZXJwcmludCkge1xuICAgICAgICAgICAgICAgIHJldm9jYXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICByZXZvY2F0aW9uSWQ6IHBhcnNlZC5yZXZvY2F0aW9uSWQgfHwgbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBmaW5nZXJwcmludDogcGFyc2VkLmZpbmdlcnByaW50LFxuICAgICAgICAgICAgICAgICAgICBpcDogcGFyc2VkLmlwIHx8IHBhcnNlZC5hdHRlbXB0Py5pcCB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICByZXZva2VkQXQ6IHBhcnNlZC5yZXZva2VkQXQgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcmV2b2tlZEJ5OiBwYXJzZWQucmV2b2tlZEJ5IHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlYXNvbjogcGFyc2VkLnJlYXNvbiB8fCBcIlwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgdW5yZWFkYWJsZSByZXZvY2F0aW9uICR7bmFtZX0uICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV2b2NhdGlvbnM7XG59XG5cbi8qKiBXaGljaCBrZXkgaXMgYWxsb3dlZCBmcm9tIHdoaWNoIGFkZHJlc3MuIFVucmV2b2tlcyBsaXZlIGluIHRoZSBzb3VyY2UgcmVwbywgc28gdGhleSBhcmUgY292ZXJlZFxuICAgIGJ5IGl0cyBzaWduYXR1cmUsIGFuZCBub3RoaW5nIGlzIHJlYWQgb3V0IG9mIHRoZW0gYnV0IHRoZSBwYWlycyB0aGV5IGFsbG93IGFuZCwgZm9yIGZpbGVzXG4gICAgd3JpdHRlbiBiZWZvcmUgcGFpcnMgZXhpc3RlZCwgdGhlIHJldm9jYXRpb24gaWRzIHRoZXkgbmFtZS4gKi9cbmV4cG9ydCB0eXBlIFVucmV2b2tlcyA9IHtcbiAgICAvLyBmaW5nZXJwcmludCBhbmQgaXAsIHRvIGV2ZXJ5IHVucmV2b2tlIHRoYXQgYWxsb3dzIHRoZW0uIEV2ZXJ5IG9uZSByYXRoZXIgdGhhbiB0aGUgbGFzdCxcbiAgICAvLyBiZWNhdXNlIHRoZSBzYW1lIHBhaXIgaXMgb2Z0ZW4gbmFtZWQgYWdhaW4gYnkgYSBsYXRlciB1bnJldm9rZSBhbmQgdGhlcmUgaXMgbm8gcmVhc29uIHRvXG4gICAgLy8gcHJlZmVyIG9uZSBvdmVyIGFub3RoZXIuXG4gICAgcGFpcnM6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgICAvLyBSZXZvY2F0aW9uIGlkIHRvIHRoZSB1bnJldm9rZXMgbmFtaW5nIGl0LiBPbmx5IGZvciB1bnJldm9rZXMgd3JpdHRlbiBiZWZvcmUgdGhpcyB3YXMgYWJvdXRcbiAgICAvLyBwYWlycyBhdCBhbGwsIHNvIGEgbWFjaGluZSByZWFkaW5nIG9uZSBhbHJlYWR5IGluIGEgcmVwbyBzdGlsbCBob25vdXJzIGl0LlxuICAgIGxlZ2FjeUlkczogTWFwPHN0cmluZywgc3RyaW5nW10+O1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRVbnJldm9rZXMoc291cmNlVVJMOiBzdHJpbmcpOiBQcm9taXNlPFVucmV2b2tlcz4ge1xuICAgIGxldCByZXBvID0gc291cmNlUmVwbyhzb3VyY2VVUkwpO1xuICAgIGxldCBwYWlycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgICBsZXQgbGVnYWN5SWRzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuICAgIGxldCBhZGQgPSAoaW50bzogTWFwPHN0cmluZywgc3RyaW5nW10+LCBrZXk6IHN0cmluZywgdW5yZXZva2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGludG8uc2V0KGtleSwgWy4uLihpbnRvLmdldChrZXkpIHx8IFtdKSwgdW5yZXZva2VJZF0pO1xuICAgIH07XG4gICAgZm9yIChsZXQgbmFtZSBvZiBhd2FpdCBsaXN0UmVwb0RpcihyZXBvLCBVTlJFVk9LRVNfRElSKSkge1xuICAgICAgICBpZiAoIW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVucmV2b2tlSWQgPSBuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJcIik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkID0gSlNPTi5wYXJzZShhd2FpdCByZWFkUmVwb0ZpbGUocmVwbywgcGF0aC5qb2luKFVOUkVWT0tFU19ESVIsIG5hbWUpKSB8fCBcIlwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGFsbG93ZWQgb2YgcGFyc2VkLmFsbG93ZWQgfHwgW10pIHtcbiAgICAgICAgICAgICAgICAvLyBFaXRoZXIga2luZCBvZiBpZGVudGl0eTogYW4gc3NoIGtleSBuYW1lcyBhIGZpbmdlcnByaW50LCBhIG1hY2hpbmUgYSBtYWNoaW5lSWQuXG4gICAgICAgICAgICAgICAgbGV0IGlkZW50aXR5ID0gYWxsb3dlZC5maW5nZXJwcmludCB8fCBhbGxvd2VkLm1hY2hpbmVJZDtcbiAgICAgICAgICAgICAgICBpZiAoaWRlbnRpdHkgJiYgYWxsb3dlZC5pcCkge1xuICAgICAgICAgICAgICAgICAgICBhZGQocGFpcnMsIHBhaXJLZXkoeyBmaW5nZXJwcmludDogaWRlbnRpdHksIGlwOiBhbGxvd2VkLmlwIH0pLCB1bnJldm9rZUlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCByZXZvY2F0aW9uSWQgb2YgcGFyc2VkLnJldm9jYXRpb25JZHMgfHwgW10pIHtcbiAgICAgICAgICAgICAgICBhZGQobGVnYWN5SWRzLCByZXZvY2F0aW9uSWQsIHVucmV2b2tlSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgdW5yZWFkYWJsZSB1bnJldm9rZSAke25hbWV9LiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgcGFpcnMsIGxlZ2FjeUlkcyB9O1xufVxuXG4vKiogRXZlcnkgdW5yZXZva2UgY292ZXJpbmcgb25lIHJldm9jYXRpb246IGJ5IHRoZSBwYWlyIGl0IGlzIGFib3V0LCBhbmQgYnkgaXRzIGlkIGZvciB0aGUgZmlsZXNcbiAgICB3cml0dGVuIGJlZm9yZSBwYWlycyBleGlzdGVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVucmV2b2tlc0Zvcih1bnJldm9rZXM6IFVucmV2b2tlcywgcmV2b2NhdGlvbjogeyByZXZvY2F0aW9uSWQ6IHN0cmluZzsgZmluZ2VycHJpbnQ6IHN0cmluZzsgaXA6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgLi4udW5yZXZva2VzLnBhaXJzLmdldChwYWlyS2V5KHJldm9jYXRpb24pKSB8fCBbXSxcbiAgICAgICAgLi4udW5yZXZva2VzLmxlZ2FjeUlkcy5nZXQocmV2b2NhdGlvbi5yZXZvY2F0aW9uSWQpIHx8IFtdLFxuICAgIF07XG59XG5cbi8qKiBXcml0ZXMgYSByZXZvY2F0aW9uLCB1bmxlc3MgdGhpcyBrZXkgaXMgYWxyZWFkeSByZXZva2VkIGZvciB0aGlzIGFkZHJlc3MuIENoZWNrZWQgdHdpY2U6XG4gICAgYWdhaW5zdCB3aGF0IHRoaXMgbWFjaGluZSBhbHJlYWR5IGtub3dzLCB3aGljaCBuZWVkcyBubyBuZXR3b3JrLCBhbmQgYWdhaW4gYWdhaW5zdCB0aGUgcmVwb1xuICAgIGFmdGVyIHB1bGxpbmcgaXQsIHNvIGEgZmxvb2Qgb2YgdW5rbm93biBrZXlzIGNhbm5vdCB0dXJuIGludG8gYSBmbG9vZCBvZiBjb21taXRzLlxuXG4gICAgRGVkdXBsaWNhdGlvbiBpcyBvbiB0aGUgcGFpci4gVGhlIHNhbWUga2V5IGZyb20gYSBzZWNvbmQgYWRkcmVzcyBpcyBhIHNlY29uZCBldmVudCBhbmQgZ2V0cyBpdHNcbiAgICBvd24gcmV2b2NhdGlvbiwgYmVjYXVzZSBhbiB1bnJldm9rZSBvbmx5IGV2ZXIgZm9yZ2l2ZXMgdGhlIHBhaXIgaXQgbmFtZXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVjb3JkUmV2b2NhdGlvbihjb25maWc6IHtcbiAgICBzb3VyY2VVUkw6IHN0cmluZztcbiAgICBmaW5nZXJwcmludDogc3RyaW5nO1xuICAgIGtleUxpbmU6IHN0cmluZztcbiAgICBhdHRlbXB0OiBBdHRlbXB0O1xuICAgIGhvc3RMYWJlbDogc3RyaW5nO1xufSkge1xuICAgIGxldCB7IHNvdXJjZVVSTCwgZmluZ2VycHJpbnQsIGtleUxpbmUsIGF0dGVtcHQsIGhvc3RMYWJlbCB9ID0gY29uZmlnO1xuICAgIGxldCBzdGF0ZSA9IGdldFN0YXRlKCk7XG4gICAgbGV0IHBhaXIgPSBwYWlyS2V5KHsgZmluZ2VycHJpbnQsIGlwOiBhdHRlbXB0LmlwIH0pO1xuICAgIGlmIChPYmplY3QudmFsdWVzKHN0YXRlLnJldm9jYXRpb25zKS5zb21lKGVudHJ5ID0+IHBhaXJLZXkoZW50cnkpID09PSBwYWlyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHN5bmNSZXBvRmlsZXMocmV2b2tlUmVwbyhzb3VyY2VVUkwpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCByZWNvcmQgdGhlIHJldm9jYXRpb24gb2YgJHtmaW5nZXJwcmludH0sICR7cmV2b2tlUmVwb1VSTChzb3VyY2VVUkwpfSBjb3VsZCBub3QgYmUgcmVhZC4gJHtlfWApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCByZXZvY2F0aW9uSWQgPSBuZXdSZXZvY2F0aW9uSWQoZmluZ2VycHJpbnQpO1xuICAgIGxldCBleGlzdGluZyA9IChhd2FpdCByZWFkUmV2b2NhdGlvbkZpbGVzKHNvdXJjZVVSTCkpLmZpbmQoZW50cnkgPT4gcGFpcktleShlbnRyeSkgPT09IHBhaXIpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAvLyBBbm90aGVyIG1hY2hpbmUgZ290IHRoZXJlIGZpcnN0LCB3aGljaCBpcyB0aGUgbm9ybWFsIG91dGNvbWUgd2hlbiBzZXZlcmFsIHNlZSB0aGUgc2FtZVxuICAgICAgICAvLyBhdHRlbXB0LiBSZWNvcmQgaXQgbG9jYWxseSBzbyB3ZSBuZXZlciBsb29rIGFnYWluLlxuICAgICAgICBzdGF0ZS5yZXZvY2F0aW9uc1tleGlzdGluZy5yZXZvY2F0aW9uSWRdID0ge1xuICAgICAgICAgICAgcmV2b2NhdGlvbklkOiBleGlzdGluZy5yZXZvY2F0aW9uSWQsXG4gICAgICAgICAgICBmaW5nZXJwcmludDogZXhpc3RpbmcuZmluZ2VycHJpbnQsIGlwOiBleGlzdGluZy5pcCxcbiAgICAgICAgICAgIHJldm9rZWRBdDogZXhpc3RpbmcucmV2b2tlZEF0LCByZXZva2VkQnk6IGV4aXN0aW5nLnJldm9rZWRCeSxcbiAgICAgICAgICAgIHJlYXNvbjogZXhpc3RpbmcucmVhc29uLFxuICAgICAgICAgICAgdW5yZXZva2VJZDogXCJcIiwgdW5yZXZva2VkOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcG9ydGVkUmVtb3ZlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHNhdmVTdGF0ZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IHJlcG9QYXRoID0gcmV2b2tlUmVwb1BhdGgoc291cmNlVVJMKTtcbiAgICBsZXQga2V5UGF0aCA9IGF3YWl0IGVuc3VyZVJldm9rZUtleShzb3VyY2VVUkwpO1xuICAgIGxldCBkaXJlY3RvcnkgPSBwYXRoLmpvaW4ocmVwb1BhdGgsIFJFVk9DQVRJT05TX0RJUik7XG4gICAgYXdhaXQgZnMubWtkaXIoZGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBsZXQgcmV2b2tlZEF0ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LCBgJHtyZXZvY2F0aW9uSWR9Lmpzb25gKSwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICByZXZvY2F0aW9uSWQsXG4gICAgICAgIGZpbmdlcnByaW50LFxuICAgICAgICAvLyBUaGUgdHdvIGhhbHZlcyBvZiB3aGF0IGhhcHBlbmVkLiBBbiB1bnJldm9rZSBuYW1pbmcgYm90aCBpcyB3aGF0IHVuZG9lcyB0aGlzLlxuICAgICAgICBpcDogYXR0ZW1wdC5pcCxcbiAgICAgICAga2V5OiBrZXlMaW5lLFxuICAgICAgICByZXZva2VkQXQsXG4gICAgICAgIHJldm9rZWRCeTogaG9zdExhYmVsLFxuICAgICAgICByZWFzb246IFJFVk9DQVRJT05fUkVBU09OLFxuICAgICAgICBhdHRlbXB0LFxuICAgIH0sIHVuZGVmaW5lZCwgNCkgKyBcIlxcblwiKTtcblxuICAgIGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcImFkZFwiLCBcIi1BXCJdLCBjd2Q6IHJlcG9QYXRoLCBrZXlQYXRoIH0pO1xuICAgIGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcIi1jXCIsIFwidXNlci5lbWFpbD1wb3J0c2VjdXJlQGxvY2FsaG9zdFwiLCBcIi1jXCIsIFwidXNlci5uYW1lPXBvcnRzZWN1cmVcIiwgXCJjb21taXRcIiwgXCItbVwiLCBgcmV2b2tlICR7cmV2b2NhdGlvbklkfWBdLCBjd2Q6IHJlcG9QYXRoLCBrZXlQYXRoIH0pO1xuICAgIGxldCBwdXNoID0gYXdhaXQgcnVuR2l0KHsgYXJnczogW1wicHVzaFwiLCBcIm9yaWdpblwiLCBcIkhFQURcIl0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGgsIGFsbG93RmFpbHVyZTogdHJ1ZSB9KTtcbiAgICBpZiAocHVzaC5zdGF0dXMgIT09IDApIHtcbiAgICAgICAgLy8gTW9zdCBsaWtlbHkgYW5vdGhlciBtYWNoaW5lIHB1c2hlZCB0aGUgc2FtZSByZXZvY2F0aW9uIGZpcnN0LiBUaGUgbmV4dCBjaGVjayB3aWxsIHB1bGxcbiAgICAgICAgLy8gaXQgYW5kIHJlY29yZCBpdCwgc28gdGhlcmUgaXMgbm90aGluZyB0byByZXRyeSBoZXJlLlxuICAgICAgICBjb25zb2xlLmxvZyhgQ291bGQgbm90IHB1c2ggdGhlIHJldm9jYXRpb24gb2YgJHtmaW5nZXJwcmludH0sIHdpbGwgcGljayBpdCB1cCBvbiB0aGUgbmV4dCBjaGVjay4gJHsocHVzaC5zdGRvdXQgKyBwdXNoLnN0ZGVycikudHJpbSgpfWApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHN0YXRlLnJldm9jYXRpb25zW3Jldm9jYXRpb25JZF0gPSB7XG4gICAgICAgIHJldm9jYXRpb25JZCwgZmluZ2VycHJpbnQsIGlwOiBhdHRlbXB0LmlwLFxuICAgICAgICByZXZva2VkQXQsIHJldm9rZWRCeTogaG9zdExhYmVsLCByZWFzb246IFJFVk9DQVRJT05fUkVBU09OLFxuICAgICAgICB1bnJldm9rZUlkOiBcIlwiLCB1bnJldm9rZWQ6IGZhbHNlLFxuICAgICAgICAvLyBUaGUgbWVzc2FnZSBiZWxvdyBhbHJlYWR5IHNheXMgdGhpcyBtYWNoaW5lIGhhcyBzdG9wcGVkIGFjY2VwdGluZyB0aGUga2V5LCBzbyB0aGUgb25lXG4gICAgICAgIC8vIGFib3V0IG5vdGljaW5nIGEgcmV2b2NhdGlvbiB3b3VsZCBvbmx5IHJlcGVhdCBpdC5cbiAgICAgICAgcmVwb3J0ZWRSZW1vdmVkOiB0cnVlLFxuICAgIH07XG4gICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgbGV0IGVuZGVkID0gZGVzY3JpYmVBbGxFbmRlZChhd2FpdCBlbmRBbGxTU0hTZXNzaW9ucygpKTtcbiAgICAvLyBTYWlkIHdoZW4gdGhlIGZpbGUgaXMgd3JpdHRlbiwgbm90IGhlcmUsIHNvIG9uZSBldmVudCBwcm9kdWNlcyBvbmUgbWVzc2FnZS5cbiAgICBhZGRMZWFkaW5nQ2hhbmdlUmVhc29uKHtcbiAgICAgICAgaGVhZGxpbmU6IGBTVVNQSUNJT1VTIElQICR7YXR0ZW1wdC5pcH0gRlJPWkUgS0VZICR7a2V5TGluZSAmJiBrZXlOaWNlTmFtZShrZXlMaW5lKSB8fCBmaW5nZXJwcmludH1gLFxuICAgICAgICBib2R5OlxuICAgICAgICAgICAgYFNvbWVvbmUgbG9nZ2VkIGluIGZyb20gJHthdHRlbXB0LmlwfSB1c2luZyBhIGtleSB0aGF0IGlzIG5vdCBhbGxvd2VkIGZyb20gdGhlcmUuIFRoZWBcbiAgICAgICAgICAgICsgYCBrZXkgaXRzZWxmIHdhcyBjb3JyZWN0LCBzbyBlaXRoZXIgc29tZW9uZSBlbHNlIGhhcyBhIGNvcHkgb2YgaXQsIG9yIG9uZSBvZiB5b3VyIG93bmBcbiAgICAgICAgICAgICsgYCBhZGRyZXNzZXMgY2hhbmdlZC5gXG4gICAgICAgICAgICArIGBcXG5cXG5UaGUga2V5IGlzIGZyb3plbiBvbiBldmVyeSBtYWNoaW5lIG5vdywgYW5kIHdvcmtzIG5vd2hlcmUuJHtlbmRlZH1gXG4gICAgICAgICAgICArIGBcXG5cXG5JZiB0aGlzIHdhcyBhbiBhdHRhY2ssIHJlbW92ZSB0aGF0IGtleSBmcm9tIFxcYCR7c291cmNlVVJMfVxcYCBub3cuYFxuICAgICAgICAgICAgKyBgXFxuSWYgaXQgd2FzIHlvdSwgcnVuOmBcbiAgICAgICAgICAgICsgYFxcblxcYFxcYFxcYFxcbmNkICR7c291cmNlUmVwb1BhdGgoc291cmNlVVJMKX1cXG55YXJuIHVucmV2b2tlIGdpdFxcblxcYFxcYFxcYGBcbiAgICAgICAgICAgICsgYFxcbkl0IGFsbG93cyAke2F0dGVtcHQuaXB9IG9uIHRoYXQga2V5LCBhbmQgdGFrZXMgYW4gaG91ciB0byByZWFjaCBldmVyeSBtYWNoaW5lLmBcbiAgICAgICAgICAgICsgYFxcblxcbmtleTogXFxgJHtrZXlMaW5lICYmIHN1bW1hcml6ZUtleShrZXlMaW5lKSB8fCBmaW5nZXJwcmludH1cXGBgXG4gICAgICAgICAgICArIGBcXG50cmllZCB0byBsb2cgaW4gYXM6IFxcYCR7YXR0ZW1wdC51c2VyfVxcYGBcbiAgICAgICAgICAgICsgYFxcbmFsbG93ZWQgb25seSBmcm9tOiBcXGAke2F0dGVtcHQucmVxdWlyZWR9XFxgYCxcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqIFRha2VzIGV2ZXJ5dGhpbmcgdGhlIHJldm9rZSByZXBvcyBsaXN0IGludG8gbG9jYWwgc3RhdGUuIE9uY2UgaGVyZSBhIHJldm9jYXRpb24gbmV2ZXIgbGVhdmVzLFxuICAgIGV2ZW4gaWYgdGhlIGZpbGUgaXMgZGVsZXRlZDogdGhlIGtleSB0aGF0IHdyaXRlcyByZXZvY2F0aW9ucyBpcyBvbiBldmVyeSBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyXG4gICAgaG9sZGluZyBpdCBjb3VsZCBvdGhlcndpc2UgZXJhc2UgdGhlIHJlY29yZCB0aGF0IGxvY2tlZCB0aGVtIG91dC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhYnNvcmJSZXZvY2F0aW9ucyhzb3VyY2VVUkxzOiBzdHJpbmdbXSkge1xuICAgIGxldCBzdGF0ZSA9IGdldFN0YXRlKCk7XG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBzb3VyY2VVUkwgb2Ygc291cmNlVVJMcykge1xuICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBhd2FpdCByZWFkUmV2b2NhdGlvbkZpbGVzKHNvdXJjZVVSTCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIFVucmVhZGFibGUgaXMgbm90IGVtcHR5LiBXaGF0ZXZlciB3ZSBhbHJlYWR5IGtuZXcgc3RheXMgZXhhY3RseSBhcyBpdCBpcy5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNraXBwaW5nIHRoZSByZXZvY2F0aW9ucyBvZiAke3Jldm9rZVJlcG9VUkwoc291cmNlVVJMKX0sIHRoZXkgY291bGQgbm90IGJlIHJlYWQuICR7ZX1gKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5yZXZvY2F0aW9uc1tlbnRyeS5yZXZvY2F0aW9uSWRdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZS5yZXZvY2F0aW9uc1tlbnRyeS5yZXZvY2F0aW9uSWRdID0ge1xuICAgICAgICAgICAgICAgIHJldm9jYXRpb25JZDogZW50cnkucmV2b2NhdGlvbklkLFxuICAgICAgICAgICAgICAgIGZpbmdlcnByaW50OiBlbnRyeS5maW5nZXJwcmludCxcbiAgICAgICAgICAgICAgICBpcDogZW50cnkuaXAsXG4gICAgICAgICAgICAgICAgcmV2b2tlZEF0OiBlbnRyeS5yZXZva2VkQXQsXG4gICAgICAgICAgICAgICAgcmV2b2tlZEJ5OiBlbnRyeS5yZXZva2VkQnksXG4gICAgICAgICAgICAgICAgcmVhc29uOiBlbnRyeS5yZWFzb24sXG4gICAgICAgICAgICAgICAgdW5yZXZva2VJZDogXCJcIixcbiAgICAgICAgICAgICAgICB1bnJldm9rZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlcG9ydGVkUmVtb3ZlZDogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgfVxufVxuXG4vKiogQW4gdW5yZXZva2UgY291bnRzIHRoZSBtb21lbnQgaXQgaXMgc2Vlbi5cblxuICAgIFRoZXJlIHVzZWQgdG8gYmUgYW4gaG91cidzIHdhaXQgYmVmb3JlIGhvbm91cmluZyBvbmUsIGFnYWluc3QgYSBzaWduaW5nIGtleSB0aGF0IGhhZCBpdHNlbGZcbiAgICBiZWVuIHN0b2xlbi4gSXQgd2FzIG5ldmVyIHdvcnRoIGl0OiBhbiB1bnJldm9rZSBoYXMgdG8gYmUgc2lnbmVkLCBzbyB3cml0aW5nIG9uZSBhbHJlYWR5IHRha2VzXG4gICAgdGhlIGhhcmR3YXJlIGtleSwgYW5kIGFueW9uZSBob2xkaW5nIHRoYXQgY2FuIHNpZ24gYSBuZXcgYXV0aG9yaXplZF9rZXlzIG5hbWluZyB3aGF0ZXZlciB0aGV5XG4gICAgbGlrZSAtIHRoZXkgaGF2ZSBubyByZWFzb24gdG8gZ28gbmVhciBhbiB1bnJldm9rZS4gTWVhbndoaWxlIHRoZSB3YWl0IGNvc3QgcmVhbCBhY2Nlc3MsIGFuZCBhXG4gICAgbWFjaGluZSBkZXBsb3llZCBhZnRlciBhbiBpbmNpZGVudCB3b3VsZCBmcmVlemUga2V5cyBpdCBoYWQgbmV2ZXIgaGFkIGEgcHJvYmxlbSB3aXRoLCBmb3IgYW5cbiAgICBob3VyLCBiZWNhdXNlIGl0IHdhcyBzZWVpbmcgdGhlIHVucmV2b2tlIGZvciB0aGUgZmlyc3QgdGltZS5cblxuICAgIFdoYXQgc3RpbGwgcHJvdGVjdHMgYSBzdG9sZW4gc2lnbmluZyBrZXkgaXMgdGhlIDI0IGhvdXJzIGJlZm9yZSBhIE5FVyBzaWduZXIgaXMgYWNjZXB0ZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlVbnJldm9rZXMoc291cmNlVVJMczogc3RyaW5nW10pIHtcbiAgICBsZXQgc3RhdGUgPSBnZXRTdGF0ZSgpO1xuICAgIGxldCB1bnJldm9rZXM6IFVucmV2b2tlcyA9IHsgcGFpcnM6IG5ldyBNYXAoKSwgbGVnYWN5SWRzOiBuZXcgTWFwKCkgfTtcbiAgICBmb3IgKGxldCBzb3VyY2VVUkwgb2Ygc291cmNlVVJMcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGF3YWl0IHJlYWRVbnJldm9rZXMoc291cmNlVVJMKTtcbiAgICAgICAgICAgIGZvciAobGV0IFtwYWlyLCBpZHNdIG9mIHNvdXJjZS5wYWlycykge1xuICAgICAgICAgICAgICAgIHVucmV2b2tlcy5wYWlycy5zZXQocGFpciwgWy4uLih1bnJldm9rZXMucGFpcnMuZ2V0KHBhaXIpIHx8IFtdKSwgLi4uaWRzXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCBbcmV2b2NhdGlvbklkLCBpZHNdIG9mIHNvdXJjZS5sZWdhY3lJZHMpIHtcbiAgICAgICAgICAgICAgICB1bnJldm9rZXMubGVnYWN5SWRzLnNldChyZXZvY2F0aW9uSWQsIFsuLi4odW5yZXZva2VzLmxlZ2FjeUlkcy5nZXQocmV2b2NhdGlvbklkKSB8fCBbXSksIC4uLmlkc10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBVbnJlYWRhYmxlIGlzIG5vdCBcInRoZXJlIGFyZSBubyB1bnJldm9rZXNcIi4gVGhlIHJldm9jYXRpb25zIHNpbXBseSBzdGFuZC5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNraXBwaW5nIHRoZSB1bnJldm9rZXMgb2YgJHtzb3VyY2VVUkx9LCB0aGV5IGNvdWxkIG5vdCBiZSByZWFkLiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgcmV2b2NhdGlvbiBvZiBPYmplY3QudmFsdWVzKHN0YXRlLnJldm9jYXRpb25zKSkge1xuICAgICAgICBpZiAocmV2b2NhdGlvbi51bnJldm9rZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjb3ZlcmluZyA9IHVucmV2b2tlc0Zvcih1bnJldm9rZXMsIHJldm9jYXRpb24pO1xuICAgICAgICBpZiAoIWNvdmVyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVucmV2b2tlSWQgPSBjb3ZlcmluZ1swXTtcbiAgICAgICAgcmV2b2NhdGlvbi51bnJldm9rZUlkID0gdW5yZXZva2VJZDtcbiAgICAgICAgcmV2b2NhdGlvbi51bnJldm9rZWQgPSB0cnVlO1xuICAgICAgICByZXZvY2F0aW9uLnJlcG9ydGVkUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgLy8gT25seSBtZWFucyBhbnl0aGluZyBpZiB0aGUga2V5IGNvbWVzIGJhY2sgaW50byB0aGUgZmlsZSwgc28gaXQgaXMgc2FpZCB0aGVyZS5cbiAgICAgICAgYWRkQ2hhbmdlUmVhc29uKFxuICAgICAgICAgICAgYFVuZnJvemUgYSBrZXkgZm9yIFxcYCR7cmV2b2NhdGlvbi5pcH1cXGAuIEl0IHdhcyBmcm96ZW4gZm9yIGJlaW5nIHVzZWQgZnJvbSB0aGVyZSwgYW5kYFxuICAgICAgICAgICAgKyBgICR7dW5yZXZva2VJZH0gc2F5cyB0aGF0IGFkZHJlc3MgaXMgYWxsb3dlZCBhZnRlciBhbGwuYFxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqIFJlcG9ydHMgZWFjaCByZXZvY2F0aW9uIHRoZSBmaXJzdCB0aW1lIGl0IGFjdHVhbGx5IHRha2VzIGEga2V5IG91dCBvZiB0aGlzIG1hY2hpbmUncyBmaWxlLiBUaGVcbiAgICBkcm9wcGluZyBpdHNlbGYgaGFwcGVucyBpbiByZWFkU2lnbmVkUmVwbywgd2hpY2ggc3RyaXBzIHJldm9rZWQga2V5cyBiZWZvcmUgYW55dGhpbmcgcmVhZHMgdGhlbVxuICAgIC0gdGhpcyBvbmx5IHNheXMgc28sIGFuZCBraWxscyB3aGF0ZXZlciBzZXNzaW9ucyB0aGUga2V5IHdhcyBob2xkaW5nIG9wZW4uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwb3J0UmV2b2tlZEtleXMoKSB7XG4gICAgbGV0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICBmb3IgKGxldCByZXZvY2F0aW9uIG9mIE9iamVjdC52YWx1ZXMoc3RhdGUucmV2b2NhdGlvbnMpKSB7XG4gICAgICAgIGlmIChyZXZvY2F0aW9uLnVucmV2b2tlZCB8fCByZXZvY2F0aW9uLnJlcG9ydGVkUmVtb3ZlZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV2b2NhdGlvbi5yZXBvcnRlZFJlbW92ZWQgPSB0cnVlO1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgLy8gTm90aGluZyB0byBkbyBpZiB0aGUga2V5IGlzIG5vdCBpbiB0aGUgZmlsZS4gSXQgbGVmdCBsb25nIGFnbywgYW5kIHRoaXMgaXMgYSBtYWNoaW5lIHRoYXRcbiAgICAgICAgLy8gcmVzdGFydGVkIGFuZCByZWFkIHRoZSByZXZvY2F0aW9uIGJhY2sgb3V0IG9mIHRoZSByZXBvLlxuICAgICAgICBsZXQga2V5ID0gc3RhdGUuYXBwbGllZEtleXMuZmluZChhcHBsaWVkID0+IGtleUZpbmdlcnByaW50KGFwcGxpZWQpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KTtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoYXRldmVyIHRoYXQga2V5IGlzIGhvbGRpbmcgb3BlbiBnb2VzIHdpdGggaXQuXG4gICAgICAgIGxldCBlbmRlZCA9IGRlc2NyaWJlQWxsRW5kZWQoYXdhaXQgZW5kQWxsU1NIU2Vzc2lvbnMoKSk7XG4gICAgICAgIGFkZExlYWRpbmdDaGFuZ2VSZWFzb24oe1xuICAgICAgICAgICAgaGVhZGxpbmU6IGBTVVNQSUNJT1VTIElQICR7cmV2b2NhdGlvbi5pcCB8fCBcInVua25vd25cIn0gRlJPWkUgS0VZICR7a2V5TmljZU5hbWUoa2V5KX1gLFxuICAgICAgICAgICAgYm9keTpcbiAgICAgICAgICAgICAgICBgQW5vdGhlciBtYWNoaW5lIHNhdyB0aGlzIGtleSB1c2VkIGZyb20gYW4gYWRkcmVzcyBpdCBpcyBub3QgYWxsb3dlZCBmcm9tLCBhbmRgXG4gICAgICAgICAgICAgICAgKyBgIGZyb3plIGl0IGV2ZXJ5d2hlcmUuIFRoaXMgbWFjaGluZSBoYXMgc3RvcHBlZCBhY2NlcHRpbmcgaXQgdG9vLiR7ZW5kZWR9YFxuICAgICAgICAgICAgICAgICsgYFxcblxcbmtleTogXFxgJHtzdW1tYXJpemVLZXkoa2V5KX1cXGBgXG4gICAgICAgICAgICAgICAgKyBgXFxuJHtkZXNjcmliZVJldm9jYXRpb24ocmV2b2NhdGlvbil9YCxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
323
|
-
/* _JS_SOURCE_HASH = "
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2b2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJldm9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkRBQTZCO0FBQzdCLGdEQUF3QjtBQUN4QixtQ0FBcUM7QUFDckMsc0RBQThFO0FBQzlFLGtEQUFnRTtBQUNoRSx3Q0FBNEM7QUFDNUMsK0JBQStCO0FBQy9CLDJDQUFnSDtBQUNoSCx5REFBK0Q7QUFDL0QsdUNBQW9FO0FBQ3BFLHlDQUFpRTtBQUNqRSxtQ0FBOEM7QUFDOUMsMkRBQTJEO0FBRTNELG1HQUFtRztBQUNuRyxtR0FBbUc7QUFDbkcsZ0dBQWdHO0FBQ2hHLDBGQUEwRjtBQUMxRixNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUM7QUFDdEMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ2xDLE1BQU0saUJBQWlCLEdBQUcsNENBQTRDLENBQUM7QUFVdkU7c0NBQ3NDO0FBQ3RDLFNBQWdCLE9BQU8sQ0FBQyxNQUEyQztJQUMvRCxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDaEQsQ0FBQztBQUZELDBCQUVDO0FBRUQsNkZBQTZGO0FBQzdGLFNBQWdCLGVBQWUsQ0FBQyxXQUFtQjtJQUMvQyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0QsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFBLG9CQUFXLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDekksQ0FBQztBQUhELDBDQUdDO0FBRUQseUZBQXlGO0FBQ3pGLFNBQVMsa0JBQWtCLENBQUMsVUFBZ0Y7SUFDeEcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsSUFBSSxLQUFLLEdBQUc7UUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDdkcsVUFBVSxDQUFDLFNBQVMsSUFBSSxRQUFRLFVBQVUsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1FBQzlELFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRTtRQUN2QixVQUFVLENBQUMsRUFBRSxJQUFJLFVBQVUsVUFBVSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUU7S0FDckQsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBV00sS0FBSyxVQUFVLG1CQUFtQixDQUFDLFNBQWlCOztJQUN2RCxJQUFJLElBQUksR0FBRyxJQUFBLHNCQUFVLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsSUFBSSxXQUFXLEdBQXFCLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBQSx1QkFBVyxFQUFDLElBQUksRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUIsU0FBUztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBQSx3QkFBWSxFQUFDLElBQUksRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNiLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztvQkFDaEUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUMvQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSSxNQUFBLE1BQU0sQ0FBQyxPQUFPLDBDQUFFLEVBQUUsQ0FBQSxJQUFJLEVBQUU7b0JBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUU7b0JBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUU7b0JBQ2pDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7aUJBQzlCLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQXhCRCxrREF3QkM7QUFlTSxLQUFLLFVBQVUsYUFBYSxDQUFDLFNBQWlCO0lBQ2pELElBQUksSUFBSSxHQUFHLElBQUEsc0JBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQUM1QyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQTJCLEVBQUUsR0FBVyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0lBQ0YsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLElBQUEsdUJBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFCLFNBQVM7UUFDYixDQUFDO1FBQ0QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDO1lBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUEsd0JBQVksRUFBQyxJQUFJLEVBQUUsY0FBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RixLQUFLLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLGtGQUFrRjtnQkFDbEYsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUN4RCxJQUFJLFFBQVEsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3pCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9FLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxJQUFJLFlBQVksSUFBSSxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNsRCxHQUFHLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQTdCRCxzQ0E2QkM7QUFFRDtvQ0FDb0M7QUFDcEMsU0FBZ0IsWUFBWSxDQUFDLFNBQW9CLEVBQUUsVUFBcUU7SUFDcEgsT0FBTztRQUNILEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRTtRQUNqRCxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0tBQzVELENBQUM7QUFDTixDQUFDO0FBTEQsb0NBS0M7QUFFRDs7Ozs7Z0ZBS2dGO0FBQ25FLFFBQUEsZ0JBQWdCLEdBQUcsSUFBQSxzQkFBVyxFQUFDLEtBQUssRUFBRSxNQU1sRCxFQUFFLEVBQUU7SUFDRCxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNyRSxJQUFJLEtBQUssR0FBRyxJQUFBLGdCQUFRLEdBQUUsQ0FBQztJQUN2QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELE1BQU0sSUFBQSx5QkFBYSxFQUFDLElBQUEsc0JBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsV0FBVyxLQUFLLElBQUEsNEJBQWEsRUFBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckgsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQUksWUFBWSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxJQUFJLFFBQVEsR0FBRyxDQUFDLE1BQU0sbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDN0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNYLHlGQUF5RjtRQUN6RixxREFBcUQ7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUc7WUFDdkMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNsRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7WUFDNUQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUs7WUFDaEMsZUFBZSxFQUFFLEtBQUs7U0FDekIsQ0FBQztRQUNGLE1BQU0sSUFBQSxpQkFBUyxHQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksUUFBUSxHQUFHLElBQUEsNkJBQWMsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxJQUFJLE9BQU8sR0FBRyxNQUFNLElBQUEsMkJBQWUsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxJQUFJLFNBQVMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNyRCxNQUFNLGtCQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLElBQUksU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsTUFBTSxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLFlBQVksT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM1RSxZQUFZO1FBQ1osV0FBVztRQUNYLGdGQUFnRjtRQUNoRixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDZCxHQUFHLEVBQUUsT0FBTztRQUNaLFNBQVM7UUFDVCxTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE9BQU87S0FDVixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUV6QixNQUFNLElBQUEsWUFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUEsWUFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLGlDQUFpQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsWUFBWSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbEssSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFBLFlBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BCLHlGQUF5RjtRQUN6Rix1REFBdUQ7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsV0FBVyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekksT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUc7UUFDOUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDekMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQjtRQUMxRCxVQUFVLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBQ2hDLHdGQUF3RjtRQUN4RixvREFBb0Q7UUFDcEQsZUFBZSxFQUFFLElBQUk7S0FDeEIsQ0FBQztJQUNGLE1BQU0sSUFBQSxpQkFBUyxHQUFFLENBQUM7SUFDbEIsSUFBSSxLQUFLLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxNQUFNLElBQUEsNEJBQWlCLEdBQUUsQ0FBQyxDQUFDO0lBQ3hELDhFQUE4RTtJQUM5RSxJQUFBLGdDQUFzQixFQUFDO1FBQ25CLFFBQVEsRUFBRSxpQkFBaUIsT0FBTyxDQUFDLEVBQUUsY0FBYyxPQUFPLElBQUksSUFBQSw0QkFBVyxFQUFDLE9BQU8sQ0FBQyxJQUFJLFdBQVcsRUFBRTtRQUNuRyxJQUFJLEVBQ0EsMEJBQTBCLE9BQU8sQ0FBQyxFQUFFLGtEQUFrRDtjQUNwRixzRkFBc0Y7Y0FDdEYscUJBQXFCO2NBQ3JCLGlFQUFpRSxLQUFLLEVBQUU7Y0FDeEUscURBQXFELFNBQVMsU0FBUztjQUN2RSx1QkFBdUI7Y0FDdkIsZ0JBQWdCLElBQUEsd0JBQWMsRUFBQyxTQUFTLENBQUMsNkJBQTZCO2NBQ3RFLGVBQWUsT0FBTyxDQUFDLEVBQUUseURBQXlEO2NBQ2xGLGNBQWMsT0FBTyxJQUFJLElBQUEsNkJBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxXQUFXLElBQUk7Y0FDakUsMkJBQTJCLE9BQU8sQ0FBQyxJQUFJLElBQUk7Y0FDM0MsMEJBQTBCLE9BQU8sQ0FBQyxRQUFRLElBQUk7S0FDdkQsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7d0VBRXdFO0FBQ2pFLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxVQUFvQjtJQUN4RCxJQUFJLEtBQUssR0FBRyxJQUFBLGdCQUFRLEdBQUUsQ0FBQztJQUN2QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsS0FBSyxJQUFJLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksQ0FBQztZQUNELE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsNEVBQTRFO1lBQzVFLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLElBQUEsNEJBQWEsRUFBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkcsU0FBUztRQUNiLENBQUM7UUFDRCxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsU0FBUztZQUNiLENBQUM7WUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRztnQkFDcEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDWixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzFCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsZUFBZSxFQUFFLEtBQUs7YUFDekIsQ0FBQztZQUNGLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFBLGlCQUFTLEdBQUUsQ0FBQztJQUN0QixDQUFDO0FBQ0wsQ0FBQztBQWpDRCw4Q0FpQ0M7QUFFRDs7Ozs7Ozs7O2dHQVNnRztBQUN6RixLQUFLLFVBQVUsY0FBYyxDQUFDLFVBQW9CO0lBQ3JELElBQUksS0FBSyxHQUFHLElBQUEsZ0JBQVEsR0FBRSxDQUFDO0lBQ3ZCLElBQUksU0FBUyxHQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN0RSxLQUFLLElBQUksU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQztZQUNELElBQUksTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUUsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9DLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEcsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsNEVBQTRFO1lBQzVFLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLFNBQVMsNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUYsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEQsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsU0FBUztRQUNiLENBQUM7UUFDRCxJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsU0FBUztRQUNiLENBQUM7UUFDRCxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDbkMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDNUIsVUFBVSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDbkMsTUFBTSxJQUFBLGlCQUFTLEdBQUUsQ0FBQztRQUNsQixnRkFBZ0Y7UUFDaEYsSUFBQSx5QkFBZSxFQUNYLHVCQUF1QixVQUFVLENBQUMsRUFBRSxrREFBa0Q7Y0FDcEYsSUFBSSxVQUFVLDBDQUEwQyxDQUM3RCxDQUFDO0lBQ04sQ0FBQztBQUNMLENBQUM7QUFwQ0Qsd0NBb0NDO0FBRUQ7O2lGQUVpRjtBQUMxRSxLQUFLLFVBQVUsaUJBQWlCO0lBQ25DLElBQUksS0FBSyxHQUFHLElBQUEsZ0JBQVEsR0FBRSxDQUFDO0lBQ3ZCLEtBQUssSUFBSSxVQUFVLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxJQUFJLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JELFNBQVM7UUFDYixDQUFDO1FBQ0QsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxJQUFBLGlCQUFTLEdBQUUsQ0FBQztRQUNsQiw0RkFBNEY7UUFDNUYsMERBQTBEO1FBQzFELElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBQSwrQkFBYyxFQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDUCxTQUFTO1FBQ2IsQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxJQUFJLEtBQUssR0FBRyxJQUFBLDJCQUFnQixFQUFDLE1BQU0sSUFBQSw0QkFBaUIsR0FBRSxDQUFDLENBQUM7UUFDeEQsSUFBQSxnQ0FBc0IsRUFBQztZQUNuQixRQUFRLEVBQUUsaUJBQWlCLFVBQVUsQ0FBQyxFQUFFLElBQUksU0FBUyxjQUFjLElBQUEsNEJBQVcsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUNyRixJQUFJLEVBQ0EsK0VBQStFO2tCQUM3RSxtRUFBbUUsS0FBSyxFQUFFO2tCQUMxRSxjQUFjLElBQUEsNkJBQVksRUFBQyxHQUFHLENBQUMsSUFBSTtrQkFDbkMsS0FBSyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtTQUM5QyxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQztBQXpCRCw4Q0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBrZXlGaW5nZXJwcmludCwga2V5TmljZU5hbWUsIHN1bW1hcml6ZUtleSB9IGZyb20gXCIuLi9hdXRob3JpemVkS2V5c1wiO1xuaW1wb3J0IHsgcmV2b2tlUmVwb1BhdGgsIHJldm9rZVJlcG9VUkwgfSBmcm9tIFwiLi4vcmV2b2tlU291cmNlXCI7XG5pbXBvcnQgeyBzb3VyY2VSZXBvUGF0aCB9IGZyb20gXCIuLi9zb3VyY2VzXCI7XG5pbXBvcnQgeyBydW5HaXQgfSBmcm9tIFwiLi9naXRcIjtcbmltcG9ydCB7IGVuc3VyZVJldm9rZUtleSwgbGlzdFJlcG9EaXIsIHJlYWRSZXBvRmlsZSwgcmV2b2tlUmVwbywgc291cmNlUmVwbywgc3luY1JlcG9GaWxlcyB9IGZyb20gXCIuL3JlcG9GaWxlc1wiO1xuaW1wb3J0IHsgbWVzc2FnZVRpbWVzdGFtcCB9IGZyb20gXCIuLi8uLi9ub3RpZmljYXRpb25zL2Rpc2NvcmRcIjtcbmltcG9ydCB7IGFkZENoYW5nZVJlYXNvbiwgYWRkTGVhZGluZ0NoYW5nZVJlYXNvbiB9IGZyb20gXCIuL2NoYW5nZXNcIjtcbmltcG9ydCB7IGRlc2NyaWJlQWxsRW5kZWQsIGVuZEFsbFNTSFNlc3Npb25zIH0gZnJvbSBcIi4vc2Vzc2lvbnNcIjtcbmltcG9ydCB7IGdldFN0YXRlLCBzYXZlU3RhdGUgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHsgcnVuSW5TZXJpYWwgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9iYXRjaGluZ1wiO1xuXG4vLyBBIHJldm9jYXRpb24gc2F5czogdGhpcyBrZXksIHVzZWQgZnJvbSB0aGlzIGFkZHJlc3MsIGlzIG5vIGxvbmdlciBhY2NlcHRlZC4gQW4gdW5yZXZva2Ugc2F5cyB0aGVcbi8vIG9wcG9zaXRlIGFib3V0IG9uZSBwYWlyOiB0aGlzIGtleSBpcyBhbGxvd2VkIGZyb20gdGhpcyBhZGRyZXNzLiBUaGV5IGNhbmNlbCBvdXQgd2hlbiBib3RoIGhhbHZlc1xuLy8gbWF0Y2gsIHdoaWNoIGlzIHdoeSBhIHJldm9jYXRpb24gaXMgb25lIGV2ZW50IHdpdGggYW4gaWQgb2YgaXRzIG93biwgYW5kIG5ldmVyIGEgbmFtZSBkZXJpdmVkXG4vLyBmcm9tIHRoZSBrZXkgLSBmb3JnaXZpbmcgYSBrZXkgZm9yIG9uZSBhZGRyZXNzIG11c3Qgbm90IG1ha2UgaXQgdW5yZXZva2FibGUgZXZlcnl3aGVyZS5cbmNvbnN0IFJFVk9DQVRJT05TX0RJUiA9IFwicmV2b2NhdGlvbnNcIjtcbmNvbnN0IFVOUkVWT0tFU19ESVIgPSBcInVucmV2b2tlZFwiO1xuY29uc3QgUkVWT0NBVElPTl9SRUFTT04gPSBcImF1dGhlbnRpY2F0ZWQgYWNjZXNzIGZyb20gYW4gdW5hcHByb3ZlZCBJUFwiO1xuXG5leHBvcnQgdHlwZSBBdHRlbXB0ID0ge1xuICAgIGlwOiBzdHJpbmc7XG4gICAgdXNlcjogc3RyaW5nO1xuICAgIHBvcnQ6IHN0cmluZztcbiAgICByZXF1aXJlZDogc3RyaW5nO1xuICAgIGxpbmU6IHN0cmluZztcbn07XG5cbi8qKiBXaGF0IGFuIHVucmV2b2tlIGhhcyB0byBuYW1lIHRvIHVuZG8gYSByZXZvY2F0aW9uLCBhbmQgd2hhdCBzdG9wcyBhIHNlY29uZCByZXZvY2F0aW9uIG9mIHRoZVxuICAgIHNhbWUga2V5IGZyb20gdGhlIHNhbWUgYWRkcmVzcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWlyS2V5KGNvbmZpZzogeyBmaW5nZXJwcmludDogc3RyaW5nOyBpcDogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYCR7Y29uZmlnLmZpbmdlcnByaW50fSAke2NvbmZpZy5pcH1gO1xufVxuXG4vKiogVW5pcXVlIHRvIHRoZSBldmVudC4gVGhlIHRpbWUgaXMgdGhlcmUgdG8gcmVhZCwgdGhlIHJhbmRvbSBoYWxmIGlzIHRoZXJlIHRvIGJlIHVuaXF1ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXdSZXZvY2F0aW9uSWQoZmluZ2VycHJpbnQ6IHN0cmluZykge1xuICAgIGxldCBzdGFtcCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9bOi5dL2csIFwiLVwiKTtcbiAgICByZXR1cm4gYCR7c3RhbXB9LSR7cmFuZG9tQnl0ZXMoOCkudG9TdHJpbmcoXCJoZXhcIil9LSR7ZmluZ2VycHJpbnQucmVwbGFjZSgvXlNIQTI1NjovLCBcIlwiKS5zbGljZSgwLCA4KS5yZXBsYWNlKC9bXkEtWmEtejAtOV0rL2csIFwiXCIpfWA7XG59XG5cbi8qKiBXaHkgYSBrZXkgc3RvcHBlZCBiZWluZyBhY2NlcHRlZCwgaW4gdGhlIHdvcmRzIG9mIHdoaWNoZXZlciBtYWNoaW5lIHNhdyBpdCBoYXBwZW4uICovXG5mdW5jdGlvbiBkZXNjcmliZVJldm9jYXRpb24ocmV2b2NhdGlvbjogeyByZXZva2VkQXQ6IHN0cmluZzsgcmV2b2tlZEJ5OiBzdHJpbmc7IHJlYXNvbjogc3RyaW5nOyBpcDogc3RyaW5nIH0pIHtcbiAgICBsZXQgd2hlbiA9IERhdGUucGFyc2UocmV2b2NhdGlvbi5yZXZva2VkQXQpO1xuICAgIGxldCBwYXJ0cyA9IFtcbiAgICAgICAgTnVtYmVyLmlzRmluaXRlKHdoZW4pID8gYHJldm9rZWQgJHttZXNzYWdlVGltZXN0YW1wKG5ldyBEYXRlKHdoZW4pKX1gIDogYHJldm9rZWQgYXQgYW4gdW5yZWNvcmRlZCB0aW1lYCxcbiAgICAgICAgcmV2b2NhdGlvbi5yZXZva2VkQnkgJiYgYGJ5IFxcYCR7cmV2b2NhdGlvbi5yZXZva2VkQnl9XFxgYCB8fCBcIlwiLFxuICAgICAgICByZXZvY2F0aW9uLnJlYXNvbiB8fCBcIlwiLFxuICAgICAgICByZXZvY2F0aW9uLmlwICYmIGBmcm9tIFxcYCR7cmV2b2NhdGlvbi5pcH1cXGBgIHx8IFwiXCIsXG4gICAgXTtcbiAgICByZXR1cm4gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydCkuam9pbihcIiwgXCIpO1xufVxuXG5leHBvcnQgdHlwZSBSZXZvY2F0aW9uRmlsZSA9IHtcbiAgICByZXZvY2F0aW9uSWQ6IHN0cmluZztcbiAgICBmaW5nZXJwcmludDogc3RyaW5nO1xuICAgIGlwOiBzdHJpbmc7XG4gICAgcmV2b2tlZEF0OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5OiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFJldm9jYXRpb25GaWxlcyhzb3VyY2VVUkw6IHN0cmluZyk6IFByb21pc2U8UmV2b2NhdGlvbkZpbGVbXT4ge1xuICAgIGxldCByZXBvID0gcmV2b2tlUmVwbyhzb3VyY2VVUkwpO1xuICAgIGxldCByZXZvY2F0aW9uczogUmV2b2NhdGlvbkZpbGVbXSA9IFtdO1xuICAgIGZvciAobGV0IG5hbWUgb2YgYXdhaXQgbGlzdFJlcG9EaXIocmVwbywgUkVWT0NBVElPTlNfRElSKSkge1xuICAgICAgICBpZiAoIW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRSZXBvRmlsZShyZXBvLCBwYXRoLmpvaW4oUkVWT0NBVElPTlNfRElSLCBuYW1lKSkgfHwgXCJcIik7XG4gICAgICAgICAgICBpZiAocGFyc2VkLmZpbmdlcnByaW50KSB7XG4gICAgICAgICAgICAgICAgcmV2b2NhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHJldm9jYXRpb25JZDogcGFyc2VkLnJldm9jYXRpb25JZCB8fCBuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIGZpbmdlcnByaW50OiBwYXJzZWQuZmluZ2VycHJpbnQsXG4gICAgICAgICAgICAgICAgICAgIGlwOiBwYXJzZWQuaXAgfHwgcGFyc2VkLmF0dGVtcHQ/LmlwIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHJldm9rZWRBdDogcGFyc2VkLnJldm9rZWRBdCB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICByZXZva2VkQnk6IHBhcnNlZC5yZXZva2VkQnkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcmVhc29uOiBwYXJzZWQucmVhc29uIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB1bnJlYWRhYmxlIHJldm9jYXRpb24gJHtuYW1lfS4gJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXZvY2F0aW9ucztcbn1cblxuLyoqIFdoaWNoIGtleSBpcyBhbGxvd2VkIGZyb20gd2hpY2ggYWRkcmVzcy4gVW5yZXZva2VzIGxpdmUgaW4gdGhlIHNvdXJjZSByZXBvLCBzbyB0aGV5IGFyZSBjb3ZlcmVkXG4gICAgYnkgaXRzIHNpZ25hdHVyZSwgYW5kIG5vdGhpbmcgaXMgcmVhZCBvdXQgb2YgdGhlbSBidXQgdGhlIHBhaXJzIHRoZXkgYWxsb3cgYW5kLCBmb3IgZmlsZXNcbiAgICB3cml0dGVuIGJlZm9yZSBwYWlycyBleGlzdGVkLCB0aGUgcmV2b2NhdGlvbiBpZHMgdGhleSBuYW1lLiAqL1xuZXhwb3J0IHR5cGUgVW5yZXZva2VzID0ge1xuICAgIC8vIGZpbmdlcnByaW50IGFuZCBpcCwgdG8gZXZlcnkgdW5yZXZva2UgdGhhdCBhbGxvd3MgdGhlbS4gRXZlcnkgb25lIHJhdGhlciB0aGFuIHRoZSBsYXN0LFxuICAgIC8vIGJlY2F1c2UgdGhlIHNhbWUgcGFpciBpcyBvZnRlbiBuYW1lZCBhZ2FpbiBieSBhIGxhdGVyIHVucmV2b2tlIGFuZCB0aGVyZSBpcyBubyByZWFzb24gdG9cbiAgICAvLyBwcmVmZXIgb25lIG92ZXIgYW5vdGhlci5cbiAgICBwYWlyczogTWFwPHN0cmluZywgc3RyaW5nW10+O1xuICAgIC8vIFJldm9jYXRpb24gaWQgdG8gdGhlIHVucmV2b2tlcyBuYW1pbmcgaXQuIE9ubHkgZm9yIHVucmV2b2tlcyB3cml0dGVuIGJlZm9yZSB0aGlzIHdhcyBhYm91dFxuICAgIC8vIHBhaXJzIGF0IGFsbCwgc28gYSBtYWNoaW5lIHJlYWRpbmcgb25lIGFscmVhZHkgaW4gYSByZXBvIHN0aWxsIGhvbm91cnMgaXQuXG4gICAgbGVnYWN5SWRzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT47XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFVucmV2b2tlcyhzb3VyY2VVUkw6IHN0cmluZyk6IFByb21pc2U8VW5yZXZva2VzPiB7XG4gICAgbGV0IHJlcG8gPSBzb3VyY2VSZXBvKHNvdXJjZVVSTCk7XG4gICAgbGV0IHBhaXJzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuICAgIGxldCBsZWdhY3lJZHMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KCk7XG4gICAgbGV0IGFkZCA9IChpbnRvOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4sIGtleTogc3RyaW5nLCB1bnJldm9rZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaW50by5zZXQoa2V5LCBbLi4uKGludG8uZ2V0KGtleSkgfHwgW10pLCB1bnJldm9rZUlkXSk7XG4gICAgfTtcbiAgICBmb3IgKGxldCBuYW1lIG9mIGF3YWl0IGxpc3RSZXBvRGlyKHJlcG8sIFVOUkVWT0tFU19ESVIpKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdW5yZXZva2VJZCA9IG5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIlwiKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRSZXBvRmlsZShyZXBvLCBwYXRoLmpvaW4oVU5SRVZPS0VTX0RJUiwgbmFtZSkpIHx8IFwiXCIpO1xuICAgICAgICAgICAgZm9yIChsZXQgYWxsb3dlZCBvZiBwYXJzZWQuYWxsb3dlZCB8fCBbXSkge1xuICAgICAgICAgICAgICAgIC8vIEVpdGhlciBraW5kIG9mIGlkZW50aXR5OiBhbiBzc2gga2V5IG5hbWVzIGEgZmluZ2VycHJpbnQsIGEgbWFjaGluZSBhIG1hY2hpbmVJZC5cbiAgICAgICAgICAgICAgICBsZXQgaWRlbnRpdHkgPSBhbGxvd2VkLmZpbmdlcnByaW50IHx8IGFsbG93ZWQubWFjaGluZUlkO1xuICAgICAgICAgICAgICAgIGlmIChpZGVudGl0eSAmJiBhbGxvd2VkLmlwKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZChwYWlycywgcGFpcktleSh7IGZpbmdlcnByaW50OiBpZGVudGl0eSwgaXA6IGFsbG93ZWQuaXAgfSksIHVucmV2b2tlSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IHJldm9jYXRpb25JZCBvZiBwYXJzZWQucmV2b2NhdGlvbklkcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgIGFkZChsZWdhY3lJZHMsIHJldm9jYXRpb25JZCwgdW5yZXZva2VJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB1bnJlYWRhYmxlIHVucmV2b2tlICR7bmFtZX0uICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBwYWlycywgbGVnYWN5SWRzIH07XG59XG5cbi8qKiBFdmVyeSB1bnJldm9rZSBjb3ZlcmluZyBvbmUgcmV2b2NhdGlvbjogYnkgdGhlIHBhaXIgaXQgaXMgYWJvdXQsIGFuZCBieSBpdHMgaWQgZm9yIHRoZSBmaWxlc1xuICAgIHdyaXR0ZW4gYmVmb3JlIHBhaXJzIGV4aXN0ZWQuICovXG5leHBvcnQgZnVuY3Rpb24gdW5yZXZva2VzRm9yKHVucmV2b2tlczogVW5yZXZva2VzLCByZXZvY2F0aW9uOiB7IHJldm9jYXRpb25JZDogc3RyaW5nOyBmaW5nZXJwcmludDogc3RyaW5nOyBpcDogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICAuLi51bnJldm9rZXMucGFpcnMuZ2V0KHBhaXJLZXkocmV2b2NhdGlvbikpIHx8IFtdLFxuICAgICAgICAuLi51bnJldm9rZXMubGVnYWN5SWRzLmdldChyZXZvY2F0aW9uLnJldm9jYXRpb25JZCkgfHwgW10sXG4gICAgXTtcbn1cblxuLyoqIFdyaXRlcyBhIHJldm9jYXRpb24sIHVubGVzcyB0aGlzIGtleSBpcyBhbHJlYWR5IHJldm9rZWQgZm9yIHRoaXMgYWRkcmVzcy4gQ2hlY2tlZCB0d2ljZTpcbiAgICBhZ2FpbnN0IHdoYXQgdGhpcyBtYWNoaW5lIGFscmVhZHkga25vd3MsIHdoaWNoIG5lZWRzIG5vIG5ldHdvcmssIGFuZCBhZ2FpbiBhZ2FpbnN0IHRoZSByZXBvXG4gICAgYWZ0ZXIgcHVsbGluZyBpdCwgc28gYSBmbG9vZCBvZiB1bmtub3duIGtleXMgY2Fubm90IHR1cm4gaW50byBhIGZsb29kIG9mIGNvbW1pdHMuXG5cbiAgICBEZWR1cGxpY2F0aW9uIGlzIG9uIHRoZSBwYWlyLiBUaGUgc2FtZSBrZXkgZnJvbSBhIHNlY29uZCBhZGRyZXNzIGlzIGEgc2Vjb25kIGV2ZW50IGFuZCBnZXRzIGl0c1xuICAgIG93biByZXZvY2F0aW9uLCBiZWNhdXNlIGFuIHVucmV2b2tlIG9ubHkgZXZlciBmb3JnaXZlcyB0aGUgcGFpciBpdCBuYW1lcy4gKi9cbmV4cG9ydCBjb25zdCByZWNvcmRSZXZvY2F0aW9uID0gcnVuSW5TZXJpYWwoYXN5bmMgKGNvbmZpZzoge1xuICAgIHNvdXJjZVVSTDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAga2V5TGluZTogc3RyaW5nO1xuICAgIGF0dGVtcHQ6IEF0dGVtcHQ7XG4gICAgaG9zdExhYmVsOiBzdHJpbmc7XG59KSA9PiB7XG4gICAgbGV0IHsgc291cmNlVVJMLCBmaW5nZXJwcmludCwga2V5TGluZSwgYXR0ZW1wdCwgaG9zdExhYmVsIH0gPSBjb25maWc7XG4gICAgbGV0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICBsZXQgcGFpciA9IHBhaXJLZXkoeyBmaW5nZXJwcmludCwgaXA6IGF0dGVtcHQuaXAgfSk7XG4gICAgaWYgKE9iamVjdC52YWx1ZXMoc3RhdGUucmV2b2NhdGlvbnMpLnNvbWUoZW50cnkgPT4gcGFpcktleShlbnRyeSkgPT09IHBhaXIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc3luY1JlcG9GaWxlcyhyZXZva2VSZXBvKHNvdXJjZVVSTCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IHJlY29yZCB0aGUgcmV2b2NhdGlvbiBvZiAke2ZpbmdlcnByaW50fSwgJHtyZXZva2VSZXBvVVJMKHNvdXJjZVVSTCl9IGNvdWxkIG5vdCBiZSByZWFkLiAke2V9YCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHJldm9jYXRpb25JZCA9IG5ld1Jldm9jYXRpb25JZChmaW5nZXJwcmludCk7XG4gICAgbGV0IGV4aXN0aW5nID0gKGF3YWl0IHJlYWRSZXZvY2F0aW9uRmlsZXMoc291cmNlVVJMKSkuZmluZChlbnRyeSA9PiBwYWlyS2V5KGVudHJ5KSA9PT0gcGFpcik7XG4gICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgIC8vIEFub3RoZXIgbWFjaGluZSBnb3QgdGhlcmUgZmlyc3QsIHdoaWNoIGlzIHRoZSBub3JtYWwgb3V0Y29tZSB3aGVuIHNldmVyYWwgc2VlIHRoZSBzYW1lXG4gICAgICAgIC8vIGF0dGVtcHQuIFJlY29yZCBpdCBsb2NhbGx5IHNvIHdlIG5ldmVyIGxvb2sgYWdhaW4uXG4gICAgICAgIHN0YXRlLnJldm9jYXRpb25zW2V4aXN0aW5nLnJldm9jYXRpb25JZF0gPSB7XG4gICAgICAgICAgICByZXZvY2F0aW9uSWQ6IGV4aXN0aW5nLnJldm9jYXRpb25JZCxcbiAgICAgICAgICAgIGZpbmdlcnByaW50OiBleGlzdGluZy5maW5nZXJwcmludCwgaXA6IGV4aXN0aW5nLmlwLFxuICAgICAgICAgICAgcmV2b2tlZEF0OiBleGlzdGluZy5yZXZva2VkQXQsIHJldm9rZWRCeTogZXhpc3RpbmcucmV2b2tlZEJ5LFxuICAgICAgICAgICAgcmVhc29uOiBleGlzdGluZy5yZWFzb24sXG4gICAgICAgICAgICB1bnJldm9rZUlkOiBcIlwiLCB1bnJldm9rZWQ6IGZhbHNlLFxuICAgICAgICAgICAgcmVwb3J0ZWRSZW1vdmVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgcmVwb1BhdGggPSByZXZva2VSZXBvUGF0aChzb3VyY2VVUkwpO1xuICAgIGxldCBrZXlQYXRoID0gYXdhaXQgZW5zdXJlUmV2b2tlS2V5KHNvdXJjZVVSTCk7XG4gICAgbGV0IGRpcmVjdG9yeSA9IHBhdGguam9pbihyZXBvUGF0aCwgUkVWT0NBVElPTlNfRElSKTtcbiAgICBhd2FpdCBmcy5ta2RpcihkaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGxldCByZXZva2VkQXQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihkaXJlY3RvcnksIGAke3Jldm9jYXRpb25JZH0uanNvbmApLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHJldm9jYXRpb25JZCxcbiAgICAgICAgZmluZ2VycHJpbnQsXG4gICAgICAgIC8vIFRoZSB0d28gaGFsdmVzIG9mIHdoYXQgaGFwcGVuZWQuIEFuIHVucmV2b2tlIG5hbWluZyBib3RoIGlzIHdoYXQgdW5kb2VzIHRoaXMuXG4gICAgICAgIGlwOiBhdHRlbXB0LmlwLFxuICAgICAgICBrZXk6IGtleUxpbmUsXG4gICAgICAgIHJldm9rZWRBdCxcbiAgICAgICAgcmV2b2tlZEJ5OiBob3N0TGFiZWwsXG4gICAgICAgIHJlYXNvbjogUkVWT0NBVElPTl9SRUFTT04sXG4gICAgICAgIGF0dGVtcHQsXG4gICAgfSwgdW5kZWZpbmVkLCA0KSArIFwiXFxuXCIpO1xuXG4gICAgYXdhaXQgcnVuR2l0KHsgYXJnczogW1wiYWRkXCIsIFwiLUFcIl0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGggfSk7XG4gICAgYXdhaXQgcnVuR2l0KHsgYXJnczogW1wiLWNcIiwgXCJ1c2VyLmVtYWlsPXBvcnRzZWN1cmVAbG9jYWxob3N0XCIsIFwiLWNcIiwgXCJ1c2VyLm5hbWU9cG9ydHNlY3VyZVwiLCBcImNvbW1pdFwiLCBcIi1tXCIsIGByZXZva2UgJHtyZXZvY2F0aW9uSWR9YF0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGggfSk7XG4gICAgbGV0IHB1c2ggPSBhd2FpdCBydW5HaXQoeyBhcmdzOiBbXCJwdXNoXCIsIFwib3JpZ2luXCIsIFwiSEVBRFwiXSwgY3dkOiByZXBvUGF0aCwga2V5UGF0aCwgYWxsb3dGYWlsdXJlOiB0cnVlIH0pO1xuICAgIGlmIChwdXNoLnN0YXR1cyAhPT0gMCkge1xuICAgICAgICAvLyBNb3N0IGxpa2VseSBhbm90aGVyIG1hY2hpbmUgcHVzaGVkIHRoZSBzYW1lIHJldm9jYXRpb24gZmlyc3QuIFRoZSBuZXh0IGNoZWNrIHdpbGwgcHVsbFxuICAgICAgICAvLyBpdCBhbmQgcmVjb3JkIGl0LCBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIHJldHJ5IGhlcmUuXG4gICAgICAgIGNvbnNvbGUubG9nKGBDb3VsZCBub3QgcHVzaCB0aGUgcmV2b2NhdGlvbiBvZiAke2ZpbmdlcnByaW50fSwgd2lsbCBwaWNrIGl0IHVwIG9uIHRoZSBuZXh0IGNoZWNrLiAkeyhwdXNoLnN0ZG91dCArIHB1c2guc3RkZXJyKS50cmltKCl9YCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3RhdGUucmV2b2NhdGlvbnNbcmV2b2NhdGlvbklkXSA9IHtcbiAgICAgICAgcmV2b2NhdGlvbklkLCBmaW5nZXJwcmludCwgaXA6IGF0dGVtcHQuaXAsXG4gICAgICAgIHJldm9rZWRBdCwgcmV2b2tlZEJ5OiBob3N0TGFiZWwsIHJlYXNvbjogUkVWT0NBVElPTl9SRUFTT04sXG4gICAgICAgIHVucmV2b2tlSWQ6IFwiXCIsIHVucmV2b2tlZDogZmFsc2UsXG4gICAgICAgIC8vIFRoZSBtZXNzYWdlIGJlbG93IGFscmVhZHkgc2F5cyB0aGlzIG1hY2hpbmUgaGFzIHN0b3BwZWQgYWNjZXB0aW5nIHRoZSBrZXksIHNvIHRoZSBvbmVcbiAgICAgICAgLy8gYWJvdXQgbm90aWNpbmcgYSByZXZvY2F0aW9uIHdvdWxkIG9ubHkgcmVwZWF0IGl0LlxuICAgICAgICByZXBvcnRlZFJlbW92ZWQ6IHRydWUsXG4gICAgfTtcbiAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICBsZXQgZW5kZWQgPSBkZXNjcmliZUFsbEVuZGVkKGF3YWl0IGVuZEFsbFNTSFNlc3Npb25zKCkpO1xuICAgIC8vIFNhaWQgd2hlbiB0aGUgZmlsZSBpcyB3cml0dGVuLCBub3QgaGVyZSwgc28gb25lIGV2ZW50IHByb2R1Y2VzIG9uZSBtZXNzYWdlLlxuICAgIGFkZExlYWRpbmdDaGFuZ2VSZWFzb24oe1xuICAgICAgICBoZWFkbGluZTogYFNVU1BJQ0lPVVMgSVAgJHthdHRlbXB0LmlwfSBGUk9aRSBLRVkgJHtrZXlMaW5lICYmIGtleU5pY2VOYW1lKGtleUxpbmUpIHx8IGZpbmdlcnByaW50fWAsXG4gICAgICAgIGJvZHk6XG4gICAgICAgICAgICBgU29tZW9uZSBsb2dnZWQgaW4gZnJvbSAke2F0dGVtcHQuaXB9IHVzaW5nIGEga2V5IHRoYXQgaXMgbm90IGFsbG93ZWQgZnJvbSB0aGVyZS4gVGhlYFxuICAgICAgICAgICAgKyBgIGtleSBpdHNlbGYgd2FzIGNvcnJlY3QsIHNvIGVpdGhlciBzb21lb25lIGVsc2UgaGFzIGEgY29weSBvZiBpdCwgb3Igb25lIG9mIHlvdXIgb3duYFxuICAgICAgICAgICAgKyBgIGFkZHJlc3NlcyBjaGFuZ2VkLmBcbiAgICAgICAgICAgICsgYFxcblxcblRoZSBrZXkgaXMgZnJvemVuIG9uIGV2ZXJ5IG1hY2hpbmUgbm93LCBhbmQgd29ya3Mgbm93aGVyZS4ke2VuZGVkfWBcbiAgICAgICAgICAgICsgYFxcblxcbklmIHRoaXMgd2FzIGFuIGF0dGFjaywgcmVtb3ZlIHRoYXQga2V5IGZyb20gXFxgJHtzb3VyY2VVUkx9XFxgIG5vdy5gXG4gICAgICAgICAgICArIGBcXG5JZiBpdCB3YXMgeW91LCBydW46YFxuICAgICAgICAgICAgKyBgXFxuXFxgXFxgXFxgXFxuY2QgJHtzb3VyY2VSZXBvUGF0aChzb3VyY2VVUkwpfVxcbnlhcm4gdW5yZXZva2UgZ2l0XFxuXFxgXFxgXFxgYFxuICAgICAgICAgICAgKyBgXFxuSXQgYWxsb3dzICR7YXR0ZW1wdC5pcH0gb24gdGhhdCBrZXksIGFuZCB0YWtlcyBhbiBob3VyIHRvIHJlYWNoIGV2ZXJ5IG1hY2hpbmUuYFxuICAgICAgICAgICAgKyBgXFxuXFxua2V5OiBcXGAke2tleUxpbmUgJiYgc3VtbWFyaXplS2V5KGtleUxpbmUpIHx8IGZpbmdlcnByaW50fVxcYGBcbiAgICAgICAgICAgICsgYFxcbnRyaWVkIHRvIGxvZyBpbiBhczogXFxgJHthdHRlbXB0LnVzZXJ9XFxgYFxuICAgICAgICAgICAgKyBgXFxuYWxsb3dlZCBvbmx5IGZyb206IFxcYCR7YXR0ZW1wdC5yZXF1aXJlZH1cXGBgLFxuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xufSk7XG5cbi8qKiBUYWtlcyBldmVyeXRoaW5nIHRoZSByZXZva2UgcmVwb3MgbGlzdCBpbnRvIGxvY2FsIHN0YXRlLiBPbmNlIGhlcmUgYSByZXZvY2F0aW9uIG5ldmVyIGxlYXZlcyxcbiAgICBldmVuIGlmIHRoZSBmaWxlIGlzIGRlbGV0ZWQ6IHRoZSBrZXkgdGhhdCB3cml0ZXMgcmV2b2NhdGlvbnMgaXMgb24gZXZlcnkgc2VydmVyLCBzbyBhbiBhdHRhY2tlclxuICAgIGhvbGRpbmcgaXQgY291bGQgb3RoZXJ3aXNlIGVyYXNlIHRoZSByZWNvcmQgdGhhdCBsb2NrZWQgdGhlbSBvdXQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWJzb3JiUmV2b2NhdGlvbnMoc291cmNlVVJMczogc3RyaW5nW10pIHtcbiAgICBsZXQgc3RhdGUgPSBnZXRTdGF0ZSgpO1xuICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgZm9yIChsZXQgc291cmNlVVJMIG9mIHNvdXJjZVVSTHMpIHtcbiAgICAgICAgbGV0IGVudHJpZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBlbnRyaWVzID0gYXdhaXQgcmVhZFJldm9jYXRpb25GaWxlcyhzb3VyY2VVUkwpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBVbnJlYWRhYmxlIGlzIG5vdCBlbXB0eS4gV2hhdGV2ZXIgd2UgYWxyZWFkeSBrbmV3IHN0YXlzIGV4YWN0bHkgYXMgaXQgaXMuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBTa2lwcGluZyB0aGUgcmV2b2NhdGlvbnMgb2YgJHtyZXZva2VSZXBvVVJMKHNvdXJjZVVSTCl9LCB0aGV5IGNvdWxkIG5vdCBiZSByZWFkLiAke2V9YCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGUucmV2b2NhdGlvbnNbZW50cnkucmV2b2NhdGlvbklkXSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhdGUucmV2b2NhdGlvbnNbZW50cnkucmV2b2NhdGlvbklkXSA9IHtcbiAgICAgICAgICAgICAgICByZXZvY2F0aW9uSWQ6IGVudHJ5LnJldm9jYXRpb25JZCxcbiAgICAgICAgICAgICAgICBmaW5nZXJwcmludDogZW50cnkuZmluZ2VycHJpbnQsXG4gICAgICAgICAgICAgICAgaXA6IGVudHJ5LmlwLFxuICAgICAgICAgICAgICAgIHJldm9rZWRBdDogZW50cnkucmV2b2tlZEF0LFxuICAgICAgICAgICAgICAgIHJldm9rZWRCeTogZW50cnkucmV2b2tlZEJ5LFxuICAgICAgICAgICAgICAgIHJlYXNvbjogZW50cnkucmVhc29uLFxuICAgICAgICAgICAgICAgIHVucmV2b2tlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdW5yZXZva2VkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXBvcnRlZFJlbW92ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHNhdmVTdGF0ZSgpO1xuICAgIH1cbn1cblxuLyoqIEFuIHVucmV2b2tlIGNvdW50cyB0aGUgbW9tZW50IGl0IGlzIHNlZW4uXG5cbiAgICBUaGVyZSB1c2VkIHRvIGJlIGFuIGhvdXIncyB3YWl0IGJlZm9yZSBob25vdXJpbmcgb25lLCBhZ2FpbnN0IGEgc2lnbmluZyBrZXkgdGhhdCBoYWQgaXRzZWxmXG4gICAgYmVlbiBzdG9sZW4uIEl0IHdhcyBuZXZlciB3b3J0aCBpdDogYW4gdW5yZXZva2UgaGFzIHRvIGJlIHNpZ25lZCwgc28gd3JpdGluZyBvbmUgYWxyZWFkeSB0YWtlc1xuICAgIHRoZSBoYXJkd2FyZSBrZXksIGFuZCBhbnlvbmUgaG9sZGluZyB0aGF0IGNhbiBzaWduIGEgbmV3IGF1dGhvcml6ZWRfa2V5cyBuYW1pbmcgd2hhdGV2ZXIgdGhleVxuICAgIGxpa2UgLSB0aGV5IGhhdmUgbm8gcmVhc29uIHRvIGdvIG5lYXIgYW4gdW5yZXZva2UuIE1lYW53aGlsZSB0aGUgd2FpdCBjb3N0IHJlYWwgYWNjZXNzLCBhbmQgYVxuICAgIG1hY2hpbmUgZGVwbG95ZWQgYWZ0ZXIgYW4gaW5jaWRlbnQgd291bGQgZnJlZXplIGtleXMgaXQgaGFkIG5ldmVyIGhhZCBhIHByb2JsZW0gd2l0aCwgZm9yIGFuXG4gICAgaG91ciwgYmVjYXVzZSBpdCB3YXMgc2VlaW5nIHRoZSB1bnJldm9rZSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cbiAgICBXaGF0IHN0aWxsIHByb3RlY3RzIGEgc3RvbGVuIHNpZ25pbmcga2V5IGlzIHRoZSAyNCBob3VycyBiZWZvcmUgYSBORVcgc2lnbmVyIGlzIGFjY2VwdGVkLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5VW5yZXZva2VzKHNvdXJjZVVSTHM6IHN0cmluZ1tdKSB7XG4gICAgbGV0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICBsZXQgdW5yZXZva2VzOiBVbnJldm9rZXMgPSB7IHBhaXJzOiBuZXcgTWFwKCksIGxlZ2FjeUlkczogbmV3IE1hcCgpIH07XG4gICAgZm9yIChsZXQgc291cmNlVVJMIG9mIHNvdXJjZVVSTHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBzb3VyY2UgPSBhd2FpdCByZWFkVW5yZXZva2VzKHNvdXJjZVVSTCk7XG4gICAgICAgICAgICBmb3IgKGxldCBbcGFpciwgaWRzXSBvZiBzb3VyY2UucGFpcnMpIHtcbiAgICAgICAgICAgICAgICB1bnJldm9rZXMucGFpcnMuc2V0KHBhaXIsIFsuLi4odW5yZXZva2VzLnBhaXJzLmdldChwYWlyKSB8fCBbXSksIC4uLmlkc10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgW3Jldm9jYXRpb25JZCwgaWRzXSBvZiBzb3VyY2UubGVnYWN5SWRzKSB7XG4gICAgICAgICAgICAgICAgdW5yZXZva2VzLmxlZ2FjeUlkcy5zZXQocmV2b2NhdGlvbklkLCBbLi4uKHVucmV2b2tlcy5sZWdhY3lJZHMuZ2V0KHJldm9jYXRpb25JZCkgfHwgW10pLCAuLi5pZHNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gVW5yZWFkYWJsZSBpcyBub3QgXCJ0aGVyZSBhcmUgbm8gdW5yZXZva2VzXCIuIFRoZSByZXZvY2F0aW9ucyBzaW1wbHkgc3RhbmQuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBTa2lwcGluZyB0aGUgdW5yZXZva2VzIG9mICR7c291cmNlVVJMfSwgdGhleSBjb3VsZCBub3QgYmUgcmVhZC4gJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAobGV0IHJldm9jYXRpb24gb2YgT2JqZWN0LnZhbHVlcyhzdGF0ZS5yZXZvY2F0aW9ucykpIHtcbiAgICAgICAgaWYgKHJldm9jYXRpb24udW5yZXZva2VkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY292ZXJpbmcgPSB1bnJldm9rZXNGb3IodW5yZXZva2VzLCByZXZvY2F0aW9uKTtcbiAgICAgICAgaWYgKCFjb3ZlcmluZy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1bnJldm9rZUlkID0gY292ZXJpbmdbMF07XG4gICAgICAgIHJldm9jYXRpb24udW5yZXZva2VJZCA9IHVucmV2b2tlSWQ7XG4gICAgICAgIHJldm9jYXRpb24udW5yZXZva2VkID0gdHJ1ZTtcbiAgICAgICAgcmV2b2NhdGlvbi5yZXBvcnRlZFJlbW92ZWQgPSBmYWxzZTtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgICAgIC8vIE9ubHkgbWVhbnMgYW55dGhpbmcgaWYgdGhlIGtleSBjb21lcyBiYWNrIGludG8gdGhlIGZpbGUsIHNvIGl0IGlzIHNhaWQgdGhlcmUuXG4gICAgICAgIGFkZENoYW5nZVJlYXNvbihcbiAgICAgICAgICAgIGBVbmZyb3plIGEga2V5IGZvciBcXGAke3Jldm9jYXRpb24uaXB9XFxgLiBJdCB3YXMgZnJvemVuIGZvciBiZWluZyB1c2VkIGZyb20gdGhlcmUsIGFuZGBcbiAgICAgICAgICAgICsgYCAke3VucmV2b2tlSWR9IHNheXMgdGhhdCBhZGRyZXNzIGlzIGFsbG93ZWQgYWZ0ZXIgYWxsLmBcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8qKiBSZXBvcnRzIGVhY2ggcmV2b2NhdGlvbiB0aGUgZmlyc3QgdGltZSBpdCBhY3R1YWxseSB0YWtlcyBhIGtleSBvdXQgb2YgdGhpcyBtYWNoaW5lJ3MgZmlsZS4gVGhlXG4gICAgZHJvcHBpbmcgaXRzZWxmIGhhcHBlbnMgaW4gcmVhZFNpZ25lZFJlcG8sIHdoaWNoIHN0cmlwcyByZXZva2VkIGtleXMgYmVmb3JlIGFueXRoaW5nIHJlYWRzIHRoZW1cbiAgICAtIHRoaXMgb25seSBzYXlzIHNvLCBhbmQga2lsbHMgd2hhdGV2ZXIgc2Vzc2lvbnMgdGhlIGtleSB3YXMgaG9sZGluZyBvcGVuLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcG9ydFJldm9rZWRLZXlzKCkge1xuICAgIGxldCBzdGF0ZSA9IGdldFN0YXRlKCk7XG4gICAgZm9yIChsZXQgcmV2b2NhdGlvbiBvZiBPYmplY3QudmFsdWVzKHN0YXRlLnJldm9jYXRpb25zKSkge1xuICAgICAgICBpZiAocmV2b2NhdGlvbi51bnJldm9rZWQgfHwgcmV2b2NhdGlvbi5yZXBvcnRlZFJlbW92ZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldm9jYXRpb24ucmVwb3J0ZWRSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgICAgIC8vIE5vdGhpbmcgdG8gZG8gaWYgdGhlIGtleSBpcyBub3QgaW4gdGhlIGZpbGUuIEl0IGxlZnQgbG9uZyBhZ28sIGFuZCB0aGlzIGlzIGEgbWFjaGluZSB0aGF0XG4gICAgICAgIC8vIHJlc3RhcnRlZCBhbmQgcmVhZCB0aGUgcmV2b2NhdGlvbiBiYWNrIG91dCBvZiB0aGUgcmVwby5cbiAgICAgICAgbGV0IGtleSA9IHN0YXRlLmFwcGxpZWRLZXlzLmZpbmQoYXBwbGllZCA9PiBrZXlGaW5nZXJwcmludChhcHBsaWVkKSA9PT0gcmV2b2NhdGlvbi5maW5nZXJwcmludCk7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGF0ZXZlciB0aGF0IGtleSBpcyBob2xkaW5nIG9wZW4gZ29lcyB3aXRoIGl0LlxuICAgICAgICBsZXQgZW5kZWQgPSBkZXNjcmliZUFsbEVuZGVkKGF3YWl0IGVuZEFsbFNTSFNlc3Npb25zKCkpO1xuICAgICAgICBhZGRMZWFkaW5nQ2hhbmdlUmVhc29uKHtcbiAgICAgICAgICAgIGhlYWRsaW5lOiBgU1VTUElDSU9VUyBJUCAke3Jldm9jYXRpb24uaXAgfHwgXCJ1bmtub3duXCJ9IEZST1pFIEtFWSAke2tleU5pY2VOYW1lKGtleSl9YCxcbiAgICAgICAgICAgIGJvZHk6XG4gICAgICAgICAgICAgICAgYEFub3RoZXIgbWFjaGluZSBzYXcgdGhpcyBrZXkgdXNlZCBmcm9tIGFuIGFkZHJlc3MgaXQgaXMgbm90IGFsbG93ZWQgZnJvbSwgYW5kYFxuICAgICAgICAgICAgICAgICsgYCBmcm96ZSBpdCBldmVyeXdoZXJlLiBUaGlzIG1hY2hpbmUgaGFzIHN0b3BwZWQgYWNjZXB0aW5nIGl0IHRvby4ke2VuZGVkfWBcbiAgICAgICAgICAgICAgICArIGBcXG5cXG5rZXk6IFxcYCR7c3VtbWFyaXplS2V5KGtleSl9XFxgYFxuICAgICAgICAgICAgICAgICsgYFxcbiR7ZGVzY3JpYmVSZXZvY2F0aW9uKHJldm9jYXRpb24pfWAsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
323
|
+
/* _JS_SOURCE_HASH = "637b5a7e317a8b3908cd9dfac138c2eb1ebdf8bde38f5051c3fc72a5d91f9f44"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -144,4 +144,4 @@ function describeEndedSessions(ended) {
|
|
|
144
144
|
}
|
|
145
145
|
exports.describeEndedSessions = describeEndedSessions;
|
|
146
146
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsK0NBQW1EO0FBQ25ELG1DQUF3QztBQUV4QyxtR0FBbUc7QUFDbkcsNkZBQTZGO0FBQzdGLHVDQUF1QztBQUN2QyxFQUFFO0FBQ0YsbUdBQW1HO0FBQ25HLDZFQUE2RTtBQUM3RSxNQUFNLFFBQVEsR0FBRyx5SEFBeUgsQ0FBQztBQUkzSSxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO0lBQ3ZFLElBQUksUUFBUSxHQUFpQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxTQUFTO1FBQ2IsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQVZELHNEQVVDO0FBRUQ7aUZBQ2lGO0FBQ2pGLEtBQUssVUFBVSxZQUFZLENBQUMsU0FBaUI7SUFDekMsSUFBSSxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsTUFBTSxrQkFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFNBQVMsT0FB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SyxDQUFDLE1BQU0sb0JBQW9CLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBckJELDhDQXFCQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWU7SUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLHlCQUF5QixDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLHdEQUF3RCxLQUFLLENBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0YsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsS0FBbUI7SUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLGlDQUFpQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0seUNBQXlDO1VBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2pHLENBQUM7QUFORCxzREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNwYXduUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3NwYXduXCI7XG5pbXBvcnQgeyBBVVRIX0xPR19QQVRIIH0gZnJvbSBcIi4vcGF0aHNcIjtcblxuLy8gVGFraW5nIGEga2V5IG91dCBvZiBhdXRob3JpemVkX2tleXMgb25seSBzdG9wcyB0aGUgbmV4dCBsb2dpbi4gV2hvZXZlciBpcyBhbHJlYWR5IGNvbm5lY3RlZCB3aXRoXG4vLyBpdCBzdGF5cyBjb25uZWN0ZWQgZm9yIGFzIGxvbmcgYXMgdGhleSBsaWtlLCB3aGljaCB3b3VsZCBtYWtlIHJldm9raW5nIGEga2V5IHRoYXQgaXMgYmVpbmdcbi8vIGFjdGl2ZWx5IG1pc3VzZWQgY2xvc2UgdG8gcG9pbnRsZXNzLlxuLy9cbi8vIHNzaGQgbmFtZXMgdGhlIGtleSBpdCBhY2NlcHRlZCBhbmQgdGhlIHByb2Nlc3MgaGFuZGxpbmcgdGhhdCBjb25uZWN0aW9uIG9uIHRoZSBzYW1lIGxpbmUsIHNvIHRoZVxuLy8gc2Vzc2lvbnMgYmVsb25naW5nIHRvIG9uZSBrZXkgY2FuIGJlIGVuZGVkIHdpdGhvdXQgdG91Y2hpbmcgYW55b25lIGVsc2Uncy5cbmNvbnN0IEFDQ0VQVEVEID0gLyg/OnNzaGR8c3NoZC1zZXNzaW9uKVxcWyhcXGQrKVxcXTpcXHMrQWNjZXB0ZWQgcHVibGlja2V5IGZvciAoXFxTKykgZnJvbSAoXFxTKykgcG9ydCAoXFxkKykgc3NoMjogXFxTKyAoU0hBMjU2OltBLVphLXowLTkrLz1dKykvO1xuXG5leHBvcnQgdHlwZSBLZXlTZXNzaW9uID0geyBwcm9jZXNzSWQ6IG51bWJlcjsgdXNlcjogc3RyaW5nOyBpcDogc3RyaW5nOyBwb3J0OiBzdHJpbmcgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhjb250ZW50czogc3RyaW5nLCBmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IHNlc3Npb25zOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBsaW5lIG9mIGNvbnRlbnRzLnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IGxpbmUubWF0Y2goQUNDRVBURUQpO1xuICAgICAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzVdICE9PSBmaW5nZXJwcmludCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vzc2lvbnMucHVzaCh7IHByb2Nlc3NJZDogTnVtYmVyKG1hdGNoWzFdKSwgdXNlcjogbWF0Y2hbMl0sIGlwOiBtYXRjaFszXSwgcG9ydDogbWF0Y2hbNF0gfSk7XG4gICAgfVxuICAgIHJldHVybiBzZXNzaW9ucztcbn1cblxuLyoqIFByb2Nlc3MgaWRzIGFyZSByZXVzZWQsIHNvIG9uZSBpcyBvbmx5IGtpbGxlZCB3aGVuIGl0IGlzIHN0aWxsIGFuIHNzaCBzZXNzaW9uLiBLaWxsaW5nIHdoYXRldmVyXG4gICAgaGFwcGVucyB0byBob2xkIHRoYXQgbnVtYmVyIG5vdyB3b3VsZCBiZSBmYXIgd29yc2UgdGhhbiBtaXNzaW5nIGEgc2Vzc2lvbi4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU1NIU2Vzc2lvbihwcm9jZXNzSWQ6IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBuYW1lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jb21tYCwgXCJ1dGY4XCIpO1xuICAgICAgICByZXR1cm4gbmFtZS50cmltKCkuc3RhcnRzV2l0aChcInNzaGRcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKiogVGhlIHdob2xlIGxvZywgbm90IG9ubHkgd2hhdCBpcyBuZXcsIGJlY2F1c2UgdGhlIHNlc3Npb24gYmVpbmcgZW5kZWQgbWF5IGhhdmUgYmVlbiBlc3RhYmxpc2hlZFxuICAgIGxvbmcgYmVmb3JlIHRoZSBrZXkgd2FzIG1pc3VzZWQuICovXG5hc3luYyBmdW5jdGlvbiByZWFkV2hvbGVBdXRoTG9nKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShBVVRIX0xPR19QQVRILCBcInV0ZjhcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiam91cm5hbGN0bFwiLFxuICAgICAgICAgICAgYXJnczogW1wiLXVcIiwgXCJzc2hcIiwgXCItdVwiLCBcInNzaGRcIiwgXCItLW5vLXBhZ2VyXCIsIFwiLS1zaW5jZVwiLCBcIi0zMGRheXNcIl0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0LnN0YXR1cyA9PT0gMCAmJiByZXN1bHQuc3Rkb3V0IHx8IFwiXCI7XG4gICAgfVxufVxuXG4vKiogRW5kcyBldmVyeSBsaXZlIHNlc3Npb24gdGhhdCBhdXRoZW50aWNhdGVkIHdpdGggdGhpcyBrZXkuIFJldHVybnMgd2hhdCB3YXMgZW5kZWQsIHNvIHRoZVxuICAgIHJldm9jYXRpb24gY2FuIHNheSBzbyByYXRoZXIgdGhhbiBsZWF2aW5nIGl0IHRvIGJlIGRpc2NvdmVyZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5kU2Vzc2lvbnNVc2luZ0tleShmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IGVuZGVkOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBzZXNzaW9uIG9mIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhhd2FpdCByZWFkV2hvbGVBdXRoTG9nKCksIGZpbmdlcnByaW50KSkge1xuICAgICAgICBpZiAoc2Vzc2lvbi5wcm9jZXNzSWQgPD0gMSB8fCBzZXNzaW9uLnByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNTU0hTZXNzaW9uKHNlc3Npb24ucHJvY2Vzc0lkKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2Nlc3Mua2lsbChzZXNzaW9uLnByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChzZXNzaW9uKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBFbmRlZCBzc2ggc2Vzc2lvbiAke3Nlc3Npb24ucHJvY2Vzc0lkfSAoJHtzZXNzaW9uLnVzZXJ9IGZyb20gJHtzZXNzaW9uLmlwfSksIGl0IHVzZWQgJHtmaW5nZXJwcmludH1gKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gR29uZSBiZXR3ZWVuIGxvb2tpbmcgYW5kIGtpbGxpbmcsIHdoaWNoIGlzIHRoZSBvdXRjb21lIHdlIHdhbnRlZCBhbnl3YXkuXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG4vKiogV2hldGhlciB0aGlzIHByb2Nlc3MgaXMgb25lIGNvbm5lY3Rpb24uIFRoZSBsaXN0ZW5lciBpcyBub3QgYSBjb25uZWN0aW9uIC0gaXQgaXMgdGhlIHByb2Nlc3NcbiAgICB0aGF0IGFjY2VwdHMgdGhlbSAtIHNvIGl0IGlzIG5vdCBhIGNhbmRpZGF0ZSBoZXJlIGF0IGFsbC5cblxuICAgIEV2ZXJ5IG9wZW5zc2ggc2luY2UgOS44IHJ1bnMgZWFjaCBjb25uZWN0aW9uIGFzIGl0cyBvd24gc3NoZC1zZXNzaW9uLiBPbiBvbGRlciBvbmVzIGNvbm5lY3Rpb25zXG4gICAgYXJlIG5hbWVkIHNzaGQgdG9vLCBhbmQgdGhlIGxpc3RlbmVyIGlzIHRoZSBvbmUgc3lzdGVtZCBzdGFydGVkIGRpcmVjdGx5IHdpdGggLUQuICovXG5hc3luYyBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Qcm9jZXNzKHByb2Nlc3NJZDogbnVtYmVyKSB7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBuYW1lID0gKGF3YWl0IGZzLnJlYWRGaWxlKGAvcHJvYy8ke3Byb2Nlc3NJZH0vY29tbWAsIFwidXRmOFwiKSkudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmFtZSA9PT0gXCJzc2hkLXNlc3Npb25cIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5hbWUgIT09IFwic3NoZFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IGNvbW1hbmRMaW5lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jbWRsaW5lYCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgIGxldCBwYXJlbnRJZCA9IE51bWJlcigoYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9zdGF0YCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpKS5zcGxpdChcIikgXCIpWzFdPy5zcGxpdChcIiBcIilbMV0gfHwgMCk7XG4gICAgcmV0dXJuICFjb21tYW5kTGluZS5pbmNsdWRlcyhcIi1EXCIpICYmIHBhcmVudElkICE9PSAxO1xufVxuXG4vKiogRGlzY29ubmVjdHMgZXZlcnkgc3NoIHNlc3Npb24gb24gdGhlIG1hY2hpbmUuXG5cbiAgICBOb3Qgb25seSB0aGUgb25lcyB1c2luZyB0aGUga2V5IHRoYXQgd2FzIGp1c3QgdGFrZW4gYXdheTogYSBzZXNzaW9uIHRoYXQgcHJlZGF0ZXMgdGhlIGtleSBiZWluZ1xuICAgIHJlbW92ZWQgaXMgZXhhY3RseSBhcyBkYW5nZXJvdXMsIGFuZCB3b3JraW5nIG91dCB3aGljaCBzZXNzaW9ucyBhcmUgc3RpbGwgZW50aXRsZWQgdG8gYmUgaGVyZVxuICAgIGlzIGd1ZXNzd29yay4gQW55b25lIHdobyBzdGlsbCBoYXMgYWNjZXNzIGNhbiByZWNvbm5lY3QgaW4gYSBzZWNvbmQsIGFuZCBhbnlvbmUgd2hvIGRvZXMgbm90XG4gICAgc2hvdWxkIG5vdCBiZSBoZXJlLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuZEFsbFNTSFNlc3Npb25zKCkge1xuICAgIGxldCBlbmRlZDogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBlbnRyeSBvZiBhd2FpdCBmcy5yZWFkZGlyKFwiL3Byb2NcIikpIHtcbiAgICAgICAgbGV0IHByb2Nlc3NJZCA9IE51bWJlcihlbnRyeSk7XG4gICAgICAgIGlmICghcHJvY2Vzc0lkIHx8IHByb2Nlc3NJZCA8PSAxIHx8IHByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNDb25uZWN0aW9uUHJvY2Vzcyhwcm9jZXNzSWQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChwcm9jZXNzSWQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBHb25lIGJldHdlZW4gbG9va2luZyBhbmQga2lsbGluZywgd2hpY2ggaXMgdGhlIG91dGNvbWUgd2Ugd2FudGVkIGFueXdheS5cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kZWQubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEaXNjb25uZWN0ZWQgJHtlbmRlZC5sZW5ndGh9IHNzaCBzZXNzaW9uKHMpOiAke2VuZGVkLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVBbGxFbmRlZChlbmRlZDogbnVtYmVyW10pIHtcbiAgICBpZiAoIWVuZGVkLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gXCIgTm90aGluZyB3YXMgY29ubmVjdGVkLlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCBFdmVyeSBzc2ggc2Vzc2lvbiBvbiB0aGlzIG1hY2hpbmUgd2FzIGRpc2Nvbm5lY3RlZCwgJHtlbmRlZC5sZW5ndGh9IG9mIHRoZW0uYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRW5kZWRTZXNzaW9ucyhlbmRlZDogS2V5U2Vzc2lvbltdKSB7XG4gICAgaWYgKCFlbmRlZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFwiIE5vdGhpbmcgd2FzIGNvbm5lY3RlZCB3aXRoIGl0LlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCAke2VuZGVkLmxlbmd0aH0gbGl2ZSBzZXNzaW9uKHMpIHVzaW5nIGl0IHdlcmUga2lsbGVkOiBgXG4gICAgICAgICsgZW5kZWQubWFwKHNlc3Npb24gPT4gYCR7c2Vzc2lvbi51c2VyfUAke3Nlc3Npb24uaXB9OiR7c2Vzc2lvbi5wb3J0fWApLmpvaW4oXCIsIFwiKSArIFwiLlwiO1xufVxuIl19
|
|
147
|
-
/* _JS_SOURCE_HASH = "
|
|
147
|
+
/* _JS_SOURCE_HASH = "cf2ea8f23e7beb7a09486c083165a234b4ab5ff28fd30dc6d6a9f582ff201eaf"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -73,4 +73,4 @@ async function saveState() {
|
|
|
73
73
|
}
|
|
74
74
|
exports.saveState = saveState;
|
|
75
75
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsZ0RBQXdCO0FBQ3hCLG1DQUFxQztBQXVFckMsSUFBSSxLQUFLLEdBQWdCO0lBQ3JCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsYUFBYSxFQUFFLEVBQUU7SUFDakIsV0FBVyxFQUFFLEVBQUU7SUFDZixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsYUFBYSxFQUFFLENBQUM7SUFDaEIsZ0JBQWdCLEVBQUUsRUFBRTtDQUN2QixDQUFDO0FBRUYsU0FBZ0IsUUFBUTtJQUNwQixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRkQsNEJBRUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDdkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksT0FBTyxHQUFnQjtRQUN2QixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEtBQUs7UUFDZixjQUFjLEVBQUUsRUFBRTtRQUNsQixZQUFZLEVBQUUsRUFBRTtRQUNoQixvQkFBb0IsRUFBRSxFQUFFO1FBQ3hCLHFCQUFxQixFQUFFLEVBQUU7UUFDekIsYUFBYSxFQUFFLEVBQUU7UUFDakIsWUFBWSxFQUFFLENBQUM7UUFDZixlQUFlLEVBQUUsRUFBRTtLQUN0QixDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDakMsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQW5CRCxrQ0FtQkM7QUFFTSxLQUFLLFVBQVUsU0FBUztJQUMzQixJQUFJLFFBQVEsQ0FBQztJQUNiLElBQUksQ0FBQztRQUNELFFBQVEsR0FBRyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxPQUFPO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsd0ZBQXdGO1FBQ3hGLDBEQUEwRDtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDMUIsd0ZBQXdGO1FBQ3hGLDZFQUE2RTtRQUM3RSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCwyRkFBMkY7UUFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0Msa0JBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDTCxDQUFDO0FBcEJELDhCQW9CQztBQUVNLEtBQUssVUFBVSxTQUFTO0lBQzNCLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDMUMsTUFBTSxrQkFBRSxDQUFDLEtBQUssQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsa0JBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU1RBVEVfUEFUSCB9IGZyb20gXCIuL3BhdGhzXCI7XG5cbi8qKiBXaGF0IHdlIGxhc3QgZGVjaWRlZCB0byB0cnVzdCBmb3Igb25lIHNvdXJjZSwga2VwdCBvbiBkaXNrIHNvIG5vYm9keSBjYW4gdGVsbCB1cyBhIGRpZmZlcmVudFxuICAgIHN0b3J5IGFib3V0IHdoYXQgd2Ugc2F3IGxhc3QgdGltZS4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVN0YXRlID0ge1xuICAgIGxhc3RTaGE6IHN0cmluZztcbiAgICBicmFuY2g6IHN0cmluZztcbiAgICBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBhY2NlcHRlZFNpZ25lcjogc3RyaW5nO1xuICAgIGFjY2VwdGVkS2V5czogc3RyaW5nW107XG4gICAgYWNjZXB0ZWRNYW5pZmVzdEhhc2g6IHN0cmluZztcbiAgICBhY2NlcHRlZFNpZ25hdHVyZUhhc2g6IHN0cmluZztcbiAgICBwZW5kaW5nU2lnbmVyOiBzdHJpbmc7XG4gICAgcGVuZGluZ1NpbmNlOiBudW1iZXI7XG4gICAgcmVwb3J0ZWRQcm9ibGVtOiBzdHJpbmc7XG59O1xuXG4vKiogT25lIHJldm9jYXRpb24gZXZlbnQ6IHRoaXMga2V5LCB1c2VkIGZyb20gdGhpcyBhZGRyZXNzLCBzbyBpdCBpcyBubyBsb25nZXIgYWNjZXB0ZWQuIEtlcHQgZXZlblxuICAgIHdoZW4gdGhlIHJldm9rZSByZXBvIG5vIGxvbmdlciBsaXN0cyBpdDogdGhlIGRlcGxveSBrZXkgdGhhdCB3cml0ZXMgcmV2b2NhdGlvbnMgbGl2ZXMgb24gZXZlcnlcbiAgICBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyIHdobyB0b29rIG9uZSBjb3VsZCBvdGhlcndpc2UgZGVsZXRlIHRoZSByZXZvY2F0aW9uIHRoYXQgbG9ja2VkIHRoZW0gb3V0LlxuXG4gICAgVGhlIGlkIGlzIHVuaXF1ZSB0byB0aGUgZXZlbnQsIG5ldmVyIGRlcml2ZWQgZnJvbSB0aGUga2V5LiBBIGtleSB0aGF0IGhhcyBiZWVuIGZvcmdpdmVuIGZvciBvbmVcbiAgICBhZGRyZXNzIGlzIHN0aWxsIGFuIG9yZGluYXJ5IGtleSwgYW5kIHVzaW5nIGl0IGZyb20gc29tZSBvdGhlciBhZGRyZXNzIHJldm9rZXMgaXQgYWdhaW4sIHdpdGggYVxuICAgIG5ldyBpZCB0aGF0IG5vIGV4aXN0aW5nIHVucmV2b2tlIG5hbWVzLiAqL1xuZXhwb3J0IHR5cGUgUmV2b2NhdGlvblN0YXRlID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAgLy8gVGhlIGFkZHJlc3MgaXQgd2FzIHVzZWQgZnJvbS4gSGFsZiBvZiB3aGF0IGEgcmV2b2NhdGlvbiBzYXlzLCBhbmQgdGhlIGhhbGYgYW4gdW5yZXZva2UgaGFzXG4gICAgLy8gdG8gbmFtZSB0byB1bmRvIGl0LlxuICAgIGlwOiBzdHJpbmc7XG4gICAgLy8gV2h5IHRoaXMga2V5IHdhcyByZXZva2VkLCBjYXJyaWVkIGZyb20gdGhlIHJldm9jYXRpb24gZmlsZSBzbyBhIG1hY2hpbmUgdGhhdCByZWFkcyBvbmVcbiAgICAvLyB3cml0dGVuIGVsc2V3aGVyZSBjYW4gc2F5IHdoYXQgaGFwcGVuZWQgcmF0aGVyIHRoYW4gb25seSB0aGF0IHNvbWV0aGluZyBkaWQuXG4gICAgcmV2b2tlZEF0OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5OiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgLy8gV2hpY2ggdW5yZXZva2UgYWxsb3dlZCB0aGlzIGtleSBmcm9tIHRoaXMgYWRkcmVzcywgb25jZSBvbmUgaGFzIGJlZW4gc2Vlbi5cbiAgICB1bnJldm9rZUlkOiBzdHJpbmc7XG4gICAgdW5yZXZva2VkOiBib29sZWFuO1xuICAgIC8vIFdoZXRoZXIgd2UgaGF2ZSBzYWlkIHRoYXQgdGhpcyBrZXkgYWN0dWFsbHkgbGVmdCByb290J3MgYXV0aG9yaXplZF9rZXlzLiBUaGUgcmVtb3ZhbCBpcyB0aGVcbiAgICAvLyB0aGluZyB3b3J0aCByZXBvcnRpbmcsIGFuZCBpdCBpcyB3b3J0aCByZXBvcnRpbmcgZXhhY3RseSBvbmNlLlxuICAgIHJlcG9ydGVkUmVtb3ZlZDogYm9vbGVhbjtcbn07XG5cbi8qKiBBIHJlZnVzYWwgd2Ugc2F3IGJ1dCBjb3VsZCBub3Qgd3JpdGUgZG93biB5ZXQuIEhlbGQgdW50aWwgaXQgaXMgcmVjb3JkZWQsIGJlY2F1c2UgdGhlIGxvZyBpc1xuICAgIHJlYWQgb25jZSBhbmQgbW92ZXMgb246IGxvc2luZyBvbmUgb2YgdGhlc2UgdG8gYSByZXBvIHRoYXQgaGFwcGVuZWQgdG8gYmUgdW5yZWFjaGFibGUgd291bGRcbiAgICBsZWF2ZSBhIGtleSB0aGF0IHdhcyBtaXN1c2VkIGFjY2VwdGVkIGZvcmV2ZXIuICovXG5leHBvcnQgdHlwZSBQZW5kaW5nUmV2b2NhdGlvbiA9IHtcbiAgICBmaW5nZXJwcmludDogc3RyaW5nO1xuICAgIGtleUxpbmU6IHN0cmluZztcbiAgICBzb3VyY2VVUkw6IHN0cmluZztcbiAgICBhdHRlbXB0OiB7IGlwOiBzdHJpbmc7IHVzZXI6IHN0cmluZzsgcG9ydDogc3RyaW5nOyByZXF1aXJlZDogc3RyaW5nOyBsaW5lOiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIERhZW1vblN0YXRlID0ge1xuICAgIHNvdXJjZXM6IHsgW3JlcG9VUkw6IHN0cmluZ106IFNvdXJjZVN0YXRlIH07XG4gICAgdXNlcktleUhhc2hlczogeyBbdXNlck5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIC8vIEhlbGQgaW4gbWVtb3J5IG9ubHksIG5ldmVyIHdyaXR0ZW4gdG8gZGlzay4gRGVsZXRpbmcgYSByZXZvY2F0aW9uIGZyb20gdGhlIHJldm9rZSByZXBvIGRvZXNcbiAgICAvLyBub3QgYnJpbmcgYSBrZXkgYmFjaywgYmVjYXVzZSB0aGlzIG1hY2hpbmUgc3RpbGwgcmVtZW1iZXJzIGl0IC0gdGhlIGtleSB0aGF0IHdyaXRlc1xuICAgIC8vIHJldm9jYXRpb25zIGlzIG9uIGV2ZXJ5IHNlcnZlciwgc28gd2hvZXZlciBzdG9sZSBvbmUgY291bGQgb3RoZXJ3aXNlIGVyYXNlIHRoZSByZWNvcmQgdGhhdFxuICAgIC8vIHNodXQgdGhlbSBvdXQuIFJlc3RhcnRpbmcgdGhlIGRhZW1vbiBkb2VzIGNsZWFyIGl0LCB3aGljaCBpcyB0aGUgd2F5IGJhY2sgZnJvbSBhIHJldm9jYXRpb25cbiAgICAvLyB0aGF0IHNob3VsZCBub3QgaGF2ZSBoYXBwZW5lZC5cbiAgICByZXZvY2F0aW9uczogeyBbcmV2b2NhdGlvbklkOiBzdHJpbmddOiBSZXZvY2F0aW9uU3RhdGUgfTtcbiAgICBwZW5kaW5nUmV2b2NhdGlvbnM6IFBlbmRpbmdSZXZvY2F0aW9uW107XG4gICAgLy8gVGhlIGtleXMgd2UgbGFzdCB3cm90ZSBvdXQuIFdoYXQgdGVsbHMgYSBjaGFuZ2Ugd2UgbWFkZSBhcGFydCBmcm9tIG9uZSBzb21lYm9keSBlbHNlIG1hZGU6XG4gICAgLy8gaWYgdGhpcyBzdGlsbCBtYXRjaGVzIHdoYXQgd2Ugd2FudCwgYW5kIHRoZSBmaWxlIGRvZXMgbm90LCB0aGUgZmlsZSB3YXMgZWRpdGVkIGJlaGluZCB1cy5cbiAgICBhcHBsaWVkS2V5czogc3RyaW5nW107XG4gICAgLy8gV2hlcmUgd2UgaGFkIHJlYWQgdXAgdG8gaW4gdGhlIGF1dGggbG9nLCBzbyBhIHJlc3RhcnQgZG9lcyBub3QgcmUtcmVwb3J0IG9sZCBhdHRlbXB0cy5cbiAgICBhdXRoTG9nT2Zmc2V0OiBudW1iZXI7XG4gICAgYXV0aExvZ1NpZ25hdHVyZTogc3RyaW5nO1xufTtcblxubGV0IHN0YXRlOiBEYWVtb25TdGF0ZSA9IHtcbiAgICBzb3VyY2VzOiB7fSxcbiAgICB1c2VyS2V5SGFzaGVzOiB7fSxcbiAgICByZXZvY2F0aW9uczoge30sXG4gICAgcGVuZGluZ1Jldm9jYXRpb25zOiBbXSxcbiAgICBhcHBsaWVkS2V5czogW10sXG4gICAgYXV0aExvZ09mZnNldDogMCxcbiAgICBhdXRoTG9nU2lnbmF0dXJlOiBcIlwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBzdGF0ZTtcbn1cblxuLyoqIFBlciBzb3VyY2UgcHJvZ3Jlc3MsIGNyZWF0ZWQgb24gZmlyc3QgdXNlIHNvIGEgbmV3bHkgYWRkZWQgc291cmNlIHN0YXJ0cyBjbGVhbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VTdGF0ZShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBzdGF0ZS5zb3VyY2VzW3JlcG9VUkxdO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGxldCBjcmVhdGVkOiBTb3VyY2VTdGF0ZSA9IHtcbiAgICAgICAgbGFzdFNoYTogXCJcIixcbiAgICAgICAgYnJhbmNoOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZDogZmFsc2UsXG4gICAgICAgIGFjY2VwdGVkU2lnbmVyOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZEtleXM6IFtdLFxuICAgICAgICBhY2NlcHRlZE1hbmlmZXN0SGFzaDogXCJcIixcbiAgICAgICAgYWNjZXB0ZWRTaWduYXR1cmVIYXNoOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2lnbmVyOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2luY2U6IDAsXG4gICAgICAgIHJlcG9ydGVkUHJvYmxlbTogXCJcIixcbiAgICB9O1xuICAgIHN0YXRlLnNvdXJjZXNbcmVwb1VSTF0gPSBjcmVhdGVkO1xuICAgIHJldHVybiBjcmVhdGVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0YXRlKCkge1xuICAgIGxldCBjb250ZW50cztcbiAgICB0cnkge1xuICAgICAgICBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKFNUQVRFX1BBVEgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IGxvYWRlZCA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuICAgICAgICAvLyBSZXZvY2F0aW9ucyBhcmUgaGVsZCBpbiBtZW1vcnkgb25seSwgc28gd2hhdGV2ZXIgYW4gb2xkZXIgdmVyc2lvbiBsZWZ0IG9uIGRpc2sgaXMgbm90XG4gICAgICAgIC8vIHJlYWQgYmFjayBpbi4gU3RhcnRpbmcgdGhlIGRhZW1vbiBpcyB3aGF0IGZvcmdldHMgdGhlbS5cbiAgICAgICAgZGVsZXRlIGxvYWRlZC5yZXZvY2F0aW9ucztcbiAgICAgICAgLy8gV3JpdHRlbiBieSB0aGUgdmVyc2lvbnMgdGhhdCBtYWRlIGFuIHVucmV2b2tlIHdhaXQgYW4gaG91ciBiZWZvcmUgaXQgY291bnRlZC4gRHJvcHBlZFxuICAgICAgICAvLyByYXRoZXIgdGhhbiBjYXJyaWVkLCBzbyB0aGUgZmlsZSBzdG9wcyBtZW50aW9uaW5nIHNvbWV0aGluZyBub3RoaW5nIHJlYWRzLlxuICAgICAgICBkZWxldGUgbG9hZGVkLnVucmV2b2tlRmlyc3RTZWVuO1xuICAgICAgICBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oc3RhdGUsIGxvYWRlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBDb3JydXB0IHN0YXRlIG9ubHkgY29zdHMgdXMgb25lIGR1cGxpY2F0ZSBub3RpZmljYXRpb24sIHNvIGl0IGlzIG5vdCB3b3J0aCBmYWlsaW5nIG92ZXIuXG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB1bnJlYWRhYmxlIHN0YXRlIGZpbGUgJHtTVEFURV9QQVRIfS4gJHtlfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVTdGF0ZSgpIHtcbiAgICBsZXQgeyByZXZvY2F0aW9ucywgLi4ucGVyc2lzdGVkIH0gPSBzdGF0ZTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoU1RBVEVfUEFUSCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShTVEFURV9QQVRILCBKU09OLnN0cmluZ2lmeShwZXJzaXN0ZWQsIHVuZGVmaW5lZCwgNCksIHsgbW9kZTogMG82MDAgfSk7XG59XG4iXX0=
|
|
76
|
-
/* _JS_SOURCE_HASH = "
|
|
76
|
+
/* _JS_SOURCE_HASH = "5f3244d41e60fb49775e61b64e1d42130fbb22c884a4fab3ad36c04c1b141c0b"; */
|
|
@@ -43,13 +43,13 @@ export declare function unrevokesFor(unrevokes: Unrevokes, revocation: {
|
|
|
43
43
|
|
|
44
44
|
Deduplication is on the pair. The same key from a second address is a second event and gets its
|
|
45
45
|
own revocation, because an unrevoke only ever forgives the pair it names. */
|
|
46
|
-
export declare
|
|
46
|
+
export declare const recordRevocation: (config: {
|
|
47
47
|
sourceURL: string;
|
|
48
48
|
fingerprint: string;
|
|
49
49
|
keyLine: string;
|
|
50
50
|
attempt: Attempt;
|
|
51
51
|
hostLabel: string;
|
|
52
|
-
})
|
|
52
|
+
}) => Promise<boolean>;
|
|
53
53
|
/** Takes everything the revoke repos list into local state. Once here a revocation never leaves,
|
|
54
54
|
even if the file is deleted: the key that writes revocations is on every server, so an attacker
|
|
55
55
|
holding it could otherwise erase the record that locked them out. */
|
|
@@ -10,6 +10,7 @@ import { messageTimestamp } from "../../notifications/discord";
|
|
|
10
10
|
import { addChangeReason, addLeadingChangeReason } from "./changes";
|
|
11
11
|
import { describeAllEnded, endAllSSHSessions } from "./sessions";
|
|
12
12
|
import { getState, saveState } from "./state";
|
|
13
|
+
import { runInSerial } from "socket-function/src/batching";
|
|
13
14
|
|
|
14
15
|
// A revocation says: this key, used from this address, is no longer accepted. An unrevoke says the
|
|
15
16
|
// opposite about one pair: this key is allowed from this address. They cancel out when both halves
|
|
@@ -145,13 +146,13 @@ export function unrevokesFor(unrevokes: Unrevokes, revocation: { revocationId: s
|
|
|
145
146
|
|
|
146
147
|
Deduplication is on the pair. The same key from a second address is a second event and gets its
|
|
147
148
|
own revocation, because an unrevoke only ever forgives the pair it names. */
|
|
148
|
-
export
|
|
149
|
+
export const recordRevocation = runInSerial(async (config: {
|
|
149
150
|
sourceURL: string;
|
|
150
151
|
fingerprint: string;
|
|
151
152
|
keyLine: string;
|
|
152
153
|
attempt: Attempt;
|
|
153
154
|
hostLabel: string;
|
|
154
|
-
}) {
|
|
155
|
+
}) => {
|
|
155
156
|
let { sourceURL, fingerprint, keyLine, attempt, hostLabel } = config;
|
|
156
157
|
let state = getState();
|
|
157
158
|
let pair = pairKey({ fingerprint, ip: attempt.ip });
|
|
@@ -234,7 +235,7 @@ export async function recordRevocation(config: {
|
|
|
234
235
|
+ `\nallowed only from: \`${attempt.required}\``,
|
|
235
236
|
});
|
|
236
237
|
return true;
|
|
237
|
-
}
|
|
238
|
+
});
|
|
238
239
|
|
|
239
240
|
/** Takes everything the revoke repos list into local state. Once here a revocation never leaves,
|
|
240
241
|
even if the file is deleted: the key that writes revocations is on every server, so an attacker
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -142,4 +142,4 @@ async function readRepoKeys(repoPath) {
|
|
|
142
142
|
}
|
|
143
143
|
exports.readRepoKeys = readRepoKeys;
|
|
144
144
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplZEtleXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhdXRob3JpemVkS2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsMkRBQTZCO0FBQzdCLGdEQUF3QjtBQUV4QixTQUFnQixhQUFhLENBQUMsUUFBZ0I7SUFDMUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRkQsc0NBRUM7QUFFRDs4RUFDOEU7QUFDOUUsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDMUMsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekUsSUFBSSxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDUixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLFNBQVMsR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FB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QUFFLENBQUM7UUFDdEMsT0FBTyxhQUFhLENBQUMsTUFBTSxrQkFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBQ0QsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQWZELG9DQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplS2V5cyhjb250ZW50czogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnRzLnNwbGl0KFwiXFxuXCIpLm1hcChsaW5lID0+IGxpbmUudHJpbSgpKS5maWx0ZXIobGluZSA9PiBsaW5lICYmICFsaW5lLnN0YXJ0c1dpdGgoXCIjXCIpKTtcbn1cblxuLyoqIFRoZSBmaW5nZXJwcmludCBzc2ggaXRzZWxmIHJlcG9ydHMgZm9yIGEga2V5LCB3aGljaCBpcyB3aGF0IHRoZSBzc2hkIGxvZyBuYW1lcyBhbmQgdGhlcmVmb3JlXG4gICAgd2hhdCBhIHJldm9jYXRpb24gaXMga2V5ZWQgYnkuIFJldHVybnMgXCJcIiBmb3IgYSBsaW5lIHRoYXQgaG9sZHMgbm8ga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGtleUZpbmdlcnByaW50KGtleUxpbmU6IHN0cmluZykge1xuICAgIGxldCBwYXJ0cyA9IGtleUxpbmUudHJpbSgpLnNwbGl0KC9cXHMrLyk7XG4gICAgbGV0IHR5cGVJbmRleCA9IHBhcnRzLmZpbmRJbmRleChwYXJ0ID0+IC9eKHNzaC18ZWNkc2EtfHNrLSkvLnRlc3QocGFydCkpO1xuICAgIGxldCBibG9iID0gdHlwZUluZGV4ID49IDAgJiYgcGFydHNbdHlwZUluZGV4ICsgMV0gfHwgXCJcIjtcbiAgICBpZiAoIWJsb2IpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBcIlNIQTI1NjpcIiArIGNyeXB0by5jcmVhdGVIYXNoKFwic2hhMjU2XCIpLnVwZGF0ZShCdWZmZXIuZnJvbShibG9iLCBcImJhc2U2NFwiKSkuZGlnZXN0KFwiYmFzZTY0XCIpLnJlcGxhY2UoLz0rJC8sIFwiXCIpO1xufVxuXG5leHBvcnQgY29uc3QgTk9fUkVTVFJJQ1RJT04gPSBcIkFOWSBBRERSRVNTIChubyBmcm9tPSByZXN0cmljdGlvbilcIjtcblxuLyoqIFRoZSBhZGRyZXNzZXMgYSBrZXkgbWF5IGJlIHVzZWQgZnJvbSwgb25lIGJ5IG9uZSwgb3IgdW5kZWZpbmVkIHdoZW4gdGhlIGtleSBjYXJyaWVzIG5vIGZyb209XG4gICAgYXQgYWxsLiBVbmRlZmluZWQgYW5kIGFuIGVtcHR5IGxpc3QgYXJlIHZlcnkgZGlmZmVyZW50IHRoaW5ncywgc28gdGhleSBzdGF5IGRpc3Rpbmd1aXNoYWJsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZXlSZXN0cmljdGlvbkxpc3Qoa2V5TGluZTogc3RyaW5nKSB7XG4gICAgbGV0IG1hdGNoID0ga2V5TGluZS5tYXRjaCgvZnJvbT1cIihbXlwiXSopXCIvKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaFsxXS5zcGxpdChcIixcIikubWFwKGVudHJ5ID0+IGVudHJ5LnRyaW0oKSkuZmlsdGVyKGVudHJ5ID0+IGVudHJ5KTtcbn1cblxuLyoqIFRoZSBhZGRyZXNzZXMgYSBrZXkgbWF5IGJlIHVzZWQgZnJvbSwgd2hpY2ggaXMgdGhlIHBhcnQgb2YgYW4gYXV0aG9yaXplZF9rZXlzIGxpbmUgdGhhdFxuICAgIGRlY2lkZXMgaG93IG11Y2ggYSBzdG9sZW4ga2V5IGlzIHdvcnRoLiBBIGtleSB3aXRoIG5vIHJlc3RyaWN0aW9uIHNheXMgc28gbG91ZGx5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGtleVJlc3RyaWN0aW9uKGtleUxpbmU6IHN0cmluZykge1xuICAgIGxldCBsaXN0ID0ga2V5UmVzdHJpY3Rpb25MaXN0KGtleUxpbmUpO1xuICAgIGlmICghbGlzdCkge1xuICAgICAgICByZXR1cm4gTk9fUkVTVFJJQ1RJT047XG4gICAgfVxuICAgIHJldHVybiBsaXN0LmpvaW4oXCIsXCIpO1xufVxuXG4vKiogQWRkcyBhZGRyZXNzZXMgdG8gYSBrZXkncyBmcm9tPSBsaXN0LCBsZWF2aW5nIHRoZSByZXN0IG9mIHRoZSBsaW5lIGV4YWN0bHkgYXMgaXQgd2FzLiBSZXR1cm5zXG4gICAgd2hpY2ggYWRkcmVzc2VzIHdlcmUgYWN0dWFsbHkgbmV3LCBzbyBhIGNhbGxlciBjYW4gcmVwb3J0IG9ubHkgd2hhdCBpdCBjaGFuZ2VkLlxuXG4gICAgQSBrZXkgd2l0aCBubyBmcm9tPSBhdCBhbGwgaXMgbGVmdCBhbG9uZTogYWRkaW5nIG9uZSB3b3VsZCBzaWxlbnRseSByZXN0cmljdCBhIGtleSB0aGF0IGlzXG4gICAgY3VycmVudGx5IHVucmVzdHJpY3RlZCwgd2hpY2ggaXMgYSBkaWZmZXJlbnQgZGVjaXNpb24gdGhhbiB0aGUgb25lIGJlaW5nIG1hZGUgaGVyZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd0FkZHJlc3NlcyhrZXlMaW5lOiBzdHJpbmcsIGFkZHJlc3Nlczogc3RyaW5nW10pIHtcbiAgICBsZXQgbGlzdCA9IGtleVJlc3RyaWN0aW9uTGlzdChrZXlMaW5lKTtcbiAgICBpZiAoIWxpc3QpIHtcbiAgICAgICAgcmV0dXJuIHsga2V5TGluZSwgYWRkZWQ6IFtdIGFzIHN0cmluZ1tdIH07XG4gICAgfVxuICAgIGxldCBhbGxvd2VkID0gbGlzdDtcbiAgICBsZXQgYWRkZWQgPSBhZGRyZXNzZXMuZmlsdGVyKGFkZHJlc3MgPT4gYWRkcmVzcyAmJiAhYWxsb3dlZC5pbmNsdWRlcyhhZGRyZXNzKSk7XG4gICAgaWYgKCFhZGRlZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHsga2V5TGluZSwgYWRkZWQgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5TGluZToga2V5TGluZS5yZXBsYWNlKC9mcm9tPVwiW15cIl0qXCIvLCBgZnJvbT1cIiR7Wy4uLmFsbG93ZWQsIC4uLmFkZGVkXS5qb2luKFwiLFwiKX1cImApLFxuICAgICAgICBhZGRlZCxcbiAgICB9O1xufVxuXG4vKiogRW5vdWdoIHRvIHJlY29nbmlzZSB3aG9zZSBrZXkgdGhpcyBpcyB3aXRob3V0IHByaW50aW5nIHRoZSB3aG9sZSBibG9iLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1bW1hcml6ZUtleShrZXlMaW5lOiBzdHJpbmcpIHtcbiAgICBsZXQgcGFydHMgPSBrZXlMaW5lLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xuICAgIGxldCB0eXBlSW5kZXggPSBwYXJ0cy5maW5kSW5kZXgocGFydCA9PiAvXihzc2gtfGVjZHNhLXxzay0pLy50ZXN0KHBhcnQpKTtcbiAgICBpZiAodHlwZUluZGV4IDwgMCkge1xuICAgICAgICByZXR1cm4ga2V5TGluZS5zbGljZSgwLCA2MCk7XG4gICAgfVxuICAgIGxldCB0eXBlID0gcGFydHNbdHlwZUluZGV4XTtcbiAgICBsZXQgYmxvYiA9IHBhcnRzW3R5cGVJbmRleCArIDFdIHx8IFwiXCI7XG4gICAgbGV0IGNvbW1lbnQgPSBwYXJ0cy5zbGljZSh0eXBlSW5kZXggKyAyKS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gYCR7dHlwZX0gLi4uJHtibG9iLnNsaWNlKC0xMil9JHtjb21tZW50ICYmIGAgJHtjb21tZW50fWAgfHwgXCJcIn1gO1xufVxuXG4vKiogVGhlIHNob3J0ZXN0IHRoaW5nIHRoYXQgc3RpbGwgaWRlbnRpZmllcyBhIGtleSB0byBhIHBlcnNvbjogdGhlIGNvbW1lbnQgaXQgY2Fycmllcywgd2hpY2ggaXNcbiAgICB1c3VhbGx5IHVzZXJAbWFjaGluZSwgYW5kIG90aGVyd2lzZSB0aGUgdGFpbCBvZiB0aGUga2V5IGl0c2VsZi4gRm9yIHRoZSBmaXJzdCBsaW5lIG9mIGFcbiAgICBub3RpZmljYXRpb24sIHdoZXJlIHRoZXJlIGlzIG9ubHkgcm9vbSBmb3IgdGhlIG9uZSB0aGluZyB0aGF0IG1hdHRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24ga2V5TmljZU5hbWUoa2V5TGluZTogc3RyaW5nKSB7XG4gICAgbGV0IHBhcnRzID0ga2V5TGluZS50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICBsZXQgdHlwZUluZGV4ID0gcGFydHMuZmluZEluZGV4KHBhcnQgPT4gL14oc3NoLXxlY2RzYS18c2stKS8udGVzdChwYXJ0KSk7XG4gICAgaWYgKHR5cGVJbmRleCA8IDApIHtcbiAgICAgICAgcmV0dXJuIGtleUxpbmUuc2xpY2UoMCwgMjApO1xuICAgIH1cbiAgICBsZXQgY29tbWVudCA9IHBhcnRzLnNsaWNlKHR5cGVJbmRleCArIDIpLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiBjb21tZW50IHx8IGAuLi4keyhwYXJ0c1t0eXBlSW5kZXggKyAxXSB8fCBcIlwiKS5zbGljZSgtOCl9YDtcbn1cblxuLyoqIFdoYXQgYSBzZXQgb2Yga2V5cyBoYXMgdG8gc2F0aXNmeSBiZWZvcmUgaXQgaXMgd29ydGggc2lnbmluZywgYXMgYSBsaXN0IG9mIGNvbXBsYWludHMuXG5cbiAgICBFdmVyeSBrZXkgbmVlZHMgYSBmcm9tPSwgYmVjYXVzZSBhbiB1bnJlc3RyaWN0ZWQga2V5IGNhbiBuZXZlciBiZSBjYXVnaHQgYmVpbmcgdXNlZCBmcm9tIHRoZVxuICAgIHdyb25nIHBsYWNlLCBhbmQgYmVpbmcgY2F1Z2h0IGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgdHJpZ2dlcnMgYSByZXZvY2F0aW9uLlxuXG4gICAgTm8gdHdvIGtleXMgbWF5IGFsbG93IHRoZSBzYW1lIGFkZHJlc3NlcywgYmVjYXVzZSB0aGF0IGlzIG9uZSBwZXJzb24gaG9sZGluZyB0d28ga2V5czogcmV2b2tpbmdcbiAgICBvbmUgb2YgdGhlbSBsZWF2ZXMgdGhlIG90aGVyIHdvcmtpbmcsIHNvIHRoZSByZXZvY2F0aW9uIGFjaGlldmVzIG5vdGhpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEtleVByb2JsZW1zKGtleXM6IHN0cmluZ1tdKSB7XG4gICAgbGV0IHByb2JsZW1zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBieVJlc3RyaWN0aW9uID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgIGxldCByZXN0cmljdGlvbiA9IGtleVJlc3RyaWN0aW9uTGlzdChrZXkpO1xuICAgICAgICBpZiAoIXJlc3RyaWN0aW9uKSB7XG4gICAgICAgICAgICBwcm9ibGVtcy5wdXNoKGBubyBmcm9tPSByZXN0cmljdGlvbiwgc28gaXQgY2FuIGJlIHVzZWQgZnJvbSBhbnl3aGVyZTpcXG4gICAgICAke3N1bW1hcml6ZUtleShrZXkpfWApO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGVkLCBzbyB0aGUgc2FtZSBhZGRyZXNzZXMgd3JpdHRlbiBpbiBhIGRpZmZlcmVudCBvcmRlciBzdGlsbCBjb3VudCBhcyB0aGUgc2FtZS5cbiAgICAgICAgbGV0IGlkZW50aXR5ID0gWy4uLnJlc3RyaWN0aW9uXS5zb3J0KCkuam9pbihcIixcIik7XG4gICAgICAgIGJ5UmVzdHJpY3Rpb24uc2V0KGlkZW50aXR5LCBbLi4uKGJ5UmVzdHJpY3Rpb24uZ2V0KGlkZW50aXR5KSB8fCBbXSksIGtleV0pO1xuICAgIH1cbiAgICBmb3IgKGxldCBbcmVzdHJpY3Rpb24sIHNoYXJpbmddIG9mIGJ5UmVzdHJpY3Rpb24pIHtcbiAgICAgICAgaWYgKHNoYXJpbmcubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgICAgIGAke3NoYXJpbmcubGVuZ3RofSBrZXlzIGFsbG93IGV4YWN0bHkgdGhlIHNhbWUgYWRkcmVzc2VzICgke3Jlc3RyaWN0aW9ufSksIHdoaWNoIGlzIG9uZWBcbiAgICAgICAgICAgICsgYCBwZXJzb24gaG9sZGluZyBtb3JlIHRoYW4gb25lIGtleTpcXG5gXG4gICAgICAgICAgICArIHNoYXJpbmcubWFwKGtleSA9PiBgICAgICAgJHtzdW1tYXJpemVLZXkoa2V5KX1gKS5qb2luKFwiXFxuXCIpXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBwcm9ibGVtcztcbn1cblxuLyoqIFJlYWRzIHRoZSBhdXRob3JpemVkIGtleXMgYSByZXBvIGNoZWNrb3V0IHdhbnRzIGFwcGxpZWQuIFByZWZlcnMgYSB0b3AgbGV2ZWwgYXV0aG9yaXplZF9rZXlzXG4gICAgZmlsZSBhbmQgb3RoZXJ3aXNlIGNvbmNhdGVuYXRlcyBldmVyeSAucHViIGF0IHRoZSB0b3AgbGV2ZWwuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFJlcG9LZXlzKHJlcG9QYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tYmluZWRQYXRoID0gcGF0aC5qb2luKHJlcG9QYXRoLCBcImF1dGhvcml6ZWRfa2V5c1wiKTtcbiAgICBsZXQgZW50cmllcyA9IGF3YWl0IGZzLnJlYWRkaXIocmVwb1BhdGgpO1xuICAgIGlmIChlbnRyaWVzLmluY2x1ZGVzKFwiYXV0aG9yaXplZF9rZXlzXCIpKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVLZXlzKGF3YWl0IGZzLnJlYWRGaWxlKGNvbWJpbmVkUGF0aCwgXCJ1dGY4XCIpKTtcbiAgICB9XG4gICAgbGV0IHB1YkZpbGVzID0gZW50cmllcy5maWx0ZXIobmFtZSA9PiBuYW1lLmVuZHNXaXRoKFwiLnB1YlwiKSkuc29ydCgpO1xuICAgIGlmICghcHViRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYXV0aG9yaXplZF9rZXlzIG9yIGF0IGxlYXN0IG9uZSAucHViIGZpbGUgaW4gJHtyZXBvUGF0aH0sIGZvdW5kIG5laXRoZXJgKTtcbiAgICB9XG4gICAgbGV0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgbmFtZSBvZiBwdWJGaWxlcykge1xuICAgICAgICBrZXlzLnB1c2goLi4ubm9ybWFsaXplS2V5cyhhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4ocmVwb1BhdGgsIG5hbWUpLCBcInV0ZjhcIikpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG59XG4iXX0=
|
|
145
|
-
/* _JS_SOURCE_HASH = "
|
|
145
|
+
/* _JS_SOURCE_HASH = "5dc60c0f88ff3878003bf57017d1342326afa7c6a9f511d5896e4113565a7823"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -108,4 +108,4 @@ async function resolveKeysRepo(named) {
|
|
|
108
108
|
}
|
|
109
109
|
exports.resolveKeysRepo = resolveKeysRepo;
|
|
110
110
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c1JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJrZXlzUmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QiwwQ0FBNkM7QUFDN0MscURBQWdEO0FBQ2hELHVDQUEyQztBQUMzQyw0Q0FBOEM7QUFDOUMsNENBQWdEO0FBRWhELGdHQUFnRztBQUNoRyxnR0FBZ0c7QUFDaEcsaUdBQWlHO0FBQ2pHLEVBQUU7QUFDRixpR0FBaUc7QUFDakcscUVBQXFFO0FBQ3JFLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUM7QUFFL0MsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUN0QyxJQUFJLENBQUM7UUFDRCxNQUFNLGtCQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDttRkFDbUY7QUFDbkYsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUN0QyxJQUFJLENBQUMsTUFBTSxVQUFVLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUEsNkJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNULE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDO0FBRUQsaUZBQWlGO0FBQ2pGLEtBQUssVUFBVSxzQkFBc0I7SUFDakMsNkZBQTZGO0lBQzdGLGtGQUFrRjtJQUNsRixJQUFJLFFB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LElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxvQ0FBb0MsSUFBSTtVQUMvRSxDQUFDLFlBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPO1lBQ3hCLENBQUMsQ0FBQyxvQ0FBb0MsY0FBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0I7a0JBQzNGLDJDQUEyQyxjQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDOUUsQ0FBQyxDQUFDLDZEQUE2RDtrQkFDN0QsNENBQTRDO2tCQUM1QyxvREFBb0QsQ0FBQyxDQUM5RCxDQUFDO0FBQ04sQ0FBQztBQWxDRCwwQ0FrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ09ORklHX1BBVEggfSBmcm9tIFwiLi9kYWVtb24vcGF0aHNcIjtcbmltcG9ydCB7IHJlYWRSZXBvS2V5cyB9IGZyb20gXCIuL2F1dGhvcml6ZWRLZXlzXCI7XG5pbXBvcnQgeyBzb3VyY2VSZXBvUGF0aCB9IGZyb20gXCIuL3NvdXJjZXNcIjtcbmltcG9ydCB7IGV4cGFuZEhvbWUgfSBmcm9tIFwiLi4vaGVscGVycy9wYXRoc1wiO1xuaW1wb3J0IHsgc3Bhd25Qcm9taXNlIH0gZnJvbSBcIi4uL2hlbHBlcnMvc3Bhd25cIjtcblxuLy8gVGhlIG9uZSBwbGFjZSB0aGF0IGFuc3dlcnMgXCJ3aGljaCBrZXlzIHJlcG9cIi4gRXZlcnl0aGluZyB0aGF0IHJlYWRzIG9yIHdyaXRlcyBvbmUgY29tZXMgaGVyZTpcbi8vIHNpZ25pbmcsIHVucmV2b2tpbmcsIG1hY2hpbmUgdHJ1c3QsIGFuZCBhZGRpbmcgYSBtYWNoaW5lLiBUaGV5IHdlcmUgZWFjaCB3b3JraW5nIGl0IG91dCB0aGVpclxuLy8gb3duIHdheSwgd2hpY2ggaXMgaG93IHNpZ25maWxlcyBlbmRlZCB1cCBzaWduaW5nIHdoYXRldmVyIHJlcG8geW91IGhhcHBlbmVkIHRvIGJlIHN0YW5kaW5nIGluLlxuLy9cbi8vIFdoZXJlIGEgV2luZG93cyBtYWNoaW5lIGlzIGV4cGVjdGVkIHRvIGtlZXAgaXQsIHJlbGF0aXZlIHRvIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4gVGhlcmUgaXMgbm9cbi8vIGRhZW1vbiB0aGVyZSBhbmQgbm8gL2V0Yywgc28gYSBzaWJsaW5nIGNoZWNrb3V0IGlzIHRoZSBjb252ZW50aW9uLlxuY29uc3QgV0lORE9XU19SRVBPX1BBVEggPSBcIi4uL2F1dGhvcml6ZWRfa2V5c1wiO1xuXG5hc3luYyBmdW5jdGlvbiBwYXRoRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBmcy5hY2Nlc3MoZmlsZVBhdGgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKiBBIGdpdCBjaGVja291dCB0aGF0IGFjdHVhbGx5IGhvbGRzIGtleXMuIEJvdGggaGFsdmVzIG1hdHRlcjogYSByZXBvIHdpdGggbm8gYXV0aG9yaXplZF9rZXlzIGlzXG4gICAgc29tZSBvdGhlciByZXBvLCBhbmQgYSBkaXJlY3RvcnkgdGhhdCBpcyBub3QgYSBjaGVja291dCBoYXMgbm90aGluZyB0byBwdXNoLiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNLZXlzUmVwbyhyZXBvUGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKCFhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvUGF0aCwgXCIuZ2l0XCIpKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHJlYWRSZXBvS2V5cyhyZXBvUGF0aCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqIFRoZSByZXBvIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBpcyBpbnNpZGUsIG9yIFwiXCIgd2hlbiBpdCBpcyBub3QgaW5zaWRlIG9uZS4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcG9PZkN1cnJlbnREaXJlY3RvcnkoKSB7XG4gICAgLy8gUmVhZCBmb3IgaXRzIHZhbHVlLCBzbyBzdGRvdXQgaGFzIHRvIGJlIG9uIGl0cyBvd24uIHJ1blByb21pc2Ugam9pbnMgaXQgd2l0aCBzdGRlcnIsIGFuZCBhXG4gICAgLy8gZ2l0IHdhcm5pbmcgZ2x1ZWQgdG8gdGhlIGZyb250IG9mIHRoaXMgYmVjb21lcyBhIGRpcmVjdG9yeSB0aGF0IGRvZXMgbm90IGV4aXN0LlxuICAgIGxldCB0b3BMZXZlbCA9IGF3YWl0IHNwYXduUHJvbWlzZSh7IGNvbW1hbmQ6IFwiZ2l0XCIsIGFyZ3M6IFtcInJldi1wYXJzZVwiLCBcIi0tc2hvdy10b3BsZXZlbFwiXSB9KTtcbiAgICByZXR1cm4gdG9wTGV2ZWwuc3RhdHVzID09PSAwICYmIHRvcExldmVsLnN0ZG91dC50cmltKCkgfHwgXCJcIjtcbn1cblxuLyoqIFdoZXJlIHRoaXMgbWFjaGluZSdzIG93biBrZXlzIHJlcG8gaXMsIHdoZW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGlzIG5vdCBvbmUuXG5cbiAgICBPbiBhIGhvc3QgdGhhdCBpcyB0aGUgY2hlY2tvdXQgdGhlIGRhZW1vbiBrZWVwcyB1cCB0byBkYXRlLiBPbiBXaW5kb3dzIHRoZXJlIGlzIG5vIGRhZW1vbiwgc29cbiAgICBpdCBpcyB0aGUgc2libGluZyBkaXJlY3RvcnkuICovXG5hc3luYyBmdW5jdGlvbiBjb25maWd1cmVkUmVwbygpIHtcbiAgICBpZiAob3MucGxhdGZvcm0oKSA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoV0lORE9XU19SRVBPX1BBVEgpO1xuICAgIH1cbiAgICBsZXQgY29uZmlnID0gYXdhaXQgZnMucmVhZEZpbGUoQ09ORklHX1BBVEgsIFwidXRmOFwiKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICBsZXQgc291cmNlVVJMID0gY29uZmlnICYmIChKU09OLnBhcnNlKGNvbmZpZykucmVwb1NvdXJjZXMgfHwgW10pWzBdIHx8IFwiXCI7XG4gICAgcmV0dXJuIHNvdXJjZVVSTCAmJiBzb3VyY2VSZXBvUGF0aChzb3VyY2VVUkwpIHx8IFwiXCI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG9yaWdpbk9mKHJlcG9QYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgb3JpZ2luID0gYXdhaXQgc3Bhd25Qcm9taXNlKHsgY29tbWFuZDogXCJnaXRcIiwgYXJnczogW1wicmVtb3RlXCIsIFwiZ2V0LXVybFwiLCBcIm9yaWdpblwiXSwgY3dkOiByZXBvUGF0aCB9KTtcbiAgICBsZXQgdXJsID0gb3JpZ2luLnN0ZG91dC50cmltKCk7XG4gICAgaWYgKG9yaWdpbi5zdGF0dXMgIT09IDAgfHwgIXVybCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7cmVwb1BhdGh9IHRvIGhhdmUgYW4gb3JpZ2luIHJlbW90ZSwgaXQgaGFzIG5vbmVgKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbn1cblxuLyoqIFRoZSBrZXlzIHJlcG8gdG8gYWN0IG9uLlxuXG4gICAgQSBuYW1lZCBvbmUgaWYgdGhlcmUgaXMgb25lLCBvdGhlcndpc2UgdGhlIHJlcG8gdGhlIGNvbW1hbmQgaXMgYmVpbmcgcnVuIGluIGlmIHRoYXQgcmVwbyBob2xkc1xuICAgIGtleXMsIG90aGVyd2lzZSB0aGlzIG1hY2hpbmUncyBvd24uIFJ1bm5pbmcgaW4gc29tZSBvdGhlciByZXBvIHRoZXJlZm9yZSByZWFjaGVzIHRoZSBrZXlzIHJlcG9cbiAgICByYXRoZXIgdGhhbiBhY3Rpbmcgb24gd2hhdGV2ZXIgaGFwcGVuZWQgdG8gYmUgYXJvdW5kIC0gc2lnbmluZyBzbGlmdHV0aWxzIGJlY2F1c2UgdGhhdCBpcyB3aGVyZVxuICAgIHRoZSB0ZXJtaW5hbCB3YXMgaXMgbmV2ZXIgd2hhdCBhbnlib2R5IG1lYW50LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVLZXlzUmVwbyhuYW1lZD86IHN0cmluZyk6IFByb21pc2U8eyByZXBvUGF0aDogc3RyaW5nOyBzb3VyY2VVUkw6IHN0cmluZyB9PiB7XG4gICAgbGV0IHRyaWVkOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgbGV0IGNhbmRpZGF0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKG5hbWVkKSB7XG4gICAgICAgIGNhbmRpZGF0ZXMucHVzaChleHBhbmRIb21lKG5hbWVkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBhd2FpdCByZXBvT2ZDdXJyZW50RGlyZWN0b3J5KCk7XG4gICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjYW5kaWRhdGVzLnB1c2goY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNvbmZpZ3VyZWQgPSBhd2FpdCBjb25maWd1cmVkUmVwbygpO1xuICAgICAgICBpZiAoY29uZmlndXJlZCAmJiBjb25maWd1cmVkICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICBjYW5kaWRhdGVzLnB1c2goY29uZmlndXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCByZXBvUGF0aCBvZiBjYW5kaWRhdGVzKSB7XG4gICAgICAgIGlmIChhd2FpdCBpc0tleXNSZXBvKHJlcG9QYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVwb1BhdGgsIHNvdXJjZVVSTDogYXdhaXQgb3JpZ2luT2YocmVwb1BhdGgpIH07XG4gICAgICAgIH1cbiAgICAgICAgdHJpZWQucHVzaChyZXBvUGF0aCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRXhwZWN0ZWQgYSBnaXQgcmVwbyBob2xkaW5nIGF1dGhvcml6ZWRfa2V5cywgZm91bmQgbm9uZS5cXG5gXG4gICAgICAgICsgYExvb2tlZCBpbjpcXG4gICR7dHJpZWQuam9pbihcIlxcbiAgXCIpIHx8IFwiKG5vd2hlcmUgLSB0aGlzIGlzIG5vdCBhIGdpdCByZXBvKVwifVxcbmBcbiAgICAgICAgKyAob3MucGxhdGZvcm0oKSA9PT0gXCJ3aW4zMlwiXG4gICAgICAgICAgICA/IGBPbiBXaW5kb3dzIHRoZSByZXBvIGlzIHJlYWQgZnJvbSAke3BhdGgucmVzb2x2ZShXSU5ET1dTX1JFUE9fUEFUSCl9LCBzbyBjbG9uZSBpdCB0aGVyZTpcXG5gXG4gICAgICAgICAgICArIGAgIGdpdCBjbG9uZSA8eW91ciBhdXRob3JpemVkX2tleXMgcmVwbz4gJHtwYXRoLnJlc29sdmUoV0lORE9XU19SRVBPX1BBVEgpfWBcbiAgICAgICAgICAgIDogYFNldCB0aGlzIG1hY2hpbmUgdXAsIG9yIHJ1biB0aGlzIGZyb20gaW5zaWRlIGEga2V5cyByZXBvOlxcbmBcbiAgICAgICAgICAgICsgYCAgeWFybiBzZXR1cG5vdGlmeSA8ZGlzY29yZC13ZWJob29rLXVybD5cXG5gXG4gICAgICAgICAgICArIGAgIHlhcm4gc2VjdXJlc3NoIGFkZCA8cmVwby1wcml2YXRlLWtleT4gPHJlcG8tdXJsPmApXG4gICAgKTtcbn1cbiJdfQ==
|
|
111
|
-
/* _JS_SOURCE_HASH = "
|
|
111
|
+
/* _JS_SOURCE_HASH = "cc6f1a68a3ed8776d2d177cfa31dd8917cb1f08773131d306af563402dc5c293"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -54,4 +54,4 @@ function deriveRevokeKey(sourcePrivateKey) {
|
|
|
54
54
|
}
|
|
55
55
|
exports.deriveRevokeKey = deriveRevokeKey;
|
|
56
56
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2b2tlU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmV2b2tlU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUFxRDtBQUNyRCxtREFBcUY7QUFDckYsZ0RBQXdCO0FBQ3hCLHVDQUEwRjtBQUUxRiwrRkFBK0Y7QUFDL0YsZ0dBQWdHO0FBQ2hHLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQywrRkFBK0Y7QUFDL0Ysa0VBQWtFO0FBQ3JELFFBQUEsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFFbEQsU0FBZ0IsYUFBYSxDQUFDLFNBQWlCO0lBQzNDLElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxVQUFVLEdBQUcsY0FBYyxNQUFNLENBQUM7QUFDaEQsQ0FBQztBQUhELHNDQUdDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLFNBQWlCO0lBQzNDLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGlCQUFPLEdBQUUsRUFBRSxHQUFHLElBQUEsb0JBQVUsRUFBQyxTQUFTLENBQUMsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFNBQWlCO0lBQ2pELE9BQU8sR0FBRyw4QkFBb0IsSUFBSSxJQUFBLG9CQUFVLEVBQUMsU0FBUyxDQUFDLEdBQUcsY0FBYyxFQUFFLENBQUM7QUFDL0UsQ0FBQztBQUZELGtEQUVDO0FBRUQsK0ZBQStGO0FBQ3hGLEtBQUssVUFBVSxhQUFhLENBQUMsU0FBaUI7SUFDakQsT0FBTyxNQUFNLElBQUEsaUJBQU8sRUFBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4RyxDQUFDO0FBRkQsc0NBRUM7QUFFRCxTQUFnQixjQUFjLENBQUMsU0FBaUI7SUFDNUMsT0FBTyxHQUFHLG1CQUFTLElBQUksSUFBQSxvQkFBVSxFQUFDLFNBQVMsQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFGRCx3Q0FFQztBQUVEO3lGQUN5RjtBQUN6RixTQUFnQixlQUFlLENBQUMsZ0JBQXdCO0lBQ3BELElBQUksTUFBTSxHQUFHLElBQUEsbUNBQXNCLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RCxJQUFJLE9BQU8sR0FBRyxJQUFBLDRCQUFnQixFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLHdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMvRSxPQUFPO1FBQ0gsU0FBUyxFQUFFLGVBQWUsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUNoRCxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZCLGNBQWMsRUFBRSxJQUFBLG9DQUF1QixFQUFDO1lBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLFlBQVksSUFBSSx3QkFBZ0IsRUFBRTtTQUNuRSxDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUM7QUFiRCwwQ0FhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcml2ZUVkMjU1MTlLZXkgfSBmcm9tIFwiLi4va2V5cy9kZXJpdmVLZXlcIjtcbmltcG9ydCB7IGZvcm1hdE9wZW5TU0hQcml2YXRlS2V5LCBwYXJzZU9wZW5TU0hQcml2YXRlS2V5IH0gZnJvbSBcIi4uL2tleXMvc3NoS2V5RmlsZVwiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGZpbmRLZXksIGtleXNEaXIsIExFR0FDWV9SRVBPX0tFWVNfRElSLCBSRVBPU19ESVIsIHNvdXJjZU5hbWUgfSBmcm9tIFwiLi9zb3VyY2VzXCI7XG5cbi8vIEEgc291cmNlJ3MgcmV2b2NhdGlvbnMgbGl2ZSBpbiBhIHJlcG8gYmVzaWRlIGl0LiBEZXJpdmVkIHJhdGhlciB0aGFuIGNvbmZpZ3VyZWQsIHNvIGFkZGluZyBhXG4vLyBzb3VyY2UgYnJpbmdzIGl0cyByZXZva2UgcmVwbyB3aXRoIGl0IGFuZCB0aGVyZSBpcyBub3RoaW5nIGV4dHJhIHRvIHBhc3Mgb24gdGhlIGNvbW1hbmQgbGluZS5cbmNvbnN0IFJFVk9LRURfU1VGRklYID0gXCJfcmV2b2tlZFwiO1xuLy8gR2l0SHViIHdpbGwgbm90IHRha2UgdGhlIHNhbWUgcHVibGljIGtleSBhcyBhIGRlcGxveSBrZXkgb24gdHdvIHJlcG9zLCBzbyB0aGUgcmV2b2tlIHJlcG8gaXNcbi8vIHJlYWNoZWQgd2l0aCBhIGtleSBkZXJpdmVkIGZyb20gdGhlIHNvdXJjZSdzLCB1bmRlciB0aGlzIGxhYmVsLlxuZXhwb3J0IGNvbnN0IFJFVk9LRV9LRVlfTEFCRUwgPSBcInJldm9rZWdpdGh1YmtleVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmV2b2tlUmVwb1VSTChzb3VyY2VVUkw6IHN0cmluZykge1xuICAgIGxldCB3aXRob3V0R2l0ID0gc291cmNlVVJMLnJlcGxhY2UoL1xcLmdpdCQvLCBcIlwiKTtcbiAgICByZXR1cm4gYCR7d2l0aG91dEdpdH0ke1JFVk9LRURfU1VGRklYfS5naXRgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV2b2tlS2V5UGF0aChzb3VyY2VVUkw6IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLmpvaW4oa2V5c0RpcigpLCBgJHtzb3VyY2VOYW1lKHNvdXJjZVVSTCl9JHtSRVZPS0VEX1NVRkZJWH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxlZ2FjeVJldm9rZUtleVBhdGgoc291cmNlVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7TEVHQUNZX1JFUE9fS0VZU19ESVJ9LyR7c291cmNlTmFtZShzb3VyY2VVUkwpfSR7UkVWT0tFRF9TVUZGSVh9YDtcbn1cblxuLyoqIFdoZXJldmVyIHRoaXMgc291cmNlJ3MgcmV2b2tlIGtleSBhbHJlYWR5IGlzLCBvciBub3RoaW5nIGlmIGl0IGhhcyBub3QgYmVlbiBkZXJpdmVkIHlldC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kUmV2b2tlS2V5KHNvdXJjZVVSTDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IGZpbmRLZXkoeyBjdXJyZW50OiByZXZva2VLZXlQYXRoKHNvdXJjZVVSTCksIGxlZ2FjeTogbGVnYWN5UmV2b2tlS2V5UGF0aChzb3VyY2VVUkwpIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV2b2tlUmVwb1BhdGgoc291cmNlVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7UkVQT1NfRElSfS8ke3NvdXJjZU5hbWUoc291cmNlVVJMKX0ke1JFVk9LRURfU1VGRklYfWA7XG59XG5cbi8qKiBUaGUgcmV2b2tlIHJlcG8ncyBrZXksIHdvcmtlZCBvdXQgZnJvbSB0aGUgc291cmNlIHJlcG8ncyBrZXkuIEFueXRoaW5nIGhvbGRpbmcgdGhlIHNvdXJjZSBrZXlcbiAgICBjYW4gcHJvZHVjZSBpdCwgc28gaXQgbmV2ZXIgaGFzIHRvIGJlIHN0b3JlZCBhbnl3aGVyZSBzZXBhcmF0ZWx5IG9yIGhhbmRlZCBhcm91bmQuICovXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlUmV2b2tlS2V5KHNvdXJjZVByaXZhdGVLZXk6IHN0cmluZykge1xuICAgIGxldCBzb3VyY2UgPSBwYXJzZU9wZW5TU0hQcml2YXRlS2V5KHNvdXJjZVByaXZhdGVLZXkpO1xuICAgIGxldCBkZXJpdmVkID0gZGVyaXZlRWQyNTUxOUtleSh7IHNlZWQ6IHNvdXJjZS5zZWVkLCBsYWJlbDogUkVWT0tFX0tFWV9MQUJFTCB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwdWJsaWNLZXk6IGBzc2gtZWQyNTUxOSAke0J1ZmZlci5jb25jYXQoW1xuICAgICAgICAgICAgQnVmZmVyLmZyb20oWzAsIDAsIDAsIDExXSksIEJ1ZmZlci5mcm9tKFwic3NoLWVkMjU1MTlcIiksXG4gICAgICAgICAgICBCdWZmZXIuZnJvbShbMCwgMCwgMCwgMzJdKSwgZGVyaXZlZC5wdWJsaWNLZXksXG4gICAgICAgIF0pLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWAsXG4gICAgICAgIHByaXZhdGVLZXlGaWxlOiBmb3JtYXRPcGVuU1NIUHJpdmF0ZUtleSh7XG4gICAgICAgICAgICBzZWVkOiBkZXJpdmVkLnNlZWQsXG4gICAgICAgICAgICBjb21tZW50OiBgJHtzb3VyY2UuY29tbWVudCB8fCBcInBvcnRzZWN1cmVcIn0gJHtSRVZPS0VfS0VZX0xBQkVMfWAsXG4gICAgICAgIH0pLFxuICAgIH07XG59XG4iXX0=
|
|
57
|
-
/* _JS_SOURCE_HASH = "
|
|
57
|
+
/* _JS_SOURCE_HASH = "fa19b1fd43388ad835ac95f96f64acb37f8ebbc316741e6c48fc273ac174e1e7"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -77,4 +77,4 @@ async function describeMissingSourceKey(repoURL) {
|
|
|
77
77
|
}
|
|
78
78
|
exports.describeMissingSourceKey = describeMissingSourceKey;
|
|
79
79
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkRBQTZCO0FBQzdCLDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsZ0dBQWdHO0FBQ2hHLG1HQUFtRztBQUVuRyxrR0FBa0c7QUFDbEcsMENBQTBDO0FBQzdCLFFBQUEsYUFBYSxHQUFHLGlCQUFpQixDQUFDO0FBQy9DLGdHQUFnRztBQUNoRyx5QkFBeUI7QUFDWixRQUFBLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDO0FBQ25ELFFBQUEsU0FBUyxHQUFHLDJDQUEyQyxDQUFDO0FBRXJFLFNBQWdCLE9BQU87SUFDbkIsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxxQkFBYSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELDBCQUVDO0FBRUQ7MkZBQzJGO0FBQzNGLFNBQWdCLFVBQVUsQ0FBQyxPQUFlO0lBQ3RDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3hGLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxPQUFlO0lBQ3pDLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRkQsc0NBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxPQUFlO0lBQy9DLE9BQU8sR0FBRyw0QkFBb0IsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUM1RCxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUMxQyxPQUFPLEdBQUcsaUJBQVMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRkQsd0NBRUM7QUFFRDtpRkFDaUY7QUFDakY7O21GQUVtRjtBQUNuRixLQUFLLFVBQVUsT0FBTyxDQUFDLFFBQWdCO0lBQ25DLElBQUksS0FBSyxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELE9BQU8sQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxFQUFFLEtBQUksUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUEyQztJQUNyRSxPQUFPLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUZELDBCQUVDO0FBRUQ7OzJDQUUyQztBQUNwQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFBMkM7SUFDaEYsSUFBSSxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtRQUN0QyxJQUFJLEtBQUssR0FBRyxNQUFNLGtCQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLEdBQUcsUUFBUSxrQkFBa0IsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsUUFBUSxvRUFBb0UsQ0FBQztRQUMzRixDQUFDO1FBQ0QsT0FBTyxHQUFHLFFBQVEsdUJBQXVCLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUNyRixDQUFDO0FBWkQsZ0RBWUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFDLE9BQWU7SUFDL0MsT0FBTyxNQUFNLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRkQsc0NBRUM7QUFFTSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUMxRCxPQUFPLE1BQU0sa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0csQ0FBQztBQUZELDREQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuLy8gUE9SVEVEIENPREU6IG5vdGhpbmcgaGVyZSBpcyBkdXBsaWNhdGVkIGFueSBtb3JlLCB0aGUgZGFlbW9uIGltcG9ydHMgaXQgZGlyZWN0bHkuIEtlcHQgaW4gb25lXG4vLyBwbGFjZSBiZWNhdXNlIHRoZSBkYWVtb24gYW5kIHRoZSBkZXBsb3kgaGF2ZSB0byBhZ3JlZSBvbiB3aGVyZSBhIHNvdXJjZSdzIGtleSBhbmQgY2hlY2tvdXQgbGl2ZS5cblxuLy8gVGhlIHVzZXIncyBvd24gZm9sZGVyLCBzbyB0aGlzIHdvcmtzIHRoZSBzYW1lIG9uIGEgbWFjaGluZSB0aGF0IGhhcyBubyAvZXRjLiBUaGUgZGFlbW9uIHJ1bnMgYXNcbi8vIHJvb3QsIHNvIG9uIGEgaG9zdCB0aGlzIGlzIHJvb3QncyBob21lLlxuZXhwb3J0IGNvbnN0IEtFWVNfRElSX05BTUUgPSBcImF1dGhvcml6ZWRfa2V5c1wiO1xuLy8gV2hlcmUga2V5cyB1c2VkIHRvIGdvLiBTdGlsbCByZWFkLCBzbyBhIGhvc3Qgc2V0IHVwIGJlZm9yZSB0aGlzIGtlZXBzIHdvcmtpbmcsIGJ1dCBub3RoaW5nIGlzXG4vLyB3cml0dGVuIGhlcmUgYW55IG1vcmUuXG5leHBvcnQgY29uc3QgTEVHQUNZX1JFUE9fS0VZU19ESVIgPSBcIi9ldGMvcG9ydHNlY3VyZS9yZXBvLWtleXNcIjtcbmV4cG9ydCBjb25zdCBSRVBPU19ESVIgPSBcIi92YXIvbGliL3BvcnRzZWN1cmUvYXV0aG9yaXplZC1rZXlzLXJlcG9zXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXlzRGlyKCkge1xuICAgIHJldHVybiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCBLRVlTX0RJUl9OQU1FKTtcbn1cblxuLyoqIEEgcmVwbyB1cmwgcmVkdWNlZCB0byBzb21ldGhpbmcgdXNhYmxlIGFzIGEgZmlsZSBuYW1lLiBEZXJpdmVkIHJhdGhlciB0aGFuIGNvbmZpZ3VyZWQsIHNvIHRoZVxuICAgIGRhZW1vbiBhbmQgdGhlIGRlcGxveSBzY3JpcHQgYWx3YXlzIGFncmVlIG9uIHdoZXJlIGEgc291cmNlJ3Mga2V5IGFuZCBjaGVja291dCBsaXZlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZU5hbWUocmVwb1VSTDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlcG9VUkwucmVwbGFjZSgvW15BLVphLXowLTldKy9nLCBcIi1cIikucmVwbGFjZSgvXi0rfC0rJC9nLCBcIlwiKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc291cmNlS2V5UGF0aChyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKGtleXNEaXIoKSwgc291cmNlTmFtZShyZXBvVVJMKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWdhY3lTb3VyY2VLZXlQYXRoKHJlcG9VUkw6IHN0cmluZykge1xuICAgIHJldHVybiBgJHtMRUdBQ1lfUkVQT19LRVlTX0RJUn0vJHtzb3VyY2VOYW1lKHJlcG9VUkwpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VSZXBvUGF0aChyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7UkVQT1NfRElSfS8ke3NvdXJjZU5hbWUocmVwb1VSTCl9YDtcbn1cblxuLyoqIFRoZSBrZXkgZm9yIGEgc291cmNlLCB3aGVyZXZlciBpdCBoYXBwZW5zIHRvIGJlLiBUaGUgdXNlciBmb2xkZXIgaXMgd2hlcmUgdGhleSBnbyBub3csIGFuZCB0aGVcbiAgICBvbGQgbG9jYXRpb24gaXMgc3RpbGwgcmVhZCBzbyBhIGhvc3QgdGhhdCBwcmVkYXRlcyB0aGUgbW92ZSBrZWVwcyB3b3JraW5nLiAqL1xuLyoqIEEga2V5IGhhcyB0byBiZSB0aGUgZmlsZSBpdHNlbGYuIFNvbWV0aGluZyBlbHNlIG9mIHRoYXQgbmFtZSAtIG1vc3Qgb2Z0ZW4gYSBkaXJlY3Rvcnkgc29tZWJvZHlcbiAgICBtYWRlIHRvIHB1dCB0aGUga2V5IGluc2lkZSAtIGlzIG5vdCBhIGtleSwgYW5kIGFuc3dlcmluZyB3aXRoIGl0IG1lYW5zIHdob2V2ZXIgcmVhZHMgaXQgZ2V0c1xuICAgIFwiaWxsZWdhbCBvcGVyYXRpb24gb24gYSBkaXJlY3RvcnlcIiBpbnN0ZWFkIG9mIGJlaW5nIHRvbGQgdGhlIGtleSBpcyBtaXNzaW5nLiAqL1xuYXN5bmMgZnVuY3Rpb24ga2V5RmlsZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHN0YXRzID0gYXdhaXQgZnMuc3RhdChmaWxlUGF0aCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gc3RhdHM/LmlzRmlsZSgpICYmIGZpbGVQYXRoIHx8IFwiXCI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kS2V5KGNvbmZpZzogeyBjdXJyZW50OiBzdHJpbmc7IGxlZ2FjeTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYXdhaXQga2V5RmlsZShjb25maWcuY3VycmVudCkgfHwgYXdhaXQga2V5RmlsZShjb25maWcubGVnYWN5KTtcbn1cblxuLyoqIFdoYXQgaXMgYXQgZWFjaCBwbGFjZSB0aGUga2V5IGNvdWxkIGJlLCBmb3Igd2hvZXZlciBoYXMgdG8gYmUgdG9sZCBpdCB3YXMgbm90IGZvdW5kLiBcIk5vIHN1Y2hcbiAgICBmaWxlXCIgaXMgYSBsaWUgd2hlbiBhIGRpcmVjdG9yeSBvZiB0aGF0IG5hbWUgaXMgc2l0dGluZyByaWdodCB0aGVyZSwgYW5kIGl0IGlzIHRoZSBvbmUgY2FzZVxuICAgIHdoZXJlIHNheWluZyBzbyBpcyB0aGUgd2hvbGUgYW5zd2VyLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlc2NyaWJlTWlzc2luZ0tleShjb25maWc6IHsgY3VycmVudDogc3RyaW5nOyBsZWdhY3k6IHN0cmluZyB9KSB7XG4gICAgbGV0IGRlc2NyaWJlID0gYXN5bmMgKGZpbGVQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IHN0YXRzID0gYXdhaXQgZnMuc3RhdChmaWxlUGF0aCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKCFzdGF0cykge1xuICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVQYXRofSAobm90aGluZyB0aGVyZSlgO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7ZmlsZVBhdGh9IChhIGRpcmVjdG9yeSAtIHRoZSBrZXkgaGFzIHRvIEJFIHRoaXMgcGF0aCwgbm90IGEgZmlsZSBpbnNpZGUgaXQpYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7ZmlsZVBhdGh9IChub3QgYSByZWd1bGFyIGZpbGUpYDtcbiAgICB9O1xuICAgIHJldHVybiBgJHthd2FpdCBkZXNjcmliZShjb25maWcuY3VycmVudCl9LCBhbmQgJHthd2FpdCBkZXNjcmliZShjb25maWcubGVnYWN5KX1gO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZFNvdXJjZUtleShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgZmluZEtleSh7IGN1cnJlbnQ6IHNvdXJjZUtleVBhdGgocmVwb1VSTCksIGxlZ2FjeTogbGVnYWN5U291cmNlS2V5UGF0aChyZXBvVVJMKSB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlc2NyaWJlTWlzc2luZ1NvdXJjZUtleShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgZGVzY3JpYmVNaXNzaW5nS2V5KHsgY3VycmVudDogc291cmNlS2V5UGF0aChyZXBvVVJMKSwgbGVnYWN5OiBsZWdhY3lTb3VyY2VLZXlQYXRoKHJlcG9VUkwpIH0pO1xufVxuIl19
|
|
80
|
-
/* _JS_SOURCE_HASH = "
|
|
80
|
+
/* _JS_SOURCE_HASH = "14f67e8bb2d153197e29c99fd30dd3a2bf096e6fb62844dacbd01bbdf860c607"; */
|
|
@@ -30,6 +30,7 @@ exports.revocationIdentity = revocationIdentity;
|
|
|
30
30
|
On a machine that is already a portsecure host there may be no such credentials, but the source
|
|
31
31
|
deploy key is right there, and the key derived from it is one that repo definitely accepts. */
|
|
32
32
|
async function readRemoteRevocations(config) {
|
|
33
|
+
var _a;
|
|
33
34
|
let { sourceURL } = config;
|
|
34
35
|
let temporaryDirectory = await promises_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), "unrevoke-"));
|
|
35
36
|
let repoPath = path_1.default.join(temporaryDirectory, "repo");
|
|
@@ -50,16 +51,24 @@ async function readRemoteRevocations(config) {
|
|
|
50
51
|
}
|
|
51
52
|
let revocations = [];
|
|
52
53
|
let directory = path_1.default.join(repoPath, REVOCATIONS_DIR);
|
|
54
|
+
let names = [];
|
|
53
55
|
try {
|
|
54
|
-
|
|
55
|
-
if (name.endsWith(".json")) {
|
|
56
|
-
revocations.push(JSON.parse(await promises_1.default.readFile(path_1.default.join(directory, name), "utf8")));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
56
|
+
names = (await promises_1.default.readdir(directory)).sort();
|
|
59
57
|
}
|
|
60
58
|
catch (e) {
|
|
61
59
|
// No revocations directory at all just means nothing has ever been revoked.
|
|
62
60
|
}
|
|
61
|
+
for (let name of names) {
|
|
62
|
+
if (!name.endsWith(".json")) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
revocations.push(JSON.parse(await promises_1.default.readFile(path_1.default.join(directory, name), "utf8")));
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.log(`Ignoring unreadable revocation ${REVOCATIONS_DIR}/${name} in ${(0, revokeSource_1.revokeRepoURL)(sourceURL)}. ${(_a = e.stack) !== null && _a !== void 0 ? _a : e}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
63
72
|
await promises_1.default.rm(temporaryDirectory, { recursive: true, force: true });
|
|
64
73
|
return revocations;
|
|
65
74
|
}
|
|
@@ -118,5 +127,5 @@ async function revokedKeysInRepo(config) {
|
|
|
118
127
|
.map(revocation => ({ revocation, key: keys.find(key => (0, authorizedKeys_1.keyFingerprint)(key) === revocation.fingerprint) || "" }));
|
|
119
128
|
}
|
|
120
129
|
exports.revokedKeysInRepo = revokedKeysInRepo;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5yZXZva2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1bnJldm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixxREFBaUU7QUFDakUsaURBQWdFO0FBQ2hFLHVDQUEwQztBQUMxQyw0Q0FBZ0Q7QUFFbkMsUUFBQSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQXFCdEMsbUVBQW1FO0FBQ25FLFNBQWdCLFlBQVksQ0FBQyxVQUFzQjs7SUFDL0MsT0FBTyxVQUFVLENBQUMsRUFBRSxLQUFJLE1BQUEsVUFBVSxDQUFDLE9BQU8sMENBQUUsRUFBRSxDQUFBLElBQUksRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFGRCxvQ0FFQztBQUVELHNGQUFzRjtBQUN0RixTQUFnQixrQkFBa0IsQ0FBQyxVQUFzQjtJQUNyRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7QUFDaEUsQ0FBQztBQUZELGdEQUVDO0FBRUQ7Ozs7a0dBSWtHO0FBQzNGLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxNQUE2QjtJQUNyRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzNCLElBQUksa0JBQWtCLEdBQUcsTUFBTSxrQkFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLElBQUksUUFBUSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFBLDRCQUFhLEVBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLENB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RixDQUFDO0FBQ04sQ0FBQztBQUxELHdDQUtDO0FBRUQsa0ZBQWtGO0FBQzNFLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxNQUErQztJQUNuRixJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNyQyxJQUFJLFdBQVcsR0FBRyxNQUFNLHFCQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM3RCxJQUFJLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELElBQUksWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUQsSUFBSSxJQUFJLEdBQUcsSUFBQSw4QkFBYSxFQUFDLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RyxPQUFPLFlBQVk7U0FDZCxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBQSwrQkFBYyxFQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN0RixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBQSwrQkFBYyxFQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUgsQ0FBQztBQVRELDhDQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGtleUZpbmdlcnByaW50LCBub3JtYWxpemVLZXlzIH0gZnJvbSBcIi4vYXV0aG9yaXplZEtleXNcIjtcbmltcG9ydCB7IGRlcml2ZVJldm9rZUtleSwgcmV2b2tlUmVwb1VSTCB9IGZyb20gXCIuL3Jldm9rZVNvdXJjZVwiO1xuaW1wb3J0IHsgZmluZFNvdXJjZUtleSB9IGZyb20gXCIuL3NvdXJjZXNcIjtcbmltcG9ydCB7IHNwYXduUHJvbWlzZSB9IGZyb20gXCIuLi9oZWxwZXJzL3NwYXduXCI7XG5cbmV4cG9ydCBjb25zdCBVTlJFVk9LRVNfRElSID0gXCJ1bnJldm9rZWRcIjtcbmNvbnN0IFJFVk9DQVRJT05TX0RJUiA9IFwicmV2b2NhdGlvbnNcIjtcblxuLyoqIE9uZSByZXZvY2F0aW9uIGV2ZW50LiBFaXRoZXIgYW4gc3NoIGtleSB1c2VkIGZyb20gYW4gYWRkcmVzcyBpdCBpcyBub3QgYWxsb3dlZCBmcm9tLCBvciBhXG4gICAgbWFjaGluZSB0aGF0IHRhbGtlZCB0byB1cyBmcm9tIG9uZS4gQm90aCBhcmUgdGhlIHNhbWUgc2hhcGUgLSBhbiBpZGVudGl0eSBhbmQgYW4gYWRkcmVzcyAtIGFuZFxuICAgIGFuIHVucmV2b2tlIHVuZG9lcyBlaXRoZXIgYnkgYWxsb3dpbmcgdGhhdCBzYW1lIHBhaXIuXG5cbiAgICBXaGljaCBpcyB3aHkgdW5yZXZva2luZyBuZXZlciBtYWtlcyBhbnl0aGluZyB1bnJldm9rYWJsZTogdXNlZCBmcm9tIHNvbWUgb3RoZXIgYWRkcmVzcywgaXQgaXNcbiAgICByZXZva2VkIGFnYWluLCB1bmRlciBhIG5ldyBpZCBubyBleGlzdGluZyB1bnJldm9rZSBuYW1lcy4gKi9cbmV4cG9ydCB0eXBlIFJldm9jYXRpb24gPSB7XG4gICAgcmV2b2NhdGlvbklkOiBzdHJpbmc7XG4gICAgLy8gRXhhY3RseSBvbmUgb2YgdGhlc2UuIEEga2V5IHJldm9jYXRpb24gbmFtZXMgYSBmaW5nZXJwcmludCwgYSBtYWNoaW5lIHJldm9jYXRpb24gYSBtYWNoaW5lSWQuXG4gICAgZmluZ2VycHJpbnQ/OiBzdHJpbmc7XG4gICAgbWFjaGluZUlkPzogc3RyaW5nO1xuICAgIGlwPzogc3RyaW5nO1xuICAgIGtleT86IHN0cmluZztcbiAgICByZXZva2VkQXQ/OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5Pzogc3RyaW5nO1xuICAgIHJlYXNvbj86IHN0cmluZztcbiAgICBhdHRlbXB0PzogeyBpcD86IHN0cmluZzsgdXNlcj86IHN0cmluZzsgcmVxdWlyZWQ/OiBzdHJpbmcgfTtcbn07XG5cbi8qKiBPbGRlciByZXZvY2F0aW9uIGZpbGVzIGNhcnJ5IHRoZSBhZGRyZXNzIHVuZGVyIGF0dGVtcHQgb25seS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXZvY2F0aW9uSVAocmV2b2NhdGlvbjogUmV2b2NhdGlvbikge1xuICAgIHJldHVybiByZXZvY2F0aW9uLmlwIHx8IHJldm9jYXRpb24uYXR0ZW1wdD8uaXAgfHwgXCJcIjtcbn1cblxuLyoqIFdoYXQgdGhlIHJldm9jYXRpb24gaXMgYWJvdXQsIHdoaWNoIGlzIHdoYXQgYW4gdW5yZXZva2UgaGFzIHRvIG5hbWUgdG8gdW5kbyBpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXZvY2F0aW9uSWRlbnRpdHkocmV2b2NhdGlvbjogUmV2b2NhdGlvbikge1xuICAgIHJldHVybiByZXZvY2F0aW9uLmZpbmdlcnByaW50IHx8IHJldm9jYXRpb24ubWFjaGluZUlkIHx8IFwiXCI7XG59XG5cbi8qKiBFdmVyeSByZXZvY2F0aW9uIHRoZSByZXZva2UgcmVwbyBsaXN0cy4gQ2xvbmVkIHJlYWQgb25seSBpbnRvIGEgdGVtcCBkaXJlY3RvcnkuXG5cbiAgICBBIHBlcnNvbiBydW5uaW5nIHRoaXMgaGFzIHRoZWlyIG93biBhY2Nlc3MgdG8gdGhlIHJlcG8sIHNvIHRoZWlyIGNyZWRlbnRpYWxzIGFyZSB3aGF0IGlzIHVzZWQuXG4gICAgT24gYSBtYWNoaW5lIHRoYXQgaXMgYWxyZWFkeSBhIHBvcnRzZWN1cmUgaG9zdCB0aGVyZSBtYXkgYmUgbm8gc3VjaCBjcmVkZW50aWFscywgYnV0IHRoZSBzb3VyY2VcbiAgICBkZXBsb3kga2V5IGlzIHJpZ2h0IHRoZXJlLCBhbmQgdGhlIGtleSBkZXJpdmVkIGZyb20gaXQgaXMgb25lIHRoYXQgcmVwbyBkZWZpbml0ZWx5IGFjY2VwdHMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFJlbW90ZVJldm9jYXRpb25zKGNvbmZpZzogeyBzb3VyY2VVUkw6IHN0cmluZyB9KSB7XG4gICAgbGV0IHsgc291cmNlVVJMIH0gPSBjb25maWc7XG4gICAgbGV0IHRlbXBvcmFyeURpcmVjdG9yeSA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInVucmV2b2tlLVwiKSk7XG4gICAgbGV0IHJlcG9QYXRoID0gcGF0aC5qb2luKHRlbXBvcmFyeURpcmVjdG9yeSwgXCJyZXBvXCIpO1xuICAgIGxldCBjbG9uZUFyZ3MgPSBbXCJjbG9uZVwiLCBcIi0tZGVwdGhcIiwgXCIxXCIsIHJldm9rZVJlcG9VUkwoc291cmNlVVJMKSwgcmVwb1BhdGhdO1xuICAgIGxldCBzb3VyY2VLZXkgPSBhd2FpdCBmaW5kU291cmNlS2V5KHNvdXJjZVVSTCk7XG4gICAgaWYgKHNvdXJjZUtleSkge1xuICAgICAgICBsZXQgZGVyaXZlZCA9IGRlcml2ZVJldm9rZUtleShhd2FpdCBmcy5yZWFkRmlsZShzb3VyY2VLZXksIFwidXRmOFwiKSk7XG4gICAgICAgIGxldCBkZXJpdmVkS2V5UGF0aCA9IHBhdGguam9pbih0ZW1wb3JhcnlEaXJlY3RvcnksIFwia2V5XCIpO1xuICAgICAgICBhd2FpdCBmcy53cml0ZUZpbGUoZGVyaXZlZEtleVBhdGgsIGRlcml2ZWQucHJpdmF0ZUtleUZpbGUsIHsgbW9kZTogMG82MDAgfSk7XG4gICAgICAgIGxldCBzc2hDb21tYW5kID0gYHNzaCAtaSAke2Rlcml2ZWRLZXlQYXRofSAtbyBJZGVudGl0aWVzT25seT15ZXMgLW8gQmF0Y2hNb2RlPXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9YWNjZXB0LW5ld2A7XG4gICAgICAgIGNsb25lQXJncyA9IFtcIi1jXCIsIGBjb3JlLnNzaENvbW1hbmQ9JHtzc2hDb21tYW5kfWAsIC4uLmNsb25lQXJnc107XG4gICAgfVxuICAgIGxldCBjbG9uZSA9IGF3YWl0IHNwYXduUHJvbWlzZSh7IGNvbW1hbmQ6IFwiZ2l0XCIsIGFyZ3M6IGNsb25lQXJncyB9KTtcbiAgICBpZiAoY2xvbmUuc3RhdHVzICE9PSAwKSB7XG4gICAgICAgIGF3YWl0IGZzLnJtKHRlbXBvcmFyeURpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgRXhwZWN0ZWQgdG8gYmUgYWJsZSB0byByZWFkICR7cmV2b2tlUmVwb1VSTChzb3VyY2VVUkwpfS5cXG5gXG4gICAgICAgICAgICArIGAkeyhjbG9uZS5zdGRvdXQgKyBjbG9uZS5zdGRlcnIpLnRyaW0oKX1gXG4gICAgICAgICk7XG4gICAgfVxuICAgIGxldCByZXZvY2F0aW9uczogUmV2b2NhdGlvbltdID0gW107XG4gICAgbGV0IGRpcmVjdG9yeSA9IHBhdGguam9pbihyZXBvUGF0aCwgUkVWT0NBVElPTlNfRElSKTtcbiAgICB0cnkge1xuICAgICAgICBmb3IgKGxldCBuYW1lIG9mIChhd2FpdCBmcy5yZWFkZGlyKGRpcmVjdG9yeSkpLnNvcnQoKSkge1xuICAgICAgICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIHJldm9jYXRpb25zLnB1c2goSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LCBuYW1lKSwgXCJ1dGY4XCIpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vIHJldm9jYXRpb25zIGRpcmVjdG9yeSBhdCBhbGwganVzdCBtZWFucyBub3RoaW5nIGhhcyBldmVyIGJlZW4gcmV2b2tlZC5cbiAgICB9XG4gICAgYXdhaXQgZnMucm0odGVtcG9yYXJ5RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgcmV0dXJuIHJldm9jYXRpb25zO1xufVxuXG4vKiogV2hhdCB0aGUgdW5yZXZva2VzIGFscmVhZHkgaW4gYSByZXBvIGFsbG93OiBcIjxpZGVudGl0eT4gPGFkZHJlc3M+XCIgZm9yIGVhY2ggcGFpciwgcGx1cyB0aGUgYmFyZVxuICAgIHJldm9jYXRpb24gaWRzIHRoZSBvbGRlciBmb3JtYXQgbmFtZWQuXG5cbiAgICBSZWFkIG91dCBvZiB0aGUgcmVwbyByYXRoZXIgdGhhbiBvdXQgb2YgdGhlIGRhZW1vbidzIGFic29yYmVkIHN0YXRlLCBiZWNhdXNlIHdob2V2ZXIgcnVucyBhIGNsaVxuICAgIGlzIGxvb2tpbmcgYXQgYSBjaGVja291dCBhbmQgaGFzIG5vIGRhZW1vbiBpbiB0aGUgcHJvY2VzcyB0byBhc2suICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFVucmV2b2tlZEluUmVwbyhyZXBvUGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHVucmV2b2tlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBkaXJlY3RvcnkgPSBwYXRoLmpvaW4ocmVwb1BhdGgsIFVOUkVWT0tFU19ESVIpO1xuICAgICAgICBmb3IgKGxldCBuYW1lIG9mIGF3YWl0IGZzLnJlYWRkaXIoZGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgaWYgKCFuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpLCBcInV0ZjhcIikpO1xuICAgICAgICAgICAgZm9yIChsZXQgYWxsb3dlZCBvZiBwYXJzZWQuYWxsb3dlZCB8fCBbXSkge1xuICAgICAgICAgICAgICAgIGxldCBpZGVudGl0eSA9IGFsbG93ZWQuZmluZ2VycHJpbnQgfHwgYWxsb3dlZC5tYWNoaW5lSWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkZW50aXR5ICYmIGFsbG93ZWQuaXApIHtcbiAgICAgICAgICAgICAgICAgICAgdW5yZXZva2VkLmFkZChgJHtpZGVudGl0eX0gJHthbGxvd2VkLmlwfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE5hbWVkIGlkcywgZm9yIHRoZSB1bnJldm9rZXMgd3JpdHRlbiBiZWZvcmUgdGhpcyB3YXMgYWJvdXQgcGFpcnMuXG4gICAgICAgICAgICBmb3IgKGxldCByZXZvY2F0aW9uSWQgb2YgcGFyc2VkLnJldm9jYXRpb25JZHMgfHwgW10pIHtcbiAgICAgICAgICAgICAgICB1bnJldm9rZWQuYWRkKHJldm9jYXRpb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vdGhpbmcgaGFzIGJlZW4gdW5yZXZva2VkLlxuICAgIH1cbiAgICByZXR1cm4gdW5yZXZva2VkO1xufVxuXG4vKiogVGhlIHJldm9jYXRpb25zIHRob3NlIHVucmV2b2tlcyBoYXZlIG5vdCBhbHJlYWR5IHVuZG9uZS5cblxuICAgIE1hdGNoZWQgb24gcmV2b2NhdGlvbklkZW50aXR5LCBub3Qgb24gZmluZ2VycHJpbnQ6IGEgbWFjaGluZSByZXZvY2F0aW9uIGNhcnJpZXMgYSBtYWNoaW5lSWQgYW5kXG4gICAgbm8gZmluZ2VycHJpbnQsIHNvIGNvbXBhcmluZyBmaW5nZXJwcmludHMgbGVhdmVzIGV2ZXJ5IG1hY2hpbmUgbG9va2luZyByZXZva2VkIGZvcmV2ZXIgbm8gbWF0dGVyXG4gICAgaG93IG1hbnkgdGltZXMgaXQgaXMgdW5yZXZva2VkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWxsUmV2b2tlZEJ5KHJldm9jYXRpb25zOiBSZXZvY2F0aW9uW10sIHVucmV2b2tlZDogU2V0PHN0cmluZz4pIHtcbiAgICByZXR1cm4gcmV2b2NhdGlvbnMuZmlsdGVyKHJldm9jYXRpb24gPT5cbiAgICAgICAgIXVucmV2b2tlZC5oYXMocmV2b2NhdGlvbi5yZXZvY2F0aW9uSWQpXG4gICAgICAgICYmICF1bnJldm9rZWQuaGFzKGAke3Jldm9jYXRpb25JZGVudGl0eShyZXZvY2F0aW9uKX0gJHtyZXZvY2F0aW9uSVAocmV2b2NhdGlvbil9YClcbiAgICApO1xufVxuXG4vKiogV2hpY2gga2V5cyBpbiBhIHJlcG8gYXJlIHJldm9rZWQuIFdoYXQgc2lnbmZpbGVzIGFuZCBzZWN1cmVzc2ggcmVmdXNlIG92ZXIuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV2b2tlZEtleXNJblJlcG8oY29uZmlnOiB7IHJlcG9QYXRoOiBzdHJpbmc7IHNvdXJjZVVSTDogc3RyaW5nIH0pIHtcbiAgICBsZXQgeyByZXBvUGF0aCwgc291cmNlVVJMIH0gPSBjb25maWc7XG4gICAgbGV0IHJldm9jYXRpb25zID0gYXdhaXQgcmVhZFJlbW90ZVJldm9jYXRpb25zKHsgc291cmNlVVJMIH0pO1xuICAgIGxldCB1bnJldm9rZWQgPSBhd2FpdCByZWFkVW5yZXZva2VkSW5SZXBvKHJlcG9QYXRoKTtcbiAgICBsZXQgc3RpbGxSZXZva2VkID0gc3RpbGxSZXZva2VkQnkocmV2b2NhdGlvbnMsIHVucmV2b2tlZCk7XG4gICAgbGV0IGtleXMgPSBub3JtYWxpemVLZXlzKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihyZXBvUGF0aCwgXCJhdXRob3JpemVkX2tleXNcIiksIFwidXRmOFwiKS5jYXRjaCgoKSA9PiBcIlwiKSk7XG4gICAgcmV0dXJuIHN0aWxsUmV2b2tlZFxuICAgICAgICAuZmlsdGVyKHJldm9jYXRpb24gPT4ga2V5cy5zb21lKGtleSA9PiBrZXlGaW5nZXJwcmludChrZXkpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KSlcbiAgICAgICAgLm1hcChyZXZvY2F0aW9uID0+ICh7IHJldm9jYXRpb24sIGtleToga2V5cy5maW5kKGtleSA9PiBrZXlGaW5nZXJwcmludChrZXkpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KSB8fCBcIlwiIH0pKTtcbn1cbiJdfQ==
|
|
122
|
-
/* _JS_SOURCE_HASH = "
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5yZXZva2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1bnJldm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixxREFBaUU7QUFDakUsaURBQWdFO0FBQ2hFLHVDQUEwQztBQUMxQyw0Q0FBZ0Q7QUFFbkMsUUFBQSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQXFCdEMsbUVBQW1FO0FBQ25FLFNBQWdCLFlBQVksQ0FBQyxVQUFzQjs7SUFDL0MsT0FBTyxVQUFVLENBQUMsRUFBRSxLQUFJLE1BQUEsVUFBVSxDQUFDLE9BQU8sMENBQUUsRUFBRSxDQUFBLElBQUksRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFGRCxvQ0FFQztBQUVELHNGQUFzRjtBQUN0RixTQUFnQixrQkFBa0IsQ0FBQyxVQUFzQjtJQUNyRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7QUFDaEUsQ0FBQztBQUZELGdEQUVDO0FBRUQ7Ozs7a0dBSWtHO0FBQzNGLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxNQUE2Qjs7SUFDckUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMzQixJQUFJLGtCQUFrQixHQUFHLE1BQU0sa0JBQUUsQ0FBQyxPQUFPLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMvRSxJQUFJLFFBQVEsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELElBQUksU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBQSw0QkFBYSxFQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxD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QyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUEsK0JBQWMsRUFBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFILENBQUM7QUFURCw4Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBrZXlGaW5nZXJwcmludCwgbm9ybWFsaXplS2V5cyB9IGZyb20gXCIuL2F1dGhvcml6ZWRLZXlzXCI7XG5pbXBvcnQgeyBkZXJpdmVSZXZva2VLZXksIHJldm9rZVJlcG9VUkwgfSBmcm9tIFwiLi9yZXZva2VTb3VyY2VcIjtcbmltcG9ydCB7IGZpbmRTb3VyY2VLZXkgfSBmcm9tIFwiLi9zb3VyY2VzXCI7XG5pbXBvcnQgeyBzcGF3blByb21pc2UgfSBmcm9tIFwiLi4vaGVscGVycy9zcGF3blwiO1xuXG5leHBvcnQgY29uc3QgVU5SRVZPS0VTX0RJUiA9IFwidW5yZXZva2VkXCI7XG5jb25zdCBSRVZPQ0FUSU9OU19ESVIgPSBcInJldm9jYXRpb25zXCI7XG5cbi8qKiBPbmUgcmV2b2NhdGlvbiBldmVudC4gRWl0aGVyIGFuIHNzaCBrZXkgdXNlZCBmcm9tIGFuIGFkZHJlc3MgaXQgaXMgbm90IGFsbG93ZWQgZnJvbSwgb3IgYVxuICAgIG1hY2hpbmUgdGhhdCB0YWxrZWQgdG8gdXMgZnJvbSBvbmUuIEJvdGggYXJlIHRoZSBzYW1lIHNoYXBlIC0gYW4gaWRlbnRpdHkgYW5kIGFuIGFkZHJlc3MgLSBhbmRcbiAgICBhbiB1bnJldm9rZSB1bmRvZXMgZWl0aGVyIGJ5IGFsbG93aW5nIHRoYXQgc2FtZSBwYWlyLlxuXG4gICAgV2hpY2ggaXMgd2h5IHVucmV2b2tpbmcgbmV2ZXIgbWFrZXMgYW55dGhpbmcgdW5yZXZva2FibGU6IHVzZWQgZnJvbSBzb21lIG90aGVyIGFkZHJlc3MsIGl0IGlzXG4gICAgcmV2b2tlZCBhZ2FpbiwgdW5kZXIgYSBuZXcgaWQgbm8gZXhpc3RpbmcgdW5yZXZva2UgbmFtZXMuICovXG5leHBvcnQgdHlwZSBSZXZvY2F0aW9uID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIC8vIEV4YWN0bHkgb25lIG9mIHRoZXNlLiBBIGtleSByZXZvY2F0aW9uIG5hbWVzIGEgZmluZ2VycHJpbnQsIGEgbWFjaGluZSByZXZvY2F0aW9uIGEgbWFjaGluZUlkLlxuICAgIGZpbmdlcnByaW50Pzogc3RyaW5nO1xuICAgIG1hY2hpbmVJZD86IHN0cmluZztcbiAgICBpcD86IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgcmV2b2tlZEF0Pzogc3RyaW5nO1xuICAgIHJldm9rZWRCeT86IHN0cmluZztcbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgYXR0ZW1wdD86IHsgaXA/OiBzdHJpbmc7IHVzZXI/OiBzdHJpbmc7IHJlcXVpcmVkPzogc3RyaW5nIH07XG59O1xuXG4vKiogT2xkZXIgcmV2b2NhdGlvbiBmaWxlcyBjYXJyeSB0aGUgYWRkcmVzcyB1bmRlciBhdHRlbXB0IG9ubHkuICovXG5leHBvcnQgZnVuY3Rpb24gcmV2b2NhdGlvbklQKHJldm9jYXRpb246IFJldm9jYXRpb24pIHtcbiAgICByZXR1cm4gcmV2b2NhdGlvbi5pcCB8fCByZXZvY2F0aW9uLmF0dGVtcHQ/LmlwIHx8IFwiXCI7XG59XG5cbi8qKiBXaGF0IHRoZSByZXZvY2F0aW9uIGlzIGFib3V0LCB3aGljaCBpcyB3aGF0IGFuIHVucmV2b2tlIGhhcyB0byBuYW1lIHRvIHVuZG8gaXQuICovXG5leHBvcnQgZnVuY3Rpb24gcmV2b2NhdGlvbklkZW50aXR5KHJldm9jYXRpb246IFJldm9jYXRpb24pIHtcbiAgICByZXR1cm4gcmV2b2NhdGlvbi5maW5nZXJwcmludCB8fCByZXZvY2F0aW9uLm1hY2hpbmVJZCB8fCBcIlwiO1xufVxuXG4vKiogRXZlcnkgcmV2b2NhdGlvbiB0aGUgcmV2b2tlIHJlcG8gbGlzdHMuIENsb25lZCByZWFkIG9ubHkgaW50byBhIHRlbXAgZGlyZWN0b3J5LlxuXG4gICAgQSBwZXJzb24gcnVubmluZyB0aGlzIGhhcyB0aGVpciBvd24gYWNjZXNzIHRvIHRoZSByZXBvLCBzbyB0aGVpciBjcmVkZW50aWFscyBhcmUgd2hhdCBpcyB1c2VkLlxuICAgIE9uIGEgbWFjaGluZSB0aGF0IGlzIGFscmVhZHkgYSBwb3J0c2VjdXJlIGhvc3QgdGhlcmUgbWF5IGJlIG5vIHN1Y2ggY3JlZGVudGlhbHMsIGJ1dCB0aGUgc291cmNlXG4gICAgZGVwbG95IGtleSBpcyByaWdodCB0aGVyZSwgYW5kIHRoZSBrZXkgZGVyaXZlZCBmcm9tIGl0IGlzIG9uZSB0aGF0IHJlcG8gZGVmaW5pdGVseSBhY2NlcHRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRSZW1vdGVSZXZvY2F0aW9ucyhjb25maWc6IHsgc291cmNlVVJMOiBzdHJpbmcgfSkge1xuICAgIGxldCB7IHNvdXJjZVVSTCB9ID0gY29uZmlnO1xuICAgIGxldCB0ZW1wb3JhcnlEaXJlY3RvcnkgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJ1bnJldm9rZS1cIikpO1xuICAgIGxldCByZXBvUGF0aCA9IHBhdGguam9pbih0ZW1wb3JhcnlEaXJlY3RvcnksIFwicmVwb1wiKTtcbiAgICBsZXQgY2xvbmVBcmdzID0gW1wiY2xvbmVcIiwgXCItLWRlcHRoXCIsIFwiMVwiLCByZXZva2VSZXBvVVJMKHNvdXJjZVVSTCksIHJlcG9QYXRoXTtcbiAgICBsZXQgc291cmNlS2V5ID0gYXdhaXQgZmluZFNvdXJjZUtleShzb3VyY2VVUkwpO1xuICAgIGlmIChzb3VyY2VLZXkpIHtcbiAgICAgICAgbGV0IGRlcml2ZWQgPSBkZXJpdmVSZXZva2VLZXkoYXdhaXQgZnMucmVhZEZpbGUoc291cmNlS2V5LCBcInV0ZjhcIikpO1xuICAgICAgICBsZXQgZGVyaXZlZEtleVBhdGggPSBwYXRoLmpvaW4odGVtcG9yYXJ5RGlyZWN0b3J5LCBcImtleVwiKTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGRlcml2ZWRLZXlQYXRoLCBkZXJpdmVkLnByaXZhdGVLZXlGaWxlLCB7IG1vZGU6IDBvNjAwIH0pO1xuICAgICAgICBsZXQgc3NoQ29tbWFuZCA9IGBzc2ggLWkgJHtkZXJpdmVkS2V5UGF0aH0gLW8gSWRlbnRpdGllc09ubHk9eWVzIC1vIEJhdGNoTW9kZT15ZXMgLW8gU3RyaWN0SG9zdEtleUNoZWNraW5nPWFjY2VwdC1uZXdgO1xuICAgICAgICBjbG9uZUFyZ3MgPSBbXCItY1wiLCBgY29yZS5zc2hDb21tYW5kPSR7c3NoQ29tbWFuZH1gLCAuLi5jbG9uZUFyZ3NdO1xuICAgIH1cbiAgICBsZXQgY2xvbmUgPSBhd2FpdCBzcGF3blByb21pc2UoeyBjb21tYW5kOiBcImdpdFwiLCBhcmdzOiBjbG9uZUFyZ3MgfSk7XG4gICAgaWYgKGNsb25lLnN0YXR1cyAhPT0gMCkge1xuICAgICAgICBhd2FpdCBmcy5ybSh0ZW1wb3JhcnlEaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEV4cGVjdGVkIHRvIGJlIGFibGUgdG8gcmVhZCAke3Jldm9rZVJlcG9VUkwoc291cmNlVVJMKX0uXFxuYFxuICAgICAgICAgICAgKyBgJHsoY2xvbmUuc3Rkb3V0ICsgY2xvbmUuc3RkZXJyKS50cmltKCl9YFxuICAgICAgICApO1xuICAgIH1cbiAgICBsZXQgcmV2b2NhdGlvbnM6IFJldm9jYXRpb25bXSA9IFtdO1xuICAgIGxldCBkaXJlY3RvcnkgPSBwYXRoLmpvaW4ocmVwb1BhdGgsIFJFVk9DQVRJT05TX0RJUik7XG4gICAgbGV0IG5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICAgIG5hbWVzID0gKGF3YWl0IGZzLnJlYWRkaXIoZGlyZWN0b3J5KSkuc29ydCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gTm8gcmV2b2NhdGlvbnMgZGlyZWN0b3J5IGF0IGFsbCBqdXN0IG1lYW5zIG5vdGhpbmcgaGFzIGV2ZXIgYmVlbiByZXZva2VkLlxuICAgIH1cbiAgICBmb3IgKGxldCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV2b2NhdGlvbnMucHVzaChKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpLCBcInV0ZjhcIikpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIHVucmVhZGFibGUgcmV2b2NhdGlvbiAke1JFVk9DQVRJT05TX0RJUn0vJHtuYW1lfSBpbiAke3Jldm9rZVJlcG9VUkwoc291cmNlVVJMKX0uICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgZnMucm0odGVtcG9yYXJ5RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgcmV0dXJuIHJldm9jYXRpb25zO1xufVxuXG4vKiogV2hhdCB0aGUgdW5yZXZva2VzIGFscmVhZHkgaW4gYSByZXBvIGFsbG93OiBcIjxpZGVudGl0eT4gPGFkZHJlc3M+XCIgZm9yIGVhY2ggcGFpciwgcGx1cyB0aGUgYmFyZVxuICAgIHJldm9jYXRpb24gaWRzIHRoZSBvbGRlciBmb3JtYXQgbmFtZWQuXG5cbiAgICBSZWFkIG91dCBvZiB0aGUgcmVwbyByYXRoZXIgdGhhbiBvdXQgb2YgdGhlIGRhZW1vbidzIGFic29yYmVkIHN0YXRlLCBiZWNhdXNlIHdob2V2ZXIgcnVucyBhIGNsaVxuICAgIGlzIGxvb2tpbmcgYXQgYSBjaGVja291dCBhbmQgaGFzIG5vIGRhZW1vbiBpbiB0aGUgcHJvY2VzcyB0byBhc2suICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFVucmV2b2tlZEluUmVwbyhyZXBvUGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHVucmV2b2tlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBkaXJlY3RvcnkgPSBwYXRoLmpvaW4ocmVwb1BhdGgsIFVOUkVWT0tFU19ESVIpO1xuICAgICAgICBmb3IgKGxldCBuYW1lIG9mIGF3YWl0IGZzLnJlYWRkaXIoZGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgaWYgKCFuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpLCBcInV0ZjhcIikpO1xuICAgICAgICAgICAgZm9yIChsZXQgYWxsb3dlZCBvZiBwYXJzZWQuYWxsb3dlZCB8fCBbXSkge1xuICAgICAgICAgICAgICAgIGxldCBpZGVudGl0eSA9IGFsbG93ZWQuZmluZ2VycHJpbnQgfHwgYWxsb3dlZC5tYWNoaW5lSWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkZW50aXR5ICYmIGFsbG93ZWQuaXApIHtcbiAgICAgICAgICAgICAgICAgICAgdW5yZXZva2VkLmFkZChgJHtpZGVudGl0eX0gJHthbGxvd2VkLmlwfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE5hbWVkIGlkcywgZm9yIHRoZSB1bnJldm9rZXMgd3JpdHRlbiBiZWZvcmUgdGhpcyB3YXMgYWJvdXQgcGFpcnMuXG4gICAgICAgICAgICBmb3IgKGxldCByZXZvY2F0aW9uSWQgb2YgcGFyc2VkLnJldm9jYXRpb25JZHMgfHwgW10pIHtcbiAgICAgICAgICAgICAgICB1bnJldm9rZWQuYWRkKHJldm9jYXRpb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vdGhpbmcgaGFzIGJlZW4gdW5yZXZva2VkLlxuICAgIH1cbiAgICByZXR1cm4gdW5yZXZva2VkO1xufVxuXG4vKiogVGhlIHJldm9jYXRpb25zIHRob3NlIHVucmV2b2tlcyBoYXZlIG5vdCBhbHJlYWR5IHVuZG9uZS5cblxuICAgIE1hdGNoZWQgb24gcmV2b2NhdGlvbklkZW50aXR5LCBub3Qgb24gZmluZ2VycHJpbnQ6IGEgbWFjaGluZSByZXZvY2F0aW9uIGNhcnJpZXMgYSBtYWNoaW5lSWQgYW5kXG4gICAgbm8gZmluZ2VycHJpbnQsIHNvIGNvbXBhcmluZyBmaW5nZXJwcmludHMgbGVhdmVzIGV2ZXJ5IG1hY2hpbmUgbG9va2luZyByZXZva2VkIGZvcmV2ZXIgbm8gbWF0dGVyXG4gICAgaG93IG1hbnkgdGltZXMgaXQgaXMgdW5yZXZva2VkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWxsUmV2b2tlZEJ5KHJldm9jYXRpb25zOiBSZXZvY2F0aW9uW10sIHVucmV2b2tlZDogU2V0PHN0cmluZz4pIHtcbiAgICByZXR1cm4gcmV2b2NhdGlvbnMuZmlsdGVyKHJldm9jYXRpb24gPT5cbiAgICAgICAgIXVucmV2b2tlZC5oYXMocmV2b2NhdGlvbi5yZXZvY2F0aW9uSWQpXG4gICAgICAgICYmICF1bnJldm9rZWQuaGFzKGAke3Jldm9jYXRpb25JZGVudGl0eShyZXZvY2F0aW9uKX0gJHtyZXZvY2F0aW9uSVAocmV2b2NhdGlvbil9YClcbiAgICApO1xufVxuXG4vKiogV2hpY2gga2V5cyBpbiBhIHJlcG8gYXJlIHJldm9rZWQuIFdoYXQgc2lnbmZpbGVzIGFuZCBzZWN1cmVzc2ggcmVmdXNlIG92ZXIuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV2b2tlZEtleXNJblJlcG8oY29uZmlnOiB7IHJlcG9QYXRoOiBzdHJpbmc7IHNvdXJjZVVSTDogc3RyaW5nIH0pIHtcbiAgICBsZXQgeyByZXBvUGF0aCwgc291cmNlVVJMIH0gPSBjb25maWc7XG4gICAgbGV0IHJldm9jYXRpb25zID0gYXdhaXQgcmVhZFJlbW90ZVJldm9jYXRpb25zKHsgc291cmNlVVJMIH0pO1xuICAgIGxldCB1bnJldm9rZWQgPSBhd2FpdCByZWFkVW5yZXZva2VkSW5SZXBvKHJlcG9QYXRoKTtcbiAgICBsZXQgc3RpbGxSZXZva2VkID0gc3RpbGxSZXZva2VkQnkocmV2b2NhdGlvbnMsIHVucmV2b2tlZCk7XG4gICAgbGV0IGtleXMgPSBub3JtYWxpemVLZXlzKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihyZXBvUGF0aCwgXCJhdXRob3JpemVkX2tleXNcIiksIFwidXRmOFwiKS5jYXRjaCgoKSA9PiBcIlwiKSk7XG4gICAgcmV0dXJuIHN0aWxsUmV2b2tlZFxuICAgICAgICAuZmlsdGVyKHJldm9jYXRpb24gPT4ga2V5cy5zb21lKGtleSA9PiBrZXlGaW5nZXJwcmludChrZXkpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KSlcbiAgICAgICAgLm1hcChyZXZvY2F0aW9uID0+ICh7IHJldm9jYXRpb24sIGtleToga2V5cy5maW5kKGtleSA9PiBrZXlGaW5nZXJwcmludChrZXkpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KSB8fCBcIlwiIH0pKTtcbn1cbiJdfQ==
|
|
131
|
+
/* _JS_SOURCE_HASH = "da8eed43c07e7e245d4bd1faa31ac2bb8b6d6b2fd8b6e9d03b9cc030ffbb46af"; */
|