@lifeready/core 7.0.4 → 7.1.2
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/bundles/lifeready-core.umd.js +356 -49
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +22 -1
- package/esm2015/lib/item/item.gql.private.js +19 -1
- package/esm2015/lib/item/item.service.js +22 -2
- package/esm2015/lib/key/key-graph.service.js +9 -3
- package/esm2015/lib/trusted-party/trusted-party.gql.js +69 -1
- package/esm2015/lib/trusted-party/trusted-party.service.js +166 -17
- package/esm2015/lib/trusted-party/trusted-party.types.js +1 -1
- package/fesm2015/lifeready-core.js +299 -17
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/api/types/lr-graphql.types.d.ts +42 -16
- package/lib/item/item.gql.private.d.ts +16 -0
- package/lib/item/item.service.d.ts +2 -0
- package/lib/trusted-party/trusted-party.gql.d.ts +60 -0
- package/lib/trusted-party/trusted-party.service.d.ts +70 -5
- package/lib/trusted-party/trusted-party.types.d.ts +17 -1
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -10,14 +10,35 @@ export var PlanState;
|
|
|
10
10
|
PlanState["ENABLED"] = "ENABLED";
|
|
11
11
|
PlanState["DISABLED"] = "DISABLED";
|
|
12
12
|
})(PlanState || (PlanState = {}));
|
|
13
|
+
export var TpShareTypeChoice;
|
|
14
|
+
(function (TpShareTypeChoice) {
|
|
15
|
+
TpShareTypeChoice["TP"] = "TP";
|
|
16
|
+
TpShareTypeChoice["DETACHED"] = "DETACHED";
|
|
17
|
+
})(TpShareTypeChoice || (TpShareTypeChoice = {}));
|
|
18
|
+
export var TpDetachedShareStateChoice;
|
|
19
|
+
(function (TpDetachedShareStateChoice) {
|
|
20
|
+
TpDetachedShareStateChoice["IN_PROGRESS"] = "IN_PROGRESS";
|
|
21
|
+
TpDetachedShareStateChoice["COMPLETED"] = "COMPLETED";
|
|
22
|
+
})(TpDetachedShareStateChoice || (TpDetachedShareStateChoice = {}));
|
|
13
23
|
export var AccessRoleChoice;
|
|
14
24
|
(function (AccessRoleChoice) {
|
|
15
25
|
AccessRoleChoice["READER"] = "READER";
|
|
16
26
|
AccessRoleChoice["WRITER"] = "WRITER";
|
|
17
27
|
AccessRoleChoice["ADMIN"] = "ADMIN";
|
|
28
|
+
AccessRoleChoice["CUSTODIAN"] = "CUSTODIAN";
|
|
18
29
|
AccessRoleChoice["DENY"] = "DENY";
|
|
19
30
|
AccessRoleChoice["OWNER"] = "OWNER";
|
|
20
31
|
})(AccessRoleChoice || (AccessRoleChoice = {}));
|
|
32
|
+
export var AccessRoleChoiceOrder;
|
|
33
|
+
(function (AccessRoleChoiceOrder) {
|
|
34
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["READER"] = 0] = "READER";
|
|
35
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["WRITER"] = 1] = "WRITER";
|
|
36
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["ADMIN"] = 2] = "ADMIN";
|
|
37
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["CUSTODIAN"] = 3] = "CUSTODIAN";
|
|
38
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["DENY"] = 4] = "DENY";
|
|
39
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["CONFIDENTIAL"] = 5] = "CONFIDENTIAL";
|
|
40
|
+
AccessRoleChoiceOrder[AccessRoleChoiceOrder["OWNER"] = 6] = "OWNER";
|
|
41
|
+
})(AccessRoleChoiceOrder || (AccessRoleChoiceOrder = {}));
|
|
21
42
|
export var AccessRoleMethodChoice;
|
|
22
43
|
(function (AccessRoleMethodChoice) {
|
|
23
44
|
AccessRoleMethodChoice["INHERITED"] = "INHERITED";
|
|
@@ -135,4 +156,4 @@ export var PlanStateField;
|
|
|
135
156
|
PlanStateField["CANCELLED"] = "CANCELLED";
|
|
136
157
|
PlanStateField["EXPIRED"] = "EXPIRED";
|
|
137
158
|
})(PlanStateField || (PlanStateField = {}));
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQTRMRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQXdHRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLHlDQUF1QixDQUFBO0lBQ3ZCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0Pzogc3RyaW5nW107XG4gIHRwVmF1bHQ/OiBzdHJpbmdbXTtcbiAgc2hhcmVWYXVsdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIGZlYXR1cmVTdGF0ZT86IFVzZXJGZWF0dXJlU3RhdGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBwbGFucz86IElzc3VlZFBsYW5Ob2RlW107XG4gIHBheW1lbnRNZXRob2RzPzogUGF5bWVudE1ldGhvZE5vZGVbXTtcbiAgYmlsbGluZ0hpc3Rvcnk/OiBCaWxsaW5nRmllbGRbXTtcbiAgYXZhaWxhYmxlUGxhbnM/OiBBdmFpbGFibGVQbGFuRmllbGRbXTtcbiAgY29uZmlnPzogSlNPTlN0cmluZztcbiAgY29uZmlnSnNvbj86IEpTT05PYmplY3Q7XG4gIGRhdGVKb2luZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckZlYXR1cmVTdGF0ZSBleHRlbmRzIFRpbWVTdGFtcGVkIHtcbiAgbm90aWZpY2F0aW9uc0xhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJUaW1lIHtcbiAgdGltZXN0YW1wPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHB1YmxpY0RhdGFTaWc/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGVTaWc/OiBzdHJpbmc7XG4gIHNpZ1B4az86IEtleU5vZGU7XG4gIGRlZmF1bHRGcm9tPzogRGF0ZVRpbWU7XG4gIHB1YmxpY0RhdGE/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGU/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBrZXk/OiBLZXlOb2RlO1xuICBwbGFpbkRhdGE/OiBzdHJpbmc7XG4gIHBsYWluRGF0YVNpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBhY2Nlc3NSb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uQ2hvaWNlW107XG4gIHRwQWNjZXNzUm9sZXM/OiBBY2Nlc3NSb2xlW107XG4gIGNvbmZpZGVudGlhbGl0eT86IENvbmZpZGVudGlhbFJlc291cmNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeU5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkLFxuICAgIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICBrZXlJZD86IElEO1xuICBjaGlsZEZpbGVMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgY2hpbGREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZERpcmVjdG9yeUxpbmtzPzogRGlyZWN0b3J5TGlua05vZGVMck5MaXN0O1xuICBuQ2hpbGRGaWxlTGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBkZXNjZW5kYW50cz86IERlc2NlbmRhbnRzO1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRGlyZWN0b3J5Tm9kZT47XG4gIG5UcFNoYXJlZD86IFRwU2hhcmVkRGlyZWN0b3J5Tm9kZUxyTkxpc3Q7XG4gIHJlbWluZGVyPzogUmVtaW5kZXJOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQsIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIGN1cnJlbnRWZXJzaW9uPzogRmlsZVZlcnNpb25Ob2RlO1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgblBhcmVudERpcmVjdG9yeUxpbmtzPzogRmlsZUxpbmtOb2RlTHJOTGlzdDtcbiAgbG9jaz86IExvY2tGaWVsZDtcbiAgbG9ja1ZlcnNpb24/OiBzdHJpbmc7XG4gIHRwU2hhcmVkPzogQ29ubmVjdGlvbjxUcFNoYXJlZEZpbGVOb2RlPjtcbiAgblRwU2hhcmVkPzogVHBTaGFyZWRGaWxlTm9kZUxyTkxpc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5TGlua05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBhcmVudERpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG4gIGNoaWxkRGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGRGaWxlPzogRmlsZU5vZGU7XG4gIGxpbmtUeXBlPzogTGlua1R5cGVGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRGlyZWN0b3J5TGlua05vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTGlua05vZGVMck5MaXN0IHtcbiAgbGlzdD86IEZpbGVMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU2hhcmVkRGlyZWN0b3J5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgaXRlbT86IERpcmVjdG9yeU5vZGU7XG4gIHRwPzogVHBOb2RlO1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgaXNzdWVyPzogVXNlck5vZGU7XG4gIGlzSXNzdWVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFNoYXJlZERpcmVjdG9yeU5vZGVMck5MaXN0IHtcbiAgbGlzdD86IFRwU2hhcmVkRGlyZWN0b3J5Tm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU2hhcmVkRmlsZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGl0ZW0/OiBGaWxlTm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIHJvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgaXNJc3N1ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU2hhcmVkRmlsZU5vZGVMck5MaXN0IHtcbiAgbGlzdD86IFRwU2hhcmVkRmlsZU5vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXNjZW5kYW50cyB7XG4gIGRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlOb2RlPjtcbiAgZmlsZXM/OiBDb25uZWN0aW9uPEZpbGVOb2RlPjtcbiAgZGlyZWN0b3JpZXNDb3VudD86IG51bWJlcjtcbiAgZmlsZXNDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZUNob2ljZSB7XG4gIFJFQURFUiA9ICdSRUFERVInLFxuICBXUklURVIgPSAnV1JJVEVSJyxcbiAgQURNSU4gPSAnQURNSU4nLFxuICBERU5ZID0gJ0RFTlknLFxuICBPV05FUiA9ICdPV05FUicsXG59XG5cbmV4cG9ydCBlbnVtIEFjY2Vzc1JvbGVNZXRob2RDaG9pY2Uge1xuICBJTkhFUklURUQgPSAnSU5IRVJJVEVEJyxcbiAgRElSRUNUID0gJ0RJUkVDVCcsXG59XG5cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25DaG9pY2Uge1xuICBDUkVBVEUgPSAnQ1JFQVRFJyxcbiAgUkVBRCA9ICdSRUFEJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG4gIERFTEVURSA9ICdERUxFVEUnLFxuICBTSEFSRSA9ICdTSEFSRScsXG4gIEFSQ0hJVkUgPSAnQVJDSElWRScsXG4gIEFDQ0VTU19BUkNISVZFRCA9ICdBQ0NFU1NfQVJDSElWRUQnLFxuICBVTkFSQ0hJVkUgPSAnVU5BUkNISVZFJyxcbiAgU0VUX0NPTkZJREVOVElBTCA9ICdTRVRfQ09ORklERU5USUFMJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWRlbnRpYWxSZXNvdXJjZSB7XG4gIGlzQ29uZmlkZW50aWFsPzogYm9vbGVhbjtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0ZWRSb2xlIHtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIHNvdXJjZT86IERpcmVjdG9yeU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUm9sZSB7XG4gIGlzc3Vlcj86IFVzZXJOb2RlO1xuICBzdWJqZWN0PzogVXNlck5vZGU7XG4gIHJvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xuICBpbmhlcml0ZWRSb2xlPzogSW5oZXJpdGVkUm9sZTtcbiAgdHA/OiBUcE5vZGU7XG4gIGlzSXNzdWVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRmlsZU9wZXJhdGlvbkZpZWxkIHtcbiAgQ1JFQVRFID0gJ0NSRUFURScsXG4gIFJFQUQgPSAnUkVBRCcsXG4gIFVQREFURSA9ICdVUERBVEUnLFxuICBSRVZFUlQgPSAnUkVWRVJUJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVZlcnNpb25Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBmaWxlPzogRmlsZU5vZGU7XG4gIHN0YXRlPzogRmlsZVN0YXRlTm9kZTtcbiAgb3BlcmF0aW9uPzogRmlsZU9wZXJhdGlvbkZpZWxkO1xuICBhdXRob3I/OiBVc2VyTm9kZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBjb250ZW50UmVzb3VyY2U/OiBzdHJpbmc7XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU90a1N0YXRlIHtcbiAgT1RLX0lOSVRJQVRFRCA9ICdPVEtfSU5JVElBVEVEJyxcbiAgT1RLX0FDQ0VQVEVEID0gJ09US19BQ0NFUFRFRCcsXG4gIE9US19DT01QTEVURUQgPSAnT1RLX0NPTVBMRVRFRCcsXG59XG5cbi8vIFRoZXNlIGZpZWxkcyBhcmUgbm90IG9wdGlvbmFsIGJlY2F1c2UgdGhleSBhcmUgbm90IHdpdGhpbiB0aGUgdXNlcidzIGNvbnRyb2wgdG8gc2VsZWN0IGluIGEgZ3FsIHF1ZXJ5LlxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZFNoYXJlZENpcGhlckRhdGEge1xuICAvLyBTaGFyZWQgcmVhZCBhY2Nlc3MgYmV0d2VlbiBpbml0aWF0b3IgYW5kIHJlc3BvbmRlci4gQnV0IG9ubHkgdGhlIGluaXRpYXRvciBoYXMgd3JpdGUgYWNjZXNzLlxuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uOiBKU09OT2JqZWN0O1xufVxuXG4vKipcbiAqIFRoZSBjb250ZW50cyBvZiB0aGUgb25lLXRpbWUga2V5IGNpcGhlclxuICogVGhlc2UgZmllbGRzIGFyZSBub3Qgb3B0aW9uYWwgYmVjYXVzZSB0aGV5IGFyZSBub3Qgd2l0aGluIHRoZSB1c2VyJ3MgY29udHJvbCB0byBzZWxlY3QgaW4gYSBncWwgcXVlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3RLZXlDaXBoZXJDbGVhckpzb24yIHtcbiAgLy8gVXNlZCB0byBjb25maXJtIHRvIHRoZSBpbml0aWF0b3IgdGhhdCB0aGUgcmVzcG9uZGVyIGhhcyBhY2Nlc3MgdG8gdGhlIG9uZS10aW1lIGtleS5cbiAgbm9uY2U6IHN0cmluZztcbiAgLy8gRGF0YSBzZW50IGZyb20gaW5pdGlhdG9yIHRvIHRoZSByZXNwb25kZXJcbiAgaW5pdGlhdG9yOiB7XG4gICAgb25lVGltZVBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIG9uZS10aW1lIHB1YmxpYyBlbmNyeXB0aW9uIGtleSB0aGUgcmVzcG9uZGVyIHdpbGwgdXNlIHRvIHNlbmQgZGF0YSBiYWNrIHRvIHRoZSBpbml0aWF0b3JcbiAgICBwYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgZW5jcnlwdGlvbiBrZXlcbiAgICBzaWdQYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgc2lnbmluZyBrZXlcbiAgICBtZXNzYWdlPzogSlNPTk9iamVjdDtcbiAgICBjb250YWN0Q2FyZD86IENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU90a05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VPdGtTdGF0ZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JTaWdQeGs/OiBLZXlOb2RlO1xuICByZXNwb25kZXJTaWdQeGs/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyPzogc3RyaW5nO1xuICBvdEtleVBhcmFtcz86IHN0cmluZztcbiAgb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5Q2lwaGVyQ2xlYXJKc29uPzogT3RLZXlDaXBoZXJDbGVhckpzb24yO1xuICByZXNwb25kZXJQYmtDaXBoZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlU3RhdGUge1xuICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycsXG4gIENPTVBMRVRFRCA9ICdDT01QTEVURUQnLFxuICBERUNMSU5FRCA9ICdERUNMSU5FRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBERUxFVEVEID0gJ0RFTEVURUQnLFxufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU1vZGUge1xuICBPVEsgPSAnT1RLJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHRva2VuRXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICBzdGF0ZT86IEtleUV4Y2hhbmdlU3RhdGU7XG4gIG1vZGU/OiBLZXlFeGNoYW5nZU1vZGU7XG4gIGluaXRpYXRvcj86IFVzZXJOb2RlO1xuICByZXNwb25kZXI/OiBVc2VyTm9kZTtcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgcmVzcG9uZGVyUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIGNyZWF0ZVRwPzogYm9vbGVhbjtcbiAgb3RrPzogS2V5RXhjaGFuZ2VPdGtOb2RlO1xuICBpc0luaXRpYXRvcj86IGJvb2xlYW47XG4gIGlzRXhwaXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckVtYWlsQWRkcmVzcz86IExyRW1haWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkSXRlbXMge1xuICBkZXNjZW5kYW50czogRGVzY2VuZGFudHM7XG4gIGRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlOb2RlPjtcbiAgZmlsZXM/OiBDb25uZWN0aW9uPEZpbGVOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHJlY2VpdmVyPzogVXNlck5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnUHhrPzogS2V5Tm9kZTtcbiAgb3duZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBvd25lckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lcktleT86IEtleU5vZGU7XG4gIG93bmVyUGxhaW5EYXRhPzogc3RyaW5nO1xuICBvd25lclBsYWluRGF0YUpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lclBsYWluRGF0YVNpZz86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlcktleT86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNoYXJlZEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGtleUV4Y2hhbmdlPzogS2V5RXhjaGFuZ2VOb2RlO1xuICB1c2VyPzogVXNlck5vZGU7XG4gIHVzZXJQcms/OiBLZXlOb2RlO1xuICB1c2VyU2lnUHJrPzogS2V5Tm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXJQYms/OiBLZXlOb2RlO1xuICBvdGhlclNpZ1Biaz86IEtleU5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rU2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtQeGs/OiBLZXlOb2RlO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcj86IHN0cmluZztcbiAgbWtSZXNoYXJlUmVxdWVzdENpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVxdWVzdFNlbnQ/OiBib29sZWFuO1xuICBta1Jlc2hhcmVSZXNwb25zZVNlbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICB1c2VyU2hhcmVkS2V5PzogVXNlclNoYXJlZEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIGN1cnJlbnRVc2VyU2hhcmVkS2V5PzogQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlO1xuICBpc0NvbXBsZXRlZD86IGJvb2xlYW47XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUNvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUl0ZW1zPzogU2hhcmVkSXRlbXM7XG4gIHRoZWlySXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgbXlTY2VuYXJpb3M/OiBDb25uZWN0aW9uPFNjZW5hcmlvTm9kZT47XG4gIHNoYXJlZFNjZW5hcmlvcz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9Ob2RlPjtcbn1cblxuZXhwb3J0IGVudW0gVHBBc3NlbWJseVN0YXRlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gVHBDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBlbnVtIFRwQ2xhaW1BcHByb3ZlclN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0QXBwcm92YWwgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFwcHJvdmVyRW1haWw/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmFsTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXBwcm92ZXJFbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyU3ViQXNzZW1ibHkge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGFwcHJvdmVycz86IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgc3ViQXNzZW1ibGllcz86IFRwUGFzc3dvcmRSZXNldFVzZXJTdWJBc3NlbWJseVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlc2V0VXNlcm5hbWU/OiBzdHJpbmc7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIG1hc3RlcktleT86IEtleU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBhcHByb3ZhbHM/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlW107XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcms/OiBzdHJpbmc7XG4gIGFzc2VtYmx5PzogVHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5O1xuICByZXF1ZXN0QWdhaW5BZnRlcj86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFzc2VtYmx5PzogVHBBc3NlbWJseU5vZGU7XG4gIHJlcXVlc3Q/OiBUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZTtcbiAgYXBwbGllZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBpZD86IElEO1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGNhbk1lZXRRdW9ydW0/OiBib29sZWFuO1xuICBzdWJqZWN0S2V5PzogS2V5Tm9kZTtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXNzZW1ibHlLZXk/OiBLZXlOb2RlO1xuICBhc3NlbWJseUNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHN1YkFzc2VtYmxpZXM/OiBDb25uZWN0aW9uPFRwU3ViQXNzZW1ibHlOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFN1YkFzc2VtYmx5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBzdHJpbmc7XG4gIGFwcHJvdmVycz86IENvbm5lY3Rpb248VHBBc3NlbWJseUFwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgdHA/OiBUcE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNzZW1ibHk/OiBTaGFyZWRUcEFzc2VtYmx5Tm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIHNoYXJlZFJlcXVlc3Q/OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcEFzc2VtYmx5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNBcHByb3ZlcnM/OiBDb25uZWN0aW9uPFRwQXNzZW1ibHlBc0FwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseUFzQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBjbGFpbT86IFNoYXJlZFRwQ2xhaW1Ob2RlO1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQ2xhaW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1TdGF0ZTtcbiAgYXNDbGFpbUFwcHJvdmVycz86IENvbm5lY3Rpb248U2hhcmVkVHBDbGFpbUFwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyQXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRUcENsYWltUmVjZWl2ZXJBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQ2xhaW1SZWNlaXZlckFwcHJvdmFsTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcHhrPzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGVudW0gTG9ja1N0YXRlIHtcbiAgVU5MT0NLRUQgPSAnVU5MT0NLRUQnLFxuICBNVVRFWF9MT0NLRUQgPSAnTVVURVhfTE9DS0VEJyxcbn1cblxuZXhwb3J0IGVudW0gU2NlbmFyaW9TdGF0ZSB7XG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxufVxuXG5leHBvcnQgZW51bSBDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBlbnVtIENsYWltQXBwcm92ZXJTdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxufVxuXG5leHBvcnQgZW51bSBTY2VuYXJpb0xhc3RDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9MYXRlc3RDbGFpbSB7XG4gIHN0YXRlPzogU2NlbmFyaW9MYXN0Q2xhaW1TdGF0ZTtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBjbGFpbUFnYWluQWZ0ZXI/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgc3ViamVjdEtleT86IEtleU5vZGU7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFzc2VtYmx5PzogVHBBc3NlbWJseU5vZGU7XG4gIHN0YXRlPzogU2NlbmFyaW9TdGF0ZTtcbiAgY2xhaW1hbnRzPzogQ29ubmVjdGlvbjxTY2VuYXJpb0NsYWltYW50Tm9kZT47XG4gIHJlY2VpdmVycz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlck5vZGU+O1xuICBjbGFpbXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvQ2xhaW1Ob2RlPjtcbiAgY2xhaW0/OiBTY2VuYXJpb0NsYWltTm9kZTtcbiAgYXNzZW1ibHlTdGF0ZT86IFNjZW5hcmlvQXNzZW1ibHlTdGF0ZTtcbiAgbGF0ZXN0Q2xhaW0/OiBTY2VuYXJpb0xhdGVzdENsYWltO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQ2xhaW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBjbGFpbWFudD86IFNjZW5hcmlvQ2xhaW1hbnROb2RlO1xuICBzdGF0ZT86IENsYWltU3RhdGU7XG4gIHNjZW5hcmlvPzogU2NlbmFyaW9Ob2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQXNzZW1ibHlTdGF0ZSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgc3ViQXNzZW1ibHlTdGF0ZXM/OiBTY2VuYXJpb1N1YkFzc2VtYmx5U3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1N1YkFzc2VtYmx5U3RhdGUge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGFwcHJvdmVyU3RhdGVzPzogU2NlbmFyaW9Bc3NlbWJseUFwcHJvdmVyU3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0Fzc2VtYmx5QXBwcm92ZXJTdGF0ZSB7XG4gIHN0YXRlPzogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBwYms/OiBLZXlOb2RlO1xuICByZWNlaXZlckRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZT47XG4gIHJlY2VpdmVyRmlsZXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJGaWxlTm9kZT47XG4gIHRwPzogVHBOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYms/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgdHlwZSBSZWNlaXZlckRpcmVjdG9yeUFjY2Vzc1JvbGUgPSBBY2Nlc3NSb2xlQ2hvaWNlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJJdGVtTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXI/OiBTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFjY2Vzc1JvbGU/OiBSZWNlaXZlckRpcmVjdG9yeUFjY2Vzc1JvbGU7XG4gIHdyYXBwZWRJdGVtS2V5Pzogc3RyaW5nO1xuICBpdGVtS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZVxuICBleHRlbmRzIFNjZW5hcmlvUmVjZWl2ZXJJdGVtTm9kZSB7XG4gIGRpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckZpbGVOb2RlIGV4dGVuZHMgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIHtcbiAgZmlsZT86IEZpbGVOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQ2xhaW1hbnROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB0cD86IFRwTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJqZWN0PzogVXNlck5vZGU7XG4gIHN0YXRlPzogU2NlbmFyaW9TdGF0ZTtcbiAgdHA/OiBUcE5vZGU7XG4gIGFzQ2xhaW1hbnQ/OiBTY2VuYXJpb0NsYWltYW50Tm9kZTtcbiAgYXNSZWNlaXZlcj86IFNjZW5hcmlvUmVjZWl2ZXJOb2RlO1xuICBhc3NlbWJseT86IFNoYXJlZFRwQXNzZW1ibHlOb2RlO1xuICBzaGFyZWRDbGFpbT86IFNoYXJlZFNjZW5hcmlvQ2xhaW1Ob2RlO1xuICBhc3NlbWJseVN0YXRlPzogU2NlbmFyaW9Bc3NlbWJseVN0YXRlO1xuICBsYXRlc3RDbGFpbT86IFNjZW5hcmlvTGF0ZXN0Q2xhaW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogQ2xhaW1TdGF0ZTtcbiAgc2hhcmVkU2NlbmFyaW8/OiBTaGFyZWRTY2VuYXJpb05vZGU7XG4gIGlzQ2xhaW1hbnQ/OiBib29sZWFuO1xuICBhc0NsYWltUmVjZWl2ZXI/OiBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZXJOb2RlO1xuICBjbGFpbT86IFNoYXJlZFRwQ2xhaW1Ob2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1BcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVycz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGU+O1xuICBzdGF0ZT86IENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgYXBwcm92ZXI/OiBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVkPzogRGF0ZVRpbWU7XG4gIGFwcHJvdmFscz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVkQXBwcm92YWxOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluRGF0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHRpbWVSZWFkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWFuYWdlbWVudFN0YXRlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBsYXN0Vmlld2VkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBlbnVtIExpbmtUeXBlRmllbGQge1xuICBIQVJEID0gJ0hBUkQnLFxuICBTT0ZUID0gJ1NPRlQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzZW5kZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2VuZGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgcGxhaW5NZXNzYWdlPzogc3RyaW5nO1xuICBwbGFpbk1lc3NhZ2VKc29uPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlQ2xlYXJKc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2tGaWVsZCB7XG4gIGNyZWF0ZWQ/OiBEYXRlVGltZTtcbiAgbW9kaWZpZWQ/OiBEYXRlVGltZTtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzdGF0ZT86IExvY2tTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJDb25maWcge1xuICByZWxheUNvbm5lY3Rpb25NYXhMaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFpbGFibGVQbGFuRmllbGQge1xuICBpc3N1ZXJVaWQ/OiBzdHJpbmc7XG4gIHBsYW5VaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG4gIHRyaWFsPzogVHJpYWxQZXJpb2RGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZU9wdGlvbkZpZWxkIHtcbiAgcHJpY2VJZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGFtb3VudD86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIGludGVydmFsVW5pdD86IHN0cmluZztcbiAgaW50ZXJ2YWxDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmlhbFBlcmlvZEZpZWxkIHtcbiAgeWVhcnM/OiBudW1iZXI7XG4gIG1vbnRocz86IG51bWJlcjtcbiAgd2Vla3M/OiBudW1iZXI7XG4gIGRheXM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudENhcHR1cmVGaWVsZCB7XG4gIHN0cmlwZUludGVudElkPzogc3RyaW5nO1xuICBzdHJpcGVDbGllbnRTZWNyZXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudE1ldGhvZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNhcmQ/OiBQYXltZW50Q2FyZEZpZWxkO1xuICBpbnZvaWNlPzogUGF5bWVudEludm9pY2VGaWVsZDtcbiAgaXNEZWZhdWx0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FyZEZpZWxkIHtcbiAgYnJhbmQ/OiBzdHJpbmc7XG4gIGxhc3RGb3VyRGlnaXRzPzogc3RyaW5nO1xuICBleHBpcnlZZWFyPzogbnVtYmVyO1xuICBleHBpcnlNb250aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50SW52b2ljZUZpZWxkIHtcbiAgZW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbW90aW9uYWxDb2RlRmllbGQge1xuICBhbW91bnRPZmY/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBwZXJjZW50T2ZmPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IHN0cmluZztcbiAgZHVyYXRpb25Jbk1vbnRocz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJpb2RGaWVsZCB7XG4gIHN0YXJ0PzogRGF0ZVRpbWU7XG4gIGVuZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlZFBsYW5Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY3VycmVudFN0YXRlcz86IElzc3VlZFBsYW5TdGF0ZU5vZGVbXTtcbiAgY3VycmVudFBlcmlvZD86IFBlcmlvZEZpZWxkO1xuICBjdXJyZW50UHJpY2VPcHRpb24/OiBQcmljZU9wdGlvbkZpZWxkO1xuICB1cGNvbWluZ0ludm9pY2U/OiBCaWxsaW5nRmllbGQ7XG4gIGFsdGVybmF0aXZlUHJpY2VPcHRpb25zPzogUHJpY2VPcHRpb25GaWVsZFtdO1xuICBzY2hlZHVsZWRQcmljZUNoYW5nZXM/OiBQcmljZUNoYW5nZUZpZWxkW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhblN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogUGxhblN0YXRlRmllbGQ7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZUZpZWxkIHtcbiAgVFJJQUxMSU5HID0gJ1RSSUFMTElORycsXG4gIEFDVElWRSA9ICdBQ1RJVkUnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWxsaW5nRmllbGQge1xuICBpbnZvaWNlTnVtYmVyPzogc3RyaW5nO1xuICB0b3RhbD86IG51bWJlcjtcbiAgYW1vdW50RHVlPzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgZG9jdW1lbnRVcmw/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIGZpbmFsaXNlZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWRBdD86IERhdGVUaW1lO1xuICBwYWlkPzogYm9vbGVhbjtcbiAgbmV4dFBheW1lbnRBdHRlbXB0PzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VDaGFuZ2VGaWVsZCB7XG4gIHBlcmlvZFN0YXJ0PzogRGF0ZVRpbWU7XG4gIHByaWNlT3B0aW9uPzogUHJpY2VPcHRpb25GaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1pbmRlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluPzogSlNPTlN0cmluZztcbiAgcGxhaW5Kc29uPzogSlNPTk9iamVjdDtcbiAgZmlyc3RFdmVudD86IERhdGVUaW1lO1xuICBub3RpZnlBaGVhZFNlY29uZHM/OiBudW1iZXI7XG4gIG5vdGlmeUF0PzogRGF0ZVRpbWU7XG4gIGRpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG59XG4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQW1LRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLDhCQUFTLENBQUE7SUFDVCwwQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUc1QjtBQUVELE1BQU0sQ0FBTixJQUFZLDBCQUdYO0FBSEQsV0FBWSwwQkFBMEI7SUFDcEMseURBQTJCLENBQUE7SUFDM0IscURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUhXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFHckM7QUErQkQsTUFBTSxDQUFOLElBQVksZ0JBT1g7QUFQRCxXQUFZLGdCQUFnQjtJQUMxQixxQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBZSxDQUFBO0lBQ2YsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtJQUNiLG1DQUFlLENBQUE7QUFD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eUNBQXVCLENBQUE7SUFDdkIscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29ubmVjdGlvbixcbiAgRGF0ZVRpbWUsXG4gIEdlbmVyaWNTY2FsYXIsXG4gIElELFxuICBKU09OT2JqZWN0LFxuICBKU09OU3RyaW5nLFxuICBMckVtYWlsLFxuICBOb2RlLFxuICBUaW1lU3RhbXBlZCxcbn0gZnJvbSAnLi9ncmFwaHFsLnR5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEVkZ2VzPFQ+KGNvbm5lY3Rpb246IENvbm5lY3Rpb248VD4pIHtcbiAgcmV0dXJuIGNvbm5lY3Rpb24uZWRnZXMubWFwKChlZGdlKSA9PiBlZGdlLm5vZGUpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVzTm9kZSB7XG4gIG15VmF1bHQ/OiBzdHJpbmdbXTtcbiAgdHBWYXVsdD86IHN0cmluZ1tdO1xuICBzaGFyZVZhdWx0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBlbnVtIFVzZXJEZWxldGVTdGF0ZSB7XG4gIFJFUVVFU1RFRCA9ICdSRVFVRVNURUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZWxldGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFVzZXJEZWxldGVTdGF0ZTtcbn1cblxuZXhwb3J0IGVudW0gUGxhblN0YXRlIHtcbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5Ob2RlIGV4dGVuZHMgTm9kZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRhdGE/OiBKU09OU3RyaW5nO1xuICBzdGF0ZT86IFBsYW5TdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhblN0cmlwZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YnNjcmlwdGlvbklkPzogc3RyaW5nO1xuICBwcmljZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQbGFuTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICBwbGFuPzogUGxhbk5vZGU7XG4gIHBlcmlvZEVuZD86IERhdGVUaW1lO1xuICBzdHJpcGU/OiBVc2VyUGxhblN0cmlwZU5vZGU7XG4gIGlzc3Vlcj86IFVzZXJOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBjdXN0b21lcj86IEdlbmVyaWNTY2FsYXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBhc3NLZXlQYXJhbXM/OiBHZW5lcmljU2NhbGFyO1xuICBwYXNzSWRwUGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgd3JhcHBlZFBhc3NJZHBWZXJpZmllclByaz86IEdlbmVyaWNTY2FsYXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXJLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5cz86IFBhc3NLZXlOb2RlW107XG4gIHBhc3NLZXk/OiBQYXNzS2V5Tm9kZTtcbiAgcm9vdEtleT86IEtleU5vZGU7XG4gIG1hc3RlcktleT86IEtleU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG4gIHNpZ1B4az86IEtleU5vZGU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTm9kZSB0eXBlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJOb2RlIGV4dGVuZHMgTm9kZSB7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBjb250YWN0Q2FyZHM/OiBDb25uZWN0aW9uPENvbnRhY3RDYXJkTm9kZT47XG4gIGN1cnJlbnRVc2VyS2V5PzogQ3VycmVudFVzZXJLZXlOb2RlO1xuICBvd25lZENvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICByZWNlaXZlZENvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBpc0N1cnJlbnRVc2VyPzogYm9vbGVhbjtcbiAgaGF2ZVRwPzogYm9vbGVhbjtcbiAgc3RyaXBlPzogVXNlclN0cmlwZU5vZGU7XG4gIHVzZXJQbGFucz86IENvbm5lY3Rpb248VXNlclBsYW5Ob2RlPjtcbiAgdXNlckRlbGV0ZT86IFVzZXJEZWxldGVOb2RlO1xuICBmZWF0dXJlcz86IEZlYXR1cmVzTm9kZTtcbiAgZmVhdHVyZVN0YXRlPzogVXNlckZlYXR1cmVTdGF0ZTtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk/OiBzdHJpbmc7XG4gIHBsYW5zPzogSXNzdWVkUGxhbk5vZGVbXTtcbiAgcGF5bWVudE1ldGhvZHM/OiBQYXltZW50TWV0aG9kTm9kZVtdO1xuICBiaWxsaW5nSGlzdG9yeT86IEJpbGxpbmdGaWVsZFtdO1xuICBhdmFpbGFibGVQbGFucz86IEF2YWlsYWJsZVBsYW5GaWVsZFtdO1xuICBjb25maWc/OiBKU09OU3RyaW5nO1xuICBjb25maWdKc29uPzogSlNPTk9iamVjdDtcbiAgZGF0ZUpvaW5lZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRmVhdHVyZVN0YXRlIGV4dGVuZHMgVGltZVN0YW1wZWQge1xuICBub3RpZmljYXRpb25zTGFzdFZpZXdlZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY1Byb2ZpbGUge1xuICB1c2VySWQ/OiBJRDtcbiAgZW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyVGltZSB7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBvd25lcj86IFVzZXJOb2RlO1xuICBwdWJsaWNEYXRhU2lnPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlU2lnPzogc3RyaW5nO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xuICBkZWZhdWx0RnJvbT86IERhdGVUaW1lO1xuICBwdWJsaWNEYXRhPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAga2V5PzogS2V5Tm9kZTtcbiAgcGxhaW5EYXRhPzogc3RyaW5nO1xuICBwbGFpbkRhdGFTaWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgYWNjZXNzUm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIHBlcm1pc3Npb25zPzogUGVybWlzc2lvbkNob2ljZVtdO1xuICB0cEFjY2Vzc1JvbGVzPzogQWNjZXNzUm9sZVtdO1xuICBhbGxBY2Nlc3NSb2xlcz86IEFsbEFjY2Vzc1JvbGVbXTtcbiAgY29uZmlkZW50aWFsaXR5PzogQ29uZmlkZW50aWFsUmVzb3VyY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5Tm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQsXG4gICAgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIGtleUlkPzogSUQ7XG4gIGNoaWxkRmlsZUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBjaGlsZERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIG5QYXJlbnREaXJlY3RvcnlMaW5rcz86IERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdDtcbiAgbkNoaWxkRGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZEZpbGVMaW5rcz86IEZpbGVMaW5rTm9kZUxyTkxpc3Q7XG4gIGRlc2NlbmRhbnRzPzogRGVzY2VuZGFudHM7XG4gIGxvY2s/OiBMb2NrRmllbGQ7XG4gIGxvY2tWZXJzaW9uPzogc3RyaW5nO1xuICB0cFNoYXJlZD86IENvbm5lY3Rpb248VHBTaGFyZWREaXJlY3RvcnlOb2RlPjtcbiAgblRwU2hhcmVkPzogVHBTaGFyZWREaXJlY3RvcnlOb2RlTHJOTGlzdDtcbiAgcmVtaW5kZXI/OiBSZW1pbmRlck5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCwgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgY3VycmVudFZlcnNpb24/OiBGaWxlVmVyc2lvbk5vZGU7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRmlsZU5vZGU+O1xuICBuVHBTaGFyZWQ/OiBUcFNoYXJlZEZpbGVOb2RlTHJOTGlzdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBsaW5rVHlwZT86IExpbmtUeXBlRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUxpbmtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXJlbnREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBjaGlsZEZpbGU/OiBGaWxlTm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdCB7XG4gIGxpc3Q/OiBEaXJlY3RvcnlMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRmlsZUxpbmtOb2RlW107XG59XG5cbmV4cG9ydCBlbnVtIFRwU2hhcmVUeXBlQ2hvaWNlIHtcbiAgVFAgPSAnVFAnLFxuICBERVRBQ0hFRCA9ICdERVRBQ0hFRCcsXG59XG5cbmV4cG9ydCBlbnVtIFRwRGV0YWNoZWRTaGFyZVN0YXRlQ2hvaWNlIHtcbiAgSU5fUFJPR1JFU1MgPSAnSU5fUFJPR1JFU1MnLFxuICBDT01QTEVURUQgPSAnQ09NUExFVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFNoYXJlZEl0ZW08SXRlbVR5cGU+IGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBpdGVtPzogSXRlbVR5cGU7XG4gIHRwPzogVHBOb2RlO1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgaXNzdWVyPzogVXNlck5vZGU7XG4gIGlzSXNzdWVyPzogYm9vbGVhbjtcbiAgc3ViamVjdD86IFB1YmxpY1Byb2ZpbGU7XG4gIHNoYXJlVHlwZT86IFRwU2hhcmVUeXBlQ2hvaWNlO1xuICBkZXRhY2hlZFNoYXJlU3RhdGU/OiBUcERldGFjaGVkU2hhcmVTdGF0ZUNob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFNoYXJlZEl0ZW1Mck5MaXN0PFNoYXJlZEl0ZW1UeXBlPiB7XG4gIGxpc3Q/OiBTaGFyZWRJdGVtVHlwZVtdO1xufVxuXG5leHBvcnQgdHlwZSBUcFNoYXJlZERpcmVjdG9yeU5vZGUgPSBUcFNoYXJlZEl0ZW08RGlyZWN0b3J5Tm9kZT47XG5leHBvcnQgdHlwZSBUcFNoYXJlZEZpbGVOb2RlID0gVHBTaGFyZWRJdGVtPEZpbGVOb2RlPjtcblxuZXhwb3J0IHR5cGUgVHBTaGFyZWREaXJlY3RvcnlOb2RlTHJOTGlzdCA9XG4gIFRwU2hhcmVkSXRlbUxyTkxpc3Q8VHBTaGFyZWREaXJlY3RvcnlOb2RlPjtcbmV4cG9ydCB0eXBlIFRwU2hhcmVkRmlsZU5vZGVMck5MaXN0ID0gVHBTaGFyZWRJdGVtTHJOTGlzdDxUcFNoYXJlZEZpbGVOb2RlPjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXNjZW5kYW50cyB7XG4gIGRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlOb2RlPjtcbiAgZmlsZXM/OiBDb25uZWN0aW9uPEZpbGVOb2RlPjtcbiAgZGlyZWN0b3JpZXNDb3VudD86IG51bWJlcjtcbiAgZmlsZXNDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZUNob2ljZSB7XG4gIFJFQURFUiA9ICdSRUFERVInLFxuICBXUklURVIgPSAnV1JJVEVSJyxcbiAgQURNSU4gPSAnQURNSU4nLFxuICBDVVNUT0RJQU4gPSAnQ1VTVE9ESUFOJyxcbiAgREVOWSA9ICdERU5ZJyxcbiAgT1dORVIgPSAnT1dORVInLFxufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlT3JkZXIge1xuICBSRUFERVIgPSAwLFxuICBXUklURVIgPSAxLFxuICBBRE1JTiA9IDIsXG4gIENVU1RPRElBTiA9IDMsXG4gIERFTlkgPSA0LFxuICBDT05GSURFTlRJQUwgPSA1LFxuICBPV05FUiA9IDYsXG59XG5cbmV4cG9ydCBlbnVtIEFjY2Vzc1JvbGVNZXRob2RDaG9pY2Uge1xuICBJTkhFUklURUQgPSAnSU5IRVJJVEVEJyxcbiAgRElSRUNUID0gJ0RJUkVDVCcsXG59XG5cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25DaG9pY2Uge1xuICBDUkVBVEUgPSAnQ1JFQVRFJyxcbiAgUkVBRCA9ICdSRUFEJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG4gIERFTEVURSA9ICdERUxFVEUnLFxuICBTSEFSRSA9ICdTSEFSRScsXG4gIEFSQ0hJVkUgPSAnQVJDSElWRScsXG4gIEFDQ0VTU19BUkNISVZFRCA9ICdBQ0NFU1NfQVJDSElWRUQnLFxuICBVTkFSQ0hJVkUgPSAnVU5BUkNISVZFJyxcbiAgU0VUX0NPTkZJREVOVElBTCA9ICdTRVRfQ09ORklERU5USUFMJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWRlbnRpYWxSZXNvdXJjZSB7XG4gIGlzQ29uZmlkZW50aWFsPzogYm9vbGVhbjtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0ZWRSb2xlIHtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIHNvdXJjZT86IERpcmVjdG9yeU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUm9sZUJhc2Uge1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbiAgaW5oZXJpdGVkUm9sZT86IEluaGVyaXRlZFJvbGU7XG4gIGlzSXNzdWVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NSb2xlIGV4dGVuZHMgQWNjZXNzUm9sZUJhc2Uge1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICB0cD86IFRwTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxBY2Nlc3NSb2xlIGV4dGVuZHMgQWNjZXNzUm9sZUJhc2Uge1xuICBpc3N1ZXI/OiBQdWJsaWNQcm9maWxlO1xuICBzdWJqZWN0PzogUHVibGljUHJvZmlsZTtcbn1cblxuZXhwb3J0IGVudW0gRmlsZU9wZXJhdGlvbkZpZWxkIHtcbiAgQ1JFQVRFID0gJ0NSRUFURScsXG4gIFJFQUQgPSAnUkVBRCcsXG4gIFVQREFURSA9ICdVUERBVEUnLFxuICBSRVZFUlQgPSAnUkVWRVJUJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVZlcnNpb25Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBmaWxlPzogRmlsZU5vZGU7XG4gIHN0YXRlPzogRmlsZVN0YXRlTm9kZTtcbiAgb3BlcmF0aW9uPzogRmlsZU9wZXJhdGlvbkZpZWxkO1xuICBhdXRob3I/OiBVc2VyTm9kZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBjb250ZW50UmVzb3VyY2U/OiBzdHJpbmc7XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU90a1N0YXRlIHtcbiAgT1RLX0lOSVRJQVRFRCA9ICdPVEtfSU5JVElBVEVEJyxcbiAgT1RLX0FDQ0VQVEVEID0gJ09US19BQ0NFUFRFRCcsXG4gIE9US19DT01QTEVURUQgPSAnT1RLX0NPTVBMRVRFRCcsXG59XG5cbi8vIFRoZXNlIGZpZWxkcyBhcmUgbm90IG9wdGlvbmFsIGJlY2F1c2UgdGhleSBhcmUgbm90IHdpdGhpbiB0aGUgdXNlcidzIGNvbnRyb2wgdG8gc2VsZWN0IGluIGEgZ3FsIHF1ZXJ5LlxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZFNoYXJlZENpcGhlckRhdGEge1xuICAvLyBTaGFyZWQgcmVhZCBhY2Nlc3MgYmV0d2VlbiBpbml0aWF0b3IgYW5kIHJlc3BvbmRlci4gQnV0IG9ubHkgdGhlIGluaXRpYXRvciBoYXMgd3JpdGUgYWNjZXNzLlxuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uOiBKU09OT2JqZWN0O1xufVxuXG4vKipcbiAqIFRoZSBjb250ZW50cyBvZiB0aGUgb25lLXRpbWUga2V5IGNpcGhlclxuICogVGhlc2UgZmllbGRzIGFyZSBub3Qgb3B0aW9uYWwgYmVjYXVzZSB0aGV5IGFyZSBub3Qgd2l0aGluIHRoZSB1c2VyJ3MgY29udHJvbCB0byBzZWxlY3QgaW4gYSBncWwgcXVlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3RLZXlDaXBoZXJDbGVhckpzb24yIHtcbiAgLy8gVXNlZCB0byBjb25maXJtIHRvIHRoZSBpbml0aWF0b3IgdGhhdCB0aGUgcmVzcG9uZGVyIGhhcyBhY2Nlc3MgdG8gdGhlIG9uZS10aW1lIGtleS5cbiAgbm9uY2U6IHN0cmluZztcbiAgLy8gRGF0YSBzZW50IGZyb20gaW5pdGlhdG9yIHRvIHRoZSByZXNwb25kZXJcbiAgaW5pdGlhdG9yOiB7XG4gICAgb25lVGltZVBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIG9uZS10aW1lIHB1YmxpYyBlbmNyeXB0aW9uIGtleSB0aGUgcmVzcG9uZGVyIHdpbGwgdXNlIHRvIHNlbmQgZGF0YSBiYWNrIHRvIHRoZSBpbml0aWF0b3JcbiAgICBwYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgZW5jcnlwdGlvbiBrZXlcbiAgICBzaWdQYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgc2lnbmluZyBrZXlcbiAgICBtZXNzYWdlPzogSlNPTk9iamVjdDtcbiAgICBjb250YWN0Q2FyZD86IENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU90a05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VPdGtTdGF0ZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JTaWdQeGs/OiBLZXlOb2RlO1xuICByZXNwb25kZXJTaWdQeGs/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyPzogc3RyaW5nO1xuICBvdEtleVBhcmFtcz86IHN0cmluZztcbiAgb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5Q2lwaGVyQ2xlYXJKc29uPzogT3RLZXlDaXBoZXJDbGVhckpzb24yO1xuICByZXNwb25kZXJQYmtDaXBoZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlU3RhdGUge1xuICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycsXG4gIENPTVBMRVRFRCA9ICdDT01QTEVURUQnLFxuICBERUNMSU5FRCA9ICdERUNMSU5FRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBERUxFVEVEID0gJ0RFTEVURUQnLFxufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU1vZGUge1xuICBPVEsgPSAnT1RLJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHRva2VuRXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICBzdGF0ZT86IEtleUV4Y2hhbmdlU3RhdGU7XG4gIG1vZGU/OiBLZXlFeGNoYW5nZU1vZGU7XG4gIGluaXRpYXRvcj86IFVzZXJOb2RlO1xuICByZXNwb25kZXI/OiBVc2VyTm9kZTtcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgcmVzcG9uZGVyUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIGNyZWF0ZVRwPzogYm9vbGVhbjtcbiAgb3RrPzogS2V5RXhjaGFuZ2VPdGtOb2RlO1xuICBpc0luaXRpYXRvcj86IGJvb2xlYW47XG4gIGlzRXhwaXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckVtYWlsQWRkcmVzcz86IExyRW1haWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkSXRlbXMge1xuICBkZXNjZW5kYW50czogRGVzY2VuZGFudHM7XG4gIGRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlOb2RlPjtcbiAgZmlsZXM/OiBDb25uZWN0aW9uPEZpbGVOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHJlY2VpdmVyPzogVXNlck5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnUHhrPzogS2V5Tm9kZTtcbiAgb3duZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBvd25lckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lcktleT86IEtleU5vZGU7XG4gIG93bmVyUGxhaW5EYXRhPzogc3RyaW5nO1xuICBvd25lclBsYWluRGF0YUpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lclBsYWluRGF0YVNpZz86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlcktleT86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNoYXJlZEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGtleUV4Y2hhbmdlPzogS2V5RXhjaGFuZ2VOb2RlO1xuICB1c2VyPzogVXNlck5vZGU7XG4gIHVzZXJQcms/OiBLZXlOb2RlO1xuICB1c2VyU2lnUHJrPzogS2V5Tm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXJQYms/OiBLZXlOb2RlO1xuICBvdGhlclNpZ1Biaz86IEtleU5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rU2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtQeGs/OiBLZXlOb2RlO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcj86IHN0cmluZztcbiAgbWtSZXNoYXJlUmVxdWVzdENpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVxdWVzdFNlbnQ/OiBib29sZWFuO1xuICBta1Jlc2hhcmVSZXNwb25zZVNlbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICB1c2VyU2hhcmVkS2V5PzogVXNlclNoYXJlZEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIGN1cnJlbnRVc2VyU2hhcmVkS2V5PzogQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlO1xuICBpc0NvbXBsZXRlZD86IGJvb2xlYW47XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUNvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUl0ZW1zPzogU2hhcmVkSXRlbXM7XG4gIHRoZWlySXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgbXlTY2VuYXJpb3M/OiBDb25uZWN0aW9uPFNjZW5hcmlvTm9kZT47XG4gIHNoYXJlZFNjZW5hcmlvcz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9Ob2RlPjtcbn1cblxuZXhwb3J0IGVudW0gVHBBc3NlbWJseVN0YXRlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gVHBDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBlbnVtIFRwQ2xhaW1BcHByb3ZlclN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0QXBwcm92YWwgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFwcHJvdmVyRW1haWw/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmFsTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXBwcm92ZXJFbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyU3ViQXNzZW1ibHkge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGFwcHJvdmVycz86IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgc3ViQXNzZW1ibGllcz86IFRwUGFzc3dvcmRSZXNldFVzZXJTdWJBc3NlbWJseVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlc2V0VXNlcm5hbWU/OiBzdHJpbmc7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIG1hc3RlcktleT86IEtleU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBhcHByb3ZhbHM/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlW107XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcms/OiBzdHJpbmc7XG4gIGFzc2VtYmx5PzogVHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5O1xuICByZXF1ZXN0QWdhaW5BZnRlcj86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFzc2VtYmx5PzogVHBBc3NlbWJseU5vZGU7XG4gIHJlcXVlc3Q/OiBUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZTtcbiAgYXBwbGllZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBpZD86IElEO1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGNhbk1lZXRRdW9ydW0/OiBib29sZWFuO1xuICBzdWJqZWN0S2V5PzogS2V5Tm9kZTtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXNzZW1ibHlLZXk/OiBLZXlOb2RlO1xuICBhc3NlbWJseUNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHN1YkFzc2VtYmxpZXM/OiBDb25uZWN0aW9uPFRwU3ViQXNzZW1ibHlOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFN1YkFzc2VtYmx5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBzdHJpbmc7XG4gIGFwcHJvdmVycz86IENvbm5lY3Rpb248VHBBc3NlbWJseUFwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgdHA/OiBUcE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNzZW1ibHk/OiBTaGFyZWRUcEFzc2VtYmx5Tm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIHNoYXJlZFJlcXVlc3Q/OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcEFzc2VtYmx5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNBcHByb3ZlcnM/OiBDb25uZWN0aW9uPFRwQXNzZW1ibHlBc0FwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseUFzQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBjbGFpbT86IFNoYXJlZFRwQ2xhaW1Ob2RlO1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQ2xhaW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1TdGF0ZTtcbiAgYXNDbGFpbUFwcHJvdmVycz86IENvbm5lY3Rpb248U2hhcmVkVHBDbGFpbUFwcHJvdmVyTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyQXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRUcENsYWltUmVjZWl2ZXJBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQ2xhaW1SZWNlaXZlckFwcHJvdmFsTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcHhrPzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGVudW0gTG9ja1N0YXRlIHtcbiAgVU5MT0NLRUQgPSAnVU5MT0NLRUQnLFxuICBNVVRFWF9MT0NLRUQgPSAnTVVURVhfTE9DS0VEJyxcbn1cblxuZXhwb3J0IGVudW0gU2NlbmFyaW9TdGF0ZSB7XG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxufVxuXG5leHBvcnQgZW51bSBDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBlbnVtIENsYWltQXBwcm92ZXJTdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxufVxuXG5leHBvcnQgZW51bSBTY2VuYXJpb0xhc3RDbGFpbVN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9MYXRlc3RDbGFpbSB7XG4gIHN0YXRlPzogU2NlbmFyaW9MYXN0Q2xhaW1TdGF0ZTtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBjbGFpbUFnYWluQWZ0ZXI/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgc3ViamVjdEtleT86IEtleU5vZGU7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFzc2VtYmx5PzogVHBBc3NlbWJseU5vZGU7XG4gIHN0YXRlPzogU2NlbmFyaW9TdGF0ZTtcbiAgY2xhaW1hbnRzPzogQ29ubmVjdGlvbjxTY2VuYXJpb0NsYWltYW50Tm9kZT47XG4gIHJlY2VpdmVycz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlck5vZGU+O1xuICBjbGFpbXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvQ2xhaW1Ob2RlPjtcbiAgY2xhaW0/OiBTY2VuYXJpb0NsYWltTm9kZTtcbiAgYXNzZW1ibHlTdGF0ZT86IFNjZW5hcmlvQXNzZW1ibHlTdGF0ZTtcbiAgbGF0ZXN0Q2xhaW0/OiBTY2VuYXJpb0xhdGVzdENsYWltO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQ2xhaW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBjbGFpbWFudD86IFNjZW5hcmlvQ2xhaW1hbnROb2RlO1xuICBzdGF0ZT86IENsYWltU3RhdGU7XG4gIHNjZW5hcmlvPzogU2NlbmFyaW9Ob2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQXNzZW1ibHlTdGF0ZSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgc3ViQXNzZW1ibHlTdGF0ZXM/OiBTY2VuYXJpb1N1YkFzc2VtYmx5U3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1N1YkFzc2VtYmx5U3RhdGUge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIGFwcHJvdmVyU3RhdGVzPzogU2NlbmFyaW9Bc3NlbWJseUFwcHJvdmVyU3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0Fzc2VtYmx5QXBwcm92ZXJTdGF0ZSB7XG4gIHN0YXRlPzogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBwYms/OiBLZXlOb2RlO1xuICByZWNlaXZlckRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZT47XG4gIHJlY2VpdmVyRmlsZXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJGaWxlTm9kZT47XG4gIHRwPzogVHBOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYms/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgdHlwZSBSZWNlaXZlckRpcmVjdG9yeUFjY2Vzc1JvbGUgPSBBY2Nlc3NSb2xlQ2hvaWNlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJJdGVtTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXI/OiBTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFjY2Vzc1JvbGU/OiBSZWNlaXZlckRpcmVjdG9yeUFjY2Vzc1JvbGU7XG4gIHdyYXBwZWRJdGVtS2V5Pzogc3RyaW5nO1xuICBpdGVtS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZVxuICBleHRlbmRzIFNjZW5hcmlvUmVjZWl2ZXJJdGVtTm9kZSB7XG4gIGRpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckZpbGVOb2RlIGV4dGVuZHMgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIHtcbiAgZmlsZT86IEZpbGVOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQ2xhaW1hbnROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB0cD86IFRwTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJqZWN0PzogVXNlck5vZGU7XG4gIHN0YXRlPzogU2NlbmFyaW9TdGF0ZTtcbiAgdHA/OiBUcE5vZGU7XG4gIGFzQ2xhaW1hbnQ/OiBTY2VuYXJpb0NsYWltYW50Tm9kZTtcbiAgYXNSZWNlaXZlcj86IFNjZW5hcmlvUmVjZWl2ZXJOb2RlO1xuICBhc3NlbWJseT86IFNoYXJlZFRwQXNzZW1ibHlOb2RlO1xuICBzaGFyZWRDbGFpbT86IFNoYXJlZFNjZW5hcmlvQ2xhaW1Ob2RlO1xuICBhc3NlbWJseVN0YXRlPzogU2NlbmFyaW9Bc3NlbWJseVN0YXRlO1xuICBsYXRlc3RDbGFpbT86IFNjZW5hcmlvTGF0ZXN0Q2xhaW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogQ2xhaW1TdGF0ZTtcbiAgc2hhcmVkU2NlbmFyaW8/OiBTaGFyZWRTY2VuYXJpb05vZGU7XG4gIGlzQ2xhaW1hbnQ/OiBib29sZWFuO1xuICBhc0NsYWltUmVjZWl2ZXI/OiBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZXJOb2RlO1xuICBjbGFpbT86IFNoYXJlZFRwQ2xhaW1Ob2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1BcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVycz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGU+O1xuICBzdGF0ZT86IENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgYXBwcm92ZXI/OiBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVkPzogRGF0ZVRpbWU7XG4gIGFwcHJvdmFscz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVkQXBwcm92YWxOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluRGF0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHRpbWVSZWFkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWFuYWdlbWVudFN0YXRlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBsYXN0Vmlld2VkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBlbnVtIExpbmtUeXBlRmllbGQge1xuICBIQVJEID0gJ0hBUkQnLFxuICBTT0ZUID0gJ1NPRlQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzZW5kZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2VuZGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgcGxhaW5NZXNzYWdlPzogc3RyaW5nO1xuICBwbGFpbk1lc3NhZ2VKc29uPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlQ2xlYXJKc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2tGaWVsZCB7XG4gIGNyZWF0ZWQ/OiBEYXRlVGltZTtcbiAgbW9kaWZpZWQ/OiBEYXRlVGltZTtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzdGF0ZT86IExvY2tTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJDb25maWcge1xuICByZWxheUNvbm5lY3Rpb25NYXhMaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFpbGFibGVQbGFuRmllbGQge1xuICBpc3N1ZXJVaWQ/OiBzdHJpbmc7XG4gIHBsYW5VaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG4gIHRyaWFsPzogVHJpYWxQZXJpb2RGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZU9wdGlvbkZpZWxkIHtcbiAgcHJpY2VJZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGFtb3VudD86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIGludGVydmFsVW5pdD86IHN0cmluZztcbiAgaW50ZXJ2YWxDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmlhbFBlcmlvZEZpZWxkIHtcbiAgeWVhcnM/OiBudW1iZXI7XG4gIG1vbnRocz86IG51bWJlcjtcbiAgd2Vla3M/OiBudW1iZXI7XG4gIGRheXM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudENhcHR1cmVGaWVsZCB7XG4gIHN0cmlwZUludGVudElkPzogc3RyaW5nO1xuICBzdHJpcGVDbGllbnRTZWNyZXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudE1ldGhvZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNhcmQ/OiBQYXltZW50Q2FyZEZpZWxkO1xuICBpbnZvaWNlPzogUGF5bWVudEludm9pY2VGaWVsZDtcbiAgaXNEZWZhdWx0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FyZEZpZWxkIHtcbiAgYnJhbmQ/OiBzdHJpbmc7XG4gIGxhc3RGb3VyRGlnaXRzPzogc3RyaW5nO1xuICBleHBpcnlZZWFyPzogbnVtYmVyO1xuICBleHBpcnlNb250aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50SW52b2ljZUZpZWxkIHtcbiAgZW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbW90aW9uYWxDb2RlRmllbGQge1xuICBhbW91bnRPZmY/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBwZXJjZW50T2ZmPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IHN0cmluZztcbiAgZHVyYXRpb25Jbk1vbnRocz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJpb2RGaWVsZCB7XG4gIHN0YXJ0PzogRGF0ZVRpbWU7XG4gIGVuZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlZFBsYW5Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY3VycmVudFN0YXRlcz86IElzc3VlZFBsYW5TdGF0ZU5vZGVbXTtcbiAgY3VycmVudFBlcmlvZD86IFBlcmlvZEZpZWxkO1xuICBjdXJyZW50UHJpY2VPcHRpb24/OiBQcmljZU9wdGlvbkZpZWxkO1xuICB1cGNvbWluZ0ludm9pY2U/OiBCaWxsaW5nRmllbGQ7XG4gIGFsdGVybmF0aXZlUHJpY2VPcHRpb25zPzogUHJpY2VPcHRpb25GaWVsZFtdO1xuICBzY2hlZHVsZWRQcmljZUNoYW5nZXM/OiBQcmljZUNoYW5nZUZpZWxkW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhblN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogUGxhblN0YXRlRmllbGQ7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZUZpZWxkIHtcbiAgVFJJQUxMSU5HID0gJ1RSSUFMTElORycsXG4gIEFDVElWRSA9ICdBQ1RJVkUnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWxsaW5nRmllbGQge1xuICBpbnZvaWNlTnVtYmVyPzogc3RyaW5nO1xuICB0b3RhbD86IG51bWJlcjtcbiAgYW1vdW50RHVlPzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgZG9jdW1lbnRVcmw/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIGZpbmFsaXNlZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWRBdD86IERhdGVUaW1lO1xuICBwYWlkPzogYm9vbGVhbjtcbiAgbmV4dFBheW1lbnRBdHRlbXB0PzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VDaGFuZ2VGaWVsZCB7XG4gIHBlcmlvZFN0YXJ0PzogRGF0ZVRpbWU7XG4gIHByaWNlT3B0aW9uPzogUHJpY2VPcHRpb25GaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1pbmRlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluPzogSlNPTlN0cmluZztcbiAgcGxhaW5Kc29uPzogSlNPTk9iamVjdDtcbiAgZmlyc3RFdmVudD86IERhdGVUaW1lO1xuICBub3RpZnlBaGVhZFNlY29uZHM/OiBudW1iZXI7XG4gIG5vdGlmeUF0PzogRGF0ZVRpbWU7XG4gIGRpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG59XG4iXX0=
|
|
@@ -13,6 +13,24 @@ query FileKeyQuery($id: LrRelayIdInput!) {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
`;
|
|
16
|
+
export const DirectoryKeyFromSharedDirectoryQuery = gqlTyped `
|
|
17
|
+
query DirectoryKeyFromSharedDirectoryQuery($id: LrRelayIdInput!) {
|
|
18
|
+
tpSharedDirectory(id: $id) {
|
|
19
|
+
item {
|
|
20
|
+
keyId
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
export const FileKeyFromSharedFileQuery = gqlTyped `
|
|
26
|
+
query FileKeyFromSharedFileQuery($id: LrRelayIdInput!) {
|
|
27
|
+
tpSharedFile(id: $id) {
|
|
28
|
+
item {
|
|
29
|
+
keyId
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
16
34
|
export const FileStateKeyQuery = gqlTyped `
|
|
17
35
|
query FileStateKeyQuery($id: LrRelayIdInput!) {
|
|
18
36
|
fileState(id: $id) {
|
|
@@ -20,4 +38,4 @@ query FileStateKeyQuery($id: LrRelayIdInput!) {
|
|
|
20
38
|
}
|
|
21
39
|
}
|
|
22
40
|
`;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5ncWwucHJpdmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9pdGVtL2l0ZW0uZ3FsLnByaXZhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBeUI7Ozs7OztDQU1qRSxDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBb0I7Ozs7OztDQU12RCxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsUUFBUSxDQUE0Qzs7Ozs7Ozs7Q0FRdkcsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBa0M7Ozs7Ozs7O0NBUW5GLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQXlCOzs7Ozs7Q0FNakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi4vX2NvbW1vbi9hc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUtleVF1ZXJ5UmVzdWx0IHtcbiAgZGlyZWN0b3J5OiB7XG4gICAga2V5SWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERpcmVjdG9yeUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RGlyZWN0b3J5S2V5UXVlcnlSZXN1bHQ+YFxucXVlcnkgRGlyZWN0b3J5S2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVLZXlRdWVyeVJlc3VsdCB7XG4gIGZpbGU6IHtcbiAgICBrZXlJZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRmlsZUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RmlsZUtleVF1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IEZpbGVLZXlRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICBmaWxlKGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUtleUZyb21TaGFyZWREaXJlY3RvcnlRdWVyeVJlc3VsdCB7XG4gIHRwU2hhcmVkRGlyZWN0b3J5OiB7XG4gICAgaXRlbToge1xuICAgICAga2V5SWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGlyZWN0b3J5S2V5RnJvbVNoYXJlZERpcmVjdG9yeVF1ZXJ5ID0gZ3FsVHlwZWQ8RGlyZWN0b3J5S2V5RnJvbVNoYXJlZERpcmVjdG9yeVF1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IERpcmVjdG9yeUtleUZyb21TaGFyZWREaXJlY3RvcnlRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICB0cFNoYXJlZERpcmVjdG9yeShpZDogJGlkKSB7XG4gICAgaXRlbSB7XG4gICAgICBrZXlJZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlS2V5RnJvbVNoYXJlZEZpbGVRdWVyeVJlc3VsdCB7XG4gIHRwU2hhcmVkRmlsZToge1xuICAgIGl0ZW06IHtcbiAgICAgIGtleUlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEZpbGVLZXlGcm9tU2hhcmVkRmlsZVF1ZXJ5ID0gZ3FsVHlwZWQ8RmlsZUtleUZyb21TaGFyZWRGaWxlUXVlcnlSZXN1bHQ+YFxucXVlcnkgRmlsZUtleUZyb21TaGFyZWRGaWxlUXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgdHBTaGFyZWRGaWxlKGlkOiAkaWQpIHtcbiAgICBpdGVtIHtcbiAgICAgIGtleUlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0ZUtleVF1ZXJ5UmVzdWx0IHtcbiAgZmlsZVN0YXRlOiB7XG4gICAga2V5SWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEZpbGVTdGF0ZUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RmlsZVN0YXRlS2V5UXVlcnlSZXN1bHQ+YFxucXVlcnkgRmlsZVN0YXRlS2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgZmlsZVN0YXRlKGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuIl19
|
|
@@ -12,7 +12,7 @@ import { LockService } from '../lock/lock.service';
|
|
|
12
12
|
import { KcBadArgumentException } from '../_common/exceptions';
|
|
13
13
|
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
14
14
|
import { ArchiveDirectoryMutation, ArchiveFileMutation, BeginDeleteChildItemLinksWindowMutation, ChangeDirectoryParentsMutation, ChangeFileParentsMutation, CreateDirectoryMutation, CreateFileMutation, DeleteDirectoryMutation, DeleteFileMutation, RevertFileMutation, SetDirectoryConfidentialMutation, SetFileConfidentialMutation, TempDirectoryQuery, UnarchiveDirectoryMutation, UnarchiveFileMutation, UpdateDirectoryMutation, UpdateFileMutation, } from './item.gql';
|
|
15
|
-
import { DirectoryKeyQuery, FileKeyQuery, FileStateKeyQuery, } from './item.gql.private';
|
|
15
|
+
import { DirectoryKeyFromSharedDirectoryQuery, DirectoryKeyQuery, FileKeyFromSharedFileQuery, FileKeyQuery, FileStateKeyQuery, } from './item.gql.private';
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
import * as i1 from "../file-upload/file-upload.service";
|
|
18
18
|
import * as i2 from "../key/key.service";
|
|
@@ -64,6 +64,26 @@ let ItemService = ItemService_1 = class ItemService extends LrService {
|
|
|
64
64
|
})).file.keyId;
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
+
getDirectoryKeyIdFromSharedDirectory(sharedDirectoryId) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
return (yield this.query({
|
|
70
|
+
query: DirectoryKeyFromSharedDirectoryQuery,
|
|
71
|
+
variables: {
|
|
72
|
+
id: sharedDirectoryId,
|
|
73
|
+
},
|
|
74
|
+
})).tpSharedDirectory.item.keyId;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
getFileKeyIdFromSharedFile(sharedFileId) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
return (yield this.query({
|
|
80
|
+
query: FileKeyFromSharedFileQuery,
|
|
81
|
+
variables: {
|
|
82
|
+
id: sharedFileId,
|
|
83
|
+
},
|
|
84
|
+
})).tpSharedFile.item.keyId;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
67
87
|
getDirectoryKey(directoryId, directoryKeyId) {
|
|
68
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
89
|
return this.keyGraph.getKey(directoryKeyId, () => this.getDirectoryKeyId(directoryId));
|
|
@@ -589,4 +609,4 @@ ItemService = ItemService_1 = __decorate([
|
|
|
589
609
|
})
|
|
590
610
|
], ItemService);
|
|
591
611
|
export { ItemService };
|
|
592
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2l0ZW0vaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQix1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7SUE4QmYsV0FBVyx5QkFBWCxXQUFZLFNBQVEsU0FBUztJQUl4QyxZQUNVLE1BQWMsRUFDZCxRQUFrQixFQUNsQixpQkFBb0MsRUFDcEMsVUFBc0IsRUFDdEIsVUFBNkIsRUFDN0IsUUFBeUIsRUFDekIsV0FBd0IsRUFDeEIsV0FBd0I7UUFFaEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBVFIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBWGxDLDhCQUE4QjtRQUN0QixrQkFBYSxHQUFjLElBQUksQ0FBQztRQWF0QyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFXSyxtQkFBbUIsQ0FDdkIsT0FBbUM7O1lBRW5DLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUNwRSxPQUFPLENBQUMsZUFBZSxDQUN4QixDQUFDO1lBRUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDN0MsT0FBTyxDQUFDLGNBQWMsRUFDdEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDdEQsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFO2dCQUNoRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFlBQVk7YUFDdEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssaUJBQWlCLENBQUMsV0FBMkI7O1lBQ2pELE9BQU8sQ0FDTCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsU0FBUyxFQUFFO29CQUNULEVBQUUsRUFBRSxXQUFXO2lCQUNoQjthQUNGLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQztLQUFBO0lBRUssWUFBWSxDQUFDLE1BQXNCOztZQUN2QyxPQUFPLENBQ0wsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNmLEtBQUssRUFBRSxZQUFZO2dCQUNuQixTQUFTLEVBQUU7b0JBQ1QsRUFBRSxFQUFFLE1BQU07aUJBQ1g7YUFDRixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRUssZUFBZSxDQUNuQixXQUEyQixFQUMzQixjQUErQjs7WUFFL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FDcEMsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVLLFVBQVUsQ0FBQyxNQUFzQixFQUFFLFNBQTBCOztZQUNqRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztLQUFBO0lBRUQsZUFBZSxDQUFDLE9BQStCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUssdUJBQXVCLENBQUMsT0FBK0I7O1lBQzNELE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2lCQUNsRDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVELGVBQWUsQ0FBQyxPQUErQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVLLHVCQUF1QixDQUFDLE9BQStCOztZQUMzRCxPQUFPLElBQUksVUFBVSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztpQkFDbEQ7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxlQUFlLENBQUMsRUFBTTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELHVCQUF1QixDQUFDLEVBQU07UUFDNUIsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsV0FBVyxFQUFFLEVBQUU7aUJBQ2hCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQTBCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUssa0JBQWtCLENBQUMsT0FBMEI7O1lBQ2pELE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO2lCQUM3QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVELFVBQVUsQ0FBQyxPQUEwQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVLLGtCQUFrQixDQUFDLE9BQTBCOztZQUNqRCxPQUFPLElBQUksVUFBVSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztpQkFDN0M7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxVQUFVLENBQUMsT0FBMEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFSyxrQkFBa0IsQ0FBQyxPQUEwQjs7WUFDakQsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxPQUFPO2lCQUNmO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsVUFBVSxDQUFDLEVBQU07UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEVBQU07UUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLE9BQWdDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHdCQUF3QixDQUN0QixXQUFtQixFQUNuQixPQUFnQztRQUVoQyxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRTtvQkFDTCxXQUFXO29CQUNYLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztpQkFDN0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYztRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDaEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsTUFBTTtpQkFDUDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLFdBQW1CLEVBQUUsT0FBa0M7UUFDeEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsMEJBQTBCLENBQ3hCLFdBQW1CLEVBQ25CLE9BQWtDO1FBRWxDLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFO29CQUNMLFdBQVc7b0JBQ1gsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBYztRQUNsQyxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRTtvQkFDTCxNQUFNO2lCQUNQO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBc0M7UUFDM0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFSyw4QkFBOEIsQ0FBQyxPQUFzQzs7WUFDekUsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUM7aUJBQ3pEO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssaUJBQWlCLENBQUMsT0FBaUM7O1lBQ3ZELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7SUFFSyx5QkFBeUIsQ0FBQyxPQUFpQzs7WUFDL0QsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7aUJBQ3BEO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsK0JBQStCLENBQzdCLE9BQStDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csdUNBQXVDLENBQzNDLE9BQStDOztZQUUvQyxPQUFPLElBQUksVUFBVSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsdUNBQXVDO2dCQUNqRCxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLE9BQU87aUJBQ2Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0csbUJBQW1COzs7WUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDM0I7WUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxrQkFBa0I7Z0JBQ3pCLFNBQVMsRUFBRTtvQkFDVCxTQUFTLEVBQUUsYUFBVyxDQUFDLGdDQUFnQztpQkFDeEQ7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsMERBQTBELGFBQVcsQ0FBQyxnQ0FBZ0MsR0FBRyxDQUMxRyxDQUFDO2FBQ0g7WUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQy9DLCtCQUErQjtnQkFDL0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pELGVBQWUsRUFBRSxJQUFJO29CQUNyQixhQUFhLEVBQUUsYUFBVyxDQUFDLHlCQUF5QjtpQkFDckQsQ0FBQyxDQUFDO2dCQUVILHVDQUF1QztnQkFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDckQsT0FBTyxRQUFFLFFBQVEsQ0FBQyxJQUFJLDBDQUFFLE9BQU87aUJBQ2hDLENBQUMsQ0FBQztnQkFFSCwwRUFBMEU7Z0JBQzFFLHFDQUFxQztnQkFDckMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztvQkFDNUQsZUFBZTtvQkFDZixVQUFVO2lCQUNYLENBQUMsQ0FBQztnQkFFSCxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7Z0JBRXRFLElBQUksQ0FBQyxhQUFhLEdBQUc7b0JBQ25CLEVBQUU7b0JBQ0YsS0FBSztpQkFDTixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsdUJBQXVCO2dCQUN2QixNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFFN0QsSUFBSSxDQUFDLGFBQWEsR0FBRztvQkFDbkIsRUFBRTtvQkFDRixLQUFLO2lCQUNOLENBQUM7YUFDSDtZQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQzs7S0FDM0I7SUFFSyxtQkFBbUIsQ0FBQyxPQUFtQzs7WUFDM0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7S0FBQTtJQUVEOzs7O09BSUc7SUFDRywyQkFBMkIsQ0FBQyxPQUFtQzs7WUFDbkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUVqRCwrREFBK0Q7WUFDL0Qsd0VBQXdFO1lBQ3hFLDBFQUEwRTtZQUMxRSx3RUFBd0U7WUFDeEUsZUFBZTtZQUNmLE1BQU0sSUFBSSxDQUFDLCtCQUErQixDQUFDO2dCQUN6QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTthQUN6QyxDQUFDLENBQUM7WUFFSCx5Q0FBeUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN6QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsbUJBQW1CO2dCQUNoRCxpQkFBaUIsRUFBRTtvQkFDakI7d0JBQ0UsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUN2QixhQUFhLEVBQUUsT0FBTyxDQUFDLEtBQUs7cUJBQzdCO2lCQUNGO2dCQUNELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTthQUNyQyxDQUFDLENBQ0gsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1lBRTVCLHNCQUFzQjtZQUN0QixNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQzFCLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQztZQUVILHdEQUF3RDtZQUN4RCw0RUFBNEU7WUFFNUUsd0VBQXdFO1lBQ3hFLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDO2dCQUN6QyxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3pCLGNBQWMsRUFBRSxTQUFTLENBQUMsS0FBSztnQkFDL0IsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsWUFBWSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7YUFDeEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssbUJBQW1CLENBQUMsT0FBbUM7O1lBQzNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0tBQUE7SUFFSywyQkFBMkIsQ0FBQyxPQUFtQzs7WUFDbkUsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07d0JBQ3RCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtxQkFDbkM7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyx3QkFBd0IsQ0FBQyxPQUF3Qzs7WUFDckUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7S0FBQTtJQUVLLGdDQUFnQyxDQUNwQyxPQUF3Qzs7WUFFeEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLGdDQUFnQztnQkFDMUMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7d0JBQ2hDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtxQkFDbkM7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxpRkFBaUY7SUFDakYsaUZBQWlGO0lBQ2pGLFVBQVU7SUFDVixpRkFBaUY7SUFDakYsaUZBQWlGO0lBRW5FLHNCQUFzQixDQUNsQyxPQUErQixFQUMvQixNQUFlOztZQUVmLG1FQUFtRTtZQUNuRSw2QkFBNkI7WUFDN0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUM1QyxPQUFPLENBQUMsV0FBVyxFQUNuQixPQUFPLENBQUMsYUFBYSxDQUN0QixDQUFDO1lBRUYsT0FBTztnQkFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDN0IsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztnQkFDNUQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2FBQzNCLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFYSxpQkFBaUIsQ0FBQyxlQUErQjs7WUFDN0QsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDZixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixTQUFTLEVBQUU7b0JBQ1QsRUFBRSxFQUFFLGVBQWU7aUJBQ3BCO2FBQ0YsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO0tBQUE7SUFFYSxzQkFBc0IsQ0FDbEMsT0FBZ0IsRUFDaEIsT0FBOEM7O1lBRTlDLHlEQUF5RDtZQUN6RCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFdkQsTUFBTSxXQUFXLEdBQ2YsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV4RSxJQUFJLGVBQXVCLENBQUM7WUFDNUIsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUMzRCxZQUFZLEVBQ1osV0FBVyxDQUNaLENBQUM7Z0JBQ0YsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUNsQixlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQzNEO3FCQUFNO29CQUNMLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQzt3QkFDakUsZ0JBQWdCLEVBQUUsaUJBQWlCO3FCQUNwQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtZQUVELHVDQUNLLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUNsRCxlQUFlLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQ25FLGVBQWUsSUFDZjtRQUNKLENBQUM7S0FBQTtJQUVhLHdCQUF3QixDQUNwQyxPQUFpQyxFQUNqQyxPQUFnQjs7WUFFaEIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVk7Z0JBQ3ZDLENBQUMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUN4QyxDQUNGO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFUCxPQUFPO2dCQUNMLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRTtnQkFDbEQsZ0JBQWdCLEVBQUUsWUFBWTthQUMvQixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRWEsV0FBVyxDQUN2QixHQUFZLEVBQ1osT0FBeUU7O1lBRXpFLE1BQU0sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFdkQsT0FBTztnQkFDTCxTQUFTLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUN6RCxVQUFVLEVBQ1IsbUJBQW1CO29CQUNuQixDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7YUFDbEUsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVhLHNCQUFzQixDQUFDLE9BQStCOzs7WUFDbEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLFFBQUMsT0FBTyxDQUFDLGlCQUFpQiwwQ0FBRSxNQUFNLENBQUEsRUFBRTtnQkFDbEUsTUFBTSxJQUFJLHNCQUFzQixDQUM5QixnSkFBZ0osQ0FDakosQ0FBQzthQUNIO1lBRUQsSUFBSSxPQUFPLENBQUMsZUFBZSxXQUFJLE9BQU8sQ0FBQyxpQkFBaUIsMENBQUUsTUFBTSxDQUFBLEVBQUU7Z0JBQ2hFLE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsb0pBQW9KLENBQ3JKLENBQUM7YUFDSDtZQUVELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxPQUN6QyxPQUFPLENBQUMsaUJBQWlCLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBRS9DLENBQUM7WUFFRix5RUFBeUU7WUFDekUsSUFBSSxtQkFBNkMsQ0FBQztZQUNsRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUU7Z0JBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO2dCQUMvQyxtQkFBbUIsR0FBRztvQkFDcEIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFO29CQUN6QixVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO2lCQUMvRCxDQUFDO2FBQ0g7WUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWhFLHVDQUNLLFNBQVMsS0FDWixpQkFBaUI7Z0JBQ2pCLG1CQUFtQixJQUNuQjs7S0FDSDtJQUVhLHNCQUFzQixDQUFDLE9BQStCOztZQUNsRSxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQzdDLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQ3ZCLENBQUM7WUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVwRSx1Q0FDSyxTQUFTLEtBQ1osV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQ2hDO1FBQ0osQ0FBQztLQUFBO0lBRWEsaUJBQWlCLENBQUMsT0FBMEI7O1lBQ3hELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVsRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDekMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFPLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxNQUFNLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FDOUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCw4REFBOEQ7Z0JBQzlELDhFQUE4RTtnQkFDOUUsT0FBTztvQkFDTCxXQUFXO29CQUNYLGFBQWE7b0JBQ2IsY0FBYyxFQUFFLFVBQVU7aUJBQ0MsQ0FBQztZQUNoQyxDQUFDLENBQUEsQ0FBQyxDQUNILENBQUM7WUFFRixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFbEUsdUNBQ0ssS0FBSyxLQUNSLGlCQUFpQixJQUNqQjtRQUNKLENBQUM7S0FBQTtJQUVhLGlCQUFpQixDQUFDLE9BQTBCOztZQUN4RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekUsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV0RSx1Q0FDSyxLQUFLLEtBQ1IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQ3RCO1FBQ0osQ0FBQztLQUFBO0lBRWEsNkJBQTZCLENBQ3pDLE9BQXNDOztZQUV0QyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQzdDLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQ3ZCLENBQUM7WUFFRixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDL0MsT0FBTyxFQUNQLFlBQVksQ0FBQyxHQUFHLENBQ2pCLENBQUM7WUFFRix1Q0FDSyxLQUFLLEtBQ1IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQ2hDO1FBQ0osQ0FBQztLQUFBO0lBRWEsd0JBQXdCLENBQUMsT0FBaUM7O1lBQ3RFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6RSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXhFLHVDQUNLLEtBQUssS0FDUixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFDdEI7UUFDSixDQUFDO0tBQUE7SUFFTyxRQUFRO1FBQ2QseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFBO0FBL29CUSxxQ0FBeUIsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMvQyw0Q0FBZ0MsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZELE1BQU0sRUFBRTtRQUNOO1lBQ0UsUUFBUSxFQUFFLGFBQVcsQ0FBQyx5QkFBeUI7U0FDaEQ7S0FDRjtDQUNGLENBQUMsQ0FBQzs7O1lBNUJKLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBakU4QixNQUFNO1lBQWhCLFFBQVE7WUFLcEIsaUJBQWlCO1lBR2pCLFVBQVU7WUFGVixpQkFBaUI7WUFDakIsZUFBZTtZQUdmLFdBQVc7WUFOWCxXQUFXOztBQThEUCxXQUFXO0lBTnZCLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxXQUFXLENBaXFCdkI7U0FqcUJZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgTHJNdXRhdGlvbiwgTHJTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgSUQsIEpTT05PYmplY3QsIExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bG9hZFR5cGUgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IExvY2tTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jay9sb2NrLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBBcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gIEFyY2hpdmVGaWxlTXV0YXRpb24sXG4gIEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dNdXRhdGlvbixcbiAgQ2hhbmdlRGlyZWN0b3J5UGFyZW50c011dGF0aW9uLFxuICBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uLFxuICBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvbixcbiAgQ3JlYXRlRmlsZU11dGF0aW9uLFxuICBEZWxldGVEaXJlY3RvcnlNdXRhdGlvbixcbiAgRGVsZXRlRmlsZU11dGF0aW9uLFxuICBSZXZlcnRGaWxlTXV0YXRpb24sXG4gIFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICBTZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24sXG4gIFRlbXBEaXJlY3RvcnlRdWVyeSxcbiAgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVuYXJjaGl2ZUZpbGVNdXRhdGlvbixcbiAgVXBkYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVwZGF0ZUZpbGVNdXRhdGlvbixcbn0gZnJvbSAnLi9pdGVtLmdxbCc7XG5pbXBvcnQge1xuICBEaXJlY3RvcnlLZXlRdWVyeSxcbiAgRmlsZUtleVF1ZXJ5LFxuICBGaWxlU3RhdGVLZXlRdWVyeSxcbn0gZnJvbSAnLi9pdGVtLmdxbC5wcml2YXRlJztcbmltcG9ydCB7XG4gIEFyY2hpdmVEaXJlY3RvcnlPcHRpb25zLFxuICBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93T3B0aW9ucyxcbiAgQ2hhbmdlRGlyZWN0b3J5UGFyZW50c09wdGlvbnMsXG4gIENoYW5nZUZpbGVQYXJlbnRzT3B0aW9ucyxcbiAgQ2hhbmdlSXRlbVBhcmVudHNPcHRpb25zLFxuICBDcmVhdGVEaXJlY3RvcnlPcHRpb25zLFxuICBDcmVhdGVEaXJlY3RvcnlUcmVlT3B0aW9ucyxcbiAgQ3JlYXRlRmlsZU9wdGlvbnMsXG4gIERvd25sb2FkRmlsZUNvbnRlbnRPcHRpb25zLFxuICBGaWxlUGFyZW50RGlyZWN0b3J5SW5wdXQsXG4gIElkS2V5UGFpcixcbiAgUGFyZW50RGlyZWN0b3J5SW5wdXQsXG4gIFBhcmVudERpcmVjdG9yeU9wdGlvbnMsXG4gIFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dCxcbiAgUmV2ZXJ0RmlsZU9wdGlvbnMsXG4gIFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE9wdGlvbnMsXG4gIFNldEZpbGVDb25maWRlbnRpYWxPcHRpb25zLFxuICBVbmFyY2hpdmVEaXJlY3RvcnlPcHRpb25zLFxuICBVcGRhdGVEaXJlY3RvcnlPcHRpb25zLFxuICBVcGRhdGVGaWxlT3B0aW9ucyxcbn0gZnJvbSAnLi9pdGVtLnR5cGVzJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEl0ZW1TZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgLy8gQ2FjaGluZyB0aGUgdGVtcCBkaXJlY3RvcnkuXG4gIHByaXZhdGUgdGVtcERpcmVjdG9yeTogSWRLZXlQYWlyID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2tTZXJ2aWNlOiBMb2NrU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5hdXRoU2VydmljZS5hZGRMb2dvdXRMaXN0ZW5lcigoKSA9PiB0aGlzLm9uTG9nb3V0KCkpO1xuICB9XG5cbiAgc3RhdGljIFRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEEgPSB7IGtjVHlwZTogJ3RlbXAnIH07XG4gIHN0YXRpYyBURU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBX0ZJTFRFUiA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBmaWx0ZXI6IFtcbiAgICAgIHtcbiAgICAgICAgY29udGFpbnM6IEl0ZW1TZXJ2aWNlLlRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEEsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIGFzeW5jIGRvd25sb2FkRmlsZUNvbnRlbnQoXG4gICAgb3B0aW9uczogRG93bmxvYWRGaWxlQ29udGVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmRvd25sb2FkRW5jcnlwdGVkRmlsZShcbiAgICAgIG9wdGlvbnMuZmlsZVN0YXRlTm9kZUlkXG4gICAgKTtcblxuICAgIGNvbnN0IGZpbGVTdGF0ZUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KFxuICAgICAgb3B0aW9ucy5maWxlU3RhdGVLZXlJZCxcbiAgICAgICgpID0+IHRoaXMuZ2V0RmlsZVN0YXRlS2V5SWQob3B0aW9ucy5maWxlU3RhdGVOb2RlSWQpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmtleUdyYXBoLmRlY3J5cHRGcm9tU3RyaW5nKGZpbGVTdGF0ZUtleSwgZmlsZUNvbnRlbnQsIHtcbiAgICAgIHBheWxvYWRUeXBlOiBQYXlsb2FkVHlwZS5VSU5UXzhfQVJSQVksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXREaXJlY3RvcnlLZXlJZChkaXJlY3RvcnlJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBEaXJlY3RvcnlLZXlRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQ6IGRpcmVjdG9yeUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmRpcmVjdG9yeS5rZXlJZDtcbiAgfVxuXG4gIGFzeW5jIGdldEZpbGVLZXlJZChmaWxlSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogRmlsZUtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogZmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmZpbGUua2V5SWQ7XG4gIH1cblxuICBhc3luYyBnZXREaXJlY3RvcnlLZXkoXG4gICAgZGlyZWN0b3J5SWQ6IExyUmVsYXlJZElucHV0LFxuICAgIGRpcmVjdG9yeUtleUlkPzogTHJSZWxheUlkSW5wdXRcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMua2V5R3JhcGguZ2V0S2V5KGRpcmVjdG9yeUtleUlkLCAoKSA9PlxuICAgICAgdGhpcy5nZXREaXJlY3RvcnlLZXlJZChkaXJlY3RvcnlJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZUtleShmaWxlSWQ6IExyUmVsYXlJZElucHV0LCBmaWxlS2V5SWQ/OiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLmtleUdyYXBoLmdldEtleShmaWxlS2V5SWQsICgpID0+IHRoaXMuZ2V0RmlsZUtleUlkKGZpbGVJZCkpO1xuICB9XG5cbiAgY3JlYXRlRGlyZWN0b3J5KG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jcmVhdGVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlQ3JlYXRlRGlyZWN0b3J5KG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZURpcmVjdG9yeShvcHRpb25zOiBVcGRhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudXBkYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9uczogVXBkYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZVVwZGF0ZURpcmVjdG9yeShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVEaXJlY3RvcnkoaWQ6IElEKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuZGVsZXRlRGlyZWN0b3J5TXV0YXRpb24oaWQpKTtcbiAgfVxuXG4gIGRlbGV0ZURpcmVjdG9yeU11dGF0aW9uKGlkOiBJRCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZDogaWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlRmlsZShvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVGaWxlTXV0YXRpb24ob3B0aW9uczogQ3JlYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlQ3JlYXRlRmlsZShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVGaWxlKG9wdGlvbnM6IFVwZGF0ZUZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudXBkYXRlRmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVNdXRhdGlvbihvcHRpb25zOiBVcGRhdGVGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVVcGRhdGVGaWxlKG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldmVydEZpbGUob3B0aW9uczogUmV2ZXJ0RmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5yZXZlcnRGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgcmV2ZXJ0RmlsZU11dGF0aW9uKG9wdGlvbnM6IFJldmVydEZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXZlcnRGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IG9wdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRmlsZShpZDogSUQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVGaWxlTXV0YXRpb24oaWQpKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGVNdXRhdGlvbihpZDogSUQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGZpbGVJZDogaWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXJjaGl2ZURpcmVjdG9yeShkaXJlY3RvcnlJZDogc3RyaW5nLCBvcHRpb25zOiBBcmNoaXZlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbihkaXJlY3RvcnlJZCwgb3B0aW9ucykpO1xuICB9XG5cbiAgYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uKFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogQXJjaGl2ZURpcmVjdG9yeU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBBcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmU6IG9wdGlvbnMucmVjdXJzaXZlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFyY2hpdmVGaWxlKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuYXJjaGl2ZUZpbGVNdXRhdGlvbihmaWxlSWQpKTtcbiAgfVxuXG4gIGFyY2hpdmVGaWxlTXV0YXRpb24oZmlsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IEFyY2hpdmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdW5hcmNoaXZlRGlyZWN0b3J5KGRpcmVjdG9yeUlkOiBzdHJpbmcsIG9wdGlvbnM6IFVuYXJjaGl2ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbihkaXJlY3RvcnlJZCwgb3B0aW9ucykpO1xuICB9XG5cbiAgdW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oXG4gICAgZGlyZWN0b3J5SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBVbmFyY2hpdmVEaXJlY3RvcnlPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmU6IG9wdGlvbnMucmVjdXJzaXZlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVuYXJjaGl2ZUZpbGUoZmlsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bmFyY2hpdmVGaWxlTXV0YXRpb24oZmlsZUlkKSk7XG4gIH1cblxuICB1bmFyY2hpdmVGaWxlTXV0YXRpb24oZmlsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVuYXJjaGl2ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGZpbGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VEaXJlY3RvcnlQYXJlbnRzKG9wdGlvbnM6IENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY2hhbmdlRGlyZWN0b3J5UGFyZW50c011dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbihvcHRpb25zOiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ2hhbmdlRGlyZWN0b3J5UGFyZW50c011dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzKG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZUZpbGVQYXJlbnRzKG9wdGlvbnM6IENoYW5nZUZpbGVQYXJlbnRzT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNoYW5nZUZpbGVQYXJlbnRzTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbihvcHRpb25zOiBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENoYW5nZUZpbGVQYXJlbnRzTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNoYW5nZUZpbGVQYXJlbnRzKG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3coXG4gICAgb3B0aW9uczogQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd09wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuYmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd011dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2hlZHVsZSBjbGVhbnVwIG9mIHRoZSBoYXJkIGxpbmtzIGluIGEgZGlyZWN0b3J5LlxuICAgKiBUaGUgc2VydmVyIHdpbGwgZGVsZXRlIGFsbCBoYXJkIGxpbmsgd2l0aGluIHRoZSBkaXJlY3Rvcnkgd2l0aGluIGEgdGltZSB3aW5kb3c6IHN0YXJ0aW5nIGZyb20gbm93IGFuZFxuICAgKiBlbmRpbmcgYXQgcmVxdWVzdFdpbmRvd01zIGFmdGVyIG5vdy5cbiAgICogVGhlIHNlcnZlciBkZWNpZGVzIF93aGVuXyBpdCB3aWxsIHBlcmZvcm0gdGhlIGRlbGV0ZS4gSXQncyBub3QgZ3VhcmFudGVlZCB0aGF0IGl0IHdpbGwgcGVyZm9ybVxuICAgKiB0aGUgZGVsZXRlIGF0IFwibm93ICsgcmVxdWVzdFdpbmRvd01zXCIsIGJ1dCBpdCB3aWxsIGhhcHBlbiBhdCBzb21lIHRpbWUgYWZ0ZXIgXCJub3cgKyByZXF1ZXN0V2luZG93TXNcIi5cbiAgICogVGhpcyBhbGxvd3MgbXVsdGlwbGUgb3ZlcmxhcHBpbmcgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBhbmQgdGhlIHNlcnZlciBhbGxvY2F0ZXMgZW5vdWdoIGZvciBlYWNoIHJlcXVlc3QuXG4gICAqIFRoZSBzZXJ2ZXIgaGFzIGEgc2V0dGluZyB0aGF0IGFsbG93cyBmb3IgYSBtYXhpbXVtIHZhbHVlIG9uIHJlcXVlc3RXaW5kb3dNcy4gSWYgdGhlIHJlcXVlc3RlZCB2YWx1ZVxuICAgKiBpcyBsYXJnZXIgdGhhbiB0aGlzIG1heGltdW0sIHRoZSBjYWxsIHdpbGwgZmFpbC5cbiAgICovXG4gIGFzeW5jIGJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dNdXRhdGlvbihcbiAgICBvcHRpb25zOiBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93T3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogb3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhpcyBtZXRob2QgbWF5IHJhaXNlIFZFUlNJT05fTUlTTUFUQ0ggZXhjZXB0aW9uIGlmIHRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb25cbiAgICogd2hlbiBtdWx0aXBsZSBjbGllbnRzIHRyeSB0byBjcmVhdGUgdGhlIHRlbXAgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBUT0RPIFRoZXJlIGlzIGEgcmV0cnkgbWVjaGFuaXNtIGluIGdyYXBocWwgd2l0aCBleHBvbmVudGlhbCBiYWNrIG9mZiBidXQgdGhhdCdzIGludGVybmFsLlxuICAgKiBCdXQgbmVlZCB0byB1c2UgYW4gZXhwb25lbnRpYWwgYmFjayBvZmYgbGliIGlmIHdlIHdhbnQgdG8gcmV0cnkgaGVyZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIElEIG9mIHRoZSB0ZW1wIGRpcmVjdG9yeVxuICAgKlxuICAgKi9cbiAgYXN5bmMgZW5zdXJlVGVtcERpcmVjdG9yeSgpOiBQcm9taXNlPElkS2V5UGFpcj4ge1xuICAgIGlmICh0aGlzLnRlbXBEaXJlY3RvcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlbXBEaXJlY3Rvcnk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUZW1wRGlyZWN0b3J5UXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGxhaW5NZXRhOiBJdGVtU2VydmljZS5URU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBX0ZJTFRFUixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3Rpbmcucm9vdERpcmVjdG9yaWVzLmVkZ2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGVyZSBpcyBtb3JlIHRoYW4gMSB0ZW1wIGRpcmVjdG9yeSAocGxhaW5NZXRhIGZpbHRlcjogJHtJdGVtU2VydmljZS5URU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBX0ZJTFRFUn0pYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXhpc3Rpbmcucm9vdERpcmVjdG9yaWVzLmVkZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gRG9lc24ndCBleGlzdCB5ZXQsIGNyZWF0ZSBpdFxuICAgICAgY29uc3QgY3JlYXRlRGlyZWN0b3J5ID0gYXdhaXQgdGhpcy5jcmVhdGVEaXJlY3RvcnlNdXRhdGlvbih7XG4gICAgICAgIGFzUm9vdERpcmVjdG9yeTogdHJ1ZSxcbiAgICAgICAgcGxhaW5NZXRhSnNvbjogSXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBPcHRpbWlzdGljIGxvY2sgb24gdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgIGNvbnN0IHVwZGF0ZUxvY2sgPSB0aGlzLmxvY2tTZXJ2aWNlLnVwZGF0ZUxvY2tNdXRhdGlvbih7XG4gICAgICAgIHZlcnNpb246IGV4aXN0aW5nLmxvY2s/LnZlcnNpb24sXG4gICAgICB9KTtcblxuICAgICAgLy8gQmVjYXVzZSB0aGlzLm11dGF0ZSgpIG9ubHkgaGFuZGxlcyBzaW1wbGUgdHlwZXMgd2UgbmVlZCB0byB1c2UgdGhlIG1vcmVcbiAgICAgIC8vIGFkdmFuY2VkIHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKClcbiAgICAgIGNvbnN0IFtjcmVhdGVEaXJlY3RvcnlSZXN1bHRdID0gYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoW1xuICAgICAgICBjcmVhdGVEaXJlY3RvcnksXG4gICAgICAgIHVwZGF0ZUxvY2ssXG4gICAgICBdKTtcblxuICAgICAgY29uc3QgeyBpZCwga2V5SWQgfSA9IGNyZWF0ZURpcmVjdG9yeVJlc3VsdC5jcmVhdGVEaXJlY3RvcnkuZGlyZWN0b3J5O1xuXG4gICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBrZXlJZCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJldHVybiBleGlzdGluZyB0ZW1wXG4gICAgICBjb25zdCB7IGlkLCBrZXlJZCB9ID0gZXhpc3Rpbmcucm9vdERpcmVjdG9yaWVzLmVkZ2VzWzBdLm5vZGU7XG5cbiAgICAgIHRoaXMudGVtcERpcmVjdG9yeSA9IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGtleUlkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50ZW1wRGlyZWN0b3J5O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5VHJlZShvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlUcmVlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZURpcmVjdG9yeVRyZWVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogWW91IG11c3QgcnVuIHRoaXMgbXV0YXRpb24gd2l0aGluIHRoZSB0ZW1wIGRpcmVjdG9yeSBjbGVhbnVwIHdpbmRvdyBvbiB0aGVcbiAgICogc2VydmVyLCBvdGhlcndpc2UgdGhlIHRlbXAgZGlyZWN0b3J5IHdpbGwgZ2V0IGNsZWFuZWQgdXAuXG4gICAqXG4gICAqL1xuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlUcmVlTXV0YXRpb24ob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5VHJlZU9wdGlvbnMpIHtcbiAgICBjb25zdCB0ZW1wRGlyID0gYXdhaXQgdGhpcy5lbnN1cmVUZW1wRGlyZWN0b3J5KCk7XG5cbiAgICAvLyBDbGVhciB0aGUgdGVtcCBkaXJlY3Rvcnkgb2YgdGhlIG9uZXMgd2UgYXJlIGFib3V0IHRvIGNyZWF0ZS5cbiAgICAvLyBOT1RFOiB0aGlzIG11dGF0aW9uIGNhbiBub3QgYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgbXV0YXRpb24gd2l0aCB0aGVcbiAgICAvLyB0aGUgY3JlYXRlRGlyZWN0b3J5IG11dGF0aW9uIGJlY2F1c2UgaXQgdXNlcyB0aGUgY3VycmVudCBzZXJ2ZXIgdGltZSB0b1xuICAgIC8vIGNsZWFuIHVwLiBTbyBpdCBtdXN0IHN1Y2Nlc3NmdWxseSBjb21wbGV0ZSBiZWZvcmUgdGhlIGNyZWF0aW9uIG9mIHRoZVxuICAgIC8vIGRpcmVjdG9yaWVzLlxuICAgIGF3YWl0IHRoaXMuYmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvdyh7XG4gICAgICBkaXJlY3RvcnlJZDogdGVtcERpci5pZCxcbiAgICAgIHJlcXVlc3RXaW5kb3dNczogb3B0aW9ucy5yZXF1ZXN0V2luZG93TXMsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGRpcmVjdG9yeSB0aGF0IGhhcyBjb250ZW50c1xuICAgIGNvbnN0IGRpcmVjdG9yeSA9IChcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlRGlyZWN0b3J5KHtcbiAgICAgICAgY2lwaGVyTWV0YUNsZWFySnNvbjogb3B0aW9ucy5jaXBoZXJNZXRhQ2xlYXJKc29uLFxuICAgICAgICBwYXJlbnREaXJlY3RvcmllczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdG9yeUlkOiB0ZW1wRGlyLmlkLFxuICAgICAgICAgICAgd3JhcHBpbmdLZXlJZDogdGVtcERpci5rZXlJZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwbGFpbk1ldGFKc29uOiBvcHRpb25zLnBsYWluTWV0YUpzb24sXG4gICAgICB9KVxuICAgICkuY3JlYXRlRGlyZWN0b3J5LmRpcmVjdG9yeTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY29udGVudHNcbiAgICBhd2FpdCBvcHRpb25zLmNyZWF0ZUNvbnRlbnQoe1xuICAgICAgaWQ6IGRpcmVjdG9yeS5pZCxcbiAgICAgIGtleUlkOiBkaXJlY3Rvcnkua2V5SWQsXG4gICAgfSk7XG5cbiAgICAvLyBUT0RPIGNsaWVudC1zaWRlIGNoZWNrIGZvciB0aW1lb3V0IG9uIHJlcXVlc3RXaW5kb3dNc1xuICAgIC8vIFRPRE8gcmV0dXJuIHRoZSBzZXJ2ZXIgdGltZSB3aGVyZSBkZWxldGUgaXMgc2NoZWR1bGVkLiBFeHBpcmFibGUgbXV0YXRpb25cblxuICAgIC8vIFJldHVybiB0aGUgbXV0YXRpb24gdGhhdCBtb3ZlcyB0aGUgZGlyZWN0b3J5IGludG8gdGhlIGRzdCBkaXJlY3Rvcmllc1xuICAgIHJldHVybiB0aGlzLmNoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbih7XG4gICAgICBkaXJlY3RvcnlJZDogZGlyZWN0b3J5LmlkLFxuICAgICAgZGlyZWN0b3J5S2V5SWQ6IGRpcmVjdG9yeS5rZXlJZCxcbiAgICAgIHBhcmVudHNUb1JlbW92ZTogW3RlbXBEaXIuaWRdLFxuICAgICAgcGFyZW50c1RvQWRkOiBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0RmlsZUNvbmZpZGVudGlhbChvcHRpb25zOiBTZXRGaWxlQ29uZmlkZW50aWFsT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnNldEZpbGVDb25maWRlbnRpYWxNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24ob3B0aW9uczogU2V0RmlsZUNvbmZpZGVudGlhbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFNldEZpbGVDb25maWRlbnRpYWxNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGZpbGVJZDogb3B0aW9ucy5maWxlSWQsXG4gICAgICAgICAgY29uZmlkZW50aWFsOiBvcHRpb25zLmNvbmZpZGVudGlhbCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXREaXJlY3RvcnlDb25maWRlbnRpYWwob3B0aW9uczogU2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnNldERpcmVjdG9yeUNvbmZpZGVudGlhbE11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHNldERpcmVjdG9yeUNvbmZpZGVudGlhbE11dGF0aW9uKFxuICAgIG9wdGlvbnM6IFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkOiBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgICAgICAgIGNvbmZpZGVudGlhbDogb3B0aW9ucy5jb25maWRlbnRpYWwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBIZWxwZXJzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVQYXJlbnREaXJlY3RvcnkoXG4gICAgb3B0aW9uczogUGFyZW50RGlyZWN0b3J5T3B0aW9ucyxcbiAgICBuZXdLZXk6IEpXSy5LZXlcbiAgKTogUHJvbWlzZTxQYXJlbnREaXJlY3RvcnlJbnB1dD4ge1xuICAgIC8vIElmIGRpcmVjdG9yeSdzIGtleSBpcyBub3QgYWxyZWFkeSBpbiB0aGUga2V5IGdyYXBoLCB0aGVuIG5lZWQgdG9cbiAgICAvLyBmZXRjaCB0aGUgZGlyZWN0b3J5J3Mga2V5LlxuICAgIGNvbnN0IHdyYXBwaW5nS2V5ID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvcnlLZXkoXG4gICAgICBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgICAgb3B0aW9ucy53cmFwcGluZ0tleUlkXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIHdyYXBwaW5nS2V5SWQ6IHdyYXBwaW5nS2V5LmlkLFxuICAgICAgd3JhcHBlZEtleTogYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHdyYXBwaW5nS2V5LCBuZXdLZXkpLFxuICAgICAgbGlua1R5cGU6IG9wdGlvbnMubGlua1R5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RmlsZVN0YXRlS2V5SWQoZmlsZVN0YXRlTm9kZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVTdGF0ZUtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogZmlsZVN0YXRlTm9kZUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmZpbGVTdGF0ZS5rZXlJZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNyZWF0ZUZpbGVTdGF0ZShcbiAgICBmaWxlS2V5OiBKV0suS2V5LFxuICAgIG9wdGlvbnM6IENyZWF0ZUZpbGVPcHRpb25zIHwgVXBkYXRlRmlsZU9wdGlvbnNcbiAgKSB7XG4gICAgLy8gRWFjaCB2ZXJzaW9uIG9mIHRoZSBmaWxlIGlzIGVuY3J5cHRlZCB1c2luZyBhIG5ldyBrZXkuXG4gICAgY29uc3QgZmlsZVN0YXRlS2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPVxuICAgICAgb3B0aW9ucy5maWxlICYmIChhd2FpdCB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmxvYWRGaWxlKG9wdGlvbnMuZmlsZSkpO1xuXG4gICAgbGV0IGNvbnRlbnRSZXNvdXJjZTogc3RyaW5nO1xuICAgIGlmIChmaWxlQ29udGVudCkge1xuICAgICAgY29uc3QgY2lwaGVyRmlsZUNvbnRlbnQgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgZmlsZVN0YXRlS2V5LFxuICAgICAgICBmaWxlQ29udGVudFxuICAgICAgKTtcbiAgICAgIGlmIChvcHRpb25zLnVwbG9hZCkge1xuICAgICAgICBjb250ZW50UmVzb3VyY2UgPSBhd2FpdCBvcHRpb25zLnVwbG9hZChjaXBoZXJGaWxlQ29udGVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZW50UmVzb3VyY2UgPSBhd2FpdCB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnVwbG9hZEVuY3J5cHRlZEZpbGUoe1xuICAgICAgICAgIGVuY3J5cHRlZENvbnRlbnQ6IGNpcGhlckZpbGVDb250ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uKGF3YWl0IHRoaXMucHJlcGFyZUl0ZW0oZmlsZVN0YXRlS2V5LCBvcHRpb25zKSksXG4gICAgICB3cmFwcGVkU3RhdGVLZXk6IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleShmaWxlS2V5LCBmaWxlU3RhdGVLZXkpLFxuICAgICAgY29udGVudFJlc291cmNlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDaGFuZ2VJdGVtUGFyZW50cyhcbiAgICBvcHRpb25zOiBDaGFuZ2VJdGVtUGFyZW50c09wdGlvbnMsXG4gICAgaXRlbUtleTogSldLLktleVxuICApIHtcbiAgICBjb25zdCBwYXJlbnRzVG9BZGQgPSBvcHRpb25zLnBhcmVudHNUb0FkZFxuICAgICAgPyBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICBvcHRpb25zLnBhcmVudHNUb0FkZC5tYXAoKHQpID0+XG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQYXJlbnREaXJlY3RvcnkodCwgaXRlbUtleSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogW107XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlyZWN0b3JpZXNUb1JlbW92ZTogb3B0aW9ucy5wYXJlbnRzVG9SZW1vdmUgfHwgW10sXG4gICAgICBkaXJlY3Rvcmllc1RvQWRkOiBwYXJlbnRzVG9BZGQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUl0ZW0oXG4gICAga2V5OiBKV0suS2V5LFxuICAgIG9wdGlvbnM6IHsgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7IGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0IH1cbiAgKSB7XG4gICAgY29uc3QgeyBwbGFpbk1ldGFKc29uLCBjaXBoZXJNZXRhQ2xlYXJKc29uIH0gPSBvcHRpb25zO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBsYWluTWV0YTogcGxhaW5NZXRhSnNvbiAmJiBKU09OLnN0cmluZ2lmeShwbGFpbk1ldGFKc29uKSxcbiAgICAgIGNpcGhlck1ldGE6XG4gICAgICAgIGNpcGhlck1ldGFDbGVhckpzb24gJiZcbiAgICAgICAgKGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKGtleSwgY2lwaGVyTWV0YUNsZWFySnNvbikpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDcmVhdGVEaXJlY3Rvcnkob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIGNvbnN0IGRpcmVjdG9yeUtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcbiAgICBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzID0gb3B0aW9ucy5wYXJlbnREaXJlY3RvcmllcyB8fCBbXTtcbiAgICBpZiAoIW9wdGlvbnMuYXNSb290RGlyZWN0b3J5ICYmICFvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICAnQSBuZXcgZGlyZWN0b3J5IG11c3QgYmUgZWl0aGVyIGEgcm9vdCBkaXJlY3Rvcnkgb3IgYSBzdWItZGlyZWN0b3J5LiBTbyB5b3UgbXVzdCBwcm92aWRlIGVpdGhlciBwYXJlbnREaXJlY3RvcmllcyBvciBhc1Jvb3REaXJlY3RvcnkgcGFyYW1ldGVyLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuYXNSb290RGlyZWN0b3J5ICYmIG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXM/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkQXJndW1lbnRFeGNlcHRpb24oXG4gICAgICAgICdBIG5ldyBkaXJlY3RvcnkgbXVzdCBiZSBlaXRoZXIgYSByb290IGRpcmVjdG9yeSBvciBhIHN1Yi1kaXJlY3RvcnkuIFNvIHlvdSBjYW4gb25seSBwcm92aWRlIGVpdGhlciBwYXJlbnREaXJlY3RvcmllcyBvciBhc1Jvb3REaXJlY3RvcnkgcGFyYW1ldGVyLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50RGlyZWN0b3JpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXM/Lm1hcCgodCkgPT5cbiAgICAgICAgdGhpcy5wcmVwYXJlUGFyZW50RGlyZWN0b3J5KHQsIGRpcmVjdG9yeUtleSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gVE9ETyB0aGlzIGlzIHJhdGhlciBhbiB1bmZvcnR1bmF0ZSBuYW1lLCBjaGFuZ2UgaXQgdG8gYXNSb290RGlyZWN0b3J5LlxuICAgIGxldCBwYXJlbnRSb290RGlyZWN0b3J5OiBQYXJlbnRSb290RGlyZWN0b3J5SW5wdXQ7XG4gICAgaWYgKG9wdGlvbnMuYXNSb290RGlyZWN0b3J5KSB7XG4gICAgICBjb25zdCByb290S2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRSb290S2V5O1xuICAgICAgcGFyZW50Um9vdERpcmVjdG9yeSA9IHtcbiAgICAgICAgd3JhcHBpbmdLZXlJZDogcm9vdEtleS5pZCxcbiAgICAgICAgd3JhcHBlZEtleTogYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHJvb3RLZXksIGRpcmVjdG9yeUtleSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1JbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUl0ZW0oZGlyZWN0b3J5S2V5LCBvcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pdGVtSW5wdXQsXG4gICAgICBwYXJlbnREaXJlY3RvcmllcyxcbiAgICAgIHBhcmVudFJvb3REaXJlY3RvcnksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVVwZGF0ZURpcmVjdG9yeShvcHRpb25zOiBVcGRhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5S2V5ID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvcnlLZXkoXG4gICAgICBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlLZXlJZFxuICAgICk7XG5cbiAgICBjb25zdCBpdGVtSW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVJdGVtKGRpcmVjdG9yeUtleS5qd2ssIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLml0ZW1JbnB1dCxcbiAgICAgIGRpcmVjdG9yeUlkOiBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDcmVhdGVGaWxlKG9wdGlvbnM6IENyZWF0ZUZpbGVPcHRpb25zKSB7XG4gICAgY29uc3QgZmlsZUtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGNvbnN0IHBhcmVudERpcmVjdG9yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzLm1hcChhc3luYyAodCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRpcmVjdG9yeUlkLCB3cmFwcGluZ0tleUlkLCB3cmFwcGVkS2V5IH0gPVxuICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBhcmVudERpcmVjdG9yeSh0LCBmaWxlS2V5KTtcbiAgICAgICAgLy8gcmVtYXAgZnJvbSBQYXJlbnREaXJlY3RvcnlJbnB1dCB0byBGaWxlUGFyZW50RGlyZWN0b3J5SW5wdXRcbiAgICAgICAgLy8gVE9ETyB0aGUgc2VydmVyIHNob3VsZCByZWFsbHkganVzdCB1c2Ugd3JhcHBlZEtleSBpbnN0ZWFkIG9mIHdyYXBwZWRGaWxlS2V5XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQsXG4gICAgICAgICAgd3JhcHBpbmdLZXlJZCxcbiAgICAgICAgICB3cmFwcGVkRmlsZUtleTogd3JhcHBlZEtleSxcbiAgICAgICAgfSBhcyBGaWxlUGFyZW50RGlyZWN0b3J5SW5wdXQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUZpbGVTdGF0ZShmaWxlS2V5LCBvcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIHBhcmVudERpcmVjdG9yaWVzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVVcGRhdGVGaWxlKG9wdGlvbnM6IFVwZGF0ZUZpbGVPcHRpb25zKSB7XG4gICAgY29uc3QgZmlsZUtleSA9IGF3YWl0IHRoaXMuZ2V0RmlsZUtleShvcHRpb25zLmZpbGVJZCwgb3B0aW9ucy5maWxlS2V5SWQpO1xuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ3JlYXRlRmlsZVN0YXRlKGZpbGVLZXkuandrLCBvcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGZpbGVJZDogb3B0aW9ucy5maWxlSWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNoYW5nZURpcmVjdG9yeVBhcmVudHMoXG4gICAgb3B0aW9uczogQ2hhbmdlRGlyZWN0b3J5UGFyZW50c09wdGlvbnNcbiAgKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5S2V5ID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvcnlLZXkoXG4gICAgICBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlLZXlJZFxuICAgICk7XG5cbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNoYW5nZUl0ZW1QYXJlbnRzKFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGRpcmVjdG9yeUtleS5qd2tcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0LFxuICAgICAgZGlyZWN0b3J5SWQ6IG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNoYW5nZUZpbGVQYXJlbnRzKG9wdGlvbnM6IENoYW5nZUZpbGVQYXJlbnRzT3B0aW9ucykge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBhd2FpdCB0aGlzLmdldEZpbGVLZXkob3B0aW9ucy5maWxlSWQsIG9wdGlvbnMuZmlsZUtleUlkKTtcblxuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ2hhbmdlSXRlbVBhcmVudHMob3B0aW9ucywgZmlsZUtleS5qd2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0LFxuICAgICAgZmlsZUlkOiBvcHRpb25zLmZpbGVJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvbkxvZ291dCgpIHtcbiAgICAvLyBDbGVhciBhbGwgY2FjaGVkIGRhdGEuXG4gICAgdGhpcy50ZW1wRGlyZWN0b3J5ID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
612
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2l0ZW0vaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQix1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixN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QXZxQlEscUNBQXlCLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0MsNENBQWdDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2RCxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRSxhQUFXLENBQUMseUJBQXlCO1NBQ2hEO0tBQ0Y7Q0FDRixDQUFDLENBQUM7OztZQTVCSixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQW5FOEIsTUFBTTtZQUFoQixRQUFRO1lBS3BCLGlCQUFpQjtZQUdqQixVQUFVO1lBRlYsaUJBQWlCO1lBQ2pCLGVBQWU7WUFHZixXQUFXO1lBTlgsV0FBVzs7QUFnRVAsV0FBVztJQU52QixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsV0FBVyxDQXlyQnZCO1NBenJCWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyTXV0YXRpb24sIExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IElELCBKU09OT2JqZWN0LCBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IFBheWxvYWRUeXBlIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBMb2NrU2VydmljZSB9IGZyb20gJy4uL2xvY2svbG9jay5zZXJ2aWNlJztcbmltcG9ydCB7IEtjQmFkQXJndW1lbnRFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBBcmNoaXZlRmlsZU11dGF0aW9uLFxuICBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24sXG4gIENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbixcbiAgQ2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbixcbiAgQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIENyZWF0ZUZpbGVNdXRhdGlvbixcbiAgRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIERlbGV0ZUZpbGVNdXRhdGlvbixcbiAgUmV2ZXJ0RmlsZU11dGF0aW9uLFxuICBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbixcbiAgU2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICBUZW1wRGlyZWN0b3J5UXVlcnksXG4gIFVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbmFyY2hpdmVGaWxlTXV0YXRpb24sXG4gIFVwZGF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVcGRhdGVGaWxlTXV0YXRpb24sXG59IGZyb20gJy4vaXRlbS5ncWwnO1xuaW1wb3J0IHtcbiAgRGlyZWN0b3J5S2V5RnJvbVNoYXJlZERpcmVjdG9yeVF1ZXJ5LFxuICBEaXJlY3RvcnlLZXlRdWVyeSxcbiAgRmlsZUtleUZyb21TaGFyZWRGaWxlUXVlcnksXG4gIEZpbGVLZXlRdWVyeSxcbiAgRmlsZVN0YXRlS2V5UXVlcnksXG59IGZyb20gJy4vaXRlbS5ncWwucHJpdmF0ZSc7XG5pbXBvcnQge1xuICBBcmNoaXZlRGlyZWN0b3J5T3B0aW9ucyxcbiAgQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd09wdGlvbnMsXG4gIENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zLFxuICBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMsXG4gIENoYW5nZUl0ZW1QYXJlbnRzT3B0aW9ucyxcbiAgQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucyxcbiAgQ3JlYXRlRGlyZWN0b3J5VHJlZU9wdGlvbnMsXG4gIENyZWF0ZUZpbGVPcHRpb25zLFxuICBEb3dubG9hZEZpbGVDb250ZW50T3B0aW9ucyxcbiAgRmlsZVBhcmVudERpcmVjdG9yeUlucHV0LFxuICBJZEtleVBhaXIsXG4gIFBhcmVudERpcmVjdG9yeUlucHV0LFxuICBQYXJlbnREaXJlY3RvcnlPcHRpb25zLFxuICBQYXJlbnRSb290RGlyZWN0b3J5SW5wdXQsXG4gIFJldmVydEZpbGVPcHRpb25zLFxuICBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxPcHRpb25zLFxuICBTZXRGaWxlQ29uZmlkZW50aWFsT3B0aW9ucyxcbiAgVW5hcmNoaXZlRGlyZWN0b3J5T3B0aW9ucyxcbiAgVXBkYXRlRGlyZWN0b3J5T3B0aW9ucyxcbiAgVXBkYXRlRmlsZU9wdGlvbnMsXG59IGZyb20gJy4vaXRlbS50eXBlcyc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJdGVtU2VydmljZSBleHRlbmRzIExyU2VydmljZSB7XG4gIC8vIENhY2hpbmcgdGhlIHRlbXAgZGlyZWN0b3J5LlxuICBwcml2YXRlIHRlbXBEaXJlY3Rvcnk6IElkS2V5UGFpciA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NrU2VydmljZTogTG9ja1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuYWRkTG9nb3V0TGlzdGVuZXIoKCkgPT4gdGhpcy5vbkxvZ291dCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBURU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBID0geyBrY1R5cGU6ICd0ZW1wJyB9O1xuICBzdGF0aWMgVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVIgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgZmlsdGVyOiBbXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBJdGVtU2VydmljZS5URU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICBhc3luYyBkb3dubG9hZEZpbGVDb250ZW50KFxuICAgIG9wdGlvbnM6IERvd25sb2FkRmlsZUNvbnRlbnRPcHRpb25zXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS5kb3dubG9hZEVuY3J5cHRlZEZpbGUoXG4gICAgICBvcHRpb25zLmZpbGVTdGF0ZU5vZGVJZFxuICAgICk7XG5cbiAgICBjb25zdCBmaWxlU3RhdGVLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShcbiAgICAgIG9wdGlvbnMuZmlsZVN0YXRlS2V5SWQsXG4gICAgICAoKSA9PiB0aGlzLmdldEZpbGVTdGF0ZUtleUlkKG9wdGlvbnMuZmlsZVN0YXRlTm9kZUlkKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZyhmaWxlU3RhdGVLZXksIGZpbGVDb250ZW50LCB7XG4gICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVUlOVF84X0FSUkFZLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5SWQoZGlyZWN0b3J5SWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogRGlyZWN0b3J5S2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBkaXJlY3RvcnlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5kaXJlY3Rvcnkua2V5SWQ7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlS2V5SWQoZmlsZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVLZXlRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQ6IGZpbGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5maWxlLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5SWRGcm9tU2hhcmVkRGlyZWN0b3J5KFxuICAgIHNoYXJlZERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dFxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBEaXJlY3RvcnlLZXlGcm9tU2hhcmVkRGlyZWN0b3J5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBzaGFyZWREaXJlY3RvcnlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS50cFNoYXJlZERpcmVjdG9yeS5pdGVtLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZUtleUlkRnJvbVNoYXJlZEZpbGUoc2hhcmVkRmlsZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVLZXlGcm9tU2hhcmVkRmlsZVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogc2hhcmVkRmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwU2hhcmVkRmlsZS5pdGVtLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5KFxuICAgIGRpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCxcbiAgICBkaXJlY3RvcnlLZXlJZD86IExyUmVsYXlJZElucHV0XG4gICkge1xuICAgIHJldHVybiB0aGlzLmtleUdyYXBoLmdldEtleShkaXJlY3RvcnlLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0RGlyZWN0b3J5S2V5SWQoZGlyZWN0b3J5SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEZpbGVLZXkoZmlsZUlkOiBMclJlbGF5SWRJbnB1dCwgZmlsZUtleUlkPzogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5rZXlHcmFwaC5nZXRLZXkoZmlsZUtleUlkLCAoKSA9PiB0aGlzLmdldEZpbGVLZXlJZChmaWxlSWQpKTtcbiAgfVxuXG4gIGNyZWF0ZURpcmVjdG9yeShvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZURpcmVjdG9yeShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEaXJlY3Rvcnkob3B0aW9uczogVXBkYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVVcGRhdGVEaXJlY3Rvcnkob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRGlyZWN0b3J5KGlkOiBJRCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZURpcmVjdG9yeU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBkZWxldGVEaXJlY3RvcnlNdXRhdGlvbihpZDogSUQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZpbGUob3B0aW9uczogQ3JlYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jcmVhdGVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZUZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUZpbGUob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRmlsZShvcHRpb25zOiBVcGRhdGVGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVGaWxlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlVXBkYXRlRmlsZShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXZlcnRGaWxlKG9wdGlvbnM6IFJldmVydEZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMucmV2ZXJ0RmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHJldmVydEZpbGVNdXRhdGlvbihvcHRpb25zOiBSZXZlcnRGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmV2ZXJ0RmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBvcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoaWQ6IElEKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuZGVsZXRlRmlsZU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBkZWxldGVGaWxlTXV0YXRpb24oaWQ6IElEKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQ6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFyY2hpdmVEaXJlY3RvcnkoZGlyZWN0b3J5SWQ6IHN0cmluZywgb3B0aW9uczogQXJjaGl2ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oZGlyZWN0b3J5SWQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbihcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEFyY2hpdmVEaXJlY3RvcnlPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQsXG4gICAgICAgICAgcmVjdXJzaXZlOiBvcHRpb25zLnJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhcmNoaXZlRmlsZShmaWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmFyY2hpdmVGaWxlTXV0YXRpb24oZmlsZUlkKSk7XG4gIH1cblxuICBhcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBBcmNoaXZlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVuYXJjaGl2ZURpcmVjdG9yeShkaXJlY3RvcnlJZDogc3RyaW5nLCBvcHRpb25zOiBVbmFyY2hpdmVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oZGlyZWN0b3J5SWQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIHVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uKFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVW5hcmNoaXZlRGlyZWN0b3J5T3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQsXG4gICAgICAgICAgcmVjdXJzaXZlOiBvcHRpb25zLnJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1bmFyY2hpdmVGaWxlKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5hcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZCkpO1xuICB9XG5cbiAgdW5hcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVbmFyY2hpdmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlRGlyZWN0b3J5UGFyZW50cyhvcHRpb25zOiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24ob3B0aW9uczogQ2hhbmdlRGlyZWN0b3J5UGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlQ2hhbmdlRGlyZWN0b3J5UGFyZW50cyhvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zOiBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZUZpbGVQYXJlbnRzTXV0YXRpb24ob3B0aW9uczogQ2hhbmdlRmlsZVBhcmVudHNPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBiZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93KFxuICAgIG9wdGlvbnM6IEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dPcHRpb25zXG4gICkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogU2NoZWR1bGUgY2xlYW51cCBvZiB0aGUgaGFyZCBsaW5rcyBpbiBhIGRpcmVjdG9yeS5cbiAgICogVGhlIHNlcnZlciB3aWxsIGRlbGV0ZSBhbGwgaGFyZCBsaW5rIHdpdGhpbiB0aGUgZGlyZWN0b3J5IHdpdGhpbiBhIHRpbWUgd2luZG93OiBzdGFydGluZyBmcm9tIG5vdyBhbmRcbiAgICogZW5kaW5nIGF0IHJlcXVlc3RXaW5kb3dNcyBhZnRlciBub3cuXG4gICAqIFRoZSBzZXJ2ZXIgZGVjaWRlcyBfd2hlbl8gaXQgd2lsbCBwZXJmb3JtIHRoZSBkZWxldGUuIEl0J3Mgbm90IGd1YXJhbnRlZWQgdGhhdCBpdCB3aWxsIHBlcmZvcm1cbiAgICogdGhlIGRlbGV0ZSBhdCBcIm5vdyArIHJlcXVlc3RXaW5kb3dNc1wiLCBidXQgaXQgd2lsbCBoYXBwZW4gYXQgc29tZSB0aW1lIGFmdGVyIFwibm93ICsgcmVxdWVzdFdpbmRvd01zXCIuXG4gICAqIFRoaXMgYWxsb3dzIG11bHRpcGxlIG92ZXJsYXBwaW5nIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBzZXJ2ZXIgYWxsb2NhdGVzIGVub3VnaCBmb3IgZWFjaCByZXF1ZXN0LlxuICAgKiBUaGUgc2VydmVyIGhhcyBhIHNldHRpbmcgdGhhdCBhbGxvd3MgZm9yIGEgbWF4aW11bSB2YWx1ZSBvbiByZXF1ZXN0V2luZG93TXMuIElmIHRoZSByZXF1ZXN0ZWQgdmFsdWVcbiAgICogaXMgbGFyZ2VyIHRoYW4gdGhpcyBtYXhpbXVtLCB0aGUgY2FsbCB3aWxsIGZhaWwuXG4gICAqL1xuICBhc3luYyBiZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24oXG4gICAgb3B0aW9uczogQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd09wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IG9wdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG1heSByYWlzZSBWRVJTSU9OX01JU01BVENIIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uXG4gICAqIHdoZW4gbXVsdGlwbGUgY2xpZW50cyB0cnkgdG8gY3JlYXRlIHRoZSB0ZW1wIGRpcmVjdG9yeS5cbiAgICpcbiAgICogVE9ETyBUaGVyZSBpcyBhIHJldHJ5IG1lY2hhbmlzbSBpbiBncmFwaHFsIHdpdGggZXhwb25lbnRpYWwgYmFjayBvZmYgYnV0IHRoYXQncyBpbnRlcm5hbC5cbiAgICogQnV0IG5lZWQgdG8gdXNlIGFuIGV4cG9uZW50aWFsIGJhY2sgb2ZmIGxpYiBpZiB3ZSB3YW50IHRvIHJldHJ5IGhlcmUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBJRCBvZiB0aGUgdGVtcCBkaXJlY3RvcnlcbiAgICpcbiAgICovXG4gIGFzeW5jIGVuc3VyZVRlbXBEaXJlY3RvcnkoKTogUHJvbWlzZTxJZEtleVBhaXI+IHtcbiAgICBpZiAodGhpcy50ZW1wRGlyZWN0b3J5KSB7XG4gICAgICByZXR1cm4gdGhpcy50ZW1wRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICBxdWVyeTogVGVtcERpcmVjdG9yeVF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVGhlcmUgaXMgbW9yZSB0aGFuIDEgdGVtcCBkaXJlY3RvcnkgKHBsYWluTWV0YSBmaWx0ZXI6ICR7SXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVJ9KWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIERvZXNuJ3QgZXhpc3QgeWV0LCBjcmVhdGUgaXRcbiAgICAgIGNvbnN0IGNyZWF0ZURpcmVjdG9yeSA9IGF3YWl0IHRoaXMuY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24oe1xuICAgICAgICBhc1Jvb3REaXJlY3Rvcnk6IHRydWUsXG4gICAgICAgIHBsYWluTWV0YUpzb246IEl0ZW1TZXJ2aWNlLlRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEEsXG4gICAgICB9KTtcblxuICAgICAgLy8gT3B0aW1pc3RpYyBsb2NrIG9uIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICBjb25zdCB1cGRhdGVMb2NrID0gdGhpcy5sb2NrU2VydmljZS51cGRhdGVMb2NrTXV0YXRpb24oe1xuICAgICAgICB2ZXJzaW9uOiBleGlzdGluZy5sb2NrPy52ZXJzaW9uLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEJlY2F1c2UgdGhpcy5tdXRhdGUoKSBvbmx5IGhhbmRsZXMgc2ltcGxlIHR5cGVzIHdlIG5lZWQgdG8gdXNlIHRoZSBtb3JlXG4gICAgICAvLyBhZHZhbmNlZCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZSgpXG4gICAgICBjb25zdCBbY3JlYXRlRGlyZWN0b3J5UmVzdWx0XSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFtcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5LFxuICAgICAgICB1cGRhdGVMb2NrLFxuICAgICAgXSk7XG5cbiAgICAgIGNvbnN0IHsgaWQsIGtleUlkIH0gPSBjcmVhdGVEaXJlY3RvcnlSZXN1bHQuY3JlYXRlRGlyZWN0b3J5LmRpcmVjdG9yeTtcblxuICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5ID0ge1xuICAgICAgICBpZCxcbiAgICAgICAga2V5SWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXR1cm4gZXhpc3RpbmcgdGVtcFxuICAgICAgY29uc3QgeyBpZCwga2V5SWQgfSA9IGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlc1swXS5ub2RlO1xuXG4gICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBrZXlJZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGVtcERpcmVjdG9yeTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURpcmVjdG9yeVRyZWUob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5VHJlZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jcmVhdGVEaXJlY3RvcnlUcmVlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFlvdSBtdXN0IHJ1biB0aGlzIG11dGF0aW9uIHdpdGhpbiB0aGUgdGVtcCBkaXJlY3RvcnkgY2xlYW51cCB3aW5kb3cgb24gdGhlXG4gICAqIHNlcnZlciwgb3RoZXJ3aXNlIHRoZSB0ZW1wIGRpcmVjdG9yeSB3aWxsIGdldCBjbGVhbmVkIHVwLlxuICAgKlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5VHJlZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeVRyZWVPcHRpb25zKSB7XG4gICAgY29uc3QgdGVtcERpciA9IGF3YWl0IHRoaXMuZW5zdXJlVGVtcERpcmVjdG9yeSgpO1xuXG4gICAgLy8gQ2xlYXIgdGhlIHRlbXAgZGlyZWN0b3J5IG9mIHRoZSBvbmVzIHdlIGFyZSBhYm91dCB0byBjcmVhdGUuXG4gICAgLy8gTk9URTogdGhpcyBtdXRhdGlvbiBjYW4gbm90IGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG11dGF0aW9uIHdpdGggdGhlXG4gICAgLy8gdGhlIGNyZWF0ZURpcmVjdG9yeSBtdXRhdGlvbiBiZWNhdXNlIGl0IHVzZXMgdGhlIGN1cnJlbnQgc2VydmVyIHRpbWUgdG9cbiAgICAvLyBjbGVhbiB1cC4gU28gaXQgbXVzdCBzdWNjZXNzZnVsbHkgY29tcGxldGUgYmVmb3JlIHRoZSBjcmVhdGlvbiBvZiB0aGVcbiAgICAvLyBkaXJlY3Rvcmllcy5cbiAgICBhd2FpdCB0aGlzLmJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3coe1xuICAgICAgZGlyZWN0b3J5SWQ6IHRlbXBEaXIuaWQsXG4gICAgICByZXF1ZXN0V2luZG93TXM6IG9wdGlvbnMucmVxdWVzdFdpbmRvd01zLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBkaXJlY3RvcnkgdGhhdCBoYXMgY29udGVudHNcbiAgICBjb25zdCBkaXJlY3RvcnkgPSAoXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZURpcmVjdG9yeSh7XG4gICAgICAgIGNpcGhlck1ldGFDbGVhckpzb246IG9wdGlvbnMuY2lwaGVyTWV0YUNsZWFySnNvbixcbiAgICAgICAgcGFyZW50RGlyZWN0b3JpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RvcnlJZDogdGVtcERpci5pZCxcbiAgICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHRlbXBEaXIua2V5SWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGxhaW5NZXRhSnNvbjogb3B0aW9ucy5wbGFpbk1ldGFKc29uLFxuICAgICAgfSlcbiAgICApLmNyZWF0ZURpcmVjdG9yeS5kaXJlY3Rvcnk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGNvbnRlbnRzXG4gICAgYXdhaXQgb3B0aW9ucy5jcmVhdGVDb250ZW50KHtcbiAgICAgIGlkOiBkaXJlY3RvcnkuaWQsXG4gICAgICBrZXlJZDogZGlyZWN0b3J5LmtleUlkLFxuICAgIH0pO1xuXG4gICAgLy8gVE9ETyBjbGllbnQtc2lkZSBjaGVjayBmb3IgdGltZW91dCBvbiByZXF1ZXN0V2luZG93TXNcbiAgICAvLyBUT0RPIHJldHVybiB0aGUgc2VydmVyIHRpbWUgd2hlcmUgZGVsZXRlIGlzIHNjaGVkdWxlZC4gRXhwaXJhYmxlIG11dGF0aW9uXG5cbiAgICAvLyBSZXR1cm4gdGhlIG11dGF0aW9uIHRoYXQgbW92ZXMgdGhlIGRpcmVjdG9yeSBpbnRvIHRoZSBkc3QgZGlyZWN0b3JpZXNcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24oe1xuICAgICAgZGlyZWN0b3J5SWQ6IGRpcmVjdG9yeS5pZCxcbiAgICAgIGRpcmVjdG9yeUtleUlkOiBkaXJlY3Rvcnkua2V5SWQsXG4gICAgICBwYXJlbnRzVG9SZW1vdmU6IFt0ZW1wRGlyLmlkXSxcbiAgICAgIHBhcmVudHNUb0FkZDogb3B0aW9ucy5wYXJlbnREaXJlY3RvcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEZpbGVDb25maWRlbnRpYWwob3B0aW9uczogU2V0RmlsZUNvbmZpZGVudGlhbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgc2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uKG9wdGlvbnM6IFNldEZpbGVDb25maWRlbnRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBTZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQ6IG9wdGlvbnMuZmlsZUlkLFxuICAgICAgICAgIGNvbmZpZGVudGlhbDogb3B0aW9ucy5jb25maWRlbnRpYWwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsKG9wdGlvbnM6IFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbihcbiAgICBvcHRpb25zOiBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgICAgICBjb25maWRlbnRpYWw6IG9wdGlvbnMuY29uZmlkZW50aWFsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlUGFyZW50RGlyZWN0b3J5KFxuICAgIG9wdGlvbnM6IFBhcmVudERpcmVjdG9yeU9wdGlvbnMsXG4gICAgbmV3S2V5OiBKV0suS2V5XG4gICk6IFByb21pc2U8UGFyZW50RGlyZWN0b3J5SW5wdXQ+IHtcbiAgICAvLyBJZiBkaXJlY3RvcnkncyBrZXkgaXMgbm90IGFscmVhZHkgaW4gdGhlIGtleSBncmFwaCwgdGhlbiBuZWVkIHRvXG4gICAgLy8gZmV0Y2ggdGhlIGRpcmVjdG9yeSdzIGtleS5cbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMud3JhcHBpbmdLZXlJZFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlyZWN0b3J5SWQ6IG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgIHdyYXBwZWRLZXk6IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgbmV3S2V5KSxcbiAgICAgIGxpbmtUeXBlOiBvcHRpb25zLmxpbmtUeXBlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEZpbGVTdGF0ZUtleUlkKGZpbGVTdGF0ZU5vZGVJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBGaWxlU3RhdGVLZXlRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQ6IGZpbGVTdGF0ZU5vZGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5maWxlU3RhdGUua2V5SWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDcmVhdGVGaWxlU3RhdGUoXG4gICAgZmlsZUtleTogSldLLktleSxcbiAgICBvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucyB8IFVwZGF0ZUZpbGVPcHRpb25zXG4gICkge1xuICAgIC8vIEVhY2ggdmVyc2lvbiBvZiB0aGUgZmlsZSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBuZXcga2V5LlxuICAgIGNvbnN0IGZpbGVTdGF0ZUtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGNvbnN0IGZpbGVDb250ZW50ID1cbiAgICAgIG9wdGlvbnMuZmlsZSAmJiAoYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS5sb2FkRmlsZShvcHRpb25zLmZpbGUpKTtcblxuICAgIGxldCBjb250ZW50UmVzb3VyY2U6IHN0cmluZztcbiAgICBpZiAoZmlsZUNvbnRlbnQpIHtcbiAgICAgIGNvbnN0IGNpcGhlckZpbGVDb250ZW50ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIGZpbGVTdGF0ZUtleSxcbiAgICAgICAgZmlsZUNvbnRlbnRcbiAgICAgICk7XG4gICAgICBpZiAob3B0aW9ucy51cGxvYWQpIHtcbiAgICAgICAgY29udGVudFJlc291cmNlID0gYXdhaXQgb3B0aW9ucy51cGxvYWQoY2lwaGVyRmlsZUNvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGVudFJlc291cmNlID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS51cGxvYWRFbmNyeXB0ZWRGaWxlKHtcbiAgICAgICAgICBlbmNyeXB0ZWRDb250ZW50OiBjaXBoZXJGaWxlQ29udGVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnByZXBhcmVJdGVtKGZpbGVTdGF0ZUtleSwgb3B0aW9ucykpLFxuICAgICAgd3JhcHBlZFN0YXRlS2V5OiBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkoZmlsZUtleSwgZmlsZVN0YXRlS2V5KSxcbiAgICAgIGNvbnRlbnRSZXNvdXJjZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ2hhbmdlSXRlbVBhcmVudHMoXG4gICAgb3B0aW9uczogQ2hhbmdlSXRlbVBhcmVudHNPcHRpb25zLFxuICAgIGl0ZW1LZXk6IEpXSy5LZXlcbiAgKSB7XG4gICAgY29uc3QgcGFyZW50c1RvQWRkID0gb3B0aW9ucy5wYXJlbnRzVG9BZGRcbiAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgb3B0aW9ucy5wYXJlbnRzVG9BZGQubWFwKCh0KSA9PlxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGFyZW50RGlyZWN0b3J5KHQsIGl0ZW1LZXkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IFtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpcmVjdG9yaWVzVG9SZW1vdmU6IG9wdGlvbnMucGFyZW50c1RvUmVtb3ZlIHx8IFtdLFxuICAgICAgZGlyZWN0b3JpZXNUb0FkZDogcGFyZW50c1RvQWRkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVJdGVtKFxuICAgIGtleTogSldLLktleSxcbiAgICBvcHRpb25zOiB7IHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0OyBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdCB9XG4gICkge1xuICAgIGNvbnN0IHsgcGxhaW5NZXRhSnNvbiwgY2lwaGVyTWV0YUNsZWFySnNvbiB9ID0gb3B0aW9ucztcblxuICAgIHJldHVybiB7XG4gICAgICBwbGFpbk1ldGE6IHBsYWluTWV0YUpzb24gJiYgSlNPTi5zdHJpbmdpZnkocGxhaW5NZXRhSnNvbiksXG4gICAgICBjaXBoZXJNZXRhOlxuICAgICAgICBjaXBoZXJNZXRhQ2xlYXJKc29uICYmXG4gICAgICAgIChhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhrZXksIGNpcGhlck1ldGFDbGVhckpzb24pKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlRGlyZWN0b3J5KG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgb3B0aW9ucy5wYXJlbnREaXJlY3RvcmllcyA9IG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXMgfHwgW107XG4gICAgaWYgKCFvcHRpb25zLmFzUm9vdERpcmVjdG9yeSAmJiAhb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgICAgICAgJ0EgbmV3IGRpcmVjdG9yeSBtdXN0IGJlIGVpdGhlciBhIHJvb3QgZGlyZWN0b3J5IG9yIGEgc3ViLWRpcmVjdG9yeS4gU28geW91IG11c3QgcHJvdmlkZSBlaXRoZXIgcGFyZW50RGlyZWN0b3JpZXMgb3IgYXNSb290RGlyZWN0b3J5IHBhcmFtZXRlci4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmFzUm9vdERpcmVjdG9yeSAmJiBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICAnQSBuZXcgZGlyZWN0b3J5IG11c3QgYmUgZWl0aGVyIGEgcm9vdCBkaXJlY3Rvcnkgb3IgYSBzdWItZGlyZWN0b3J5LiBTbyB5b3UgY2FuIG9ubHkgcHJvdmlkZSBlaXRoZXIgcGFyZW50RGlyZWN0b3JpZXMgb3IgYXNSb290RGlyZWN0b3J5IHBhcmFtZXRlci4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudERpcmVjdG9yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzPy5tYXAoKHQpID0+XG4gICAgICAgIHRoaXMucHJlcGFyZVBhcmVudERpcmVjdG9yeSh0LCBkaXJlY3RvcnlLZXkpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFRPRE8gdGhpcyBpcyByYXRoZXIgYW4gdW5mb3J0dW5hdGUgbmFtZSwgY2hhbmdlIGl0IHRvIGFzUm9vdERpcmVjdG9yeS5cbiAgICBsZXQgcGFyZW50Um9vdERpcmVjdG9yeTogUGFyZW50Um9vdERpcmVjdG9yeUlucHV0O1xuICAgIGlmIChvcHRpb25zLmFzUm9vdERpcmVjdG9yeSkge1xuICAgICAgY29uc3Qgcm9vdEtleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50Um9vdEtleTtcbiAgICAgIHBhcmVudFJvb3REaXJlY3RvcnkgPSB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXk6IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleShyb290S2V5LCBkaXJlY3RvcnlLZXkpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtSW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVJdGVtKGRpcmVjdG9yeUtleSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaXRlbUlucHV0LFxuICAgICAgcGFyZW50RGlyZWN0b3JpZXMsXG4gICAgICBwYXJlbnRSb290RGlyZWN0b3J5LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVVcGRhdGVEaXJlY3Rvcnkob3B0aW9uczogVXBkYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIGNvbnN0IGRpcmVjdG9yeUtleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5S2V5SWRcbiAgICApO1xuXG4gICAgY29uc3QgaXRlbUlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlSXRlbShkaXJlY3RvcnlLZXkuandrLCBvcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pdGVtSW5wdXQsXG4gICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlRmlsZShvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucykge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG5cbiAgICBjb25zdCBwYXJlbnREaXJlY3RvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcy5tYXAoYXN5bmMgKHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBkaXJlY3RvcnlJZCwgd3JhcHBpbmdLZXlJZCwgd3JhcHBlZEtleSB9ID1cbiAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVQYXJlbnREaXJlY3RvcnkodCwgZmlsZUtleSk7XG4gICAgICAgIC8vIHJlbWFwIGZyb20gUGFyZW50RGlyZWN0b3J5SW5wdXQgdG8gRmlsZVBhcmVudERpcmVjdG9yeUlucHV0XG4gICAgICAgIC8vIFRPRE8gdGhlIHNlcnZlciBzaG91bGQgcmVhbGx5IGp1c3QgdXNlIHdyYXBwZWRLZXkgaW5zdGVhZCBvZiB3cmFwcGVkRmlsZUtleVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQsXG4gICAgICAgICAgd3JhcHBlZEZpbGVLZXk6IHdyYXBwZWRLZXksXG4gICAgICAgIH0gYXMgRmlsZVBhcmVudERpcmVjdG9yeUlucHV0O1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVGaWxlU3RhdGUoZmlsZUtleSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBwYXJlbnREaXJlY3RvcmllcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVXBkYXRlRmlsZShvcHRpb25zOiBVcGRhdGVGaWxlT3B0aW9ucykge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBhd2FpdCB0aGlzLmdldEZpbGVLZXkob3B0aW9ucy5maWxlSWQsIG9wdGlvbnMuZmlsZUtleUlkKTtcbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUZpbGVTdGF0ZShmaWxlS2V5Lmp3aywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBmaWxlSWQ6IG9wdGlvbnMuZmlsZUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzKFxuICAgIG9wdGlvbnM6IENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IGRpcmVjdG9yeUtleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5S2V5SWRcbiAgICApO1xuXG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VJdGVtUGFyZW50cyhcbiAgICAgIG9wdGlvbnMsXG4gICAgICBkaXJlY3RvcnlLZXkuandrXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGRpcmVjdG9yeUlkOiBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zOiBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlS2V5ID0gYXdhaXQgdGhpcy5nZXRGaWxlS2V5KG9wdGlvbnMuZmlsZUlkLCBvcHRpb25zLmZpbGVLZXlJZCk7XG5cbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNoYW5nZUl0ZW1QYXJlbnRzKG9wdGlvbnMsIGZpbGVLZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGZpbGVJZDogb3B0aW9ucy5maWxlSWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgb25Mb2dvdXQoKSB7XG4gICAgLy8gQ2xlYXIgYWxsIGNhY2hlZCBkYXRhLlxuICAgIHRoaXMudGVtcERpcmVjdG9yeSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|