@sapui5/sap.fe.macros 1.139.0 → 1.141.0
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/macros/.library +1 -1
- package/src/sap/fe/macros/Chart.js +53 -2
- package/src/sap/fe/macros/Chart.tsx +55 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
- package/src/sap/fe/macros/CommonHelper.js +59 -15
- package/src/sap/fe/macros/CommonHelper.ts +65 -14
- package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
- package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
- package/src/sap/fe/macros/Field.js +78 -64
- package/src/sap/fe/macros/Field.ts +97 -68
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +4 -1
- package/src/sap/fe/macros/MacroAPI.js +9 -4
- package/src/sap/fe/macros/MacroAPI.ts +9 -4
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +10 -7
- package/src/sap/fe/macros/MultiValueField.tsx +7 -3
- package/src/sap/fe/macros/Page.js +5 -7
- package/src/sap/fe/macros/Page.tsx +4 -6
- package/src/sap/fe/macros/Paginator.js +9 -4
- package/src/sap/fe/macros/Paginator.tsx +12 -3
- package/src/sap/fe/macros/RichTextEditor.js +3 -2
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
- package/src/sap/fe/macros/Share.js +14 -2
- package/src/sap/fe/macros/Share.tsx +13 -0
- package/src/sap/fe/macros/Status.js +251 -0
- package/src/sap/fe/macros/Status.tsx +212 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -28
- package/src/sap/fe/macros/ValueHelp.tsx +2 -42
- package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
- package/src/sap/fe/macros/ai/EasyFilterBar.js +246 -97
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +302 -106
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/Chart.js +2 -2
- package/src/sap/fe/macros/chart/Chart.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +5 -5
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +5 -5
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +4 -2
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +3 -1
- package/src/sap/fe/macros/controls/FilterBar.js +14 -5
- package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
- package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
- package/src/sap/fe/macros/controls/Section.js +4 -3
- package/src/sap/fe/macros/controls/Section.ts +3 -2
- package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
- package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +28 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
- package/src/sap/fe/macros/field/Field.js +2 -2
- package/src/sap/fe/macros/field/Field.tsx +1 -1
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
- package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
- package/src/sap/fe/macros/field/FieldHelper.js +2 -2
- package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +233 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +291 -7
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
- package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
- package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
- package/src/sap/fe/macros/form/Form.block.js +7 -8
- package/src/sap/fe/macros/form/Form.block.ts +4 -6
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +555 -5
- package/src/sap/fe/macros/form/FormContainer.block.ts +665 -7
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
- package/src/sap/fe/macros/form/FormDelegate.js +24 -8
- package/src/sap/fe/macros/form/FormDelegate.ts +29 -7
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/DataPoint.js +3 -2
- package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
- package/src/sap/fe/macros/internal/FilterField.block.js +19 -5
- package/src/sap/fe/macros/internal/FilterField.block.ts +16 -4
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +9 -3
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +10 -2
- package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +5 -1
- package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
- package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
- package/src/sap/fe/macros/messagebundle.properties +24 -4
- package/src/sap/fe/macros/messagebundle_ar.properties +8 -2
- package/src/sap/fe/macros/messagebundle_bg.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ca.properties +11 -5
- package/src/sap/fe/macros/messagebundle_cnr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_cs.properties +7 -1
- package/src/sap/fe/macros/messagebundle_cy.properties +9 -3
- package/src/sap/fe/macros/messagebundle_da.properties +8 -2
- package/src/sap/fe/macros/messagebundle_de.properties +13 -7
- package/src/sap/fe/macros/messagebundle_el.properties +7 -1
- package/src/sap/fe/macros/messagebundle_en.properties +11 -5
- package/src/sap/fe/macros/messagebundle_en_GB.properties +9 -3
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +11 -5
- package/src/sap/fe/macros/messagebundle_es.properties +10 -4
- package/src/sap/fe/macros/messagebundle_es_MX.properties +11 -5
- package/src/sap/fe/macros/messagebundle_et.properties +9 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +7 -1
- package/src/sap/fe/macros/messagebundle_fr.properties +9 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hi.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hu.properties +7 -1
- package/src/sap/fe/macros/messagebundle_id.properties +15 -9
- package/src/sap/fe/macros/messagebundle_it.properties +7 -1
- package/src/sap/fe/macros/messagebundle_iw.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ja.properties +13 -7
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -5
- package/src/sap/fe/macros/messagebundle_ko.properties +8 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +9 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +8 -2
- package/src/sap/fe/macros/messagebundle_mk.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ms.properties +7 -1
- package/src/sap/fe/macros/messagebundle_nl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_no.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pl.properties +8 -2
- package/src/sap/fe/macros/messagebundle_pt.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ro.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ru.properties +10 -4
- package/src/sap/fe/macros/messagebundle_sh.properties +8 -2
- package/src/sap/fe/macros/messagebundle_sk.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_sv.properties +7 -1
- package/src/sap/fe/macros/messagebundle_th.properties +8 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_uk.properties +10 -4
- package/src/sap/fe/macros/messagebundle_vi.properties +10 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +7 -1
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +8 -2
- package/src/sap/fe/macros/messages/MessageButton.js +39 -18
- package/src/sap/fe/macros/messages/MessageButton.ts +42 -19
- package/src/sap/fe/macros/messages/MessagePopover.js +4 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +6 -4
- package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -3
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -2
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
- package/src/sap/fe/macros/table/BasicSearch.js +1 -1
- package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
- package/src/sap/fe/macros/table/Column.js +14 -2
- package/src/sap/fe/macros/table/Column.ts +7 -0
- package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
- package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
- package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
- package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +7 -5
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +21 -11
- package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
- package/src/sap/fe/macros/table/Table.block.js +188 -147
- package/src/sap/fe/macros/table/Table.block.tsx +41 -11
- package/src/sap/fe/macros/table/Table.js +16 -10
- package/src/sap/fe/macros/table/Table.tsx +16 -10
- package/src/sap/fe/macros/table/TableAPI.js +224 -184
- package/src/sap/fe/macros/table/TableAPI.ts +63 -19
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
- package/src/sap/fe/macros/table/TableHelper.js +2 -3
- package/src/sap/fe/macros/table/TableHelper.ts +1 -2
- package/src/sap/fe/macros/table/TableRuntime.js +24 -5
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
- package/src/sap/fe/macros/table/TreeTable.js +16 -10
- package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
- package/src/sap/fe/macros/table/Utils.js +8 -3
- package/src/sap/fe/macros/table/Utils.ts +12 -3
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -34
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -33
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
- package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
- package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +5 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +4 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +10 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +36 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +44 -9
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -4
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -2
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
getAssociatedUnitProperty
|
|
19
19
|
} from "sap/fe/core/templating/PropertyHelper";
|
|
20
20
|
import { getDisplayMode, getTypeConfig } from "sap/fe/core/templating/UIFormatters";
|
|
21
|
+
import CommonHelper from "sap/fe/macros/CommonHelper";
|
|
21
22
|
import type FilterBarAPI from "sap/fe/macros/filterBar/FilterBarAPI";
|
|
22
23
|
import type Table from "sap/m/Table";
|
|
23
24
|
import Util from "sap/m/table/Util";
|
|
@@ -383,9 +384,14 @@ const ValueListHelper = {
|
|
|
383
384
|
* Gets the sort conditions set on the ValueList's PresentationVariant.
|
|
384
385
|
* @param valueListInfo The valueList annotation
|
|
385
386
|
* @param isSuggestion Indicates if the ValueList is used in a suggestion scenario
|
|
387
|
+
* @param asCustomdata Indicates if the sort conditions should be returned as custom data
|
|
386
388
|
* @returns The sort conditions if any, undefined otherwise
|
|
387
389
|
*/
|
|
388
|
-
getSortConditionsFromPresentationVariant: function (
|
|
390
|
+
getSortConditionsFromPresentationVariant: function (
|
|
391
|
+
valueListInfo: AnnotationValueListType,
|
|
392
|
+
isSuggestion: boolean,
|
|
393
|
+
asCustomdata = false
|
|
394
|
+
): string | undefined {
|
|
389
395
|
const presentationVariant = getPresentationVariant(valueListInfo);
|
|
390
396
|
if (presentationVariant?.SortOrder) {
|
|
391
397
|
const sortConditions = {
|
|
@@ -408,7 +414,8 @@ const ValueListHelper = {
|
|
|
408
414
|
}
|
|
409
415
|
sortConditions.sorters.push(sorter);
|
|
410
416
|
});
|
|
411
|
-
|
|
417
|
+
const stringConverter = asCustomdata ? CommonHelper.stringifyCustomData : JSON.stringify;
|
|
418
|
+
return isSuggestion ? `sorter: ${stringConverter(sortConditions.sorters)}` : stringConverter(sortConditions);
|
|
412
419
|
}
|
|
413
420
|
return;
|
|
414
421
|
},
|
|
@@ -1088,6 +1095,10 @@ const ValueListHelper = {
|
|
|
1088
1095
|
}
|
|
1089
1096
|
if (!path.key) {
|
|
1090
1097
|
path.key = firstKey;
|
|
1098
|
+
const propertyPath = `/${annotationValueListType.CollectionPath}/${firstKey}`;
|
|
1099
|
+
const propertyAnnotations = (metaModelVH.getObject(`${propertyPath}@`) || {}) as AnnotationsForProperty;
|
|
1100
|
+
// We update path.descriptionPath for the key property
|
|
1101
|
+
path.descriptionPath = propertyAnnotations[AnnotationText]?.$Path || "";
|
|
1091
1102
|
}
|
|
1092
1103
|
|
|
1093
1104
|
/* Ensure that vhKeys are part of the columnDefs, otherwise it is not considered in $select (BCP 2270141154) */
|
|
@@ -24,7 +24,7 @@ sap.ui.define(["sap/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/
|
|
|
24
24
|
controls: [],
|
|
25
25
|
elements: [],
|
|
26
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
27
|
-
version: "1.
|
|
27
|
+
version: "1.141.0",
|
|
28
28
|
noLibraryCSS: true,
|
|
29
29
|
extensions: {
|
|
30
30
|
flChangeHandlers: {
|
|
@@ -211,6 +211,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/isEmptyObject", "sap/fe/macros/fil
|
|
|
211
211
|
case "LE":
|
|
212
212
|
case "LT":
|
|
213
213
|
case "GT":
|
|
214
|
+
case "GE":
|
|
214
215
|
case "EQ":
|
|
215
216
|
selectOptionState.Option = operator;
|
|
216
217
|
break;
|
|
@@ -303,4 +304,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/isEmptyObject", "sap/fe/macros/fil
|
|
|
303
304
|
};
|
|
304
305
|
return stateFilterToSelectionVariant;
|
|
305
306
|
}, false);
|
|
306
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnRGcm9tQ29uZGl0aW9ucyIsImZpbHRlckNvbmRpdGlvbnMiLCJwcm9wZXJ0eUhlbHBlciIsInBhcmFtcyIsInNlbGVjdGlvblZhcmlhbnQiLCJTZWxlY3Rpb25WYXJpYW50IiwiaXNFbXB0eU9iamVjdCIsImZpbHRlcktleSIsImZpbHRlckZpZWxkQ29uZGl0aW9uIiwibGVuZ3RoIiwic2VsZWN0T3B0aW9ucyIsImdldFNlbGVjdGlvbk9wdGlvbnNGcm9tQ29uZGl0aW9uIiwic2FuaXRpemVkRmlsdGVyS2V5IiwicmVwbGFjZSIsImluY2x1ZGVzIiwibWFzc0FkZFNlbGVjdE9wdGlvbiIsImNvbXBhcmVTZWxlY3RPcHRpb25zIiwib3B0aW9uczEiLCJvcHRpb25zMiIsIk9wdGlvbiIsIlNpZ24iLCJMb3ciLCJIaWdoIiwibWVyZ2VTZWxlY3Rpb25WYXJpYW50cyIsInNlbGVjdGlvblZhcmlhbnQxIiwic2VsZWN0aW9uVmFyaWFudDIiLCJtZXJnZWRTViIsInRvSlNPTlN0cmluZyIsInByb3BlcnR5TmFtZXMiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImFkZGVkUHJvcGVydGllcyIsInByb3BOYW1lIiwiY29udHJvbE9wdGlvbnMiLCJnZXRTZWxlY3RPcHRpb24iLCJtZXJnZWRPcHRpb25zIiwicHVzaCIsImNvbnRyb2xPcHRpb24iLCJzb21lIiwibWVyZ2VkT3B0aW9uIiwic3RhdGVGaWx0ZXJzIiwiY29uZGl0aW9uIiwic2VsZWN0T3B0aW9uIiwiZ2V0U2VsZWN0aW9uT3B0aW9uIiwic2VtYW50aWNEYXRlcyIsImZpbHRlck9wdGlvbiIsIm9wZXJhdG9yIiwiRmlsdGVyT3BlcmF0b3JVdGlsIiwiZ2V0T3BlcmF0b3IiLCJ1bmRlZmluZWQiLCJSYW5nZU9wZXJhdG9yIiwiY3JlYXRlU2VtYW50aWNEYXRlc0Zyb21Db25kaXRpb25zIiwiZ2V0T3B0aW9uRm9yUHJvcGVydHlXaXRoUmFuZ2VPcGVyYXRvciIsInNlbWFudGljRGF0ZU9wc0V4dCIsIlNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImdldFNlbWFudGljRGF0ZU9wZXJhdGlvbnMiLCJnZXRTZWxlY3Rpb25Gb3JtYXRGb3JOb25SYW5nZU9wZXJhdG9yIiwiU2VtYW50aWNEYXRlcyIsImxvd1ZhbHVlIiwiaGlnaFZhbHVlIiwidmFsdWVzIiwidG9TdHJpbmciLCJnZXRUeXBlSW5mb0ZvckZpbHRlclByb3BlcnR5IiwicHJvcGVydHlJbmZvIiwiZ2V0UHJvcGVydHkiLCJ0eXBlQ29uZmlnIiwibW9kZWxGaWx0ZXIiLCJnZXRNb2RlbEZpbHRlciIsInR5cGVJbnN0YW5jZSIsImJhc2VUeXBlIiwiZmlsdGVycyIsImdldEZpbHRlcnMiLCJleGNsdWRlIiwiVHlwZU1hcCIsImV4dGVybmFsaXplVmFsdWUiLCJnZXRWYWx1ZTEiLCJnZXRWYWx1ZTIiLCJzZWxlY3RPcHRpb25TdGF0ZSIsIkxvZyIsIndhcm5pbmciLCJoaWdoIiwibG93Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBpc0VtcHR5T2JqZWN0IGZyb20gXCJzYXAvYmFzZS91dGlsL2lzRW1wdHlPYmplY3RcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9Qcm9wZXJ0eUluZm9cIjtcbmltcG9ydCB0eXBlIHsgU2VsZWN0T3B0aW9uLCBTZW1hbnRpY0RhdGVDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSBUeXBlQ29uZmlnIGZyb20gXCJzYXAvdWkvbWRjL1R5cGVDb25maWdcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yVXRpbCBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vRmlsdGVyT3BlcmF0b3JVdGlsXCI7XG5pbXBvcnQgdHlwZSBPcGVyYXRvciBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vT3BlcmF0b3JcIjtcbmltcG9ydCBSYW5nZU9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9SYW5nZU9wZXJhdG9yXCI7XG5pbXBvcnQgVHlwZU1hcCBmcm9tIFwic2FwL3VpL21kYy9vZGF0YS92NC9UeXBlTWFwXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUhlbHBlciBmcm9tIFwic2FwL3VpL21kYy91dGlsL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCB0eXBlIFR5cGUgZnJvbSBcInNhcC91aS9tb2RlbC9UeXBlXCI7XG5cbmNvbnN0IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50ID0ge1xuXHQvKipcblx0ICogR2V0IHNlbGVjdGlvbiB2YXJpYW50IGJhc2VkIG9uIHRoZSBmaWx0ZXIgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIGZpbHRlckNvbmRpdGlvbnMgQ29uZmlndXJlIHRoZSBmaWx0ZXIgYmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEBwYXJhbSBwYXJhbXMgUGFyYW1ldGVycyBvZiBwYXJhbWV0cml6ZWQgc2VydmljZXNcblx0ICogQHJldHVybnMgVGhlIGZpbHRlciBjb25kaXRpb25zIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIHNlbGVjdGlvbiB2YXJpYW50IGFuZCByZXR1cm5lZFxuXHQgKi9cblx0Z2V0U2VsZWN0aW9uVmFyaWFudEZyb21Db25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0ZmlsdGVyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10gfCB1bmRlZmluZWQ+LFxuXHRcdHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlcixcblx0XHRwYXJhbXM/OiBzdHJpbmdbXVxuXHQpOiBTZWxlY3Rpb25WYXJpYW50IHtcblx0XHRjb25zdCBzZWxlY3Rpb25WYXJpYW50ID0gbmV3IFNlbGVjdGlvblZhcmlhbnQoKTtcblx0XHRpZiAoIWlzRW1wdHlPYmplY3QoZmlsdGVyQ29uZGl0aW9ucykpIHtcblx0XHRcdGZvciAoY29uc3QgZmlsdGVyS2V5IGluIGZpbHRlckNvbmRpdGlvbnMpIHtcblx0XHRcdFx0Y29uc3QgZmlsdGVyRmllbGRDb25kaXRpb24gPSBmaWx0ZXJDb25kaXRpb25zW2ZpbHRlcktleV07XG5cdFx0XHRcdGlmIChmaWx0ZXJGaWVsZENvbmRpdGlvbj8ubGVuZ3RoKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc2VsZWN0T3B0aW9ucyA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmdldFNlbGVjdGlvbk9wdGlvbnNGcm9tQ29uZGl0aW9uKFxuXHRcdFx0XHRcdFx0ZmlsdGVyRmllbGRDb25kaXRpb24sXG5cdFx0XHRcdFx0XHRmaWx0ZXJLZXksXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eUhlbHBlclxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKHNlbGVjdE9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzYW5pdGl6ZWRGaWx0ZXJLZXkgPSBmaWx0ZXJLZXkucmVwbGFjZSgvXFwqXFwvL2csIFwiLlwiKTtcblx0XHRcdFx0XHRcdC8vIGdldCBwYXJhbWV0ZXJzIGZyb20gZmlsdGVyIGJhclxuXHRcdFx0XHRcdFx0aWYgKHBhcmFtcz8uaW5jbHVkZXMoZmlsdGVyS2V5KSkge1xuXHRcdFx0XHRcdFx0XHQvLyB0cnlpbmcgdG8gZ2VuZXJhdGUgcHJvcGVydGllcyBsaWtlICRQYXJhbWV0ZXIuQ29tcGFueUNvZGUgaWYgQ29tcGFueUNvZGUgaXMgYSBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudC5tYXNzQWRkU2VsZWN0T3B0aW9uKGAkUGFyYW1ldGVyLiR7c2FuaXRpemVkRmlsdGVyS2V5fWAsIHNlbGVjdE9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudC5tYXNzQWRkU2VsZWN0T3B0aW9uKHNhbml0aXplZEZpbHRlcktleSwgc2VsZWN0T3B0aW9ucyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHR9LFxuXHQvKipcblx0ICogQ29tcGFyZSB0d28gU2VsZWN0T3B0aW9uIG9iamVjdHMgYW5kIGNoZWNrIGlmIHRoZXkgYXJlIGVxdWFsLlxuXHQgKiBAcGFyYW0gb3B0aW9uczEgVGhlIGZpcnN0IFNlbGVjdE9wdGlvbiBvYmplY3Rcblx0ICogQHBhcmFtIG9wdGlvbnMyIFRoZSBzZWNvbmQgU2VsZWN0T3B0aW9uIG9iamVjdFxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlXG5cdCAqL1xuXHRjb21wYXJlU2VsZWN0T3B0aW9uczogZnVuY3Rpb24gKG9wdGlvbnMxOiBTZWxlY3RPcHRpb24sIG9wdGlvbnMyOiBTZWxlY3RPcHRpb24pOiBib29sZWFuIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0b3B0aW9uczEuT3B0aW9uID09PSBvcHRpb25zMi5PcHRpb24gJiZcblx0XHRcdG9wdGlvbnMxLlNpZ24gPT09IG9wdGlvbnMyLlNpZ24gJiZcblx0XHRcdG9wdGlvbnMxLkxvdyA9PT0gb3B0aW9uczIuTG93ICYmXG5cdFx0XHRvcHRpb25zMS5IaWdoID09PSBvcHRpb25zMi5IaWdoXG5cdFx0KTtcblx0fSxcblxuXHQvKipcblx0ICogTWVyZ2UgdHdvIHNlbGVjdGlvbiB2YXJpYW50cy5cblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQxIFRoZSBmaXJzdCBzZWxlY3Rpb25WYXJpYW50MSBvYmplY3Rcblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQyIFRoZSBzZWNvbmQgc2VsZWN0aW9uVmFyaWFudCBvYmplY3Rcblx0ICogQHJldHVybnMgVGhlIG1lcmdlZCBzZWxlY3Rpb25WYXJpYW50XG5cdCAqL1xuXHRtZXJnZVNlbGVjdGlvblZhcmlhbnRzOiBmdW5jdGlvbiAoc2VsZWN0aW9uVmFyaWFudDE6IFNlbGVjdGlvblZhcmlhbnQsIHNlbGVjdGlvblZhcmlhbnQyOiBTZWxlY3Rpb25WYXJpYW50KTogU2VsZWN0aW9uVmFyaWFudCB7XG5cdFx0Ly8gQ3JlYXRlIGEgbmV3IFNlbGVjdGlvblZhcmlhbnQgZm9yIHRoZSBtZXJnZWQgcmVzdWx0LCBpbml0aWFsbHkgYSBjbG9uZSBvZiBTZWxlY3Rpb25WYXJpYW50MVxuXHRcdGNvbnN0IG1lcmdlZFNWID0gbmV3IFNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudDEudG9KU09OU3RyaW5nKCkpO1xuXG5cdFx0Ly8gR2V0IHRoZSBwcm9wZXJ0eSBuYW1lcyBmcm9tIFNlbGVjdGlvblZhcmlhbnQyXG5cdFx0Y29uc3QgcHJvcGVydHlOYW1lcyA9IHNlbGVjdGlvblZhcmlhbnQyLmdldFNlbGVjdE9wdGlvbnNQcm9wZXJ0eU5hbWVzKCk7XG5cblx0XHQvLyBLZWVwIHRyYWNrIG9mIGFkZGVkIHByb3BlcnRpZXNcblx0XHRjb25zdCBhZGRlZFByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cblx0XHQvLyBMb29wIHRocm91Z2ggZWFjaCBwcm9wZXJ0eSBpbiBTZWxlY3Rpb25WYXJpYW50MlxuXHRcdGZvciAoY29uc3QgcHJvcE5hbWUgb2YgcHJvcGVydHlOYW1lcykge1xuXHRcdFx0Y29uc3QgY29udHJvbE9wdGlvbnMgPSBzZWxlY3Rpb25WYXJpYW50Mi5nZXRTZWxlY3RPcHRpb24ocHJvcE5hbWUpIHx8IFtdO1xuXHRcdFx0Y29uc3QgbWVyZ2VkT3B0aW9ucyA9IG1lcmdlZFNWLmdldFNlbGVjdE9wdGlvbihwcm9wTmFtZSkgfHwgW107XG5cblx0XHRcdC8vIENoZWNrIGlmIHRoZSBwcm9wZXJ0eSBhbHJlYWR5IGV4aXN0cyBpbiBTZWxlY3Rpb25WYXJpYW50MVxuXHRcdFx0aWYgKCFhZGRlZFByb3BlcnRpZXMuaW5jbHVkZXMocHJvcE5hbWUpKSB7XG5cdFx0XHRcdC8vIElmIG5vdCwgYWRkIHRoZSBlbnRpcmUgcHJvcGVydHkgZnJvbSBTZWxlY3Rpb25WYXJpYW50MlxuXHRcdFx0XHRtZXJnZWRTVi5tYXNzQWRkU2VsZWN0T3B0aW9uKHByb3BOYW1lLCBjb250cm9sT3B0aW9ucyk7XG5cdFx0XHRcdGFkZGVkUHJvcGVydGllcy5wdXNoKHByb3BOYW1lKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIElmIGl0IGV4aXN0cyBpbiBTZWxlY3Rpb25WYXJpYW50MSwgb25seSBhZGQgdGhlIG9wdGlvbnMgdGhhdCBhcmUgbm90IGFscmVhZHkgcHJlc2VudFxuXHRcdFx0XHRmb3IgKGNvbnN0IGNvbnRyb2xPcHRpb24gb2YgY29udHJvbE9wdGlvbnMpIHtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHQhbWVyZ2VkT3B0aW9ucy5zb21lKChtZXJnZWRPcHRpb24pID0+XG5cdFx0XHRcdFx0XHRcdHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmNvbXBhcmVTZWxlY3RPcHRpb25zKG1lcmdlZE9wdGlvbiwgY29udHJvbE9wdGlvbilcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG1lcmdlZE9wdGlvbnMucHVzaChjb250cm9sT3B0aW9uKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0bWVyZ2VkU1YubWFzc0FkZFNlbGVjdE9wdGlvbihwcm9wTmFtZSwgbWVyZ2VkT3B0aW9ucyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1lcmdlZFNWO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gYWRkIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyB0byBzZWxlY3Rpb24gdmFyaWFudC5cblx0ICogQHBhcmFtIHN0YXRlRmlsdGVycyBSZXRyaWV2ZWQgZmlsdGVyIGNvbmRpdGlvbiBmb3IgYSBmaWx0ZXIgZmllbGQgZnJvbSBTdGF0ZVV0aWxzXG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgTmFtZSBvZiB0aGUgZmlsdGVyIGtleVxuXHQgKiBAcGFyYW0gcHJvcGVydHlIZWxwZXIgUHJvcGVydHlIZWxwZXIgb2YgdGhlIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIHNlbGVjdGlvbiBvcHRpb24gYXJyYXkgZm9yIGEgcGFydGljdWxhciBmaWx0ZXIga2V5XG5cdCAqL1xuXHRnZXRTZWxlY3Rpb25PcHRpb25zRnJvbUNvbmRpdGlvbjogZnVuY3Rpb24gKFxuXHRcdHN0YXRlRmlsdGVyczogQ29uZGl0aW9uT2JqZWN0W10sXG5cdFx0ZmlsdGVyS2V5OiBzdHJpbmcsXG5cdFx0cHJvcGVydHlIZWxwZXI6IFByb3BlcnR5SGVscGVyXG5cdCk6IFNlbGVjdE9wdGlvbltdIHtcblx0XHRjb25zdCBzZWxlY3RPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xuXHRcdGZvciAoY29uc3QgY29uZGl0aW9uIG9mIHN0YXRlRmlsdGVycykge1xuXHRcdFx0Y29uc3Qgc2VsZWN0T3B0aW9uID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0aW9uT3B0aW9uKGNvbmRpdGlvbiwgZmlsdGVyS2V5LCBwcm9wZXJ0eUhlbHBlcik7XG5cdFx0XHRpZiAoc2VsZWN0T3B0aW9uKSB7XG5cdFx0XHRcdHNlbGVjdE9wdGlvbnMucHVzaChzZWxlY3RPcHRpb24pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gc2VsZWN0T3B0aW9ucztcblx0fSxcblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgZmlsdGVyIG9wdGlvbiBmb3IgZWFjaCB2YWx1ZS5cblx0ICogQHBhcmFtIGNvbmRpdGlvblxuXHQgKiBAcGFyYW0gZmlsdGVyS2V5IE5hbWUgb2YgdGhlIGZpbHRlciBrZXlcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEByZXR1cm5zIFRoZSBwcm9taXNlIG9mIHRoZSBTZWxlY3Qgb3B0aW9uXG5cdCAqL1xuXHRnZXRTZWxlY3Rpb25PcHRpb246IGZ1bmN0aW9uIChjb25kaXRpb246IENvbmRpdGlvbk9iamVjdCwgZmlsdGVyS2V5OiBzdHJpbmcsIHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlcik6IFNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IHNlbWFudGljRGF0ZXM6IFNlbWFudGljRGF0ZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQ7XG5cdFx0bGV0IGZpbHRlck9wdGlvbjogU2VsZWN0T3B0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdGNvbnN0IG9wZXJhdG9yID0gY29uZGl0aW9uLm9wZXJhdG9yICYmIGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gXCJcIiA/IEZpbHRlck9wZXJhdG9yVXRpbC5nZXRPcGVyYXRvcihjb25kaXRpb24ub3BlcmF0b3IpIDogdW5kZWZpbmVkO1xuXHRcdGlmIChvcGVyYXRvciBpbnN0YW5jZW9mIFJhbmdlT3BlcmF0b3IpIHtcblx0XHRcdHNlbWFudGljRGF0ZXMgPSBzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC5jcmVhdGVTZW1hbnRpY0RhdGVzRnJvbUNvbmRpdGlvbnMoY29uZGl0aW9uKTtcblx0XHRcdGZpbHRlck9wdGlvbiA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmdldE9wdGlvbkZvclByb3BlcnR5V2l0aFJhbmdlT3BlcmF0b3IoXG5cdFx0XHRcdG9wZXJhdG9yLFxuXHRcdFx0XHRjb25kaXRpb24sXG5cdFx0XHRcdGZpbHRlcktleSxcblx0XHRcdFx0cHJvcGVydHlIZWxwZXJcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHNlbWFudGljRGF0ZU9wc0V4dCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5nZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zKCk7XG5cdFx0XHRpZiAoc2VtYW50aWNEYXRlT3BzRXh0LmluY2x1ZGVzKGNvbmRpdGlvbi5vcGVyYXRvcikpIHtcblx0XHRcdFx0c2VtYW50aWNEYXRlcyA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmNyZWF0ZVNlbWFudGljRGF0ZXNGcm9tQ29uZGl0aW9ucyhjb25kaXRpb24pO1xuXHRcdFx0fVxuXHRcdFx0ZmlsdGVyT3B0aW9uID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0aW9uRm9ybWF0Rm9yTm9uUmFuZ2VPcGVyYXRvcihjb25kaXRpb24sIGZpbHRlcktleSk7XG5cdFx0fVxuXHRcdGlmIChmaWx0ZXJPcHRpb24/Lk9wdGlvbikge1xuXHRcdFx0ZmlsdGVyT3B0aW9uLlNlbWFudGljRGF0ZXMgPSBzZW1hbnRpY0RhdGVzID8gc2VtYW50aWNEYXRlcyA6IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIGZpbHRlck9wdGlvbjtcblx0fSxcblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgZmlsdGVyIGNvbmRpdGlvbnMgZm9yIHRoZSBTZWxlY3Qgb3B0aW9uLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIENvbmRpdGlvbiBvYmplY3Rcblx0ICogQHBhcmFtIGZpbHRlcktleSBOYW1lIG9mIHRoZSBmaWx0ZXIga2V5XG5cdCAqIEByZXR1cm5zIFRoZSBTZWxlY3QgT3B0aW9uIG9iamVjdCBvciB1bmRlZmluZWRcblx0ICovXG5cdGdldFNlbGVjdGlvbkZvcm1hdEZvck5vblJhbmdlT3BlcmF0b3I6IGZ1bmN0aW9uIChjb25kaXRpb246IENvbmRpdGlvbk9iamVjdCwgZmlsdGVyS2V5OiBzdHJpbmcpOiBTZWxlY3RPcHRpb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IFtsb3dWYWx1ZSwgaGlnaFZhbHVlXSA9IGNvbmRpdGlvbi52YWx1ZXMgYXMgKHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKVtdO1xuXHRcdHJldHVybiBzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC5nZXRTZWxlY3RPcHRpb24oXG5cdFx0XHRjb25kaXRpb24ub3BlcmF0b3IsXG5cdFx0XHRsb3dWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGxvd1ZhbHVlICE9PSBudWxsID8gbG93VmFsdWUudG9TdHJpbmcoKSA6IFwiXCIsXG5cdFx0XHRoaWdoVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBoaWdoVmFsdWUgIT09IG51bGwgPyBoaWdoVmFsdWUudG9TdHJpbmcoKSA6IG51bGwsXG5cdFx0XHRmaWx0ZXJLZXlcblx0XHQpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHR5cGUtc3BlY2lmaWMgaW5mb3JtYXRpb24gZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgTmFtZSBvZiB0aGUgZmlsdGVyIGtleVxuXHQgKiBAcGFyYW0gcHJvcGVydHlIZWxwZXIgUHJvcGVydHlIZWxwZXIgYW5kIGZpbHRlciBkZWxlZ2F0ZSBjb250cm9sbGVyIG9mIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIG9iamVjdCB3aXRoIHR5cGVDb25maWcgdmFsdWVcblx0ICovXG5cdGdldFR5cGVJbmZvRm9yRmlsdGVyUHJvcGVydHk6IGZ1bmN0aW9uIChmaWx0ZXJLZXk6IHN0cmluZywgcHJvcGVydHlIZWxwZXI6IFByb3BlcnR5SGVscGVyKTogVHlwZUNvbmZpZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gZm9yIGZldyBmaWx0ZXIgZmllbGRzIGtleXMgd2lsbCBub3QgYmUgcHJlc2VudCBoZW5jZSBza2lwIHRob3NlIHByb3BlcnRpZXNcblx0XHRjb25zdCBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUhlbHBlci5nZXRQcm9wZXJ0eShmaWx0ZXJLZXkpIGFzIHVua25vd24gYXMgUHJvcGVydHlJbmZvO1xuXHRcdC8vIFRoaXMgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYmVjYXVzZSB0aGUgZ2V0UHJvcGVydHkgZnVuY3Rpb24gZnJvbSB0aGUgUHJvcGVydHlIZWxwZXIgZG9lcyBub3QgcmV0dXJuIGEgdHlwZUNvbmZpZ1xuXHRcdGxldCB0eXBlQ29uZmlnOiBUeXBlQ29uZmlnIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChwcm9wZXJ0eUluZm8pIHtcblx0XHRcdHR5cGVDb25maWcgPSBwcm9wZXJ0eUluZm8udHlwZUNvbmZpZztcblx0XHR9XG5cdFx0cmV0dXJuIHR5cGVDb25maWc7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgb3B0aW9ucyBmb3IgZGF0ZSByYW5nZSB2YWx1ZXMuXG5cdCAqIEBwYXJhbSBvcGVyYXRvciBPYmplY3QgZm9yIHRoZSBnaXZlbiBvcGVyYXRvciBuYW1lXG5cdCAqIEBwYXJhbSBjb25kaXRpb24gVGhlIFZhbHVlIG9iamVjdCB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIHZhbHVlcyBvZiB0aGUgZmlsdGVyIGNvbmRpdGlvblxuXHQgKiBAcGFyYW0gZmlsdGVyS2V5IE5hbWUgb2YgdGhlIGZpbHRlciBrZXlcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIHNlbGVjdGlvbk9wdGlvbiBmb3IgZmlsdGVyIGZpZWxkXG5cdCAqL1xuXHRnZXRPcHRpb25Gb3JQcm9wZXJ0eVdpdGhSYW5nZU9wZXJhdG9yOiBmdW5jdGlvbiAoXG5cdFx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHRcdGNvbmRpdGlvbjogQ29uZGl0aW9uT2JqZWN0LFxuXHRcdGZpbHRlcktleTogc3RyaW5nLFxuXHRcdHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlclxuXHQpOiBTZWxlY3RPcHRpb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGZpbHRlck9wdGlvbjogU2VsZWN0T3B0aW9uID0ge1xuXHRcdFx0U2lnbjogXCJJXCIsXG5cdFx0XHRPcHRpb246IFwiXCIsXG5cdFx0XHRMb3c6IFwiXCIsXG5cdFx0XHRIaWdoOiBcIlwiXG5cdFx0fTtcblx0XHRjb25zdCB0eXBlQ29uZmlnID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0VHlwZUluZm9Gb3JGaWx0ZXJQcm9wZXJ0eShmaWx0ZXJLZXksIHByb3BlcnR5SGVscGVyKTtcblxuXHRcdC8vIGhhbmRsaW5nIG9mIERhdGUgUmFuZ2VPcGVyYXRvcnNcblx0XHRjb25zdCBtb2RlbEZpbHRlciA9IG9wZXJhdG9yLmdldE1vZGVsRmlsdGVyKFxuXHRcdFx0Y29uZGl0aW9uLFxuXHRcdFx0ZmlsdGVyS2V5LFxuXHRcdFx0KHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IHVuZGVmaW5lZCkgYXMgdW5rbm93biBhcyBUeXBlLFxuXHRcdFx0ZmFsc2UsXG5cdFx0XHR0eXBlQ29uZmlnID8gdHlwZUNvbmZpZy5iYXNlVHlwZSA6IHVuZGVmaW5lZFxuXHRcdCk7XG5cdFx0Y29uc3QgZmlsdGVyczogRmlsdGVyW10gfCB1bmRlZmluZWQgPSBtb2RlbEZpbHRlci5nZXRGaWx0ZXJzKCk7XG5cdFx0aWYgKGZpbHRlcnMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0ZmlsdGVyT3B0aW9uLlNpZ24gPSBvcGVyYXRvci5leGNsdWRlID8gXCJFXCIgOiBcIklcIjtcblx0XHRcdC8vIEZJWE1FIFRob3NlIGFyZSBwcml2YXRlIG1ldGhvZHMgZnJvbSBNRENcblx0XHRcdGZpbHRlck9wdGlvbi5Mb3cgPSBUeXBlTWFwLmV4dGVybmFsaXplVmFsdWUobW9kZWxGaWx0ZXIuZ2V0VmFsdWUxKCksIHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IFwic3RyaW5nXCIpO1xuXHRcdFx0ZmlsdGVyT3B0aW9uLkhpZ2ggPSBUeXBlTWFwLmV4dGVybmFsaXplVmFsdWUobW9kZWxGaWx0ZXIuZ2V0VmFsdWUyKCksIHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IFwic3RyaW5nXCIpO1xuXHRcdFx0ZmlsdGVyT3B0aW9uLk9wdGlvbiA9IG1vZGVsRmlsdGVyLmdldE9wZXJhdG9yKCkgPz8gXCJcIjtcblx0XHR9XG5cdFx0cmV0dXJuIGZpbHRlck9wdGlvbi5PcHRpb24gIT0gXCJcIiA/IGZpbHRlck9wdGlvbiA6IHVuZGVmaW5lZDtcblx0fSxcblxuXHQvKipcblx0ICogR2V0IHNpZ24gYW5kIG9wdGlvbiBvZiBzZWxlY3Rpb24gb3B0aW9uLlxuXHQgKiBAcGFyYW0gb3BlcmF0b3IgVGhlIG9wdGlvbiBvZiBzZWxlY3Rpb24gdmFyaWFudFxuXHQgKiBAcGFyYW0gbG93VmFsdWUgVGhlIHNpbmdsZSB2YWx1ZSBvciB0aGUgbG93ZXIgYm91bmRhcnkgb2YgdGhlIGludGVydmFsOyB0aGUgPGNvZGU+bnVsbDwvY29kZT4gdmFsdWUgaXMgbm90IGFsbG93ZWRcblx0ICogQHBhcmFtIGhpZ2hWYWx1ZSBUaGUgSGlnaCB2YWx1ZSBvZiB0aGUgcmFuZ2U7IGlmIHRoaXMgdmFsdWUgaXMgbm90IG5lY2Vzc2FyeSwgPGNvZGU+bnVsbDwvY29kZT4gaXMgdXNlZDwvbGk+XG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgVGhlIG5hbWUgb2YgdGhlIGZpbHRlciBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgc2VsZWN0aW9uIHN0YXRlXG5cdCAqL1xuXHRnZXRTZWxlY3RPcHRpb246IGZ1bmN0aW9uIChvcGVyYXRvcjogc3RyaW5nLCBsb3dWYWx1ZTogc3RyaW5nLCBoaWdoVmFsdWU6IHN0cmluZyB8IG51bGwsIGZpbHRlcktleTogc3RyaW5nKTogU2VsZWN0T3B0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzZWxlY3RPcHRpb25TdGF0ZSA9IHtcblx0XHRcdE9wdGlvbjogXCJcIixcblx0XHRcdFNpZ246IFwiSVwiLFxuXHRcdFx0TG93OiBsb3dWYWx1ZSxcblx0XHRcdEhpZ2g6IGhpZ2hWYWx1ZVxuXHRcdH07XG5cdFx0c3dpdGNoIChvcGVyYXRvcikge1xuXHRcdFx0Y2FzZSBcIkNvbnRhaW5zXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiQ1BcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuTG93ID0gYCoke3NlbGVjdE9wdGlvblN0YXRlLkxvd30qYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiU3RhcnRzV2l0aFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkNQXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyArPSBcIipcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRW5kc1dpdGhcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJDUFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgPSBgKiR7c2VsZWN0T3B0aW9uU3RhdGUuTG93fWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkJUXCI6XG5cdFx0XHRjYXNlIFwiTEVcIjpcblx0XHRcdGNhc2UgXCJMVFwiOlxuXHRcdFx0Y2FzZSBcIkdUXCI6XG5cdFx0XHRjYXNlIFwiRVFcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gb3BlcmF0b3I7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkRBVEVcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJFUVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJEQVRFUkFOR0VcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJCVFwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJGUk9NXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiR0VcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiVE9cIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJMRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJFRVFcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJFUVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJFbXB0eVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkVRXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyA9IFwiXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5FXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJFUVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOb3RDb250YWluc1wiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkNQXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuTG93ID0gYCoke3NlbGVjdE9wdGlvblN0YXRlLkxvd30qYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTk9UQlRcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJCVFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5TaWduID0gXCJFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5vdFN0YXJ0c1dpdGhcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJDUFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgKz0gXCIqXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTm90RW5kc1dpdGhcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJDUFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgPSBgKiR7c2VsZWN0T3B0aW9uU3RhdGUuTG93fWA7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTm90RW1wdHlcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJFUVwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgPSBcIlwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5TaWduID0gXCJFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5PVExFXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiTEVcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOT1RHRVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkdFXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTk9UTFRcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJMVFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5TaWduID0gXCJFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5PVEdUXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiR1RcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdExvZy53YXJuaW5nKGAke29wZXJhdG9yfSBpcyBub3Qgc3VwcG9ydGVkLiAke2ZpbHRlcktleX0gY291bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBTZWxlY3Rpb24gdmFyaWFudGApO1xuXHRcdH1cblxuXHRcdGlmIChzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gIT09IFwiQlRcIikge1xuXHRcdFx0Ly8gQ2xlYW51cCB0byBhdm9pZCBleGNlcHRpb25zXG5cdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5IaWdoID0gbnVsbDtcblx0XHR9XG5cdFx0cmV0dXJuIHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiAhPT0gXCJcIiA/IHNlbGVjdE9wdGlvblN0YXRlIDogdW5kZWZpbmVkO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIHNlbWFudGljIGRhdGVzIGZyb20gZmlsdGVyIGNvbmRpdGlvbnMuXG5cdCAqIEBwYXJhbSBjb25kaXRpb24gRmlsdGVyIGZpZWxkIGNvbmRpdGlvblxuXHQgKiBAcmV0dXJucyBUaGUgU2VtYW50aWMgZGF0ZSBjb25kaXRpb25zXG5cdCAqL1xuXHRjcmVhdGVTZW1hbnRpY0RhdGVzRnJvbUNvbmRpdGlvbnM6IGZ1bmN0aW9uIChjb25kaXRpb246IENvbmRpdGlvbk9iamVjdCk6IFNlbWFudGljRGF0ZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQge1xuXHRcdGlmICghaXNFbXB0eU9iamVjdChjb25kaXRpb24pKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRoaWdoOiBjb25kaXRpb24udmFsdWVzWzBdICE9PSB1bmRlZmluZWQgJiYgY29uZGl0aW9uLnZhbHVlc1swXSAhPT0gbnVsbCA/IChjb25kaXRpb24udmFsdWVzWzBdIGFzIHN0cmluZykgOiBudWxsLFxuXHRcdFx0XHRsb3c6IGNvbmRpdGlvbi52YWx1ZXNbMV0gIT09IHVuZGVmaW5lZCAmJiBjb25kaXRpb24udmFsdWVzWzFdICE9PSBudWxsID8gKGNvbmRpdGlvbi52YWx1ZXNbMV0gYXMgc3RyaW5nKSA6IG51bGwsXG5cdFx0XHRcdG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3Jcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztFQWdCQSxNQUFNQSw2QkFBNkIsR0FBRztJQUNyQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyxpQ0FBaUMsRUFBRSxTQUFBQSxDQUNsQ0MsZ0JBQStELEVBQy9EQyxjQUE4QixFQUM5QkMsTUFBaUIsRUFDRTtNQUNuQixNQUFNQyxnQkFBZ0IsR0FBRyxJQUFJQyxnQkFBZ0IsQ0FBQyxDQUFDO01BQy9DLElBQUksQ0FBQ0MsYUFBYSxDQUFDTCxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3JDLEtBQUssTUFBTU0sU0FBUyxJQUFJTixnQkFBZ0IsRUFBRTtVQUN6QyxNQUFNTyxvQkFBb0IsR0FBR1AsZ0JBQWdCLENBQUNNLFNBQVMsQ0FBQztVQUN4RCxJQUFJQyxvQkFBb0IsRUFBRUMsTUFBTSxFQUFFO1lBQ2pDLE1BQU1DLGFBQWEsR0FBR1gsNkJBQTZCLENBQUNZLGdDQUFnQyxDQUNuRkgsb0JBQW9CLEVBQ3BCRCxTQUFTLEVBQ1RMLGNBQ0QsQ0FBQztZQUNELElBQUlRLGFBQWEsQ0FBQ0QsTUFBTSxFQUFFO2NBQ3pCLE1BQU1HLGtCQUFrQixHQUFHTCxTQUFTLENBQUNNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO2NBQzFEO2NBQ0EsSUFBSVYsTUFBTSxFQUFFVyxRQUFRLENBQUNQLFNBQVMsQ0FBQyxFQUFFO2dCQUNoQztnQkFDQUgsZ0JBQWdCLENBQUNXLG1CQUFtQixDQUFDLGNBQWNILGtCQUFrQixFQUFFLEVB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
|
|
307
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnRGcm9tQ29uZGl0aW9ucyIsImZpbHRlckNvbmRpdGlvbnMiLCJwcm9wZXJ0eUhlbHBlciIsInBhcmFtcyIsInNlbGVjdGlvblZhcmlhbnQiLCJTZWxlY3Rpb25WYXJpYW50IiwiaXNFbXB0eU9iamVjdCIsImZpbHRlcktleSIsImZpbHRlckZpZWxkQ29uZGl0aW9uIiwibGVuZ3RoIiwic2VsZWN0T3B0aW9ucyIsImdldFNlbGVjdGlvbk9wdGlvbnNGcm9tQ29uZGl0aW9uIiwic2FuaXRpemVkRmlsdGVyS2V5IiwicmVwbGFjZSIsImluY2x1ZGVzIiwibWFzc0FkZFNlbGVjdE9wdGlvbiIsImNvbXBhcmVTZWxlY3RPcHRpb25zIiwib3B0aW9uczEiLCJvcHRpb25zMiIsIk9wdGlvbiIsIlNpZ24iLCJMb3ciLCJIaWdoIiwibWVyZ2VTZWxlY3Rpb25WYXJpYW50cyIsInNlbGVjdGlvblZhcmlhbnQxIiwic2VsZWN0aW9uVmFyaWFudDIiLCJtZXJnZWRTViIsInRvSlNPTlN0cmluZyIsInByb3BlcnR5TmFtZXMiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImFkZGVkUHJvcGVydGllcyIsInByb3BOYW1lIiwiY29udHJvbE9wdGlvbnMiLCJnZXRTZWxlY3RPcHRpb24iLCJtZXJnZWRPcHRpb25zIiwicHVzaCIsImNvbnRyb2xPcHRpb24iLCJzb21lIiwibWVyZ2VkT3B0aW9uIiwic3RhdGVGaWx0ZXJzIiwiY29uZGl0aW9uIiwic2VsZWN0T3B0aW9uIiwiZ2V0U2VsZWN0aW9uT3B0aW9uIiwic2VtYW50aWNEYXRlcyIsImZpbHRlck9wdGlvbiIsIm9wZXJhdG9yIiwiRmlsdGVyT3BlcmF0b3JVdGlsIiwiZ2V0T3BlcmF0b3IiLCJ1bmRlZmluZWQiLCJSYW5nZU9wZXJhdG9yIiwiY3JlYXRlU2VtYW50aWNEYXRlc0Zyb21Db25kaXRpb25zIiwiZ2V0T3B0aW9uRm9yUHJvcGVydHlXaXRoUmFuZ2VPcGVyYXRvciIsInNlbWFudGljRGF0ZU9wc0V4dCIsIlNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImdldFNlbWFudGljRGF0ZU9wZXJhdGlvbnMiLCJnZXRTZWxlY3Rpb25Gb3JtYXRGb3JOb25SYW5nZU9wZXJhdG9yIiwiU2VtYW50aWNEYXRlcyIsImxvd1ZhbHVlIiwiaGlnaFZhbHVlIiwidmFsdWVzIiwidG9TdHJpbmciLCJnZXRUeXBlSW5mb0ZvckZpbHRlclByb3BlcnR5IiwicHJvcGVydHlJbmZvIiwiZ2V0UHJvcGVydHkiLCJ0eXBlQ29uZmlnIiwibW9kZWxGaWx0ZXIiLCJnZXRNb2RlbEZpbHRlciIsInR5cGVJbnN0YW5jZSIsImJhc2VUeXBlIiwiZmlsdGVycyIsImdldEZpbHRlcnMiLCJleGNsdWRlIiwiVHlwZU1hcCIsImV4dGVybmFsaXplVmFsdWUiLCJnZXRWYWx1ZTEiLCJnZXRWYWx1ZTIiLCJzZWxlY3RPcHRpb25TdGF0ZSIsIkxvZyIsIndhcm5pbmciLCJoaWdoIiwibG93Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBpc0VtcHR5T2JqZWN0IGZyb20gXCJzYXAvYmFzZS91dGlsL2lzRW1wdHlPYmplY3RcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9Qcm9wZXJ0eUluZm9cIjtcbmltcG9ydCB0eXBlIHsgU2VsZWN0T3B0aW9uLCBTZW1hbnRpY0RhdGVDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSBUeXBlQ29uZmlnIGZyb20gXCJzYXAvdWkvbWRjL1R5cGVDb25maWdcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yVXRpbCBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vRmlsdGVyT3BlcmF0b3JVdGlsXCI7XG5pbXBvcnQgdHlwZSBPcGVyYXRvciBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vT3BlcmF0b3JcIjtcbmltcG9ydCBSYW5nZU9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9SYW5nZU9wZXJhdG9yXCI7XG5pbXBvcnQgVHlwZU1hcCBmcm9tIFwic2FwL3VpL21kYy9vZGF0YS92NC9UeXBlTWFwXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUhlbHBlciBmcm9tIFwic2FwL3VpL21kYy91dGlsL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCB0eXBlIFR5cGUgZnJvbSBcInNhcC91aS9tb2RlbC9UeXBlXCI7XG5cbmNvbnN0IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50ID0ge1xuXHQvKipcblx0ICogR2V0IHNlbGVjdGlvbiB2YXJpYW50IGJhc2VkIG9uIHRoZSBmaWx0ZXIgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIGZpbHRlckNvbmRpdGlvbnMgQ29uZmlndXJlIHRoZSBmaWx0ZXIgYmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEBwYXJhbSBwYXJhbXMgUGFyYW1ldGVycyBvZiBwYXJhbWV0cml6ZWQgc2VydmljZXNcblx0ICogQHJldHVybnMgVGhlIGZpbHRlciBjb25kaXRpb25zIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIHNlbGVjdGlvbiB2YXJpYW50IGFuZCByZXR1cm5lZFxuXHQgKi9cblx0Z2V0U2VsZWN0aW9uVmFyaWFudEZyb21Db25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0ZmlsdGVyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10gfCB1bmRlZmluZWQ+LFxuXHRcdHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlcixcblx0XHRwYXJhbXM/OiBzdHJpbmdbXVxuXHQpOiBTZWxlY3Rpb25WYXJpYW50IHtcblx0XHRjb25zdCBzZWxlY3Rpb25WYXJpYW50ID0gbmV3IFNlbGVjdGlvblZhcmlhbnQoKTtcblx0XHRpZiAoIWlzRW1wdHlPYmplY3QoZmlsdGVyQ29uZGl0aW9ucykpIHtcblx0XHRcdGZvciAoY29uc3QgZmlsdGVyS2V5IGluIGZpbHRlckNvbmRpdGlvbnMpIHtcblx0XHRcdFx0Y29uc3QgZmlsdGVyRmllbGRDb25kaXRpb24gPSBmaWx0ZXJDb25kaXRpb25zW2ZpbHRlcktleV07XG5cdFx0XHRcdGlmIChmaWx0ZXJGaWVsZENvbmRpdGlvbj8ubGVuZ3RoKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc2VsZWN0T3B0aW9ucyA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmdldFNlbGVjdGlvbk9wdGlvbnNGcm9tQ29uZGl0aW9uKFxuXHRcdFx0XHRcdFx0ZmlsdGVyRmllbGRDb25kaXRpb24sXG5cdFx0XHRcdFx0XHRmaWx0ZXJLZXksXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eUhlbHBlclxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKHNlbGVjdE9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzYW5pdGl6ZWRGaWx0ZXJLZXkgPSBmaWx0ZXJLZXkucmVwbGFjZSgvXFwqXFwvL2csIFwiLlwiKTtcblx0XHRcdFx0XHRcdC8vIGdldCBwYXJhbWV0ZXJzIGZyb20gZmlsdGVyIGJhclxuXHRcdFx0XHRcdFx0aWYgKHBhcmFtcz8uaW5jbHVkZXMoZmlsdGVyS2V5KSkge1xuXHRcdFx0XHRcdFx0XHQvLyB0cnlpbmcgdG8gZ2VuZXJhdGUgcHJvcGVydGllcyBsaWtlICRQYXJhbWV0ZXIuQ29tcGFueUNvZGUgaWYgQ29tcGFueUNvZGUgaXMgYSBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudC5tYXNzQWRkU2VsZWN0T3B0aW9uKGAkUGFyYW1ldGVyLiR7c2FuaXRpemVkRmlsdGVyS2V5fWAsIHNlbGVjdE9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudC5tYXNzQWRkU2VsZWN0T3B0aW9uKHNhbml0aXplZEZpbHRlcktleSwgc2VsZWN0T3B0aW9ucyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHR9LFxuXHQvKipcblx0ICogQ29tcGFyZSB0d28gU2VsZWN0T3B0aW9uIG9iamVjdHMgYW5kIGNoZWNrIGlmIHRoZXkgYXJlIGVxdWFsLlxuXHQgKiBAcGFyYW0gb3B0aW9uczEgVGhlIGZpcnN0IFNlbGVjdE9wdGlvbiBvYmplY3Rcblx0ICogQHBhcmFtIG9wdGlvbnMyIFRoZSBzZWNvbmQgU2VsZWN0T3B0aW9uIG9iamVjdFxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlXG5cdCAqL1xuXHRjb21wYXJlU2VsZWN0T3B0aW9uczogZnVuY3Rpb24gKG9wdGlvbnMxOiBTZWxlY3RPcHRpb24sIG9wdGlvbnMyOiBTZWxlY3RPcHRpb24pOiBib29sZWFuIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0b3B0aW9uczEuT3B0aW9uID09PSBvcHRpb25zMi5PcHRpb24gJiZcblx0XHRcdG9wdGlvbnMxLlNpZ24gPT09IG9wdGlvbnMyLlNpZ24gJiZcblx0XHRcdG9wdGlvbnMxLkxvdyA9PT0gb3B0aW9uczIuTG93ICYmXG5cdFx0XHRvcHRpb25zMS5IaWdoID09PSBvcHRpb25zMi5IaWdoXG5cdFx0KTtcblx0fSxcblxuXHQvKipcblx0ICogTWVyZ2UgdHdvIHNlbGVjdGlvbiB2YXJpYW50cy5cblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQxIFRoZSBmaXJzdCBzZWxlY3Rpb25WYXJpYW50MSBvYmplY3Rcblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQyIFRoZSBzZWNvbmQgc2VsZWN0aW9uVmFyaWFudCBvYmplY3Rcblx0ICogQHJldHVybnMgVGhlIG1lcmdlZCBzZWxlY3Rpb25WYXJpYW50XG5cdCAqL1xuXHRtZXJnZVNlbGVjdGlvblZhcmlhbnRzOiBmdW5jdGlvbiAoc2VsZWN0aW9uVmFyaWFudDE6IFNlbGVjdGlvblZhcmlhbnQsIHNlbGVjdGlvblZhcmlhbnQyOiBTZWxlY3Rpb25WYXJpYW50KTogU2VsZWN0aW9uVmFyaWFudCB7XG5cdFx0Ly8gQ3JlYXRlIGEgbmV3IFNlbGVjdGlvblZhcmlhbnQgZm9yIHRoZSBtZXJnZWQgcmVzdWx0LCBpbml0aWFsbHkgYSBjbG9uZSBvZiBTZWxlY3Rpb25WYXJpYW50MVxuXHRcdGNvbnN0IG1lcmdlZFNWID0gbmV3IFNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudDEudG9KU09OU3RyaW5nKCkpO1xuXG5cdFx0Ly8gR2V0IHRoZSBwcm9wZXJ0eSBuYW1lcyBmcm9tIFNlbGVjdGlvblZhcmlhbnQyXG5cdFx0Y29uc3QgcHJvcGVydHlOYW1lcyA9IHNlbGVjdGlvblZhcmlhbnQyLmdldFNlbGVjdE9wdGlvbnNQcm9wZXJ0eU5hbWVzKCk7XG5cblx0XHQvLyBLZWVwIHRyYWNrIG9mIGFkZGVkIHByb3BlcnRpZXNcblx0XHRjb25zdCBhZGRlZFByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cblx0XHQvLyBMb29wIHRocm91Z2ggZWFjaCBwcm9wZXJ0eSBpbiBTZWxlY3Rpb25WYXJpYW50MlxuXHRcdGZvciAoY29uc3QgcHJvcE5hbWUgb2YgcHJvcGVydHlOYW1lcykge1xuXHRcdFx0Y29uc3QgY29udHJvbE9wdGlvbnMgPSBzZWxlY3Rpb25WYXJpYW50Mi5nZXRTZWxlY3RPcHRpb24ocHJvcE5hbWUpIHx8IFtdO1xuXHRcdFx0Y29uc3QgbWVyZ2VkT3B0aW9ucyA9IG1lcmdlZFNWLmdldFNlbGVjdE9wdGlvbihwcm9wTmFtZSkgfHwgW107XG5cblx0XHRcdC8vIENoZWNrIGlmIHRoZSBwcm9wZXJ0eSBhbHJlYWR5IGV4aXN0cyBpbiBTZWxlY3Rpb25WYXJpYW50MVxuXHRcdFx0aWYgKCFhZGRlZFByb3BlcnRpZXMuaW5jbHVkZXMocHJvcE5hbWUpKSB7XG5cdFx0XHRcdC8vIElmIG5vdCwgYWRkIHRoZSBlbnRpcmUgcHJvcGVydHkgZnJvbSBTZWxlY3Rpb25WYXJpYW50MlxuXHRcdFx0XHRtZXJnZWRTVi5tYXNzQWRkU2VsZWN0T3B0aW9uKHByb3BOYW1lLCBjb250cm9sT3B0aW9ucyk7XG5cdFx0XHRcdGFkZGVkUHJvcGVydGllcy5wdXNoKHByb3BOYW1lKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIElmIGl0IGV4aXN0cyBpbiBTZWxlY3Rpb25WYXJpYW50MSwgb25seSBhZGQgdGhlIG9wdGlvbnMgdGhhdCBhcmUgbm90IGFscmVhZHkgcHJlc2VudFxuXHRcdFx0XHRmb3IgKGNvbnN0IGNvbnRyb2xPcHRpb24gb2YgY29udHJvbE9wdGlvbnMpIHtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHQhbWVyZ2VkT3B0aW9ucy5zb21lKChtZXJnZWRPcHRpb24pID0+XG5cdFx0XHRcdFx0XHRcdHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmNvbXBhcmVTZWxlY3RPcHRpb25zKG1lcmdlZE9wdGlvbiwgY29udHJvbE9wdGlvbilcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG1lcmdlZE9wdGlvbnMucHVzaChjb250cm9sT3B0aW9uKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0bWVyZ2VkU1YubWFzc0FkZFNlbGVjdE9wdGlvbihwcm9wTmFtZSwgbWVyZ2VkT3B0aW9ucyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1lcmdlZFNWO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gYWRkIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyB0byBzZWxlY3Rpb24gdmFyaWFudC5cblx0ICogQHBhcmFtIHN0YXRlRmlsdGVycyBSZXRyaWV2ZWQgZmlsdGVyIGNvbmRpdGlvbiBmb3IgYSBmaWx0ZXIgZmllbGQgZnJvbSBTdGF0ZVV0aWxzXG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgTmFtZSBvZiB0aGUgZmlsdGVyIGtleVxuXHQgKiBAcGFyYW0gcHJvcGVydHlIZWxwZXIgUHJvcGVydHlIZWxwZXIgb2YgdGhlIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIHNlbGVjdGlvbiBvcHRpb24gYXJyYXkgZm9yIGEgcGFydGljdWxhciBmaWx0ZXIga2V5XG5cdCAqL1xuXHRnZXRTZWxlY3Rpb25PcHRpb25zRnJvbUNvbmRpdGlvbjogZnVuY3Rpb24gKFxuXHRcdHN0YXRlRmlsdGVyczogQ29uZGl0aW9uT2JqZWN0W10sXG5cdFx0ZmlsdGVyS2V5OiBzdHJpbmcsXG5cdFx0cHJvcGVydHlIZWxwZXI6IFByb3BlcnR5SGVscGVyXG5cdCk6IFNlbGVjdE9wdGlvbltdIHtcblx0XHRjb25zdCBzZWxlY3RPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xuXHRcdGZvciAoY29uc3QgY29uZGl0aW9uIG9mIHN0YXRlRmlsdGVycykge1xuXHRcdFx0Y29uc3Qgc2VsZWN0T3B0aW9uID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0aW9uT3B0aW9uKGNvbmRpdGlvbiwgZmlsdGVyS2V5LCBwcm9wZXJ0eUhlbHBlcik7XG5cdFx0XHRpZiAoc2VsZWN0T3B0aW9uKSB7XG5cdFx0XHRcdHNlbGVjdE9wdGlvbnMucHVzaChzZWxlY3RPcHRpb24pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gc2VsZWN0T3B0aW9ucztcblx0fSxcblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgZmlsdGVyIG9wdGlvbiBmb3IgZWFjaCB2YWx1ZS5cblx0ICogQHBhcmFtIGNvbmRpdGlvblxuXHQgKiBAcGFyYW0gZmlsdGVyS2V5IE5hbWUgb2YgdGhlIGZpbHRlciBrZXlcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEByZXR1cm5zIFRoZSBwcm9taXNlIG9mIHRoZSBTZWxlY3Qgb3B0aW9uXG5cdCAqL1xuXHRnZXRTZWxlY3Rpb25PcHRpb246IGZ1bmN0aW9uIChjb25kaXRpb246IENvbmRpdGlvbk9iamVjdCwgZmlsdGVyS2V5OiBzdHJpbmcsIHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlcik6IFNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IHNlbWFudGljRGF0ZXM6IFNlbWFudGljRGF0ZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQ7XG5cdFx0bGV0IGZpbHRlck9wdGlvbjogU2VsZWN0T3B0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdGNvbnN0IG9wZXJhdG9yID0gY29uZGl0aW9uLm9wZXJhdG9yICYmIGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gXCJcIiA/IEZpbHRlck9wZXJhdG9yVXRpbC5nZXRPcGVyYXRvcihjb25kaXRpb24ub3BlcmF0b3IpIDogdW5kZWZpbmVkO1xuXHRcdGlmIChvcGVyYXRvciBpbnN0YW5jZW9mIFJhbmdlT3BlcmF0b3IpIHtcblx0XHRcdHNlbWFudGljRGF0ZXMgPSBzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC5jcmVhdGVTZW1hbnRpY0RhdGVzRnJvbUNvbmRpdGlvbnMoY29uZGl0aW9uKTtcblx0XHRcdGZpbHRlck9wdGlvbiA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmdldE9wdGlvbkZvclByb3BlcnR5V2l0aFJhbmdlT3BlcmF0b3IoXG5cdFx0XHRcdG9wZXJhdG9yLFxuXHRcdFx0XHRjb25kaXRpb24sXG5cdFx0XHRcdGZpbHRlcktleSxcblx0XHRcdFx0cHJvcGVydHlIZWxwZXJcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHNlbWFudGljRGF0ZU9wc0V4dCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5nZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zKCk7XG5cdFx0XHRpZiAoc2VtYW50aWNEYXRlT3BzRXh0LmluY2x1ZGVzKGNvbmRpdGlvbi5vcGVyYXRvcikpIHtcblx0XHRcdFx0c2VtYW50aWNEYXRlcyA9IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50LmNyZWF0ZVNlbWFudGljRGF0ZXNGcm9tQ29uZGl0aW9ucyhjb25kaXRpb24pO1xuXHRcdFx0fVxuXHRcdFx0ZmlsdGVyT3B0aW9uID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0aW9uRm9ybWF0Rm9yTm9uUmFuZ2VPcGVyYXRvcihjb25kaXRpb24sIGZpbHRlcktleSk7XG5cdFx0fVxuXHRcdGlmIChmaWx0ZXJPcHRpb24/Lk9wdGlvbikge1xuXHRcdFx0ZmlsdGVyT3B0aW9uLlNlbWFudGljRGF0ZXMgPSBzZW1hbnRpY0RhdGVzID8gc2VtYW50aWNEYXRlcyA6IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIGZpbHRlck9wdGlvbjtcblx0fSxcblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgZmlsdGVyIGNvbmRpdGlvbnMgZm9yIHRoZSBTZWxlY3Qgb3B0aW9uLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uIENvbmRpdGlvbiBvYmplY3Rcblx0ICogQHBhcmFtIGZpbHRlcktleSBOYW1lIG9mIHRoZSBmaWx0ZXIga2V5XG5cdCAqIEByZXR1cm5zIFRoZSBTZWxlY3QgT3B0aW9uIG9iamVjdCBvciB1bmRlZmluZWRcblx0ICovXG5cdGdldFNlbGVjdGlvbkZvcm1hdEZvck5vblJhbmdlT3BlcmF0b3I6IGZ1bmN0aW9uIChjb25kaXRpb246IENvbmRpdGlvbk9iamVjdCwgZmlsdGVyS2V5OiBzdHJpbmcpOiBTZWxlY3RPcHRpb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IFtsb3dWYWx1ZSwgaGlnaFZhbHVlXSA9IGNvbmRpdGlvbi52YWx1ZXMgYXMgKHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKVtdO1xuXHRcdHJldHVybiBzdGF0ZUZpbHRlclRvU2VsZWN0aW9uVmFyaWFudC5nZXRTZWxlY3RPcHRpb24oXG5cdFx0XHRjb25kaXRpb24ub3BlcmF0b3IsXG5cdFx0XHRsb3dWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGxvd1ZhbHVlICE9PSBudWxsID8gbG93VmFsdWUudG9TdHJpbmcoKSA6IFwiXCIsXG5cdFx0XHRoaWdoVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBoaWdoVmFsdWUgIT09IG51bGwgPyBoaWdoVmFsdWUudG9TdHJpbmcoKSA6IG51bGwsXG5cdFx0XHRmaWx0ZXJLZXlcblx0XHQpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHR5cGUtc3BlY2lmaWMgaW5mb3JtYXRpb24gZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgTmFtZSBvZiB0aGUgZmlsdGVyIGtleVxuXHQgKiBAcGFyYW0gcHJvcGVydHlIZWxwZXIgUHJvcGVydHlIZWxwZXIgYW5kIGZpbHRlciBkZWxlZ2F0ZSBjb250cm9sbGVyIG9mIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIG9iamVjdCB3aXRoIHR5cGVDb25maWcgdmFsdWVcblx0ICovXG5cdGdldFR5cGVJbmZvRm9yRmlsdGVyUHJvcGVydHk6IGZ1bmN0aW9uIChmaWx0ZXJLZXk6IHN0cmluZywgcHJvcGVydHlIZWxwZXI6IFByb3BlcnR5SGVscGVyKTogVHlwZUNvbmZpZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gZm9yIGZldyBmaWx0ZXIgZmllbGRzIGtleXMgd2lsbCBub3QgYmUgcHJlc2VudCBoZW5jZSBza2lwIHRob3NlIHByb3BlcnRpZXNcblx0XHRjb25zdCBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUhlbHBlci5nZXRQcm9wZXJ0eShmaWx0ZXJLZXkpIGFzIHVua25vd24gYXMgUHJvcGVydHlJbmZvO1xuXHRcdC8vIFRoaXMgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYmVjYXVzZSB0aGUgZ2V0UHJvcGVydHkgZnVuY3Rpb24gZnJvbSB0aGUgUHJvcGVydHlIZWxwZXIgZG9lcyBub3QgcmV0dXJuIGEgdHlwZUNvbmZpZ1xuXHRcdGxldCB0eXBlQ29uZmlnOiBUeXBlQ29uZmlnIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChwcm9wZXJ0eUluZm8pIHtcblx0XHRcdHR5cGVDb25maWcgPSBwcm9wZXJ0eUluZm8udHlwZUNvbmZpZztcblx0XHR9XG5cdFx0cmV0dXJuIHR5cGVDb25maWc7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZSB0aGUgb3B0aW9ucyBmb3IgZGF0ZSByYW5nZSB2YWx1ZXMuXG5cdCAqIEBwYXJhbSBvcGVyYXRvciBPYmplY3QgZm9yIHRoZSBnaXZlbiBvcGVyYXRvciBuYW1lXG5cdCAqIEBwYXJhbSBjb25kaXRpb24gVGhlIFZhbHVlIG9iamVjdCB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIHZhbHVlcyBvZiB0aGUgZmlsdGVyIGNvbmRpdGlvblxuXHQgKiBAcGFyYW0gZmlsdGVyS2V5IE5hbWUgb2YgdGhlIGZpbHRlciBrZXlcblx0ICogQHBhcmFtIHByb3BlcnR5SGVscGVyIFByb3BlcnR5SGVscGVyIG9mIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgVGhlIHNlbGVjdGlvbk9wdGlvbiBmb3IgZmlsdGVyIGZpZWxkXG5cdCAqL1xuXHRnZXRPcHRpb25Gb3JQcm9wZXJ0eVdpdGhSYW5nZU9wZXJhdG9yOiBmdW5jdGlvbiAoXG5cdFx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHRcdGNvbmRpdGlvbjogQ29uZGl0aW9uT2JqZWN0LFxuXHRcdGZpbHRlcktleTogc3RyaW5nLFxuXHRcdHByb3BlcnR5SGVscGVyOiBQcm9wZXJ0eUhlbHBlclxuXHQpOiBTZWxlY3RPcHRpb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGZpbHRlck9wdGlvbjogU2VsZWN0T3B0aW9uID0ge1xuXHRcdFx0U2lnbjogXCJJXCIsXG5cdFx0XHRPcHRpb246IFwiXCIsXG5cdFx0XHRMb3c6IFwiXCIsXG5cdFx0XHRIaWdoOiBcIlwiXG5cdFx0fTtcblx0XHRjb25zdCB0eXBlQ29uZmlnID0gc3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnQuZ2V0VHlwZUluZm9Gb3JGaWx0ZXJQcm9wZXJ0eShmaWx0ZXJLZXksIHByb3BlcnR5SGVscGVyKTtcblxuXHRcdC8vIGhhbmRsaW5nIG9mIERhdGUgUmFuZ2VPcGVyYXRvcnNcblx0XHRjb25zdCBtb2RlbEZpbHRlciA9IG9wZXJhdG9yLmdldE1vZGVsRmlsdGVyKFxuXHRcdFx0Y29uZGl0aW9uLFxuXHRcdFx0ZmlsdGVyS2V5LFxuXHRcdFx0KHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IHVuZGVmaW5lZCkgYXMgdW5rbm93biBhcyBUeXBlLFxuXHRcdFx0ZmFsc2UsXG5cdFx0XHR0eXBlQ29uZmlnID8gdHlwZUNvbmZpZy5iYXNlVHlwZSA6IHVuZGVmaW5lZFxuXHRcdCk7XG5cdFx0Y29uc3QgZmlsdGVyczogRmlsdGVyW10gfCB1bmRlZmluZWQgPSBtb2RlbEZpbHRlci5nZXRGaWx0ZXJzKCk7XG5cdFx0aWYgKGZpbHRlcnMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0ZmlsdGVyT3B0aW9uLlNpZ24gPSBvcGVyYXRvci5leGNsdWRlID8gXCJFXCIgOiBcIklcIjtcblx0XHRcdC8vIEZJWE1FIFRob3NlIGFyZSBwcml2YXRlIG1ldGhvZHMgZnJvbSBNRENcblx0XHRcdGZpbHRlck9wdGlvbi5Mb3cgPSBUeXBlTWFwLmV4dGVybmFsaXplVmFsdWUobW9kZWxGaWx0ZXIuZ2V0VmFsdWUxKCksIHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IFwic3RyaW5nXCIpO1xuXHRcdFx0ZmlsdGVyT3B0aW9uLkhpZ2ggPSBUeXBlTWFwLmV4dGVybmFsaXplVmFsdWUobW9kZWxGaWx0ZXIuZ2V0VmFsdWUyKCksIHR5cGVDb25maWcgPyB0eXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IFwic3RyaW5nXCIpO1xuXHRcdFx0ZmlsdGVyT3B0aW9uLk9wdGlvbiA9IG1vZGVsRmlsdGVyLmdldE9wZXJhdG9yKCkgPz8gXCJcIjtcblx0XHR9XG5cdFx0cmV0dXJuIGZpbHRlck9wdGlvbi5PcHRpb24gIT0gXCJcIiA/IGZpbHRlck9wdGlvbiA6IHVuZGVmaW5lZDtcblx0fSxcblxuXHQvKipcblx0ICogR2V0IHNpZ24gYW5kIG9wdGlvbiBvZiBzZWxlY3Rpb24gb3B0aW9uLlxuXHQgKiBAcGFyYW0gb3BlcmF0b3IgVGhlIG9wdGlvbiBvZiBzZWxlY3Rpb24gdmFyaWFudFxuXHQgKiBAcGFyYW0gbG93VmFsdWUgVGhlIHNpbmdsZSB2YWx1ZSBvciB0aGUgbG93ZXIgYm91bmRhcnkgb2YgdGhlIGludGVydmFsOyB0aGUgPGNvZGU+bnVsbDwvY29kZT4gdmFsdWUgaXMgbm90IGFsbG93ZWRcblx0ICogQHBhcmFtIGhpZ2hWYWx1ZSBUaGUgSGlnaCB2YWx1ZSBvZiB0aGUgcmFuZ2U7IGlmIHRoaXMgdmFsdWUgaXMgbm90IG5lY2Vzc2FyeSwgPGNvZGU+bnVsbDwvY29kZT4gaXMgdXNlZDwvbGk+XG5cdCAqIEBwYXJhbSBmaWx0ZXJLZXkgVGhlIG5hbWUgb2YgdGhlIGZpbHRlciBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgc2VsZWN0aW9uIHN0YXRlXG5cdCAqL1xuXHRnZXRTZWxlY3RPcHRpb246IGZ1bmN0aW9uIChvcGVyYXRvcjogc3RyaW5nLCBsb3dWYWx1ZTogc3RyaW5nLCBoaWdoVmFsdWU6IHN0cmluZyB8IG51bGwsIGZpbHRlcktleTogc3RyaW5nKTogU2VsZWN0T3B0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzZWxlY3RPcHRpb25TdGF0ZSA9IHtcblx0XHRcdE9wdGlvbjogXCJcIixcblx0XHRcdFNpZ246IFwiSVwiLFxuXHRcdFx0TG93OiBsb3dWYWx1ZSxcblx0XHRcdEhpZ2g6IGhpZ2hWYWx1ZVxuXHRcdH07XG5cdFx0c3dpdGNoIChvcGVyYXRvcikge1xuXHRcdFx0Y2FzZSBcIkNvbnRhaW5zXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiQ1BcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuTG93ID0gYCoke3NlbGVjdE9wdGlvblN0YXRlLkxvd30qYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiU3RhcnRzV2l0aFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkNQXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyArPSBcIipcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRW5kc1dpdGhcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJDUFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgPSBgKiR7c2VsZWN0T3B0aW9uU3RhdGUuTG93fWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkJUXCI6XG5cdFx0XHRjYXNlIFwiTEVcIjpcblx0XHRcdGNhc2UgXCJMVFwiOlxuXHRcdFx0Y2FzZSBcIkdUXCI6XG5cdFx0XHRjYXNlIFwiR0VcIjpcblx0XHRcdGNhc2UgXCJFUVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBvcGVyYXRvcjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiREFURVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkVRXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkRBVEVSQU5HRVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkJUXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkZST01cIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJHRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJUT1wiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkxFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkVFUVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkVRXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkVtcHR5XCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiRVFcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuTG93ID0gXCJcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTkVcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkVRXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5vdENvbnRhaW5zXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiQ1BcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5Mb3cgPSBgKiR7c2VsZWN0T3B0aW9uU3RhdGUuTG93fSpgO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOT1RCVFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkJUXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTm90U3RhcnRzV2l0aFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkNQXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyArPSBcIipcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOb3RFbmRzV2l0aFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkNQXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyA9IGAqJHtzZWxlY3RPcHRpb25TdGF0ZS5Mb3d9YDtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOb3RFbXB0eVwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkVRXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkxvdyA9IFwiXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTk9UTEVcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJMRVwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5TaWduID0gXCJFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIk5PVEdFXCI6XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiA9IFwiR0VcIjtcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuU2lnbiA9IFwiRVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJOT1RMVFwiOlxuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5PcHRpb24gPSBcIkxUXCI7XG5cdFx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLlNpZ24gPSBcIkVcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiTk9UR1RcIjpcblx0XHRcdFx0c2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uID0gXCJHVFwiO1xuXHRcdFx0XHRzZWxlY3RPcHRpb25TdGF0ZS5TaWduID0gXCJFXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0TG9nLndhcm5pbmcoYCR7b3BlcmF0b3J9IGlzIG5vdCBzdXBwb3J0ZWQuICR7ZmlsdGVyS2V5fSBjb3VsZCBub3QgYmUgYWRkZWQgdG8gdGhlIFNlbGVjdGlvbiB2YXJpYW50YCk7XG5cdFx0fVxuXG5cdFx0aWYgKHNlbGVjdE9wdGlvblN0YXRlLk9wdGlvbiAhPT0gXCJCVFwiKSB7XG5cdFx0XHQvLyBDbGVhbnVwIHRvIGF2b2lkIGV4Y2VwdGlvbnNcblx0XHRcdHNlbGVjdE9wdGlvblN0YXRlLkhpZ2ggPSBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gc2VsZWN0T3B0aW9uU3RhdGUuT3B0aW9uICE9PSBcIlwiID8gc2VsZWN0T3B0aW9uU3RhdGUgOiB1bmRlZmluZWQ7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENyZWF0ZSB0aGUgc2VtYW50aWMgZGF0ZXMgZnJvbSBmaWx0ZXIgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIGNvbmRpdGlvbiBGaWx0ZXIgZmllbGQgY29uZGl0aW9uXG5cdCAqIEByZXR1cm5zIFRoZSBTZW1hbnRpYyBkYXRlIGNvbmRpdGlvbnNcblx0ICovXG5cdGNyZWF0ZVNlbWFudGljRGF0ZXNGcm9tQ29uZGl0aW9uczogZnVuY3Rpb24gKGNvbmRpdGlvbjogQ29uZGl0aW9uT2JqZWN0KTogU2VtYW50aWNEYXRlQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFpc0VtcHR5T2JqZWN0KGNvbmRpdGlvbikpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGhpZ2g6IGNvbmRpdGlvbi52YWx1ZXNbMF0gIT09IHVuZGVmaW5lZCAmJiBjb25kaXRpb24udmFsdWVzWzBdICE9PSBudWxsID8gKGNvbmRpdGlvbi52YWx1ZXNbMF0gYXMgc3RyaW5nKSA6IG51bGwsXG5cdFx0XHRcdGxvdzogY29uZGl0aW9uLnZhbHVlc1sxXSAhPT0gdW5kZWZpbmVkICYmIGNvbmRpdGlvbi52YWx1ZXNbMV0gIT09IG51bGwgPyAoY29uZGl0aW9uLnZhbHVlc1sxXSBhcyBzdHJpbmcpIDogbnVsbCxcblx0XHRcdFx0b3BlcmF0b3I6IGNvbmRpdGlvbi5vcGVyYXRvclxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHN0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBZ0JBLE1BQU1BLDZCQUE2QixHQUFHO0lBQ3JDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLGlDQUFpQyxFQUFFLFNBQUFBLENBQ2xDQyxnQkFBK0QsRUFDL0RDLGNBQThCLEVBQzlCQyxNQUFpQixFQUNFO01BQ25CLE1BQU1DLGdCQUFnQixHQUFHLElBQUlDLGdCQUFnQixDQUFDLENBQUM7TUFDL0MsSUFBSSxDQUFDQyxhQUFhLENBQUNMLGdCQUFnQixDQUFDLEVBQUU7UUFDckMsS0FBSyxNQUFNTSxTQUFTLElBQUlOLGdCQUFnQixFQUFFO1VBQ3pDLE1BQU1PLG9CQUFvQixHQUFHUCxnQkFBZ0IsQ0FBQ00sU0FBUyxDQUFDO1VBQ3hELElBQUlDLG9CQUFvQixFQUFFQyxNQUFNLEVBQUU7WUFDakMsTUFBTUMsYUFBYSxHQUFHWCw2QkFBNkIsQ0FBQ1ksZ0NBQWdDLENBQ25GSCxvQkFBb0IsRUFDcEJELFNBQVMsRUFDVEwsY0FDRCxDQUFDO1lBQ0QsSUFBSVEsYUFBYSxDQUFDRCxNQUFNLEVBQUU7Y0FDekIsTUFBTUcsa0JBQWtCLEdBQUdMLFNBQVMsQ0FBQ00sT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7Y0FDMUQ7Y0FDQSxJQUFJVixNQUFNLEVBQUVXLFFBQVEsQ0FBQ1AsU0FBUyxDQUFDLEVBQUU7Z0JBQ2hDO2dCQUNBSCxnQkFBZ0IsQ0FBQ1csbUJBQW1CLENBQUMs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
|
|
@@ -75,7 +75,20 @@ M_COMMON_TABLE_FULLSCREEN_CLOSE=Close
|
|
|
75
75
|
M_COMMON_TABLE_CONTEXT_MENU_OPEN_IN_NEW_TAB=Open in New Tab or Window
|
|
76
76
|
|
|
77
77
|
# XMSG,150
|
|
78
|
-
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=You
|
|
78
|
+
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=You''ve exceeded the number of objects that can be opened at the same time (maximum: {0}).
|
|
79
|
+
|
|
80
|
+
# XMSG,200: Confirmation dialog when multiple items are selected for navigation and some of them are not navigable
|
|
81
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_SINGULAR=You can''t navigate to all the selected objects.\n\
|
|
82
|
+
Selected: {0}.\n\
|
|
83
|
+
Available: {1} (limit: {2}).\n\
|
|
84
|
+
Do you still want to open the available object?
|
|
85
|
+
|
|
86
|
+
# XMSG,200: Confirmation dialog when multiple items are selected for navigation and some of them are not navigable
|
|
87
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_PLURAL=You can''t navigate to all the selected objects.\n\
|
|
88
|
+
Selected: {0}.\n\
|
|
89
|
+
Available: {1} (limit: {2}).\n\
|
|
90
|
+
Do you still want to open the available objects?
|
|
91
|
+
|
|
79
92
|
|
|
80
93
|
# XBUT, 100: Context menu item for sharing table lineitem in SAP Collaboration Manager
|
|
81
94
|
M_COMMON_TABLE_CONTEXT_MENU_SHARE_TO_COLLABORATION_MANAGER=Share to SAP Collaboration Manager
|
|
@@ -440,7 +453,7 @@ SUMMARIZE=Summarize
|
|
|
440
453
|
|
|
441
454
|
# ------------------------ Error explanation --------------------
|
|
442
455
|
# XBUT: Link for triggering the error explanation
|
|
443
|
-
C_GENERATE_EXPLANATION=
|
|
456
|
+
C_GENERATE_EXPLANATION=Explain
|
|
444
457
|
|
|
445
458
|
# ------------------------ COLLABORATION MANAGER --------------------
|
|
446
459
|
# XBUT,30: Text for send button to collaboration manager
|
|
@@ -816,13 +829,13 @@ C_EASYEDIT_REMAINING_CHARACTERS={0} characters remaining
|
|
|
816
829
|
C_EASYEDIT_DIALOG_NO_ENTRIES_TITLE=No fields filled in
|
|
817
830
|
|
|
818
831
|
# XMSG: Description shown under the illustrated message when everything is working correctly, but no fields were identified based on the prompt, so no fields could be filled in
|
|
819
|
-
C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=We couldn
|
|
832
|
+
C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=We couldn\u2019t match your query to any of the existing fields.
|
|
820
833
|
|
|
821
834
|
# XMSG: Title shown under the illustrated message when the system isn't working correctly
|
|
822
835
|
C_EASYEDIT_DIALOG_ERROR_TITLE=Unable to fill in the fields
|
|
823
836
|
|
|
824
837
|
# XMSG: Description shown under the illustrated message when the system isn't working correctly
|
|
825
|
-
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=It looks like an error occurred. Try again and if that doesn
|
|
838
|
+
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=It looks like an error occurred. Try again and if that doesn\u2019t help, check with your administrator.
|
|
826
839
|
|
|
827
840
|
# XMSG: Warning message that is shown when some fields were filled in correctly, but further fields were found that couldn't be filled in for the reasons given in the message itself
|
|
828
841
|
C_EASYEDIT_DIALOG_WARNING_MSG=The fields couldn't be filled in. This could be because they are read-only fields or because you're not authorized to change them.
|
|
@@ -843,3 +856,10 @@ T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}: {1}
|
|
|
843
856
|
|
|
844
857
|
# XTIT: Title for first breadcrumb in the Ariba application
|
|
845
858
|
T_APP_HOME=Home
|
|
859
|
+
|
|
860
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=The content isn't available for pasting anymore. Check if the original placement is expanded and visible.
|
|
861
|
+
|
|
862
|
+
# XFLD: Text for the Yes option in the RadioButtonGroup when editing a boolean field
|
|
863
|
+
T_RADIOBUTTONS_BOOLEAN_YES=Yes
|
|
864
|
+
# XFLD: Text for the No option in the RadioButtonGroup when editing a boolean field
|
|
865
|
+
T_RADIOBUTTONS_BOOLEAN_NO=No
|
|
@@ -125,7 +125,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=\u062A\u0645 \u062D\u0641\u0638 \u0627\u06
|
|
|
125
125
|
|
|
126
126
|
C_MASS_EDIT_CHANGES_WITH_ERROR=\u062A\u0645 \u062A\u062D\u062F\u064A\u062B {0} \u0645\u0646 {1} \u0645\u0646 \u0627\u0644\u0643\u0627\u0626\u0646\u0627\u062A.
|
|
127
127
|
|
|
128
|
-
C_MASS_EDIT_NO_CHANGE=\u0644\u0645 \u062A\
|
|
128
|
+
C_MASS_EDIT_NO_CHANGE=\u0644\u0645 \u062A\u0642\u0645 \u0628\u0625\u062C\u0631\u0627\u0621 \u0623\u064A \u062A\u063A\u064A\u064A\u0631\u0627\u062A.
|
|
129
129
|
|
|
130
130
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0639\u0631\u0636
|
|
131
131
|
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=\u0627\u0644\u0639\u0646\u0648\u0627\u0646
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=\u062A\u0644\u062E\u064A\u0635
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=\
|
|
291
|
+
C_GENERATE_EXPLANATION=\u0634\u0631\u062D
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=\u0625\u0631\u0633\u0627\u0644
|
|
294
294
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=\u0625\u0628\u0647\u0627\u0645 \u0644\u0623\u0633\u0641\u
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=\u062A\u0645 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0627\u062A
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=\u0627\u0644\u0642\u064A\u0645\u0629 "{0}" \u063A\u064A\u0631 \u0645\u0648\u062C\u0648\u062F\u0629.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=\u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u063A\u064A\u0631 \u0645\u062A\u0648\u0641\u0631 \u0644\u0644\u0635\u0642 \u0628\u0639\u062F. \u062A\u062D\u0642\u0642 \u0645\u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0635\u0644\u064A \u0645\u0648\u0633\u0639\u064B\u0627 \u0648\u0645\u0631\u0626\u064A\u064B\u0627.
|
|
@@ -275,7 +275,7 @@ M_CARD_FAILURE_TABLE_REASON_UNSUPPORTED_COLUMNS=\u0412 \u0442\u0430\u0431\u043B\
|
|
|
275
275
|
|
|
276
276
|
M_CARD_CREATION_FAILURE_CHART_REASON_DATE_RANGE_FILTERS=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043A\u0430\u0440\u0442\u0430\u0442\u0430 \u0435 \u043D\u0435\u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E. \u041C\u043E\u043B\u044F, \u043E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u043E\u0442\u043D\u043E\u0432\u043E, \u0441\u043B\u0435\u0434 \u043A\u0430\u0442\u043E \u0441\u0435 \u0443\u0432\u0435\u0440\u0438\u0442\u0435, \u0447\u0435 \u043D\u0435 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0440\u0435\u043B\u0430\u0442\u0438\u0432\u043D\u0438 \u0444\u0438\u043B\u0442\u0440\u0438 \u0437\u0430 \u0434\u0430\u0442\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u201E\u0432\u0447\u0435\u0440\u0430\u201C).
|
|
277
277
|
|
|
278
|
-
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=\
|
|
278
|
+
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=\u0414\u0438\u0440\u0435\u043A\u0442\u043D\u0430\u0442\u0430 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \u043A\u044A\u043C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u0438 \u043D\u0430 \u043E\u0431\u0435\u043A\u0442\u0430 \u043D\u0435 \u0435 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u0430 \u043E\u0442 \u0442\u0430\u0437\u0438 \u043A\u0430\u0440\u0442\u0430 \u043D\u0430 \u0430\u043D\u0430\u043B\u0438\u0437\u0438.
|
|
279
279
|
|
|
280
280
|
|
|
281
281
|
POPOVER_CONTACT_SECTION_JOBTITLE=\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 \u043D\u0430 \u0434\u043B\u044A\u0436\u043D\u043E\u0441\u0442
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=\u0410\u0434\u0440\u0435\u0441
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=\
|
|
291
|
+
C_GENERATE_EXPLANATION=\u041E\u0431\u044F\u0441\u043D\u0435\u043D\u0438\u0435
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435
|
|
294
294
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=\u041F\u0430\u043B\u0435\u0446 \u043D\u0430\u0434\u043E\u
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u0442\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0430
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=\u041D\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u201E{0}\u201C.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Home
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u0432\u0435\u0447\u0435 \u043D\u0435 \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u043E \u0437\u0430 \u0432\u043C\u044A\u043A\u0432\u0430\u043D\u0435. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043B\u0438 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u043D\u043E\u0442\u043E \u043F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u0435 \u0440\u0430\u0437\u0433\u044A\u0440\u043D\u0430\u0442\u043E \u0438 \u0432\u0438\u0434\u0438\u043C\u043E.
|
|
@@ -125,7 +125,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=S'han desat les modificacions.
|
|
|
125
125
|
|
|
126
126
|
C_MASS_EDIT_CHANGES_WITH_ERROR={0} de {1} objectes actualitzats.
|
|
127
127
|
|
|
128
|
-
C_MASS_EDIT_NO_CHANGE=No heu fet
|
|
128
|
+
C_MASS_EDIT_NO_CHANGE=No heu fet cap modificaci\u00F3.
|
|
129
129
|
|
|
130
130
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=Configuraci\u00F3 de vista
|
|
131
131
|
|
|
@@ -275,7 +275,7 @@ M_CARD_FAILURE_TABLE_REASON_UNSUPPORTED_COLUMNS=A la taula es mostra almenys una
|
|
|
275
275
|
|
|
276
276
|
M_CARD_CREATION_FAILURE_CHART_REASON_DATE_RANGE_FILTERS=No es pot crear la targeta. Torneu a provar-ho despr\u00E9s de verificar que no s'utilitzen filtres de data relativa (com ara "Ahir").
|
|
277
277
|
|
|
278
|
-
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=No es pot accedir directament als detalls de l'objecte des d'aquesta targeta d'
|
|
278
|
+
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=No es pot accedir directament als detalls de l'objecte des d'aquesta targeta d'informaci\u00F3.
|
|
279
279
|
|
|
280
280
|
|
|
281
281
|
POPOVER_CONTACT_SECTION_JOBTITLE=Nom del lloc de treball
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Adre\u00E7a
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Resumir
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=
|
|
291
|
+
C_GENERATE_EXPLANATION=Explicar
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Enviar
|
|
294
294
|
|
|
@@ -550,11 +550,11 @@ C_EASYEDIT_REMAINING_CHARACTERS={0} car\u00E0cters restants
|
|
|
550
550
|
|
|
551
551
|
C_EASYEDIT_DIALOG_NO_ENTRIES_TITLE=Cap camp omplert a
|
|
552
552
|
|
|
553
|
-
C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=No hem pogut fer
|
|
553
|
+
C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=No hem pogut fer cap coincid\u00E8ncia de la vostra consulta amb cap dels camps existents.
|
|
554
554
|
|
|
555
555
|
C_EASYEDIT_DIALOG_ERROR_TITLE=No es poden omplir els camps
|
|
556
556
|
|
|
557
|
-
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=Sembla que s'ha produ\u00EFt un error. Intenteu-ho de nou si no
|
|
557
|
+
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=Sembla que s'ha produ\u00EFt un error. Intenteu-ho de nou i, si no se soluciona, poseu-vos en contacte amb l'administrador.
|
|
558
558
|
|
|
559
559
|
C_EASYEDIT_DIALOG_WARNING_MSG=No s'han pogut emplenar els camps. Aix\u00F2 pot ser degut a que s\u00F3n de nom\u00E9s lectura o perqu\u00E8 no esteu autoritzats per a modificar-los.
|
|
560
560
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=Polzes avall per a Easy Fill
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Comentaris enviats
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=El valor "{0}" no existeix.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=P\u00E0gina d'inici
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=El contingut ja no est\u00E0 disponible per a la c\u00F2pia. Comproveu si s'ha expandit la ubicaci\u00F3 original i si \u00E9s visible.
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Adresa
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Sa\u017Emi
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=
|
|
291
|
+
C_GENERATE_EXPLANATION=Objasni
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Po\u0161alji
|
|
294
294
|
|
|
@@ -554,7 +554,7 @@ C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=Nijesmo mogli da pove\u017Eemo va\u0161
|
|
|
554
554
|
|
|
555
555
|
C_EASYEDIT_DIALOG_ERROR_TITLE=Popunjavanje polja nije mogu\u0107e
|
|
556
556
|
|
|
557
|
-
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=Izgleda da je do\u0161lo do gre\u0161ke. Poku\u0161ajte ponovo
|
|
557
|
+
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=Izgleda da je do\u0161lo do gre\u0161ke. Poku\u0161ajte ponovo, a ako to ne pomogne, obratite se administratoru.
|
|
558
558
|
|
|
559
559
|
C_EASYEDIT_DIALOG_WARNING_MSG=Polja se ne mogu popuniti. To mo\u017Ee biti zato \u0161to su ona polja samo za \u010Ditanje ili zato \u0161to nemate ovla\u0161\u0107enje da ih promijenite.
|
|
560
560
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=Negativna ocjena za lako popunjavanje
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Povratne informacije su poslate
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=Vrijednost \u201E{0}\u201C ne postoji.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Home
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=Sadr\u017Eaj vi\u0161e nije dostupan za lijepljenje. Provjerite da li je originalni polo\u017Eaj pro\u0161iren i vidljiv.
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Adresa
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Shrnout
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=
|
|
291
|
+
C_GENERATE_EXPLANATION=Vysv\u011Btlit
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Odeslat
|
|
294
294
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=Palce dol\u016F pro snadn\u00E9 vypln\u011Bn\u00ED
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Zp\u011Btn\u00E1 vazba byla odesl\u00E1na
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=Hodnota "{0}" neexistuje.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Dom\u016F
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=Obsah ji\u017E nen\u00ED pro vkl\u00E1d\u00E1n\u00ED dostupn\u00FD. Zkontrolujte, zda je p\u016Fvodn\u00ED um\u00EDst\u011Bn\u00ED rozbaleno a viditeln\u00E9.
|
|
@@ -125,7 +125,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=Mae eich newidiadau wedi'u cadw.
|
|
|
125
125
|
|
|
126
126
|
C_MASS_EDIT_CHANGES_WITH_ERROR=Wedi diweddaru {0} o {1} gwrthrych.
|
|
127
127
|
|
|
128
|
-
C_MASS_EDIT_NO_CHANGE=Dydych chi ddim wedi
|
|
128
|
+
C_MASS_EDIT_NO_CHANGE=Dydych chi ddim wedi newid dim.
|
|
129
129
|
|
|
130
130
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=Gweld Gosodiadau
|
|
131
131
|
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Cyfeiriad
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Crynhoi
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=
|
|
291
|
+
C_GENERATE_EXPLANATION=Egluro
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Anfon
|
|
294
294
|
|
|
@@ -566,4 +566,10 @@ C_EASYEDIT_THUMBS_DOWN=Bawd i lawr er mwyn llenwi'n rhwydd
|
|
|
566
566
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Wedi anfon adborth
|
|
568
568
|
|
|
569
|
-
C_EASYEDIT_VH_ERROR=Dydy gwerth "{0}" ddim yn bodoli.
|
|
569
|
+
C_EASYEDIT_VH_ERROR=Dydy''r gwerth "{0}" ddim yn bodoli.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Hafan
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=Nid yw'r cynnwys ar gael i'w ludo mwyach. Gwiriwch a yw'r lleoliad gwreiddiol wedi'i ehangu a'i fod yn weladwy.
|
|
@@ -125,7 +125,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=Dine \u00E6ndringer blev gemt.
|
|
|
125
125
|
|
|
126
126
|
C_MASS_EDIT_CHANGES_WITH_ERROR={0} af {1} objekter opdateret.
|
|
127
127
|
|
|
128
|
-
C_MASS_EDIT_NO_CHANGE=
|
|
128
|
+
C_MASS_EDIT_NO_CHANGE=Ingen \u00E6ndringer foretaget.
|
|
129
129
|
|
|
130
130
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=Vis indstillinger
|
|
131
131
|
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Adresse
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Lav sammendrag
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=
|
|
291
|
+
C_GENERATE_EXPLANATION=Forklar
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Send
|
|
294
294
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=Tommelfinger ned til den nemme udfyldning
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Feedback sendt
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=V\u00E6rdien "{0}" findes ikke.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Hjem
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=Indholdet er ikke l\u00E6ngere tilg\u00E6ngeligt til inds\u00E6tning. Kontroller, om den oprindelige placering er udvidet og synlig.
|
|
@@ -81,7 +81,7 @@ M_MESSAGESTRIP_EMPTYROW_MANDATORY_HIDDEN_PLURAL=Die Tabelle enth\u00E4lt Fehler.
|
|
|
81
81
|
|
|
82
82
|
M_TABLE_EMPTYROW_MANDATORY={0} ist ein Mussfeld (*).
|
|
83
83
|
|
|
84
|
-
M_TABLE_EMPTYROW_MANDATORY_HIDDEN={0}
|
|
84
|
+
M_TABLE_EMPTYROW_MANDATORY_HIDDEN={0} ist ein Mussfeld (*), aber dieses Feld wird nicht in der Tabelle angezeigt. Bitte f\u00FCgen Sie es \u00FCber den Button "Einstellungen" hinzu.
|
|
85
85
|
|
|
86
86
|
HEADER_FORM_LABEL={0}\:
|
|
87
87
|
|
|
@@ -125,7 +125,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=Ihre \u00C4nderungen wurden gesichert.
|
|
|
125
125
|
|
|
126
126
|
C_MASS_EDIT_CHANGES_WITH_ERROR={0} von {1} Objekten aktualisiert.
|
|
127
127
|
|
|
128
|
-
C_MASS_EDIT_NO_CHANGE=
|
|
128
|
+
C_MASS_EDIT_NO_CHANGE=Sie haben keine \u00C4nderungen vorgenommen.
|
|
129
129
|
|
|
130
130
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=Ansichtseinstellungen
|
|
131
131
|
|
|
@@ -133,7 +133,7 @@ C_MASS_EDIT_DESIGN_CONFIGURATION=Konfiguration
|
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
M_KEYBOARD_SHORTCUT_CREATE_WIN=
|
|
136
|
+
M_KEYBOARD_SHORTCUT_CREATE_WIN=Strg+Enter
|
|
137
137
|
|
|
138
138
|
M_KEYBOARD_SHORTCUT_CREATE_MAC=CMD+Enter
|
|
139
139
|
|
|
@@ -275,7 +275,7 @@ M_CARD_FAILURE_TABLE_REASON_UNSUPPORTED_COLUMNS=Es wird mindestens eine textbasi
|
|
|
275
275
|
|
|
276
276
|
M_CARD_CREATION_FAILURE_CHART_REASON_DATE_RANGE_FILTERS=Die Karte kann nicht angelegt werden. Bitte versuchen Sie es erneut, nachdem Sie sichergestellt haben, dass keine relativen Datumsfilter (wie "Gestern") verwendet werden.
|
|
277
277
|
|
|
278
|
-
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=
|
|
278
|
+
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=Von dieser Karte f\u00FCr Analysen aus ist keine direkte Navigation zu den Objektdetails m\u00F6glich.
|
|
279
279
|
|
|
280
280
|
|
|
281
281
|
POPOVER_CONTACT_SECTION_JOBTITLE=Position
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=Adresse
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=Zusammenfassen
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=Erkl\
|
|
291
|
+
C_GENERATE_EXPLANATION=Erkl\u00E4ren
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=Senden
|
|
294
294
|
|
|
@@ -338,7 +338,7 @@ M_EASY_FILTER_FILTER_MODE_AI=SAP Business AI
|
|
|
338
338
|
M_EASY_FILTER_FILTER_MODE_CLASSIC=Klassisch
|
|
339
339
|
M_EASY_FILTER_NOTICE=Durch promptbasiertes Filtern werden v\u00F6llig neue Filterkriterien angelegt. Der generierte Inhalt ist m\u00F6glicherweise nicht immer korrekt. \u00DCberpr\u00FCfen Sie ihn daher.
|
|
340
340
|
M_EASY_FILTER_GO=Start
|
|
341
|
-
M_EASY_FILTER_PLACEHOLDER=
|
|
341
|
+
M_EASY_FILTER_PLACEHOLDER=Geben Sie zur Suche entweder Ihre Anfrage in nat\u00FCrlicher Sprache ein, um die Liste zu filtern, oder geben Sie IDs in Anf\u00FChrungszeichen ein, z.B. "123456".
|
|
342
342
|
M_EASY_FILTER_SHOW_RESULTS_FOR=Ergebnisse werden angezeigt f\u00FCr\:
|
|
343
343
|
M_EASY_FILTER_MANDATORY_FILTER_SINGULAR={0} ist ein obligatorischer Filter.
|
|
344
344
|
M_EASY_FILTER_MANDATORY_FILTER_PLURAL={0} sind obligatorische Filter.
|
|
@@ -554,7 +554,7 @@ C_EASYEDIT_DIALOG_NO_ENTRIES_DESCRIPTION=Ihre Anfrage konnte keinem der vorhande
|
|
|
554
554
|
|
|
555
555
|
C_EASYEDIT_DIALOG_ERROR_TITLE=Felder konnten nicht ausgef\u00FCllt werden
|
|
556
556
|
|
|
557
|
-
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=
|
|
557
|
+
C_EASYEDIT_DIALOG_ERROR_DESCRIPTION=Leider ist ein Fehler aufgetreten. Versuchen Sie es bitte erneut. Wenn das nicht hilft, fragen Sie Ihren Administrator.
|
|
558
558
|
|
|
559
559
|
C_EASYEDIT_DIALOG_WARNING_MSG=Die Felder konnten nicht ausgef\u00FCllt werden. Das kann daran liegen, dass die Felder schreibgesch\u00FCtzt sind, oder daran, dass Sie keine Berechtigung zum \u00C4ndern der Felder haben.
|
|
560
560
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=Daumen runter f\u00FCr Einfaches Ausf\u00FCllen
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=Feedback wurde gesendet
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=Der Wert "{0}" ist nicht vorhanden.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=Startseite
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=Der Inhalt ist nicht mehr zum Einf\u00FCgen verf\u00FCgbar. Pr\u00FCfen Sie, ob er am ursp\u00FCnglichen Ort expandiert und sichtbar ist.
|
|
@@ -288,7 +288,7 @@ POPOVER_CONTACT_SECTION_ADR=\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03
|
|
|
288
288
|
|
|
289
289
|
SUMMARIZE=\u03A3\u03CD\u03BD\u03BF\u03C8\u03B7
|
|
290
290
|
|
|
291
|
-
C_GENERATE_EXPLANATION=\
|
|
291
|
+
C_GENERATE_EXPLANATION=\u0395\u03C0\u03B5\u03BE\u03AE\u03B3\u03B7\u03C3\u03B7
|
|
292
292
|
|
|
293
293
|
C_SEND_TO_COLLABORATION_MANAGER=\u0391\u03C0\u03BF\u03C3\u03C4\u03BF\u03BB\u03AE
|
|
294
294
|
|
|
@@ -567,3 +567,9 @@ C_EASYEDIT_THUMBS_DOWN=\u0394\u03B5\u03BD \u03BC\u03BF\u03C5 \u03B1\u03C1\u03AD\
|
|
|
567
567
|
C_EASYEDIT_FEEDBACK_SENT=\u03A3\u03C7\u03CC\u03BB\u03B9\u03BF \u03B5\u03C3\u03C4\u03AC\u03BB\u03B7
|
|
568
568
|
|
|
569
569
|
C_EASYEDIT_VH_ERROR=\u03A4\u03B9\u03BC\u03AE "{0}" \u03B4\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9.
|
|
570
|
+
|
|
571
|
+
T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
572
|
+
|
|
573
|
+
T_APP_HOME=\u0391\u03C1\u03C7\u03B9\u03BA\u03AE \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1
|
|
574
|
+
|
|
575
|
+
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=\u03A4\u03BF \u03C0\u03B5\u03C1\u03B9\u03B5\u03C7\u03CC\u03BC\u03B5\u03BD\u03BF \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BB\u03AD\u03BF\u03BD \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u03B3\u03B9\u03B1 \u03B1\u03BD\u03AC\u03BB\u03C5\u03C3\u03B7. \u0395\u03BB\u03AD\u03B3\u03BE\u03C4\u03B5 \u03B1\u03BD \u03B7 \u03B1\u03C1\u03C7\u03B9\u03BA\u03AE \u03C4\u03BF\u03C0\u03BF\u03B8\u03AD\u03C4\u03B7\u03C3\u03B7 \u03B5\u03C0\u03B5\u03BA\u03C4\u03AC\u03B8\u03B7\u03BA\u03B5 \u03BA\u03B1\u03B9 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BF\u03C1\u03B1\u03C4\u03AE.
|