@sapui5/sap.fe.core 1.108.0 → 1.108.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/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/CommonUtils.js +9 -3
- package/src/sap/fe/core/CommonUtils.ts +11 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +16 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +28 -5
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +2 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +21 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +19 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +20 -4
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +14 -0
- package/src/sap/fe/core/controllerextensions/Paginator.js +29 -16
- package/src/sap/fe/core/controllerextensions/Paginator.ts +6 -2
- package/src/sap/fe/core/controllerextensions/Share.js +6 -5
- package/src/sap/fe/core/controllerextensions/Share.ts +13 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +59 -15
- package/src/sap/fe/core/controllerextensions/ViewState.ts +33 -2
- package/src/sap/fe/core/controls/CommandExecution.js +14 -12
- package/src/sap/fe/core/controls/CommandExecution.ts +16 -7
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +14 -1
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +12 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +6 -21
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +7 -17
- package/src/sap/fe/core/converters/annotations/DataField.js +13 -7
- package/src/sap/fe/core/converters/annotations/DataField.ts +23 -19
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +126 -48
- package/src/sap/fe/core/converters/controls/Common/Table.ts +158 -60
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +23 -5
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +15 -3
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -2
- package/src/sap/fe/core/helpers/PasteHelper.js +27 -22
- package/src/sap/fe/core/helpers/PasteHelper.ts +30 -24
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +8 -6
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +7 -5
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle_ar.properties +21 -25
- package/src/sap/fe/core/messagebundle_bg.properties +39 -43
- package/src/sap/fe/core/messagebundle_ca.properties +41 -45
- package/src/sap/fe/core/messagebundle_cs.properties +21 -25
- package/src/sap/fe/core/messagebundle_cy.properties +21 -25
- package/src/sap/fe/core/messagebundle_da.properties +21 -25
- package/src/sap/fe/core/messagebundle_de.properties +30 -34
- package/src/sap/fe/core/messagebundle_el.properties +21 -25
- package/src/sap/fe/core/messagebundle_en.properties +7 -11
- package/src/sap/fe/core/messagebundle_en_GB.properties +21 -25
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -2
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +2 -2
- package/src/sap/fe/core/messagebundle_es.properties +29 -33
- package/src/sap/fe/core/messagebundle_es_MX.properties +20 -24
- package/src/sap/fe/core/messagebundle_et.properties +22 -26
- package/src/sap/fe/core/messagebundle_fi.properties +41 -45
- package/src/sap/fe/core/messagebundle_fr.properties +21 -25
- package/src/sap/fe/core/messagebundle_fr_CA.properties +43 -47
- package/src/sap/fe/core/messagebundle_hi.properties +22 -26
- package/src/sap/fe/core/messagebundle_hr.properties +41 -45
- package/src/sap/fe/core/messagebundle_hu.properties +21 -25
- package/src/sap/fe/core/messagebundle_id.properties +21 -25
- package/src/sap/fe/core/messagebundle_it.properties +20 -24
- package/src/sap/fe/core/messagebundle_iw.properties +21 -25
- package/src/sap/fe/core/messagebundle_ja.properties +21 -25
- package/src/sap/fe/core/messagebundle_kk.properties +22 -26
- package/src/sap/fe/core/messagebundle_ko.properties +21 -25
- package/src/sap/fe/core/messagebundle_lt.properties +21 -25
- package/src/sap/fe/core/messagebundle_lv.properties +21 -25
- package/src/sap/fe/core/messagebundle_ms.properties +21 -25
- package/src/sap/fe/core/messagebundle_nl.properties +21 -25
- package/src/sap/fe/core/messagebundle_no.properties +20 -24
- package/src/sap/fe/core/messagebundle_pl.properties +24 -28
- package/src/sap/fe/core/messagebundle_pt.properties +22 -26
- package/src/sap/fe/core/messagebundle_pt_PT.properties +21 -25
- package/src/sap/fe/core/messagebundle_ro.properties +40 -44
- package/src/sap/fe/core/messagebundle_ru.properties +41 -45
- package/src/sap/fe/core/messagebundle_sh.properties +20 -24
- package/src/sap/fe/core/messagebundle_sk.properties +20 -24
- package/src/sap/fe/core/messagebundle_sl.properties +40 -44
- package/src/sap/fe/core/messagebundle_sv.properties +20 -24
- package/src/sap/fe/core/messagebundle_th.properties +42 -46
- package/src/sap/fe/core/messagebundle_tr.properties +21 -25
- package/src/sap/fe/core/messagebundle_uk.properties +21 -25
- package/src/sap/fe/core/messagebundle_vi.properties +41 -45
- package/src/sap/fe/core/messagebundle_zh_CN.properties +40 -44
- package/src/sap/fe/core/messagebundle_zh_TW.properties +20 -24
- package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -2
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +2 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +76 -41
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +21 -21
- package/src/sap/fe/core/services/ShellServicesFactory.js +41 -9
- package/src/sap/fe/core/services/ShellServicesFactory.ts +45 -7
- package/src/sap/fe/core/templating/UIFormatters.js +5 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +3 -0
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
+
import { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
2
3
|
import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
3
|
-
import
|
|
4
|
+
import CoreCommandExecution from "sap/ui/core/CommandExecution";
|
|
4
5
|
import Component from "sap/ui/core/Component";
|
|
5
6
|
import Element from "sap/ui/core/Element";
|
|
6
7
|
import Shortcut from "sap/ui/core/Shortcut";
|
|
7
8
|
|
|
9
|
+
type $CommandExecutionSettings = {
|
|
10
|
+
visible: boolean | BindingToolkitExpression<boolean>;
|
|
11
|
+
enabled: boolean | BindingToolkitExpression<boolean>;
|
|
12
|
+
execute: Function;
|
|
13
|
+
command: string;
|
|
14
|
+
};
|
|
8
15
|
@defineUI5Class("sap.fe.core.controls.CommandExecution")
|
|
9
|
-
class
|
|
16
|
+
class CommandExecution extends CoreCommandExecution {
|
|
17
|
+
constructor(sId?: string | $CommandExecutionSettings, mSettings?: $CommandExecutionSettings) {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
super(sId, mSettings);
|
|
21
|
+
}
|
|
10
22
|
setParent(oParent: any) {
|
|
11
23
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
24
|
// @ts-ignore
|
|
@@ -60,8 +72,5 @@ class CustomCommandExecution extends CommandExecution {
|
|
|
60
72
|
return this;
|
|
61
73
|
}
|
|
62
74
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
_cleanupContext(oParent: any): void;
|
|
66
|
-
}
|
|
67
|
-
export default CustomCommandExecution;
|
|
75
|
+
|
|
76
|
+
export default CommandExecution;
|
|
@@ -329,6 +329,19 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
|
|
|
329
329
|
|
|
330
330
|
var content = this.getContent();
|
|
331
331
|
return (content === null || content === void 0 ? void 0 : (_content$getAccessibi = content.getAccessibilityInfo) === null || _content$getAccessibi === void 0 ? void 0 : _content$getAccessibi.call(content)) || {};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Returns the DOMNode ID to be used for the "labelFor" attribute.
|
|
335
|
+
*
|
|
336
|
+
* We forward the call of this method to the content control.
|
|
337
|
+
*
|
|
338
|
+
* @returns ID to be used for the <code>labelFor</code>
|
|
339
|
+
*/
|
|
340
|
+
;
|
|
341
|
+
|
|
342
|
+
_proto.getIdForLabel = function getIdForLabel() {
|
|
343
|
+
var content = this.getContent();
|
|
344
|
+
return content === null || content === void 0 ? void 0 : content.getIdForLabel();
|
|
332
345
|
};
|
|
333
346
|
|
|
334
347
|
return CustomFilterFieldContentWrapper;
|
|
@@ -368,4 +381,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
|
|
|
368
381
|
_exports = CustomFilterFieldContentWrapper;
|
|
369
382
|
return _exports;
|
|
370
383
|
}, false);
|
|
371
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiZXZlbnQiLCJyZW5kZXIiLCJyZW5kZXJNYW5hZ2VyIiwiY29udHJvbCIsIm9wZW5TdGFydCIsInN0eWxlIiwid2lkdGgiLCJvcGVuRW5kIiwicmVuZGVyQ29udHJvbCIsImdldENvbnRlbnQiLCJjbG9zZSIsIl9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnMiLCJmaWx0ZXJWYWx1ZXMiLCJvcGVyYXRvciIsImZvcm1hdE9wdGlvbnMiLCJvcGVyYXRvcnMiLCJjb25kaXRpb25zIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZXMiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmRpdGlvbnNUeXBlIiwiQ29uZGl0aW9uc1R5cGUiLCJjb25kaXRpb25WYWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJnZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zIiwiaW5jbHVkZXMiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJDb25kaXRpb25WYWxpZGF0ZWQiLCJOb3RWYWxpZGF0ZWQiLCJtYXAiLCJjb25kaXRpb25WYWx1ZSIsInN0cmluZ1ZhbHVlIiwidG9TdHJpbmciLCJwYXJzZWRDb25kaXRpb25zIiwicGFyc2VWYWx1ZSIsImZpbHRlciIsIl9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyIsImNvbmRpdGlvbiIsImZvcm1hdFZhbHVlIiwiam9pbiIsIl9oYW5kbGVGaWx0ZXJNb2RlbENoYW5nZSIsImNoYW5nZUV2ZW50IiwicHJvcGVydHlQYXRoIiwiZ2V0T2JqZWN0QmluZGluZyIsImdldFBhdGgiLCJnZXRTb3VyY2UiLCJnZXRQcm9wZXJ0eSIsInVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyIsIl9oYW5kbGVDb25kaXRpb25zQ2hhbmdlIiwidXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMiLCJpbml0IiwiX2NvbmRpdGlvbnNPYnNlcnZlciIsIk1hbmFnZWRPYmplY3RPYnNlcnZlciIsIl9vYnNlcnZlQ2hhbmdlcyIsImJpbmQiLCJvYnNlcnZlIiwicHJvcGVydGllcyIsIl9maWx0ZXJNb2RlbCIsIkpTT05Nb2RlbCIsImF0dGFjaFByb3BlcnR5Q2hhbmdlIiwic2V0TW9kZWwiLCJGSUxURVJfTU9ERUxfQUxJQVMiLCJjbG9uZSIsInNJZFN1ZmZpeCIsImFMb2NhbElkcyIsImNoYW5nZXMiLCJuYW1lIiwiY3VycmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZ2V0Q29uZGl0aW9ucyIsInNldENvbmRpdGlvbnMiLCJzZXRQcm9wZXJ0eSIsImdldEZpbHRlck1vZGVsQWxpYXMiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwiY29udGVudCIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0T2JzZXJ2ZXIgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RPYnNlcnZlclwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjsgLy9pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9GaWVsZEJhc2VcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgQ29uZGl0aW9uc1R5cGUgZnJvbSBcInNhcC91aS9tZGMvZmllbGQvQ29uZGl0aW9uc1R5cGVcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG4vKipcbiAqIFR5cGUgdXNlZCBmb3IgZm9ybWF0IG9wdGlvbnNcbiAqXG4gKiBAdHlwZWRlZiBGb3JtYXRPcHRpb25zVHlwZVxuICovXG50eXBlIEZvcm1hdE9wdGlvbnNUeXBlID0ge1xuXHRvcGVyYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBAY2xhc3NcbiAqIENyZWF0ZXMgYW4gPGNvZGU+c2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlcjwvY29kZT4gb2JqZWN0LlxuICogVGhpcyBpcyB1c2VkIGluIHRoZSB7QGxpbmsgc2FwLnVpLm1kYy5GaWx0ZXJGaWVsZCBGaWx0ZXJGaWVsZH0gYXMgYSBmaWx0ZXIgY29udGVudC5cbiAqIEBleHRlbmRzIHNhcC51aS5jb3JlLkNvbnRyb2xcbiAqIEBwcml2YXRlXG4gKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGV4dGVuZHMgQ29udHJvbCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmb3JtRG9Ob3RBZGp1c3RXaWR0aCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RbXVwiLCBkZWZhdWx0VmFsdWU6IFtdIH0pXG5cdGNvbmRpdGlvbnMhOiBDb25kaXRpb25PYmplY3RbXTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0QGV2ZW50KClcblx0Y29uZGl0aW9uc0NoYW5nZSE6IEZ1bmN0aW9uO1xuXG5cdC8vIE5vdGU6IEZpZWxkQmFzZSBtaWdodCBiZSB1c2VkIGFzIGJhc2UgY29udHJvbCAoaW5zdGVhZCBvZiBDb250cm9sKSBpbiBhIGxhdGVyIHZlcnNpb247XG5cdC8vIGluIHRoYXQgY2FzZSwgeW91IHNob3VsZCBhZGQgYSAnY2hhbmdlJyBldmVudCBhbmQgYnViYmxlIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGhhbmRsZXJzXG5cblx0cHJpdmF0ZSBfZmlsdGVyTW9kZWw6IGFueTtcblx0cHJpdmF0ZSBfY29uZGl0aW9uc09ic2VydmVyOiBhbnk7XG5cdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZJTFRFUl9NT0RFTF9BTElBUyA9IFwiZmlsdGVyVmFsdWVzXCI7XG5cblx0c3RhdGljIHJlbmRlcihyZW5kZXJNYW5hZ2VyOiBSZW5kZXJNYW5hZ2VyLCBjb250cm9sOiBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyKTogdm9pZCB7XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuU3RhcnQoXCJkaXZcIiwgY29udHJvbCk7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcIm1pbi1oZWlnaHRcIiwgXCIxcmVtXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJ3aWR0aFwiLCBjb250cm9sLndpZHRoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woY29udHJvbC5nZXRDb250ZW50KCkpOyAvLyByZW5kZXIgdGhlIGNoaWxkIENvbnRyb2xcblx0XHRyZW5kZXJNYW5hZ2VyLmNsb3NlKFwiZGl2XCIpOyAvLyBlbmQgb2YgdGhlIGNvbXBsZXRlIENvbnRyb2xcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXBzIGFuIGFycmF5IG9mIGZpbHRlciB2YWx1ZXMgdG8gYW4gYXJyYXkgb2YgY29uZGl0aW9ucy5cblx0ICpcblx0ICogQHBhcmFtIGZpbHRlclZhbHVlcyBBcnJheSBvZiBmaWx0ZXIgdmFsdWUgYmluZGluZ3Mgb3IgYSBmaWx0ZXIgdmFsdWUgc3RyaW5nXG5cdCAqIEBwYXJhbSBbb3BlcmF0b3JdIFRoZSBvcGVyYXRvciB0byBiZSB1c2VkIChvcHRpb25hbCkgLSBpZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBvcGVyYXRvciAoRVEpIHdpbGwgYmUgdXNlZFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcmV0dXJucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKi9cblx0c3RhdGljIF9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnMoZmlsdGVyVmFsdWVzOiBhbnkgfCBhbnlbXSwgb3BlcmF0b3I/OiBzdHJpbmcpOiBDb25kaXRpb25PYmplY3RbXSB7XG5cdFx0bGV0IGZvcm1hdE9wdGlvbnM6IEZvcm1hdE9wdGlvbnNUeXBlID0geyBvcGVyYXRvcnM6IFtdIH0sXG5cdFx0XHRjb25kaXRpb25zID0gW107XG5cblx0XHRpZiAob3BlcmF0b3IpIHtcblx0XHRcdGZvcm1hdE9wdGlvbnMgPSB7IG9wZXJhdG9yczogW29wZXJhdG9yXSB9O1xuXHRcdH1cblx0XHRpZiAoZmlsdGVyVmFsdWVzID09PSBcIlwiKSB7XG5cdFx0XHRmaWx0ZXJWYWx1ZXMgPSBbXTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZXMgPT09IFwib2JqZWN0XCIgJiYgZmlsdGVyVmFsdWVzLmhhc093blByb3BlcnR5KFwib3BlcmF0b3JcIikgJiYgZmlsdGVyVmFsdWVzLmhhc093blByb3BlcnR5KFwidmFsdWVzXCIpKSB7XG5cdFx0XHRmb3JtYXRPcHRpb25zID0geyBvcGVyYXRvcnM6IFtmaWx0ZXJWYWx1ZXMub3BlcmF0b3JdIH07XG5cdFx0XHRmaWx0ZXJWYWx1ZXMgPSBmaWx0ZXJWYWx1ZXMudmFsdWVzO1xuXHRcdH0gZWxzZSBpZiAoZmlsdGVyVmFsdWVzICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZpbHRlclZhbHVlcyAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgZmlsdGVyVmFsdWVzICE9PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEZpbHRlclV0aWxzLmpzI19maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnM6IFVuZXhwZWN0ZWQgdHlwZSBvZiBpbnB1dCBwYXJhbWV0ZXIgdlZhbHVlczogJHt0eXBlb2YgZmlsdGVyVmFsdWVzfWApO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvbmRpdGlvbnNUeXBlOiBhbnkgPSBuZXcgQ29uZGl0aW9uc1R5cGUoZm9ybWF0T3B0aW9ucyk7XG5cdFx0Y29uc3QgY29uZGl0aW9uVmFsdWVzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZXMpID8gZmlsdGVyVmFsdWVzIDogW2ZpbHRlclZhbHVlc107XG5cblx0XHQvLyBTaG9ydGN1dCBmb3Igb3BlcmF0b3Igd2l0aG91dCB2YWx1ZXMgYW5kIHNlbWFudGljIGRhdGUgb3BlcmF0aW9uc1xuXHRcdGlmIChcblx0XHRcdHR5cGVvZiBvcGVyYXRvciA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0KGNvbmRpdGlvblZhbHVlcy5sZW5ndGggPT09IDAgfHwgU2VtYW50aWNEYXRlT3BlcmF0b3JzLmdldFNlbWFudGljRGF0ZU9wZXJhdGlvbnMoKS5pbmNsdWRlcyhvcGVyYXRvcikpXG5cdFx0KSB7XG5cdFx0XHRjb25kaXRpb25zID0gW0NvbmRpdGlvbi5jcmVhdGVDb25kaXRpb24ob3BlcmF0b3IsIGNvbmRpdGlvblZhbHVlcywgbnVsbCwgbnVsbCwgQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZCldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25kaXRpb25zID0gY29uZGl0aW9uVmFsdWVzXG5cdFx0XHRcdC5tYXAoKGNvbmRpdGlvblZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSBjb25kaXRpb25WYWx1ZT8udG9TdHJpbmcoKSxcblx0XHRcdFx0XHRcdHBhcnNlZENvbmRpdGlvbnMgPSBjb25kaXRpb25zVHlwZS5wYXJzZVZhbHVlKHN0cmluZ1ZhbHVlLCBcImFueVwiKTtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2VkQ29uZGl0aW9ucz8uWzBdO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmlsdGVyKChjb25kaXRpb25WYWx1ZSkgPT4gY29uZGl0aW9uVmFsdWUgIT09IHVuZGVmaW5lZCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbmRpdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogTWFwcyBhbiBhcnJheSBvZiBjb25kaXRpb25zIHRvIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsdGVyIHZhbHVlcy5cblx0ICpcblx0ICogQHBhcmFtIGNvbmRpdGlvbnMgQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICogQHBhcmFtIGZvcm1hdE9wdGlvbnMgRm9ybWF0IG9wdGlvbnMgdGhhdCBzcGVjaWZpZXMgYSBjb25kaXRpb24gdHlwZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcmV0dXJucyBDb25jYXRlbmF0ZWQgc3RyaW5nIG9mIGZpbHRlciB2YWx1ZXNcblx0ICovXG5cdHN0YXRpYyBfY29uZGl0aW9uc1RvRmlsdGVyTW9kZWxTdHJpbmcoY29uZGl0aW9uczogb2JqZWN0W10sIGZvcm1hdE9wdGlvbnM6IEZvcm1hdE9wdGlvbnNUeXBlKTogc3RyaW5nIHtcblx0XHRjb25zdCBjb25kaXRpb25zVHlwZSA9IG5ldyBDb25kaXRpb25zVHlwZShmb3JtYXRPcHRpb25zKTtcblxuXHRcdHJldHVybiBjb25kaXRpb25zXG5cdFx0XHQubWFwKChjb25kaXRpb24pID0+IHtcblx0XHRcdFx0cmV0dXJuIGNvbmRpdGlvbnNUeXBlLmZvcm1hdFZhbHVlKFtjb25kaXRpb25dLCBcImFueVwiKSB8fCBcIlwiO1xuXHRcdFx0fSlcblx0XHRcdC5maWx0ZXIoKHN0cmluZ1ZhbHVlKSA9PiB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmdWYWx1ZSAhPT0gXCJcIjtcblx0XHRcdH0pXG5cdFx0XHQuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVucyB0byBmaWx0ZXIgbW9kZWwgY2hhbmdlcyBhbmQgdXBkYXRlcyB3cmFwcGVyIHByb3BlcnR5IFwiY29uZGl0aW9uc1wiLlxuXHQgKlxuXHQgKiBAcGFyYW0gY2hhbmdlRXZlbnQgRXZlbnQgdHJpZ2dlcmVkIGJ5IGEgZmlsdGVyIG1vZGVsIGNoYW5nZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2hhbmRsZUZpbHRlck1vZGVsQ2hhbmdlKGNoYW5nZUV2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBwcm9wZXJ0eVBhdGggPSB0aGlzLmdldE9iamVjdEJpbmRpbmcoXCJmaWx0ZXJWYWx1ZXNcIikuZ2V0UGF0aCgpLFxuXHRcdFx0dmFsdWVzID0gY2hhbmdlRXZlbnQuZ2V0U291cmNlKCkuZ2V0UHJvcGVydHkocHJvcGVydHlQYXRoKTtcblx0XHR0aGlzLnVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyh2YWx1ZXMsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbnMgdG8gXCJjb25kaXRpb25zXCIgY2hhbmdlcyBhbmQgdXBkYXRlcyB0aGUgZmlsdGVyIG1vZGVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gY29uZGl0aW9ucyBFdmVudCB0cmlnZ2VyZWQgYnkgYSBcImNvbmRpdGlvbnNcIiBjaGFuZ2Vcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9oYW5kbGVDb25kaXRpb25zQ2hhbmdlKGNvbmRpdGlvbnM6IGFueSk6IHZvaWQge1xuXHRcdHRoaXMudXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMoY29uZGl0aW9ucyk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGNvbnRyb2wgYW5kIHJlZ2lzdGVyIG9ic2VydmVyLlxuXHQgKi9cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRzdXBlci5pbml0KCk7XG5cdFx0dGhpcy5fY29uZGl0aW9uc09ic2VydmVyID0gbmV3IE1hbmFnZWRPYmplY3RPYnNlcnZlcih0aGlzLl9vYnNlcnZlQ2hhbmdlcy5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLl9jb25kaXRpb25zT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCB7XG5cdFx0XHRwcm9wZXJ0aWVzOiBbXCJjb25kaXRpb25zXCJdXG5cdFx0fSk7XG5cdFx0dGhpcy5fZmlsdGVyTW9kZWwgPSBuZXcgSlNPTk1vZGVsKCk7XG5cdFx0dGhpcy5fZmlsdGVyTW9kZWwuYXR0YWNoUHJvcGVydHlDaGFuZ2UodGhpcy5faGFuZGxlRmlsdGVyTW9kZWxDaGFuZ2UsIHRoaXMpO1xuXHRcdHRoaXMuc2V0TW9kZWwodGhpcy5fZmlsdGVyTW9kZWwsIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPdmVycmlkZXMge0BsaW5rIHNhcC51aS5jb3JlLkNvbnRyb2wjY2xvbmUgQ29udHJvbC5jbG9uZX0gdG8gY2xvbmUgYWRkaXRpb25hbFxuXHQgKiBpbnRlcm5hbCBzdGF0ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBbc0lkU3VmZml4XSBBIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgY2xvbmVkIGNvbnRyb2wgaWRcblx0ICogQHBhcmFtIFthTG9jYWxJZHNdIEFuIGFycmF5IG9mIGxvY2FsIElEcyB3aXRoaW4gdGhlIGNsb25lZCBoaWVyYXJjaHkgKGludGVybmFsbHkgdXNlZClcblx0ICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBuZXdseSBjcmVhdGVkIGNsb25lXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdGNsb25lKHNJZFN1ZmZpeDogc3RyaW5nIHwgdW5kZWZpbmVkLCBhTG9jYWxJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogdGhpcyB7XG5cdFx0Y29uc3QgY2xvbmUgPSBzdXBlci5jbG9uZShzSWRTdWZmaXgsIGFMb2NhbElkcyk7XG5cdFx0Ly8gRHVyaW5nIGNsb25pbmcsIHRoZSBvbGQgbW9kZWwgd2lsbCBiZSBjb3BpZWQgYW5kIG92ZXJ3cml0ZXMgYW55IG5ldyBtb2RlbCAoc2FtZSBhbGlhcykgdGhhdFxuXHRcdC8vIHlvdSBpbnRyb2R1Y2UgZHVyaW5nIGluaXQoKTsgaGVuY2UgeW91IG5lZWQgdG8gb3ZlcndyaXRlIGl0IGFnYWluIGJ5IHRoZSBuZXcgb25lIHRoYXQgeW91J3ZlXG5cdFx0Ly8gY3JlYXRlZCBkdXJpbmcgaW5pdCgpIChpLmUuIGNsb25lLl9maWx0ZXJNb2RlbCk7IHRoYXQgc3RhbmRhcmQgYmVoYXZpb3VyIG9mIHN1cGVyLmNsb25lKClcblx0XHQvLyBjYW4ndCBldmVuIGJlIHN1cHByZXNzZWQgaW4gYW4gb3duIGNvbnN0cnVjdG9yOyBmb3IgYSBkZXRhaWxlZCBpbnZlc3RpZ2F0aW9uIG9mIHRoZSBjbG9uaW5nLFxuXHRcdC8vIHBsZWFzZSBvdmVyd3JpdGUgdGhlIHNldE1vZGVsKCkgbWV0aG9kIGFuZCBjaGVjayB0aGUgbGlzdCBvZiBjYWxsZXJzIGFuZCBzdGVwcyBpbmR1Y2VkIGJ5IHRoZW0uXG5cdFx0Y2xvbmUuc2V0TW9kZWwoY2xvbmUuX2ZpbHRlck1vZGVsLCBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUyk7XG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbnMgdG8gcHJvcGVydHkgY2hhbmdlcy5cblx0ICpcblx0ICogQHBhcmFtIGNoYW5nZXMgUHJvcGVydHkgY2hhbmdlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X29ic2VydmVDaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VzLm5hbWUgPT09IFwiY29uZGl0aW9uc1wiKSB7XG5cdFx0XHR0aGlzLl9oYW5kbGVDb25kaXRpb25zQ2hhbmdlKGNoYW5nZXMuY3VycmVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGNvbnRlbnQgb2YgdGhpcyB3cmFwcGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSB3cmFwcGVyIGNvbnRlbnRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldENvbnRlbnQoKTogQ29udHJvbCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIENvbnRyb2w7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdmFsdWUgZm9yIGNvbnRyb2wgcHJvcGVydHkgJ2NvbmRpdGlvbnMnLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Z2V0Q29uZGl0aW9ucygpOiBvYmplY3RbXSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoXCJjb25kaXRpb25zXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHZhbHVlIGZvciBjb250cm9sIHByb3BlcnR5ICdjb25kaXRpb25zJy5cblx0ICpcblx0ICogQHBhcmFtIFtjb25kaXRpb25zXSBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcmV0dXJucyBSZWZlcmVuY2UgdG8gdGhpcyB3cmFwcGVyXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRzZXRDb25kaXRpb25zKGNvbmRpdGlvbnM6IG9iamVjdFtdKTogdGhpcyB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvbmRpdGlvbnNcIiwgY29uZGl0aW9ucyB8fCBbXSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgZmlsdGVyIG1vZGVsIGFsaWFzICdmaWx0ZXJWYWx1ZXMnLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgZmlsdGVyIG1vZGVsXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRGaWx0ZXJNb2RlbEFsaWFzKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIHByb3BlcnR5IFwiY29uZGl0aW9uc1wiIHdpdGggZmlsdGVyIHZhbHVlc1xuXHQgKiBzZW50IGJ5IEV4dGVuc2lvbkFQSSNzZXRGaWx0ZXJWYWx1ZXMoKS5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlcyBUaGUgZmlsdGVyIHZhbHVlc1xuXHQgKiBAcGFyYW0gW29wZXJhdG9yXSBUaGUgb3BlcmF0b3IgbmFtZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dXBkYXRlQ29uZGl0aW9uc0J5RmlsdGVyVmFsdWVzKHZhbHVlczogYW55LCBvcGVyYXRvcj86IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IGNvbmRpdGlvbnMgPSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLl9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnModmFsdWVzLCBvcGVyYXRvcik7XG5cdFx0dGhpcy5zZXRDb25kaXRpb25zKGNvbmRpdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgZmlsdGVyIG1vZGVsIHdpdGggY29uZGl0aW9uc1xuXHQgKiBzZW50IGJ5IHRoZSB7QGxpbmsgc2FwLnVpLm1kYy5GaWx0ZXJGaWVsZCBGaWx0ZXJGaWVsZH0uXG5cdCAqXG5cdCAqIEBwYXJhbSBjb25kaXRpb25zIEFycmF5IG9mIGZpbHRlciBjb25kaXRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVGaWx0ZXJNb2RlbEJ5Q29uZGl0aW9ucyhjb25kaXRpb25zOiBhbnlbXSk6IHZvaWQge1xuXHRcdGNvbnN0IG9wZXJhdG9yID0gY29uZGl0aW9uc1swXT8ub3BlcmF0b3IgfHwgXCJcIjtcblx0XHRjb25zdCBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zVHlwZSA9IG9wZXJhdG9yICE9PSBcIlwiID8geyBvcGVyYXRvcnM6IFtvcGVyYXRvcl0gfSA6IHsgb3BlcmF0b3JzOiBbXSB9O1xuXHRcdGlmICh0aGlzLmdldEJpbmRpbmdDb250ZXh0KEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKSkge1xuXHRcdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLl9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyhjb25kaXRpb25zLCBmb3JtYXRPcHRpb25zKTtcblx0XHRcdHRoaXMuX2ZpbHRlck1vZGVsLnNldFByb3BlcnR5KFxuXHRcdFx0XHR0aGlzLmdldEJpbmRpbmdDb250ZXh0KEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKT8uZ2V0UGF0aCgpLFxuXHRcdFx0XHRzdHJpbmdWYWx1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRnZXRBY2Nlc3NpYmlsaXR5SW5mbygpOiBhbnkge1xuXHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKTtcblx0XHRyZXR1cm4gY29udGVudD8uZ2V0QWNjZXNzaWJpbGl0eUluZm8/LigpIHx8IHt9O1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE4QnFCQSwrQjtFQVRyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1NBQ0NDLGNBQWMsQ0FBQyxzREFBRCxDLFVBRWJDLGtCQUFrQixDQUFDLDBCQUFELEMsVUFJbEJDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQVI7SUFBK0JDLFlBQVksRUFBRTtFQUE3QyxDQUFELEMsVUFHUkYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsVUFBUjtJQUFvQkMsWUFBWSxFQUFFO0VBQWxDLENBQUQsQyxVQUdSQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLHFCQUFSO0lBQStCRyxRQUFRLEVBQUUsS0FBekM7SUFBZ0RDLFNBQVMsRUFBRTtFQUEzRCxDQUFELEMsVUFHWEMsS0FBSyxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQ0FVQ0MsTSxHQUFQLGdCQUFjQyxhQUFkLEVBQTRDQyxPQUE1QyxFQUE0RjtNQUMzRkQsYUFBYSxDQUFDRSxTQUFkLENBQXdCLEtB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
|
|
384
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiZXZlbnQiLCJyZW5kZXIiLCJyZW5kZXJNYW5hZ2VyIiwiY29udHJvbCIsIm9wZW5TdGFydCIsInN0eWxlIiwid2lkdGgiLCJvcGVuRW5kIiwicmVuZGVyQ29udHJvbCIsImdldENvbnRlbnQiLCJjbG9zZSIsIl9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnMiLCJmaWx0ZXJWYWx1ZXMiLCJvcGVyYXRvciIsImZvcm1hdE9wdGlvbnMiLCJvcGVyYXRvcnMiLCJjb25kaXRpb25zIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZXMiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmRpdGlvbnNUeXBlIiwiQ29uZGl0aW9uc1R5cGUiLCJjb25kaXRpb25WYWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJnZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zIiwiaW5jbHVkZXMiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJDb25kaXRpb25WYWxpZGF0ZWQiLCJOb3RWYWxpZGF0ZWQiLCJtYXAiLCJjb25kaXRpb25WYWx1ZSIsInN0cmluZ1ZhbHVlIiwidG9TdHJpbmciLCJwYXJzZWRDb25kaXRpb25zIiwicGFyc2VWYWx1ZSIsImZpbHRlciIsIl9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyIsImNvbmRpdGlvbiIsImZvcm1hdFZhbHVlIiwiam9pbiIsIl9oYW5kbGVGaWx0ZXJNb2RlbENoYW5nZSIsImNoYW5nZUV2ZW50IiwicHJvcGVydHlQYXRoIiwiZ2V0T2JqZWN0QmluZGluZyIsImdldFBhdGgiLCJnZXRTb3VyY2UiLCJnZXRQcm9wZXJ0eSIsInVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyIsIl9oYW5kbGVDb25kaXRpb25zQ2hhbmdlIiwidXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMiLCJpbml0IiwiX2NvbmRpdGlvbnNPYnNlcnZlciIsIk1hbmFnZWRPYmplY3RPYnNlcnZlciIsIl9vYnNlcnZlQ2hhbmdlcyIsImJpbmQiLCJvYnNlcnZlIiwicHJvcGVydGllcyIsIl9maWx0ZXJNb2RlbCIsIkpTT05Nb2RlbCIsImF0dGFjaFByb3BlcnR5Q2hhbmdlIiwic2V0TW9kZWwiLCJGSUxURVJfTU9ERUxfQUxJQVMiLCJjbG9uZSIsInNJZFN1ZmZpeCIsImFMb2NhbElkcyIsImNoYW5nZXMiLCJuYW1lIiwiY3VycmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZ2V0Q29uZGl0aW9ucyIsInNldENvbmRpdGlvbnMiLCJzZXRQcm9wZXJ0eSIsImdldEZpbHRlck1vZGVsQWxpYXMiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwiY29udGVudCIsImdldElkRm9yTGFiZWwiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU2VtYW50aWNEYXRlT3BlcmF0b3JzXCI7XG5pbXBvcnQgTWFuYWdlZE9iamVjdE9ic2VydmVyIGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0T2JzZXJ2ZXJcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7IC8vaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9tZGMvZmllbGQvRmllbGRCYXNlXCI7XG5pbXBvcnQgdHlwZSB7IElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCBDb25kaXRpb24gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IENvbmRpdGlvblZhbGlkYXRlZCBmcm9tIFwic2FwL3VpL21kYy9lbnVtL0NvbmRpdGlvblZhbGlkYXRlZFwiO1xuaW1wb3J0IENvbmRpdGlvbnNUeXBlIGZyb20gXCJzYXAvdWkvbWRjL2ZpZWxkL0NvbmRpdGlvbnNUeXBlXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxuLyoqXG4gKiBUeXBlIHVzZWQgZm9yIGZvcm1hdCBvcHRpb25zXG4gKlxuICogQHR5cGVkZWYgRm9ybWF0T3B0aW9uc1R5cGVcbiAqL1xudHlwZSBGb3JtYXRPcHRpb25zVHlwZSA9IHtcblx0b3BlcmF0b3JzOiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogQGNsYXNzXG4gKiBDcmVhdGVzIGFuIDxjb2RlPnNhcC5mZS5jb3JlLmNvbnRyb2xzLkN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXI8L2NvZGU+IG9iamVjdC5cbiAqIFRoaXMgaXMgdXNlZCBpbiB0aGUge0BsaW5rIHNhcC51aS5tZGMuRmlsdGVyRmllbGQgRmlsdGVyRmllbGR9IGFzIGEgZmlsdGVyIGNvbnRlbnQuXG4gKiBAZXh0ZW5kcyBzYXAudWkuY29yZS5Db250cm9sXG4gKiBAcHJpdmF0ZVxuICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRyb2xzLkN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciBleHRlbmRzIENvbnRyb2wgaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2Vcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ1NTU2l6ZVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0d2lkdGghOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0W11cIiwgZGVmYXVsdFZhbHVlOiBbXSB9KVxuXHRjb25kaXRpb25zITogQ29uZGl0aW9uT2JqZWN0W107XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnQhOiBDb250cm9sO1xuXG5cdEBldmVudCgpXG5cdGNvbmRpdGlvbnNDaGFuZ2UhOiBGdW5jdGlvbjtcblxuXHQvLyBOb3RlOiBGaWVsZEJhc2UgbWlnaHQgYmUgdXNlZCBhcyBiYXNlIGNvbnRyb2wgKGluc3RlYWQgb2YgQ29udHJvbCkgaW4gYSBsYXRlciB2ZXJzaW9uO1xuXHQvLyBpbiB0aGF0IGNhc2UsIHlvdSBzaG91bGQgYWRkIGEgJ2NoYW5nZScgZXZlbnQgYW5kIGJ1YmJsZSBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBoYW5kbGVyc1xuXG5cdHByaXZhdGUgX2ZpbHRlck1vZGVsOiBhbnk7XG5cdHByaXZhdGUgX2NvbmRpdGlvbnNPYnNlcnZlcjogYW55O1xuXHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBGSUxURVJfTU9ERUxfQUxJQVMgPSBcImZpbHRlclZhbHVlc1wiO1xuXG5cdHN0YXRpYyByZW5kZXIocmVuZGVyTWFuYWdlcjogUmVuZGVyTWFuYWdlciwgY29udHJvbDogQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlcik6IHZvaWQge1xuXHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KFwiZGl2XCIsIGNvbnRyb2wpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJtaW4taGVpZ2h0XCIsIFwiMXJlbVwiKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwid2lkdGhcIiwgY29udHJvbC53aWR0aCk7XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuRW5kKCk7XG5cdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGNvbnRyb2wuZ2V0Q29udGVudCgpKTsgLy8gcmVuZGVyIHRoZSBjaGlsZCBDb250cm9sXG5cdFx0cmVuZGVyTWFuYWdlci5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdH1cblxuXHQvKipcblx0ICogTWFwcyBhbiBhcnJheSBvZiBmaWx0ZXIgdmFsdWVzIHRvIGFuIGFycmF5IG9mIGNvbmRpdGlvbnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBmaWx0ZXJWYWx1ZXMgQXJyYXkgb2YgZmlsdGVyIHZhbHVlIGJpbmRpbmdzIG9yIGEgZmlsdGVyIHZhbHVlIHN0cmluZ1xuXHQgKiBAcGFyYW0gW29wZXJhdG9yXSBUaGUgb3BlcmF0b3IgdG8gYmUgdXNlZCAob3B0aW9uYWwpIC0gaWYgbm90IHNldCwgdGhlIGRlZmF1bHQgb3BlcmF0b3IgKEVRKSB3aWxsIGJlIHVzZWRcblx0ICogQHByaXZhdGVcblx0ICogQHJldHVybnMgQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICovXG5cdHN0YXRpYyBfZmlsdGVyVmFsdWVzVG9Db25kaXRpb25zKGZpbHRlclZhbHVlczogYW55IHwgYW55W10sIG9wZXJhdG9yPzogc3RyaW5nKTogQ29uZGl0aW9uT2JqZWN0W10ge1xuXHRcdGxldCBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zVHlwZSA9IHsgb3BlcmF0b3JzOiBbXSB9LFxuXHRcdFx0Y29uZGl0aW9ucyA9IFtdO1xuXG5cdFx0aWYgKG9wZXJhdG9yKSB7XG5cdFx0XHRmb3JtYXRPcHRpb25zID0geyBvcGVyYXRvcnM6IFtvcGVyYXRvcl0gfTtcblx0XHR9XG5cdFx0aWYgKGZpbHRlclZhbHVlcyA9PT0gXCJcIikge1xuXHRcdFx0ZmlsdGVyVmFsdWVzID0gW107XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyVmFsdWVzID09PSBcIm9iamVjdFwiICYmIGZpbHRlclZhbHVlcy5oYXNPd25Qcm9wZXJ0eShcIm9wZXJhdG9yXCIpICYmIGZpbHRlclZhbHVlcy5oYXNPd25Qcm9wZXJ0eShcInZhbHVlc1wiKSkge1xuXHRcdFx0Zm9ybWF0T3B0aW9ucyA9IHsgb3BlcmF0b3JzOiBbZmlsdGVyVmFsdWVzLm9wZXJhdG9yXSB9O1xuXHRcdFx0ZmlsdGVyVmFsdWVzID0gZmlsdGVyVmFsdWVzLnZhbHVlcztcblx0XHR9IGVsc2UgaWYgKGZpbHRlclZhbHVlcyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBmaWx0ZXJWYWx1ZXMgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGZpbHRlclZhbHVlcyAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBGaWx0ZXJVdGlscy5qcyNfZmlsdGVyVmFsdWVzVG9Db25kaXRpb25zOiBVbmV4cGVjdGVkIHR5cGUgb2YgaW5wdXQgcGFyYW1ldGVyIHZWYWx1ZXM6ICR7dHlwZW9mIGZpbHRlclZhbHVlc31gKTtcblx0XHR9XG5cblx0XHRjb25zdCBjb25kaXRpb25zVHlwZTogYW55ID0gbmV3IENvbmRpdGlvbnNUeXBlKGZvcm1hdE9wdGlvbnMpO1xuXHRcdGNvbnN0IGNvbmRpdGlvblZhbHVlcyA9IEFycmF5LmlzQXJyYXkoZmlsdGVyVmFsdWVzKSA/IGZpbHRlclZhbHVlcyA6IFtmaWx0ZXJWYWx1ZXNdO1xuXG5cdFx0Ly8gU2hvcnRjdXQgZm9yIG9wZXJhdG9yIHdpdGhvdXQgdmFsdWVzIGFuZCBzZW1hbnRpYyBkYXRlIG9wZXJhdGlvbnNcblx0XHRpZiAoXG5cdFx0XHR0eXBlb2Ygb3BlcmF0b3IgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdChjb25kaXRpb25WYWx1ZXMubGVuZ3RoID09PSAwIHx8IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5nZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zKCkuaW5jbHVkZXMob3BlcmF0b3IpKVxuXHRcdCkge1xuXHRcdFx0Y29uZGl0aW9ucyA9IFtDb25kaXRpb24uY3JlYXRlQ29uZGl0aW9uKG9wZXJhdG9yLCBjb25kaXRpb25WYWx1ZXMsIG51bGwsIG51bGwsIENvbmRpdGlvblZhbGlkYXRlZC5Ob3RWYWxpZGF0ZWQpXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uZGl0aW9ucyA9IGNvbmRpdGlvblZhbHVlc1xuXHRcdFx0XHQubWFwKChjb25kaXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHN0cmluZ1ZhbHVlID0gY29uZGl0aW9uVmFsdWU/LnRvU3RyaW5nKCksXG5cdFx0XHRcdFx0XHRwYXJzZWRDb25kaXRpb25zID0gY29uZGl0aW9uc1R5cGUucGFyc2VWYWx1ZShzdHJpbmdWYWx1ZSwgXCJhbnlcIik7XG5cdFx0XHRcdFx0cmV0dXJuIHBhcnNlZENvbmRpdGlvbnM/LlswXTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcigoY29uZGl0aW9uVmFsdWUpID0+IGNvbmRpdGlvblZhbHVlICE9PSB1bmRlZmluZWQpO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb25kaXRpb25zO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hcHMgYW4gYXJyYXkgb2YgY29uZGl0aW9ucyB0byBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbHRlciB2YWx1ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBjb25kaXRpb25zIEFycmF5IG9mIGZpbHRlciBjb25kaXRpb25zXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zIEZvcm1hdCBvcHRpb25zIHRoYXQgc3BlY2lmaWVzIGEgY29uZGl0aW9uIHR5cGVcblx0ICogQHByaXZhdGVcblx0ICogQHJldHVybnMgQ29uY2F0ZW5hdGVkIHN0cmluZyBvZiBmaWx0ZXIgdmFsdWVzXG5cdCAqL1xuXHRzdGF0aWMgX2NvbmRpdGlvbnNUb0ZpbHRlck1vZGVsU3RyaW5nKGNvbmRpdGlvbnM6IG9iamVjdFtdLCBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zVHlwZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29uZGl0aW9uc1R5cGUgPSBuZXcgQ29uZGl0aW9uc1R5cGUoZm9ybWF0T3B0aW9ucyk7XG5cblx0XHRyZXR1cm4gY29uZGl0aW9uc1xuXHRcdFx0Lm1hcCgoY29uZGl0aW9uKSA9PiB7XG5cdFx0XHRcdHJldHVybiBjb25kaXRpb25zVHlwZS5mb3JtYXRWYWx1ZShbY29uZGl0aW9uXSwgXCJhbnlcIikgfHwgXCJcIjtcblx0XHRcdH0pXG5cdFx0XHQuZmlsdGVyKChzdHJpbmdWYWx1ZSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nVmFsdWUgIT09IFwiXCI7XG5cdFx0XHR9KVxuXHRcdFx0LmpvaW4oXCIsXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbnMgdG8gZmlsdGVyIG1vZGVsIGNoYW5nZXMgYW5kIHVwZGF0ZXMgd3JhcHBlciBwcm9wZXJ0eSBcImNvbmRpdGlvbnNcIi5cblx0ICpcblx0ICogQHBhcmFtIGNoYW5nZUV2ZW50IEV2ZW50IHRyaWdnZXJlZCBieSBhIGZpbHRlciBtb2RlbCBjaGFuZ2Vcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9oYW5kbGVGaWx0ZXJNb2RlbENoYW5nZShjaGFuZ2VFdmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3QgcHJvcGVydHlQYXRoID0gdGhpcy5nZXRPYmplY3RCaW5kaW5nKFwiZmlsdGVyVmFsdWVzXCIpLmdldFBhdGgoKSxcblx0XHRcdHZhbHVlcyA9IGNoYW5nZUV2ZW50LmdldFNvdXJjZSgpLmdldFByb3BlcnR5KHByb3BlcnR5UGF0aCk7XG5cdFx0dGhpcy51cGRhdGVDb25kaXRpb25zQnlGaWx0ZXJWYWx1ZXModmFsdWVzLCBcIlwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMaXN0ZW5zIHRvIFwiY29uZGl0aW9uc1wiIGNoYW5nZXMgYW5kIHVwZGF0ZXMgdGhlIGZpbHRlciBtb2RlbC5cblx0ICpcblx0ICogQHBhcmFtIGNvbmRpdGlvbnMgRXZlbnQgdHJpZ2dlcmVkIGJ5IGEgXCJjb25kaXRpb25zXCIgY2hhbmdlXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfaGFuZGxlQ29uZGl0aW9uc0NoYW5nZShjb25kaXRpb25zOiBhbnkpOiB2b2lkIHtcblx0XHR0aGlzLnVwZGF0ZUZpbHRlck1vZGVsQnlDb25kaXRpb25zKGNvbmRpdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemUgQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciBjb250cm9sIGFuZCByZWdpc3RlciBvYnNlcnZlci5cblx0ICovXG5cdGluaXQoKTogdm9pZCB7XG5cdFx0c3VwZXIuaW5pdCgpO1xuXHRcdHRoaXMuX2NvbmRpdGlvbnNPYnNlcnZlciA9IG5ldyBNYW5hZ2VkT2JqZWN0T2JzZXJ2ZXIodGhpcy5fb2JzZXJ2ZUNoYW5nZXMuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy5fY29uZGl0aW9uc09ic2VydmVyLm9ic2VydmUodGhpcywge1xuXHRcdFx0cHJvcGVydGllczogW1wiY29uZGl0aW9uc1wiXVxuXHRcdH0pO1xuXHRcdHRoaXMuX2ZpbHRlck1vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdHRoaXMuX2ZpbHRlck1vZGVsLmF0dGFjaFByb3BlcnR5Q2hhbmdlKHRoaXMuX2hhbmRsZUZpbHRlck1vZGVsQ2hhbmdlLCB0aGlzKTtcblx0XHR0aGlzLnNldE1vZGVsKHRoaXMuX2ZpbHRlck1vZGVsLCBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUyk7XG5cdH1cblxuXHQvKipcblx0ICogT3ZlcnJpZGVzIHtAbGluayBzYXAudWkuY29yZS5Db250cm9sI2Nsb25lIENvbnRyb2wuY2xvbmV9IHRvIGNsb25lIGFkZGl0aW9uYWxcblx0ICogaW50ZXJuYWwgc3RhdGVzLlxuXHQgKlxuXHQgKiBAcGFyYW0gW3NJZFN1ZmZpeF0gQSBzdWZmaXggdG8gYmUgYXBwZW5kZWQgdG8gdGhlIGNsb25lZCBjb250cm9sIGlkXG5cdCAqIEBwYXJhbSBbYUxvY2FsSWRzXSBBbiBhcnJheSBvZiBsb2NhbCBJRHMgd2l0aGluIHRoZSBjbG9uZWQgaGllcmFyY2h5IChpbnRlcm5hbGx5IHVzZWQpXG5cdCAqIEByZXR1cm5zIFJlZmVyZW5jZSB0byB0aGUgbmV3bHkgY3JlYXRlZCBjbG9uZVxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRjbG9uZShzSWRTdWZmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCwgYUxvY2FsSWRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCk6IHRoaXMge1xuXHRcdGNvbnN0IGNsb25lID0gc3VwZXIuY2xvbmUoc0lkU3VmZml4LCBhTG9jYWxJZHMpO1xuXHRcdC8vIER1cmluZyBjbG9uaW5nLCB0aGUgb2xkIG1vZGVsIHdpbGwgYmUgY29waWVkIGFuZCBvdmVyd3JpdGVzIGFueSBuZXcgbW9kZWwgKHNhbWUgYWxpYXMpIHRoYXRcblx0XHQvLyB5b3UgaW50cm9kdWNlIGR1cmluZyBpbml0KCk7IGhlbmNlIHlvdSBuZWVkIHRvIG92ZXJ3cml0ZSBpdCBhZ2FpbiBieSB0aGUgbmV3IG9uZSB0aGF0IHlvdSd2ZVxuXHRcdC8vIGNyZWF0ZWQgZHVyaW5nIGluaXQoKSAoaS5lLiBjbG9uZS5fZmlsdGVyTW9kZWwpOyB0aGF0IHN0YW5kYXJkIGJlaGF2aW91ciBvZiBzdXBlci5jbG9uZSgpXG5cdFx0Ly8gY2FuJ3QgZXZlbiBiZSBzdXBwcmVzc2VkIGluIGFuIG93biBjb25zdHJ1Y3RvcjsgZm9yIGEgZGV0YWlsZWQgaW52ZXN0aWdhdGlvbiBvZiB0aGUgY2xvbmluZyxcblx0XHQvLyBwbGVhc2Ugb3ZlcndyaXRlIHRoZSBzZXRNb2RlbCgpIG1ldGhvZCBhbmQgY2hlY2sgdGhlIGxpc3Qgb2YgY2FsbGVycyBhbmQgc3RlcHMgaW5kdWNlZCBieSB0aGVtLlxuXHRcdGNsb25lLnNldE1vZGVsKGNsb25lLl9maWx0ZXJNb2RlbCwgQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5GSUxURVJfTU9ERUxfQUxJQVMpO1xuXHRcdHJldHVybiBjbG9uZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMaXN0ZW5zIHRvIHByb3BlcnR5IGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBjaGFuZ2VzIFByb3BlcnR5IGNoYW5nZXNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9vYnNlcnZlQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcblx0XHRpZiAoY2hhbmdlcy5uYW1lID09PSBcImNvbmRpdGlvbnNcIikge1xuXHRcdFx0dGhpcy5faGFuZGxlQ29uZGl0aW9uc0NoYW5nZShjaGFuZ2VzLmN1cnJlbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjb250ZW50IG9mIHRoaXMgd3JhcHBlciBjb250cm9sLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgd3JhcHBlciBjb250ZW50XG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRDb250ZW50KCk6IENvbnRyb2wge1xuXHRcdHJldHVybiB0aGlzLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBDb250cm9sO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHZhbHVlIGZvciBjb250cm9sIHByb3BlcnR5ICdjb25kaXRpb25zJy5cblx0ICpcblx0ICogQHJldHVybnMgQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldENvbmRpdGlvbnMoKTogb2JqZWN0W10ge1xuXHRcdHJldHVybiB0aGlzLmdldFByb3BlcnR5KFwiY29uZGl0aW9uc1wiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB2YWx1ZSBmb3IgY29udHJvbCBwcm9wZXJ0eSAnY29uZGl0aW9ucycuXG5cdCAqXG5cdCAqIEBwYXJhbSBbY29uZGl0aW9uc10gQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoaXMgd3JhcHBlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0c2V0Q29uZGl0aW9ucyhjb25kaXRpb25zOiBvYmplY3RbXSk6IHRoaXMge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJjb25kaXRpb25zXCIsIGNvbmRpdGlvbnMgfHwgW10pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGZpbHRlciBtb2RlbCBhbGlhcyAnZmlsdGVyVmFsdWVzJy5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGZpbHRlciBtb2RlbFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Z2V0RmlsdGVyTW9kZWxBbGlhcygpOiBzdHJpbmcge1xuXHRcdHJldHVybiBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUztcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBwcm9wZXJ0eSBcImNvbmRpdGlvbnNcIiB3aXRoIGZpbHRlciB2YWx1ZXNcblx0ICogc2VudCBieSBFeHRlbnNpb25BUEkjc2V0RmlsdGVyVmFsdWVzKCkuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZXMgVGhlIGZpbHRlciB2YWx1ZXNcblx0ICogQHBhcmFtIFtvcGVyYXRvcl0gVGhlIG9wZXJhdG9yIG5hbWVcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyh2YWx1ZXM6IGFueSwgb3BlcmF0b3I/OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBjb25kaXRpb25zID0gQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5fZmlsdGVyVmFsdWVzVG9Db25kaXRpb25zKHZhbHVlcywgb3BlcmF0b3IpO1xuXHRcdHRoaXMuc2V0Q29uZGl0aW9ucyhjb25kaXRpb25zKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIGZpbHRlciBtb2RlbCB3aXRoIGNvbmRpdGlvbnNcblx0ICogc2VudCBieSB0aGUge0BsaW5rIHNhcC51aS5tZGMuRmlsdGVyRmllbGQgRmlsdGVyRmllbGR9LlxuXHQgKlxuXHQgKiBAcGFyYW0gY29uZGl0aW9ucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMoY29uZGl0aW9uczogYW55W10pOiB2b2lkIHtcblx0XHRjb25zdCBvcGVyYXRvciA9IGNvbmRpdGlvbnNbMF0/Lm9wZXJhdG9yIHx8IFwiXCI7XG5cdFx0Y29uc3QgZm9ybWF0T3B0aW9uczogRm9ybWF0T3B0aW9uc1R5cGUgPSBvcGVyYXRvciAhPT0gXCJcIiA/IHsgb3BlcmF0b3JzOiBbb3BlcmF0b3JdIH0gOiB7IG9wZXJhdG9yczogW10gfTtcblx0XHRpZiAodGhpcy5nZXRCaW5kaW5nQ29udGV4dChDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUykpIHtcblx0XHRcdGNvbnN0IHN0cmluZ1ZhbHVlID0gQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5fY29uZGl0aW9uc1RvRmlsdGVyTW9kZWxTdHJpbmcoY29uZGl0aW9ucywgZm9ybWF0T3B0aW9ucyk7XG5cdFx0XHR0aGlzLl9maWx0ZXJNb2RlbC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0dGhpcy5nZXRCaW5kaW5nQ29udGV4dChDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUyk/LmdldFBhdGgoKSxcblx0XHRcdFx0c3RyaW5nVmFsdWVcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKTogYW55IHtcblx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cdFx0cmV0dXJuIGNvbnRlbnQ/LmdldEFjY2Vzc2liaWxpdHlJbmZvPy4oKSB8fCB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBET01Ob2RlIElEIHRvIGJlIHVzZWQgZm9yIHRoZSBcImxhYmVsRm9yXCIgYXR0cmlidXRlLlxuXHQgKlxuXHQgKiBXZSBmb3J3YXJkIHRoZSBjYWxsIG9mIHRoaXMgbWV0aG9kIHRvIHRoZSBjb250ZW50IGNvbnRyb2wuXG5cdCAqXG5cdCAqIEByZXR1cm5zIElEIHRvIGJlIHVzZWQgZm9yIHRoZSA8Y29kZT5sYWJlbEZvcjwvY29kZT5cblx0ICovXG5cdGdldElkRm9yTGFiZWwoKTogc3RyaW5nIHtcblx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cdFx0cmV0dXJuIGNvbnRlbnQ/LmdldElkRm9yTGFiZWwoKTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BOEJxQkEsK0I7RUFUckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtTQUNDQyxjQUFjLENBQUMsc0RBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBSWxCQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLHFCQUFSO0lBQStCQyxZQUFZLEVBQUU7RUFBN0MsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUjtJQUFtQkMsWUFBWSxFQUFFO0VBQWpDLENBQUQsQyxVQUdSRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFVBQVI7SUFBb0JDLFlBQVksRUFBRTtFQUFsQyxDQUFELEMsVUFHUkMsV0FBVyxDQUFDO0lBQUVGLElBQUksRUFBRSxxQkFBUjtJQUErQkcsUUFBUSxFQUFFLEtBQXpDO0lBQWdEQyxTQUFTLEVBQUU7RUFBM0QsQ0FBRCxDLFVBR1hDLEtBQUssRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0NBVUNDLE0sR0FBUCxnQkFBY0MsYUFBZCxFQUE0Q0MsT0FBNUMsRUFBNEY7TUFDM0ZELGFBQWEsQ0FBQ0UsU0FBZCxDQUF3QixLQUF4QixFQUErQkQsT0FBL0I7TUFDQUQsYUFBYSxDQUFDRyxLQUFkLENBQW9CLFlBQXBCLEVBQWtDLE1BQWxDO01BQ0FILGFBQWEsQ0FBQ0csS0FBZCxDQUFvQixPQUFwQixFQUE2QkYsT0FBTyxDQUFDRyxLQUFyQztNQUNBSixhQUFhLENBQUNLLE9BQWQ7TUFDQUwsYUFBYSxDQUFDTSxhQUFkLENBQTRCTCxPQUFPLENBQUNNLFVBQVIsRUFBNUIsRUFMMkYsQ0FLeEM7O01BQ25EUCxhQUFhLENBQUNRLEtBQWQsQ0FBb0IsS0FBcEIsRUFOMkYsQ0FNL0Q7SUFDNUI7SUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7b0NBQ1FDLHlCLEdBQVAsbUNBQWlDQyxZQUFqQyxFQUE0REMsUUFBNUQsRUFBa0c7TUFDakcsSUFBSUMsYUFBZ0MsR0FBRztRQUFFQyxTQUFTLEVBQUU7TUFBYixDQUF2QztNQUFBLElBQ0NDLFVBQVUsR0FBRyxFQURkOztNQUdBLElBQUlILFFBQUosRUFBYztRQUNiQyxhQUFhLEdBQUc7VUFBRUMsU0FBUyxFQUFFLENBQUNGLFFBQUQ7UUFBYixDQUFoQjtNQUNBOztNQUNELElBQUlELFlBQVksS0FBSyxFQUFyQixFQUF5QjtRQUN4QkEsWUFBWSxHQUFHLEVBQWY7TUFDQSxDQUZELE1BRU8sSUFBSSxPQUFPQSxZQUFQLEtBQXdCLFFBQXhCLElBQW9DQSxZQUFZLENBQUNLLGNBQWIsQ0FBNEIsVUFBNUIsQ0FBcEMsSUFBK0VMLFlBQVksQ0FBQ0ssY0FBYixDQUE0QixRQUE1QixDQUFuRixFQUEwSDtRQUNoSUgsYUFBYSxHQUFHO1VBQUVDLFNBQVMsRUFBRSxDQUFDSCxZQUFZLENBQUNDLFFBQWQ7UUFBYixDQUFoQjtRQUNBRCxZQUFZLEdBQUdBLFlBQVksQ0FBQ00sTUFBNUI7TUFDQSxDQUhNLE1BR0EsSUFBSU4sWUFBWSxLQUFLTyxTQUFqQixJQUE4QixPQUFPUCxZQUFQLEtBQXdCLFFBQXRELElBQWtFLE9BQU9BLFlBQVAsS0FBd0IsUUFBOUYsRUFBd0c7UUFDOUcsTUFBTSxJQUFJUSxLQUFKLGlHQUFtRyxPQUFPUixZQUExRyxFQUFOO01BQ0E7O01BRUQsSUFBTVMsY0FBbUIsR0FBRyxJQUFJQyxjQUFKLENBQW1CUixhQUFuQixDQUE1QjtNQUNBLElBQU1TLGVBQWUsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNiLFlBQWQsSUFBOEJBLFlBQTlCLEdBQTZDLENBQUNBLFlBQUQsQ0FBckUsQ0FqQmlHLENBbUJqRzs7TUFDQSxJQUNDLE9BQU9DLFFBQVAsS0FBb0IsUUFBcEIsS0FDQ1UsZUFBZSxDQUFDRyxNQUFoQixLQUEyQixDQUEzQixJQUFnQ0MscUJBQXFCLENBQUNDLHlCQUF0QixHQUFrREMsUUFBbEQsQ0FBMkRoQixRQUEzRCxDQURqQyxDQURELEVBR0U7UUFDREcsVUFBVSxHQUFHLENBQUNjLFNBQVMsQ0FBQ0MsZUFBVixDQUEwQmxCLFFBQTFCLEVBQW9DVSxlQUFwQyxFQUFxRCxJQUFyRCxFQUEyRCxJQUEzRCxFQUFpRVMsa0JBQWtCLENBQUNDLFlBQXBGLENBQUQsQ0FBYjtNQUNBLENBTEQsTUFLTztRQUNOakIsVUFBVSxHQUFHTyxlQUFlLENBQzFCVyxHQURXLENBQ1AsVUFBQ0MsY0FBRCxFQUFvQjtVQUN4QixJQUFNQyxXQUFXLEdBQUdELGNBQUgsYUFBR0EsY0FBSCx1QkFBR0EsY0FBYyxDQUFFRSxRQUFoQixFQUFwQjtVQUFBLElBQ0NDLGdCQUFnQixHQUFHakIsY0FBYyxDQUFDa0IsVUFBZixDQUEwQkgsV0FBMUIsRUFBdUMsS0FBdkMsQ0FEcEI7VUFFQSxPQUFPRSxnQkFBUCxhQUFPQSxnQkFBUCx1QkFBT0EsZ0JBQWdCLENBQUcsQ0FBSCxDQUF2QjtRQUNBLENBTFcsRUFNWEUsTUFOVyxDQU1KLFVBQUNMLGNBQUQ7VUFBQSxPQUFvQkEsY0FBYyxLQUFLaEIsU0FBdkM7UUFBQSxDQU5JLENBQWI7TUFPQTs7TUFFRCxPQUFPSCxVQUFQO0lBQ0E7SUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7b0NBQ1F5Qiw4QixHQUFQLHdDQUFzQ3pCLFVBQXRDLEVBQTRERixhQUE1RCxFQUFzRztNQUNyRyxJQUFNTyxjQUFjLEdBQUcsSUFBSUMsY0FBSixDQUFtQlIsYUFBbkIsQ0FBdkI7TUFFQSxPQUFPRSxVQUFVLENBQ2ZrQixHQURLLENBQ0QsVUFBQ1EsU0FBRCxFQUFlO1FBQ25CLE9BQU9yQixjQUFjLENBQUNzQixXQUFmLENBQTJCLENBQUNELFNBQUQsQ0FBM0IsRUFBd0MsS0FBeEMsS0FBa0QsRUFBekQ7TUFDQSxDQUhLLEVBSUxGLE1BSkssQ0FJRSxVQUFDSixXQUFELEVBQWlCO1FBQ3hCLE9BQU9BLFdBQVcsS0FBSyxFQUF2QjtNQUNBLENBTkssRUFPTFEsSUFQSyxDQU9BLEdBUEEsQ0FBUDtJQVFBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztXQUNDQyx3QixHQUFBLGtDQUF5QkMsV0FBekIsRUFBaUQ7TUFDaEQsSUFBTUMsWUFBWSxHQUFHLEtBQUtDLGdCQUFMLENBQXNCLGNBQXRCLEVBQXNDQyxPQUF0QyxFQUFyQjtNQUFBLElBQ0MvQixNQUFNLEdBQUc0QixXQUFXLENBQUNJLFNBQVosR0FBd0JDLFdBQXhCLENBQW9DSixZQUFwQyxDQURWO01BRUEsS0FBS0ssOEJBQUwsQ0FBb0NsQyxNQUFwQyxFQUE0QyxFQUE1QztJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ21DLHVCLEdBQUEsaUNBQXdCckMsVUFBeEIsRUFBK0M7TUFDOUMsS0FBS3NDLDZCQUFMLENBQW1DdEMsVUFBbkM7SUFDQTtJQUVEO0FBQ0Q7QUFDQTs7O1dBQ0N1QyxJLEdBQUEsZ0JBQWE7TUFDWixtQkFBTUEsSUFBTjs7TUFDQSxLQUFLQyxtQkFBTCxHQUEyQixJQUFJQyxxQkFBSixDQUEwQixLQUFLQyxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUExQixDQUEzQjs7TUFDQSxLQUFLSCxtQkFBTCxDQUF5QkksT0FBekIsQ0FBaUMsSUFBakMsRUFBdUM7UUFDdENDLFVBQVUsRUFBRSxDQUFDLFlBQUQ7TUFEMEIsQ0FBdkM7O01BR0EsS0FBS0MsWUFBTCxHQUFvQixJQUFJQyxTQUFKLEVBQXBCOztNQUNBLEtBQUtELFlBQUwsQ0FBa0JFLG9CQUFsQixDQUF1QyxLQUFLbkIsd0JBQTVDLEVBQXNFLElBQXRFOztNQUNBLEtBQUtvQixRQUFMLENBQWMsS0FBS0gsWUFBbkIsRUFBaUN2RSwrQkFBK0IsQ0FBQzJFLGtCQUFqRTtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0MsSyxHQUFBLGVBQU1DLFNBQU4sRUFBcUNDLFNBQXJDLEVBQTRFO01BQzNFLElBQU1GLEtBQUssc0JBQVNBLEtBQVQsWUFBZUMsU0FBZixFQUEwQkMsU0FBMUIsQ0FBWCxDQUQyRSxDQUUzRTtNQUNBO01BQ0E7TUFDQTtNQUNBOzs7TUFDQUYsS0FBSyxDQUFDRixRQUFOLENBQWVFLEtBQUssQ0FBQ0wsWUFBckIsRUFBbUN2RSwrQkFBK0IsQ0FBQzJFLGtCQUFuRTtNQUNBLE9BQU9DLEtBQVA7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NULGUsR0FBQSx5QkFBZ0JZLE9BQWhCLEVBQW9DO01BQ25DLElBQUlBLE9BQU8sQ0FBQ0MsSUFBUixLQUFpQixZQUFyQixFQUFtQztRQUNsQyxLQUFLbEIsdUJBQUwsQ0FBNkJpQixPQUFPLENBQUNFLE9BQXJDO01BQ0E7SUFDRDtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0MvRCxVLEdBQUEsc0JBQXNCO01BQ3JCLE9BQU8sS0FBS2dFLGNBQUwsQ0FBb0IsU0FBcEIsQ0FBUDtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0MsYSxHQUFBLHlCQUEwQjtNQUN6QixPQUFPLEtBQUt2QixXQUFMLENBQWlCLFlBQWpCLENBQVA7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ3dCLGEsR0FBQSx1QkFBYzNELFVBQWQsRUFBMEM7TUFDekMsS0FBSzRELFdBQUwsQ0FBaUIsWUFBakIsRUFBK0I1RCxVQUFVLElBQUksRUFBN0M7TUFDQSxPQUFPLElBQVA7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0M2RCxtQixHQUFBLCtCQUE4QjtNQUM3QixPQUFPdEYsK0JBQStCLENBQUMyRSxrQkFBdkM7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDZCw4QixHQUFBLHdDQUErQmxDLE1BQS9CLEVBQTRDTCxRQUE1QyxFQUFxRTtNQUNwRSxJQUFNRyxVQUFVLEdBQUd6QiwrQkFBK0IsQ0FBQ29CLHlCQUFoQyxDQUEwRE8sTUFBMUQsRUFBa0VMLFFBQWxFLENBQW5COztNQUNBLEtBQUs4RCxhQUFMLENBQW1CM0QsVUFBbkI7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ3NDLDZCLEdBQUEsdUNBQThCdEMsVUFBOUIsRUFBdUQ7TUFBQTs7TUFDdEQsSUFBTUgsUUFBUSxHQUFHLGlCQUFBRyxVQUFVLENBQUMsQ0FBRCxDQUFWLDhEQUFlSCxRQUFmLEtBQTJCLEVBQTVDO01BQ0EsSUFBTUMsYUFBZ0MsR0FBR0QsUUFBUSxLQUFLLEVBQWIsR0FBa0I7UUFBRUUsU0FBUyxFQUFFLENBQUNGLFFBQUQ7TUFBYixDQUFsQixHQUE4QztRQUFFRSxTQUFTLEVBQUU7TUFBYixDQUF2Rjs7TUFDQSxJQUFJLEtBQUsrRCxpQkFBTCxDQUF1QnZGLCtCQUErQixDQUFDMkUsa0JBQXZELENBQUosRUFBZ0Y7UUFBQTs7UUFDL0UsSUFBTTlCLFdBQVcsR0FBRzdDLCtCQUErQixDQUFDa0QsOEJBQWhDLENBQStEekIsVUFBL0QsRUFBMkVGLGFBQTNFLENBQXBCOztRQUNBLEtBQUtnRCxZQUFMLENBQWtCYyxXQUFsQiwwQkFDQyxLQUFLRSxpQkFBTCxDQUF1QnZGLCtCQUErQixDQUFDMkUsa0JBQXZELENBREQsMERBQ0Msc0JBQTRFakIsT0FBNUUsRUFERCxFQUVDYixXQUZEO01BSUE7SUFDRCxDOztXQUVEMkMsb0IsR0FBQSxnQ0FBNEI7TUFBQTs7TUFDM0IsSUFBTUMsT0FBTyxHQUFHLEtBQUt2RSxVQUFMLEVBQWhCO01BQ0EsT0FBTyxDQUFBdUUsT0FBTyxTQUFQLElBQUFBLE9BQU8sV0FBUCxxQ0FBQUEsT0FBTyxDQUFFRCxvQkFBVCxxRkFBQUMsT0FBTyxNQUE4QixFQUE1QztJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDQyxhLEdBQUEseUJBQXdCO01BQ3ZCLElBQU1ELE9BQU8sR0FBRyxLQUFLdkUsVUFBTCxFQUFoQjtNQUNBLE9BQU91RSxPQUFQLGFBQU9BLE9BQVAsdUJBQU9BLE9BQU8sQ0FBRUMsYUFBVCxFQUFQO0lBQ0EsQzs7O0lBcFEyREMsTyxXQXlCcENoQixrQixHQUFxQixjOzs7OzthQXRCSixJIn0=
|
|
@@ -277,4 +277,16 @@ export default class CustomFilterFieldContentWrapper extends Control implements
|
|
|
277
277
|
const content = this.getContent();
|
|
278
278
|
return content?.getAccessibilityInfo?.() || {};
|
|
279
279
|
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Returns the DOMNode ID to be used for the "labelFor" attribute.
|
|
283
|
+
*
|
|
284
|
+
* We forward the call of this method to the content control.
|
|
285
|
+
*
|
|
286
|
+
* @returns ID to be used for the <code>labelFor</code>
|
|
287
|
+
*/
|
|
288
|
+
getIdForLabel(): string {
|
|
289
|
+
const content = this.getContent();
|
|
290
|
+
return content?.getIdForLabel();
|
|
291
|
+
}
|
|
280
292
|
}
|
|
@@ -73,34 +73,19 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "s
|
|
|
73
73
|
if (sQuickViewPageTitleLinkIntent && _this2.oCrossAppNavigator && _this2.oCrossAppNavigator.isNavigationSupported([sQuickViewPageTitleLinkIntent])) {
|
|
74
74
|
if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
|
|
75
75
|
if (typeof sQuickViewPageTitleLinkIntent === "string" && sQuickViewPageTitleLinkIntent !== "") {
|
|
76
|
-
var sTargetHref;
|
|
77
|
-
|
|
78
76
|
var oLinkControl = _this2.getParent();
|
|
79
77
|
|
|
80
78
|
while (oLinkControl && !oLinkControl.isA("sap.ui.mdc.Link")) {
|
|
81
79
|
oLinkControl = oLinkControl.getParent();
|
|
82
80
|
}
|
|
83
81
|
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
for (var i = 0; i < _aLinks.length; i++) {
|
|
89
|
-
if (_aLinks[i].key === sQuickViewPageTitleLinkIntent) {
|
|
90
|
-
sTargetHref = _aLinks[i].href;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (sTargetHref) {
|
|
96
|
-
oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
|
|
97
|
-
} else {
|
|
98
|
-
oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
|
|
99
|
-
oShellHash.params = oNavArgs.params;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
82
|
+
var sTargetHref = oLinkControl.getModel("$sapuimdcLink").getProperty("/titleLinkHref");
|
|
83
|
+
|
|
84
|
+
if (sTargetHref) {
|
|
85
|
+
oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
|
|
102
86
|
} else {
|
|
103
87
|
oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
|
|
88
|
+
oShellHash.params = oNavArgs.params;
|
|
104
89
|
}
|
|
105
90
|
|
|
106
91
|
KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oShellHash);
|
|
@@ -168,4 +153,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "s
|
|
|
168
153
|
})), _class2)) || _class);
|
|
169
154
|
return CustomQuickViewPage;
|
|
170
155
|
}, false);
|
|
171
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21RdWlja1ZpZXdQYWdlIiwiZGVmaW5lVUk1Q2xhc3MiLCJhZ2dyZWdhdGlvbiIsInR5cGUiLCJtdWx0aXBsZSIsInNpbmd1bGFyTmFtZSIsImlzRGVmYXVsdCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwib0V2ZW50IiwiZ2V0UGFyZW50IiwiaXNBIiwiZ2V0UHJvcGVydHkiLCJzZXRDcm9zc0FwcE5hdkNhbGxiYWNrIiwic1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmIiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0FwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm9TaGVsbFNlcnZpY2VIZWxwZXIiLCJnZXRTaGVsbFNlcnZpY2VzIiwib1NoZWxsSGFzaCIsInBhcnNlU2hlbGxIYXNoIiwib05hdkFyZ3MiLCJ0YXJnZXQiLCJzZW1hbnRpY09iamVjdCIsImFjdGlvbiIsInBhcmFtcyIsInNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50Iiwib0Nyb3NzQXBwTmF2aWdhdG9yIiwiaXNOYXZpZ2F0aW9uU3VwcG9ydGVkIiwic1RhcmdldEhyZWYiLCJvTGlua0NvbnRyb2wiLCJfYUxpbmtzIiwiZ2V0TW9kZWwiLCJsZW5ndGgiLCJpIiwia2V5IiwiaHJlZiIsIktlZXBBbGl2ZUhlbHBlciIsInN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2giLCJvQ3VycmVudFNoZWxsSGFzaCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsImFwcFNwZWNpZmljUm91dGUiLCJvUGFnZUNvbnRlbnQiLCJnZXRQYWdlQ29udGVudCIsIm9Gb3JtIiwiZm9ybSIsIl9hQ29udGVudCIsImN1c3RvbUNvbnRlbnQiLCJmb3JFYWNoIiwiX29Db250ZW50IiwiX29Db250ZW50Q2xvbmUiLCJjbG9uZSIsInNldE1vZGVsIiwic2V0QmluZGluZ0NvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFkZENvbnRlbnQiLCJzZXRUaW1lb3V0IiwicmVyZW5kZXIiLCJRdWlja1ZpZXdQYWdlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDdXN0b21RdWlja1ZpZXdQYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgUXVpY2tWaWV3UGFnZSBmcm9tIFwic2FwL20vUXVpY2tWaWV3UGFnZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5DdXN0b21RdWlja1ZpZXdQYWdlXCIpXG5jbGFzcyBDdXN0b21RdWlja1ZpZXdQYWdlIGV4dGVuZHMgUXVpY2tWaWV3UGFnZSB7XG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRjdXN0b21Db250ZW50ITogQ29udHJvbFtdO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLlF1aWNrVmlld0dyb3VwXCIsIG11bHRpcGxlOiB0cnVlLCBzaW5ndWxhck5hbWU6IFwiZ3JvdXBcIiwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGdyb3VwcyE6IENvbnRyb2xbXTtcblxuXHRvbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQ6IGFueSkge1xuXHRcdGlmIChcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkgJiZcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ29uZGl0aW9uYWxXcmFwcGVyXCIpICYmXG5cdFx0XHR0aGlzLmdldFBhcmVudCgpLmdldFByb3BlcnR5KFwiY29uZGl0aW9uXCIpID09PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNldENyb3NzQXBwTmF2Q2FsbGJhY2soKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0hyZWYgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGEgYXMgYW55KSh0aGlzLCBcInRpdGxlTGlua1wiKTtcblx0XHRcdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KG9WaWV3KTtcblx0XHRcdFx0Y29uc3Qgb1NoZWxsU2VydmljZUhlbHBlciA9IG9BcHBDb21wb25lbnQuZ2V0U2hlbGxTZXJ2aWNlcygpO1xuXHRcdFx0XHRsZXQgb1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmKTtcblx0XHRcdFx0Y29uc3Qgb05hdkFyZ3MgPSB7XG5cdFx0XHRcdFx0dGFyZ2V0OiB7XG5cdFx0XHRcdFx0XHRzZW1hbnRpY09iamVjdDogb1NoZWxsSGFzaC5zZW1hbnRpY09iamVjdCxcblx0XHRcdFx0XHRcdGFjdGlvbjogb1NoZWxsSGFzaC5hY3Rpb25cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHBhcmFtczogb1NoZWxsSGFzaC5wYXJhbXNcblx0XHRcdFx0fTtcblx0XHRcdFx0Y29uc3Qgc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQgPSBgJHtvTmF2QXJncy50YXJnZXQuc2VtYW50aWNPYmplY3R9LSR7b05hdkFyZ3MudGFyZ2V0LmFjdGlvbn1gO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJlxuXHRcdFx0XHRcdHRoaXMub0Nyb3NzQXBwTmF2aWdhdG9yICYmXG5cdFx0XHRcdFx0dGhpcy5vQ3Jvc3NBcHBOYXZpZ2F0b3IuaXNOYXZpZ2F0aW9uU3VwcG9ydGVkKFtzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudF0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCA9PT0gXCJzdHJpbmdcIiAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0XHRsZXQgc1RhcmdldEhyZWY7XG5cdFx0XHRcdFx0XHRcdGxldCBvTGlua0NvbnRyb2wgPSB0aGlzLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAob0xpbmtDb250cm9sICYmICFvTGlua0NvbnRyb2wuaXNBKFwic2FwLnVpLm1kYy5MaW5rXCIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0b0xpbmtDb250cm9sID0gb0xpbmtDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGNvbnN0IF9hTGlua3MgPSBvTGlua0NvbnRyb2wuZ2V0TW9kZWwoXCIkc2FwdWltZGNMaW5rXCIpLmdldFByb3BlcnR5KFwiL2xpbmtJdGVtc1wiKTtcblx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3MpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoX2FMaW5rcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9hTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3NbaV0ua2V5ID09PSBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNUYXJnZXRIcmVmID0gX2FMaW5rc1tpXS5ocmVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoc1RhcmdldEhyZWYpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1RhcmdldEhyZWYpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoLnBhcmFtcyA9IG9OYXZBcmdzLnBhcmFtcztcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdEtlZXBBbGl2ZUhlbHBlci5zdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoKG9WaWV3LCBvU2hlbGxIYXNoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBvU2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uOiBvU2hlbGxIYXNoLmFjdGlvblxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0cGFyYW1zOiBvU2hlbGxIYXNoLnBhcmFtc1xuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zdCBvQ3VycmVudFNoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2god2luZG93LmxvY2F0aW9uLmhhc2gpO1xuXHRcdFx0XHRcdEtlZXBBbGl2ZUhlbHBlci5zdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoKG9WaWV3LCBvQ3VycmVudFNoZWxsSGFzaCk7XG5cblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0dGFyZ2V0OiB7XG5cdFx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBvQ3VycmVudFNoZWxsSGFzaC5zZW1hbnRpY09iamVjdCxcblx0XHRcdFx0XHRcdFx0YWN0aW9uOiBvQ3VycmVudFNoZWxsSGFzaC5hY3Rpb24sXG5cdFx0XHRcdFx0XHRcdGFwcFNwZWNpZmljUm91dGU6IG9DdXJyZW50U2hlbGxIYXNoLmFwcFNwZWNpZmljUm91dGVcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRwYXJhbXM6IG9DdXJyZW50U2hlbGxIYXNoLnBhcmFtc1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRzdXBlci5vbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQpO1xuXHRcdGNvbnN0IG9QYWdlQ29udGVudCA9IHRoaXMuZ2V0UGFnZUNvbnRlbnQoKTtcblx0XHRjb25zdCBvRm9ybSA9IG9QYWdlQ29udGVudC5mb3JtO1xuXHRcdGlmIChvRm9ybSkge1xuXHRcdFx0Y29uc3QgX2FDb250ZW50ID0gdGhpcy5jdXN0b21Db250ZW50O1xuXHRcdFx0aWYgKF9hQ29udGVudCAmJiBfYUNvbnRlbnQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRfYUNvbnRlbnQuZm9yRWFjaCgoX29Db250ZW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBfb0NvbnRlbnRDbG9uZSA9IF9vQ29udGVudC5jbG9uZSgpO1xuXHRcdFx0XHRcdF9vQ29udGVudENsb25lLnNldE1vZGVsKHRoaXMuZ2V0TW9kZWwoKSk7XG5cdFx0XHRcdFx0X29Db250ZW50Q2xvbmUuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpKTtcblx0XHRcdFx0XHRvRm9ybS5hZGRDb250ZW50KF9vQ29udGVudENsb25lKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdG9Gb3JtLnJlcmVuZGVyKCk7XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuaW50ZXJmYWNlIEN1c3RvbVF1aWNrVmlld1BhZ2Uge1xuXHQvLyBQcml2YXRlIGluIFVJNVxuXHRvQ3Jvc3NBcHBOYXZpZ2F0b3I6IGFueTtcblx0Ly8gUHJpdmF0ZSBpbiBVSTVcblx0Z2V0UGFnZUNvbnRlbnQoKTogYW55O1xufVxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tUXVpY2tWaWV3UGFnZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BUU1BLG1CLFdBRExDLGNBQWMsQ0FBQywwQ0FBRCxDLFVBRWJDLFdBQVcsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQVI7SUFBK0JDLFFBQVEsRUFBRTtFQUF6QyxDQUFELEMsVUFFWEYsV0FBVyxDQUFDO0lBQUVDLElBQUksRUFBRSxzQkFBUjtJQUFnQ0MsUUFBUSxFQUFFLElBQTFDO0lBQWdEQyxZQUFZLEVBQUUsT0FBOUQ7SUFBdUVDLFNBQVMsRUFBRTtFQUFsRixDQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxpQixHQUFBLDJCQUFrQkMsTUFBbEIsRUFBK0I7TUFBQTs7TUFD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
|
|
156
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21RdWlja1ZpZXdQYWdlIiwiZGVmaW5lVUk1Q2xhc3MiLCJhZ2dyZWdhdGlvbiIsInR5cGUiLCJtdWx0aXBsZSIsInNpbmd1bGFyTmFtZSIsImlzRGVmYXVsdCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwib0V2ZW50IiwiZ2V0UGFyZW50IiwiaXNBIiwiZ2V0UHJvcGVydHkiLCJzZXRDcm9zc0FwcE5hdkNhbGxiYWNrIiwic1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmIiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0FwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm9TaGVsbFNlcnZpY2VIZWxwZXIiLCJnZXRTaGVsbFNlcnZpY2VzIiwib1NoZWxsSGFzaCIsInBhcnNlU2hlbGxIYXNoIiwib05hdkFyZ3MiLCJ0YXJnZXQiLCJzZW1hbnRpY09iamVjdCIsImFjdGlvbiIsInBhcmFtcyIsInNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50Iiwib0Nyb3NzQXBwTmF2aWdhdG9yIiwiaXNOYXZpZ2F0aW9uU3VwcG9ydGVkIiwib0xpbmtDb250cm9sIiwic1RhcmdldEhyZWYiLCJnZXRNb2RlbCIsIktlZXBBbGl2ZUhlbHBlciIsInN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2giLCJvQ3VycmVudFNoZWxsSGFzaCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsImFwcFNwZWNpZmljUm91dGUiLCJvUGFnZUNvbnRlbnQiLCJnZXRQYWdlQ29udGVudCIsIm9Gb3JtIiwiZm9ybSIsIl9hQ29udGVudCIsImN1c3RvbUNvbnRlbnQiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX29Db250ZW50IiwiX29Db250ZW50Q2xvbmUiLCJjbG9uZSIsInNldE1vZGVsIiwic2V0QmluZGluZ0NvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFkZENvbnRlbnQiLCJzZXRUaW1lb3V0IiwicmVyZW5kZXIiLCJRdWlja1ZpZXdQYWdlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDdXN0b21RdWlja1ZpZXdQYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgUXVpY2tWaWV3UGFnZSBmcm9tIFwic2FwL20vUXVpY2tWaWV3UGFnZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5DdXN0b21RdWlja1ZpZXdQYWdlXCIpXG5jbGFzcyBDdXN0b21RdWlja1ZpZXdQYWdlIGV4dGVuZHMgUXVpY2tWaWV3UGFnZSB7XG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRjdXN0b21Db250ZW50ITogQ29udHJvbFtdO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLlF1aWNrVmlld0dyb3VwXCIsIG11bHRpcGxlOiB0cnVlLCBzaW5ndWxhck5hbWU6IFwiZ3JvdXBcIiwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGdyb3VwcyE6IENvbnRyb2xbXTtcblxuXHRvbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQ6IGFueSkge1xuXHRcdGlmIChcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkgJiZcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ29uZGl0aW9uYWxXcmFwcGVyXCIpICYmXG5cdFx0XHR0aGlzLmdldFBhcmVudCgpLmdldFByb3BlcnR5KFwiY29uZGl0aW9uXCIpID09PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNldENyb3NzQXBwTmF2Q2FsbGJhY2soKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0hyZWYgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGEgYXMgYW55KSh0aGlzLCBcInRpdGxlTGlua1wiKTtcblx0XHRcdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KG9WaWV3KTtcblx0XHRcdFx0Y29uc3Qgb1NoZWxsU2VydmljZUhlbHBlciA9IG9BcHBDb21wb25lbnQuZ2V0U2hlbGxTZXJ2aWNlcygpO1xuXHRcdFx0XHRsZXQgb1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmKTtcblx0XHRcdFx0Y29uc3Qgb05hdkFyZ3MgPSB7XG5cdFx0XHRcdFx0dGFyZ2V0OiB7XG5cdFx0XHRcdFx0XHRzZW1hbnRpY09iamVjdDogb1NoZWxsSGFzaC5zZW1hbnRpY09iamVjdCxcblx0XHRcdFx0XHRcdGFjdGlvbjogb1NoZWxsSGFzaC5hY3Rpb25cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHBhcmFtczogb1NoZWxsSGFzaC5wYXJhbXNcblx0XHRcdFx0fTtcblx0XHRcdFx0Y29uc3Qgc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQgPSBgJHtvTmF2QXJncy50YXJnZXQuc2VtYW50aWNPYmplY3R9LSR7b05hdkFyZ3MudGFyZ2V0LmFjdGlvbn1gO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJlxuXHRcdFx0XHRcdHRoaXMub0Nyb3NzQXBwTmF2aWdhdG9yICYmXG5cdFx0XHRcdFx0dGhpcy5vQ3Jvc3NBcHBOYXZpZ2F0b3IuaXNOYXZpZ2F0aW9uU3VwcG9ydGVkKFtzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudF0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCA9PT0gXCJzdHJpbmdcIiAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0XHRsZXQgb0xpbmtDb250cm9sID0gdGhpcy5nZXRQYXJlbnQoKTtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKG9MaW5rQ29udHJvbCAmJiAhb0xpbmtDb250cm9sLmlzQShcInNhcC51aS5tZGMuTGlua1wiKSkge1xuXHRcdFx0XHRcdFx0XHRcdG9MaW5rQ29udHJvbCA9IG9MaW5rQ29udHJvbC5nZXRQYXJlbnQoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRjb25zdCBzVGFyZ2V0SHJlZjogc3RyaW5nID0gb0xpbmtDb250cm9sLmdldE1vZGVsKFwiJHNhcHVpbWRjTGlua1wiKS5nZXRQcm9wZXJ0eShcIi90aXRsZUxpbmtIcmVmXCIpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc1RhcmdldEhyZWYpIHtcblx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzVGFyZ2V0SHJlZik7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQpO1xuXHRcdFx0XHRcdFx0XHRcdG9TaGVsbEhhc2gucGFyYW1zID0gb05hdkFyZ3MucGFyYW1zO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdEtlZXBBbGl2ZUhlbHBlci5zdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoKG9WaWV3LCBvU2hlbGxIYXNoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBvU2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uOiBvU2hlbGxIYXNoLmFjdGlvblxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0cGFyYW1zOiBvU2hlbGxIYXNoLnBhcmFtc1xuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zdCBvQ3VycmVudFNoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2god2luZG93LmxvY2F0aW9uLmhhc2gpO1xuXHRcdFx0XHRcdEtlZXBBbGl2ZUhlbHBlci5zdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoKG9WaWV3LCBvQ3VycmVudFNoZWxsSGFzaCk7XG5cblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0dGFyZ2V0OiB7XG5cdFx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBvQ3VycmVudFNoZWxsSGFzaC5zZW1hbnRpY09iamVjdCxcblx0XHRcdFx0XHRcdFx0YWN0aW9uOiBvQ3VycmVudFNoZWxsSGFzaC5hY3Rpb24sXG5cdFx0XHRcdFx0XHRcdGFwcFNwZWNpZmljUm91dGU6IG9DdXJyZW50U2hlbGxIYXNoLmFwcFNwZWNpZmljUm91dGVcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRwYXJhbXM6IG9DdXJyZW50U2hlbGxIYXNoLnBhcmFtc1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRzdXBlci5vbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQpO1xuXHRcdGNvbnN0IG9QYWdlQ29udGVudCA9IHRoaXMuZ2V0UGFnZUNvbnRlbnQoKTtcblx0XHRjb25zdCBvRm9ybSA9IG9QYWdlQ29udGVudC5mb3JtO1xuXHRcdGlmIChvRm9ybSkge1xuXHRcdFx0Y29uc3QgX2FDb250ZW50ID0gdGhpcy5jdXN0b21Db250ZW50O1xuXHRcdFx0aWYgKF9hQ29udGVudCAmJiBfYUNvbnRlbnQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRfYUNvbnRlbnQuZm9yRWFjaCgoX29Db250ZW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBfb0NvbnRlbnRDbG9uZSA9IF9vQ29udGVudC5jbG9uZSgpO1xuXHRcdFx0XHRcdF9vQ29udGVudENsb25lLnNldE1vZGVsKHRoaXMuZ2V0TW9kZWwoKSk7XG5cdFx0XHRcdFx0X29Db250ZW50Q2xvbmUuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpKTtcblx0XHRcdFx0XHRvRm9ybS5hZGRDb250ZW50KF9vQ29udGVudENsb25lKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdG9Gb3JtLnJlcmVuZGVyKCk7XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5pbnRlcmZhY2UgQ3VzdG9tUXVpY2tWaWV3UGFnZSB7XG5cdC8vIFByaXZhdGUgaW4gVUk1XG5cdG9Dcm9zc0FwcE5hdmlnYXRvcjogYW55O1xuXG5cdC8vIFByaXZhdGUgaW4gVUk1XG5cdGdldFBhZ2VDb250ZW50KCk6IGFueTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tUXVp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
|
|
@@ -40,29 +40,16 @@ class CustomQuickViewPage extends QuickViewPage {
|
|
|
40
40
|
) {
|
|
41
41
|
if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
|
|
42
42
|
if (typeof sQuickViewPageTitleLinkIntent === "string" && sQuickViewPageTitleLinkIntent !== "") {
|
|
43
|
-
let sTargetHref;
|
|
44
43
|
let oLinkControl = this.getParent();
|
|
45
44
|
while (oLinkControl && !oLinkControl.isA("sap.ui.mdc.Link")) {
|
|
46
45
|
oLinkControl = oLinkControl.getParent();
|
|
47
46
|
}
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
for (let i = 0; i < _aLinks.length; i++) {
|
|
52
|
-
if (_aLinks[i].key === sQuickViewPageTitleLinkIntent) {
|
|
53
|
-
sTargetHref = _aLinks[i].href;
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (sTargetHref) {
|
|
58
|
-
oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
|
|
59
|
-
} else {
|
|
60
|
-
oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
|
|
61
|
-
oShellHash.params = oNavArgs.params;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
47
|
+
const sTargetHref: string = oLinkControl.getModel("$sapuimdcLink").getProperty("/titleLinkHref");
|
|
48
|
+
if (sTargetHref) {
|
|
49
|
+
oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
|
|
64
50
|
} else {
|
|
65
51
|
oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
|
|
52
|
+
oShellHash.params = oNavArgs.params;
|
|
66
53
|
}
|
|
67
54
|
KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oShellHash);
|
|
68
55
|
return {
|
|
@@ -108,10 +95,13 @@ class CustomQuickViewPage extends QuickViewPage {
|
|
|
108
95
|
}
|
|
109
96
|
}
|
|
110
97
|
}
|
|
98
|
+
|
|
111
99
|
interface CustomQuickViewPage {
|
|
112
100
|
// Private in UI5
|
|
113
101
|
oCrossAppNavigator: any;
|
|
102
|
+
|
|
114
103
|
// Private in UI5
|
|
115
104
|
getPageContent(): any;
|
|
116
105
|
}
|
|
106
|
+
|
|
117
107
|
export default CustomQuickViewPage;
|
|
@@ -136,7 +136,8 @@ sap.ui.define(["sap/fe/core/templating/DisplayModeFormatter", "sap/fe/core/templ
|
|
|
136
136
|
function collectRelatedProperties(path, property, converterContext, ignoreSelf, tableType) {
|
|
137
137
|
var relatedProperties = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
|
|
138
138
|
properties: {},
|
|
139
|
-
additionalProperties: {}
|
|
139
|
+
additionalProperties: {},
|
|
140
|
+
textOnlyPropertiesFromTextAnnotation: []
|
|
140
141
|
};
|
|
141
142
|
var addUnitInTemplate = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
142
143
|
|
|
@@ -204,6 +205,7 @@ sap.ui.define(["sap/fe/core/templating/DisplayModeFormatter", "sap/fe/core/templ
|
|
|
204
205
|
|
|
205
206
|
_appendTemplate("{".concat(descriptionIndex, "}"));
|
|
206
207
|
|
|
208
|
+
relatedProperties.textOnlyPropertiesFromTextAnnotation.push(textAnnotation.path);
|
|
207
209
|
break;
|
|
208
210
|
|
|
209
211
|
case "ValueDescription":
|
|
@@ -324,7 +326,8 @@ sap.ui.define(["sap/fe/core/templating/DisplayModeFormatter", "sap/fe/core/templ
|
|
|
324
326
|
|
|
325
327
|
var relatedProperties = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
|
|
326
328
|
properties: {},
|
|
327
|
-
additionalProperties: {}
|
|
329
|
+
additionalProperties: {},
|
|
330
|
+
textOnlyPropertiesFromTextAnnotation: []
|
|
328
331
|
};
|
|
329
332
|
var isEmbedded = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
330
333
|
|
|
@@ -334,12 +337,15 @@ sap.ui.define(["sap/fe/core/templating/DisplayModeFormatter", "sap/fe/core/templ
|
|
|
334
337
|
case "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":
|
|
335
338
|
case "com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation":
|
|
336
339
|
case "com.sap.vocabularies.UI.v1.DataFieldWithAction":
|
|
337
|
-
|
|
338
|
-
|
|
340
|
+
if (dataField.Value) {
|
|
341
|
+
var property = dataField.Value;
|
|
342
|
+
relatedProperties = collectRelatedProperties(property.path, property.$target, converterContext, false, tableType, relatedProperties, isEmbedded);
|
|
339
343
|
|
|
340
|
-
|
|
344
|
+
var navigationPathPrefix = _getNavigationPathPrefix(property.path);
|
|
345
|
+
|
|
346
|
+
relatedProperties = _collectAdditionalPropertiesForAnalyticalTable(dataField, navigationPathPrefix, tableType, relatedProperties);
|
|
347
|
+
}
|
|
341
348
|
|
|
342
|
-
relatedProperties = _collectAdditionalPropertiesForAnalyticalTable(dataField, navigationPathPrefix, tableType, relatedProperties);
|
|
343
349
|
break;
|
|
344
350
|
|
|
345
351
|
case "com.sap.vocabularies.UI.v1.DataFieldForAction":
|
|
@@ -432,4 +438,4 @@ sap.ui.define(["sap/fe/core/templating/DisplayModeFormatter", "sap/fe/core/templ
|
|
|
432
438
|
_exports.getDataFieldDataType = getDataFieldDataType;
|
|
433
439
|
return _exports;
|
|
434
440
|
}, false);
|
|
435
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0RhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0IiwiZGF0YUZpZWxkIiwiaGFzT3duUHJvcGVydHkiLCJpc0RhdGFGaWVsZFR5cGVzIiwiaXNEYXRhRmllbGRBbHdheXNIaWRkZW4iLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIlZhbHVlIiwiJHRhcmdldCIsImdldFNlbWFudGljT2JqZWN0UGF0aCIsImNvbnZlcnRlckNvbnRleHQiLCJvYmplY3QiLCJwcm9wZXJ0eSIsIkNvbW1vbiIsIlNlbWFudGljT2JqZWN0IiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImlzUHJvcGVydHkiLCJfZ2V0TmF2aWdhdGlvblBhdGhQcmVmaXgiLCJwYXRoIiwiaW5kZXhPZiIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiX2NvbGxlY3RBZGRpdGlvbmFsUHJvcGVydGllc0ZvckFuYWx5dGljYWxUYWJsZSIsInRhcmdldCIsIm5hdmlnYXRpb25QYXRoUHJlZml4IiwidGFibGVUeXBlIiwicmVsYXRlZFByb3BlcnRpZXMiLCJoaWRkZW5Bbm5vdGF0aW9uIiwiX3R5cGUiLCJoaWRkZW5Bbm5vdGF0aW9uUHJvcGVydHlQYXRoIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXMiLCJpZ25vcmVTZWxmIiwicHJvcGVydGllcyIsImFkZFVuaXRJblRlbXBsYXRlIiwiX3B1c2hVbmlxdWUiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImtleXMiLCJfYXBwZW5kVGVtcGxhdGUiLCJleHBvcnRTZXR0aW5nc1RlbXBsYXRlIiwidGV4dEFubm90YXRpb24iLCJUZXh0IiwidmFsdWVJbmRleCIsInRhcmdldFZhbHVlIiwiY3VycmVuY3lPclVvTUluZGV4IiwidGltZXpvbmVPclVvTUluZGV4IiwiZXhwb3J0U2V0dGluZ3NXcmFwcGluZyIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGV4dEFubm90YXRpb25Qcm9wZXJ0eVBhdGgiLCJkaXNwbGF5TW9kZSIsImdldERpc3BsYXlNb2RlIiwiZGVzY3JpcHRpb25JbmRleCIsImN1cnJlbmN5T3JVb01Qcm9wZXJ0eSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSIsImN1cnJlbmN5T3JVbml0QW5ub3RhdGlvbiIsIk1lYXN1cmVzIiwiSVNPQ3VycmVuY3kiLCJVbml0IiwidGltZXpvbmVQcm9wZXJ0eSIsImdldEFzc29jaWF0ZWRUaW1lem9uZVByb3BlcnR5IiwidGltZXpvbmVBbm5vdGF0aW9uIiwiVGltZXpvbmUiLCJuYW1lIiwiZXhwb3J0VW5pdE5hbWUiLCJleHBvcnRUaW1lem9uZU5hbWUiLCJUYXJnZXQiLCJWaXN1YWxpemF0aW9uIiwiZGF0YVBvaW50UHJvcGVydHkiLCJUYXJnZXRWYWx1ZSIsIk1heGltdW1WYWx1ZSIsInRvU3RyaW5nIiwiRGF0YUZpZWxkRGVmYXVsdCIsIiRUeXBlIiwiZGF0YVBvaW50RGVmYXVsdFByb3BlcnR5IiwiY29udGFjdFByb3BlcnR5IiwiZm4iLCJjb250YWN0UHJvcGVydHlQYXRoIiwiZXhwb3J0VW5pdFN0cmluZyIsImV4cG9ydFRpbWV6b25lU3RyaW5nIiwibGVuZ3RoIiwiY29sbGVjdFJlbGF0ZWRQcm9wZXJ0aWVzUmVjdXJzaXZlbHkiLCJpc0VtYmVkZGVkIiwiRGF0YSIsImZvckVhY2giLCJpbm5lckRhdGFGaWVsZCIsImRhdGFGaWVsZENvbnRhY3QiLCJnZXREYXRhRmllbGREYXRhVHlwZSIsIm9EYXRhRmllbGQiLCJzRGF0YVR5cGUiLCJ0eXBlIiwic0RhdGFUeXBlRm9yRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiIsIiRQYXRoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJEYXRhRmllbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBDb250YWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdERhdGFGaWVsZCxcblx0RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0RGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3RUeXBlcyxcblx0RGF0YUZpZWxkRm9yQW5ub3RhdGlvbixcblx0RGF0YUZpZWxkVHlwZXMsXG5cdERhdGFQb2ludFxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgVGFibGVUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgeyBnZXREaXNwbGF5TW9kZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0Rpc3BsYXlNb2RlRm9ybWF0dGVyXCI7XG5pbXBvcnQge1xuXHRnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSxcblx0Z2V0QXNzb2NpYXRlZFRpbWV6b25lUHJvcGVydHksXG5cdGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHksXG5cdGlzUHJvcGVydHlcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uL0NvbnZlcnRlckNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgQ29tcGxleFByb3BlcnR5SW5mbyA9IHtcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgUHJvcGVydHk+O1xuXHRhZGRpdGlvbmFsUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgUHJvcGVydHk+O1xuXHRleHBvcnRTZXR0aW5nc1RlbXBsYXRlPzogc3RyaW5nO1xuXHRleHBvcnRTZXR0aW5nc1dyYXBwaW5nPzogYm9vbGVhbjtcblx0ZXhwb3J0VW5pdE5hbWU/OiBzdHJpbmc7XG5cdGV4cG9ydFVuaXRTdHJpbmc/OiBzdHJpbmc7XG5cdGV4cG9ydFRpbWV6b25lTmFtZT86IHN0cmluZztcblx0ZXhwb3J0VGltZXpvbmVTdHJpbmc/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIElkZW50aWZpZXMgaWYgdGhlIGdpdmVuIGRhdGFGaWVsZEFic3RyYWN0IHRoYXQgaXMgcGFzc2VkIGlzIGEgXCJEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdFwiLlxuICogRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgaGFzIGFuIGlubGluZSBhY3Rpb24gZGVmaW5lZC5cbiAqXG4gKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZCB0byBiZSBldmFsdWF0ZWRcbiAqIEByZXR1cm5zIFZhbGlkYXRlcyB0aGF0IGRhdGFGaWVsZCBpcyBhIERhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0VHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpOiBkYXRhRmllbGQgaXMgRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3RUeXBlcyB7XG5cdHJldHVybiAoZGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0VHlwZXMpLmhhc093blByb3BlcnR5KFwiQWN0aW9uXCIpO1xufVxuXG4vKipcbiAqIElkZW50aWZpZXMgaWYgdGhlIGdpdmVuIGRhdGFGaWVsZEFic3RyYWN0IHRoYXQgaXMgcGFzc2VkIGlzIGEgXCJEYXRhRmllbGRcIi5cbiAqIERhdGFGaWVsZCBoYXMgYSB2YWx1ZSBkZWZpbmVkLlxuICpcbiAqIEBwYXJhbSBkYXRhRmllbGQgRGF0YUZpZWxkIHRvIGJlIGV2YWx1YXRlZFxuICogQHJldHVybnMgVmFsaWRhdGUgdGhhdCBkYXRhRmllbGQgaXMgYSBEYXRhRmllbGRUeXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhRmllbGRUeXBlcyhkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpOiBkYXRhRmllbGQgaXMgRGF0YUZpZWxkVHlwZXMge1xuXHRyZXR1cm4gKGRhdGFGaWVsZCBhcyBEYXRhRmllbGRUeXBlcykuaGFzT3duUHJvcGVydHkoXCJWYWx1ZVwiKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gRGF0YUZpZWxkIGhhcyBhIHN0YXRpYyBoaWRkZW4gYW5ub3RhdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGF0YUZpZWxkIFRoZSBEYXRhRmllbGQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBEYXRhRmllbGQgb3IgcmVmZXJlbmNlZCBwcm9wZXJ0eSBoYXMgYSBzdGF0aWMgSGlkZGVuIGFubm90YXRpb24sIGZhbHNlIGVsc2VcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGFGaWVsZEFsd2F5c0hpZGRlbihkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpOiBib29sZWFuIHtcblx0cmV0dXJuIChcblx0XHRkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSB8fFxuXHRcdChpc0RhdGFGaWVsZFR5cGVzKGRhdGFGaWVsZCkgJiYgZGF0YUZpZWxkLlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiA9PT0gdHJ1ZSlcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbWFudGljT2JqZWN0UGF0aChjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCBvYmplY3Q6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGlmICh0eXBlb2Ygb2JqZWN0ID09PSBcIm9iamVjdFwiKSB7XG5cdFx0aWYgKGlzRGF0YUZpZWxkVHlwZXMob2JqZWN0KSAmJiBvYmplY3QuVmFsdWU/LiR0YXJnZXQpIHtcblx0XHRcdGNvbnN0IHByb3BlcnR5ID0gb2JqZWN0LlZhbHVlPy4kdGFyZ2V0O1xuXHRcdFx0aWYgKHByb3BlcnR5Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5TZW1hbnRpY09iamVjdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgocHJvcGVydHk/LmZ1bGx5UXVhbGlmaWVkTmFtZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpc1Byb3BlcnR5KG9iamVjdCkpIHtcblx0XHRcdGlmIChvYmplY3Q/LmFubm90YXRpb25zPy5Db21tb24/LlNlbWFudGljT2JqZWN0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cmV0dXJuIGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChvYmplY3Q/LmZ1bGx5UXVhbGlmaWVkTmFtZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbmF2aWdhdGlvbiBwYXRoIHByZWZpeCBmb3IgYSBwcm9wZXJ0eSBwYXRoLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwcm9wZXJ0eSBwYXRoIEZvciBlLmcuIC9FbnRpdHlUeXBlL05hdmlnYXRpb24vUHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBuYXZpZ2F0aW9uIHBhdGggcHJlZml4IEZvciBlLmcuIC9FbnRpdHlUeXBlL05hdmlnYXRpb24vXG4gKi9cbmZ1bmN0aW9uIF9nZXROYXZpZ2F0aW9uUGF0aFByZWZpeChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gcGF0aC5pbmRleE9mKFwiL1wiKSA+IC0xID8gcGF0aC5zdWJzdHJpbmcoMCwgcGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSA6IFwiXCI7XG59XG5cbi8qKlxuICogQ29sbGVjdCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSBBTFAgdGFibGUgdXNlLWNhc2UuXG4gKlxuICogRm9yIGUuZy4gSWYgVUkuSGlkZGVuIHBvaW50cyB0byBhIHByb3BlcnR5LCBpbmNsdWRlIHRoaXMgcHJvcGVydHkgaW4gdGhlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIG9mIENvbXBsZXhQcm9wZXJ0eUluZm8gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB0YXJnZXQgUHJvcGVydHkgb3IgRGF0YUZpZWxkIGJlaW5nIHByb2Nlc3NlZFxuICogQHBhcmFtIG5hdmlnYXRpb25QYXRoUHJlZml4IE5hdmlnYXRpb24gcGF0aCBwcmVmaXgsIGFwcGxpY2FibGUgaW4gY2FzZSBvZiBuYXZpZ2F0aW9uIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gdGFibGVUeXBlIFRhYmxlIHR5cGUuXG4gKiBAcGFyYW0gcmVsYXRlZFByb3BlcnRpZXMgVGhlIHJlbGF0ZWQgcHJvcGVydGllcyBpZGVudGlmaWVkIHNvIGZhci5cbiAqIEByZXR1cm5zIFRoZSByZWxhdGVkIHByb3BlcnRpZXMgaWRlbnRpZmllZC5cbiAqL1xuZnVuY3Rpb24gX2NvbGxlY3RBZGRpdGlvbmFsUHJvcGVydGllc0ZvckFuYWx5dGljYWxUYWJsZShcblx0dGFyZ2V0OiBQcmltaXRpdmVUeXBlLFxuXHRuYXZpZ2F0aW9uUGF0aFByZWZpeDogc3RyaW5nLFxuXHR0YWJsZVR5cGU6IFRhYmxlVHlwZSxcblx0cmVsYXRlZFByb3BlcnRpZXM6IENvbXBsZXhQcm9wZXJ0eUluZm9cbik6IENvbXBsZXhQcm9wZXJ0eUluZm8ge1xuXHRpZiAodGFibGVUeXBlID09PSBcIkFuYWx5dGljYWxUYWJsZVwiKSB7XG5cdFx0Y29uc3QgaGlkZGVuQW5ub3RhdGlvbiA9IHRhcmdldC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbjtcblx0XHRpZiAoaGlkZGVuQW5ub3RhdGlvbj8ucGF0aCAmJiBoaWRkZW5Bbm5vdGF0aW9uLiR0YXJnZXQ/Ll90eXBlID09PSBcIlByb3BlcnR5XCIpIHtcblx0XHRcdGNvbnN0IGhpZGRlbkFubm90YXRpb25Qcm9wZXJ0eVBhdGggPSBuYXZpZ2F0aW9uUGF0aFByZWZpeCArIGhpZGRlbkFubm90YXRpb24ucGF0aDtcblx0XHRcdC8vIFRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIGFkZGVkIHRvIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIG1hcCBmb3IgdGhlIEFMUCB0YWJsZSB1c2UtY2FzZS5cblx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmFkZGl0aW9uYWxQcm9wZXJ0aWVzW2hpZGRlbkFubm90YXRpb25Qcm9wZXJ0eVBhdGhdID0gaGlkZGVuQW5ub3RhdGlvbi4kdGFyZ2V0O1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcmVsYXRlZFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQ29sbGVjdCByZWxhdGVkIHByb3BlcnRpZXMgZnJvbSBhIHByb3BlcnR5J3MgYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHByb3BlcnR5IHBhdGhcbiAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gYmUgY29uc2lkZXJlZFxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0gaWdub3JlU2VsZiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIHNhbWUgcHJvcGVydHkgZnJvbSByZWxhdGVkIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gdGFibGVUeXBlIFRoZSB0YWJsZSB0eXBlLlxuICogQHBhcmFtIHJlbGF0ZWRQcm9wZXJ0aWVzIFRoZSByZWxhdGVkIHByb3BlcnRpZXMgaWRlbnRpZmllZCBzbyBmYXIuXG4gKiBAcGFyYW0gYWRkVW5pdEluVGVtcGxhdGUgVHJ1ZSBpZiB0aGUgdW5pdC9jdXJyZW5jeSBwcm9wZXJ0eSBuZWVkcyB0byBiZSBhZGRlZCBpbiB0aGUgZXhwb3J0IHRlbXBsYXRlXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRlZCBwcm9wZXJ0aWVzIGlkZW50aWZpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXMoXG5cdHBhdGg6IHN0cmluZyxcblx0cHJvcGVydHk6IFByaW1pdGl2ZVR5cGUsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGlnbm9yZVNlbGY6IGJvb2xlYW4sXG5cdHRhYmxlVHlwZTogVGFibGVUeXBlLFxuXHRyZWxhdGVkUHJvcGVydGllczogQ29tcGxleFByb3BlcnR5SW5mbyA9IHsgcHJvcGVydGllczoge30sIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7fSB9LFxuXHRhZGRVbml0SW5UZW1wbGF0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBDb21wbGV4UHJvcGVydHlJbmZvIHtcblx0LyoqXG5cdCAqIEhlbHBlciB0byBwdXNoIHVuaXF1ZSByZWxhdGVkIHByb3BlcnRpZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBrZXkgVGhlIHByb3BlcnR5IHBhdGhcblx0ICogQHBhcmFtIHZhbHVlIFRoZSBwcm9wZXJ0aWVzIG9iamVjdCBjb250YWluaW5nIHZhbHVlIHByb3BlcnR5LCBkZXNjcmlwdGlvbiBwcm9wZXJ0eS4uLlxuXHQgKiBAcmV0dXJucyBJbmRleCBhdCB3aGljaCB0aGUgcHJvcGVydHkgaXMgYXZhaWxhYmxlXG5cdCAqL1xuXHRmdW5jdGlvbiBfcHVzaFVuaXF1ZShrZXk6IHN0cmluZywgdmFsdWU6IFByb3BlcnR5KTogbnVtYmVyIHtcblx0XHRpZiAoIXJlbGF0ZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0cmVsYXRlZFByb3BlcnRpZXMucHJvcGVydGllc1trZXldID0gdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiBPYmplY3Qua2V5cyhyZWxhdGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzKS5pbmRleE9mKGtleSk7XG5cdH1cblxuXHQvKipcblx0ICogSGVscGVyIHRvIGFwcGVuZCB0aGUgZXhwb3J0IHNldHRpbmdzIHRlbXBsYXRlIHdpdGggYSBmb3JtYXR0ZWQgdGV4dC5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIEZvcm1hdHRlZCB0ZXh0XG5cdCAqL1xuXHRmdW5jdGlvbiBfYXBwZW5kVGVtcGxhdGUodmFsdWU6IHN0cmluZykge1xuXHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFNldHRpbmdzVGVtcGxhdGUgPSByZWxhdGVkUHJvcGVydGllcy5leHBvcnRTZXR0aW5nc1RlbXBsYXRlXG5cdFx0XHQ/IGAke3JlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFNldHRpbmdzVGVtcGxhdGV9JHt2YWx1ZX1gXG5cdFx0XHQ6IGAke3ZhbHVlfWA7XG5cdH1cblxuXHRpZiAocGF0aCAmJiBwcm9wZXJ0eSkge1xuXHRcdGNvbnN0IG5hdmlnYXRpb25QYXRoUHJlZml4ID0gX2dldE5hdmlnYXRpb25QYXRoUHJlZml4KHBhdGgpO1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIFRleHQgYW5ub3RhdGlvbi5cblx0XHRjb25zdCB0ZXh0QW5ub3RhdGlvbiA9IHByb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdFx0bGV0IHZhbHVlSW5kZXg6IG51bWJlcjtcblx0XHRsZXQgdGFyZ2V0VmFsdWU6IHN0cmluZztcblx0XHRsZXQgY3VycmVuY3lPclVvTUluZGV4OiBudW1iZXI7XG5cdFx0bGV0IHRpbWV6b25lT3JVb01JbmRleDogbnVtYmVyO1xuXG5cdFx0aWYgKHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFNldHRpbmdzVGVtcGxhdGUpIHtcblx0XHRcdC8vIEZpZWxkR3JvdXAgdXNlLWNhc2UuIE5lZWQgdG8gYWRkIGVhY2ggRmllbGQgaW4gbmV3IGxpbmUuXG5cdFx0XHRfYXBwZW5kVGVtcGxhdGUoXCJcXG5cIik7XG5cdFx0XHRyZWxhdGVkUHJvcGVydGllcy5leHBvcnRTZXR0aW5nc1dyYXBwaW5nID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAodGV4dEFubm90YXRpb24/LnBhdGggJiYgdGV4dEFubm90YXRpb24/LiR0YXJnZXQpIHtcblx0XHRcdC8vIENoZWNrIGZvciBUZXh0IEFycmFuZ2VtZW50LlxuXHRcdFx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRcdFx0Y29uc3QgdGV4dEFubm90YXRpb25Qcm9wZXJ0eVBhdGggPSBuYXZpZ2F0aW9uUGF0aFByZWZpeCArIHRleHRBbm5vdGF0aW9uLnBhdGg7XG5cdFx0XHRjb25zdCBkaXNwbGF5TW9kZSA9IGdldERpc3BsYXlNb2RlKHByb3BlcnR5LCBkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0XHRcdGxldCBkZXNjcmlwdGlvbkluZGV4OiBudW1iZXI7XG5cdFx0XHRzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG5cdFx0XHRcdGNhc2UgXCJWYWx1ZVwiOlxuXHRcdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX1gKTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0XHRkZXNjcmlwdGlvbkluZGV4ID0gX3B1c2hVbmlxdWUodGV4dEFubm90YXRpb25Qcm9wZXJ0eVBhdGgsIHRleHRBbm5vdGF0aW9uLiR0YXJnZXQpO1xuXHRcdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7ZGVzY3JpcHRpb25JbmRleH19YCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcIlZhbHVlRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0XHRcdGRlc2NyaXB0aW9uSW5kZXggPSBfcHVzaFVuaXF1ZSh0ZXh0QW5ub3RhdGlvblByb3BlcnR5UGF0aCwgdGV4dEFubm90YXRpb24uJHRhcmdldCk7XG5cdFx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX0gKHske2Rlc2NyaXB0aW9uSW5kZXh9fSlgKTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25WYWx1ZVwiOlxuXHRcdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdFx0ZGVzY3JpcHRpb25JbmRleCA9IF9wdXNoVW5pcXVlKHRleHRBbm5vdGF0aW9uUHJvcGVydHlQYXRoLCB0ZXh0QW5ub3RhdGlvbi4kdGFyZ2V0KTtcblx0XHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske2Rlc2NyaXB0aW9uSW5kZXh9fSAoeyR7dmFsdWVJbmRleH19KWApO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHQvLyBubyBkZWZhdWx0XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIENoZWNrIGZvciBmaWVsZCBjb250YWluaW5nIEN1cnJlbmN5IE9yIFVuaXQgUHJvcGVydGllcyBvciBUaW1lem9uZVxuXHRcdFx0Y29uc3QgY3VycmVuY3lPclVvTVByb3BlcnR5ID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkocHJvcGVydHkpIHx8IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkocHJvcGVydHkpO1xuXHRcdFx0Y29uc3QgY3VycmVuY3lPclVuaXRBbm5vdGF0aW9uID0gcHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgfHwgcHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdDtcblx0XHRcdGNvbnN0IHRpbWV6b25lUHJvcGVydHkgPSBnZXRBc3NvY2lhdGVkVGltZXpvbmVQcm9wZXJ0eShwcm9wZXJ0eSk7XG5cdFx0XHRjb25zdCB0aW1lem9uZUFubm90YXRpb24gPSBwcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGltZXpvbmU7XG5cblx0XHRcdGlmIChjdXJyZW5jeU9yVW9NUHJvcGVydHkgJiYgY3VycmVuY3lPclVuaXRBbm5vdGF0aW9uPy4kdGFyZ2V0KSB7XG5cdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdGN1cnJlbmN5T3JVb01JbmRleCA9IF9wdXNoVW5pcXVlKGN1cnJlbmN5T3JVb01Qcm9wZXJ0eS5uYW1lLCBjdXJyZW5jeU9yVW5pdEFubm90YXRpb24uJHRhcmdldCk7XG5cdFx0XHRcdGlmIChhZGRVbml0SW5UZW1wbGF0ZSkge1xuXHRcdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7dmFsdWVJbmRleH19ICB7JHtjdXJyZW5jeU9yVW9NSW5kZXh9fWApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFVuaXROYW1lID0gY3VycmVuY3lPclVvTVByb3BlcnR5Lm5hbWU7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAodGltZXpvbmVQcm9wZXJ0eSAmJiB0aW1lem9uZUFubm90YXRpb24/LiR0YXJnZXQpIHtcblx0XHRcdFx0dmFsdWVJbmRleCA9IF9wdXNoVW5pcXVlKHBhdGgsIHByb3BlcnR5KTtcblx0XHRcdFx0dGltZXpvbmVPclVvTUluZGV4ID0gX3B1c2hVbmlxdWUodGltZXpvbmVQcm9wZXJ0eS5uYW1lLCB0aW1lem9uZUFubm90YXRpb24uJHRhcmdldCk7XG5cdFx0XHRcdGlmIChhZGRVbml0SW5UZW1wbGF0ZSkge1xuXHRcdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7dmFsdWVJbmRleH19ICB7JHt0aW1lem9uZU9yVW9NSW5kZXh9fWApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFRpbWV6b25lTmFtZSA9IHRpbWV6b25lUHJvcGVydHkubmFtZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eS5UYXJnZXQ/LiR0YXJnZXQ/LlZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0Y29uc3QgZGF0YVBvaW50UHJvcGVydHk6IFByaW1pdGl2ZVR5cGUgPSBwcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5WYWx1ZS4kdGFyZ2V0O1xuXHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgZGF0YVBvaW50UHJvcGVydHkpO1xuXHRcdFx0XHQvLyBOZXcgZmFrZSBwcm9wZXJ0eSBjcmVhdGVkIGZvciB0aGUgUmF0aW5nL1Byb2dyZXNzIFRhcmdldCBWYWx1ZS4gSXQnbGwgYmUgdXNlZCBmb3IgdGhlIGV4cG9ydCBvbiBzcGxpdCBtb2RlLlxuXHRcdFx0XHRfcHVzaFVuaXF1ZShwcm9wZXJ0eS5UYXJnZXQudmFsdWUsIHByb3BlcnR5LlRhcmdldC4kdGFyZ2V0KTtcblx0XHRcdFx0dGFyZ2V0VmFsdWUgPSAocHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuVGFyZ2V0VmFsdWUgfHwgcHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuTWF4aW11bVZhbHVlKS50b1N0cmluZygpO1xuXHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fS8ke3RhcmdldFZhbHVlfWApO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkRhdGFGaWVsZERlZmF1bHQ/LlRhcmdldD8uJHRhcmdldD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGUpIHtcblx0XHRcdFx0Ly8gRGF0YVBvaW50IHVzZS1jYXNlIHVzaW5nIERhdGFGaWVsZERlZmF1bHQuXG5cdFx0XHRcdGNvbnN0IGRhdGFQb2ludERlZmF1bHRQcm9wZXJ0eTogUHJpbWl0aXZlVHlwZSA9IHByb3BlcnR5LmFubm90YXRpb25zLlVJLkRhdGFGaWVsZERlZmF1bHQ7XG5cdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdC8vIE5ldyBmYWtlIHByb3BlcnR5IGNyZWF0ZWQgZm9yIHRoZSBSYXRpbmcvUHJvZ3Jlc3MgVGFyZ2V0IFZhbHVlLiBJdCdsbCBiZSB1c2VkIGZvciB0aGUgZXhwb3J0IG9uIHNwbGl0IG1vZGUuXG5cdFx0XHRcdF9wdXNoVW5pcXVlKGRhdGFQb2ludERlZmF1bHRQcm9wZXJ0eS5UYXJnZXQudmFsdWUsIHByb3BlcnR5KTtcblx0XHRcdFx0dGFyZ2V0VmFsdWUgPSAoXG5cdFx0XHRcdFx0ZGF0YVBvaW50RGVmYXVsdFByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LlRhcmdldFZhbHVlIHx8IGRhdGFQb2ludERlZmF1bHRQcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5UYXJnZXRWYWx1ZS5NYXhpbXVtVmFsdWVcblx0XHRcdFx0KS50b1N0cmluZygpO1xuXHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fS8ke3RhcmdldFZhbHVlfWApO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eS4kVHlwZSA9PT0gQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5Db250YWN0VHlwZSkge1xuXHRcdFx0XHRjb25zdCBjb250YWN0UHJvcGVydHkgPSBwcm9wZXJ0eS5mbj8uJHRhcmdldDtcblx0XHRcdFx0Y29uc3QgY29udGFjdFByb3BlcnR5UGF0aCA9IHByb3BlcnR5LmZuPy5wYXRoO1xuXHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUoXG5cdFx0XHRcdFx0bmF2aWdhdGlvblBhdGhQcmVmaXggPyBuYXZpZ2F0aW9uUGF0aFByZWZpeCArIGNvbnRhY3RQcm9wZXJ0eVBhdGggOiBjb250YWN0UHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdGNvbnRhY3RQcm9wZXJ0eVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fWApO1xuXHRcdFx0fSBlbHNlIGlmICghaWdub3JlU2VsZikge1xuXHRcdFx0XHQvLyBDb2xsZWN0IHVuZGVybHlpbmcgcHJvcGVydHlcblx0XHRcdFx0dmFsdWVJbmRleCA9IF9wdXNoVW5pcXVlKHBhdGgsIHByb3BlcnR5KTtcblx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX1gKTtcblx0XHRcdFx0aWYgKGN1cnJlbmN5T3JVbml0QW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFVuaXRTdHJpbmcgPSBgJHtjdXJyZW5jeU9yVW5pdEFubm90YXRpb259YDsgLy8gSGFyZC1jb2RlZCBjdXJyZW5jeS91bml0XG5cdFx0XHRcdH0gZWxzZSBpZiAodGltZXpvbmVBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMuZXhwb3J0VGltZXpvbmVTdHJpbmcgPSBgJHt0aW1lem9uZUFubm90YXRpb259YDsgLy8gSGFyZC1jb2RlZCB0aW1lem9uZVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmVsYXRlZFByb3BlcnRpZXMgPSBfY29sbGVjdEFkZGl0aW9uYWxQcm9wZXJ0aWVzRm9yQW5hbHl0aWNhbFRhYmxlKHByb3BlcnR5LCBuYXZpZ2F0aW9uUGF0aFByZWZpeCwgdGFibGVUeXBlLCByZWxhdGVkUHJvcGVydGllcyk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKHJlbGF0ZWRQcm9wZXJ0aWVzLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKS5sZW5ndGggPiAwICYmIE9iamVjdC5rZXlzKHJlbGF0ZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMpLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gQ29sbGVjdCB1bmRlcmx5aW5nIHByb3BlcnR5IGlmIG5vdCBjb2xsZWN0ZWQgYWxyZWFkeS5cblx0XHRcdC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgYWRkaXRpb25hbFByb3BlcnRpZXMgYXJlIG1hZGUgYXZhaWxhYmxlIG9ubHkgdG8gY29tcGxleCBwcm9wZXJ0eSBpbmZvcy5cblx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fWApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiByZWxhdGVkUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBDb2xsZWN0IHByb3BlcnRpZXMgY29uc3VtZWQgYnkgYSBEYXRhRmllbGQuXG4gKiBUaGlzIGlzIGZvciBwb3B1bGF0aW5nIHRoZSBDb21wbGV4UHJvcGVydHlJbmZvcyBvZiB0aGUgdGFibGUgZGVsZWdhdGUuXG4gKlxuICogQHBhcmFtIGRhdGFGaWVsZCBUaGUgRGF0YUZpZWxkIGZvciB3aGljaCB0aGUgcHJvcGVydGllcyBuZWVkIHRvIGJlIGlkZW50aWZpZWQuXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHQuXG4gKiBAcGFyYW0gdGFibGVUeXBlIFRoZSB0YWJsZSB0eXBlLlxuICogQHBhcmFtIHJlbGF0ZWRQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIGlkZW50aWZpZWQgc28gZmFyLlxuICogQHBhcmFtIGlzRW1iZWRkZWQgVHJ1ZSBpZiB0aGUgRGF0YUZpZWxkIGlzIGVtYmVkZGVkIGluIGFub3RoZXIgYW5ub3RhdGlvbiAoZS5nLiBGaWVsZEdyb3VwKS5cbiAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0aWVzIHJlbGF0ZWQgdG8gdGhlIERhdGFGaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RSZWxhdGVkUHJvcGVydGllc1JlY3Vyc2l2ZWx5KFxuXHRkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHRhYmxlVHlwZTogVGFibGVUeXBlLFxuXHRyZWxhdGVkUHJvcGVydGllczogQ29tcGxleFByb3BlcnR5SW5mbyA9IHsgcHJvcGVydGllczoge30sIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7fSB9LFxuXHRpc0VtYmVkZGVkOiBib29sZWFuID0gZmFsc2Vcbik6IENvbXBsZXhQcm9wZXJ0eUluZm8ge1xuXHRzd2l0Y2ggKGRhdGFGaWVsZD8uJFR5cGUpIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmw6XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGg6XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoSW50ZW50QmFzZWROYXZpZ2F0aW9uOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aEFjdGlvbjpcblx0XHRcdGNvbnN0IHByb3BlcnR5ID0gZGF0YUZpZWxkLlZhbHVlO1xuXHRcdFx0cmVsYXRlZFByb3BlcnRpZXMgPSBjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXMoXG5cdFx0XHRcdHByb3BlcnR5LnBhdGgsXG5cdFx0XHRcdHByb3BlcnR5LiR0YXJnZXQsXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHR0YWJsZVR5cGUsXG5cdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLFxuXHRcdFx0XHRpc0VtYmVkZGVkXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgbmF2aWdhdGlvblBhdGhQcmVmaXggPSBfZ2V0TmF2aWdhdGlvblBhdGhQcmVmaXgocHJvcGVydHkucGF0aCk7XG5cdFx0XHRyZWxhdGVkUHJvcGVydGllcyA9IF9jb2xsZWN0QWRkaXRpb25hbFByb3BlcnRpZXNGb3JBbmFseXRpY2FsVGFibGUoXG5cdFx0XHRcdGRhdGFGaWVsZCxcblx0XHRcdFx0bmF2aWdhdGlvblBhdGhQcmVmaXgsXG5cdFx0XHRcdHRhYmxlVHlwZSxcblx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXNcblx0XHRcdCk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uOlxuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFubm90YXRpb246XG5cdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRmllbGRHcm91cFR5cGU6XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLlRhcmdldC4kdGFyZ2V0LkRhdGE/LmZvckVhY2goKGlubmVyRGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSA9PiB7XG5cdFx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyA9IGNvbGxlY3RSZWxhdGVkUHJvcGVydGllc1JlY3Vyc2l2ZWx5KFxuXHRcdFx0XHRcdFx0XHRpbm5lckRhdGFGaWVsZCxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0dGFibGVUeXBlLFxuXHRcdFx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGU6XG5cdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMgPSBjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXMoXG5cdFx0XHRcdFx0XHRkYXRhRmllbGQuVGFyZ2V0LiR0YXJnZXQuVmFsdWUucGF0aCxcblx0XHRcdFx0XHRcdGRhdGFGaWVsZCxcblx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0XHRcdHRhYmxlVHlwZSxcblx0XHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLFxuXHRcdFx0XHRcdFx0aXNFbWJlZGRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblR5cGVzLkNvbnRhY3RUeXBlOlxuXHRcdFx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbnRhY3QgPSBkYXRhRmllbGQuVGFyZ2V0LiR0YXJnZXQgYXMgQ29udGFjdDtcblx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyA9IGNvbGxlY3RSZWxhdGVkUHJvcGVydGllcyhcblx0XHRcdFx0XHRcdGRhdGFGaWVsZC5UYXJnZXQudmFsdWUsXG5cdFx0XHRcdFx0XHRkYXRhRmllbGRDb250YWN0LFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRcdFx0dGFibGVUeXBlLFxuXHRcdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMsXG5cdFx0XHRcdFx0XHRpc0VtYmVkZGVkXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0cmV0dXJuIHJlbGF0ZWRQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUZpZWxkRGF0YVR5cGUgPSBmdW5jdGlvbiAob0RhdGFGaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB8IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0bGV0IHNEYXRhVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykuJFR5cGU7XG5cdHN3aXRjaCAoc0RhdGFUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb246XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb246XG5cdFx0XHRzRGF0YVR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhJbnRlbnRCYXNlZE5hdmlnYXRpb246XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoQWN0aW9uOlxuXHRcdFx0c0RhdGFUeXBlID0gKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkKT8uVmFsdWU/LiR0YXJnZXQ/LnR5cGU7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjpcblx0XHRkZWZhdWx0OlxuXHRcdFx0Y29uc3Qgc0RhdGFUeXBlRm9yRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiA9IChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldC4kVHlwZTtcblx0XHRcdGlmIChzRGF0YVR5cGVGb3JEYXRhRmllbGRGb3JBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdGlmICgob0RhdGFGaWVsZCBhcyBEYXRhRmllbGRGb3JBbm5vdGF0aW9uKS5UYXJnZXQ/LiR0YXJnZXQuJFR5cGUgPT09IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMuQ29udGFjdFR5cGUpIHtcblx0XHRcdFx0XHRzRGF0YVR5cGUgPSAoKChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldCBhcyBDb250YWN0KT8uZm4gYXMgYW55KS4kdGFyZ2V0Py50eXBlO1xuXHRcdFx0XHR9IGVsc2UgaWYgKChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YVBvaW50VHlwZSkge1xuXHRcdFx0XHRcdHNEYXRhVHlwZSA9XG5cdFx0XHRcdFx0XHQoKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikuVGFyZ2V0Py4kdGFyZ2V0IGFzIERhdGFQb2ludCk/LlZhbHVlPy4kUGF0aD8uJFR5cGUgfHxcblx0XHRcdFx0XHRcdCgob0RhdGFGaWVsZCBhcyBEYXRhRmllbGRGb3JBbm5vdGF0aW9uKS5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50KT8uVmFsdWU/LiR0YXJnZXQudHlwZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBlLmcuIEZpZWxkR3JvdXAgb3IgQ2hhcnRcblx0XHRcdFx0XHQvLyBGaWVsZEdyb3VwIFByb3BlcnRpZXMgaGF2ZSBubyB0eXBlLCBzbyB3ZSBkZWZpbmUgaXQgYXMgYSBib29sZWFuIHR5cGUgdG8gcHJldmVudCBleGNlcHRpb25zIGR1cmluZyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIHdpZHRoXG5cdFx0XHRcdFx0c0RhdGFUeXBlID1cblx0XHRcdFx0XHRcdChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydERlZmluaXRpb25UeXBlXCJcblx0XHRcdFx0XHRcdFx0PyB1bmRlZmluZWRcblx0XHRcdFx0XHRcdFx0OiBcIkVkbS5Cb29sZWFuXCI7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNEYXRhVHlwZSA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0cmV0dXJuIHNEYXRhVHlwZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0VBaUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sU0FBU0EsNEJBQVQsQ0FBc0NDLFNBQXRDLEVBQXVIO0lBQzdILE9BQVFBLFNBQUQsQ0FBK0NDLGNBQS9DLENBQThELFFBQTlELENBQVA7RUFDQTtFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztFQUNPLFNBQVNDLGdCQUFULENBQTBCRixTQUExQixFQUEwRjtJQUNoRyxPQUFRQSxTQUFELENBQThCQyxjQUE5QixDQUE2QyxPQUE3QyxDQUFQO0VBQ0E7RUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7RUFDTyxTQUFTRSx1QkFBVCxDQUFpQ0gsU0FBakMsRUFBNkU7SUFBQTs7SUFDbkYsT0FDQywwQkFBQUEsU0FBUyxDQUFDSSxXQUFWLDBHQUF1QkMsRUFBdkIsNEdBQTJCQyxNQUEzQixrRkFBbUNDLE9BQW5DLFFBQWlELElBQWpELElBQ0NMLGdCQUFnQixDQUFDRixTQUFELENBQWhCLElBQStCLHFCQUFBQSxTQUFTLENBQUNRLEtBQVYsK0ZBQWlCQyxPQUFqQiwwR0FBMEJMLFdBQTFCLDRHQUF1Q0MsRUFBdkMsa0ZBQTJDQyxNQUEzQyxNQUFzRCxJQUZ2RjtFQUlBOzs7O0VBRU0sU0FBU0kscUJBQVQsQ0FBK0JDLGdCQUEvQixFQUFtRUMsTUFBbkUsRUFBb0c7SUFDMUcsSUFBSSxPQUFPQSxNQUFQLEtBQWtCLFFBQXRCLEVBQWdDO01BQUE7O01BQy9CLElBQUlWLGdCQUFnQixDQUFDVSxNQUFELENBQWhCLHFCQUE0QkEsTUFBTSxDQUFDSixLQUFuQywwQ0FBNEIsY0FBY0MsT0FBOUMsRUFBdUQ7UUFBQTs7UUFDdEQsSUFBTUksUUFBUSxxQkFBR0QsTUFBTSxDQUFDSixLQUFWLG1EQUFHLGVBQWNDLE9B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
|
|
441
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0RhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0IiwiZGF0YUZpZWxkIiwiaGFzT3duUHJvcGVydHkiLCJpc0RhdGFGaWVsZFR5cGVzIiwiaXNEYXRhRmllbGRBbHdheXNIaWRkZW4iLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIlZhbHVlIiwiJHRhcmdldCIsImdldFNlbWFudGljT2JqZWN0UGF0aCIsImNvbnZlcnRlckNvbnRleHQiLCJvYmplY3QiLCJwcm9wZXJ0eSIsIkNvbW1vbiIsIlNlbWFudGljT2JqZWN0IiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImlzUHJvcGVydHkiLCJfZ2V0TmF2aWdhdGlvblBhdGhQcmVmaXgiLCJwYXRoIiwiaW5kZXhPZiIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiX2NvbGxlY3RBZGRpdGlvbmFsUHJvcGVydGllc0ZvckFuYWx5dGljYWxUYWJsZSIsInRhcmdldCIsIm5hdmlnYXRpb25QYXRoUHJlZml4IiwidGFibGVUeXBlIiwicmVsYXRlZFByb3BlcnRpZXMiLCJoaWRkZW5Bbm5vdGF0aW9uIiwiX3R5cGUiLCJoaWRkZW5Bbm5vdGF0aW9uUHJvcGVydHlQYXRoIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXMiLCJpZ25vcmVTZWxmIiwicHJvcGVydGllcyIsInRleHRPbmx5UHJvcGVydGllc0Zyb21UZXh0QW5ub3RhdGlvbiIsImFkZFVuaXRJblRlbXBsYXRlIiwiX3B1c2hVbmlxdWUiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImtleXMiLCJfYXBwZW5kVGVtcGxhdGUiLCJleHBvcnRTZXR0aW5nc1RlbXBsYXRlIiwidGV4dEFubm90YXRpb24iLCJUZXh0IiwidmFsdWVJbmRleCIsInRhcmdldFZhbHVlIiwiY3VycmVuY3lPclVvTUluZGV4IiwidGltZXpvbmVPclVvTUluZGV4IiwiZXhwb3J0U2V0dGluZ3NXcmFwcGluZyIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGV4dEFubm90YXRpb25Qcm9wZXJ0eVBhdGgiLCJkaXNwbGF5TW9kZSIsImdldERpc3BsYXlNb2RlIiwiZGVzY3JpcHRpb25JbmRleCIsInB1c2giLCJjdXJyZW5jeU9yVW9NUHJvcGVydHkiLCJnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJjdXJyZW5jeU9yVW5pdEFubm90YXRpb24iLCJNZWFzdXJlcyIsIklTT0N1cnJlbmN5IiwiVW5pdCIsInRpbWV6b25lUHJvcGVydHkiLCJnZXRBc3NvY2lhdGVkVGltZXpvbmVQcm9wZXJ0eSIsInRpbWV6b25lQW5ub3RhdGlvbiIsIlRpbWV6b25lIiwibmFtZSIsImV4cG9ydFVuaXROYW1lIiwiZXhwb3J0VGltZXpvbmVOYW1lIiwiVGFyZ2V0IiwiVmlzdWFsaXphdGlvbiIsImRhdGFQb2ludFByb3BlcnR5IiwiVGFyZ2V0VmFsdWUiLCJNYXhpbXVtVmFsdWUiLCJ0b1N0cmluZyIsIkRhdGFGaWVsZERlZmF1bHQiLCIkVHlwZSIsImRhdGFQb2ludERlZmF1bHRQcm9wZXJ0eSIsImNvbnRhY3RQcm9wZXJ0eSIsImZuIiwiY29udGFjdFByb3BlcnR5UGF0aCIsImV4cG9ydFVuaXRTdHJpbmciLCJleHBvcnRUaW1lem9uZVN0cmluZyIsImxlbmd0aCIsImNvbGxlY3RSZWxhdGVkUHJvcGVydGllc1JlY3Vyc2l2ZWx5IiwiaXNFbWJlZGRlZCIsIkRhdGEiLCJmb3JFYWNoIiwiaW5uZXJEYXRhRmllbGQiLCJkYXRhRmllbGRDb250YWN0IiwiZ2V0RGF0YUZpZWxkRGF0YVR5cGUiLCJvRGF0YUZpZWxkIiwic0RhdGFUeXBlIiwidHlwZSIsInNEYXRhVHlwZUZvckRhdGFGaWVsZEZvckFubm90YXRpb24iLCIkUGF0aCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YUZpZWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJpbWl0aXZlVHlwZSwgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQ29udGFjdCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbXVuaWNhdGlvblwiO1xuaW1wb3J0IHsgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbXVuaWNhdGlvblwiO1xuaW1wb3J0IHR5cGUge1xuXHREYXRhRmllbGQsXG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdERhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0VHlwZXMsXG5cdERhdGFGaWVsZEZvckFubm90YXRpb24sXG5cdERhdGFGaWVsZFR5cGVzLFxuXHREYXRhUG9pbnRcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IFRhYmxlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHsgZ2V0RGlzcGxheU1vZGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHtcblx0Z2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHksXG5cdGdldEFzc29jaWF0ZWRUaW1lem9uZVByb3BlcnR5LFxuXHRnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5LFxuXHRpc1Byb3BlcnR5XG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIENvbXBsZXhQcm9wZXJ0eUluZm8gPSB7XG5cdHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIFByb3BlcnR5Pjtcblx0YWRkaXRpb25hbFByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIFByb3BlcnR5Pjtcblx0ZXhwb3J0U2V0dGluZ3NUZW1wbGF0ZT86IHN0cmluZztcblx0ZXhwb3J0U2V0dGluZ3NXcmFwcGluZz86IGJvb2xlYW47XG5cdGV4cG9ydFVuaXROYW1lPzogc3RyaW5nO1xuXHRleHBvcnRVbml0U3RyaW5nPzogc3RyaW5nO1xuXHRleHBvcnRUaW1lem9uZU5hbWU/OiBzdHJpbmc7XG5cdGV4cG9ydFRpbWV6b25lU3RyaW5nPzogc3RyaW5nO1xuXHR0ZXh0T25seVByb3BlcnRpZXNGcm9tVGV4dEFubm90YXRpb246IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBJZGVudGlmaWVzIGlmIHRoZSBnaXZlbiBkYXRhRmllbGRBYnN0cmFjdCB0aGF0IGlzIHBhc3NlZCBpcyBhIFwiRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3RcIi5cbiAqIERhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0IGhhcyBhbiBpbmxpbmUgYWN0aW9uIGRlZmluZWQuXG4gKlxuICogQHBhcmFtIGRhdGFGaWVsZCBEYXRhRmllbGQgdG8gYmUgZXZhbHVhdGVkXG4gKiBAcmV0dXJucyBWYWxpZGF0ZXMgdGhhdCBkYXRhRmllbGQgaXMgYSBEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QoZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKTogZGF0YUZpZWxkIGlzIERhdGFGaWVsZEZvckFjdGlvbkFic3RyYWN0VHlwZXMge1xuXHRyZXR1cm4gKGRhdGFGaWVsZCBhcyBEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdFR5cGVzKS5oYXNPd25Qcm9wZXJ0eShcIkFjdGlvblwiKTtcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGlmIHRoZSBnaXZlbiBkYXRhRmllbGRBYnN0cmFjdCB0aGF0IGlzIHBhc3NlZCBpcyBhIFwiRGF0YUZpZWxkXCIuXG4gKiBEYXRhRmllbGQgaGFzIGEgdmFsdWUgZGVmaW5lZC5cbiAqXG4gKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZCB0byBiZSBldmFsdWF0ZWRcbiAqIEByZXR1cm5zIFZhbGlkYXRlIHRoYXQgZGF0YUZpZWxkIGlzIGEgRGF0YUZpZWxkVHlwZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YUZpZWxkVHlwZXMoZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKTogZGF0YUZpZWxkIGlzIERhdGFGaWVsZFR5cGVzIHtcblx0cmV0dXJuIChkYXRhRmllbGQgYXMgRGF0YUZpZWxkVHlwZXMpLmhhc093blByb3BlcnR5KFwiVmFsdWVcIik7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIERhdGFGaWVsZCBoYXMgYSBzdGF0aWMgaGlkZGVuIGFubm90YXRpb24uXG4gKlxuICogQHBhcmFtIGRhdGFGaWVsZCBUaGUgRGF0YUZpZWxkIHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgRGF0YUZpZWxkIG9yIHJlZmVyZW5jZWQgcHJvcGVydHkgaGFzIGEgc3RhdGljIEhpZGRlbiBhbm5vdGF0aW9uLCBmYWxzZSBlbHNlXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhRmllbGRBbHdheXNIaWRkZW4oZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKTogYm9vbGVhbiB7XG5cdHJldHVybiAoXG5cdFx0ZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUgfHxcblx0XHQoaXNEYXRhRmllbGRUeXBlcyhkYXRhRmllbGQpICYmIGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4gPT09IHRydWUpXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgb2JqZWN0OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAodHlwZW9mIG9iamVjdCA9PT0gXCJvYmplY3RcIikge1xuXHRcdGlmIChpc0RhdGFGaWVsZFR5cGVzKG9iamVjdCkgJiYgb2JqZWN0LlZhbHVlPy4kdGFyZ2V0KSB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eSA9IG9iamVjdC5WYWx1ZT8uJHRhcmdldDtcblx0XHRcdGlmIChwcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNPYmplY3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKHByb3BlcnR5Py5mdWxseVF1YWxpZmllZE5hbWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaXNQcm9wZXJ0eShvYmplY3QpKSB7XG5cdFx0XHRpZiAob2JqZWN0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5TZW1hbnRpY09iamVjdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgob2JqZWN0Py5mdWxseVF1YWxpZmllZE5hbWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG5hdmlnYXRpb24gcGF0aCBwcmVmaXggZm9yIGEgcHJvcGVydHkgcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgcHJvcGVydHkgcGF0aCBGb3IgZS5nLiAvRW50aXR5VHlwZS9OYXZpZ2F0aW9uL1Byb3BlcnR5XG4gKiBAcmV0dXJucyBUaGUgbmF2aWdhdGlvbiBwYXRoIHByZWZpeCBGb3IgZS5nLiAvRW50aXR5VHlwZS9OYXZpZ2F0aW9uL1xuICovXG5mdW5jdGlvbiBfZ2V0TmF2aWdhdGlvblBhdGhQcmVmaXgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHBhdGguaW5kZXhPZihcIi9cIikgPiAtMSA/IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSkgOiBcIlwiO1xufVxuXG4vKipcbiAqIENvbGxlY3QgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciB0aGUgQUxQIHRhYmxlIHVzZS1jYXNlLlxuICpcbiAqIEZvciBlLmcuIElmIFVJLkhpZGRlbiBwb2ludHMgdG8gYSBwcm9wZXJ0eSwgaW5jbHVkZSB0aGlzIHByb3BlcnR5IGluIHRoZSBhZGRpdGlvbmFsUHJvcGVydGllcyBvZiBDb21wbGV4UHJvcGVydHlJbmZvIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IFByb3BlcnR5IG9yIERhdGFGaWVsZCBiZWluZyBwcm9jZXNzZWRcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uUGF0aFByZWZpeCBOYXZpZ2F0aW9uIHBhdGggcHJlZml4LCBhcHBsaWNhYmxlIGluIGNhc2Ugb2YgbmF2aWdhdGlvbiBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIHRhYmxlVHlwZSBUYWJsZSB0eXBlLlxuICogQHBhcmFtIHJlbGF0ZWRQcm9wZXJ0aWVzIFRoZSByZWxhdGVkIHByb3BlcnRpZXMgaWRlbnRpZmllZCBzbyBmYXIuXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRlZCBwcm9wZXJ0aWVzIGlkZW50aWZpZWQuXG4gKi9cbmZ1bmN0aW9uIF9jb2xsZWN0QWRkaXRpb25hbFByb3BlcnRpZXNGb3JBbmFseXRpY2FsVGFibGUoXG5cdHRhcmdldDogUHJpbWl0aXZlVHlwZSxcblx0bmF2aWdhdGlvblBhdGhQcmVmaXg6IHN0cmluZyxcblx0dGFibGVUeXBlOiBUYWJsZVR5cGUsXG5cdHJlbGF0ZWRQcm9wZXJ0aWVzOiBDb21wbGV4UHJvcGVydHlJbmZvXG4pOiBDb21wbGV4UHJvcGVydHlJbmZvIHtcblx0aWYgKHRhYmxlVHlwZSA9PT0gXCJBbmFseXRpY2FsVGFibGVcIikge1xuXHRcdGNvbnN0IGhpZGRlbkFubm90YXRpb24gPSB0YXJnZXQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW47XG5cdFx0aWYgKGhpZGRlbkFubm90YXRpb24/LnBhdGggJiYgaGlkZGVuQW5ub3RhdGlvbi4kdGFyZ2V0Py5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiKSB7XG5cdFx0XHRjb25zdCBoaWRkZW5Bbm5vdGF0aW9uUHJvcGVydHlQYXRoID0gbmF2aWdhdGlvblBhdGhQcmVmaXggKyBoaWRkZW5Bbm5vdGF0aW9uLnBhdGg7XG5cdFx0XHQvLyBUaGlzIHByb3BlcnR5IHNob3VsZCBiZSBhZGRlZCB0byBhZGRpdGlvbmFsUHJvcGVydGllcyBtYXAgZm9yIHRoZSBBTFAgdGFibGUgdXNlLWNhc2UuXG5cdFx0XHRyZWxhdGVkUHJvcGVydGllcy5hZGRpdGlvbmFsUHJvcGVydGllc1toaWRkZW5Bbm5vdGF0aW9uUHJvcGVydHlQYXRoXSA9IGhpZGRlbkFubm90YXRpb24uJHRhcmdldDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlbGF0ZWRQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIENvbGxlY3QgcmVsYXRlZCBwcm9wZXJ0aWVzIGZyb20gYSBwcm9wZXJ0eSdzIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwcm9wZXJ0eSBwYXRoXG4gKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGJlIGNvbnNpZGVyZWRcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIGlnbm9yZVNlbGYgV2hldGhlciB0byBleGNsdWRlIHRoZSBzYW1lIHByb3BlcnR5IGZyb20gcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIHRhYmxlVHlwZSBUaGUgdGFibGUgdHlwZS5cbiAqIEBwYXJhbSByZWxhdGVkUHJvcGVydGllcyBUaGUgcmVsYXRlZCBwcm9wZXJ0aWVzIGlkZW50aWZpZWQgc28gZmFyLlxuICogQHBhcmFtIGFkZFVuaXRJblRlbXBsYXRlIFRydWUgaWYgdGhlIHVuaXQvY3VycmVuY3kgcHJvcGVydHkgbmVlZHMgdG8gYmUgYWRkZWQgaW4gdGhlIGV4cG9ydCB0ZW1wbGF0ZVxuICogQHJldHVybnMgVGhlIHJlbGF0ZWQgcHJvcGVydGllcyBpZGVudGlmaWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdFJlbGF0ZWRQcm9wZXJ0aWVzKFxuXHRwYXRoOiBzdHJpbmcsXG5cdHByb3BlcnR5OiBQcmltaXRpdmVUeXBlLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRpZ25vcmVTZWxmOiBib29sZWFuLFxuXHR0YWJsZVR5cGU6IFRhYmxlVHlwZSxcblx0cmVsYXRlZFByb3BlcnRpZXM6IENvbXBsZXhQcm9wZXJ0eUluZm8gPSB7IHByb3BlcnRpZXM6IHt9LCBhZGRpdGlvbmFsUHJvcGVydGllczoge30sIHRleHRPbmx5UHJvcGVydGllc0Zyb21UZXh0QW5ub3RhdGlvbjogW10gfSxcblx0YWRkVW5pdEluVGVtcGxhdGU6IGJvb2xlYW4gPSBmYWxzZVxuKTogQ29tcGxleFByb3BlcnR5SW5mbyB7XG5cdC8qKlxuXHQgKiBIZWxwZXIgdG8gcHVzaCB1bmlxdWUgcmVsYXRlZCBwcm9wZXJ0aWVzLlxuXHQgKlxuXHQgKiBAcGFyYW0ga2V5IFRoZSBwcm9wZXJ0eSBwYXRoXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgcHJvcGVydGllcyBvYmplY3QgY29udGFpbmluZyB2YWx1ZSBwcm9wZXJ0eSwgZGVzY3JpcHRpb24gcHJvcGVydHkuLi5cblx0ICogQHJldHVybnMgSW5kZXggYXQgd2hpY2ggdGhlIHByb3BlcnR5IGlzIGF2YWlsYWJsZVxuXHQgKi9cblx0ZnVuY3Rpb24gX3B1c2hVbmlxdWUoa2V5OiBzdHJpbmcsIHZhbHVlOiBQcm9wZXJ0eSk6IG51bWJlciB7XG5cdFx0aWYgKCFyZWxhdGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcblx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXNba2V5XSA9IHZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gT2JqZWN0LmtleXMocmVsYXRlZFByb3BlcnRpZXMucHJvcGVydGllcykuaW5kZXhPZihrZXkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhlbHBlciB0byBhcHBlbmQgdGhlIGV4cG9ydCBzZXR0aW5ncyB0ZW1wbGF0ZSB3aXRoIGEgZm9ybWF0dGVkIHRleHQuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBGb3JtYXR0ZWQgdGV4dFxuXHQgKi9cblx0ZnVuY3Rpb24gX2FwcGVuZFRlbXBsYXRlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRyZWxhdGVkUHJvcGVydGllcy5leHBvcnRTZXR0aW5nc1RlbXBsYXRlID0gcmVsYXRlZFByb3BlcnRpZXMuZXhwb3J0U2V0dGluZ3NUZW1wbGF0ZVxuXHRcdFx0PyBgJHtyZWxhdGVkUHJvcGVydGllcy5leHBvcnRTZXR0aW5nc1RlbXBsYXRlfSR7dmFsdWV9YFxuXHRcdFx0OiBgJHt2YWx1ZX1gO1xuXHR9XG5cblx0aWYgKHBhdGggJiYgcHJvcGVydHkpIHtcblx0XHRjb25zdCBuYXZpZ2F0aW9uUGF0aFByZWZpeCA9IF9nZXROYXZpZ2F0aW9uUGF0aFByZWZpeChwYXRoKTtcblxuXHRcdC8vIENoZWNrIGZvciBUZXh0IGFubm90YXRpb24uXG5cdFx0Y29uc3QgdGV4dEFubm90YXRpb24gPSBwcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0O1xuXHRcdGxldCB2YWx1ZUluZGV4OiBudW1iZXI7XG5cdFx0bGV0IHRhcmdldFZhbHVlOiBzdHJpbmc7XG5cdFx0bGV0IGN1cnJlbmN5T3JVb01JbmRleDogbnVtYmVyO1xuXHRcdGxldCB0aW1lem9uZU9yVW9NSW5kZXg6IG51bWJlcjtcblxuXHRcdGlmIChyZWxhdGVkUHJvcGVydGllcy5leHBvcnRTZXR0aW5nc1RlbXBsYXRlKSB7XG5cdFx0XHQvLyBGaWVsZEdyb3VwIHVzZS1jYXNlLiBOZWVkIHRvIGFkZCBlYWNoIEZpZWxkIGluIG5ldyBsaW5lLlxuXHRcdFx0X2FwcGVuZFRlbXBsYXRlKFwiXFxuXCIpO1xuXHRcdFx0cmVsYXRlZFByb3BlcnRpZXMuZXhwb3J0U2V0dGluZ3NXcmFwcGluZyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRleHRBbm5vdGF0aW9uPy5wYXRoICYmIHRleHRBbm5vdGF0aW9uPy4kdGFyZ2V0KSB7XG5cdFx0XHQvLyBDaGVjayBmb3IgVGV4dCBBcnJhbmdlbWVudC5cblx0XHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0XHRcdGNvbnN0IHRleHRBbm5vdGF0aW9uUHJvcGVydHlQYXRoID0gbmF2aWdhdGlvblBhdGhQcmVmaXggKyB0ZXh0QW5ub3RhdGlvbi5wYXRoO1xuXHRcdFx0Y29uc3QgZGlzcGxheU1vZGUgPSBnZXREaXNwbGF5TW9kZShwcm9wZXJ0eSwgZGF0YU1vZGVsT2JqZWN0UGF0aCk7XG5cdFx0XHRsZXQgZGVzY3JpcHRpb25JbmRleDogbnVtYmVyO1xuXHRcdFx0c3dpdGNoIChkaXNwbGF5TW9kZSkge1xuXHRcdFx0XHRjYXNlIFwiVmFsdWVcIjpcblx0XHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7dmFsdWVJbmRleH19YCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcIkRlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdFx0ZGVzY3JpcHRpb25JbmRleCA9IF9wdXNoVW5pcXVlKHRleHRBbm5vdGF0aW9uUHJvcGVydHlQYXRoLCB0ZXh0QW5ub3RhdGlvbi4kdGFyZ2V0KTtcblx0XHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske2Rlc2NyaXB0aW9uSW5kZXh9fWApO1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLnRleHRPbmx5UHJvcGVydGllc0Zyb21UZXh0QW5ub3RhdGlvbi5wdXNoKHRleHRBbm5vdGF0aW9uLnBhdGgpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdGNhc2UgXCJWYWx1ZURlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdFx0dmFsdWVJbmRleCA9IF9wdXNoVW5pcXVlKHBhdGgsIHByb3BlcnR5KTtcblx0XHRcdFx0XHRkZXNjcmlwdGlvbkluZGV4ID0gX3B1c2hVbmlxdWUodGV4dEFubm90YXRpb25Qcm9wZXJ0eVBhdGgsIHRleHRBbm5vdGF0aW9uLiR0YXJnZXQpO1xuXHRcdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7dmFsdWVJbmRleH19ICh7JHtkZXNjcmlwdGlvbkluZGV4fX0pYCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcIkRlc2NyaXB0aW9uVmFsdWVcIjpcblx0XHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0XHRcdGRlc2NyaXB0aW9uSW5kZXggPSBfcHVzaFVuaXF1ZSh0ZXh0QW5ub3RhdGlvblByb3BlcnR5UGF0aCwgdGV4dEFubm90YXRpb24uJHRhcmdldCk7XG5cdFx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHtkZXNjcmlwdGlvbkluZGV4fX0gKHske3ZhbHVlSW5kZXh9fSlgKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Ly8gbm8gZGVmYXVsdFxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDaGVjayBmb3IgZmllbGQgY29udGFpbmluZyBDdXJyZW5jeSBPciBVbml0IFByb3BlcnRpZXMgb3IgVGltZXpvbmVcblx0XHRcdGNvbnN0IGN1cnJlbmN5T3JVb01Qcm9wZXJ0eSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KHByb3BlcnR5KSB8fCBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5KHByb3BlcnR5KTtcblx0XHRcdGNvbnN0IGN1cnJlbmN5T3JVbml0QW5ub3RhdGlvbiA9IHByb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5IHx8IHByb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQ7XG5cdFx0XHRjb25zdCB0aW1lem9uZVByb3BlcnR5ID0gZ2V0QXNzb2NpYXRlZFRpbWV6b25lUHJvcGVydHkocHJvcGVydHkpO1xuXHRcdFx0Y29uc3QgdGltZXpvbmVBbm5vdGF0aW9uID0gcHJvcGVydHk/LmFubm90YXRpb25zPy5Db21tb24/LlRpbWV6b25lO1xuXG5cdFx0XHRpZiAoY3VycmVuY3lPclVvTVByb3BlcnR5ICYmIGN1cnJlbmN5T3JVbml0QW5ub3RhdGlvbj8uJHRhcmdldCkge1xuXHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0XHRjdXJyZW5jeU9yVW9NSW5kZXggPSBfcHVzaFVuaXF1ZShjdXJyZW5jeU9yVW9NUHJvcGVydHkubmFtZSwgY3VycmVuY3lPclVuaXRBbm5vdGF0aW9uLiR0YXJnZXQpO1xuXHRcdFx0XHRpZiAoYWRkVW5pdEluVGVtcGxhdGUpIHtcblx0XHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fSAgeyR7Y3VycmVuY3lPclVvTUluZGV4fX1gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcy5leHBvcnRVbml0TmFtZSA9IGN1cnJlbmN5T3JVb01Qcm9wZXJ0eS5uYW1lO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKHRpbWV6b25lUHJvcGVydHkgJiYgdGltZXpvbmVBbm5vdGF0aW9uPy4kdGFyZ2V0KSB7XG5cdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdHRpbWV6b25lT3JVb01JbmRleCA9IF9wdXNoVW5pcXVlKHRpbWV6b25lUHJvcGVydHkubmFtZSwgdGltZXpvbmVBbm5vdGF0aW9uLiR0YXJnZXQpO1xuXHRcdFx0XHRpZiAoYWRkVW5pdEluVGVtcGxhdGUpIHtcblx0XHRcdFx0XHRfYXBwZW5kVGVtcGxhdGUoYHske3ZhbHVlSW5kZXh9fSAgeyR7dGltZXpvbmVPclVvTUluZGV4fX1gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcy5leHBvcnRUaW1lem9uZU5hbWUgPSB0aW1lem9uZVByb3BlcnR5Lm5hbWU7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHkuVGFyZ2V0Py4kdGFyZ2V0Py5WaXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGNvbnN0IGRhdGFQb2ludFByb3BlcnR5OiBQcmltaXRpdmVUeXBlID0gcHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuVmFsdWUuJHRhcmdldDtcblx0XHRcdFx0dmFsdWVJbmRleCA9IF9wdXNoVW5pcXVlKHBhdGgsIGRhdGFQb2ludFByb3BlcnR5KTtcblx0XHRcdFx0Ly8gTmV3IGZha2UgcHJvcGVydHkgY3JlYXRlZCBmb3IgdGhlIFJhdGluZy9Qcm9ncmVzcyBUYXJnZXQgVmFsdWUuIEl0J2xsIGJlIHVzZWQgZm9yIHRoZSBleHBvcnQgb24gc3BsaXQgbW9kZS5cblx0XHRcdFx0X3B1c2hVbmlxdWUocHJvcGVydHkuVGFyZ2V0LnZhbHVlLCBwcm9wZXJ0eS5UYXJnZXQuJHRhcmdldCk7XG5cdFx0XHRcdHRhcmdldFZhbHVlID0gKHByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LlRhcmdldFZhbHVlIHx8IHByb3BlcnR5LlRhcmdldC4kdGFyZ2V0Lk1heGltdW1WYWx1ZSkudG9TdHJpbmcoKTtcblx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX0vJHt0YXJnZXRWYWx1ZX1gKTtcblx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5EYXRhRmllbGREZWZhdWx0Py5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlKSB7XG5cdFx0XHRcdC8vIERhdGFQb2ludCB1c2UtY2FzZSB1c2luZyBEYXRhRmllbGREZWZhdWx0LlxuXHRcdFx0XHRjb25zdCBkYXRhUG9pbnREZWZhdWx0UHJvcGVydHk6IFByaW1pdGl2ZVR5cGUgPSBwcm9wZXJ0eS5hbm5vdGF0aW9ucy5VSS5EYXRhRmllbGREZWZhdWx0O1xuXHRcdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0XHQvLyBOZXcgZmFrZSBwcm9wZXJ0eSBjcmVhdGVkIGZvciB0aGUgUmF0aW5nL1Byb2dyZXNzIFRhcmdldCBWYWx1ZS4gSXQnbGwgYmUgdXNlZCBmb3IgdGhlIGV4cG9ydCBvbiBzcGxpdCBtb2RlLlxuXHRcdFx0XHRfcHVzaFVuaXF1ZShkYXRhUG9pbnREZWZhdWx0UHJvcGVydHkuVGFyZ2V0LnZhbHVlLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdHRhcmdldFZhbHVlID0gKFxuXHRcdFx0XHRcdGRhdGFQb2ludERlZmF1bHRQcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5UYXJnZXRWYWx1ZSB8fCBkYXRhUG9pbnREZWZhdWx0UHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuVGFyZ2V0VmFsdWUuTWF4aW11bVZhbHVlXG5cdFx0XHRcdCkudG9TdHJpbmcoKTtcblx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX0vJHt0YXJnZXRWYWx1ZX1gKTtcblx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHkuJFR5cGUgPT09IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMuQ29udGFjdFR5cGUpIHtcblx0XHRcdFx0Y29uc3QgY29udGFjdFByb3BlcnR5ID0gcHJvcGVydHkuZm4/LiR0YXJnZXQ7XG5cdFx0XHRcdGNvbnN0IGNvbnRhY3RQcm9wZXJ0eVBhdGggPSBwcm9wZXJ0eS5mbj8ucGF0aDtcblx0XHRcdFx0dmFsdWVJbmRleCA9IF9wdXNoVW5pcXVlKFxuXHRcdFx0XHRcdG5hdmlnYXRpb25QYXRoUHJlZml4ID8gbmF2aWdhdGlvblBhdGhQcmVmaXggKyBjb250YWN0UHJvcGVydHlQYXRoIDogY29udGFjdFByb3BlcnR5UGF0aCxcblx0XHRcdFx0XHRjb250YWN0UHJvcGVydHlcblx0XHRcdFx0KTtcblx0XHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX1gKTtcblx0XHRcdH0gZWxzZSBpZiAoIWlnbm9yZVNlbGYpIHtcblx0XHRcdFx0Ly8gQ29sbGVjdCB1bmRlcmx5aW5nIHByb3BlcnR5XG5cdFx0XHRcdHZhbHVlSW5kZXggPSBfcHVzaFVuaXF1ZShwYXRoLCBwcm9wZXJ0eSk7XG5cdFx0XHRcdF9hcHBlbmRUZW1wbGF0ZShgeyR7dmFsdWVJbmRleH19YCk7XG5cdFx0XHRcdGlmIChjdXJyZW5jeU9yVW5pdEFubm90YXRpb24pIHtcblx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcy5leHBvcnRVbml0U3RyaW5nID0gYCR7Y3VycmVuY3lPclVuaXRBbm5vdGF0aW9ufWA7IC8vIEhhcmQtY29kZWQgY3VycmVuY3kvdW5pdFxuXHRcdFx0XHR9IGVsc2UgaWYgKHRpbWV6b25lQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLmV4cG9ydFRpbWV6b25lU3RyaW5nID0gYCR7dGltZXpvbmVBbm5vdGF0aW9ufWA7IC8vIEhhcmQtY29kZWQgdGltZXpvbmVcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJlbGF0ZWRQcm9wZXJ0aWVzID0gX2NvbGxlY3RBZGRpdGlvbmFsUHJvcGVydGllc0ZvckFuYWx5dGljYWxUYWJsZShwcm9wZXJ0eSwgbmF2aWdhdGlvblBhdGhQcmVmaXgsIHRhYmxlVHlwZSwgcmVsYXRlZFByb3BlcnRpZXMpO1xuXHRcdGlmIChPYmplY3Qua2V5cyhyZWxhdGVkUHJvcGVydGllcy5hZGRpdGlvbmFsUHJvcGVydGllcykubGVuZ3RoID4gMCAmJiBPYmplY3Qua2V5cyhyZWxhdGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdC8vIENvbGxlY3QgdW5kZXJseWluZyBwcm9wZXJ0eSBpZiBub3QgY29sbGVjdGVkIGFscmVhZHkuXG5cdFx0XHQvLyBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzIGFyZSBtYWRlIGF2YWlsYWJsZSBvbmx5IHRvIGNvbXBsZXggcHJvcGVydHkgaW5mb3MuXG5cdFx0XHR2YWx1ZUluZGV4ID0gX3B1c2hVbmlxdWUocGF0aCwgcHJvcGVydHkpO1xuXHRcdFx0X2FwcGVuZFRlbXBsYXRlKGB7JHt2YWx1ZUluZGV4fX1gKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmVsYXRlZFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQ29sbGVjdCBwcm9wZXJ0aWVzIGNvbnN1bWVkIGJ5IGEgRGF0YUZpZWxkLlxuICogVGhpcyBpcyBmb3IgcG9wdWxhdGluZyB0aGUgQ29tcGxleFByb3BlcnR5SW5mb3Mgb2YgdGhlIHRhYmxlIGRlbGVnYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRhRmllbGQgVGhlIERhdGFGaWVsZCBmb3Igd2hpY2ggdGhlIHByb3BlcnRpZXMgbmVlZCB0byBiZSBpZGVudGlmaWVkLlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHRhYmxlVHlwZSBUaGUgdGFibGUgdHlwZS5cbiAqIEBwYXJhbSByZWxhdGVkUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBpZGVudGlmaWVkIHNvIGZhci5cbiAqIEBwYXJhbSBpc0VtYmVkZGVkIFRydWUgaWYgdGhlIERhdGFGaWVsZCBpcyBlbWJlZGRlZCBpbiBhbm90aGVyIGFubm90YXRpb24gKGUuZy4gRmllbGRHcm91cCkuXG4gKiBAcmV0dXJucyBUaGUgcHJvcGVydGllcyByZWxhdGVkIHRvIHRoZSBEYXRhRmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0UmVsYXRlZFByb3BlcnRpZXNSZWN1cnNpdmVseShcblx0ZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHR0YWJsZVR5cGU6IFRhYmxlVHlwZSxcblx0cmVsYXRlZFByb3BlcnRpZXM6IENvbXBsZXhQcm9wZXJ0eUluZm8gPSB7IHByb3BlcnRpZXM6IHt9LCBhZGRpdGlvbmFsUHJvcGVydGllczoge30sIHRleHRPbmx5UHJvcGVydGllc0Zyb21UZXh0QW5ub3RhdGlvbjogW10gfSxcblx0aXNFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlXG4pOiBDb21wbGV4UHJvcGVydHlJbmZvIHtcblx0c3dpdGNoIChkYXRhRmllbGQ/LiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQ6XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aEludGVudEJhc2VkTmF2aWdhdGlvbjpcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhBY3Rpb246XG5cdFx0XHRpZiAoZGF0YUZpZWxkLlZhbHVlKSB7XG5cdFx0XHRcdGNvbnN0IHByb3BlcnR5ID0gZGF0YUZpZWxkLlZhbHVlO1xuXHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyA9IGNvbGxlY3RSZWxhdGVkUHJvcGVydGllcyhcblx0XHRcdFx0XHRwcm9wZXJ0eS5wYXRoLFxuXHRcdFx0XHRcdHByb3BlcnR5LiR0YXJnZXQsXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0XHR0YWJsZVR5cGUsXG5cdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMsXG5cdFx0XHRcdFx0aXNFbWJlZGRlZFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uUGF0aFByZWZpeCA9IF9nZXROYXZpZ2F0aW9uUGF0aFByZWZpeChwcm9wZXJ0eS5wYXRoKTtcblx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMgPSBfY29sbGVjdEFkZGl0aW9uYWxQcm9wZXJ0aWVzRm9yQW5hbHl0aWNhbFRhYmxlKFxuXHRcdFx0XHRcdGRhdGFGaWVsZCxcblx0XHRcdFx0XHRuYXZpZ2F0aW9uUGF0aFByZWZpeCxcblx0XHRcdFx0XHR0YWJsZVR5cGUsXG5cdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXNcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb246XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb246XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjpcblx0XHRcdHN3aXRjaCAoZGF0YUZpZWxkLlRhcmdldD8uJHRhcmdldD8uJFR5cGUpIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5GaWVsZEdyb3VwVHlwZTpcblx0XHRcdFx0XHRkYXRhRmllbGQuVGFyZ2V0LiR0YXJnZXQuRGF0YT8uZm9yRWFjaCgoaW5uZXJEYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzID0gY29sbGVjdFJlbGF0ZWRQcm9wZXJ0aWVzUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0XHRcdGlubmVyRGF0YUZpZWxkLFxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHR0YWJsZVR5cGUsXG5cdFx0XHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzLFxuXHRcdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YVBvaW50VHlwZTpcblx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyA9IGNvbGxlY3RSZWxhdGVkUHJvcGVydGllcyhcblx0XHRcdFx0XHRcdGRhdGFGaWVsZC5UYXJnZXQuJHRhcmdldC5WYWx1ZS5wYXRoLFxuXHRcdFx0XHRcdFx0ZGF0YUZpZWxkLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRcdFx0dGFibGVUeXBlLFxuXHRcdFx0XHRcdFx0cmVsYXRlZFByb3BlcnRpZXMsXG5cdFx0XHRcdFx0XHRpc0VtYmVkZGVkXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMuQ29udGFjdFR5cGU6XG5cdFx0XHRcdFx0Y29uc3QgZGF0YUZpZWxkQ29udGFjdCA9IGRhdGFGaWVsZC5UYXJnZXQuJHRhcmdldCBhcyBDb250YWN0O1xuXHRcdFx0XHRcdHJlbGF0ZWRQcm9wZXJ0aWVzID0gY29sbGVjdFJlbGF0ZWRQcm9wZXJ0aWVzKFxuXHRcdFx0XHRcdFx0ZGF0YUZpZWxkLlRhcmdldC52YWx1ZSxcblx0XHRcdFx0XHRcdGRhdGFGaWVsZENvbnRhY3QsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0XHR0YWJsZVR5cGUsXG5cdFx0XHRcdFx0XHRyZWxhdGVkUHJvcGVydGllcyxcblx0XHRcdFx0XHRcdGlzRW1iZWRkZWRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdH1cblxuXHRyZXR1cm4gcmVsYXRlZFByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhRmllbGREYXRhVHlwZSA9IGZ1bmN0aW9uIChvRGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgUHJvcGVydHkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRsZXQgc0RhdGFUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAob0RhdGFGaWVsZCBhcyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKS4kVHlwZTtcblx0c3dpdGNoIChzRGF0YVR5cGUpIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbjpcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbjpcblx0XHRcdHNEYXRhVHlwZSA9IHVuZGVmaW5lZDtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQ6XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGg6XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsOlxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aEludGVudEJhc2VkTmF2aWdhdGlvbjpcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhBY3Rpb246XG5cdFx0XHRzRGF0YVR5cGUgPSAob0RhdGFGaWVsZCBhcyBEYXRhRmllbGQpPy5WYWx1ZT8uJHRhcmdldD8udHlwZTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRjb25zdCBzRGF0YVR5cGVGb3JEYXRhRmllbGRGb3JBbm5vdGF0aW9uID0gKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikuVGFyZ2V0Py4kdGFyZ2V0LiRUeXBlO1xuXHRcdFx0aWYgKHNEYXRhVHlwZUZvckRhdGFGaWVsZEZvckFubm90YXRpb24pIHtcblx0XHRcdFx0aWYgKChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldC4kVHlwZSA9PT0gQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5Db250YWN0VHlwZSkge1xuXHRcdFx0XHRcdHNEYXRhVHlwZSA9ICgoKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikuVGFyZ2V0Py4kdGFyZ2V0IGFzIENvbnRhY3QpPy5mbiBhcyBhbnkpLiR0YXJnZXQ/LnR5cGU7XG5cdFx0XHRcdH0gZWxzZSBpZiAoKG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikuVGFyZ2V0Py4kdGFyZ2V0LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlKSB7XG5cdFx0XHRcdFx0c0RhdGFUeXBlID1cblx0XHRcdFx0XHRcdCgob0RhdGFGaWVsZCBhcyBEYXRhRmllbGRGb3JBbm5vdGF0aW9uKS5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50KT8uVmFsdWU/LiRQYXRoPy4kVHlwZSB8fFxuXHRcdFx0XHRcdFx0KChvRGF0YUZpZWxkIGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pLlRhcmdldD8uJHRhcmdldCBhcyBEYXRhUG9pbnQpPy5WYWx1ZT8uJHRhcmdldC50eXBlO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGUuZy4gRmllbGRHcm91cCBvciBDaGFydFxuXHRcdFx0XHRcdC8vIEZpZWxkR3JvdXAgUHJvcGVydGllcyBoYXZlIG5vIHR5cGUsIHNvIHdlIGRlZmluZSBpdCBhcyBhIGJvb2xlYW4gdHlwZSB0byBwcmV2ZW50IGV4Y2VwdGlvbnMgZHVyaW5nIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgd2lkdGhcblx0XHRcdFx0XHRzRGF0YVR5cGUgPVxuXHRcdFx0XHRcdFx0KG9EYXRhRmllbGQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikuVGFyZ2V0Py4kdGFyZ2V0LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0RGVmaW5pdGlvblR5cGVcIlxuXHRcdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHQ6IFwiRWRtLkJvb2xlYW5cIjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c0RhdGFUeXBlID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cdH1cblxuXHRyZXR1cm4gc0RhdGFUeXBlO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxTQUFTQSw0QkFBVCxDQUFzQ0MsU0FBdEMsRUFBdUg7SUFDN0gsT0FBUUEsU0FBRCxDQUErQ0MsY0FBL0MsQ0FBOEQsUUFBOUQsQ0FBUDtFQUNBO0VBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0VBQ08sU0FBU0MsZ0JBQVQsQ0FBMEJGLFNBQTFCLEVBQTBGO0lBQ2hHLE9BQVFBLFNBQUQsQ0FBOEJDLGNBQTlCLENBQTZDLE9BQTdDLENBQVA7RUFDQTtFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztFQUNPLFNBQVNFLHVCQUFULENBQWlDSCxTQUFqQyxFQUE2RTtJQUFBOztJQUNuRixPQUNDLDBCQUFBQSxTQUFTLENBQUNJLFdBQVYsMEdBQXVCQyxFQUF2Qiw0R0FBMkJDLE1BQTNCLGtGQUFtQ0MsT0FBbkMsUUFBaUQsSUFBakQsSUFDQ0wsZ0JBQWdCLENBQUNGLFNBQUQsQ0FBaEIs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
|