@sapui5/sap.fe.templates 1.109.0 → 1.110.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +5 -1
  2. package/package.json +11 -8
  3. package/src/sap/fe/templates/.library +26 -27
  4. package/src/sap/fe/templates/AnalyticalListPage/Component.js +1 -7
  5. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -4
  6. package/src/sap/fe/templates/ListComponent.js +45 -62
  7. package/src/sap/fe/templates/ListComponent.ts +43 -43
  8. package/src/sap/fe/templates/ListReport/Component.js +11 -19
  9. package/src/sap/fe/templates/ListReport/Component.ts +6 -0
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +11 -37
  11. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
  12. package/src/sap/fe/templates/ListReport/LRMessageStrip.js +196 -0
  13. package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +216 -0
  14. package/src/sap/fe/templates/ListReport/ListReport.view.xml +31 -0
  15. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +140 -247
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +49 -14
  17. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +2 -7
  18. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +21 -108
  19. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +9 -17
  20. package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -25
  21. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +51 -122
  22. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -23
  23. package/src/sap/fe/templates/ObjectPage/Component.js +19 -40
  24. package/src/sap/fe/templates/ObjectPage/Component.ts +9 -2
  25. package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.js +64 -0
  26. package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.ts +80 -0
  27. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +21 -58
  28. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +4 -4
  29. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +2 -1
  30. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +173 -459
  31. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +13 -18
  32. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +129 -208
  33. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +62 -14
  34. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +1 -32
  35. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +9 -37
  36. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +1 -7
  37. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +9 -31
  38. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  39. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +2 -4
  40. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  41. package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js +4 -5
  42. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +4 -4
  43. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.ts +3 -3
  44. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +4 -4
  45. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.ts +3 -3
  46. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +16 -21
  47. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +1 -1
  48. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +19 -1
  49. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +21 -0
  50. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  51. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +4 -5
  52. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +19 -69
  53. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
  54. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +5 -20
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +6 -6
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +4 -3
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +3 -3
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +1 -1
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +1 -1
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +4 -3
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +7 -5
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +1 -1
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +3 -2
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +2 -1
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +7 -7
  67. package/src/sap/fe/templates/TableScroller.js +1 -6
  68. package/src/sap/fe/templates/library.js +4 -7
  69. package/src/sap/fe/templates/library.ts +1 -2
  70. package/src/sap/fe/templates/messagebundle.properties +30 -29
  71. package/src/sap/fe/templates/messagebundle_bg.properties +2 -2
  72. package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
  73. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
  74. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
  75. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
  76. package/src/sap/fe/templates/messagebundle_no.properties +3 -3
  77. package/src/sap/fe/templates/messagebundle_sl.properties +7 -7
  78. package/ui5.yaml +0 -1
  79. package/src/sap/fe/templates/Feedback.js +0 -80
  80. package/src/sap/fe/templates/Feedback.ts +0 -64
  81. package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +0 -82
  82. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +0 -20
  83. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +0 -20
@@ -6,32 +6,22 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
9
-
10
9
  var property = ClassSupport.property;
11
10
  var event = ClassSupport.event;
12
11
  var defineUI5Class = ClassSupport.defineUI5Class;
13
12
  var association = ClassSupport.association;
14
13
  var aggregation = ClassSupport.aggregation;
15
-
16
14
  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
17
-
18
15
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19
-
20
16
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
21
-
22
17
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
-
24
18
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
25
-
26
19
  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
27
-
28
20
  var BindingAction;
29
-
30
21
  (function (BindingAction) {
31
22
  BindingAction["Suspend"] = "suspendBinding";
32
23
  BindingAction["Resume"] = "resumeBinding";
33
24
  })(BindingAction || (BindingAction = {}));
34
-
35
25
  var MultipleModeControl = (_dec = defineUI5Class("sap.fe.templates.ListReport.controls.MultipleModeControl"), _dec2 = property({
36
26
  type: "boolean"
37
27
  }), _dec3 = property({
@@ -52,108 +42,79 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
52
42
  multiple: false
53
43
  }), _dec8 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_Control) {
54
44
  _inheritsLoose(MultipleModeControl, _Control);
55
-
56
45
  function MultipleModeControl() {
57
46
  var _this;
58
-
59
47
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
60
48
  args[_key] = arguments[_key];
61
49
  }
62
-
63
50
  _this = _Control.call.apply(_Control, [this].concat(args)) || this;
64
-
65
51
  _initializerDefineProperty(_this, "showCounts", _descriptor, _assertThisInitialized(_this));
66
-
67
52
  _initializerDefineProperty(_this, "freezeContent", _descriptor2, _assertThisInitialized(_this));
68
-
69
53
  _initializerDefineProperty(_this, "countsOutDated", _descriptor3, _assertThisInitialized(_this));
70
-
71
54
  _initializerDefineProperty(_this, "content", _descriptor4, _assertThisInitialized(_this));
72
-
73
55
  _initializerDefineProperty(_this, "innerControls", _descriptor5, _assertThisInitialized(_this));
74
-
75
56
  _initializerDefineProperty(_this, "filterControl", _descriptor6, _assertThisInitialized(_this));
76
-
77
57
  _initializerDefineProperty(_this, "select", _descriptor7, _assertThisInitialized(_this));
78
-
79
58
  return _this;
80
59
  }
81
-
82
60
  var _proto = MultipleModeControl.prototype;
83
-
84
61
  _proto.onBeforeRendering = function onBeforeRendering() {
85
62
  var _this2 = this;
86
-
87
63
  this.getTabsModel(); // Generate the model which is mandatory for some bindings
88
64
 
89
65
  var oFilterControl = this._getFilterControl();
90
-
91
66
  if (!oFilterControl) {
92
67
  // In case there's no filterbar, we have to update the counts in the tabs immediately
93
68
  this.setCountsOutDated(true);
94
69
  }
95
-
96
70
  var oFilterBarAPI = oFilterControl === null || oFilterControl === void 0 ? void 0 : oFilterControl.getParent();
97
71
  this.getAllInnerControls().forEach(function (oMacroAPI) {
98
72
  var _oMacroAPI$suspendBin;
99
-
100
73
  if (_this2.showCounts) {
101
74
  oMacroAPI.attachEvent("internalDataRequested", _this2._refreshTabsCount.bind(_this2));
102
75
  }
103
-
104
76
  (_oMacroAPI$suspendBin = oMacroAPI.suspendBinding) === null || _oMacroAPI$suspendBin === void 0 ? void 0 : _oMacroAPI$suspendBin.call(oMacroAPI);
105
77
  });
106
-
107
78
  if (oFilterBarAPI) {
108
79
  oFilterBarAPI.attachEvent("internalSearch", this._onSearch.bind(this));
109
80
  oFilterBarAPI.attachEvent("internalFilterChanged", this._onFilterChanged.bind(this));
110
81
  }
111
82
  };
112
-
113
83
  _proto.onAfterRendering = function onAfterRendering() {
114
84
  var _this$getSelectedInne, _this$getSelectedInne2;
115
-
116
85
  (_this$getSelectedInne = this.getSelectedInnerControl()) === null || _this$getSelectedInne === void 0 ? void 0 : (_this$getSelectedInne2 = _this$getSelectedInne.resumeBinding) === null || _this$getSelectedInne2 === void 0 ? void 0 : _this$getSelectedInne2.call(_this$getSelectedInne, !this.getProperty("freezeContent"));
117
86
  };
118
-
119
87
  MultipleModeControl.render = function render(oRm, oControl) {
120
88
  oRm.renderControl(oControl.content);
121
89
  }
90
+
122
91
  /**
123
92
  * Gets the model containing information related to the IconTabFilters.
124
93
  *
125
94
  * @returns {sap.ui.model.Model | undefined} The model
126
- */
127
- ;
128
-
95
+ */;
129
96
  _proto.getTabsModel = function getTabsModel() {
130
97
  var sTabsModel = "tabsInternal";
131
98
  var oContent = this.content;
132
-
133
99
  if (!oContent) {
134
100
  return undefined;
135
101
  }
136
-
137
102
  var oModel = oContent.getModel(sTabsModel);
138
-
139
103
  if (!oModel) {
140
104
  oModel = new JSONModel({});
141
105
  oContent.setModel(oModel, sTabsModel);
142
106
  }
143
-
144
107
  return oModel;
145
108
  }
109
+
146
110
  /**
147
111
  * Gets the inner control of the displayed tab.
148
112
  *
149
113
  * @returns {InnerControlType | undefined} The control
150
- */
151
- ;
152
-
114
+ */;
153
115
  _proto.getSelectedInnerControl = function getSelectedInnerControl() {
154
116
  var _this$content,
155
- _this3 = this;
156
-
117
+ _this3 = this;
157
118
  var oSelectedTab = (_this$content = this.content) === null || _this$content === void 0 ? void 0 : _this$content.getItems().find(function (oItem) {
158
119
  return oItem.getKey() === _this3.content.getSelectedKey();
159
120
  });
@@ -161,35 +122,28 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
161
122
  return _this3._getTabFromInnerControl(oMacroAPI) === oSelectedTab;
162
123
  }) : undefined;
163
124
  }
125
+
164
126
  /**
165
127
  * Manages the binding of all inner controls when the selected IconTabFilter is changed.
166
128
  *
167
129
  * @param {sap.ui.base.Event} oEvent Event fired by the IconTabBar
168
- */
169
- ;
170
-
130
+ */;
171
131
  MultipleModeControl.handleTabChange = function handleTabChange(oEvent) {
172
132
  var _oMultiControl$_getVi, _oMultiControl$_getVi2;
173
-
174
133
  var oIconTabBar = oEvent.getSource();
175
134
  var oMultiControl = oIconTabBar.getParent();
176
135
  var mParameters = oEvent.getParameters();
177
-
178
136
  oMultiControl._setInnerBinding(true);
179
-
180
137
  var sPreviousSelectedKey = mParameters === null || mParameters === void 0 ? void 0 : mParameters.previousKey;
181
138
  var sSelectedKey = mParameters === null || mParameters === void 0 ? void 0 : mParameters.selectedKey;
182
-
183
139
  if (sSelectedKey && sPreviousSelectedKey !== sSelectedKey) {
184
140
  var oFilterBar = oMultiControl._getFilterControl();
185
-
186
141
  if (oFilterBar && !oMultiControl.getProperty("freezeContent")) {
187
142
  if (!oMultiControl.getSelectedInnerControl()) {
188
143
  //custom tab
189
144
  oMultiControl._refreshCustomView(oFilterBar.getFilterConditions(), "tabChanged");
190
145
  }
191
146
  }
192
-
193
147
  ControlPersonalizationWriteAPI.add({
194
148
  changes: [{
195
149
  changeSpecificData: {
@@ -203,7 +157,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
203
157
  }]
204
158
  });
205
159
  }
206
-
207
160
  (_oMultiControl$_getVi = oMultiControl._getViewController()) === null || _oMultiControl$_getVi === void 0 ? void 0 : (_oMultiControl$_getVi2 = _oMultiControl$_getVi.getExtensionAPI()) === null || _oMultiControl$_getVi2 === void 0 ? void 0 : _oMultiControl$_getVi2.updateAppState();
208
161
  oMultiControl.fireEvent("select", {
209
162
  iconTabBar: oIconTabBar,
@@ -211,72 +164,61 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
211
164
  previousKey: sPreviousSelectedKey
212
165
  });
213
166
  }
167
+
214
168
  /**
215
169
  * Invalidates the content of all inner controls.
216
- */
217
- ;
218
-
170
+ */;
219
171
  _proto.invalidateContent = function invalidateContent() {
220
172
  this.setCountsOutDated(true);
221
173
  this.getAllInnerControls().forEach(function (oMacroAPI) {
222
174
  var _oMacroAPI$invalidate;
223
-
224
175
  (_oMacroAPI$invalidate = oMacroAPI.invalidateContent) === null || _oMacroAPI$invalidate === void 0 ? void 0 : _oMacroAPI$invalidate.call(oMacroAPI);
225
176
  });
226
177
  }
178
+
227
179
  /**
228
180
  * Sets the counts to out of date or up to date
229
181
  * If the counts are set to "out of date" and the selected IconTabFilter doesn't contain an inner control all inner controls are requested to get the new counts.
230
182
  *
231
183
  * @param {boolean} bValue Freeze or not the control
232
- */
233
- ;
234
-
184
+ */;
235
185
  _proto.setCountsOutDated = function setCountsOutDated() {
236
186
  var bValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
237
- this.setProperty("countsOutDated", bValue); // if the current tab is not configured with no inner Control
187
+ this.setProperty("countsOutDated", bValue);
188
+ // if the current tab is not configured with no inner Control
238
189
  // the tab counts must be manually refreshed since no Macro API will sent event internalDataRequested
239
-
240
190
  if (bValue && !this.getSelectedInnerControl()) {
241
191
  this._refreshTabsCount();
242
192
  }
243
193
  }
194
+
244
195
  /**
245
196
  * Freezes the content :
246
197
  * - content is frozen: the binding of the inner controls are suspended.
247
198
  * - content is unfrozen: the binding of inner control related to the selected IconTabFilter is resumed.
248
199
  *
249
200
  * @param {boolean} bValue Freeze or not the control
250
- */
251
- ;
252
-
201
+ */;
253
202
  _proto.setFreezeContent = function setFreezeContent(bValue) {
254
203
  this.setProperty("freezeContent", bValue);
255
-
256
204
  this._setInnerBinding();
257
205
  }
206
+
258
207
  /**
259
208
  * Updates the internal model with the properties that are not applicable on each IconTabFilter (containing inner control) according to the entityType of the filter control.
260
209
  *
261
210
  * @param oResourceBundle
262
- */
263
- ;
264
-
211
+ */;
265
212
  _proto._updateMultiTabNotApplicableFields = function _updateMultiTabNotApplicableFields(oResourceBundle) {
266
213
  var _this4 = this;
267
-
268
214
  var tabsModel = this.getTabsModel();
269
-
270
215
  var oFilterControl = this._getFilterControl();
271
-
272
216
  if (tabsModel && oFilterControl) {
273
217
  var results = {};
274
218
  this.getAllInnerControls().forEach(function (oMacroAPI) {
275
219
  var oTab = _this4._getTabFromInnerControl(oMacroAPI);
276
-
277
220
  if (oTab) {
278
221
  var _oMacroAPI$refreshNot;
279
-
280
222
  var sTabId = oTab.getKey();
281
223
  var mIgnoredFields = ((_oMacroAPI$refreshNot = oMacroAPI.refreshNotApplicableFields) === null || _oMacroAPI$refreshNot === void 0 ? void 0 : _oMacroAPI$refreshNot.call(oMacroAPI, oFilterControl)) || [];
282
224
  results[sTabId] = {
@@ -295,71 +237,56 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
295
237
  tabsModel.setData(results);
296
238
  }
297
239
  }
240
+
298
241
  /**
299
242
  * Gets the inner controls.
300
243
  *
301
244
  * @param {boolean} bOnlyForVisibleTab Should display only the visible controls
302
245
  * @returns {InnerControlType[]} An array of controls
303
- */
304
- ;
305
-
246
+ */;
306
247
  _proto.getAllInnerControls = function getAllInnerControls() {
307
248
  var _this5 = this;
308
-
309
249
  var bOnlyForVisibleTab = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
310
250
  return this.innerControls.reduce(function (aInnerControls, sInnerControl) {
311
251
  var oControl = Core.byId(sInnerControl);
312
-
313
252
  if (oControl) {
314
253
  aInnerControls.push(oControl);
315
254
  }
316
-
317
255
  return aInnerControls.filter(function (oInnerControl) {
318
256
  var _this5$_getTabFromInn;
319
-
320
257
  return !bOnlyForVisibleTab || ((_this5$_getTabFromInn = _this5._getTabFromInnerControl(oInnerControl)) === null || _this5$_getTabFromInn === void 0 ? void 0 : _this5$_getTabFromInn.getVisible());
321
258
  });
322
259
  }, []) || [];
323
260
  };
324
-
325
261
  _proto._getFilterControl = function _getFilterControl() {
326
262
  return Core.byId(this.filterControl);
327
263
  };
328
-
329
264
  _proto._getTabFromInnerControl = function _getTabFromInnerControl(oControl) {
330
265
  var sSupportedClass = IconTabFilter.getMetadata().getName();
331
266
  var oTab = oControl;
332
-
333
267
  if (oTab && !oTab.isA(sSupportedClass) && oTab.getParent) {
334
268
  oTab = oControl.getParent();
335
269
  }
336
-
337
270
  return oTab && oTab.isA(sSupportedClass) ? oTab : undefined;
338
271
  };
339
-
340
272
  _proto._getViewController = function _getViewController() {
341
273
  var oView = CommonUtils.getTargetView(this);
342
274
  return oView && oView.getController();
343
275
  };
344
-
345
276
  _proto._refreshCustomView = function _refreshCustomView(oFilterConditions, sRefreshCause) {
346
277
  var _this$_getViewControl, _this$_getViewControl2;
347
-
348
278
  (_this$_getViewControl = this._getViewController()) === null || _this$_getViewControl === void 0 ? void 0 : (_this$_getViewControl2 = _this$_getViewControl.onViewNeedsRefresh) === null || _this$_getViewControl2 === void 0 ? void 0 : _this$_getViewControl2.call(_this$_getViewControl, {
349
279
  filterConditions: oFilterConditions,
350
280
  currentTabId: this.content.getSelectedKey(),
351
281
  refreshCause: sRefreshCause
352
282
  });
353
283
  };
354
-
355
284
  _proto._refreshTabsCount = function _refreshTabsCount() {
356
285
  var _this$content2,
357
- _this6 = this;
358
-
286
+ _this6 = this;
359
287
  var sSelectedKey = (_this$content2 = this.content) === null || _this$content2 === void 0 ? void 0 : _this$content2.getSelectedKey();
360
288
  this.getAllInnerControls(true).forEach(function (oMacroAPI) {
361
289
  var oIconTabFilter = _this6._getTabFromInnerControl(oMacroAPI);
362
-
363
290
  if (oMacroAPI !== null && oMacroAPI !== void 0 && oMacroAPI.getCounts && (_this6.countsOutDated || sSelectedKey === (oIconTabFilter === null || oIconTabFilter === void 0 ? void 0 : oIconTabFilter.getKey()))) {
364
291
  if (oIconTabFilter && oIconTabFilter.setCount) {
365
292
  oIconTabFilter.setCount("...");
@@ -373,59 +300,45 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
373
300
  });
374
301
  this.setCountsOutDated(false);
375
302
  };
376
-
377
303
  _proto._setInnerBinding = function _setInnerBinding() {
378
304
  var _this7 = this;
379
-
380
305
  var bRequestIfNotInitialized = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
381
-
382
306
  if (this.content) {
383
307
  this.getAllInnerControls().forEach(function (oMacroAPI) {
384
308
  var _oMacroAPI$sAction;
385
-
386
309
  var oIconTabFilter = _this7._getTabFromInnerControl(oMacroAPI);
387
-
388
310
  var bIsSelectedKey = (oIconTabFilter === null || oIconTabFilter === void 0 ? void 0 : oIconTabFilter.getKey()) === _this7.content.getSelectedKey();
389
-
390
311
  var sAction = bIsSelectedKey && !_this7.getProperty("freezeContent") ? BindingAction.Resume : BindingAction.Suspend;
391
312
  (_oMacroAPI$sAction = oMacroAPI[sAction]) === null || _oMacroAPI$sAction === void 0 ? void 0 : _oMacroAPI$sAction.call(oMacroAPI, sAction === BindingAction.Resume ? bRequestIfNotInitialized && bIsSelectedKey : undefined);
392
313
  });
393
314
  }
394
315
  };
395
-
396
316
  _proto._setTabMessageStrip = function _setTabMessageStrip(properties) {
397
317
  var sText = "";
398
318
  var aIgnoredFields = properties.ignoredFields;
399
-
400
319
  var oFilterControl = this._getFilterControl();
401
-
402
320
  if (oFilterControl && Array.isArray(aIgnoredFields) && aIgnoredFields.length > 0 && properties.title) {
403
321
  var aIgnoredLabels = MessageStrip.getLabels(aIgnoredFields, properties.entityTypePath, oFilterControl, properties.resourceBundle);
404
322
  sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
405
323
  return sText;
406
324
  }
407
325
  };
408
-
409
326
  _proto._onSearch = function _onSearch(oEvent) {
410
327
  this.setCountsOutDated(true);
411
328
  this.setFreezeContent(false);
412
-
413
329
  if (this.getSelectedInnerControl()) {
414
330
  var _this$_getViewControl3;
415
-
416
331
  this._updateMultiTabNotApplicableFields((_this$_getViewControl3 = this._getViewController()) === null || _this$_getViewControl3 === void 0 ? void 0 : _this$_getViewControl3.oResourceBundle);
417
332
  } else {
418
333
  // custom tab
419
334
  this._refreshCustomView(oEvent.getParameter("conditions"), "search");
420
335
  }
421
336
  };
422
-
423
337
  _proto._onFilterChanged = function _onFilterChanged(oEvent) {
424
338
  if (oEvent.getParameter("conditionsBased")) {
425
339
  this.setFreezeContent(true);
426
340
  }
427
341
  };
428
-
429
342
  return MultipleModeControl;
430
343
  }(Control), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "showCounts", [_dec2], {
431
344
  configurable: true,
@@ -465,4 +378,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
465
378
  })), _class2)) || _class);
466
379
  return MultipleModeControl;
467
380
  }, false);
468
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwib1Jlc291cmNlQnVuZGxlIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJnZXRQYXJhbWV0ZXIiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNdWx0aXBsZU1vZGVDb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL01hY3JvQVBJXCI7XG5pbXBvcnQgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IGFueVtdO1xuXHRyZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cdHRpdGxlOiBzdHJpbmc7XG59O1xuXG5lbnVtIEJpbmRpbmdBY3Rpb24ge1xuXHRTdXNwZW5kID0gXCJzdXNwZW5kQmluZGluZ1wiLFxuXHRSZXN1bWUgPSBcInJlc3VtZUJpbmRpbmdcIlxufVxuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuY29udHJvbHMuTXVsdGlwbGVNb2RlQ29udHJvbFwiKVxuY2xhc3MgTXVsdGlwbGVNb2RlQ29udHJvbCBleHRlbmRzIENvbnRyb2wge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRzaG93Q291bnRzITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmcmVlemVDb250ZW50ITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRjb3VudHNPdXREYXRlZCE6IGJvb2xlYW47XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAubS5JY29uVGFiQmFyXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnQhOiBJY29uVGFiQmFyO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRpbm5lckNvbnRyb2xzITogc3RyaW5nW107XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGZpbHRlckNvbnRyb2whOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0c2VsZWN0ITogRnVuY3Rpb247XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRUYWJzTW9kZWwoKTsgLy8gR2VuZXJhdGUgdGhlIG1vZGVsIHdoaWNoIGlzIG1hbmRhdG9yeSBmb3Igc29tZSBiaW5kaW5nc1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0aWYgKCFvRmlsdGVyQ29udHJvbCkge1xuXHRcdFx0Ly8gSW4gY2FzZSB0aGVyZSdzIG5vIGZpbHRlcmJhciwgd2UgaGF2ZSB0byB1cGRhdGUgdGhlIGNvdW50cyBpbiB0aGUgdGFicyBpbW1lZGlhdGVseVxuXHRcdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0ZpbHRlckJhckFQSSA9IG9GaWx0ZXJDb250cm9sPy5nZXRQYXJlbnQoKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGlmICh0aGlzLnNob3dDb3VudHMpIHtcblx0XHRcdFx0b01hY3JvQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxEYXRhUmVxdWVzdGVkXCIsIHRoaXMuX3JlZnJlc2hUYWJzQ291bnQuYmluZCh0aGlzKSk7XG5cdFx0XHR9XG5cdFx0XHRvTWFjcm9BUEkuc3VzcGVuZEJpbmRpbmc/LigpO1xuXHRcdH0pO1xuXHRcdGlmIChvRmlsdGVyQmFyQVBJKSB7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxTZWFyY2hcIiwgdGhpcy5fb25TZWFyY2guYmluZCh0aGlzKSk7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkXCIsIHRoaXMuX29uRmlsdGVyQ2hhbmdlZC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8ucmVzdW1lQmluZGluZz8uKCF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSk7XG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IE11bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBtb2RlbCBjb250YWluaW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIEljb25UYWJGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLk1vZGVsIHwgdW5kZWZpbmVkfSBUaGUgbW9kZWxcblx0ICovXG5cdGdldFRhYnNNb2RlbCgpOiBNb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpO1xuXHRcdGlmICghb01vZGVsKSB7XG5cdFx0XHRvTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdG9Db250ZW50LnNldE1vZGVsKG9Nb2RlbCwgc1RhYnNNb2RlbCk7XG5cdFx0fVxuXHRcdHJldHVybiBvTW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbCBvZiB0aGUgZGlzcGxheWVkIHRhYi5cblx0ICpcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWR9IFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQ/LmdldEl0ZW1zKCkuZmluZCgob0l0ZW0pID0+IChvSXRlbSBhcyBJY29uVGFiRmlsdGVyKS5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCkpO1xuXHRcdHJldHVybiBvU2VsZWN0ZWRUYWJcblx0XHRcdD8gdGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICpcblx0ICogQHBhcmFtIHtzYXAudWkuYmFzZS5FdmVudH0gb0V2ZW50IEV2ZW50IGZpcmVkIGJ5IHRoZSBJY29uVGFiQmFyXG5cdCAqL1xuXHRzdGF0aWMgaGFuZGxlVGFiQ2hhbmdlKG9FdmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ljb25UYWJCYXIgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgb011bHRpQ29udHJvbCA9IG9JY29uVGFiQmFyLmdldFBhcmVudCgpO1xuXG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpO1xuXHRcdG9NdWx0aUNvbnRyb2wuX3NldElubmVyQmluZGluZyh0cnVlKTtcblx0XHRjb25zdCBzUHJldmlvdXNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5wcmV2aW91c0tleTtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8uc2VsZWN0ZWRLZXk7XG5cblx0XHRpZiAoc1NlbGVjdGVkS2V5ICYmIHNQcmV2aW91c1NlbGVjdGVkS2V5ICE9PSBzU2VsZWN0ZWRLZXkpIHtcblx0XHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvTXVsdGlDb250cm9sLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0XHRpZiAob0ZpbHRlckJhciAmJiAhb011bHRpQ29udHJvbC5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0aWYgKCFvTXVsdGlDb250cm9sLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdFx0XHQvL2N1c3RvbSB0YWJcblx0XHRcdFx0XHRvTXVsdGlDb250cm9sLl9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQmFyLmdldEZpbHRlckNvbmRpdGlvbnMoKSwgXCJ0YWJDaGFuZ2VkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkuYWRkKHtcblx0XHRcdFx0Y2hhbmdlczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNoYW5nZVNwZWNpZmljRGF0YToge1xuXHRcdFx0XHRcdFx0XHRjaGFuZ2VUeXBlOiBcInNlbGVjdEljb25UYWJCYXJGaWx0ZXJcIixcblx0XHRcdFx0XHRcdFx0Y29udGVudDoge1xuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRcdFx0XHRcdFx0cHJldmlvdXNTZWxlY3RlZEtleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHNlbGVjdG9yRWxlbWVudDogb0ljb25UYWJCYXJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG9NdWx0aUNvbnRyb2wuX2dldFZpZXdDb250cm9sbGVyKCk/LmdldEV4dGVuc2lvbkFQSSgpPy51cGRhdGVBcHBTdGF0ZSgpO1xuXG5cdFx0b011bHRpQ29udHJvbC5maXJlRXZlbnQoXCJzZWxlY3RcIiwge1xuXHRcdFx0aWNvblRhYkJhcjogb0ljb25UYWJCYXIsXG5cdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0cHJldmlvdXNLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW52YWxpZGF0ZXMgdGhlIGNvbnRlbnQgb2YgYWxsIGlubmVyIGNvbnRyb2xzLlxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoKSB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdG9NYWNyb0FQSS5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY291bnRzIHRvIG91dCBvZiBkYXRlIG9yIHVwIHRvIGRhdGVcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wgYWxsIGlubmVyIGNvbnRyb2xzIGFyZSByZXF1ZXN0ZWQgdG8gZ2V0IHRoZSBuZXcgY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRDb3VudHNPdXREYXRlZChiVmFsdWUgPSB0cnVlKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvdW50c091dERhdGVkXCIsIGJWYWx1ZSk7XG5cdFx0Ly8gaWYgdGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBjb25maWd1cmVkIHdpdGggbm8gaW5uZXIgQ29udHJvbFxuXHRcdC8vIHRoZSB0YWIgY291bnRzIG11c3QgYmUgbWFudWFsbHkgcmVmcmVzaGVkIHNpbmNlIG5vIE1hY3JvIEFQSSB3aWxsIHNlbnQgZXZlbnQgaW50ZXJuYWxEYXRhUmVxdWVzdGVkXG5cdFx0aWYgKGJWYWx1ZSAmJiAhdGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl9yZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAgLSBjb250ZW50IGlzIGZyb3plbjogdGhlIGJpbmRpbmcgb2YgdGhlIGlubmVyIGNvbnRyb2xzIGFyZSBzdXNwZW5kZWQuXG5cdCAqICAtIGNvbnRlbnQgaXMgdW5mcm96ZW46IHRoZSBiaW5kaW5nIG9mIGlubmVyIGNvbnRyb2wgcmVsYXRlZCB0byB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyByZXN1bWVkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZVxuXHQgKi9cblx0X3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyhvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlKSB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuXHRcdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9UYWIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGlmIChvVGFiKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc1RhYklkID0gb1RhYi5nZXRLZXkoKTtcblx0XHRcdFx0XHRjb25zdCBtSWdub3JlZEZpZWxkcyA9IG9NYWNyb0FQSS5yZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcz8uKG9GaWx0ZXJDb250cm9sKSB8fCBbXTtcblx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB7XG5cdFx0XHRcdFx0XHRub3RBcHBsaWNhYmxlOiB7XG5cdFx0XHRcdFx0XHRcdGZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLl9zZXRUYWJNZXNzYWdlU3RyaXAoe1xuXHRcdFx0XHRcdFx0XHRcdGVudGl0eVR5cGVQYXRoOiBvRmlsdGVyQ29udHJvbC5kYXRhKFwiZW50aXR5VHlwZVwiKSxcblx0XHRcdFx0XHRcdFx0XHRpZ25vcmVkRmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0XHRyZXNvdXJjZUJ1bmRsZTogb1Jlc291cmNlQnVuZGxlLFxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiBvVGFiLmdldFRleHQoKVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0KHRhYnNNb2RlbCBhcyBhbnkpLnNldERhdGEocmVzdWx0cyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJPbmx5Rm9yVmlzaWJsZVRhYiBTaG91bGQgZGlzcGxheSBvbmx5IHRoZSB2aXNpYmxlIGNvbnRyb2xzXG5cdCAqIEByZXR1cm5zIHtJbm5lckNvbnRyb2xUeXBlW119IEFuIGFycmF5IG9mIGNvbnRyb2xzXG5cdCAqL1xuXHRnZXRBbGxJbm5lckNvbnRyb2xzKGJPbmx5Rm9yVmlzaWJsZVRhYiA9IGZhbHNlKTogSW5uZXJDb250cm9sVHlwZVtdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xzLnJlZHVjZSgoYUlubmVyQ29udHJvbHM6IElubmVyQ29udHJvbFR5cGVbXSwgc0lubmVyQ29udHJvbDogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sID0gQ29yZS5ieUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gQ29yZS5ieUlkKHRoaXMuZmlsdGVyQ29udHJvbCkgYXMgRmlsdGVyQmFyIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0NvbnRyb2w6IENvbnRyb2wpOiBJY29uVGFiRmlsdGVyIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzU3VwcG9ydGVkQ2xhc3MgPSBJY29uVGFiRmlsdGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXHRcdGxldCBvVGFiOiBhbnkgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSAmJiBvVGFiLmdldFBhcmVudCkge1xuXHRcdFx0b1RhYiA9IG9Db250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RhYiAmJiBvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpID8gKG9UYWIgYXMgSWNvblRhYkZpbHRlcikgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0Vmlld0NvbnRyb2xsZXIoKSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IGFueSwgc1JlZnJlc2hDYXVzZTogc3RyaW5nKSB7XG5cdFx0KHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCkgYXMgYW55KT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHRfcmVmcmVzaFRhYnNDb3VudCgpOiB2b2lkIHtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSB0aGlzLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAob01hY3JvQVBJPy5nZXRDb3VudHMgJiYgKHRoaXMuY291bnRzT3V0RGF0ZWQgfHwgc1NlbGVjdGVkS2V5ID09PSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkpKSB7XG5cdFx0XHRcdGlmIChvSWNvblRhYkZpbHRlciAmJiBvSWNvblRhYkZpbHRlci5zZXRDb3VudCkge1xuXHRcdFx0XHRcdG9JY29uVGFiRmlsdGVyLnNldENvdW50KFwiLi4uXCIpO1xuXHRcdFx0XHRcdG9NYWNyb0FQSVxuXHRcdFx0XHRcdFx0LmdldENvdW50cygpXG5cdFx0XHRcdFx0XHQudGhlbigoaUNvdW50OiBzdHJpbmcpID0+IG9JY29uVGFiRmlsdGVyLnNldENvdW50KGlDb3VudCB8fCBcIjBcIikpXG5cdFx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJlcXVlc3RpbmcgQ291bnRzIGZvciBDb250cm9sXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0X3NldElubmVyQmluZGluZyhiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvSWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0Y29uc3QgYklzU2VsZWN0ZWRLZXkgPSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkgPT09IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpO1xuXHRcdFx0XHRjb25zdCBzQWN0aW9uID0gYklzU2VsZWN0ZWRLZXkgJiYgIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpID8gQmluZGluZ0FjdGlvbi5SZXN1bWUgOiBCaW5kaW5nQWN0aW9uLlN1c3BlbmQ7XG5cdFx0XHRcdG9NYWNyb0FQSVtzQWN0aW9uXT8uKHNBY3Rpb24gPT09IEJpbmRpbmdBY3Rpb24uUmVzdW1lID8gYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkICYmIGJJc1NlbGVjdGVkS2V5IDogdW5kZWZpbmVkKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRUYWJNZXNzYWdlU3RyaXAocHJvcGVydGllczogTWVzc2FnZVN0cmlwUHJvcGVydGllcykge1xuXHRcdGxldCBzVGV4dCA9IFwiXCI7XG5cdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHMgPSBwcm9wZXJ0aWVzLmlnbm9yZWRGaWVsZHM7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCkgYXMgQ29udHJvbDtcblx0XHRpZiAob0ZpbHRlckNvbnRyb2wgJiYgQXJyYXkuaXNBcnJheShhSWdub3JlZEZpZWxkcykgJiYgYUlnbm9yZWRGaWVsZHMubGVuZ3RoID4gMCAmJiBwcm9wZXJ0aWVzLnRpdGxlKSB7XG5cdFx0XHRjb25zdCBhSWdub3JlZExhYmVscyA9IE1lc3NhZ2VTdHJpcC5nZXRMYWJlbHMoXG5cdFx0XHRcdGFJZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRwcm9wZXJ0aWVzLmVudGl0eVR5cGVQYXRoLFxuXHRcdFx0XHRvRmlsdGVyQ29udHJvbCxcblx0XHRcdFx0cHJvcGVydGllcy5yZXNvdXJjZUJ1bmRsZVxuXHRcdFx0KTtcblx0XHRcdHNUZXh0ID0gTWVzc2FnZVN0cmlwLmdldFRleHQoYUlnbm9yZWRMYWJlbHMsIG9GaWx0ZXJDb250cm9sLCBwcm9wZXJ0aWVzLnRpdGxlLCBEZWxlZ2F0ZVV0aWwuZ2V0TG9jYWxpemVkVGV4dCk7XG5cdFx0XHRyZXR1cm4gc1RleHQ7XG5cdFx0fVxuXHR9XG5cblx0X29uU2VhcmNoKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLnNldEZyZWV6ZUNvbnRlbnQoZmFsc2UpO1xuXHRcdGlmICh0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuX3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcygodGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpPy5vUmVzb3VyY2VCdW5kbGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBjdXN0b20gdGFiXG5cdFx0XHR0aGlzLl9yZWZyZXNoQ3VzdG9tVmlldyhvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiY29uZGl0aW9uc1wiKSwgXCJzZWFyY2hcIik7XG5cdFx0fVxuXHR9XG5cblx0X29uRmlsdGVyQ2hhbmdlZChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiY29uZGl0aW9uc0Jhc2VkXCIpKSB7XG5cdFx0XHR0aGlzLnNldEZyZWV6ZUNvbnRlbnQodHJ1ZSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpcGxlTW9kZUNvbnRyb2w7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQWtDS0EsYTs7YUFBQUEsYTtJQUFBQSxhO0lBQUFBLGE7S0FBQUEsYSxLQUFBQSxhOztNQU1DQyxtQixXQURMQyxjQUFjLENBQUMsMERBQUQsQyxVQUViQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVIsQ0FBRCxDLFVBR1JELFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUjtJQUFtQkMsWUFBWSxFQUFFO0VBQWpDLENBQUQsQyxVQUdSRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVI7SUFBbUJDLFlBQVksRUFBRTtFQUFqQyxDQUFELEMsVUFHUkMsV0FBVyxDQUFDO0lBQUVGLElBQUksRUFBRSxrQkFBUjtJQUE0QkcsUUFBUSxFQUFFLEtBQXRDO0lB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
381
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwib1Jlc291cmNlQnVuZGxlIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJnZXRQYXJhbWV0ZXIiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNdWx0aXBsZU1vZGVDb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL01hY3JvQVBJXCI7XG5pbXBvcnQgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IGFueVtdO1xuXHRyZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cdHRpdGxlOiBzdHJpbmc7XG59O1xuXG5lbnVtIEJpbmRpbmdBY3Rpb24ge1xuXHRTdXNwZW5kID0gXCJzdXNwZW5kQmluZGluZ1wiLFxuXHRSZXN1bWUgPSBcInJlc3VtZUJpbmRpbmdcIlxufVxuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuY29udHJvbHMuTXVsdGlwbGVNb2RlQ29udHJvbFwiKVxuY2xhc3MgTXVsdGlwbGVNb2RlQ29udHJvbCBleHRlbmRzIENvbnRyb2wge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRzaG93Q291bnRzITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmcmVlemVDb250ZW50ITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRjb3VudHNPdXREYXRlZCE6IGJvb2xlYW47XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAubS5JY29uVGFiQmFyXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnQhOiBJY29uVGFiQmFyO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRpbm5lckNvbnRyb2xzITogc3RyaW5nW107XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGZpbHRlckNvbnRyb2whOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0c2VsZWN0ITogRnVuY3Rpb247XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRUYWJzTW9kZWwoKTsgLy8gR2VuZXJhdGUgdGhlIG1vZGVsIHdoaWNoIGlzIG1hbmRhdG9yeSBmb3Igc29tZSBiaW5kaW5nc1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0aWYgKCFvRmlsdGVyQ29udHJvbCkge1xuXHRcdFx0Ly8gSW4gY2FzZSB0aGVyZSdzIG5vIGZpbHRlcmJhciwgd2UgaGF2ZSB0byB1cGRhdGUgdGhlIGNvdW50cyBpbiB0aGUgdGFicyBpbW1lZGlhdGVseVxuXHRcdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0ZpbHRlckJhckFQSSA9IG9GaWx0ZXJDb250cm9sPy5nZXRQYXJlbnQoKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGlmICh0aGlzLnNob3dDb3VudHMpIHtcblx0XHRcdFx0b01hY3JvQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxEYXRhUmVxdWVzdGVkXCIsIHRoaXMuX3JlZnJlc2hUYWJzQ291bnQuYmluZCh0aGlzKSk7XG5cdFx0XHR9XG5cdFx0XHRvTWFjcm9BUEkuc3VzcGVuZEJpbmRpbmc/LigpO1xuXHRcdH0pO1xuXHRcdGlmIChvRmlsdGVyQmFyQVBJKSB7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxTZWFyY2hcIiwgdGhpcy5fb25TZWFyY2guYmluZCh0aGlzKSk7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkXCIsIHRoaXMuX29uRmlsdGVyQ2hhbmdlZC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8ucmVzdW1lQmluZGluZz8uKCF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSk7XG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IE11bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBtb2RlbCBjb250YWluaW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIEljb25UYWJGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLk1vZGVsIHwgdW5kZWZpbmVkfSBUaGUgbW9kZWxcblx0ICovXG5cdGdldFRhYnNNb2RlbCgpOiBNb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpO1xuXHRcdGlmICghb01vZGVsKSB7XG5cdFx0XHRvTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdG9Db250ZW50LnNldE1vZGVsKG9Nb2RlbCwgc1RhYnNNb2RlbCk7XG5cdFx0fVxuXHRcdHJldHVybiBvTW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbCBvZiB0aGUgZGlzcGxheWVkIHRhYi5cblx0ICpcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWR9IFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQ/LmdldEl0ZW1zKCkuZmluZCgob0l0ZW0pID0+IChvSXRlbSBhcyBJY29uVGFiRmlsdGVyKS5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCkpO1xuXHRcdHJldHVybiBvU2VsZWN0ZWRUYWJcblx0XHRcdD8gdGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICpcblx0ICogQHBhcmFtIHtzYXAudWkuYmFzZS5FdmVudH0gb0V2ZW50IEV2ZW50IGZpcmVkIGJ5IHRoZSBJY29uVGFiQmFyXG5cdCAqL1xuXHRzdGF0aWMgaGFuZGxlVGFiQ2hhbmdlKG9FdmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ljb25UYWJCYXIgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgb011bHRpQ29udHJvbCA9IG9JY29uVGFiQmFyLmdldFBhcmVudCgpO1xuXG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpO1xuXHRcdG9NdWx0aUNvbnRyb2wuX3NldElubmVyQmluZGluZyh0cnVlKTtcblx0XHRjb25zdCBzUHJldmlvdXNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5wcmV2aW91c0tleTtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8uc2VsZWN0ZWRLZXk7XG5cblx0XHRpZiAoc1NlbGVjdGVkS2V5ICYmIHNQcmV2aW91c1NlbGVjdGVkS2V5ICE9PSBzU2VsZWN0ZWRLZXkpIHtcblx0XHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvTXVsdGlDb250cm9sLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0XHRpZiAob0ZpbHRlckJhciAmJiAhb011bHRpQ29udHJvbC5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0aWYgKCFvTXVsdGlDb250cm9sLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdFx0XHQvL2N1c3RvbSB0YWJcblx0XHRcdFx0XHRvTXVsdGlDb250cm9sLl9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQmFyLmdldEZpbHRlckNvbmRpdGlvbnMoKSwgXCJ0YWJDaGFuZ2VkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkuYWRkKHtcblx0XHRcdFx0Y2hhbmdlczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNoYW5nZVNwZWNpZmljRGF0YToge1xuXHRcdFx0XHRcdFx0XHRjaGFuZ2VUeXBlOiBcInNlbGVjdEljb25UYWJCYXJGaWx0ZXJcIixcblx0XHRcdFx0XHRcdFx0Y29udGVudDoge1xuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRcdFx0XHRcdFx0cHJldmlvdXNTZWxlY3RlZEtleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHNlbGVjdG9yRWxlbWVudDogb0ljb25UYWJCYXJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG9NdWx0aUNvbnRyb2wuX2dldFZpZXdDb250cm9sbGVyKCk/LmdldEV4dGVuc2lvbkFQSSgpPy51cGRhdGVBcHBTdGF0ZSgpO1xuXG5cdFx0b011bHRpQ29udHJvbC5maXJlRXZlbnQoXCJzZWxlY3RcIiwge1xuXHRcdFx0aWNvblRhYkJhcjogb0ljb25UYWJCYXIsXG5cdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0cHJldmlvdXNLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW52YWxpZGF0ZXMgdGhlIGNvbnRlbnQgb2YgYWxsIGlubmVyIGNvbnRyb2xzLlxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoKSB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdG9NYWNyb0FQSS5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY291bnRzIHRvIG91dCBvZiBkYXRlIG9yIHVwIHRvIGRhdGVcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wgYWxsIGlubmVyIGNvbnRyb2xzIGFyZSByZXF1ZXN0ZWQgdG8gZ2V0IHRoZSBuZXcgY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRDb3VudHNPdXREYXRlZChiVmFsdWUgPSB0cnVlKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvdW50c091dERhdGVkXCIsIGJWYWx1ZSk7XG5cdFx0Ly8gaWYgdGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBjb25maWd1cmVkIHdpdGggbm8gaW5uZXIgQ29udHJvbFxuXHRcdC8vIHRoZSB0YWIgY291bnRzIG11c3QgYmUgbWFudWFsbHkgcmVmcmVzaGVkIHNpbmNlIG5vIE1hY3JvIEFQSSB3aWxsIHNlbnQgZXZlbnQgaW50ZXJuYWxEYXRhUmVxdWVzdGVkXG5cdFx0aWYgKGJWYWx1ZSAmJiAhdGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl9yZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAgLSBjb250ZW50IGlzIGZyb3plbjogdGhlIGJpbmRpbmcgb2YgdGhlIGlubmVyIGNvbnRyb2xzIGFyZSBzdXNwZW5kZWQuXG5cdCAqICAtIGNvbnRlbnQgaXMgdW5mcm96ZW46IHRoZSBiaW5kaW5nIG9mIGlubmVyIGNvbnRyb2wgcmVsYXRlZCB0byB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyByZXN1bWVkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZVxuXHQgKi9cblx0X3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyhvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlKSB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuXHRcdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9UYWIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGlmIChvVGFiKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc1RhYklkID0gb1RhYi5nZXRLZXkoKTtcblx0XHRcdFx0XHRjb25zdCBtSWdub3JlZEZpZWxkcyA9IG9NYWNyb0FQSS5yZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcz8uKG9GaWx0ZXJDb250cm9sKSB8fCBbXTtcblx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB7XG5cdFx0XHRcdFx0XHRub3RBcHBsaWNhYmxlOiB7XG5cdFx0XHRcdFx0XHRcdGZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLl9zZXRUYWJNZXNzYWdlU3RyaXAoe1xuXHRcdFx0XHRcdFx0XHRcdGVudGl0eVR5cGVQYXRoOiBvRmlsdGVyQ29udHJvbC5kYXRhKFwiZW50aXR5VHlwZVwiKSxcblx0XHRcdFx0XHRcdFx0XHRpZ25vcmVkRmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0XHRyZXNvdXJjZUJ1bmRsZTogb1Jlc291cmNlQnVuZGxlLFxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiBvVGFiLmdldFRleHQoKVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0KHRhYnNNb2RlbCBhcyBhbnkpLnNldERhdGEocmVzdWx0cyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJPbmx5Rm9yVmlzaWJsZVRhYiBTaG91bGQgZGlzcGxheSBvbmx5IHRoZSB2aXNpYmxlIGNvbnRyb2xzXG5cdCAqIEByZXR1cm5zIHtJbm5lckNvbnRyb2xUeXBlW119IEFuIGFycmF5IG9mIGNvbnRyb2xzXG5cdCAqL1xuXHRnZXRBbGxJbm5lckNvbnRyb2xzKGJPbmx5Rm9yVmlzaWJsZVRhYiA9IGZhbHNlKTogSW5uZXJDb250cm9sVHlwZVtdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xzLnJlZHVjZSgoYUlubmVyQ29udHJvbHM6IElubmVyQ29udHJvbFR5cGVbXSwgc0lubmVyQ29udHJvbDogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sID0gQ29yZS5ieUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gQ29yZS5ieUlkKHRoaXMuZmlsdGVyQ29udHJvbCkgYXMgRmlsdGVyQmFyIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0NvbnRyb2w6IENvbnRyb2wpOiBJY29uVGFiRmlsdGVyIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzU3VwcG9ydGVkQ2xhc3MgPSBJY29uVGFiRmlsdGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXHRcdGxldCBvVGFiOiBhbnkgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSAmJiBvVGFiLmdldFBhcmVudCkge1xuXHRcdFx0b1RhYiA9IG9Db250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RhYiAmJiBvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpID8gKG9UYWIgYXMgSWNvblRhYkZpbHRlcikgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0Vmlld0NvbnRyb2xsZXIoKSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IGFueSwgc1JlZnJlc2hDYXVzZTogc3RyaW5nKSB7XG5cdFx0KHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCkgYXMgYW55KT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHRfcmVmcmVzaFRhYnNDb3VudCgpOiB2b2lkIHtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSB0aGlzLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAob01hY3JvQVBJPy5nZXRDb3VudHMgJiYgKHRoaXMuY291bnRzT3V0RGF0ZWQgfHwgc1NlbGVjdGVkS2V5ID09PSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkpKSB7XG5cdFx0XHRcdGlmIChvSWNvblRhYkZpbHRlciAmJiBvSWNvblRhYkZpbHRlci5zZXRDb3VudCkge1xuXHRcdFx0XHRcdG9JY29uVGFiRmlsdGVyLnNldENvdW50KFwiLi4uXCIpO1xuXHRcdFx0XHRcdG9NYWNyb0FQSVxuXHRcdFx0XHRcdFx0LmdldENvdW50cygpXG5cdFx0XHRcdFx0XHQudGhlbigoaUNvdW50OiBzdHJpbmcpID0+IG9JY29uVGFiRmlsdGVyLnNldENvdW50KGlDb3VudCB8fCBcIjBcIikpXG5cdFx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJlcXVlc3RpbmcgQ291bnRzIGZvciBDb250cm9sXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0X3NldElubmVyQmluZGluZyhiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvSWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0Y29uc3QgYklzU2VsZWN0ZWRLZXkgPSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkgPT09IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpO1xuXHRcdFx0XHRjb25zdCBzQWN0aW9uID0gYklzU2VsZWN0ZWRLZXkgJiYgIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpID8gQmluZGluZ0FjdGlvbi5SZXN1bWUgOiBCaW5kaW5nQWN0aW9uLlN1c3BlbmQ7XG5cdFx0XHRcdG9NYWNyb0FQSVtzQWN0aW9uXT8uKHNBY3Rpb24gPT09IEJpbmRpbmdBY3Rpb24uUmVzdW1lID8gYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkICYmIGJJc1NlbGVjdGVkS2V5IDogdW5kZWZpbmVkKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRUYWJNZXNzYWdlU3RyaXAocHJvcGVydGllczogTWVzc2FnZVN0cmlwUHJvcGVydGllcykge1xuXHRcdGxldCBzVGV4dCA9IFwiXCI7XG5cdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHMgPSBwcm9wZXJ0aWVzLmlnbm9yZWRGaWVsZHM7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCkgYXMgQ29udHJvbDtcblx0XHRpZiAob0ZpbHRlckNvbnRyb2wgJiYgQXJyYXkuaXNBcnJheShhSWdub3JlZEZpZWxkcykgJiYgYUlnbm9yZWRGaWVsZHMubGVuZ3RoID4gMCAmJiBwcm9wZXJ0aWVzLnRpdGxlKSB7XG5cdFx0XHRjb25zdCBhSWdub3JlZExhYmVscyA9IE1lc3NhZ2VTdHJpcC5nZXRMYWJlbHMoXG5cdFx0XHRcdGFJZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRwcm9wZXJ0aWVzLmVudGl0eVR5cGVQYXRoLFxuXHRcdFx0XHRvRmlsdGVyQ29udHJvbCxcblx0XHRcdFx0cHJvcGVydGllcy5yZXNvdXJjZUJ1bmRsZVxuXHRcdFx0KTtcblx0XHRcdHNUZXh0ID0gTWVzc2FnZVN0cmlwLmdldFRleHQoYUlnbm9yZWRMYWJlbHMsIG9GaWx0ZXJDb250cm9sLCBwcm9wZXJ0aWVzLnRpdGxlLCBEZWxlZ2F0ZVV0aWwuZ2V0TG9jYWxpemVkVGV4dCk7XG5cdFx0XHRyZXR1cm4gc1RleHQ7XG5cdFx0fVxuXHR9XG5cblx0X29uU2VhcmNoKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLnNldEZyZWV6ZUNvbnRlbnQoZmFsc2UpO1xuXHRcdGlmICh0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuX3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcygodGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpPy5vUmVzb3VyY2VCdW5kbGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBjdXN0b20gdGFiXG5cdFx0XHR0aGlzLl9yZWZyZXNoQ3VzdG9tVmlldyhvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiY29uZGl0aW9uc1wiKSwgXCJzZWFyY2hcIik7XG5cdFx0fVxuXHR9XG5cblx0X29uRmlsdGVyQ2hhbmdlZChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiY29uZGl0aW9uc0Jhc2VkXCIpKSB7XG5cdFx0XHR0aGlzLnNldEZyZWV6ZUNvbnRlbnQodHJ1ZSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpcGxlTW9kZUNvbnRyb2w7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7TUFrQ0tBLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtFQUFBLEdBQWJBLGFBQWEsS0FBYkEsYUFBYTtFQUFBLElBTVpDLG1CQUFtQixXQUR4QkMsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLFVBRXpFQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLFVBRzdCRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xERixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xEQyxXQUFXLENBQUM7SUFBRUYs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
@@ -8,46 +8,38 @@ sap.ui.define(["sap/fe/core/CommonUtils"], function (CommonUtils) {
8
8
  var IntentBasedNavigationOverride = {
9
9
  adaptNavigationContext: function (oSelectionVariant, oTargetInfo) {
10
10
  var oView = this.getView(),
11
- oController = oView.getController(),
12
- oFilterBar = oController._getFilterBarControl(); // Adding filter bar values to the navigation does not make sense if no context has been selected.
11
+ oController = oView.getController(),
12
+ oFilterBar = oController._getFilterBarControl();
13
+ // Adding filter bar values to the navigation does not make sense if no context has been selected.
13
14
  // Hence only consider filter bar values when SelectionVariant is not empty
14
-
15
-
16
15
  if (oFilterBar && !oSelectionVariant.isEmpty()) {
17
16
  var oViewData = oView.getViewData(),
18
- sRootPath = oViewData.fullContextPath;
17
+ sRootPath = oViewData.fullContextPath;
19
18
  var oFilterBarConditions = Object.assign({}, this.base.getView().getController().filterBarConditions);
20
19
  var aParameters = [];
21
-
22
20
  if (oViewData.contextPath) {
23
21
  var oMetaModel = oView.getModel().getMetaModel(),
24
- oParameterInfo = CommonUtils.getParameterInfo(oMetaModel, oViewData.contextPath),
25
- oParamProperties = oParameterInfo.parameterProperties;
22
+ oParameterInfo = CommonUtils.getParameterInfo(oMetaModel, oViewData.contextPath),
23
+ oParamProperties = oParameterInfo.parameterProperties;
26
24
  aParameters = oParamProperties && Object.keys(oParamProperties) || [];
27
25
  }
28
-
29
26
  oFilterBarConditions = oController._intentBasedNavigation.prepareFiltersForExternalNavigation(oFilterBarConditions, sRootPath, aParameters);
30
-
31
27
  var oMultipleModeControl = oController._getMultiModeControl();
32
-
33
28
  if (oMultipleModeControl) {
34
29
  // Do we need to exclude Fields (multi tables mode with multi entity sets)?
35
30
  var oTabsModel = oMultipleModeControl.getTabsModel();
36
-
37
31
  if (oTabsModel) {
38
32
  var _oMultipleModeControl;
39
-
40
33
  var aIgnoredFieldsForTab = oTabsModel.getProperty("/".concat((_oMultipleModeControl = oMultipleModeControl.content) === null || _oMultipleModeControl === void 0 ? void 0 : _oMultipleModeControl.getSelectedKey(), "/notApplicable/fields"));
41
-
42
34
  if (Array.isArray(aIgnoredFieldsForTab) && aIgnoredFieldsForTab.length > 0) {
43
35
  aIgnoredFieldsForTab.forEach(function (sProperty) {
44
36
  delete oFilterBarConditions.filterConditions[sProperty];
45
37
  });
46
38
  }
47
39
  }
48
- } // TODO: move this also into the intent based navigation controller extension
49
-
40
+ }
50
41
 
42
+ // TODO: move this also into the intent based navigation controller extension
51
43
  CommonUtils.addExternalStateFiltersToSelectionVariant(oSelectionVariant, oFilterBarConditions, oTargetInfo, oFilterBar);
52
44
  delete oTargetInfo.propertiesWithoutConflict;
53
45
  }
@@ -58,4 +50,4 @@ sap.ui.define(["sap/fe/core/CommonUtils"], function (CommonUtils) {
58
50
  };
59
51
  return IntentBasedNavigationOverride;
60
52
  }, false);
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9NdWx0aXBsZU1vZGVDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJvVGFic01vZGVsIiwiZ2V0VGFic01vZGVsIiwiYUlnbm9yZWRGaWVsZHNGb3JUYWIiLCJnZXRQcm9wZXJ0eSIsImNvbnRlbnQiLCJnZXRTZWxlY3RlZEtleSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSW50ZW50QmFzZWROYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aDtcblx0XHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sICh0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmZpbHRlckJhckNvbmRpdGlvbnMpO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzOiBhbnlbXSA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3Qgb011bHRpcGxlTW9kZUNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9NdWx0aXBsZU1vZGVDb250cm9sKSB7XG5cdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gZXhjbHVkZSBGaWVsZHMgKG11bHRpIHRhYmxlcyBtb2RlIHdpdGggbXVsdGkgZW50aXR5IHNldHMpP1xuXHRcdFx0XHRjb25zdCBvVGFic01vZGVsID0gb011bHRpcGxlTW9kZUNvbnRyb2wuZ2V0VGFic01vZGVsKCk7XG5cdFx0XHRcdGlmIChvVGFic01vZGVsKSB7XG5cdFx0XHRcdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHNGb3JUYWIgPSBvVGFic01vZGVsLmdldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0YC8ke29NdWx0aXBsZU1vZGVDb250cm9sLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCl9L25vdEFwcGxpY2FibGUvZmllbGRzYFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHNGb3JUYWIpICYmIGFJZ25vcmVkRmllbGRzRm9yVGFiLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFJZ25vcmVkRmllbGRzRm9yVGFiLmZvckVhY2goZnVuY3Rpb24gKHNQcm9wZXJ0eTogYW55KSB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSBvRmlsdGVyQmFyQ29uZGl0aW9ucy5maWx0ZXJDb25kaXRpb25zW3NQcm9wZXJ0eV07XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVE9ETzogbW92ZSB0aGlzIGFsc28gaW50byB0aGUgaW50ZW50IGJhc2VkIG5hdmlnYXRpb24gY29udHJvbGxlciBleHRlbnNpb25cblx0XHRcdENvbW1vblV0aWxzLmFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50KG9TZWxlY3Rpb25WYXJpYW50LCBvRmlsdGVyQmFyQ29uZGl0aW9ucywgb1RhcmdldEluZm8sIG9GaWx0ZXJCYXIpO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxJQUFNQSw2QkFBNkIsR0FBRztJQUNyQ0Msc0JBQXNCLEVBQUUsVUFBdUNDLGlCQUF2QyxFQUErREMsV0FBL0QsRUFBaUY7TUFDeEcsSUFBTUMsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtNQUFBLElBQ0NDLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRGY7TUFBQSxJQUVDQyxVQUFVLEdBQUdGLFdBQVcsQ0FBQ0csb0JBQVosRUFGZCxDQUR3RyxDQUl4RztNQUNBOzs7TUFDQSxJQUFJRCxVQUFVLElBQUksQ0FBQ04saUJBQWlCLENBQUNRLE9BQWxCLEVBQW5CLEVBQWdEO1FBQy9DLElBQU1DLFNBQVMsR0FBR1AsS0FBSyxDQUFDUSxXQUFOLEVBQWxCO1FBQUEsSUFDQ0MsU0FBUyxHQUFHRixTQUFTLENBQUNHLGVBRHZCO1FBRUEsSUFBSUMsb0JBQW9CLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBbUIsS0FBS0MsSUFBTCxDQUFVYixPQUFWLEdBQW9CRSxhQUFwQixFQUFELENBQTZDWSxtQkFBL0QsQ0FBM0I7UUFDQSxJQUFJQyxXQUFrQixHQUFHLEVBQXpCOztRQUVBLElBQUlULFNBQVMsQ0FBQ1UsV0FBZCxFQUEyQjtVQUMxQixJQUFNQyxVQUFVLEdBQUdsQixLQUFLLENBQUNtQixRQUFOLEdBQWlCQyxZQUFqQixFQUFuQjtVQUFBLElBQ0NDLGNBQWMsR0FBR0MsV0FBVyxDQUFDQyxnQkFBWixDQUE2QkwsVUFBN0IsRUFBeUNYLFNBQVMsQ0FBQ1UsV0FBbkQsQ0FEbEI7VUFBQSxJQUVDTyxnQkFBZ0IsR0FBR0gsY0FBYyxDQUFDSSxtQkFGbkM7VUFHQVQsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFQLENBQVlGLGdCQUFaLENBQXJCLElBQXVELEVBQXJFO1FBQ0E7O1FBRURiLG9CQUFvQixHQUFHVCxXQUFXLENBQUN5QixzQkFBWixDQUFtQ0MsbUNBQW5DLENBQ3RCakIsb0JBRHNCLEVBRXRCRixTQUZzQixFQUd0Qk8sV0FIc0IsQ0FBdkI7O1FBTUEsSUFBTWEsb0JBQW9CLEdBQUczQixXQUFXLENBQUM0QixvQkFBWixFQUE3Qjs7UUFDQSxJQUFJRCxvQkFBSixFQUEwQjtVQUN6QjtVQUNBLElBQU1FLFVBQVUsR0FBR0Ysb0JBQW9CLENBQUNHLFlBQXJCLEVBQW5COztVQUNBLElBQUlELFVBQUosRUFBZ0I7WUFBQTs7WUFDZixJQUFNRSxvQkFBb0IsR0FBR0YsVUFBVSxDQUFDRyxXQUFYLHFDQUN4Qkwsb0JBQW9CLENBQUNNLE9BREcsMERBQ3hCLHNCQUE4QkMsY0FBOUIsRUFEd0IsMkJBQTdCOztZQUdBLElBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjTCxvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNNLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO2NBQzNFTixvQkFBb0IsQ0FBQ08sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtnQkFDdEQsT0FBTzlCLG9CQUFvQixDQUFDK0IsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO2NBQ0EsQ0FGRDtZQUdBO1VBQ0Q7UUFDRCxDQWpDOEMsQ0FtQy9DOzs7UUFDQW5CLFdBQVcsQ0FBQ3FCLHlDQUFaLENBQXNEN0MsaUJBQXRELEVBQXlFYSxvQkFBekUsRUFBK0ZaLFdBQS9GLEVBQTRHSyxVQUE1RztRQUNBLE9BQU9MLFdBQVcsQ0FBQzZDLHlCQUFuQjtNQUNBO0lBQ0QsQ0E5Q29DO0lBK0NyQ0MsWUFBWSxFQUFFLFlBQXVDO01BQ3BELE9BQVEsS0FBSy9CLElBQU4sQ0FBbUJnQyxtQkFBbkIsRUFBUDtJQUNBO0VBakRvQyxDQUF0QztTQW9EZWxELDZCIn0=
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9NdWx0aXBsZU1vZGVDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJvVGFic01vZGVsIiwiZ2V0VGFic01vZGVsIiwiYUlnbm9yZWRGaWVsZHNGb3JUYWIiLCJnZXRQcm9wZXJ0eSIsImNvbnRlbnQiLCJnZXRTZWxlY3RlZEtleSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSW50ZW50QmFzZWROYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aDtcblx0XHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sICh0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmZpbHRlckJhckNvbmRpdGlvbnMpO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzOiBhbnlbXSA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3Qgb011bHRpcGxlTW9kZUNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9NdWx0aXBsZU1vZGVDb250cm9sKSB7XG5cdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gZXhjbHVkZSBGaWVsZHMgKG11bHRpIHRhYmxlcyBtb2RlIHdpdGggbXVsdGkgZW50aXR5IHNldHMpP1xuXHRcdFx0XHRjb25zdCBvVGFic01vZGVsID0gb011bHRpcGxlTW9kZUNvbnRyb2wuZ2V0VGFic01vZGVsKCk7XG5cdFx0XHRcdGlmIChvVGFic01vZGVsKSB7XG5cdFx0XHRcdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHNGb3JUYWIgPSBvVGFic01vZGVsLmdldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0YC8ke29NdWx0aXBsZU1vZGVDb250cm9sLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCl9L25vdEFwcGxpY2FibGUvZmllbGRzYFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHNGb3JUYWIpICYmIGFJZ25vcmVkRmllbGRzRm9yVGFiLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFJZ25vcmVkRmllbGRzRm9yVGFiLmZvckVhY2goZnVuY3Rpb24gKHNQcm9wZXJ0eTogYW55KSB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSBvRmlsdGVyQmFyQ29uZGl0aW9ucy5maWx0ZXJDb25kaXRpb25zW3NQcm9wZXJ0eV07XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVE9ETzogbW92ZSB0aGlzIGFsc28gaW50byB0aGUgaW50ZW50IGJhc2VkIG5hdmlnYXRpb24gY29udHJvbGxlciBleHRlbnNpb25cblx0XHRcdENvbW1vblV0aWxzLmFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50KG9TZWxlY3Rpb25WYXJpYW50LCBvRmlsdGVyQmFyQ29uZGl0aW9ucywgb1RhcmdldEluZm8sIG9GaWx0ZXJCYXIpO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxJQUFNQSw2QkFBNkIsR0FBRztJQUNyQ0Msc0JBQXNCLEVBQUUsVUFBdUNDLGlCQUFzQixFQUFFQyxXQUFnQixFQUFFO01BQ3hHLElBQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sRUFBRTtRQUMzQkMsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQWEsRUFBMEI7UUFDM0RDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBb0IsRUFBRTtNQUNoRDtNQUNBO01BQ0EsSUFBSUQsVUFBVSxJQUFJLENBQUNOLGlCQUFpQixDQUFDUSxPQUFPLEVBQUUsRUFBRTtRQUMvQyxJQUFNQyxTQUFTLEdBQUdQLEtBQUssQ0FBQ1EsV0FBVyxFQUFTO1VBQzNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFBZTtRQUN0QyxJQUFJQyxvQkFBb0IsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUcsSUFBSSxDQUFDQyxJQUFJLENBQUNiLE9BQU8sRUFBRSxDQUFDRSxhQUFhLEVBQUUsQ0FBU1ksbUJBQW1CLENBQUM7UUFDOUcsSUFBSUMsV0FBa0IsR0FBRyxFQUFFO1FBRTNCLElBQUlULFNBQVMsQ0FBQ1UsV0FBVyxFQUFFO1VBQzFCLElBQU1DLFVBQVUsR0FBR2xCLEtBQUssQ0FBQ21CLFFBQVEsRUFBRSxDQUFDQyxZQUFZLEVBQW9CO1lBQ25FQyxjQUFjLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQWdCLENBQUNMLFVBQVUsRUFBRVgsU0FBUyxDQUFDVSxXQUFXLENBQUM7WUFDaEZPLGdCQUFnQixHQUFHSCxjQUFjLENBQUNJLG1CQUFtQjtVQUN0RFQsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFJLENBQUNGLGdCQUFnQixDQUFDLElBQUssRUFBRTtRQUN4RTtRQUVBYixvQkFBb0IsR0FBR1QsV0FBVyxDQUFDeUIsc0JBQXNCLENBQUNDLG1DQUFtQyxDQUM1RmpCLG9CQUFvQixFQUNwQkYsU0FBUyxFQUNUTyxXQUFXLENBQ1g7UUFFRCxJQUFNYSxvQkFBb0IsR0FBRzNCLFdBQVcsQ0FBQzRCLG9CQUFvQixFQUFFO1FBQy9ELElBQUlELG9CQUFvQixFQUFFO1VBQ3pCO1VBQ0EsSUFBTUUsVUFBVSxHQUFHRixvQkFBb0IsQ0FBQ0csWUFBWSxFQUFFO1VBQ3RELElBQUlELFVBQVUsRUFBRTtZQUFBO1lBQ2YsSUFBTUUsb0JBQW9CLEdBQUdGLFVBQVUsQ0FBQ0csV0FBVyxxQ0FDOUNMLG9CQUFvQixDQUFDTSxPQUFPLDBEQUE1QixzQkFBOEJDLGNBQWMsRUFBRSwyQkFDbEQ7WUFDRCxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0wsb0JBQW9CLENBQUMsSUFBSUEsb0JBQW9CLENBQUNNLE1BQU0sR0FBRyxDQUFDLEVBQUU7Y0FDM0VOLG9CQUFvQixDQUFDTyxPQUFPLENBQUMsVUFBVUMsU0FBYyxFQUFFO2dCQUN0RCxPQUFPOUIsb0JBQW9CLENBQUMrQixnQkFBZ0IsQ0FBQ0QsU0FBUyxDQUFDO2NBQ3hELENBQUMsQ0FBQztZQUNIO1VBQ0Q7UUFDRDs7UUFFQTtRQUNBbkIsV0FBVyxDQUFDcUIseUNBQXlDLENBQUM3QyxpQkFBaUIsRUFBRWEsb0JBQW9CLEVBQUVaLFdBQVcsRUFBRUssVUFBVSxDQUFDO1FBQ3ZILE9BQU9MLFdBQVcsQ0FBQzZDLHlCQUF5QjtNQUM3QztJQUNELENBQUM7SUFDREMsWUFBWSxFQUFFLFlBQXVDO01BQ3BELE9BQVEsSUFBSSxDQUFDL0IsSUFBSSxDQUFTZ0MsbUJBQW1CLEVBQUU7SUFDaEQ7RUFDRCxDQUFDO0VBQUMsT0FFYWxELDZCQUE2QjtBQUFBIn0=