@sapui5/sap.fe.macros 1.138.0 → 1.139.1
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/Breadcrumbs.js +269 -0
- package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
- package/src/sap/fe/macros/Chart.js +1 -1
- package/src/sap/fe/macros/Chart.tsx +1 -1
- package/src/sap/fe/macros/CommonHelper.js +2 -2
- package/src/sap/fe/macros/CommonHelper.ts +1 -1
- package/src/sap/fe/macros/Field.js +21 -4
- package/src/sap/fe/macros/Field.ts +21 -3
- package/src/sap/fe/macros/FooterContent.js +40 -10
- package/src/sap/fe/macros/FooterContent.tsx +44 -8
- package/src/sap/fe/macros/FormElement.js +2 -2
- package/src/sap/fe/macros/FormElement.ts +1 -2
- package/src/sap/fe/macros/MultiValueField.js +17 -4
- package/src/sap/fe/macros/MultiValueField.tsx +7 -2
- package/src/sap/fe/macros/RichTextEditor.js +30 -6
- package/src/sap/fe/macros/RichTextEditor.tsx +34 -7
- package/src/sap/fe/macros/Share.js +73 -40
- package/src/sap/fe/macros/Share.tsx +29 -1
- package/src/sap/fe/macros/ValueHelp.js +4 -29
- package/src/sap/fe/macros/ValueHelp.tsx +2 -43
- package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
- package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
- package/src/sap/fe/macros/ai/EasyFilterBar.js +30 -30
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +40 -43
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
- package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
- package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
- 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/FieldWrapper.js +9 -3
- package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
- package/src/sap/fe/macros/controls/FilterBar.js +86 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +97 -2
- package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
- package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
- package/src/sap/fe/macros/controls/Section.js +3 -2
- package/src/sap/fe/macros/controls/Section.ts +2 -1
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +12 -2
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +12 -0
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +16 -5
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +6 -1
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
- package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
- package/src/sap/fe/macros/field/FieldRuntime.js +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/filter/FilterUtils.js +7 -1
- package/src/sap/fe/macros/filter/FilterUtils.ts +7 -0
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
- package/src/sap/fe/macros/form/Form.block.js +6 -2
- package/src/sap/fe/macros/form/Form.block.ts +4 -1
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
- package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
- package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
- package/src/sap/fe/macros/form/FormDelegate.js +20 -1
- package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
- package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
- package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
- package/src/sap/fe/macros/internal/DataPoint.js +2 -1
- package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
- package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
- package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
- package/src/sap/fe/macros/internal/FilterField.block.js +4 -2
- package/src/sap/fe/macros/internal/FilterField.block.ts +3 -1
- package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +52 -12
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +54 -5
- package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +10 -0
- package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +3 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +11 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +12 -7
- package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +11 -6
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +12 -7
- package/src/sap/fe/macros/messagebundle.properties +37 -29
- package/src/sap/fe/macros/messagebundle_ar.properties +5 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +6 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +8 -6
- package/src/sap/fe/macros/messagebundle_cnr.properties +5 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +4 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +7 -5
- package/src/sap/fe/macros/messagebundle_da.properties +6 -4
- package/src/sap/fe/macros/messagebundle_de.properties +11 -9
- package/src/sap/fe/macros/messagebundle_el.properties +7 -5
- package/src/sap/fe/macros/messagebundle_en.properties +8 -6
- package/src/sap/fe/macros/messagebundle_en_GB.properties +8 -6
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +8 -6
- package/src/sap/fe/macros/messagebundle_es.properties +6 -4
- package/src/sap/fe/macros/messagebundle_es_MX.properties +6 -4
- package/src/sap/fe/macros/messagebundle_et.properties +5 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +8 -6
- package/src/sap/fe/macros/messagebundle_fr.properties +6 -4
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -6
- package/src/sap/fe/macros/messagebundle_hi.properties +6 -4
- package/src/sap/fe/macros/messagebundle_hr.properties +6 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +4 -2
- package/src/sap/fe/macros/messagebundle_id.properties +8 -6
- package/src/sap/fe/macros/messagebundle_it.properties +4 -2
- package/src/sap/fe/macros/messagebundle_iw.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +5 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ko.properties +4 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +6 -4
- package/src/sap/fe/macros/messagebundle_lv.properties +5 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +8 -6
- package/src/sap/fe/macros/messagebundle_nl.properties +7 -5
- package/src/sap/fe/macros/messagebundle_no.properties +6 -4
- package/src/sap/fe/macros/messagebundle_pl.properties +6 -4
- package/src/sap/fe/macros/messagebundle_pt.properties +7 -5
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +6 -4
- package/src/sap/fe/macros/messagebundle_ro.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ru.properties +4 -2
- package/src/sap/fe/macros/messagebundle_sh.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +6 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +5 -3
- package/src/sap/fe/macros/messagebundle_th.properties +4 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +4 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +10 -8
- package/src/sap/fe/macros/messagebundle_vi.properties +6 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +5 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +5 -3
- package/src/sap/fe/macros/messages/MessageButton.js +17 -19
- package/src/sap/fe/macros/messages/MessageButton.ts +24 -22
- package/src/sap/fe/macros/table/Action.js +24 -2
- package/src/sap/fe/macros/table/Action.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroup.js +24 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
- package/src/sap/fe/macros/table/Column.js +3 -3
- package/src/sap/fe/macros/table/Column.ts +2 -2
- package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +32 -6
- package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
- package/src/sap/fe/macros/table/Table.block.js +137 -108
- package/src/sap/fe/macros/table/Table.block.tsx +29 -2
- package/src/sap/fe/macros/table/Table.js +7 -1
- package/src/sap/fe/macros/table/Table.tsx +7 -1
- package/src/sap/fe/macros/table/TableAPI.js +150 -133
- package/src/sap/fe/macros/table/TableAPI.ts +20 -3
- package/src/sap/fe/macros/table/TableDefinition.js +4 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
- package/src/sap/fe/macros/table/TableRuntime.js +3 -3
- package/src/sap/fe/macros/table/TableRuntime.ts +2 -2
- package/src/sap/fe/macros/table/TableSizeHelper.js +3 -3
- package/src/sap/fe/macros/table/TableSizeHelper.ts +5 -2
- package/src/sap/fe/macros/table/TreeTable.js +7 -1
- package/src/sap/fe/macros/table/TreeTable.tsx +7 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +27 -20
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +35 -26
- package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
- 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 +8 -8
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +7 -6
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +4 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +3 -0
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +37 -8
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +47 -16
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -6
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -2
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +15 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +17 -2
|
@@ -13,6 +13,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/designtime/AnnotationBase
|
|
|
13
13
|
var prepareConfigModel = Designtime_helper.prepareConfigModel;
|
|
14
14
|
var openAdaptionDialog = Designtime_helper.openAdaptionDialog;
|
|
15
15
|
var noChanges = Designtime_helper.noChanges;
|
|
16
|
+
var isManifestChangesEnabled = Designtime_helper.isManifestChangesEnabled;
|
|
16
17
|
var isConfigModelPrepared = Designtime_helper.isConfigModelPrepared;
|
|
17
18
|
var getSettingsIfKeyUser = Designtime_helper.getSettingsIfKeyUser;
|
|
18
19
|
var getPropertyNamesAndDescriptions = Designtime_helper.getPropertyNamesAndDescriptions;
|
|
@@ -65,6 +66,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/designtime/AnnotationBase
|
|
|
65
66
|
fe: {
|
|
66
67
|
name: getText("RTA_CONTEXT_ACTIONMENU_CONFIG"),
|
|
67
68
|
icon: "sap-icon://developer-settings",
|
|
69
|
+
isEnabled: isManifestChangesEnabled,
|
|
68
70
|
handler: async function (filterBar) {
|
|
69
71
|
const filterBarApi = filterBar.getParent();
|
|
70
72
|
const designtimeSettings = getDesigntimeSettings();
|
|
@@ -149,4 +151,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/designtime/AnnotationBase
|
|
|
149
151
|
};
|
|
150
152
|
return FilterBarBlockDesignTime;
|
|
151
153
|
}, false);
|
|
152
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWdQYXRoIiwiZ2V0QWRhcHRhdGlvblByb3BlcnRpZXMiLCJkZXNpZ250aW1lU2V0dGluZ3MiLCJmaWx0ZXJCYXIiLCJmaWx0ZXJCYXJBUEkiLCJwcm9wZXJ0eVZhbHVlcyIsImZvckVhY2giLCJzZXR0aW5nIiwiaWQiLCJnZXRBZGFwdGF0aW9uUHJvcGVydHlWYWx1ZSIsIl9leHBvcnRzIiwiZmlsdGVyQmFyQXBpIiwicmV0dXJuVmFsdWUiLCJmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbiIsIlN0YXRlSGVscGVyIiwiX2dldENvbnRyb2xJbmZvRm9yQ29udmVyc2lvbiIsImdldENvbnRlbnQiLCJnZXRQcm9wZXJ0eSIsInVzZVNlbWFudGljRGF0ZVJhbmdlIiwic2VsZWN0aW9uRmllbGRzQ29uZmlncyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwiRmlsdGVyQmFyQmxvY2tEZXNpZ25UaW1lIiwiYWN0aW9ucyIsImFubm90YXRpb24iLCJ0ZXh0QXJyYW5nZW1lbnQiLCJnZXRUZXh0QXJyYW5nZW1lbnRDaGFuZ2VBY3Rpb24iLCJyZW5hbWUiLCJnZXRSZW5hbWVBY3Rpb24iLCJzZXR0aW5ncyIsImZlIiwibmFtZSIsImdldFRleHQiLCJpY29uIiwiaGFuZGxlciIsImdldFBhcmVudCIsImdldERlc2lnbnRpbWVTZXR0aW5ncyIsInVuY2hhbmdlZERhdGEiLCJzdHJ1Y3R1cmVkQ2xvbmUiLCJjb25maWdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJpc0NvbmZpZ01vZGVsUHJlcGFyZWQiLCJpdGVtcyIsImdldFNldHRpbmdzIiwiZ2V0U2V0dGluZ3NJZktleVVzZXIiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsInByZXBhcmVDb25maWdNb2RlbCIsInJlc291cmNlTW9kZWwiLCJnZXRNb2RlbCIsIm9wZW5BZGFwdGlvbkRpYWxvZyIsInRoZW4iLCJwcm9wZXJ0eVZhbHVlc0VudGVyZWQiLCJwcm9wZXJ0eVBhdGgiLCJnZXRQcm9wZXJ0eVBhdGgiLCJleHRyYWN0Q2hhbmdlcyIsIm5vQ2hhbmdlcyIsInByb3BlcnRpZXMiLCJzaG93Q2xlYXJCdXR0b24iLCJpZ25vcmUiLCJsaXZlTW9kZSIsInNob3dHb0J1dHRvbiIsInNob3dNZXNzYWdlcyIsInZpc2libGUiLCJibG9ja2VkIiwiYnVzeSIsImJ1c3lJbmRpY2F0b3JEZWxheSIsImJ1c3lJbmRpY2F0b3JTaXplIiwiaW5pdGlhbExheW91dCIsInNob3dBZGFwdEZpbHRlcnNCdXR0b24iLCJhZ2dyZWdhdGlvbnMiLCJtYW5pZmVzdFNldHRpbmdzIiwiZ2V0UHJvcGVydHlOYW1lc0FuZERlc2NyaXB0aW9ucyIsIm1hbmlmZXN0U2V0dGluZ3NWYWx1ZXMiLCJyZXR1cm5WYWx1ZXMiLCJtYW5pZmVzdFByb3BlcnR5UGF0aCIsImNvbnRyb2wiLCJtYW5pZmVzdFByb3BlcnR5Q2hhbmdlIiwicHJvcGVydHlDaGFuZ2VzIiwic2VwYXJhdGVDaGFuZ2VzIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWx0ZXJCYXIuZGVzaWdudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqL1xuXG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgeyBnZXRSZW5hbWVBY3Rpb24sIGdldFRleHQsIGdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9kZXNpZ250aW1lL0Fubm90YXRpb25CYXNlZENoYW5nZXNcIjtcbmltcG9ydCB0eXBlIHsgRGVzaWdudGltZVNldHRpbmcsIFByb3BlcnR5VmFsdWUsIGFkYXB0aW9uQ2hhbmdlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZGVzaWdudGltZS9EZXNpZ250aW1lLmhlbHBlclwiO1xuaW1wb3J0IHtcblx0ZXh0cmFjdENoYW5nZXMsXG5cdGdldFByb3BlcnR5TmFtZXNBbmREZXNjcmlwdGlvbnMsXG5cdGdldFNldHRpbmdzSWZLZXlVc2VyLFxuXHRpc0NvbmZpZ01vZGVsUHJlcGFyZWQsXG5cdG5vQ2hhbmdlcyxcblx0b3BlbkFkYXB0aW9uRGlhbG9nLFxuXHRwcmVwYXJlQ29uZmlnTW9kZWwsXG5cdHNlcGFyYXRlQ2hhbmdlc1xufSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9kZXNpZ250aW1lL0Rlc2lnbnRpbWUuaGVscGVyXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXJBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhckFQSVwiO1xuaW1wb3J0IHsgZ2V0RGVzaWdudGltZVNldHRpbmdzLCBnZXRQcm9wZXJ0eVBhdGgsIGdldFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL2Rlc2lnbnRpbWUvRmlsdGVyQmFyLmRlc2lnbnRpbWUuaGVscGVyXCI7XG5pbXBvcnQgU3RhdGVIZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvbWRjL2FkYXB0ZXIvU3RhdGVIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5cbmNvbnN0IGNvbmZpZ1BhdGggPSBcInJ0YS9maWx0ZXJCYXJDb25maWdTZXR0aW5nc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRhcHRhdGlvblByb3BlcnRpZXMoXG5cdGRlc2lnbnRpbWVTZXR0aW5nczogRGVzaWdudGltZVNldHRpbmdbXSxcblx0ZmlsdGVyQmFyOiBGaWx0ZXJCYXIsXG5cdGZpbHRlckJhckFQSTogRmlsdGVyQmFyQVBJXG4pOiBQcm9wZXJ0eVZhbHVlIHtcblx0Y29uc3QgcHJvcGVydHlWYWx1ZXM6IFByb3BlcnR5VmFsdWUgPSB7fTtcblx0ZGVzaWdudGltZVNldHRpbmdzLmZvckVhY2goZnVuY3Rpb24gKHNldHRpbmcpIHtcblx0XHRwcm9wZXJ0eVZhbHVlc1tzZXR0aW5nLmlkXSA9IGdldEFkYXB0YXRpb25Qcm9wZXJ0eVZhbHVlKHNldHRpbmcsIGZpbHRlckJhciwgZmlsdGVyQmFyQVBJKTtcblx0fSk7XG5cdHJldHVybiBwcm9wZXJ0eVZhbHVlcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBvbmUgb2YgdGhlIHNldHRpbmdzIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgZm9yIGZpbHRlciBiYXIgYWRhcHRhdGlvbi5cbiAqIEBwYXJhbSBzZXR0aW5nIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBzZXR0aW5nIHJlcXVpcmVkIGZvciBhZGFwdGF0aW9uXG4gKiBAcGFyYW0gZmlsdGVyQmFyIFJlZmVyZW5jZSBvZiB0aGUgZmlsdGVyIGJhciBjb250cm9sXG4gKiBAcGFyYW0gZmlsdGVyQmFyQXBpIFJlZmVyZW5jZSBvZiB0aGUgcGFyZW50IG9mIGZpbHRlciBiYXIgY29udHJvbFxuICogQHJldHVybnMgU2V0dGluZyBkZWZpbml0aW9uIHdpdGggYSB2YWx1ZSBmb3Igc2VsZWN0ZWQgY29udHJvbFxuICovXG5mdW5jdGlvbiBnZXRBZGFwdGF0aW9uUHJvcGVydHlWYWx1ZShcblx0c2V0dGluZzogRGVzaWdudGltZVNldHRpbmcsXG5cdGZpbHRlckJhcjogRmlsdGVyQmFyLFxuXHRmaWx0ZXJCYXJBcGk6IEZpbHRlckJhckFQSVxuKTogYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlciB8IHN0cmluZ1tdIHtcblx0bGV0IHJldHVyblZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gPSBcIlwiO1xuXG5cdGNvbnN0IGZpbHRlckJhckluZm9Gb3JDb252ZXJzaW9uID0gU3RhdGVIZWxwZXIuX2dldENvbnRyb2xJbmZvRm9yQ29udmVyc2lvbihmaWx0ZXJCYXIpO1xuXG5cdHN3aXRjaCAoc2V0dGluZy5pZCkge1xuXHRcdGNhc2UgXCJzaG93Q2xlYXJCdXR0b25cIjpcblx0XHRcdHJldHVyblZhbHVlID0gZmlsdGVyQmFyQXBpLmdldENvbnRlbnQoKT8uZ2V0UHJvcGVydHkoXCJzaG93Q2xlYXJCdXR0b25cIikgfHwgZmFsc2U7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwidXNlU2VtYW50aWNEYXRlUmFuZ2VcIjpcblx0XHRcdHJldHVyblZhbHVlID1cblx0XHRcdFx0ZmlsdGVyQmFySW5mb0ZvckNvbnZlcnNpb24udXNlU2VtYW50aWNEYXRlUmFuZ2UgfHxcblx0XHRcdFx0ZmlsdGVyQmFySW5mb0ZvckNvbnZlcnNpb24uc2VsZWN0aW9uRmllbGRzQ29uZmlncz8udXNlU2VtYW50aWNEYXRlUmFuZ2UgfHxcblx0XHRcdFx0ZmFsc2U7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwibmF2aWdhdGlvblByb3BlcnRpZXNcIjpcblx0XHRcdHJldHVyblZhbHVlID0gZmlsdGVyQmFySW5mb0ZvckNvbnZlcnNpb24uc2VsZWN0aW9uRmllbGRzQ29uZmlncz8ubmF2aWdhdGlvblByb3BlcnRpZXMgfHwgW107IC8vIHByZXZlbnQgbmF2aWdhdGlvblByb3BlcnRpZXMgZnJvbSBiZWluZyB1bmRlZmluZWRcblx0XHRcdGJyZWFrO1xuXHR9XG5cdHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxuY29uc3QgRmlsdGVyQmFyQmxvY2tEZXNpZ25UaW1lID0ge1xuXHRhY3Rpb25zOiB7XG5cdFx0YW5ub3RhdGlvbjoge1xuXHRcdFx0dGV4dEFycmFuZ2VtZW50OiBnZXRUZXh0QXJyYW5nZW1lbnRDaGFuZ2VBY3Rpb24oKSxcblx0XHRcdHJlbmFtZTogZ2V0UmVuYW1lQWN0aW9uKClcblx0XHR9LFxuXHRcdHNldHRpbmdzOiB7XG5cdFx0XHRmZToge1xuXHRcdFx0XHRuYW1lOiBnZXRUZXh0KFwiUlRBX0NPTlRFWFRfQUNUSU9OTUVOVV9DT05GSUdcIiksXG5cdFx0XHRcdGljb246IFwic2FwLWljb246Ly9kZXZlbG9wZXItc2V0dGluZ3NcIixcblx0XHRcdFx0aGFuZGxlcjogYXN5bmMgZnVuY3Rpb24gKGZpbHRlckJhcjogRmlsdGVyQmFyKTogUHJvbWlzZTxhZGFwdGlvbkNoYW5nZVtdPiB7XG5cdFx0XHRcdFx0Y29uc3QgZmlsdGVyQmFyQXBpID0gZmlsdGVyQmFyLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSTtcblx0XHRcdFx0XHRjb25zdCBkZXNpZ250aW1lU2V0dGluZ3MgPSBnZXREZXNpZ250aW1lU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlcyA9IGdldEFkYXB0YXRpb25Qcm9wZXJ0aWVzKGRlc2lnbnRpbWVTZXR0aW5ncywgZmlsdGVyQmFyLCBmaWx0ZXJCYXJBcGkpO1xuXHRcdFx0XHRcdGNvbnN0IHVuY2hhbmdlZERhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUocHJvcGVydHlWYWx1ZXMpOyAvL2RlZXAgY29weSB0byByZW1lbWJlciB0aGUgc3RhcnRpbmcgdmFsdWUgc2V0LCBuZWVkZWQgZm9yIHRoZSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgbXVsdGkgaW5ocHV0IGZpZWxkXG5cdFx0XHRcdFx0Y29uc3QgY29uZmlnQ29udGV4dCA9IGZpbHRlckJhci5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIENvbnRleHQ7XG5cdFx0XHRcdFx0aWYgKCFpc0NvbmZpZ01vZGVsUHJlcGFyZWQoY29uZmlnQ29udGV4dCwgY29uZmlnUGF0aCkpIHtcblx0XHRcdFx0XHRcdC8vIGZpcnN0IHRpbWUgdGhpcyBzZXNzaW9uXG5cdFx0XHRcdFx0XHRsZXQgaXRlbXMgPSBnZXRTZXR0aW5ncyhmaWx0ZXJCYXJBcGksIHByb3BlcnR5VmFsdWVzKTtcblx0XHRcdFx0XHRcdGl0ZW1zID0gZ2V0U2V0dGluZ3NJZktleVVzZXIoQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KGZpbHRlckJhciksIGl0ZW1zKTtcblx0XHRcdFx0XHRcdC8vIHVzZSBpbnRlcm5hbCBtb2RlbCB0byBwZXJzaXN0IGFkYXB0YXRpb24gY29uZmlndXJhdGlvbiB2YWx1ZXNcblx0XHRcdFx0XHRcdHByZXBhcmVDb25maWdNb2RlbChpdGVtcywgY29uZmlnQ29udGV4dCwgY29uZmlnUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnN0IHJlc291cmNlTW9kZWwgPSBmaWx0ZXJCYXIuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsO1xuXHRcdFx0XHRcdHJldHVybiBvcGVuQWRhcHRpb25EaWFsb2coXG5cdFx0XHRcdFx0XHRjb25maWdDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJvcGVydHlWYWx1ZXMsXG5cdFx0XHRcdFx0XHRcIntzYXAuZmUuaTE4bj5SVEFfQ09ORklHVVJBVElPTl9USVRMRV9GSUxURVJCQVJ9XCIsXG5cdFx0XHRcdFx0XHRyZXNvdXJjZU1vZGVsLFxuXHRcdFx0XHRcdFx0Y29uZmlnUGF0aFxuXHRcdFx0XHRcdCkudGhlbihmdW5jdGlvbiAocHJvcGVydHlWYWx1ZXNFbnRlcmVkOiBQcm9wZXJ0eVZhbHVlKTogYWRhcHRpb25DaGFuZ2VbXSB8IFtdIHtcblx0XHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IGdldFByb3BlcnR5UGF0aCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGV4dHJhY3RDaGFuZ2VzKGRlc2lnbnRpbWVTZXR0aW5ncywgdW5jaGFuZ2VkRGF0YSwgcHJvcGVydHlWYWx1ZXNFbnRlcmVkLCBwcm9wZXJ0eVBhdGgsIGZpbHRlckJhcik7XG5cdFx0XHRcdFx0fSwgbm9DaGFuZ2VzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Ly8gV2UgZGlzYWJsZSBtZGMgZmlsdGVyIGJhciBwcm9wZXJ0aWVzIGluIHRoZSBwcm9wZXJ0eSBwYW5lbCBvZiBGaW9yaSBUb29sc1xuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0c2hvd0NsZWFyQnV0dG9uOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGxpdmVNb2RlOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdHNob3dHb0J1dHRvbjogeyBpZ25vcmU6IHRydWUgfSxcblx0XHRzaG93TWVzc2FnZXM6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0dmlzaWJsZTogeyBpZ25vcmU6IHRydWUgfSxcblx0XHRibG9ja2VkOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGJ1c3k6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0YnVzeUluZGljYXRvckRlbGF5OiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGJ1c3lJbmRpY2F0b3JTaXplOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGluaXRpYWxMYXlvdXQ6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbjogeyBpZ25vcmU6IHRydWUgfVxuXHR9LFxuXG5cdGFnZ3JlZ2F0aW9uczoge30sXG5cdC8vIFRoZXNlIGZ1bmN0aW9ucyBwcm92aWRlIHRoZSBwcm9wZXJ0aWVzIHVzZWQgaW4gZmlsdGVyIGJhciBhZGFwdGlvbiB0byBGaW9yaSB0b29scy5cblx0bWFuaWZlc3RTZXR0aW5nczogZnVuY3Rpb24gKGZpbHRlckJhcjogRmlsdGVyQmFyKTogRGVzaWdudGltZVNldHRpbmdbXSB7XG5cdFx0cmV0dXJuIGdldFByb3BlcnR5TmFtZXNBbmREZXNjcmlwdGlvbnMoZ2V0RGVzaWdudGltZVNldHRpbmdzKCksIGZpbHRlckJhci5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWwpO1xuXHR9LFxuXHQvLyBnZXRBZGFwdGlvblByb3BlcnR5VmFsdWVcblx0bWFuaWZlc3RTZXR0aW5nc1ZhbHVlczogZnVuY3Rpb24gKGRlc2lnbnRpbWVTZXR0aW5nczogRGVzaWdudGltZVNldHRpbmdbXSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIpOiBQcm9wZXJ0eVZhbHVlIHtcblx0XHRjb25zdCBmaWx0ZXJCYXJBcGkgPSBmaWx0ZXJCYXIuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyQVBJO1xuXHRcdGNvbnN0IHJldHVyblZhbHVlczogUHJvcGVydHlWYWx1ZSA9IHt9O1xuXHRcdGRlc2lnbnRpbWVTZXR0aW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChzZXR0aW5nKSB7XG5cdFx0XHRyZXR1cm5WYWx1ZXNbc2V0dGluZy5pZF0gPSBnZXRBZGFwdGF0aW9uUHJvcGVydHlWYWx1ZShzZXR0aW5nLCBmaWx0ZXJCYXIsIGZpbHRlckJhckFwaSk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJldHVyblZhbHVlcztcblx0fSxcblx0Ly8gZ2V0IHBhdGggZm9yIGNvbnRyb2wgY29uZmlndXJhdGlvbi4gUGFzcyByZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2xcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRtYW5pZmVzdFByb3BlcnR5UGF0aDogZnVuY3Rpb24gKGNvbnRyb2w6IEZpbHRlckJhcik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGdldFByb3BlcnR5UGF0aCgpO1xuXHR9LFxuXHQvLyBjcmVhdGUgY2hhbmdlIHN0cnVjdHVlLiBQYXNzIGFycmF5IG9mIG1hbmlmZXN0IHNldHRpbmcgYW5kIG5ldyB2YWx1ZSwgdGhlIHByb3BlcnR5IHBhdGggYW5kIHRoZSBjb250cm9sXG5cdG1hbmlmZXN0UHJvcGVydHlDaGFuZ2U6IGZ1bmN0aW9uIChwcm9wZXJ0eUNoYW5nZXM6IFByb3BlcnR5VmFsdWUsIHByb3BlcnR5UGF0aDogc3RyaW5nLCBjb250cm9sOiBGaWx0ZXJCYXIpOiBhZGFwdGlvbkNoYW5nZVtdIHtcblx0XHRyZXR1cm4gc2VwYXJhdGVDaGFuZ2VzKHByb3BlcnR5Q2hhbmdlcywgcHJvcGVydHlQYXRoLCBjb250cm9sKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsdGVyQmFyQmxvY2tEZXNpZ25UaW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUFDQTtFQXNCQSxNQUFNQSxVQUFVLEdBQUcsNkJBQTZCO0VBRXpDLFNBQVNDLHVCQUF1QkEsQ0FD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
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWdQYXRoIiwiZ2V0QWRhcHRhdGlvblByb3BlcnRpZXMiLCJkZXNpZ250aW1lU2V0dGluZ3MiLCJmaWx0ZXJCYXIiLCJmaWx0ZXJCYXJBUEkiLCJwcm9wZXJ0eVZhbHVlcyIsImZvckVhY2giLCJzZXR0aW5nIiwiaWQiLCJnZXRBZGFwdGF0aW9uUHJvcGVydHlWYWx1ZSIsIl9leHBvcnRzIiwiZmlsdGVyQmFyQXBpIiwicmV0dXJuVmFsdWUiLCJmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbiIsIlN0YXRlSGVscGVyIiwiX2dldENvbnRyb2xJbmZvRm9yQ29udmVyc2lvbiIsImdldENvbnRlbnQiLCJnZXRQcm9wZXJ0eSIsInVzZVNlbWFudGljRGF0ZVJhbmdlIiwic2VsZWN0aW9uRmllbGRzQ29uZmlncyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwiRmlsdGVyQmFyQmxvY2tEZXNpZ25UaW1lIiwiYWN0aW9ucyIsImFubm90YXRpb24iLCJ0ZXh0QXJyYW5nZW1lbnQiLCJnZXRUZXh0QXJyYW5nZW1lbnRDaGFuZ2VBY3Rpb24iLCJyZW5hbWUiLCJnZXRSZW5hbWVBY3Rpb24iLCJzZXR0aW5ncyIsImZlIiwibmFtZSIsImdldFRleHQiLCJpY29uIiwiaXNFbmFibGVkIiwiaXNNYW5pZmVzdENoYW5nZXNFbmFibGVkIiwiaGFuZGxlciIsImdldFBhcmVudCIsImdldERlc2lnbnRpbWVTZXR0aW5ncyIsInVuY2hhbmdlZERhdGEiLCJzdHJ1Y3R1cmVkQ2xvbmUiLCJjb25maWdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJpc0NvbmZpZ01vZGVsUHJlcGFyZWQiLCJpdGVtcyIsImdldFNldHRpbmdzIiwiZ2V0U2V0dGluZ3NJZktleVVzZXIiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsInByZXBhcmVDb25maWdNb2RlbCIsInJlc291cmNlTW9kZWwiLCJnZXRNb2RlbCIsIm9wZW5BZGFwdGlvbkRpYWxvZyIsInRoZW4iLCJwcm9wZXJ0eVZhbHVlc0VudGVyZWQiLCJwcm9wZXJ0eVBhdGgiLCJnZXRQcm9wZXJ0eVBhdGgiLCJleHRyYWN0Q2hhbmdlcyIsIm5vQ2hhbmdlcyIsInByb3BlcnRpZXMiLCJzaG93Q2xlYXJCdXR0b24iLCJpZ25vcmUiLCJsaXZlTW9kZSIsInNob3dHb0J1dHRvbiIsInNob3dNZXNzYWdlcyIsInZpc2libGUiLCJibG9ja2VkIiwiYnVzeSIsImJ1c3lJbmRpY2F0b3JEZWxheSIsImJ1c3lJbmRpY2F0b3JTaXplIiwiaW5pdGlhbExheW91dCIsInNob3dBZGFwdEZpbHRlcnNCdXR0b24iLCJhZ2dyZWdhdGlvbnMiLCJtYW5pZmVzdFNldHRpbmdzIiwiZ2V0UHJvcGVydHlOYW1lc0FuZERlc2NyaXB0aW9ucyIsIm1hbmlmZXN0U2V0dGluZ3NWYWx1ZXMiLCJyZXR1cm5WYWx1ZXMiLCJtYW5pZmVzdFByb3BlcnR5UGF0aCIsImNvbnRyb2wiLCJtYW5pZmVzdFByb3BlcnR5Q2hhbmdlIiwicHJvcGVydHlDaGFuZ2VzIiwic2VwYXJhdGVDaGFuZ2VzIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWx0ZXJCYXIuZGVzaWdudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqL1xuXG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgeyBnZXRSZW5hbWVBY3Rpb24sIGdldFRleHQsIGdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9kZXNpZ250aW1lL0Fubm90YXRpb25CYXNlZENoYW5nZXNcIjtcbmltcG9ydCB0eXBlIHsgRGVzaWdudGltZVNldHRpbmcsIFByb3BlcnR5VmFsdWUsIGFkYXB0aW9uQ2hhbmdlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZGVzaWdudGltZS9EZXNpZ250aW1lLmhlbHBlclwiO1xuaW1wb3J0IHtcblx0ZXh0cmFjdENoYW5nZXMsXG5cdGdldFByb3BlcnR5TmFtZXNBbmREZXNjcmlwdGlvbnMsXG5cdGdldFNldHRpbmdzSWZLZXlVc2VyLFxuXHRpc0NvbmZpZ01vZGVsUHJlcGFyZWQsXG5cdGlzTWFuaWZlc3RDaGFuZ2VzRW5hYmxlZCxcblx0bm9DaGFuZ2VzLFxuXHRvcGVuQWRhcHRpb25EaWFsb2csXG5cdHByZXBhcmVDb25maWdNb2RlbCxcblx0c2VwYXJhdGVDaGFuZ2VzXG59IGZyb20gXCJzYXAvZmUvbWFjcm9zL2Rlc2lnbnRpbWUvRGVzaWdudGltZS5oZWxwZXJcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyQVBJXCI7XG5pbXBvcnQgeyBnZXREZXNpZ250aW1lU2V0dGluZ3MsIGdldFByb3BlcnR5UGF0aCwgZ2V0U2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvZGVzaWdudGltZS9GaWx0ZXJCYXIuZGVzaWdudGltZS5oZWxwZXJcIjtcbmltcG9ydCBTdGF0ZUhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9tZGMvYWRhcHRlci9TdGF0ZUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuY29uc3QgY29uZmlnUGF0aCA9IFwicnRhL2ZpbHRlckJhckNvbmZpZ1NldHRpbmdzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGFwdGF0aW9uUHJvcGVydGllcyhcblx0ZGVzaWdudGltZVNldHRpbmdzOiBEZXNpZ250aW1lU2V0dGluZ1tdLFxuXHRmaWx0ZXJCYXI6IEZpbHRlckJhcixcblx0ZmlsdGVyQmFyQVBJOiBGaWx0ZXJCYXJBUElcbik6IFByb3BlcnR5VmFsdWUge1xuXHRjb25zdCBwcm9wZXJ0eVZhbHVlczogUHJvcGVydHlWYWx1ZSA9IHt9O1xuXHRkZXNpZ250aW1lU2V0dGluZ3MuZm9yRWFjaChmdW5jdGlvbiAoc2V0dGluZykge1xuXHRcdHByb3BlcnR5VmFsdWVzW3NldHRpbmcuaWRdID0gZ2V0QWRhcHRhdGlvblByb3BlcnR5VmFsdWUoc2V0dGluZywgZmlsdGVyQmFyLCBmaWx0ZXJCYXJBUEkpO1xuXHR9KTtcblx0cmV0dXJuIHByb3BlcnR5VmFsdWVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHZhbHVlIG9mIG9uZSBvZiB0aGUgc2V0dGluZ3MgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBmb3IgZmlsdGVyIGJhciBhZGFwdGF0aW9uLlxuICogQHBhcmFtIHNldHRpbmcgVGhlIGRlZmluaXRpb24gb2YgdGhlIHNldHRpbmcgcmVxdWlyZWQgZm9yIGFkYXB0YXRpb25cbiAqIEBwYXJhbSBmaWx0ZXJCYXIgUmVmZXJlbmNlIG9mIHRoZSBmaWx0ZXIgYmFyIGNvbnRyb2xcbiAqIEBwYXJhbSBmaWx0ZXJCYXJBcGkgUmVmZXJlbmNlIG9mIHRoZSBwYXJlbnQgb2YgZmlsdGVyIGJhciBjb250cm9sXG4gKiBAcmV0dXJucyBTZXR0aW5nIGRlZmluaXRpb24gd2l0aCBhIHZhbHVlIGZvciBzZWxlY3RlZCBjb250cm9sXG4gKi9cbmZ1bmN0aW9uIGdldEFkYXB0YXRpb25Qcm9wZXJ0eVZhbHVlKFxuXHRzZXR0aW5nOiBEZXNpZ250aW1lU2V0dGluZyxcblx0ZmlsdGVyQmFyOiBGaWx0ZXJCYXIsXG5cdGZpbHRlckJhckFwaTogRmlsdGVyQmFyQVBJXG4pOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10ge1xuXHRsZXQgcmV0dXJuVmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIgfCBzdHJpbmdbXSA9IFwiXCI7XG5cblx0Y29uc3QgZmlsdGVyQmFySW5mb0ZvckNvbnZlcnNpb24gPSBTdGF0ZUhlbHBlci5fZ2V0Q29udHJvbEluZm9Gb3JDb252ZXJzaW9uKGZpbHRlckJhcik7XG5cblx0c3dpdGNoIChzZXR0aW5nLmlkKSB7XG5cdFx0Y2FzZSBcInNob3dDbGVhckJ1dHRvblwiOlxuXHRcdFx0cmV0dXJuVmFsdWUgPSBmaWx0ZXJCYXJBcGkuZ2V0Q29udGVudCgpPy5nZXRQcm9wZXJ0eShcInNob3dDbGVhckJ1dHRvblwiKSB8fCBmYWxzZTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgXCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwiOlxuXHRcdFx0cmV0dXJuVmFsdWUgPVxuXHRcdFx0XHRmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbi51c2VTZW1hbnRpY0RhdGVSYW5nZSB8fFxuXHRcdFx0XHRmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbi5zZWxlY3Rpb25GaWVsZHNDb25maWdzPy51c2VTZW1hbnRpY0RhdGVSYW5nZSB8fFxuXHRcdFx0XHRmYWxzZTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgXCJuYXZpZ2F0aW9uUHJvcGVydGllc1wiOlxuXHRcdFx0cmV0dXJuVmFsdWUgPSBmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbi5zZWxlY3Rpb25GaWVsZHNDb25maWdzPy5uYXZpZ2F0aW9uUHJvcGVydGllcyB8fCBbXTsgLy8gcHJldmVudCBuYXZpZ2F0aW9uUHJvcGVydGllcyBmcm9tIGJlaW5nIHVuZGVmaW5lZFxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIHJldHVyblZhbHVlO1xufVxuXG5jb25zdCBGaWx0ZXJCYXJCbG9ja0Rlc2lnblRpbWUgPSB7XG5cdGFjdGlvbnM6IHtcblx0XHRhbm5vdGF0aW9uOiB7XG5cdFx0XHR0ZXh0QXJyYW5nZW1lbnQ6IGdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbigpLFxuXHRcdFx0cmVuYW1lOiBnZXRSZW5hbWVBY3Rpb24oKVxuXHRcdH0sXG5cdFx0c2V0dGluZ3M6IHtcblx0XHRcdGZlOiB7XG5cdFx0XHRcdG5hbWU6IGdldFRleHQoXCJSVEFfQ09OVEVYVF9BQ1RJT05NRU5VX0NPTkZJR1wiKSxcblx0XHRcdFx0aWNvbjogXCJzYXAtaWNvbjovL2RldmVsb3Blci1zZXR0aW5nc1wiLFxuXHRcdFx0XHRpc0VuYWJsZWQ6IGlzTWFuaWZlc3RDaGFuZ2VzRW5hYmxlZCxcblx0XHRcdFx0aGFuZGxlcjogYXN5bmMgZnVuY3Rpb24gKGZpbHRlckJhcjogRmlsdGVyQmFyKTogUHJvbWlzZTxhZGFwdGlvbkNoYW5nZVtdPiB7XG5cdFx0XHRcdFx0Y29uc3QgZmlsdGVyQmFyQXBpID0gZmlsdGVyQmFyLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSTtcblx0XHRcdFx0XHRjb25zdCBkZXNpZ250aW1lU2V0dGluZ3MgPSBnZXREZXNpZ250aW1lU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlcyA9IGdldEFkYXB0YXRpb25Qcm9wZXJ0aWVzKGRlc2lnbnRpbWVTZXR0aW5ncywgZmlsdGVyQmFyLCBmaWx0ZXJCYXJBcGkpO1xuXHRcdFx0XHRcdGNvbnN0IHVuY2hhbmdlZERhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUocHJvcGVydHlWYWx1ZXMpOyAvL2RlZXAgY29weSB0byByZW1lbWJlciB0aGUgc3RhcnRpbmcgdmFsdWUgc2V0LCBuZWVkZWQgZm9yIHRoZSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgbXVsdGkgaW5ocHV0IGZpZWxkXG5cdFx0XHRcdFx0Y29uc3QgY29uZmlnQ29udGV4dCA9IGZpbHRlckJhci5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIENvbnRleHQ7XG5cdFx0XHRcdFx0aWYgKCFpc0NvbmZpZ01vZGVsUHJlcGFyZWQoY29uZmlnQ29udGV4dCwgY29uZmlnUGF0aCkpIHtcblx0XHRcdFx0XHRcdC8vIGZpcnN0IHRpbWUgdGhpcyBzZXNzaW9uXG5cdFx0XHRcdFx0XHRsZXQgaXRlbXMgPSBnZXRTZXR0aW5ncyhmaWx0ZXJCYXJBcGksIHByb3BlcnR5VmFsdWVzKTtcblx0XHRcdFx0XHRcdGl0ZW1zID0gZ2V0U2V0dGluZ3NJZktleVVzZXIoQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KGZpbHRlckJhciksIGl0ZW1zKTtcblx0XHRcdFx0XHRcdC8vIHVzZSBpbnRlcm5hbCBtb2RlbCB0byBwZXJzaXN0IGFkYXB0YXRpb24gY29uZmlndXJhdGlvbiB2YWx1ZXNcblx0XHRcdFx0XHRcdHByZXBhcmVDb25maWdNb2RlbChpdGVtcywgY29uZmlnQ29udGV4dCwgY29uZmlnUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnN0IHJlc291cmNlTW9kZWwgPSBmaWx0ZXJCYXIuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsO1xuXHRcdFx0XHRcdHJldHVybiBvcGVuQWRhcHRpb25EaWFsb2coXG5cdFx0XHRcdFx0XHRjb25maWdDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJvcGVydHlWYWx1ZXMsXG5cdFx0XHRcdFx0XHRcIntzYXAuZmUuaTE4bj5SVEFfQ09ORklHVVJBVElPTl9USVRMRV9GSUxURVJCQVJ9XCIsXG5cdFx0XHRcdFx0XHRyZXNvdXJjZU1vZGVsLFxuXHRcdFx0XHRcdFx0Y29uZmlnUGF0aFxuXHRcdFx0XHRcdCkudGhlbihmdW5jdGlvbiAocHJvcGVydHlWYWx1ZXNFbnRlcmVkOiBQcm9wZXJ0eVZhbHVlKTogYWRhcHRpb25DaGFuZ2VbXSB8IFtdIHtcblx0XHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IGdldFByb3BlcnR5UGF0aCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGV4dHJhY3RDaGFuZ2VzKGRlc2lnbnRpbWVTZXR0aW5ncywgdW5jaGFuZ2VkRGF0YSwgcHJvcGVydHlWYWx1ZXNFbnRlcmVkLCBwcm9wZXJ0eVBhdGgsIGZpbHRlckJhcik7XG5cdFx0XHRcdFx0fSwgbm9DaGFuZ2VzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Ly8gV2UgZGlzYWJsZSBtZGMgZmlsdGVyIGJhciBwcm9wZXJ0aWVzIGluIHRoZSBwcm9wZXJ0eSBwYW5lbCBvZiBGaW9yaSBUb29sc1xuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0c2hvd0NsZWFyQnV0dG9uOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGxpdmVNb2RlOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdHNob3dHb0J1dHRvbjogeyBpZ25vcmU6IHRydWUgfSxcblx0XHRzaG93TWVzc2FnZXM6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0dmlzaWJsZTogeyBpZ25vcmU6IHRydWUgfSxcblx0XHRibG9ja2VkOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGJ1c3k6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0YnVzeUluZGljYXRvckRlbGF5OiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGJ1c3lJbmRpY2F0b3JTaXplOiB7IGlnbm9yZTogdHJ1ZSB9LFxuXHRcdGluaXRpYWxMYXlvdXQ6IHsgaWdub3JlOiB0cnVlIH0sXG5cdFx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbjogeyBpZ25vcmU6IHRydWUgfVxuXHR9LFxuXG5cdGFnZ3JlZ2F0aW9uczoge30sXG5cdC8vIFRoZXNlIGZ1bmN0aW9ucyBwcm92aWRlIHRoZSBwcm9wZXJ0aWVzIHVzZWQgaW4gZmlsdGVyIGJhciBhZGFwdGlvbiB0byBGaW9yaSB0b29scy5cblx0bWFuaWZlc3RTZXR0aW5nczogZnVuY3Rpb24gKGZpbHRlckJhcjogRmlsdGVyQmFyKTogRGVzaWdudGltZVNldHRpbmdbXSB7XG5cdFx0cmV0dXJuIGdldFByb3BlcnR5TmFtZXNBbmREZXNjcmlwdGlvbnMoZ2V0RGVzaWdudGltZVNldHRpbmdzKCksIGZpbHRlckJhci5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWwpO1xuXHR9LFxuXHQvLyBnZXRBZGFwdGlvblByb3BlcnR5VmFsdWVcblx0bWFuaWZlc3RTZXR0aW5nc1ZhbHVlczogZnVuY3Rpb24gKGRlc2lnbnRpbWVTZXR0aW5nczogRGVzaWdudGltZVNldHRpbmdbXSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIpOiBQcm9wZXJ0eVZhbHVlIHtcblx0XHRjb25zdCBmaWx0ZXJCYXJBcGkgPSBmaWx0ZXJCYXIuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyQVBJO1xuXHRcdGNvbnN0IHJldHVyblZhbHVlczogUHJvcGVydHlWYWx1ZSA9IHt9O1xuXHRcdGRlc2lnbnRpbWVTZXR0aW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChzZXR0aW5nKSB7XG5cdFx0XHRyZXR1cm5WYWx1ZXNbc2V0dGluZy5pZF0gPSBnZXRBZGFwdGF0aW9uUHJvcGVydHlWYWx1ZShzZXR0aW5nLCBmaWx0ZXJCYXIsIGZpbHRlckJhckFwaSk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJldHVyblZhbHVlcztcblx0fSxcblx0Ly8gZ2V0IHBhdGggZm9yIGNvbnRyb2wgY29uZmlndXJhdGlvbi4gUGFzcyByZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2xcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRtYW5pZmVzdFByb3BlcnR5UGF0aDogZnVuY3Rpb24gKGNvbnRyb2w6IEZpbHRlckJhcik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGdldFByb3BlcnR5UGF0aCgpO1xuXHR9LFxuXHQvLyBjcmVhdGUgY2hhbmdlIHN0cnVjdHVlLiBQYXNzIGFycmF5IG9mIG1hbmlmZXN0IHNldHRpbmcgYW5kIG5ldyB2YWx1ZSwgdGhlIHByb3BlcnR5IHBhdGggYW5kIHRoZSBjb250cm9sXG5cdG1hbmlmZXN0UHJvcGVydHlDaGFuZ2U6IGZ1bmN0aW9uIChwcm9wZXJ0eUNoYW5nZXM6IFByb3BlcnR5VmFsdWUsIHByb3BlcnR5UGF0aDogc3RyaW5nLCBjb250cm9sOiBGaWx0ZXJCYXIpOiBhZGFwdGlvbkNoYW5nZVtdIHtcblx0XHRyZXR1cm4gc2VwYXJhdGVDaGFuZ2VzKHByb3BlcnR5Q2hhbmdlcywgcHJvcGVydHlQYXRoLCBjb250cm9sKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsdGVyQmFyQmxv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
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
getPropertyNamesAndDescriptions,
|
|
11
11
|
getSettingsIfKeyUser,
|
|
12
12
|
isConfigModelPrepared,
|
|
13
|
+
isManifestChangesEnabled,
|
|
13
14
|
noChanges,
|
|
14
15
|
openAdaptionDialog,
|
|
15
16
|
prepareConfigModel,
|
|
@@ -78,6 +79,7 @@ const FilterBarBlockDesignTime = {
|
|
|
78
79
|
fe: {
|
|
79
80
|
name: getText("RTA_CONTEXT_ACTIONMENU_CONFIG"),
|
|
80
81
|
icon: "sap-icon://developer-settings",
|
|
82
|
+
isEnabled: isManifestChangesEnabled,
|
|
81
83
|
handler: async function (filterBar: FilterBar): Promise<adaptionChange[]> {
|
|
82
84
|
const filterBarApi = filterBar.getParent() as FilterBarAPI;
|
|
83
85
|
const designtimeSettings = getDesigntimeSettings();
|
|
@@ -156,4 +156,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/viewState/IView
|
|
|
156
156
|
_exports = FilterBarAPIStateHandler;
|
|
157
157
|
return _exports;
|
|
158
158
|
}, false);
|
|
159
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXJBUElTdGF0ZUhhbmRsZXIiLCJfSVZpZXdTdGF0ZUNvbnRyaWJ1dG8iLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseUxlZ2FjeVN0YXRlIiwiZ2V0Q29udHJvbFN0YXRlIiwiX25hdlBhcmFtZXRlcnMiLCJzaG91bGRBcHBseURpZmZTdGF0ZSIsInNraXBNZXJnZSIsImZpbHRlckJhciIsImNvbnRlbnQiLCJmaWx0ZXJCYXJTdGF0ZSIsImNvbnRyb2xTdGF0ZSIsImlubmVyU3RhdGUiLCJmdWxsU3RhdGUiLCJpbml0aWFsU3RhdGUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiYXBwbHlTdGF0ZSIsIm5hdlBhcmFtZXRlciIsIm5hdmlnYXRpb25UeXBlIiwiTmF2VHlwZSIsImh5YnJpZCIsInVuZGVmaW5lZCIsInhBcHBTdGF0ZUZpbHRlcnMiLCJjb252ZXJ0U2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzIiwic2VsZWN0aW9uVmFyaWFudCIsIm1lcmdlZEZ1bGxTdGF0ZSIsImZpbHRlciIsIl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zIiwiY2xlYXJFZGl0RmlsdGVyIiwiU3RhdGVVdGlsIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiZGlmZlN0YXRlIiwiZXJyb3IiLCJMb2ciLCJfaW5pdGlhbFN0YXRlUHJvbWlzZSIsInJlc29sdmUiLCJyZXRyaWV2ZVN0YXRlIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwicHJvcGVydGllc0luZm8iLCJnZXRQcm9wZXJ0eUluZm9TZXQiLCJwcm9wZXJ0eUluZm8iLCJwYXRoIiwicmVtb3ZlRnJvbUFwcFN0YXRlIiwiZm9yRWFjaCIsIlByb3BlcnR5SW5mbyIsInNldEluaXRpYWxTdGF0ZSIsImluaXRpYWxDb250cm9sU3RhdGUiLCJlIiwiYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm5hdmlnYXRpb25QYXJhbWV0ZXIiLCJQcm9taXNlIiwidmlldyIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImNvbnRyb2xsZXIiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJjb21wb25lbnREYXRhIiwiZ2V0Q29tcG9uZW50RGF0YSIsInN0YXJ0dXBQYXJhbWV0ZXJzIiwidmFyaWFudFN0YXR1cyIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImZpbHRlclZhcmlhbnRBcHBsaWVkIiwiZ2V0Q29udGVudCIsInN2IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJyZXFTdGRWYXJpYW50IiwiX2FwcGx5U2VsZWN0aW9uVmFyaWFudCIsImJQcmV2ZW50SW5pdGlhbFNlYXJjaCIsInZhcmlhbnRNYW5hZ2VtZW50IiwiX2dldEZpbHRlckJhclZNIiwiaW5pdGlhbCIsImdldFZpZXdEYXRhIiwiaW5pdGlhbExvYWQiLCJJbml0aWFsTG9hZE1vZGUiLCJFbmFibGVkIiwiX3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoIiwiZmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50IiwidHJpZ2dlclNlYXJjaCIsIl9wcmV2ZW50SW5pdGlhbFNlYXJjaCIsIkRldmljZSIsInN5c3RlbSIsImRlc2t0b3AiLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwic2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCIsImlzU2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCIsInNldFByb3BlcnR5IiwiX2VuYWJsZUZpbHRlckJhciIsIndhcm5pbmciLCJJVmlld1N0YXRlQ29udHJpYnV0b3JNaXhpbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyQVBJU3RhdGVIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sU3RhdGUsIExlZ2FjeUZpbHRlckJhclN0YXRlLCBOYXZpZ2F0aW9uUGFyYW1ldGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IElWaWV3U3RhdGVDb250cmlidXRvck1peGluIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy92aWV3U3RhdGUvSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yTWl4aW5cIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgSW5pdGlhbExvYWRNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgeyBOYXZUeXBlIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuaW1wb3J0IERldmljZSBmcm9tIFwic2FwL3VpL0RldmljZVwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgVmFyaWFudE1hbmFnZW1lbnQgZnJvbSBcInNhcC91aS9mbC92YXJpYW50cy9WYXJpYW50TWFuYWdlbWVudFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IFN0YXRlVXRpbCBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1N0YXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyQVBJIGZyb20gXCIuLi9GaWx0ZXJCYXJBUElcIjtcbmltcG9ydCB0eXBlIHsgRmlsdGVyQmFyU3RhdGUgfSBmcm9tIFwiLi4vRmlsdGVyQmFyQVBJXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckJhckFQSVN0YXRlSGFuZGxlciBleHRlbmRzIElWaWV3U3RhdGVDb250cmlidXRvck1peGluPEZpbHRlckJhclN0YXRlPiB7XG5cdGFzeW5jIGFwcGx5TGVnYWN5U3RhdGUoXG5cdFx0dGhpczogRmlsdGVyQmFyQVBJLFxuXHRcdGdldENvbnRyb2xTdGF0ZTogKGNvbnRyb2w6IE1hbmFnZWRPYmplY3QpID0+IENvbnRyb2xTdGF0ZSxcblx0XHRfbmF2UGFyYW1ldGVycz86IE5hdmlnYXRpb25QYXJhbWV0ZXIsXG5cdFx0c2hvdWxkQXBwbHlEaWZmU3RhdGU/OiBib29sZWFuLFxuXHRcdHNraXBNZXJnZT86IGJvb2xlYW5cblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gdGhpcy5jb250ZW50O1xuXHRcdGNvbnN0IGZpbHRlckJhclN0YXRlID0gZ2V0Q29udHJvbFN0YXRlKGZpbHRlckJhcikgYXMgeyBpbml0aWFsU3RhdGU/OiBMZWdhY3lGaWx0ZXJCYXJTdGF0ZTsgZnVsbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGUgfTtcblx0XHRjb25zdCBjb250cm9sU3RhdGU6IEZpbHRlckJhclN0YXRlID0ge307XG5cblx0XHRpZiAoZmlsdGVyQmFyU3RhdGUpIHtcblx0XHRcdGNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlID0ge1xuXHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZSxcblx0XHRcdFx0ZnVsbFN0YXRlOiB7XG5cdFx0XHRcdFx0Li4uY29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmZ1bGxTdGF0ZSxcblx0XHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZS5mdWxsU3RhdGVcblx0XHRcdFx0fSxcblx0XHRcdFx0aW5pdGlhbFN0YXRlOiB7XG5cdFx0XHRcdFx0Li4uY29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmluaXRpYWxTdGF0ZSxcblx0XHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZS5pbml0aWFsU3RhdGVcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aWYgKGNvbnRyb2xTdGF0ZSAmJiBPYmplY3Qua2V5cyhjb250cm9sU3RhdGUpLmxlbmd0aCA+IDApIHtcblx0XHRcdGF3YWl0IHRoaXMuYXBwbHlTdGF0ZShjb250cm9sU3RhdGUgYXMgb2JqZWN0LCBfbmF2UGFyYW1ldGVycywgc2hvdWxkQXBwbHlEaWZmU3RhdGUsIHNraXBNZXJnZSk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgYXBwbHlTdGF0ZShcblx0XHR0aGlzOiBGaWx0ZXJCYXJBUEksXG5cdFx0Y29udHJvbFN0YXRlOiBGaWx0ZXJCYXJTdGF0ZSxcblx0XHRuYXZQYXJhbWV0ZXI/OiBOYXZpZ2F0aW9uUGFyYW1ldGVyLFxuXHRcdHNob3VsZEFwcGx5RGlmZlN0YXRlPzogYm9vbGVhbixcblx0XHRza2lwTWVyZ2U/OiBib29sZWFuXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoY29udHJvbFN0YXRlICYmIG5hdlBhcmFtZXRlcikge1xuXHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uVHlwZSA9IG5hdlBhcmFtZXRlci5uYXZpZ2F0aW9uVHlwZTtcblx0XHRcdFx0Ly9XaGVuIG5hdmlnYXRpb24gdHlwZSBpcyBoeWJyaWQsIHdlIG92ZXJyaWRlIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyBpbiBJQXBwU3RhdGUgd2l0aCBTViByZWNlaXZlZCBmcm9tIFhhcHBTdGF0ZVxuXHRcdFx0XHRpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdlR5cGUuaHlicmlkICYmIGNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5mdWxsU3RhdGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGNvbnN0IHhBcHBTdGF0ZUZpbHRlcnMgPSBhd2FpdCB0aGlzLmNvbnZlcnRTZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnMoXG5cdFx0XHRcdFx0XHRuYXZQYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudCBhcyBTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRjb25zdCBtZXJnZWRGdWxsU3RhdGUgPSB7XG5cdFx0XHRcdFx0XHQuLi5jb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlLFxuXHRcdFx0XHRcdFx0ZmlsdGVyOiB7XG5cdFx0XHRcdFx0XHRcdC4uLmNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5mdWxsU3RhdGUuZmlsdGVyLFxuXHRcdFx0XHRcdFx0XHQuLi54QXBwU3RhdGVGaWx0ZXJzXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHQvL3doZW4gbmF2aWdhdGluZyBmcm9tIGNhcmQsIHJlbW92ZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB2YWx1ZXMgKGRlZmF1bHQgb3Igb3RoZXJ3aXNlKSBhbmQgdGhlbiBhcHBseSB0aGUgc3RhdGVcblx0XHRcdFx0XHRhd2FpdCB0aGlzLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKHRoaXMuY29udGVudCwgeyBjbGVhckVkaXRGaWx0ZXI6IHRydWUgfSk7XG5cdFx0XHRcdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50LCBtZXJnZWRGdWxsU3RhdGUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHNob3VsZEFwcGx5RGlmZlN0YXRlKSB7XG5cdFx0XHRcdFx0Y29uc3QgZGlmZlN0YXRlOiBvYmplY3QgPSBhd2FpdCBTdGF0ZVV0aWwuZGlmZlN0YXRlKFxuXHRcdFx0XHRcdFx0dGhpcy5jb250ZW50LFxuXHRcdFx0XHRcdFx0Y29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmluaXRpYWxTdGF0ZSBhcyBvYmplY3QsXG5cdFx0XHRcdFx0XHRjb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlIGFzIG9iamVjdFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50LCBkaWZmU3RhdGUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHNraXBNZXJnZSkge1xuXHRcdFx0XHRcdC8vc2tpcE1lcmdlIGlzIHRydWUgd2hlbiBjb21pbmcgZnJvbSB0aGUgZHluYW1pYyB0aWxlLCBpbiB0aGlzIGNhc2UsIHJlbW92ZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB2YWx1ZXMgKGRlZmF1bHQgb3Igb3RoZXJ3aXNlKVxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnModGhpcy5jb250ZW50LCB7IGNsZWFyRWRpdEZpbHRlcjogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZSh0aGlzLmNvbnRlbnQsIGNvbnRyb2xTdGF0ZT8uaW5uZXJTdGF0ZT8uZnVsbFN0YXRlID8/IGNvbnRyb2xTdGF0ZSk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRcdExvZy5lcnJvcihlcnJvciBhcyBzdHJpbmcpO1xuXHRcdH0gZmluYWxseSB7XG5cdFx0XHR0aGlzLl9pbml0aWFsU3RhdGVQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyByZXRyaWV2ZVN0YXRlKHRoaXM6IEZpbHRlckJhckFQSSk6IFByb21pc2U8RmlsdGVyQmFyU3RhdGUgfCBudWxsPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyU3RhdGU6IEZpbHRlckJhclN0YXRlID0ge307XG5cdFx0ZmlsdGVyQmFyU3RhdGUuaW5uZXJTdGF0ZSA9IHRoaXMuZ2V0Q29udHJvbFN0YXRlKGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50KSkgYXMge1xuXHRcdFx0aW5pdGlhbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGU7XG5cdFx0XHRmdWxsU3RhdGU/OiBMZWdhY3lGaWx0ZXJCYXJTdGF0ZTtcblx0XHR9O1xuXHRcdC8vIHJlbW92ZSBzZW5zaXRpdmUgb3IgdmlldyBzdGF0ZSBpcnJlbGV2YW50IGZpZWxkc1xuXHRcdGNvbnN0IHByb3BlcnRpZXNJbmZvID0gdGhpcy5jb250ZW50LmdldFByb3BlcnR5SW5mb1NldCgpO1xuXHRcdGNvbnN0IGZpbHRlciA9IGZpbHRlckJhclN0YXRlLmlubmVyU3RhdGU/LmZpbHRlciB8fCB7fTtcblx0XHRwcm9wZXJ0aWVzSW5mb1xuXHRcdFx0LmZpbHRlcihmdW5jdGlvbiAocHJvcGVydHlJbmZvOiBQcm9wZXJ0eUluZm8gJiB7IHJlbW92ZUZyb21BcHBTdGF0ZT86IGJvb2xlYW4gfSkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdE9iamVjdC5rZXlzKGZpbHRlcikubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdHByb3BlcnR5SW5mby5wYXRoICYmXG5cdFx0XHRcdFx0ZmlsdGVyW3Byb3BlcnR5SW5mby5wYXRoXSAmJlxuXHRcdFx0XHRcdChwcm9wZXJ0eUluZm8ucmVtb3ZlRnJvbUFwcFN0YXRlIHx8IGZpbHRlcltwcm9wZXJ0eUluZm8ucGF0aF0ubGVuZ3RoID09PSAwKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChQcm9wZXJ0eUluZm86IFByb3BlcnR5SW5mbykge1xuXHRcdFx0XHRpZiAoUHJvcGVydHlJbmZvLnBhdGgpIHtcblx0XHRcdFx0XHRkZWxldGUgZmlsdGVyW1Byb3BlcnR5SW5mby5wYXRoXTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIGZpbHRlckJhclN0YXRlO1xuXHR9XG5cblx0YXN5bmMgc2V0SW5pdGlhbFN0YXRlKHRoaXM6IEZpbHRlckJhckFQSSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBpbml0aWFsQ29udHJvbFN0YXRlID0gYXdhaXQgU3RhdGVVdGlsLnJldHJpZXZlRXh0ZXJuYWxTdGF0ZSh0aGlzLmNvbnRlbnQpO1xuXHRcdFx0dGhpcy5pbml0aWFsQ29udHJvbFN0YXRlID0gaW5pdGlhbENvbnRyb2xTdGF0ZTtcblx0XHR9IGNhdGNoIChlOiB1bmtub3duKSB7XG5cdFx0XHRMb2cuZXJyb3IoZSBhcyBzdHJpbmcpO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGFwcGx5TmF2aWdhdGlvblBhcmFtZXRlcnModGhpczogRmlsdGVyQmFyQVBJLCBuYXZpZ2F0aW9uUGFyYW1ldGVyOiBOYXZpZ2F0aW9uUGFyYW1ldGVyKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlKSA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpPy5nZXRWaWV3KCk7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCk7XG5cdFx0XHRcdGNvbnN0IGNvbXBvbmVudERhdGEgPSBhcHBDb21wb25lbnQuZ2V0Q29tcG9uZW50RGF0YSgpO1xuXHRcdFx0XHRjb25zdCBzdGFydHVwUGFyYW1ldGVycyA9IChjb21wb25lbnREYXRhICYmIGNvbXBvbmVudERhdGEuc3RhcnR1cFBhcmFtZXRlcnMpIHx8IHt9O1xuXHRcdFx0XHRjb25zdCB2YXJpYW50U3RhdHVzID0gYXdhaXQgdGhpcy5oYW5kbGVWYXJpYW50SWRQYXNzZWRWaWFVUkxQYXJhbXMoc3RhcnR1cFBhcmFtZXRlcnMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcblx0XHRcdFx0bGV0IGZpbHRlclZhcmlhbnRBcHBsaWVkID0gZmFsc2U7XG5cdFx0XHRcdGlmICh2YXJpYW50U3RhdHVzICYmICh2YXJpYW50U3RhdHVzIGFzIFtdKT8ubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdC8vIGNoZWNrIGlmIGZpbHRlciBiYXIgdmFyaWFudCBpcyBhcHBsaWVkIG9yIG5vdC5cblx0XHRcdFx0XHRpZiAoKHZhcmlhbnRTdGF0dXMgYXMgYm9vbGVhbltdKVswXSA9PT0gdHJ1ZSB8fCAodmFyaWFudFN0YXR1cyBhcyBib29sZWFuW10pWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRmaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gaWYgdmFyaWFudCBmcm9tIFVSTCBkb2VzIG5vdCBleGlzdCBvciBkaWQgbm90IGFwcGx5IHByb3Blcmx5IHRoZW4gYXBwbHkgdG8gTFIgZWl0aGVyIGRlZmF1bHQgdmFyaWFudCBvciBzdGFuZGFyZCB2YXJpYW50IHJlcXVpcmVkLlxuXHRcdFx0XHRjb25zdCBmaWx0ZXJCYXIgPSB0aGlzLmdldENvbnRlbnQoKTtcblx0XHRcdFx0Y29uc3QgeyBzZWxlY3Rpb25WYXJpYW50OiBzdiwgcmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IHJlcVN0ZFZhcmlhbnQgPSBmYWxzZSB9ID0gbmF2aWdhdGlvblBhcmFtZXRlcjtcblxuXHRcdFx0XHRpZiAoIWZpbHRlckJhciB8fCAhc3YpIHtcblx0XHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YXdhaXQgdGhpcy5fYXBwbHlTZWxlY3Rpb25WYXJpYW50KHZpZXcsIG5hdmlnYXRpb25QYXJhbWV0ZXIsIGZpbHRlclZhcmlhbnRBcHBsaWVkKTtcblx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCB2YXJpYW50TWFuYWdlbWVudCA9IHRoaXMuX2dldEZpbHRlckJhclZNKHZpZXcpIGFzIFZhcmlhbnRNYW5hZ2VtZW50O1xuXHRcdFx0XHRpZiAoZmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiByZXFTdGRWYXJpYW50KSB8fFxuXHRcdFx0XHRcdFx0KCF2YXJpYW50TWFuYWdlbWVudCAmJiB2aWV3LmdldFZpZXdEYXRhKCkuaW5pdGlhbExvYWQgPT09IEluaXRpYWxMb2FkTW9kZS5FbmFibGVkKSB8fFxuXHRcdFx0XHRcdFx0KGNvbnRyb2xsZXIgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIpLl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCh2YXJpYW50TWFuYWdlbWVudClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0XHRcdFx0XHRmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRiUHJldmVudEluaXRpYWxTZWFyY2ggPSB0aGlzLl9wcmV2ZW50SW5pdGlhbFNlYXJjaCh2YXJpYW50TWFuYWdlbWVudCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vY29sbGFwc2Ugb3IgZXhwYW5kIHNoYWxsIGJlIGF2YWlsYWJsZSBvbmx5IGZvciBub24tZGVza3RvcCBzeXN0ZW1zXG5cdFx0XHRcdFx0aWYgKCFEZXZpY2Uuc3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCA9IHRoaXMuaXNTZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkKG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUpO1xuXHRcdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkXCIsIHNlYXJjaFRyaWdnZXJlZEJ5SW5pdGlhbExvYWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLl9lbmFibGVGaWx0ZXJCYXIoZmlsdGVyQmFyIGFzIEZpbHRlckJhciwgYlByZXZlbnRJbml0aWFsU2VhcmNoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRMb2cud2FybmluZyhcIkRpZCBub3QgZmluaXNoIGFwcGx5aW5nIG5hdmlnYXRpb24gcGFyYW1ldGVycyAtIEZpbHRlciBiYXIgbm90IGZvdW5kLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0XHRMb2cud2FybmluZyhcIkNvdWxkIG5vdCBhcHBseSBuYXZpZ2F0aW9uIHBhcmFtZXRlcnMuXCIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztNQWlCcUJBLHdCQUF3QiwwQkFBQUMscUJBQUE7SUFBQSxTQUFBRCx5QkFBQTtNQUFBLE9BQUFDLHFCQUFBLENBQUFDLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0lBQUFDLFFBQUEsR0FBQUosd0JBQUE7SUFBQUssY0FBQSxDQUFBTCx3QkFBQSxFQUFBQyxxQkFBQTtJQUFBLElBQUFLLE1BQUEsR0FBQU4sd0JBQUEsQ0FBQU8sU0FBQTtJQUFBRCxNQUFBLENBQ3RDRSxnQkFBZ0IsR0FBdEIsZUFBTUEsZ0JBQWdCQSxDQUVyQkMsZUFBeUQsRUFDekRDLGNBQW9DLEVBQ3BDQyxvQkFBOEIsRUFDOUJDLFNBQW1CLEVBQ0g7TUFDaEIsTUFBTUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsT0FB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
|
|
159
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXJBUElTdGF0ZUhhbmRsZXIiLCJfSVZpZXdTdGF0ZUNvbnRyaWJ1dG8iLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseUxlZ2FjeVN0YXRlIiwiZ2V0Q29udHJvbFN0YXRlIiwiX25hdlBhcmFtZXRlcnMiLCJzaG91bGRBcHBseURpZmZTdGF0ZSIsInNraXBNZXJnZSIsImZpbHRlckJhciIsImNvbnRlbnQiLCJmaWx0ZXJCYXJTdGF0ZSIsImNvbnRyb2xTdGF0ZSIsImlubmVyU3RhdGUiLCJmdWxsU3RhdGUiLCJpbml0aWFsU3RhdGUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiYXBwbHlTdGF0ZSIsIm5hdlBhcmFtZXRlciIsIm5hdmlnYXRpb25UeXBlIiwiTmF2VHlwZSIsImh5YnJpZCIsInVuZGVmaW5lZCIsInhBcHBTdGF0ZUZpbHRlcnMiLCJjb252ZXJ0U2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzIiwic2VsZWN0aW9uVmFyaWFudCIsIm1lcmdlZEZ1bGxTdGF0ZSIsImZpbHRlciIsIl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zIiwiY2xlYXJFZGl0RmlsdGVyIiwiU3RhdGVVdGlsIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiZGlmZlN0YXRlIiwiZXJyb3IiLCJMb2ciLCJfaW5pdGlhbFN0YXRlUHJvbWlzZSIsInJlc29sdmUiLCJyZXRyaWV2ZVN0YXRlIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwicHJvcGVydGllc0luZm8iLCJnZXRQcm9wZXJ0eUluZm9TZXQiLCJwcm9wZXJ0eUluZm8iLCJwYXRoIiwicmVtb3ZlRnJvbUFwcFN0YXRlIiwiZm9yRWFjaCIsIlByb3BlcnR5SW5mbyIsInNldEluaXRpYWxTdGF0ZSIsImluaXRpYWxDb250cm9sU3RhdGUiLCJlIiwiYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm5hdmlnYXRpb25QYXJhbWV0ZXIiLCJQcm9taXNlIiwidmlldyIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImNvbnRyb2xsZXIiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJjb21wb25lbnREYXRhIiwiZ2V0Q29tcG9uZW50RGF0YSIsInN0YXJ0dXBQYXJhbWV0ZXJzIiwidmFyaWFudFN0YXR1cyIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImZpbHRlclZhcmlhbnRBcHBsaWVkIiwiZ2V0Q29udGVudCIsInN2IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJyZXFTdGRWYXJpYW50IiwiX2FwcGx5U2VsZWN0aW9uVmFyaWFudCIsImJQcmV2ZW50SW5pdGlhbFNlYXJjaCIsInZhcmlhbnRNYW5hZ2VtZW50IiwiX2dldEZpbHRlckJhclZNIiwiaW5pdGlhbCIsImdldFZpZXdEYXRhIiwiaW5pdGlhbExvYWQiLCJJbml0aWFsTG9hZE1vZGUiLCJFbmFibGVkIiwiX3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoIiwiZmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50IiwidHJpZ2dlclNlYXJjaCIsIl9wcmV2ZW50SW5pdGlhbFNlYXJjaCIsIkRldmljZSIsInN5c3RlbSIsImRlc2t0b3AiLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwic2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCIsImlzU2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCIsInNldFByb3BlcnR5IiwiX2VuYWJsZUZpbHRlckJhciIsIndhcm5pbmciLCJJVmlld1N0YXRlQ29udHJpYnV0b3JNaXhpbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyQVBJU3RhdGVIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sU3RhdGUsIExlZ2FjeUZpbHRlckJhclN0YXRlLCBOYXZpZ2F0aW9uUGFyYW1ldGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IElWaWV3U3RhdGVDb250cmlidXRvck1peGluIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy92aWV3U3RhdGUvSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yTWl4aW5cIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgSW5pdGlhbExvYWRNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgeyBOYXZUeXBlIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuaW1wb3J0IERldmljZSBmcm9tIFwic2FwL3VpL0RldmljZVwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgVmFyaWFudE1hbmFnZW1lbnQgZnJvbSBcInNhcC91aS9mbC92YXJpYW50cy9WYXJpYW50TWFuYWdlbWVudFwiO1xuaW1wb3J0IFN0YXRlVXRpbCBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1N0YXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyQVBJIGZyb20gXCIuLi9GaWx0ZXJCYXJBUElcIjtcbmltcG9ydCB0eXBlIHsgRmlsdGVyQmFyU3RhdGUgfSBmcm9tIFwiLi4vRmlsdGVyQmFyQVBJXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckJhckFQSVN0YXRlSGFuZGxlciBleHRlbmRzIElWaWV3U3RhdGVDb250cmlidXRvck1peGluPEZpbHRlckJhclN0YXRlPiB7XG5cdGFzeW5jIGFwcGx5TGVnYWN5U3RhdGUoXG5cdFx0dGhpczogRmlsdGVyQmFyQVBJLFxuXHRcdGdldENvbnRyb2xTdGF0ZTogKGNvbnRyb2w6IE1hbmFnZWRPYmplY3QpID0+IENvbnRyb2xTdGF0ZSxcblx0XHRfbmF2UGFyYW1ldGVycz86IE5hdmlnYXRpb25QYXJhbWV0ZXIsXG5cdFx0c2hvdWxkQXBwbHlEaWZmU3RhdGU/OiBib29sZWFuLFxuXHRcdHNraXBNZXJnZT86IGJvb2xlYW5cblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gdGhpcy5jb250ZW50O1xuXHRcdGNvbnN0IGZpbHRlckJhclN0YXRlID0gZ2V0Q29udHJvbFN0YXRlKGZpbHRlckJhcikgYXMgeyBpbml0aWFsU3RhdGU/OiBMZWdhY3lGaWx0ZXJCYXJTdGF0ZTsgZnVsbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGUgfTtcblx0XHRjb25zdCBjb250cm9sU3RhdGU6IEZpbHRlckJhclN0YXRlID0ge307XG5cblx0XHRpZiAoZmlsdGVyQmFyU3RhdGUpIHtcblx0XHRcdGNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlID0ge1xuXHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZSxcblx0XHRcdFx0ZnVsbFN0YXRlOiB7XG5cdFx0XHRcdFx0Li4uY29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmZ1bGxTdGF0ZSxcblx0XHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZS5mdWxsU3RhdGVcblx0XHRcdFx0fSxcblx0XHRcdFx0aW5pdGlhbFN0YXRlOiB7XG5cdFx0XHRcdFx0Li4uY29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmluaXRpYWxTdGF0ZSxcblx0XHRcdFx0XHQuLi5maWx0ZXJCYXJTdGF0ZS5pbml0aWFsU3RhdGVcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aWYgKGNvbnRyb2xTdGF0ZSAmJiBPYmplY3Qua2V5cyhjb250cm9sU3RhdGUpLmxlbmd0aCA+IDApIHtcblx0XHRcdGF3YWl0IHRoaXMuYXBwbHlTdGF0ZShjb250cm9sU3RhdGUgYXMgb2JqZWN0LCBfbmF2UGFyYW1ldGVycywgc2hvdWxkQXBwbHlEaWZmU3RhdGUsIHNraXBNZXJnZSk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgYXBwbHlTdGF0ZShcblx0XHR0aGlzOiBGaWx0ZXJCYXJBUEksXG5cdFx0Y29udHJvbFN0YXRlOiBGaWx0ZXJCYXJTdGF0ZSxcblx0XHRuYXZQYXJhbWV0ZXI/OiBOYXZpZ2F0aW9uUGFyYW1ldGVyLFxuXHRcdHNob3VsZEFwcGx5RGlmZlN0YXRlPzogYm9vbGVhbixcblx0XHRza2lwTWVyZ2U/OiBib29sZWFuXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoY29udHJvbFN0YXRlICYmIG5hdlBhcmFtZXRlcikge1xuXHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uVHlwZSA9IG5hdlBhcmFtZXRlci5uYXZpZ2F0aW9uVHlwZTtcblx0XHRcdFx0Ly9XaGVuIG5hdmlnYXRpb24gdHlwZSBpcyBoeWJyaWQsIHdlIG92ZXJyaWRlIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyBpbiBJQXBwU3RhdGUgd2l0aCBTViByZWNlaXZlZCBmcm9tIFhhcHBTdGF0ZVxuXHRcdFx0XHRpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdlR5cGUuaHlicmlkICYmIGNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5mdWxsU3RhdGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGNvbnN0IHhBcHBTdGF0ZUZpbHRlcnMgPSBhd2FpdCB0aGlzLmNvbnZlcnRTZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnMoXG5cdFx0XHRcdFx0XHRuYXZQYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudCBhcyBTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRjb25zdCBtZXJnZWRGdWxsU3RhdGUgPSB7XG5cdFx0XHRcdFx0XHQuLi5jb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlLFxuXHRcdFx0XHRcdFx0ZmlsdGVyOiB7XG5cdFx0XHRcdFx0XHRcdC4uLmNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5mdWxsU3RhdGUuZmlsdGVyLFxuXHRcdFx0XHRcdFx0XHQuLi54QXBwU3RhdGVGaWx0ZXJzXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHQvL3doZW4gbmF2aWdhdGluZyBmcm9tIGNhcmQsIHJlbW92ZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB2YWx1ZXMgKGRlZmF1bHQgb3Igb3RoZXJ3aXNlKSBhbmQgdGhlbiBhcHBseSB0aGUgc3RhdGVcblx0XHRcdFx0XHRhd2FpdCB0aGlzLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKHRoaXMuY29udGVudCwgeyBjbGVhckVkaXRGaWx0ZXI6IHRydWUgfSk7XG5cdFx0XHRcdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50LCBtZXJnZWRGdWxsU3RhdGUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHNob3VsZEFwcGx5RGlmZlN0YXRlKSB7XG5cdFx0XHRcdFx0Y29uc3QgZGlmZlN0YXRlOiBvYmplY3QgPSBhd2FpdCBTdGF0ZVV0aWwuZGlmZlN0YXRlKFxuXHRcdFx0XHRcdFx0dGhpcy5jb250ZW50LFxuXHRcdFx0XHRcdFx0Y29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmluaXRpYWxTdGF0ZSBhcyBvYmplY3QsXG5cdFx0XHRcdFx0XHRjb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlIGFzIG9iamVjdFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50LCBkaWZmU3RhdGUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHNraXBNZXJnZSkge1xuXHRcdFx0XHRcdC8vc2tpcE1lcmdlIGlzIHRydWUgd2hlbiBjb21pbmcgZnJvbSB0aGUgZHluYW1pYyB0aWxlLCBpbiB0aGlzIGNhc2UsIHJlbW92ZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB2YWx1ZXMgKGRlZmF1bHQgb3Igb3RoZXJ3aXNlKVxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnModGhpcy5jb250ZW50LCB7IGNsZWFyRWRpdEZpbHRlcjogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZSh0aGlzLmNvbnRlbnQsIGNvbnRyb2xTdGF0ZT8uaW5uZXJTdGF0ZT8uZnVsbFN0YXRlID8/IGNvbnRyb2xTdGF0ZSk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRcdExvZy5lcnJvcihlcnJvciBhcyBzdHJpbmcpO1xuXHRcdH0gZmluYWxseSB7XG5cdFx0XHR0aGlzLl9pbml0aWFsU3RhdGVQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyByZXRyaWV2ZVN0YXRlKHRoaXM6IEZpbHRlckJhckFQSSk6IFByb21pc2U8RmlsdGVyQmFyU3RhdGUgfCBudWxsPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyU3RhdGU6IEZpbHRlckJhclN0YXRlID0ge307XG5cdFx0ZmlsdGVyQmFyU3RhdGUuaW5uZXJTdGF0ZSA9IHRoaXMuZ2V0Q29udHJvbFN0YXRlKGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50KSkgYXMge1xuXHRcdFx0aW5pdGlhbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGU7XG5cdFx0XHRmdWxsU3RhdGU/OiBMZWdhY3lGaWx0ZXJCYXJTdGF0ZTtcblx0XHR9O1xuXHRcdC8vIHJlbW92ZSBzZW5zaXRpdmUgb3IgdmlldyBzdGF0ZSBpcnJlbGV2YW50IGZpZWxkc1xuXHRcdGNvbnN0IHByb3BlcnRpZXNJbmZvID0gdGhpcy5jb250ZW50LmdldFByb3BlcnR5SW5mb1NldCgpO1xuXHRcdGNvbnN0IGZpbHRlciA9IGZpbHRlckJhclN0YXRlLmlubmVyU3RhdGU/LmZpbHRlciB8fCB7fTtcblx0XHRwcm9wZXJ0aWVzSW5mb1xuXHRcdFx0LmZpbHRlcihmdW5jdGlvbiAocHJvcGVydHlJbmZvOiBQcm9wZXJ0eUluZm8gJiB7IHJlbW92ZUZyb21BcHBTdGF0ZT86IGJvb2xlYW4gfSkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdE9iamVjdC5rZXlzKGZpbHRlcikubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdHByb3BlcnR5SW5mby5wYXRoICYmXG5cdFx0XHRcdFx0ZmlsdGVyW3Byb3BlcnR5SW5mby5wYXRoXSAmJlxuXHRcdFx0XHRcdChwcm9wZXJ0eUluZm8ucmVtb3ZlRnJvbUFwcFN0YXRlIHx8IGZpbHRlcltwcm9wZXJ0eUluZm8ucGF0aF0ubGVuZ3RoID09PSAwKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChQcm9wZXJ0eUluZm86IFByb3BlcnR5SW5mbykge1xuXHRcdFx0XHRpZiAoUHJvcGVydHlJbmZvLnBhdGgpIHtcblx0XHRcdFx0XHRkZWxldGUgZmlsdGVyW1Byb3BlcnR5SW5mby5wYXRoXTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIGZpbHRlckJhclN0YXRlO1xuXHR9XG5cblx0YXN5bmMgc2V0SW5pdGlhbFN0YXRlKHRoaXM6IEZpbHRlckJhckFQSSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBpbml0aWFsQ29udHJvbFN0YXRlID0gYXdhaXQgU3RhdGVVdGlsLnJldHJpZXZlRXh0ZXJuYWxTdGF0ZSh0aGlzLmNvbnRlbnQpO1xuXHRcdFx0dGhpcy5pbml0aWFsQ29udHJvbFN0YXRlID0gaW5pdGlhbENvbnRyb2xTdGF0ZTtcblx0XHR9IGNhdGNoIChlOiB1bmtub3duKSB7XG5cdFx0XHRMb2cuZXJyb3IoZSBhcyBzdHJpbmcpO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGFwcGx5TmF2aWdhdGlvblBhcmFtZXRlcnModGhpczogRmlsdGVyQmFyQVBJLCBuYXZpZ2F0aW9uUGFyYW1ldGVyOiBOYXZpZ2F0aW9uUGFyYW1ldGVyKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlKSA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpPy5nZXRWaWV3KCk7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCk7XG5cdFx0XHRcdGNvbnN0IGNvbXBvbmVudERhdGEgPSBhcHBDb21wb25lbnQuZ2V0Q29tcG9uZW50RGF0YSgpO1xuXHRcdFx0XHRjb25zdCBzdGFydHVwUGFyYW1ldGVycyA9IChjb21wb25lbnREYXRhICYmIGNvbXBvbmVudERhdGEuc3RhcnR1cFBhcmFtZXRlcnMpIHx8IHt9O1xuXHRcdFx0XHRjb25zdCB2YXJpYW50U3RhdHVzID0gYXdhaXQgdGhpcy5oYW5kbGVWYXJpYW50SWRQYXNzZWRWaWFVUkxQYXJhbXMoc3RhcnR1cFBhcmFtZXRlcnMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcblx0XHRcdFx0bGV0IGZpbHRlclZhcmlhbnRBcHBsaWVkID0gZmFsc2U7XG5cdFx0XHRcdGlmICh2YXJpYW50U3RhdHVzICYmICh2YXJpYW50U3RhdHVzIGFzIFtdKT8ubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdC8vIGNoZWNrIGlmIGZpbHRlciBiYXIgdmFyaWFudCBpcyBhcHBsaWVkIG9yIG5vdC5cblx0XHRcdFx0XHRpZiAoKHZhcmlhbnRTdGF0dXMgYXMgYm9vbGVhbltdKVswXSA9PT0gdHJ1ZSB8fCAodmFyaWFudFN0YXR1cyBhcyBib29sZWFuW10pWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRmaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gaWYgdmFyaWFudCBmcm9tIFVSTCBkb2VzIG5vdCBleGlzdCBvciBkaWQgbm90IGFwcGx5IHByb3Blcmx5IHRoZW4gYXBwbHkgdG8gTFIgZWl0aGVyIGRlZmF1bHQgdmFyaWFudCBvciBzdGFuZGFyZCB2YXJpYW50IHJlcXVpcmVkLlxuXHRcdFx0XHRjb25zdCBmaWx0ZXJCYXIgPSB0aGlzLmdldENvbnRlbnQoKTtcblx0XHRcdFx0Y29uc3QgeyBzZWxlY3Rpb25WYXJpYW50OiBzdiwgcmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IHJlcVN0ZFZhcmlhbnQgPSBmYWxzZSB9ID0gbmF2aWdhdGlvblBhcmFtZXRlcjtcblxuXHRcdFx0XHRpZiAoIWZpbHRlckJhciB8fCAhc3YpIHtcblx0XHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YXdhaXQgdGhpcy5fYXBwbHlTZWxlY3Rpb25WYXJpYW50KHZpZXcsIG5hdmlnYXRpb25QYXJhbWV0ZXIsIGZpbHRlclZhcmlhbnRBcHBsaWVkKTtcblx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCB2YXJpYW50TWFuYWdlbWVudCA9IHRoaXMuX2dldEZpbHRlckJhclZNKHZpZXcpIGFzIFZhcmlhbnRNYW5hZ2VtZW50O1xuXHRcdFx0XHRpZiAoZmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiByZXFTdGRWYXJpYW50KSB8fFxuXHRcdFx0XHRcdFx0KCF2YXJpYW50TWFuYWdlbWVudCAmJiB2aWV3LmdldFZpZXdEYXRhKCkuaW5pdGlhbExvYWQgPT09IEluaXRpYWxMb2FkTW9kZS5FbmFibGVkKSB8fFxuXHRcdFx0XHRcdFx0KGNvbnRyb2xsZXIgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIpLl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCh2YXJpYW50TWFuYWdlbWVudClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0XHRcdFx0XHRmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRiUHJldmVudEluaXRpYWxTZWFyY2ggPSB0aGlzLl9wcmV2ZW50SW5pdGlhbFNlYXJjaCh2YXJpYW50TWFuYWdlbWVudCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vY29sbGFwc2Ugb3IgZXhwYW5kIHNoYWxsIGJlIGF2YWlsYWJsZSBvbmx5IGZvciBub24tZGVza3RvcCBzeXN0ZW1zXG5cdFx0XHRcdFx0aWYgKCFEZXZpY2Uuc3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCA9IHRoaXMuaXNTZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkKG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUpO1xuXHRcdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkXCIsIHNlYXJjaFRyaWdnZXJlZEJ5SW5pdGlhbExvYWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLl9lbmFibGVGaWx0ZXJCYXIoZmlsdGVyQmFyIGFzIEZpbHRlckJhciwgYlByZXZlbnRJbml0aWFsU2VhcmNoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRMb2cud2FybmluZyhcIkRpZCBub3QgZmluaXNoIGFwcGx5aW5nIG5hdmlnYXRpb24gcGFyYW1ldGVycyAtIEZpbHRlciBiYXIgbm90IGZvdW5kLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0XHRMb2cud2FybmluZyhcIkNvdWxkIG5vdCBhcHBseSBuYXZpZ2F0aW9uIHBhcmFtZXRlcnMuXCIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztNQWlCcUJBLHdCQUF3QiwwQkFBQUMscUJBQUE7SUFBQSxTQUFBRCx5QkFBQTtNQUFBLE9BQUFDLHFCQUFBLENBQUFDLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0lBQUFDLFFBQUEsR0FBQUosd0JBQUE7SUFBQUssY0FBQSxDQUFBTCx3QkFBQSxFQUFBQyxxQkFBQTtJQUFBLElBQUFLLE1BQUEsR0FBQU4sd0JBQUEsQ0FBQU8sU0FBQTtJQUFBRCxNQUFBLENBQ3RDRSxnQkFBZ0IsR0FBdEIsZUFBTUEsZ0JBQWdCQSxDQUVyQkMsZUFBeUQsRUFDekRDLGNBQW9DLEVBQ3BDQyxvQkFBOEIsRUFDOUJDLFNBQW1CLEVBQ0g7TUFDaEIsTUFBTUMsU0FBUyxHQUFHLElB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
|
|
@@ -3,6 +3,7 @@ import type { ControlState, LegacyFilterBarState, NavigationParameter } from "sa
|
|
|
3
3
|
import IViewStateContributorMixin from "sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin";
|
|
4
4
|
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
5
5
|
import { InitialLoadMode } from "sap/fe/core/library";
|
|
6
|
+
import type FilterBar from "sap/fe/macros/controls/FilterBar";
|
|
6
7
|
import type { PropertyInfo } from "sap/fe/macros/internal/PropertyInfo";
|
|
7
8
|
import type SelectionVariant from "sap/fe/navigation/SelectionVariant";
|
|
8
9
|
import { NavType } from "sap/fe/navigation/library";
|
|
@@ -10,7 +11,6 @@ import type ListReportController from "sap/fe/templates/ListReport/ListReportCon
|
|
|
10
11
|
import Device from "sap/ui/Device";
|
|
11
12
|
import type ManagedObject from "sap/ui/base/ManagedObject";
|
|
12
13
|
import type VariantManagement from "sap/ui/fl/variants/VariantManagement";
|
|
13
|
-
import type FilterBar from "sap/ui/mdc/FilterBar";
|
|
14
14
|
import StateUtil from "sap/ui/mdc/p13n/StateUtil";
|
|
15
15
|
import type FilterBarAPI from "../FilterBarAPI";
|
|
16
16
|
import type { FilterBarState } from "../FilterBarAPI";
|
|
@@ -229,7 +229,11 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
229
229
|
}
|
|
230
230
|
const titleLevel = FormHelper.getFormContainerTitleLevel(this.title, this.titleLevel);
|
|
231
231
|
const title = this.useFormContainerLabels && facet.Label ? getExpressionFromAnnotation(facet.Label) : "";
|
|
232
|
-
|
|
232
|
+
|
|
233
|
+
// Enhance: generate a stable form container id whenever we have a derived idPart even if this.id is undefined.
|
|
234
|
+
// Previous logic only generated when (implicitly) guarding by one condition; now we allow fallback to idPart.
|
|
235
|
+
// We still protect getFormContainerID from being called with an undefined idPart.
|
|
236
|
+
const id = (this.id !== undefined || idPart) && idPart ? getFormContainerID(idPart) : undefined;
|
|
233
237
|
return xml`
|
|
234
238
|
<macro:FormContainer
|
|
235
239
|
xmlns:macro="sap.fe.macros"
|
|
@@ -491,4 +495,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
491
495
|
_exports = FormBlock;
|
|
492
496
|
return _exports;
|
|
493
497
|
}, false);
|
|
494
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtQmxvY2siLCJfZGVjIiwiZGVmaW5lQnVpbGRpbmdCbG9jayIsIm5hbWUiLCJuYW1lc3BhY2UiLCJwdWJsaWNOYW1lc3BhY2UiLCJyZXR1cm5UeXBlcyIsIl9kZWMyIiwiYmxvY2tBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNQdWJsaWMiLCJyZXF1aXJlZCIsIl9kZWMzIiwiZXhwZWN0ZWRUeXBlcyIsIl9kZWM0IiwiZXhwZWN0ZWRBbm5vdGF0aW9uVHlwZXMiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiYmxvY2tFdmVudCIsIl9kZWMxNCIsImJsb2NrQWdncmVnYXRpb24iLCJzbG90IiwiaXNEZWZhdWx0IiwiX2RlYzE1IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrVGVtcGxhdCIsInByb3BzIiwiY29uZmlndXJhdGlvbiIsIm1TZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJmb3JtQ29udGFpbmVycyIsInVuZGVmaW5lZCIsIm9Db250ZXh0T2JqZWN0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsIm1FeHRyYVNldHRpbmdzIiwib0ZhY2V0RGVmaW5pdGlvbiIsInRhcmdldE9iamVjdCIsImhhc0ZpZWxkR3JvdXAiLCIkVHlwZSIsIkxhYmVsIiwiVGFyZ2V0IiwiJHRhcmdldCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInBhdGgiLCJ0ZXJtIiwidmFsdWUiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwiYW5ub3RhdGlvbnMiLCJmaWVsZHMiLCJmb3JtRWxlbWVudHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJvRm9ybURlZmluaXRpb24iLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImlzVmlzaWJsZSIsImFubm90YXRpb25QYXRoIiwiZ2V0UGF0aCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJmYWNldFR5cGUiLCJnZXRPYmplY3QiLCJfYXBpSWQiLCJjcmVhdGVJZCIsIl9jb250ZW50SWQiLCJpZCIsImRpc3BsYXlNb2RlIiwiX2VkaXRhYmxlIiwiY29tcGlsZUV4cHJlc3Npb24iLCJpZkVsc2UiLCJlcXVhbCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiVUkiLCJJc0VkaXRhYmxlIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImdldERhdGFGaWVsZENvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVyIiwiZmFjZXRDb250ZXh0IiwiZmFjZXQiLCJuYXZpZ2F0aW9uUGF0aCIsImlkUGFydCIsIkFubm90YXRpb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsImNvbnRleHRQYXRoUGF0aCIsImZhY2V0UGF0aCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjaGFyQXQiLCJzbGljZSIsInRpdGxlTGV2ZWwiLCJGb3JtSGVscGVyIiwiZ2V0Rm9ybUNvbnRhaW5lclRpdGxlTGV2ZWwiLCJ0aXRsZSIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldEZvcm1Db250YWluZXJJRCIsInhtbCIsImF0dHIiLCJlbnRpdHlTZXQiLCJvbkNoYW5nZSIsImFjdGlvbnMiLCJ1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3RlcyIsImFubm90YXRpb25IaWRkZW4iLCJnZXRGb3JtQ29udGFpbmVycyIsImluY2x1ZGVzIiwibWFwIiwiZm9ybUNvbnRhaW5lcklkeCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJpc1JlZmVyZW5jZUZhY2V0UGFydE9mUHJldmlldyIsInBhcnRPZlByZXZpZXciLCIkQW5ub3RhdGlvblBhdGgiLCJjaGVja0lmVGV4dEFyZWFJc0Fsb25lIiwiZmllbGRHcm91cCIsImlkZW50aWZpY2F0aW9uIiwiaGFzRmllbGRHcm91cFRhcmdldCIsImhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0IiwiRGF0YSIsIlZhbHVlIiwiTXVsdGlMaW5lVGV4dCIsInZhbHVlT2YiLCJnZXRMYXlvdXRJbmZvcm1hdGlvbiIsImlzVGV4dEFyZWFBbG9uZSIsImxheW91dCIsImFkanVzdExhYmVsU3BhbiIsImJyZWFrcG9pbnRMIiwiYnJlYWtwb2ludE0iLCJicmVha3BvaW50WEwiLCJjb2x1bW5zTCIsImNvbHVtbnNNIiwiY29sdW1uc1hMIiwiZW1wdHlTcGFuTCIsImVtcHR5U3Bhbk0iLCJlbXB0eVNwYW5TIiwiZW1wdHlTcGFuWEwiLCJsYWJlbFNwYW5MIiwibGFiZWxTcGFuTSIsImxhYmVsU3BhblMiLCJsYWJlbFNwYW5YTCIsInNpbmdsZUNvbnRhaW5lckZ1bGxTaXplIiwiYmFja2dyb3VuZERlc2lnbiIsImxhYmVsQ2VsbHNMYXJnZSIsImVtcHR5Q2VsbHNMYXJnZSIsImdldFRlbXBsYXRlIiwib25DaGFuZ2VTdHIiLCJyZXBsYWNlIiwibWV0YVBhdGhQYXRoIiwiY29udGV4dE9iamVjdFBhdGgiLCJjb250ZXh0TG9jYXRpb24iLCJ0YXJnZXRFbnRpdHlTZXQiLCJfdHlwZSIsImFyaWFMYWJlbGxlZEJ5IiwiYWRkQ29uZGl0aW9uYWxseSIsIkJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciIsIlRpdGxlTGV2ZWwiLCJBdXRvIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGb3JtLmJsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW11bmljYXRpb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q29sbGVjdGlvbkZhY2V0LFxuXHREYXRhRmllbGQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXBUeXBlLFxuXHRJZGVudGlmaWNhdGlvbixcblx0UmVmZXJlbmNlRmFjZXRcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgZXF1YWwsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgaWZFbHNlLCByZXNvbHZlQmluZGluZ1N0cmluZyB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQge1xuXHRibG9ja0FnZ3JlZ2F0aW9uLFxuXHRibG9ja0F0dHJpYnV0ZSxcblx0YmxvY2tFdmVudCxcblx0ZGVmaW5lQnVpbGRpbmdCbG9ja1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGhhc0ZpZWxkR3JvdXBUYXJnZXQsIGhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQgdHlwZSB7IEZvcm1Db250YWluZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRm9ybVwiO1xuaW1wb3J0IHsgY3JlYXRlRm9ybURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRm9ybVwiO1xuaW1wb3J0IHsgZ2V0Rm9ybUNvbnRhaW5lcklEIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IEZvcm1IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvZm9ybS9Gb3JtSGVscGVyXCI7XG5pbXBvcnQgeyBUaXRsZUxldmVsIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIHsgJENvbHVtbkxheW91dFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9sYXlvdXQvZm9ybS9Db2x1bW5MYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgJFJlc3BvbnNpdmVHcmlkTGF5b3V0U2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL1Jlc3BvbnNpdmVHcmlkTGF5b3V0XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5cbnR5cGUgQ29sdW1uTGF5b3V0ID0gJENvbHVtbkxheW91dFNldHRpbmdzICYge1xuXHR0eXBlOiBcIkNvbHVtbkxheW91dFwiO1xufTtcbnR5cGUgUmVzcG9uc2l2ZUdyaWRMYXlvdXQgPSAkUmVzcG9uc2l2ZUdyaWRMYXlvdXRTZXR0aW5ncyAmIHtcblx0dHlwZTogXCJSZXNwb25zaXZlR3JpZExheW91dFwiO1xufTtcbnR5cGUgRm9ybUxheW91dEluZm9ybWF0aW9uID0gQ29sdW1uTGF5b3V0IHwgUmVzcG9uc2l2ZUdyaWRMYXlvdXQ7XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgZm9yIGNyZWF0aW5nIGEgRm9ybSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBJdCBpcyBkZXNpZ25lZCB0byB3b3JrIGJhc2VkIG9uIGEgRmllbGRHcm91cCBhbm5vdGF0aW9uIGJ1dCBjYW4gYWxzbyB3b3JrIGlmIHlvdSBwcm92aWRlIGEgUmVmZXJlbmNlRmFjZXQgb3IgYSBDb2xsZWN0aW9uRmFjZXRcbiAqXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZvcm0gaWQ9XCJNeUZvcm1cIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwI0dlbmVyYWxJbmZvcm1hdGlvblwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLkZvcm1cbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZUJ1aWxkaW5nQmxvY2soe1xuXHRuYW1lOiBcIkZvcm1cIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIixcblx0cHVibGljTmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3NcIixcblx0cmV0dXJuVHlwZXM6IFtcInNhcC5mZS5tYWNyb3MuZm9ybS5Gb3JtQVBJXCJdXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9ybUJsb2NrIGV4dGVuZHMgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0LyoqXG5cdCAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCBpc1B1YmxpYzogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHBhdGggb2YgdGhlIGNvbnRleHQgdXNlZCBpbiB0aGUgY3VycmVudCBwYWdlIG9yIGJsb2NrLlxuXHQgKiBUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZnJhbWV3b3JrLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRpc1B1YmxpYzogdHJ1ZSxcblx0XHRleHBlY3RlZFR5cGVzOiBbXCJFbnRpdHlTZXRcIiwgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiwgXCJTaW5nbGV0b25cIiwgXCJFbnRpdHlUeXBlXCJdXG5cdH0pXG5cdGNvbnRleHRQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG1ldGFtb2RlbCwgYmFzZWQgb24gdGhlIGN1cnJlbnQgY29udGV4dFBhdGguXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdGlzUHVibGljOiB0cnVlLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGV4cGVjdGVkQW5ub3RhdGlvblR5cGVzOiBbXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBUeXBlXCIsXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbGxlY3Rpb25GYWNldFwiLFxuXHRcdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWZlcmVuY2VGYWNldFwiXG5cdFx0XSxcblx0XHRleHBlY3RlZFR5cGVzOiBbXCJFbnRpdHlTZXRcIiwgXCJFbnRpdHlUeXBlXCIsIFwiU2luZ2xldG9uXCIsIFwiTmF2aWdhdGlvblByb3BlcnR5XCJdXG5cdH0pXG5cdG1ldGFQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogVGhlIG1hbmlmZXN0IGRlZmluZWQgZm9ybSBjb250YWluZXJzIHRvIGJlIHNob3duIGluIHRoZSBhY3Rpb24gYXJlYSBvZiB0aGUgdGFibGVcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYXJyYXlcIiB9KVxuXHRmb3JtQ29udGFpbmVycz86IEZvcm1Db250YWluZXJbXTtcblxuXHQvKipcblx0ICogQ29udHJvbCB0aGUgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIGNvbnRhaW5lciBsYWJlbHNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM/OiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBUb2dnbGUgUHJldmlldzogUGFydCBvZiBQcmV2aWV3IC8gUHJldmlldyB2aWEgJ1Nob3cgTW9yZScgQnV0dG9uXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRwYXJ0T2ZQcmV2aWV3ID0gdHJ1ZTtcblxuXHQvKipcblx0ICogVGhlIHRpdGxlIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIsIGlzUHVibGljOiB0cnVlIH0pXG5cdHRpdGxlPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBcImFyaWEtbGV2ZWxcIiBvZiB0aGUgZm9ybSB0aXRsZSwgdGl0bGVzIG9mIGludGVybmFsbHkgdXNlZCBmb3JtIGNvbnRhaW5lcnMgYXJlIG5lc3RlZCBzdWJzZXF1ZW50bHlcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic2FwLnVpLmNvcmUuVGl0bGVMZXZlbFwiLCBpc1B1YmxpYzogdHJ1ZSB9KVxuXHR0aXRsZUxldmVsOiBUaXRsZUxldmVsID0gVGl0bGVMZXZlbC5BdXRvO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBhZGRlZCB0byBhc3NvY2lhdGUgdGhlIHN1cGVyb3JkaW5hdGUgdGl0bGVcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cHVibGljIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nW107XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRkaXNwbGF5TW9kZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXG5cdC8qKlxuXHQgKiBcdElmIHNldCB0byBmYWxzZSwgdGhlIEZvcm0gaXMgbm90IHJlbmRlcmVkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRpc1Zpc2libGUgPSBcInRydWVcIjtcblx0Ly8gSW5kZXBlbmRlbnQgZnJvbSB0aGUgZm9ybSB0aXRsZSwgY2FuIGJlIGEgYml0IGNvbmZ1c2luZyBpbiBzdGFuZGFsb25lIHVzYWdlIGF0IGlzIG5vdCBzaG93aW5nIGFueXRoaW5nIGJ5IGRlZmF1bHRcblxuXHQvLyBKdXN0IHByb3hpZWQgZG93biB0byB0aGUgRmllbGQgbWF5IG5lZWQgdG8gc2VlIGlmIG5lZWRlZCBvciBub3Rcblx0QGJsb2NrRXZlbnQoKVxuXHRvbkNoYW5nZT86IHN0cmluZztcblxuXHRAYmxvY2tBZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5mb3JtLkZvcm1FbGVtZW50XCIsIGlzUHVibGljOiB0cnVlLCBzbG90OiBcImZvcm1FbGVtZW50c1wiLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Zm9ybUVsZW1lbnRzPzogb2JqZWN0W107XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIGxheW91dCB0byBiZSB1c2VkIHdpdGhpbiB0aGUgZm9ybS5cblx0ICogSXQgZGVmYXVsdHMgdG8gdGhlIENvbHVtbkxheW91dCwgYnV0IHlvdSBjYW4gYWxzbyB1c2UgYSBSZXNwb25zaXZlR3JpZExheW91dC5cblx0ICogQWxsIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBSZXNwb25zaXZlR3JpZExheW91dCBjYW4gYmUgYWRkZWQgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcIm9iamVjdFwiLCBpc1B1YmxpYzogdHJ1ZSB9KVxuXHRsYXlvdXQ6IEZvcm1MYXlvdXRJbmZvcm1hdGlvbiA9IHsgdHlwZTogXCJDb2x1bW5MYXlvdXRcIiwgY29sdW1uc006IDMsIGNvbHVtbnNYTDogNiwgY29sdW1uc0w6IDQsIGxhYmVsQ2VsbHNMYXJnZTogMTIgfTtcblxuXHQvLyBVc2VmdWwgZm9yIG91ciBkeW5hbWljIHRoaW5nIGJ1dCBhbHNvIGRlcGVuZHMgb24gdGhlIG1ldGFkYXRhIC0+IG1ha2Ugc3VyZSB0aGlzIGlzIHRha2VuIGludG8gYWNjb3VudFxuXHRfZWRpdGFibGU6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXG5cdF9hcGlJZDogc3RyaW5nO1xuXG5cdF9jb250ZW50SWQ6IHN0cmluZztcblxuXHRmYWNldFR5cGU/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6IFByb3BlcnRpZXNPZjxGb3JtQmxvY2s+LCBjb25maWd1cmF0aW9uOiB1bmtub3duLCBtU2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgY29uZmlndXJhdGlvbiwgbVNldHRpbmdzKTtcblx0XHRpZiAodGhpcy5tZXRhUGF0aCAmJiB0aGlzLmNvbnRleHRQYXRoICYmICh0aGlzLmZvcm1Db250YWluZXJzID09PSB1bmRlZmluZWQgfHwgdGhpcy5mb3JtQ29udGFpbmVycyA9PT0gbnVsbCkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0T2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0czxGaWVsZEdyb3VwVHlwZSB8IENvbGxlY3Rpb25GYWNldCB8IFJlZmVyZW5jZUZhY2V0Pihcblx0XHRcdFx0dGhpcy5tZXRhUGF0aCxcblx0XHRcdFx0dGhpcy5jb250ZXh0UGF0aFxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG1FeHRyYVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0bGV0IG9GYWNldERlZmluaXRpb24gPSBvQ29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRcdFx0bGV0IGhhc0ZpZWxkR3JvdXAgPSBmYWxzZTtcblx0XHRcdGlmIChvRmFjZXREZWZpbml0aW9uICYmIG9GYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkZpZWxkR3JvdXBUeXBlKSB7XG5cdFx0XHRcdC8vIFdyYXAgdGhlIGZhY2V0IGluIGEgZmFrZSBGYWNldCBhbm5vdGF0aW9uXG5cdFx0XHRcdGhhc0ZpZWxkR3JvdXAgPSB0cnVlO1xuXHRcdFx0XHRvRmFjZXREZWZpbml0aW9uID0ge1xuXHRcdFx0XHRcdCRUeXBlOiBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCxcblx0XHRcdFx0XHRMYWJlbDogb0ZhY2V0RGVmaW5pdGlvbi5MYWJlbCxcblx0XHRcdFx0XHRUYXJnZXQ6IHtcblx0XHRcdFx0XHRcdCR0YXJnZXQ6IG9GYWNldERlZmluaXRpb24sXG5cdFx0XHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IG9GYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdFx0cGF0aDogXCJcIixcblx0XHRcdFx0XHRcdHRlcm06IFwiXCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsXG5cdFx0XHRcdFx0XHR2YWx1ZTogZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChvQ29udGV4dE9iamVjdFBhdGgpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uczoge30sXG5cdFx0XHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBvRmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0XHR9IGFzIHVua25vd24gYXMgUmVmZXJlbmNlRmFjZXQ7XG5cdFx0XHRcdG1FeHRyYVNldHRpbmdzW29GYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlXSA9IHsgZmllbGRzOiB0aGlzLmZvcm1FbGVtZW50cyB9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBvQ29udmVydGVyQ29udGV4dCA9IHRoaXMuZ2V0Q29udmVydGVyQ29udGV4dChcblx0XHRcdFx0b0NvbnRleHRPYmplY3RQYXRoLFxuXHRcdFx0XHQvKnRoaXMuY29udGV4dFBhdGgqLyB1bmRlZmluZWQsXG5cdFx0XHRcdG1TZXR0aW5ncyxcblx0XHRcdFx0bUV4dHJhU2V0dGluZ3Ncblx0XHRcdCk7XG5cdFx0XHRjb25zdCBvRm9ybURlZmluaXRpb24gPSBjcmVhdGVGb3JtRGVmaW5pdGlvbihvRmFjZXREZWZpbml0aW9uLCB0aGlzLmlzVmlzaWJsZSwgb0NvbnZlcnRlckNvbnRleHQpO1xuXHRcdFx0aWYgKGhhc0ZpZWxkR3JvdXApIHtcblx0XHRcdFx0b0Zvcm1EZWZpbml0aW9uLmZvcm1Db250YWluZXJzWzBdLmFubm90YXRpb25QYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmZvcm1Db250YWluZXJzID0gb0Zvcm1EZWZpbml0aW9uLmZvcm1Db250YWluZXJzO1xuXHRcdFx0dGhpcy51c2VGb3JtQ29udGFpbmVyTGFiZWxzID0gb0Zvcm1EZWZpbml0aW9uLnVzZUZvcm1Db250YWluZXJMYWJlbHM7XG5cdFx0XHR0aGlzLmZhY2V0VHlwZSA9IG9GYWNldERlZmluaXRpb24gJiYgKG9GYWNldERlZmluaXRpb24uJFR5cGUgYXMgc3RyaW5nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5mYWNldFR5cGUgPSB0aGlzLm1ldGFQYXRoLmdldE9iamVjdCgpPy4kVHlwZTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuaXNQdWJsaWMpIHtcblx0XHRcdHRoaXMuX2FwaUlkID0gdGhpcy5jcmVhdGVJZChcIkZvcm1cIikhO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gdGhpcy5pZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fYXBpSWQgPSB0aGlzLmlkO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gYCR7dGhpcy5pZH0tY29udGVudGA7XG5cdFx0fVxuXHRcdC8vIGlmIGRpc3BsYXlNb2RlID09PSB0cnVlIC0+IF9lZGl0YWJsZSA9IGZhbHNlXG5cdFx0Ly8gaWYgZGlzcGxheU1vZGUgPT09IGZhbHNlIC0+IF9lZGl0YWJsZSA9IHRydWVcblx0XHQvLyAgPT4gaWYgZGlzcGxheU1vZGUgPT09IHtteUJpbmRpbmdWYWx1ZX0gLT4gX2VkaXRhYmxlID0ge215QmluZGluZ1ZhbHVlfSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVxuXHRcdC8vIGlmIERpc3BsYXlNb2RlID09PSB1bmRlZmluZWQgLT4gX2VkaXRhYmxlID0ge3VpPi9pc0VkaXRhYmxlfVxuXHRcdGlmICh0aGlzLmRpc3BsYXlNb2RlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuX2VkaXRhYmxlID0gY29tcGlsZUV4cHJlc3Npb24oaWZFbHNlKGVxdWFsKHJlc29sdmVCaW5kaW5nU3RyaW5nKHRoaXMuZGlzcGxheU1vZGUsIFwiYm9vbGVhblwiKSwgZmFsc2UpLCB0cnVlLCBmYWxzZSkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9lZGl0YWJsZSA9IGNvbXBpbGVFeHByZXNzaW9uKFVJLklzRWRpdGFibGUpO1xuXHRcdH1cblx0fVxuXG5cdGdldERhdGFGaWVsZENvbGxlY3Rpb24oZm9ybUNvbnRhaW5lcjogRm9ybUNvbnRhaW5lciwgZmFjZXRDb250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHtcblx0XHRjb25zdCBmYWNldCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhmYWNldENvbnRleHQpLnRhcmdldE9iamVjdCBhcyBGYWNldFR5cGVzO1xuXHRcdGxldCBuYXZpZ2F0aW9uUGF0aDtcblx0XHRsZXQgaWRQYXJ0O1xuXHRcdGlmIChmYWNldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQpIHtcblx0XHRcdG5hdmlnYXRpb25QYXRoID0gQW5ub3RhdGlvbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChmYWNldC5UYXJnZXQudmFsdWUpO1xuXHRcdFx0aWRQYXJ0ID0gZmFjZXQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNvbnRleHRQYXRoUGF0aCA9IHRoaXMuY29udGV4dFBhdGguZ2V0UGF0aCgpO1xuXHRcdFx0bGV0IGZhY2V0UGF0aCA9IGZhY2V0Q29udGV4dC5nZXRQYXRoKCk7XG5cdFx0XHRpZiAoZmFjZXRQYXRoLnN0YXJ0c1dpdGgoY29udGV4dFBhdGhQYXRoKSkge1xuXHRcdFx0XHRmYWNldFBhdGggPSBmYWNldFBhdGguc3Vic3RyaW5nKGNvbnRleHRQYXRoUGF0aC5sZW5ndGgpO1xuXHRcdFx0XHRpZiAoZmFjZXRQYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpIHtcblx0XHRcdFx0XHRmYWNldFBhdGggPSBmYWNldFBhdGguc2xpY2UoMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG5hdmlnYXRpb25QYXRoID0gQW5ub3RhdGlvbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChmYWNldFBhdGgpO1xuXHRcdFx0aWRQYXJ0ID0gZmFjZXRQYXRoO1xuXHRcdH1cblx0XHRjb25zdCB0aXRsZUxldmVsID0gRm9ybUhlbHBlci5nZXRGb3JtQ29udGFpbmVyVGl0bGVMZXZlbCh0aGlzLnRpdGxlLCB0aGlzLnRpdGxlTGV2ZWwpO1xuXHRcdGNvbnN0IHRpdGxlID0gdGhpcy51c2VGb3JtQ29udGFpbmVyTGFiZWxzICYmIGZhY2V0LkxhYmVsID8gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGZhY2V0LkxhYmVsKSA6IFwiXCI7XG5cblx0XHRjb25zdCBpZCA9IHRoaXMuaWQgPyBnZXRGb3JtQ29udGFpbmVySUQoaWRQYXJ0KSA6IHVuZGVmaW5lZDtcblxuXHRcdHJldHVybiB4bWxgXG5cdFx0XHRcdFx0PG1hY3JvOkZvcm1Db250YWluZXJcblx0XHRcdFx0XHR4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuXHRcdFx0XHRcdCR7dGhpcy5hdHRyKFwiaWRcIiwgaWQpfVxuXHRcdFx0XHRcdHRpdGxlPVwiJHt0aXRsZX1cIlxuXHRcdFx0XHRcdHRpdGxlTGV2ZWw9XCIke3RpdGxlTGV2ZWx9XCJcblx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIiR7bmF2aWdhdGlvblBhdGggPyBmb3JtQ29udGFpbmVyLmVudGl0eVNldCA6IHRoaXMuY29udGV4dFBhdGh9XCJcblx0XHRcdFx0XHRtZXRhUGF0aD1cIiR7ZmFjZXRDb250ZXh0fVwiXG5cdFx0XHRcdFx0ZGF0YUZpZWxkQ29sbGVjdGlvbj1cIiR7Zm9ybUNvbnRhaW5lci5mb3JtRWxlbWVudHN9XCJcblx0XHRcdFx0XHRuYXZpZ2F0aW9uUGF0aD1cIiR7bmF2aWdhdGlvblBhdGh9XCJcblx0XHRcdFx0XHR2aXNpYmxlPVwiJHtmb3JtQ29udGFpbmVyLmlzVmlzaWJsZX1cIlxuXHRcdFx0XHRcdGRpc3BsYXlNb2RlPVwiJHt0aGlzLmRpc3BsYXlNb2RlfVwiXG5cdFx0XHRcdFx0b25DaGFuZ2U9XCIke3RoaXMub25DaGFuZ2V9XCJcblx0XHRcdFx0XHRhY3Rpb25zPVwiJHtmb3JtQ29udGFpbmVyLmFjdGlvbnN9XCJcblx0XHRcdFx0XHR1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcz1cIiR7Zm9ybUNvbnRhaW5lci51c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlc31cIlxuXHRcdFx0XHRcdGhhc1VpSGlkZGVuQW5ub3RhdGlvbj1cIiR7Zm9ybUNvbnRhaW5lci5hbm5vdGF0aW9uSGlkZGVufVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0PG1hY3JvOmZvcm1FbGVtZW50cz5cblx0XHRcdFx0XHQ8c2xvdCBuYW1lPVwiZm9ybUVsZW1lbnRzXCIgLz5cblx0XHRcdFx0PC9tYWNybzpmb3JtRWxlbWVudHM+XG5cdFx0XHQ8L21hY3JvOkZvcm1Db250YWluZXI+YDtcblx0fVxuXG5cdGdldEZvcm1Db250YWluZXJzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcblx0XHRpZiAodGhpcy5mb3JtQ29udGFpbmVycyEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9XG5cdFx0aWYgKHRoaXMuZmFjZXRUeXBlPy5pbmNsdWRlcyhcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbGxlY3Rpb25GYWNldFwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZm9ybUNvbnRhaW5lcnMhLm1hcCgoZm9ybUNvbnRhaW5lciwgZm9ybUNvbnRhaW5lcklkeCkgPT4ge1xuXHRcdFx0XHRpZiAoZm9ybUNvbnRhaW5lci5pc1Zpc2libGUpIHtcblx0XHRcdFx0XHRjb25zdCBmYWNldENvbnRleHQgPSB0aGlzLmNvbnRleHRQYXRoLmdldE1vZGVsKCkuY3JlYXRlQmluZGluZ0NvbnRleHQoZm9ybUNvbnRhaW5lci5hbm5vdGF0aW9uUGF0aCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0XHRcdFx0Y29uc3QgZmFjZXQgPSBmYWNldENvbnRleHQuZ2V0T2JqZWN0KCk7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0ZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0ICYmXG5cdFx0XHRcdFx0XHRGb3JtSGVscGVyLmlzUmVmZXJlbmNlRmFjZXRQYXJ0T2ZQcmV2aWV3KGZhY2V0LCB0aGlzLnBhcnRPZlByZXZpZXcpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRpZiAoZmFjZXQuVGFyZ2V0LiRBbm5vdGF0aW9uUGF0aC4kVHlwZSA9PT0gQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5BZGRyZXNzVHlwZSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4geG1sYDx0ZW1wbGF0ZTp3aXRoIHBhdGg9XCJmb3JtQ29udGFpbmVycz4ke2Zvcm1Db250YWluZXJJZHh9XCIgdmFyPVwiZm9ybUNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZTp3aXRoIHBhdGg9XCJmb3JtQ29udGFpbmVycz4ke2Zvcm1Db250YWluZXJJZHh9L2Fubm90YXRpb25QYXRoXCIgdmFyPVwiZmFjZXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxjb3JlOkZyYWdtZW50IGZyYWdtZW50TmFtZT1cInNhcC5mZS5tYWNyb3MuZm9ybS5BZGRyZXNzU2VjdGlvblwiIHR5cGU9XCJYTUxcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6d2l0aD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZTp3aXRoPmA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXREYXRhRmllbGRDb2xsZWN0aW9uKGZvcm1Db250YWluZXIsIGZhY2V0Q29udGV4dCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBcIlwiO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmZhY2V0VHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWZlcmVuY2VGYWNldFwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5mb3JtQ29udGFpbmVycyEubWFwKChmb3JtQ29udGFpbmVyKSA9PiB7XG5cdFx0XHRcdGlmIChmb3JtQ29udGFpbmVyLmlzVmlzaWJsZSkge1xuXHRcdFx0XHRcdGNvbnN0IGZhY2V0Q29udGV4dCA9IHRoaXMuY29udGV4dFBhdGguZ2V0TW9kZWwoKS5jcmVhdGVCaW5kaW5nQ29udGV4dChmb3JtQ29udGFpbmVyLmFubm90YXRpb25QYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXREYXRhRmllbGRDb2xsZWN0aW9uKGZvcm1Db250YWluZXIsIGZhY2V0Q29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIGEgdGV4dGFyZWEgaXMgYWxvbmUgaW4gYSBmb3JtXG5cdCAqL1xuXHRjaGVja0lmVGV4dEFyZWFJc0Fsb25lKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLmZvcm1Db250YWluZXJzIS5sZW5ndGggPT09IDEpIHtcblx0XHRcdGlmICh0aGlzLmZvcm1Db250YWluZXJzIVswXS5mb3JtRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdGNvbnN0IGZhY2V0ID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKFxuXHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGguZ2V0TW9kZWwoKS5jcmVhdGVCaW5kaW5nQ29udGV4dCh0aGlzLmZvcm1Db250YWluZXJzIVswXS5hbm5vdGF0aW9uUGF0aCwgdGhpcy5jb250ZXh0UGF0aClcblx0XHRcdFx0KS50YXJnZXRPYmplY3QgYXMgRmllbGRHcm91cFR5cGUgfCBSZWZlcmVuY2VGYWNldDtcblx0XHRcdFx0bGV0IGZpZWxkR3JvdXA6IEZpZWxkR3JvdXBUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRsZXQgaWRlbnRpZmljYXRpb246IElkZW50aWZpY2F0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdFx0XHQvLyBUaGlzIGlzIG9ubHkgZm9yIG1hY3Jvczpmb3JtIHdpdGggYSBGaWVsZEdyb3VwIHRoYXQgY29udGFpbnMgb25seSBhIFRleHRBcmVhXG5cdFx0XHRcdGlmIChmYWNldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwVHlwZVwiKSB7XG5cdFx0XHRcdFx0ZmllbGRHcm91cCA9IGZhY2V0O1xuXHRcdFx0XHR9IGVsc2UgaWYgKGhhc0ZpZWxkR3JvdXBUYXJnZXQoZmFjZXQpKSB7XG5cdFx0XHRcdFx0ZmllbGRHcm91cCA9IGZhY2V0Py5UYXJnZXQ/LiR0YXJnZXQgYXMgRmllbGRHcm91cFR5cGU7XG5cdFx0XHRcdH0gZWxzZSBpZiAoaGFzSWRlbnRpZmljYXRpb25UYXJnZXQoZmFjZXQpKSB7XG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb24gPSBmYWNldD8uVGFyZ2V0Py4kdGFyZ2V0IGFzIElkZW50aWZpY2F0aW9uO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGZpZWxkR3JvdXA/LkRhdGEubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0cmV0dXJuIChmaWVsZEdyb3VwLkRhdGFbMF0gYXMgRGF0YUZpZWxkKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uTXVsdGlMaW5lVGV4dD8udmFsdWVPZigpID09PSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGlkZW50aWZpY2F0aW9uPy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gKGlkZW50aWZpY2F0aW9uWzBdIGFzIERhdGFGaWVsZCk/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIHRoZSBwcm9wZXIgbGF5b3V0IGluZm9ybWF0aW9uIGJhc2VkIG9uIHRoZSBgbGF5b3V0YCBwcm9wZXJ0eSBkZWZpbmVkIGV4dGVybmFsbHkuXG5cdCAqIEBwYXJhbSBpc1RleHRBcmVhQWxvbmUgV2hldGhlciB0aGUgc2VjdGlvbiBjb250YWlucyBhIGxvbmVseSBUZXh0QXJlYSBpbnNpZGVcblx0ICogQHJldHVybnMgVGhlIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgdGhlIHhtbC5cblx0ICovXG5cdGdldExheW91dEluZm9ybWF0aW9uKGlzVGV4dEFyZWFBbG9uZTogYm9vbGVhbik6IHN0cmluZyB7XG5cdFx0c3dpdGNoICh0aGlzLmxheW91dC50eXBlKSB7XG5cdFx0XHRjYXNlIFwiUmVzcG9uc2l2ZUdyaWRMYXlvdXRcIjpcblx0XHRcdFx0cmV0dXJuIHhtbGA8ZjpSZXNwb25zaXZlR3JpZExheW91dCBhZGp1c3RMYWJlbFNwYW49XCIke3RoaXMubGF5b3V0LmFkanVzdExhYmVsU3Bhbn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha3BvaW50TD1cIiR7dGhpcy5sYXlvdXQuYnJlYWtwb2ludEx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludE09XCIke3RoaXMubGF5b3V0LmJyZWFrcG9pbnRNfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnRYTD1cIiR7dGhpcy5sYXlvdXQuYnJlYWtwb2ludFhMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNMPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc0x9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sdW1uc009XCIke2lzVGV4dEFyZWFBbG9uZSA/IDEgOiB0aGlzLmxheW91dC5jb2x1bW5zTX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zWEw9XCIke2lzVGV4dEFyZWFBbG9uZSA/IDEgOiB0aGlzLmxheW91dC5jb2x1bW5zWEx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW1wdHlTcGFuTD1cIiR7dGhpcy5sYXlvdXQuZW1wdHlTcGFuTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbXB0eVNwYW5NPVwiJHt0aGlzLmxheW91dC5lbXB0eVNwYW5NfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVtcHR5U3BhblM9XCIke3RoaXMubGF5b3V0LmVtcHR5U3BhblN9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW1wdHlTcGFuWEw9XCIke3RoaXMubGF5b3V0LmVtcHR5U3BhblhMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsU3Bhbkw9XCIke3RoaXMubGF5b3V0LmxhYmVsU3Bhbkx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWxTcGFuTT1cIiR7dGhpcy5sYXlvdXQubGFiZWxTcGFuTX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbFNwYW5TPVwiJHt0aGlzLmxheW91dC5sYWJlbFNwYW5TfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsU3BhblhMPVwiJHt0aGlzLmxheW91dC5sYWJlbFNwYW5YTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaW5nbGVDb250YWluZXJGdWxsU2l6ZT1cIiR7dGhpcy5sYXlvdXQuc2luZ2xlQ29udGFpbmVyRnVsbFNpemV9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZERlc2lnbj1cIiR7dGhpcy5sYXlvdXQuYmFja2dyb3VuZERlc2lnbn1cIiAvPmA7XG5cdFx0XHRjYXNlIFwiQ29sdW1uTGF5b3V0XCI6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4geG1sYDxmOkNvbHVtbkxheW91dFxuXHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNNPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc019XCJcblx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zTD1cIiR7aXNUZXh0QXJlYUFsb25lID8gMSA6IHRoaXMubGF5b3V0LmNvbHVtbnNMfVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29sdW1uc1hMPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc1hMfVwiXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWxDZWxsc0xhcmdlPVwiJHt0aGlzLmxheW91dC5sYWJlbENlbGxzTGFyZ2V9XCJcblx0XHRcdFx0XHRcdFx0XHRlbXB0eUNlbGxzTGFyZ2U9XCIke3RoaXMubGF5b3V0LmVtcHR5Q2VsbHNMYXJnZX1cIlxuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmREZXNpZ249XCIke3RoaXMubGF5b3V0LmJhY2tncm91bmREZXNpZ259XCIgLz5gO1xuXHRcdH1cblx0fVxuXG5cdGdldFRlbXBsYXRlKCk6IHN0cmluZyB7XG5cdFx0Y29uc3Qgb25DaGFuZ2VTdHIgPSAodGhpcy5vbkNoYW5nZSAmJiB0aGlzLm9uQ2hhbmdlLnJlcGxhY2UoXCJ7XCIsIFwiXFxcXHtcIikucmVwbGFjZShcIn1cIiwgXCJcXFxcfVwiKSkgfHwgXCJcIjtcblx0XHRjb25zdCBtZXRhUGF0aFBhdGggPSB0aGlzLm1ldGFQYXRoLmdldFBhdGgoKTtcblx0XHRjb25zdCBjb250ZXh0UGF0aFBhdGggPSB0aGlzLmNvbnRleHRQYXRoLmdldFBhdGgoKTtcblx0XHRjb25zdCBjb250ZXh0T2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLm1ldGFQYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXQgPVxuXHRcdFx0Y29udGV4dE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uPy50YXJnZXRFbnRpdHlTZXQ/Ll90eXBlID09PSBcIkVudGl0eVNldFwiID8gXCJ7Y29udGV4dFBhdGg+QHNhcHVpLm5hbWV9XCIgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgaXNUZXh0QXJlYUFsb25lID0gdGhpcy5jaGVja0lmVGV4dEFyZWFJc0Fsb25lKCk7XG5cblx0XHRpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHhtbGA8bWFjcm86Rm9ybUFQSSB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3MuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6bWFjcm9kYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiXG5cdFx0XHRcdFx0eG1sbnM6Zj1cInNhcC51aS5sYXlvdXQuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6Zmw9XCJzYXAudWkuZmxcIlxuXHRcdFx0XHRcdHhtbG5zOmR0PVwic2FwLnVpLmR0XCJcblx0XHRcdFx0XHR4bWxuczpjb3JlQ29udHJvbHM9XCJzYXAuZmUuY29yZS5jb250cm9sc1wiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2FwaUlkfVwiXG5cdFx0XHRcdFx0bWV0YVBhdGg9XCIke21ldGFQYXRoUGF0aH1cIlxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPVwiJHtjb250ZXh0UGF0aFBhdGh9XCI+XG5cdFx0XHRcdDxmOkZvcm1cblx0XHRcdFx0XHRmbDpkZWxlZ2F0ZT0ne1xuXHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm1EZWxlZ2F0ZVwiLFxuXHRcdFx0XHRcdFx0XCJkZWxlZ2F0ZVR5cGVcIjogXCJjb21wbGV0ZVwiXG5cdFx0XHRcdFx0fSdcblx0XHRcdFx0XHRkdDpkZXNpZ250aW1lPVwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm0uZGVzaWdudGltZVwiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2NvbnRlbnRJZH1cIlxuXHRcdFx0XHRcdGVkaXRhYmxlPVwiJHt0aGlzLl9lZGl0YWJsZX1cIlxuXHRcdFx0XHRcdG1hY3JvZGF0YTplbnRpdHlTZXQ9XCIke2VudGl0eVNldH1cIlxuXHRcdFx0XHRcdHZpc2libGU9XCIke3RoaXMuaXNWaXNpYmxlfVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJzYXBVeEFQT2JqZWN0UGFnZVN1YlNlY3Rpb25BbGlnbkNvbnRlbnRcIlxuXHRcdFx0XHRcdG1hY3JvZGF0YTpuYXZpZ2F0aW9uUGF0aD1cIiR7Y29udGV4dFBhdGhQYXRofVwiXG5cdFx0XHRcdFx0bWFjcm9kYXRhOm9uQ2hhbmdlPVwiJHtvbkNoYW5nZVN0cn1cIlxuXHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PVwiJHt0aGlzLmFyaWFMYWJlbGxlZEJ5fVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQke3RoaXMuYWRkQ29uZGl0aW9uYWxseShcblx0XHRcdFx0XHRcdHRoaXMudGl0bGUgIT09IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdHhtbGA8Zjp0aXRsZT5cblx0XHRcdFx0XHRcdFx0PGNvcmU6VGl0bGUgbGV2ZWw9XCIke3RoaXMudGl0bGVMZXZlbH1cIiB0ZXh0PVwiJHt0aGlzLnRpdGxlfVwiIC8+XG5cdFx0XHRcdFx0XHQ8L2Y6dGl0bGU+YFxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PGY6bGF5b3V0PlxuXHRcdFx0XHRcdCR7dGhpcy5nZXRMYXlvdXRJbmZvcm1hdGlvbihpc1RleHRBcmVhQWxvbmUpfVxuXG5cdFx0XHRcdFx0PC9mOmxheW91dD5cblx0XHRcdFx0XHQ8Zjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHRcdCR7dGhpcy5nZXRGb3JtQ29udGFpbmVycygpfVxuXHRcdFx0XHRcdDwvZjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHQ8ZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHRcdFx0PGNvcmVDb250cm9sczpIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSAvPlxuXHRcdFx0XHRcdDwvZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHQ8L2Y6Rm9ybT5cblx0XHRcdDwvbWFjcm86Rm9ybUFQST5gO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVpBLElBbUJxQkEsU0FBUyxJQUFBQyxJQUFBLEdBTjdCQyxtQkFBbUIsQ0FBQztJQUNwQkMsSUFBSSxFQUFFLE1BQU07SUFDWkMsU0FBUyxFQUFFLHdCQUF3QjtJQUNuQ0MsZUFBZSxFQUFFLGVBQWU7SUFDaENDLFdBQVcsRUFBRSxDQUFDLDRCQUE0QjtFQUMzQyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUtBQyxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFLElBQUk7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FRbEVKLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCRSxRQUFRLEVBQUUsSUFBSTtJQUNkRCxRQUFRLEVBQUUsSUFBSTtJQUNkRyxhQUFhLEVBQUUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFlBQVk7RUFDN0UsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FPRE4sY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxzQkFBc0I7SUFDNUJDLFFBQVEsRUFBRSxJQUFJO0lBQ2RDLFFBQVEsRUFBRSxJQUFJO0lBQ2RJLHVCQUF1QixFQUFFLENBQ3hCLDJDQUEyQyxFQUMzQyw0Q0FBNEMsRUFDNUMsMkNBQTJDLENBQzNDO0lBQ0RGLGFBQWEsRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLG9CQUFvQjtFQUM3RSxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1EUixjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVEsQ0FBQyxDQUFDLEVBQUFRLEtBQUEsR0FNakNULGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBVSxDQUFDLENBQUMsRUFBQVMsS0FBQSxHQU1uQ1YsY0FBYyxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBVSxLQUFBLEdBT25DWCxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFVLEtBQUEsR0FNbERaLGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUUsd0JBQXdCO0lBQUVDLFFBQVEsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBVyxNQUFBLEdBTWxFYixjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFhLE1BQUEsR0FHbENkLGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQWMsTUFBQSxHQU1sQ2YsY0FBYyxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBZSxNQUFBLEdBS2xDQyxVQUFVLENBQUMsQ0FBQyxFQUFBQyxNQUFBLEdBR1pDLGdCQUFnQixDQUFDO0lBQUVsQixJQUFJLEVBQUUsZ0NBQWdDO0lBQUVDLFFBQVEsRUFBRSxJQUFJO0lBQUVrQixJQUFJLEVBQUUsY0FBYztJQUFFQyxTQUFTLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsTUFBQSxHQVFuSHRCLGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQVQsSUFBQSxDQUFBOEIsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxxQkFBQTtJQUduRDs7SUFTQSxTQUFBakMsVUFBWWtDLEtBQThCLEVBQUVDLGFBQXNCLEVBQUVDLFNBQW9DLEVBQUU7TUFBQSxJQUFBQyxLQUFBO01BQ3pHQSxLQUFBLEdBQUFKLHFCQUFBLENBQUFLLElBQUEsT0FBTUosS0FBSyxFQUFFQyxhQUFhLEVBQUVDLFNBQVMsQ0FBQztNQTVHdkM7QUFDRDtBQUNBO01BRkNHLDBCQUFBLENBQUFGLEtBQUEsUUFBQUcsV0FBQSxFQUFBSCxLQUFBO01BTUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtNQUpDRSwwQkFBQSxDQUFBRixLQUFBLGlCQUFBSSxZQUFBLEVBQUFKLEtBQUE7TUFhQTtBQUNEO0FBQ0E7QUFDQTtNQUhDRSwwQkFBQSxDQUFBRixLQUFBLGNBQUFLLFlBQUEsRUFBQUwsS0FBQTtNQWlCQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSxvQkFBQU0sWUFBQSxFQUFBTixLQUFBO01BTUE7QUFDRDtBQUNBO01BRkNFLDBCQUFBLENBQUFGLEtBQUEsNEJBQUFPLFlBQUEsRUFBQVAsS0FBQTtNQU1BO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLG1CQUFBUSxZQUFBLEVBQUFSLEtBQUE7TUFNQTtBQUNEO0FBQ0E7QUFDQTtNQUhDRSwwQkFBQSxDQUFBRixLQUFBLFdBQUFTLFlBQUEsRUFBQVQsS0FBQTtNQU9BO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLGdCQUFBVSxZQUFBLEVBQUFWLEtBQUE7TUFNQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSxvQkFBQVcsWUFBQSxFQUFBWCxLQUFBO01BQUFFLDBCQUFBLENBQUFGLEtBQUEsaUJBQUFZLGFBQUEsRUFBQVosS0FBQTtNQVNBO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLGVBQUFhLGFBQUEsRUFBQWIsS0FBQTtNQUtBO01BRUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxjQUFBYyxhQUFBLEVBQUFkLEtBQUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxrQkFBQWUsYUFBQSxFQUFBZixLQUFBO01BT0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtNQUpDRSwwQkFBQSxDQUFBRixLQUFBLFlBQUFnQixhQUFBLEVBQUFoQixLQUFBO01BbUJDLElBQUlBLEtBQUEsQ0FBS2lCLFFBQVEsSUFBSWpCLEtBQUEsQ0FBS2tCLFdBQVcsS0FBS2xCLEtBQUEsQ0FBS21CLGNBQWMsS0FBS0MsU0FBUyxJQUFJcEIsS0FBQSxDQUFLbUIsY0FBYyxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQzdHLE1BQU1FLGtCQUFrQixHQUFHQywyQkFBMkIsQ0FDckR0QixLQUFBLENBQUtpQixRQUFRLEVBQ2JqQixLQUFBLENBQUtrQixXQUNOLENBQUM7UUFDRCxNQUFNSyxjQUF1QyxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJQyxnQkFBZ0IsR0FBR0gsa0JBQWtCLENBQUNJLFlBQVk7UUFDdEQsSUFBSUMsYUFBYSxHQUFHLEtBQUs7UUFDekIsSUFBSUYsZ0JBQWdCLElBQUlBLGdCQUFnQixDQUFDRyxLQUFLLGdEQUFxQyxFQUFFO1VBQ3BGO1VBQ0FELGFBQWEsR0FBRyxJQUFJO1VBQ3BCRixnQkFBZ0IsR0FBRztZQUNsQkcsS0FBSyw2Q0FBa0M7WUFDdkNDLEtBQUssRUFBRUosZ0JBQWdCLENBQUNJLEtBQUs7WUFDN0JDLE1BQU0sRUFBRTtjQUNQQyxPQUFPLEVBQUVOLGdCQUFnQjtjQUN6Qk8sa0JBQWtCLEVBQUVQLGdCQUFnQixDQUFDTyxrQkFBa0I7Y0FDdkRDLElBQUksRUFBRSxFQUFFO2NBQ1JDLElBQUksRUFBRSxFQUFFO2NBQ1I3RCxJQUFJLEVBQUUsZ0JBQWdCO2NBQ3RCOEQsS0FBSyxFQUFFQyxrQ0FBa0MsQ0FBQ2Qsa0JBQWtCO1lBQzdELENBQUM7WUFDRGUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNmTCxrQkFBa0IsRUFBRVAsZ0JBQWdCLENBQUNPO1VBQ3RDLENBQThCO1VBQzlCUixjQUFjLENBQUNDLGdCQUFnQixDQUFDSyxNQUFNLENBQUNLLEtBQUssQ0FBQyxHQUFHO1lBQUVHLE1BQU0sRUFBRXJDLEtBQUEsQ0FBS3NDO1VBQWEsQ0FBQztRQUM5RTtRQUVBLE1BQU1DLGlCQUFpQixHQUFHdkMsS0FBQSxDQUFLd0MsbUJBQW1CLENBQ2pEbkIsa0JBQWtCLEVBQ2xCLG9CQUFxQkQsU0FBUyxFQUM5QnJCLFNBQVMsRUFDVHdCLGNBQ0QsQ0FBQztRQUNELE1BQU1rQixlQUFlLEdBQUdDLG9CQUFvQixDQUFDbEIsZ0JBQWdCLEVBQUV4QixLQUFBLENBQUsyQyxTQUFTLEVBQUVKLGlCQUFpQixDQUFDO1FBQ2pHLElBQUliLGFBQWEsRUFBRTtVQUNsQmUsZUFBZSxDQUFDdEIsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDeUIsY0FBYyxHQUFHNUMsS0FBQSxDQUFLaUIsUUFBUSxDQUFDNEIsT0FBTyxDQUFDLENBQUM7UUFDM0U7UUFDQTdDLEtBQUEsQ0FBS21CLGNBQWMsR0FBR3NCLGVBQWUsQ0FBQ3RCLGNBQWM7UUFDcERuQixLQUFBLENBQUs4QyxzQkFBc0IsR0FBR0wsZUFBZSxDQUFDSyxzQkFBc0I7UUFDcEU5QyxLQUFBLENBQUsrQyxTQUFTLEdBQUd2QixnQkFBZ0IsSUFBS0EsZ0JBQWdCLENBQUNHLEtBQWdCO01BQ3hFLENBQUMsTUFBTTtRQUNOM0IsS0FBQSxDQUFLK0MsU0FBUyxHQUFHL0MsS0FBQSxDQUFLaUIsUUFBUSxDQUFDK0IsU0FBUyxDQUFDLENBQUMsRUFBRXJCLEtBQUs7TUFDbEQ7TUFFQSxJQUFJLENBQUMzQixLQUFBLENBQUszQixRQUFRLEVBQUU7UUFDbkIyQixLQUFBLENBQUtpRCxNQUFNLEdBQUdqRCxLQUFBLENBQUtrRCxRQUFRLENBQUMsTUFBTSxDQUFFO1FBQ3BDbEQsS0FBQSxDQUFLbUQsVUFBVSxHQUFHbkQsS0FBQSxDQUFLb0QsRUFBRTtNQUMxQixDQUFDLE1BQU07UUFDTnBELEtBQUEsQ0FBS2lELE1BQU0sR0FBR2pELEtBQUEsQ0FBS29ELEVBQUU7UUFDckJwRCxLQUFBLENBQUttRCxVQUFVLEdBQUcsR0FBR25ELEtBQUEsQ0FBS29ELEVBQUUsVUFBVTtNQUN2QztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0EsSUFBSXBELEtBQUEsQ0FBS3FELFdBQVcsS0FBS2pDLFNBQVMsRUFBRTtRQUNuQ3BCLEtBQUEsQ0FBS3NELFNBQVMsR0FBR0MsaUJBQWlCLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDQyxvQkFBb0IsQ0FBQzFELEtBQUEsQ0FBS3FELFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7TUFDekgsQ0FBQyxNQUFNO1FBQ05yRCxLQUFBLENBQUtzRCxTQUFTLEdBQUdDLGlCQUFpQixDQUFDSSxFQUFFLENBQUNDLFVBQVUsQ0FBQztNQUNsRDtNQUFDLE9BQUE1RCxLQUFBO0lBQ0Y7SUFBQzZELFFBQUEsR0FBQWxHLFNBQUE7SUFBQW1HLGNBQUEsQ0FBQW5HLFNBQUEsRUFBQWlDLHFCQUFBO0lBQUEsSUFBQW1FLE1BQUEsR0FBQXBHLFNBQUEsQ0FBQXFHLFNBQUE7SUFBQUQsTUFBQSxDQUVERSxzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUFDQyxhQUE0QixFQUFFQyxZQUFxQixFQUFVO01BQ25GLE1BQU1DLEtBQUssR0FBRzlDLDJCQUEyQixDQUFDNkMsWUFBWSxDQUFDLENBQUMxQyxZQUEwQjtNQUNsRixJQUFJNEMsY0FBYztNQUNsQixJQUFJQyxNQUFNO01BQ1YsSUFBSUYsS0FBSyxDQUFDekMsS0FBSyxnREFBcUMsRUFBRTtRQUNyRDBDLGNBQWMsR0FBR0UsZ0JBQWdCLENBQUNDLGlCQUFpQixDQUFDSixLQUFLLENBQUN2QyxNQUFNLENBQUNLLEtBQUssQ0FBQztRQUN2RW9DLE1BQU0sR0FBR0YsS0FBSztNQUNmLENBQUMsTUFBTTtRQUNOLE1BQU1LLGVBQWUsR0FBRyxJQUFJLENBQUN2RCxXQUFXLENBQUMyQixPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJNkIsU0FBUyxHQUFHUCxZQUFZLENBQUN0QixPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJNkIsU0FBUyxDQUFDQyxVQUFVLENBQUNGLGVBQWUsQ0FBQyxFQUFFO1VBQzFDQyxTQUFTLEdBQUdBLFNBQVMsQ0FBQ0UsU0FBUyxDQUFDSCxlQUFlLENBQUNJLE1BQU0sQ0FBQztVQUN2RCxJQUFJSCxTQUFTLENBQUNJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDaENKLFNBQVMsR0FBR0EsU0FBUyxDQUFDSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1VBQy9CO1FBQ0Q7UUFDQVYsY0FBYyxHQUFHRSxnQkFBZ0IsQ0FBQ0MsaUJBQWlCLENBQUNFLFNBQVMsQ0FBQztRQUM5REosTUFBTSxHQUFHSSxTQUFTO01BQ25CO01BQ0EsTUFBTU0sVUFBVSxHQUFHQyxVQUFVLENBQUNDLDBCQUEwQixDQUFDLElBQUksQ0FBQ0MsS0FBSyxFQUFFLElBQUksQ0FBQ0gsVUFBVSxDQUFDO01BQ3JGLE1BQU1HLEtBQUssR0FBRyxJQUFJLENBQUNyQyxzQkFBc0IsSUFBSXNCLEtBQUssQ0FBQ3hDLEtBQUssR0FBR3dELDJCQUEyQixDQUFDaEIsS0FBSyxDQUFDeEMsS0FBSyxDQUFDLEdBQUcsRUFBRTtNQUV4RyxNQUFNd0IsRUFBRSxHQUFHLElBQUksQ0FBQ0EsRUFBRSxHQUFHaUMsa0JBQWtCLENBQUNmLE1BQU0sQ0FBQyxHQUFHbEQsU0FBUztNQUUzRCxPQUFPa0UsR0FBRztBQUNaO0FBQ0E7QUFDQSxPQUFPLElBQUksQ0FBQ0MsSUFBSSxDQUFDLElBQUksRUFBRW5DLEVBQUUsQ0FBQztBQUMxQixjQUFjK0IsS0FBSztBQUNuQixtQkFBbUJILFVBQVU7QUFDN0Isb0JBQW9CWCxjQUFjLEdBQUdILGFBQWEsQ0FBQ3NCLFNBQVMsR0FBRyxJQUFJLENBQUN0RSxXQUFXO0FBQy9FLGlCQUFpQmlELFlBQVk7QUFDN0IsNEJBQTRCRCxhQUFhLENBQUM1QixZQUFZO0FBQ3RELHVCQUF1QitCLGNBQWM7QUFDckMsZ0JBQWdCSCxhQUFhLENBQUN2QixTQUFTO0FBQ3ZDLG9CQUFvQixJQUFJLENBQUNVLFdBQVc7QUFDcEMsaUJBQWlCLElBQUksQ0FBQ29DLFFBQVE7QUFDOUIsZ0JBQWdCdkIsYUFBYSxDQUFDd0IsT0FBTztBQUNyQyxzQ0FBc0N4QixhQUFhLENBQUN5Qiw2QkFBNkI7QUFDakYsOEJBQThCekIsYUFBYSxDQUFDMEIsZ0JBQWdCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0lBQ3pCLENBQUM7SUFBQTdCLE1BQUEsQ0FFRDhCLGlCQUFpQixHQUFqQixTQUFBQSxpQkFBaUJBLENBQUEsRUFBc0I7TUFDdEMsSUFBSSxJQUFJLENBQUMxRSxjQUFjLENBQUUwRCxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sRUFBRTtNQUNWO01BQ0EsSUFBSSxJQUFJLENBQUM5QixTQUFTLEVBQUUrQyxRQUFRLENBQUMsNENBQTRDLENBQUMsRUFBRTtRQUMzRSxPQUFPLElBQUksQ0FBQzNFLGNBQWMsQ0FBRTRFLEdBQUcsQ0FBQyxDQUFDN0IsYUFBYSxFQUFFOEIsZ0JBQWdCLEtBQUs7VUFDcEUsSUFBSTlCLGFBQWEsQ0FBQ3ZCLFNBQVMsRUFBRTtZQUM1QixNQUFNd0IsWUFBWSxHQUFHLElBQUksQ0FBQ2pELFdBQVcsQ0FBQytFLFFBQVEsQ0FBQyxDQUFDLENBQUNDLG9CQUFvQixDQUFDaEMsYUFBYSxDQUFDdEIsY0FBYyxFQUFFLElBQUksQ0FBQzFCLFdBQVcsQ0FBQztZQUNySCxNQUFNa0QsS0FBSyxHQUFHRCxZQUFZLENBQUNuQixTQUFTLENBQUMsQ0FBQztZQUN0QyxJQUNDb0IsS0FBSyxDQUFDekMsS0FBSyxnREFBcUMsSUFDaERzRCxVQUFVLENBQUNrQiw2QkFBNkIsQ0FBQy9CLEtBQUssRUFBRSxJQUFJLENBQUNnQyxhQUFhLENBQUMsRUFDbEU7Y0FDRCxJQUFJaEMsS0FBSyxDQUFDdkMsTUFBTSxDQUFDd0UsZUFBZSxDQUFDMUUsS0FBSyx3REFBNkMsRUFBRTtnQkFDcEYsT0FBTzJELEdBQUcsdUNBQXVDVSxnQkFBZ0I7QUFDeEUsaURBQWlEQSxnQkFBZ0I7QUFDakU7QUFDQTtBQUNBLDJCQUEyQjtjQUNyQjtjQUNBLE9BQU8sSUFBSSxDQUFDL0Isc0JBQXNCLENBQUNDLGFBQWEsRUFBRUMsWUFBWSxDQUFDO1lBQ2hFO1VBQ0Q7VUFDQSxPQUFPLEVBQUU7UUFDVixDQUFDLENBQUM7TUFDSCxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUNwQixTQUFTLEtBQUssMkNBQTJDLEVBQUU7UUFDMUUsT0FBTyxJQUFJLENBQUM1QixjQUFjLENBQUU0RSxHQUFHLENBQUU3QixhQUFhLElBQUs7VUFDbEQsSUFBSUEsYUFBYSxDQUFDdkIsU0FBUyxFQUFFO1lBQzVCLE1BQU13QixZQUFZLEdBQUcsSUFBSSxDQUFDakQsV0FBVyxDQUFDK0UsUUFBUSxDQUFDLENBQUMsQ0FBQ0Msb0JBQW9CLENBQUNoQyxhQUFhLENBQUN0QixjQUFjLEVBQUUsSUFBSSxDQUFDMUIsV0FBVyxDQUFDO1lBQ3JILE9BQU8sSUFBSSxDQUFDK0Msc0JBQXNCLENBQUNDLGFBQWEsRUFBRUMsWUFBWSxDQUFDO1VBQ2hFLENBQUMsTUFBTTtZQUNOLE9BQU8sRUFBRTtVQUNWO1FBQ0QsQ0FBQyxDQUFDO01BQ0g7TUFDQSxPQUFPLEVBQUU7SUFDVjs7SUFFQTtBQUNEO0FBQ0EsT0FGQztJQUFBSixNQUFBLENBR0F1QyxzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUFBLEVBQVk7TUFDakMsSUFBSSxJQUFJLENBQUNuRixjQUFjLENBQUUwRCxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLElBQUksSUFBSSxDQUFDMUQsY0FBYyxDQUFFLENBQUMsQ0FBQyxDQUFDbUIsWUFBWSxDQUFDdUMsTUFBTSxLQUFLLENBQUMsRUFBRTtVQUN0RCxNQUFNVCxLQUFLLEdBQUc5QywyQkFBMkIsQ0FDeEMsSUFBSSxDQUFDSixXQUFXLENBQUMrRSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMvRSxjQUFjLENBQUUsQ0FBQyxDQUFDLENBQUN5QixjQUFjLEVBQUUsSUFBSSxDQUFDMUIsV0FBVyxDQUMxRyxDQUFDLENBQUNPLFlBQStDO1VBQ2pELElBQUk4RSxVQUFzQztVQUMxQyxJQUFJQyxjQUEwQztVQUM5QztVQUNBLElBQUlwQyxLQUFLLENBQUN6QyxLQUFLLEtBQUssMkNBQTJDLEVBQUU7WUFDaEU0RSxVQUFVLEdBQUduQyxLQUFLO1VBQ25CLENBQUMsTUFBTSxJQUFJcUMsbUJBQW1CLENBQUNyQyxLQUFLLENBQUMsRUFBRTtZQUN0Q21DLFVBQVUsR0FBR25DLEtBQUssRUFBRXZDLE1BQU0sRUFBRUMsT0FBeUI7VUFDdEQsQ0FBQyxNQUFNLElBQUk0RSx1QkFBdUIsQ0FBQ3RDLEtBQUssQ0FBQyxFQUFFO1lBQzFDb0MsY0FBYyxHQUFHcEMsS0FBSyxFQUFFdkMsTUFBTSxFQUFFQyxPQUF5QjtVQUMxRDtVQUVBLElBQUl5RSxVQUFVLEVBQUVJLElBQUksQ0FBQzlCLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEMsT0FBUTBCLFVBQVUsQ0FBQ0ksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFnQkMsS0FBSyxFQUFFOUUsT0FBTyxFQUFFTSxXQUFXLEVBQUV1QixFQUFFLEVBQUVrRCxhQUFhLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSTtVQUM3RztVQUVBLElBQUlOLGNBQWMsRUFBRTNCLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsT0FBUTJCLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBZ0JJLEtBQUssRUFBRTlFLE9BQU8sRUFBRU0sV0FBVyxFQUFFdUIsRUFBRSxFQUFFa0QsYUFBYSxFQUFFQyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUk7VUFDNUc7UUFDRDtNQUNEO01BQ0EsT0FBTyxLQUFLO0lBQ2I7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEvQyxNQUFBLENBS0FnRCxvQkFBb0IsR0FBcEIsU0FBQUEsb0JBQW9CQSxDQUFDQyxlQUF3QixFQUFVO01BQ3RELFFBQVEsSUFBSSxDQUFDQyxNQUFNLENBQUM3SSxJQUFJO1FBQ3ZCLEtBQUssc0JBQXNCO1VBQzFCLE9BQU9rSCxHQUFHLDRDQUE0QyxJQUFJLENBQUMyQixNQUFNLENBQUNDLGVBQWU7QUFDckYsNEJBQTRCLElBQUksQ0FBQ0QsTUFBTSxDQUFDRSxXQUFXO0FBQ25ELDRCQUE0QixJQUFJLENBQUNGLE1BQU0sQ0FBQ0csV0FBVztBQUNuRCw2QkFBNkIsSUFBSSxDQUFDSCxNQUFNLENBQUNJLFlBQVk7QUFDckQseUJBQXlCTCxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsTUFBTSxDQUFDSyxRQUFRO0FBQ25FLHlCQUF5Qk4sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUNDLE1BQU0sQ0FBQ00sUUFBUTtBQUNuRSwwQkFBMEJQLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDQyxNQUFNLENBQUNPLFNBQVM7QUFDckUsMkJBQTJCLElBQUksQ0FBQ1AsTUFBTSxDQUFDUSxVQUFVO0FBQ2pELDJCQUEyQixJQUFJLENBQUNSLE1BQU0sQ0FBQ1MsVUFBVTtBQUNqRCwyQkFBMkIsSUFBSSxDQUFDVCxNQUFNLENBQUNVLFVBQVU7QUFDakQsNEJBQTRCLElBQUksQ0FBQ1YsTUFBTSxDQUFDVyxXQUFXO0FBQ25ELDJCQUEyQixJQUFJLENBQUNYLE1BQU0sQ0FBQ1ksVUFBVTtBQUNqRCwyQkFBMkIsSUFBSSxDQUFDWixNQUFNLENBQUNhLFVBQVU7QUFDakQsMkJBQTJCLElBQUksQ0FBQ2IsTUFBTSxDQUFDYyxVQUFVO0FBQ2pELDRCQUE0QixJQUFJLENBQUNkLE1BQU0sQ0FBQ2UsV0FBVztBQUNuRCx3Q0FBd0MsSUFBSSxDQUFDZixNQUFNLENBQUNnQix1QkFBdUI7QUFDM0UsaUNBQWlDLElBQUksQ0FBQ2hCLE1BQU0sQ0FBQ2lCLGdCQUFnQixNQUFNO1FBQ2hFLEtBQUssY0FBYztRQUNuQjtVQUNDLE9BQU81QyxHQUFHO0FBQ2Qsb0JBQW9CMEIsZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUNDLE1BQU0sQ0FBQ00sUUFBUTtBQUM5RCxvQkFBb0JQLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDQyxNQUFNLENBQUNLLFFBQVE7QUFDOUQscUJBQXFCTixlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsTUFBTSxDQUFDTyxTQUFTO0FBQ2hFLDJCQUEyQixJQUFJLENBQUNQLE1BQU0sQ0FBQ2tCLGVBQWU7QUFDdEQsMkJBQTJCLElBQUksQ0FBQ2xCLE1BQU0sQ0FBQ21CLGVBQWU7QUFDdEQsNEJBQTRCLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ2lCLGdCQUFnQixNQUFNO01BQzVEO0lBQ0QsQ0FBQztJQUFBbkUsTUFBQSxDQUVEc0UsV0FBVyxHQUFYLFNBQUFBLFdBQVdBLENBQUEsRUFBVztNQUNyQixNQUFNQyxXQUFXLEdBQUksSUFBSSxDQUFDN0MsUUFBUSxJQUFJLElBQUksQ0FBQ0EsUUFBUSxDQUFDOEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQ0EsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSyxFQUFFO01BQ2xHLE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUN2SCxRQUFRLENBQUM0QixPQUFPLENBQUMsQ0FBQztNQUM1QyxNQUFNNEIsZUFBZSxHQUFHLElBQUksQ0FBQ3ZELFdBQVcsQ0FBQzJCLE9BQU8sQ0FBQyxDQUFDO01BQ2xELE1BQU00RixpQkFBaUIsR0FBR25ILDJCQUEyQixDQUFDLElBQUksQ0FBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQ0MsV0FBVyxDQUFDO01BQ3RGLE1BQU1zRSxTQUFTLEdBQ2RpRCxpQkFBaUIsQ0FBQ0MsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLEtBQUssS0FBSyxXQUFXLEdBQUcsMkJBQTJCLEdBQUd4SCxTQUFTO01BQ3BILE1BQU00RixlQUFlLEdBQUcsSUFBSSxDQUFDVixzQkFBc0IsQ0FBQyxDQUFDO01BRXJELElBQUksQ0FBQyxJQUFJLENBQUMzRCxTQUFTLEVBQUU7UUFDcEIsT0FBTyxFQUFFO01BQ1YsQ0FBQyxNQUFNO1FBQ04sT0FBTzJDLEdBQUc7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxJQUFJLENBQUNyQyxNQUFNO0FBQ3RCLGlCQUFpQnVGLFlBQVk7QUFDN0Isb0JBQW9CL0QsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLElBQUksQ0FBQ3RCLFVBQVU7QUFDMUIsaUJBQWlCLElBQUksQ0FBQ0csU0FBUztBQUMvQiw0QkFBNEJrQyxTQUFTO0FBQ3JDLGdCQUFnQixJQUFJLENBQUM3QyxTQUFTO0FBQzlCO0FBQ0EsaUNBQWlDOEIsZUFBZTtBQUNoRCwyQkFBMkI2RCxXQUFXO0FBQ3RDLHVCQUF1QixJQUFJLENBQUNPLGNBQWM7QUFDMUM7QUFDQSxPQUFPLElBQUksQ0FBQ0MsZ0JBQWdCLENBQ3RCLElBQUksQ0FBQzNELEtBQUssS0FBSy9ELFNBQVMsRUFDeEJrRSxHQUFHO0FBQ1QsNEJBQTRCLElBQUksQ0FBQ04sVUFBVSxXQUFXLElBQUksQ0FBQ0csS0FBSztBQUNoRSxpQkFDSyxDQUFDO0FBQ047QUFDQSxPQUFPLElBQUksQ0FBQzRCLG9CQUFvQixDQUFDQyxlQUFlLENBQUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUNuQixpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7TUFDbEI7SUFDRCxDQUFDO0lBQUEsT0FBQWxJLFNBQUE7RUFBQSxFQTlYcUNvTCwyQkFBMkIsR0FBQTVJLFdBQUEsR0FBQTZJLHlCQUFBLENBQUFySixPQUFBLENBQUFxRSxTQUFBLFNBQUE5RixLQUFBO0lBQUErSyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQWhKLFlBQUEsR0FBQTRJLHlCQUFBLENBQUFySixPQUFBLENBQUFxRSxTQUFBLGtCQUFBekYsS0FBQTtJQUFBMEssWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEvSSxZQUFBLEdBQUEySSx5QkFBQSxDQUFBckosT0FBQSxDQUFBcUUsU0FBQSxlQUFBdkYsS0FBQTtJQUFBd0ssWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE5SSxZQUFBLEdBQUEwSSx5QkFBQSxDQUFBckosT0FBQSxDQUFBcUUsU0FBQSxxQkFBQXJGLEtBQUE7SUFBQXNLLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBN0ksWUFBQSxHQUFBeUkseUJBQUEsQ0FBQXJKLE9BQUEsQ0FBQXFFLFNBQUEsNkJBQUFwRixLQUFBO0lBQUFxSyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQTVJLFlBQUEsR0FBQXdJLHlCQUFBLENBQUFySixPQUFBLENBQUFxRSxTQUFBLG9CQUFBbkYsS0FBQTtJQUFBb0ssWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0FxRGpELElBQUk7SUFBQTtFQUFBLElBQUEzSSxZQUFBLEdBQUF1SSx5QkFBQSxDQUFBckosT0FBQSxDQUFBcUUsU0FBQSxZQUFBbEYsS0FBQTtJQUFBbUssWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUExSSxZQUFBLEdBQUFzSSx5QkFBQSxDQUFBckosT0FBQSxDQUFBcUUsU0FBQSxpQkFBQWpGLEtBQUE7SUFBQWtLLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BYUtDLFVBQVUsQ0FBQ0MsSUFBSTtJQUFBO0VBQUEsSUFBQTNJLFlBQUEsR0FBQXFJLHlCQUFBLENBQUFySixPQUFBLENBQUFxRSxTQUFBLHFCQUFBaEYsTUFBQTtJQUFBaUssWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF4SSxhQUFBLEdBQUFvSSx5QkFBQSxDQUFBckosT0FBQSxDQUFBcUUsU0FBQSxrQkFBQS9FLE1BQUE7SUFBQWdLLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBdkksYUFBQSxHQUFBbUkseUJBQUEsQ0FBQXJKLE9BQUEsQ0FBQXFFLFNBQUEsZ0JBQUE5RSxNQUFBO0lBQUErSixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQWU1QixNQUFNO0lBQUE7RUFBQSxJQUFBdEksYUFBQSxHQUFBa0kseUJBQUEsQ0FBQXJKLE9BQUEsQ0FBQXFFLFNBQUEsZUFBQTdFLE1BQUE7SUFBQThKLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBckksYUFBQSxHQUFBaUkseUJBQUEsQ0FBQXJKLE9BQUEsQ0FBQXFFLFNBQUEsbUJBQUEzRSxNQUFBO0lBQUE0SixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXBJLGFBQUEsR0FBQWdJLHlCQUFBLENBQUFySixPQUFBLENBQUFxRSxTQUFBLGFBQUF2RSxNQUFBO0lBQUF3SixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQWdCYztRQUFFaEwsSUFBSSxFQUFFLGNBQWM7UUFBRW1KLFFBQVEsRUFBRSxDQUFDO1FBQUVDLFNBQVMsRUFBRSxDQUFDO1FBQUVGLFFBQVEsRUFBRSxDQUFDO1FBQUVhLGVBQWUsRUFBRTtNQUFHLENBQUM7SUFBQTtFQUFBLElBQUF4SSxPQUFBLE1BQUFELE1BQUE7RUFBQW1FLFFBQUEsR0FBQWxHLFNBQUE7RUFBQSxPQUFBa0csUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
498
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtQmxvY2siLCJfZGVjIiwiZGVmaW5lQnVpbGRpbmdCbG9jayIsIm5hbWUiLCJuYW1lc3BhY2UiLCJwdWJsaWNOYW1lc3BhY2UiLCJyZXR1cm5UeXBlcyIsIl9kZWMyIiwiYmxvY2tBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNQdWJsaWMiLCJyZXF1aXJlZCIsIl9kZWMzIiwiZXhwZWN0ZWRUeXBlcyIsIl9kZWM0IiwiZXhwZWN0ZWRBbm5vdGF0aW9uVHlwZXMiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiYmxvY2tFdmVudCIsIl9kZWMxNCIsImJsb2NrQWdncmVnYXRpb24iLCJzbG90IiwiaXNEZWZhdWx0IiwiX2RlYzE1IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrVGVtcGxhdCIsInByb3BzIiwiY29uZmlndXJhdGlvbiIsIm1TZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJmb3JtQ29udGFpbmVycyIsInVuZGVmaW5lZCIsIm9Db250ZXh0T2JqZWN0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsIm1FeHRyYVNldHRpbmdzIiwib0ZhY2V0RGVmaW5pdGlvbiIsInRhcmdldE9iamVjdCIsImhhc0ZpZWxkR3JvdXAiLCIkVHlwZSIsIkxhYmVsIiwiVGFyZ2V0IiwiJHRhcmdldCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInBhdGgiLCJ0ZXJtIiwidmFsdWUiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwiYW5ub3RhdGlvbnMiLCJmaWVsZHMiLCJmb3JtRWxlbWVudHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJvRm9ybURlZmluaXRpb24iLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImlzVmlzaWJsZSIsImFubm90YXRpb25QYXRoIiwiZ2V0UGF0aCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJmYWNldFR5cGUiLCJnZXRPYmplY3QiLCJfYXBpSWQiLCJjcmVhdGVJZCIsIl9jb250ZW50SWQiLCJpZCIsImRpc3BsYXlNb2RlIiwiX2VkaXRhYmxlIiwiY29tcGlsZUV4cHJlc3Npb24iLCJpZkVsc2UiLCJlcXVhbCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiVUkiLCJJc0VkaXRhYmxlIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImdldERhdGFGaWVsZENvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVyIiwiZmFjZXRDb250ZXh0IiwiZmFjZXQiLCJuYXZpZ2F0aW9uUGF0aCIsImlkUGFydCIsIkFubm90YXRpb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsImNvbnRleHRQYXRoUGF0aCIsImZhY2V0UGF0aCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjaGFyQXQiLCJzbGljZSIsInRpdGxlTGV2ZWwiLCJGb3JtSGVscGVyIiwiZ2V0Rm9ybUNvbnRhaW5lclRpdGxlTGV2ZWwiLCJ0aXRsZSIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldEZvcm1Db250YWluZXJJRCIsInhtbCIsImF0dHIiLCJlbnRpdHlTZXQiLCJvbkNoYW5nZSIsImFjdGlvbnMiLCJ1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3RlcyIsImFubm90YXRpb25IaWRkZW4iLCJnZXRGb3JtQ29udGFpbmVycyIsImluY2x1ZGVzIiwibWFwIiwiZm9ybUNvbnRhaW5lcklkeCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJpc1JlZmVyZW5jZUZhY2V0UGFydE9mUHJldmlldyIsInBhcnRPZlByZXZpZXciLCIkQW5ub3RhdGlvblBhdGgiLCJjaGVja0lmVGV4dEFyZWFJc0Fsb25lIiwiZmllbGRHcm91cCIsImlkZW50aWZpY2F0aW9uIiwiaGFzRmllbGRHcm91cFRhcmdldCIsImhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0IiwiRGF0YSIsIlZhbHVlIiwiTXVsdGlMaW5lVGV4dCIsInZhbHVlT2YiLCJnZXRMYXlvdXRJbmZvcm1hdGlvbiIsImlzVGV4dEFyZWFBbG9uZSIsImxheW91dCIsImFkanVzdExhYmVsU3BhbiIsImJyZWFrcG9pbnRMIiwiYnJlYWtwb2ludE0iLCJicmVha3BvaW50WEwiLCJjb2x1bW5zTCIsImNvbHVtbnNNIiwiY29sdW1uc1hMIiwiZW1wdHlTcGFuTCIsImVtcHR5U3Bhbk0iLCJlbXB0eVNwYW5TIiwiZW1wdHlTcGFuWEwiLCJsYWJlbFNwYW5MIiwibGFiZWxTcGFuTSIsImxhYmVsU3BhblMiLCJsYWJlbFNwYW5YTCIsInNpbmdsZUNvbnRhaW5lckZ1bGxTaXplIiwiYmFja2dyb3VuZERlc2lnbiIsImxhYmVsQ2VsbHNMYXJnZSIsImVtcHR5Q2VsbHNMYXJnZSIsImdldFRlbXBsYXRlIiwib25DaGFuZ2VTdHIiLCJyZXBsYWNlIiwibWV0YVBhdGhQYXRoIiwiY29udGV4dE9iamVjdFBhdGgiLCJjb250ZXh0TG9jYXRpb24iLCJ0YXJnZXRFbnRpdHlTZXQiLCJfdHlwZSIsImFyaWFMYWJlbGxlZEJ5IiwiYWRkQ29uZGl0aW9uYWxseSIsIkJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciIsIlRpdGxlTGV2ZWwiLCJBdXRvIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGb3JtLmJsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW11bmljYXRpb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q29sbGVjdGlvbkZhY2V0LFxuXHREYXRhRmllbGQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXBUeXBlLFxuXHRJZGVudGlmaWNhdGlvbixcblx0UmVmZXJlbmNlRmFjZXRcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgZXF1YWwsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgaWZFbHNlLCByZXNvbHZlQmluZGluZ1N0cmluZyB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQge1xuXHRibG9ja0FnZ3JlZ2F0aW9uLFxuXHRibG9ja0F0dHJpYnV0ZSxcblx0YmxvY2tFdmVudCxcblx0ZGVmaW5lQnVpbGRpbmdCbG9ja1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGhhc0ZpZWxkR3JvdXBUYXJnZXQsIGhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQgdHlwZSB7IEZvcm1Db250YWluZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRm9ybVwiO1xuaW1wb3J0IHsgY3JlYXRlRm9ybURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRm9ybVwiO1xuaW1wb3J0IHsgZ2V0Rm9ybUNvbnRhaW5lcklEIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IEZvcm1IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvZm9ybS9Gb3JtSGVscGVyXCI7XG5pbXBvcnQgeyBUaXRsZUxldmVsIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIHsgJENvbHVtbkxheW91dFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9sYXlvdXQvZm9ybS9Db2x1bW5MYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgJFJlc3BvbnNpdmVHcmlkTGF5b3V0U2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL1Jlc3BvbnNpdmVHcmlkTGF5b3V0XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5cbnR5cGUgQ29sdW1uTGF5b3V0ID0gJENvbHVtbkxheW91dFNldHRpbmdzICYge1xuXHR0eXBlOiBcIkNvbHVtbkxheW91dFwiO1xufTtcbnR5cGUgUmVzcG9uc2l2ZUdyaWRMYXlvdXQgPSAkUmVzcG9uc2l2ZUdyaWRMYXlvdXRTZXR0aW5ncyAmIHtcblx0dHlwZTogXCJSZXNwb25zaXZlR3JpZExheW91dFwiO1xufTtcbnR5cGUgRm9ybUxheW91dEluZm9ybWF0aW9uID0gQ29sdW1uTGF5b3V0IHwgUmVzcG9uc2l2ZUdyaWRMYXlvdXQ7XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgZm9yIGNyZWF0aW5nIGEgRm9ybSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBJdCBpcyBkZXNpZ25lZCB0byB3b3JrIGJhc2VkIG9uIGEgRmllbGRHcm91cCBhbm5vdGF0aW9uIGJ1dCBjYW4gYWxzbyB3b3JrIGlmIHlvdSBwcm92aWRlIGEgUmVmZXJlbmNlRmFjZXQgb3IgYSBDb2xsZWN0aW9uRmFjZXRcbiAqXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZvcm0gaWQ9XCJNeUZvcm1cIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwI0dlbmVyYWxJbmZvcm1hdGlvblwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLkZvcm1cbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZUJ1aWxkaW5nQmxvY2soe1xuXHRuYW1lOiBcIkZvcm1cIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIixcblx0cHVibGljTmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3NcIixcblx0cmV0dXJuVHlwZXM6IFtcInNhcC5mZS5tYWNyb3MuZm9ybS5Gb3JtQVBJXCJdXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9ybUJsb2NrIGV4dGVuZHMgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0LyoqXG5cdCAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCBpc1B1YmxpYzogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHBhdGggb2YgdGhlIGNvbnRleHQgdXNlZCBpbiB0aGUgY3VycmVudCBwYWdlIG9yIGJsb2NrLlxuXHQgKiBUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZnJhbWV3b3JrLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRpc1B1YmxpYzogdHJ1ZSxcblx0XHRleHBlY3RlZFR5cGVzOiBbXCJFbnRpdHlTZXRcIiwgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiwgXCJTaW5nbGV0b25cIiwgXCJFbnRpdHlUeXBlXCJdXG5cdH0pXG5cdGNvbnRleHRQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG1ldGFtb2RlbCwgYmFzZWQgb24gdGhlIGN1cnJlbnQgY29udGV4dFBhdGguXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdGlzUHVibGljOiB0cnVlLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGV4cGVjdGVkQW5ub3RhdGlvblR5cGVzOiBbXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBUeXBlXCIsXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbGxlY3Rpb25GYWNldFwiLFxuXHRcdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWZlcmVuY2VGYWNldFwiXG5cdFx0XSxcblx0XHRleHBlY3RlZFR5cGVzOiBbXCJFbnRpdHlTZXRcIiwgXCJFbnRpdHlUeXBlXCIsIFwiU2luZ2xldG9uXCIsIFwiTmF2aWdhdGlvblByb3BlcnR5XCJdXG5cdH0pXG5cdG1ldGFQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogVGhlIG1hbmlmZXN0IGRlZmluZWQgZm9ybSBjb250YWluZXJzIHRvIGJlIHNob3duIGluIHRoZSBhY3Rpb24gYXJlYSBvZiB0aGUgdGFibGVcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYXJyYXlcIiB9KVxuXHRmb3JtQ29udGFpbmVycz86IEZvcm1Db250YWluZXJbXTtcblxuXHQvKipcblx0ICogQ29udHJvbCB0aGUgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIGNvbnRhaW5lciBsYWJlbHNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM/OiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBUb2dnbGUgUHJldmlldzogUGFydCBvZiBQcmV2aWV3IC8gUHJldmlldyB2aWEgJ1Nob3cgTW9yZScgQnV0dG9uXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRwYXJ0T2ZQcmV2aWV3ID0gdHJ1ZTtcblxuXHQvKipcblx0ICogVGhlIHRpdGxlIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIsIGlzUHVibGljOiB0cnVlIH0pXG5cdHRpdGxlPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBcImFyaWEtbGV2ZWxcIiBvZiB0aGUgZm9ybSB0aXRsZSwgdGl0bGVzIG9mIGludGVybmFsbHkgdXNlZCBmb3JtIGNvbnRhaW5lcnMgYXJlIG5lc3RlZCBzdWJzZXF1ZW50bHlcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic2FwLnVpLmNvcmUuVGl0bGVMZXZlbFwiLCBpc1B1YmxpYzogdHJ1ZSB9KVxuXHR0aXRsZUxldmVsOiBUaXRsZUxldmVsID0gVGl0bGVMZXZlbC5BdXRvO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBhZGRlZCB0byBhc3NvY2lhdGUgdGhlIHN1cGVyb3JkaW5hdGUgdGl0bGVcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cHVibGljIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nW107XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRkaXNwbGF5TW9kZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXG5cdC8qKlxuXHQgKiBcdElmIHNldCB0byBmYWxzZSwgdGhlIEZvcm0gaXMgbm90IHJlbmRlcmVkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRpc1Zpc2libGUgPSBcInRydWVcIjtcblx0Ly8gSW5kZXBlbmRlbnQgZnJvbSB0aGUgZm9ybSB0aXRsZSwgY2FuIGJlIGEgYml0IGNvbmZ1c2luZyBpbiBzdGFuZGFsb25lIHVzYWdlIGF0IGlzIG5vdCBzaG93aW5nIGFueXRoaW5nIGJ5IGRlZmF1bHRcblxuXHQvLyBKdXN0IHByb3hpZWQgZG93biB0byB0aGUgRmllbGQgbWF5IG5lZWQgdG8gc2VlIGlmIG5lZWRlZCBvciBub3Rcblx0QGJsb2NrRXZlbnQoKVxuXHRvbkNoYW5nZT86IHN0cmluZztcblxuXHRAYmxvY2tBZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5mb3JtLkZvcm1FbGVtZW50XCIsIGlzUHVibGljOiB0cnVlLCBzbG90OiBcImZvcm1FbGVtZW50c1wiLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Zm9ybUVsZW1lbnRzPzogb2JqZWN0W107XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIGxheW91dCB0byBiZSB1c2VkIHdpdGhpbiB0aGUgZm9ybS5cblx0ICogSXQgZGVmYXVsdHMgdG8gdGhlIENvbHVtbkxheW91dCwgYnV0IHlvdSBjYW4gYWxzbyB1c2UgYSBSZXNwb25zaXZlR3JpZExheW91dC5cblx0ICogQWxsIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBSZXNwb25zaXZlR3JpZExheW91dCBjYW4gYmUgYWRkZWQgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcIm9iamVjdFwiLCBpc1B1YmxpYzogdHJ1ZSB9KVxuXHRsYXlvdXQ6IEZvcm1MYXlvdXRJbmZvcm1hdGlvbiA9IHsgdHlwZTogXCJDb2x1bW5MYXlvdXRcIiwgY29sdW1uc006IDMsIGNvbHVtbnNYTDogNiwgY29sdW1uc0w6IDQsIGxhYmVsQ2VsbHNMYXJnZTogMTIgfTtcblxuXHQvLyBVc2VmdWwgZm9yIG91ciBkeW5hbWljIHRoaW5nIGJ1dCBhbHNvIGRlcGVuZHMgb24gdGhlIG1ldGFkYXRhIC0+IG1ha2Ugc3VyZSB0aGlzIGlzIHRha2VuIGludG8gYWNjb3VudFxuXHRfZWRpdGFibGU6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXG5cdF9hcGlJZDogc3RyaW5nO1xuXG5cdF9jb250ZW50SWQ6IHN0cmluZztcblxuXHRmYWNldFR5cGU/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6IFByb3BlcnRpZXNPZjxGb3JtQmxvY2s+LCBjb25maWd1cmF0aW9uOiB1bmtub3duLCBtU2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgY29uZmlndXJhdGlvbiwgbVNldHRpbmdzKTtcblx0XHRpZiAodGhpcy5tZXRhUGF0aCAmJiB0aGlzLmNvbnRleHRQYXRoICYmICh0aGlzLmZvcm1Db250YWluZXJzID09PSB1bmRlZmluZWQgfHwgdGhpcy5mb3JtQ29udGFpbmVycyA9PT0gbnVsbCkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0T2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0czxGaWVsZEdyb3VwVHlwZSB8IENvbGxlY3Rpb25GYWNldCB8IFJlZmVyZW5jZUZhY2V0Pihcblx0XHRcdFx0dGhpcy5tZXRhUGF0aCxcblx0XHRcdFx0dGhpcy5jb250ZXh0UGF0aFxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG1FeHRyYVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0bGV0IG9GYWNldERlZmluaXRpb24gPSBvQ29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRcdFx0bGV0IGhhc0ZpZWxkR3JvdXAgPSBmYWxzZTtcblx0XHRcdGlmIChvRmFjZXREZWZpbml0aW9uICYmIG9GYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkZpZWxkR3JvdXBUeXBlKSB7XG5cdFx0XHRcdC8vIFdyYXAgdGhlIGZhY2V0IGluIGEgZmFrZSBGYWNldCBhbm5vdGF0aW9uXG5cdFx0XHRcdGhhc0ZpZWxkR3JvdXAgPSB0cnVlO1xuXHRcdFx0XHRvRmFjZXREZWZpbml0aW9uID0ge1xuXHRcdFx0XHRcdCRUeXBlOiBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCxcblx0XHRcdFx0XHRMYWJlbDogb0ZhY2V0RGVmaW5pdGlvbi5MYWJlbCxcblx0XHRcdFx0XHRUYXJnZXQ6IHtcblx0XHRcdFx0XHRcdCR0YXJnZXQ6IG9GYWNldERlZmluaXRpb24sXG5cdFx0XHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IG9GYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdFx0cGF0aDogXCJcIixcblx0XHRcdFx0XHRcdHRlcm06IFwiXCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsXG5cdFx0XHRcdFx0XHR2YWx1ZTogZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChvQ29udGV4dE9iamVjdFBhdGgpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uczoge30sXG5cdFx0XHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBvRmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0XHR9IGFzIHVua25vd24gYXMgUmVmZXJlbmNlRmFjZXQ7XG5cdFx0XHRcdG1FeHRyYVNldHRpbmdzW29GYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlXSA9IHsgZmllbGRzOiB0aGlzLmZvcm1FbGVtZW50cyB9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBvQ29udmVydGVyQ29udGV4dCA9IHRoaXMuZ2V0Q29udmVydGVyQ29udGV4dChcblx0XHRcdFx0b0NvbnRleHRPYmplY3RQYXRoLFxuXHRcdFx0XHQvKnRoaXMuY29udGV4dFBhdGgqLyB1bmRlZmluZWQsXG5cdFx0XHRcdG1TZXR0aW5ncyxcblx0XHRcdFx0bUV4dHJhU2V0dGluZ3Ncblx0XHRcdCk7XG5cdFx0XHRjb25zdCBvRm9ybURlZmluaXRpb24gPSBjcmVhdGVGb3JtRGVmaW5pdGlvbihvRmFjZXREZWZpbml0aW9uLCB0aGlzLmlzVmlzaWJsZSwgb0NvbnZlcnRlckNvbnRleHQpO1xuXHRcdFx0aWYgKGhhc0ZpZWxkR3JvdXApIHtcblx0XHRcdFx0b0Zvcm1EZWZpbml0aW9uLmZvcm1Db250YWluZXJzWzBdLmFubm90YXRpb25QYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmZvcm1Db250YWluZXJzID0gb0Zvcm1EZWZpbml0aW9uLmZvcm1Db250YWluZXJzO1xuXHRcdFx0dGhpcy51c2VGb3JtQ29udGFpbmVyTGFiZWxzID0gb0Zvcm1EZWZpbml0aW9uLnVzZUZvcm1Db250YWluZXJMYWJlbHM7XG5cdFx0XHR0aGlzLmZhY2V0VHlwZSA9IG9GYWNldERlZmluaXRpb24gJiYgKG9GYWNldERlZmluaXRpb24uJFR5cGUgYXMgc3RyaW5nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5mYWNldFR5cGUgPSB0aGlzLm1ldGFQYXRoLmdldE9iamVjdCgpPy4kVHlwZTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuaXNQdWJsaWMpIHtcblx0XHRcdHRoaXMuX2FwaUlkID0gdGhpcy5jcmVhdGVJZChcIkZvcm1cIikhO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gdGhpcy5pZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fYXBpSWQgPSB0aGlzLmlkO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gYCR7dGhpcy5pZH0tY29udGVudGA7XG5cdFx0fVxuXHRcdC8vIGlmIGRpc3BsYXlNb2RlID09PSB0cnVlIC0+IF9lZGl0YWJsZSA9IGZhbHNlXG5cdFx0Ly8gaWYgZGlzcGxheU1vZGUgPT09IGZhbHNlIC0+IF9lZGl0YWJsZSA9IHRydWVcblx0XHQvLyAgPT4gaWYgZGlzcGxheU1vZGUgPT09IHtteUJpbmRpbmdWYWx1ZX0gLT4gX2VkaXRhYmxlID0ge215QmluZGluZ1ZhbHVlfSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVxuXHRcdC8vIGlmIERpc3BsYXlNb2RlID09PSB1bmRlZmluZWQgLT4gX2VkaXRhYmxlID0ge3VpPi9pc0VkaXRhYmxlfVxuXHRcdGlmICh0aGlzLmRpc3BsYXlNb2RlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuX2VkaXRhYmxlID0gY29tcGlsZUV4cHJlc3Npb24oaWZFbHNlKGVxdWFsKHJlc29sdmVCaW5kaW5nU3RyaW5nKHRoaXMuZGlzcGxheU1vZGUsIFwiYm9vbGVhblwiKSwgZmFsc2UpLCB0cnVlLCBmYWxzZSkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9lZGl0YWJsZSA9IGNvbXBpbGVFeHByZXNzaW9uKFVJLklzRWRpdGFibGUpO1xuXHRcdH1cblx0fVxuXG5cdGdldERhdGFGaWVsZENvbGxlY3Rpb24oZm9ybUNvbnRhaW5lcjogRm9ybUNvbnRhaW5lciwgZmFjZXRDb250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHtcblx0XHRjb25zdCBmYWNldCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhmYWNldENvbnRleHQpLnRhcmdldE9iamVjdCBhcyBGYWNldFR5cGVzO1xuXHRcdGxldCBuYXZpZ2F0aW9uUGF0aDtcblx0XHRsZXQgaWRQYXJ0O1xuXHRcdGlmIChmYWNldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQpIHtcblx0XHRcdG5hdmlnYXRpb25QYXRoID0gQW5ub3RhdGlvbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChmYWNldC5UYXJnZXQudmFsdWUpO1xuXHRcdFx0aWRQYXJ0ID0gZmFjZXQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNvbnRleHRQYXRoUGF0aCA9IHRoaXMuY29udGV4dFBhdGguZ2V0UGF0aCgpO1xuXHRcdFx0bGV0IGZhY2V0UGF0aCA9IGZhY2V0Q29udGV4dC5nZXRQYXRoKCk7XG5cdFx0XHRpZiAoZmFjZXRQYXRoLnN0YXJ0c1dpdGgoY29udGV4dFBhdGhQYXRoKSkge1xuXHRcdFx0XHRmYWNldFBhdGggPSBmYWNldFBhdGguc3Vic3RyaW5nKGNvbnRleHRQYXRoUGF0aC5sZW5ndGgpO1xuXHRcdFx0XHRpZiAoZmFjZXRQYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpIHtcblx0XHRcdFx0XHRmYWNldFBhdGggPSBmYWNldFBhdGguc2xpY2UoMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG5hdmlnYXRpb25QYXRoID0gQW5ub3RhdGlvbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChmYWNldFBhdGgpO1xuXHRcdFx0aWRQYXJ0ID0gZmFjZXRQYXRoO1xuXHRcdH1cblx0XHRjb25zdCB0aXRsZUxldmVsID0gRm9ybUhlbHBlci5nZXRGb3JtQ29udGFpbmVyVGl0bGVMZXZlbCh0aGlzLnRpdGxlLCB0aGlzLnRpdGxlTGV2ZWwpO1xuXHRcdGNvbnN0IHRpdGxlID0gdGhpcy51c2VGb3JtQ29udGFpbmVyTGFiZWxzICYmIGZhY2V0LkxhYmVsID8gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGZhY2V0LkxhYmVsKSA6IFwiXCI7XG5cblx0XHQvLyBFbmhhbmNlOiBnZW5lcmF0ZSBhIHN0YWJsZSBmb3JtIGNvbnRhaW5lciBpZCB3aGVuZXZlciB3ZSBoYXZlIGEgZGVyaXZlZCBpZFBhcnQgZXZlbiBpZiB0aGlzLmlkIGlzIHVuZGVmaW5lZC5cblx0XHQvLyBQcmV2aW91cyBsb2dpYyBvbmx5IGdlbmVyYXRlZCB3aGVuIChpbXBsaWNpdGx5KSBndWFyZGluZyBieSBvbmUgY29uZGl0aW9uOyBub3cgd2UgYWxsb3cgZmFsbGJhY2sgdG8gaWRQYXJ0LlxuXHRcdC8vIFdlIHN0aWxsIHByb3RlY3QgZ2V0Rm9ybUNvbnRhaW5lcklEIGZyb20gYmVpbmcgY2FsbGVkIHdpdGggYW4gdW5kZWZpbmVkIGlkUGFydC5cblx0XHRjb25zdCBpZCA9ICh0aGlzLmlkICE9PSB1bmRlZmluZWQgfHwgaWRQYXJ0KSAmJiBpZFBhcnQgPyBnZXRGb3JtQ29udGFpbmVySUQoaWRQYXJ0KSA6IHVuZGVmaW5lZDtcblxuXHRcdHJldHVybiB4bWxgXG5cdFx0XHRcdFx0PG1hY3JvOkZvcm1Db250YWluZXJcblx0XHRcdFx0XHR4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuXHRcdFx0XHRcdCR7dGhpcy5hdHRyKFwiaWRcIiwgaWQpfVxuXHRcdFx0XHRcdHRpdGxlPVwiJHt0aXRsZX1cIlxuXHRcdFx0XHRcdHRpdGxlTGV2ZWw9XCIke3RpdGxlTGV2ZWx9XCJcblx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIiR7bmF2aWdhdGlvblBhdGggPyBmb3JtQ29udGFpbmVyLmVudGl0eVNldCA6IHRoaXMuY29udGV4dFBhdGh9XCJcblx0XHRcdFx0XHRtZXRhUGF0aD1cIiR7ZmFjZXRDb250ZXh0fVwiXG5cdFx0XHRcdFx0ZGF0YUZpZWxkQ29sbGVjdGlvbj1cIiR7Zm9ybUNvbnRhaW5lci5mb3JtRWxlbWVudHN9XCJcblx0XHRcdFx0XHRuYXZpZ2F0aW9uUGF0aD1cIiR7bmF2aWdhdGlvblBhdGh9XCJcblx0XHRcdFx0XHR2aXNpYmxlPVwiJHtmb3JtQ29udGFpbmVyLmlzVmlzaWJsZX1cIlxuXHRcdFx0XHRcdGRpc3BsYXlNb2RlPVwiJHt0aGlzLmRpc3BsYXlNb2RlfVwiXG5cdFx0XHRcdFx0b25DaGFuZ2U9XCIke3RoaXMub25DaGFuZ2V9XCJcblx0XHRcdFx0XHRhY3Rpb25zPVwiJHtmb3JtQ29udGFpbmVyLmFjdGlvbnN9XCJcblx0XHRcdFx0XHR1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcz1cIiR7Zm9ybUNvbnRhaW5lci51c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlc31cIlxuXHRcdFx0XHRcdGhhc1VpSGlkZGVuQW5ub3RhdGlvbj1cIiR7Zm9ybUNvbnRhaW5lci5hbm5vdGF0aW9uSGlkZGVufVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0PG1hY3JvOmZvcm1FbGVtZW50cz5cblx0XHRcdFx0XHQ8c2xvdCBuYW1lPVwiZm9ybUVsZW1lbnRzXCIgLz5cblx0XHRcdFx0PC9tYWNybzpmb3JtRWxlbWVudHM+XG5cdFx0XHQ8L21hY3JvOkZvcm1Db250YWluZXI+YDtcblx0fVxuXG5cdGdldEZvcm1Db250YWluZXJzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcblx0XHRpZiAodGhpcy5mb3JtQ29udGFpbmVycyEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9XG5cdFx0aWYgKHRoaXMuZmFjZXRUeXBlPy5pbmNsdWRlcyhcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbGxlY3Rpb25GYWNldFwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZm9ybUNvbnRhaW5lcnMhLm1hcCgoZm9ybUNvbnRhaW5lciwgZm9ybUNvbnRhaW5lcklkeCkgPT4ge1xuXHRcdFx0XHRpZiAoZm9ybUNvbnRhaW5lci5pc1Zpc2libGUpIHtcblx0XHRcdFx0XHRjb25zdCBmYWNldENvbnRleHQgPSB0aGlzLmNvbnRleHRQYXRoLmdldE1vZGVsKCkuY3JlYXRlQmluZGluZ0NvbnRleHQoZm9ybUNvbnRhaW5lci5hbm5vdGF0aW9uUGF0aCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0XHRcdFx0Y29uc3QgZmFjZXQgPSBmYWNldENvbnRleHQuZ2V0T2JqZWN0KCk7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0ZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0ICYmXG5cdFx0XHRcdFx0XHRGb3JtSGVscGVyLmlzUmVmZXJlbmNlRmFjZXRQYXJ0T2ZQcmV2aWV3KGZhY2V0LCB0aGlzLnBhcnRPZlByZXZpZXcpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRpZiAoZmFjZXQuVGFyZ2V0LiRBbm5vdGF0aW9uUGF0aC4kVHlwZSA9PT0gQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5BZGRyZXNzVHlwZSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4geG1sYDx0ZW1wbGF0ZTp3aXRoIHBhdGg9XCJmb3JtQ29udGFpbmVycz4ke2Zvcm1Db250YWluZXJJZHh9XCIgdmFyPVwiZm9ybUNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZTp3aXRoIHBhdGg9XCJmb3JtQ29udGFpbmVycz4ke2Zvcm1Db250YWluZXJJZHh9L2Fubm90YXRpb25QYXRoXCIgdmFyPVwiZmFjZXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxjb3JlOkZyYWdtZW50IGZyYWdtZW50TmFtZT1cInNhcC5mZS5tYWNyb3MuZm9ybS5BZGRyZXNzU2VjdGlvblwiIHR5cGU9XCJYTUxcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6d2l0aD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZTp3aXRoPmA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXREYXRhRmllbGRDb2xsZWN0aW9uKGZvcm1Db250YWluZXIsIGZhY2V0Q29udGV4dCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBcIlwiO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmZhY2V0VHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWZlcmVuY2VGYWNldFwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5mb3JtQ29udGFpbmVycyEubWFwKChmb3JtQ29udGFpbmVyKSA9PiB7XG5cdFx0XHRcdGlmIChmb3JtQ29udGFpbmVyLmlzVmlzaWJsZSkge1xuXHRcdFx0XHRcdGNvbnN0IGZhY2V0Q29udGV4dCA9IHRoaXMuY29udGV4dFBhdGguZ2V0TW9kZWwoKS5jcmVhdGVCaW5kaW5nQ29udGV4dChmb3JtQ29udGFpbmVyLmFubm90YXRpb25QYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXREYXRhRmllbGRDb2xsZWN0aW9uKGZvcm1Db250YWluZXIsIGZhY2V0Q29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIGEgdGV4dGFyZWEgaXMgYWxvbmUgaW4gYSBmb3JtXG5cdCAqL1xuXHRjaGVja0lmVGV4dEFyZWFJc0Fsb25lKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLmZvcm1Db250YWluZXJzIS5sZW5ndGggPT09IDEpIHtcblx0XHRcdGlmICh0aGlzLmZvcm1Db250YWluZXJzIVswXS5mb3JtRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdGNvbnN0IGZhY2V0ID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKFxuXHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGguZ2V0TW9kZWwoKS5jcmVhdGVCaW5kaW5nQ29udGV4dCh0aGlzLmZvcm1Db250YWluZXJzIVswXS5hbm5vdGF0aW9uUGF0aCwgdGhpcy5jb250ZXh0UGF0aClcblx0XHRcdFx0KS50YXJnZXRPYmplY3QgYXMgRmllbGRHcm91cFR5cGUgfCBSZWZlcmVuY2VGYWNldDtcblx0XHRcdFx0bGV0IGZpZWxkR3JvdXA6IEZpZWxkR3JvdXBUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRsZXQgaWRlbnRpZmljYXRpb246IElkZW50aWZpY2F0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdFx0XHQvLyBUaGlzIGlzIG9ubHkgZm9yIG1hY3Jvczpmb3JtIHdpdGggYSBGaWVsZEdyb3VwIHRoYXQgY29udGFpbnMgb25seSBhIFRleHRBcmVhXG5cdFx0XHRcdGlmIChmYWNldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwVHlwZVwiKSB7XG5cdFx0XHRcdFx0ZmllbGRHcm91cCA9IGZhY2V0O1xuXHRcdFx0XHR9IGVsc2UgaWYgKGhhc0ZpZWxkR3JvdXBUYXJnZXQoZmFjZXQpKSB7XG5cdFx0XHRcdFx0ZmllbGRHcm91cCA9IGZhY2V0Py5UYXJnZXQ/LiR0YXJnZXQgYXMgRmllbGRHcm91cFR5cGU7XG5cdFx0XHRcdH0gZWxzZSBpZiAoaGFzSWRlbnRpZmljYXRpb25UYXJnZXQoZmFjZXQpKSB7XG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb24gPSBmYWNldD8uVGFyZ2V0Py4kdGFyZ2V0IGFzIElkZW50aWZpY2F0aW9uO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGZpZWxkR3JvdXA/LkRhdGEubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0cmV0dXJuIChmaWVsZEdyb3VwLkRhdGFbMF0gYXMgRGF0YUZpZWxkKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uTXVsdGlMaW5lVGV4dD8udmFsdWVPZigpID09PSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGlkZW50aWZpY2F0aW9uPy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gKGlkZW50aWZpY2F0aW9uWzBdIGFzIERhdGFGaWVsZCk/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIHRoZSBwcm9wZXIgbGF5b3V0IGluZm9ybWF0aW9uIGJhc2VkIG9uIHRoZSBgbGF5b3V0YCBwcm9wZXJ0eSBkZWZpbmVkIGV4dGVybmFsbHkuXG5cdCAqIEBwYXJhbSBpc1RleHRBcmVhQWxvbmUgV2hldGhlciB0aGUgc2VjdGlvbiBjb250YWlucyBhIGxvbmVseSBUZXh0QXJlYSBpbnNpZGVcblx0ICogQHJldHVybnMgVGhlIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgdGhlIHhtbC5cblx0ICovXG5cdGdldExheW91dEluZm9ybWF0aW9uKGlzVGV4dEFyZWFBbG9uZTogYm9vbGVhbik6IHN0cmluZyB7XG5cdFx0c3dpdGNoICh0aGlzLmxheW91dC50eXBlKSB7XG5cdFx0XHRjYXNlIFwiUmVzcG9uc2l2ZUdyaWRMYXlvdXRcIjpcblx0XHRcdFx0cmV0dXJuIHhtbGA8ZjpSZXNwb25zaXZlR3JpZExheW91dCBhZGp1c3RMYWJlbFNwYW49XCIke3RoaXMubGF5b3V0LmFkanVzdExhYmVsU3Bhbn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha3BvaW50TD1cIiR7dGhpcy5sYXlvdXQuYnJlYWtwb2ludEx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludE09XCIke3RoaXMubGF5b3V0LmJyZWFrcG9pbnRNfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnRYTD1cIiR7dGhpcy5sYXlvdXQuYnJlYWtwb2ludFhMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNMPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc0x9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sdW1uc009XCIke2lzVGV4dEFyZWFBbG9uZSA/IDEgOiB0aGlzLmxheW91dC5jb2x1bW5zTX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zWEw9XCIke2lzVGV4dEFyZWFBbG9uZSA/IDEgOiB0aGlzLmxheW91dC5jb2x1bW5zWEx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW1wdHlTcGFuTD1cIiR7dGhpcy5sYXlvdXQuZW1wdHlTcGFuTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbXB0eVNwYW5NPVwiJHt0aGlzLmxheW91dC5lbXB0eVNwYW5NfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVtcHR5U3BhblM9XCIke3RoaXMubGF5b3V0LmVtcHR5U3BhblN9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW1wdHlTcGFuWEw9XCIke3RoaXMubGF5b3V0LmVtcHR5U3BhblhMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsU3Bhbkw9XCIke3RoaXMubGF5b3V0LmxhYmVsU3Bhbkx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWxTcGFuTT1cIiR7dGhpcy5sYXlvdXQubGFiZWxTcGFuTX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbFNwYW5TPVwiJHt0aGlzLmxheW91dC5sYWJlbFNwYW5TfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsU3BhblhMPVwiJHt0aGlzLmxheW91dC5sYWJlbFNwYW5YTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaW5nbGVDb250YWluZXJGdWxsU2l6ZT1cIiR7dGhpcy5sYXlvdXQuc2luZ2xlQ29udGFpbmVyRnVsbFNpemV9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZERlc2lnbj1cIiR7dGhpcy5sYXlvdXQuYmFja2dyb3VuZERlc2lnbn1cIiAvPmA7XG5cdFx0XHRjYXNlIFwiQ29sdW1uTGF5b3V0XCI6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4geG1sYDxmOkNvbHVtbkxheW91dFxuXHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNNPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc019XCJcblx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zTD1cIiR7aXNUZXh0QXJlYUFsb25lID8gMSA6IHRoaXMubGF5b3V0LmNvbHVtbnNMfVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29sdW1uc1hMPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc1hMfVwiXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWxDZWxsc0xhcmdlPVwiJHt0aGlzLmxheW91dC5sYWJlbENlbGxzTGFyZ2V9XCJcblx0XHRcdFx0XHRcdFx0XHRlbXB0eUNlbGxzTGFyZ2U9XCIke3RoaXMubGF5b3V0LmVtcHR5Q2VsbHNMYXJnZX1cIlxuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmREZXNpZ249XCIke3RoaXMubGF5b3V0LmJhY2tncm91bmREZXNpZ259XCIgLz5gO1xuXHRcdH1cblx0fVxuXG5cdGdldFRlbXBsYXRlKCk6IHN0cmluZyB7XG5cdFx0Y29uc3Qgb25DaGFuZ2VTdHIgPSAodGhpcy5vbkNoYW5nZSAmJiB0aGlzLm9uQ2hhbmdlLnJlcGxhY2UoXCJ7XCIsIFwiXFxcXHtcIikucmVwbGFjZShcIn1cIiwgXCJcXFxcfVwiKSkgfHwgXCJcIjtcblx0XHRjb25zdCBtZXRhUGF0aFBhdGggPSB0aGlzLm1ldGFQYXRoLmdldFBhdGgoKTtcblx0XHRjb25zdCBjb250ZXh0UGF0aFBhdGggPSB0aGlzLmNvbnRleHRQYXRoLmdldFBhdGgoKTtcblx0XHRjb25zdCBjb250ZXh0T2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLm1ldGFQYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXQgPVxuXHRcdFx0Y29udGV4dE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uPy50YXJnZXRFbnRpdHlTZXQ/Ll90eXBlID09PSBcIkVudGl0eVNldFwiID8gXCJ7Y29udGV4dFBhdGg+QHNhcHVpLm5hbWV9XCIgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgaXNUZXh0QXJlYUFsb25lID0gdGhpcy5jaGVja0lmVGV4dEFyZWFJc0Fsb25lKCk7XG5cblx0XHRpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHhtbGA8bWFjcm86Rm9ybUFQSSB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3MuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6bWFjcm9kYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiXG5cdFx0XHRcdFx0eG1sbnM6Zj1cInNhcC51aS5sYXlvdXQuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6Zmw9XCJzYXAudWkuZmxcIlxuXHRcdFx0XHRcdHhtbG5zOmR0PVwic2FwLnVpLmR0XCJcblx0XHRcdFx0XHR4bWxuczpjb3JlQ29udHJvbHM9XCJzYXAuZmUuY29yZS5jb250cm9sc1wiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2FwaUlkfVwiXG5cdFx0XHRcdFx0bWV0YVBhdGg9XCIke21ldGFQYXRoUGF0aH1cIlxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPVwiJHtjb250ZXh0UGF0aFBhdGh9XCI+XG5cdFx0XHRcdDxmOkZvcm1cblx0XHRcdFx0XHRmbDpkZWxlZ2F0ZT0ne1xuXHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm1EZWxlZ2F0ZVwiLFxuXHRcdFx0XHRcdFx0XCJkZWxlZ2F0ZVR5cGVcIjogXCJjb21wbGV0ZVwiXG5cdFx0XHRcdFx0fSdcblx0XHRcdFx0XHRkdDpkZXNpZ250aW1lPVwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm0uZGVzaWdudGltZVwiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2NvbnRlbnRJZH1cIlxuXHRcdFx0XHRcdGVkaXRhYmxlPVwiJHt0aGlzLl9lZGl0YWJsZX1cIlxuXHRcdFx0XHRcdG1hY3JvZGF0YTplbnRpdHlTZXQ9XCIke2VudGl0eVNldH1cIlxuXHRcdFx0XHRcdHZpc2libGU9XCIke3RoaXMuaXNWaXNpYmxlfVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJzYXBVeEFQT2JqZWN0UGFnZVN1YlNlY3Rpb25BbGlnbkNvbnRlbnRcIlxuXHRcdFx0XHRcdG1hY3JvZGF0YTpuYXZpZ2F0aW9uUGF0aD1cIiR7Y29udGV4dFBhdGhQYXRofVwiXG5cdFx0XHRcdFx0bWFjcm9kYXRhOm9uQ2hhbmdlPVwiJHtvbkNoYW5nZVN0cn1cIlxuXHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PVwiJHt0aGlzLmFyaWFMYWJlbGxlZEJ5fVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQke3RoaXMuYWRkQ29uZGl0aW9uYWxseShcblx0XHRcdFx0XHRcdHRoaXMudGl0bGUgIT09IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdHhtbGA8Zjp0aXRsZT5cblx0XHRcdFx0XHRcdFx0PGNvcmU6VGl0bGUgbGV2ZWw9XCIke3RoaXMudGl0bGVMZXZlbH1cIiB0ZXh0PVwiJHt0aGlzLnRpdGxlfVwiIC8+XG5cdFx0XHRcdFx0XHQ8L2Y6dGl0bGU+YFxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PGY6bGF5b3V0PlxuXHRcdFx0XHRcdCR7dGhpcy5nZXRMYXlvdXRJbmZvcm1hdGlvbihpc1RleHRBcmVhQWxvbmUpfVxuXG5cdFx0XHRcdFx0PC9mOmxheW91dD5cblx0XHRcdFx0XHQ8Zjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHRcdCR7dGhpcy5nZXRGb3JtQ29udGFpbmVycygpfVxuXHRcdFx0XHRcdDwvZjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHQ8ZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHRcdFx0PGNvcmVDb250cm9sczpIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSAvPlxuXHRcdFx0XHRcdDwvZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHQ8L2Y6Rm9ybT5cblx0XHRcdDwvbWFjcm86Rm9ybUFQST5gO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVpBLElBbUJxQkEsU0FBUyxJQUFBQyxJQUFBLEdBTjdCQyxtQkFBbUIsQ0FBQztJQUNwQkMsSUFBSSxFQUFFLE1BQU07SUFDWkMsU0FBUyxFQUFF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
|
|
@@ -256,7 +256,10 @@ export default class FormBlock extends BuildingBlockTemplatingBase {
|
|
|
256
256
|
const titleLevel = FormHelper.getFormContainerTitleLevel(this.title, this.titleLevel);
|
|
257
257
|
const title = this.useFormContainerLabels && facet.Label ? getExpressionFromAnnotation(facet.Label) : "";
|
|
258
258
|
|
|
259
|
-
|
|
259
|
+
// Enhance: generate a stable form container id whenever we have a derived idPart even if this.id is undefined.
|
|
260
|
+
// Previous logic only generated when (implicitly) guarding by one condition; now we allow fallback to idPart.
|
|
261
|
+
// We still protect getFormContainerID from being called with an undefined idPart.
|
|
262
|
+
const id = (this.id !== undefined || idPart) && idPart ? getFormContainerID(idPart) : undefined;
|
|
260
263
|
|
|
261
264
|
return xml`
|
|
262
265
|
<macro:FormContainer
|
|
@@ -56,6 +56,9 @@
|
|
|
56
56
|
</template:repeat>
|
|
57
57
|
</Menu>
|
|
58
58
|
</menu>
|
|
59
|
+
<layoutData>
|
|
60
|
+
<OverflowToolbarLayoutData priority="{action>priority}" group="{action>group}" />
|
|
61
|
+
</layoutData>
|
|
59
62
|
</MenuButton>
|
|
60
63
|
</template:then>
|
|
61
64
|
<template:elseif test="{= ${action>type} === 'Default'}">
|
|
@@ -69,7 +72,11 @@
|
|
|
69
72
|
visible="{action>visible}"
|
|
70
73
|
enabled="{action>enabled}"
|
|
71
74
|
icon="{= ${action>isAIOperation} ? COMMON.getAIIcon() : undefined }"
|
|
72
|
-
|
|
75
|
+
>
|
|
76
|
+
<layoutData>
|
|
77
|
+
<OverflowToolbarLayoutData priority="{action>priority}" group="{action>group}" />
|
|
78
|
+
</layoutData>
|
|
79
|
+
</Button>
|
|
73
80
|
</template:elseif>
|
|
74
81
|
<template:else>
|
|
75
82
|
<Button
|
|
@@ -84,7 +91,11 @@
|
|
|
84
91
|
visible="{action>visible}"
|
|
85
92
|
enabled="{action>enabled}"
|
|
86
93
|
macrodata:IBNData="{action>customData}"
|
|
87
|
-
|
|
94
|
+
>
|
|
95
|
+
<layoutData>
|
|
96
|
+
<OverflowToolbarLayoutData priority="{action>priority}" group="{action>group}" />
|
|
97
|
+
</layoutData>
|
|
98
|
+
</Button>
|
|
88
99
|
</template:else>
|
|
89
100
|
</template:if>
|
|
90
101
|
</core:FragmentDefinition>
|
|
@@ -182,6 +182,46 @@
|
|
|
182
182
|
</f:fields>
|
|
183
183
|
</f:FormElement>
|
|
184
184
|
</template:elseif>
|
|
185
|
+
|
|
186
|
+
<template:elseif test="{annotationDataField>Target@@DataField.isFieldGroup}">
|
|
187
|
+
<f:FormElement
|
|
188
|
+
dt:designtime="{= ${annotationDataField>Value/$Path@com.sap.vocabularies.UI.v1.AdaptationHidden} ? 'not-adaptable-tree' : 'sap/fe/macros/form/FormElement.designtime' }"
|
|
189
|
+
id="{= ${this>id} ? ID.generate([${this>id}, 'FieldGroupFormElement', ${annotationDataField>@@UI.getDataModelObjectPath}]) : '' }"
|
|
190
|
+
visible="{= (${dataField>isPartOfPreview}) ? FieldTemplating.visibleExpressionsForConnectedFieldsFormElement(${annotationDataField>@@UI.getDataModelObjectPath}) : '{= ${internal>showDetails} === true}'}"
|
|
191
|
+
binding="{= FORM.generateBindingExpression(${this>navigationPath},${contextPath>@@UI.getDataModelObjectPath})}"
|
|
192
|
+
>
|
|
193
|
+
<f:label>
|
|
194
|
+
<Label
|
|
195
|
+
text="{annotationDataField>@@FIELD.computeLabelText}"
|
|
196
|
+
id="{= ${this>id} ? ID.generate([${this>id}, 'FieldGroupFormElementLabel', ${annotationDataField>@@UI.getDataModelObjectPath}]) : '' }"
|
|
197
|
+
/>
|
|
198
|
+
</f:label>
|
|
199
|
+
<f:fields>
|
|
200
|
+
<controls:RequiredFlexBox>
|
|
201
|
+
<FlexBox
|
|
202
|
+
direction="{= ${dataField>formatOptions/fieldGroupHorizontalLayout} ? 'Row' : 'Column'}"
|
|
203
|
+
wrap="Wrap"
|
|
204
|
+
columnGap="1rem"
|
|
205
|
+
>
|
|
206
|
+
<items>
|
|
207
|
+
<template:repeat
|
|
208
|
+
list="{annotationDataField>Target/$AnnotationPath/Data}"
|
|
209
|
+
var="element"
|
|
210
|
+
>
|
|
211
|
+
<template:if test="{element>@@DataField.isBooleanFieldGroupItem}">
|
|
212
|
+
<core:Fragment
|
|
213
|
+
fragmentName="sap.fe.macros.internal.field.CheckBoxGroup"
|
|
214
|
+
type="XML"
|
|
215
|
+
/>
|
|
216
|
+
</template:if>
|
|
217
|
+
</template:repeat>
|
|
218
|
+
</items>
|
|
219
|
+
</FlexBox>
|
|
220
|
+
</controls:RequiredFlexBox>
|
|
221
|
+
</f:fields>
|
|
222
|
+
</f:FormElement>
|
|
223
|
+
</template:elseif>
|
|
224
|
+
|
|
185
225
|
<template:else>
|
|
186
226
|
<f:FormElement
|
|
187
227
|
dt:designtime="{= ${annotationDataField>Value/$Path@com.sap.vocabularies.UI.v1.AdaptationHidden} ? 'not-adaptable-tree' : 'sap/fe/macros/form/FormElement.designtime' }"
|