@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
|
@@ -64,7 +64,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/controls/Common/DataVisua
|
|
|
64
64
|
* meta model
|
|
65
65
|
* @author SAP SE
|
|
66
66
|
* @private
|
|
67
|
-
* @experimental
|
|
68
67
|
* @since 1.62.0
|
|
69
68
|
* @alias sap.fe.macros.ChartHelper
|
|
70
69
|
*/
|
|
@@ -285,4 +284,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/controls/Common/DataVisua
|
|
|
285
284
|
ChartHelper.getSortConditions.requiresIContext = true;
|
|
286
285
|
return ChartHelper;
|
|
287
286
|
}, false);
|
|
288
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRFbnRpdHlTZXRQYXRoIiwiYW5ub3RhdGlvbkNvbnRleHQiLCJnZXRQYXRoIiwicmVwbGFjZSIsIkNoYXJ0VHlwZUVudW0iLCJEaW1lbnNpb25Sb2xlVHlwZUVudW0iLCJDaGFydEhlbHBlciIsImZvcm1hdEpTT05Ub1N0cmluZyIsImNyaXQiLCJ1bmRlZmluZWQiLCJjcml0aWNhbGl0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJSZWdFeHAiLCJmb3JtYXRDaGFydFR5cGUiLCJjaGFydFR5cGUiLCIkRW51bU1lbWJlciIsImZvcm1hdERpbWVuc2lvbnMiLCJhbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJlbnRpdHlTZXRQYXRoIiwiZGltZW5zaW9ucyIsImlzTmF2aWdhdGlvblRleHQiLCJEaW1lbnNpb25BdHRyaWJ1dGVzIiwiZGltZW5zaW9uIiwiRGltZW5zaW9ucyIsImtleSIsIiRQcm9wZXJ0eVBhdGgiLCJ0ZXh0IiwiaW5jbHVkZXMiLCJMb2ciLCJlcnJvciIsIiRQYXRoIiwiaW5kZXhPZiIsImNoYXJ0RGltZW5zaW9uIiwidGV4dFBhdGgiLCJsYWJlbCIsInJvbGUiLCJhdHRyaWJ1dGUiLCJEaW1lbnNpb24iLCJSb2xlIiwiZmV0Y2hDcml0aWNhbGl0eSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwicHVzaCIsImRpbWVuc2lvbk1vZGVsIiwiSlNPTk1vZGVsIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIm9NZXRhTW9kZWwiLCJvQ3R4IiwiVUkiLCJhVmFsdWVDcml0aWNhbGl0eSIsIm9Dcml0aWNhbGl0eSIsIm9WYWx1ZUNyaXRpY2FsaXR5IiwiVmVyeVBvc2l0aXZlIiwiUG9zaXRpdmUiLCJDcml0aWNhbCIsIlZlcnlOZWdhdGl2ZSIsIk5lZ2F0aXZlIiwiTmV1dHJhbCIsImkiLCJsZW5ndGgiLCJDcml0aWNhbGl0eSIsImVuZHNXaXRoIiwiVmFsdWUiLCJzS2V5IiwiZm9ybWF0TWVhc3VyZXMiLCJnZXREYXRhIiwiZ2V0VWlDaGFydCIsInByZXNlbnRhdGlvbkNvbnRleHQiLCJnZXRVaUNvbnRyb2wiLCJnZXRPcGVyYXRpb25BdmFpbGFibGVNYXAiLCJjaGFydCIsImNvbnRleHRDb250ZXh0IiwiY2hhcnRDb2xsZWN0aW9uIiwiQWN0aW9ucyIsIkFjdGlvbkhlbHBlciIsImdldFNvcnRDb25kaXRpb25zIiwib0NvbnRleHQiLCJvUHJlc2VudGF0aW9uVmFyaWFudCIsInNQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsIm9BcHBseVN1cHBvcnRlZCIsIkNvbW1vbkhlbHBlciIsIl9pc1ByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU29ydE9yZGVyIiwiYVNvcnRDb25kaXRpb25zIiwic29ydGVycyIsInNFbnRpdHlQYXRoIiwic3BsaXQiLCJmb3JFYWNoIiwib0NvbmRpdGlvbiIsImFyZ3VtZW50cyIsIm9Tb3J0UHJvcGVydHkiLCJEeW5hbWljUHJvcGVydHkiLCIkQW5ub3RhdGlvblBhdGgiLCJOYW1lIiwiUHJvcGVydHkiLCJhR3JvdXBhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvU29ydGVyIiwibmFtZSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwiRXJyb3IiLCJfZ2V0TW9kZWwiLCJvQ29sbGVjdGlvbiIsIm9JbnRlcmZhY2UiLCJjb250ZXh0IiwiaXNEYXRhRmllbGRGb3JBY3Rpb25CdXR0b25FbmFibGVkIiwiYklzQm91bmQiLCJzQWN0aW9uIiwic09wZXJhdGlvbkF2YWlsYWJsZU1hcCIsInNFbmFibGVTZWxlY3RPbiIsIm9Nb2RlbCIsInNOYXZQYXRoIiwic1BhcnRuZXIiLCIkUGFydG5lciIsIm9PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJwYXJzZSIsImFQYXRoIiwic051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyIsImdldE51bWJlck9mQ29udGV4dHNFeHByZXNzaW9uIiwic1BhdGgiLCJnZXRIaWRkZW5QYXRoRXhwcmVzc2lvbkZvclRhYmxlQWN0aW9uc0FuZElCTiIsInNIaWRkZW5QYXRoIiwib0RldGFpbHMiLCJzUHJvcGVydHlQYXRoIiwic0VudGl0eVNldFBhdGgiLCJPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciIsImdldE5hdmlnYXRpb25QYXRoIiwiYVNwbGl0SGlkZGVuUGF0aCIsInNOYXZpZ2F0aW9uUGF0aCIsInNsaWNlIiwiam9pbiIsImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJpZCIsImFjdGlvbiIsIm9wZXJhdGlvbkF2YWlsYWJsZU1hcCIsImdldFByZXNzRXZlbnREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJjb250ZXh0cyIsImdldEFjdGlvblR5cGUiLCJ2YWx1ZU9mIiwiZ2V0Q29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvblNwbGl0IiwicmVxdWlyZXNJQ29udGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ2hhcnRIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFZG0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFNvcnRPcmRlclR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENoYXJ0VHlwZSxcblx0Q3JpdGljYWxpdHlUeXBlLFxuXHREYXRhRmllbGRGb3JBY3Rpb24sXG5cdE9wZXJhdGlvbkdyb3VwaW5nVHlwZSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFZhbHVlQ3JpdGljYWxpdHlUeXBlXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgRGltZW5zaW9uUm9sZVR5cGUgZnJvbSBcInNhcC9jaGFydC9kYXRhL0RpbWVuc2lvblJvbGVUeXBlXCI7XG5pbXBvcnQgdHlwZSBBdHRyaWJ1dGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9BdHRyaWJ1dGVNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydEFwcGx5U3VwcG9ydGVkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQgeyBnZXRVaUNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJlVHlwZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NoYXJ0L01kY0NoYXJ0VGVtcGxhdGVcIjtcbmltcG9ydCBBY3Rpb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvaGVscGVycy9BY3Rpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0Fubm90YXRpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgRXhwYW5kUGF0aFR5cGUsIE1ldGFNb2RlbEVudW0sIE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGdldEVudGl0eVNldFBhdGgoYW5ub3RhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gYW5ub3RhdGlvbkNvbnRleHQuZ2V0UGF0aCgpLnJlcGxhY2UoL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS4oQ2hhcnR8UHJlc2VudGF0aW9uVmFyaWFudCkuKi8sIFwiXCIpO1xufVxuXG5jb25zdCBDaGFydFR5cGVFbnVtID0ge1xuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZFwiOiBcInN0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbHVtbkR1YWxcIjogXCJkdWFsX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbDEwMFwiOiBcIjEwMF9kdWFsX3N0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwic3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQmFyRHVhbFwiOiBcImR1YWxfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsXCI6IFwiZHVhbF9zdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkMTAwXCI6IFwiMTAwX3N0YWNrZWRfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsMTAwXCI6IFwiMTAwX2R1YWxfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVwiOiBcImFyZWFcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9BcmVhU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWQxMDBcIjogXCIxMDBfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZVwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZUR1YWxcIjogXCJkdWFsX2xpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db21iaW5hdGlvblN0YWNrZWRcIjogXCJzdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfY29tYmluYXRpb25cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkXCI6IFwiaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1BpZVwiOiBcInBpZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Eb251dFwiOiBcImRvbnV0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1NjYXR0ZXJcIjogXCJzY2F0dGVyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9SYWRhclwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSGVhdE1hcFwiOiBcImhlYXRtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvVHJlZU1hcFwiOiBcInRyZWVtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvV2F0ZXJmYWxsXCI6IFwid2F0ZXJmYWxsXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1bGxldFwiOiBcImJ1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9WZXJ0aWNhbEJ1bGxldFwiOiBcInZlcnRpY2FsX2J1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsV2F0ZXJmYWxsXCI6IFwiaG9yaXpvbnRhbF93YXRlcmZhbGxcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSG9yaXpvbnRhbENvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCJcbn07XG5jb25zdCBEaW1lbnNpb25Sb2xlVHlwZUVudW0gPSB7XG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9DYXRlZ29yeVwiOiBcImNhdGVnb3J5XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9TZXJpZXNcIjogXCJzZXJpZXNcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydERpbWVuc2lvblJvbGVUeXBlL0NhdGVnb3J5MlwiOiBcImNhdGVnb3J5MlwiXG59O1xuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHNhcC5mZS5tYWNyb3MgQ2hhcnQgcGhhbnRvbSBjb250cm9sIGZvciBwcmVwcm9jZXNzaW5nLlxuICogPGgzPjxiPk5vdGU6PC9iPjwvaDM+XG4gKiBUaGUgY2xhc3MgaXMgZXhwZXJpbWVudGFsIGFuZCB0aGUgQVBJL2JlaGF2aW91ciBpcyBub3QgZmluYWxpc2VkXG4gKiBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBFc3BlY2lhbGx5IHRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRoZSBGRSBzY2VuYXJpbyxcbiAqIGhlcmUgd2Ugc2hhbGwgdXNlIHNhcC5mZS5tYWNyb3MuQ2hhcnRIZWxwZXIgdGhhdCBpcyBlc3BlY2lhbGx5IHRhaWxvcmVkIGZvciBWNFxuICogbWV0YSBtb2RlbFxuICogQGF1dGhvciBTQVAgU0VcbiAqIEBwcml2YXRlXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBAc2luY2UgMS42Mi4wXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5DaGFydEhlbHBlclxuICovXG5jb25zdCBDaGFydEhlbHBlciA9IHtcblx0Zm9ybWF0SlNPTlRvU3RyaW5nKGNyaXQ6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFjcml0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGxldCBjcml0aWNhbGl0eSA9IEpTT04uc3RyaW5naWZ5KGNyaXQpO1xuXHRcdGNyaXRpY2FsaXR5ID0gY3JpdGljYWxpdHkucmVwbGFjZShuZXcgUmVnRXhwKFwie1wiLCBcImdcIiksIFwiXFxcXHtcIik7XG5cdFx0Y3JpdGljYWxpdHkgPSBjcml0aWNhbGl0eS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJ9XCIsIFwiZ1wiKSwgXCJcXFxcfVwiKTtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHk7XG5cdH0sXG5cdGZvcm1hdENoYXJ0VHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENoYXJ0VHlwZUVudW1bKGNoYXJ0VHlwZSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbEVudW08Q2hhcnRUeXBlPik/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBDaGFydFR5cGVFbnVtXTtcblx0fSxcblx0Zm9ybWF0RGltZW5zaW9ucyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IENvbnRleHQge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uQ29udGV4dC5nZXRPYmplY3QoXCIuL1wiKSBhcyBDaGFydCxcblx0XHRcdG1ldGFNb2RlbCA9IGFubm90YXRpb25Db250ZXh0LmdldE1vZGVsKCksXG5cdFx0XHRlbnRpdHlTZXRQYXRoID0gZ2V0RW50aXR5U2V0UGF0aChhbm5vdGF0aW9uQ29udGV4dCksXG5cdFx0XHRkaW1lbnNpb25zID0gW107XG5cblx0XHRsZXQgaXNOYXZpZ2F0aW9uVGV4dCA9IGZhbHNlO1xuXG5cdFx0Ly9wZXJoYXBzIHRoZXJlIGFyZSBubyBkaW1lbnNpb25cblx0XHRhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgPSBhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgfHwgW107XG5cblx0XHRmb3IgKGNvbnN0IGRpbWVuc2lvbiBvZiBhbm5vdGF0aW9uLkRpbWVuc2lvbnMpIHtcblx0XHRcdGNvbnN0IGtleSA9IChkaW1lbnNpb24gYXMgdW5rbm93biBhcyBFeHBhbmRQYXRoVHlwZTxFZG0uUHJvcGVydHlQYXRoPikuJFByb3BlcnR5UGF0aDtcblx0XHRcdGNvbnN0IHRleHQgPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLlRleHR9YCkgfHwge307XG5cdFx0XHRpZiAoa2V5LmluY2x1ZGVzKFwiL1wiKSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoYCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIERpbWVuc2lvbjogJHtrZXl9IGZyb20gYW4gYXNzb2NpYXRpb24gY2Fubm90IGJlIHVzZWRgKTtcblx0XHRcdH1cblx0XHRcdGlmICh0ZXh0LiRQYXRoICYmIHRleHQuJFBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIFRleHQgUHJvcGVydHk6ICR7dGV4dC4kUGF0aH0gZnJvbSBhbiBhc3NvY2lhdGlvbiBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIGRpbWVuc2lvbiAke2tleX1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlzTmF2aWdhdGlvblRleHQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjaGFydERpbWVuc2lvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcblx0XHRcdFx0a2V5OiBrZXksXG5cdFx0XHRcdHRleHRQYXRoOiAhaXNOYXZpZ2F0aW9uVGV4dCA/IHRleHQuJFBhdGggOiB1bmRlZmluZWQsXG5cdFx0XHRcdGxhYmVsOiBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLkxhYmVsfWApLFxuXHRcdFx0XHRyb2xlOiBcImNhdGVnb3J5XCJcblx0XHRcdH07XG5cblx0XHRcdGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcykge1xuXHRcdFx0XHRpZiAoY2hhcnREaW1lbnNpb24ua2V5ID09PSAoYXR0cmlidXRlLkRpbWVuc2lvbiBhcyB1bmtub3duIGFzIEV4cGFuZFBhdGhUeXBlPEVkbS5Qcm9wZXJ0eVBhdGg+KT8uJFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHRcdGNoYXJ0RGltZW5zaW9uLnJvbGUgPVxuXHRcdFx0XHRcdFx0RGltZW5zaW9uUm9sZVR5cGVFbnVtW1xuXHRcdFx0XHRcdFx0XHQoYXR0cmlidXRlLlJvbGUgYXMgdW5rbm93biBhcyBNZXRhTW9kZWxFbnVtPERpbWVuc2lvblJvbGVUeXBlPilcblx0XHRcdFx0XHRcdFx0XHQ/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBEaW1lbnNpb25Sb2xlVHlwZUVudW1cblx0XHRcdFx0XHRcdF0gfHwgY2hhcnREaW1lbnNpb24ucm9sZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IHRoaXMuZmV0Y2hDcml0aWNhbGl0eShtZXRhTW9kZWwsIG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChlbnRpdHlTZXRQYXRoICsga2V5KSk7XG5cdFx0XHRjaGFydERpbWVuc2lvbi5jcml0aWNhbGl0eSA9IHRoaXMuZm9ybWF0SlNPTlRvU3RyaW5nKGNyaXRpY2FsaXR5KTtcblx0XHRcdGRpbWVuc2lvbnMucHVzaChjaGFydERpbWVuc2lvbik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZGltZW5zaW9uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKGRpbWVuc2lvbnMpO1xuXHRcdChkaW1lbnNpb25Nb2RlbCBhcyBBdHRyaWJ1dGVNb2RlbCkuJCR2YWx1ZUFzUHJvbWlzZSA9IHRydWU7XG5cdFx0cmV0dXJuIGRpbWVuc2lvbk1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblx0fSxcblxuXHRmZXRjaENyaXRpY2FsaXR5KG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBvQ3R4OiBDb250ZXh0KTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBVSSA9IFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI7XG5cdFx0Y29uc3QgYVZhbHVlQ3JpdGljYWxpdHk6IE1ldGFNb2RlbFR5cGU8VmFsdWVDcml0aWNhbGl0eVR5cGU+W10gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgJHtVSX0uVmFsdWVDcml0aWNhbGl0eWAsIG9DdHgpO1xuXHRcdGxldCBvQ3JpdGljYWxpdHk6IFJlY29yZDxzdHJpbmcsIHVua25vd25bXT4gfCB1bmRlZmluZWQsIG9WYWx1ZUNyaXRpY2FsaXR5OiBNZXRhTW9kZWxUeXBlPFZhbHVlQ3JpdGljYWxpdHlUeXBlPjtcblxuXHRcdGlmIChhVmFsdWVDcml0aWNhbGl0eSkge1xuXHRcdFx0b0NyaXRpY2FsaXR5ID0ge1xuXHRcdFx0XHRWZXJ5UG9zaXRpdmU6IFtdLFxuXHRcdFx0XHRQb3NpdGl2ZTogW10sXG5cdFx0XHRcdENyaXRpY2FsOiBbXSxcblx0XHRcdFx0VmVyeU5lZ2F0aXZlOiBbXSxcblx0XHRcdFx0TmVnYXRpdmU6IFtdLFxuXHRcdFx0XHROZXV0cmFsOiBbXVxuXHRcdFx0fTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhVmFsdWVDcml0aWNhbGl0eS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRvVmFsdWVDcml0aWNhbGl0eSA9IGFWYWx1ZUNyaXRpY2FsaXR5W2ldO1xuXHRcdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IG9WYWx1ZUNyaXRpY2FsaXR5LkNyaXRpY2FsaXR5IGFzIHVua25vd24gYXMgTWV0YU1vZGVsRW51bTxDcml0aWNhbGl0eVR5cGU+O1xuXHRcdFx0XHRpZiAoY3JpdGljYWxpdHk/LiRFbnVtTWVtYmVyLmVuZHNXaXRoKFwiVmVyeVBvc2l0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5LlZlcnlQb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJQb3NpdGl2ZVwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Qb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJDcml0aWNhbFwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Dcml0aWNhbC5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJWZXJ5TmVnYXRpdmVcIikpIHtcblx0XHRcdFx0XHRvQ3JpdGljYWxpdHkuVmVyeU5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5Py4kRW51bU1lbWJlci5lbmRzV2l0aChcIk5lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5Lk5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5OZXV0cmFsLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ3JpdGljYWxpdHkpIHtcblx0XHRcdFx0aWYgKG9Dcml0aWNhbGl0eVtzS2V5XT8ubGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRkZWxldGUgb0NyaXRpY2FsaXR5W3NLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9Dcml0aWNhbGl0eTtcblx0fSxcblxuXHRmb3JtYXRNZWFzdXJlcyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IE1lYXN1cmVUeXBlW10ge1xuXHRcdHJldHVybiAoYW5ub3RhdGlvbkNvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLmdldERhdGEoKTtcblx0fSxcblxuXHRnZXRVaUNoYXJ0KHByZXNlbnRhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBDb250ZXh0IHtcblx0XHRyZXR1cm4gZ2V0VWlDb250cm9sKHByZXNlbnRhdGlvbkNvbnRleHQsIGBAJHtVSUFubm90YXRpb25UZXJtcy5DaGFydH1gKTtcblx0fSxcblx0Z2V0T3BlcmF0aW9uQXZhaWxhYmxlTWFwKGNoYXJ0OiBDaGFydCwgY29udGV4dENvbnRleHQ6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY2hhcnRDb2xsZWN0aW9uID0gY2hhcnQ/LkFjdGlvbnMgfHwgW107XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KEFjdGlvbkhlbHBlci5nZXRPcGVyYXRpb25BdmFpbGFibGVNYXAoY2hhcnRDb2xsZWN0aW9uLCBcImNoYXJ0XCIsIGNvbnRleHRDb250ZXh0KSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIFByZXNlbnRhdGlvbiBWYXJpYW50IHNvcnQgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIG9Db250ZXh0XG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRQYXRoXG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRNb2RlbFxuXHQgKiBAcGFyYW0gb1ByZXNlbnRhdGlvblZhcmlhbnQgUHJlc2VudGF0aW9uIFZhcmlhbnQgYW5ub3RhdGlvblxuXHQgKiBAcGFyYW0gc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoXG5cdCAqIEBwYXJhbSBvQXBwbHlTdXBwb3J0ZWRcblx0ICogQHJldHVybnMgSlNPTiBvYmplY3Rcblx0ICovXG5cdGdldFNvcnRDb25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0b0NvbnRleHQ6IENvbnRleHQsXG5cdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQ6IE1ldGFNb2RlbFR5cGU8UHJlc2VudGF0aW9uVmFyaWFudFR5cGU+LFxuXHRcdHNQcmVzZW50YXRpb25WYXJpYW50UGF0aDogc3RyaW5nLFxuXHRcdG9BcHBseVN1cHBvcnRlZDogQ2hhcnRBcHBseVN1cHBvcnRlZFxuXHQpOlxuXHRcdHwge1xuXHRcdFx0XHRzb3J0ZXJzOiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdFx0ICB9XG5cdFx0fCB1bmRlZmluZWQge1xuXHRcdGlmIChcblx0XHRcdG9QcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRDb21tb25IZWxwZXIuX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24oc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoKSAmJlxuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBhU29ydENvbmRpdGlvbnM6IHtcblx0XHRcdFx0c29ydGVyczogeyBuYW1lOiBzdHJpbmc7IGtleTogc3RyaW5nOyBkZXNjZW5kaW5nOiBib29sZWFuIH1bXTtcblx0XHRcdH0gPSB7XG5cdFx0XHRcdHNvcnRlcnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc0VudGl0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCkuc3BsaXQoXCJAXCIpWzBdO1xuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyLmZvckVhY2goZnVuY3Rpb24gKG9Db25kaXRpb246IE1ldGFNb2RlbFR5cGU8U29ydE9yZGVyVHlwZT4gPSB7fSk6IHZvaWQge1xuXHRcdFx0XHRsZXQgb1NvcnRQcm9wZXJ0eSA9IFwiXCI7XG5cdFx0XHRcdGlmIChvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdG9Tb3J0UHJvcGVydHkgPVxuXHRcdFx0XHRcdFx0XCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRPYmplY3Qoc0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eS4kQW5ub3RhdGlvblBhdGgpPy5OYW1lO1xuXHRcdFx0XHR9IGVsc2UgaWYgKG9Db25kaXRpb24uUHJvcGVydHkpIHtcblx0XHRcdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllcyA9IG9BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdGlmIChhR3JvdXBhYmxlUHJvcGVydGllcyAmJiBhR3JvdXBhYmxlUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdChhR3JvdXBhYmxlUHJvcGVydGllc1tpXSBhcyB7ICRQcm9wZXJ0eVBhdGg6IHN0cmluZyB9KS4kUHJvcGVydHlQYXRoID09PSBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NvcnRQcm9wZXJ0eSA9IFwiX2ZlX2dyb3VwYWJsZV9cIiArIG9Db25kaXRpb24uUHJvcGVydHkuJFByb3BlcnR5UGF0aDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAoIW9Tb3J0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdG9Db250ZXh0XG5cdFx0XHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0XHRcdC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGh9QCR7QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuR3JvdXBhYmxlfWApXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfZ3JvdXBhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NvcnRQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Tb3J0ZXIgPSB7XG5cdFx0XHRcdFx0XHRuYW1lOiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0a2V5OiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0ZGVzY2VuZGluZzogISFvQ29uZGl0aW9uLkRlc2NlbmRpbmdcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGFTb3J0Q29uZGl0aW9ucy5zb3J0ZXJzLnB1c2gob1NvcnRlcik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIGRlZmluZSB0aGUgcmlnaHQgcGF0aCB0byB0aGUgc29ydCBwcm9wZXJ0eVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYVNvcnRDb25kaXRpb25zO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9LFxuXHRfZ2V0TW9kZWwob0NvbGxlY3Rpb246IHVua25vd24sIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IENvbnRleHQge1xuXHRcdHJldHVybiBvSW50ZXJmYWNlLmNvbnRleHQ7XG5cdH0sXG5cdC8vIFRPRE86IGNvbWJpbmUgdGhpcyBvbmUgd2l0aCB0aGUgb25lIGZyb20gdGhlIHRhYmxlXG5cdGlzRGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uRW5hYmxlZChcblx0XHRiSXNCb3VuZDogYm9vbGVhbixcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0b0NvbGxlY3Rpb246IENvbnRleHQsXG5cdFx0c09wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nLFxuXHRcdHNFbmFibGVTZWxlY3RPbjogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0aWYgKGJJc0JvdW5kICE9PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gXCJ0cnVlXCI7XG5cdFx0fVxuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db2xsZWN0aW9uLmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgc05hdlBhdGggPSBvQ29sbGVjdGlvbi5nZXRQYXRoKCk7XG5cdFx0Y29uc3Qgc1BhcnRuZXIgPSBvTW9kZWwuZ2V0T2JqZWN0KHNOYXZQYXRoKS4kUGFydG5lcjtcblx0XHRjb25zdCBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwID0gc09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBKU09OLnBhcnNlKHNPcGVyYXRpb25BdmFpbGFibGVNYXApO1xuXHRcdGNvbnN0IGFQYXRoID0gb09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwW3NBY3Rpb25dICYmIG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0uc3BsaXQoXCIvXCIpO1xuXHRcdGNvbnN0IHNOdW1iZXJPZlNlbGVjdGVkQ29udGV4dHMgPSBBY3Rpb25IZWxwZXIuZ2V0TnVtYmVyT2ZDb250ZXh0c0V4cHJlc3Npb24oc0VuYWJsZVNlbGVjdE9uKTtcblx0XHRpZiAoYVBhdGggJiYgYVBhdGhbMF0gPT09IHNQYXJ0bmVyKSB7XG5cdFx0XHRjb25zdCBzUGF0aCA9IG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0ucmVwbGFjZShzUGFydG5lciArIFwiL1wiLCBcIlwiKTtcblx0XHRcdHJldHVybiBcIns9ICR7XCIgKyBzTnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzICsgXCIgJiYgJHtcIiArIHNQYXRoICsgXCJ9fVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJ7PSAke1wiICsgc051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyArIFwifVwiO1xuXHRcdH1cblx0fSxcblx0Z2V0SGlkZGVuUGF0aEV4cHJlc3Npb25Gb3JUYWJsZUFjdGlvbnNBbmRJQk4oc0hpZGRlblBhdGg6IHN0cmluZywgb0RldGFpbHM6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB8IHRydWUge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gb0RldGFpbHMuY29udGV4dCxcblx0XHRcdHNQcm9wZXJ0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCksXG5cdFx0XHRzRW50aXR5U2V0UGF0aCA9IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyLmdldE5hdmlnYXRpb25QYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHRcdGlmIChzSGlkZGVuUGF0aC5pbmRleE9mKFwiL1wiKSA+IDApIHtcblx0XHRcdGNvbnN0IGFTcGxpdEhpZGRlblBhdGggPSBzSGlkZGVuUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRjb25zdCBzTmF2aWdhdGlvblBhdGggPSBhU3BsaXRIaWRkZW5QYXRoWzBdO1xuXHRcdFx0Ly8gc3VwcG9ydHMgdmlzaWJsaXR5IGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJ0bmVyIGFzc29jaWF0aW9uXG5cdFx0XHRpZiAob0NvbnRleHQuZ2V0T2JqZWN0KHNFbnRpdHlTZXRQYXRoICsgXCIvJFBhcnRuZXJcIikgPT09IHNOYXZpZ2F0aW9uUGF0aCkge1xuXHRcdFx0XHRyZXR1cm4gXCJ7PSAhJXtcIiArIGFTcGxpdEhpZGRlblBhdGguc2xpY2UoMSkuam9pbihcIi9cIikgKyBcIn0gfVwiO1xuXHRcdFx0fVxuXHRcdFx0Ly8gYW55IG90aGVyIGFzc29jaWF0aW9uIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIGJ1dHRvbiB3aWxsIGJlIG1hZGUgdmlzaWJsZVxuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgcHJlc3MgZXZlbnQgZm9yIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbi5cblx0ICogQHBhcmFtIGlkIEN1cnJlbnQgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcGFyYW0gb3BlcmF0aW9uQXZhaWxhYmxlTWFwIFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgcHJlc3MgcHJvcGVydHkgb2YgdGhlIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvblxuXHQgKi9cblx0Z2V0UHJlc3NFdmVudEZvckRhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihcblx0XHRpZDogc3RyaW5nLFxuXHRcdGFjdGlvbjogTWV0YU1vZGVsVHlwZTxEYXRhRmllbGRGb3JBY3Rpb24+ICYgeyBJbnZvY2F0aW9uR3JvdXBpbmc6IE1ldGFNb2RlbEVudW08T3BlcmF0aW9uR3JvdXBpbmdUeXBlPiB9LFxuXHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5nZXRQcmVzc0V2ZW50RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKFxuXHRcdFx0aWQsXG5cdFx0XHRhY3Rpb24sXG5cdFx0XHR7XG5cdFx0XHRcdGNvbnRleHRzOiBcIiR7aW50ZXJuYWw+c2VsZWN0ZWRDb250ZXh0c31cIlxuXHRcdFx0fSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcFxuXHRcdCk7XG5cdH0sXG5cdC8qKlxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIEJvb2xlYW4gdmFsdWUgZGVwZW5kaW5nIG9uIHRoZSBhY3Rpb24gdHlwZVxuXHQgKi9cblx0Z2V0QWN0aW9uVHlwZShhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoYWN0aW9uW1wiJFR5cGVcIl0uaW5jbHVkZXMoVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSB8fFxuXHRcdFx0XHRhY3Rpb25bXCIkVHlwZVwiXS5pbmNsdWRlcyhVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24pKSAmJlxuXHRcdFx0YWN0aW9uW1wiSW5saW5lXCJdXG5cdFx0KS52YWx1ZU9mKCk7XG5cdH0sXG5cdGdldENvbGxlY3Rpb25OYW1lKGNvbGxlY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29sbGVjdGlvblNwbGl0ID0gY29sbGVjdGlvbi5zcGxpdChcIi9cIik7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb25TcGxpdFtjb2xsZWN0aW9uU3BsaXQubGVuZ3RoIC0gMV07XG5cdH1cbn07XG4oQ2hhcnRIZWxwZXIuZ2V0U29ydENvbmRpdGlvbnMgYXMgeyByZXF1aXJlc0lDb250ZXh0PzogYm9vbGVhbiB9KS5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBNkJBLFNBQVNBLGdCQUFnQkEsQ0FBQ0MsaUJBQTBCLEVBQVU7SUFDN0QsT0FBT0EsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxFQUFFLENBQUM7RUFDNUc7RUFFQSxNQUFNQyxhQUFhLEdBQUc7SUFDckIsNkNBQTZDLEVBQUUsUUFBUTtJQUN2RCxvREFBb0QsRUFBRSxnQkFBZ0I7SUFDdEUsaURBQWlELEVBQUUsYUFBYTtJQUNoRSx3REFBd0QsRUFBRSxxQkFBcUI7SUFDL0UsdURBQXVELEVBQUUsb0JBQW9CO0lBQzdFLDJEQUEyRCxFQUFFLHlCQUF5QjtJQUN0RiwwQ0FBMEMsRUFB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
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRFbnRpdHlTZXRQYXRoIiwiYW5ub3RhdGlvbkNvbnRleHQiLCJnZXRQYXRoIiwicmVwbGFjZSIsIkNoYXJ0VHlwZUVudW0iLCJEaW1lbnNpb25Sb2xlVHlwZUVudW0iLCJDaGFydEhlbHBlciIsImZvcm1hdEpTT05Ub1N0cmluZyIsImNyaXQiLCJ1bmRlZmluZWQiLCJjcml0aWNhbGl0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJSZWdFeHAiLCJmb3JtYXRDaGFydFR5cGUiLCJjaGFydFR5cGUiLCIkRW51bU1lbWJlciIsImZvcm1hdERpbWVuc2lvbnMiLCJhbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJlbnRpdHlTZXRQYXRoIiwiZGltZW5zaW9ucyIsImlzTmF2aWdhdGlvblRleHQiLCJEaW1lbnNpb25BdHRyaWJ1dGVzIiwiZGltZW5zaW9uIiwiRGltZW5zaW9ucyIsImtleSIsIiRQcm9wZXJ0eVBhdGgiLCJ0ZXh0IiwiaW5jbHVkZXMiLCJMb2ciLCJlcnJvciIsIiRQYXRoIiwiaW5kZXhPZiIsImNoYXJ0RGltZW5zaW9uIiwidGV4dFBhdGgiLCJsYWJlbCIsInJvbGUiLCJhdHRyaWJ1dGUiLCJEaW1lbnNpb24iLCJSb2xlIiwiZmV0Y2hDcml0aWNhbGl0eSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwicHVzaCIsImRpbWVuc2lvbk1vZGVsIiwiSlNPTk1vZGVsIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIm9NZXRhTW9kZWwiLCJvQ3R4IiwiVUkiLCJhVmFsdWVDcml0aWNhbGl0eSIsIm9Dcml0aWNhbGl0eSIsIm9WYWx1ZUNyaXRpY2FsaXR5IiwiVmVyeVBvc2l0aXZlIiwiUG9zaXRpdmUiLCJDcml0aWNhbCIsIlZlcnlOZWdhdGl2ZSIsIk5lZ2F0aXZlIiwiTmV1dHJhbCIsImkiLCJsZW5ndGgiLCJDcml0aWNhbGl0eSIsImVuZHNXaXRoIiwiVmFsdWUiLCJzS2V5IiwiZm9ybWF0TWVhc3VyZXMiLCJnZXREYXRhIiwiZ2V0VWlDaGFydCIsInByZXNlbnRhdGlvbkNvbnRleHQiLCJnZXRVaUNvbnRyb2wiLCJnZXRPcGVyYXRpb25BdmFpbGFibGVNYXAiLCJjaGFydCIsImNvbnRleHRDb250ZXh0IiwiY2hhcnRDb2xsZWN0aW9uIiwiQWN0aW9ucyIsIkFjdGlvbkhlbHBlciIsImdldFNvcnRDb25kaXRpb25zIiwib0NvbnRleHQiLCJvUHJlc2VudGF0aW9uVmFyaWFudCIsInNQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsIm9BcHBseVN1cHBvcnRlZCIsIkNvbW1vbkhlbHBlciIsIl9pc1ByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU29ydE9yZGVyIiwiYVNvcnRDb25kaXRpb25zIiwic29ydGVycyIsInNFbnRpdHlQYXRoIiwic3BsaXQiLCJmb3JFYWNoIiwib0NvbmRpdGlvbiIsImFyZ3VtZW50cyIsIm9Tb3J0UHJvcGVydHkiLCJEeW5hbWljUHJvcGVydHkiLCIkQW5ub3RhdGlvblBhdGgiLCJOYW1lIiwiUHJvcGVydHkiLCJhR3JvdXBhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvU29ydGVyIiwibmFtZSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwiRXJyb3IiLCJfZ2V0TW9kZWwiLCJvQ29sbGVjdGlvbiIsIm9JbnRlcmZhY2UiLCJjb250ZXh0IiwiaXNEYXRhRmllbGRGb3JBY3Rpb25CdXR0b25FbmFibGVkIiwiYklzQm91bmQiLCJzQWN0aW9uIiwic09wZXJhdGlvbkF2YWlsYWJsZU1hcCIsInNFbmFibGVTZWxlY3RPbiIsIm9Nb2RlbCIsInNOYXZQYXRoIiwic1BhcnRuZXIiLCIkUGFydG5lciIsIm9PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJwYXJzZSIsImFQYXRoIiwic051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyIsImdldE51bWJlck9mQ29udGV4dHNFeHByZXNzaW9uIiwic1BhdGgiLCJnZXRIaWRkZW5QYXRoRXhwcmVzc2lvbkZvclRhYmxlQWN0aW9uc0FuZElCTiIsInNIaWRkZW5QYXRoIiwib0RldGFpbHMiLCJzUHJvcGVydHlQYXRoIiwic0VudGl0eVNldFBhdGgiLCJPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciIsImdldE5hdmlnYXRpb25QYXRoIiwiYVNwbGl0SGlkZGVuUGF0aCIsInNOYXZpZ2F0aW9uUGF0aCIsInNsaWNlIiwiam9pbiIsImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJpZCIsImFjdGlvbiIsIm9wZXJhdGlvbkF2YWlsYWJsZU1hcCIsImdldFByZXNzRXZlbnREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJjb250ZXh0cyIsImdldEFjdGlvblR5cGUiLCJ2YWx1ZU9mIiwiZ2V0Q29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvblNwbGl0IiwicmVxdWlyZXNJQ29udGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ2hhcnRIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFZG0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFNvcnRPcmRlclR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENoYXJ0VHlwZSxcblx0Q3JpdGljYWxpdHlUeXBlLFxuXHREYXRhRmllbGRGb3JBY3Rpb24sXG5cdE9wZXJhdGlvbkdyb3VwaW5nVHlwZSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFZhbHVlQ3JpdGljYWxpdHlUeXBlXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgRGltZW5zaW9uUm9sZVR5cGUgZnJvbSBcInNhcC9jaGFydC9kYXRhL0RpbWVuc2lvblJvbGVUeXBlXCI7XG5pbXBvcnQgdHlwZSBBdHRyaWJ1dGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9BdHRyaWJ1dGVNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydEFwcGx5U3VwcG9ydGVkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQgeyBnZXRVaUNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJlVHlwZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NoYXJ0L01kY0NoYXJ0VGVtcGxhdGVcIjtcbmltcG9ydCBBY3Rpb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvaGVscGVycy9BY3Rpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0Fubm90YXRpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgRXhwYW5kUGF0aFR5cGUsIE1ldGFNb2RlbEVudW0sIE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGdldEVudGl0eVNldFBhdGgoYW5ub3RhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gYW5ub3RhdGlvbkNvbnRleHQuZ2V0UGF0aCgpLnJlcGxhY2UoL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS4oQ2hhcnR8UHJlc2VudGF0aW9uVmFyaWFudCkuKi8sIFwiXCIpO1xufVxuXG5jb25zdCBDaGFydFR5cGVFbnVtID0ge1xuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZFwiOiBcInN0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbHVtbkR1YWxcIjogXCJkdWFsX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbDEwMFwiOiBcIjEwMF9kdWFsX3N0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwic3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQmFyRHVhbFwiOiBcImR1YWxfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsXCI6IFwiZHVhbF9zdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkMTAwXCI6IFwiMTAwX3N0YWNrZWRfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsMTAwXCI6IFwiMTAwX2R1YWxfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVwiOiBcImFyZWFcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9BcmVhU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWQxMDBcIjogXCIxMDBfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZVwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZUR1YWxcIjogXCJkdWFsX2xpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db21iaW5hdGlvblN0YWNrZWRcIjogXCJzdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfY29tYmluYXRpb25cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkXCI6IFwiaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1BpZVwiOiBcInBpZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Eb251dFwiOiBcImRvbnV0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1NjYXR0ZXJcIjogXCJzY2F0dGVyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9SYWRhclwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSGVhdE1hcFwiOiBcImhlYXRtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvVHJlZU1hcFwiOiBcInRyZWVtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvV2F0ZXJmYWxsXCI6IFwid2F0ZXJmYWxsXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1bGxldFwiOiBcImJ1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9WZXJ0aWNhbEJ1bGxldFwiOiBcInZlcnRpY2FsX2J1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsV2F0ZXJmYWxsXCI6IFwiaG9yaXpvbnRhbF93YXRlcmZhbGxcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSG9yaXpvbnRhbENvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCJcbn07XG5jb25zdCBEaW1lbnNpb25Sb2xlVHlwZUVudW0gPSB7XG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9DYXRlZ29yeVwiOiBcImNhdGVnb3J5XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9TZXJpZXNcIjogXCJzZXJpZXNcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydERpbWVuc2lvblJvbGVUeXBlL0NhdGVnb3J5MlwiOiBcImNhdGVnb3J5MlwiXG59O1xuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHNhcC5mZS5tYWNyb3MgQ2hhcnQgcGhhbnRvbSBjb250cm9sIGZvciBwcmVwcm9jZXNzaW5nLlxuICogPGgzPjxiPk5vdGU6PC9iPjwvaDM+XG4gKiBUaGUgY2xhc3MgaXMgZXhwZXJpbWVudGFsIGFuZCB0aGUgQVBJL2JlaGF2aW91ciBpcyBub3QgZmluYWxpc2VkXG4gKiBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBFc3BlY2lhbGx5IHRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRoZSBGRSBzY2VuYXJpbyxcbiAqIGhlcmUgd2Ugc2hhbGwgdXNlIHNhcC5mZS5tYWNyb3MuQ2hhcnRIZWxwZXIgdGhhdCBpcyBlc3BlY2lhbGx5IHRhaWxvcmVkIGZvciBWNFxuICogbWV0YSBtb2RlbFxuICogQGF1dGhvciBTQVAgU0VcbiAqIEBwcml2YXRlXG4gKiBAc2luY2UgMS42Mi4wXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5DaGFydEhlbHBlclxuICovXG5jb25zdCBDaGFydEhlbHBlciA9IHtcblx0Zm9ybWF0SlNPTlRvU3RyaW5nKGNyaXQ6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFjcml0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGxldCBjcml0aWNhbGl0eSA9IEpTT04uc3RyaW5naWZ5KGNyaXQpO1xuXHRcdGNyaXRpY2FsaXR5ID0gY3JpdGljYWxpdHkucmVwbGFjZShuZXcgUmVnRXhwKFwie1wiLCBcImdcIiksIFwiXFxcXHtcIik7XG5cdFx0Y3JpdGljYWxpdHkgPSBjcml0aWNhbGl0eS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJ9XCIsIFwiZ1wiKSwgXCJcXFxcfVwiKTtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHk7XG5cdH0sXG5cdGZvcm1hdENoYXJ0VHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENoYXJ0VHlwZUVudW1bKGNoYXJ0VHlwZSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbEVudW08Q2hhcnRUeXBlPik/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBDaGFydFR5cGVFbnVtXTtcblx0fSxcblx0Zm9ybWF0RGltZW5zaW9ucyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IENvbnRleHQge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uQ29udGV4dC5nZXRPYmplY3QoXCIuL1wiKSBhcyBDaGFydCxcblx0XHRcdG1ldGFNb2RlbCA9IGFubm90YXRpb25Db250ZXh0LmdldE1vZGVsKCksXG5cdFx0XHRlbnRpdHlTZXRQYXRoID0gZ2V0RW50aXR5U2V0UGF0aChhbm5vdGF0aW9uQ29udGV4dCksXG5cdFx0XHRkaW1lbnNpb25zID0gW107XG5cblx0XHRsZXQgaXNOYXZpZ2F0aW9uVGV4dCA9IGZhbHNlO1xuXG5cdFx0Ly9wZXJoYXBzIHRoZXJlIGFyZSBubyBkaW1lbnNpb25cblx0XHRhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgPSBhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgfHwgW107XG5cblx0XHRmb3IgKGNvbnN0IGRpbWVuc2lvbiBvZiBhbm5vdGF0aW9uLkRpbWVuc2lvbnMpIHtcblx0XHRcdGNvbnN0IGtleSA9IChkaW1lbnNpb24gYXMgdW5rbm93biBhcyBFeHBhbmRQYXRoVHlwZTxFZG0uUHJvcGVydHlQYXRoPikuJFByb3BlcnR5UGF0aDtcblx0XHRcdGNvbnN0IHRleHQgPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLlRleHR9YCkgfHwge307XG5cdFx0XHRpZiAoa2V5LmluY2x1ZGVzKFwiL1wiKSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoYCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIERpbWVuc2lvbjogJHtrZXl9IGZyb20gYW4gYXNzb2NpYXRpb24gY2Fubm90IGJlIHVzZWRgKTtcblx0XHRcdH1cblx0XHRcdGlmICh0ZXh0LiRQYXRoICYmIHRleHQuJFBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIFRleHQgUHJvcGVydHk6ICR7dGV4dC4kUGF0aH0gZnJvbSBhbiBhc3NvY2lhdGlvbiBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIGRpbWVuc2lvbiAke2tleX1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlzTmF2aWdhdGlvblRleHQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjaGFydERpbWVuc2lvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcblx0XHRcdFx0a2V5OiBrZXksXG5cdFx0XHRcdHRleHRQYXRoOiAhaXNOYXZpZ2F0aW9uVGV4dCA/IHRleHQuJFBhdGggOiB1bmRlZmluZWQsXG5cdFx0XHRcdGxhYmVsOiBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLkxhYmVsfWApLFxuXHRcdFx0XHRyb2xlOiBcImNhdGVnb3J5XCJcblx0XHRcdH07XG5cblx0XHRcdGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcykge1xuXHRcdFx0XHRpZiAoY2hhcnREaW1lbnNpb24ua2V5ID09PSAoYXR0cmlidXRlLkRpbWVuc2lvbiBhcyB1bmtub3duIGFzIEV4cGFuZFBhdGhUeXBlPEVkbS5Qcm9wZXJ0eVBhdGg+KT8uJFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHRcdGNoYXJ0RGltZW5zaW9uLnJvbGUgPVxuXHRcdFx0XHRcdFx0RGltZW5zaW9uUm9sZVR5cGVFbnVtW1xuXHRcdFx0XHRcdFx0XHQoYXR0cmlidXRlLlJvbGUgYXMgdW5rbm93biBhcyBNZXRhTW9kZWxFbnVtPERpbWVuc2lvblJvbGVUeXBlPilcblx0XHRcdFx0XHRcdFx0XHQ/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBEaW1lbnNpb25Sb2xlVHlwZUVudW1cblx0XHRcdFx0XHRcdF0gfHwgY2hhcnREaW1lbnNpb24ucm9sZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IHRoaXMuZmV0Y2hDcml0aWNhbGl0eShtZXRhTW9kZWwsIG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChlbnRpdHlTZXRQYXRoICsga2V5KSk7XG5cdFx0XHRjaGFydERpbWVuc2lvbi5jcml0aWNhbGl0eSA9IHRoaXMuZm9ybWF0SlNPTlRvU3RyaW5nKGNyaXRpY2FsaXR5KTtcblx0XHRcdGRpbWVuc2lvbnMucHVzaChjaGFydERpbWVuc2lvbik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZGltZW5zaW9uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKGRpbWVuc2lvbnMpO1xuXHRcdChkaW1lbnNpb25Nb2RlbCBhcyBBdHRyaWJ1dGVNb2RlbCkuJCR2YWx1ZUFzUHJvbWlzZSA9IHRydWU7XG5cdFx0cmV0dXJuIGRpbWVuc2lvbk1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblx0fSxcblxuXHRmZXRjaENyaXRpY2FsaXR5KG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBvQ3R4OiBDb250ZXh0KTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBVSSA9IFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI7XG5cdFx0Y29uc3QgYVZhbHVlQ3JpdGljYWxpdHk6IE1ldGFNb2RlbFR5cGU8VmFsdWVDcml0aWNhbGl0eVR5cGU+W10gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgJHtVSX0uVmFsdWVDcml0aWNhbGl0eWAsIG9DdHgpO1xuXHRcdGxldCBvQ3JpdGljYWxpdHk6IFJlY29yZDxzdHJpbmcsIHVua25vd25bXT4gfCB1bmRlZmluZWQsIG9WYWx1ZUNyaXRpY2FsaXR5OiBNZXRhTW9kZWxUeXBlPFZhbHVlQ3JpdGljYWxpdHlUeXBlPjtcblxuXHRcdGlmIChhVmFsdWVDcml0aWNhbGl0eSkge1xuXHRcdFx0b0NyaXRpY2FsaXR5ID0ge1xuXHRcdFx0XHRWZXJ5UG9zaXRpdmU6IFtdLFxuXHRcdFx0XHRQb3NpdGl2ZTogW10sXG5cdFx0XHRcdENyaXRpY2FsOiBbXSxcblx0XHRcdFx0VmVyeU5lZ2F0aXZlOiBbXSxcblx0XHRcdFx0TmVnYXRpdmU6IFtdLFxuXHRcdFx0XHROZXV0cmFsOiBbXVxuXHRcdFx0fTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhVmFsdWVDcml0aWNhbGl0eS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRvVmFsdWVDcml0aWNhbGl0eSA9IGFWYWx1ZUNyaXRpY2FsaXR5W2ldO1xuXHRcdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IG9WYWx1ZUNyaXRpY2FsaXR5LkNyaXRpY2FsaXR5IGFzIHVua25vd24gYXMgTWV0YU1vZGVsRW51bTxDcml0aWNhbGl0eVR5cGU+O1xuXHRcdFx0XHRpZiAoY3JpdGljYWxpdHk/LiRFbnVtTWVtYmVyLmVuZHNXaXRoKFwiVmVyeVBvc2l0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5LlZlcnlQb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJQb3NpdGl2ZVwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Qb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJDcml0aWNhbFwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Dcml0aWNhbC5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJWZXJ5TmVnYXRpdmVcIikpIHtcblx0XHRcdFx0XHRvQ3JpdGljYWxpdHkuVmVyeU5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5Py4kRW51bU1lbWJlci5lbmRzV2l0aChcIk5lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5Lk5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5OZXV0cmFsLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ3JpdGljYWxpdHkpIHtcblx0XHRcdFx0aWYgKG9Dcml0aWNhbGl0eVtzS2V5XT8ubGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRkZWxldGUgb0NyaXRpY2FsaXR5W3NLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9Dcml0aWNhbGl0eTtcblx0fSxcblxuXHRmb3JtYXRNZWFzdXJlcyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IE1lYXN1cmVUeXBlW10ge1xuXHRcdHJldHVybiAoYW5ub3RhdGlvbkNvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLmdldERhdGEoKTtcblx0fSxcblxuXHRnZXRVaUNoYXJ0KHByZXNlbnRhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBDb250ZXh0IHtcblx0XHRyZXR1cm4gZ2V0VWlDb250cm9sKHByZXNlbnRhdGlvbkNvbnRleHQsIGBAJHtVSUFubm90YXRpb25UZXJtcy5DaGFydH1gKTtcblx0fSxcblx0Z2V0T3BlcmF0aW9uQXZhaWxhYmxlTWFwKGNoYXJ0OiBDaGFydCwgY29udGV4dENvbnRleHQ6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY2hhcnRDb2xsZWN0aW9uID0gY2hhcnQ/LkFjdGlvbnMgfHwgW107XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KEFjdGlvbkhlbHBlci5nZXRPcGVyYXRpb25BdmFpbGFibGVNYXAoY2hhcnRDb2xsZWN0aW9uLCBcImNoYXJ0XCIsIGNvbnRleHRDb250ZXh0KSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIFByZXNlbnRhdGlvbiBWYXJpYW50IHNvcnQgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIG9Db250ZXh0XG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRQYXRoXG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRNb2RlbFxuXHQgKiBAcGFyYW0gb1ByZXNlbnRhdGlvblZhcmlhbnQgUHJlc2VudGF0aW9uIFZhcmlhbnQgYW5ub3RhdGlvblxuXHQgKiBAcGFyYW0gc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoXG5cdCAqIEBwYXJhbSBvQXBwbHlTdXBwb3J0ZWRcblx0ICogQHJldHVybnMgSlNPTiBvYmplY3Rcblx0ICovXG5cdGdldFNvcnRDb25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0b0NvbnRleHQ6IENvbnRleHQsXG5cdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQ6IE1ldGFNb2RlbFR5cGU8UHJlc2VudGF0aW9uVmFyaWFudFR5cGU+LFxuXHRcdHNQcmVzZW50YXRpb25WYXJpYW50UGF0aDogc3RyaW5nLFxuXHRcdG9BcHBseVN1cHBvcnRlZDogQ2hhcnRBcHBseVN1cHBvcnRlZFxuXHQpOlxuXHRcdHwge1xuXHRcdFx0XHRzb3J0ZXJzOiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdFx0ICB9XG5cdFx0fCB1bmRlZmluZWQge1xuXHRcdGlmIChcblx0XHRcdG9QcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRDb21tb25IZWxwZXIuX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24oc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoKSAmJlxuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBhU29ydENvbmRpdGlvbnM6IHtcblx0XHRcdFx0c29ydGVyczogeyBuYW1lOiBzdHJpbmc7IGtleTogc3RyaW5nOyBkZXNjZW5kaW5nOiBib29sZWFuIH1bXTtcblx0XHRcdH0gPSB7XG5cdFx0XHRcdHNvcnRlcnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc0VudGl0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCkuc3BsaXQoXCJAXCIpWzBdO1xuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyLmZvckVhY2goZnVuY3Rpb24gKG9Db25kaXRpb246IE1ldGFNb2RlbFR5cGU8U29ydE9yZGVyVHlwZT4gPSB7fSk6IHZvaWQge1xuXHRcdFx0XHRsZXQgb1NvcnRQcm9wZXJ0eSA9IFwiXCI7XG5cdFx0XHRcdGlmIChvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdG9Tb3J0UHJvcGVydHkgPVxuXHRcdFx0XHRcdFx0XCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRPYmplY3Qoc0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eS4kQW5ub3RhdGlvblBhdGgpPy5OYW1lO1xuXHRcdFx0XHR9IGVsc2UgaWYgKG9Db25kaXRpb24uUHJvcGVydHkpIHtcblx0XHRcdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllcyA9IG9BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdGlmIChhR3JvdXBhYmxlUHJvcGVydGllcyAmJiBhR3JvdXBhYmxlUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdChhR3JvdXBhYmxlUHJvcGVydGllc1tpXSBhcyB7ICRQcm9wZXJ0eVBhdGg6IHN0cmluZyB9KS4kUHJvcGVydHlQYXRoID09PSBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NvcnRQcm9wZXJ0eSA9IFwiX2ZlX2dyb3VwYWJsZV9cIiArIG9Db25kaXRpb24uUHJvcGVydHkuJFByb3BlcnR5UGF0aDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAoIW9Tb3J0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdG9Db250ZXh0XG5cdFx0XHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0XHRcdC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGh9QCR7QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuR3JvdXBhYmxlfWApXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfZ3JvdXBhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NvcnRQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Tb3J0ZXIgPSB7XG5cdFx0XHRcdFx0XHRuYW1lOiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0a2V5OiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0ZGVzY2VuZGluZzogISFvQ29uZGl0aW9uLkRlc2NlbmRpbmdcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGFTb3J0Q29uZGl0aW9ucy5zb3J0ZXJzLnB1c2gob1NvcnRlcik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIGRlZmluZSB0aGUgcmlnaHQgcGF0aCB0byB0aGUgc29ydCBwcm9wZXJ0eVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYVNvcnRDb25kaXRpb25zO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9LFxuXHRfZ2V0TW9kZWwob0NvbGxlY3Rpb246IHVua25vd24sIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IENvbnRleHQge1xuXHRcdHJldHVybiBvSW50ZXJmYWNlLmNvbnRleHQ7XG5cdH0sXG5cdC8vIFRPRE86IGNvbWJpbmUgdGhpcyBvbmUgd2l0aCB0aGUgb25lIGZyb20gdGhlIHRhYmxlXG5cdGlzRGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uRW5hYmxlZChcblx0XHRiSXNCb3VuZDogYm9vbGVhbixcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0b0NvbGxlY3Rpb246IENvbnRleHQsXG5cdFx0c09wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nLFxuXHRcdHNFbmFibGVTZWxlY3RPbjogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0aWYgKGJJc0JvdW5kICE9PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gXCJ0cnVlXCI7XG5cdFx0fVxuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db2xsZWN0aW9uLmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgc05hdlBhdGggPSBvQ29sbGVjdGlvbi5nZXRQYXRoKCk7XG5cdFx0Y29uc3Qgc1BhcnRuZXIgPSBvTW9kZWwuZ2V0T2JqZWN0KHNOYXZQYXRoKS4kUGFydG5lcjtcblx0XHRjb25zdCBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwID0gc09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBKU09OLnBhcnNlKHNPcGVyYXRpb25BdmFpbGFibGVNYXApO1xuXHRcdGNvbnN0IGFQYXRoID0gb09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwW3NBY3Rpb25dICYmIG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0uc3BsaXQoXCIvXCIpO1xuXHRcdGNvbnN0IHNOdW1iZXJPZlNlbGVjdGVkQ29udGV4dHMgPSBBY3Rpb25IZWxwZXIuZ2V0TnVtYmVyT2ZDb250ZXh0c0V4cHJlc3Npb24oc0VuYWJsZVNlbGVjdE9uKTtcblx0XHRpZiAoYVBhdGggJiYgYVBhdGhbMF0gPT09IHNQYXJ0bmVyKSB7XG5cdFx0XHRjb25zdCBzUGF0aCA9IG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0ucmVwbGFjZShzUGFydG5lciArIFwiL1wiLCBcIlwiKTtcblx0XHRcdHJldHVybiBcIns9ICR7XCIgKyBzTnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzICsgXCIgJiYgJHtcIiArIHNQYXRoICsgXCJ9fVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJ7PSAke1wiICsgc051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyArIFwifVwiO1xuXHRcdH1cblx0fSxcblx0Z2V0SGlkZGVuUGF0aEV4cHJlc3Npb25Gb3JUYWJsZUFjdGlvbnNBbmRJQk4oc0hpZGRlblBhdGg6IHN0cmluZywgb0RldGFpbHM6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB8IHRydWUge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gb0RldGFpbHMuY29udGV4dCxcblx0XHRcdHNQcm9wZXJ0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCksXG5cdFx0XHRzRW50aXR5U2V0UGF0aCA9IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyLmdldE5hdmlnYXRpb25QYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHRcdGlmIChzSGlkZGVuUGF0aC5pbmRleE9mKFwiL1wiKSA+IDApIHtcblx0XHRcdGNvbnN0IGFTcGxpdEhpZGRlblBhdGggPSBzSGlkZGVuUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRjb25zdCBzTmF2aWdhdGlvblBhdGggPSBhU3BsaXRIaWRkZW5QYXRoWzBdO1xuXHRcdFx0Ly8gc3VwcG9ydHMgdmlzaWJsaXR5IGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJ0bmVyIGFzc29jaWF0aW9uXG5cdFx0XHRpZiAob0NvbnRleHQuZ2V0T2JqZWN0KHNFbnRpdHlTZXRQYXRoICsgXCIvJFBhcnRuZXJcIikgPT09IHNOYXZpZ2F0aW9uUGF0aCkge1xuXHRcdFx0XHRyZXR1cm4gXCJ7PSAhJXtcIiArIGFTcGxpdEhpZGRlblBhdGguc2xpY2UoMSkuam9pbihcIi9cIikgKyBcIn0gfVwiO1xuXHRcdFx0fVxuXHRcdFx0Ly8gYW55IG90aGVyIGFzc29jaWF0aW9uIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIGJ1dHRvbiB3aWxsIGJlIG1hZGUgdmlzaWJsZVxuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgcHJlc3MgZXZlbnQgZm9yIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbi5cblx0ICogQHBhcmFtIGlkIEN1cnJlbnQgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcGFyYW0gb3BlcmF0aW9uQXZhaWxhYmxlTWFwIFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgcHJlc3MgcHJvcGVydHkgb2YgdGhlIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvblxuXHQgKi9cblx0Z2V0UHJlc3NFdmVudEZvckRhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihcblx0XHRpZDogc3RyaW5nLFxuXHRcdGFjdGlvbjogTWV0YU1vZGVsVHlwZTxEYXRhRmllbGRGb3JBY3Rpb24+ICYgeyBJbnZvY2F0aW9uR3JvdXBpbmc6IE1ldGFNb2RlbEVudW08T3BlcmF0aW9uR3JvdXBpbmdUeXBlPiB9LFxuXHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5nZXRQcmVzc0V2ZW50RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKFxuXHRcdFx0aWQsXG5cdFx0XHRhY3Rpb24sXG5cdFx0XHR7XG5cdFx0XHRcdGNvbnRleHRzOiBcIiR7aW50ZXJuYWw+c2VsZWN0ZWRDb250ZXh0c31cIlxuXHRcdFx0fSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcFxuXHRcdCk7XG5cdH0sXG5cdC8qKlxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIEJvb2xlYW4gdmFsdWUgZGVwZW5kaW5nIG9uIHRoZSBhY3Rpb24gdHlwZVxuXHQgKi9cblx0Z2V0QWN0aW9uVHlwZShhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoYWN0aW9uW1wiJFR5cGVcIl0uaW5jbHVkZXMoVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSB8fFxuXHRcdFx0XHRhY3Rpb25bXCIkVHlwZVwiXS5pbmNsdWRlcyhVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24pKSAmJlxuXHRcdFx0YWN0aW9uW1wiSW5saW5lXCJdXG5cdFx0KS52YWx1ZU9mKCk7XG5cdH0sXG5cdGdldENvbGxlY3Rpb25OYW1lKGNvbGxlY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29sbGVjdGlvblNwbGl0ID0gY29sbGVjdGlvbi5zcGxpdChcIi9cIik7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb25TcGxpdFtjb2xsZWN0aW9uU3BsaXQubGVuZ3RoIC0gMV07XG5cdH1cbn07XG4oQ2hhcnRIZWxwZXIuZ2V0U29ydENvbmRpdGlvbnMgYXMgeyByZXF1aXJlc0lDb250ZXh0PzogYm9vbGVhbiB9KS5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBNkJBLFNBQVNBLGdCQUFnQkEsQ0FBQ0MsaUJBQTBCLEVBQVU7SUFDN0QsT0FBT0EsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxFQUFFLENBQUM7RUFDNUc7RUFFQSxNQUFNQyxhQUFhLEdBQUc7SUFDckIsNkNBQTZDLEVBQUUsUUFBUTtJQUN2RCxvREFBb0QsRUFBRSxnQkFBZ0I7SUFDdEUsaURBQWlELEVBQUUsYUFBYTtJQUNoRSx3REFBd0QsRUFBRSxxQkFBcUI7SUFDL0UsdURBQXVELEVBQUUsb0JBQW9CO0lBQzdFLDJEQUEyRCxFQUFFLHlCQUF5QjtJQUN0RiwwQ0FBMEMsRUFBRSxLQUFLO0lBQ2pELGlEQUFp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
|
|
@@ -8,7 +8,6 @@ sap.ui.define(["sap/fe/core/ActionRuntime", "sap/fe/macros/chart/ChartUtils", "s
|
|
|
8
8
|
/**
|
|
9
9
|
* Static class used by MDC_Chart during runtime
|
|
10
10
|
* @private
|
|
11
|
-
* @experimental This module is only for internal/experimental use!
|
|
12
11
|
*/
|
|
13
12
|
const ChartRuntime = {
|
|
14
13
|
/**
|
|
@@ -63,4 +62,4 @@ sap.ui.define(["sap/fe/core/ActionRuntime", "sap/fe/macros/chart/ChartUtils", "s
|
|
|
63
62
|
};
|
|
64
63
|
return ChartRuntime;
|
|
65
64
|
}, false);
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGFydFJ1bnRpbWUiLCJmblVwZGF0ZUNoYXJ0Iiwib0V2ZW50Iiwib0lubmVyQ2hhcnQiLCJnZXRTb3VyY2UiLCJvTWRjQ2hhcnQiLCJnZXRQYXJlbnQiLCJzQWN0aW9uc011bHRpc2VsZWN0RGlzYWJsZWQiLCJvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwIiwiYUFjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkIiwiZ2V0Q3VzdG9tRGF0YSIsImZvckVhY2giLCJvQ3VzdG9tRGF0YSIsImdldEtleSIsIkRlbGVnYXRlVXRpbCIsImN1c3RvbURhdGEiLCJnZXRWYWx1ZSIsInNwbGl0Iiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJhU2VsZWN0ZWRDb250ZXh0cyIsIm9Nb2RlbE9iamVjdCIsImFTZWxlY3RlZERhdGFQb2ludHMiLCJDaGFydFV0aWxzIiwiZ2V0Q2hhcnRTZWxlY3RlZERhdGEiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNvbnRleHQiLCJzZXRQcm9wZXJ0eSIsImdldE1vZGVsIiwiZ2V0UGF0aCIsImdldFNlbGVjdGVkRGF0YVBvaW50cyIsImNvdW50IiwiaiIsIm9TZWxlY3RlZENvbnRleHQiLCJvQ29udGV4dERhdGEiLCJnZXRPYmplY3QiLCJrZXkiLCJpbmRleE9mIiwic0FjdGlvblBhdGgiLCJzdWJzdHJpbmciLCJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsInNBY3Rpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNoYXJ0UnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDaGFydCBmcm9tIFwic2FwL2NoYXJ0L0NoYXJ0XCI7XG5pbXBvcnQgQWN0aW9uUnVudGltZSBmcm9tIFwic2FwL2ZlL2NvcmUvQWN0aW9uUnVudGltZVwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ2hhcnRVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jaGFydC9DaGFydFV0aWxzXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcblxudHlwZSBJbm5lckNoYXJ0ID0gQ29udHJvbCAmIENoYXJ0ICYgeyBnZXRQYXJlbnQ6IEZ1bmN0aW9uOyBnZXRDdXN0b21EYXRhOiBGdW5jdGlvbiB9O1xudHlwZSBNRENDaGFydCA9IENvbnRyb2w7XG50eXBlIE9iamVjdFdpdGhDb3VudCA9IG9iamVjdCAmIHsgY291bnQ6IG51bWJlciB9O1xuaW50ZXJmYWNlIEJvb2xlYW5NYXAge1xuXHRba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YXRpYyBjbGFzcyB1c2VkIGJ5IE1EQ19DaGFydCBkdXJpbmcgcnVudGltZVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgQ2hhcnRSdW50aW1lID0ge1xuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgY2hhcnQgYWZ0ZXIgc2VsZWN0aW9uIG9yIGRlc2VsZWN0aW9uIG9mIGRhdGEgcG9pbnRzLlxuXHQgKiBAcGFyYW0gb0V2ZW50IENoYXJ0IGV2ZW50XG5cdCAqL1xuXHRmblVwZGF0ZUNoYXJ0OiBmdW5jdGlvbiAob0V2ZW50OiBVSTVFdmVudDx7fSwgSW5uZXJDaGFydD4pOiB2b2lkIHtcblx0XHRjb25zdCBvSW5uZXJDaGFydCA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTWRjQ2hhcnQgPSBvSW5uZXJDaGFydC5nZXRQYXJlbnQoKSBhcyBNRENDaGFydDtcblx0XHRsZXQgc0FjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkLFxuXHRcdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuXHRcdFx0YUFjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkOiBzdHJpbmdbXSA9IFtdO1xuXHRcdC8vIGNoYW5naW5nIGRyaWxsIHN0YWNrIGNoYW5nZXMgb3JkZXIgb2YgY3VzdG9tIGRhdGEsIGxvb3BpbmcgdGhyb3VnaCBhbGxcblx0XHRvTWRjQ2hhcnQuZ2V0Q3VzdG9tRGF0YSgpLmZvckVhY2goZnVuY3Rpb24gKG9DdXN0b21EYXRhKSB7XG5cdFx0XHRpZiAob0N1c3RvbURhdGEuZ2V0S2V5KCkgPT09IFwib3BlcmF0aW9uQXZhaWxhYmxlTWFwXCIpIHtcblx0XHRcdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCA9IERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhPHsgY3VzdG9tRGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9Pihcblx0XHRcdFx0XHRvTWRjQ2hhcnQsXG5cdFx0XHRcdFx0XCJvcGVyYXRpb25BdmFpbGFibGVNYXBcIlxuXHRcdFx0XHQpIS5jdXN0b21EYXRhO1xuXHRcdFx0fSBlbHNlIGlmIChvQ3VzdG9tRGF0YS5nZXRLZXkoKSA9PT0gXCJtdWx0aVNlbGVjdERpc2FibGVkQWN0aW9uc1wiKSB7XG5cdFx0XHRcdHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA9IG9DdXN0b21EYXRhLmdldFZhbHVlKCk7XG5cdFx0XHRcdGFBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA9IHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA/IHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZC5zcGxpdChcIixcIikgOiBbXTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblxuXHRcdGNvbnN0IGFTZWxlY3RlZENvbnRleHRzID0gW107XG5cdFx0bGV0IG9Nb2RlbE9iamVjdDogQm9vbGVhbk1hcCB8IHVuZGVmaW5lZDtcblx0XHRjb25zdCBhU2VsZWN0ZWREYXRhUG9pbnRzID0gQ2hhcnRVdGlscy5nZXRDaGFydFNlbGVjdGVkRGF0YShvSW5uZXJDaGFydCk7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhU2VsZWN0ZWREYXRhUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRhU2VsZWN0ZWRDb250ZXh0cy5wdXNoKGFTZWxlY3RlZERhdGFQb2ludHNbaV0uY29udGV4dCk7XG5cdFx0fVxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcInNlbGVjdGVkQ29udGV4dHNcIiwgYVNlbGVjdGVkQ29udGV4dHMpO1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dFxuXHRcdFx0LmdldE1vZGVsKClcblx0XHRcdC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0YCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vbnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzYCxcblx0XHRcdFx0KG9Jbm5lckNoYXJ0LmdldFNlbGVjdGVkRGF0YVBvaW50cygpIGFzIE9iamVjdFdpdGhDb3VudCkuY291bnRcblx0XHRcdCk7XG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2pdO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdGZvciAoY29uc3Qga2V5IGluIG9Db250ZXh0RGF0YSkge1xuXHRcdFx0XHRpZiAoa2V5LmluZGV4T2YoXCIjXCIpID09PSAwKSB7XG5cdFx0XHRcdFx0bGV0IHNBY3Rpb25QYXRoID0ga2V5O1xuXHRcdFx0XHRcdHNBY3Rpb25QYXRoID0gc0FjdGlvblBhdGguc3Vic3RyaW5nKDEsIHNBY3Rpb25QYXRoLmxlbmd0aCk7XG5cdFx0XHRcdFx0b01vZGVsT2JqZWN0ID0gb0ludGVybmFsTW9kZWxDb250ZXh0LmdldE9iamVjdCgpIGFzIEJvb2xlYW5NYXA7XG5cdFx0XHRcdFx0b01vZGVsT2JqZWN0W3NBY3Rpb25QYXRoXSA9IHRydWU7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiXCIsIG9Nb2RlbE9iamVjdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG9Nb2RlbE9iamVjdCA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRPYmplY3QoKSBhcyBCb29sZWFuTWFwO1xuXHRcdH1cblxuXHRcdEFjdGlvblJ1bnRpbWUuc2V0QWN0aW9uRW5hYmxlbWVudChvSW50ZXJuYWxNb2RlbENvbnRleHQsIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAsIGFTZWxlY3RlZENvbnRleHRzLCBcImNoYXJ0XCIpO1xuXG5cdFx0aWYgKGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCA+IDEpIHtcblx0XHRcdGFBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZC5mb3JFYWNoKGZ1bmN0aW9uIChzQWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIGZhbHNlKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRSdW50aW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBZUE7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxZQUFZLEdBQUc7SUFDcEI7QUFDRDtBQUNBO0FBQ0E7SUFDQ0MsYUFBYSxFQUFFLFNBQUFBLENBQVVDLE1BQWdDLEVBQVE7TUFDaEUsTUFBTUMsV0FBVyxHQUFHRCxNQUFNLENBQUNFLFNBQVMsQ0FBQyxDQUFDO01BQ3RDLE1BQU1DLFNBQVMsR0FBR0YsV0FBVyxDQUFDRyxTQUFTLENBQUMs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
|