@sapui5/sap.fe.macros 1.140.0 → 1.141.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Chart.js +53 -2
- package/src/sap/fe/macros/Chart.tsx +55 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
- package/src/sap/fe/macros/CommonHelper.js +59 -15
- package/src/sap/fe/macros/CommonHelper.ts +65 -14
- package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
- package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
- package/src/sap/fe/macros/Field.js +14 -10
- package/src/sap/fe/macros/Field.ts +15 -12
- package/src/sap/fe/macros/MacroAPI.js +9 -4
- package/src/sap/fe/macros/MacroAPI.ts +9 -4
- package/src/sap/fe/macros/MultiValueField.js +10 -5
- package/src/sap/fe/macros/MultiValueField.tsx +7 -1
- package/src/sap/fe/macros/Page.js +5 -7
- package/src/sap/fe/macros/Page.tsx +4 -6
- package/src/sap/fe/macros/Paginator.js +9 -4
- package/src/sap/fe/macros/Paginator.tsx +12 -3
- package/src/sap/fe/macros/RichTextEditor.js +3 -2
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
- package/src/sap/fe/macros/Status.js +38 -13
- package/src/sap/fe/macros/Status.tsx +26 -6
- package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
- package/src/sap/fe/macros/ai/EasyFilterBar.js +195 -55
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +234 -57
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
- package/src/sap/fe/macros/chart/Chart.js +2 -2
- package/src/sap/fe/macros/chart/Chart.tsx +1 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +4 -2
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +4 -1
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +2 -2
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +1 -1
- package/src/sap/fe/macros/controls/FilterBar.js +14 -5
- package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
- package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
- package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
- package/src/sap/fe/macros/controls/Section.js +4 -3
- package/src/sap/fe/macros/controls/Section.ts +3 -2
- package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
- package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
- package/src/sap/fe/macros/field/Field.js +2 -2
- package/src/sap/fe/macros/field/Field.tsx +1 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
- package/src/sap/fe/macros/field/FieldHelper.js +2 -2
- package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
- package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +232 -2
- package/src/sap/fe/macros/filter/FilterUtils.ts +290 -4
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
- package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
- package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
- package/src/sap/fe/macros/form/Form.block.js +7 -8
- package/src/sap/fe/macros/form/Form.block.ts +4 -6
- package/src/sap/fe/macros/form/FormContainer.block.js +555 -4
- package/src/sap/fe/macros/form/FormContainer.block.ts +665 -6
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
- package/src/sap/fe/macros/form/FormDelegate.js +6 -9
- package/src/sap/fe/macros/form/FormDelegate.ts +5 -8
- package/src/sap/fe/macros/internal/DataPoint.js +3 -2
- package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
- package/src/sap/fe/macros/internal/FilterField.block.js +16 -8
- package/src/sap/fe/macros/internal/FilterField.block.ts +11 -7
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +7 -1
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +8 -0
- package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +4 -1
- package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
- package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
- package/src/sap/fe/macros/messagebundle.properties +20 -2
- package/src/sap/fe/macros/messagebundle_ar.properties +1 -1
- package/src/sap/fe/macros/messagebundle_bg.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ca.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cnr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cs.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cy.properties +1 -1
- package/src/sap/fe/macros/messagebundle_da.properties +1 -1
- package/src/sap/fe/macros/messagebundle_de.properties +4 -4
- package/src/sap/fe/macros/messagebundle_el.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_es.properties +2 -2
- package/src/sap/fe/macros/messagebundle_es_MX.properties +1 -1
- package/src/sap/fe/macros/messagebundle_et.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hu.properties +1 -1
- package/src/sap/fe/macros/messagebundle_id.properties +5 -5
- package/src/sap/fe/macros/messagebundle_it.properties +1 -1
- package/src/sap/fe/macros/messagebundle_iw.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ja.properties +5 -5
- package/src/sap/fe/macros/messagebundle_kk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ko.properties +2 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +2 -2
- package/src/sap/fe/macros/messagebundle_lv.properties +1 -1
- package/src/sap/fe/macros/messagebundle_mk.properties +2 -2
- package/src/sap/fe/macros/messagebundle_ms.properties +1 -1
- package/src/sap/fe/macros/messagebundle_nl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_no.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pt.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ro.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ru.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sh.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sv.properties +1 -1
- package/src/sap/fe/macros/messagebundle_th.properties +1 -1
- package/src/sap/fe/macros/messagebundle_tr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_uk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_vi.properties +2 -2
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +1 -1
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +1 -1
- package/src/sap/fe/macros/messages/MessageButton.js +1 -1
- package/src/sap/fe/macros/messages/MessageButton.ts +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.js +3 -1
- package/src/sap/fe/macros/messages/MessagePopover.ts +2 -0
- package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -1
- package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
- package/src/sap/fe/macros/table/BasicSearch.js +1 -1
- package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
- package/src/sap/fe/macros/table/Column.js +14 -2
- package/src/sap/fe/macros/table/Column.ts +7 -0
- package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
- package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
- package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
- package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +5 -5
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +15 -9
- package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
- package/src/sap/fe/macros/table/Table.block.js +188 -147
- package/src/sap/fe/macros/table/Table.block.tsx +41 -11
- package/src/sap/fe/macros/table/Table.js +16 -10
- package/src/sap/fe/macros/table/Table.tsx +16 -10
- package/src/sap/fe/macros/table/TableAPI.js +224 -184
- package/src/sap/fe/macros/table/TableAPI.ts +63 -19
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
- package/src/sap/fe/macros/table/TableHelper.js +2 -2
- package/src/sap/fe/macros/table/TableHelper.ts +1 -1
- package/src/sap/fe/macros/table/TreeTable.js +16 -10
- package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
- package/src/sap/fe/macros/table/Utils.js +3 -2
- package/src/sap/fe/macros/table/Utils.ts +7 -2
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -33
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -32
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
- package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
- package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +4 -3
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +27 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +31 -13
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -1
|
@@ -374,7 +374,8 @@ async function _templateFilterField(
|
|
|
374
374
|
useSemanticDateRange: oParameters.bUseSemanticDateRange,
|
|
375
375
|
settings: oParameters.oSettings,
|
|
376
376
|
visualFilter: oParameters.visualFilter,
|
|
377
|
-
editMode: `{internal>/${sInFilterBarId}/filterFields/${oParameters.sPropertyName}/editMode}
|
|
377
|
+
editMode: `{internal>/${sInFilterBarId}/filterFields/${oParameters.sPropertyName}/editMode}`,
|
|
378
|
+
label: oParameters.label
|
|
378
379
|
});
|
|
379
380
|
try {
|
|
380
381
|
const oMetaModel = oParameters.oMetaModel as ODataMetaModel;
|
|
@@ -923,6 +924,7 @@ ODataFilterBarDelegate._addFlexItem = async function (
|
|
|
923
924
|
oControl: UI5Element;
|
|
924
925
|
visualFilter?: unknown;
|
|
925
926
|
view?: View;
|
|
927
|
+
label?: string;
|
|
926
928
|
};
|
|
927
929
|
|
|
928
930
|
return Promise.resolve()
|
|
@@ -975,7 +977,8 @@ ODataFilterBarDelegate._addFlexItem = async function (
|
|
|
975
977
|
bUseSemanticDateRange: sUseSemanticDateRange as unknown as boolean,
|
|
976
978
|
oSettings: oSelectionField?.settings ?? {},
|
|
977
979
|
visualFilter: oSelectionField?.visualFilter,
|
|
978
|
-
view
|
|
980
|
+
view,
|
|
981
|
+
label: oSelectionField?.label
|
|
979
982
|
};
|
|
980
983
|
|
|
981
984
|
return DelegateUtil.doesValueHelpExist(oParameters);
|
|
@@ -106,8 +106,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/viewState/IView
|
|
|
106
106
|
const appComponent = controller.getAppComponent();
|
|
107
107
|
const componentData = appComponent.getComponentData();
|
|
108
108
|
const startupParameters = componentData && componentData.startupParameters || {};
|
|
109
|
-
|
|
109
|
+
let variantStatus;
|
|
110
110
|
let filterVariantApplied = false;
|
|
111
|
+
|
|
112
|
+
// Only handle variant ID from URL parameters if applyVariantFromURLParams is true
|
|
113
|
+
if (navigationParameter.applyVariantFromURLParams ?? false) {
|
|
114
|
+
variantStatus = await this.handleVariantIdPassedViaURLParams(startupParameters);
|
|
115
|
+
}
|
|
111
116
|
if (variantStatus && variantStatus?.length > 0) {
|
|
112
117
|
// check if filter bar variant is applied or not.
|
|
113
118
|
if (variantStatus[0] === true || variantStatus[1] === true) {
|
|
@@ -156,4 +161,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/viewState/IView
|
|
|
156
161
|
_exports = FilterBarAPIStateHandler;
|
|
157
162
|
return _exports;
|
|
158
163
|
}, false);
|
|
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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
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXJBUElTdGF0ZUhhbmRsZXIiLCJfSVZpZXdTdGF0ZUNvbnRyaWJ1dG8iLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseUxlZ2FjeVN0YXRlIiwiZ2V0Q29udHJvbFN0YXRlIiwiX25hdlBhcmFtZXRlcnMiLCJzaG91bGRBcHBseURpZmZTdGF0ZSIsInNraXBNZXJnZSIsImZpbHRlckJhciIsImNvbnRlbnQiLCJmaWx0ZXJCYXJTdGF0ZSIsImNvbnRyb2xTdGF0ZSIsImlubmVyU3RhdGUiLCJmdWxsU3RhdGUiLCJpbml0aWFsU3RhdGUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiYXBwbHlTdGF0ZSIsIm5hdlBhcmFtZXRlciIsIm5hdmlnYXRpb25UeXBlIiwiTmF2VHlwZSIsImh5YnJpZCIsInVuZGVmaW5lZCIsInhBcHBTdGF0ZUZpbHRlcnMiLCJjb252ZXJ0U2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzIiwic2VsZWN0aW9uVmFyaWFudCIsIm1lcmdlZEZ1bGxTdGF0ZSIsImZpbHRlciIsIl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zIiwiY2xlYXJFZGl0RmlsdGVyIiwiU3RhdGVVdGlsIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiZGlmZlN0YXRlIiwiZXJyb3IiLCJMb2ciLCJfaW5pdGlhbFN0YXRlUHJvbWlzZSIsInJlc29sdmUiLCJyZXRyaWV2ZVN0YXRlIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwicHJvcGVydGllc0luZm8iLCJnZXRQcm9wZXJ0eUluZm9TZXQiLCJwcm9wZXJ0eUluZm8iLCJwYXRoIiwicmVtb3ZlRnJvbUFwcFN0YXRlIiwiZm9yRWFjaCIsIlByb3BlcnR5SW5mbyIsInNldEluaXRpYWxTdGF0ZSIsImluaXRpYWxDb250cm9sU3RhdGUiLCJlIiwiYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm5hdmlnYXRpb25QYXJhbWV0ZXIiLCJQcm9taXNlIiwidmlldyIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImNvbnRyb2xsZXIiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJjb21wb25lbnREYXRhIiwiZ2V0Q29tcG9uZW50RGF0YSIsInN0YXJ0dXBQYXJhbWV0ZXJzIiwidmFyaWFudFN0YXR1cyIsImZpbHRlclZhcmlhbnRBcHBsaWVkIiwiYXBwbHlWYXJpYW50RnJvbVVSTFBhcmFtcyIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImdldENvbnRlbnQiLCJzdiIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwicmVxU3RkVmFyaWFudCIsIl9hcHBseVNlbGVjdGlvblZhcmlhbnQiLCJiUHJldmVudEluaXRpYWxTZWFyY2giLCJ2YXJpYW50TWFuYWdlbWVudCIsIl9nZXRGaWx0ZXJCYXJWTSIsImluaXRpYWwiLCJnZXRWaWV3RGF0YSIsImluaXRpYWxMb2FkIiwiSW5pdGlhbExvYWRNb2RlIiwiRW5hYmxlZCIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsImZpbHRlckJhckFQSSIsImdldFBhcmVudCIsInRyaWdnZXJTZWFyY2giLCJfcHJldmVudEluaXRpYWxTZWFyY2giLCJEZXZpY2UiLCJzeXN0ZW0iLCJkZXNrdG9wIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsInNlYXJjaFRyaWdnZXJlZEJ5SW5pdGlhbExvYWQiLCJpc1NlYXJjaFRyaWdnZXJlZEJ5SW5pdGlhbExvYWQiLCJzZXRQcm9wZXJ0eSIsIl9lbmFibGVGaWx0ZXJCYXIiLCJ3YXJuaW5nIiwiSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yTWl4aW4iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZpbHRlckJhckFQSVN0YXRlSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgQ29udHJvbFN0YXRlLCBMZWdhY3lGaWx0ZXJCYXJTdGF0ZSwgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCBJVmlld1N0YXRlQ29udHJpYnV0b3JNaXhpbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvdmlld1N0YXRlL0lWaWV3U3RhdGVDb250cmlidXRvck1peGluXCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IEluaXRpYWxMb2FkTW9kZSB9IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1Byb3BlcnR5SW5mb1wiO1xuaW1wb3J0IHR5cGUgU2VsZWN0aW9uVmFyaWFudCBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vU2VsZWN0aW9uVmFyaWFudFwiO1xuaW1wb3J0IHsgTmF2VHlwZSB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBEZXZpY2UgZnJvbSBcInNhcC91aS9EZXZpY2VcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIFZhcmlhbnRNYW5hZ2VtZW50IGZyb20gXCJzYXAvdWkvZmwvdmFyaWFudHMvVmFyaWFudE1hbmFnZW1lbnRcIjtcbmltcG9ydCBTdGF0ZVV0aWwgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9TdGF0ZVV0aWxcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwiLi4vRmlsdGVyQmFyQVBJXCI7XG5pbXBvcnQgdHlwZSB7IEZpbHRlckJhclN0YXRlIH0gZnJvbSBcIi4uL0ZpbHRlckJhckFQSVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXJCYXJBUElTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBJVmlld1N0YXRlQ29udHJpYnV0b3JNaXhpbjxGaWx0ZXJCYXJTdGF0ZT4ge1xuXHRhc3luYyBhcHBseUxlZ2FjeVN0YXRlKFxuXHRcdHRoaXM6IEZpbHRlckJhckFQSSxcblx0XHRnZXRDb250cm9sU3RhdGU6IChjb250cm9sOiBNYW5hZ2VkT2JqZWN0KSA9PiBDb250cm9sU3RhdGUsXG5cdFx0X25hdlBhcmFtZXRlcnM/OiBOYXZpZ2F0aW9uUGFyYW1ldGVyLFxuXHRcdHNob3VsZEFwcGx5RGlmZlN0YXRlPzogYm9vbGVhbixcblx0XHRza2lwTWVyZ2U/OiBib29sZWFuXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGZpbHRlckJhciA9IHRoaXMuY29udGVudDtcblx0XHRjb25zdCBmaWx0ZXJCYXJTdGF0ZSA9IGdldENvbnRyb2xTdGF0ZShmaWx0ZXJCYXIpIGFzIHsgaW5pdGlhbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGU7IGZ1bGxTdGF0ZT86IExlZ2FjeUZpbHRlckJhclN0YXRlIH07XG5cdFx0Y29uc3QgY29udHJvbFN0YXRlOiBGaWx0ZXJCYXJTdGF0ZSA9IHt9O1xuXG5cdFx0aWYgKGZpbHRlckJhclN0YXRlKSB7XG5cdFx0XHRjb250cm9sU3RhdGUuaW5uZXJTdGF0ZSA9IHtcblx0XHRcdFx0Li4uZmlsdGVyQmFyU3RhdGUsXG5cdFx0XHRcdGZ1bGxTdGF0ZToge1xuXHRcdFx0XHRcdC4uLmNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5mdWxsU3RhdGUsXG5cdFx0XHRcdFx0Li4uZmlsdGVyQmFyU3RhdGUuZnVsbFN0YXRlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGluaXRpYWxTdGF0ZToge1xuXHRcdFx0XHRcdC4uLmNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5pbml0aWFsU3RhdGUsXG5cdFx0XHRcdFx0Li4uZmlsdGVyQmFyU3RhdGUuaW5pdGlhbFN0YXRlXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHRcdGlmIChjb250cm9sU3RhdGUgJiYgT2JqZWN0LmtleXMoY29udHJvbFN0YXRlKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmFwcGx5U3RhdGUoY29udHJvbFN0YXRlIGFzIG9iamVjdCwgX25hdlBhcmFtZXRlcnMsIHNob3VsZEFwcGx5RGlmZlN0YXRlLCBza2lwTWVyZ2UpO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGFwcGx5U3RhdGUoXG5cdFx0dGhpczogRmlsdGVyQmFyQVBJLFxuXHRcdGNvbnRyb2xTdGF0ZTogRmlsdGVyQmFyU3RhdGUsXG5cdFx0bmF2UGFyYW1ldGVyPzogTmF2aWdhdGlvblBhcmFtZXRlcixcblx0XHRzaG91bGRBcHBseURpZmZTdGF0ZT86IGJvb2xlYW4sXG5cdFx0c2tpcE1lcmdlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKGNvbnRyb2xTdGF0ZSAmJiBuYXZQYXJhbWV0ZXIpIHtcblx0XHRcdFx0Y29uc3QgbmF2aWdhdGlvblR5cGUgPSBuYXZQYXJhbWV0ZXIubmF2aWdhdGlvblR5cGU7XG5cdFx0XHRcdC8vV2hlbiBuYXZpZ2F0aW9uIHR5cGUgaXMgaHlicmlkLCB3ZSBvdmVycmlkZSB0aGUgZmlsdGVyIGNvbmRpdGlvbnMgaW4gSUFwcFN0YXRlIHdpdGggU1YgcmVjZWl2ZWQgZnJvbSBYYXBwU3RhdGVcblx0XHRcdFx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZUeXBlLmh5YnJpZCAmJiBjb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRjb25zdCB4QXBwU3RhdGVGaWx0ZXJzID0gYXdhaXQgdGhpcy5jb252ZXJ0U2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzKFxuXHRcdFx0XHRcdFx0bmF2UGFyYW1ldGVyLnNlbGVjdGlvblZhcmlhbnQgYXMgU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0Y29uc3QgbWVyZ2VkRnVsbFN0YXRlID0ge1xuXHRcdFx0XHRcdFx0Li4uY29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmZ1bGxTdGF0ZSxcblx0XHRcdFx0XHRcdGZpbHRlcjoge1xuXHRcdFx0XHRcdFx0XHQuLi5jb250cm9sU3RhdGUuaW5uZXJTdGF0ZT8uZnVsbFN0YXRlLmZpbHRlcixcblx0XHRcdFx0XHRcdFx0Li4ueEFwcFN0YXRlRmlsdGVyc1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0Ly93aGVuIG5hdmlnYXRpbmcgZnJvbSBjYXJkLCByZW1vdmUgYWxsIGV4aXN0aW5nIGZpbHRlcnMgdmFsdWVzIChkZWZhdWx0IG9yIG90aGVyd2lzZSkgYW5kIHRoZW4gYXBwbHkgdGhlIHN0YXRlXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5fY2xlYXJGaWx0ZXJWYWx1ZXNXaXRoT3B0aW9ucyh0aGlzLmNvbnRlbnQsIHsgY2xlYXJFZGl0RmlsdGVyOiB0cnVlIH0pO1xuXHRcdFx0XHRcdHJldHVybiBhd2FpdCBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKHRoaXMuY29udGVudCwgbWVyZ2VkRnVsbFN0YXRlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChzaG91bGRBcHBseURpZmZTdGF0ZSkge1xuXHRcdFx0XHRcdGNvbnN0IGRpZmZTdGF0ZTogb2JqZWN0ID0gYXdhaXQgU3RhdGVVdGlsLmRpZmZTdGF0ZShcblx0XHRcdFx0XHRcdHRoaXMuY29udGVudCxcblx0XHRcdFx0XHRcdGNvbnRyb2xTdGF0ZS5pbm5lclN0YXRlPy5pbml0aWFsU3RhdGUgYXMgb2JqZWN0LFxuXHRcdFx0XHRcdFx0Y29udHJvbFN0YXRlLmlubmVyU3RhdGU/LmZ1bGxTdGF0ZSBhcyBvYmplY3Rcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiBhd2FpdCBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKHRoaXMuY29udGVudCwgZGlmZlN0YXRlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChza2lwTWVyZ2UpIHtcblx0XHRcdFx0XHQvL3NraXBNZXJnZSBpcyB0cnVlIHdoZW4gY29taW5nIGZyb20gdGhlIGR5bmFtaWMgdGlsZSwgaW4gdGhpcyBjYXNlLCByZW1vdmUgYWxsIGV4aXN0aW5nIGZpbHRlcnMgdmFsdWVzIChkZWZhdWx0IG9yIG90aGVyd2lzZSlcblx0XHRcdFx0XHRhd2FpdCB0aGlzLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKHRoaXMuY29udGVudCwgeyBjbGVhckVkaXRGaWx0ZXI6IHRydWUgfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50LCBjb250cm9sU3RhdGU/LmlubmVyU3RhdGU/LmZ1bGxTdGF0ZSA/PyBjb250cm9sU3RhdGUpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRMb2cuZXJyb3IoZXJyb3IgYXMgc3RyaW5nKTtcblx0XHR9IGZpbmFsbHkge1xuXHRcdFx0dGhpcy5faW5pdGlhbFN0YXRlUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgcmV0cmlldmVTdGF0ZSh0aGlzOiBGaWx0ZXJCYXJBUEkpOiBQcm9taXNlPEZpbHRlckJhclN0YXRlIHwgbnVsbD4ge1xuXHRcdGNvbnN0IGZpbHRlckJhclN0YXRlOiBGaWx0ZXJCYXJTdGF0ZSA9IHt9O1xuXHRcdGZpbHRlckJhclN0YXRlLmlubmVyU3RhdGUgPSB0aGlzLmdldENvbnRyb2xTdGF0ZShhd2FpdCBTdGF0ZVV0aWwucmV0cmlldmVFeHRlcm5hbFN0YXRlKHRoaXMuY29udGVudCkpIGFzIHtcblx0XHRcdGluaXRpYWxTdGF0ZT86IExlZ2FjeUZpbHRlckJhclN0YXRlO1xuXHRcdFx0ZnVsbFN0YXRlPzogTGVnYWN5RmlsdGVyQmFyU3RhdGU7XG5cdFx0fTtcblx0XHQvLyByZW1vdmUgc2Vuc2l0aXZlIG9yIHZpZXcgc3RhdGUgaXJyZWxldmFudCBmaWVsZHNcblx0XHRjb25zdCBwcm9wZXJ0aWVzSW5mbyA9IHRoaXMuY29udGVudC5nZXRQcm9wZXJ0eUluZm9TZXQoKTtcblx0XHRjb25zdCBmaWx0ZXIgPSBmaWx0ZXJCYXJTdGF0ZS5pbm5lclN0YXRlPy5maWx0ZXIgfHwge307XG5cdFx0cHJvcGVydGllc0luZm9cblx0XHRcdC5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5SW5mbzogUHJvcGVydHlJbmZvICYgeyByZW1vdmVGcm9tQXBwU3RhdGU/OiBib29sZWFuIH0pIHtcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHRPYmplY3Qua2V5cyhmaWx0ZXIpLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUluZm8ucGF0aCAmJlxuXHRcdFx0XHRcdGZpbHRlcltwcm9wZXJ0eUluZm8ucGF0aF0gJiZcblx0XHRcdFx0XHQocHJvcGVydHlJbmZvLnJlbW92ZUZyb21BcHBTdGF0ZSB8fCBmaWx0ZXJbcHJvcGVydHlJbmZvLnBhdGhdLmxlbmd0aCA9PT0gMClcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0XHQuZm9yRWFjaChmdW5jdGlvbiAoUHJvcGVydHlJbmZvOiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0aWYgKFByb3BlcnR5SW5mby5wYXRoKSB7XG5cdFx0XHRcdFx0ZGVsZXRlIGZpbHRlcltQcm9wZXJ0eUluZm8ucGF0aF07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdHJldHVybiBmaWx0ZXJCYXJTdGF0ZTtcblx0fVxuXG5cdGFzeW5jIHNldEluaXRpYWxTdGF0ZSh0aGlzOiBGaWx0ZXJCYXJBUEkpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgaW5pdGlhbENvbnRyb2xTdGF0ZSA9IGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUodGhpcy5jb250ZW50KTtcblx0XHRcdHRoaXMuaW5pdGlhbENvbnRyb2xTdGF0ZSA9IGluaXRpYWxDb250cm9sU3RhdGU7XG5cdFx0fSBjYXRjaCAoZTogdW5rbm93bikge1xuXHRcdFx0TG9nLmVycm9yKGUgYXMgc3RyaW5nKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyBhcHBseU5hdmlnYXRpb25QYXJhbWV0ZXJzKHRoaXM6IEZpbHRlckJhckFQSSwgbmF2aWdhdGlvblBhcmFtZXRlcjogTmF2aWdhdGlvblBhcmFtZXRlcik6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSkgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKT8uZ2V0VmlldygpO1xuXHRcdFx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpO1xuXHRcdFx0XHRjb25zdCBhcHBDb21wb25lbnQgPSBjb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdFx0XHRjb25zdCBjb21wb25lbnREYXRhID0gYXBwQ29tcG9uZW50LmdldENvbXBvbmVudERhdGEoKTtcblx0XHRcdFx0Y29uc3Qgc3RhcnR1cFBhcmFtZXRlcnMgPSAoY29tcG9uZW50RGF0YSAmJiBjb21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRcdFx0bGV0IHZhcmlhbnRTdGF0dXM6IHVua25vd247XG5cdFx0XHRcdGxldCBmaWx0ZXJWYXJpYW50QXBwbGllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdC8vIE9ubHkgaGFuZGxlIHZhcmlhbnQgSUQgZnJvbSBVUkwgcGFyYW1ldGVycyBpZiBhcHBseVZhcmlhbnRGcm9tVVJMUGFyYW1zIGlzIHRydWVcblx0XHRcdFx0aWYgKG5hdmlnYXRpb25QYXJhbWV0ZXIuYXBwbHlWYXJpYW50RnJvbVVSTFBhcmFtcyA/PyBmYWxzZSkge1xuXHRcdFx0XHRcdHZhcmlhbnRTdGF0dXMgPSBhd2FpdCB0aGlzLmhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyhzdGFydHVwUGFyYW1ldGVycyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh2YXJpYW50U3RhdHVzICYmICh2YXJpYW50U3RhdHVzIGFzIFtdKT8ubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdC8vIGNoZWNrIGlmIGZpbHRlciBiYXIgdmFyaWFudCBpcyBhcHBsaWVkIG9yIG5vdC5cblx0XHRcdFx0XHRpZiAoKHZhcmlhbnRTdGF0dXMgYXMgYm9vbGVhbltdKVswXSA9PT0gdHJ1ZSB8fCAodmFyaWFudFN0YXR1cyBhcyBib29sZWFuW10pWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRmaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gaWYgdmFyaWFudCBmcm9tIFVSTCBkb2VzIG5vdCBleGlzdCBvciBkaWQgbm90IGFwcGx5IHByb3Blcmx5IHRoZW4gYXBwbHkgdG8gTFIgZWl0aGVyIGRlZmF1bHQgdmFyaWFudCBvciBzdGFuZGFyZCB2YXJpYW50IHJlcXVpcmVkLlxuXHRcdFx0XHRjb25zdCBmaWx0ZXJCYXIgPSB0aGlzLmdldENvbnRlbnQoKTtcblx0XHRcdFx0Y29uc3QgeyBzZWxlY3Rpb25WYXJpYW50OiBzdiwgcmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IHJlcVN0ZFZhcmlhbnQgPSBmYWxzZSB9ID0gbmF2aWdhdGlvblBhcmFtZXRlcjtcblxuXHRcdFx0XHRpZiAoIWZpbHRlckJhciB8fCAhc3YpIHtcblx0XHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YXdhaXQgdGhpcy5fYXBwbHlTZWxlY3Rpb25WYXJpYW50KHZpZXcsIG5hdmlnYXRpb25QYXJhbWV0ZXIsIGZpbHRlclZhcmlhbnRBcHBsaWVkKTtcblx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCB2YXJpYW50TWFuYWdlbWVudCA9IHRoaXMuX2dldEZpbHRlckJhclZNKHZpZXcpIGFzIFZhcmlhbnRNYW5hZ2VtZW50O1xuXHRcdFx0XHRpZiAoZmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiByZXFTdGRWYXJpYW50KSB8fFxuXHRcdFx0XHRcdFx0KCF2YXJpYW50TWFuYWdlbWVudCAmJiB2aWV3LmdldFZpZXdEYXRhKCkuaW5pdGlhbExvYWQgPT09IEluaXRpYWxMb2FkTW9kZS5FbmFibGVkKSB8fFxuXHRcdFx0XHRcdFx0KGNvbnRyb2xsZXIgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIpLl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCh2YXJpYW50TWFuYWdlbWVudClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0XHRcdFx0XHRmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRiUHJldmVudEluaXRpYWxTZWFyY2ggPSB0aGlzLl9wcmV2ZW50SW5pdGlhbFNlYXJjaCh2YXJpYW50TWFuYWdlbWVudCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vY29sbGFwc2Ugb3IgZXhwYW5kIHNoYWxsIGJlIGF2YWlsYWJsZSBvbmx5IGZvciBub24tZGVza3RvcCBzeXN0ZW1zXG5cdFx0XHRcdFx0aWYgKCFEZXZpY2Uuc3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2VhcmNoVHJpZ2dlcmVkQnlJbml0aWFsTG9hZCA9IHRoaXMuaXNTZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkKG5hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUpO1xuXHRcdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzZWFyY2hUcmlnZ2VyZWRCeUluaXRpYWxMb2FkXCIsIHNlYXJjaFRyaWdnZXJlZEJ5SW5pdGlhbExvYWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLl9lbmFibGVGaWx0ZXJCYXIoZmlsdGVyQmFyIGFzIEZpbHRlckJhciwgYlByZXZlbnRJbml0aWFsU2VhcmNoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRMb2cud2FybmluZyhcIkRpZCBub3QgZmluaXNoIGFwcGx5aW5nIG5hdmlnYXRpb24gcGFyYW1ldGVycyAtIEZpbHRlciBiYXIgbm90IGZvdW5kLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0XHRMb2cud2FybmluZyhcIkNvdWxkIG5vdCBhcHBseSBuYXZpZ2F0aW9uIHBhcmFtZXRlcnMuXCIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztNQWlCcUJBLHdCQUF3QiwwQkFBQUMscUJBQUE7SUFBQSxTQUFBRCx5QkFBQTtNQUFBLE9BQUFDLHFCQUFBLENBQUFDLEtBQUEsT0FB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
|
|
@@ -137,8 +137,13 @@ export default class FilterBarAPIStateHandler extends IViewStateContributorMixin
|
|
|
137
137
|
const appComponent = controller.getAppComponent();
|
|
138
138
|
const componentData = appComponent.getComponentData();
|
|
139
139
|
const startupParameters = (componentData && componentData.startupParameters) || {};
|
|
140
|
-
|
|
140
|
+
let variantStatus: unknown;
|
|
141
141
|
let filterVariantApplied = false;
|
|
142
|
+
|
|
143
|
+
// Only handle variant ID from URL parameters if applyVariantFromURLParams is true
|
|
144
|
+
if (navigationParameter.applyVariantFromURLParams ?? false) {
|
|
145
|
+
variantStatus = await this.handleVariantIdPassedViaURLParams(startupParameters as unknown as Record<string, string>);
|
|
146
|
+
}
|
|
142
147
|
if (variantStatus && (variantStatus as [])?.length > 0) {
|
|
143
148
|
// check if filter bar variant is applied or not.
|
|
144
149
|
if ((variantStatus as boolean[])[0] === true || (variantStatus as boolean[])[1] === true) {
|
|
@@ -172,9 +172,11 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
172
172
|
annotations: {},
|
|
173
173
|
fullyQualifiedName: oFacetDefinition.fullyQualifiedName
|
|
174
174
|
};
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
175
|
+
if (_this.formElements) {
|
|
176
|
+
mExtraSettings[oFacetDefinition.Target.value] = {
|
|
177
|
+
fields: _this.formElements
|
|
178
|
+
};
|
|
179
|
+
}
|
|
178
180
|
}
|
|
179
181
|
const oConverterContext = _this.getConverterContext(oContextObjectPath, /*this.contextPath*/undefined, mSettings, mExtraSettings);
|
|
180
182
|
const oFormDefinition = createFormDefinition(oFacetDefinition, _this.isVisible, oConverterContext);
|
|
@@ -355,8 +357,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
355
357
|
const onChangeStr = this.onChange && this.onChange.replace("{", "\\{").replace("}", "\\}") || "";
|
|
356
358
|
const metaPathPath = this.metaPath.getPath();
|
|
357
359
|
const contextPathPath = this.contextPath.getPath();
|
|
358
|
-
const contextObjectPath = getInvolvedDataModelObjects(this.metaPath, this.contextPath);
|
|
359
|
-
const entitySet = contextObjectPath.contextLocation?.targetEntitySet?._type === "EntitySet" ? "{contextPath>@sapui.name}" : undefined;
|
|
360
360
|
const isTextAreaAlone = this.checkIfTextAreaIsAlone();
|
|
361
361
|
if (!this.isVisible) {
|
|
362
362
|
return "";
|
|
@@ -378,10 +378,9 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
378
378
|
dt:designtime="sap/fe/macros/form/Form.designtime"
|
|
379
379
|
id="${this._contentId}"
|
|
380
380
|
editable="${this._editable}"
|
|
381
|
-
macrodata:entitySet="${entitySet}"
|
|
382
381
|
visible="${this.isVisible}"
|
|
383
|
-
class="sapUxAPObjectPageSubSectionAlignContent"
|
|
384
382
|
macrodata:navigationPath="${contextPathPath}"
|
|
383
|
+
macrodata:metaPath="${metaPathPath}"
|
|
385
384
|
macrodata:onChange="${onChangeStr}"
|
|
386
385
|
ariaLabelledBy="${this.ariaLabelledBy}"
|
|
387
386
|
>
|
|
@@ -491,4 +490,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/buildingBlocks/templat
|
|
|
491
490
|
_exports = FormBlock;
|
|
492
491
|
return _exports;
|
|
493
492
|
}, 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+YFxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PGY6bGF5b3V0PlxuXHRcdFx0XHRcdCR7dGhpcy5nZXRMYXlvdXRJbmZvcm1hdGlvbihpc1RleHRBcmVhQWxvbmUpfVxuXG5cdFx0XHRcdFx0PC9mOmxheW91dD5cblx0XHRcdFx0XHQ8Zjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHRcdCR7dGhpcy5nZXRGb3JtQ29udGFpbmVycygpfVxuXHRcdFx0XHRcdDwvZjpmb3JtQ29udGFpbmVycz5cblx0XHRcdFx0XHQ8ZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHRcdFx0PGNvcmVDb250cm9sczpIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSAvPlxuXHRcdFx0XHRcdDwvZjpkZXBlbmRlbnRzPlxuXHRcdFx0XHQ8L2Y6Rm9ybT5cblx0XHRcdDwvbWFjcm86Rm9ybUFQST5gO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVpBLElBbUJxQkEsU0FBUyxJQUFBQyxJQUFBLEdBTjdCQyxtQkFBbUIsQ0FBQztJQUNwQkMsSUFBSSxFQUFFLE1BQU07SUFDWkMsU0FBUyxFQUFFLHdCQUF3QjtJQUNuQ0MsZUFBZSxFQUFFLGVBQWU7SUFDaENDLFdBQVcsRUFBRSxDQUFDLDRCQUE0QjtFQUMzQyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUtBQyxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFLElBQUk7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FRbEVKLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCRSxRQUFRLEVBQUUsSUFBSTtJQUNkRCxRQUFRLEVBQUUsSUFBSTtJQUNkRyxhQUFhLEVBQUUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFlBQVk7RUFDN0UsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FP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
|
|
493
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtQmxvY2siLCJfZGVjIiwiZGVmaW5lQnVpbGRpbmdCbG9jayIsIm5hbWUiLCJuYW1lc3BhY2UiLCJwdWJsaWNOYW1lc3BhY2UiLCJyZXR1cm5UeXBlcyIsIl9kZWMyIiwiYmxvY2tBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNQdWJsaWMiLCJyZXF1aXJlZCIsIl9kZWMzIiwiZXhwZWN0ZWRUeXBlcyIsIl9kZWM0IiwiZXhwZWN0ZWRBbm5vdGF0aW9uVHlwZXMiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiYmxvY2tFdmVudCIsIl9kZWMxNCIsImJsb2NrQWdncmVnYXRpb24iLCJzbG90IiwiaXNEZWZhdWx0IiwiX2RlYzE1IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrVGVtcGxhdCIsInByb3BzIiwiY29uZmlndXJhdGlvbiIsIm1TZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJmb3JtQ29udGFpbmVycyIsInVuZGVmaW5lZCIsIm9Db250ZXh0T2JqZWN0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsIm1FeHRyYVNldHRpbmdzIiwib0ZhY2V0RGVmaW5pdGlvbiIsInRhcmdldE9iamVjdCIsImhhc0ZpZWxkR3JvdXAiLCIkVHlwZSIsIkxhYmVsIiwiVGFyZ2V0IiwiJHRhcmdldCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInBhdGgiLCJ0ZXJtIiwidmFsdWUiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwiYW5ub3RhdGlvbnMiLCJmb3JtRWxlbWVudHMiLCJmaWVsZHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJvRm9ybURlZmluaXRpb24iLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImlzVmlzaWJsZSIsImFubm90YXRpb25QYXRoIiwiZ2V0UGF0aCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJmYWNldFR5cGUiLCJnZXRPYmplY3QiLCJfYXBpSWQiLCJjcmVhdGVJZCIsIl9jb250ZW50SWQiLCJpZCIsImRpc3BsYXlNb2RlIiwiX2VkaXRhYmxlIiwiY29tcGlsZUV4cHJlc3Npb24iLCJpZkVsc2UiLCJlcXVhbCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiVUkiLCJJc0VkaXRhYmxlIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImdldERhdGFGaWVsZENvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVyIiwiZmFjZXRDb250ZXh0IiwiZmFjZXQiLCJuYXZpZ2F0aW9uUGF0aCIsImlkUGFydCIsIkFubm90YXRpb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsImNvbnRleHRQYXRoUGF0aCIsImZhY2V0UGF0aCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjaGFyQXQiLCJzbGljZSIsInRpdGxlTGV2ZWwiLCJGb3JtSGVscGVyIiwiZ2V0Rm9ybUNvbnRhaW5lclRpdGxlTGV2ZWwiLCJ0aXRsZSIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldEZvcm1Db250YWluZXJJRCIsInhtbCIsImF0dHIiLCJlbnRpdHlTZXQiLCJvbkNoYW5nZSIsImFjdGlvbnMiLCJ1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3RlcyIsImFubm90YXRpb25IaWRkZW4iLCJnZXRGb3JtQ29udGFpbmVycyIsImluY2x1ZGVzIiwibWFwIiwiZm9ybUNvbnRhaW5lcklkeCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJpc1JlZmVyZW5jZUZhY2V0UGFydE9mUHJldmlldyIsInBhcnRPZlByZXZpZXciLCIkQW5ub3RhdGlvblBhdGgiLCJjaGVja0lmVGV4dEFyZWFJc0Fsb25lIiwiZmllbGRHcm91cCIsImlkZW50aWZpY2F0aW9uIiwiaGFzRmllbGRHcm91cFRhcmdldCIsImhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0IiwiRGF0YSIsIlZhbHVlIiwiTXVsdGlMaW5lVGV4dCIsInZhbHVlT2YiLCJnZXRMYXlvdXRJbmZvcm1hdGlvbiIsImlzVGV4dEFyZWFBbG9uZSIsImxheW91dCIsImFkanVzdExhYmVsU3BhbiIsImJyZWFrcG9pbnRMIiwiYnJlYWtwb2ludE0iLCJicmVha3BvaW50WEwiLCJjb2x1bW5zTCIsImNvbHVtbnNNIiwiY29sdW1uc1hMIiwiZW1wdHlTcGFuTCIsImVtcHR5U3Bhbk0iLCJlbXB0eVNwYW5TIiwiZW1wdHlTcGFuWEwiLCJsYWJlbFNwYW5MIiwibGFiZWxTcGFuTSIsImxhYmVsU3BhblMiLCJsYWJlbFNwYW5YTCIsInNpbmdsZUNvbnRhaW5lckZ1bGxTaXplIiwiYmFja2dyb3VuZERlc2lnbiIsImxhYmVsQ2VsbHNMYXJnZSIsImVtcHR5Q2VsbHNMYXJnZSIsImdldFRlbXBsYXRlIiwib25DaGFuZ2VTdHIiLCJyZXBsYWNlIiwibWV0YVBhdGhQYXRoIiwiYXJpYUxhYmVsbGVkQnkiLCJhZGRDb25kaXRpb25hbGx5IiwiQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIiwiVGl0bGVMZXZlbCIsIkF1dG8iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvcm0uYmxvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbXVuaWNhdGlvblwiO1xuaW1wb3J0IHR5cGUge1xuXHRDb2xsZWN0aW9uRmFjZXQsXG5cdERhdGFGaWVsZCxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cFR5cGUsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRSZWZlcmVuY2VGYWNldFxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBlcXVhbCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCBpZkVsc2UsIHJlc29sdmVCaW5kaW5nU3RyaW5nIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7XG5cdGJsb2NrQWdncmVnYXRpb24sXG5cdGJsb2NrQXR0cmlidXRlLFxuXHRibG9ja0V2ZW50LFxuXHRkZWZpbmVCdWlsZGluZ0Jsb2NrXG59IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IHhtbCB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2VcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgaGFzRmllbGRHcm91cFRhcmdldCwgaGFzSWRlbnRpZmljYXRpb25UYXJnZXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB0eXBlIHsgRm9ybUNvbnRhaW5lciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9Gb3JtXCI7XG5pbXBvcnQgeyBjcmVhdGVGb3JtRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9Gb3JtXCI7XG5pbXBvcnQgeyBnZXRGb3JtQ29udGFpbmVySUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgeyBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7IGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgRm9ybUhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm1IZWxwZXJcIjtcbmltcG9ydCB7IFRpdGxlTGV2ZWwgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyAkQ29sdW1uTGF5b3V0U2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0NvbHVtbkxheW91dFwiO1xuaW1wb3J0IHR5cGUgeyAkUmVzcG9uc2l2ZUdyaWRMYXlvdXRTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vUmVzcG9uc2l2ZUdyaWRMYXlvdXRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgQW5ub3RhdGlvbkhlbHBlciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0Fubm90YXRpb25IZWxwZXJcIjtcblxudHlwZSBDb2x1bW5MYXlvdXQgPSAkQ29sdW1uTGF5b3V0U2V0dGluZ3MgJiB7XG5cdHR5cGU6IFwiQ29sdW1uTGF5b3V0XCI7XG59O1xudHlwZSBSZXNwb25zaXZlR3JpZExheW91dCA9ICRSZXNwb25zaXZlR3JpZExheW91dFNldHRpbmdzICYge1xuXHR0eXBlOiBcIlJlc3BvbnNpdmVHcmlkTGF5b3V0XCI7XG59O1xudHlwZSBGb3JtTGF5b3V0SW5mb3JtYXRpb24gPSBDb2x1bW5MYXlvdXQgfCBSZXNwb25zaXZlR3JpZExheW91dDtcblxuLyoqXG4gKiBCdWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBGb3JtIGJhc2VkIG9uIHRoZSBtZXRhZGF0YSBwcm92aWRlZCBieSBPRGF0YSBWNC5cbiAqIDxicj5cbiAqIEl0IGlzIGRlc2lnbmVkIHRvIHdvcmsgYmFzZWQgb24gYSBGaWVsZEdyb3VwIGFubm90YXRpb24gYnV0IGNhbiBhbHNvIHdvcmsgaWYgeW91IHByb3ZpZGUgYSBSZWZlcmVuY2VGYWNldCBvciBhIENvbGxlY3Rpb25GYWNldFxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNyb3M6Rm9ybSBpZD1cIk15Rm9ybVwiIG1ldGFQYXRoPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXAjR2VuZXJhbEluZm9ybWF0aW9uXCIgLyZndDtcbiAqIDwvcHJlPlxuICogQGFsaWFzIHNhcC5mZS5tYWNyb3MuRm9ybVxuICogQHB1YmxpY1xuICovXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7XG5cdG5hbWU6IFwiRm9ybVwiLFxuXHRuYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiLFxuXHRwdWJsaWNOYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRyZXR1cm5UeXBlczogW1wic2FwLmZlLm1hY3Jvcy5mb3JtLkZvcm1BUElcIl1cbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2Uge1xuXHQvKipcblx0ICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZvcm0gY29udHJvbC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIsIGlzUHVibGljOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRpZCE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcGF0aCBvZiB0aGUgY29udGV4dCB1c2VkIGluIHRoZSBjdXJyZW50IHBhZ2Ugb3IgYmxvY2suXG5cdCAqIFRoaXMgc2V0dGluZyBpcyBkZWZpbmVkIGJ5IHRoZSBmcmFtZXdvcmsuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGlzUHVibGljOiB0cnVlLFxuXHRcdGV4cGVjdGVkVHlwZXM6IFtcIkVudGl0eVNldFwiLCBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiLCBcIlNpbmdsZXRvblwiLCBcIkVudGl0eVR5cGVcIl1cblx0fSlcblx0Y29udGV4dFBhdGghOiBDb250ZXh0O1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgbWV0YW1vZGVsLCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0UGF0aC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWUsXG5cdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0ZXhwZWN0ZWRBbm5vdGF0aW9uVHlwZXM6IFtcblx0XHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmllbGRHcm91cFR5cGVcIixcblx0XHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ29sbGVjdGlvbkZhY2V0XCIsXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlJlZmVyZW5jZUZhY2V0XCJcblx0XHRdLFxuXHRcdGV4cGVjdGVkVHlwZXM6IFtcIkVudGl0eVNldFwiLCBcIkVudGl0eVR5cGVcIiwgXCJTaW5nbGV0b25cIiwgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIl1cblx0fSlcblx0bWV0YVBhdGghOiBDb250ZXh0O1xuXG5cdC8qKlxuXHQgKiBUaGUgbWFuaWZlc3QgZGVmaW5lZCBmb3JtIGNvbnRhaW5lcnMgdG8gYmUgc2hvd24gaW4gdGhlIGFjdGlvbiBhcmVhIG9mIHRoZSB0YWJsZVxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJhcnJheVwiIH0pXG5cdGZvcm1Db250YWluZXJzPzogRm9ybUNvbnRhaW5lcltdO1xuXG5cdC8qKlxuXHQgKiBDb250cm9sIHRoZSByZW5kZXJpbmcgb2YgdGhlIGZvcm0gY29udGFpbmVyIGxhYmVsc1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0dXNlRm9ybUNvbnRhaW5lckxhYmVscz86IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFRvZ2dsZSBQcmV2aWV3OiBQYXJ0IG9mIFByZXZpZXcgLyBQcmV2aWV3IHZpYSAnU2hvdyBNb3JlJyBCdXR0b25cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHBhcnRPZlByZXZpZXcgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGl0bGUgb2YgdGhlIGZvcm0gY29udHJvbC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiwgaXNQdWJsaWM6IHRydWUgfSlcblx0dGl0bGU/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIFwiYXJpYS1sZXZlbFwiIG9mIHRoZSBmb3JtIHRpdGxlLCB0aXRsZXMgb2YgaW50ZXJuYWxseSB1c2VkIGZvcm0gY29udGFpbmVycyBhcmUgbmVzdGVkIHN1YnNlcXVlbnRseVxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzYXAudWkuY29yZS5UaXRsZUxldmVsXCIsIGlzUHVibGljOiB0cnVlIH0pXG5cdHRpdGxlTGV2ZWw6IFRpdGxlTGV2ZWwgPSBUaXRsZUxldmVsLkF1dG87XG5cblx0LyoqXG5cdCAqIFByb3BlcnR5IGFkZGVkIHRvIGFzc29jaWF0ZSB0aGUgc3VwZXJvcmRpbmF0ZSB0aXRsZVxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRwdWJsaWMgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmdbXTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGRpc3BsYXlNb2RlPzogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cblx0LyoqXG5cdCAqIFx0SWYgc2V0IHRvIGZhbHNlLCB0aGUgRm9ybSBpcyBub3QgcmVuZGVyZWQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGlzVmlzaWJsZSA9IFwidHJ1ZVwiO1xuXHQvLyBJbmRlcGVuZGVudCBmcm9tIHRoZSBmb3JtIHRpdGxlLCBjYW4gYmUgYSBiaXQgY29uZnVzaW5nIGluIHN0YW5kYWxvbmUgdXNhZ2UgYXQgaXMgbm90IHNob3dpbmcgYW55dGhpbmcgYnkgZGVmYXVsdFxuXG5cdC8vIEp1c3QgcHJveGllZCBkb3duIHRvIHRoZSBGaWVsZCBtYXkgbmVlZCB0byBzZWUgaWYgbmVlZGVkIG9yIG5vdFxuXHRAYmxvY2tFdmVudCgpXG5cdG9uQ2hhbmdlPzogc3RyaW5nO1xuXG5cdEBibG9ja0FnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLmZvcm0uRm9ybUVsZW1lbnRcIiwgaXNQdWJsaWM6IHRydWUsIHNsb3Q6IFwiZm9ybUVsZW1lbnRzXCIsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRmb3JtRWxlbWVudHM/OiBvYmplY3RbXTtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbGF5b3V0IHRvIGJlIHVzZWQgd2l0aGluIHRoZSBmb3JtLlxuXHQgKiBJdCBkZWZhdWx0cyB0byB0aGUgQ29sdW1uTGF5b3V0LCBidXQgeW91IGNhbiBhbHNvIHVzZSBhIFJlc3BvbnNpdmVHcmlkTGF5b3V0LlxuXHQgKiBBbGwgdGhlIHByb3BlcnRpZXMgb2YgdGhlIFJlc3BvbnNpdmVHcmlkTGF5b3V0IGNhbiBiZSBhZGRlZCB0byB0aGUgY29uZmlndXJhdGlvbi5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwib2JqZWN0XCIsIGlzUHVibGljOiB0cnVlIH0pXG5cdGxheW91dDogRm9ybUxheW91dEluZm9ybWF0aW9uID0geyB0eXBlOiBcIkNvbHVtbkxheW91dFwiLCBjb2x1bW5zTTogMywgY29sdW1uc1hMOiA2LCBjb2x1bW5zTDogNCwgbGFiZWxDZWxsc0xhcmdlOiAxMiB9O1xuXG5cdC8vIFVzZWZ1bCBmb3Igb3VyIGR5bmFtaWMgdGhpbmcgYnV0IGFsc28gZGVwZW5kcyBvbiB0aGUgbWV0YWRhdGEgLT4gbWFrZSBzdXJlIHRoaXMgaXMgdGFrZW4gaW50byBhY2NvdW50XG5cdF9lZGl0YWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cblx0X2FwaUlkOiBzdHJpbmc7XG5cblx0X2NvbnRlbnRJZDogc3RyaW5nO1xuXG5cdGZhY2V0VHlwZT86IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZvcm1CbG9jaz4sIGNvbmZpZ3VyYXRpb246IHVua25vd24sIG1TZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BzLCBjb25maWd1cmF0aW9uLCBtU2V0dGluZ3MpO1xuXHRcdGlmICh0aGlzLm1ldGFQYXRoICYmIHRoaXMuY29udGV4dFBhdGggJiYgKHRoaXMuZm9ybUNvbnRhaW5lcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmZvcm1Db250YWluZXJzID09PSBudWxsKSkge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHRPYmplY3RQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPEZpZWxkR3JvdXBUeXBlIHwgQ29sbGVjdGlvbkZhY2V0IHwgUmVmZXJlbmNlRmFjZXQ+KFxuXHRcdFx0XHR0aGlzLm1ldGFQYXRoLFxuXHRcdFx0XHR0aGlzLmNvbnRleHRQYXRoXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgbUV4dHJhU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cdFx0XHRsZXQgb0ZhY2V0RGVmaW5pdGlvbiA9IG9Db250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRsZXQgaGFzRmllbGRHcm91cCA9IGZhbHNlO1xuXHRcdFx0aWYgKG9GYWNldERlZmluaXRpb24gJiYgb0ZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRmllbGRHcm91cFR5cGUpIHtcblx0XHRcdFx0Ly8gV3JhcCB0aGUgZmFjZXQgaW4gYSBmYWtlIEZhY2V0IGFubm90YXRpb25cblx0XHRcdFx0aGFzRmllbGRHcm91cCA9IHRydWU7XG5cdFx0XHRcdG9GYWNldERlZmluaXRpb24gPSB7XG5cdFx0XHRcdFx0JFR5cGU6IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0LFxuXHRcdFx0XHRcdExhYmVsOiBvRmFjZXREZWZpbml0aW9uLkxhYmVsLFxuXHRcdFx0XHRcdFRhcmdldDoge1xuXHRcdFx0XHRcdFx0JHRhcmdldDogb0ZhY2V0RGVmaW5pdGlvbixcblx0XHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogb0ZhY2V0RGVmaW5pdGlvbi5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdFx0XHRwYXRoOiBcIlwiLFxuXHRcdFx0XHRcdFx0dGVybTogXCJcIixcblx0XHRcdFx0XHRcdHR5cGU6IFwiQW5ub3RhdGlvblBhdGhcIixcblx0XHRcdFx0XHRcdHZhbHVlOiBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKG9Db250ZXh0T2JqZWN0UGF0aClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFubm90YXRpb25zOiB7fSxcblx0XHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IG9GYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lXG5cdFx0XHRcdH0gYXMgdW5rbm93biBhcyBSZWZlcmVuY2VGYWNldDtcblx0XHRcdFx0aWYgKHRoaXMuZm9ybUVsZW1lbnRzKSB7XG5cdFx0XHRcdFx0bUV4dHJhU2V0dGluZ3Nbb0ZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWVdID0geyBmaWVsZHM6IHRoaXMuZm9ybUVsZW1lbnRzIH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgb0NvbnZlcnRlckNvbnRleHQgPSB0aGlzLmdldENvbnZlcnRlckNvbnRleHQoXG5cdFx0XHRcdG9Db250ZXh0T2JqZWN0UGF0aCxcblx0XHRcdFx0Lyp0aGlzLmNvbnRleHRQYXRoKi8gdW5kZWZpbmVkLFxuXHRcdFx0XHRtU2V0dGluZ3MsXG5cdFx0XHRcdG1FeHRyYVNldHRpbmdzXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3Qgb0Zvcm1EZWZpbml0aW9uID0gY3JlYXRlRm9ybURlZmluaXRpb24ob0ZhY2V0RGVmaW5pdGlvbiwgdGhpcy5pc1Zpc2libGUsIG9Db252ZXJ0ZXJDb250ZXh0KTtcblx0XHRcdGlmIChoYXNGaWVsZEdyb3VwKSB7XG5cdFx0XHRcdG9Gb3JtRGVmaW5pdGlvbi5mb3JtQ29udGFpbmVyc1swXS5hbm5vdGF0aW9uUGF0aCA9IHRoaXMubWV0YVBhdGguZ2V0UGF0aCgpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5mb3JtQ29udGFpbmVycyA9IG9Gb3JtRGVmaW5pdGlvbi5mb3JtQ29udGFpbmVycztcblx0XHRcdHRoaXMudXNlRm9ybUNvbnRhaW5lckxhYmVscyA9IG9Gb3JtRGVmaW5pdGlvbi51c2VGb3JtQ29udGFpbmVyTGFiZWxzO1xuXHRcdFx0dGhpcy5mYWNldFR5cGUgPSBvRmFjZXREZWZpbml0aW9uICYmIChvRmFjZXREZWZpbml0aW9uLiRUeXBlIGFzIHN0cmluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZmFjZXRUeXBlID0gdGhpcy5tZXRhUGF0aC5nZXRPYmplY3QoKT8uJFR5cGU7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmlzUHVibGljKSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuY3JlYXRlSWQoXCJGb3JtXCIpITtcblx0XHRcdHRoaXMuX2NvbnRlbnRJZCA9IHRoaXMuaWQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2FwaUlkID0gdGhpcy5pZDtcblx0XHRcdHRoaXMuX2NvbnRlbnRJZCA9IGAke3RoaXMuaWR9LWNvbnRlbnRgO1xuXHRcdH1cblx0XHQvLyBpZiBkaXNwbGF5TW9kZSA9PT0gdHJ1ZSAtPiBfZWRpdGFibGUgPSBmYWxzZVxuXHRcdC8vIGlmIGRpc3BsYXlNb2RlID09PSBmYWxzZSAtPiBfZWRpdGFibGUgPSB0cnVlXG5cdFx0Ly8gID0+IGlmIGRpc3BsYXlNb2RlID09PSB7bXlCaW5kaW5nVmFsdWV9IC0+IF9lZGl0YWJsZSA9IHtteUJpbmRpbmdWYWx1ZX0gPT09IHRydWUgPyB0cnVlIDogZmFsc2Vcblx0XHQvLyBpZiBEaXNwbGF5TW9kZSA9PT0gdW5kZWZpbmVkIC0+IF9lZGl0YWJsZSA9IHt1aT4vaXNFZGl0YWJsZX1cblx0XHRpZiAodGhpcy5kaXNwbGF5TW9kZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aGlzLl9lZGl0YWJsZSA9IGNvbXBpbGVFeHByZXNzaW9uKGlmRWxzZShlcXVhbChyZXNvbHZlQmluZGluZ1N0cmluZyh0aGlzLmRpc3BsYXlNb2RlLCBcImJvb2xlYW5cIiksIGZhbHNlKSwgdHJ1ZSwgZmFsc2UpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fZWRpdGFibGUgPSBjb21waWxlRXhwcmVzc2lvbihVSS5Jc0VkaXRhYmxlKTtcblx0XHR9XG5cdH1cblxuXHRnZXREYXRhRmllbGRDb2xsZWN0aW9uKGZvcm1Db250YWluZXI6IEZvcm1Db250YWluZXIsIGZhY2V0Q29udGV4dDogQ29udGV4dCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZmFjZXQgPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMoZmFjZXRDb250ZXh0KS50YXJnZXRPYmplY3QgYXMgRmFjZXRUeXBlcztcblx0XHRsZXQgbmF2aWdhdGlvblBhdGg7XG5cdFx0bGV0IGlkUGFydDtcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0KSB7XG5cdFx0XHRuYXZpZ2F0aW9uUGF0aCA9IEFubm90YXRpb25IZWxwZXIuZ2V0TmF2aWdhdGlvblBhdGgoZmFjZXQuVGFyZ2V0LnZhbHVlKTtcblx0XHRcdGlkUGFydCA9IGZhY2V0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBjb250ZXh0UGF0aFBhdGggPSB0aGlzLmNvbnRleHRQYXRoLmdldFBhdGgoKTtcblx0XHRcdGxldCBmYWNldFBhdGggPSBmYWNldENvbnRleHQuZ2V0UGF0aCgpO1xuXHRcdFx0aWYgKGZhY2V0UGF0aC5zdGFydHNXaXRoKGNvbnRleHRQYXRoUGF0aCkpIHtcblx0XHRcdFx0ZmFjZXRQYXRoID0gZmFjZXRQYXRoLnN1YnN0cmluZyhjb250ZXh0UGF0aFBhdGgubGVuZ3RoKTtcblx0XHRcdFx0aWYgKGZhY2V0UGF0aC5jaGFyQXQoMCkgPT09IFwiL1wiKSB7XG5cdFx0XHRcdFx0ZmFjZXRQYXRoID0gZmFjZXRQYXRoLnNsaWNlKDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRuYXZpZ2F0aW9uUGF0aCA9IEFubm90YXRpb25IZWxwZXIuZ2V0TmF2aWdhdGlvblBhdGgoZmFjZXRQYXRoKTtcblx0XHRcdGlkUGFydCA9IGZhY2V0UGF0aDtcblx0XHR9XG5cdFx0Y29uc3QgdGl0bGVMZXZlbCA9IEZvcm1IZWxwZXIuZ2V0Rm9ybUNvbnRhaW5lclRpdGxlTGV2ZWwodGhpcy50aXRsZSwgdGhpcy50aXRsZUxldmVsKTtcblx0XHRjb25zdCB0aXRsZSA9IHRoaXMudXNlRm9ybUNvbnRhaW5lckxhYmVscyAmJiBmYWNldC5MYWJlbCA/IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihmYWNldC5MYWJlbCkgOiBcIlwiO1xuXG5cdFx0Y29uc3QgaWQgPSB0aGlzLmlkID8gZ2V0Rm9ybUNvbnRhaW5lcklEKGlkUGFydCkgOiB1bmRlZmluZWQ7XG5cblx0XHRyZXR1cm4geG1sYFxuXHRcdFx0XHRcdDxtYWNybzpGb3JtQ29udGFpbmVyXG5cdFx0XHRcdFx0eG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcblx0XHRcdFx0XHQke3RoaXMuYXR0cihcImlkXCIsIGlkKX1cblx0XHRcdFx0XHR0aXRsZT1cIiR7dGl0bGV9XCJcblx0XHRcdFx0XHR0aXRsZUxldmVsPVwiJHt0aXRsZUxldmVsfVwiXG5cdFx0XHRcdFx0Y29udGV4dFBhdGg9XCIke25hdmlnYXRpb25QYXRoID8gZm9ybUNvbnRhaW5lci5lbnRpdHlTZXQgOiB0aGlzLmNvbnRleHRQYXRofVwiXG5cdFx0XHRcdFx0bWV0YVBhdGg9XCIke2ZhY2V0Q29udGV4dH1cIlxuXHRcdFx0XHRcdGRhdGFGaWVsZENvbGxlY3Rpb249XCIke2Zvcm1Db250YWluZXIuZm9ybUVsZW1lbnRzfVwiXG5cdFx0XHRcdFx0bmF2aWdhdGlvblBhdGg9XCIke25hdmlnYXRpb25QYXRofVwiXG5cdFx0XHRcdFx0dmlzaWJsZT1cIiR7Zm9ybUNvbnRhaW5lci5pc1Zpc2libGV9XCJcblx0XHRcdFx0XHRkaXNwbGF5TW9kZT1cIiR7dGhpcy5kaXNwbGF5TW9kZX1cIlxuXHRcdFx0XHRcdG9uQ2hhbmdlPVwiJHt0aGlzLm9uQ2hhbmdlfVwiXG5cdFx0XHRcdFx0YWN0aW9ucz1cIiR7Zm9ybUNvbnRhaW5lci5hY3Rpb25zfVwiXG5cdFx0XHRcdFx0dXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXM9XCIke2Zvcm1Db250YWluZXIudXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXN9XCJcblx0XHRcdFx0XHRoYXNVaUhpZGRlbkFubm90YXRpb249XCIke2Zvcm1Db250YWluZXIuYW5ub3RhdGlvbkhpZGRlbn1cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdDxtYWNybzpmb3JtRWxlbWVudHM+XG5cdFx0XHRcdFx0PHNsb3QgbmFtZT1cImZvcm1FbGVtZW50c1wiIC8+XG5cdFx0XHRcdDwvbWFjcm86Zm9ybUVsZW1lbnRzPlxuXHRcdFx0PC9tYWNybzpGb3JtQ29udGFpbmVyPmA7XG5cdH1cblxuXHRnZXRGb3JtQ29udGFpbmVycygpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG5cdFx0aWYgKHRoaXMuZm9ybUNvbnRhaW5lcnMhLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmZhY2V0VHlwZT8uaW5jbHVkZXMoXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db2xsZWN0aW9uRmFjZXRcIikpIHtcblx0XHRcdHJldHVybiB0aGlzLmZvcm1Db250YWluZXJzIS5tYXAoKGZvcm1Db250YWluZXIsIGZvcm1Db250YWluZXJJZHgpID0+IHtcblx0XHRcdFx0aWYgKGZvcm1Db250YWluZXIuaXNWaXNpYmxlKSB7XG5cdFx0XHRcdFx0Y29uc3QgZmFjZXRDb250ZXh0ID0gdGhpcy5jb250ZXh0UGF0aC5nZXRNb2RlbCgpLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGZvcm1Db250YWluZXIuYW5ub3RhdGlvblBhdGgsIHRoaXMuY29udGV4dFBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IGZhY2V0ID0gZmFjZXRDb250ZXh0LmdldE9iamVjdCgpO1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdGZhY2V0LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCAmJlxuXHRcdFx0XHRcdFx0Rm9ybUhlbHBlci5pc1JlZmVyZW5jZUZhY2V0UGFydE9mUHJldmlldyhmYWNldCwgdGhpcy5wYXJ0T2ZQcmV2aWV3KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0aWYgKGZhY2V0LlRhcmdldC4kQW5ub3RhdGlvblBhdGguJFR5cGUgPT09IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMuQWRkcmVzc1R5cGUpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHhtbGA8dGVtcGxhdGU6d2l0aCBwYXRoPVwiZm9ybUNvbnRhaW5lcnM+JHtmb3JtQ29udGFpbmVySWR4fVwiIHZhcj1cImZvcm1Db250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGU6d2l0aCBwYXRoPVwiZm9ybUNvbnRhaW5lcnM+JHtmb3JtQ29udGFpbmVySWR4fS9hbm5vdGF0aW9uUGF0aFwiIHZhcj1cImZhY2V0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8Y29yZTpGcmFnbWVudCBmcmFnbWVudE5hbWU9XCJzYXAuZmUubWFjcm9zLmZvcm0uQWRkcmVzc1NlY3Rpb25cIiB0eXBlPVwiWE1MXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3RlbXBsYXRlOndpdGg+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6d2l0aD5gO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YUZpZWxkQ29sbGVjdGlvbihmb3JtQ29udGFpbmVyLCBmYWNldENvbnRleHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5mYWNldFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUmVmZXJlbmNlRmFjZXRcIikge1xuXHRcdFx0cmV0dXJuIHRoaXMuZm9ybUNvbnRhaW5lcnMhLm1hcCgoZm9ybUNvbnRhaW5lcikgPT4ge1xuXHRcdFx0XHRpZiAoZm9ybUNvbnRhaW5lci5pc1Zpc2libGUpIHtcblx0XHRcdFx0XHRjb25zdCBmYWNldENvbnRleHQgPSB0aGlzLmNvbnRleHRQYXRoLmdldE1vZGVsKCkuY3JlYXRlQmluZGluZ0NvbnRleHQoZm9ybUNvbnRhaW5lci5hbm5vdGF0aW9uUGF0aCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YUZpZWxkQ29sbGVjdGlvbihmb3JtQ29udGFpbmVyLCBmYWNldENvbnRleHQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMgVHJ1ZSBpZiBhIHRleHRhcmVhIGlzIGFsb25lIGluIGEgZm9ybVxuXHQgKi9cblx0Y2hlY2tJZlRleHRBcmVhSXNBbG9uZSgpOiBib29sZWFuIHtcblx0XHRpZiAodGhpcy5mb3JtQ29udGFpbmVycyEubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRpZiAodGhpcy5mb3JtQ29udGFpbmVycyFbMF0uZm9ybUVsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRjb25zdCBmYWNldCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhcblx0XHRcdFx0XHR0aGlzLmNvbnRleHRQYXRoLmdldE1vZGVsKCkuY3JlYXRlQmluZGluZ0NvbnRleHQodGhpcy5mb3JtQ29udGFpbmVycyFbMF0uYW5ub3RhdGlvblBhdGgsIHRoaXMuY29udGV4dFBhdGgpXG5cdFx0XHRcdCkudGFyZ2V0T2JqZWN0IGFzIEZpZWxkR3JvdXBUeXBlIHwgUmVmZXJlbmNlRmFjZXQ7XG5cdFx0XHRcdGxldCBmaWVsZEdyb3VwOiBGaWVsZEdyb3VwVHlwZSB8IHVuZGVmaW5lZDtcblx0XHRcdFx0bGV0IGlkZW50aWZpY2F0aW9uOiBJZGVudGlmaWNhdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdFx0Ly8gVGhpcyBpcyBvbmx5IGZvciBtYWNyb3M6Zm9ybSB3aXRoIGEgRmllbGRHcm91cCB0aGF0IGNvbnRhaW5zIG9ubHkgYSBUZXh0QXJlYVxuXHRcdFx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmllbGRHcm91cFR5cGVcIikge1xuXHRcdFx0XHRcdGZpZWxkR3JvdXAgPSBmYWNldDtcblx0XHRcdFx0fSBlbHNlIGlmIChoYXNGaWVsZEdyb3VwVGFyZ2V0KGZhY2V0KSkge1xuXHRcdFx0XHRcdGZpZWxkR3JvdXAgPSBmYWNldD8uVGFyZ2V0Py4kdGFyZ2V0IGFzIEZpZWxkR3JvdXBUeXBlO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGhhc0lkZW50aWZpY2F0aW9uVGFyZ2V0KGZhY2V0KSkge1xuXHRcdFx0XHRcdGlkZW50aWZpY2F0aW9uID0gZmFjZXQ/LlRhcmdldD8uJHRhcmdldCBhcyBJZGVudGlmaWNhdGlvbjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChmaWVsZEdyb3VwPy5EYXRhLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdHJldHVybiAoZmllbGRHcm91cC5EYXRhWzBdIGFzIERhdGFGaWVsZCk/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChpZGVudGlmaWNhdGlvbj8ubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0cmV0dXJuIChpZGVudGlmaWNhdGlvblswXSBhcyBEYXRhRmllbGQpPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5NdWx0aUxpbmVUZXh0Py52YWx1ZU9mKCkgPT09IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSB0aGUgcHJvcGVyIGxheW91dCBpbmZvcm1hdGlvbiBiYXNlZCBvbiB0aGUgYGxheW91dGAgcHJvcGVydHkgZGVmaW5lZCBleHRlcm5hbGx5LlxuXHQgKiBAcGFyYW0gaXNUZXh0QXJlYUFsb25lIFdoZXRoZXIgdGhlIHNlY3Rpb24gY29udGFpbnMgYSBsb25lbHkgVGV4dEFyZWEgaW5zaWRlXG5cdCAqIEByZXR1cm5zIFRoZSBsYXlvdXQgaW5mb3JtYXRpb24gZm9yIHRoZSB4bWwuXG5cdCAqL1xuXHRnZXRMYXlvdXRJbmZvcm1hdGlvbihpc1RleHRBcmVhQWxvbmU6IGJvb2xlYW4pOiBzdHJpbmcge1xuXHRcdHN3aXRjaCAodGhpcy5sYXlvdXQudHlwZSkge1xuXHRcdFx0Y2FzZSBcIlJlc3BvbnNpdmVHcmlkTGF5b3V0XCI6XG5cdFx0XHRcdHJldHVybiB4bWxgPGY6UmVzcG9uc2l2ZUdyaWRMYXlvdXQgYWRqdXN0TGFiZWxTcGFuPVwiJHt0aGlzLmxheW91dC5hZGp1c3RMYWJlbFNwYW59XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludEw9XCIke3RoaXMubGF5b3V0LmJyZWFrcG9pbnRMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnRNPVwiJHt0aGlzLmxheW91dC5icmVha3BvaW50TX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha3BvaW50WEw9XCIke3RoaXMubGF5b3V0LmJyZWFrcG9pbnRYTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zTD1cIiR7aXNUZXh0QXJlYUFsb25lID8gMSA6IHRoaXMubGF5b3V0LmNvbHVtbnNMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNNPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc019XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sdW1uc1hMPVwiJHtpc1RleHRBcmVhQWxvbmUgPyAxIDogdGhpcy5sYXlvdXQuY29sdW1uc1hMfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVtcHR5U3Bhbkw9XCIke3RoaXMubGF5b3V0LmVtcHR5U3Bhbkx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW1wdHlTcGFuTT1cIiR7dGhpcy5sYXlvdXQuZW1wdHlTcGFuTX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbXB0eVNwYW5TPVwiJHt0aGlzLmxheW91dC5lbXB0eVNwYW5TfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVtcHR5U3BhblhMPVwiJHt0aGlzLmxheW91dC5lbXB0eVNwYW5YTH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbFNwYW5MPVwiJHt0aGlzLmxheW91dC5sYWJlbFNwYW5MfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsU3Bhbk09XCIke3RoaXMubGF5b3V0LmxhYmVsU3Bhbk19XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWxTcGFuUz1cIiR7dGhpcy5sYXlvdXQubGFiZWxTcGFuU31cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbFNwYW5YTD1cIiR7dGhpcy5sYXlvdXQubGFiZWxTcGFuWEx9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2luZ2xlQ29udGFpbmVyRnVsbFNpemU9XCIke3RoaXMubGF5b3V0LnNpbmdsZUNvbnRhaW5lckZ1bGxTaXplfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmREZXNpZ249XCIke3RoaXMubGF5b3V0LmJhY2tncm91bmREZXNpZ259XCIgLz5gO1xuXHRcdFx0Y2FzZSBcIkNvbHVtbkxheW91dFwiOlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIHhtbGA8ZjpDb2x1bW5MYXlvdXRcblx0XHRcdFx0XHRcdFx0XHRjb2x1bW5zTT1cIiR7aXNUZXh0QXJlYUFsb25lID8gMSA6IHRoaXMubGF5b3V0LmNvbHVtbnNNfVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29sdW1uc0w9XCIke2lzVGV4dEFyZWFBbG9uZSA/IDEgOiB0aGlzLmxheW91dC5jb2x1bW5zTH1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbHVtbnNYTD1cIiR7aXNUZXh0QXJlYUFsb25lID8gMSA6IHRoaXMubGF5b3V0LmNvbHVtbnNYTH1cIlxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsQ2VsbHNMYXJnZT1cIiR7dGhpcy5sYXlvdXQubGFiZWxDZWxsc0xhcmdlfVwiXG5cdFx0XHRcdFx0XHRcdFx0ZW1wdHlDZWxsc0xhcmdlPVwiJHt0aGlzLmxheW91dC5lbXB0eUNlbGxzTGFyZ2V9XCJcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kRGVzaWduPVwiJHt0aGlzLmxheW91dC5iYWNrZ3JvdW5kRGVzaWdufVwiIC8+YDtcblx0XHR9XG5cdH1cblxuXHRnZXRUZW1wbGF0ZSgpOiBzdHJpbmcge1xuXHRcdGNvbnN0IG9uQ2hhbmdlU3RyID0gKHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZS5yZXBsYWNlKFwie1wiLCBcIlxcXFx7XCIpLnJlcGxhY2UoXCJ9XCIsIFwiXFxcXH1cIikpIHx8IFwiXCI7XG5cdFx0Y29uc3QgbWV0YVBhdGhQYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0Y29uc3QgY29udGV4dFBhdGhQYXRoID0gdGhpcy5jb250ZXh0UGF0aC5nZXRQYXRoKCk7XG5cdFx0Y29uc3QgaXNUZXh0QXJlYUFsb25lID0gdGhpcy5jaGVja0lmVGV4dEFyZWFJc0Fsb25lKCk7XG5cblx0XHRpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHhtbGA8bWFjcm86Rm9ybUFQSSB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3MuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6bWFjcm9kYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiXG5cdFx0XHRcdFx0eG1sbnM6Zj1cInNhcC51aS5sYXlvdXQuZm9ybVwiXG5cdFx0XHRcdFx0eG1sbnM6Zmw9XCJzYXAudWkuZmxcIlxuXHRcdFx0XHRcdHhtbG5zOmR0PVwic2FwLnVpLmR0XCJcblx0XHRcdFx0XHR4bWxuczpjb3JlQ29udHJvbHM9XCJzYXAuZmUuY29yZS5jb250cm9sc1wiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2FwaUlkfVwiXG5cdFx0XHRcdFx0bWV0YVBhdGg9XCIke21ldGFQYXRoUGF0aH1cIlxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPVwiJHtjb250ZXh0UGF0aFBhdGh9XCI+XG5cdFx0XHRcdDxmOkZvcm1cblx0XHRcdFx0XHRmbDpkZWxlZ2F0ZT0ne1xuXHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm1EZWxlZ2F0ZVwiLFxuXHRcdFx0XHRcdFx0XCJkZWxlZ2F0ZVR5cGVcIjogXCJjb21wbGV0ZVwiXG5cdFx0XHRcdFx0fSdcblx0XHRcdFx0XHRkdDpkZXNpZ250aW1lPVwic2FwL2ZlL21hY3Jvcy9mb3JtL0Zvcm0uZGVzaWdudGltZVwiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuX2NvbnRlbnRJZH1cIlxuXHRcdFx0XHRcdGVkaXRhYmxlPVwiJHt0aGlzLl9lZGl0YWJsZX1cIlxuXHRcdFx0XHRcdHZpc2libGU9XCIke3RoaXMuaXNWaXNpYmxlfVwiXG5cdFx0XHRcdFx0bWFjcm9kYXRhOm5hdmlnYXRpb25QYXRoPVwiJHtjb250ZXh0UGF0aFBhdGh9XCJcblx0XHRcdFx0XHRtYWNyb2RhdGE6bWV0YVBhdGg9XCIke21ldGFQYXRoUGF0aH1cIlxuXHRcdFx0XHRcdG1hY3JvZGF0YTpvbkNoYW5nZT1cIiR7b25DaGFuZ2VTdHJ9XCJcblx0XHRcdFx0XHRhcmlhTGFiZWxsZWRCeT1cIiR7dGhpcy5hcmlhTGFiZWxsZWRCeX1cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0JHt0aGlzLmFkZENvbmRpdGlvbmFsbHkoXG5cdFx0XHRcdFx0XHR0aGlzLnRpdGxlICE9PSB1bmRlZmluZWQsXG5cdFx0XHRcdFx0XHR4bWxgPGY6dGl0bGU+XG5cdFx0XHRcdFx0XHRcdDxjb3JlOlRpdGxlIGxldmVsPVwiJHt0aGlzLnRpdGxlTGV2ZWx9XCIgdGV4dD1cIiR7dGhpcy50aXRsZX1cIiAvPlxuXHRcdFx0XHRcdFx0PC9mOnRpdGxlPmBcblx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdDxmOmxheW91dD5cblx0XHRcdFx0XHQke3RoaXMuZ2V0TGF5b3V0SW5mb3JtYXRpb24oaXNUZXh0QXJlYUFsb25lKX1cblxuXHRcdFx0XHRcdDwvZjpsYXlvdXQ+XG5cdFx0XHRcdFx0PGY6Zm9ybUNvbnRhaW5lcnM+XG5cdFx0XHRcdFx0XHQke3RoaXMuZ2V0Rm9ybUNvbnRhaW5lcnMoKX1cblx0XHRcdFx0XHQ8L2Y6Zm9ybUNvbnRhaW5lcnM+XG5cdFx0XHRcdFx0PGY6ZGVwZW5kZW50cz5cblx0XHRcdFx0XHRcdDxjb3JlQ29udHJvbHM6SGlkZUZvcm1Hcm91cEF1dG9tYXRpY2FsbHkgLz5cblx0XHRcdFx0XHQ8L2Y6ZGVwZW5kZW50cz5cblx0XHRcdFx0PC9mOkZvcm0+XG5cdFx0XHQ8L21hY3JvOkZv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
|
|
@@ -196,7 +196,9 @@ export default class FormBlock extends BuildingBlockTemplatingBase {
|
|
|
196
196
|
annotations: {},
|
|
197
197
|
fullyQualifiedName: oFacetDefinition.fullyQualifiedName
|
|
198
198
|
} as unknown as ReferenceFacet;
|
|
199
|
-
|
|
199
|
+
if (this.formElements) {
|
|
200
|
+
mExtraSettings[oFacetDefinition.Target.value] = { fields: this.formElements };
|
|
201
|
+
}
|
|
200
202
|
}
|
|
201
203
|
|
|
202
204
|
const oConverterContext = this.getConverterContext(
|
|
@@ -392,9 +394,6 @@ export default class FormBlock extends BuildingBlockTemplatingBase {
|
|
|
392
394
|
const onChangeStr = (this.onChange && this.onChange.replace("{", "\\{").replace("}", "\\}")) || "";
|
|
393
395
|
const metaPathPath = this.metaPath.getPath();
|
|
394
396
|
const contextPathPath = this.contextPath.getPath();
|
|
395
|
-
const contextObjectPath = getInvolvedDataModelObjects(this.metaPath, this.contextPath);
|
|
396
|
-
const entitySet =
|
|
397
|
-
contextObjectPath.contextLocation?.targetEntitySet?._type === "EntitySet" ? "{contextPath>@sapui.name}" : undefined;
|
|
398
397
|
const isTextAreaAlone = this.checkIfTextAreaIsAlone();
|
|
399
398
|
|
|
400
399
|
if (!this.isVisible) {
|
|
@@ -417,10 +416,9 @@ export default class FormBlock extends BuildingBlockTemplatingBase {
|
|
|
417
416
|
dt:designtime="sap/fe/macros/form/Form.designtime"
|
|
418
417
|
id="${this._contentId}"
|
|
419
418
|
editable="${this._editable}"
|
|
420
|
-
macrodata:entitySet="${entitySet}"
|
|
421
419
|
visible="${this.isVisible}"
|
|
422
|
-
class="sapUxAPObjectPageSubSectionAlignContent"
|
|
423
420
|
macrodata:navigationPath="${contextPathPath}"
|
|
421
|
+
macrodata:metaPath="${metaPathPath}"
|
|
424
422
|
macrodata:onChange="${onChangeStr}"
|
|
425
423
|
ariaLabelledBy="${this.ariaLabelledBy}"
|
|
426
424
|
>
|