@sapui5/sap.fe.macros 1.138.0 → 1.140.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/Breadcrumbs.js +269 -0
- package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
- package/src/sap/fe/macros/CommonHelper.js +2 -2
- package/src/sap/fe/macros/CommonHelper.ts +1 -1
- package/src/sap/fe/macros/Field.js +85 -58
- package/src/sap/fe/macros/Field.ts +104 -60
- package/src/sap/fe/macros/FooterContent.js +44 -11
- package/src/sap/fe/macros/FooterContent.tsx +48 -9
- package/src/sap/fe/macros/FormElement.js +2 -2
- package/src/sap/fe/macros/FormElement.ts +1 -2
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +17 -6
- package/src/sap/fe/macros/MultiValueField.tsx +7 -4
- package/src/sap/fe/macros/RichTextEditor.js +30 -5
- package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
- package/src/sap/fe/macros/Share.js +85 -40
- package/src/sap/fe/macros/Share.tsx +42 -1
- package/src/sap/fe/macros/Status.js +226 -0
- package/src/sap/fe/macros/Status.tsx +192 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -29
- package/src/sap/fe/macros/ValueHelp.tsx +2 -43
- package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
- package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
- package/src/sap/fe/macros/ai/EasyFilterBar.js +123 -114
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +140 -124
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
- package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
- package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
- package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
- package/src/sap/fe/macros/controls/FilterBar.js +49 -2
- package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
- package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +39 -2
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +39 -0
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
- package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
- package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
- package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
- package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
- package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
- package/src/sap/fe/macros/form/FormDelegate.js +20 -1
- package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
- package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/DataPoint.js +2 -1
- package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
- package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
- package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
- package/src/sap/fe/macros/internal/FilterField.block.js +10 -2
- package/src/sap/fe/macros/internal/FilterField.block.ts +11 -1
- package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +51 -13
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +53 -6
- package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +11 -0
- package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +16 -5
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +21 -9
- package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
- package/src/sap/fe/macros/messagebundle.properties +42 -32
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -4
- package/src/sap/fe/macros/messagebundle_bg.properties +11 -3
- package/src/sap/fe/macros/messagebundle_ca.properties +15 -7
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_cs.properties +10 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -4
- package/src/sap/fe/macros/messagebundle_da.properties +11 -3
- package/src/sap/fe/macros/messagebundle_de.properties +18 -10
- package/src/sap/fe/macros/messagebundle_el.properties +13 -5
- package/src/sap/fe/macros/messagebundle_en.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_GB.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +16 -8
- package/src/sap/fe/macros/messagebundle_es.properties +13 -5
- package/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
- package/src/sap/fe/macros/messagebundle_et.properties +13 -5
- package/src/sap/fe/macros/messagebundle_fi.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +15 -7
- package/src/sap/fe/macros/messagebundle_hi.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hu.properties +10 -2
- package/src/sap/fe/macros/messagebundle_id.properties +18 -10
- package/src/sap/fe/macros/messagebundle_it.properties +10 -2
- package/src/sap/fe/macros/messagebundle_iw.properties +10 -2
- package/src/sap/fe/macros/messagebundle_ja.properties +13 -5
- package/src/sap/fe/macros/messagebundle_kk.properties +15 -7
- package/src/sap/fe/macros/messagebundle_ko.properties +10 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +11 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -4
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ms.properties +14 -6
- package/src/sap/fe/macros/messagebundle_nl.properties +13 -5
- package/src/sap/fe/macros/messagebundle_no.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pt.properties +13 -5
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ro.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +13 -5
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sk.properties +11 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sv.properties +11 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -3
- package/src/sap/fe/macros/messagebundle_tr.properties +10 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +17 -9
- package/src/sap/fe/macros/messagebundle_vi.properties +12 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +11 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -4
- package/src/sap/fe/macros/messages/MessageButton.js +55 -36
- package/src/sap/fe/macros/messages/MessageButton.ts +64 -39
- package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/Action.js +24 -2
- package/src/sap/fe/macros/table/Action.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroup.js +24 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
- package/src/sap/fe/macros/table/Column.js +3 -3
- package/src/sap/fe/macros/table/Column.ts +2 -2
- package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +36 -7
- package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
- package/src/sap/fe/macros/table/Table.block.js +137 -108
- package/src/sap/fe/macros/table/Table.block.tsx +29 -2
- package/src/sap/fe/macros/table/TableAPI.js +143 -133
- package/src/sap/fe/macros/table/TableAPI.ts +5 -1
- package/src/sap/fe/macros/table/TableDefinition.js +4 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
- package/src/sap/fe/macros/table/TableHelper.js +1 -2
- package/src/sap/fe/macros/table/TableHelper.ts +0 -1
- package/src/sap/fe/macros/table/TableRuntime.js +26 -7
- package/src/sap/fe/macros/table/TableRuntime.ts +33 -5
- package/src/sap/fe/macros/table/Utils.js +6 -2
- package/src/sap/fe/macros/table/Utils.ts +5 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -20
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -24
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +8 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +10 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +20 -6
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +36 -14
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -7
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +16 -5
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +18 -4
|
@@ -2,8 +2,8 @@ import Log from "sap/base/Log";
|
|
|
2
2
|
import type { PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
3
3
|
import { association, defineUI5Class, property } from "sap/fe/base/ClassSupport";
|
|
4
4
|
import FilterContainer from "sap/fe/macros/controls/filterbar/FilterContainer";
|
|
5
|
-
import type VisualFilter from "sap/fe/macros/controls/filterbar/VisualFilter";
|
|
6
5
|
import VisualFilterContainer from "sap/fe/macros/controls/filterbar/VisualFilterContainer";
|
|
6
|
+
import type VisualFilter from "sap/fe/macros/visualfilters/VisualFilter";
|
|
7
7
|
import type Button from "sap/m/Button";
|
|
8
8
|
import type SegmentedButton from "sap/m/SegmentedButton";
|
|
9
9
|
import type Control from "sap/ui/core/Control";
|
|
@@ -13,6 +13,12 @@ import MdcFilterBar from "sap/ui/mdc/FilterBar";
|
|
|
13
13
|
import type FilterField from "sap/ui/mdc/FilterField";
|
|
14
14
|
import type IFilterContainer from "sap/ui/mdc/filterbar/IFilterContainer";
|
|
15
15
|
import FilterItemLayout from "sap/ui/mdc/filterbar/aligned/FilterItemLayout";
|
|
16
|
+
import { type ExternalStateType } from "../valuehelp/ValueHelpDelegate";
|
|
17
|
+
import VisualFilterUtils from "./filterbar/utils/VisualFilterUtils";
|
|
18
|
+
|
|
19
|
+
const VISUAL_FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.VisualFilterContainer",
|
|
20
|
+
FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.FilterContainer";
|
|
21
|
+
type ContainerType = typeof VISUAL_FILTER_CONTAINER | typeof FILTER_CONTAINER;
|
|
16
22
|
|
|
17
23
|
@defineUI5Class("sap.fe.macros.controls.FilterBar")
|
|
18
24
|
class FilterBar extends MdcFilterBar {
|
|
@@ -195,6 +201,54 @@ class FilterBar extends MdcFilterBar {
|
|
|
195
201
|
getSegmentedButton(): SegmentedButton | undefined {
|
|
196
202
|
return this._oSegmentedButton;
|
|
197
203
|
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Enable or disable requests that are initiated by the FilterBar.
|
|
207
|
+
*
|
|
208
|
+
* To be used to suspend or resume requests(table or visual filters) when the filter bar is being modified or when the user is programmatically interacting with the filter controls.
|
|
209
|
+
* This method is also used to control whether the visual filter chart binding should be resumed/suspended based on the diff state, and resumed after conditon model update.
|
|
210
|
+
* @param enable Enable or disable requests
|
|
211
|
+
* @param diffState If there is a differnce in the external state that needs to be considered for visual filter in-parameters
|
|
212
|
+
*/
|
|
213
|
+
enableRequests(enable: boolean, diffState?: ExternalStateType): void {
|
|
214
|
+
this.setSuspendSelection(!enable);
|
|
215
|
+
// We need to enable or disable the visual filter chart bindings based on diff state.
|
|
216
|
+
this._enableVisualFilterChartBindings(enable, diffState);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Get the filter layout by its type.
|
|
221
|
+
* @param layoutClassName The class name of the filter layout to be returned.
|
|
222
|
+
* @template T The type of the filter layout to be returned.
|
|
223
|
+
* @typedef {IFilterContainer} T The type of the filter layout to be returned
|
|
224
|
+
* @returns Corresponding filter layout if it exists, otherwise undefined.
|
|
225
|
+
*/
|
|
226
|
+
_getFilterLayoutByType<T extends IFilterContainer>(layoutClassName: ContainerType): T | undefined {
|
|
227
|
+
const retFilterLayout = this._oFilterBarLayout.isA<T>(layoutClassName) ? this._oFilterBarLayout : undefined;
|
|
228
|
+
return !retFilterLayout && this._oSecondaryFilterBarLayout?.isA<T>(layoutClassName)
|
|
229
|
+
? this._oSecondaryFilterBarLayout
|
|
230
|
+
: retFilterLayout;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
_enableVisualFilterChartBindings(enable: boolean, diffState?: ExternalStateType): void {
|
|
234
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
const visualFilterLayout = this._getFilterLayoutByType<VisualFilterContainer>(VISUAL_FILTER_CONTAINER);
|
|
237
|
+
if (visualFilterLayout) {
|
|
238
|
+
visualFilterLayout.enableChartBinding(enable, diffState);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// If initial layout is compact, we don't have the visual filter layout(container) available yet until the user toggles to visual filter layout.
|
|
243
|
+
// So we need to check if the compact filter layout has visual filters and enable/disable the chart binding for those visual filters.
|
|
244
|
+
const compactFilterLayout = this._getFilterLayoutByType<FilterContainer>(FILTER_CONTAINER);
|
|
245
|
+
if (compactFilterLayout) {
|
|
246
|
+
const visualFilters = compactFilterLayout.getAllVisualFilterFields();
|
|
247
|
+
if (visualFilters) {
|
|
248
|
+
VisualFilterUtils.enableChartBinding(visualFilters, enable, diffState);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
198
252
|
}
|
|
199
253
|
interface FilterBar {
|
|
200
254
|
_addButtons(): void;
|
|
@@ -42,7 +42,7 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
_proto.shouldBeVisible = function shouldBeVisible(value) {
|
|
45
|
-
return typeof value === "string" && value.trim() !== "";
|
|
45
|
+
return typeof value === "string" && value.trim() !== "" || typeof value === "number" && value !== 0;
|
|
46
46
|
};
|
|
47
47
|
_proto.createContent = function createContent() {
|
|
48
48
|
return _jsxs(HBox, {
|
|
@@ -84,4 +84,4 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
|
|
|
84
84
|
_exports = NumberWithUnitOrCurrency;
|
|
85
85
|
return _exports;
|
|
86
86
|
}, false);
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IG51bWJlcjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpICE9PSBcIlwiKSB8fCAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHZhbHVlICE9PSAwKTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogSEJveCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxIQm94IHJlbmRlclR5cGU9XCJCYXJlXCIganVzdGlmeUNvbnRlbnQ9XCJFbmRcIiBjbGFzcz1cInNhcEZlQ29udHJvbHNVbml0Q3VycmVuY3lIYm94XCIgdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJ2aXNpYmxlXCIpfT5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcIm51bWJlclwiKX0+PC9UZXh0PlxuXHRcdFx0XHQ8VGV4dCB0ZXh0RGlyZWN0aW9uPVwiTFRSXCIgd3JhcHBpbmc9XCJmYWxzZVwiIHRleHRBbGlnbj1cIkVuZFwiIHRleHQ9e3RoaXMuYmluZFN0YXRlKFwidW5pdE9yQ3VycmVuY3lcIil9IHdpZHRoPVwiMy4zZW1cIj48L1RleHQ+XG5cdFx0XHQ8L0hCb3g+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O01BTXFCQSx3QkFBd0IsSUFBQUMsSUFBQSxHQUQ1Q0MsY0FBYyxDQUFDLGlEQUFp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
|
|
@@ -17,7 +17,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
|
|
|
17
17
|
type: "string",
|
|
18
18
|
bindToState: true
|
|
19
19
|
})
|
|
20
|
-
public number!: string;
|
|
20
|
+
public number!: string | number;
|
|
21
21
|
|
|
22
22
|
@property({
|
|
23
23
|
type: "string",
|
|
@@ -38,7 +38,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
private shouldBeVisible(value: unknown): boolean {
|
|
41
|
-
return typeof value === "string" && value.trim() !== "";
|
|
41
|
+
return (typeof value === "string" && value.trim() !== "") || (typeof value === "number" && value !== 0);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
createContent(): HBox {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport"], function (BuildingBlockBase, ClassSupport) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
|
|
9
|
+
var _exports = {};
|
|
10
|
+
var property = ClassSupport.property;
|
|
11
|
+
var implementInterface = ClassSupport.implementInterface;
|
|
12
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
13
|
+
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
14
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
15
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
16
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
17
|
+
function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
|
|
18
|
+
/**
|
|
19
|
+
* Building block to wrap a FlexBox and expose a required property.
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
let RequiredFlexBox = (_dec = defineUI5Class("sap.fe.macros.controls.RequiredFlexBox"), _dec2 = implementInterface("sap.ui.core.IFormContent"), _dec3 = property({
|
|
23
|
+
type: "string"
|
|
24
|
+
}), _dec4 = property({
|
|
25
|
+
type: "boolean"
|
|
26
|
+
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockBase) {
|
|
27
|
+
function RequiredFlexBox() {
|
|
28
|
+
var _this;
|
|
29
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
|
+
args[_key] = arguments[_key];
|
|
31
|
+
}
|
|
32
|
+
_this = _BuildingBlockBase.call(this, ...args) || this;
|
|
33
|
+
_initializerDefineProperty(_this, "__implements__sap_ui_core_IFormContent", _descriptor, _this);
|
|
34
|
+
_initializerDefineProperty(_this, "id", _descriptor2, _this);
|
|
35
|
+
_initializerDefineProperty(_this, "required", _descriptor3, _this);
|
|
36
|
+
return _this;
|
|
37
|
+
}
|
|
38
|
+
_exports = RequiredFlexBox;
|
|
39
|
+
_inheritsLoose(RequiredFlexBox, _BuildingBlockBase);
|
|
40
|
+
return RequiredFlexBox;
|
|
41
|
+
}(BuildingBlockBase), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "__implements__sap_ui_core_IFormContent", [_dec2], {
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
initializer: function () {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "id", [_dec3], {
|
|
49
|
+
configurable: true,
|
|
50
|
+
enumerable: true,
|
|
51
|
+
writable: true,
|
|
52
|
+
initializer: null
|
|
53
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "required", [_dec4], {
|
|
54
|
+
configurable: true,
|
|
55
|
+
enumerable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
initializer: null
|
|
58
|
+
}), _class2)) || _class);
|
|
59
|
+
_exports = RequiredFlexBox;
|
|
60
|
+
return _exports;
|
|
61
|
+
}, false);
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXF1aXJlZEZsZXhCb3giLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tCYXNlIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsInByb3RvdHlwZSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSZXF1aXJlZEZsZXhCb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2Jhc2UvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHRvIHdyYXAgYSBGbGV4Qm94IGFuZCBleHBvc2UgYSByZXF1aXJlZCBwcm9wZXJ0eS5cbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuUmVxdWlyZWRGbGV4Qm94XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1aXJlZEZsZXhCb3ggZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxDb250cm9sPiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQ/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cmVxdWlyZWQ/OiBib29sZWFuIHwgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0E7QUFDQTtBQUNBO0FBQ0E7RUFIQSxJQUtxQkEsZUFBZSxJQUFBQyxJQUFBLEdBRG5DQyxjQUFjLENBQUMsd0NBQXdDLENBQUMsRUFBQUMsS0FBQSxHQUV2REMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsRUFBQUMsS0FBQSxHQUc5Q0MsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFOLElBQUEsQ0FBQVEsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxrQkFBQTtJQUFBLFNBQUFYLGdCQUFBO01BQUEsSUFBQVksS0FBQTtNQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFDLElBQUEsT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7UUFBQUYsSUFBQSxDQUFBRSxJQUFBLElBQUFKLFNBQUEsQ0FBQUksSUFBQTtNQUFBO01BQUFOLEtBQUEsR0FBQUQsa0JBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBUSwwQkFBQSxDQUFBUixLQUFBLFFBQUFVLFlBQUEsRUFBQVYsS0FBQTtNQUFBUSwwQkFBQSxDQUFBUixLQUFBLGNBQUFXLFlBQUEsRUFBQVgsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBWSxRQUFBLEdBQUF4QixlQUFBO0lBQUF5QixjQUFBLENBQUF6QixlQUFBLEVBQUFXLGtCQUFBO0lBQUEsT0FBQVgsZUFBQTtFQUFBLEVBUGMwQixpQkFBaUIsR0FBQUwsV0FBQSxHQUFBTSx5QkFBQSxDQUFBakIsT0FBQSxDQUFBa0IsU0FBQSw2Q0FBQXpCLEtBQUE7SUFBQTBCLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BRXBCLElBQUk7SUFBQTtFQUFBLElBQUFWLFlBQUEsR0FBQUsseUJBQUEsQ0FBQWpCLE9BQUEsQ0FBQWtCLFNBQUEsU0FBQXZCLEtBQUE7SUFBQXdCLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBVCxZQUFBLEdBQUFJLHlCQUFBLENBQUFqQixPQUFBLENBQUFrQixTQUFBLGVBQUFwQixLQUFBO0lBQUFxQixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXRCLE9BQUEsTUFBQUQsTUFBQTtFQUFBZSxRQUFBLEdBQUF4QixlQUFBO0VBQUEsT0FBQXdCLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CompiledBindingToolkitExpression } from "sap/fe/base/BindingToolkit";
|
|
2
|
+
import BuildingBlockBase from "sap/fe/base/BuildingBlockBase";
|
|
3
|
+
import { defineUI5Class, implementInterface, property } from "sap/fe/base/ClassSupport";
|
|
4
|
+
import type Control from "sap/ui/core/Control";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Building block to wrap a FlexBox and expose a required property.
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
@defineUI5Class("sap.fe.macros.controls.RequiredFlexBox")
|
|
11
|
+
export default class RequiredFlexBox extends BuildingBlockBase<Control> {
|
|
12
|
+
@implementInterface("sap.ui.core.IFormContent")
|
|
13
|
+
__implements__sap_ui_core_IFormContent = true;
|
|
14
|
+
|
|
15
|
+
@property({ type: "string" })
|
|
16
|
+
id?: string;
|
|
17
|
+
|
|
18
|
+
@property({ type: "boolean" })
|
|
19
|
+
required?: boolean | CompiledBindingToolkitExpression;
|
|
20
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib", "../../visualfilters/VisualFilterRuntime"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library, VisualFilterRuntime) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _class, _class2, _descriptor;
|
|
@@ -32,11 +32,27 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
32
32
|
}
|
|
33
33
|
_inheritsLoose(VisualFilter, _VBox);
|
|
34
34
|
var _proto = VisualFilter.prototype;
|
|
35
|
+
/**
|
|
36
|
+
* Chart binding for the visual filter chart.
|
|
37
|
+
* @returns List Binding for the visual filter chart.
|
|
38
|
+
*/
|
|
39
|
+
_proto.getChartBinding = function getChartBinding() {
|
|
40
|
+
const interactiveChart = this.getInteractiveChart();
|
|
41
|
+
const interactiveChartListBinding = interactiveChart?.getBinding("segments") || interactiveChart?.getBinding("bars") || interactiveChart?.getBinding("points");
|
|
42
|
+
if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
|
|
43
|
+
if (this._oChartBinding) {
|
|
44
|
+
this.detachDataReceivedHandler(this._oChartBinding);
|
|
45
|
+
}
|
|
46
|
+
this.attachDataRecivedHandler(interactiveChartListBinding);
|
|
47
|
+
this._oChartBinding = interactiveChartListBinding;
|
|
48
|
+
}
|
|
49
|
+
return this._oChartBinding;
|
|
50
|
+
};
|
|
35
51
|
_proto.onAfterRendering = function onAfterRendering() {
|
|
36
52
|
let sLabel;
|
|
37
53
|
const oInteractiveChart = this.getInteractiveChart();
|
|
38
54
|
const sInternalContextPath = this.data("infoPath");
|
|
39
|
-
const oInteractiveChartListBinding =
|
|
55
|
+
const oInteractiveChartListBinding = this.getChartBinding();
|
|
40
56
|
const oInternalModelContext = oInteractiveChart.getBindingContext("internal");
|
|
41
57
|
const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros");
|
|
42
58
|
const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
|
|
@@ -111,13 +127,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
111
127
|
oInternalModelContext.setProperty(sInternalContextPath, errorInfo);
|
|
112
128
|
}
|
|
113
129
|
}
|
|
114
|
-
if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
|
|
115
|
-
if (this._oChartBinding) {
|
|
116
|
-
this.detachDataReceivedHandler(this._oChartBinding);
|
|
117
|
-
}
|
|
118
|
-
this.attachDataRecivedHandler(oInteractiveChartListBinding);
|
|
119
|
-
this._oChartBinding = oInteractiveChartListBinding;
|
|
120
|
-
}
|
|
121
130
|
const bShowOverlay = oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
|
|
122
131
|
const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
|
|
123
132
|
if (aParameters && aParameters.length && sFilterEntityName === sChartEntityName) {
|
|
@@ -129,7 +138,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
129
138
|
// resume binding for only those visual filters that do not have a in parameter attached.
|
|
130
139
|
// Bindings of visual filters with inParameters will be resumed later after considering in parameters.
|
|
131
140
|
if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
|
|
132
|
-
|
|
141
|
+
const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
|
|
142
|
+
visualFilterBB?._setInternalUpdatePending(undefined, false);
|
|
133
143
|
}
|
|
134
144
|
};
|
|
135
145
|
_proto.attachDataRecivedHandler = function attachDataRecivedHandler(oInteractiveChartListBinding) {
|
|
@@ -186,4 +196,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
186
196
|
}), _class2)) || _class);
|
|
187
197
|
return VisualFilter;
|
|
188
198
|
}, false);
|
|
189
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0IiwiZ2V0SW50ZXJhY3RpdmVDaGFydCIsInNJbnRlcm5hbENvbnRleHRQYXRoIiwiZGF0YSIsIm9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvUmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJiU2hvd092ZXJMYXlJbml0aWFsbHkiLCJvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24iLCJTZWxlY3RPcHRpb25zIiwiYVJlcXVpcmVkUHJvcGVydGllcyIsIkNvbW1vbkhlbHBlciIsInBhcnNlQ3VzdG9tRGF0YSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsInNFbnRpdHlTZXRQYXRoIiwiZ2V0UGF0aCIsIm9GaWx0ZXJCYXIiLCJnZXRQYXJlbnQiLCJnZXRNZXRhZGF0YSIsImdldEVsZW1lbnROYW1lIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJhUHJvcGVydHlJbmZvU2V0Iiwic0ZpbHRlckVudGl0eU5hbWUiLCJpc0EiLCJnZXRDb25kaXRpb25zIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJQcm9wZXJ0eUluZm8iLCJzcGxpdCIsImFQYXJhbWV0ZXJzIiwiZmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJWaXN1YWxGaWx0ZXJVdGlscyIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJiaW5kIiwib1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwibUNvbmRpdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNLZXkiLCJzZXRQcm9wZXJ0eSIsInNob3dFcnJvciIsImVycm9yTWVzc2FnZVRpdGxlIiwiZ2V0VGV4dCIsImVycm9yTWVzc2FnZSIsImdldE9iamVjdCIsImFTZWxlY3RPcHRpb25zIiwiYU5vdE1hdGNoZWRDb25kaXRpb25zIiwib1NlbGVjdE9wdGlvbiIsInB1c2giLCJQcm9wZXJ0eU5hbWUiLCIkUHJvcGVydHlQYXRoIiwiUGFyYW1ldGVycyIsIm9QYXJhbWV0ZXIiLCJzUGF0aCIsImluY2x1ZGVzIiwiZXJyb3JJbmZvIiwiZ2V0RXJyb3JJbmZvRm9yTm9Jbml0aWFsT3ZlcmxheSIsIl9vQ2hhcnRCaW5kaW5nIiwiZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlciIsImF0dGFjaERhdGFSZWNpdmVkSGFuZGxlciIsImJTaG93T3ZlcmxheSIsImdldFByb3BlcnR5Iiwic0NoYXJ0RW50aXR5TmFtZSIsInNCaW5kaW5nUGF0aCIsImdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyIsImlzU3VzcGVuZGVkIiwicmVzdW1lIiwiYXR0YWNoRXZlbnQiLCJvbkludGVybmFsRGF0YVJlY2VpdmVkIiwiZGV0YWNoRXZlbnQiLCJ1bmRlZmluZWQiLCJnZXRJdGVtcyIsIm9FdmVudCIsInNJZCIsImdldElkIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJ2VU9NIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiZ2V0UGFyYW1ldGVyIiwiczE4bk1lc3NhZ2VUaXRsZSIsInMxOG5NZXNzYWdlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsIm9EYXRhIiwiZ2V0U291cmNlIiwiZ2V0Q3VycmVudENvbnRleHRzIiwic2V0Tm9EYXRhTWVzc2FnZSIsInNldE11bHRpVU9NTWVzc2FnZSIsIiRQYXRoIiwib0NvbnRleHRzIiwiZ2V0Q29udGV4dHMiLCJvQ29udGV4dERhdGEiLCJhcHBseVVPTVRvVGl0bGUiLCJWQm94IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJhbWV0ZXIsIFNlbGVjdE9wdGlvblR5cGUsIFNlbGVjdGlvblZhcmlhbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZpbHRlckNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB7IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVySGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1Byb3BlcnR5SW5mb1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVCYXJDaGFydCBmcm9tIFwic2FwL3N1aXRlL3VpL21pY3JvY2hhcnQvSW50ZXJhY3RpdmVCYXJDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVEb251dENoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZURvbnV0Q2hhcnRcIjtcbmltcG9ydCB0eXBlIEludGVyYWN0aXZlTGluZUNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUxpbmVDaGFydFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBPRGF0YUxpc3RCaW5kaW5nJERhdGFSZWNlaXZlZEV2ZW50IH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBNZXRhTW9kZWxUeXBlIH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgZmlsdGVyQmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0lkXSBJRCBmb3IgdGhlIG5ldyBjb250cm9sLCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBpZiBubyBJRCBpcyBnaXZlblxuICogQHBhcmFtIHtvYmplY3R9IFttU2V0dGluZ3NdIEluaXRpYWwgc2V0dGluZ3MgZm9yIHRoZSBuZXcgY29udHJvbFxuICogQHNpbmNlIDEuNjEuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlciBleHRlbmRzIFZCb3ggaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHRwcml2YXRlIF9vQ2hhcnRCaW5kaW5nPzogT0RhdGFMaXN0QmluZGluZztcblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInNlZ21lbnRzXCIpIHx8XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nKFwiYmFyc1wiKSB8fFxuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInBvaW50c1wiKSkgYXMgT0RhdGFMaXN0QmluZGluZztcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUubWFjcm9zXCIpITtcblx0XHRjb25zdCBiU2hvd092ZXJMYXlJbml0aWFsbHkgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2hvd092ZXJsYXlJbml0aWFsbHlcIik7XG5cdFx0Y29uc3Qgb1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPiA9IChvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFxuXHRcdFx0XCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvblwiXG5cdFx0KSBhcyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudClcblx0XHRcdD8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpXG5cdFx0XHQ6ICh7IFNlbGVjdE9wdGlvbnM6IFtdIH0gYXMgdW5rbm93biBhcyBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPik7XG5cdFx0Y29uc3QgYVJlcXVpcmVkUHJvcGVydGllczogc3RyaW5nW10gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicmVxdWlyZWRQcm9wZXJ0aWVzXCIpXG5cdFx0XHQ/IChDb21tb25IZWxwZXIucGFyc2VDdXN0b21EYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIikpIGFzIHN0cmluZ1tdKVxuXHRcdFx0OiBbXTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgc0VudGl0eVNldFBhdGggPSBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nID8gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5nZXRQYXRoKCkgOiBcIlwiO1xuXHRcdGxldCBvRmlsdGVyQmFyID0gdGhpcy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHQvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXJ0IG9uY2UgMjE3MDIwNDM0NyBpcyBmaXhlZFxuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAudWkubWRjLmZpbHRlcmJhci5wMTNuLkFkYXB0YXRpb25GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhciA9IG9GaWx0ZXJCYXIuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXI7XG5cdFx0fVxuXHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cdFx0bGV0IGFQcm9wZXJ0eUluZm9TZXQ6IFByb3BlcnR5SW5mb1tdID0gW107XG5cdFx0bGV0IHNGaWx0ZXJFbnRpdHlOYW1lO1xuXHRcdGlmIChvRmlsdGVyQmFyLmlzQTxGaWx0ZXJCYXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIikpIHtcblx0XHRcdG9GaWx0ZXJCYXJDb25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvU2V0ID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVyUHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wpIGFzIFByb3BlcnR5SW5mb1tdO1xuXHRcdFx0c0ZpbHRlckVudGl0eU5hbWUgPSBvRmlsdGVyQmFyLmRhdGEoXCJlbnRpdHlUeXBlXCIpLnNwbGl0KFwiL1wiKVsxXTtcblx0XHR9XG5cdFx0Y29uc3QgYVBhcmFtZXRlcnMgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicGFyYW1ldGVyc1wiKSA/IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpIDogW107XG5cdFx0Y29uc3QgZmlsdGVyQ29uZGl0aW9ucyA9IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoXG5cdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdG9NZXRhTW9kZWwsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5nZXRDdXN0b21Db25kaXRpb25zLmJpbmQoVmlzdWFsRmlsdGVyVXRpbHMpXG5cdFx0KTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMgPSBWaXN1YWxGaWx0ZXJVdGlscy5jb252ZXJ0RmlsdGVyQ29uZGlvbnMoZmlsdGVyQ29uZGl0aW9ucyk7XG5cdFx0Y29uc3QgbUNvbmRpdGlvbnM6IFJlY29yZDxzdHJpbmcsIENvbmRpdGlvbk9iamVjdFtdPiA9IHt9O1xuXG5cdFx0T2JqZWN0LmtleXMob0ZpbHRlckJhckNvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldLmxlbmd0aCkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmtleXMob1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdGlmICghbUNvbmRpdGlvbnNbc0tleV0pIHtcblx0XHRcdFx0bUNvbmRpdGlvbnNbc0tleV0gPSBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKGJTaG93T3ZlckxheUluaXRpYWxseSA9PT0gdHJ1ZSkge1xuXHRcdFx0aWYgKCFPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pLmxlbmd0aCkge1xuXHRcdFx0XHRpZiAoYVJlcXVpcmVkUHJvcGVydGllcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRzaG93RXJyb3I6IHRydWUsXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2VUaXRsZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2U6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfTVVMVElQTEVWRlwiKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNMYWJlbCA9XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH0vJHthUmVxdWlyZWRQcm9wZXJ0aWVzWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllc1swXTtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9TSU5HTEVWRlwiLCBzTGFiZWwpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRjb25zdCBhTm90TWF0Y2hlZENvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uU2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKG9TZWxlY3RPcHRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0T3B0aW9uVHlwZT4pIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2gob1NlbGVjdE9wdGlvbi5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uUGFyYW1ldGVycykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24gKG9QYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2goKG9QYXJhbWV0ZXIgYXMgTWV0YU1vZGVsVHlwZTxQYXJhbWV0ZXI+KS5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFSZXF1aXJlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoc1BhdGg6IHN0cmluZykge1xuXHRcdFx0XHRcdGlmICghYVNlbGVjdE9wdGlvbnMuaW5jbHVkZXMoc1BhdGgpKSB7XG5cdFx0XHRcdFx0XHRhTm90TWF0Y2hlZENvbmRpdGlvbnMucHVzaChzUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRjb25zdCBlcnJvckluZm8gPSBWaXN1YWxGaWx0ZXJVdGlscy5nZXRFcnJvckluZm9Gb3JOb0luaXRpYWxPdmVybGF5KFxuXHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucyxcblx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0c0VudGl0eVNldFBhdGgsXG5cdFx0XHRcdFx0b01ldGFNb2RlbFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIGVycm9ySW5mbyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdGlmICh0aGlzLl9vQ2hhcnRCaW5kaW5nKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcih0aGlzLl9vQ2hhcnRCaW5kaW5nKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGJTaG93T3ZlcmxheSA9XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCkuc2hvd0Vycm9yO1xuXHRcdGNvbnN0IHNDaGFydEVudGl0eU5hbWUgPSBzRW50aXR5U2V0UGF0aCAhPT0gXCJcIiA/IHNFbnRpdHlTZXRQYXRoLnNwbGl0KFwiL1wiKVsxXS5zcGxpdChcIihcIilbMF0gOiBcIlwiO1xuXHRcdGlmIChhUGFyYW1ldGVycyAmJiBhUGFyYW1ldGVycy5sZW5ndGggJiYgc0ZpbHRlckVudGl0eU5hbWUgPT09IHNDaGFydEVudGl0eU5hbWUpIHtcblx0XHRcdGNvbnN0IHNCaW5kaW5nUGF0aCA9IEZpbHRlclV0aWxzLmdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyhcblx0XHRcdFx0b0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCxcblx0XHRcdFx0bUNvbmRpdGlvbnMsXG5cdFx0XHRcdGFQcm9wZXJ0eUluZm9TZXQsXG5cdFx0XHRcdGFQYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0aWYgKHNCaW5kaW5nUGF0aCkge1xuXHRcdFx0XHQob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyBhcyB7IHNQYXRoPzogc3RyaW5nIH0pLnNQYXRoID0gc0JpbmRpbmdQYXRoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyByZXN1bWUgYmluZGluZyBmb3Igb25seSB0aG9zZSB2aXN1YWwgZmlsdGVycyB0aGF0IGRvIG5vdCBoYXZlIGEgaW4gcGFyYW1ldGVyIGF0dGFjaGVkLlxuXHRcdC8vIEJpbmRpbmdzIG9mIHZpc3VhbCBmaWx0ZXJzIHdpdGggaW5QYXJhbWV0ZXJzIHdpbGwgYmUgcmVzdW1lZCBsYXRlciBhZnRlciBjb25zaWRlcmluZyBpbiBwYXJhbWV0ZXJzLlxuXHRcdGlmIChvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nICYmIG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuaXNTdXNwZW5kZWQoKSAmJiAhYlNob3dPdmVybGF5KSB7XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnJlc3VtZSgpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLCtDQUErQyxDQUFDLEVBQUFDLEtBQUEsR0FFOURDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxLQUFBO0lBQUEsU0FBQVAsYUFBQTtNQUFBLElBQUFRLEtBQUE7TUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBTixLQUFBLEdBQUFELEtBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBVSxjQUFBLENBQUFsQixZQUFBLEVBQUFPLEtBQUE7SUFBQSxJQUFBWSxNQUFBLEdBQUFuQixZQUFBLENBQUFvQixTQUFBO0lBQUFELE1BQUEsQ0FLL0NFLGdCQUFnQixHQUFoQixTQUFBQSxnQkFBZ0JBLENBQUEsRUFBUztNQUN4QixJQUFJQyxNQUFNO01BQ1YsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ3BELE1BQU1DLG9CQUFvQixHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztNQUNsRCxNQUFNQyw0QkFBNEIsR0FBSUosaUJBQWlC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
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0Q2hhcnRCaW5kaW5nIiwiaW50ZXJhY3RpdmVDaGFydCIsImdldEludGVyYWN0aXZlQ2hhcnQiLCJpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwiX29DaGFydEJpbmRpbmciLCJkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyIiwiYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0Iiwic0ludGVybmFsQ29udGV4dFBhdGgiLCJkYXRhIiwib0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib1Jlc291cmNlQnVuZGxlIiwiTGlicmFyeSIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiYlNob3dPdmVyTGF5SW5pdGlhbGx5Iiwib1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU2VsZWN0T3B0aW9ucyIsImFSZXF1aXJlZFByb3BlcnRpZXMiLCJDb21tb25IZWxwZXIiLCJwYXJzZUN1c3RvbURhdGEiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldFBhdGgiLCJvRmlsdGVyQmFyIiwiZ2V0UGFyZW50IiwiZ2V0TWV0YWRhdGEiLCJnZXRFbGVtZW50TmFtZSIsIm9GaWx0ZXJCYXJDb25kaXRpb25zIiwiYVByb3BlcnR5SW5mb1NldCIsInNGaWx0ZXJFbnRpdHlOYW1lIiwiaXNBIiwiZ2V0Q29uZGl0aW9ucyIsIkZpbHRlclV0aWxzIiwiZ2V0RmlsdGVyUHJvcGVydHlJbmZvIiwic3BsaXQiLCJhUGFyYW1ldGVycyIsImZpbHRlckNvbmRpdGlvbnMiLCJnZXRGaWx0ZXJzQ29uZGl0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiYmluZCIsIm9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm1Db25kaXRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzS2V5Iiwic2V0UHJvcGVydHkiLCJzaG93RXJyb3IiLCJlcnJvck1lc3NhZ2VUaXRsZSIsImdldFRleHQiLCJlcnJvck1lc3NhZ2UiLCJnZXRPYmplY3QiLCJhU2VsZWN0T3B0aW9ucyIsImFOb3RNYXRjaGVkQ29uZGl0aW9ucyIsIm9TZWxlY3RPcHRpb24iLCJwdXNoIiwiUHJvcGVydHlOYW1lIiwiJFByb3BlcnR5UGF0aCIsIlBhcmFtZXRlcnMiLCJvUGFyYW1ldGVyIiwic1BhdGgiLCJpbmNsdWRlcyIsImVycm9ySW5mbyIsImdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkiLCJiU2hvd092ZXJsYXkiLCJnZXRQcm9wZXJ0eSIsInNDaGFydEVudGl0eU5hbWUiLCJzQmluZGluZ1BhdGgiLCJnZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMiLCJpc1N1c3BlbmRlZCIsInZpc3VhbEZpbHRlckJCIiwiVmlzdWFsRmlsdGVyUnVudGltZSIsImdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQiIsIl9zZXRJbnRlcm5hbFVwZGF0ZVBlbmRpbmciLCJ1bmRlZmluZWQiLCJhdHRhY2hFdmVudCIsIm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQiLCJkZXRhY2hFdmVudCIsImdldEl0ZW1zIiwib0V2ZW50Iiwic0lkIiwiZ2V0SWQiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInZVT00iLCJ1cGRhdGVDaGFydFNjYWxlRmFjdG9yVGl0bGUiLCJnZXRQYXJhbWV0ZXIiLCJzMThuTWVzc2FnZVRpdGxlIiwiczE4bk1lc3NhZ2UiLCJhcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlIiwib0RhdGEiLCJnZXRTb3VyY2UiLCJnZXRDdXJyZW50Q29udGV4dHMiLCJzZXROb0RhdGFNZXNzYWdlIiwic2V0TXVsdGlVT01NZXNzYWdlIiwiJFBhdGgiLCJvQ29udGV4dHMiLCJnZXRDb250ZXh0cyIsIm9Db250ZXh0RGF0YSIsImFwcGx5VU9NVG9UaXRsZSIsIlZCb3giLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtZXRlciwgU2VsZWN0T3B0aW9uVHlwZSwgU2VsZWN0aW9uVmFyaWFudFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IFZpc3VhbEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci91dGlscy9WaXN1YWxGaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJRmlsdGVyQ29udHJvbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZUJhckNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUJhckNoYXJ0XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlRG9udXRDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVMaW5lQ2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlTGluZUNoYXJ0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSB7IElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSB7IE9EYXRhTGlzdEJpbmRpbmckRGF0YVJlY2VpdmVkRXZlbnQgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyUnVudGltZSBmcm9tIFwiLi4vLi4vdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJSdW50aW1lXCI7XG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBmaWx0ZXJCYXIvYWxpZ25lZC9GaWx0ZXJJdGVtTGF5b3V0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtzSWRdIElEIGZvciB0aGUgbmV3IGNvbnRyb2wsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGlmIG5vIElEIGlzIGdpdmVuXG4gKiBAcGFyYW0ge29iamVjdH0gW21TZXR0aW5nc10gSW5pdGlhbCBzZXR0aW5ncyBmb3IgdGhlIG5ldyBjb250cm9sXG4gKiBAc2luY2UgMS42MS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlclwiKVxuY2xhc3MgVmlzdWFsRmlsdGVyIGV4dGVuZHMgVkJveCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdHByaXZhdGUgX29DaGFydEJpbmRpbmc/OiBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGFydCBiaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICogQHJldHVybnMgTGlzdCBCaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICovXG5cdHB1YmxpYyBnZXRDaGFydEJpbmRpbmcoKTogT0RhdGFMaXN0QmluZGluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgaW50ZXJhY3RpdmVDaGFydCA9IHRoaXMuZ2V0SW50ZXJhY3RpdmVDaGFydCgpO1xuXHRcdGNvbnN0IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyA9IChpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwic2VnbWVudHNcIikgfHxcblx0XHRcdGludGVyYWN0aXZlQ2hhcnQ/LmdldEJpbmRpbmcoXCJiYXJzXCIpIHx8XG5cdFx0XHRpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwicG9pbnRzXCIpKSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0aWYgKHRoaXMuX29DaGFydEJpbmRpbmcpIHtcblx0XHRcdFx0dGhpcy5kZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKHRoaXMuX29DaGFydEJpbmRpbmcpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hdHRhY2hEYXRhUmVjaXZlZEhhbmRsZXIoaW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nKTtcblx0XHRcdHRoaXMuX29DaGFydEJpbmRpbmcgPSBpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX29DaGFydEJpbmRpbmc7XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSB0aGlzLmdldENoYXJ0QmluZGluZygpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IGJTaG93T3ZlckxheUluaXRpYWxseSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJzaG93T3ZlcmxheUluaXRpYWxseVwiKTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+ID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXG5cdFx0XHRcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCJcblx0XHQpIGFzIFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50KVxuXHRcdFx0PyBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2VsZWN0aW9uVmFyaWFudEFubm90YXRpb25cIilcblx0XHRcdDogKHsgU2VsZWN0T3B0aW9uczogW10gfSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+KTtcblx0XHRjb25zdCBhUmVxdWlyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIilcblx0XHRcdD8gKENvbW1vbkhlbHBlci5wYXJzZUN1c3RvbURhdGEob0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInJlcXVpcmVkUHJvcGVydGllc1wiKSkgYXMgc3RyaW5nW10pXG5cdFx0XHQ6IFtdO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPyBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmdldFBhdGgoKSA6IFwiXCI7XG5cdFx0bGV0IG9GaWx0ZXJCYXIgPSB0aGlzLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyO1xuXHRcdC8vIFRPRE86IFJlbW92ZSB0aGlzIHBhcnQgb25jZSAyMTcwMjA0MzQ3IGlzIGZpeGVkXG5cdFx0aWYgKG9GaWx0ZXJCYXIuZ2V0TWV0YWRhdGEoKS5nZXRFbGVtZW50TmFtZSgpID09PSBcInNhcC51aS5tZGMuZmlsdGVyYmFyLnAxM24uQWRhcHRhdGlvbkZpbHRlckJhclwiKSB7XG5cdFx0XHRvRmlsdGVyQmFyID0gb0ZpbHRlckJhci5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHR9XG5cdFx0bGV0IG9GaWx0ZXJCYXJDb25kaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDb25kaXRpb25PYmplY3RbXT4gPSB7fTtcblx0XHRsZXQgYVByb3BlcnR5SW5mb1NldDogUHJvcGVydHlJbmZvW10gPSBbXTtcblx0XHRsZXQgc0ZpbHRlckVudGl0eU5hbWU7XG5cdFx0aWYgKG9GaWx0ZXJCYXIuaXNBPEZpbHRlckJhcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9TZXQgPSBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJQcm9wZXJ0eUluZm8ob0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCkgYXMgUHJvcGVydHlJbmZvW107XG5cdFx0XHRzRmlsdGVyRW50aXR5TmFtZSA9IG9GaWx0ZXJCYXIuZGF0YShcImVudGl0eVR5cGVcIikuc3BsaXQoXCIvXCIpWzFdO1xuXHRcdH1cblx0XHRjb25zdCBhUGFyYW1ldGVycyA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpID8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInBhcmFtZXRlcnNcIikgOiBbXTtcblx0XHRjb25zdCBmaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChcblx0XHRcdHNFbnRpdHlTZXRQYXRoLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmdldEN1c3RvbUNvbmRpdGlvbnMuYmluZChWaXN1YWxGaWx0ZXJVdGlscylcblx0XHQpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyA9IFZpc3VhbEZpbHRlclV0aWxzLmNvbnZlcnRGaWx0ZXJDb25kaW9ucyhmaWx0ZXJDb25kaXRpb25zKTtcblx0XHRjb25zdCBtQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQmFyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRpZiAob0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV0ubGVuZ3RoKSB7XG5cdFx0XHRcdG1Db25kaXRpb25zW3NLZXldID0gb0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKCFtQ29uZGl0aW9uc1tzS2V5XSkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoYlNob3dPdmVyTGF5SW5pdGlhbGx5ID09PSB0cnVlKSB7XG5cdFx0XHRpZiAoIU9iamVjdC5rZXlzKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbikubGVuZ3RoKSB7XG5cdFx0XHRcdGlmIChhUmVxdWlyZWRQcm9wZXJ0aWVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9NVUxUSVBMRVZGXCIpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0xhYmVsID1cblx0XHRcdFx0XHRcdG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NFbnRpdHlTZXRQYXRofS8ke2FSZXF1aXJlZFByb3BlcnRpZXNbMF19QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbGApIHx8XG5cdFx0XHRcdFx0XHRhUmVxdWlyZWRQcm9wZXJ0aWVzWzBdO1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0c2hvd0Vycm9yOiB0cnVlLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlVGl0bGU6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX1NJTkdMRVZGXCIsIHNMYWJlbClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgYVNlbGVjdE9wdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGNvbnN0IGFOb3RNYXRjaGVkQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlNlbGVjdE9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAob1NlbGVjdE9wdGlvbjogTWV0YU1vZGVsVHlwZTxTZWxlY3RPcHRpb25UeXBlPikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaChvU2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAob1BhcmFtZXRlcikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaCgob1BhcmFtZXRlciBhcyBNZXRhTW9kZWxUeXBlPFBhcmFtZXRlcj4pLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0aWYgKCFhU2VsZWN0T3B0aW9ucy5pbmNsdWRlcyhzUGF0aCkpIHtcblx0XHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucy5wdXNoKHNQYXRoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGNvbnN0IGVycm9ySW5mbyA9IFZpc3VhbEZpbHRlclV0aWxzLmdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkoXG5cdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zLFxuXHRcdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZSxcblx0XHRcdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdFx0XHRvTWV0YU1vZGVsXG5cdFx0XHRcdCk7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwgZXJyb3JJbmZvKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBiU2hvd092ZXJsYXkgPVxuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoKSAmJiBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpLnNob3dFcnJvcjtcblx0XHRjb25zdCBzQ2hhcnRFbnRpdHlOYW1lID0gc0VudGl0eVNldFBhdGggIT09IFwiXCIgPyBzRW50aXR5U2V0UGF0aC5zcGxpdChcIi9cIilbMV0uc3BsaXQoXCIoXCIpWzBdIDogXCJcIjtcblx0XHRpZiAoYVBhcmFtZXRlcnMgJiYgYVBhcmFtZXRlcnMubGVuZ3RoICYmIHNGaWx0ZXJFbnRpdHlOYW1lID09PSBzQ2hhcnRFbnRpdHlOYW1lKSB7XG5cdFx0XHRjb25zdCBzQmluZGluZ1BhdGggPSBGaWx0ZXJVdGlscy5nZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMoXG5cdFx0XHRcdG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdG1Db25kaXRpb25zLFxuXHRcdFx0XHRhUHJvcGVydHlJbmZvU2V0LFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGlmIChzQmluZGluZ1BhdGgpIHtcblx0XHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgYXMgeyBzUGF0aD86IHN0cmluZyB9KS5zUGF0aCA9IHNCaW5kaW5nUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gcmVzdW1lIGJpbmRpbmcgZm9yIG9ubHkgdGhvc2UgdmlzdWFsIGZpbHRlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIGluIHBhcmFtZXRlciBhdHRhY2hlZC5cblx0XHQvLyBCaW5kaW5ncyBvZiB2aXN1YWwgZmlsdGVycyB3aXRoIGluUGFyYW1ldGVycyB3aWxsIGJlIHJlc3VtZWQgbGF0ZXIgYWZ0ZXIgY29uc2lkZXJpbmcgaW4gcGFyYW1ldGVycy5cblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyAmJiBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmlzU3VzcGVuZGVkKCkgJiYgIWJTaG93T3ZlcmxheSkge1xuXHRcdFx0Y29uc3QgdmlzdWFsRmlsdGVyQkIgPSBWaXN1YWxGaWx0ZXJSdW50aW1lLmdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQih0aGlzKTtcblx0XHRcdHZpc3VhbEZpbHRlckJCPy5fc2V0SW50ZXJuYWxVcGRhdGVQZW5kaW5nKHVuZGVmaW5lZCwgZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLCtDQUErQyxDQUFDLEVBQUFDLEtBQUEsR0FFOURDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxLQUFBO0lBQUEsU0FBQVAsYUFBQTtNQUFBLElBQUFRLEtBQUE7TUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBTixLQUFBLEdBQUFELEtBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBVSxjQUFBLENBQUFsQixZQUFBLEVBQUFPLEtBQUE7SUFBQSxJQUFBWSxNQUFBLEdBQUFuQixZQUFBLENBQUFvQixTQUFBO0lBSy9DO0FBQ0Q7QUFDQTtBQUNBO0lBSENELE1BQUEsQ0FJT0UsZUFBZSxHQUF0QixTQUFPQSxlQUFlQSxDQUFBLEVBQWlDO01BQ3RELE1BQU1DLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQztNQUNuRCxNQUFNQywyQkFBMkIsR0FBSUYsZ0JBQWdCLEVBQUVHLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFDNUVILGdCQUFnQixFQUFFRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQ3BDSCxnQkFBZ0IsRUFBRUcsVUFBVSxDQUFDLFFBQVEsQ0FBc0I7TUFFNUQsSUFBSSxDQUFDLElBQUksQ0FBQ0MsY0FBYyxJQUFJLElBQUksQ0FBQ0EsY0FBYyxLQUFLRiwyQkFBMkIsRUFBRTtRQUNoRixJQUFJLElBQUksQ0FBQ0UsY0FBYyxFQUFFO1VBQ3hCLElBQUksQ0FBQ0MseUJBQXlCLENBQUMsSUFBSSxDQUFDRCxjQUFjLENBQUM7UUFDcEQ7UUFDQSxJQUFJLENBQUNFLHdCQUF3QixDQUFDSiwyQkFBMkIsQ0FBQztRQUMxRCxJQUFJLENBQUNFLGNBQWMsR0FBR0YsMkJBQTJCO01BQ2xEO01BRUEsT0FBTyxJQUFJLENBQUNFLGNBQWM7SUFDM0IsQ0FBQztJQUFBUCxNQUFBLENBRURVLGdCQUFnQixHQUFoQixTQUFBQSxnQkFBZ0JBLENBQUEsRUFBUztNQUN4QixJQUFJQyxNQUFNO01BQ1YsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDUixtQkFBbUIsQ0FBQyxDQUFDO01BQ3BELE1BQU1TLG9CQUFvQixHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztNQUNsRCxNQUFNQyw0QkFBNEIsR0FBRyxJQUFJLENBQUNiLGVBQWUsQ0FBQyxDQUFDO01BQzNELE1BQU1jLHFCQUFxQixHQUFHSixpQkFBaUIsQ0FBQ0ssaUJBQWlCLENBQUMsVUFBVSxDQUF5QjtNQUNyRyxNQUFNQyxlQUFlLEdBQUdDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsZUFBZSxDQUFFO01BQ3RFLE1BQU1DLHFCQUFxQixHQUFHVCxpQkFBaUIsQ0FBQ0UsSUFBSSxDQUFDLHNCQUFzQixDQUFDO01BQzVFLE1BQU1RLDJCQUFnRSxHQUFJVixpQkFBaUIsQ0FBQ0UsSUFBSSxDQUMvRiw0QkFDRCxDQUFDLEdBQ0VGLGlCQUFpQixDQUFDRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FDbkQ7UUFBRVMsYUFBYSxFQUFFO01BQUcsQ0FBb0Q7TUFDNUUsTUFBTUMsbUJBQTZCLEdBQUdaLGlCQUFpQixDQUFDRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FDOUVXLFlBQVksQ0FBQ0MsZUFBZSxDQUFDZCxpQkFBaUIsQ0FBQ0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FDM0UsRUFBRTtNQUNMLE1BQU1hLFVBQVUsR0FBSWYsaUJBQWlCLENBQUNnQixRQUFRLENBQUMsQ0FBQyxDQUFnQkMsWUFBWSxDQUFDLENBQUM7TUFDOUUsTUFBTUMsY0FBYyxHQUFHZiw0QkFBNEIsR0FBR0EsNEJBQTRCLENBQUNnQixPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUU7TUFDakcsSUFBSUMsVUFBVSxHQUFHLElBQUksQ0FBQ0MsU0FBUyxDQUFDLENBQUMsRUFBRUEsU0FBUyxDQUFDLENBQUMsRUFBRUEsU0FBUyxDQUFDLENBQWM7TUFDeEU7TUFDQSxJQUFJRCxVQUFVLENBQUNFLFdBQVcsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDLEtBQUssK0NBQStDLEVBQUU7UUFDbEdILFVBQVUsR0FBR0EsVUFBVSxDQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFFQSxTQUFTLENBQUMsQ0FBQyxFQUFFQSxTQUFTLENBQUMsQ0FBYztNQUMzRTtNQUNBLElBQUlHLG9CQUF1RCxHQUFHLENBQUMsQ0FBQztNQUNoRSxJQUFJQyxnQkFBZ0MsR0FBRyxFQUFFO01BQ3pDLElBQUlDLGlCQUFpQjtNQUNyQixJQUFJTixVQUFVLENBQUNPLEdBQUcsQ0FBWSxrQ0FBa0MsQ0FBQyxFQUFFO1FBQ2xFSCxvQkFBb0IsR0FBR0osVUFBVSxDQUFDUSxhQUFhLENBQUMsQ0FBQztRQUNqREgsZ0JBQWdCLEdBQUdJLFdBQVcsQ0FBQ0MscUJBQXFCLENBQUNWLFVBQTRCLENBQW1CO1FBQ3BHTSxpQkFBaUIsR0FBR04sVUFBVSxDQUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDNkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNoRTtNQUNBLE1BQU1DLFdBQVcsR0FBR2hDLGlCQUFpQixDQUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUdGLGlCQUFpQixDQUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtNQUNwRyxNQUFNK0IsZ0JBQWdCLEdBQUdDLHdDQUF3QyxDQUNoRWhCLGNBQWMsRUFDZEgsVUFBVSxFQUNWTCwyQkFBMkIsRUFDM0J5QixpQkFBaUIsQ0FBQ0MsbUJBQW1CLENBQUNDLElBQUksQ0FBQ0YsaUJBQWlCLENBQzdELENBQUM7TUFDRCxNQUFNRywyQkFBMkIsR0FBR0gsaUJBQWlCLENBQUNJLHFCQUFxQixDQUFDTixnQkFBZ0IsQ0FBQztNQUM3RixNQUFNTyxXQUE4QyxHQUFHLENBQUMsQ0FBQztNQUV6REMsTUFBTSxDQUFDQyxJQUFJLENBQUNsQixvQkFBb0IsQ0FBQyxDQUFDbUIsT0FBTyxDQUFDLFVBQVVDLElBQVksRUFBRTtRQUNqRSxJQUFJcEIsb0JBQW9CLENBQUNvQixJQUFJLENBQUMsQ0FBQ2hFLE1BQU0sRUFBRTtVQUN0QzRELFdBQVcsQ0FBQ0ksSUFBSSxDQUFDLEdBQUdwQixvQkFBb0IsQ0FBQ29CLElBQUksQ0FBQztRQUMvQztNQUNELENBQUMsQ0FBQztNQUVGSCxNQUFNLENBQUNDLElBQUksQ0FBQ0osMkJBQTJCLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLFVBQVVDLElBQVksRUFBRTtRQUN4RSxJQUFJLENBQUNKLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDLEVBQUU7VUFDdkJKLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDLEdBQUdOLDJCQUEyQixDQUFDTSxJQUFJLENBQUM7UUFDdEQ7TUFDRCxDQUFDLENBQUM7TUFDRixJQUFJbkMscUJBQXFCLEtBQUssSUFBSSxFQUFFO1FBQ25DLElBQUksQ0FBQ2dDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDaEMsMkJBQTJCLENBQUMsQ0FBQzlCLE1BQU0sRUFBRTtVQUNyRCxJQUFJZ0MsbUJBQW1CLENBQUNoQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25Dd0IscUJBQXFCLENBQUN5QyxXQUFXLENBQUM1QyxvQkFBb0IsRUFBRTtjQUN2RDZDLFNBQVMsRUFBRSxJQUFJO2NBQ2ZDLGlCQUFpQixFQUFFekMsZUFBZSxDQUFDMEMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO2NBQ2xGQyxZQUFZLEVBQUUzQyxlQUFlLENBQUMwQyxPQUFPLENBQUMsZ0RBQWdEO1lBQ3ZGLENBQUMsQ0FBQztVQUNILENBQUMsTUFBTTtZQUNOakQsTUFBTSxHQUNMZ0IsVUFBVSxDQUFDbUMsU0FBUyxDQUFDLEdBQUdoQyxjQUFjLElBQUlOLG1CQUFtQixDQUFDLENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQyxJQUN4R0EsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCUixxQkFBcUIsQ0FBQ3lDLFdBQVcsQ0FBQzVDLG9CQUFvQixFQUFFO2NBQ3ZENkMsU0FBUyxFQUFFLElBQUk7Y0FDZkMsaUJBQWlCLEVBQUV6QyxlQUFlLENBQUMwQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7Y0FDbEZDLFlBQVksRUFBRTNDLGVBQWUsQ0FBQzBDLE9BQU8sQ0FBQyw4Q0FBOEMsRUFBRWpELE1BQU07WUFDN0YsQ0FBQyxDQUFDO1VBQ0g7UUFDRCxDQUFDLE1BQU07VUFDTixNQUFNb0QsY0FBd0IsR0FBRyxFQUFFO1VBQ25DLE1BQU1DLHFCQUErQixHQUFHLEVBQUU7VUFDMUMsSUFBSTFDLDJCQUEyQixDQUFDQyxhQUFhLEVBQUU7WUFDOUNELDJCQUEyQixDQUFDQyxhQUFhLENBQUNnQyxPQUFPLENBQUMsVUFBVVUsYUFBOEMsRUFBRTtjQUMzR0YsY0FBYyxDQUFDRyxJQUFJLENBQUNELGFBQWEsQ0FBQ0UsWUFBWSxDQUFFQyxhQUFhLENBQUM7WUFDL0QsQ0FBQyxDQUFDO1VBQ0g7VUFDQSxJQUFJOUMsMkJBQTJCLENBQUMrQyxVQUFVLEVBQUU7WUFDM0MvQywyQkFBMkIsQ0FBQytDLFVBQVUsQ0FBQ2QsT0FBTyxDQUFDLFVBQVVlLFVBQVUsRUFBRTtjQUNwRVAsY0FBYyxDQUFDRyxJQUFJLENBQUVJLFVBQVUsQ0FBOEJILFlBQVksQ0FBRUMsYUFBYSxDQUFDO1lBQzFGLENBQUMsQ0FBQztVQUNIO1VBQ0E1QyxtQkFBbUIsQ0FBQytCLE9BQU8sQ0FBQyxVQUFVZ0IsS0FBYSxFQUFFO1lBQ3BELElBQUksQ0FBQ1IsY0FBYyxDQUFDUyxRQUFRLENBQUNELEtBQUssQ0FBQyxFQUFFO2NBQ3BDUCxxQkFBcUIsQ0FBQ0UsSUFBSSxDQUFDSyxLQUFLLENBQUM7WUFDbEM7VUFDRCxDQUFDLENBQUM7VUFFRixNQUFNRSxTQUFTLEdBQUcxQixpQkFBaUIsQ0FBQzJCLCtCQUErQixDQUNsRVYscUJBQXFCLEVBQ3JCOUMsZUFBZSxFQUNmWSxjQUFjLEVBQ2RILFVBQ0QsQ0FBQztVQUNEWCxxQkFBcUIsQ0FBQ3lDLFdBQVcsQ0FBQzVDLG9CQUFvQixFQUFFNEQsU0FBUyxDQUFDO1FBQ25FO01BQ0Q7TUFFQSxNQUFNRSxZQUFZLEdBQ2pCM0QscUJBQXFCLENBQUM0RCxXQUFXLENBQUMvRCxvQkFBb0IsQ0FBQyxJQUFJRyxxQkFBcUIsQ0FBQzRELFdBQVcsQ0FBQy9ELG9CQUFvQixDQUFDLENBQUM2QyxTQUFTO01BQzdILE1BQU1tQixnQkFBZ0IsR0FBRy9DLGNBQWMsS0FBSyxFQUFFLEdBQUdBLGNBQWMsQ0FBQ2EsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtNQUNoRyxJQUFJQyxXQUFXLElBQUlBLFdBQVcsQ0FBQ3BELE1BQU0sSUFBSThDLGlCQUFpQixLQUFLdUMsZ0JBQWdCLEVBQUU7UUFDaEYsTUFBTUMsWUFBWSxHQUFHckMsV0FBVyxDQUFDc0MsMkJBQTJCLENBQzNEL0MsVUFBVSxFQUNWb0IsV0FBVyxFQUNYZixnQkFBZ0IsRUFDaEJPLFdBQ0QsQ0FBQztRQUNELElBQUlrQyxZQUFZLEVBQUU7VUFDaEIvRCw0QkFBNEIsQ0FBd0J3RCxLQUFLLEdBQUdPLFlBQVk7UUFDMUU7TUFDRDtNQUNBO01BQ0E7TUFDQSxJQUFJL0QsNEJBQTRCLElBQUlBLDRCQUE0QixDQUFDaUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDTCxZQUFZLEVBQUU7UUFDaEcsTUFBTU0sY0FBYyxHQUFHQyxtQkFBbUIsQ0FBQ0MsOEJBQThCLENBQUMsSUFBSSxDQUFDO1FBQy9FRixjQUFjLEVBQUVHLHlCQUF5QixDQUFDQyxTQUFTLEVBQUUsS0FBSyxDQUFDO01BQzVEO0lBQ0QsQ0FBQztJQUFBckYsTUFBQSxDQUVEUyx3QkFBd0IsR0FBeEIsU0FBQUEsd0JBQXdCQSxDQUFDTSw0QkFBOEMsRUFBUTtNQUM5RSxJQUFJQSw0QkFBNEIsRUFBRTtRQUNqQ0EsNEJBQTRCLENBQUN1RSxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0Msc0JBQXNCLEVBQUUsSUFBSSxDQUFDO1FBQy9GLElBQUksQ0FBQ2hGLGNBQWMsR0FBR1EsNEJBQTRCO01BQ25EO0lBQ0QsQ0FBQztJQUFBZixNQUFBLENBRURRLHlCQUF5QixHQUF6QixTQUFBQSx5QkFBeUJBLENBQUNPLDRCQUE4QyxFQUFRO01BQy9FLElBQUlBLDRCQUE0QixFQUFFO1FBQ2pDQSw0QkFBNEIsQ0FBQ3lFLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDRCxzQkFBc0IsRUFBRSxJQUFJLENBQUM7UUFDM0YsSUFBSSxDQUFDaEYsY0FBYyxHQUFHOEUsU0FBUztNQUNoQztJQUNELENBQUM7SUFBQXJGLE1BQUEsQ0FFREksbUJBQW1CLEdBQW5CLFNBQUFBLG1CQUFtQkEsQ0FBQSxFQUF1RTtNQUN6RixPQUFRLElBQUksQ0FBQ3FGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVVBLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQXpGLE1BQUEsQ0FFRHVGLHNCQUFzQixHQUF0QixTQUFBQSxzQkFBc0JBLENBQUNHLE1BQTBDLEVBQVE7TUFDeEUsTUFBTUMsR0FBRyxHQUFHLElBQUksQ0FBQ0MsS0FBSyxDQUFDLENBQUM7TUFDeEIsTUFBTUMsS0FBSyxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQyxJQUFJLENBQUM7TUFDN0MsTUFBTW5GLGlCQUFpQixHQUFHLElBQUksQ0FBQ1IsbUJBQW1CLENBQUMsQ0FBQztNQUNwRCxNQUFNUyxvQkFBb0IsR0FBRyxJQUFJLENBQUNDLElBQUksQ0FBQyxVQUFVLENBQUM7TUFDbEQsTUFBTUUscUJBQXFCLEdBQUdKLGlCQUFpQixDQUFDSyxpQkFBaUIsQ0FBQyxVQUFVLENBQXlCO01BQ3JHLE1BQU1DLGVBQWUsR0FBR0MsT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUU7TUFDdEUsTUFBTTRFLElBQUksR0FBR3BGLGlCQUFpQixDQUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDO01BQzFDaUMsaUJBQWlCLENBQUNrRCwyQkFBMkIsQ0FBQ3JGLGlCQUFpQixFQUFFaUYsS0FBSyxFQUFFRixHQUFHLEVBQUU5RSxvQkFBb0IsQ0FBQztNQUNsRyxJQUFJNkUsTUFBTSxDQUFDUSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakMsTUFBTUMsZ0JBQWdCLEdBQUdqRixlQUFlLENBQUMwQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7UUFDeEYsTUFBTXdDLFdBQVcsR0FBR2xGLGVBQWUsQ0FBQzBDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQztRQUMvRWIsaUJBQWlCLENBQUNzRCx5QkFBeUIsQ0FBQ0YsZ0JBQWdCLEVBQUVDLFdBQVcsRUFBRXZGLG9CQUFvQixFQUFFZ0YsS0FBSyxDQUFDO01BQ3hHLENBQUMsTUFBTSxJQUFJSCxNQUFNLENBQUNRLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN2QyxNQUFNSSxLQUFLLEdBQUdaLE1BQU0sQ0FBQ2EsU0FBUyxDQUFDLENBQUMsQ0FBQ0Msa0JBQWtCLENBQUMsQ0FBQztRQUNyRCxJQUFJRixLQUFLLElBQUlBLEtBQUssQ0FBQzlHLE1BQU0sS0FBSyxDQUFDLEVBQUU7VUFDaEN1RCxpQkFBaUIsQ0FBQzBELGdCQUFnQixDQUFDNUYsb0JBQW9CLEVBQUVLLGVBQWUsRUFBRTJFLEtBQUssQ0FBQztRQUNqRixDQUFDLE1BQU07VUFDTjdFLHFCQUFxQixDQUFDeUMsV0FBVyxDQUFDNUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQ7UUFDQWtDLGlCQUFpQixDQUFDMkQsa0JBQWtCLENBQUNKLEtBQUssRUFBRTFGLGlCQUFpQixFQUFFQyxvQkFBb0IsRUFBRUssZUFBZSxFQUFFMkUsS0FBSyxDQUFDO01BQzdHO01BQ0EsSUFBSUcsSUFBSSxLQUFNQSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUlBLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQ1csS0FBSyxJQUFNWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUlBLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQ1csS0FBTSxDQUFDLEVBQUU7UUFDekcsTUFBTUMsU0FBUyxHQUFHbEIsTUFBTSxDQUFDYSxTQUFTLENBQUMsQ0FBQyxDQUFDTSxXQUFXLENBQUMsQ0FBQztRQUNsRCxNQUFNQyxZQUFZLEdBQUdGLFNBQVMsSUFBSUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDOUMsU0FBUyxDQUFDLENBQUM7UUFDMURmLGlCQUFpQixDQUFDZ0UsZUFBZSxDQUFDbkcsaUJBQWlCLEVBQUVrRyxZQUFZLEVBQUVqQixLQUFLLEVBQUVoRixvQkFBb0IsQ0FBQztNQUNoRztJQUNELENBQUM7SUFBQSxPQUFBaEMsWUFBQTtFQUFBLEVBak15Qm1JLElBQUksR0FBQWxILFdBQUEsR0FBQW1ILHlCQUFBLENBQUE5SCxPQUFBLENBQUFjLFNBQUEsNkNBQUFqQixLQUFBO0lBQUFrSSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQUVXLElBQUk7SUFBQTtFQUFBLElBQUFsSSxPQUFBLE1BQUFELE1BQUE7RUFBQSxPQWlNL0JMLFlBQVk7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -21,6 +21,7 @@ import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
|
21
21
|
import type { ODataListBinding$DataReceivedEvent } from "sap/ui/model/odata/v4/ODataListBinding";
|
|
22
22
|
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
23
23
|
import type { MetaModelType } from "types/metamodel_types";
|
|
24
|
+
import VisualFilterRuntime from "../../visualfilters/VisualFilterRuntime";
|
|
24
25
|
/**
|
|
25
26
|
* Constructor for a new filterBar/aligned/FilterItemLayout.
|
|
26
27
|
* @param {string} [sId] ID for the new control, generated automatically if no ID is given
|
|
@@ -34,13 +35,32 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
34
35
|
|
|
35
36
|
private _oChartBinding?: ODataListBinding;
|
|
36
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Chart binding for the visual filter chart.
|
|
40
|
+
* @returns List Binding for the visual filter chart.
|
|
41
|
+
*/
|
|
42
|
+
public getChartBinding(): ODataListBinding | undefined {
|
|
43
|
+
const interactiveChart = this.getInteractiveChart();
|
|
44
|
+
const interactiveChartListBinding = (interactiveChart?.getBinding("segments") ||
|
|
45
|
+
interactiveChart?.getBinding("bars") ||
|
|
46
|
+
interactiveChart?.getBinding("points")) as ODataListBinding;
|
|
47
|
+
|
|
48
|
+
if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
|
|
49
|
+
if (this._oChartBinding) {
|
|
50
|
+
this.detachDataReceivedHandler(this._oChartBinding);
|
|
51
|
+
}
|
|
52
|
+
this.attachDataRecivedHandler(interactiveChartListBinding);
|
|
53
|
+
this._oChartBinding = interactiveChartListBinding;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return this._oChartBinding;
|
|
57
|
+
}
|
|
58
|
+
|
|
37
59
|
onAfterRendering(): void {
|
|
38
60
|
let sLabel;
|
|
39
61
|
const oInteractiveChart = this.getInteractiveChart();
|
|
40
62
|
const sInternalContextPath = this.data("infoPath");
|
|
41
|
-
const oInteractiveChartListBinding =
|
|
42
|
-
oInteractiveChart.getBinding("bars") ||
|
|
43
|
-
oInteractiveChart.getBinding("points")) as ODataListBinding;
|
|
63
|
+
const oInteractiveChartListBinding = this.getChartBinding();
|
|
44
64
|
const oInternalModelContext = oInteractiveChart.getBindingContext("internal") as InternalModelContext;
|
|
45
65
|
const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros")!;
|
|
46
66
|
const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
|
|
@@ -135,13 +155,6 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
135
155
|
}
|
|
136
156
|
}
|
|
137
157
|
|
|
138
|
-
if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
|
|
139
|
-
if (this._oChartBinding) {
|
|
140
|
-
this.detachDataReceivedHandler(this._oChartBinding);
|
|
141
|
-
}
|
|
142
|
-
this.attachDataRecivedHandler(oInteractiveChartListBinding);
|
|
143
|
-
this._oChartBinding = oInteractiveChartListBinding;
|
|
144
|
-
}
|
|
145
158
|
const bShowOverlay =
|
|
146
159
|
oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
|
|
147
160
|
const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
|
|
@@ -159,7 +172,8 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
159
172
|
// resume binding for only those visual filters that do not have a in parameter attached.
|
|
160
173
|
// Bindings of visual filters with inParameters will be resumed later after considering in parameters.
|
|
161
174
|
if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
|
|
162
|
-
|
|
175
|
+
const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
|
|
176
|
+
visualFilterBB?._setInternalUpdatePending(undefined, false);
|
|
163
177
|
}
|
|
164
178
|
}
|
|
165
179
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer", "./utils/VisualFilterUtils"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer, VisualFilterUtils) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _class, _class2, _descriptor;
|
|
@@ -129,6 +129,15 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
|
|
|
129
129
|
_proto.setAllFilterFields = function setAllFilterFields(aFilterFields, aVisualFilterFields) {
|
|
130
130
|
this.aAllFilterFields = aFilterFields;
|
|
131
131
|
this.aVisualFilterFields = aVisualFilterFields;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Enables or disables the chart binding for visual filters in this container.
|
|
136
|
+
* @param enable Whether to enable or disable the chart binding
|
|
137
|
+
* @param diffState Optional parameter to specify the changed filter field paths, incase of enablement.
|
|
138
|
+
*/;
|
|
139
|
+
_proto.enableChartBinding = function enableChartBinding(enable, diffState) {
|
|
140
|
+
VisualFilterUtils.enableChartBinding(this.aVisualFilterFields ?? {}, enable, diffState);
|
|
132
141
|
};
|
|
133
142
|
return VisualFilterContainer;
|
|
134
143
|
}(IFilterContainer), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "_layout", [_dec2], {
|
|
@@ -139,4 +148,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
|
|
|
139
148
|
}), _class2)) || _class);
|
|
140
149
|
return VisualFilterContainer;
|
|
141
150
|
}, false);
|
|
142
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJJRmlsdGVyQ29udGFpbmVyIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVmlzdWFsRmlsdGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztFQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1NQSxxQkFBcUIsSUFBQUMsSUFBQSxHQUQxQkMsY0FBYyxDQUFDLHdEQUF3RCxDQUFDLEVBQUFDLEtBQUEsR0FFdkVDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUUscUJBQXFCO0lBQzNCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxVQUFVLEVBQUU7RUFDYixDQUFDLENBQUMsRUFBQU4sSUFBQSxDQUFBTyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGlCQUFBO0lBQUEsU0FBQVYsc0JBQUE7TUFBQSxJQUFBVyxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUMsSUFBQSxPQUFBQyxLQUFBLENBQUFKLElBQUEsR0FBQUssSUFBQSxNQUFBQSxJQUFBLEdBQUFMLElBQUEsRUFBQUssSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQUosU0FBQSxDQUFBSSxJQUFBO01BQUE7TUFBQU4sS0FBQSxHQUFBRCxpQkFBQSxDQUFBUSxJQUFBLFVBQUFILElBQUE7TUFBQUksMEJBQUEsQ0FBQVIsS0FBQSxhQUFBUyxXQUFBLEVBQUFULEtBQUE7TUFBQUEsS0FBQSxDQWNGVSxtQkFBbUIsR0FBa0MsQ0FBQyxDQUFDO01BQUEsT0FBQVYsS0FBQTtJQUFBO0lBQUFXLGNBQUEsQ0FBQXRCLHFCQUFBLEVBQUFVLGlCQUFBO0lBQUEsSUFBQWEsTUFBQSxHQUFBdkIscUJBQUEsQ0FBQXdCLFNBQUE7SUFBQUQsTUFBQSxDQUV2REUsSUFBSSxHQUFKLFNBQUFBLElBQUlBLENBQUEsRUFB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
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJlbmFibGVDaGFydEJpbmRpbmciLCJlbmFibGUiLCJkaWZmU3RhdGUiLCJWaXN1YWxGaWx0ZXJVdGlscyIsIklGaWx0ZXJDb250YWluZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlckNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBWaXN1YWxGaWx0ZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwiLi4vLi4vdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyVXRpbHMgZnJvbSBcIi4vdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxuXG5cdC8qKlxuXHQgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBjaGFydCBiaW5kaW5nIGZvciB2aXN1YWwgZmlsdGVycyBpbiB0aGlzIGNvbnRhaW5lci5cblx0ICogQHBhcmFtIGVuYWJsZSBXaGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBjaGFydCBiaW5kaW5nXG5cdCAqIEBwYXJhbSBkaWZmU3RhdGUgT3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNwZWNpZnkgdGhlIGNoYW5nZWQgZmlsdGVyIGZpZWxkIHBhdGhzLCBpbmNhc2Ugb2YgZW5hYmxlbWVudC5cblx0ICovXG5cdGVuYWJsZUNoYXJ0QmluZGluZyhlbmFibGU6IGJvb2xlYW4sIGRpZmZTdGF0ZT86IEV4dGVybmFsU3RhdGVUeXBlKTogdm9pZCB7XG5cdFx0VmlzdWFsRmlsdGVyVXRpbHMuZW5hYmxlQ2hhcnRCaW5kaW5nKHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA/PyB7fSwgZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbEZpbHRlckNvbnRhaW5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0VBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTU1BLHFCQUFxQixJQUFBQyxJQUFBLEdBRDFC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
|