@sapui5/sap.fe.macros 1.139.0 → 1.140.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Field.js +65 -55
- package/src/sap/fe/macros/Field.ts +83 -57
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +4 -1
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +1 -3
- package/src/sap/fe/macros/MultiValueField.tsx +0 -2
- package/src/sap/fe/macros/Share.js +14 -2
- package/src/sap/fe/macros/Share.tsx +13 -0
- package/src/sap/fe/macros/Status.js +226 -0
- package/src/sap/fe/macros/Status.tsx +192 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -28
- package/src/sap/fe/macros/ValueHelp.tsx +2 -42
- package/src/sap/fe/macros/ai/EasyFilterBar.js +105 -96
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +122 -103
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +2 -4
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +1 -4
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +28 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
- package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
- package/src/sap/fe/macros/form/FormDelegate.js +20 -1
- package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/FilterField.block.js +7 -1
- package/src/sap/fe/macros/internal/FilterField.block.ts +8 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +3 -3
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +2 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +1 -0
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/messagebundle.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ar.properties +7 -1
- package/src/sap/fe/macros/messagebundle_bg.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ca.properties +10 -4
- package/src/sap/fe/macros/messagebundle_cnr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_cs.properties +6 -0
- package/src/sap/fe/macros/messagebundle_cy.properties +8 -2
- package/src/sap/fe/macros/messagebundle_da.properties +7 -1
- package/src/sap/fe/macros/messagebundle_de.properties +13 -7
- package/src/sap/fe/macros/messagebundle_el.properties +6 -0
- package/src/sap/fe/macros/messagebundle_en.properties +10 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +8 -2
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +10 -4
- package/src/sap/fe/macros/messagebundle_es.properties +8 -2
- package/src/sap/fe/macros/messagebundle_es_MX.properties +10 -4
- package/src/sap/fe/macros/messagebundle_et.properties +8 -2
- package/src/sap/fe/macros/messagebundle_fi.properties +6 -0
- package/src/sap/fe/macros/messagebundle_fr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hi.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hu.properties +6 -0
- package/src/sap/fe/macros/messagebundle_id.properties +10 -4
- package/src/sap/fe/macros/messagebundle_it.properties +6 -0
- package/src/sap/fe/macros/messagebundle_iw.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ja.properties +8 -2
- package/src/sap/fe/macros/messagebundle_kk.properties +10 -4
- package/src/sap/fe/macros/messagebundle_ko.properties +6 -0
- package/src/sap/fe/macros/messagebundle_lt.properties +7 -1
- package/src/sap/fe/macros/messagebundle_lv.properties +7 -1
- package/src/sap/fe/macros/messagebundle_mk.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ms.properties +6 -0
- package/src/sap/fe/macros/messagebundle_nl.properties +6 -0
- package/src/sap/fe/macros/messagebundle_no.properties +6 -0
- package/src/sap/fe/macros/messagebundle_pl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pt.properties +6 -0
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +6 -0
- package/src/sap/fe/macros/messagebundle_ro.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ru.properties +9 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sk.properties +6 -0
- package/src/sap/fe/macros/messagebundle_sl.properties +6 -0
- package/src/sap/fe/macros/messagebundle_sr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sv.properties +6 -0
- package/src/sap/fe/macros/messagebundle_th.properties +7 -1
- package/src/sap/fe/macros/messagebundle_tr.properties +6 -0
- package/src/sap/fe/macros/messagebundle_uk.properties +9 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +8 -2
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +6 -0
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +7 -1
- package/src/sap/fe/macros/messages/MessageButton.js +39 -18
- package/src/sap/fe/macros/messages/MessageButton.ts +40 -17
- package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +3 -1
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +6 -2
- package/src/sap/fe/macros/table/TableHelper.js +1 -2
- package/src/sap/fe/macros/table/TableHelper.ts +0 -1
- package/src/sap/fe/macros/table/TableRuntime.js +24 -5
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
- package/src/sap/fe/macros/table/Utils.js +6 -2
- package/src/sap/fe/macros/table/Utils.ts +5 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +5 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +10 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +17 -0
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +1 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +0 -1
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
|
@@ -96,6 +96,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
|
|
|
96
96
|
* Source annotation path of the property.
|
|
97
97
|
*/
|
|
98
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Tooltip content from @Common.QuickInfo annotation
|
|
101
|
+
*/
|
|
102
|
+
|
|
99
103
|
/**
|
|
100
104
|
* Label for filterfield.
|
|
101
105
|
*/
|
|
@@ -206,6 +210,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
|
|
|
206
210
|
_this.controlId = _this.idPrefix && generate([_this.idPrefix, originalPropertyName]);
|
|
207
211
|
_this.sourcePath = getTargetObjectPath(dataModelPath);
|
|
208
212
|
_this.documentRefText = dataModelPath.targetObject?.annotations.Common?.DocumentationRef?.toString();
|
|
213
|
+
_this.tooltip = propertyConverted?.annotations?.Common?.QuickInfo?.toString();
|
|
209
214
|
_this.dataType = getDataType(propertyConvertedExternalId || propertyConverted); // data type for LR-FilterBar condition of the value help
|
|
210
215
|
const labelTerm = propertyConverted?.annotations?.Common?.Label;
|
|
211
216
|
const labelExpression = labelTerm?.toString() ?? constant(propertyName);
|
|
@@ -339,6 +344,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
|
|
|
339
344
|
required="${this.required}"
|
|
340
345
|
operators="${this.operators}"
|
|
341
346
|
placeholder="${this.placeholder}"
|
|
347
|
+
${this.attr("tooltip", this.tooltip)}
|
|
342
348
|
${this.attr("editMode", this.editMode)}
|
|
343
349
|
>
|
|
344
350
|
${companionTextAvailable ? xml`
|
|
@@ -407,4 +413,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
|
|
|
407
413
|
_exports = FilterFieldBlock;
|
|
408
414
|
return _exports;
|
|
409
415
|
}, false);
|
|
410
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJGaWVsZEJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiX2RlYzIiLCJibG9ja0F0dHJpYnV0ZSIsInR5cGUiLCJyZXF1aXJlZCIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tUZW1wbGF0IiwicHJvcHMiLCJjb25maWd1cmF0aW9uIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwicHJvcGVydHlDb252ZXJ0ZWQiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsInByb3BlcnR5IiwiZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIiwicHJvcGVydHlFeHRlcm5hbElkIiwiZ2V0TW9kZWwiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImdldFBhdGgiLCJyZXBsYWNlIiwicHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIiwidW5kZWZpbmVkIiwiZGF0YU1vZGVsUGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsImNvbnRleHRQYXRoIiwicHJvcGVydHlOYW1lIiwib3JpZ2luYWxQcm9wZXJ0eU5hbWUiLCJmaXhlZFZhbHVlcyIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIiwiY29udHJvbElkIiwiaWRQcmVmaXgiLCJnZW5lcmF0ZSIsInNvdXJjZVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiZG9jdW1lbnRSZWZUZXh0IiwidGFyZ2V0T2JqZWN0IiwiRG9jdW1lbnRhdGlvblJlZiIsInRvU3RyaW5nIiwiZGF0YVR5cGUiLCJnZXREYXRhVHlwZSIsImxhYmVsVGVybSIsIkxhYmVsIiwibGFiZWxFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJsYWJlbCIsImNvbXBpbGVFeHByZXNzaW9uIiwiY29uZGl0aW9uc0JpbmRpbmciLCJnZXRDb25kaXRpb25zQmluZGluZyIsInBsYWNlaG9sZGVyIiwiZ2V0UGxhY2Vob2xkZXIiLCJwcm9wZXJ0eUtleSIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJ2ZkVuYWJsZWQiLCJ2aXN1YWxGaWx0ZXIiLCJpbmNsdWRlcyIsInZmSWQiLCJ2ZlJ1bnRpbWVJZCIsInByb3BlcnR5Q29udGV4dCIsIm1vZGVsIiwidmhQcm9wZXJ0eVBhdGgiLCJGaWVsZEhlbHBlciIsInZhbHVlSGVscFByb3BlcnR5Rm9yRmlsdGVyRmllbGQiLCJmaWx0ZXJhYmxlIiwiQ29tbW9uSGVscGVyIiwiaXNQcm9wZXJ0eUZpbHRlcmFibGUiLCJwcm9wZXJ0eU9iamVjdCIsImdldE9iamVjdCIsInByb3BlcnR5SW50ZXJmYWNlIiwiY29udGV4dCIsImRpc3BsYXkiLCJnZXRGaWx0ZXJGaWVsZERpc3BsYXlGb3JtYXQiLCJpc0ZpbHRlcmFibGUiLCJtYXhDb25kaXRpb25zIiwiZ2V0TWF4Q29uZGl0aW9ucyIsImRhdGFUeXBlQ29uc3RyYWludHMiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJpc1JlcXVpcmVkSW5GaWx0ZXIiLCJvcGVyYXRvcnMiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsIkV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiYWRkRXh0ZW5kZWRGaWx0ZXJPcGVyYXRvcnMiLCJzcGxpdCIsInZoUHJvcGVydHkiLCJ2aFByb3BlcnR5T2JqZWN0IiwidmhQcm9wZXJ0eUludGVyZmFjZSIsInJlbGF0aXZlVmhQcm9wZXJ0eVBhdGgiLCJnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aCIsInJlbGF0aXZlUHJvcGVydHlQYXRoIiwidmFsdWVIZWxwUHJvcGVydHkiLCJnZXRWYWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkIiwiJFR5cGUiLCJ2aElkUHJlZml4IiwidGFyZ2V0RW50aXR5VHlwZSIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRWaXN1YWxGaWx0ZXJDb250ZW50IiwidmlzdWFsRmlsdGVyT2JqZWN0IiwidmZYTUwiLCJpc0EiLCJTQVBfVUlfTU9ERUxfQ09OVEVYVCIsInByZXNlbnRhdGlvbkFubm90YXRpb24iLCJvdXRQYXJhbWV0ZXIiLCJpblBhcmFtZXRlcnMiLCJ2YWx1ZWxpc3RQcm9wZXJ0eSIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwic2hvd092ZXJsYXlJbml0aWFsbHkiLCJyZW5kZXJMaW5lQ2hhcnQiLCJpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyIsImluaXRpYWxDaGFydEJpbmRpbmdFbmFibGVkIiwieG1sIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsImdldFRlbXBsYXRlIiwieG1sUmV0IiwiY29tcGFuaW9uVGV4dEF2YWlsYWJsZSIsImZvcm1hdHRlZFJlc3VsdCIsImZvcm1hdFJlc3VsdCIsImRhdGFNb2RlbFBhdGhFeHRlcm5hbElkIiwiZ2V0RGlzcGxheU1vZGUiLCJlcnIiLCJMb2ciLCJlcnJvciIsImF0dHIiLCJlZGl0TW9kZSIsIkJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyRmllbGQuYmxvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgY29uc3RhbnQsIGZvcm1hdFJlc3VsdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBibG9ja0F0dHJpYnV0ZSwgZGVmaW5lQnVpbGRpbmdCbG9jayB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IFNBUF9VSV9NT0RFTF9DT05URVhULCB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBnZXRNYXhDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBWaXN1YWxGaWx0ZXJzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9WaXN1YWxGaWx0ZXJzXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQge1xuXHRnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLFxuXHRnZXRUYXJnZXRPYmplY3RQYXRoLFxuXHR0eXBlIERhdGFNb2RlbE9iamVjdFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGdldERpc3BsYXlNb2RlLCB0eXBlIENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSwgdHlwZSBNZXRhTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQge1xuXHRjb25zdHJhaW50cyxcblx0Zm9ybWF0T3B0aW9ucyxcblx0Z2V0Q29uZGl0aW9uc0JpbmRpbmcsXG5cdGdldERhdGFUeXBlLFxuXHRnZXRQbGFjZWhvbGRlcixcblx0aXNSZXF1aXJlZEluRmlsdGVyXG59IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyRmllbGREaXNwbGF5Rm9ybWF0IH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlckZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IEV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9FeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01ldGFNb2RlbFwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIGZvciBjcmVhdGluZyBhIEZpbHRlciBGaWVsZCBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBJdCBpcyBkZXNpZ25lZCB0byB3b3JrIGJhc2VkIG9uIGEgcHJvcGVydHkgY29udGV4dChwcm9wZXJ0eSkgcG9pbnRpbmcgdG8gYW4gZW50aXR5IHR5cGUgcHJvcGVydHlcbiAqIG5lZWRlZCB0byBiZSB1c2VkIGFzIGZpbHRlcmZpZWxkIGFuZCBlbnRpdHlUeXBlIGNvbnRleHQoY29udGV4dFBhdGgpIHRvIGNvbnNpZGVyIHRoZSByZWxhdGl2aXR5IG9mXG4gKiB0aGUgcHJvcGVydHlQYXRoIG9mIHRoZSBwcm9wZXJ0eSB3cnQgZW50aXR5VHlwZS5cbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNyb3M6RmlsdGVyRmllbGQgaWQ9XCJNeUZpbHRlckZpZWxkXCIgcHJvcGVydHk9XCJDb21wYW55TmFtZVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJGaWx0ZXJGaWVsZFwiLFxuXHRuYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyRmllbGRCbG9jayBleHRlbmRzIEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSB7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBtZXRhZGF0YSBwYXRoIHRvIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHByb3BlcnR5ITogQ29udGV4dDtcblxuXHQvKipcblx0ICogTWV0YWRhdGEgcGF0aCB0byB0aGUgZW50aXR5U2V0IG9yIG5hdmlnYXRpb25Qcm9wZXJ0eVxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0Y29udGV4dFBhdGghOiBDb250ZXh0O1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgZmlsdGVyIHNldHRpbmdzIGZvciBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHR2aXN1YWxGaWx0ZXI/OiBDb250ZXh0IHwgVmlzdWFsRmlsdGVycztcblxuXHQvKipcblx0ICogQSBwcmVmaXggdGhhdCBpcyBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIElEIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0aWRQcmVmaXggPSBcIkZpbHRlckZpZWxkXCI7XG5cblx0LyoqXG5cdCAqIEEgcHJlZml4IHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBJRCBvZiB0aGUgdmFsdWUgaGVscCB1c2VkIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHZoSWRQcmVmaXggPSBcIkZpbHRlckZpZWxkVmFsdWVIZWxwXCI7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgU2VtYXRpYyBEYXRlIFJhbmdlIG9wdGlvbiBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2UgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBTZXR0aW5ncyBmcm9tIHRoZSBtYW5pZmVzdC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRzZXR0aW5ncyA9IFwiXCI7XG5cblx0LyoqXG5cdCAqIFNwZWZpY2llcyB0aGUgZW5hYmxlbWVudCBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiBmYWxzZVxuXHR9KVxuXHRlZGl0TW9kZT86IHN0cmluZztcblxuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICogICAgICAgICAgICBJTlRFUk5BTCBBVFRSSUJVVEVTICAgICAgICAgICAgICAqXG5cdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdC8qKlxuXHQgKiBDb250cm9sIElkIGZvciBNREMgZmlsdGVyIGZpZWxkIHVzZWQgaW5zaWRlLlxuXHQgKi9cblx0Y29udHJvbElkITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBrZXkgZm9yIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdHByb3BlcnR5S2V5ITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTb3VyY2UgYW5ub3RhdGlvbiBwYXRoIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdHNvdXJjZVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFNvdXJjZSBhbm5vdGF0aW9uIHBhdGggb2YgdGhlIHByb3BlcnR5LlxuXHQgKi9cblx0ZG9jdW1lbnRSZWZUZXh0Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBMYWJlbCBmb3IgZmlsdGVyZmllbGQuXG5cdCAqL1xuXHRsYWJlbCE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGF0YSBUeXBlIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZSE6IHN0cmluZztcblxuXHQvKipcblx0ICogTWF4aW11bSBjb25kaXRpb25zIHRoYXQgY2FuIGJlIGFkZGVkIHRvIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRtYXhDb25kaXRpb25zITogbnVtYmVyO1xuXG5cdC8qKlxuXHQgKiBWYWx1ZSBIZWxwIGlkIGFzIGFzc29jaWF0aW9uIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0dmFsdWVIZWxwUHJvcGVydHk/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEJpbmRpbmcgcGF0aCBmb3IgY29uZGl0aW9ucyBhZGRlZCB0byBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRjb25kaXRpb25zQmluZGluZyE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGF0YXR5cGUgY29uc3RyYWludHMgb2YgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdGRhdGFUeXBlQ29uc3RyYWludHM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGF0eXBlIGZvcm1hdCBvcHRpb25zIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFRvIHNwZWNpZnkgZmlsdGVyIGZpZWxkIGlzIG1hbmRhdG9yeSBmb3IgZmlsdGVyaW5nLlxuXHQgKi9cblx0cmVxdWlyZWQhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBWYWxpZCBvcGVyYXRvcnMgZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRvcGVyYXRvcnM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFZpc3VhbCBGaWx0ZXIgaWQgdG8gYmUgdXNlZC5cblx0ICovXG5cdHZmSWQ/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFZpc3VhbCBGaWx0ZXIgYnVpbGRpbmcgYmxvY2sgaWQgdG8gYmUgdXNlZC5cblx0ICovXG5cdHZmUnVudGltZUlkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGlzIGV4cGVjdGVkLlxuXHQgKi9cblx0dmZFbmFibGVkITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogUHJvcGVydHkgdXNlZCBpcyBmaWx0ZXJhYmxlXG5cdCAqL1xuXHRpc0ZpbHRlcmFibGUhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBmb3IgcGxhY2Vob2xkZXJcblx0ICovXG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSB0byBob2xkIHByb21pc2UgZm9yIGRpc3BsYXlcblx0ICovXG5cdGRpc3BsYXk/OiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG5cblx0cHJvcGVydHlFeHRlcm5hbElkPzogQ29udGV4dDtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZpbHRlckZpZWxkQmxvY2s+LCBjb25maWd1cmF0aW9uOiB1bmtub3duLCBzZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BzLCBjb25maWd1cmF0aW9uLCBzZXR0aW5ncyk7XG5cblx0XHRjb25zdCBwcm9wZXJ0eUNvbnZlcnRlZCA9IE1ldGFNb2RlbENvbnZlcnRlci5jb252ZXJ0TWV0YU1vZGVsQ29udGV4dCh0aGlzLnByb3BlcnR5KSBhcyBQcm9wZXJ0eTtcblxuXHRcdGNvbnN0IGV4dGVybmFsSWRQcm9wZXJ0eVBhdGggPSBnZXRBc3NvY2lhdGVkRXh0ZXJuYWxJZFByb3BlcnR5UGF0aChwcm9wZXJ0eUNvbnZlcnRlZCkgYXMgc3RyaW5nO1xuXHRcdGlmIChleHRlcm5hbElkUHJvcGVydHlQYXRoKSB7XG5cdFx0XHR0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZCA9IHRoaXMucHJvcGVydHlcblx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0LmNyZWF0ZUJpbmRpbmdDb250ZXh0KHRoaXMucHJvcGVydHkuZ2V0UGF0aCgpLnJlcGxhY2UocHJvcGVydHlDb252ZXJ0ZWQubmFtZSwgZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCksIHRoaXMucHJvcGVydHkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb3BlcnR5Q29udmVydGVkRXh0ZXJuYWxJZCA9IHRoaXMucHJvcGVydHlFeHRlcm5hbElkXG5cdFx0XHQ/IChNZXRhTW9kZWxDb252ZXJ0ZXIuY29udmVydE1ldGFNb2RlbENvbnRleHQodGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQpIGFzIFByb3BlcnR5KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cblx0XHRjb25zdCBkYXRhTW9kZWxQYXRoID0gTWV0YU1vZGVsQ29udmVydGVyLmdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0czxQcm9wZXJ0eT4odGhpcy5wcm9wZXJ0eSwgdGhpcy5jb250ZXh0UGF0aCk7XG5cblx0XHQvLyBQcm9wZXJ0eSBzZXR0aW5nc1xuXHRcdGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5Q29udmVydGVkLm5hbWUsXG5cdFx0XHRvcmlnaW5hbFByb3BlcnR5TmFtZSA9IHByb3BlcnR5Q29udmVydGVkLm5hbWUsXG5cdFx0XHRmaXhlZFZhbHVlcyA9XG5cdFx0XHRcdCEhcHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMgfHxcblx0XHRcdFx0ISFwcm9wZXJ0eUNvbnZlcnRlZC5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM7XG5cblx0XHR0aGlzLmNvbnRyb2xJZCA9IHRoaXMuaWRQcmVmaXggJiYgZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIG9yaWdpbmFsUHJvcGVydHlOYW1lXSk7XG5cdFx0dGhpcy5zb3VyY2VQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxQYXRoKTtcblxuXHRcdHR5cGUgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb25fZXh0ZW5kZWQgPSBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbiAmIHsgRG9jdW1lbnRhdGlvblJlZj86IHN0cmluZyB9O1xuXHRcdHRoaXMuZG9jdW1lbnRSZWZUZXh0ID0gKFxuXHRcdFx0ZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q/LmFubm90YXRpb25zLkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbl9leHRlbmRlZFxuXHRcdCk/LkRvY3VtZW50YXRpb25SZWY/LnRvU3RyaW5nKCk7XG5cblx0XHR0aGlzLmRhdGFUeXBlID0gZ2V0RGF0YVR5cGUocHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIHx8IHByb3BlcnR5Q29udmVydGVkKTsgLy8gZGF0YSB0eXBlIGZvciBMUi1GaWx0ZXJCYXIgY29uZGl0aW9uIG9mIHRoZSB2YWx1ZSBoZWxwXG5cdFx0Y29uc3QgbGFiZWxUZXJtID0gcHJvcGVydHlDb252ZXJ0ZWQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsO1xuXHRcdGNvbnN0IGxhYmVsRXhwcmVzc2lvbiA9IGxhYmVsVGVybT8udG9TdHJpbmcoKSA/PyBjb25zdGFudChwcm9wZXJ0eU5hbWUpO1xuXHRcdHRoaXMubGFiZWwgPSBjb21waWxlRXhwcmVzc2lvbihsYWJlbEV4cHJlc3Npb24pIHx8IHByb3BlcnR5TmFtZTtcblx0XHR0aGlzLmNvbmRpdGlvbnNCaW5kaW5nID0gZ2V0Q29uZGl0aW9uc0JpbmRpbmcoZGF0YU1vZGVsUGF0aCkgfHwgXCJcIjtcblx0XHR0aGlzLnBsYWNlaG9sZGVyID0gZ2V0UGxhY2Vob2xkZXIocHJvcGVydHlDb252ZXJ0ZWQpO1xuXHRcdHRoaXMucHJvcGVydHlLZXkgPSBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKGRhdGFNb2RlbFBhdGgsIGZhbHNlLCB0cnVlKSB8fCBwcm9wZXJ0eU5hbWU7XG5cdFx0Ly8gVmlzdWFsIEZpbHRlciBzZXR0aW5nc1xuXHRcdHRoaXMudmZFbmFibGVkID0gISF0aGlzLnZpc3VhbEZpbHRlciAmJiAhKHRoaXMuaWRQcmVmaXggJiYgdGhpcy5pZFByZWZpeC5pbmNsdWRlcyhcIkFkYXB0YXRpb25cIikpO1xuXHRcdHRoaXMudmZJZCA9IHRoaXMudmZFbmFibGVkID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIHByb3BlcnR5TmFtZSwgXCJWaXN1YWxGaWx0ZXJcIl0pIDogdW5kZWZpbmVkO1xuXHRcdHRoaXMudmZSdW50aW1lSWQgPSB0aGlzLnZmRW5hYmxlZCA/IGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBwcm9wZXJ0eU5hbWUsIFwiVmlzdWFsRmlsdGVyQ29udGFpbmVyXCJdKSA6IHVuZGVmaW5lZDtcblxuXHRcdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuXHRcdC8vIFRPRE86IG5lZWQgdG8gY2hhbmdlIG9wZXJhdGlvbnMgZnJvbSBNZXRhTW9kZWwgdG8gQ29udmVydGVycy5cblx0XHQvLyBUaGlzIG1haW5seSBpbmNsdWRlZCBjaGFuZ2luZyBjaGFuZ2luZyBnZXRGaWx0ZXJSZXN0cmljdGlvbnMgb3BlcmF0aW9ucyBmcm9tIG1ldGFNb2RlbCB0byBjb252ZXJ0ZXJzXG5cdFx0Y29uc3QgcHJvcGVydHlDb250ZXh0ID0gdGhpcy5wcm9wZXJ0eSxcblx0XHRcdG1vZGVsOiBNZXRhTW9kZWwgPSBwcm9wZXJ0eUNvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRcdHZoUHJvcGVydHlQYXRoOiBzdHJpbmcgPSBGaWVsZEhlbHBlci52YWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkKHByb3BlcnR5Q29udGV4dCksXG5cdFx0XHRmaWx0ZXJhYmxlID0gQ29tbW9uSGVscGVyLmlzUHJvcGVydHlGaWx0ZXJhYmxlKHByb3BlcnR5Q29udGV4dCksXG5cdFx0XHRwcm9wZXJ0eU9iamVjdCA9IHByb3BlcnR5Q29udGV4dC5nZXRPYmplY3QoKSxcblx0XHRcdHByb3BlcnR5SW50ZXJmYWNlID0geyBjb250ZXh0OiBwcm9wZXJ0eUNvbnRleHQgfSBhcyBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2U7XG5cblx0XHR0aGlzLmRpc3BsYXkgPSBnZXRGaWx0ZXJGaWVsZERpc3BsYXlGb3JtYXQoZGF0YU1vZGVsUGF0aCwgcHJvcGVydHlDb252ZXJ0ZWQsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLmlzRmlsdGVyYWJsZSA9ICEoZmlsdGVyYWJsZSA9PT0gZmFsc2UgfHwgZmlsdGVyYWJsZSA9PT0gXCJmYWxzZVwiKTtcblx0XHR0aGlzLm1heENvbmRpdGlvbnMgPSBnZXRNYXhDb25kaXRpb25zKGRhdGFNb2RlbFBhdGgpO1xuXHRcdHRoaXMuZGF0YVR5cGVDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5kYXRhVHlwZUZvcm1hdE9wdGlvbnMgPSBmb3JtYXRPcHRpb25zKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5yZXF1aXJlZCA9IGlzUmVxdWlyZWRJbkZpbHRlcihwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMub3BlcmF0b3JzID0gRmllbGRIZWxwZXIub3BlcmF0b3JzKFxuXHRcdFx0cHJvcGVydHlDb250ZXh0LFxuXHRcdFx0cHJvcGVydHlPYmplY3QsXG5cdFx0XHR0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlLFxuXHRcdFx0dGhpcy5zZXR0aW5ncyB8fCBcIlwiLFxuXHRcdFx0dGhpcy5jb250ZXh0UGF0aC5nZXRQYXRoKClcblx0XHQpO1xuXHRcdGlmICh0aGlzLm9wZXJhdG9ycykge1xuXHRcdFx0Ly8gRXh0ZW5kZWQgb3BlcmF0b3JzIGFyZSBub3QgYWRkZWQgYnkgZGVmYXVsdC5cblx0XHRcdC8vIFdlIGFkZCB0aGVtIHRvIE1EQyBmaWx0ZXIgZW52aXJvbm1lbnQuXG5cdFx0XHRFeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9ycy5hZGRFeHRlbmRlZEZpbHRlck9wZXJhdG9ycyh0aGlzLm9wZXJhdG9ycy5zcGxpdChcIixcIikpO1xuXHRcdH1cblx0XHQvLyBWYWx1ZSBIZWxwIHNldHRpbmdzXG5cdFx0Ly8gVE9ETzogVGhpcyBuZWVkcyB0byBiZSB1cGRhdGVkIHdoZW4gVkggbWFjcm8gaXMgY29udmVydGVkIHRvIDIuMFxuXHRcdGNvbnN0IHZoUHJvcGVydHkgPSBtb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh2aFByb3BlcnR5UGF0aCkgYXMgQ29udGV4dDtcblx0XHRjb25zdCB2aFByb3BlcnR5T2JqZWN0ID0gdmhQcm9wZXJ0eS5nZXRPYmplY3QoKSBhcyBNZXRhTW9kZWxDb250ZXh0LFxuXHRcdFx0dmhQcm9wZXJ0eUludGVyZmFjZSA9IHsgY29udGV4dDogdmhQcm9wZXJ0eSB9LFxuXHRcdFx0cmVsYXRpdmVWaFByb3BlcnR5UGF0aCA9IGdldFJlbGF0aXZlUHJvcGVydHlQYXRoKHZoUHJvcGVydHlPYmplY3QsIHZoUHJvcGVydHlJbnRlcmZhY2UpLFxuXHRcdFx0cmVsYXRpdmVQcm9wZXJ0eVBhdGggPSBnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aChwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMudmFsdWVIZWxwUHJvcGVydHkgPSBGaWVsZEhlbHBlci5nZXRWYWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkKFxuXHRcdFx0cHJvcGVydHlDb250ZXh0LFxuXHRcdFx0cHJvcGVydHlPYmplY3QsXG5cdFx0XHRwcm9wZXJ0eU9iamVjdC4kVHlwZSxcblx0XHRcdHRoaXMudmhJZFByZWZpeCxcblx0XHRcdGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5uYW1lLFxuXHRcdFx0cmVsYXRpdmVQcm9wZXJ0eVBhdGgsXG5cdFx0XHRyZWxhdGl2ZVZoUHJvcGVydHlQYXRoLFxuXHRcdFx0Zml4ZWRWYWx1ZXMsXG5cdFx0XHR0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlXG5cdFx0KTtcblxuXHRcdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuXHR9XG5cblx0Z2V0VmlzdWFsRmlsdGVyQ29udGVudCgpOiBzdHJpbmcge1xuXHRcdGxldCB2aXN1YWxGaWx0ZXJPYmplY3QgPSB0aGlzLnZpc3VhbEZpbHRlcixcblx0XHRcdHZmWE1MID0gXCJcIjtcblx0XHRpZiAoIXRoaXMudmZFbmFibGVkIHx8ICF2aXN1YWxGaWx0ZXJPYmplY3QpIHtcblx0XHRcdHJldHVybiB2ZlhNTDtcblx0XHR9XG5cdFx0aWYgKCh2aXN1YWxGaWx0ZXJPYmplY3QgYXMgQ29udGV4dCk/LmlzQT8uKFNBUF9VSV9NT0RFTF9DT05URVhUKSkge1xuXHRcdFx0dmlzdWFsRmlsdGVyT2JqZWN0ID0gKHZpc3VhbEZpbHRlck9iamVjdCBhcyBDb250ZXh0KS5nZXRPYmplY3QoKSBhcyBWaXN1YWxGaWx0ZXJzO1xuXHRcdH1cblxuXHRcdGNvbnN0IHtcblx0XHRcdGNvbnRleHRQYXRoLFxuXHRcdFx0cHJlc2VudGF0aW9uQW5ub3RhdGlvbixcblx0XHRcdG91dFBhcmFtZXRlcixcblx0XHRcdGluUGFyYW1ldGVycyxcblx0XHRcdHZhbHVlbGlzdFByb3BlcnR5LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQsXG5cdFx0XHRyZXF1aXJlZCxcblx0XHRcdHJlcXVpcmVkUHJvcGVydGllcyA9IFtdLFxuXHRcdFx0c2hvd092ZXJsYXlJbml0aWFsbHksXG5cdFx0XHRyZW5kZXJMaW5lQ2hhcnQsXG5cdFx0XHRpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyxcblx0XHRcdGluaXRpYWxDaGFydEJpbmRpbmdFbmFibGVkXG5cdFx0fSA9IHZpc3VhbEZpbHRlck9iamVjdCBhcyBWaXN1YWxGaWx0ZXJzO1xuXHRcdHZmWE1MID0geG1sYFxuXHRcdFx0XHQ8dmlzdWFsRmlsdGVyOlZpc3VhbEZpbHRlclxuXHRcdFx0XHQgICAgeG1sbnM6dmlzdWFsRmlsdGVyPSBcInNhcC5mZS5tYWNyb3MudmlzdWFsZmlsdGVyc1wiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMudmZSdW50aW1lSWR9XCJcblx0XHRcdFx0XHRfY29udGVudElkPVwiJHt0aGlzLnZmSWR9XCJcblx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIiR7Y29udGV4dFBhdGh9XCJcblx0XHRcdFx0XHRtZXRhUGF0aD1cIiR7cHJlc2VudGF0aW9uQW5ub3RhdGlvbn1cIlxuXHRcdFx0XHRcdG91dFBhcmFtZXRlcj1cIiR7b3V0UGFyYW1ldGVyfVwiXG5cdFx0XHRcdFx0aW5QYXJhbWV0ZXJzPVwiJHtDb21tb25IZWxwZXIuc3RyaW5naWZ5Q3VzdG9tRGF0YShpblBhcmFtZXRlcnMpfVwiXG5cdFx0XHRcdFx0dmFsdWVsaXN0UHJvcGVydHk9XCIke3ZhbHVlbGlzdFByb3BlcnR5fVwiXG5cdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb249XCIke3NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9ufVwiXG5cdFx0XHRcdFx0bXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkPVwiJHttdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWR9XCJcblx0XHRcdFx0XHRyZXF1aXJlZD1cIiR7cmVxdWlyZWR9XCJcblx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXM9XCIke0NvbW1vbkhlbHBlci5zdHJpbmdpZnlDdXN0b21EYXRhKHJlcXVpcmVkUHJvcGVydGllcyl9XCJcblx0XHRcdFx0XHRzaG93T3ZlcmxheUluaXRpYWxseT1cIiR7c2hvd092ZXJsYXlJbml0aWFsbHl9XCJcblx0XHRcdFx0XHRyZW5kZXJMaW5lQ2hhcnQ9XCIke3JlbmRlckxpbmVDaGFydH1cIlxuXHRcdFx0XHRcdGlzVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzPVwiJHtpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc31cIlxuXHRcdFx0XHRcdGZpbHRlckJhckVudGl0eVR5cGU9XCIke2NvbnRleHRQYXRofVwiXG5cdFx0XHRcdFx0ZW5hYmxlQ2hhcnRCaW5kaW5nPVwiJHtpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0YDtcblxuXHRcdHJldHVybiB2ZlhNTDtcblx0fVxuXG5cdGFzeW5jIGdldFRlbXBsYXRlKCk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0bGV0IHhtbFJldCA9IGBgO1xuXHRcdGlmICh0aGlzLmlzRmlsdGVyYWJsZSkge1xuXHRcdFx0bGV0IGRpc3BsYXk7XG5cdFx0XHRjb25zdCBjb21wYW5pb25UZXh0QXZhaWxhYmxlID0gdGhpcy5kb2N1bWVudFJlZlRleHQgPT09IHVuZGVmaW5lZCB8fCBudWxsID8gZmFsc2UgOiB0cnVlO1xuXHRcdFx0Y29uc3QgZm9ybWF0dGVkUmVzdWx0OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRmb3JtYXRSZXN1bHQoW3RoaXMuZG9jdW1lbnRSZWZUZXh0XSwgXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlN0YW5kYXJkRm9ybWF0dGVyI2FzQXJyYXlcIilcblx0XHRcdCk7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZCA9XG5cdFx0XHRcdFx0dGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQgJiYgTWV0YU1vZGVsQ29udmVydGVyLmdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0XHRcdGRpc3BsYXkgPSBkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZFxuXHRcdFx0XHRcdD8gZ2V0RGlzcGxheU1vZGUoZGF0YU1vZGVsUGF0aEV4dGVybmFsSWQgYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT4pXG5cdFx0XHRcdFx0OiBhd2FpdCB0aGlzLmRpc3BsYXk7XG5cdFx0XHR9IGNhdGNoIChlcnI6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IEZpbHRlckZpZWxkIEJ1aWxkaW5nQmxvY2sgOiBFcnJvciBmZXRjaGluZyBkaXNwbGF5IHByb3BlcnR5IGZvciAke3RoaXMuc291cmNlUGF0aH0gOiAke2Vycn1gKTtcblx0XHRcdH1cblx0XHRcdHhtbFJldCA9IHhtbGBcblx0XHRcdFx0PG1kYzpGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdHhtbG5zOm1kYz1cInNhcC51aS5tZGNcIlxuXHRcdFx0XHRcdHhtbG5zOnRlbXBsYXRlPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLnRlbXBsYXRlLzFcIlxuXHRcdFx0XHRcdHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG5cdFx0XHRcdFx0eG1sbnM6Y3VzdG9tRGF0YT1cImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIlxuXHRcdFx0XHRcdHhtbG5zOmZpZWxkaGVscD1cInNhcC51aS5jb3JlLmZpZWxkaGVscFwiXG5cdFx0XHRcdFx0Y3VzdG9tRGF0YTpzb3VyY2VQYXRoPVwiJHt0aGlzLnNvdXJjZVBhdGh9XCJcblx0XHRcdFx0XHRpZD1cIiR7dGhpcy5jb250cm9sSWR9XCJcblx0XHRcdFx0XHRkZWxlZ2F0ZT1cIntuYW1lOiAnc2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEJhc2VEZWxlZ2F0ZScsIHBheWxvYWQ6e2lzRmlsdGVyRmllbGQ6dHJ1ZX19XCJcblx0XHRcdFx0XHRwcm9wZXJ0eUtleT1cIiR7dGhpcy5wcm9wZXJ0eUtleX1cIlxuXHRcdFx0XHRcdGxhYmVsPVwiJHt0aGlzLmxhYmVsfVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCIke3RoaXMuZGF0YVR5cGV9XCJcblx0XHRcdFx0XHRkaXNwbGF5PVwiJHtkaXNwbGF5fVwiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIiR7dGhpcy5tYXhDb25kaXRpb25zfVwiXG5cdFx0XHRcdFx0dmFsdWVIZWxwPVwiJHt0aGlzLnZhbHVlSGVscFByb3BlcnR5fVwiXG5cdFx0XHRcdFx0Y29uZGl0aW9ucz1cIiR7dGhpcy5jb25kaXRpb25zQmluZGluZ31cIlxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9XCIke3RoaXMuZGF0YVR5cGVDb25zdHJhaW50c31cIlxuXHRcdFx0XHRcdGRhdGFUeXBlRm9ybWF0T3B0aW9ucz1cIiR7dGhpcy5kYXRhVHlwZUZvcm1hdE9wdGlvbnN9XCJcblx0XHRcdFx0XHRyZXF1aXJlZD1cIiR7dGhpcy5yZXF1aXJlZH1cIlxuXHRcdFx0XHRcdG9wZXJhdG9ycz1cIiR7dGhpcy5vcGVyYXRvcnN9XCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIiR7dGhpcy5wbGFjZWhvbGRlcn1cIlxuXHRcdFx0XHRcdCR7dGhpcy5hdHRyKFwiZWRpdE1vZGVcIiwgdGhpcy5lZGl0TW9kZSl9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQke1xuXHRcdFx0XHRcdFx0Y29tcGFuaW9uVGV4dEF2YWlsYWJsZVxuXHRcdFx0XHRcdFx0XHQ/IHhtbGBcblx0XHRcdFx0XHRcdDxtZGM6Y3VzdG9tRGF0YT5cblx0XHRcdFx0XHRcdFx0PGZpZWxkaGVscDpGaWVsZEhlbHBDdXN0b21EYXRhXG5cdFx0XHRcdFx0XHRcdFx0JHt0aGlzLmF0dHIoXCJ2YWx1ZVwiLCBmb3JtYXR0ZWRSZXN1bHQpfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9tZGM6Y3VzdG9tRGF0YT5cblx0XHRcdFx0XHRgXG5cdFx0XHRcdFx0XHRcdDogXCJcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQke3RoaXMudmZFbmFibGVkID8gdGhpcy5nZXRWaXN1YWxGaWx0ZXJDb250ZW50KCkgOiBcIlwifVxuXHRcdFx0XHQ8L21kYzpGaWx0ZXJGaWVsZD5cblx0XHRcdGA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHhtbFJldDtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVpBLElBaUJxQkEsZ0JBQWdCLElBQUFDLElBQUEsR0FKcENDLG1CQUFtQixDQUFDO0lBQ3BCQyxJQUFJLEVBQUUsYUFBYTtJQUNuQkMsU0FBUyxFQUFFO0VBQ1osQ0FBQyxDQUFDLEVBQUFDLEtB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
|
|
416
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJGaWVsZEJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiX2RlYzIiLCJibG9ja0F0dHJpYnV0ZSIsInR5cGUiLCJyZXF1aXJlZCIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tUZW1wbGF0IiwicHJvcHMiLCJjb25maWd1cmF0aW9uIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwicHJvcGVydHlDb252ZXJ0ZWQiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsInByb3BlcnR5IiwiZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIiwicHJvcGVydHlFeHRlcm5hbElkIiwiZ2V0TW9kZWwiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImdldFBhdGgiLCJyZXBsYWNlIiwicHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIiwidW5kZWZpbmVkIiwiZGF0YU1vZGVsUGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsImNvbnRleHRQYXRoIiwicHJvcGVydHlOYW1lIiwib3JpZ2luYWxQcm9wZXJ0eU5hbWUiLCJmaXhlZFZhbHVlcyIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIiwiY29udHJvbElkIiwiaWRQcmVmaXgiLCJnZW5lcmF0ZSIsInNvdXJjZVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiZG9jdW1lbnRSZWZUZXh0IiwidGFyZ2V0T2JqZWN0IiwiRG9jdW1lbnRhdGlvblJlZiIsInRvU3RyaW5nIiwidG9vbHRpcCIsIlF1aWNrSW5mbyIsImRhdGFUeXBlIiwiZ2V0RGF0YVR5cGUiLCJsYWJlbFRlcm0iLCJMYWJlbCIsImxhYmVsRXhwcmVzc2lvbiIsImNvbnN0YW50IiwibGFiZWwiLCJjb21waWxlRXhwcmVzc2lvbiIsImNvbmRpdGlvbnNCaW5kaW5nIiwiZ2V0Q29uZGl0aW9uc0JpbmRpbmciLCJwbGFjZWhvbGRlciIsImdldFBsYWNlaG9sZGVyIiwicHJvcGVydHlLZXkiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwidmZFbmFibGVkIiwidmlzdWFsRmlsdGVyIiwiaW5jbHVkZXMiLCJ2ZklkIiwidmZSdW50aW1lSWQiLCJwcm9wZXJ0eUNvbnRleHQiLCJtb2RlbCIsInZoUHJvcGVydHlQYXRoIiwiRmllbGRIZWxwZXIiLCJ2YWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkIiwiZmlsdGVyYWJsZSIsIkNvbW1vbkhlbHBlciIsImlzUHJvcGVydHlGaWx0ZXJhYmxlIiwicHJvcGVydHlPYmplY3QiLCJnZXRPYmplY3QiLCJwcm9wZXJ0eUludGVyZmFjZSIsImNvbnRleHQiLCJkaXNwbGF5IiwiZ2V0RmlsdGVyRmllbGREaXNwbGF5Rm9ybWF0IiwiaXNGaWx0ZXJhYmxlIiwibWF4Q29uZGl0aW9ucyIsImdldE1heENvbmRpdGlvbnMiLCJkYXRhVHlwZUNvbnN0cmFpbnRzIiwiY29uc3RyYWludHMiLCJkYXRhVHlwZUZvcm1hdE9wdGlvbnMiLCJmb3JtYXRPcHRpb25zIiwiaXNSZXF1aXJlZEluRmlsdGVyIiwib3BlcmF0b3JzIiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJFeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImFkZEV4dGVuZGVkRmlsdGVyT3BlcmF0b3JzIiwic3BsaXQiLCJ2aFByb3BlcnR5IiwidmhQcm9wZXJ0eU9iamVjdCIsInZoUHJvcGVydHlJbnRlcmZhY2UiLCJyZWxhdGl2ZVZoUHJvcGVydHlQYXRoIiwiZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgiLCJyZWxhdGl2ZVByb3BlcnR5UGF0aCIsInZhbHVlSGVscFByb3BlcnR5IiwiZ2V0VmFsdWVIZWxwUHJvcGVydHlGb3JGaWx0ZXJGaWVsZCIsIiRUeXBlIiwidmhJZFByZWZpeCIsInRhcmdldEVudGl0eVR5cGUiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0VmlzdWFsRmlsdGVyQ29udGVudCIsInZpc3VhbEZpbHRlck9iamVjdCIsInZmWE1MIiwiaXNBIiwiU0FQX1VJX01PREVMX0NPTlRFWFQiLCJwcmVzZW50YXRpb25Bbm5vdGF0aW9uIiwib3V0UGFyYW1ldGVyIiwiaW5QYXJhbWV0ZXJzIiwidmFsdWVsaXN0UHJvcGVydHkiLCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsIm11bHRpcGxlU2VsZWN0aW9uQWxsb3dlZCIsInJlcXVpcmVkUHJvcGVydGllcyIsInNob3dPdmVybGF5SW5pdGlhbGx5IiwicmVuZGVyTGluZUNoYXJ0IiwiaXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZCIsInhtbCIsInN0cmluZ2lmeUN1c3RvbURhdGEiLCJnZXRUZW1wbGF0ZSIsInhtbFJldCIsImNvbXBhbmlvblRleHRBdmFpbGFibGUiLCJmb3JtYXR0ZWRSZXN1bHQiLCJmb3JtYXRSZXN1bHQiLCJkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZCIsImdldERpc3BsYXlNb2RlIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJhdHRyIiwiZWRpdE1vZGUiLCJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZpbHRlckZpZWxkLmJsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vbl9FZG1cIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBmb3JtYXRSZXN1bHQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYmxvY2tBdHRyaWJ1dGUsIGRlZmluZUJ1aWxkaW5nQmxvY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBTQVBfVUlfTU9ERUxfQ09OVEVYVCwgeG1sIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZVwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0TWF4Q29uZGl0aW9ucyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIHsgVmlzdWFsRmlsdGVycyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvVmlzdWFsRmlsdGVyc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHtcblx0Z2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCxcblx0Z2V0VGFyZ2V0T2JqZWN0UGF0aCxcblx0dHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoXG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGdldFJlbGF0aXZlUHJvcGVydHlQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRBc3NvY2lhdGVkRXh0ZXJuYWxJZFByb3BlcnR5UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgeyBnZXREaXNwbGF5TW9kZSwgdHlwZSBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UsIHR5cGUgTWV0YU1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHtcblx0Y29uc3RyYWludHMsXG5cdGZvcm1hdE9wdGlvbnMsXG5cdGdldENvbmRpdGlvbnNCaW5kaW5nLFxuXHRnZXREYXRhVHlwZSxcblx0Z2V0UGxhY2Vob2xkZXIsXG5cdGlzUmVxdWlyZWRJbkZpbHRlclxufSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyRmllbGRIZWxwZXJcIjtcbmltcG9ydCB7IGdldEZpbHRlckZpZWxkRGlzcGxheUZvcm1hdCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCBFeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRXh0ZW5kZWRTZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9NZXRhTW9kZWxcIjtcblxuLyoqXG4gKiBCdWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBGaWx0ZXIgRmllbGQgYmFzZWQgb24gdGhlIG1ldGFkYXRhIHByb3ZpZGVkIGJ5IE9EYXRhIFY0LlxuICogPGJyPlxuICogSXQgaXMgZGVzaWduZWQgdG8gd29yayBiYXNlZCBvbiBhIHByb3BlcnR5IGNvbnRleHQocHJvcGVydHkpIHBvaW50aW5nIHRvIGFuIGVudGl0eSB0eXBlIHByb3BlcnR5XG4gKiBuZWVkZWQgdG8gYmUgdXNlZCBhcyBmaWx0ZXJmaWVsZCBhbmQgZW50aXR5VHlwZSBjb250ZXh0KGNvbnRleHRQYXRoKSB0byBjb25zaWRlciB0aGUgcmVsYXRpdml0eSBvZlxuICogdGhlIHByb3BlcnR5UGF0aCBvZiB0aGUgcHJvcGVydHkgd3J0IGVudGl0eVR5cGUuXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZpbHRlckZpZWxkIGlkPVwiTXlGaWx0ZXJGaWVsZFwiIHByb3BlcnR5PVwiQ29tcGFueU5hbWVcIiAvJmd0O1xuICogPC9wcmU+XG4gKiBAcHJpdmF0ZVxuICovXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7XG5cdG5hbWU6IFwiRmlsdGVyRmllbGRcIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxufSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckZpZWxkQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2Uge1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbWV0YWRhdGEgcGF0aCB0byB0aGUgcHJvcGVydHkuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRwcm9wZXJ0eSE6IENvbnRleHQ7XG5cblx0LyoqXG5cdCAqIE1ldGFkYXRhIHBhdGggdG8gdGhlIGVudGl0eVNldCBvciBuYXZpZ2F0aW9uUHJvcGVydHlcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGNvbnRleHRQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogVmlzdWFsIGZpbHRlciBzZXR0aW5ncyBmb3IgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0dmlzdWFsRmlsdGVyPzogQ29udGV4dCB8IFZpc3VhbEZpbHRlcnM7XG5cblx0LyoqXG5cdCAqIEEgcHJlZml4IHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBJRCBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlkUHJlZml4ID0gXCJGaWx0ZXJGaWVsZFwiO1xuXG5cdC8qKlxuXHQgKiBBIHByZWZpeCB0aGF0IGlzIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgSUQgb2YgdGhlIHZhbHVlIGhlbHAgdXNlZCBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHR2aElkUHJlZml4ID0gXCJGaWx0ZXJGaWVsZFZhbHVlSGVscFwiO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIFNlbWF0aWMgRGF0ZSBSYW5nZSBvcHRpb24gZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlID0gdHJ1ZTtcblxuXHQvKipcblx0ICogU2V0dGluZ3MgZnJvbSB0aGUgbWFuaWZlc3QuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2V0dGluZ3MgPSBcIlwiO1xuXG5cdC8qKlxuXHQgKiBTcGVmaWNpZXMgdGhlIGVuYWJsZW1lbnQgb2YgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogZmFsc2Vcblx0fSlcblx0ZWRpdE1vZGU/OiBzdHJpbmc7XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqICAgICAgICAgICAgSU5URVJOQUwgQVRUUklCVVRFUyAgICAgICAgICAgICAgKlxuXHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXHQvKipcblx0ICogQ29udHJvbCBJZCBmb3IgTURDIGZpbHRlciBmaWVsZCB1c2VkIGluc2lkZS5cblx0ICovXG5cdGNvbnRyb2xJZCE6IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkga2V5IGZvciBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRwcm9wZXJ0eUtleSE6IHN0cmluZztcblxuXHQvKipcblx0ICogU291cmNlIGFubm90YXRpb24gcGF0aCBvZiB0aGUgcHJvcGVydHkuXG5cdCAqL1xuXHRzb3VyY2VQYXRoITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTb3VyY2UgYW5ub3RhdGlvbiBwYXRoIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdGRvY3VtZW50UmVmVGV4dD86IHN0cmluZztcblxuXHQvKipcblx0ICogVG9vbHRpcCBjb250ZW50IGZyb20gQENvbW1vbi5RdWlja0luZm8gYW5ub3RhdGlvblxuXHQgKi9cblx0dG9vbHRpcD86IHN0cmluZztcblxuXHQvKipcblx0ICogTGFiZWwgZm9yIGZpbHRlcmZpZWxkLlxuXHQgKi9cblx0bGFiZWwhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGEgVHlwZSBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0ZGF0YVR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIE1heGltdW0gY29uZGl0aW9ucyB0aGF0IGNhbiBiZSBhZGRlZCB0byB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0bWF4Q29uZGl0aW9ucyE6IG51bWJlcjtcblxuXHQvKipcblx0ICogVmFsdWUgSGVscCBpZCBhcyBhc3NvY2lhdGlvbiBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdHZhbHVlSGVscFByb3BlcnR5Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBCaW5kaW5nIHBhdGggZm9yIGNvbmRpdGlvbnMgYWRkZWQgdG8gZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0Y29uZGl0aW9uc0JpbmRpbmchOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGF0eXBlIGNvbnN0cmFpbnRzIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZUNvbnN0cmFpbnRzPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEYXRhdHlwZSBmb3JtYXQgb3B0aW9ucyBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0ZGF0YVR5cGVGb3JtYXRPcHRpb25zPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUbyBzcGVjaWZ5IGZpbHRlciBmaWVsZCBpcyBtYW5kYXRvcnkgZm9yIGZpbHRlcmluZy5cblx0ICovXG5cdHJlcXVpcmVkITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVmFsaWQgb3BlcmF0b3JzIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0b3BlcmF0b3JzPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGlkIHRvIGJlIHVzZWQuXG5cdCAqL1xuXHR2ZklkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGJ1aWxkaW5nIGJsb2NrIGlkIHRvIGJlIHVzZWQuXG5cdCAqL1xuXHR2ZlJ1bnRpbWVJZD86IHN0cmluZztcblxuXHQvKipcblx0ICogVmlzdWFsIEZpbHRlciBpcyBleHBlY3RlZC5cblx0ICovXG5cdHZmRW5hYmxlZCE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFByb3BlcnR5IHVzZWQgaXMgZmlsdGVyYWJsZVxuXHQgKi9cblx0aXNGaWx0ZXJhYmxlITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogUHJvcGVydHkgZm9yIHBsYWNlaG9sZGVyXG5cdCAqL1xuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkgdG8gaG9sZCBwcm9taXNlIGZvciBkaXNwbGF5XG5cdCAqL1xuXHRkaXNwbGF5PzogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG5cdHByb3BlcnR5RXh0ZXJuYWxJZD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6IFByb3BlcnRpZXNPZjxGaWx0ZXJGaWVsZEJsb2NrPiwgY29uZmlndXJhdGlvbjogdW5rbm93biwgc2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgY29uZmlndXJhdGlvbiwgc2V0dGluZ3MpO1xuXG5cdFx0Y29uc3QgcHJvcGVydHlDb252ZXJ0ZWQgPSBNZXRhTW9kZWxDb252ZXJ0ZXIuY29udmVydE1ldGFNb2RlbENvbnRleHQodGhpcy5wcm9wZXJ0eSkgYXMgUHJvcGVydHk7XG5cblx0XHRjb25zdCBleHRlcm5hbElkUHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZEV4dGVybmFsSWRQcm9wZXJ0eVBhdGgocHJvcGVydHlDb252ZXJ0ZWQpIGFzIHN0cmluZztcblx0XHRpZiAoZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCkge1xuXHRcdFx0dGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQgPSB0aGlzLnByb3BlcnR5XG5cdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0aGlzLnByb3BlcnR5LmdldFBhdGgoKS5yZXBsYWNlKHByb3BlcnR5Q29udmVydGVkLm5hbWUsIGV4dGVybmFsSWRQcm9wZXJ0eVBhdGgpLCB0aGlzLnByb3BlcnR5KTtcblx0XHR9XG5cblx0XHRjb25zdCBwcm9wZXJ0eUNvbnZlcnRlZEV4dGVybmFsSWQgPSB0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZFxuXHRcdFx0PyAoTWV0YU1vZGVsQ29udmVydGVyLmNvbnZlcnRNZXRhTW9kZWxDb250ZXh0KHRoaXMucHJvcGVydHlFeHRlcm5hbElkKSBhcyBQcm9wZXJ0eSlcblx0XHRcdDogdW5kZWZpbmVkO1xuXG5cdFx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KHRoaXMucHJvcGVydHksIHRoaXMuY29udGV4dFBhdGgpO1xuXG5cdFx0Ly8gUHJvcGVydHkgc2V0dGluZ3Ncblx0XHRjb25zdCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUNvbnZlcnRlZC5uYW1lLFxuXHRcdFx0b3JpZ2luYWxQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUNvbnZlcnRlZC5uYW1lLFxuXHRcdFx0Zml4ZWRWYWx1ZXMgPVxuXHRcdFx0XHQhIXByb3BlcnR5Q29udmVydGVkRXh0ZXJuYWxJZD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIHx8XG5cdFx0XHRcdCEhcHJvcGVydHlDb252ZXJ0ZWQuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzO1xuXG5cdFx0dGhpcy5jb250cm9sSWQgPSB0aGlzLmlkUHJlZml4ICYmIGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBvcmlnaW5hbFByb3BlcnR5TmFtZV0pO1xuXHRcdHRoaXMuc291cmNlUGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgoZGF0YU1vZGVsUGF0aCk7XG5cblx0XHR0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNfQ29tbW9uX2V4dGVuZGVkID0gUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb24gJiB7IERvY3VtZW50YXRpb25SZWY/OiBzdHJpbmcgfTtcblx0XHR0aGlzLmRvY3VtZW50UmVmVGV4dCA9IChcblx0XHRcdGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucy5Db21tb24gYXMgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb25fZXh0ZW5kZWRcblx0XHQpPy5Eb2N1bWVudGF0aW9uUmVmPy50b1N0cmluZygpO1xuXG5cdFx0dGhpcy50b29sdGlwID0gcHJvcGVydHlDb252ZXJ0ZWQ/LmFubm90YXRpb25zPy5Db21tb24/LlF1aWNrSW5mbz8udG9TdHJpbmcoKTtcblxuXHRcdHRoaXMuZGF0YVR5cGUgPSBnZXREYXRhVHlwZShwcm9wZXJ0eUNvbnZlcnRlZEV4dGVybmFsSWQgfHwgcHJvcGVydHlDb252ZXJ0ZWQpOyAvLyBkYXRhIHR5cGUgZm9yIExSLUZpbHRlckJhciBjb25kaXRpb24gb2YgdGhlIHZhbHVlIGhlbHBcblx0XHRjb25zdCBsYWJlbFRlcm0gPSBwcm9wZXJ0eUNvbnZlcnRlZD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWw7XG5cdFx0Y29uc3QgbGFiZWxFeHByZXNzaW9uID0gbGFiZWxUZXJtPy50b1N0cmluZygpID8/IGNvbnN0YW50KHByb3BlcnR5TmFtZSk7XG5cdFx0dGhpcy5sYWJlbCA9IGNvbXBpbGVFeHByZXNzaW9uKGxhYmVsRXhwcmVzc2lvbikgfHwgcHJvcGVydHlOYW1lO1xuXHRcdHRoaXMuY29uZGl0aW9uc0JpbmRpbmcgPSBnZXRDb25kaXRpb25zQmluZGluZyhkYXRhTW9kZWxQYXRoKSB8fCBcIlwiO1xuXHRcdHRoaXMucGxhY2Vob2xkZXIgPSBnZXRQbGFjZWhvbGRlcihwcm9wZXJ0eUNvbnZlcnRlZCk7XG5cdFx0dGhpcy5wcm9wZXJ0eUtleSA9IGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgoZGF0YU1vZGVsUGF0aCwgZmFsc2UsIHRydWUpIHx8IHByb3BlcnR5TmFtZTtcblx0XHQvLyBWaXN1YWwgRmlsdGVyIHNldHRpbmdzXG5cdFx0dGhpcy52ZkVuYWJsZWQgPSAhIXRoaXMudmlzdWFsRmlsdGVyICYmICEodGhpcy5pZFByZWZpeCAmJiB0aGlzLmlkUHJlZml4LmluY2x1ZGVzKFwiQWRhcHRhdGlvblwiKSk7XG5cdFx0dGhpcy52ZklkID0gdGhpcy52ZkVuYWJsZWQgPyBnZW5lcmF0ZShbdGhpcy5pZFByZWZpeCwgcHJvcGVydHlOYW1lLCBcIlZpc3VhbEZpbHRlclwiXSkgOiB1bmRlZmluZWQ7XG5cdFx0dGhpcy52ZlJ1bnRpbWVJZCA9IHRoaXMudmZFbmFibGVkID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIHByb3BlcnR5TmFtZSwgXCJWaXN1YWxGaWx0ZXJDb250YWluZXJcIl0pIDogdW5kZWZpbmVkO1xuXG5cdFx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cdFx0Ly8gVE9ETzogbmVlZCB0byBjaGFuZ2Ugb3BlcmF0aW9ucyBmcm9tIE1ldGFNb2RlbCB0byBDb252ZXJ0ZXJzLlxuXHRcdC8vIFRoaXMgbWFpbmx5IGluY2x1ZGVkIGNoYW5naW5nIGNoYW5naW5nIGdldEZpbHRlclJlc3RyaWN0aW9ucyBvcGVyYXRpb25zIGZyb20gbWV0YU1vZGVsIHRvIGNvbnZlcnRlcnNcblx0XHRjb25zdCBwcm9wZXJ0eUNvbnRleHQgPSB0aGlzLnByb3BlcnR5LFxuXHRcdFx0bW9kZWw6IE1ldGFNb2RlbCA9IHByb3BlcnR5Q29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdFx0dmhQcm9wZXJ0eVBhdGg6IHN0cmluZyA9IEZpZWxkSGVscGVyLnZhbHVlSGVscFByb3BlcnR5Rm9yRmlsdGVyRmllbGQocHJvcGVydHlDb250ZXh0KSxcblx0XHRcdGZpbHRlcmFibGUgPSBDb21tb25IZWxwZXIuaXNQcm9wZXJ0eUZpbHRlcmFibGUocHJvcGVydHlDb250ZXh0KSxcblx0XHRcdHByb3BlcnR5T2JqZWN0ID0gcHJvcGVydHlDb250ZXh0LmdldE9iamVjdCgpLFxuXHRcdFx0cHJvcGVydHlJbnRlcmZhY2UgPSB7IGNvbnRleHQ6IHByb3BlcnR5Q29udGV4dCB9IGFzIENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZTtcblxuXHRcdHRoaXMuZGlzcGxheSA9IGdldEZpbHRlckZpZWxkRGlzcGxheUZvcm1hdChkYXRhTW9kZWxQYXRoLCBwcm9wZXJ0eUNvbnZlcnRlZCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMuaXNGaWx0ZXJhYmxlID0gIShmaWx0ZXJhYmxlID09PSBmYWxzZSB8fCBmaWx0ZXJhYmxlID09PSBcImZhbHNlXCIpO1xuXHRcdHRoaXMubWF4Q29uZGl0aW9ucyA9IGdldE1heENvbmRpdGlvbnMoZGF0YU1vZGVsUGF0aCk7XG5cdFx0dGhpcy5kYXRhVHlwZUNvbnN0cmFpbnRzID0gY29uc3RyYWludHMocHJvcGVydHlPYmplY3QsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLmRhdGFUeXBlRm9ybWF0T3B0aW9ucyA9IGZvcm1hdE9wdGlvbnMocHJvcGVydHlPYmplY3QsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLnJlcXVpcmVkID0gaXNSZXF1aXJlZEluRmlsdGVyKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5vcGVyYXRvcnMgPSBGaWVsZEhlbHBlci5vcGVyYXRvcnMoXG5cdFx0XHRwcm9wZXJ0eUNvbnRleHQsXG5cdFx0XHRwcm9wZXJ0eU9iamVjdCxcblx0XHRcdHRoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0XHR0aGlzLnNldHRpbmdzIHx8IFwiXCIsXG5cdFx0XHR0aGlzLmNvbnRleHRQYXRoLmdldFBhdGgoKVxuXHRcdCk7XG5cdFx0aWYgKHRoaXMub3BlcmF0b3JzKSB7XG5cdFx0XHQvLyBFeHRlbmRlZCBvcGVyYXRvcnMgYXJlIG5vdCBhZGRlZCBieSBkZWZhdWx0LlxuXHRcdFx0Ly8gV2UgYWRkIHRoZW0gdG8gTURDIGZpbHRlciBlbnZpcm9ubWVudC5cblx0XHRcdEV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzLmFkZEV4dGVuZGVkRmlsdGVyT3BlcmF0b3JzKHRoaXMub3BlcmF0b3JzLnNwbGl0KFwiLFwiKSk7XG5cdFx0fVxuXHRcdC8vIFZhbHVlIEhlbHAgc2V0dGluZ3Ncblx0XHQvLyBUT0RPOiBUaGlzIG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2hlbiBWSCBtYWNybyBpcyBjb252ZXJ0ZWQgdG8gMi4wXG5cdFx0Y29uc3QgdmhQcm9wZXJ0eSA9IG1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHZoUHJvcGVydHlQYXRoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IHZoUHJvcGVydHlPYmplY3QgPSB2aFByb3BlcnR5LmdldE9iamVjdCgpIGFzIE1ldGFNb2RlbENvbnRleHQsXG5cdFx0XHR2aFByb3BlcnR5SW50ZXJmYWNlID0geyBjb250ZXh0OiB2aFByb3BlcnR5IH0sXG5cdFx0XHRyZWxhdGl2ZVZoUHJvcGVydHlQYXRoID0gZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgodmhQcm9wZXJ0eU9iamVjdCwgdmhQcm9wZXJ0eUludGVyZmFjZSksXG5cdFx0XHRyZWxhdGl2ZVByb3BlcnR5UGF0aCA9IGdldFJlbGF0aXZlUHJvcGVydHlQYXRoKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy52YWx1ZUhlbHBQcm9wZXJ0eSA9IEZpZWxkSGVscGVyLmdldFZhbHVlSGVscFByb3BlcnR5Rm9yRmlsdGVyRmllbGQoXG5cdFx0XHRwcm9wZXJ0eUNvbnRleHQsXG5cdFx0XHRwcm9wZXJ0eU9iamVjdCxcblx0XHRcdHByb3BlcnR5T2JqZWN0LiRUeXBlLFxuXHRcdFx0dGhpcy52aElkUHJlZml4LFxuXHRcdFx0ZGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlUeXBlLm5hbWUsXG5cdFx0XHRyZWxhdGl2ZVByb3BlcnR5UGF0aCxcblx0XHRcdHJlbGF0aXZlVmhQcm9wZXJ0eVBhdGgsXG5cdFx0XHRmaXhlZFZhbHVlcyxcblx0XHRcdHRoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2Vcblx0XHQpO1xuXG5cdFx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cdH1cblxuXHRnZXRWaXN1YWxGaWx0ZXJDb250ZW50KCk6IHN0cmluZyB7XG5cdFx0bGV0IHZpc3VhbEZpbHRlck9iamVjdCA9IHRoaXMudmlzdWFsRmlsdGVyLFxuXHRcdFx0dmZYTUwgPSBcIlwiO1xuXHRcdGlmICghdGhpcy52ZkVuYWJsZWQgfHwgIXZpc3VhbEZpbHRlck9iamVjdCkge1xuXHRcdFx0cmV0dXJuIHZmWE1MO1xuXHRcdH1cblx0XHRpZiAoKHZpc3VhbEZpbHRlck9iamVjdCBhcyBDb250ZXh0KT8uaXNBPy4oU0FQX1VJX01PREVMX0NPTlRFWFQpKSB7XG5cdFx0XHR2aXN1YWxGaWx0ZXJPYmplY3QgPSAodmlzdWFsRmlsdGVyT2JqZWN0IGFzIENvbnRleHQpLmdldE9iamVjdCgpIGFzIFZpc3VhbEZpbHRlcnM7XG5cdFx0fVxuXG5cdFx0Y29uc3Qge1xuXHRcdFx0Y29udGV4dFBhdGgsXG5cdFx0XHRwcmVzZW50YXRpb25Bbm5vdGF0aW9uLFxuXHRcdFx0b3V0UGFyYW1ldGVyLFxuXHRcdFx0aW5QYXJhbWV0ZXJzLFxuXHRcdFx0dmFsdWVsaXN0UHJvcGVydHksXG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdG11bHRpcGxlU2VsZWN0aW9uQWxsb3dlZCxcblx0XHRcdHJlcXVpcmVkLFxuXHRcdFx0cmVxdWlyZWRQcm9wZXJ0aWVzID0gW10sXG5cdFx0XHRzaG93T3ZlcmxheUluaXRpYWxseSxcblx0XHRcdHJlbmRlckxpbmVDaGFydCxcblx0XHRcdGlzVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzLFxuXHRcdFx0aW5pdGlhbENoYXJ0QmluZGluZ0VuYWJsZWRcblx0XHR9ID0gdmlzdWFsRmlsdGVyT2JqZWN0IGFzIFZpc3VhbEZpbHRlcnM7XG5cdFx0dmZYTUwgPSB4bWxgXG5cdFx0XHRcdDx2aXN1YWxGaWx0ZXI6VmlzdWFsRmlsdGVyXG5cdFx0XHRcdCAgICB4bWxuczp2aXN1YWxGaWx0ZXI9IFwic2FwLmZlLm1hY3Jvcy52aXN1YWxmaWx0ZXJzXCJcblx0XHRcdFx0XHRpZD1cIiR7dGhpcy52ZlJ1bnRpbWVJZH1cIlxuXHRcdFx0XHRcdF9jb250ZW50SWQ9XCIke3RoaXMudmZJZH1cIlxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPVwiJHtjb250ZXh0UGF0aH1cIlxuXHRcdFx0XHRcdG1ldGFQYXRoPVwiJHtwcmVzZW50YXRpb25Bbm5vdGF0aW9ufVwiXG5cdFx0XHRcdFx0b3V0UGFyYW1ldGVyPVwiJHtvdXRQYXJhbWV0ZXJ9XCJcblx0XHRcdFx0XHRpblBhcmFtZXRlcnM9XCIke0NvbW1vbkhlbHBlci5zdHJpbmdpZnlDdXN0b21EYXRhKGluUGFyYW1ldGVycyl9XCJcblx0XHRcdFx0XHR2YWx1ZWxpc3RQcm9wZXJ0eT1cIiR7dmFsdWVsaXN0UHJvcGVydHl9XCJcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbj1cIiR7c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb259XCJcblx0XHRcdFx0XHRtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQ9XCIke211bHRpcGxlU2VsZWN0aW9uQWxsb3dlZH1cIlxuXHRcdFx0XHRcdHJlcXVpcmVkPVwiJHtyZXF1aXJlZH1cIlxuXHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydGllcz1cIiR7Q29tbW9uSGVscGVyLnN0cmluZ2lmeUN1c3RvbURhdGEocmVxdWlyZWRQcm9wZXJ0aWVzKX1cIlxuXHRcdFx0XHRcdHNob3dPdmVybGF5SW5pdGlhbGx5PVwiJHtzaG93T3ZlcmxheUluaXRpYWxseX1cIlxuXHRcdFx0XHRcdHJlbmRlckxpbmVDaGFydD1cIiR7cmVuZGVyTGluZUNoYXJ0fVwiXG5cdFx0XHRcdFx0aXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM9XCIke2lzVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzfVwiXG5cdFx0XHRcdFx0ZmlsdGVyQmFyRW50aXR5VHlwZT1cIiR7Y29udGV4dFBhdGh9XCJcblx0XHRcdFx0XHRlbmFibGVDaGFydEJpbmRpbmc9XCIke2luaXRpYWxDaGFydEJpbmRpbmdFbmFibGVkfVwiXG5cdFx0XHRcdC8+XG5cdFx0XHRgO1xuXG5cdFx0cmV0dXJuIHZmWE1MO1xuXHR9XG5cblx0YXN5bmMgZ2V0VGVtcGxhdGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRsZXQgeG1sUmV0ID0gYGA7XG5cdFx0aWYgKHRoaXMuaXNGaWx0ZXJhYmxlKSB7XG5cdFx0XHRsZXQgZGlzcGxheTtcblx0XHRcdGNvbnN0IGNvbXBhbmlvblRleHRBdmFpbGFibGUgPSB0aGlzLmRvY3VtZW50UmVmVGV4dCA9PT0gdW5kZWZpbmVkIHx8IG51bGwgPyBmYWxzZSA6IHRydWU7XG5cdFx0XHRjb25zdCBmb3JtYXR0ZWRSZXN1bHQ6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdGZvcm1hdFJlc3VsdChbdGhpcy5kb2N1bWVudFJlZlRleHRdLCBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuU3RhbmRhcmRGb3JtYXR0ZXIjYXNBcnJheVwiKVxuXHRcdFx0KTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IGRhdGFNb2RlbFBhdGhFeHRlcm5hbElkID1cblx0XHRcdFx0XHR0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZCAmJiBNZXRhTW9kZWxDb252ZXJ0ZXIuZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKHRoaXMucHJvcGVydHlFeHRlcm5hbElkLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRcdFx0ZGlzcGxheSA9IGRhdGFNb2RlbFBhdGhFeHRlcm5hbElkXG5cdFx0XHRcdFx0PyBnZXREaXNwbGF5TW9kZShkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZCBhcyBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5Pilcblx0XHRcdFx0XHQ6IGF3YWl0IHRoaXMuZGlzcGxheTtcblx0XHRcdH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3IoYEZFIDogRmlsdGVyRmllbGQgQnVpbGRpbmdCbG9jayA6IEVycm9yIGZldGNoaW5nIGRpc3BsYXkgcHJvcGVydHkgZm9yICR7dGhpcy5zb3VyY2VQYXRofSA6ICR7ZXJyfWApO1xuXHRcdFx0fVxuXHRcdFx0eG1sUmV0ID0geG1sYFxuXHRcdFx0XHQ8bWRjOkZpbHRlckZpZWxkXG5cdFx0XHRcdFx0eG1sbnM6bWRjPVwic2FwLnVpLm1kY1wiXG5cdFx0XHRcdFx0eG1sbnM6dGVtcGxhdGU9XCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUudGVtcGxhdGUvMVwiXG5cdFx0XHRcdFx0eG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcblx0XHRcdFx0XHR4bWxuczpjdXN0b21EYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiXG5cdFx0XHRcdFx0eG1sbnM6ZmllbGRoZWxwPVwic2FwLnVpLmNvcmUuZmllbGRoZWxwXCJcblx0XHRcdFx0XHRjdXN0b21EYXRhOnNvdXJjZVBhdGg9XCIke3RoaXMuc291cmNlUGF0aH1cIlxuXHRcdFx0XHRcdGlkPVwiJHt0aGlzLmNvbnRyb2xJZH1cIlxuXHRcdFx0XHRcdGRlbGVnYXRlPVwie25hbWU6ICdzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkQmFzZURlbGVnYXRlJywgcGF5bG9hZDp7aXNGaWx0ZXJGaWVsZDp0cnVlfX1cIlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PVwiJHt0aGlzLnByb3BlcnR5S2V5fVwiXG5cdFx0XHRcdFx0bGFiZWw9XCIke3RoaXMubGFiZWx9XCJcblx0XHRcdFx0XHRkYXRhVHlwZT1cIiR7dGhpcy5kYXRhVHlwZX1cIlxuXHRcdFx0XHRcdGRpc3BsYXk9XCIke2Rpc3BsYXl9XCJcblx0XHRcdFx0XHRtYXhDb25kaXRpb25zPVwiJHt0aGlzLm1heENvbmRpdGlvbnN9XCJcblx0XHRcdFx0XHR2YWx1ZUhlbHA9XCIke3RoaXMudmFsdWVIZWxwUHJvcGVydHl9XCJcblx0XHRcdFx0XHRjb25kaXRpb25zPVwiJHt0aGlzLmNvbmRpdGlvbnNCaW5kaW5nfVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGVDb25zdHJhaW50cz1cIiR7dGhpcy5kYXRhVHlwZUNvbnN0cmFpbnRzfVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGVGb3JtYXRPcHRpb25zPVwiJHt0aGlzLmRhdGFUeXBlRm9ybWF0T3B0aW9uc31cIlxuXHRcdFx0XHRcdHJlcXVpcmVkPVwiJHt0aGlzLnJlcXVpcmVkfVwiXG5cdFx0XHRcdFx0b3BlcmF0b3JzPVwiJHt0aGlzLm9wZXJhdG9yc31cIlxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiJHt0aGlzLnBsYWNlaG9sZGVyfVwiXG5cdFx0XHRcdFx0JHt0aGlzLmF0dHIoXCJ0b29sdGlwXCIsIHRoaXMudG9vbHRpcCl9XG5cdFx0XHRcdFx0JHt0aGlzLmF0dHIoXCJlZGl0TW9kZVwiLCB0aGlzLmVkaXRNb2RlKX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdCR7XG5cdFx0XHRcdFx0XHRjb21wYW5pb25UZXh0QXZhaWxhYmxlXG5cdFx0XHRcdFx0XHRcdD8geG1sYFxuXHRcdFx0XHRcdFx0PG1kYzpjdXN0b21EYXRhPlxuXHRcdFx0XHRcdFx0XHQ8ZmllbGRoZWxwOkZpZWxkSGVscEN1c3RvbURhdGFcblx0XHRcdFx0XHRcdFx0XHQke3RoaXMuYXR0cihcInZhbHVlXCIsIGZvcm1hdHRlZFJlc3VsdCl9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8L21kYzpjdXN0b21EYXRhPlxuXHRcdFx0XHRcdGBcblx0XHRcdFx0XHRcdFx0OiBcIlwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCR7dGhpcy52ZkVuYWJsZWQgPyB0aGlzLmdldFZpc3VhbEZpbHRlckNvbnRlbnQoKSA6IFwiXCJ9XG5cdFx0XHRcdDwvbWRjOkZpbHRlckZpZWxkPlxuXHRcdFx0YDtcblx0XHR9XG5cblx0XHRy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
|
|
@@ -151,6 +151,11 @@ export default class FilterFieldBlock extends BuildingBlockTemplatingBase {
|
|
|
151
151
|
*/
|
|
152
152
|
documentRefText?: string;
|
|
153
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Tooltip content from @Common.QuickInfo annotation
|
|
156
|
+
*/
|
|
157
|
+
tooltip?: string;
|
|
158
|
+
|
|
154
159
|
/**
|
|
155
160
|
* Label for filterfield.
|
|
156
161
|
*/
|
|
@@ -261,6 +266,8 @@ export default class FilterFieldBlock extends BuildingBlockTemplatingBase {
|
|
|
261
266
|
dataModelPath.targetObject?.annotations.Common as PropertyAnnotations_Common_extended
|
|
262
267
|
)?.DocumentationRef?.toString();
|
|
263
268
|
|
|
269
|
+
this.tooltip = propertyConverted?.annotations?.Common?.QuickInfo?.toString();
|
|
270
|
+
|
|
264
271
|
this.dataType = getDataType(propertyConvertedExternalId || propertyConverted); // data type for LR-FilterBar condition of the value help
|
|
265
272
|
const labelTerm = propertyConverted?.annotations?.Common?.Label;
|
|
266
273
|
const labelExpression = labelTerm?.toString() ?? constant(propertyName);
|
|
@@ -412,6 +419,7 @@ export default class FilterFieldBlock extends BuildingBlockTemplatingBase {
|
|
|
412
419
|
required="${this.required}"
|
|
413
420
|
operators="${this.operators}"
|
|
414
421
|
placeholder="${this.placeholder}"
|
|
422
|
+
${this.attr("tooltip", this.tooltip)}
|
|
415
423
|
${this.attr("editMode", this.editMode)}
|
|
416
424
|
>
|
|
417
425
|
${
|