@sapui5/sap.fe.templates 1.111.1 → 1.112.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.
Files changed (129) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  5. package/src/sap/fe/templates/ListComponent.ts +2 -0
  6. package/src/sap/fe/templates/ListReport/Component-dbg.js +1 -1
  7. package/src/sap/fe/templates/ListReport/Component.ts +2 -0
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +2 -1
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +3 -0
  11. package/src/sap/fe/templates/ListReport/LRMessageStrip-dbg.js +1 -1
  12. package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +4 -0
  13. package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +37 -32
  14. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  15. package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +58 -52
  17. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +32 -8
  18. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
  19. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
  20. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +38 -7
  21. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  22. package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +47 -7
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  24. package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
  25. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +49 -6
  26. package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
  27. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block-dbg.js +122 -0
  28. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.js → MultipleMode.block.js} +3 -3
  29. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block.js.map +1 -0
  30. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.ts → MultipleMode.block.ts} +14 -15
  31. package/src/sap/fe/templates/ObjectPage/Component-dbg.js +11 -2
  32. package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  33. package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
  34. package/src/sap/fe/templates/ObjectPage/Component.ts +12 -0
  35. package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +8 -12
  36. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  37. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
  38. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +9 -12
  39. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +3 -2
  40. package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +38 -90
  41. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
  43. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +65 -104
  44. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +44 -146
  45. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
  46. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
  47. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +60 -185
  48. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block-dbg.js +145 -0
  49. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js +6 -0
  50. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js.map +1 -0
  51. package/src/sap/fe/templates/ObjectPage/components/{DraftHandlerButton.tsx → DraftHandlerButton.block.tsx} +15 -12
  52. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +1 -1
  53. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +1 -0
  54. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +2 -1
  55. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js.map +1 -1
  56. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +5 -0
  57. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  58. package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +4 -3
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +257 -0
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +6 -0
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -0
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +280 -0
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -33
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +144 -112
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionEmbeddedComponent.fragment.xml +24 -0
  67. package/src/sap/fe/templates/library-dbg.js +6 -5
  68. package/src/sap/fe/templates/library-preload.js +26 -22
  69. package/src/sap/fe/templates/library-preload.js.map +1 -1
  70. package/src/sap/fe/templates/library.js +1 -1
  71. package/src/sap/fe/templates/library.js.map +1 -1
  72. package/src/sap/fe/templates/library.ts +6 -4
  73. package/src/sap/fe/templates/manifest.json +1 -1
  74. package/src/sap/fe/templates/messagebundle.properties +5 -0
  75. package/src/sap/fe/templates/messagebundle_ar.properties +3 -0
  76. package/src/sap/fe/templates/messagebundle_bg.properties +3 -0
  77. package/src/sap/fe/templates/messagebundle_ca.properties +3 -0
  78. package/src/sap/fe/templates/messagebundle_cs.properties +3 -0
  79. package/src/sap/fe/templates/messagebundle_cy.properties +3 -0
  80. package/src/sap/fe/templates/messagebundle_da.properties +3 -0
  81. package/src/sap/fe/templates/messagebundle_de.properties +3 -0
  82. package/src/sap/fe/templates/messagebundle_el.properties +3 -0
  83. package/src/sap/fe/templates/messagebundle_en.properties +5 -0
  84. package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -0
  85. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +3 -0
  86. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -0
  87. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +3 -0
  88. package/src/sap/fe/templates/messagebundle_es.properties +5 -2
  89. package/src/sap/fe/templates/messagebundle_es_MX.properties +3 -0
  90. package/src/sap/fe/templates/messagebundle_et.properties +5 -2
  91. package/src/sap/fe/templates/messagebundle_fi.properties +3 -0
  92. package/src/sap/fe/templates/messagebundle_fr.properties +3 -0
  93. package/src/sap/fe/templates/messagebundle_fr_CA.properties +3 -0
  94. package/src/sap/fe/templates/messagebundle_hi.properties +3 -0
  95. package/src/sap/fe/templates/messagebundle_hr.properties +3 -0
  96. package/src/sap/fe/templates/messagebundle_hu.properties +3 -0
  97. package/src/sap/fe/templates/messagebundle_id.properties +3 -0
  98. package/src/sap/fe/templates/messagebundle_it.properties +3 -0
  99. package/src/sap/fe/templates/messagebundle_iw.properties +3 -0
  100. package/src/sap/fe/templates/messagebundle_ja.properties +3 -0
  101. package/src/sap/fe/templates/messagebundle_kk.properties +3 -0
  102. package/src/sap/fe/templates/messagebundle_ko.properties +3 -0
  103. package/src/sap/fe/templates/messagebundle_lt.properties +3 -0
  104. package/src/sap/fe/templates/messagebundle_lv.properties +3 -0
  105. package/src/sap/fe/templates/messagebundle_ms.properties +3 -0
  106. package/src/sap/fe/templates/messagebundle_nl.properties +3 -0
  107. package/src/sap/fe/templates/messagebundle_no.properties +3 -0
  108. package/src/sap/fe/templates/messagebundle_pl.properties +3 -0
  109. package/src/sap/fe/templates/messagebundle_pt.properties +3 -0
  110. package/src/sap/fe/templates/messagebundle_pt_PT.properties +3 -0
  111. package/src/sap/fe/templates/messagebundle_ro.properties +5 -2
  112. package/src/sap/fe/templates/messagebundle_ru.properties +3 -0
  113. package/src/sap/fe/templates/messagebundle_sh.properties +5 -2
  114. package/src/sap/fe/templates/messagebundle_sk.properties +3 -0
  115. package/src/sap/fe/templates/messagebundle_sl.properties +3 -0
  116. package/src/sap/fe/templates/messagebundle_sv.properties +3 -0
  117. package/src/sap/fe/templates/messagebundle_th.properties +5 -2
  118. package/src/sap/fe/templates/messagebundle_tr.properties +3 -0
  119. package/src/sap/fe/templates/messagebundle_uk.properties +3 -0
  120. package/src/sap/fe/templates/messagebundle_vi.properties +5 -2
  121. package/src/sap/fe/templates/messagebundle_zh_CN.properties +5 -2
  122. package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -0
  123. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode-dbg.fragment.js +0 -123
  124. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js.map +0 -1
  125. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton-dbg.js +0 -147
  126. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +0 -6
  127. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js.map +0 -1
  128. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +0 -125
  129. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +0 -199
@@ -2,10 +2,11 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/MessageStrip", "sap/fe/macros/DelegateUtil", "sap/m/IconTabFilter", "sap/ui/core/Control", "sap/ui/core/Core", "sap/ui/fl/write/api/ControlPersonalizationWriteAPI", "sap/ui/model/json/JSONModel"], function (Log, CommonUtils, ClassSupport, MessageStrip, DelegateUtil, IconTabFilter, Control, Core, ControlPersonalizationWriteAPI, JSONModel) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/MessageStrip", "sap/fe/core/helpers/ResourceModelHelper", "sap/fe/macros/DelegateUtil", "sap/m/IconTabFilter", "sap/ui/core/Control", "sap/ui/core/Core", "sap/ui/fl/write/api/ControlPersonalizationWriteAPI", "sap/ui/model/json/JSONModel"], function (Log, CommonUtils, MetaModelConverter, ClassSupport, MessageStrip, ResourceModelHelper, DelegateUtil, IconTabFilter, Control, Core, ControlPersonalizationWriteAPI, JSONModel) {
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
+ var getResourceModel = ResourceModelHelper.getResourceModel;
9
10
  var property = ClassSupport.property;
10
11
  var event = ClassSupport.event;
11
12
  var defineUI5Class = ClassSupport.defineUI5Class;
@@ -201,9 +202,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
201
202
  /**
202
203
  * 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.
203
204
  *
204
- * @param oResourceBundle
205
205
  */;
206
- _proto._updateMultiTabNotApplicableFields = function _updateMultiTabNotApplicableFields(oResourceBundle) {
206
+ _proto._updateMultiTabNotApplicableFields = function _updateMultiTabNotApplicableFields() {
207
207
  const tabsModel = this.getTabsModel();
208
208
  const oFilterControl = this._getFilterControl();
209
209
  if (tabsModel && oFilterControl) {
@@ -220,17 +220,42 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
220
220
  title: this._setTabMessageStrip({
221
221
  entityTypePath: oFilterControl.data("entityType"),
222
222
  ignoredFields: mIgnoredFields,
223
- resourceBundle: oResourceBundle,
224
223
  title: oTab.getText()
225
224
  })
226
225
  }
227
226
  };
227
+ if (oMacroAPI && oMacroAPI.isA("sap.fe.macros.chart.ChartAPI")) {
228
+ results[sTabId] = this.checkNonFilterableEntitySet(oMacroAPI, sTabId, results);
229
+ }
228
230
  }
229
231
  });
230
232
  tabsModel.setData(results);
231
233
  }
232
234
  }
233
235
 
236
+ /**
237
+ * Modifies the messagestrip message based on entity set is filerable or not.
238
+ *
239
+ * @param {InnerControlType} oMacroAPI Macro chart api
240
+ * @param {string} sTabId Tab key ID
241
+ * @param {object} results Should contain fields and title
242
+ * @returns {object} An object of modified fields and title
243
+ */;
244
+ _proto.checkNonFilterableEntitySet = function checkNonFilterableEntitySet(oMacroAPI, sTabId, results) {
245
+ var _MetaModelConverter$g, _MetaModelConverter$g2, _MetaModelConverter$g3, _MetaModelConverter$g4, _MetaModelConverter$g5;
246
+ const resourceModel = getResourceModel(oMacroAPI);
247
+ const oChart = oMacroAPI !== null && oMacroAPI !== void 0 && oMacroAPI.getContent ? oMacroAPI.getContent() : undefined;
248
+ const bEntitySetFilerable = oChart && ((_MetaModelConverter$g = MetaModelConverter.getInvolvedDataModelObjects(oChart.getModel().getMetaModel().getContext(`${oChart.data("targetCollectionPath")}`))) === null || _MetaModelConverter$g === void 0 ? void 0 : (_MetaModelConverter$g2 = _MetaModelConverter$g.targetObject) === null || _MetaModelConverter$g2 === void 0 ? void 0 : (_MetaModelConverter$g3 = _MetaModelConverter$g2.annotations) === null || _MetaModelConverter$g3 === void 0 ? void 0 : (_MetaModelConverter$g4 = _MetaModelConverter$g3.Capabilities) === null || _MetaModelConverter$g4 === void 0 ? void 0 : (_MetaModelConverter$g5 = _MetaModelConverter$g4.FilterRestrictions) === null || _MetaModelConverter$g5 === void 0 ? void 0 : _MetaModelConverter$g5.Filterable);
249
+ if (bEntitySetFilerable !== undefined && !bEntitySetFilerable) {
250
+ if (results[sTabId].notApplicable.fields.indexOf("$search") > -1) {
251
+ results[sTabId].notApplicable.title += " " + resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
252
+ } else {
253
+ results[sTabId].notApplicable.fields = ["nonFilterable"];
254
+ results[sTabId].notApplicable.title = resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
255
+ }
256
+ }
257
+ return results[sTabId];
258
+ }
234
259
  /**
235
260
  * Gets the inner controls.
236
261
  *
@@ -312,7 +337,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
312
337
  const aIgnoredFields = properties.ignoredFields;
313
338
  const oFilterControl = this._getFilterControl();
314
339
  if (oFilterControl && Array.isArray(aIgnoredFields) && aIgnoredFields.length > 0 && properties.title) {
315
- const aIgnoredLabels = MessageStrip.getLabels(aIgnoredFields, properties.entityTypePath, oFilterControl, properties.resourceBundle);
340
+ const aIgnoredLabels = MessageStrip.getLabels(aIgnoredFields, properties.entityTypePath, oFilterControl, getResourceModel(oFilterControl));
316
341
  sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
317
342
  return sText;
318
343
  }
@@ -321,8 +346,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
321
346
  this.setCountsOutDated(true);
322
347
  this.setFreezeContent(false);
323
348
  if (this.getSelectedInnerControl()) {
324
- var _this$_getViewControl3;
325
- this._updateMultiTabNotApplicableFields((_this$_getViewControl3 = this._getViewController()) === null || _this$_getViewControl3 === void 0 ? void 0 : _this$_getViewControl3.oResourceBundle);
349
+ this._updateMultiTabNotApplicableFields();
326
350
  } else {
327
351
  // custom tab
328
352
  this._refreshCustomView(oEvent.getParameter("conditions"), "search");
@@ -372,4 +396,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
372
396
  })), _class2)) || _class);
373
397
  return MultipleModeControl;
374
398
  }, false);
375
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwib1Jlc291cmNlQnVuZGxlIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwidGFibGVFdmVudCIsImV2ZW50TWFjcm9BUEkiLCJ0YXJnZXRLZXkiLCJvSWNvblRhYkZpbHRlciIsImdldENvdW50cyIsImNvdW50c091dERhdGVkIiwic2V0Q291bnQiLCJ0aGVuIiwiaUNvdW50IiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCIsImJJc1NlbGVjdGVkS2V5Iiwic0FjdGlvbiIsIlJlc3VtZSIsIlN1c3BlbmQiLCJwcm9wZXJ0aWVzIiwic1RleHQiLCJhSWdub3JlZEZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImFJZ25vcmVkTGFiZWxzIiwiTWVzc2FnZVN0cmlwIiwiZ2V0TGFiZWxzIiwiRGVsZWdhdGVVdGlsIiwiZ2V0TG9jYWxpemVkVGV4dCIsImdldFBhcmFtZXRlciIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZUNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGV2ZW50LCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1lc3NhZ2VTdHJpcCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvTWFjcm9BUElcIjtcbmltcG9ydCBJY29uVGFiQmFyIGZyb20gXCJzYXAvbS9JY29uVGFiQmFyXCI7XG5pbXBvcnQgSWNvblRhYkZpbHRlciBmcm9tIFwic2FwL20vSWNvblRhYkZpbHRlclwiO1xuaW1wb3J0IHR5cGUgQ29yZUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSSBmcm9tIFwic2FwL3VpL2ZsL3dyaXRlL2FwaS9Db250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUElcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcblxuZXhwb3J0IHR5cGUgSW5uZXJDb250cm9sVHlwZSA9IE1hY3JvQVBJICZcblx0UGFydGlhbDx7XG5cdFx0cmVzdW1lQmluZGluZzogRnVuY3Rpb247XG5cdFx0c3VzcGVuZEJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdGdldENvdW50czogRnVuY3Rpb247XG5cdFx0cmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM6IEZ1bmN0aW9uO1xuXHRcdGludmFsaWRhdGVDb250ZW50OiBGdW5jdGlvbjtcblx0fT47XG5cbnR5cGUgTWVzc2FnZVN0cmlwUHJvcGVydGllcyA9IHtcblx0ZW50aXR5VHlwZVBhdGg6IHN0cmluZztcblx0aWdub3JlZEZpZWxkczogYW55W107XG5cdHJlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZTtcblx0dGl0bGU6IHN0cmluZztcbn07XG5cbmVudW0gQmluZGluZ0FjdGlvbiB7XG5cdFN1c3BlbmQgPSBcInN1c3BlbmRCaW5kaW5nXCIsXG5cdFJlc3VtZSA9IFwicmVzdW1lQmluZGluZ1wiXG59XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5jb250cm9scy5NdWx0aXBsZU1vZGVDb250cm9sXCIpXG5jbGFzcyBNdWx0aXBsZU1vZGVDb250cm9sIGV4dGVuZHMgQ29udHJvbCB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHNob3dDb3VudHMhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZyZWV6ZUNvbnRlbnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvdW50c091dERhdGVkITogYm9vbGVhbjtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkljb25UYWJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IEljb25UYWJCYXI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGlubmVyQ29udHJvbHMhOiBzdHJpbmdbXTtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0ZmlsdGVyQ29udHJvbCE6IHN0cmluZztcblxuXHRAZXZlbnQoKVxuXHRzZWxlY3QhOiBGdW5jdGlvbjtcblxuXHRvbkJlZm9yZVJlbmRlcmluZygpIHtcblx0XHR0aGlzLmdldFRhYnNNb2RlbCgpOyAvLyBHZW5lcmF0ZSB0aGUgbW9kZWwgd2hpY2ggaXMgbWFuZGF0b3J5IGZvciBzb21lIGJpbmRpbmdzXG5cblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRpZiAoIW9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHQvLyBJbiBjYXNlIHRoZXJlJ3Mgbm8gZmlsdGVyYmFyLCB3ZSBoYXZlIHRvIHVwZGF0ZSB0aGUgY291bnRzIGluIHRoZSB0YWJzIGltbWVkaWF0ZWx5XG5cdFx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdH1cblx0XHRjb25zdCBvRmlsdGVyQmFyQVBJID0gb0ZpbHRlckNvbnRyb2w/LmdldFBhcmVudCgpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvd0NvdW50cykge1xuXHRcdFx0XHRvTWFjcm9BUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcIiwgdGhpcy5fcmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5yZXN1bWVCaW5kaW5nPy4oIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWwgfCB1bmRlZmluZWR9IFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IE1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzVGFic01vZGVsID0gXCJ0YWJzSW50ZXJuYWxcIjtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRpZiAoIW9Db250ZW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRsZXQgb01vZGVsID0gb0NvbnRlbnQuZ2V0TW9kZWwoc1RhYnNNb2RlbCk7XG5cdFx0aWYgKCFvTW9kZWwpIHtcblx0XHRcdG9Nb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pO1xuXHRcdFx0b0NvbnRlbnQuc2V0TW9kZWwob01vZGVsLCBzVGFic01vZGVsKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpbm5lciBjb250cm9sIG9mIHRoZSBkaXNwbGF5ZWQgdGFiLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7SW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZH0gVGhlIGNvbnRyb2xcblx0ICovXG5cdGdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk6IElubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9TZWxlY3RlZFRhYiA9IHRoaXMuY29udGVudD8uZ2V0SXRlbXMoKS5maW5kKChvSXRlbSkgPT4gKG9JdGVtIGFzIEljb25UYWJGaWx0ZXIpLmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSk7XG5cdFx0cmV0dXJuIG9TZWxlY3RlZFRhYlxuXHRcdFx0PyB0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5maW5kKChvTWFjcm9BUEkpID0+IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKSA9PT0gb1NlbGVjdGVkVGFiKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgYmluZGluZyBvZiBhbGwgaW5uZXIgY29udHJvbHMgd2hlbiB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3NhcC51aS5iYXNlLkV2ZW50fSBvRXZlbnQgRXZlbnQgZmlyZWQgYnkgdGhlIEljb25UYWJCYXJcblx0ICovXG5cdHN0YXRpYyBoYW5kbGVUYWJDaGFuZ2Uob0V2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCk7XG5cblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCk7XG5cdFx0b011bHRpQ29udHJvbC5fc2V0SW5uZXJCaW5kaW5nKHRydWUpO1xuXHRcdGNvbnN0IHNQcmV2aW91c1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnByZXZpb3VzS2V5O1xuXHRcdGNvbnN0IHNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5zZWxlY3RlZEtleTtcblxuXHRcdGlmIChzU2VsZWN0ZWRLZXkgJiYgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgIT09IHNTZWxlY3RlZEtleSkge1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9NdWx0aUNvbnRyb2wuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRcdGlmIChvRmlsdGVyQmFyICYmICFvTXVsdGlDb250cm9sLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSkge1xuXHRcdFx0XHRpZiAoIW9NdWx0aUNvbnRyb2wuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0XHRcdC8vY3VzdG9tIHRhYlxuXHRcdFx0XHRcdG9NdWx0aUNvbnRyb2wuX3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpLCBcInRhYkNoYW5nZWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSS5hZGQoe1xuXHRcdFx0XHRjaGFuZ2VzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y2hhbmdlU3BlY2lmaWNEYXRhOiB7XG5cdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU6IFwic2VsZWN0SWNvblRhYkJhckZpbHRlclwiLFxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c1NlbGVjdGVkS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0c2VsZWN0b3JFbGVtZW50OiBvSWNvblRhYkJhclxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0b011bHRpQ29udHJvbC5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8uZ2V0RXh0ZW5zaW9uQVBJKCk/LnVwZGF0ZUFwcFN0YXRlKCk7XG5cblx0XHRvTXVsdGlDb250cm9sLmZpcmVFdmVudChcInNlbGVjdFwiLCB7XG5cdFx0XHRpY29uVGFiQmFyOiBvSWNvblRhYkJhcixcblx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRwcmV2aW91c0tleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyB0aGUgY29udGVudCBvZiBhbGwgaW5uZXIgY29udHJvbHMuXG5cdCAqL1xuXHRpbnZhbGlkYXRlQ29udGVudCgpIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0b01hY3JvQVBJLmludmFsaWRhdGVDb250ZW50Py4oKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBjb3VudHMgdG8gb3V0IG9mIGRhdGUgb3IgdXAgdG8gZGF0ZVxuXHQgKiBJZiB0aGUgY291bnRzIGFyZSBzZXQgdG8gXCJvdXQgb2YgZGF0ZVwiIGFuZCB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBkb2Vzbid0IGNvbnRhaW4gYW4gaW5uZXIgY29udHJvbCBhbGwgaW5uZXIgY29udHJvbHMgYXJlIHJlcXVlc3RlZCB0byBnZXQgdGhlIG5ldyBjb3VudHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldENvdW50c091dERhdGVkKGJWYWx1ZSA9IHRydWUpIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY291bnRzT3V0RGF0ZWRcIiwgYlZhbHVlKTtcblx0XHQvLyBpZiB0aGUgY3VycmVudCB0YWIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBubyBpbm5lciBDb250cm9sXG5cdFx0Ly8gdGhlIHRhYiBjb3VudHMgbXVzdCBiZSBtYW51YWxseSByZWZyZXNoZWQgc2luY2Ugbm8gTWFjcm8gQVBJIHdpbGwgc2VudCBldmVudCBpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcblx0XHRpZiAoYlZhbHVlICYmICF0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuX3JlZnJlc2hUYWJzQ291bnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnJlZXplcyB0aGUgY29udGVudCA6XG5cdCAqICAtIGNvbnRlbnQgaXMgZnJvemVuOiB0aGUgYmluZGluZyBvZiB0aGUgaW5uZXIgY29udHJvbHMgYXJlIHN1c3BlbmRlZC5cblx0ICogIC0gY29udGVudCBpcyB1bmZyb3plbjogdGhlIGJpbmRpbmcgb2YgaW5uZXIgY29udHJvbCByZWxhdGVkIHRvIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGlzIHJlc3VtZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldEZyZWV6ZUNvbnRlbnQoYlZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIiwgYlZhbHVlKTtcblx0XHR0aGlzLl9zZXRJbm5lckJpbmRpbmcoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBpbnRlcm5hbCBtb2RlbCB3aXRoIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBhcHBsaWNhYmxlIG9uIGVhY2ggSWNvblRhYkZpbHRlciAoY29udGFpbmluZyBpbm5lciBjb250cm9sKSBhY2NvcmRpbmcgdG8gdGhlIGVudGl0eVR5cGUgb2YgdGhlIGZpbHRlciBjb250cm9sLlxuXHQgKlxuXHQgKiBAcGFyYW0gb1Jlc291cmNlQnVuZGxlXG5cdCAqL1xuXHRfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUpIHtcblx0XHRjb25zdCB0YWJzTW9kZWwgPSB0aGlzLmdldFRhYnNNb2RlbCgpO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKHRhYnNNb2RlbCAmJiBvRmlsdGVyQ29udHJvbCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0czogYW55ID0ge307XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb1RhYiA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0aWYgKG9UYWIpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1JZ25vcmVkRmllbGRzID0gb01hY3JvQVBJLnJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzPy4ob0ZpbHRlckNvbnRyb2wpIHx8IFtdO1xuXHRcdFx0XHRcdHJlc3VsdHNbc1RhYklkXSA9IHtcblx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuX3NldFRhYk1lc3NhZ2VTdHJpcCh7XG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdGlnbm9yZWRGaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlOiBvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IG9UYWIuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQodGFic01vZGVsIGFzIGFueSkuc2V0RGF0YShyZXN1bHRzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYk9ubHlGb3JWaXNpYmxlVGFiIFNob3VsZCBkaXNwbGF5IG9ubHkgdGhlIHZpc2libGUgY29udHJvbHNcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGVbXX0gQW4gYXJyYXkgb2YgY29udHJvbHNcblx0ICovXG5cdGdldEFsbElubmVyQ29udHJvbHMoYk9ubHlGb3JWaXNpYmxlVGFiID0gZmFsc2UpOiBJbm5lckNvbnRyb2xUeXBlW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmlubmVyQ29udHJvbHMucmVkdWNlKChhSW5uZXJDb250cm9sczogSW5uZXJDb250cm9sVHlwZVtdLCBzSW5uZXJDb250cm9sOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2wgPSBDb3JlLmJ5SWQoc0lubmVyQ29udHJvbCkgYXMgSW5uZXJDb250cm9sVHlwZTtcblx0XHRcdFx0aWYgKG9Db250cm9sKSB7XG5cdFx0XHRcdFx0YUlubmVyQ29udHJvbHMucHVzaChvQ29udHJvbCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGFJbm5lckNvbnRyb2xzLmZpbHRlcihcblx0XHRcdFx0XHQob0lubmVyQ29udHJvbCkgPT4gIWJPbmx5Rm9yVmlzaWJsZVRhYiB8fCB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Jbm5lckNvbnRyb2wpPy5nZXRWaXNpYmxlKClcblx0XHRcdFx0KTtcblx0XHRcdH0sIFtdKSB8fCBbXVxuXHRcdCk7XG5cdH1cblxuXHRfZ2V0RmlsdGVyQ29udHJvbCgpOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBDb3JlLmJ5SWQodGhpcy5maWx0ZXJDb250cm9sKSBhcyBGaWx0ZXJCYXIgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvQ29udHJvbDogQ29udHJvbCk6IEljb25UYWJGaWx0ZXIgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHNTdXBwb3J0ZWRDbGFzcyA9IEljb25UYWJGaWx0ZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCk7XG5cdFx0bGV0IG9UYWI6IGFueSA9IG9Db250cm9sO1xuXHRcdGlmIChvVGFiICYmICFvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpICYmIG9UYWIuZ2V0UGFyZW50KSB7XG5cdFx0XHRvVGFiID0gb0NvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvVGFiICYmIG9UYWIuaXNBKHNTdXBwb3J0ZWRDbGFzcykgPyAob1RhYiBhcyBJY29uVGFiRmlsdGVyKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRWaWV3Q29udHJvbGxlcigpIHtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0cmV0dXJuIG9WaWV3ICYmIG9WaWV3LmdldENvbnRyb2xsZXIoKTtcblx0fVxuXG5cdF9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQ29uZGl0aW9uczogYW55LCBzUmVmcmVzaENhdXNlOiBzdHJpbmcpIHtcblx0XHQodGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpPy5vblZpZXdOZWVkc1JlZnJlc2g/Lih7XG5cdFx0XHRmaWx0ZXJDb25kaXRpb25zOiBvRmlsdGVyQ29uZGl0aW9ucyxcblx0XHRcdGN1cnJlbnRUYWJJZDogdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCksXG5cdFx0XHRyZWZyZXNoQ2F1c2U6IHNSZWZyZXNoQ2F1c2Vcblx0XHR9KTtcblx0fVxuXG5cdF9yZWZyZXNoVGFic0NvdW50KHRhYmxlRXZlbnQ/OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBJZiB0aGUgcmVmcmVzaCBpcyB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKGludGVybmFsRGF0YVJlcXVlc3RlZClcblx0XHQvLyB3ZSBjYW5ub3QgdXNlIHRoZSBzZWxlY3RlZCBrZXkgYXMgcmVmZXJlbmNlIHNpbmNlIHRhYmxlIGNhbiBiZSByZWZyZXNoZWQgYnkgU2lkZUVmZmVjdHNcblx0XHQvLyBzbyB0aGUgdGFibGUgY291bGQgYmUgaW50byBhIGRpZmZlcmVudCB0YWIgLT4gd2UgdXNlIHRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHRvIGZpbmQgdGhlIHRhcmdldGVkIHRhYlxuXHRcdC8vIElmIG5vdCB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgLT4gcmVmcmVzaCBhdCBsZWFzdCB0aGUgY291bnRzIG9mIHRoZSBjdXJyZW50IE1hY3JvQVBJXG5cdFx0Ly8gSW4gYW55IGNhc2UgaWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIE91dGRhdGVkIGZvciB0aGUgTXVsdGlwbGVNb2RlQ29udHJvbCBhbGwgdGhlIGNvdW50cyBhcmUgcmVmcmVzaGVkXG5cdFx0Y29uc3QgZXZlbnRNYWNyb0FQSSA9IHRhYmxlRXZlbnQ/LmdldFNvdXJjZSgpIGFzIE1hY3JvQVBJO1xuXHRcdGNvbnN0IHRhcmdldEtleSA9IGV2ZW50TWFjcm9BUEkgPyB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKGV2ZW50TWFjcm9BUEkpPy5nZXRLZXkoKSA6IHRoaXMuY29udGVudD8uZ2V0U2VsZWN0ZWRLZXkoKTtcblxuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scyh0cnVlKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0aWYgKG9NYWNyb0FQST8uZ2V0Q291bnRzICYmICh0aGlzLmNvdW50c091dERhdGVkIHx8IHRhcmdldEtleSA9PT0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpKSkge1xuXHRcdFx0XHRpZiAob0ljb25UYWJGaWx0ZXIgJiYgb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQpIHtcblx0XHRcdFx0XHRvSWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdFx0XHRvTWFjcm9BUElcblx0XHRcdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHRcdFx0LnRoZW4oKGlDb3VudDogc3RyaW5nKSA9PiBvSWNvblRhYkZpbHRlci5zZXRDb3VudChpQ291bnQgfHwgXCIwXCIpKVxuXHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXF1ZXN0aW5nIENvdW50cyBmb3IgQ29udHJvbFwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKGZhbHNlKTtcblx0fVxuXG5cdF9zZXRJbm5lckJpbmRpbmcoYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGNvbnN0IGJJc1NlbGVjdGVkS2V5ID0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0Y29uc3Qgc0FjdGlvbiA9IGJJc1NlbGVjdGVkS2V5ICYmICF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSA/IEJpbmRpbmdBY3Rpb24uUmVzdW1lIDogQmluZGluZ0FjdGlvbi5TdXNwZW5kO1xuXHRcdFx0XHRvTWFjcm9BUElbc0FjdGlvbl0/LihzQWN0aW9uID09PSBCaW5kaW5nQWN0aW9uLlJlc3VtZSA/IGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCAmJiBiSXNTZWxlY3RlZEtleSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRfc2V0VGFiTWVzc2FnZVN0cmlwKHByb3BlcnRpZXM6IE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMpIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdHByb3BlcnRpZXMucmVzb3VyY2VCdW5kbGVcblx0XHRcdCk7XG5cdFx0XHRzVGV4dCA9IE1lc3NhZ2VTdHJpcC5nZXRUZXh0KGFJZ25vcmVkTGFiZWxzLCBvRmlsdGVyQ29udHJvbCwgcHJvcGVydGllcy50aXRsZSwgRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KGZhbHNlKTtcblx0XHRpZiAodGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMoKHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCkgYXMgYW55KT8ub1Jlc291cmNlQnVuZGxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNcIiksIFwic2VhcmNoXCIpO1xuXHRcdH1cblx0fVxuXG5cdF9vbkZpbHRlckNoYW5nZWQob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNCYXNlZFwiKSkge1xuXHRcdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KHRydWUpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aXBsZU1vZGVDb250cm9sO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O01Ba0NLQSxhQUFhO0VBQUEsV0FBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQSxJQU1aQyxtQkFBbUIsV0FEeEJDLGNBQWMsQ0FBQywwREFBMEQsQ0FBQyxVQUV6RUMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxVQUc3QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUdsREYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUdsREMsV0FBVyxDQUFDO0lBQUVGLElBQUksRUFBRSxrQkFBa0I7SUFBRUcsUUFBUSxFQUFFLEtBQUs7SUFBRUMsU0FBUyxFQUFFO0VBQUssQ0FBQyxDQUFDLFVBRzNFQyxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLHFCQUFxQjtJQUFFRyxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsVUFHNURFLFdBQVcsQ0FBQztJQUFFTCxJQUFJLEVBQUUsZ0NBQWdDO0lBQUVHLFFBQVEsRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUd4RUcsS0FBSyxF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
399
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJnZXRUZXh0IiwiaXNBIiwiY2hlY2tOb25GaWx0ZXJhYmxlRW50aXR5U2V0Iiwic2V0RGF0YSIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwib0NoYXJ0IiwiZ2V0Q29udGVudCIsImJFbnRpdHlTZXRGaWxlcmFibGUiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRNZXRhTW9kZWwiLCJnZXRDb250ZXh0IiwidGFyZ2V0T2JqZWN0IiwiYW5ub3RhdGlvbnMiLCJDYXBhYmlsaXRpZXMiLCJGaWx0ZXJSZXN0cmljdGlvbnMiLCJGaWx0ZXJhYmxlIiwiaW5kZXhPZiIsImJPbmx5Rm9yVmlzaWJsZVRhYiIsImlubmVyQ29udHJvbHMiLCJyZWR1Y2UiLCJhSW5uZXJDb250cm9scyIsInNJbm5lckNvbnRyb2wiLCJDb3JlIiwiYnlJZCIsInB1c2giLCJmaWx0ZXIiLCJvSW5uZXJDb250cm9sIiwiZ2V0VmlzaWJsZSIsImZpbHRlckNvbnRyb2wiLCJzU3VwcG9ydGVkQ2xhc3MiLCJJY29uVGFiRmlsdGVyIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsInRhYmxlRXZlbnQiLCJldmVudE1hY3JvQVBJIiwidGFyZ2V0S2V5Iiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJnZXRQYXJhbWV0ZXIiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNdWx0aXBsZU1vZGVDb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCAqIGFzIE1ldGFNb2RlbENvbnZlcnRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGV2ZW50LCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1lc3NhZ2VTdHJpcCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCB7IGdldFJlc291cmNlTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL01hY3JvQVBJXCI7XG5pbXBvcnQgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdFx0Z2V0Q29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IGFueVtdO1xuXHR0aXRsZTogc3RyaW5nO1xufTtcblxuZW51bSBCaW5kaW5nQWN0aW9uIHtcblx0U3VzcGVuZCA9IFwic3VzcGVuZEJpbmRpbmdcIixcblx0UmVzdW1lID0gXCJyZXN1bWVCaW5kaW5nXCJcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LmNvbnRyb2xzLk11bHRpcGxlTW9kZUNvbnRyb2xcIilcbmNsYXNzIE11bHRpcGxlTW9kZUNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0NvdW50cyE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZnJlZXplQ29udGVudCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Y291bnRzT3V0RGF0ZWQhOiBib29sZWFuO1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLm0uSWNvblRhYkJhclwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50ITogSWNvblRhYkJhcjtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUgfSlcblx0aW5uZXJDb250cm9scyE6IHN0cmluZ1tdO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRmaWx0ZXJDb250cm9sITogc3RyaW5nO1xuXG5cdEBldmVudCgpXG5cdHNlbGVjdCE6IEZ1bmN0aW9uO1xuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0VGFic01vZGVsKCk7IC8vIEdlbmVyYXRlIHRoZSBtb2RlbCB3aGljaCBpcyBtYW5kYXRvcnkgZm9yIHNvbWUgYmluZGluZ3NcblxuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdGlmICghb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdC8vIEluIGNhc2UgdGhlcmUncyBubyBmaWx0ZXJiYXIsIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBjb3VudHMgaW4gdGhlIHRhYnMgaW1tZWRpYXRlbHlcblx0XHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJBUEkgPSBvRmlsdGVyQ29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5zaG93Q291bnRzKSB7XG5cdFx0XHRcdG9NYWNyb0FQSS5hdHRhY2hFdmVudChcImludGVybmFsRGF0YVJlcXVlc3RlZFwiLCB0aGlzLl9yZWZyZXNoVGFic0NvdW50LmJpbmQodGhpcykpO1xuXHRcdFx0fVxuXHRcdFx0b01hY3JvQVBJLnN1c3BlbmRCaW5kaW5nPy4oKTtcblx0XHR9KTtcblx0XHRpZiAob0ZpbHRlckJhckFQSSkge1xuXHRcdFx0b0ZpbHRlckJhckFQSS5hdHRhY2hFdmVudChcImludGVybmFsU2VhcmNoXCIsIHRoaXMuX29uU2VhcmNoLmJpbmQodGhpcykpO1xuXHRcdFx0b0ZpbHRlckJhckFQSS5hdHRhY2hFdmVudChcImludGVybmFsRmlsdGVyQ2hhbmdlZFwiLCB0aGlzLl9vbkZpbHRlckNoYW5nZWQuYmluZCh0aGlzKSk7XG5cdFx0fVxuXHR9XG5cblx0b25BZnRlclJlbmRlcmluZygpIHtcblx0XHR0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk/LnJlc3VtZUJpbmRpbmc/LighdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpO1xuXHR9XG5cblx0c3RhdGljIHJlbmRlcihvUm06IFJlbmRlck1hbmFnZXIsIG9Db250cm9sOiBNdWx0aXBsZU1vZGVDb250cm9sKSB7XG5cdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgbW9kZWwgY29udGFpbmluZyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBJY29uVGFiRmlsdGVycy5cblx0ICpcblx0ICogQHJldHVybnMge3NhcC51aS5tb2RlbC5Nb2RlbCB8IHVuZGVmaW5lZH0gVGhlIG1vZGVsXG5cdCAqL1xuXHRnZXRUYWJzTW9kZWwoKTogTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHNUYWJzTW9kZWwgPSBcInRhYnNJbnRlcm5hbFwiO1xuXHRcdGNvbnN0IG9Db250ZW50ID0gdGhpcy5jb250ZW50O1xuXHRcdGlmICghb0NvbnRlbnQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGxldCBvTW9kZWwgPSBvQ29udGVudC5nZXRNb2RlbChzVGFic01vZGVsKTtcblx0XHRpZiAoIW9Nb2RlbCkge1xuXHRcdFx0b01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRvQ29udGVudC5zZXRNb2RlbChvTW9kZWwsIHNUYWJzTW9kZWwpO1xuXHRcdH1cblx0XHRyZXR1cm4gb01vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2wgb2YgdGhlIGRpc3BsYXllZCB0YWIuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkfSBUaGUgY29udHJvbFxuXHQgKi9cblx0Z2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKTogSW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb1NlbGVjdGVkVGFiID0gdGhpcy5jb250ZW50Py5nZXRJdGVtcygpLmZpbmQoKG9JdGVtKSA9PiAob0l0ZW0gYXMgSWNvblRhYkZpbHRlcikuZ2V0S2V5KCkgPT09IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpKTtcblx0XHRyZXR1cm4gb1NlbGVjdGVkVGFiXG5cdFx0XHQ/IHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZpbmQoKG9NYWNyb0FQSSkgPT4gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpID09PSBvU2VsZWN0ZWRUYWIpXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBNYW5hZ2VzIHRoZSBiaW5kaW5nIG9mIGFsbCBpbm5lciBjb250cm9scyB3aGVuIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGlzIGNoYW5nZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7c2FwLnVpLmJhc2UuRXZlbnR9IG9FdmVudCBFdmVudCBmaXJlZCBieSB0aGUgSWNvblRhYkJhclxuXHQgKi9cblx0c3RhdGljIGhhbmRsZVRhYkNoYW5nZShvRXZlbnQ6IGFueSk6IHZvaWQge1xuXHRcdGNvbnN0IG9JY29uVGFiQmFyID0gb0V2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IG9NdWx0aUNvbnRyb2wgPSBvSWNvblRhYkJhci5nZXRQYXJlbnQoKTtcblxuXHRcdGNvbnN0IG1QYXJhbWV0ZXJzID0gb0V2ZW50LmdldFBhcmFtZXRlcnMoKTtcblx0XHRvTXVsdGlDb250cm9sLl9zZXRJbm5lckJpbmRpbmcodHJ1ZSk7XG5cdFx0Y29uc3Qgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8ucHJldmlvdXNLZXk7XG5cdFx0Y29uc3Qgc1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnNlbGVjdGVkS2V5O1xuXG5cdFx0aWYgKHNTZWxlY3RlZEtleSAmJiBzUHJldmlvdXNTZWxlY3RlZEtleSAhPT0gc1NlbGVjdGVkS2V5KSB7XG5cdFx0XHRjb25zdCBvRmlsdGVyQmFyID0gb011bHRpQ29udHJvbC5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXIgJiYgIW9NdWx0aUNvbnRyb2wuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKSB7XG5cdFx0XHRcdGlmICghb011bHRpQ29udHJvbC5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHRcdFx0Ly9jdXN0b20gdGFiXG5cdFx0XHRcdFx0b011bHRpQ29udHJvbC5fcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCksIFwidGFiQ2hhbmdlZFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJLmFkZCh7XG5cdFx0XHRcdGNoYW5nZXM6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRjaGFuZ2VTcGVjaWZpY0RhdGE6IHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlVHlwZTogXCJzZWxlY3RJY29uVGFiQmFyRmlsdGVyXCIsXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzU2VsZWN0ZWRLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRzZWxlY3RvckVsZW1lbnQ6IG9JY29uVGFiQmFyXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRvTXVsdGlDb250cm9sLl9nZXRWaWV3Q29udHJvbGxlcigpPy5nZXRFeHRlbnNpb25BUEkoKT8udXBkYXRlQXBwU3RhdGUoKTtcblxuXHRcdG9NdWx0aUNvbnRyb2wuZmlyZUV2ZW50KFwic2VsZWN0XCIsIHtcblx0XHRcdGljb25UYWJCYXI6IG9JY29uVGFiQmFyLFxuXHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdHByZXZpb3VzS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEludmFsaWRhdGVzIHRoZSBjb250ZW50IG9mIGFsbCBpbm5lciBjb250cm9scy5cblx0ICovXG5cdGludmFsaWRhdGVDb250ZW50KCkge1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRvTWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvdW50cyB0byBvdXQgb2YgZGF0ZSBvciB1cCB0byBkYXRlXG5cdCAqIElmIHRoZSBjb3VudHMgYXJlIHNldCB0byBcIm91dCBvZiBkYXRlXCIgYW5kIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGRvZXNuJ3QgY29udGFpbiBhbiBpbm5lciBjb250cm9sIGFsbCBpbm5lciBjb250cm9scyBhcmUgcmVxdWVzdGVkIHRvIGdldCB0aGUgbmV3IGNvdW50cy5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0Q291bnRzT3V0RGF0ZWQoYlZhbHVlID0gdHJ1ZSkge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJjb3VudHNPdXREYXRlZFwiLCBiVmFsdWUpO1xuXHRcdC8vIGlmIHRoZSBjdXJyZW50IHRhYiBpcyBub3QgY29uZmlndXJlZCB3aXRoIG5vIGlubmVyIENvbnRyb2xcblx0XHQvLyB0aGUgdGFiIGNvdW50cyBtdXN0IGJlIG1hbnVhbGx5IHJlZnJlc2hlZCBzaW5jZSBubyBNYWNybyBBUEkgd2lsbCBzZW50IGV2ZW50IGludGVybmFsRGF0YVJlcXVlc3RlZFxuXHRcdGlmIChiVmFsdWUgJiYgIXRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fcmVmcmVzaFRhYnNDb3VudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGcmVlemVzIHRoZSBjb250ZW50IDpcblx0ICogIC0gY29udGVudCBpcyBmcm96ZW46IHRoZSBiaW5kaW5nIG9mIHRoZSBpbm5lciBjb250cm9scyBhcmUgc3VzcGVuZGVkLlxuXHQgKiAgLSBjb250ZW50IGlzIHVuZnJvemVuOiB0aGUgYmluZGluZyBvZiBpbm5lciBjb250cm9sIHJlbGF0ZWQgdG8gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgcmVzdW1lZC5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0RnJlZXplQ29udGVudChiVmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiLCBiVmFsdWUpO1xuXHRcdHRoaXMuX3NldElubmVyQmluZGluZygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIGludGVybmFsIG1vZGVsIHdpdGggdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IGFwcGxpY2FibGUgb24gZWFjaCBJY29uVGFiRmlsdGVyIChjb250YWluaW5nIGlubmVyIGNvbnRyb2wpIGFjY29yZGluZyB0byB0aGUgZW50aXR5VHlwZSBvZiB0aGUgZmlsdGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqL1xuXHRfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKCkge1xuXHRcdGNvbnN0IHRhYnNNb2RlbCA9IHRoaXMuZ2V0VGFic01vZGVsKCk7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCkgYXMgQ29udHJvbDtcblx0XHRpZiAodGFic01vZGVsICYmIG9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHRjb25zdCByZXN1bHRzOiBhbnkgPSB7fTtcblx0XHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvVGFiID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRpZiAob1RhYikge1xuXHRcdFx0XHRcdGNvbnN0IHNUYWJJZCA9IG9UYWIuZ2V0S2V5KCk7XG5cdFx0XHRcdFx0Y29uc3QgbUlnbm9yZWRGaWVsZHMgPSBvTWFjcm9BUEkucmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM/LihvRmlsdGVyQ29udHJvbCkgfHwgW107XG5cdFx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdID0ge1xuXHRcdFx0XHRcdFx0bm90QXBwbGljYWJsZToge1xuXHRcdFx0XHRcdFx0XHRmaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy5fc2V0VGFiTWVzc2FnZVN0cmlwKHtcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlUGF0aDogb0ZpbHRlckNvbnRyb2wuZGF0YShcImVudGl0eVR5cGVcIiksXG5cdFx0XHRcdFx0XHRcdFx0aWdub3JlZEZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IG9UYWIuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpZiAob01hY3JvQVBJICYmIG9NYWNyb0FQSS5pc0EoXCJzYXAuZmUubWFjcm9zLmNoYXJ0LkNoYXJ0QVBJXCIpKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB0aGlzLmNoZWNrTm9uRmlsdGVyYWJsZUVudGl0eVNldChvTWFjcm9BUEksIHNUYWJJZCwgcmVzdWx0cyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdCh0YWJzTW9kZWwgYXMgYW55KS5zZXREYXRhKHJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNb2RpZmllcyB0aGUgbWVzc2FnZXN0cmlwIG1lc3NhZ2UgYmFzZWQgb24gZW50aXR5IHNldCBpcyBmaWxlcmFibGUgb3Igbm90LlxuXHQgKlxuXHQgKiBAcGFyYW0ge0lubmVyQ29udHJvbFR5cGV9IG9NYWNyb0FQSSBNYWNybyBjaGFydCBhcGlcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNUYWJJZCBUYWIga2V5IElEXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSByZXN1bHRzIFNob3VsZCBjb250YWluIGZpZWxkcyBhbmQgdGl0bGVcblx0ICogQHJldHVybnMge29iamVjdH0gQW4gb2JqZWN0IG9mIG1vZGlmaWVkIGZpZWxkcyBhbmQgdGl0bGVcblx0ICovXG5cdGNoZWNrTm9uRmlsdGVyYWJsZUVudGl0eVNldChvTWFjcm9BUEk6IElubmVyQ29udHJvbFR5cGUsIHNUYWJJZDogc3RyaW5nLCByZXN1bHRzOiBhbnkpIHtcblx0XHRjb25zdCByZXNvdXJjZU1vZGVsID0gZ2V0UmVzb3VyY2VNb2RlbChvTWFjcm9BUEkpO1xuXHRcdGNvbnN0IG9DaGFydCA9IG9NYWNyb0FQST8uZ2V0Q29udGVudCA/IG9NYWNyb0FQSS5nZXRDb250ZW50KCkgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgYkVudGl0eVNldEZpbGVyYWJsZSA9XG5cdFx0XHRvQ2hhcnQgJiZcblx0XHRcdE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMoXG5cdFx0XHRcdG9DaGFydFxuXHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0LmdldE1ldGFNb2RlbCgpXG5cdFx0XHRcdFx0LmdldENvbnRleHQoYCR7b0NoYXJ0LmRhdGEoXCJ0YXJnZXRDb2xsZWN0aW9uUGF0aFwiKX1gKVxuXHRcdFx0KT8udGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5GaWx0ZXJSZXN0cmljdGlvbnM/LkZpbHRlcmFibGU7XG5cdFx0aWYgKGJFbnRpdHlTZXRGaWxlcmFibGUgIT09IHVuZGVmaW5lZCAmJiAhYkVudGl0eVNldEZpbGVyYWJsZSkge1xuXHRcdFx0aWYgKHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLmZpZWxkcy5pbmRleE9mKFwiJHNlYXJjaFwiKSA+IC0xKSB7XG5cdFx0XHRcdHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLnRpdGxlICs9IFwiIFwiICsgcmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19MUl9NVUxUSVZJWl9DSEFSVF9NVUxUSV9OT05fRklMVEVSQUJMRVwiKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLmZpZWxkcyA9IFtcIm5vbkZpbHRlcmFibGVcIl07XG5cdFx0XHRcdHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLnRpdGxlID0gcmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19MUl9NVUxUSVZJWl9DSEFSVF9NVUxUSV9OT05fRklMVEVSQUJMRVwiKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdHNbc1RhYklkXTtcblx0fVxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYk9ubHlGb3JWaXNpYmxlVGFiIFNob3VsZCBkaXNwbGF5IG9ubHkgdGhlIHZpc2libGUgY29udHJvbHNcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGVbXX0gQW4gYXJyYXkgb2YgY29udHJvbHNcblx0ICovXG5cdGdldEFsbElubmVyQ29udHJvbHMoYk9ubHlGb3JWaXNpYmxlVGFiID0gZmFsc2UpOiBJbm5lckNvbnRyb2xUeXBlW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmlubmVyQ29udHJvbHMucmVkdWNlKChhSW5uZXJDb250cm9sczogSW5uZXJDb250cm9sVHlwZVtdLCBzSW5uZXJDb250cm9sOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2wgPSBDb3JlLmJ5SWQoc0lubmVyQ29udHJvbCkgYXMgSW5uZXJDb250cm9sVHlwZTtcblx0XHRcdFx0aWYgKG9Db250cm9sKSB7XG5cdFx0XHRcdFx0YUlubmVyQ29udHJvbHMucHVzaChvQ29udHJvbCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGFJbm5lckNvbnRyb2xzLmZpbHRlcihcblx0XHRcdFx0XHQob0lubmVyQ29udHJvbCkgPT4gIWJPbmx5Rm9yVmlzaWJsZVRhYiB8fCB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Jbm5lckNvbnRyb2wpPy5nZXRWaXNpYmxlKClcblx0XHRcdFx0KTtcblx0XHRcdH0sIFtdKSB8fCBbXVxuXHRcdCk7XG5cdH1cblxuXHRfZ2V0RmlsdGVyQ29udHJvbCgpOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBDb3JlLmJ5SWQodGhpcy5maWx0ZXJDb250cm9sKSBhcyBGaWx0ZXJCYXIgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvQ29udHJvbDogQ29udHJvbCk6IEljb25UYWJGaWx0ZXIgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHNTdXBwb3J0ZWRDbGFzcyA9IEljb25UYWJGaWx0ZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCk7XG5cdFx0bGV0IG9UYWI6IGFueSA9IG9Db250cm9sO1xuXHRcdGlmIChvVGFiICYmICFvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpICYmIG9UYWIuZ2V0UGFyZW50KSB7XG5cdFx0XHRvVGFiID0gb0NvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvVGFiICYmIG9UYWIuaXNBKHNTdXBwb3J0ZWRDbGFzcykgPyAob1RhYiBhcyBJY29uVGFiRmlsdGVyKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRWaWV3Q29udHJvbGxlcigpIHtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0cmV0dXJuIG9WaWV3ICYmIG9WaWV3LmdldENvbnRyb2xsZXIoKTtcblx0fVxuXG5cdF9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQ29uZGl0aW9uczogYW55LCBzUmVmcmVzaENhdXNlOiBzdHJpbmcpIHtcblx0XHQodGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpPy5vblZpZXdOZWVkc1JlZnJlc2g/Lih7XG5cdFx0XHRmaWx0ZXJDb25kaXRpb25zOiBvRmlsdGVyQ29uZGl0aW9ucyxcblx0XHRcdGN1cnJlbnRUYWJJZDogdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCksXG5cdFx0XHRyZWZyZXNoQ2F1c2U6IHNSZWZyZXNoQ2F1c2Vcblx0XHR9KTtcblx0fVxuXG5cdF9yZWZyZXNoVGFic0NvdW50KHRhYmxlRXZlbnQ/OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBJZiB0aGUgcmVmcmVzaCBpcyB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKGludGVybmFsRGF0YVJlcXVlc3RlZClcblx0XHQvLyB3ZSBjYW5ub3QgdXNlIHRoZSBzZWxlY3RlZCBrZXkgYXMgcmVmZXJlbmNlIHNpbmNlIHRhYmxlIGNhbiBiZSByZWZyZXNoZWQgYnkgU2lkZUVmZmVjdHNcblx0XHQvLyBzbyB0aGUgdGFibGUgY291bGQgYmUgaW50byBhIGRpZmZlcmVudCB0YWIgLT4gd2UgdXNlIHRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHRvIGZpbmQgdGhlIHRhcmdldGVkIHRhYlxuXHRcdC8vIElmIG5vdCB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgLT4gcmVmcmVzaCBhdCBsZWFzdCB0aGUgY291bnRzIG9mIHRoZSBjdXJyZW50IE1hY3JvQVBJXG5cdFx0Ly8gSW4gYW55IGNhc2UgaWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIE91dGRhdGVkIGZvciB0aGUgTXVsdGlwbGVNb2RlQ29udHJvbCBhbGwgdGhlIGNvdW50cyBhcmUgcmVmcmVzaGVkXG5cdFx0Y29uc3QgZXZlbnRNYWNyb0FQSSA9IHRhYmxlRXZlbnQ/LmdldFNvdXJjZSgpIGFzIE1hY3JvQVBJO1xuXHRcdGNvbnN0IHRhcmdldEtleSA9IGV2ZW50TWFjcm9BUEkgPyB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKGV2ZW50TWFjcm9BUEkpPy5nZXRLZXkoKSA6IHRoaXMuY29udGVudD8uZ2V0U2VsZWN0ZWRLZXkoKTtcblxuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scyh0cnVlKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0aWYgKG9NYWNyb0FQST8uZ2V0Q291bnRzICYmICh0aGlzLmNvdW50c091dERhdGVkIHx8IHRhcmdldEtleSA9PT0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpKSkge1xuXHRcdFx0XHRpZiAob0ljb25UYWJGaWx0ZXIgJiYgb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQpIHtcblx0XHRcdFx0XHRvSWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdFx0XHRvTWFjcm9BUElcblx0XHRcdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHRcdFx0LnRoZW4oKGlDb3VudDogc3RyaW5nKSA9PiBvSWNvblRhYkZpbHRlci5zZXRDb3VudChpQ291bnQgfHwgXCIwXCIpKVxuXHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXF1ZXN0aW5nIENvdW50cyBmb3IgQ29udHJvbFwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKGZhbHNlKTtcblx0fVxuXG5cdF9zZXRJbm5lckJpbmRpbmcoYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGNvbnN0IGJJc1NlbGVjdGVkS2V5ID0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0Y29uc3Qgc0FjdGlvbiA9IGJJc1NlbGVjdGVkS2V5ICYmICF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSA/IEJpbmRpbmdBY3Rpb24uUmVzdW1lIDogQmluZGluZ0FjdGlvbi5TdXNwZW5kO1xuXHRcdFx0XHRvTWFjcm9BUElbc0FjdGlvbl0/LihzQWN0aW9uID09PSBCaW5kaW5nQWN0aW9uLlJlc3VtZSA/IGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCAmJiBiSXNTZWxlY3RlZEtleSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRfc2V0VGFiTWVzc2FnZVN0cmlwKHByb3BlcnRpZXM6IE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMpIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdGdldFJlc291cmNlTW9kZWwob0ZpbHRlckNvbnRyb2wpXG5cdFx0XHQpO1xuXHRcdFx0c1RleHQgPSBNZXNzYWdlU3RyaXAuZ2V0VGV4dChhSWdub3JlZExhYmVscywgb0ZpbHRlckNvbnRyb2wsIHByb3BlcnRpZXMudGl0bGUsIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KTtcblx0XHRcdHJldHVybiBzVGV4dDtcblx0XHR9XG5cdH1cblxuXHRfb25TZWFyY2gob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFtQ0tBLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtFQUFBLEdBQWJBLGFBQWEsS0FBYkEsYUFBYTtFQUFBLElBTVpDLG1CQUFtQixXQUR4QkMsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLFVBRXpFQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLFVBRzdCRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xERixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xEQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLGtCQUFrQjtJQUFFRyxRQUFRLEVBQUUsS0FBSztJQUFFQyxTQUFTLEVBQUU7RUFBSyxDQUFDLENBQUMsVUFHM0VDLFdBQVcsQ0FBQztJQUFFTCxJQUFJLEVBQUUscUJBQXFCO0lBQUVHLFFBQVEsRUFBRTtFQUFLLENBQUMsQ0FBQyxVQUc1REUsV0FBVyxDQUFDO0lBQUVMLElBQUksRUFBRSxnQ0FBZ0M7SUFBRUcsUUFBUSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR3hFRyxLQUFLLEVBQUU7SUFBQTtJQUFBO01BQUE7TUFBQTtRQUFBO01BQUE7TUFBQTtNQUFB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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/helpers/ClassSupport","sap/fe/core/helpers/MessageStrip","sap/fe/macros/DelegateUtil","sap/m/IconTabFilter","sap/ui/core/Control","sap/ui/core/Core","sap/ui/fl/write/api/ControlPersonalizationWriteAPI","sap/ui/model/json/JSONModel"],function(e,t,n,r,i,o,l,s,a,u){"use strict";var c,d,f,g,h,p,v,C,b,y,m,_,I,T,w,F,z;var S=n.property;var P=n.event;var A=n.defineUI5Class;var O=n.association;var B=n.aggregation;function D(e,t,n,r){if(!n)return;Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function E(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function K(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;M(e,t)}function M(e,t){M=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return M(e,t)}function V(e,t,n,r,i){var o={};Object.keys(r).forEach(function(e){o[e]=r[e]});o.enumerable=!!o.enumerable;o.configurable=!!o.configurable;if("value"in o||o.initializer){o.writable=true}o=n.slice().reverse().reduce(function(n,r){return r(e,t,n)||n},o);if(i&&o.initializer!==void 0){o.value=o.initializer?o.initializer.call(i):void 0;o.initializer=undefined}if(o.initializer===void 0){Object.defineProperty(e,t,o);o=null}return o}function R(e,t){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}var j;(function(e){e["Suspend"]="suspendBinding";e["Resume"]="resumeBinding"})(j||(j={}));let N=(c=A("sap.fe.templates.ListReport.controls.MultipleModeControl"),d=S({type:"boolean"}),f=S({type:"boolean",defaultValue:false}),g=S({type:"boolean",defaultValue:false}),h=B({type:"sap.m.IconTabBar",multiple:false,isDefault:true}),p=O({type:"sap.ui.core.Control",multiple:true}),v=O({type:"sap.fe.core.controls.FilterBar",multiple:false}),C=P(),c(b=(y=function(n){K(l,n);function l(){var e;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++){r[i]=arguments[i]}e=n.call(this,...r)||this;D(e,"showCounts",m,E(e));D(e,"freezeContent",_,E(e));D(e,"countsOutDated",I,E(e));D(e,"content",T,E(e));D(e,"innerControls",w,E(e));D(e,"filterControl",F,E(e));D(e,"select",z,E(e));return e}var c=l.prototype;c.onBeforeRendering=function e(){this.getTabsModel();const t=this._getFilterControl();if(!t){this.setCountsOutDated(true)}const n=t===null||t===void 0?void 0:t.getParent();this.getAllInnerControls().forEach(e=>{var t;if(this.showCounts){e.attachEvent("internalDataRequested",this._refreshTabsCount.bind(this))}(t=e.suspendBinding)===null||t===void 0?void 0:t.call(e)});if(n){n.attachEvent("internalSearch",this._onSearch.bind(this));n.attachEvent("internalFilterChanged",this._onFilterChanged.bind(this))}};c.onAfterRendering=function e(){var t,n;(t=this.getSelectedInnerControl())===null||t===void 0?void 0:(n=t.resumeBinding)===null||n===void 0?void 0:n.call(t,!this.getProperty("freezeContent"))};l.render=function e(t,n){t.renderControl(n.content)};c.getTabsModel=function e(){const t="tabsInternal";const n=this.content;if(!n){return undefined}let r=n.getModel(t);if(!r){r=new u({});n.setModel(r,t)}return r};c.getSelectedInnerControl=function e(){var t;const n=(t=this.content)===null||t===void 0?void 0:t.getItems().find(e=>e.getKey()===this.content.getSelectedKey());return n?this.getAllInnerControls().find(e=>this._getTabFromInnerControl(e)===n):undefined};l.handleTabChange=function e(t){var n,r;const i=t.getSource();const o=i.getParent();const l=t.getParameters();o._setInnerBinding(true);const s=l===null||l===void 0?void 0:l.previousKey;const u=l===null||l===void 0?void 0:l.selectedKey;if(u&&s!==u){const e=o._getFilterControl();if(e&&!o.getProperty("freezeContent")){if(!o.getSelectedInnerControl()){o._refreshCustomView(e.getFilterConditions(),"tabChanged")}}a.add({changes:[{changeSpecificData:{changeType:"selectIconTabBarFilter",content:{selectedKey:u,previousSelectedKey:s}},selectorElement:i}]})}(n=o._getViewController())===null||n===void 0?void 0:(r=n.getExtensionAPI())===null||r===void 0?void 0:r.updateAppState();o.fireEvent("select",{iconTabBar:i,selectedKey:u,previousKey:s})};c.invalidateContent=function e(){this.setCountsOutDated(true);this.getAllInnerControls().forEach(e=>{var t;(t=e.invalidateContent)===null||t===void 0?void 0:t.call(e)})};c.setCountsOutDated=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.setProperty("countsOutDated",t);if(t&&!this.getSelectedInnerControl()){this._refreshTabsCount()}};c.setFreezeContent=function e(t){this.setProperty("freezeContent",t);this._setInnerBinding()};c._updateMultiTabNotApplicableFields=function e(t){const n=this.getTabsModel();const r=this._getFilterControl();if(n&&r){const e={};this.getAllInnerControls().forEach(n=>{const i=this._getTabFromInnerControl(n);if(i){var o;const l=i.getKey();const s=((o=n.refreshNotApplicableFields)===null||o===void 0?void 0:o.call(n,r))||[];e[l]={notApplicable:{fields:s,title:this._setTabMessageStrip({entityTypePath:r.data("entityType"),ignoredFields:s,resourceBundle:t,title:i.getText()})}}}});n.setData(e)}};c.getAllInnerControls=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.innerControls.reduce((e,n)=>{const r=s.byId(n);if(r){e.push(r)}return e.filter(e=>{var n;return!t||((n=this._getTabFromInnerControl(e))===null||n===void 0?void 0:n.getVisible())})},[])||[]};c._getFilterControl=function e(){return s.byId(this.filterControl)};c._getTabFromInnerControl=function e(t){const n=o.getMetadata().getName();let r=t;if(r&&!r.isA(n)&&r.getParent){r=t.getParent()}return r&&r.isA(n)?r:undefined};c._getViewController=function e(){const n=t.getTargetView(this);return n&&n.getController()};c._refreshCustomView=function e(t,n){var r,i;(r=this._getViewController())===null||r===void 0?void 0:(i=r.onViewNeedsRefresh)===null||i===void 0?void 0:i.call(r,{filterConditions:t,currentTabId:this.content.getSelectedKey(),refreshCause:n})};c._refreshTabsCount=function t(n){var r,i;const o=n===null||n===void 0?void 0:n.getSource();const l=o?(r=this._getTabFromInnerControl(o))===null||r===void 0?void 0:r.getKey():(i=this.content)===null||i===void 0?void 0:i.getSelectedKey();this.getAllInnerControls(true).forEach(t=>{const n=this._getTabFromInnerControl(t);if(t!==null&&t!==void 0&&t.getCounts&&(this.countsOutDated||l===(n===null||n===void 0?void 0:n.getKey()))){if(n&&n.setCount){n.setCount("...");t.getCounts().then(e=>n.setCount(e||"0")).catch(function(t){e.error("Error while requesting Counts for Control",t)})}}});this.setCountsOutDated(false)};c._setInnerBinding=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.content){this.getAllInnerControls().forEach(e=>{var n;const r=this._getTabFromInnerControl(e);const i=(r===null||r===void 0?void 0:r.getKey())===this.content.getSelectedKey();const o=i&&!this.getProperty("freezeContent")?j.Resume:j.Suspend;(n=e[o])===null||n===void 0?void 0:n.call(e,o===j.Resume?t&&i:undefined)})}};c._setTabMessageStrip=function e(t){let n="";const o=t.ignoredFields;const l=this._getFilterControl();if(l&&Array.isArray(o)&&o.length>0&&t.title){const e=r.getLabels(o,t.entityTypePath,l,t.resourceBundle);n=r.getText(e,l,t.title,i.getLocalizedText);return n}};c._onSearch=function e(t){this.setCountsOutDated(true);this.setFreezeContent(false);if(this.getSelectedInnerControl()){var n;this._updateMultiTabNotApplicableFields((n=this._getViewController())===null||n===void 0?void 0:n.oResourceBundle)}else{this._refreshCustomView(t.getParameter("conditions"),"search")}};c._onFilterChanged=function e(t){if(t.getParameter("conditionsBased")){this.setFreezeContent(true)}};return l}(l),m=V(y.prototype,"showCounts",[d],{configurable:true,enumerable:true,writable:true,initializer:null}),_=V(y.prototype,"freezeContent",[f],{configurable:true,enumerable:true,writable:true,initializer:null}),I=V(y.prototype,"countsOutDated",[g],{configurable:true,enumerable:true,writable:true,initializer:null}),T=V(y.prototype,"content",[h],{configurable:true,enumerable:true,writable:true,initializer:null}),w=V(y.prototype,"innerControls",[p],{configurable:true,enumerable:true,writable:true,initializer:null}),F=V(y.prototype,"filterControl",[v],{configurable:true,enumerable:true,writable:true,initializer:null}),z=V(y.prototype,"select",[C],{configurable:true,enumerable:true,writable:true,initializer:null}),y))||b);return N},false);
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/ClassSupport","sap/fe/core/helpers/MessageStrip","sap/fe/core/helpers/ResourceModelHelper","sap/fe/macros/DelegateUtil","sap/m/IconTabFilter","sap/ui/core/Control","sap/ui/core/Core","sap/ui/fl/write/api/ControlPersonalizationWriteAPI","sap/ui/model/json/JSONModel"],function(e,t,n,i,o,r,l,s,a,u,c,d){"use strict";var f,g,h,p,v,C,b,y,_,m,I,T,F,A,w,z,M;var S=r.getResourceModel;var P=i.property;var O=i.event;var E=i.defineUI5Class;var R=i.association;var D=i.aggregation;function B(e,t,n,i){if(!n)return;Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(i):void 0})}function K(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function L(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;V(e,t)}function V(e,t){V=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return V(e,t)}function N(e,t,n,i,o){var r={};Object.keys(i).forEach(function(e){r[e]=i[e]});r.enumerable=!!r.enumerable;r.configurable=!!r.configurable;if("value"in r||r.initializer){r.writable=true}r=n.slice().reverse().reduce(function(n,i){return i(e,t,n)||n},r);if(o&&r.initializer!==void 0){r.value=r.initializer?r.initializer.call(o):void 0;r.initializer=undefined}if(r.initializer===void 0){Object.defineProperty(e,t,r);r=null}return r}function j(e,t){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}var x;(function(e){e["Suspend"]="suspendBinding";e["Resume"]="resumeBinding"})(x||(x={}));let U=(f=E("sap.fe.templates.ListReport.controls.MultipleModeControl"),g=P({type:"boolean"}),h=P({type:"boolean",defaultValue:false}),p=P({type:"boolean",defaultValue:false}),v=D({type:"sap.m.IconTabBar",multiple:false,isDefault:true}),C=R({type:"sap.ui.core.Control",multiple:true}),b=R({type:"sap.fe.core.controls.FilterBar",multiple:false}),y=O(),f(_=(m=function(i){L(r,i);function r(){var e;for(var t=arguments.length,n=new Array(t),o=0;o<t;o++){n[o]=arguments[o]}e=i.call(this,...n)||this;B(e,"showCounts",I,K(e));B(e,"freezeContent",T,K(e));B(e,"countsOutDated",F,K(e));B(e,"content",A,K(e));B(e,"innerControls",w,K(e));B(e,"filterControl",z,K(e));B(e,"select",M,K(e));return e}var a=r.prototype;a.onBeforeRendering=function e(){this.getTabsModel();const t=this._getFilterControl();if(!t){this.setCountsOutDated(true)}const n=t===null||t===void 0?void 0:t.getParent();this.getAllInnerControls().forEach(e=>{var t;if(this.showCounts){e.attachEvent("internalDataRequested",this._refreshTabsCount.bind(this))}(t=e.suspendBinding)===null||t===void 0?void 0:t.call(e)});if(n){n.attachEvent("internalSearch",this._onSearch.bind(this));n.attachEvent("internalFilterChanged",this._onFilterChanged.bind(this))}};a.onAfterRendering=function e(){var t,n;(t=this.getSelectedInnerControl())===null||t===void 0?void 0:(n=t.resumeBinding)===null||n===void 0?void 0:n.call(t,!this.getProperty("freezeContent"))};r.render=function e(t,n){t.renderControl(n.content)};a.getTabsModel=function e(){const t="tabsInternal";const n=this.content;if(!n){return undefined}let i=n.getModel(t);if(!i){i=new d({});n.setModel(i,t)}return i};a.getSelectedInnerControl=function e(){var t;const n=(t=this.content)===null||t===void 0?void 0:t.getItems().find(e=>e.getKey()===this.content.getSelectedKey());return n?this.getAllInnerControls().find(e=>this._getTabFromInnerControl(e)===n):undefined};r.handleTabChange=function e(t){var n,i;const o=t.getSource();const r=o.getParent();const l=t.getParameters();r._setInnerBinding(true);const s=l===null||l===void 0?void 0:l.previousKey;const a=l===null||l===void 0?void 0:l.selectedKey;if(a&&s!==a){const e=r._getFilterControl();if(e&&!r.getProperty("freezeContent")){if(!r.getSelectedInnerControl()){r._refreshCustomView(e.getFilterConditions(),"tabChanged")}}c.add({changes:[{changeSpecificData:{changeType:"selectIconTabBarFilter",content:{selectedKey:a,previousSelectedKey:s}},selectorElement:o}]})}(n=r._getViewController())===null||n===void 0?void 0:(i=n.getExtensionAPI())===null||i===void 0?void 0:i.updateAppState();r.fireEvent("select",{iconTabBar:o,selectedKey:a,previousKey:s})};a.invalidateContent=function e(){this.setCountsOutDated(true);this.getAllInnerControls().forEach(e=>{var t;(t=e.invalidateContent)===null||t===void 0?void 0:t.call(e)})};a.setCountsOutDated=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.setProperty("countsOutDated",t);if(t&&!this.getSelectedInnerControl()){this._refreshTabsCount()}};a.setFreezeContent=function e(t){this.setProperty("freezeContent",t);this._setInnerBinding()};a._updateMultiTabNotApplicableFields=function e(){const t=this.getTabsModel();const n=this._getFilterControl();if(t&&n){const e={};this.getAllInnerControls().forEach(t=>{const i=this._getTabFromInnerControl(t);if(i){var o;const r=i.getKey();const l=((o=t.refreshNotApplicableFields)===null||o===void 0?void 0:o.call(t,n))||[];e[r]={notApplicable:{fields:l,title:this._setTabMessageStrip({entityTypePath:n.data("entityType"),ignoredFields:l,title:i.getText()})}};if(t&&t.isA("sap.fe.macros.chart.ChartAPI")){e[r]=this.checkNonFilterableEntitySet(t,r,e)}}});t.setData(e)}};a.checkNonFilterableEntitySet=function e(t,i,o){var r,l,s,a,u;const c=S(t);const d=t!==null&&t!==void 0&&t.getContent?t.getContent():undefined;const f=d&&((r=n.getInvolvedDataModelObjects(d.getModel().getMetaModel().getContext(`${d.data("targetCollectionPath")}`)))===null||r===void 0?void 0:(l=r.targetObject)===null||l===void 0?void 0:(s=l.annotations)===null||s===void 0?void 0:(a=s.Capabilities)===null||a===void 0?void 0:(u=a.FilterRestrictions)===null||u===void 0?void 0:u.Filterable);if(f!==undefined&&!f){if(o[i].notApplicable.fields.indexOf("$search")>-1){o[i].notApplicable.title+=" "+c.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE")}else{o[i].notApplicable.fields=["nonFilterable"];o[i].notApplicable.title=c.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE")}}return o[i]};a.getAllInnerControls=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.innerControls.reduce((e,n)=>{const i=u.byId(n);if(i){e.push(i)}return e.filter(e=>{var n;return!t||((n=this._getTabFromInnerControl(e))===null||n===void 0?void 0:n.getVisible())})},[])||[]};a._getFilterControl=function e(){return u.byId(this.filterControl)};a._getTabFromInnerControl=function e(t){const n=s.getMetadata().getName();let i=t;if(i&&!i.isA(n)&&i.getParent){i=t.getParent()}return i&&i.isA(n)?i:undefined};a._getViewController=function e(){const n=t.getTargetView(this);return n&&n.getController()};a._refreshCustomView=function e(t,n){var i,o;(i=this._getViewController())===null||i===void 0?void 0:(o=i.onViewNeedsRefresh)===null||o===void 0?void 0:o.call(i,{filterConditions:t,currentTabId:this.content.getSelectedKey(),refreshCause:n})};a._refreshTabsCount=function t(n){var i,o;const r=n===null||n===void 0?void 0:n.getSource();const l=r?(i=this._getTabFromInnerControl(r))===null||i===void 0?void 0:i.getKey():(o=this.content)===null||o===void 0?void 0:o.getSelectedKey();this.getAllInnerControls(true).forEach(t=>{const n=this._getTabFromInnerControl(t);if(t!==null&&t!==void 0&&t.getCounts&&(this.countsOutDated||l===(n===null||n===void 0?void 0:n.getKey()))){if(n&&n.setCount){n.setCount("...");t.getCounts().then(e=>n.setCount(e||"0")).catch(function(t){e.error("Error while requesting Counts for Control",t)})}}});this.setCountsOutDated(false)};a._setInnerBinding=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.content){this.getAllInnerControls().forEach(e=>{var n;const i=this._getTabFromInnerControl(e);const o=(i===null||i===void 0?void 0:i.getKey())===this.content.getSelectedKey();const r=o&&!this.getProperty("freezeContent")?x.Resume:x.Suspend;(n=e[r])===null||n===void 0?void 0:n.call(e,r===x.Resume?t&&o:undefined)})}};a._setTabMessageStrip=function e(t){let n="";const i=t.ignoredFields;const r=this._getFilterControl();if(r&&Array.isArray(i)&&i.length>0&&t.title){const e=o.getLabels(i,t.entityTypePath,r,S(r));n=o.getText(e,r,t.title,l.getLocalizedText);return n}};a._onSearch=function e(t){this.setCountsOutDated(true);this.setFreezeContent(false);if(this.getSelectedInnerControl()){this._updateMultiTabNotApplicableFields()}else{this._refreshCustomView(t.getParameter("conditions"),"search")}};a._onFilterChanged=function e(t){if(t.getParameter("conditionsBased")){this.setFreezeContent(true)}};return r}(a),I=N(m.prototype,"showCounts",[g],{configurable:true,enumerable:true,writable:true,initializer:null}),T=N(m.prototype,"freezeContent",[h],{configurable:true,enumerable:true,writable:true,initializer:null}),F=N(m.prototype,"countsOutDated",[p],{configurable:true,enumerable:true,writable:true,initializer:null}),A=N(m.prototype,"content",[v],{configurable:true,enumerable:true,writable:true,initializer:null}),w=N(m.prototype,"innerControls",[C],{configurable:true,enumerable:true,writable:true,initializer:null}),z=N(m.prototype,"filterControl",[b],{configurable:true,enumerable:true,writable:true,initializer:null}),M=N(m.prototype,"select",[y],{configurable:true,enumerable:true,writable:true,initializer:null}),m))||_);return U},false);
6
6
  //# sourceMappingURL=MultipleModeControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultipleModeControl.js","names":["sap","ui","define","Log","CommonUtils","ClassSupport","MessageStrip","DelegateUtil","IconTabFilter","Control","Core","ControlPersonalizationWriteAPI","JSONModel","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","property","event","defineUI5Class","association","aggregation","_initializerDefineProperty","target","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","BindingAction","MultipleModeControl","type","defaultValue","multiple","isDefault","_Control","_this","_len","arguments","length","args","Array","_key","this","_proto","onBeforeRendering","getTabsModel","oFilterControl","_getFilterControl","setCountsOutDated","oFilterBarAPI","getParent","getAllInnerControls","oMacroAPI","_oMacroAPI$suspendBin","showCounts","attachEvent","_refreshTabsCount","suspendBinding","_onSearch","_onFilterChanged","onAfterRendering","_this$getSelectedInne","_this$getSelectedInne2","getSelectedInnerControl","resumeBinding","getProperty","render","oRm","oControl","renderControl","content","sTabsModel","oContent","oModel","getModel","setModel","_this$content","oSelectedTab","getItems","find","oItem","getKey","getSelectedKey","_getTabFromInnerControl","handleTabChange","oEvent","_oMultiControl$_getVi","_oMultiControl$_getVi2","oIconTabBar","getSource","oMultiControl","mParameters","getParameters","_setInnerBinding","sPreviousSelectedKey","previousKey","sSelectedKey","selectedKey","oFilterBar","_refreshCustomView","getFilterConditions","add","changes","changeSpecificData","changeType","previousSelectedKey","selectorElement","_getViewController","getExtensionAPI","updateAppState","fireEvent","iconTabBar","invalidateContent","_oMacroAPI$invalidate","bValue","setProperty","setFreezeContent","_updateMultiTabNotApplicableFields","oResourceBundle","tabsModel","results","oTab","_oMacroAPI$refreshNot","sTabId","mIgnoredFields","refreshNotApplicableFields","notApplicable","fields","title","_setTabMessageStrip","entityTypePath","data","ignoredFields","resourceBundle","getText","setData","bOnlyForVisibleTab","innerControls","aInnerControls","sInnerControl","byId","push","filter","oInnerControl","_this$_getTabFromInne","getVisible","filterControl","sSupportedClass","getMetadata","getName","isA","oView","getTargetView","getController","oFilterConditions","sRefreshCause","_this$_getViewControl","_this$_getViewControl2","onViewNeedsRefresh","filterConditions","currentTabId","refreshCause","tableEvent","_this$_getTabFromInne2","_this$content2","eventMacroAPI","targetKey","oIconTabFilter","getCounts","countsOutDated","setCount","then","iCount","catch","oError","error","bRequestIfNotInitialized","_oMacroAPI$sAction","bIsSelectedKey","sAction","Resume","Suspend","properties","sText","aIgnoredFields","isArray","aIgnoredLabels","getLabels","getLocalizedText","_this$_getViewControl3","getParameter"],"sources":["MultipleModeControl-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"MultipleModeControl.js","names":["sap","ui","define","Log","CommonUtils","MetaModelConverter","ClassSupport","MessageStrip","ResourceModelHelper","DelegateUtil","IconTabFilter","Control","Core","ControlPersonalizationWriteAPI","JSONModel","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","getResourceModel","property","event","defineUI5Class","association","aggregation","_initializerDefineProperty","target","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","BindingAction","MultipleModeControl","type","defaultValue","multiple","isDefault","_Control","_this","_len","arguments","length","args","Array","_key","this","_proto","onBeforeRendering","getTabsModel","oFilterControl","_getFilterControl","setCountsOutDated","oFilterBarAPI","getParent","getAllInnerControls","oMacroAPI","_oMacroAPI$suspendBin","showCounts","attachEvent","_refreshTabsCount","suspendBinding","_onSearch","_onFilterChanged","onAfterRendering","_this$getSelectedInne","_this$getSelectedInne2","getSelectedInnerControl","resumeBinding","getProperty","render","oRm","oControl","renderControl","content","sTabsModel","oContent","oModel","getModel","setModel","_this$content","oSelectedTab","getItems","find","oItem","getKey","getSelectedKey","_getTabFromInnerControl","handleTabChange","oEvent","_oMultiControl$_getVi","_oMultiControl$_getVi2","oIconTabBar","getSource","oMultiControl","mParameters","getParameters","_setInnerBinding","sPreviousSelectedKey","previousKey","sSelectedKey","selectedKey","oFilterBar","_refreshCustomView","getFilterConditions","add","changes","changeSpecificData","changeType","previousSelectedKey","selectorElement","_getViewController","getExtensionAPI","updateAppState","fireEvent","iconTabBar","invalidateContent","_oMacroAPI$invalidate","bValue","setProperty","setFreezeContent","_updateMultiTabNotApplicableFields","tabsModel","results","oTab","_oMacroAPI$refreshNot","sTabId","mIgnoredFields","refreshNotApplicableFields","notApplicable","fields","title","_setTabMessageStrip","entityTypePath","data","ignoredFields","getText","isA","checkNonFilterableEntitySet","setData","_MetaModelConverter$g","_MetaModelConverter$g2","_MetaModelConverter$g3","_MetaModelConverter$g4","_MetaModelConverter$g5","resourceModel","oChart","getContent","bEntitySetFilerable","getInvolvedDataModelObjects","getMetaModel","getContext","targetObject","annotations","Capabilities","FilterRestrictions","Filterable","indexOf","bOnlyForVisibleTab","innerControls","aInnerControls","sInnerControl","byId","push","filter","oInnerControl","_this$_getTabFromInne","getVisible","filterControl","sSupportedClass","getMetadata","getName","oView","getTargetView","getController","oFilterConditions","sRefreshCause","_this$_getViewControl","_this$_getViewControl2","onViewNeedsRefresh","filterConditions","currentTabId","refreshCause","tableEvent","_this$_getTabFromInne2","_this$content2","eventMacroAPI","targetKey","oIconTabFilter","getCounts","countsOutDated","setCount","then","iCount","catch","oError","error","bRequestIfNotInitialized","_oMacroAPI$sAction","bIsSelectedKey","sAction","Resume","Suspend","properties","sText","aIgnoredFields","isArray","aIgnoredLabels","getLabels","getLocalizedText","getParameter"],"sources":["MultipleModeControl-dbg.js"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type ResourceBundle from "sap/base/i18n/ResourceBundle";
2
1
  import Log from "sap/base/Log";
3
2
  import CommonUtils from "sap/fe/core/CommonUtils";
4
3
  import type FilterBar from "sap/fe/core/controls/FilterBar";
4
+ import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
5
5
  import { aggregation, association, defineUI5Class, event, property } from "sap/fe/core/helpers/ClassSupport";
6
6
  import MessageStrip from "sap/fe/core/helpers/MessageStrip";
7
+ import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
7
8
  import DelegateUtil from "sap/fe/macros/DelegateUtil";
8
9
  import MacroAPI from "sap/fe/macros/MacroAPI";
9
10
  import IconTabBar from "sap/m/IconTabBar";
@@ -23,12 +24,12 @@ export type InnerControlType = MacroAPI &
23
24
  getCounts: Function;
24
25
  refreshNotApplicableFields: Function;
25
26
  invalidateContent: Function;
27
+ getContent: Function;
26
28
  }>;
27
29
 
28
30
  type MessageStripProperties = {
29
31
  entityTypePath: string;
30
32
  ignoredFields: any[];
31
- resourceBundle: ResourceBundle;
32
33
  title: string;
33
34
  };
34
35
 
@@ -207,9 +208,8 @@ class MultipleModeControl extends Control {
207
208
  /**
208
209
  * 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.
209
210
  *
210
- * @param oResourceBundle
211
211
  */
212
- _updateMultiTabNotApplicableFields(oResourceBundle: ResourceBundle) {
212
+ _updateMultiTabNotApplicableFields() {
213
213
  const tabsModel = this.getTabsModel();
214
214
  const oFilterControl = this._getFilterControl() as Control;
215
215
  if (tabsModel && oFilterControl) {
@@ -225,17 +225,48 @@ class MultipleModeControl extends Control {
225
225
  title: this._setTabMessageStrip({
226
226
  entityTypePath: oFilterControl.data("entityType"),
227
227
  ignoredFields: mIgnoredFields,
228
- resourceBundle: oResourceBundle,
229
228
  title: oTab.getText()
230
229
  })
231
230
  }
232
231
  };
232
+ if (oMacroAPI && oMacroAPI.isA("sap.fe.macros.chart.ChartAPI")) {
233
+ results[sTabId] = this.checkNonFilterableEntitySet(oMacroAPI, sTabId, results);
234
+ }
233
235
  }
234
236
  });
235
237
  (tabsModel as any).setData(results);
236
238
  }
237
239
  }
238
240
 
241
+ /**
242
+ * Modifies the messagestrip message based on entity set is filerable or not.
243
+ *
244
+ * @param {InnerControlType} oMacroAPI Macro chart api
245
+ * @param {string} sTabId Tab key ID
246
+ * @param {object} results Should contain fields and title
247
+ * @returns {object} An object of modified fields and title
248
+ */
249
+ checkNonFilterableEntitySet(oMacroAPI: InnerControlType, sTabId: string, results: any) {
250
+ const resourceModel = getResourceModel(oMacroAPI);
251
+ const oChart = oMacroAPI?.getContent ? oMacroAPI.getContent() : undefined;
252
+ const bEntitySetFilerable =
253
+ oChart &&
254
+ MetaModelConverter.getInvolvedDataModelObjects(
255
+ oChart
256
+ .getModel()
257
+ .getMetaModel()
258
+ .getContext(`${oChart.data("targetCollectionPath")}`)
259
+ )?.targetObject?.annotations?.Capabilities?.FilterRestrictions?.Filterable;
260
+ if (bEntitySetFilerable !== undefined && !bEntitySetFilerable) {
261
+ if (results[sTabId].notApplicable.fields.indexOf("$search") > -1) {
262
+ results[sTabId].notApplicable.title += " " + resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
263
+ } else {
264
+ results[sTabId].notApplicable.fields = ["nonFilterable"];
265
+ results[sTabId].notApplicable.title = resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
266
+ }
267
+ }
268
+ return results[sTabId];
269
+ }
239
270
  /**
240
271
  * Gets the inner controls.
241
272
  *
@@ -328,7 +359,7 @@ class MultipleModeControl extends Control {
328
359
  aIgnoredFields,
329
360
  properties.entityTypePath,
330
361
  oFilterControl,
331
- properties.resourceBundle
362
+ getResourceModel(oFilterControl)
332
363
  );
333
364
  sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
334
365
  return sText;
@@ -339,7 +370,7 @@ class MultipleModeControl extends Control {
339
370
  this.setCountsOutDated(true);
340
371
  this.setFreezeContent(false);
341
372
  if (this.getSelectedInnerControl()) {
342
- this._updateMultiTabNotApplicableFields((this._getViewController() as any)?.oResourceBundle);
373
+ this._updateMultiTabNotApplicableFields();
343
374
  } else {
344
375
  // custom tab
345
376
  this._refreshCustomView(oEvent.getParameter("conditions"), "search");
@@ -4,7 +4,7 @@
4
4
  "id": "sap.fe.templates.ListReport",
5
5
  "type": "component",
6
6
  "applicationVersion": {
7
- "version": "1.111.1"
7
+ "version": "1.112.0"
8
8
  },
9
9
  "title": "List Report",
10
10
  "tags": {