@sapui5/sap.fe.base 1.127.2 → 1.129.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.
@@ -2,9 +2,10 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/ui/base/DataType", "sap/ui/core/mvc/EventHandlerResolver"], function (Log, BindingToolkit, Text, DataType, EventHandlerResolver) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/ui/base/DataType", "sap/ui/base/ManagedObject", "sap/ui/core/mvc/EventHandlerResolver"], function (Log, BindingToolkit, Text, DataType, ManagedObject, EventHandlerResolver) {
6
6
  "use strict";
7
7
 
8
+ var bindingParser = ManagedObject.bindingParser;
8
9
  var isConstant = BindingToolkit.isConstant;
9
10
  var isBindingToolkitExpression = BindingToolkit.isBindingToolkitExpression;
10
11
  var compileExpression = BindingToolkit.compileExpression;
@@ -54,7 +55,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
54
55
  path: mSettings[aggregationName]
55
56
  };
56
57
  }
57
- // always use the first item as template according to UI5 logic
58
58
  if (typeof aggregationChildren[aggregationName] === "function") {
59
59
  mSettings[aggregationName].factory = aggregationChildren[aggregationName];
60
60
  } else {
@@ -73,7 +73,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
73
73
  * If the property is a bindingToolkit expression we need to compile it.
74
74
  * Else if the property is set as string (compiled binding expression returns string by default even if it's a boolean, int, etc.) and it doesn't match with expected
75
75
  * format the value is parsed to provide expected format.
76
- *
77
76
  * @param metadata Metadata of the control
78
77
  * @param settings Settings of the control
79
78
  * @returns A map of late properties that need to be awaited after the control is created
@@ -99,6 +98,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
99
98
  if (propertyType && propertyType instanceof DataType && ["boolean", "int", "float"].includes(propertyType.getName())) {
100
99
  settings[settingsKey] = propertyType.parseValue(value);
101
100
  }
101
+ } else if (typeof value === "object" && value.__bindingInfo) {
102
+ settings[settingsKey] = value.__bindingInfo;
102
103
  }
103
104
  }
104
105
  return lateProperties;
@@ -109,7 +110,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
109
110
  *
110
111
  * Resolves the command set on the control via the intrinsic class attribute "jsx:command".
111
112
  * If no command has been set or the targeted event doesn't exist, no configuration is set.
112
- *
113
113
  * @param metadata Metadata of the control
114
114
  * @param settings Settings of the control
115
115
  */
@@ -171,6 +171,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
171
171
  }
172
172
  if (bindingDef) {
173
173
  if (typeof bindingDef === "string") {
174
+ const bindingInfo = bindingParser(bindingDef);
175
+ if (bindingInfo) {
176
+ targetControlInstance.bindElement({
177
+ model: bindingInfo.model ?? undefined,
178
+ path: bindingInfo.path
179
+ });
180
+ }
174
181
  targetControlInstance.bindElement(bindingDef);
175
182
  } else {
176
183
  // We consider it's an object
@@ -202,4 +209,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/m/Text", "sap/
202
209
  };
203
210
  return jsxControl;
204
211
  }, false);
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGTF9ERUxFR0FURSIsIkRUX0RFU0lHTlRJTUUiLCJhZGRDaGlsZEFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25DaGlsZHJlbiIsImFnZ3JlZ2F0aW9uTmFtZSIsImNoaWxkIiwidW5kZWZpbmVkIiwiaXNDaGlsZEFuRWxlbWVudCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwic3ViQ2hpbGQiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRLZXkiLCJjaGlsZHJlbiIsImlzQSIsImlzQUNvbnRyb2wiLCJnZXRNZXRhZGF0YSIsInByb2Nlc3NBZ2dyZWdhdGlvbnMiLCJtZXRhZGF0YSIsIm1TZXR0aW5ncyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsInBhdGgiLCJmYWN0b3J5IiwidGVtcGxhdGUiLCJwcm9jZXNzUHJvcGVydGllcyIsInNldHRpbmdzIiwic2V0dGluZ3NLZXkiLCJsYXRlUHJvcGVydGllcyIsInZhbHVlIiwiaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24iLCJiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24iLCJpc0NvbnN0YW50IiwiY29tcGlsZUNvbnN0YW50IiwiY29tcGlsZUV4cHJlc3Npb24iLCJ0aGVuIiwic3RhcnRzV2l0aCIsInByb3BlcnR5VHlwZSIsImdldEFsbFByb3BlcnRpZXMiLCJnZXRUeXBlIiwiRGF0YVR5cGUiLCJpbmNsdWRlcyIsImdldE5hbWUiLCJwYXJzZVZhbHVlIiwicHJvY2Vzc0NvbW1hbmQiLCJjb21tYW5kUHJvcGVydHkiLCJjb21tYW5kIiwiZXZlbnROYW1lIiwic3BsaXQiLCJldmVudCIsImdldEFsbEV2ZW50cyIsIm5hbWUiLCJFdmVudEhhbmRsZXJSZXNvbHZlciIsInJlc29sdmVFdmVudEhhbmRsZXIiLCJqc3hDb250cm9sIiwiQ29udHJvbFR5cGUiLCJrZXkiLCJqc3hDb250ZXh0IiwidGFyZ2V0Q29udHJvbCIsImlzRnJhZ21lbnQiLCJpc1J1bnRpbWUiLCJydW50aW1lQnVpbGRpbmdCbG9jayIsImdldENvbnRlbnQiLCJ2aWV3IiwiYXBwQ29tcG9uZW50IiwiY2xhc3NEZWYiLCJjbGFzcyIsInJlZkRlZiIsInJlZiIsImJpbmRpbmdEZWYiLCJiaW5kaW5nIiwiZmxEZWxlZ2F0ZSIsImR0RGVzaWdudGltZSIsInRhcmdldENvbnRyb2xJbnN0YW5jZSIsImFkZFN0eWxlQ2xhc3MiLCJzZXRDdXJyZW50IiwiY3VzdG9tU2V0dGluZ3MiLCJkYXRhIiwiZGVsZWdhdGUiLCJkZXNpZ250aW1lIiwibGVuZ3RoIiwiYmluZEVsZW1lbnQiLCJiaW5kaW5nRGVmS2V5IiwibW9kZWwiLCJsYXRlUHJvcGVydGllc0tleSIsInNldFByb3BlcnR5IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsImNvbnRyb2xUeXBlRm4iLCJUZXh0IiwidGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LWNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUNvbnN0YW50LCBjb21waWxlRXhwcmVzc2lvbiwgaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIGlzQ29uc3RhbnQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgTm9uQWJzdHJhY3RDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgQ29udHJvbFByb3BlcnRpZXMsIEpTWENvbnRleHQsIE5vbkNvbnRyb2xQcm9wZXJ0aWVzLCBSZWYgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgdHlwZSBSdW50aW1lQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9SdW50aW1lQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBEYXRhVHlwZSBmcm9tIFwic2FwL3VpL2Jhc2UvRGF0YVR5cGVcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3RNZXRhZGF0YSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdE1ldGFkYXRhXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIEVsZW1lbnQsIGRlZmF1bHQgYXMgVUk1RWxlbWVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgRXZlbnRIYW5kbGVyUmVzb2x2ZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9FdmVudEhhbmRsZXJSZXNvbHZlclwiO1xuY29uc3QgRkxfREVMRUdBVEUgPSBcImZsOmRlbGVnYXRlXCI7XG5jb25zdCBEVF9ERVNJR05USU1FID0gXCJkdDpkZXNpZ250aW1lXCI7XG5jb25zdCBhZGRDaGlsZEFnZ3JlZ2F0aW9uID0gZnVuY3Rpb24gKFxuXHRhZ2dyZWdhdGlvbkNoaWxkcmVuOiBSZWNvcmQ8c3RyaW5nLCAoc3RyaW5nIHwgVUk1RWxlbWVudClbXT4sXG5cdGFnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nLFxuXHRjaGlsZD86IHN0cmluZyB8IFVJNUVsZW1lbnQgfCBVSTVFbGVtZW50W11cbik6IHZvaWQge1xuXHRpZiAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKCFhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0pIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gPSBbXTtcblx0fVxuXHRpZiAoaXNDaGlsZEFuRWxlbWVudChjaGlsZCkpIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ucHVzaChjaGlsZCk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcblx0XHRjaGlsZC5mb3JFYWNoKChzdWJDaGlsZCkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBhZ2dyZWdhdGlvbk5hbWUsIHN1YkNoaWxkKTtcblx0XHR9KTtcblx0fSBlbHNlIGlmICh0eXBlb2YgY2hpbGQgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9IGNoaWxkO1xuXHR9IGVsc2Uge1xuXHRcdE9iamVjdC5rZXlzKGNoaWxkKS5mb3JFYWNoKChjaGlsZEtleSkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBjaGlsZEtleSwgY2hpbGRbY2hpbGRLZXldKTtcblx0XHR9KTtcblx0fVxufTtcbmNvbnN0IGlzQ2hpbGRBbkVsZW1lbnQgPSBmdW5jdGlvbiAoY2hpbGRyZW4/OiB1bmtub3duKTogY2hpbGRyZW4gaXMgRWxlbWVudCB7XG5cdHJldHVybiAoY2hpbGRyZW4gYXMgRWxlbWVudCk/LmlzQT8uKFwic2FwLnVpLmNvcmUuRWxlbWVudFwiKTtcbn07XG5jb25zdCBpc0FDb250cm9sID0gZnVuY3Rpb24gKGNoaWxkcmVuPzogdHlwZW9mIENvbnRyb2wgfCBGdW5jdGlvbik6IGNoaWxkcmVuIGlzIE5vbkFic3RyYWN0Q2xhc3M8Q29udHJvbD4ge1xuXHRyZXR1cm4gISEoY2hpbGRyZW4gYXMgdHlwZW9mIENvbnRyb2wpPy5nZXRNZXRhZGF0YTtcbn07XG5cbmZ1bmN0aW9uIHByb2Nlc3NBZ2dyZWdhdGlvbnMobWV0YWRhdGE6IE1hbmFnZWRPYmplY3RNZXRhZGF0YSwgbVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuXHRjb25zdCBtZXRhZGF0YUFnZ3JlZ2F0aW9ucyA9IG1ldGFkYXRhLmdldEFsbEFnZ3JlZ2F0aW9ucygpO1xuXHRjb25zdCBkZWZhdWx0QWdncmVnYXRpb25OYW1lID0gbWV0YWRhdGEuZ2V0RGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSgpO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBSZWNvcmQ8c3RyaW5nLCAoc3RyaW5nIHwgVUk1RWxlbWVudClbXT4gPSB7fTtcblx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBkZWZhdWx0QWdncmVnYXRpb25OYW1lLCBtU2V0dGluZ3MuY2hpbGRyZW4gYXMgc3RyaW5nIHwgVUk1RWxlbWVudCB8IFVJNUVsZW1lbnRbXSk7XG5cdGRlbGV0ZSBtU2V0dGluZ3MuY2hpbGRyZW47XG5cdC8vIGZpbmQgb3V0IHdoaWNoIGFnZ3JlZ2F0aW9uIGFyZSBib3VuZCAoYm90aCBpbiBjaGlsZHJlbiBhbmQgZGlyZWN0bHkgdW5kZXIgaXQpXG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKChhZ2dyZWdhdGlvbk5hbWUpID0+IHtcblx0XHRpZiAoYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSkge1xuXHRcdFx0XHRpZiAodHlwZW9mIG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0bVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gPSB7XG5cdFx0XHRcdFx0XHRwYXRoOiBtU2V0dGluZ3NbYWdncmVnYXRpb25OYW1lXVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gYWx3YXlzIHVzZSB0aGUgZmlyc3QgaXRlbSBhcyB0ZW1wbGF0ZSBhY2NvcmRpbmcgdG8gVUk1IGxvZ2ljXG5cdFx0XHRcdGlmICh0eXBlb2YgYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdFx0XHQobVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gYXMgeyBmYWN0b3J5OiBGdW5jdGlvbiB9KS5mYWN0b3J5ID0gYWdncmVnYXRpb25DaGlsZHJlbltcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uTmFtZVxuXHRcdFx0XHRcdF0gYXMgdW5rbm93biBhcyBGdW5jdGlvbjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQobVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gYXMgeyB0ZW1wbGF0ZTogc3RyaW5nIHwgVUk1RWxlbWVudCB9KS50ZW1wbGF0ZSA9IGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXVswXTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gPSBhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV07XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgdGhlIHByb3BlcnRpZXMuXG4gKlxuICogSWYgdGhlIHByb3BlcnR5IGlzIGEgYmluZGluZ1Rvb2xraXQgZXhwcmVzc2lvbiB3ZSBuZWVkIHRvIGNvbXBpbGUgaXQuXG4gKiBFbHNlIGlmIHRoZSBwcm9wZXJ0eSBpcyBzZXQgYXMgc3RyaW5nIChjb21waWxlZCBiaW5kaW5nIGV4cHJlc3Npb24gcmV0dXJucyBzdHJpbmcgYnkgZGVmYXVsdCBldmVuIGlmIGl0J3MgYSBib29sZWFuLCBpbnQsIGV0Yy4pIGFuZCBpdCBkb2Vzbid0IG1hdGNoIHdpdGggZXhwZWN0ZWRcbiAqIGZvcm1hdCB0aGUgdmFsdWUgaXMgcGFyc2VkIHRvIHByb3ZpZGUgZXhwZWN0ZWQgZm9ybWF0LlxuICpcbiAqIEBwYXJhbSBtZXRhZGF0YSBNZXRhZGF0YSBvZiB0aGUgY29udHJvbFxuICogQHBhcmFtIHNldHRpbmdzIFNldHRpbmdzIG9mIHRoZSBjb250cm9sXG4gKiBAcmV0dXJucyBBIG1hcCBvZiBsYXRlIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIGF3YWl0ZWQgYWZ0ZXIgdGhlIGNvbnRyb2wgaXMgY3JlYXRlZFxuICovXG5mdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllcyhtZXRhZGF0YTogTWFuYWdlZE9iamVjdE1ldGFkYXRhLCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCBQcm9taXNlPHVua25vd24+PiB7XG5cdGxldCBzZXR0aW5nc0tleToga2V5b2YgdHlwZW9mIHNldHRpbmdzO1xuXHRjb25zdCBsYXRlUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTx1bmtub3duPj4gPSB7fTtcblx0Zm9yIChzZXR0aW5nc0tleSBpbiBzZXR0aW5ncykge1xuXHRcdGNvbnN0IHZhbHVlID0gc2V0dGluZ3Nbc2V0dGluZ3NLZXldO1xuXHRcdGlmIChpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbih2YWx1ZSkpIHtcblx0XHRcdGNvbnN0IGJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+ID0gdmFsdWU7XG5cdFx0XHRpZiAoaXNDb25zdGFudChiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24pKSB7XG5cdFx0XHRcdHNldHRpbmdzW3NldHRpbmdzS2V5XSA9IGNvbXBpbGVDb25zdGFudChiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIGZhbHNlLCB0cnVlLCB0cnVlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldHRpbmdzW3NldHRpbmdzS2V5XSA9IGNvbXBpbGVFeHByZXNzaW9uKGJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgKHZhbHVlIGFzIFByb21pc2U8dW5rbm93bj4pLnRoZW4pIHtcblx0XHRcdGxhdGVQcm9wZXJ0aWVzW3NldHRpbmdzS2V5XSA9IHZhbHVlIGFzIFByb21pc2U8dW5rbm93bj47XG5cdFx0XHRkZWxldGUgc2V0dGluZ3Nbc2V0dGluZ3NLZXldO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICF2YWx1ZS5zdGFydHNXaXRoKFwie1wiKSkge1xuXHRcdFx0Y29uc3QgcHJvcGVydHlUeXBlID0gKG1ldGFkYXRhLmdldEFsbFByb3BlcnRpZXMoKVtzZXR0aW5nc0tleV0gYXMgeyBnZXRUeXBlPzogRnVuY3Rpb24gfSk/LmdldFR5cGU/LigpO1xuXHRcdFx0aWYgKHByb3BlcnR5VHlwZSAmJiBwcm9wZXJ0eVR5cGUgaW5zdGFuY2VvZiBEYXRhVHlwZSAmJiBbXCJib29sZWFuXCIsIFwiaW50XCIsIFwiZmxvYXRcIl0uaW5jbHVkZXMocHJvcGVydHlUeXBlLmdldE5hbWUoKSkpIHtcblx0XHRcdFx0c2V0dGluZ3Nbc2V0dGluZ3NLZXldID0gcHJvcGVydHlUeXBlLnBhcnNlVmFsdWUodmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gbGF0ZVByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBjb21tYW5kLlxuICpcbiAqIFJlc29sdmVzIHRoZSBjb21tYW5kIHNldCBvbiB0aGUgY29udHJvbCB2aWEgdGhlIGludHJpbnNpYyBjbGFzcyBhdHRyaWJ1dGUgXCJqc3g6Y29tbWFuZFwiLlxuICogSWYgbm8gY29tbWFuZCBoYXMgYmVlbiBzZXQgb3IgdGhlIHRhcmdldGVkIGV2ZW50IGRvZXNuJ3QgZXhpc3QsIG5vIGNvbmZpZ3VyYXRpb24gaXMgc2V0LlxuICpcbiAqIEBwYXJhbSBtZXRhZGF0YSBNZXRhZGF0YSBvZiB0aGUgY29udHJvbFxuICogQHBhcmFtIHNldHRpbmdzIFNldHRpbmdzIG9mIHRoZSBjb250cm9sXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NDb21tYW5kKG1ldGFkYXRhOiBNYW5hZ2VkT2JqZWN0TWV0YWRhdGEsIHNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuXHRjb25zdCBjb21tYW5kUHJvcGVydHkgPSBzZXR0aW5nc1tcImpzeDpjb21tYW5kXCJdO1xuXHRpZiAoY29tbWFuZFByb3BlcnR5KSB7XG5cdFx0Y29uc3QgW2NvbW1hbmQsIGV2ZW50TmFtZV0gPSAoY29tbWFuZFByb3BlcnR5IGFzIHN0cmluZykuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IGV2ZW50ID0gbWV0YWRhdGEuZ2V0QWxsRXZlbnRzKClbZXZlbnROYW1lXTtcblx0XHRpZiAoZXZlbnQgJiYgY29tbWFuZC5zdGFydHNXaXRoKFwiY21kOlwiKSkge1xuXHRcdFx0c2V0dGluZ3NbZXZlbnQubmFtZV0gPSBFdmVudEhhbmRsZXJSZXNvbHZlci5yZXNvbHZlRXZlbnRIYW5kbGVyKGNvbW1hbmQpO1xuXHRcdH1cblx0fVxuXHRkZWxldGUgc2V0dGluZ3NbXCJqc3g6Y29tbWFuZFwiXTtcbn1cblxuY29uc3QganN4Q29udHJvbCA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgRWxlbWVudD4oXG5cdENvbnRyb2xUeXBlOiBOb25BYnN0cmFjdENsYXNzPENvbnRyb2w+IHwgRnVuY3Rpb24sXG5cdHNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHtcblx0XHRrZXk6IHN0cmluZztcblx0XHRjaGlsZHJlbj86IEVsZW1lbnQgfCBDb250cm9sUHJvcGVydGllczxUPjtcblx0XHRyZWY/OiBSZWY8VD47XG5cdFx0YmluZGluZz86IHN0cmluZztcblx0XHRjbGFzcz86IHN0cmluZztcblx0XHRbRkxfREVMRUdBVEVdPzogc3RyaW5nO1xuXHRcdFtEVF9ERVNJR05USU1FXT86IHN0cmluZztcblx0fSxcblx0a2V5OiBzdHJpbmcsXG5cdGpzeENvbnRleHQ6IEpTWENvbnRleHRcbik6IENvbnRyb2wgfCBDb250cm9sW10gfCB1bmRlZmluZWQge1xuXHRsZXQgdGFyZ2V0Q29udHJvbDogQ29udHJvbCB8IENvbnRyb2xbXSB8IHVuZGVmaW5lZDtcblxuXHRpZiAoKENvbnRyb2xUeXBlIGFzIHsgaXNGcmFnbWVudD86IGJvb2xlYW4gfSk/LmlzRnJhZ21lbnQpIHtcblx0XHR0YXJnZXRDb250cm9sID0gc2V0dGluZ3MuY2hpbGRyZW4gYXMgQ29udHJvbCB8IENvbnRyb2xbXTtcblx0fSBlbHNlIGlmICgoQ29udHJvbFR5cGUgYXMgdHlwZW9mIEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSk/LmlzUnVudGltZSkge1xuXHRcdGNvbnN0IHJ1bnRpbWVCdWlsZGluZ0Jsb2NrID0gbmV3IChDb250cm9sVHlwZSBhcyB0eXBlb2YgUnVudGltZUJ1aWxkaW5nQmxvY2spKHNldHRpbmdzIGFzIHVua25vd24gYXMgJENvbnRyb2xTZXR0aW5ncyk7XG5cdFx0dGFyZ2V0Q29udHJvbCA9IHJ1bnRpbWVCdWlsZGluZ0Jsb2NrLmdldENvbnRlbnQ/Lihqc3hDb250ZXh0LnZpZXchLCBqc3hDb250ZXh0LmFwcENvbXBvbmVudCEpO1xuXHR9IGVsc2UgaWYgKGlzQUNvbnRyb2woQ29udHJvbFR5cGUpKSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBDb250cm9sVHlwZS5nZXRNZXRhZGF0YSgpO1xuXHRcdGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0c2V0dGluZ3NbXCJrZXlcIl0gPSBrZXk7XG5cdFx0fVxuXHRcdHByb2Nlc3NDb21tYW5kKG1ldGFkYXRhLCBzZXR0aW5ncyk7XG5cdFx0cHJvY2Vzc0FnZ3JlZ2F0aW9ucyhtZXRhZGF0YSwgc2V0dGluZ3MpO1xuXHRcdGNvbnN0IGNsYXNzRGVmID0gc2V0dGluZ3MuY2xhc3M7XG5cdFx0Y29uc3QgcmVmRGVmID0gc2V0dGluZ3MucmVmO1xuXHRcdGNvbnN0IGJpbmRpbmdEZWYgPSBzZXR0aW5ncy5iaW5kaW5nO1xuXHRcdGNvbnN0IGZsRGVsZWdhdGUgPSBzZXR0aW5nc1tGTF9ERUxFR0FURV07XG5cdFx0Y29uc3QgZHREZXNpZ250aW1lID0gc2V0dGluZ3NbRFRfREVTSUdOVElNRV07XG5cdFx0ZGVsZXRlIHNldHRpbmdzLnJlZjtcblx0XHRkZWxldGUgc2V0dGluZ3MuY2xhc3M7XG5cdFx0ZGVsZXRlIHNldHRpbmdzLmJpbmRpbmc7XG5cdFx0ZGVsZXRlIHNldHRpbmdzW0ZMX0RFTEVHQVRFXTtcblx0XHRkZWxldGUgc2V0dGluZ3NbRFRfREVTSUdOVElNRV07XG5cdFx0Y29uc3QgbGF0ZVByb3BlcnRpZXMgPSBwcm9jZXNzUHJvcGVydGllcyhtZXRhZGF0YSwgc2V0dGluZ3MpO1xuXHRcdGNvbnN0IHRhcmdldENvbnRyb2xJbnN0YW5jZSA9IG5ldyBDb250cm9sVHlwZShzZXR0aW5ncyBhcyAkQ29udHJvbFNldHRpbmdzKTtcblx0XHRpZiAoY2xhc3NEZWYpIHtcblx0XHRcdHRhcmdldENvbnRyb2xJbnN0YW5jZS5hZGRTdHlsZUNsYXNzKGNsYXNzRGVmKTtcblx0XHR9XG5cdFx0aWYgKHJlZkRlZikge1xuXHRcdFx0cmVmRGVmLnNldEN1cnJlbnQodGFyZ2V0Q29udHJvbEluc3RhbmNlIGFzIHVua25vd24gYXMgVCk7XG5cdFx0fVxuXHRcdGNvbnN0IGN1c3RvbVNldHRpbmdzID0gdGFyZ2V0Q29udHJvbEluc3RhbmNlLmRhdGEoXCJzYXAtdWktY3VzdG9tLXNldHRpbmdzXCIpID8/IHt9O1xuXHRcdGlmIChmbERlbGVnYXRlKSB7XG5cdFx0XHRjdXN0b21TZXR0aW5nc1tcInNhcC51aS5mbFwiXSA/Pz0ge307XG5cdFx0XHRjdXN0b21TZXR0aW5nc1tcInNhcC51aS5mbFwiXS5kZWxlZ2F0ZSA9IGZsRGVsZWdhdGU7XG5cdFx0fVxuXHRcdGlmIChkdERlc2lnbnRpbWUpIHtcblx0XHRcdGN1c3RvbVNldHRpbmdzW1wic2FwLnVpLmR0XCJdID8/PSB7fTtcblx0XHRcdGN1c3RvbVNldHRpbmdzW1wic2FwLnVpLmR0XCJdLmRlc2lnbnRpbWUgPSBkdERlc2lnbnRpbWU7XG5cdFx0fVxuXHRcdGlmIChPYmplY3Qua2V5cyhjdXN0b21TZXR0aW5ncykubGVuZ3RoID4gMCkge1xuXHRcdFx0dGFyZ2V0Q29udHJvbEluc3RhbmNlLmRhdGEoXCJzYXAtdWktY3VzdG9tLXNldHRpbmdzXCIsIGN1c3RvbVNldHRpbmdzKTtcblx0XHR9XG5cblx0XHRpZiAoYmluZGluZ0RlZikge1xuXHRcdFx0aWYgKHR5cGVvZiBiaW5kaW5nRGVmID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHRhcmdldENvbnRyb2xJbnN0YW5jZS5iaW5kRWxlbWVudChiaW5kaW5nRGVmKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFdlIGNvbnNpZGVyIGl0J3MgYW4gb2JqZWN0XG5cdFx0XHRcdE9iamVjdC5rZXlzKGJpbmRpbmdEZWYpLmZvckVhY2goKGJpbmRpbmdEZWZLZXkpID0+IHtcblx0XHRcdFx0XHR0YXJnZXRDb250cm9sSW5zdGFuY2UuYmluZEVsZW1lbnQoeyBtb2RlbDogYmluZGluZ0RlZktleSwgcGF0aDogYmluZGluZ0RlZltiaW5kaW5nRGVmS2V5XSB9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgbGF0ZVByb3BlcnRpZXNLZXkgaW4gbGF0ZVByb3BlcnRpZXMpIHtcblx0XHRcdGxhdGVQcm9wZXJ0aWVzW2xhdGVQcm9wZXJ0aWVzS2V5XVxuXHRcdFx0XHQudGhlbigodmFsdWUpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gdGFyZ2V0Q29udHJvbEluc3RhbmNlLnNldFByb3BlcnR5KGxhdGVQcm9wZXJ0aWVzS2V5LCB2YWx1ZSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoYENvdWxkbid0IHNldCBwcm9wZXJ0eSAke2xhdGVQcm9wZXJ0aWVzS2V5fSBvbiAke0NvbnRyb2xUeXBlLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWAsIGVycm9yLCBcImpzeENvbnRyb2xcIik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0XHR0YXJnZXRDb250cm9sID0gdGFyZ2V0Q29udHJvbEluc3RhbmNlO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBDb250cm9sVHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0Y29uc3QgY29udHJvbFR5cGVGbiA9IENvbnRyb2xUeXBlO1xuXHRcdHRhcmdldENvbnRyb2wgPSBjb250cm9sVHlwZUZuKHNldHRpbmdzIGFzICRDb250cm9sU2V0dGluZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHRhcmdldENvbnRyb2wgPSBuZXcgVGV4dCh7IHRleHQ6IFwiTWlzc2luZyBjb21wb25lbnQgXCIgKyAoQ29udHJvbFR5cGUgYXMgc3RyaW5nKSB9KTtcblx0fVxuXG5cdHJldHVybiB0YXJnZXRDb250cm9sO1xufTtcblxuZXhwb3J0IGRlZmF1bHQganN4Q29udHJvbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7RUFjQSxNQUFNQSxXQUFXLEdBQUcsYUFBYTtFQUNqQyxNQUFNQyxhQUFhLEdBQUcsZUFBZTtFQUNyQyxNQUFNQyxtQkFBbUIsR0FBRyxVQUMzQkMsbUJBQTRELEVBQzVEQyxlQUF1QixFQUN2QkMsS0FBMEMsRUFDbkM7SUFDUCxJQUFJQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsSUFBSSxPQUFPRCxLQUFLLEtBQUssUUFBUSxFQUFFO01BQ3ZFO0lBQ0Q7SUFDQSxJQUFJLENBQUNGLG1CQUFtQixDQUFDQyxlQUFlLENBQUMsRUFBRTtNQUMxQ0QsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7SUFDMUM7SUFDQSxJQUFJRyxnQkFBZ0IsQ0FBQ0YsS0FBSyxDQUFDLEVBQUU7TUFDNUJGLG1CQUFtQixDQUFDQyxlQUFlLENBQUMsQ0FBQ0ksSUFBSSxDQUFDSCxLQUFLLENBQUM7SUFDakQsQ0FBQyxNQUFNLElBQUlJLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTCxLQUFLLENBQUMsRUFBRTtNQUNoQ0EsS0FBSyxDQUFDTSxPQUFPLENBQUVDLFFBQVEsSUFBSztRQUMzQlYsbUJBQW1CLENBQUNDLG1CQUFtQixFQUFFQyxlQUFlLEVBQUVRLFFBQVEsQ0FBQztNQUNwRSxDQUFDLENBQUM7SUFDSCxDQUFDLE1BQU0sSUFBSSxPQUFPUCxLQUFLLEtBQUssVUFBVSxFQUFFO01BQ3ZDRixtQkFBbUIsQ0FBQ0MsZUFBZSxDQUFDLEdBQUdDLEtBQUs7SUFDN0MsQ0FBQyxNQUFNO01BQ05RLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxLQUFLLENBQUMsQ0FBQ00sT0FBTyxDQUFFSSxRQUFRLElBQUs7UUFDeENiLG1CQUFtQixDQUFDQyxtQkFBbUIsRUFBRVksUUFBUSxFQUFFVixLQUFLLENBQUNVLFFBQVEsQ0FBQyxDQUFDO01BQ3BFLENBQUMsQ0FBQztJQUNIO0VBQ0QsQ0FBQztFQUNELE1BQU1SLGdCQUFnQixHQUFHLFVBQVVTLFFBQWtCLEVBQXVCO0lBQUE7SUFDM0UsT0FBUUEsUUFBUSxhQUFSQSxRQUFRLCtCQUFULFFBQUNBLFFBQVEsRUFBY0MsR0FBRyx5Q0FBMUIsZ0JBQTZCLHFCQUFxQixDQUFDO0VBQzNELENBQUM7RUFDRCxNQUFNQyxVQUFVLEdBQUcsVUFBVUYsUUFBb0MsRUFBeUM7SUFDekcsT0FBTyxDQUFDLEVBQUVBLFFBQVEsYUFBUkEsUUFBUSxlQUFSQSxRQUFRLENBQXFCRyxXQUFXO0VBQ25ELENBQUM7RUFFRCxTQUFTQyxtQkFBbUIsQ0FBQ0MsUUFBK0IsRUFBRUMsU0FBa0MsRUFBUTtJQUN2RyxNQUFNQyxvQkFBb0IsR0FBR0YsUUFBUSxDQUFDRyxrQkFBa0IsRUFBRTtJQUMxRCxNQUFNQyxzQkFBc0IsR0FBR0osUUFBUSxDQUFDSyx5QkFBeUIsRUFBRTtJQUNuRSxNQUFNdkIsbUJBQTRELEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFRCxtQkFBbUIsQ0FBQ0MsbUJBQW1CLEVBQUVzQixzQkFBc0IsRUFBRUgsU0FBUyxDQUFDTixRQUFRLENBQXVDO0lBQzFILE9BQU9NLFNBQVMsQ0FBQ04sUUFBUTtJQUN6QjtJQUNBSCxNQUFNLENBQUNDLElBQUksQ0FBQ1Msb0JBQW9CLENBQUMsQ0FBQ1osT0FBTyxDQUFFUCxlQUFlLElBQUs7TUFDOUQsSUFBSUQsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxLQUFLRSxTQUFTLEVBQUU7UUFDdkQsSUFBSWdCLFNBQVMsQ0FBQ0ssY0FBYyxDQUFDdkIsZUFBZSxDQUFDLEVBQUU7VUFDOUMsSUFBSSxPQUFPa0IsU0FBUyxDQUFDbEIsZUFBZSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ25Ea0IsU0FBUyxDQUFDbEIsZUFBZSxDQUFDLEdBQUc7Y0FDNUJ3QixJQUFJLEVBQUVOLFNBQVMsQ0FBQ2xCLGVBQWU7WUFDaEMsQ0FBQztVQUNGO1VBQ0E7VUFDQSxJQUFJLE9BQU9ELG1CQUFtQixDQUFDQyxlQUFlLENBQUMsS0FBSyxVQUFVLEVBQUU7WUFDOURrQixTQUFTLENBQUNsQixlQUFlLENBQUMsQ0FBMkJ5QixPQUFPLEdBQUcxQixtQkFBbUIsQ0FDbEZDLGVBQWUsQ0FDUTtVQUN6QixDQUFDLE1BQU07WUFDTGtCLFNBQVMsQ0FBQ2xCLGVBQWUsQ0FBQyxDQUF1QzBCLFFBQVEsR0FBRzNCLG1CQUFtQixDQUFDQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDckg7UUFDRCxDQUFDLE1BQU07VUFDTmtCLFNBQVMsQ0FBQ2xCLGVBQWUsQ0FBQyxHQUFHRCxtQkFBbUIsQ0FBQ0MsZUFBZSxDQUFDO1FBQ2xFO01BQ0Q7SUFDRCxDQUFDLENBQUM7RUFDSDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsU0FBUzJCLGlCQUFpQixDQUFDVixRQUErQixFQUFFVyxRQUFpQyxFQUFvQztJQUNoSSxJQUFJQyxXQUFrQztJQUN0QyxNQUFNQyxjQUFnRCxHQUFHLENBQUMsQ0FBQztJQUMzRCxLQUFLRCxXQUFXLElBQUlELFFBQVEsRUFBRTtNQUM3QixNQUFNRyxLQUFLLEdBQUdILFFBQVEsQ0FBQ0MsV0FBVyxDQUFDO01BQ25DLElBQUlHLDBCQUEwQixDQUFDRCxLQUFLLENBQUMsRUFBRTtRQUN0QyxNQUFNRSx3QkFBMkQsR0FBR0YsS0FBSztRQUN6RSxJQUFJRyxVQUFVLENBQUNELHdCQUF3QixDQUFDLEVBQUU7VUFDekNMLFFBQVEsQ0FBQ0MsV0FBVyxDQUFDLEdBQUdNLGVBQWUsQ0FBQ0Ysd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7UUFDckYsQ0FBQyxNQUFNO1VBQ05MLFFBQVEsQ0FBQ0MsV0FBVyxDQUFDLEdBQUdPLGlCQUFpQixDQUFDSCx3QkFBd0IsQ0FBQztRQUNwRTtNQUNELENBQUMsTUFBTSxJQUFJRixLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLElBQUtBLEtBQUssQ0FBc0JNLElBQUksRUFBRTtRQUMzRlAsY0FBYyxDQUFDRCxXQUFXLENBQUMsR0FBR0UsS0FBeUI7UUFDdkQsT0FBT0gsUUFBUSxDQUFDQyxXQUFXLENBQUM7TUFDN0IsQ0FBQyxNQUFNLElBQUksT0FBT0UsS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDQSxLQUFLLENBQUNPLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUFBO1FBQy9ELE1BQU1DLFlBQVksNEJBQUl0QixRQUFRLENBQUN1QixnQkFBZ0IsRUFBRSxDQUFDWCxXQUFXLENBQUMsb0ZBQXpDLGlEQUFzRVksT0FBTywyREFBN0UsbURBQWlGO1FBQ3RHLElBQUlGLFlBQVksSUFBSUEsWUFBWSxZQUFZRyxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDQyxRQUFRLENBQUNKLFlBQVksQ0FBQ0ssT0FBTyxFQUFFLENBQUMsRUFBRTtVQUNySGhCLFFBQVEsQ0FBQ0MsV0FBVyxDQUFDLEdBQUdVLFlBQVksQ0FBQ00sVUFBVSxDQUFDZCxLQUFLLENBQUM7UUFDdkQ7TUFDRDtJQUNEO0lBQ0EsT0FBT0QsY0FBYztFQUN0Qjs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTZ0IsY0FBYyxDQUFDN0IsUUFBK0IsRUFBRVcsUUFBaUMsRUFBUTtJQUNqRyxNQUFNbUIsZUFBZSxHQUFHbkIsUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxJQUFJbUIsZUFBZSxFQUFFO01BQ3BCLE1BQU0sQ0FBQ0MsT0FBTyxFQUFFQyxTQUFTLENBQUMsR0FBSUYsZUFBZSxDQUFZRyxLQUFLLENBQUMsR0FBRyxDQUFDO01BQ25FLE1BQU1DLEtBQUssR0FBR2xDLFFBQVEsQ0FBQ21DLFlBQVksRUFBRSxDQUFDSCxTQUFTLENBQUM7TUFDaEQsSUFBSUUsS0FBSyxJQUFJSCxPQUFPLENBQUNWLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4Q1YsUUFBUSxDQUFDdUIsS0FBSyxDQUFDRSxJQUFJLENBQUMsR0FBR0Msb0JBQW9CLENBQUNDLG1CQUFtQixDQUFDUCxPQUFPLENBQUM7TUFDekU7SUFDRDtJQUNBLE9BQU9wQixRQUFRLENBQUMsYUFBYSxDQUFDO0VBQy9CO0VBRUEsTUFBTTRCLFVBQVUsR0FBRyxVQUNsQkMsV0FBaUQsRUFDakQ3QixRQVFDLEVBQ0Q4QixHQUFXLEVBQ1hDLFVBQXNCLEVBQ1k7SUFDbEMsSUFBSUMsYUFBOEM7SUFFbEQsSUFBS0gsV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBK0JJLFVBQVUsRUFBRTtNQUMxREQsYUFBYSxHQUFHaEMsUUFBUSxDQUFDaEIsUUFBK0I7SUFDekQsQ0FBQyxNQUFNLElBQUs2QyxXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUF5Q0ssU0FBUyxFQUFFO01BQUE7TUFDMUUsTUFBTUMsb0JBQW9CLEdBQUcsSUFBS04sV0FBVyxDQUFpQzdCLFFBQVEsQ0FBZ0M7TUFDdEhnQyxhQUFhLDRCQUFHRyxvQkFBb0IsQ0FBQ0MsVUFBVSwwREFBL0IsMkJBQUFELG9CQUFvQixFQUFjSixVQUFVLENBQUNNLElBQUksRUFBR04sVUFBVSxDQUFDTyxZQUFZLENBQUU7SUFDOUYsQ0FBQyxNQUFNLElBQUlwRCxVQUFVLENBQUMyQyxXQUFXLENBQUMsRUFBRTtNQUNuQyxNQUFNeEMsUUFBUSxHQUFHd0MsV0FBVyxDQUFDMUMsV0FBVyxFQUFFO01BQzFDLElBQUkyQyxHQUFHLEtBQUt4RCxTQUFTLEVBQUU7UUFDdEIwQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUc4QixHQUFHO01BQ3RCO01BQ0FaLGNBQWMsQ0FBQzdCLFFBQVEsRUFBRVcsUUFBUSxDQUFDO01BQ2xDWixtQkFBbUIsQ0FBQ0MsUUFBUSxFQUFFVyxRQUFRLENBQUM7TUFDdkMsTUFBTXVDLFFBQVEsR0FBR3ZDLFFBQVEsQ0FBQ3dDLEtBQUs7TUFDL0IsTUFBTUMsTUFBTSxHQUFHekMsUUFBUSxDQUFDMEMsR0FBRztNQUMzQixNQUFNQyxVQUFVLEdBQUczQyxRQUFRLENBQUM0QyxPQUFPO01BQ25DLE1BQU1DLFVBQVUsR0FBRzdDLFFBQVEsQ0FBQ2hDLFdBQVcsQ0FBQztNQUN4QyxNQUFNOEUsWUFBWSxHQUFHOUMsUUFBUSxDQUFDL0IsYUFBYSxDQUFDO01BQzVDLE9BQU8rQixRQUFRLENBQUMwQyxHQUFHO01BQ25CLE9BQU8xQyxRQUFRLENBQUN3QyxLQUFLO01BQ3JCLE9BQU94QyxRQUFRLENBQUM0QyxPQUFPO01BQ3ZCLE9BQU81QyxRQUFRLENBQUNoQyxXQUFXLENBQUM7TUFDNUIsT0FBT2dDLFFBQVEsQ0FBQy9CLGFBQWEsQ0FBQztNQUM5QixNQUFNaUMsY0FBYyxHQUFHSCxpQkFBaUIsQ0FBQ1YsUUFBUSxFQUFFVyxRQUFRLENBQUM7TUFDNUQsTUFBTStDLHFCQUFxQixHQUFHLElBQUlsQixXQUFXLENBQUM3QixRQUFRLENBQXFCO01BQzNFLElBQUl1QyxRQUFRLEVBQUU7UUFDYlEscUJBQXFCLENBQUNDLGFBQWEsQ0FBQ1QsUUFBUSxDQUFDO01BQzlDO01BQ0EsSUFBSUUsTUFBTSxFQUFFO1FBQ1hBLE1BQU0sQ0FBQ1EsVUFBVSxDQUFDRixxQkFBcUIsQ0FBaUI7TUFDekQ7TUFDQSxNQUFNRyxjQUFjLEdBQUdILHFCQUFxQixDQUFDSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7TUFDakYsSUFBSU4sVUFBVSxFQUFFO1FBQ2ZLLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbENBLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQ0UsUUFBUSxHQUFHUCxVQUFVO01BQ2xEO01BQ0EsSUFBSUMsWUFBWSxFQUFFO1FBQ2pCSSxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDQSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUNHLFVBQVUsR0FBR1AsWUFBWTtNQUN0RDtNQUNBLElBQUlqRSxNQUFNLENBQUNDLElBQUksQ0FBQ29FLGNBQWMsQ0FBQyxDQUFDSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNDUCxxQkFBcUIsQ0FBQ0ksSUFBSSxDQUFDLHdCQUF3QixFQUFFRCxjQUFjLENBQUM7TUFDckU7TUFFQSxJQUFJUCxVQUFVLEVBQUU7UUFDZixJQUFJLE9BQU9BLFVBQVUsS0FBSyxRQUFRLEVBQUU7VUFDbkNJLHFCQUFxQixDQUFDUSxXQUFXLENBQUNaLFVBQVUsQ0FBQztRQUM5QyxDQUFDLE1BQU07VUFDTjtVQUNBOUQsTUFBTSxDQUFDQyxJQUFJLENBQUM2RCxVQUFVLENBQUMsQ0FBQ2hFLE9BQU8sQ0FBRTZFLGFBQWEsSUFBSztZQUNsRFQscUJBQXFCLENBQUNRLFdBQVcsQ0FBQztjQUFFRSxLQUFLLEVBQUVELGFBQWE7Y0FBRTVELElBQUksRUFBRStDLFVBQVUsQ0FBQ2EsYUFBYTtZQUFFLENBQUMsQ0FBQztVQUM3RixDQUFDLENBQUM7UUFDSDtNQUNEO01BQ0EsS0FBSyxNQUFNRSxpQkFBaUIsSUFBSXhELGNBQWMsRUFBRTtRQUMvQ0EsY0FBYyxDQUFDd0QsaUJBQWlCLENBQUMsQ0FDL0JqRCxJQUFJLENBQUVOLEtBQUssSUFBSztVQUNoQixPQUFPNEMscUJBQXFCLENBQUNZLFdBQVcsQ0FBQ0QsaUJBQWlCLEVBQUV2RCxLQUFLLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQ0R5RCxLQUFLLENBQUVDLEtBQUssSUFBSztVQUNqQkMsR0FBRyxDQUFDRCxLQUFLLENBQUUseUJBQXdCSCxpQkFBa0IsT0FBTTdCLFdBQVcsQ0FBQzFDLFdBQVcsRUFBRSxDQUFDNkIsT0FBTyxFQUFHLEVBQUMsRUFBRTZDLEtBQUssRUFBRSxZQUFZLENBQUM7UUFDdkgsQ0FBQyxDQUFDO01BQ0o7TUFDQTdCLGFBQWEsR0FBR2UscUJBQXFCO0lBQ3RDLENBQUMsTUFBTSxJQUFJLE9BQU9sQixXQUFXLEtBQUssVUFBVSxFQUFFO01BQzdDLE1BQU1rQyxhQUFhLEdBQUdsQyxXQUFXO01BQ2pDRyxhQUFhLEdBQUcrQixhQUFhLENBQUMvRCxRQUFRLENBQXFCO0lBQzVELENBQUMsTUFBTTtNQUNOZ0MsYUFBYSxHQUFHLElBQUlnQyxJQUFJLENBQUM7UUFBRUMsSUFBSSxFQUFFLG9CQUFvQixHQUFJcEM7TUFBdUIsQ0FBQyxDQUFDO0lBQ25GO0lBRUEsT0FBT0csYUFBYTtFQUNyQixDQUFDO0VBQUMsT0FFYUosVUFBVTtBQUFBIn0=
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGTF9ERUxFR0FURSIsIkRUX0RFU0lHTlRJTUUiLCJhZGRDaGlsZEFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25DaGlsZHJlbiIsImFnZ3JlZ2F0aW9uTmFtZSIsImNoaWxkIiwidW5kZWZpbmVkIiwiaXNDaGlsZEFuRWxlbWVudCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwic3ViQ2hpbGQiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRLZXkiLCJjaGlsZHJlbiIsIl9pc0EiLCJfcmVmIiwiaXNBIiwiY2FsbCIsImlzQUNvbnRyb2wiLCJnZXRNZXRhZGF0YSIsInByb2Nlc3NBZ2dyZWdhdGlvbnMiLCJtZXRhZGF0YSIsIm1TZXR0aW5ncyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsInBhdGgiLCJmYWN0b3J5IiwidGVtcGxhdGUiLCJwcm9jZXNzUHJvcGVydGllcyIsInNldHRpbmdzIiwic2V0dGluZ3NLZXkiLCJsYXRlUHJvcGVydGllcyIsInZhbHVlIiwiaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24iLCJiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24iLCJpc0NvbnN0YW50IiwiY29tcGlsZUNvbnN0YW50IiwiY29tcGlsZUV4cHJlc3Npb24iLCJ0aGVuIiwic3RhcnRzV2l0aCIsIl9tZXRhZGF0YSRnZXRBbGxQcm9wZSIsIl9tZXRhZGF0YSRnZXRBbGxQcm9wZTIiLCJfbWV0YWRhdGEkZ2V0QWxsUHJvcGUzIiwicHJvcGVydHlUeXBlIiwiZ2V0QWxsUHJvcGVydGllcyIsImdldFR5cGUiLCJEYXRhVHlwZSIsImluY2x1ZGVzIiwiZ2V0TmFtZSIsInBhcnNlVmFsdWUiLCJfX2JpbmRpbmdJbmZvIiwicHJvY2Vzc0NvbW1hbmQiLCJjb21tYW5kUHJvcGVydHkiLCJjb21tYW5kIiwiZXZlbnROYW1lIiwic3BsaXQiLCJldmVudCIsImdldEFsbEV2ZW50cyIsIm5hbWUiLCJFdmVudEhhbmRsZXJSZXNvbHZlciIsInJlc29sdmVFdmVudEhhbmRsZXIiLCJqc3hDb250cm9sIiwiQ29udHJvbFR5cGUiLCJrZXkiLCJqc3hDb250ZXh0IiwidGFyZ2V0Q29udHJvbCIsImlzRnJhZ21lbnQiLCJpc1J1bnRpbWUiLCJfcnVudGltZUJ1aWxkaW5nQmxvY2siLCJydW50aW1lQnVpbGRpbmdCbG9jayIsImdldENvbnRlbnQiLCJ2aWV3IiwiYXBwQ29tcG9uZW50IiwiY2xhc3NEZWYiLCJjbGFzcyIsInJlZkRlZiIsInJlZiIsImJpbmRpbmdEZWYiLCJiaW5kaW5nIiwiZmxEZWxlZ2F0ZSIsImR0RGVzaWdudGltZSIsInRhcmdldENvbnRyb2xJbnN0YW5jZSIsImFkZFN0eWxlQ2xhc3MiLCJzZXRDdXJyZW50IiwiY3VzdG9tU2V0dGluZ3MiLCJkYXRhIiwiZGVsZWdhdGUiLCJkZXNpZ250aW1lIiwibGVuZ3RoIiwiYmluZGluZ0luZm8iLCJiaW5kaW5nUGFyc2VyIiwiYmluZEVsZW1lbnQiLCJtb2RlbCIsImJpbmRpbmdEZWZLZXkiLCJsYXRlUHJvcGVydGllc0tleSIsInNldFByb3BlcnR5IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsImNvbnRyb2xUeXBlRm4iLCJUZXh0IiwidGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LWNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUNvbnN0YW50LCBjb21waWxlRXhwcmVzc2lvbiwgaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIGlzQ29uc3RhbnQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ0luZm9Ib2xkZXIsIE5vbkFic3RyYWN0Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xQcm9wZXJ0aWVzLCBKU1hDb250ZXh0LCBOb25Db250cm9sUHJvcGVydGllcywgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHR5cGUgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZVwiO1xuaW1wb3J0IHR5cGUgUnVudGltZUJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvUnVudGltZUJ1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5pbXBvcnQgRGF0YVR5cGUgZnJvbSBcInNhcC91aS9iYXNlL0RhdGFUeXBlXCI7XG5pbXBvcnQgeyBiaW5kaW5nUGFyc2VyIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3RNZXRhZGF0YSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdE1ldGFkYXRhXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIEVsZW1lbnQsIGRlZmF1bHQgYXMgVUk1RWxlbWVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgRXZlbnRIYW5kbGVyUmVzb2x2ZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9FdmVudEhhbmRsZXJSZXNvbHZlclwiO1xuXG5jb25zdCBGTF9ERUxFR0FURSA9IFwiZmw6ZGVsZWdhdGVcIjtcbmNvbnN0IERUX0RFU0lHTlRJTUUgPSBcImR0OmRlc2lnbnRpbWVcIjtcbmNvbnN0IGFkZENoaWxkQWdncmVnYXRpb24gPSBmdW5jdGlvbiAoXG5cdGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IFJlY29yZDxzdHJpbmcsIChzdHJpbmcgfCBVSTVFbGVtZW50KVtdPixcblx0YWdncmVnYXRpb25OYW1lOiBzdHJpbmcsXG5cdGNoaWxkPzogc3RyaW5nIHwgVUk1RWxlbWVudCB8IFVJNUVsZW1lbnRbXVxuKTogdm9pZCB7XG5cdGlmIChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjaGlsZCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoIWFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSkge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9IFtdO1xuXHR9XG5cdGlmIChpc0NoaWxkQW5FbGVtZW50KGNoaWxkKSkge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXS5wdXNoKGNoaWxkKTtcblx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuXHRcdGNoaWxkLmZvckVhY2goKHN1YkNoaWxkKSA9PiB7XG5cdFx0XHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGFnZ3JlZ2F0aW9uTmFtZSwgc3ViQ2hpbGQpO1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZCA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0YWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdID0gY2hpbGQ7XG5cdH0gZWxzZSB7XG5cdFx0T2JqZWN0LmtleXMoY2hpbGQpLmZvckVhY2goKGNoaWxkS2V5KSA9PiB7XG5cdFx0XHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGNoaWxkS2V5LCBjaGlsZFtjaGlsZEtleV0pO1xuXHRcdH0pO1xuXHR9XG59O1xuY29uc3QgaXNDaGlsZEFuRWxlbWVudCA9IGZ1bmN0aW9uIChjaGlsZHJlbj86IHVua25vd24pOiBjaGlsZHJlbiBpcyBFbGVtZW50IHtcblx0cmV0dXJuIChjaGlsZHJlbiBhcyBFbGVtZW50KT8uaXNBPy4oXCJzYXAudWkuY29yZS5FbGVtZW50XCIpO1xufTtcbmNvbnN0IGlzQUNvbnRyb2wgPSBmdW5jdGlvbiAoY2hpbGRyZW4/OiB0eXBlb2YgQ29udHJvbCB8IEZ1bmN0aW9uKTogY2hpbGRyZW4gaXMgTm9uQWJzdHJhY3RDbGFzczxDb250cm9sPiB7XG5cdHJldHVybiAhIShjaGlsZHJlbiBhcyB0eXBlb2YgQ29udHJvbCk/LmdldE1ldGFkYXRhO1xufTtcblxuZnVuY3Rpb24gcHJvY2Vzc0FnZ3JlZ2F0aW9ucyhtZXRhZGF0YTogTWFuYWdlZE9iamVjdE1ldGFkYXRhLCBtU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG5cdGNvbnN0IG1ldGFkYXRhQWdncmVnYXRpb25zID0gbWV0YWRhdGEuZ2V0QWxsQWdncmVnYXRpb25zKCk7XG5cdGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUgPSBtZXRhZGF0YS5nZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCk7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IFJlY29yZDxzdHJpbmcsIChzdHJpbmcgfCBVSTVFbGVtZW50KVtdPiA9IHt9O1xuXHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUsIG1TZXR0aW5ncy5jaGlsZHJlbiBhcyBzdHJpbmcgfCBVSTVFbGVtZW50IHwgVUk1RWxlbWVudFtdKTtcblx0ZGVsZXRlIG1TZXR0aW5ncy5jaGlsZHJlbjtcblx0Ly8gZmluZCBvdXQgd2hpY2ggYWdncmVnYXRpb24gYXJlIGJvdW5kIChib3RoIGluIGNoaWxkcmVuIGFuZCBkaXJlY3RseSB1bmRlciBpdClcblx0T2JqZWN0LmtleXMobWV0YWRhdGFBZ2dyZWdhdGlvbnMpLmZvckVhY2goKGFnZ3JlZ2F0aW9uTmFtZSkgPT4ge1xuXHRcdGlmIChhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhZ2dyZWdhdGlvbk5hbWUpKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgbVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHRtU2V0dGluZ3NbYWdncmVnYXRpb25OYW1lXSA9IHtcblx0XHRcdFx0XHRcdHBhdGg6IG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodHlwZW9mIGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0KG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdIGFzIHsgZmFjdG9yeTogRnVuY3Rpb24gfSkuZmFjdG9yeSA9IGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bXG5cdFx0XHRcdFx0XHRhZ2dyZWdhdGlvbk5hbWVcblx0XHRcdFx0XHRdIGFzIHVua25vd24gYXMgRnVuY3Rpb247XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0KG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdIGFzIHsgdGVtcGxhdGU6IHN0cmluZyB8IFVJNUVsZW1lbnQgfSkudGVtcGxhdGUgPSBhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV1bMF07XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdID0gYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBwcm9wZXJ0aWVzLlxuICpcbiAqIElmIHRoZSBwcm9wZXJ0eSBpcyBhIGJpbmRpbmdUb29sa2l0IGV4cHJlc3Npb24gd2UgbmVlZCB0byBjb21waWxlIGl0LlxuICogRWxzZSBpZiB0aGUgcHJvcGVydHkgaXMgc2V0IGFzIHN0cmluZyAoY29tcGlsZWQgYmluZGluZyBleHByZXNzaW9uIHJldHVybnMgc3RyaW5nIGJ5IGRlZmF1bHQgZXZlbiBpZiBpdCdzIGEgYm9vbGVhbiwgaW50LCBldGMuKSBhbmQgaXQgZG9lc24ndCBtYXRjaCB3aXRoIGV4cGVjdGVkXG4gKiBmb3JtYXQgdGhlIHZhbHVlIGlzIHBhcnNlZCB0byBwcm92aWRlIGV4cGVjdGVkIGZvcm1hdC5cbiAqIEBwYXJhbSBtZXRhZGF0YSBNZXRhZGF0YSBvZiB0aGUgY29udHJvbFxuICogQHBhcmFtIHNldHRpbmdzIFNldHRpbmdzIG9mIHRoZSBjb250cm9sXG4gKiBAcmV0dXJucyBBIG1hcCBvZiBsYXRlIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIGF3YWl0ZWQgYWZ0ZXIgdGhlIGNvbnRyb2wgaXMgY3JlYXRlZFxuICovXG5mdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllcyhtZXRhZGF0YTogTWFuYWdlZE9iamVjdE1ldGFkYXRhLCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCBQcm9taXNlPHVua25vd24+PiB7XG5cdGxldCBzZXR0aW5nc0tleToga2V5b2YgdHlwZW9mIHNldHRpbmdzO1xuXHRjb25zdCBsYXRlUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTx1bmtub3duPj4gPSB7fTtcblx0Zm9yIChzZXR0aW5nc0tleSBpbiBzZXR0aW5ncykge1xuXHRcdGNvbnN0IHZhbHVlID0gc2V0dGluZ3Nbc2V0dGluZ3NLZXldO1xuXHRcdGlmIChpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbih2YWx1ZSkpIHtcblx0XHRcdGNvbnN0IGJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+ID0gdmFsdWU7XG5cdFx0XHRpZiAoaXNDb25zdGFudChiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24pKSB7XG5cdFx0XHRcdHNldHRpbmdzW3NldHRpbmdzS2V5XSA9IGNvbXBpbGVDb25zdGFudChiaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIGZhbHNlLCB0cnVlLCB0cnVlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldHRpbmdzW3NldHRpbmdzS2V5XSA9IGNvbXBpbGVFeHByZXNzaW9uKGJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgKHZhbHVlIGFzIFByb21pc2U8dW5rbm93bj4pLnRoZW4pIHtcblx0XHRcdGxhdGVQcm9wZXJ0aWVzW3NldHRpbmdzS2V5XSA9IHZhbHVlIGFzIFByb21pc2U8dW5rbm93bj47XG5cdFx0XHRkZWxldGUgc2V0dGluZ3Nbc2V0dGluZ3NLZXldO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICF2YWx1ZS5zdGFydHNXaXRoKFwie1wiKSkge1xuXHRcdFx0Y29uc3QgcHJvcGVydHlUeXBlID0gKG1ldGFkYXRhLmdldEFsbFByb3BlcnRpZXMoKVtzZXR0aW5nc0tleV0gYXMgeyBnZXRUeXBlPzogRnVuY3Rpb24gfSk/LmdldFR5cGU/LigpO1xuXHRcdFx0aWYgKHByb3BlcnR5VHlwZSAmJiBwcm9wZXJ0eVR5cGUgaW5zdGFuY2VvZiBEYXRhVHlwZSAmJiBbXCJib29sZWFuXCIsIFwiaW50XCIsIFwiZmxvYXRcIl0uaW5jbHVkZXMocHJvcGVydHlUeXBlLmdldE5hbWUoKSkpIHtcblx0XHRcdFx0c2V0dGluZ3Nbc2V0dGluZ3NLZXldID0gcHJvcGVydHlUeXBlLnBhcnNlVmFsdWUodmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICh2YWx1ZSBhcyBCaW5kaW5nSW5mb0hvbGRlcikuX19iaW5kaW5nSW5mbykge1xuXHRcdFx0c2V0dGluZ3Nbc2V0dGluZ3NLZXldID0gKHZhbHVlIGFzIEJpbmRpbmdJbmZvSG9sZGVyKS5fX2JpbmRpbmdJbmZvO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbGF0ZVByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBjb21tYW5kLlxuICpcbiAqIFJlc29sdmVzIHRoZSBjb21tYW5kIHNldCBvbiB0aGUgY29udHJvbCB2aWEgdGhlIGludHJpbnNpYyBjbGFzcyBhdHRyaWJ1dGUgXCJqc3g6Y29tbWFuZFwiLlxuICogSWYgbm8gY29tbWFuZCBoYXMgYmVlbiBzZXQgb3IgdGhlIHRhcmdldGVkIGV2ZW50IGRvZXNuJ3QgZXhpc3QsIG5vIGNvbmZpZ3VyYXRpb24gaXMgc2V0LlxuICogQHBhcmFtIG1ldGFkYXRhIE1ldGFkYXRhIG9mIHRoZSBjb250cm9sXG4gKiBAcGFyYW0gc2V0dGluZ3MgU2V0dGluZ3Mgb2YgdGhlIGNvbnRyb2xcbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0NvbW1hbmQobWV0YWRhdGE6IE1hbmFnZWRPYmplY3RNZXRhZGF0YSwgc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG5cdGNvbnN0IGNvbW1hbmRQcm9wZXJ0eSA9IHNldHRpbmdzW1wianN4OmNvbW1hbmRcIl07XG5cdGlmIChjb21tYW5kUHJvcGVydHkpIHtcblx0XHRjb25zdCBbY29tbWFuZCwgZXZlbnROYW1lXSA9IChjb21tYW5kUHJvcGVydHkgYXMgc3RyaW5nKS5zcGxpdChcInxcIik7XG5cdFx0Y29uc3QgZXZlbnQgPSBtZXRhZGF0YS5nZXRBbGxFdmVudHMoKVtldmVudE5hbWVdO1xuXHRcdGlmIChldmVudCAmJiBjb21tYW5kLnN0YXJ0c1dpdGgoXCJjbWQ6XCIpKSB7XG5cdFx0XHRzZXR0aW5nc1tldmVudC5uYW1lXSA9IEV2ZW50SGFuZGxlclJlc29sdmVyLnJlc29sdmVFdmVudEhhbmRsZXIoY29tbWFuZCk7XG5cdFx0fVxuXHR9XG5cdGRlbGV0ZSBzZXR0aW5nc1tcImpzeDpjb21tYW5kXCJdO1xufVxuXG5jb25zdCBqc3hDb250cm9sID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBFbGVtZW50Pihcblx0Q29udHJvbFR5cGU6IE5vbkFic3RyYWN0Q2xhc3M8Q29udHJvbD4gfCBGdW5jdGlvbixcblx0c2V0dGluZ3M6IE5vbkNvbnRyb2xQcm9wZXJ0aWVzPFQ+ICYge1xuXHRcdGtleTogc3RyaW5nO1xuXHRcdGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+O1xuXHRcdHJlZj86IFJlZjxUPjtcblx0XHRiaW5kaW5nPzogc3RyaW5nO1xuXHRcdGNsYXNzPzogc3RyaW5nO1xuXHRcdFtGTF9ERUxFR0FURV0/OiBzdHJpbmc7XG5cdFx0W0RUX0RFU0lHTlRJTUVdPzogc3RyaW5nO1xuXHR9LFxuXHRrZXk6IHN0cmluZyxcblx0anN4Q29udGV4dDogSlNYQ29udGV4dFxuKTogQ29udHJvbCB8IENvbnRyb2xbXSB8IHVuZGVmaW5lZCB7XG5cdGxldCB0YXJnZXRDb250cm9sOiBDb250cm9sIHwgQ29udHJvbFtdIHwgdW5kZWZpbmVkO1xuXG5cdGlmICgoQ29udHJvbFR5cGUgYXMgeyBpc0ZyYWdtZW50PzogYm9vbGVhbiB9KT8uaXNGcmFnbWVudCkge1xuXHRcdHRhcmdldENvbnRyb2wgPSBzZXR0aW5ncy5jaGlsZHJlbiBhcyBDb250cm9sIHwgQ29udHJvbFtdO1xuXHR9IGVsc2UgaWYgKChDb250cm9sVHlwZSBhcyB0eXBlb2YgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlKT8uaXNSdW50aW1lKSB7XG5cdFx0Y29uc3QgcnVudGltZUJ1aWxkaW5nQmxvY2sgPSBuZXcgKENvbnRyb2xUeXBlIGFzIHR5cGVvZiBSdW50aW1lQnVpbGRpbmdCbG9jaykoc2V0dGluZ3MgYXMgdW5rbm93biBhcyAkQ29udHJvbFNldHRpbmdzKTtcblx0XHR0YXJnZXRDb250cm9sID0gcnVudGltZUJ1aWxkaW5nQmxvY2suZ2V0Q29udGVudD8uKGpzeENvbnRleHQudmlldyEsIGpzeENvbnRleHQuYXBwQ29tcG9uZW50ISk7XG5cdH0gZWxzZSBpZiAoaXNBQ29udHJvbChDb250cm9sVHlwZSkpIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IENvbnRyb2xUeXBlLmdldE1ldGFkYXRhKCk7XG5cdFx0aWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRzZXR0aW5nc1tcImtleVwiXSA9IGtleTtcblx0XHR9XG5cdFx0cHJvY2Vzc0NvbW1hbmQobWV0YWRhdGEsIHNldHRpbmdzKTtcblx0XHRwcm9jZXNzQWdncmVnYXRpb25zKG1ldGFkYXRhLCBzZXR0aW5ncyk7XG5cdFx0Y29uc3QgY2xhc3NEZWYgPSBzZXR0aW5ncy5jbGFzcztcblx0XHRjb25zdCByZWZEZWYgPSBzZXR0aW5ncy5yZWY7XG5cdFx0Y29uc3QgYmluZGluZ0RlZiA9IHNldHRpbmdzLmJpbmRpbmc7XG5cdFx0Y29uc3QgZmxEZWxlZ2F0ZSA9IHNldHRpbmdzW0ZMX0RFTEVHQVRFXTtcblx0XHRjb25zdCBkdERlc2lnbnRpbWUgPSBzZXR0aW5nc1tEVF9ERVNJR05USU1FXTtcblx0XHRkZWxldGUgc2V0dGluZ3MucmVmO1xuXHRcdGRlbGV0ZSBzZXR0aW5ncy5jbGFzcztcblx0XHRkZWxldGUgc2V0dGluZ3MuYmluZGluZztcblx0XHRkZWxldGUgc2V0dGluZ3NbRkxfREVMRUdBVEVdO1xuXHRcdGRlbGV0ZSBzZXR0aW5nc1tEVF9ERVNJR05USU1FXTtcblx0XHRjb25zdCBsYXRlUHJvcGVydGllcyA9IHByb2Nlc3NQcm9wZXJ0aWVzKG1ldGFkYXRhLCBzZXR0aW5ncyk7XG5cdFx0Y29uc3QgdGFyZ2V0Q29udHJvbEluc3RhbmNlID0gbmV3IENvbnRyb2xUeXBlKHNldHRpbmdzIGFzICRDb250cm9sU2V0dGluZ3MpO1xuXHRcdGlmIChjbGFzc0RlZikge1xuXHRcdFx0dGFyZ2V0Q29udHJvbEluc3RhbmNlLmFkZFN0eWxlQ2xhc3MoY2xhc3NEZWYpO1xuXHRcdH1cblx0XHRpZiAocmVmRGVmKSB7XG5cdFx0XHRyZWZEZWYuc2V0Q3VycmVudCh0YXJnZXRDb250cm9sSW5zdGFuY2UgYXMgdW5rbm93biBhcyBUKTtcblx0XHR9XG5cdFx0Y29uc3QgY3VzdG9tU2V0dGluZ3MgPSB0YXJnZXRDb250cm9sSW5zdGFuY2UuZGF0YShcInNhcC11aS1jdXN0b20tc2V0dGluZ3NcIikgPz8ge307XG5cdFx0aWYgKGZsRGVsZWdhdGUpIHtcblx0XHRcdGN1c3RvbVNldHRpbmdzW1wic2FwLnVpLmZsXCJdID8/PSB7fTtcblx0XHRcdGN1c3RvbVNldHRpbmdzW1wic2FwLnVpLmZsXCJdLmRlbGVnYXRlID0gZmxEZWxlZ2F0ZTtcblx0XHR9XG5cdFx0aWYgKGR0RGVzaWdudGltZSkge1xuXHRcdFx0Y3VzdG9tU2V0dGluZ3NbXCJzYXAudWkuZHRcIl0gPz89IHt9O1xuXHRcdFx0Y3VzdG9tU2V0dGluZ3NbXCJzYXAudWkuZHRcIl0uZGVzaWdudGltZSA9IGR0RGVzaWdudGltZTtcblx0XHR9XG5cdFx0aWYgKE9iamVjdC5rZXlzKGN1c3RvbVNldHRpbmdzKS5sZW5ndGggPiAwKSB7XG5cdFx0XHR0YXJnZXRDb250cm9sSW5zdGFuY2UuZGF0YShcInNhcC11aS1jdXN0b20tc2V0dGluZ3NcIiwgY3VzdG9tU2V0dGluZ3MpO1xuXHRcdH1cblxuXHRcdGlmIChiaW5kaW5nRGVmKSB7XG5cdFx0XHRpZiAodHlwZW9mIGJpbmRpbmdEZWYgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0Y29uc3QgYmluZGluZ0luZm8gPSBiaW5kaW5nUGFyc2VyKGJpbmRpbmdEZWYpO1xuXHRcdFx0XHRpZiAoYmluZGluZ0luZm8pIHtcblx0XHRcdFx0XHR0YXJnZXRDb250cm9sSW5zdGFuY2UuYmluZEVsZW1lbnQoeyBtb2RlbDogYmluZGluZ0luZm8ubW9kZWwgPz8gdW5kZWZpbmVkLCBwYXRoOiBiaW5kaW5nSW5mby5wYXRoIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRhcmdldENvbnRyb2xJbnN0YW5jZS5iaW5kRWxlbWVudChiaW5kaW5nRGVmKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFdlIGNvbnNpZGVyIGl0J3MgYW4gb2JqZWN0XG5cdFx0XHRcdE9iamVjdC5rZXlzKGJpbmRpbmdEZWYpLmZvckVhY2goKGJpbmRpbmdEZWZLZXkpID0+IHtcblx0XHRcdFx0XHR0YXJnZXRDb250cm9sSW5zdGFuY2UuYmluZEVsZW1lbnQoeyBtb2RlbDogYmluZGluZ0RlZktleSwgcGF0aDogYmluZGluZ0RlZltiaW5kaW5nRGVmS2V5XSB9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgbGF0ZVByb3BlcnRpZXNLZXkgaW4gbGF0ZVByb3BlcnRpZXMpIHtcblx0XHRcdGxhdGVQcm9wZXJ0aWVzW2xhdGVQcm9wZXJ0aWVzS2V5XVxuXHRcdFx0XHQudGhlbigodmFsdWUpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gdGFyZ2V0Q29udHJvbEluc3RhbmNlLnNldFByb3BlcnR5KGxhdGVQcm9wZXJ0aWVzS2V5LCB2YWx1ZSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoYENvdWxkbid0IHNldCBwcm9wZXJ0eSAke2xhdGVQcm9wZXJ0aWVzS2V5fSBvbiAke0NvbnRyb2xUeXBlLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWAsIGVycm9yLCBcImpzeENvbnRyb2xcIik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0XHR0YXJnZXRDb250cm9sID0gdGFyZ2V0Q29udHJvbEluc3RhbmNlO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBDb250cm9sVHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0Y29uc3QgY29udHJvbFR5cGVGbiA9IENvbnRyb2xUeXBlO1xuXHRcdHRhcmdldENvbnRyb2wgPSBjb250cm9sVHlwZUZuKHNldHRpbmdzIGFzICRDb250cm9sU2V0dGluZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHRhcmdldENvbnRyb2wgPSBuZXcgVGV4dCh7IHRleHQ6IFwiTWlzc2luZyBjb21wb25lbnQgXCIgKyAoQ29udHJvbFR5cGUgYXMgc3RyaW5nKSB9KTtcblx0fVxuXG5cdHJldHVybiB0YXJnZXRDb250cm9sO1xufTtcblxuZXhwb3J0IGRlZmF1bHQganN4Q29udHJvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBZ0JBLE1BQU1BLFdBQVcsR0FBRyxhQUFhO0VBQ2pDLE1BQU1DLGFBQWEsR0FBRyxlQUFlO0VBQ3JDLE1BQU1DLG1CQUFtQixHQUFHLFNBQUFBLENBQzNCQyxtQkFBNEQsRUFDNURDLGVBQXVCLEVBQ3ZCQyxLQUEwQyxFQUNuQztJQUNQLElBQUlBLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0MsU0FBUyxJQUFJLE9BQU9ELEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDdkU7SUFDRDtJQUNBLElBQUksQ0FBQ0YsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxFQUFFO01BQzFDRCxtQkFBbUIsQ0FBQ0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtJQUMxQztJQUNBLElBQUlHLGdCQUFnQixDQUFDRixLQUFLLENBQUMsRUFBRTtNQUM1QkYsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxDQUFDSSxJQUFJLENBQUNILEtBQUssQ0FBQztJQUNqRCxDQUFDLE1BQU0sSUFBSUksS0FBSyxDQUFDQyxPQUFPLENBQUNMLEtBQUssQ0FBQyxFQUFFO01BQ2hDQSxLQUFLLENBQUNNLE9BQU8sQ0FBRUMsUUFBUSxJQUFLO1FBQzNCVixtQkFBbUIsQ0FBQ0MsbUJBQW1CLEVBQUVDLGVBQWUsRUFBRVEsUUFBUSxDQUFDO01BQ3BFLENB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
@@ -1,17 +1,19 @@
1
1
  import Log from "sap/base/Log";
2
2
  import type { BindingToolkitExpression } from "sap/fe/base/BindingToolkit";
3
3
  import { compileConstant, compileExpression, isBindingToolkitExpression, isConstant } from "sap/fe/base/BindingToolkit";
4
- import type { NonAbstractClass } from "sap/fe/base/ClassSupport";
4
+ import type { BindingInfoHolder, NonAbstractClass } from "sap/fe/base/ClassSupport";
5
5
  import type { ControlProperties, JSXContext, NonControlProperties, Ref } from "sap/fe/base/jsx-runtime/jsx";
6
6
  import type BuildingBlockTemplatingBase from "sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase";
7
7
  import type RuntimeBuildingBlock from "sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock";
8
8
  import Text from "sap/m/Text";
9
9
  import DataType from "sap/ui/base/DataType";
10
+ import { bindingParser } from "sap/ui/base/ManagedObject";
10
11
  import type ManagedObjectMetadata from "sap/ui/base/ManagedObjectMetadata";
11
12
  import type Control from "sap/ui/core/Control";
12
13
  import type { $ControlSettings } from "sap/ui/core/Control";
13
14
  import type { default as Element, default as UI5Element } from "sap/ui/core/Element";
14
15
  import EventHandlerResolver from "sap/ui/core/mvc/EventHandlerResolver";
16
+
15
17
  const FL_DELEGATE = "fl:delegate";
16
18
  const DT_DESIGNTIME = "dt:designtime";
17
19
  const addChildAggregation = function (
@@ -61,7 +63,6 @@ function processAggregations(metadata: ManagedObjectMetadata, mSettings: Record<
61
63
  path: mSettings[aggregationName]
62
64
  };
63
65
  }
64
- // always use the first item as template according to UI5 logic
65
66
  if (typeof aggregationChildren[aggregationName] === "function") {
66
67
  (mSettings[aggregationName] as { factory: Function }).factory = aggregationChildren[
67
68
  aggregationName
@@ -82,7 +83,6 @@ function processAggregations(metadata: ManagedObjectMetadata, mSettings: Record<
82
83
  * If the property is a bindingToolkit expression we need to compile it.
83
84
  * Else if the property is set as string (compiled binding expression returns string by default even if it's a boolean, int, etc.) and it doesn't match with expected
84
85
  * format the value is parsed to provide expected format.
85
- *
86
86
  * @param metadata Metadata of the control
87
87
  * @param settings Settings of the control
88
88
  * @returns A map of late properties that need to be awaited after the control is created
@@ -107,6 +107,8 @@ function processProperties(metadata: ManagedObjectMetadata, settings: Record<str
107
107
  if (propertyType && propertyType instanceof DataType && ["boolean", "int", "float"].includes(propertyType.getName())) {
108
108
  settings[settingsKey] = propertyType.parseValue(value);
109
109
  }
110
+ } else if (typeof value === "object" && (value as BindingInfoHolder).__bindingInfo) {
111
+ settings[settingsKey] = (value as BindingInfoHolder).__bindingInfo;
110
112
  }
111
113
  }
112
114
  return lateProperties;
@@ -117,7 +119,6 @@ function processProperties(metadata: ManagedObjectMetadata, settings: Record<str
117
119
  *
118
120
  * Resolves the command set on the control via the intrinsic class attribute "jsx:command".
119
121
  * If no command has been set or the targeted event doesn't exist, no configuration is set.
120
- *
121
122
  * @param metadata Metadata of the control
122
123
  * @param settings Settings of the control
123
124
  */
@@ -194,6 +195,10 @@ const jsxControl = function <T extends Element>(
194
195
 
195
196
  if (bindingDef) {
196
197
  if (typeof bindingDef === "string") {
198
+ const bindingInfo = bindingParser(bindingDef);
199
+ if (bindingInfo) {
200
+ targetControlInstance.bindElement({ model: bindingInfo.model ?? undefined, path: bindingInfo.path });
201
+ }
197
202
  targetControlInstance.bindElement(bindingDef);
198
203
  } else {
199
204
  // We consider it's an object
@@ -23,16 +23,16 @@ sap.ui.define([], function () {
23
23
  const children = mSettings.children;
24
24
  if (Array.isArray(children)) {
25
25
  children.forEach(child => {
26
- if (typeof child === "string") {
27
- renderManager.text(child);
26
+ if (typeof child === "string" || typeof child === "number" || typeof child === "boolean") {
27
+ renderManager.text(child.toString());
28
28
  } else if (typeof child === "function") {
29
29
  child();
30
30
  } else if (child !== undefined) {
31
31
  renderManager.renderControl(child);
32
32
  }
33
33
  });
34
- } else if (typeof children === "string") {
35
- renderManager.text(children);
34
+ } else if (typeof children === "string" || typeof children === "number" || typeof children === "boolean") {
35
+ renderManager.text(children.toString());
36
36
  } else if (typeof children === "function") {
37
37
  children();
38
38
  } else if (children !== undefined) {
@@ -45,4 +45,4 @@ sap.ui.define([], function () {
45
45
  };
46
46
  return jsxRenderManager;
47
47
  }, false);
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3hSZW5kZXJNYW5hZ2VyIiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsInJlbmRlck1hbmFnZXIiLCJyZWYiLCJvcGVuU3RhcnQiLCJtU2V0dGluZyIsImF0dHIiLCJvcGVuRW5kIiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiY2hpbGQiLCJ0ZXh0IiwidW5kZWZpbmVkIiwicmVuZGVyQ29udHJvbCIsImNsb3NlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gtcmVuZGVyTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5cbmNvbnN0IGpzeFJlbmRlck1hbmFnZXIgPSBmdW5jdGlvbiAoXG5cdHR5cGU6IHN0cmluZyB8IEZ1bmN0aW9uLFxuXHRtU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG5cdGtleTogc3RyaW5nLFxuXHRyZW5kZXJNYW5hZ2VyOiBSZW5kZXJNYW5hZ2VyXG4pOiBGdW5jdGlvbiB7XG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRpZiAobVNldHRpbmdzLnJlZikge1xuXHRcdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydCh0eXBlLCBtU2V0dGluZ3MucmVmKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KHR5cGUpO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChjb25zdCBtU2V0dGluZyBpbiBtU2V0dGluZ3MpIHtcblx0XHRcdFx0aWYgKG1TZXR0aW5nICE9PSBcImNoaWxkcmVuXCIgJiYgbVNldHRpbmcgIT09IFwicmVmXCIpIHtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLmF0dHIobVNldHRpbmcsIG1TZXR0aW5nc1ttU2V0dGluZ10pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHR9XG5cdFx0Y29uc3QgY2hpbGRyZW4gPSBtU2V0dGluZ3MuY2hpbGRyZW4gYXMgKHN0cmluZyB8IEZ1bmN0aW9uIHwgQ29udHJvbCkgfCAoc3RyaW5nIHwgRnVuY3Rpb24gfCBDb250cm9sKVtdO1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuXHRcdFx0Y2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBjaGlsZCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHJlbmRlck1hbmFnZXIudGV4dChjaGlsZCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNoaWxkID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdFx0XHRjaGlsZCgpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNoaWxkICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woY2hpbGQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0cmVuZGVyTWFuYWdlci50ZXh0KGNoaWxkcmVuKTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRjaGlsZHJlbigpO1xuXHRcdH0gZWxzZSBpZiAoY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGNoaWxkcmVuKTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHJlbmRlck1hbmFnZXIuY2xvc2UodHlwZSk7XG5cdFx0fVxuXHR9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGpzeFJlbmRlck1hbmFnZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFHQSxNQUFNQSxnQkFBZ0IsR0FBRyxVQUN4QkMsSUFBdUIsRUFDdkJDLFNBQWlDLEVBQ2pDQyxHQUFXLEVBQ1hDLGFBQTRCLEVBQ2pCO0lBQ1gsT0FBTyxNQUFNO01BQ1osSUFBSSxPQUFPSCxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzdCLElBQUlDLFNBQVMsQ0FBQ0csR0FBRyxFQUFFO1VBQ2xCRCxhQUFhLENBQUNFLFNBQVMsQ0FBQ0wsSUFBSSxFQUFFQyxTQUFTLENBQUNHLEdBQUcsQ0FBQztRQUM3QyxDQUFDLE1BQU07VUFDTkQsYUFBYSxDQUFDRSxTQUFTLENBQUNMLElBQUksQ0FBQztRQUM5QjtRQUNBLEtBQUssTUFBTU0sUUFBUSxJQUFJTCxTQUFTLEVBQUU7VUFDakMsSUFBSUssUUFBUSxLQUFLLFVBQVUsSUFBSUEsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUNsREgsYUFBYSxDQUFDSSxJQUFJLENBQUNELFFBQVEsRUFBRUwsU0FBUyxDQUFDSyxRQUFRLENBQUMsQ0FBQztVQUNsRDtRQUNEO1FBQ0FILGFBQWEsQ0FBQ0ssT0FBTyxFQUFFO01BQ3hCO01BQ0EsTUFBTUMsUUFBUSxHQUFHUixTQUFTLENBQUNRLFFBQTJFO01BQ3RHLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLENBQUMsRUFBRTtRQUM1QkEsUUFBUSxDQUFDRyxPQUFPLENBQUVDLEtBQUssSUFBSztVQUMzQixJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDOUJWLGFBQWEsQ0FBQ1csSUFBSSxDQUFDRCxLQUFLLENBQUM7VUFDMUIsQ0FBQyxNQUFNLElBQUksT0FBT0EsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUN2Q0EsS0FBSyxFQUFFO1VBQ1IsQ0FBQyxNQUFNLElBQUlBLEtBQUssS0FBS0UsU0FBUyxFQUFFO1lBQy9CWixhQUFhLENBQUNhLGFBQWEsQ0FBQ0gsS0FBSyxDQUFDO1VBQ25DO1FBQ0QsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxNQUFNLElBQUksT0FBT0osUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUN4Q04sYUFBYSxDQUFDVyxJQUFJLENBQUNMLFFBQVEsQ0FBQztNQUM3QixDQUFDLE1BQU0sSUFBSSxPQUFPQSxRQUFRLEtBQUssVUFBVSxFQUFFO1FBQzFDQSxRQUFRLEVBQUU7TUFDWCxDQUFDLE1BQU0sSUFBSUEsUUFBUSxLQUFLTSxTQUFTLEVBQUU7UUFDbENaLGFBQWEsQ0FBQ2EsYUFBYSxDQUFDUCxRQUFRLENBQUM7TUFDdEM7TUFFQSxJQUFJLE9BQU9ULElBQUksS0FBSyxRQUFRLEVBQUU7UUFDN0JHLGFBQWEsQ0FBQ2MsS0FBSyxDQUFDakIsSUFBSSxDQUFDO01BQzFCO0lBQ0QsQ0FBQztFQUNGLENBQUM7RUFBQyxPQUNhRCxnQkFBZ0I7QUFBQSJ9
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3hSZW5kZXJNYW5hZ2VyIiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsInJlbmRlck1hbmFnZXIiLCJyZWYiLCJvcGVuU3RhcnQiLCJtU2V0dGluZyIsImF0dHIiLCJvcGVuRW5kIiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiY2hpbGQiLCJ0ZXh0IiwidG9TdHJpbmciLCJ1bmRlZmluZWQiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImpzeC1yZW5kZXJNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcblxuY29uc3QganN4UmVuZGVyTWFuYWdlciA9IGZ1bmN0aW9uIChcblx0dHlwZTogc3RyaW5nIHwgRnVuY3Rpb24sXG5cdG1TZXR0aW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0a2V5OiBzdHJpbmcsXG5cdHJlbmRlck1hbmFnZXI6IFJlbmRlck1hbmFnZXJcbik6IEZ1bmN0aW9uIHtcblx0cmV0dXJuICgpID0+IHtcblx0XHRpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGlmIChtU2V0dGluZ3MucmVmKSB7XG5cdFx0XHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KHR5cGUsIG1TZXR0aW5ncy5yZWYpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVuZGVyTWFuYWdlci5vcGVuU3RhcnQodHlwZSk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGNvbnN0IG1TZXR0aW5nIGluIG1TZXR0aW5ncykge1xuXHRcdFx0XHRpZiAobVNldHRpbmcgIT09IFwiY2hpbGRyZW5cIiAmJiBtU2V0dGluZyAhPT0gXCJyZWZcIikge1xuXHRcdFx0XHRcdHJlbmRlck1hbmFnZXIuYXR0cihtU2V0dGluZywgbVNldHRpbmdzW21TZXR0aW5nXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdH1cblx0XHRjb25zdCBjaGlsZHJlbiA9IG1TZXR0aW5ncy5jaGlsZHJlbiBhcyAoc3RyaW5nIHwgRnVuY3Rpb24gfCBDb250cm9sKSB8IChzdHJpbmcgfCBGdW5jdGlvbiB8IENvbnRyb2wpW107XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG5cdFx0XHRjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGNoaWxkID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBjaGlsZCA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgY2hpbGQgPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHRcdFx0cmVuZGVyTWFuYWdlci50ZXh0KGNoaWxkLnRvU3RyaW5nKCkpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZCA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0Y2hpbGQoKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGNoaWxkKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGNoaWxkcmVuID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdHJlbmRlck1hbmFnZXIudGV4dChjaGlsZHJlbi50b1N0cmluZygpKTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRjaGlsZHJlbigpO1xuXHRcdH0gZWxzZSBpZiAoY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGNoaWxkcmVuKTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHJlbmRlck1hbmFnZXIuY2xvc2UodHlwZSk7XG5cdFx0fVxuXHR9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGpzeFJlbmRlck1hbmFnZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFHQSxNQUFNQSxnQkFBZ0IsR0FBRyxTQUFBQSxDQUN4QkMsSUFBdUIsRUFDdkJDLFNBQWlDLEVBQ2pDQyxHQUFXLEVBQ1hDLGFBQTRCLEVBQ2pCO0lBQ1gsT0FBTyxNQUFNO01BQ1osSUFBSSxPQUFPSCxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzdCLElBQUlDLFNBQVMsQ0FBQ0csR0FBRyxFQUFFO1VBQ2xCRCxhQUFhLENBQUNFLFNBQVMsQ0FBQ0wsSUFBSSxFQUFFQyxTQUFTLENBQUNHLEdBQUcsQ0FBQztRQUM3QyxDQUFDLE1BQU07VUFDTkQsYUFBYSxDQUFDRSxTQUFTLENBQUNMLElBQUksQ0FBQztRQUM5QjtRQUNBLEtBQUssTUFBTU0sUUFBUSxJQUFJTCxTQUFTLEVBQUU7VUFDakMsSUFBSUssUUFBUSxLQUFLLFVBQVUsSUFBSUEsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUNsREgsYUFBYSxDQUFDSSxJQUFJLENBQUNELFFBQVEsRUFBRUwsU0FBUyxDQUFDSyxRQUFRLENBQUMsQ0FBQztVQUNsRDtRQUNEO1FBQ0FILGFBQWEsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7TUFDeEI7TUFDQSxNQUFNQyxRQUFRLEdBQUdSLFNBQVMsQ0FBQ1EsUUFBMkU7TUFDdEcsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNGLFFBQVEsQ0FBQyxFQUFFO1FBQzVCQSxRQUFRLENBQUNHLE9BQU8sQ0FBRUMsS0FBSyxJQUFLO1VBQzNCLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU9BLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekZWLGFBQWEsQ0FBQ1csSUFBSSxDQUFDRCxLQUFLLENBQUNFLFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDckMsQ0FBQyxNQUFNLElBQUksT0FBT0YsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUN2Q0EsS0FBSyxDQUFDLENBQUM7VUFDUixDQUFDLE1BQU0sSUFBSUEsS0FBSyxLQUFLRyxTQUFTLEVBQUU7WUFDL0JiLGFBQWEsQ0FBQ2MsYUFBYSxDQUFDSixLQUFLLENBQUM7VUFDbkM7UUFDRCxDQUFDLENBQUM7TUFDSCxDQUFDLE1BQU0sSUFBSSxPQUFPSixRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU9BLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBT0EsUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUN6R04sYUFBYSxDQUFDVyxJQUFJLENBQUNMLFFBQVEsQ0FBQ00sUUFBUSxDQUFDLENBQUMsQ0FBQztNQUN4QyxDQUFDLE1BQU0sSUFBSSxPQUFPTixRQUFRLEtBQUssVUFBVSxFQUFFO1FBQzFDQSxRQUFRLENBQUMsQ0FBQztNQUNYLENBQUMsTUFBTSxJQUFJQSxRQUFRLEtBQUtPLFNBQVMsRUFBRTtRQUNsQ2IsYUFBYSxDQUFDYyxhQUFhLENBQUNSLFFBQVEsQ0FBQztNQUN0QztNQUVBLElBQUksT0FBT1QsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM3QkcsYUFBYSxDQUFDZSxLQUFLLENBQUNsQixJQUFJLENBQUM7TUFDMUI7SUFDRCxDQUFDO0VBQ0YsQ0FBQztFQUFDLE9BQ2FELGdCQUFnQjtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -24,16 +24,16 @@ const jsxRenderManager = function (
24
24
  const children = mSettings.children as (string | Function | Control) | (string | Function | Control)[];
25
25
  if (Array.isArray(children)) {
26
26
  children.forEach((child) => {
27
- if (typeof child === "string") {
28
- renderManager.text(child);
27
+ if (typeof child === "string" || typeof child === "number" || typeof child === "boolean") {
28
+ renderManager.text(child.toString());
29
29
  } else if (typeof child === "function") {
30
30
  child();
31
31
  } else if (child !== undefined) {
32
32
  renderManager.renderControl(child);
33
33
  }
34
34
  });
35
- } else if (typeof children === "string") {
36
- renderManager.text(children);
35
+ } else if (typeof children === "string" || typeof children === "number" || typeof children === "boolean") {
36
+ renderManager.text(children.toString());
37
37
  } else if (typeof children === "function") {
38
38
  children();
39
39
  } else if (children !== undefined) {
@@ -19,7 +19,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit"], function (BindingToolkit) {
19
19
 
20
20
  /**
21
21
  * Some characters needs to be escaped when used as XML attribute value, otherwise this result in incorrect XML.
22
- *
23
22
  * @param value
24
23
  * @returns The escaped xml attribute
25
24
  */
@@ -141,7 +140,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit"], function (BindingToolkit) {
141
140
  *
142
141
  * Resolves the command set on the control via the intrinsic class attribute "jsx:command".
143
142
  * If no command has been set or the targeted event doesn't exist, no configuration is set.
144
- *
145
143
  * @param settings Metadata of the control
146
144
  * @param metadataEvents Settings of the control
147
145
  */
@@ -294,4 +292,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit"], function (BindingToolkit) {
294
292
  };
295
293
  return jsxXml;
296
294
  }, false);
297
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJfdHlwZSIsInVuZGVmaW5lZCIsIndyaXRlQ2hpbGRyZW4iLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUiLCJ2YWx1ZSIsInJlcGxhY2UiLCJhZGRDaGlsZEFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25DaGlsZHJlbiIsImFnZ3JlZ2F0aW9uTmFtZSIsImNoaWxkIiwidHJpbSIsImxlbmd0aCIsInB1c2giLCJmb3JFYWNoIiwic3ViQ2hpbGQiLCJjaGlsZEtleSIsIk9iamVjdCIsImtleXMiLCJpc0FDb250cm9sIiwiY2hpbGRyZW4iLCJnZXRNZXRhZGF0YSIsIkZMX0RFTEVHQVRFIiwiRFRfREVTSUdOVElNRSIsIkNPUkVfUkVRVUlSRSIsIkxPR19TT1VSQ0VQQVRIIiwiQ1VTVE9NX0xPQURWQUxVRSIsIkNVU1RPTV9FTlRJVFlUWVBFIiwiQ1VTVE9NX1VSTCIsInByb2Nlc3NPYmplY3RQcm9wZXJ0eVZhbHVlIiwiY2hpbGRyZW5PYmplY3QiLCJuYW1lc3BhY2VBbGlhcyIsInByb3BlcnR5TmFtZSIsImFnZ3JlZ2F0aW9uUHJvcGVydGllcyIsInN1YlByb3BOYW1lIiwiY2hpbGRWYWx1ZSIsImNoaWxkcmVuT2JqZWN0RWxlbWVudCIsInRvU3RyaW5nIiwibmFtZXNwYWNlZFByb3BlcnR5IiwicHJvY2Vzc1Byb3BlcnRpZXMiLCJtU2V0dGluZ3MiLCJtZXRhZGF0YVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzU3RyaW5nIiwiYWdncmVnYXRpb25TdHJpbmciLCJpc0NvbnRyb2wiLCJoYXNPd25Qcm9wZXJ0eSIsInByb3BlcnR5VmFsdWUiLCJ0eXBlIiwiZ2V0UGF0aCIsImNvbXBpbGVFeHByZXNzaW9uIiwib3V0VmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlcnkiLCJwcm9wIiwicHJvY2Vzc0NvbW1hbmQiLCJzZXR0aW5ncyIsIm1ldGFkYXRhRXZlbnRzIiwiY29tbWFuZFByb3BlcnR5IiwiY29tbWFuZCIsImV2ZW50TmFtZSIsInNwbGl0IiwiZXZlbnQiLCJzdGFydHNXaXRoIiwibmFtZSIsInByb2Nlc3NBZ2dyZWdhdGlvbnMiLCJtZXRhZGF0YUFnZ3JlZ2F0aW9ucyIsImRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJhZ2dyZWdhdGlvbkNoaWxkS2V5cyIsIndyaXRlT25seURlZmF1bHRBZ2dyZWdhdGlvbiIsImpzeFhtbCIsImtleSIsInhtbE5hbWVzcGFjZU1hcCIsIm92ZXJyaWRlTm9kZU5hbWUiLCJtZXRhZGF0YSIsImNvbnRyb2xOYW1lIiwiZ2V0QWxsUHJvcGVydGllcyIsImdldEFsbEV2ZW50cyIsImdldEFsbEFzc29jaWF0aW9ucyIsImdldE5hbWUiLCJnZXRBbGxBZ2dyZWdhdGlvbnMiLCJnZXREZWZhdWx0QWdncmVnYXRpb25OYW1lIiwicHJvcGVydGllcyIsImRlcGVuZGVudHMiLCJjdXN0b21EYXRhIiwiYWdncmVnYXRpb25zIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwibmFtZXNwYWNlIiwibmFtZXNTcGxpdCIsInNsaWNlIiwidGFnTmFtZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LXhtbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgQ29udHJvbFByb3BlcnRpZXMsIE5vbkNvbnRyb2xQcm9wZXJ0aWVzIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHR5cGUgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuZnVuY3Rpb24gaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24oXG5cdGV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjx1bmtub3duPiB8IHVua25vd25cbik6IGV4cHJlc3Npb24gaXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+IHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjx1bmtub3duPik/Ll90eXBlICE9PSB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IHdyaXRlQ2hpbGRyZW4gPSBmdW5jdGlvbiAodmFsOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcblx0XHRyZXR1cm4gdmFsLmpvaW4oXCJcIik7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxufTtcblxuLyoqXG4gKiBTb21lIGNoYXJhY3RlcnMgbmVlZHMgdG8gYmUgZXNjYXBlZCB3aGVuIHVzZWQgYXMgWE1MIGF0dHJpYnV0ZSB2YWx1ZSwgb3RoZXJ3aXNlIHRoaXMgcmVzdWx0IGluIGluY29ycmVjdCBYTUwuXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCB4bWwgYXR0cmlidXRlXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVhNTEF0dHJpYnV0ZVZhbHVlKHZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIHZhbHVlPy5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIikucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKTtcbn1cblxuY29uc3QgYWRkQ2hpbGRBZ2dyZWdhdGlvbiA9IGZ1bmN0aW9uIChcblx0YWdncmVnYXRpb25DaGlsZHJlbjogUmVjb3JkPHN0cmluZywgKENvbnRyb2wgfCBzdHJpbmcpW10+LFxuXHRhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZyxcblx0Y2hpbGQ6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbik6IHZvaWQge1xuXHRpZiAoY2hpbGQgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoIWFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSkge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9IFtdO1xuXHR9XG5cdGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcblx0XHRpZiAoY2hpbGQudHJpbSgpLmxlbmd0aCA+IDApIHtcblx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXS5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcblx0XHRjaGlsZC5mb3JFYWNoKChzdWJDaGlsZCkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBhZ2dyZWdhdGlvbk5hbWUsIHN1YkNoaWxkKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRmb3IgKGNvbnN0IGNoaWxkS2V5IG9mIE9iamVjdC5rZXlzKGNoaWxkKSkge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBjaGlsZEtleSwgY2hpbGRbY2hpbGRLZXldKTtcblx0XHR9XG5cdH1cbn07XG5cbmNvbnN0IGlzQUNvbnRyb2wgPSBmdW5jdGlvbiAoY2hpbGRyZW4/OiB0eXBlb2YgQ29udHJvbCB8IEZ1bmN0aW9uKTogY2hpbGRyZW4gaXMgdHlwZW9mIENvbnRyb2wge1xuXHRyZXR1cm4gISEoY2hpbGRyZW4gYXMgdHlwZW9mIENvbnRyb2wpPy5nZXRNZXRhZGF0YTtcbn07XG5cbmNvbnN0IEZMX0RFTEVHQVRFID0gXCJmbDpkZWxlZ2F0ZVwiO1xuY29uc3QgRFRfREVTSUdOVElNRSA9IFwiZHQ6ZGVzaWdudGltZVwiO1xuY29uc3QgQ09SRV9SRVFVSVJFID0gXCJjb3JlOnJlcXVpcmVcIjtcbmNvbnN0IExPR19TT1VSQ0VQQVRIID0gXCJsb2c6c291cmNlUGF0aFwiO1xuY29uc3QgQ1VTVE9NX0xPQURWQUxVRSA9IFwiY3VzdG9tRGF0YTpsb2FkVmFsdWVcIjtcbmNvbnN0IENVU1RPTV9FTlRJVFlUWVBFID0gXCJjdXN0b21EYXRhOmVudGl0eVR5cGVcIjtcbmNvbnN0IENVU1RPTV9VUkwgPSBcImN1c3RvbURhdGE6dXJsXCI7XG5cbmZ1bmN0aW9uIHByb2Nlc3NPYmplY3RQcm9wZXJ0eVZhbHVlKFxuXHRjaGlsZHJlbk9iamVjdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG5cdG5hbWVzcGFjZUFsaWFzOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdHByb3BlcnR5TmFtZTogc3RyaW5nXG4pOiBzdHJpbmcge1xuXHQvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlsZCBpc1xuXHRjb25zdCBhZ2dyZWdhdGlvblByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IHN0cmluZ1tdID0gW107XG5cdE9iamVjdC5rZXlzKGNoaWxkcmVuT2JqZWN0KS5mb3JFYWNoKChzdWJQcm9wTmFtZSkgPT4ge1xuXHRcdGNvbnN0IGNoaWxkVmFsdWUgPSBjaGlsZHJlbk9iamVjdFtzdWJQcm9wTmFtZV07XG5cdFx0aWYgKGNoaWxkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKHR5cGVvZiBjaGlsZFZhbHVlID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGNoaWxkVmFsdWUpKSB7XG5cdFx0XHRcdFx0YWdncmVnYXRpb25DaGlsZHJlbi5wdXNoKGA8JHtzdWJQcm9wTmFtZX0+YCk7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBjaGlsZHJlbk9iamVjdEVsZW1lbnQgb2YgY2hpbGRWYWx1ZSkge1xuXHRcdFx0XHRcdFx0YWdncmVnYXRpb25DaGlsZHJlbi5wdXNoKFxuXHRcdFx0XHRcdFx0XHRwcm9jZXNzT2JqZWN0UHJvcGVydHlWYWx1ZShjaGlsZHJlbk9iamVjdEVsZW1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIG5hbWVzcGFjZUFsaWFzLCBzdWJQcm9wTmFtZSlcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChgPC8ke3N1YlByb3BOYW1lfT5gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBpZiB0aGUgcHJvcGVydHkgaXMgYSB2YWx1ZSBpdCBuZWVkcyB0byBiZSBzZXJpYWxpemVkIGFzIGEgY2hpbGRyZW5cblx0XHRcdFx0XHQvLyA8bXlPYmplY3RQcm9wIHByb3AxPSd4eHgnLCBwcm9wMj0neHh0Jy8+XG5cdFx0XHRcdFx0YWdncmVnYXRpb25DaGlsZHJlbi5wdXNoKFxuXHRcdFx0XHRcdFx0cHJvY2Vzc09iamVjdFByb3BlcnR5VmFsdWUoY2hpbGRWYWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgbmFtZXNwYWNlQWxpYXMsIHN1YlByb3BOYW1lKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIE90aGVyd2lzZSBpdCdzIHBhcnQgb2YgdGhlIG1haW4gb2JqZWN0IGp1c3QgYXMgYW5vdGhlciBwcm9wZXJ0eVxuXHRcdFx0XHRhZ2dyZWdhdGlvblByb3BlcnRpZXMucHVzaChgJHtzdWJQcm9wTmFtZX09JyR7ZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUoY2hpbGRWYWx1ZS50b1N0cmluZygpKX0nYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHRjb25zdCBuYW1lc3BhY2VkUHJvcGVydHkgPSBuYW1lc3BhY2VBbGlhcyA/IGAke25hbWVzcGFjZUFsaWFzfToke3Byb3BlcnR5TmFtZX1gIDogcHJvcGVydHlOYW1lO1xuXHRyZXR1cm4gYDwke25hbWVzcGFjZWRQcm9wZXJ0eX0gJHthZ2dyZWdhdGlvblByb3BlcnRpZXMuam9pbihcIiBcIil9PiR7YWdncmVnYXRpb25DaGlsZHJlbi5qb2luKFwiXFxuXCIpfTwvJHtuYW1lc3BhY2VkUHJvcGVydHl9PmA7XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzPFQ+KFxuXHRtU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRtZXRhZGF0YVByb3BlcnRpZXM6IFJlY29yZDxcblx0XHRzdHJpbmcsXG5cdFx0e1xuXHRcdFx0bmFtZT86IHN0cmluZztcblx0XHRcdHR5cGU/OiBzdHJpbmc7XG5cdFx0fVxuXHQ+LFxuXHRuYW1lc3BhY2VBbGlhczogc3RyaW5nLFxuXHRwcm9wZXJ0aWVzU3RyaW5nOiBzdHJpbmdbXSxcblx0YWdncmVnYXRpb25TdHJpbmc6IHN0cmluZ1tdLFxuXHRpc0NvbnRyb2w6IGJvb2xlYW5cbik6IHZvaWQge1xuXHRPYmplY3Qua2V5cyhtZXRhZGF0YVByb3BlcnRpZXMpLmZvckVhY2goKHByb3BlcnR5TmFtZSkgPT4ge1xuXHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSAmJiBtU2V0dGluZ3NbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlID0gbVNldHRpbmdzW3Byb3BlcnR5TmFtZV07XG5cdFx0XHRpZiAocHJvcGVydHlOYW1lID09PSBDT1JFX1JFUVVJUkUpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGB4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcImApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHByb3BlcnR5TmFtZSA9PT0gRkxfREVMRUdBVEUpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGB4bWxuczpmbD1cInNhcC51aS5mbFwiYCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocHJvcGVydHlOYW1lID09PSBEVF9ERVNJR05USU1FKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgeG1sbnM6ZHQ9XCJzYXAudWkuZHRcImApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHByb3BlcnR5TmFtZSA9PT0gTE9HX1NPVVJDRVBBVEgpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGB4bWxuczpsb2c9XCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCJgKTtcblx0XHRcdH1cblx0XHRcdGlmIChwcm9wZXJ0eU5hbWUgPT09IENVU1RPTV9VUkwgfHwgcHJvcGVydHlOYW1lID09PSBDVVNUT01fTE9BRFZBTFVFIHx8IHByb3BlcnR5TmFtZSA9PT0gQ1VTVE9NX0VOVElUWVRZUEUpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGB4bWxuczpjdXN0b21EYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiYCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocHJvcGVydHlWYWx1ZSAmJiB0eXBlb2YgcHJvcGVydHlWYWx1ZSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0XHRpZiAobWV0YWRhdGFQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0udHlwZSA9PT0gXCJzYXAudWkubW9kZWwuQ29udGV4dFwiKSB7XG5cdFx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7KHByb3BlcnR5VmFsdWUgYXMgQ29udGV4dCkuZ2V0UGF0aCgpfSdgKTtcblx0XHRcdFx0fSBlbHNlIGlmIChpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbihwcm9wZXJ0eVZhbHVlKSkge1xuXHRcdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PScke2VzY2FwZVhNTEF0dHJpYnV0ZVZhbHVlKGNvbXBpbGVFeHByZXNzaW9uKHByb3BlcnR5VmFsdWUpKX0nYCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0eVZhbHVlKSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eVZhbHVlLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb3V0VmFsdWUgPSB0eXBlb2YgcHJvcGVydHlWYWx1ZVswXSA9PT0gXCJzdHJpbmdcIiA/IHByb3BlcnR5VmFsdWVbMF0gOiBKU09OLnN0cmluZ2lmeShwcm9wZXJ0eVZhbHVlWzBdKTtcblx0XHRcdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PScke291dFZhbHVlfSdgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb3V0VmFsdWUgPSBwcm9wZXJ0eVZhbHVlLmV2ZXJ5KCh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpXG5cdFx0XHRcdFx0XHRcdD8gcHJvcGVydHlWYWx1ZS5qb2luKFwiIFwiKVxuXHRcdFx0XHRcdFx0XHQ6IEpTT04uc3RyaW5naWZ5KHByb3BlcnR5VmFsdWUpO1xuXHRcdFx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7b3V0VmFsdWV9J2ApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChpc0NvbnRyb2wpIHtcblx0XHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYCR7cHJvcGVydHlOYW1lfT0nJHtKU09OLnN0cmluZ2lmeShtU2V0dGluZ3NbcHJvcGVydHlOYW1lXSl9J2ApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2gocHJvY2Vzc09iamVjdFByb3BlcnR5VmFsdWUocHJvcGVydHlWYWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCB1bmRlZmluZWQsIHByb3BlcnR5TmFtZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKG1TZXR0aW5nc1twcm9wZXJ0eU5hbWVdICE9PSBudWxsKSB7XG5cdFx0XHRcdGNvbnN0IHByb3AgPSBtU2V0dGluZ3NbcHJvcGVydHlOYW1lXSBhcyBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyO1xuXHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYCR7cHJvcGVydHlOYW1lfT0nJHtlc2NhcGVYTUxBdHRyaWJ1dGVWYWx1ZShwcm9wLnRvU3RyaW5nKCkpfSdgKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0bVNldHRpbmdzLmNoaWxkcmVuPy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpICYmXG5cdFx0XHRPYmplY3Qua2V5cygobVNldHRpbmdzLmNoaWxkcmVuIGFzIENvbnRyb2xQcm9wZXJ0aWVzPFQ+KT8uW3Byb3BlcnR5TmFtZV0gPz8ge30pLmxlbmd0aCA+IDBcblx0XHQpIHtcblx0XHRcdC8vIE9iamVjdCAvIEFycmF5IHByb3BlcnRpZXMgYXJlIHBhcnQgb2YgdGhlIGBjaGlsZHJlbmAgYWdncmVnYXRpb24gYW5kIGFzIHN1Y2ggc3RpbGwgbmVlZCB0byBiZSBwcm9jZXNzZWQgYXMgcHJvcGVydGllc1xuXHRcdFx0Y29uc3QgY2hpbGRyZW5PYmplY3QgPSAobVNldHRpbmdzLmNoaWxkcmVuIGFzIENvbnRyb2xQcm9wZXJ0aWVzPFQ+KT8uW3Byb3BlcnR5TmFtZV0gYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuXHRcdFx0YWdncmVnYXRpb25TdHJpbmcucHVzaChwcm9jZXNzT2JqZWN0UHJvcGVydHlWYWx1ZShjaGlsZHJlbk9iamVjdCwgbmFtZXNwYWNlQWxpYXMsIHByb3BlcnR5TmFtZSkpO1xuXHRcdH1cblx0fSk7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBjb21tYW5kLlxuICpcbiAqIFJlc29sdmVzIHRoZSBjb21tYW5kIHNldCBvbiB0aGUgY29udHJvbCB2aWEgdGhlIGludHJpbnNpYyBjbGFzcyBhdHRyaWJ1dGUgXCJqc3g6Y29tbWFuZFwiLlxuICogSWYgbm8gY29tbWFuZCBoYXMgYmVlbiBzZXQgb3IgdGhlIHRhcmdldGVkIGV2ZW50IGRvZXNuJ3QgZXhpc3QsIG5vIGNvbmZpZ3VyYXRpb24gaXMgc2V0LlxuICpcbiAqIEBwYXJhbSBzZXR0aW5ncyBNZXRhZGF0YSBvZiB0aGUgY29udHJvbFxuICogQHBhcmFtIG1ldGFkYXRhRXZlbnRzIFNldHRpbmdzIG9mIHRoZSBjb250cm9sXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NDb21tYW5kKFxuXHRzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG5cdG1ldGFkYXRhRXZlbnRzOiBSZWNvcmQ8XG5cdFx0c3RyaW5nLFxuXHRcdHtcblx0XHRcdG5hbWU6IHN0cmluZztcblx0XHR9XG5cdD5cbik6IHZvaWQge1xuXHRjb25zdCBjb21tYW5kUHJvcGVydHkgPSBzZXR0aW5nc1tcImpzeDpjb21tYW5kXCJdO1xuXHRpZiAoY29tbWFuZFByb3BlcnR5KSB7XG5cdFx0Y29uc3QgW2NvbW1hbmQsIGV2ZW50TmFtZV0gPSAoY29tbWFuZFByb3BlcnR5IGFzIHN0cmluZykuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IGV2ZW50ID0gbWV0YWRhdGFFdmVudHNbZXZlbnROYW1lXTtcblx0XHRpZiAoZXZlbnQgJiYgY29tbWFuZC5zdGFydHNXaXRoKFwiY21kOlwiKSkge1xuXHRcdFx0c2V0dGluZ3NbZXZlbnQubmFtZV0gPSBjb21tYW5kO1xuXHRcdH1cblx0fVxuXHRkZWxldGUgc2V0dGluZ3NbXCJqc3g6Y29tbWFuZFwiXTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0FnZ3JlZ2F0aW9ucyhcblx0bVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0bWV0YWRhdGFBZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG5cdG5hbWVzcGFjZUFsaWFzOiBzdHJpbmcsXG5cdGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0cHJvcGVydGllc1N0cmluZzogc3RyaW5nW10sXG5cdGFnZ3JlZ2F0aW9uU3RyaW5nOiBzdHJpbmdbXVxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWdncmVnYXRpb25DaGlsZHJlbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA/PyBcImN1c3RvbURhdGFcIiwgbVNldHRpbmdzLmNoaWxkcmVuIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkS2V5cyA9IE9iamVjdC5rZXlzKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4pO1xuXHRsZXQgd3JpdGVPbmx5RGVmYXVsdEFnZ3JlZ2F0aW9uID0gZmFsc2U7XG5cdGlmIChhZ2dyZWdhdGlvbkNoaWxkS2V5cy5sZW5ndGggPT09IDEgJiYgYWdncmVnYXRpb25DaGlsZEtleXNbMF0gPT09IGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUpIHtcblx0XHR3cml0ZU9ubHlEZWZhdWx0QWdncmVnYXRpb24gPSB0cnVlO1xuXHR9XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKChhZ2dyZWdhdGlvbk5hbWUpID0+IHtcblx0XHRpZiAoYWdncmVnYXRpb25DaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShhZ2dyZWdhdGlvbk5hbWUpICYmIGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXS5sZW5ndGggPiAwKSB7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25OYW1lID09PSBkZWZhdWx0QWdncmVnYXRpb25OYW1lICYmIHdyaXRlT25seURlZmF1bHRBZ2dyZWdhdGlvbikge1xuXHRcdFx0XHRhZ2dyZWdhdGlvblN0cmluZy5wdXNoKGAke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1gKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2goXG5cdFx0XHRcdFx0YDwke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+XG5cdFx0XHRcdFx0XHQke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1cblx0XHRcdFx0XHQ8LyR7bmFtZXNwYWNlQWxpYXN9OiR7YWdncmVnYXRpb25OYW1lfT5gXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSAmJiBtU2V0dGluZ3NbYWdncmVnYXRpb25OYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHthZ2dyZWdhdGlvbk5hbWV9PScke0pTT04uc3RyaW5naWZ5KG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdKX0nYCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJbiBzb21lIGNhc2UgdGhlIGFnZ3JlZ2F0aW9uIGV4cGVjdCBhIHN0cmluZyB2YWx1ZSAobGlrZSBmb3IgdGhlIHRvb2x0aXApLCBpbiB0aGlzIGNhc2Ugd2Ugc2V0IGl0IGRpcmVjdGx5IGFzIGEgcHJvcGVydHlcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke2FnZ3JlZ2F0aW9uTmFtZX09JyR7ZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUobVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gYXMgc3RyaW5nKX0nYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGFnZ3JlZ2F0aW9uQ2hpbGRyZW47XG59XG5cbmNvbnN0IGpzeFhtbCA9IGZ1bmN0aW9uIDxUPihcblx0dHlwZTogdHlwZW9mIENvbnRyb2wgfCB0eXBlb2YgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHwgXCJzbG90XCIsXG5cdG1TZXR0aW5nczogTm9uQ29udHJvbFByb3BlcnRpZXM8VD4gJiB7IGtleT86IHN0cmluZzsgY2hpbGRyZW4/OiBVSTVFbGVtZW50IHwgQ29udHJvbFByb3BlcnRpZXM8VD47IG5hbWU/OiBzdHJpbmcgfSxcblx0a2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdHhtbE5hbWVzcGFjZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0b3ZlcnJpZGVOb2RlTmFtZT86IHN0cmluZ1xuKTogc3RyaW5nIHtcblx0bGV0IG1ldGFkYXRhO1xuXHRsZXQgbWV0YWRhdGFQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB7IG5hbWU/OiBzdHJpbmc7IHR5cGU/OiBzdHJpbmcgfT47XG5cdGxldCBtZXRhZGF0YUV2ZW50czogUmVjb3JkPHN0cmluZywgeyBuYW1lOiBzdHJpbmcgfT47XG5cdGxldCBjb250cm9sTmFtZTtcblx0bGV0IG1ldGFkYXRhQWdncmVnYXRpb25zO1xuXHRsZXQgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRsZXQgaXNDb250cm9sID0gZmFsc2U7XG5cdGlmICh0eXBlID09PSBcInNsb3RcIikge1xuXHRcdHJldHVybiBgPHNsb3QgbmFtZT1cIiR7bVNldHRpbmdzLm5hbWV9XCIvPmA7XG5cdH0gZWxzZSBpZiAoaXNBQ29udHJvbCh0eXBlKSkge1xuXHRcdG1ldGFkYXRhID0gdHlwZS5nZXRNZXRhZGF0YSgpO1xuXHRcdG1ldGFkYXRhUHJvcGVydGllcyA9IG1ldGFkYXRhLmdldEFsbFByb3BlcnRpZXMoKTtcblx0XHRtZXRhZGF0YVByb3BlcnRpZXMgPSB7IC4uLm1ldGFkYXRhUHJvcGVydGllcywgLi4ubWV0YWRhdGEuZ2V0QWxsRXZlbnRzKCksIC4uLm1ldGFkYXRhLmdldEFsbEFzc29jaWF0aW9ucygpIH07XG5cdFx0bWV0YWRhdGFFdmVudHMgPSBtZXRhZGF0YS5nZXRBbGxFdmVudHMoKTtcblx0XHRjb250cm9sTmFtZSA9IG1ldGFkYXRhLmdldE5hbWUoKTtcblx0XHRtZXRhZGF0YUFnZ3JlZ2F0aW9ucyA9IG1ldGFkYXRhLmdldEFsbEFnZ3JlZ2F0aW9ucygpO1xuXHRcdGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUgPSBtZXRhZGF0YS5nZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCk7XG5cdFx0aXNDb250cm9sID0gdHJ1ZTtcblx0fSBlbHNlIHtcblx0XHRtZXRhZGF0YSA9IHR5cGUubWV0YWRhdGE7XG5cdFx0bWV0YWRhdGFQcm9wZXJ0aWVzID0geyAuLi5tZXRhZGF0YS5wcm9wZXJ0aWVzIH07XG5cdFx0bWV0YWRhdGFBZ2dyZWdhdGlvbnMgPSB7IC4uLnsgZGVwZW5kZW50czoge30sIGN1c3RvbURhdGE6IHt9IH0sIC4uLm1ldGFkYXRhLmFnZ3JlZ2F0aW9ucyB9O1xuXHRcdG1ldGFkYXRhRXZlbnRzID0ge307XG5cdFx0ZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA9IG1ldGFkYXRhLmRlZmF1bHRBZ2dyZWdhdGlvbjtcblx0XHRjb250cm9sTmFtZSA9IG1ldGFkYXRhLm5hbWVzcGFjZSArIFwiLlwiICsgbWV0YWRhdGEubmFtZTtcblx0fVxuXHRjb25zdCBuYW1lc1NwbGl0ID0gY29udHJvbE5hbWUuc3BsaXQoXCIuXCIpO1xuXHRpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRtU2V0dGluZ3NbXCJrZXlcIl0gPSBrZXk7XG5cdH1cblxuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJjbGFzc1wiXSA9IHsgbmFtZTogXCJjbGFzc1wiIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcImlkXCJdID0geyBuYW1lOiBcImlkXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiYmluZGluZ1wiXSA9IHsgbmFtZTogXCJiaW5kaW5nXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0ZMX0RFTEVHQVRFXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0RUX0RFU0lHTlRJTUVdID0geyBuYW1lOiBEVF9ERVNJR05USU1FIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDT1JFX1JFUVVJUkVdID0geyBuYW1lOiBDT1JFX1JFUVVJUkUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0xPR19TT1VSQ0VQQVRIXSA9IHsgbmFtZTogTE9HX1NPVVJDRVBBVEggfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0NVU1RPTV9MT0FEVkFMVUVdID0geyBuYW1lOiBDVVNUT01fTE9BRFZBTFVFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDVVNUT01fRU5USVRZVFlQRV0gPSB7IG5hbWU6IENVU1RPTV9FTlRJVFlUWVBFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDVVNUT01fVVJMXSA9IHsgbmFtZTogQ1VTVE9NX1VSTCB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJ4bWxuczpmbFwiXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wieG1sbnM6ZHRcIl0gPSB7IG5hbWU6IERUX0RFU0lHTlRJTUUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wieG1sbnM6Y29yZVwiXSA9IHsgbmFtZTogQ09SRV9SRVFVSVJFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcInhtbG5zOmxvZ1wiXSA9IHsgbmFtZTogTE9HX1NPVVJDRVBBVEggfTtcblx0aWYgKGNvbnRyb2xOYW1lID09PSBcInNhcC51aS5jb3JlLkZyYWdtZW50XCIpIHtcblx0XHRtZXRhZGF0YVByb3BlcnRpZXNbXCJmcmFnbWVudE5hbWVcIl0gPSB7IG5hbWU6IFwiZnJhZ21lbnROYW1lXCIgfTtcblx0fVxuXHRjb25zdCBuYW1lc3BhY2UgPSBuYW1lc1NwbGl0LnNsaWNlKDAsIC0xKTtcblx0Y29uc3QgbmFtZSA9IG5hbWVzU3BsaXRbbmFtZXNTcGxpdC5sZW5ndGggLSAxXTtcblx0bGV0IG5hbWVzcGFjZUFsaWFzID0gbmFtZXNwYWNlW25hbWVzcGFjZS5sZW5ndGggLSAxXTtcblx0aWYgKHhtbE5hbWVzcGFjZU1hcFtuYW1lc3BhY2Uuam9pbihcIi5cIildKSB7XG5cdFx0bmFtZXNwYWNlQWxpYXMgPSB4bWxOYW1lc3BhY2VNYXBbbmFtZXNwYWNlLmpvaW4oXCIuXCIpXTtcblx0fVxuXHRsZXQgdGFnTmFtZSA9IGAke25hbWVzcGFjZUFsaWFzfToke25hbWV9YDtcblx0Y29uc3QgcHJvcGVydGllc1N0cmluZzogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgYWdncmVnYXRpb25TdHJpbmc6IHN0cmluZ1tdID0gW107XG5cdHByb2Nlc3NDb21tYW5kKG1TZXR0aW5ncywgbWV0YWRhdGFFdmVudHMpO1xuXHRwcm9jZXNzUHJvcGVydGllcyhtU2V0dGluZ3MsIG1ldGFkYXRhUHJvcGVydGllcywgbmFtZXNwYWNlQWxpYXMsIHByb3BlcnRpZXNTdHJpbmcsIGFnZ3JlZ2F0aW9uU3RyaW5nLCBpc0NvbnRyb2wpO1xuXHRwcm9jZXNzQWdncmVnYXRpb25zKG1TZXR0aW5ncywgbWV0YWRhdGFBZ2dyZWdhdGlvbnMsIG5hbWVzcGFjZUFsaWFzLCBkZWZhdWx0QWdncmVnYXRpb25OYW1lLCBwcm9wZXJ0aWVzU3RyaW5nLCBhZ2dyZWdhdGlvblN0cmluZyk7XG5cdGlmIChvdmVycmlkZU5vZGVOYW1lKSB7XG5cdFx0dGFnTmFtZSA9IG92ZXJyaWRlTm9kZU5hbWU7XG5cdH1cblx0cmV0dXJuIGA8JHt0YWdOYW1lfSB4bWxuczoke25hbWVzcGFjZUFsaWFzfT1cIiR7bmFtZXNwYWNlLmpvaW4oXCIuXCIpfVwiICR7cHJvcGVydGllc1N0cmluZy5qb2luKFwiIFwiKX0+JHthZ2dyZWdhdGlvblN0cmluZy5qb2luKFxuXHRcdFwiXCJcblx0KX08LyR7dGFnTmFtZX0+YDtcbn07XG5leHBvcnQgZGVmYXVsdCBqc3hYbWw7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBUUEsU0FBU0EsMEJBQTBCLENBQ2xDQyxVQUF1RCxFQUNMO0lBQ2xELE9BQU8sQ0FBQ0EsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQXdDQyxLQUFLLE1BQUtDLFNBQVM7RUFDOUU7RUFFQSxNQUFNQyxhQUFhLEdBQUcsVUFBVUMsR0FBc0IsRUFBVTtJQUMvRCxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLEVBQUU7TUFDdkIsT0FBT0EsR0FBRyxDQUFDRyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsTUFBTTtNQUNOLE9BQU9ILEdBQUc7SUFDWDtFQUNELENBQUM7O0VBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsU0FBU0ksdUJBQXVCLENBQUNDLEtBQWMsRUFBc0I7SUFDcEUsT0FBT0EsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO0VBQzNHO0VBRUEsTUFBTUMsbUJBQW1CLEdBQUcsVUFDM0JDLG1CQUF5RCxFQUN6REMsZUFBdUIsRUFDdkJDLEtBQXNDLEVBQy9CO0lBQ1AsSUFBSUEsS0FBSyxLQUFLWixTQUFTLEVBQUU7TUFDeEI7SUFDRDtJQUNBLElBQUksQ0FBQ1UsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxFQUFFO01BQzFDRCxtQkFBbUIsQ0FBQ0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtJQUMxQztJQUNBLElB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
295
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJfdHlwZSIsInVuZGVmaW5lZCIsIndyaXRlQ2hpbGRyZW4iLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUiLCJ2YWx1ZSIsInJlcGxhY2UiLCJhZGRDaGlsZEFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25DaGlsZHJlbiIsImFnZ3JlZ2F0aW9uTmFtZSIsImNoaWxkIiwidHJpbSIsImxlbmd0aCIsInB1c2giLCJmb3JFYWNoIiwic3ViQ2hpbGQiLCJjaGlsZEtleSIsIk9iamVjdCIsImtleXMiLCJpc0FDb250cm9sIiwiY2hpbGRyZW4iLCJnZXRNZXRhZGF0YSIsIkZMX0RFTEVHQVRFIiwiRFRfREVTSUdOVElNRSIsIkNPUkVfUkVRVUlSRSIsIkxPR19TT1VSQ0VQQVRIIiwiQ1VTVE9NX0xPQURWQUxVRSIsIkNVU1RPTV9FTlRJVFlUWVBFIiwiQ1VTVE9NX1VSTCIsInByb2Nlc3NPYmplY3RQcm9wZXJ0eVZhbHVlIiwiY2hpbGRyZW5PYmplY3QiLCJuYW1lc3BhY2VBbGlhcyIsInByb3BlcnR5TmFtZSIsImFnZ3JlZ2F0aW9uUHJvcGVydGllcyIsInN1YlByb3BOYW1lIiwiY2hpbGRWYWx1ZSIsImNoaWxkcmVuT2JqZWN0RWxlbWVudCIsInRvU3RyaW5nIiwibmFtZXNwYWNlZFByb3BlcnR5IiwicHJvY2Vzc1Byb3BlcnRpZXMiLCJtU2V0dGluZ3MiLCJtZXRhZGF0YVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzU3RyaW5nIiwiYWdncmVnYXRpb25TdHJpbmciLCJpc0NvbnRyb2wiLCJfbVNldHRpbmdzJGNoaWxkcmVuIiwiX21TZXR0aW5ncyRjaGlsZHJlbjIiLCJoYXNPd25Qcm9wZXJ0eSIsInByb3BlcnR5VmFsdWUiLCJ0eXBlIiwiZ2V0UGF0aCIsImNvbXBpbGVFeHByZXNzaW9uIiwib3V0VmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlcnkiLCJwcm9wIiwiX21TZXR0aW5ncyRjaGlsZHJlbjMiLCJwcm9jZXNzQ29tbWFuZCIsInNldHRpbmdzIiwibWV0YWRhdGFFdmVudHMiLCJjb21tYW5kUHJvcGVydHkiLCJjb21tYW5kIiwiZXZlbnROYW1lIiwic3BsaXQiLCJldmVudCIsInN0YXJ0c1dpdGgiLCJuYW1lIiwicHJvY2Vzc0FnZ3JlZ2F0aW9ucyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImFnZ3JlZ2F0aW9uQ2hpbGRLZXlzIiwid3JpdGVPbmx5RGVmYXVsdEFnZ3JlZ2F0aW9uIiwianN4WG1sIiwia2V5IiwieG1sTmFtZXNwYWNlTWFwIiwib3ZlcnJpZGVOb2RlTmFtZSIsIm1ldGFkYXRhIiwiY29udHJvbE5hbWUiLCJnZXRBbGxQcm9wZXJ0aWVzIiwiZ2V0QWxsRXZlbnRzIiwiZ2V0QWxsQXNzb2NpYXRpb25zIiwiZ2V0TmFtZSIsImdldEFsbEFnZ3JlZ2F0aW9ucyIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJwcm9wZXJ0aWVzIiwiZGVwZW5kZW50cyIsImN1c3RvbURhdGEiLCJhZ2dyZWdhdGlvbnMiLCJkZWZhdWx0QWdncmVnYXRpb24iLCJuYW1lc3BhY2UiLCJuYW1lc1NwbGl0Iiwic2xpY2UiLCJ0YWdOYW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gteG1sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sUHJvcGVydGllcywgTm9uQ29udHJvbFByb3BlcnRpZXMgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuXG5mdW5jdGlvbiBpc0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbihcblx0ZXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+IHwgdW5rbm93blxuKTogZXhwcmVzc2lvbiBpcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248dW5rbm93bj4ge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+KT8uX3R5cGUgIT09IHVuZGVmaW5lZDtcbn1cblxuY29uc3Qgd3JpdGVDaGlsZHJlbiA9IGZ1bmN0aW9uICh2YWw6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nIHtcblx0aWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuXHRcdHJldHVybiB2YWwuam9pbihcIlwiKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdmFsO1xuXHR9XG59O1xuXG4vKipcbiAqIFNvbWUgY2hhcmFjdGVycyBuZWVkcyB0byBiZSBlc2NhcGVkIHdoZW4gdXNlZCBhcyBYTUwgYXR0cmlidXRlIHZhbHVlLCBvdGhlcndpc2UgdGhpcyByZXN1bHQgaW4gaW5jb3JyZWN0IFhNTC5cbiAqIEBwYXJhbSB2YWx1ZVxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgeG1sIGF0dHJpYnV0ZVxuICovXG5mdW5jdGlvbiBlc2NhcGVYTUxBdHRyaWJ1dGVWYWx1ZSh2YWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiB2YWx1ZT8ucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpLnJlcGxhY2UoLycvZywgXCImYXBvcztcIik7XG59XG5cbmNvbnN0IGFkZENoaWxkQWdncmVnYXRpb24gPSBmdW5jdGlvbiAoXG5cdGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IFJlY29yZDxzdHJpbmcsIChDb250cm9sIHwgc3RyaW5nKVtdPixcblx0YWdncmVnYXRpb25OYW1lOiBzdHJpbmcsXG5cdGNoaWxkOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4pOiB2b2lkIHtcblx0aWYgKGNoaWxkID09PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKCFhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0pIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gPSBbXTtcblx0fVxuXHRpZiAodHlwZW9mIGNoaWxkID09PSBcInN0cmluZ1wiKSB7XG5cdFx0aWYgKGNoaWxkLnRyaW0oKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ucHVzaChjaGlsZCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG5cdFx0Y2hpbGQuZm9yRWFjaCgoc3ViQ2hpbGQpID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgYWdncmVnYXRpb25OYW1lLCBzdWJDaGlsZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Zm9yIChjb25zdCBjaGlsZEtleSBvZiBPYmplY3Qua2V5cyhjaGlsZCkpIHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgY2hpbGRLZXksIGNoaWxkW2NoaWxkS2V5XSk7XG5cdFx0fVxuXHR9XG59O1xuXG5jb25zdCBpc0FDb250cm9sID0gZnVuY3Rpb24gKGNoaWxkcmVuPzogdHlwZW9mIENvbnRyb2wgfCBGdW5jdGlvbik6IGNoaWxkcmVuIGlzIHR5cGVvZiBDb250cm9sIHtcblx0cmV0dXJuICEhKGNoaWxkcmVuIGFzIHR5cGVvZiBDb250cm9sKT8uZ2V0TWV0YWRhdGE7XG59O1xuXG5jb25zdCBGTF9ERUxFR0FURSA9IFwiZmw6ZGVsZWdhdGVcIjtcbmNvbnN0IERUX0RFU0lHTlRJTUUgPSBcImR0OmRlc2lnbnRpbWVcIjtcbmNvbnN0IENPUkVfUkVRVUlSRSA9IFwiY29yZTpyZXF1aXJlXCI7XG5jb25zdCBMT0dfU09VUkNFUEFUSCA9IFwibG9nOnNvdXJjZVBhdGhcIjtcbmNvbnN0IENVU1RPTV9MT0FEVkFMVUUgPSBcImN1c3RvbURhdGE6bG9hZFZhbHVlXCI7XG5jb25zdCBDVVNUT01fRU5USVRZVFlQRSA9IFwiY3VzdG9tRGF0YTplbnRpdHlUeXBlXCI7XG5jb25zdCBDVVNUT01fVVJMID0gXCJjdXN0b21EYXRhOnVybFwiO1xuXG5mdW5jdGlvbiBwcm9jZXNzT2JqZWN0UHJvcGVydHlWYWx1ZShcblx0Y2hpbGRyZW5PYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRuYW1lc3BhY2VBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZ1xuKTogc3RyaW5nIHtcblx0Ly8gVGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaXNcblx0Y29uc3QgYWdncmVnYXRpb25Qcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBzdHJpbmdbXSA9IFtdO1xuXHRPYmplY3Qua2V5cyhjaGlsZHJlbk9iamVjdCkuZm9yRWFjaCgoc3ViUHJvcE5hbWUpID0+IHtcblx0XHRjb25zdCBjaGlsZFZhbHVlID0gY2hpbGRyZW5PYmplY3Rbc3ViUHJvcE5hbWVdO1xuXHRcdGlmIChjaGlsZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgY2hpbGRWYWx1ZSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShjaGlsZFZhbHVlKSkge1xuXHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChgPCR7c3ViUHJvcE5hbWV9PmApO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgY2hpbGRyZW5PYmplY3RFbGVtZW50IG9mIGNoaWxkVmFsdWUpIHtcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChcblx0XHRcdFx0XHRcdFx0cHJvY2Vzc09iamVjdFByb3BlcnR5VmFsdWUoY2hpbGRyZW5PYmplY3RFbGVtZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBuYW1lc3BhY2VBbGlhcywgc3ViUHJvcE5hbWUpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuLnB1c2goYDwvJHtzdWJQcm9wTmFtZX0+YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gaWYgdGhlIHByb3BlcnR5IGlzIGEgdmFsdWUgaXQgbmVlZHMgdG8gYmUgc2VyaWFsaXplZCBhcyBhIGNoaWxkcmVuXG5cdFx0XHRcdFx0Ly8gPG15T2JqZWN0UHJvcCBwcm9wMT0neHh4JywgcHJvcDI9J3h4dCcvPlxuXHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChcblx0XHRcdFx0XHRcdHByb2Nlc3NPYmplY3RQcm9wZXJ0eVZhbHVlKGNoaWxkVmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIG5hbWVzcGFjZUFsaWFzLCBzdWJQcm9wTmFtZSlcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBPdGhlcndpc2UgaXQncyBwYXJ0IG9mIHRoZSBtYWluIG9iamVjdCBqdXN0IGFzIGFub3RoZXIgcHJvcGVydHlcblx0XHRcdFx0YWdncmVnYXRpb25Qcm9wZXJ0aWVzLnB1c2goYCR7c3ViUHJvcE5hbWV9PScke2VzY2FwZVhNTEF0dHJpYnV0ZVZhbHVlKGNoaWxkVmFsdWUudG9TdHJpbmcoKSl9J2ApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0Y29uc3QgbmFtZXNwYWNlZFByb3BlcnR5ID0gbmFtZXNwYWNlQWxpYXMgPyBgJHtuYW1lc3BhY2VBbGlhc306JHtwcm9wZXJ0eU5hbWV9YCA6IHByb3BlcnR5TmFtZTtcblx0cmV0dXJuIGA8JHtuYW1lc3BhY2VkUHJvcGVydHl9ICR7YWdncmVnYXRpb25Qcm9wZXJ0aWVzLmpvaW4oXCIgXCIpfT4ke2FnZ3JlZ2F0aW9uQ2hpbGRyZW4uam9pbihcIlxcblwiKX08LyR7bmFtZXNwYWNlZFByb3BlcnR5fT5gO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllczxUPihcblx0bVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0bWV0YWRhdGFQcm9wZXJ0aWVzOiBSZWNvcmQ8XG5cdFx0c3RyaW5nLFxuXHRcdHtcblx0XHRcdG5hbWU/OiBzdHJpbmc7XG5cdFx0XHR0eXBlPzogc3RyaW5nO1xuXHRcdH1cblx0Pixcblx0bmFtZXNwYWNlQWxpYXM6IHN0cmluZyxcblx0cHJvcGVydGllc1N0cmluZzogc3RyaW5nW10sXG5cdGFnZ3JlZ2F0aW9uU3RyaW5nOiBzdHJpbmdbXSxcblx0aXNDb250cm9sOiBib29sZWFuXG4pOiB2b2lkIHtcblx0T2JqZWN0LmtleXMobWV0YWRhdGFQcm9wZXJ0aWVzKS5mb3JFYWNoKChwcm9wZXJ0eU5hbWUpID0+IHtcblx0XHRpZiAobVNldHRpbmdzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkgJiYgbVNldHRpbmdzW3Byb3BlcnR5TmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgcHJvcGVydHlWYWx1ZSA9IG1TZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuXHRcdFx0aWYgKHByb3BlcnR5TmFtZSA9PT0gQ09SRV9SRVFVSVJFKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgeG1sbnM6Y29yZT1cInNhcC51aS5jb3JlXCJgKTtcblx0XHRcdH1cblx0XHRcdGlmIChwcm9wZXJ0eU5hbWUgPT09IEZMX0RFTEVHQVRFKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgeG1sbnM6Zmw9XCJzYXAudWkuZmxcImApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHByb3BlcnR5TmFtZSA9PT0gRFRfREVTSUdOVElNRSkge1xuXHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYHhtbG5zOmR0PVwic2FwLnVpLmR0XCJgKTtcblx0XHRcdH1cblx0XHRcdGlmIChwcm9wZXJ0eU5hbWUgPT09IExPR19TT1VSQ0VQQVRIKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgeG1sbnM6bG9nPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiYCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocHJvcGVydHlOYW1lID09PSBDVVNUT01fVVJMIHx8IHByb3BlcnR5TmFtZSA9PT0gQ1VTVE9NX0xPQURWQUxVRSB8fCBwcm9wZXJ0eU5hbWUgPT09IENVU1RPTV9FTlRJVFlUWVBFKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgeG1sbnM6Y3VzdG9tRGF0YT1cImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcImApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHByb3BlcnR5VmFsdWUgJiYgdHlwZW9mIHByb3BlcnR5VmFsdWUgPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0aWYgKG1ldGFkYXRhUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdLnR5cGUgPT09IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIikge1xuXHRcdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PSckeyhwcm9wZXJ0eVZhbHVlIGFzIENvbnRleHQpLmdldFBhdGgoKX0nYCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoaXNCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ocHJvcGVydHlWYWx1ZSkpIHtcblx0XHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYCR7cHJvcGVydHlOYW1lfT0nJHtlc2NhcGVYTUxBdHRyaWJ1dGVWYWx1ZShjb21waWxlRXhwcmVzc2lvbihwcm9wZXJ0eVZhbHVlKSl9J2ApO1xuXHRcdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlWYWx1ZSkpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZS5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG91dFZhbHVlID0gdHlwZW9mIHByb3BlcnR5VmFsdWVbMF0gPT09IFwic3RyaW5nXCIgPyBwcm9wZXJ0eVZhbHVlWzBdIDogSlNPTi5zdHJpbmdpZnkocHJvcGVydHlWYWx1ZVswXSk7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYCR7cHJvcGVydHlOYW1lfT0nJHtvdXRWYWx1ZX0nYCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnN0IG91dFZhbHVlID0gcHJvcGVydHlWYWx1ZS5ldmVyeSgodmFsKSA9PiB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKVxuXHRcdFx0XHRcdFx0XHQ/IHByb3BlcnR5VmFsdWUuam9pbihcIiBcIilcblx0XHRcdFx0XHRcdFx0OiBKU09OLnN0cmluZ2lmeShwcm9wZXJ0eVZhbHVlKTtcblx0XHRcdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PScke291dFZhbHVlfSdgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoaXNDb250cm9sKSB7XG5cdFx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7SlNPTi5zdHJpbmdpZnkobVNldHRpbmdzW3Byb3BlcnR5TmFtZV0pfSdgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhZ2dyZWdhdGlvblN0cmluZy5wdXNoKHByb2Nlc3NPYmplY3RQcm9wZXJ0eVZhbHVlKHByb3BlcnR5VmFsdWUgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgdW5kZWZpbmVkLCBwcm9wZXJ0eU5hbWUpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChtU2V0dGluZ3NbcHJvcGVydHlOYW1lXSAhPT0gbnVsbCkge1xuXHRcdFx0XHRjb25zdCBwcm9wID0gbVNldHRpbmdzW3Byb3BlcnR5TmFtZV0gYXMgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcjtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7ZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUocHJvcC50b1N0cmluZygpKX0nYCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdG1TZXR0aW5ncy5jaGlsZHJlbj8uaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSAmJlxuXHRcdFx0T2JqZWN0LmtleXMoKG1TZXR0aW5ncy5jaGlsZHJlbiBhcyBDb250cm9sUHJvcGVydGllczxUPik/Lltwcm9wZXJ0eU5hbWVdID8/IHt9KS5sZW5ndGggPiAwXG5cdFx0KSB7XG5cdFx0XHQvLyBPYmplY3QgLyBBcnJheSBwcm9wZXJ0aWVzIGFyZSBwYXJ0IG9mIHRoZSBgY2hpbGRyZW5gIGFnZ3JlZ2F0aW9uIGFuZCBhcyBzdWNoIHN0aWxsIG5lZWQgdG8gYmUgcHJvY2Vzc2VkIGFzIHByb3BlcnRpZXNcblx0XHRcdGNvbnN0IGNoaWxkcmVuT2JqZWN0ID0gKG1TZXR0aW5ncy5jaGlsZHJlbiBhcyBDb250cm9sUHJvcGVydGllczxUPik/Lltwcm9wZXJ0eU5hbWVdIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgb2JqZWN0Pjtcblx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2gocHJvY2Vzc09iamVjdFByb3BlcnR5VmFsdWUoY2hpbGRyZW5PYmplY3QsIG5hbWVzcGFjZUFsaWFzLCBwcm9wZXJ0eU5hbWUpKTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIFByb2Nlc3NlcyB0aGUgY29tbWFuZC5cbiAqXG4gKiBSZXNvbHZlcyB0aGUgY29tbWFuZCBzZXQgb24gdGhlIGNvbnRyb2wgdmlhIHRoZSBpbnRyaW5zaWMgY2xhc3MgYXR0cmlidXRlIFwianN4OmNvbW1hbmRcIi5cbiAqIElmIG5vIGNvbW1hbmQgaGFzIGJlZW4gc2V0IG9yIHRoZSB0YXJnZXRlZCBldmVudCBkb2Vzbid0IGV4aXN0LCBubyBjb25maWd1cmF0aW9uIGlzIHNldC5cbiAqIEBwYXJhbSBzZXR0aW5ncyBNZXRhZGF0YSBvZiB0aGUgY29udHJvbFxuICogQHBhcmFtIG1ldGFkYXRhRXZlbnRzIFNldHRpbmdzIG9mIHRoZSBjb250cm9sXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NDb21tYW5kKFxuXHRzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG5cdG1ldGFkYXRhRXZlbnRzOiBSZWNvcmQ8XG5cdFx0c3RyaW5nLFxuXHRcdHtcblx0XHRcdG5hbWU6IHN0cmluZztcblx0XHR9XG5cdD5cbik6IHZvaWQge1xuXHRjb25zdCBjb21tYW5kUHJvcGVydHkgPSBzZXR0aW5nc1tcImpzeDpjb21tYW5kXCJdO1xuXHRpZiAoY29tbWFuZFByb3BlcnR5KSB7XG5cdFx0Y29uc3QgW2NvbW1hbmQsIGV2ZW50TmFtZV0gPSAoY29tbWFuZFByb3BlcnR5IGFzIHN0cmluZykuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IGV2ZW50ID0gbWV0YWRhdGFFdmVudHNbZXZlbnROYW1lXTtcblx0XHRpZiAoZXZlbnQgJiYgY29tbWFuZC5zdGFydHNXaXRoKFwiY21kOlwiKSkge1xuXHRcdFx0c2V0dGluZ3NbZXZlbnQubmFtZV0gPSBjb21tYW5kO1xuXHRcdH1cblx0fVxuXHRkZWxldGUgc2V0dGluZ3NbXCJqc3g6Y29tbWFuZFwiXTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0FnZ3JlZ2F0aW9ucyhcblx0bVNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0bWV0YWRhdGFBZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG5cdG5hbWVzcGFjZUFsaWFzOiBzdHJpbmcsXG5cdGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0cHJvcGVydGllc1N0cmluZzogc3RyaW5nW10sXG5cdGFnZ3JlZ2F0aW9uU3RyaW5nOiBzdHJpbmdbXVxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWdncmVnYXRpb25DaGlsZHJlbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA/PyBcImN1c3RvbURhdGFcIiwgbVNldHRpbmdzLmNoaWxkcmVuIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkS2V5cyA9IE9iamVjdC5rZXlzKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4pO1xuXHRsZXQgd3JpdGVPbmx5RGVmYXVsdEFnZ3JlZ2F0aW9uID0gZmFsc2U7XG5cdGlmIChhZ2dyZWdhdGlvbkNoaWxkS2V5cy5sZW5ndGggPT09IDEgJiYgYWdncmVnYXRpb25DaGlsZEtleXNbMF0gPT09IGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUpIHtcblx0XHR3cml0ZU9ubHlEZWZhdWx0QWdncmVnYXRpb24gPSB0cnVlO1xuXHR9XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKChhZ2dyZWdhdGlvbk5hbWUpID0+IHtcblx0XHRpZiAoYWdncmVnYXRpb25DaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShhZ2dyZWdhdGlvbk5hbWUpICYmIGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXS5sZW5ndGggPiAwKSB7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25OYW1lID09PSBkZWZhdWx0QWdncmVnYXRpb25OYW1lICYmIHdyaXRlT25seURlZmF1bHRBZ2dyZWdhdGlvbikge1xuXHRcdFx0XHRhZ2dyZWdhdGlvblN0cmluZy5wdXNoKGAke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1gKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2goXG5cdFx0XHRcdFx0YDwke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+XG5cdFx0XHRcdFx0XHQke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1cblx0XHRcdFx0XHQ8LyR7bmFtZXNwYWNlQWxpYXN9OiR7YWdncmVnYXRpb25OYW1lfT5gXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSAmJiBtU2V0dGluZ3NbYWdncmVnYXRpb25OYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHthZ2dyZWdhdGlvbk5hbWV9PScke0pTT04uc3RyaW5naWZ5KG1TZXR0aW5nc1thZ2dyZWdhdGlvbk5hbWVdKX0nYCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJbiBzb21lIGNhc2UgdGhlIGFnZ3JlZ2F0aW9uIGV4cGVjdCBhIHN0cmluZyB2YWx1ZSAobGlrZSBmb3IgdGhlIHRvb2x0aXApLCBpbiB0aGlzIGNhc2Ugd2Ugc2V0IGl0IGRpcmVjdGx5IGFzIGEgcHJvcGVydHlcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke2FnZ3JlZ2F0aW9uTmFtZX09JyR7ZXNjYXBlWE1MQXR0cmlidXRlVmFsdWUobVNldHRpbmdzW2FnZ3JlZ2F0aW9uTmFtZV0gYXMgc3RyaW5nKX0nYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGFnZ3JlZ2F0aW9uQ2hpbGRyZW47XG59XG5cbmNvbnN0IGpzeFhtbCA9IGZ1bmN0aW9uIDxUPihcblx0dHlwZTogdHlwZW9mIENvbnRyb2wgfCB0eXBlb2YgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHwgXCJzbG90XCIsXG5cdG1TZXR0aW5nczogTm9uQ29udHJvbFByb3BlcnRpZXM8VD4gJiB7IGtleT86IHN0cmluZzsgY2hpbGRyZW4/OiBVSTVFbGVtZW50IHwgQ29udHJvbFByb3BlcnRpZXM8VD47IG5hbWU/OiBzdHJpbmcgfSxcblx0a2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdHhtbE5hbWVzcGFjZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0b3ZlcnJpZGVOb2RlTmFtZT86IHN0cmluZ1xuKTogc3RyaW5nIHtcblx0bGV0IG1ldGFkYXRhO1xuXHRsZXQgbWV0YWRhdGFQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB7IG5hbWU/OiBzdHJpbmc7IHR5cGU/OiBzdHJpbmcgfT47XG5cdGxldCBtZXRhZGF0YUV2ZW50czogUmVjb3JkPHN0cmluZywgeyBuYW1lOiBzdHJpbmcgfT47XG5cdGxldCBjb250cm9sTmFtZTtcblx0bGV0IG1ldGFkYXRhQWdncmVnYXRpb25zO1xuXHRsZXQgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRsZXQgaXNDb250cm9sID0gZmFsc2U7XG5cdGlmICh0eXBlID09PSBcInNsb3RcIikge1xuXHRcdHJldHVybiBgPHNsb3QgbmFtZT1cIiR7bVNldHRpbmdzLm5hbWV9XCIvPmA7XG5cdH0gZWxzZSBpZiAoaXNBQ29udHJvbCh0eXBlKSkge1xuXHRcdG1ldGFkYXRhID0gdHlwZS5nZXRNZXRhZGF0YSgpO1xuXHRcdG1ldGFkYXRhUHJvcGVydGllcyA9IG1ldGFkYXRhLmdldEFsbFByb3BlcnRpZXMoKTtcblx0XHRtZXRhZGF0YVByb3BlcnRpZXMgPSB7IC4uLm1ldGFkYXRhUHJvcGVydGllcywgLi4ubWV0YWRhdGEuZ2V0QWxsRXZlbnRzKCksIC4uLm1ldGFkYXRhLmdldEFsbEFzc29jaWF0aW9ucygpIH07XG5cdFx0bWV0YWRhdGFFdmVudHMgPSBtZXRhZGF0YS5nZXRBbGxFdmVudHMoKTtcblx0XHRjb250cm9sTmFtZSA9IG1ldGFkYXRhLmdldE5hbWUoKTtcblx0XHRtZXRhZGF0YUFnZ3JlZ2F0aW9ucyA9IG1ldGFkYXRhLmdldEFsbEFnZ3JlZ2F0aW9ucygpO1xuXHRcdGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUgPSBtZXRhZGF0YS5nZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCk7XG5cdFx0aXNDb250cm9sID0gdHJ1ZTtcblx0fSBlbHNlIHtcblx0XHRtZXRhZGF0YSA9IHR5cGUubWV0YWRhdGE7XG5cdFx0bWV0YWRhdGFQcm9wZXJ0aWVzID0geyAuLi5tZXRhZGF0YS5wcm9wZXJ0aWVzIH07XG5cdFx0bWV0YWRhdGFBZ2dyZWdhdGlvbnMgPSB7IC4uLnsgZGVwZW5kZW50czoge30sIGN1c3RvbURhdGE6IHt9IH0sIC4uLm1ldGFkYXRhLmFnZ3JlZ2F0aW9ucyB9O1xuXHRcdG1ldGFkYXRhRXZlbnRzID0ge307XG5cdFx0ZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA9IG1ldGFkYXRhLmRlZmF1bHRBZ2dyZWdhdGlvbjtcblx0XHRjb250cm9sTmFtZSA9IG1ldGFkYXRhLm5hbWVzcGFjZSArIFwiLlwiICsgbWV0YWRhdGEubmFtZTtcblx0fVxuXHRjb25zdCBuYW1lc1NwbGl0ID0gY29udHJvbE5hbWUuc3BsaXQoXCIuXCIpO1xuXHRpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRtU2V0dGluZ3NbXCJrZXlcIl0gPSBrZXk7XG5cdH1cblxuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJjbGFzc1wiXSA9IHsgbmFtZTogXCJjbGFzc1wiIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcImlkXCJdID0geyBuYW1lOiBcImlkXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiYmluZGluZ1wiXSA9IHsgbmFtZTogXCJiaW5kaW5nXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0ZMX0RFTEVHQVRFXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0RUX0RFU0lHTlRJTUVdID0geyBuYW1lOiBEVF9ERVNJR05USU1FIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDT1JFX1JFUVVJUkVdID0geyBuYW1lOiBDT1JFX1JFUVVJUkUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0xPR19TT1VSQ0VQQVRIXSA9IHsgbmFtZTogTE9HX1NPVVJDRVBBVEggfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0NVU1RPTV9MT0FEVkFMVUVdID0geyBuYW1lOiBDVVNUT01fTE9BRFZBTFVFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDVVNUT01fRU5USVRZVFlQRV0gPSB7IG5hbWU6IENVU1RPTV9FTlRJVFlUWVBFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tDVVNUT01fVVJMXSA9IHsgbmFtZTogQ1VTVE9NX1VSTCB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJ4bWxuczpmbFwiXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wieG1sbnM6ZHRcIl0gPSB7IG5hbWU6IERUX0RFU0lHTlRJTUUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wieG1sbnM6Y29yZVwiXSA9IHsgbmFtZTogQ09SRV9SRVFVSVJFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcInhtbG5zOmxvZ1wiXSA9IHsgbmFtZTogTE9HX1NPVVJDRVBBVEggfTtcblx0aWYgKGNvbnRyb2xOYW1lID09PSBcInNhcC51aS5jb3JlLkZyYWdtZW50XCIpIHtcblx0XHRtZXRhZGF0YVByb3BlcnRpZXNbXCJmcmFnbWVudE5hbWVcIl0gPSB7IG5hbWU6IFwiZnJhZ21lbnROYW1lXCIgfTtcblx0fVxuXHRjb25zdCBuYW1lc3BhY2UgPSBuYW1lc1NwbGl0LnNsaWNlKDAsIC0xKTtcblx0Y29uc3QgbmFtZSA9IG5hbWVzU3BsaXRbbmFtZXNTcGxpdC5sZW5ndGggLSAxXTtcblx0bGV0IG5hbWVzcGFjZUFsaWFzID0gbmFtZXNwYWNlW25hbWVzcGFjZS5sZW5ndGggLSAxXTtcblx0aWYgKHhtbE5hbWVzcGFjZU1hcFtuYW1lc3BhY2Uuam9pbihcIi5cIildKSB7XG5cdFx0bmFtZXNwYWNlQWxpYXMgPSB4bWxOYW1lc3BhY2VNYXBbbmFtZXNwYWNlLmpvaW4oXCIuXCIpXTtcblx0fVxuXHRsZXQgdGFnTmFtZSA9IGAke25hbWVzcGFjZUFsaWFzfToke25hbWV9YDtcblx0Y29uc3QgcHJvcGVydGllc1N0cmluZzogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgYWdncmVnYXRpb25TdHJpbmc6IHN0cmluZ1tdID0gW107XG5cdHByb2Nlc3NDb21tYW5kKG1TZXR0aW5ncywgbWV0YWRhdGFFdmVudHMpO1xuXHRwcm9jZXNzUHJvcGVydGllcyhtU2V0dGluZ3MsIG1ldGFkYXRhUHJvcGVydGllcywgbmFtZXNwYWNlQWxpYXMsIHByb3BlcnRpZXNTdHJpbmcsIGFnZ3JlZ2F0aW9uU3RyaW5nLCBpc0NvbnRyb2wpO1xuXHRwcm9jZXNzQWdncmVnYXRpb25zKG1TZXR0aW5ncywgbWV0YWRhdGFBZ2dyZWdhdGlvbnMsIG5hbWVzcGFjZUFsaWFzLCBkZWZhdWx0QWdncmVnYXRpb25OYW1lLCBwcm9wZXJ0aWVzU3RyaW5nLCBhZ2dyZWdhdGlvblN0cmluZyk7XG5cdGlmIChvdmVycmlkZU5vZGVOYW1lKSB7XG5cdFx0dGFnTmFtZSA9IG92ZXJyaWRlTm9kZU5hbWU7XG5cdH1cblx0cmV0dXJuIGA8JHt0YWdOYW1lfSB4bWxuczoke25hbWVzcGFjZUFsaWFzfT1cIiR7bmFtZXNwYWNlLmpvaW4oXCIuXCIpfVwiICR7cHJvcGVydGllc1N0cmluZy5qb2luKFwiIFwiKX0+JHthZ2dyZWdhdGlvblN0cmluZy5qb2luKFxuXHRcdFwiXCJcblx0KX08LyR7dGFnTmFtZX0+YDtcbn07XG5leHBvcnQgZGVmYXVsdCBqc3hYbWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBUUEsU0FBU0EsMEJBQTBCQSxDQUNsQ0MsVUFBdUQsRUFDTDtJQUNsRCxPQUFPLENBQUNBLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUF3Q0MsS0FBSyxNQUFLQyxTQUFTO0VBQzlFO0VBRUEsTUFBTUMsYUFBYSxHQUFHLFNBQUFBLENBQVVDLEdBQXNCLEVBQVU7SUFDL0QsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNGLEdBQUcsQ0FBQyxFQUFFO01BQ3ZCLE9BQU9BLEdBQUcsQ0FBQ0csSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTixPQUFPSCxHQUFHO0lBQ1g7RUFDRCxDQUFDOztFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTSSx1QkFBdUJBLENBQUNDLEtBQWMsRUFBc0I7SUFDcEUsT0FBT0EsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO0VBQzNHO0VBRUEsTUFBTUMsbUJBQW1CLEdBQUcsU0FBQUEsQ0FDM0JDLG1CQUF5RCxFQUN6REMsZUFBdUIsRUFDdkJDLEtBQXNDLEVBQy9CO0lBQ1AsSUFBSUEsS0FBSyxLQUFLWixTQUFTLEVBQUU7TUFDeEI7SUFDRDtJQUNBLElBQUksQ0FBQ1UsbUJBQW1CLENBQUNDLGVBQWUsQ0FBQyxF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
@@ -22,7 +22,6 @@ const writeChildren = function (val: string | string[]): string {
22
22
 
23
23
  /**
24
24
  * Some characters needs to be escaped when used as XML attribute value, otherwise this result in incorrect XML.
25
- *
26
25
  * @param value
27
26
  * @returns The escaped xml attribute
28
27
  */
@@ -178,7 +177,6 @@ function processProperties<T>(
178
177
  *
179
178
  * Resolves the command set on the control via the intrinsic class attribute "jsx:command".
180
179
  * If no command has been set or the targeted event doesn't exist, no configuration is set.
181
- *
182
180
  * @param settings Metadata of the control
183
181
  * @param metadataEvents Settings of the control
184
182
  */
@@ -31,7 +31,6 @@ sap.ui.define(["sap/fe/base/jsx-runtime/jsx-control", "sap/fe/base/jsx-runtime/j
31
31
  };
32
32
  /**
33
33
  * Indicates that the next JSX call should be rendered as XML.
34
- *
35
34
  * @param renderMethod The method that needs to be rendered as XML
36
35
  * @returns The XML representation of the control
37
36
  */
@@ -53,4 +52,4 @@ sap.ui.define(["sap/fe/base/jsx-runtime/jsx-control", "sap/fe/base/jsx-runtime/j
53
52
  };
54
53
  return jsx;
55
54
  }, false);
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJOZXh0QXNYTUwiLCJyZW5kZXJOZXh0VXNpbmdSZW5kZXJNYW5hZ2VyIiwieG1sTmFtZXNwYWNlTWFwIiwianN4IiwiQ29udHJvbFR5cGUiLCJtU2V0dGluZ3MiLCJrZXkiLCJqc3hDb250cm9sIiwianN4Q29udGV4dCIsInVuZGVmaW5lZCIsImpzeFJlbmRlck1hbmFnZXIiLCJqc3hYbWwiLCJyZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIiLCJyZW5kZXJNYW5hZ2VyIiwiY29udHJvbCIsInJlbmRlck1ldGhvZCIsInJldHVyblZhbHVlIiwiZGVmaW5lWE1MTmFtZXNwYWNlTWFwIiwibmFtZXNwYWNlTWFwIiwicmVuZGVyQXNYTUwiLCJnZXRDb250ZXh0Iiwid2l0aENvbnRleHQiLCJjb250ZXh0IiwiZnVuY3Rpb25Ub0V4ZWN1dGUiLCJjYWxsQmFja1JldHVybiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqc3hDb250cm9sIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3gtY29udHJvbFwiO1xuaW1wb3J0IGpzeFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeC1yZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQganN4WG1sIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3gteG1sXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgRWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuXG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuXG50eXBlIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIHN0cmluZyB8IGJvb2xlYW4gfCBGdW5jdGlvbiB8IG51bWJlciB8IHVuZGVmaW5lZCB8IHN0cmluZ1tdID8gbmV2ZXIgOiBLO1xufVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIENvbnRyb2xQcm9wZXJ0aWVzPFQ+ID0gUGFydGlhbDxSZWNvcmQ8Q29udHJvbFByb3BlcnR5TmFtZXM8VD4sIEVsZW1lbnQ+PiAmIHtcblx0W2s6IHN0cmluZ106IEVsZW1lbnQ7XG59O1xuZXhwb3J0IHR5cGUgTm9uQ29udHJvbFByb3BlcnRpZXM8VD4gPSBQYXJ0aWFsPE9taXQ8VCwgQ29udHJvbFByb3BlcnR5TmFtZXM8VD4+PjtcbmV4cG9ydCB0eXBlIENvbW1hbmRQcm9wZXJ0aWVzID0gYGNtZDoke3N0cmluZ318JHtzdHJpbmd9YDtcblxubGV0IHJlbmRlck5leHRBc1hNTCA9IGZhbHNlO1xubGV0IHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXI6IFJlbmRlck1hbmFnZXIgfCB1bmRlZmluZWQ7XG5sZXQgeG1sTmFtZXNwYWNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5jb25zdCBqc3ggPSBmdW5jdGlvbiA8VD4oXG5cdENvbnRyb2xUeXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcgfCBDb250cm9sIHwgQ29udHJvbFtdIHwgdW5kZWZpbmVkIHtcblx0aWYgKCFyZW5kZXJOZXh0QXNYTUwgJiYgIXJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIpIHtcblx0XHRyZXR1cm4ganN4Q29udHJvbChDb250cm9sVHlwZSwgbVNldHRpbmdzLCBrZXksIGpzeENvbnRleHQpO1xuXHR9IGVsc2UgaWYgKHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBqc3hSZW5kZXJNYW5hZ2VyKFxuXHRcdFx0Q29udHJvbFR5cGUgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRtU2V0dGluZ3MgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRcdGtleSxcblx0XHRcdHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXJcblx0XHQpIGFzIHVua25vd24gYXMgc3RyaW5nIHwgQ29udHJvbCB8IENvbnRyb2xbXSB8IHVuZGVmaW5lZDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4ganN4WG1sKENvbnRyb2xUeXBlLCBtU2V0dGluZ3MsIGtleSwgeG1sTmFtZXNwYWNlTWFwKTtcblx0fVxufTtcbmpzeC5yZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIgPSBmdW5jdGlvbiAocmVuZGVyTWFuYWdlcjogUmVuZGVyTWFuYWdlciwgY29udHJvbDogQ29udHJvbCwgcmVuZGVyTWV0aG9kOiBGdW5jdGlvbik6IHZvaWQge1xuXHRyZW5kZXJOZXh0VXNpbmdSZW5kZXJNYW5hZ2VyID0gcmVuZGVyTWFuYWdlcjtcblx0Y29uc3QgcmV0dXJuVmFsdWUgPSByZW5kZXJNZXRob2QoY29udHJvbCk7XG5cdHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIgPSB1bmRlZmluZWQ7XG5cdHJldHVyblZhbHVlKCk7XG59O1xuanN4LmRlZmluZVhNTE5hbWVzcGFjZU1hcCA9IGFzeW5jIGZ1bmN0aW9uIChuYW1lc3BhY2VNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHJlbmRlck1ldGhvZDogRnVuY3Rpb24pOiBQcm9taXNlPHVua25vd24+IHtcblx0eG1sTmFtZXNwYWNlTWFwID0gbmFtZXNwYWNlTWFwO1xuXHRjb25zdCByZXR1cm5WYWx1ZSA9IGF3YWl0IHJlbmRlck1ldGhvZCgpO1xuXHR4bWxOYW1lc3BhY2VNYXAgPSB7fTtcblx0cmV0dXJuIHJldHVyblZhbHVlO1xufTtcbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIG5leHQgSlNYIGNhbGwgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIFhNTC5cbiAqXG4gKiBAcGFyYW0gcmVuZGVyTWV0aG9kIFRoZSBtZXRob2QgdGhhdCBuZWVkcyB0byBiZSByZW5kZXJlZCBhcyBYTUxcbiAqIEByZXR1cm5zIFRoZSBYTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRyb2xcbiAqL1xuanN4LnJlbmRlckFzWE1MID0gZnVuY3Rpb24gPFQ+KHJlbmRlck1ldGhvZDogKCkgPT4gVCk6IFQge1xuXHRyZW5kZXJOZXh0QXNYTUwgPSB0cnVlO1xuXHRjb25zdCByZXR1cm5WYWx1ZSA9IHJlbmRlck1ldGhvZCgpO1xuXHRyZW5kZXJOZXh0QXNYTUwgPSBmYWxzZTtcblx0cmV0dXJuIHJldHVyblZhbHVlO1xufTtcblxuZXhwb3J0IHR5cGUgUmVmPFQgZXh0ZW5kcyBFbGVtZW50PiA9IHtcblx0Y3VycmVudD86IFQ7XG5cdHNldEN1cnJlbnQob0NvbnRyb2xJbnN0YW5jZTogVCk6IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBKU1hDb250ZXh0ID0ge1xuXHRvd25lckNvbnRyb2w/OiBDb250cm9sICYge1xuXHRcdGNvbnRyb2xSZWZlcmVuY2VzPzogUmVjb3JkPHN0cmluZywgRWxlbWVudD47XG5cdFx0Y29udHJvbFJlZmVyZW5jZXNJZD86IG51bWJlcjtcblx0fTtcblx0dmlldz86IFZpZXc7XG5cdGFwcENvbXBvbmVudD86IEFwcENvbXBvbmVudDtcbn07XG5sZXQganN4Q29udGV4dDogSlNYQ29udGV4dCA9IHt9O1xuanN4LmdldENvbnRleHQgPSBmdW5jdGlvbiAoKTogSlNYQ29udGV4dCB7XG5cdHJldHVybiBqc3hDb250ZXh0O1xufTtcblxuanN4LndpdGhDb250ZXh0ID0gZnVuY3Rpb24gPFQ+KGNvbnRleHQ6IEpTWENvbnRleHQsIGZ1bmN0aW9uVG9FeGVjdXRlOiAoKSA9PiBUKTogVCB7XG5cdGpzeENvbnRleHQgPSBjb250ZXh0O1xuXHRjb25zdCBjYWxsQmFja1JldHVybiA9IGZ1bmN0aW9uVG9FeGVjdXRlKCk7XG5cdGpzeENvbnRleHQgPSB7fTtcblx0cmV0dXJuIGNhbGxCYWNrUmV0dXJuO1xufTtcblxuZXhwb3J0IGRlZmF1bHQganN4O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBbUJBLElBQUlBLGVBQWUsR0FBRyxLQUFLO0VBQzNCLElBQUlDLDRCQUF1RDtFQUMzRCxJQUFJQyxlQUF1QyxHQUFHLENBQUMsQ0FBQztFQUNoRCxNQUFNQyxHQUFHLEdBQUcsVUFDWEMsV0FBMkIsRUFDM0JDLFNBQStGLEVBQy9GQyxHQUFXLEVBQ2dDO0lBQzNDLElBQUksQ0FBQ04sZUFBZSxJQUFJLENBQUNDLDRCQUE0QixFQUFFO01BQ3RELE9BQU9NLFVBQVUsQ0FBQ0gsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLEdBQUcsRUFBRUUsVUFBVSxDQUFDO0lBQzNELENBQUMsTUFBTSxJQUFJUCw0QkFBNEIsS0FBS1EsU0FBUyxFQUFFO01BQ3RELE9BQU9DLGdCQUFnQixDQUN0Qk4sV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLEdBQUcsRUFDSEwsNEJBQTRCLENBQzVCO0lBQ0YsQ0FBQyxNQUFNO01BQ04sT0FBT1UsTUFBTSxDQUFDUCxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsR0FBRyxFQUFFSixlQUFlLENBQUM7SUFDNUQ7RUFDRCxDQUFDO0VBQ0RDLEdBQUcsQ0FBQ1Msd0JBQXdCLEdBQUcsVUFBVUMsYUFBNEIsRUFBRUMsT0FBZ0IsRUFBRUMsWUFBc0IsRUFBUTtJQUN0SGQsNEJBQTRCLEdBQUdZLGFBQWE7SUFDNUMsTUFBTUcsV0FBVyxHQUFHRCxZQUFZLENBQUNELE9BQU8sQ0FBQztJQUN6Q2IsNEJBQTRCLEdBQUdRLFNBQVM7SUFDeENPLFdBQVcsRUFBRTtFQUNkLENBQUM7RUFDRGIsR0FBRyxDQUFDYyxxQkFBcUIsR0FBRyxnQkFBZ0JDLFlBQW9DLEVBQUVILFlBQXNCLEVBQW9CO0lBQzNIYixlQUFlLEdBQUdnQixZQUFZO0lBQzlCLE1BQU1GLFdBQVcsR0FBRyxNQUFNRCxZQUFZLEVBQUU7SUFDeENiLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDcEIsT0FBT2MsV0FBVztFQUNuQixDQUFDO0VBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0FiLEdBQUcsQ0FBQ2dCLFdBQVcsR0FBRyxVQUFhSixZQUFxQixFQUFLO0lBQ3hEZixlQUFlLEdBQUcsSUFBSTtJQUN0QixNQUFNZ0IsV0FBVyxHQUFHRCxZQUFZLEVBQUU7SUFDbENmLGVBQWUsR0FBRyxLQUFLO0lBQ3ZCLE9BQU9nQixXQUFXO0VBQ25CLENBQUM7RUFlRCxJQUFJUixVQUFzQixHQUFHLENBQUMsQ0FBQztFQUMvQkwsR0FBRyxDQUFDaUIsVUFBVSxHQUFHLFlBQXdCO0lBQ3hDLE9BQU9aLFVBQVU7RUFDbEIsQ0FBQztFQUVETCxHQUFHLENBQUNrQixXQUFXLEdBQUcsVUFBYUMsT0FBbUIsRUFBRUMsaUJBQTBCLEVBQUs7SUFDbEZmLFVBQVUsR0FBR2MsT0FBTztJQUNwQixNQUFNRSxjQUFjLEdBQUdELGlCQUFpQixFQUFFO0lBQzFDZixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsT0FBT2dCLGNBQWM7RUFDdEIsQ0FBQztFQUFDLE9BRWFyQixHQUFHO0FBQUEifQ==
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJOZXh0QXNYTUwiLCJyZW5kZXJOZXh0VXNpbmdSZW5kZXJNYW5hZ2VyIiwieG1sTmFtZXNwYWNlTWFwIiwianN4IiwiQ29udHJvbFR5cGUiLCJtU2V0dGluZ3MiLCJrZXkiLCJqc3hDb250cm9sIiwianN4Q29udGV4dCIsInVuZGVmaW5lZCIsImpzeFJlbmRlck1hbmFnZXIiLCJqc3hYbWwiLCJyZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIiLCJyZW5kZXJNYW5hZ2VyIiwiY29udHJvbCIsInJlbmRlck1ldGhvZCIsInJldHVyblZhbHVlIiwiZGVmaW5lWE1MTmFtZXNwYWNlTWFwIiwibmFtZXNwYWNlTWFwIiwicmVuZGVyQXNYTUwiLCJnZXRDb250ZXh0Iiwid2l0aENvbnRleHQiLCJjb250ZXh0IiwiZnVuY3Rpb25Ub0V4ZWN1dGUiLCJjYWxsQmFja1JldHVybiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqc3hDb250cm9sIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3gtY29udHJvbFwiO1xuaW1wb3J0IGpzeFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeC1yZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQganN4WG1sIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3gteG1sXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgRWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuXG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuXG50eXBlIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIHN0cmluZyB8IGJvb2xlYW4gfCBGdW5jdGlvbiB8IG51bWJlciB8IHVuZGVmaW5lZCB8IHN0cmluZ1tdID8gbmV2ZXIgOiBLO1xufVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIENvbnRyb2xQcm9wZXJ0aWVzPFQ+ID0gUGFydGlhbDxSZWNvcmQ8Q29udHJvbFByb3BlcnR5TmFtZXM8VD4sIEVsZW1lbnQ+PiAmIHtcblx0W2s6IHN0cmluZ106IEVsZW1lbnQ7XG59O1xuZXhwb3J0IHR5cGUgTm9uQ29udHJvbFByb3BlcnRpZXM8VD4gPSBQYXJ0aWFsPE9taXQ8VCwgQ29udHJvbFByb3BlcnR5TmFtZXM8VD4+PjtcbmV4cG9ydCB0eXBlIENvbW1hbmRQcm9wZXJ0aWVzID0gYGNtZDoke3N0cmluZ318JHtzdHJpbmd9YDtcblxubGV0IHJlbmRlck5leHRBc1hNTCA9IGZhbHNlO1xubGV0IHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXI6IFJlbmRlck1hbmFnZXIgfCB1bmRlZmluZWQ7XG5sZXQgeG1sTmFtZXNwYWNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5jb25zdCBqc3ggPSBmdW5jdGlvbiA8VD4oXG5cdENvbnRyb2xUeXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcgfCBDb250cm9sIHwgQ29udHJvbFtdIHwgdW5kZWZpbmVkIHtcblx0aWYgKCFyZW5kZXJOZXh0QXNYTUwgJiYgIXJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIpIHtcblx0XHRyZXR1cm4ganN4Q29udHJvbChDb250cm9sVHlwZSwgbVNldHRpbmdzLCBrZXksIGpzeENvbnRleHQpO1xuXHR9IGVsc2UgaWYgKHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBqc3hSZW5kZXJNYW5hZ2VyKFxuXHRcdFx0Q29udHJvbFR5cGUgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRtU2V0dGluZ3MgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRcdGtleSxcblx0XHRcdHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXJcblx0XHQpIGFzIHVua25vd24gYXMgc3RyaW5nIHwgQ29udHJvbCB8IENvbnRyb2xbXSB8IHVuZGVmaW5lZDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4ganN4WG1sKENvbnRyb2xUeXBlLCBtU2V0dGluZ3MsIGtleSwgeG1sTmFtZXNwYWNlTWFwKTtcblx0fVxufTtcbmpzeC5yZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIgPSBmdW5jdGlvbiAocmVuZGVyTWFuYWdlcjogUmVuZGVyTWFuYWdlciwgY29udHJvbDogQ29udHJvbCwgcmVuZGVyTWV0aG9kOiBGdW5jdGlvbik6IHZvaWQge1xuXHRyZW5kZXJOZXh0VXNpbmdSZW5kZXJNYW5hZ2VyID0gcmVuZGVyTWFuYWdlcjtcblx0Y29uc3QgcmV0dXJuVmFsdWUgPSByZW5kZXJNZXRob2QoY29udHJvbCk7XG5cdHJlbmRlck5leHRVc2luZ1JlbmRlck1hbmFnZXIgPSB1bmRlZmluZWQ7XG5cdHJldHVyblZhbHVlKCk7XG59O1xuanN4LmRlZmluZVhNTE5hbWVzcGFjZU1hcCA9IGFzeW5jIGZ1bmN0aW9uIChuYW1lc3BhY2VNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHJlbmRlck1ldGhvZDogRnVuY3Rpb24pOiBQcm9taXNlPHVua25vd24+IHtcblx0eG1sTmFtZXNwYWNlTWFwID0gbmFtZXNwYWNlTWFwO1xuXHRjb25zdCByZXR1cm5WYWx1ZSA9IGF3YWl0IHJlbmRlck1ldGhvZCgpO1xuXHR4bWxOYW1lc3BhY2VNYXAgPSB7fTtcblx0cmV0dXJuIHJldHVyblZhbHVlO1xufTtcbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIG5leHQgSlNYIGNhbGwgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIFhNTC5cbiAqIEBwYXJhbSByZW5kZXJNZXRob2QgVGhlIG1ldGhvZCB0aGF0IG5lZWRzIHRvIGJlIHJlbmRlcmVkIGFzIFhNTFxuICogQHJldHVybnMgVGhlIFhNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udHJvbFxuICovXG5qc3gucmVuZGVyQXNYTUwgPSBmdW5jdGlvbiA8VD4ocmVuZGVyTWV0aG9kOiAoKSA9PiBUKTogVCB7XG5cdHJlbmRlck5leHRBc1hNTCA9IHRydWU7XG5cdGNvbnN0IHJldHVyblZhbHVlID0gcmVuZGVyTWV0aG9kKCk7XG5cdHJlbmRlck5leHRBc1hNTCA9IGZhbHNlO1xuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5leHBvcnQgdHlwZSBSZWY8VCBleHRlbmRzIEVsZW1lbnQ+ID0ge1xuXHRjdXJyZW50PzogVDtcblx0c2V0Q3VycmVudChvQ29udHJvbEluc3RhbmNlOiBUKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEpTWENvbnRleHQgPSB7XG5cdG93bmVyQ29udHJvbD86IENvbnRyb2wgJiB7XG5cdFx0Y29udHJvbFJlZmVyZW5jZXM/OiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50Pjtcblx0XHRjb250cm9sUmVmZXJlbmNlc0lkPzogbnVtYmVyO1xuXHR9O1xuXHR2aWV3PzogVmlldztcblx0YXBwQ29tcG9uZW50PzogQXBwQ29tcG9uZW50O1xufTtcbmxldCBqc3hDb250ZXh0OiBKU1hDb250ZXh0ID0ge307XG5qc3guZ2V0Q29udGV4dCA9IGZ1bmN0aW9uICgpOiBKU1hDb250ZXh0IHtcblx0cmV0dXJuIGpzeENvbnRleHQ7XG59O1xuXG5qc3gud2l0aENvbnRleHQgPSBmdW5jdGlvbiA8VD4oY29udGV4dDogSlNYQ29udGV4dCwgZnVuY3Rpb25Ub0V4ZWN1dGU6ICgpID0+IFQpOiBUIHtcblx0anN4Q29udGV4dCA9IGNvbnRleHQ7XG5cdGNvbnN0IGNhbGxCYWNrUmV0dXJuID0gZnVuY3Rpb25Ub0V4ZWN1dGUoKTtcblx0anN4Q29udGV4dCA9IHt9O1xuXHRyZXR1cm4gY2FsbEJhY2tSZXR1cm47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBqc3g7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFtQkEsSUFBSUEsZUFBZSxHQUFHLEtBQUs7RUFDM0IsSUFBSUMsNEJBQXVEO0VBQzNELElBQUlDLGVBQXVDLEdBQUcsQ0FBQyxDQUFDO0VBQ2hELE1BQU1DLEdBQUcsR0FBRyxTQUFBQSxDQUNYQyxXQUEyQixFQUMzQkMsU0FBK0YsRUFDL0ZDLEdBQVcsRUFDZ0M7SUFDM0MsSUFBSSxDQUFDTixlQUFlLElBQUksQ0FBQ0MsNEJBQTRCLEVBQUU7TUFDdEQsT0FBT00sVUFBVSxDQUFDSCxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsR0FBRyxFQUFFRSxVQUFVLENBQUM7SUFDM0QsQ0FBQyxNQUFNLElBQUlQLDRCQUE0QixLQUFLUSxTQUFTLEVBQUU7TUFDdEQsT0FBT0MsZ0JBQWdCLENBQ3RCTixXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsR0FBRyxFQUNITCw0QkFDRCxDQUFDO0lBQ0YsQ0FBQyxNQUFNO01BQ04sT0FBT1UsTUFBTSxDQUFDUCxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsR0FBRyxFQUFFSixlQUFlLENBQUM7SUFDNUQ7RUFDRCxDQUFDO0VBQ0RDLEdBQUcsQ0FBQ1Msd0JBQXdCLEdBQUcsVUFBVUMsYUFBNEIsRUFBRUMsT0FBZ0IsRUFBRUMsWUFBc0IsRUFBUTtJQUN0SGQsNEJBQTRCLEdBQUdZLGFBQWE7SUFDNUMsTUFBTUcsV0FBVyxHQUFHRCxZQUFZLENBQUNELE9BQU8sQ0FBQztJQUN6Q2IsNEJBQTRCLEdBQUdRLFNBQVM7SUFDeENPLFdBQVcsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNEYixHQUFHLENBQUNjLHFCQUFxQixHQUFHLGdCQUFnQkMsWUFBb0MsRUFBRUgsWUFBc0IsRUFBb0I7SUFDM0hiLGVBQWUsR0FBR2dCLFlBQVk7SUFDOUIsTUFBTUYsV0FBVyxHQUFHLE1BQU1ELFlBQVksQ0FBQyxDQUFDO0lBQ3hDYixlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLE9BQU9jLFdBQVc7RUFDbkIsQ0FBQztFQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQWIsR0FBRyxDQUFDZ0IsV0FBVyxHQUFHLFVBQWFKLFlBQXFCLEVBQUs7SUFDeERmLGVBQWUsR0FBRyxJQUFJO0lBQ3RCLE1BQU1nQixXQUFXLEdBQUdELFlBQVksQ0FBQyxDQUFDO0lBQ2xDZixlQUFlLEdBQUcsS0FBSztJQUN2QixPQUFPZ0IsV0FBVztFQUNuQixDQUFDO0VBZUQsSUFBSVIsVUFBc0IsR0FBRyxDQUFDLENBQUM7RUFDL0JMLEdBQUcsQ0FBQ2lCLFVBQVUsR0FBRyxZQUF3QjtJQUN4QyxPQUFPWixVQUFVO0VBQ2xCLENBQUM7RUFFREwsR0FBRyxDQUFDa0IsV0FBVyxHQUFHLFVBQWFDLE9BQW1CLEVBQUVDLGlCQUEwQixFQUFLO0lBQ2xGZixVQUFVLEdBQUdjLE9BQU87SUFDcEIsTUFBTUUsY0FBYyxHQUFHRCxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFDZixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsT0FBT2dCLGNBQWM7RUFDdEIsQ0FBQztFQUFDLE9BRWFyQixHQUFHO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -52,7 +52,6 @@ jsx.defineXMLNamespaceMap = async function (namespaceMap: Record<string, string>
52
52
  };
53
53
  /**
54
54
  * Indicates that the next JSX call should be rendered as XML.
55
- *
56
55
  * @param renderMethod The method that needs to be rendered as XML
57
56
  * @returns The XML representation of the control
58
57
  */
@@ -7,4 +7,4 @@ sap.ui.define(["sap/fe/base/jsx-runtime/jsx"], function (jsx) {
7
7
 
8
8
  return jsx;
9
9
  }, false);
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3giXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImpzeHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztTQUVlQSxHQUFHO0FBQUEifQ==
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3giXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImpzeHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztTQUVlQSxHQUFHO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -14,4 +14,4 @@ sap.ui.define(["sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/jsxs"], f
14
14
  jsx
15
15
  };
16
16
  }, false);
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3hzIiwianN4Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gtcnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQganN4IGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBqc3hzIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hzXCI7XG5cbi8qKlxuICogV2hlbiBjb21pbmcgZnJvbSB0aGUgSlNYIGZhY3RvcnksIHRoZSBKU1ggZmFjdG9yeSB3aWxsIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LCB0aGUgcHJvcHMgYW5kIHRoZSBjaGlsZHJlbi5cbiAqIFRoZSBiYWJlbCBwbHVnaW4gZXhwZWN0IHRoaXMgZmlsZSB0byBleGlzdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgeyBqc3hzLCBqc3ggfTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQUdBO0FBQ0E7QUFDQTtBQUNBO0VBSEEsT0FJZTtJQUFFQSxJQUFJO0lBQUVDO0VBQUksQ0FBQztBQUFBIn0=
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3hzIiwianN4Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gtcnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQganN4IGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBqc3hzIGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hzXCI7XG5cbi8qKlxuICogV2hlbiBjb21pbmcgZnJvbSB0aGUgSlNYIGZhY3RvcnksIHRoZSBKU1ggZmFjdG9yeSB3aWxsIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LCB0aGUgcHJvcHMgYW5kIHRoZSBjaGlsZHJlbi5cbiAqIFRoZSBiYWJlbCBwbHVnaW4gZXhwZWN0IHRoaXMgZmlsZSB0byBleGlzdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgeyBqc3hzLCBqc3ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztFQUdBO0FBQ0E7QUFDQTtBQUNBO0VBSEEsT0FJZTtJQUFFQSxJQUFJO0lBQUVDO0VBQUksQ0FBQztBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -8,7 +8,6 @@ sap.ui.define(["sap/ui/core/Lib"], function (Library) {
8
8
  var _exports = {};
9
9
  /**
10
10
  * Library providing the base functionality of the runtime for SAP Fiori elements for OData V4.
11
- *
12
11
  * @namespace
13
12
  * @public
14
13
  */
@@ -22,10 +21,10 @@ sap.ui.define(["sap/ui/core/Lib"], function (Library) {
22
21
  controls: [],
23
22
  elements: [],
24
23
  // eslint-disable-next-line no-template-curly-in-string
25
- version: "1.127.2",
24
+ version: "1.129.0",
26
25
  noLibraryCSS: true
27
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
27
  });
29
28
  return thisLib;
30
29
  }, false);
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZUJhc2VOYW1lc3BhY2UiLCJ0aGlzTGliIiwiTGlicmFyeSIsImluaXQiLCJuYW1lIiwiZGVwZW5kZW5jaWVzIiwidHlwZXMiLCJpbnRlcmZhY2VzIiwiY29udHJvbHMiLCJlbGVtZW50cyIsInZlcnNpb24iLCJub0xpYnJhcnlDU1MiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImxpYnJhcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuLyoqXG4gKiBMaWJyYXJ5IHByb3ZpZGluZyB0aGUgYmFzZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBydW50aW1lIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICpcbiAqIEBuYW1lc3BhY2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZlQmFzZU5hbWVzcGFjZSA9IFwic2FwLmZlLmJhc2VcIjtcblxuY29uc3QgdGhpc0xpYiA9IExpYnJhcnkuaW5pdCh7XG5cdG5hbWU6IFwic2FwLmZlLmJhc2VcIixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiXSxcblx0dHlwZXM6IFtdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxufSkgYXMgYW55O1xuXG5leHBvcnQgZGVmYXVsdCB0aGlzTGliO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLE1BQU1BLGVBQWUsR0FBRyxhQUFhO0VBQUM7RUFFN0MsTUFBTUMsT0FBTyxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQztJQUM1QkMsSUFBSSxFQUFFLGFBQWE7SUFDbkJDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUM3QkMsS0FBSyxFQUFFLEVBQUU7SUFDVEMsVUFBVSxFQUFFLEVBQUU7SUFDZEMsUUFBUSxFQUFFLEVBQUU7SUFDWkMsUUFBUSxFQUFFLEVBQUU7SUFDWjtJQUNBQyxPQUFPLEVBQUUsWUFBWTtJQUNyQkMsWUFBWSxFQUFFO0lBQ2Q7RUFDRCxDQUFDLENBQVE7RUFBQyxPQUVLVixPQUFPO0FBQUEifQ==
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZUJhc2VOYW1lc3BhY2UiLCJfZXhwb3J0cyIsInRoaXNMaWIiLCJMaWJyYXJ5IiwiaW5pdCIsIm5hbWUiLCJkZXBlbmRlbmNpZXMiLCJ0eXBlcyIsImludGVyZmFjZXMiLCJjb250cm9scyIsImVsZW1lbnRzIiwidmVyc2lvbiIsIm5vTGlicmFyeUNTUyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsibGlicmFyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG4vKipcbiAqIExpYnJhcnkgcHJvdmlkaW5nIHRoZSBiYXNlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHJ1bnRpbWUgZm9yIFNBUCBGaW9yaSBlbGVtZW50cyBmb3IgT0RhdGEgVjQuXG4gKiBAbmFtZXNwYWNlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBmZUJhc2VOYW1lc3BhY2UgPSBcInNhcC5mZS5iYXNlXCI7XG5cbmNvbnN0IHRoaXNMaWIgPSBMaWJyYXJ5LmluaXQoe1xuXHRuYW1lOiBcInNhcC5mZS5iYXNlXCIsXG5cdGRlcGVuZGVuY2llczogW1wic2FwLnVpLmNvcmVcIl0sXG5cdHR5cGVzOiBbXSxcblx0aW50ZXJmYWNlczogW10sXG5cdGNvbnRyb2xzOiBbXSxcblx0ZWxlbWVudHM6IFtdLFxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nXG5cdHZlcnNpb246IFwiJHt2ZXJzaW9ufVwiLFxuXHRub0xpYnJhcnlDU1M6IHRydWVcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbn0pIGFzIGFueTtcblxuZXhwb3J0IGRlZmF1bHQgdGhpc0xpYjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7RUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sTUFBTUEsZUFBZSxHQUFHLGFBQWE7RUFBQ0MsUUFBQSxDQUFBRCxlQUFBLEdBQUFBLGVBQUE7RUFFN0MsTUFBTUUsT0FBTyxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQztJQUM1QkMsSUFBSSxFQUFFLGFBQWE7SUFDbkJDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUM3QkMsS0FBSyxFQUFFLEVBQUU7SUFDVEMsVUFBVSxFQUFFLEVBQUU7SUFDZEMsUUFBUSxFQUFFLEVBQUU7SUFDWkMsUUFBUSxFQUFFLEVBQUU7SUFDWjtJQUNBQyxPQUFPLEVBQUUsWUFBWTtJQUNyQkMsWUFBWSxFQUFFO0lBQ2Q7RUFDRCxDQUFDLENBQVE7RUFBQyxPQUVLVixPQUFPO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,7 +1,6 @@
1
1
  import Library from "sap/ui/core/Lib";
2
2
  /**
3
3
  * Library providing the base functionality of the runtime for SAP Fiori elements for OData V4.
4
- *
5
4
  * @namespace
6
5
  * @public
7
6
  */