@sapui5/sap.fe.core 1.136.2 → 1.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +76 -28
  4. package/src/sap/fe/core/ActionRuntime.ts +106 -30
  5. package/src/sap/fe/core/AppComponent.js +11 -1
  6. package/src/sap/fe/core/AppComponent.ts +10 -0
  7. package/src/sap/fe/core/CommonUtils.js +15 -3
  8. package/src/sap/fe/core/CommonUtils.ts +13 -2
  9. package/src/sap/fe/core/PageController.controller.js +10 -0
  10. package/src/sap/fe/core/PageController.controller.ts +3 -0
  11. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -4
  12. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +2 -2
  13. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +3 -3
  14. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +2 -2
  15. package/src/sap/fe/core/controllerextensions/EditFlow.js +42 -36
  16. package/src/sap/fe/core/controllerextensions/EditFlow.ts +53 -44
  17. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +2 -1
  18. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -1
  19. package/src/sap/fe/core/controllerextensions/InternalRouting.js +2 -15
  20. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +1 -14
  21. package/src/sap/fe/core/controllerextensions/Paginator.js +20 -5
  22. package/src/sap/fe/core/controllerextensions/Paginator.ts +19 -0
  23. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +4 -2
  24. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +7 -2
  25. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +155 -129
  26. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +200 -175
  27. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +11 -14
  28. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +11 -31
  29. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +35 -3
  30. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +46 -10
  31. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +16 -1
  32. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +17 -2
  33. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +88 -1
  34. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +106 -7
  35. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.js +16 -1
  36. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.ts +15 -0
  37. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +25 -1
  38. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +24 -0
  39. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -5
  40. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +2 -10
  41. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +8 -15
  42. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +7 -19
  43. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +7 -4
  44. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +7 -3
  45. package/src/sap/fe/core/controls/DataWatcher.js +2 -2
  46. package/src/sap/fe/core/controls/DataWatcher.tsx +1 -1
  47. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +11 -6
  48. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.tsx +13 -9
  49. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  50. package/src/sap/fe/core/converters/ManifestSettings.ts +4 -0
  51. package/src/sap/fe/core/converters/MetaModelConverter.js +3 -2
  52. package/src/sap/fe/core/converters/MetaModelConverter.ts +12 -4
  53. package/src/sap/fe/core/converters/controls/Common/Action.js +53 -21
  54. package/src/sap/fe/core/converters/controls/Common/Action.ts +53 -24
  55. package/src/sap/fe/core/converters/controls/Common/Chart.js +4 -1
  56. package/src/sap/fe/core/converters/controls/Common/Chart.ts +2 -1
  57. package/src/sap/fe/core/converters/controls/Common/Table.js +33 -12
  58. package/src/sap/fe/core/converters/controls/Common/Table.ts +37 -10
  59. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +2 -2
  60. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +2 -1
  61. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +6 -11
  62. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +10 -17
  63. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -28
  64. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +1 -26
  65. package/src/sap/fe/core/fpm/manifest.json +1 -1
  66. package/src/sap/fe/core/helpers/FPMHelper.js +2 -2
  67. package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  68. package/src/sap/fe/core/helpers/ModelHelper.js +8 -56
  69. package/src/sap/fe/core/helpers/ModelHelper.ts +11 -57
  70. package/src/sap/fe/core/helpers/PasteHelper.js +2 -2
  71. package/src/sap/fe/core/helpers/PasteHelper.ts +1 -1
  72. package/src/sap/fe/core/library.js +33 -4
  73. package/src/sap/fe/core/library.ts +33 -2
  74. package/src/sap/fe/core/messagebundle.properties +18 -2
  75. package/src/sap/fe/core/messagebundle_el.properties +2 -2
  76. package/src/sap/fe/core/rootView/Fcl.controller.js +3 -8
  77. package/src/sap/fe/core/rootView/Fcl.controller.ts +7 -14
  78. package/src/sap/fe/core/rootView/RootViewBaseController.js +6 -6
  79. package/src/sap/fe/core/rootView/RootViewBaseController.ts +5 -5
  80. package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -3
  81. package/src/sap/fe/core/services/RoutingServiceFactory.ts +2 -2
  82. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -1
  83. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -0
  84. package/src/sap/fe/core/templating/UIFormatters.js +3 -3
  85. package/src/sap/fe/core/templating/UIFormatters.ts +1 -2
  86. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +0 -81
  87. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +0 -126
  88. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +0 -10
  89. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +0 -2
  90. package/src/sap/fe/core/designtime/messagebundle_en_US_saprigi.properties +0 -7
@@ -28,6 +28,21 @@ export default class OperationMessage {
28
28
 
29
29
  private is412toBeManaged = false;
30
30
 
31
+ /**
32
+ * Creates an instance of OperationMessage.
33
+ * This class is responsible for managing messages related to an operation.
34
+ * @param parameters The parameters for the operation message.
35
+ * @param parameters.messageHandler The message handler to use for displaying messages.
36
+ * @param parameters.action The action to be performed.
37
+ * @param parameters.contexts The contexts for the operation.
38
+ * @param parameters.label The label for the operation.
39
+ * @param parameters.invocationGrouping The invocation grouping for the operation.
40
+ * @param parameters.entitySetName The name of the entity set for the operation.
41
+ * @param parameters.events The events for the operation.
42
+ * @param parameters.events.onMessageCollected The function to call when the messages are collected.
43
+ * @param parameters.events.onMessagePageNavigationCallback The function to call before page navigation is triggered
44
+ * @param parameters.disableNotification If true, the messages will not be displayed in a message box or dialog.
45
+ */
31
46
  constructor(
32
47
  private readonly parameters: {
33
48
  messageHandler: MessageHandler;
@@ -25,6 +25,30 @@ sap.ui.define(["sap/fe/core/UIProvider", "./actionHelper"], function (UIProvider
25
25
  var _exports = {};
26
26
  var getCoreUIFactory = UIProvider.getCoreUIFactory;
27
27
  let OperationParameters = /*#__PURE__*/function () {
28
+ /**
29
+ * Creates an instance of OperationParameters.
30
+ * This class is responsible for handling the parameters of an OData action, including
31
+ * managing the parameter dialog, retrieving parameter values, and checking if the dialog is needed.
32
+ * It checks if the action has parameters and whether a dialog is needed based on the action's parameters.
33
+ * If the action has parameters, it will create a dialog to collect the parameter values.
34
+ * If the dialog is not needed (e.g., no parameters or all parameters are hidden), it will return the default values.
35
+ * @param appComponent The application component
36
+ * @param model The OData model
37
+ * @param convertedAction The operation
38
+ * @param skipParametersDialog If true, the parameter dialog will be skipped if all mandatory values are provided.
39
+ * @param parameters The parameters for the operation
40
+ * @param parameters.entitySetName The name of the entity set
41
+ * @param parameters.contexts The contexts for the action
42
+ * @param parameters.defaultValuesExtensionFunction The function to get default values for the parameters
43
+ * @param parameters.isCreateAction Indicates if the action is a create action
44
+ * @param parameters.label The label for the action
45
+ * @param parameters.parameterValues The values for the parameters
46
+ * @param parameters.view The view where the action is executed
47
+ * @param parameters.messageHandler The message handler for the action
48
+ * @param parameters.events The events for the parameter dialog
49
+ * @param parameters.events.onParameterDialogOpened The function to call when the parameter dialog is opened
50
+ * @param parameters.events.onParameterDialogClosed The function to call when the parameter dialog is closed
51
+ */
28
52
  function OperationParameters(appComponent, model, convertedAction, skipParametersDialog, parameters) {
29
53
  this.parameterDialog = undefined;
30
54
  this.parametersValues = {};
@@ -186,4 +210,4 @@ sap.ui.define(["sap/fe/core/UIProvider", "./actionHelper"], function (UIProvider
186
210
  _exports = OperationParameters;
187
211
  return _exports;
188
212
  }, false);
189
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPcGVyYXRpb25QYXJhbWV0ZXJzIiwiYXBwQ29tcG9uZW50IiwibW9kZWwiLCJjb252ZXJ0ZWRBY3Rpb24iLCJza2lwUGFyYW1ldGVyc0RpYWxvZyIsInBhcmFtZXRlcnMiLCJwYXJhbWV0ZXJEaWFsb2ciLCJ1bmRlZmluZWQiLCJwYXJhbWV0ZXJzVmFsdWVzIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJhY3Rpb25QYXJhbWV0ZXJzIiwiYWN0aW9uSGVscGVyIiwiZ2V0QWN0aW9uUGFyYW1ldGVycyIsImlzUGFyYW1ldGVyRGlhbG9nTmVlZGVkIiwibGVuZ3RoIiwibmFtZSIsImZpbHRlciIsImFjdGlvblBhcmFtZXRlciIsImV2ZXJ5IiwicGFyYW1ldGVyIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJzZXRTdGFydHVwUGFyYW1ldGVycyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiY29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJpc1BhcmFtZXRlckRpYWxvZyIsImlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiaXNPcGVuIiwicmVzZXRQYXJhbWV0ZXJEaWFsb2dTdGF0ZSIsInJlc2V0U3RhdGUiLCJjbG9zZVBhcmFtZXRlckRpYWxvZyIsImNsb3NlRGlhbG9nIiwiZ2V0T3BlcmF0aW9uUGFyYW1ldGVycyIsImlzTWFuZGF0b3J5VmFsdWVzUHJvdmlkZWQiLCJnZXRDb3JlVUlGYWN0b3J5IiwibmV3T3BlcmF0aW9uUGFyYW1ldGVyRGlhbG9nIiwiY29udGV4dHMiLCJkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24iLCJpc0NyZWF0ZUFjdGlvbiIsImxhYmVsIiwidmlldyIsImV2ZW50cyIsIm9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwib25QYXJhbWV0ZXJEaWFsb2dDbG9zZWQiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJlbnRpdHlTZXROYW1lIiwibWVzc2FnZUhhbmRsZXIiLCJjcmVhdGVEaWFsb2ciLCJvcGVuRGlhbG9nIiwid2FpdEZvclBhcmFtZXRlcnNWYWx1ZXMiLCJpIiwiZmluZCIsImVsZW1lbnQiLCJ2YWx1ZSIsImNvbnZlcnRWYWx1ZSIsIlBhcmFtZXRlckRlZmF1bHRWYWx1ZSIsImhpZGRlbkFubm90YXRpb25TZXRPbkFsbEFjdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRDb250cm9sIiwiQ29tbW9uIiwiRmllbGRDb250cm9sIiwiaXNNYW5kYXRvcnkiLCJ0b1N0cmluZyIsInBhcmFtZXRlclZhbHVlIiwiVHlwZU1hcCIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJkZWZhdWx0IiwicGFyYW1ldGVyVHlwZSIsImdldEJhc2VUeXBlIiwidHlwZSIsInR5cGVJbnN0YW5jZSIsImdldERhdGFUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJPcGVyYXRpb25QYXJhbWV0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIGFzIEVkbUFjdGlvbiwgQWN0aW9uUGFyYW1ldGVyIGFzIEVkbUFjdGlvblBhcmFtZXRlciwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBnZXRDb3JlVUlGYWN0b3J5LCB0eXBlIFN0YW5kYXJkT3BlcmF0aW9uUGFyYW1ldGVyRGlhbG9nIH0gZnJvbSBcInNhcC9mZS9jb3JlL1VJUHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZEl0ZW0gZnJvbSBcInNhcC91aS9tZGMvZmllbGQvTXVsdGlWYWx1ZUZpZWxkSXRlbVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFN0YXJ0dXBQYXJhbWV0ZXJzIH0gZnJvbSBcIi4uLy4uLy4uL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZUhhbmRsZXIgZnJvbSBcIi4uLy4uL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgYWN0aW9uSGVscGVyIGZyb20gXCIuL2FjdGlvbkhlbHBlclwiO1xuXG50eXBlIEJhc2VUeXBlUGFyYW1ldGVyID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uUGFyYW1ldGVycyB7XG5cdHByaXZhdGUgcmVhZG9ubHkgaXNQYXJhbWV0ZXJEaWFsb2dOZWVkZWQ6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSByZWFkb25seSBhY3Rpb25QYXJhbWV0ZXJzOiBFZG1BY3Rpb25QYXJhbWV0ZXJbXTtcblxuXHRwcml2YXRlIHBhcmFtZXRlckRpYWxvZzogU3RhbmRhcmRPcGVyYXRpb25QYXJhbWV0ZXJEaWFsb2cgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBwYXJhbWV0ZXJzVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPiA9IHt9O1xuXG5cdHByaXZhdGUgc3RhcnR1cFBhcmFtZXRlcnM6IFN0YXJ0dXBQYXJhbWV0ZXJzID0ge307XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCxcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1vZGVsOiBPRGF0YU1vZGVsLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVkQWN0aW9uOiBFZG1BY3Rpb24sXG5cdFx0cHJpdmF0ZSByZWFkb25seSBza2lwUGFyYW1ldGVyc0RpYWxvZzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHtcblx0XHRcdGNvbnRleHRzOiBDb250ZXh0W107XG5cdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdFx0XHRpc0NyZWF0ZUFjdGlvbj86IGJvb2xlYW47XG5cdFx0XHRsYWJlbD86IHN0cmluZztcblx0XHRcdHBhcmFtZXRlclZhbHVlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBNdWx0aVZhbHVlRmllbGRJdGVtW10+W107XG5cdFx0XHRlbnRpdHlTZXROYW1lPzogc3RyaW5nO1xuXHRcdFx0dmlldz86IEZFVmlldztcblx0XHRcdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlcjtcblx0XHRcdGV2ZW50cz86IHtcblx0XHRcdFx0b25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQ/OiAoKSA9PiB2b2lkO1xuXHRcdFx0XHRvblBhcmFtZXRlckRpYWxvZ0Nsb3NlZD86ICgpID0+IHZvaWQ7XG5cdFx0XHR9O1xuXHRcdH1cblx0KSB7XG5cdFx0Ly8gQ2hlY2sgaWYgdGhlIGFjdGlvbiBoYXMgcGFyYW1ldGVycyBhbmQgd291bGQgbmVlZCBhIHBhcmFtZXRlciBkaWFsb2dcblx0XHQvLyBUaGUgcGFyYW1ldGVyIFJlc3VsdElzQWN0aXZlRW50aXR5IGlzIGFsd2F5cyBoaWRkZW4gaW4gdGhlIGRpYWxvZyEgSGVuY2UgaWZcblx0XHQvLyB0aGlzIGlzIHRoZSBvbmx5IHBhcmFtZXRlciwgdGhpcyBpcyB0cmVhdGVkIGFzIG5vIHBhcmFtZXRlciBoZXJlIGJlY2F1c2UgdGhlXG5cdFx0Ly8gZGlhbG9nIHdvdWxkIGJlIGVtcHR5IVxuXHRcdHRoaXMuYWN0aW9uUGFyYW1ldGVycyA9IGFjdGlvbkhlbHBlci5nZXRBY3Rpb25QYXJhbWV0ZXJzKHRoaXMuY29udmVydGVkQWN0aW9uKTtcblx0XHR0aGlzLmlzUGFyYW1ldGVyRGlhbG9nTmVlZGVkID1cblx0XHRcdHRoaXMuYWN0aW9uUGFyYW1ldGVycy5sZW5ndGggPiAwICYmXG5cdFx0XHQhKHRoaXMuYWN0aW9uUGFyYW1ldGVycy5sZW5ndGggPT09IDEgJiYgdGhpcy5hY3Rpb25QYXJhbWV0ZXJzWzBdLm5hbWUgPT09IFwiUmVzdWx0SXNBY3RpdmVFbnRpdHlcIik7XG5cblx0XHR0aGlzLnNraXBQYXJhbWV0ZXJzRGlhbG9nID1cblx0XHRcdCh0aGlzLmFjdGlvblBhcmFtZXRlcnMubGVuZ3RoICYmXG5cdFx0XHR0aGlzLmFjdGlvblBhcmFtZXRlcnNcblx0XHRcdFx0LmZpbHRlcigoYWN0aW9uUGFyYW1ldGVyKSA9PiBhY3Rpb25QYXJhbWV0ZXIubmFtZSAhPT0gXCJSZXN1bHRJc0FjdGl2ZUVudGl0eVwiKVxuXHRcdFx0XHQuZXZlcnkoKHBhcmFtZXRlcikgPT4gcGFyYW1ldGVyLmFubm90YXRpb25zLlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0PyB0cnVlXG5cdFx0XHRcdDogdGhpcy5za2lwUGFyYW1ldGVyc0RpYWxvZykgPz8gZmFsc2U7XG5cblx0XHR0aGlzLnNldFN0YXJ0dXBQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogIFNldHMgdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgb24gdGhlIHN0YXJ0dXAuXG5cdCAqL1xuXHRwcml2YXRlIHNldFN0YXJ0dXBQYXJhbWV0ZXJzKCk6IHZvaWQge1xuXHRcdC8vIERldGVybWluZSBzdGFydHVwIHBhcmFtZXRlcnMgaWYgcHJvdmlkZWRcblx0XHRjb25zdCBjb21wb25lbnREYXRhID0gdGhpcy5hcHBDb21wb25lbnQuZ2V0Q29tcG9uZW50RGF0YSgpO1xuXHRcdHRoaXMuc3RhcnR1cFBhcmFtZXRlcnMgPSBjb21wb25lbnREYXRhPy5zdGFydHVwUGFyYW1ldGVycyA/PyB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiAgSXMgdGhlIHBhcmFtZXRlciBkaWFsb2cgaW5zdGFuY2VkLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIGlzIGluc3RhbmNlZCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqL1xuXHRwdWJsaWMgaXNQYXJhbWV0ZXJEaWFsb2coKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5wYXJhbWV0ZXJEaWFsb2c7XG5cdH1cblxuXHQvKipcblx0ICogIElzIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIG9wZW5lZC5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcGFyYW1ldGVyIGRpYWxvZyBpcyBvcGVuZWQsIG90aGVyd2lzZSBmYWxzZVxuXHQgKi9cblx0cHVibGljIGlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnBhcmFtZXRlckRpYWxvZz8uaXNPcGVuKCkgPz8gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICovXG5cdHB1YmxpYyByZXNldFBhcmFtZXRlckRpYWxvZ1N0YXRlKCk6IHZvaWQge1xuXHRcdHRoaXMucGFyYW1ldGVyRGlhbG9nPy5yZXNldFN0YXRlKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvc2VzIHRoZSBzdGF0ZSBvZiB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWRcblx0ICovXG5cdHB1YmxpYyBhc3luYyBjbG9zZVBhcmFtZXRlckRpYWxvZygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5wYXJhbWV0ZXJEaWFsb2c/LmNsb3NlRGlhbG9nKCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyc1xuXHQgKi9cblx0cHVibGljIGFzeW5jIGdldE9wZXJhdGlvblBhcmFtZXRlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPj4ge1xuXHRcdC8vIEluIGNhc2UgYW4gYWN0aW9uIHBhcmFtZXRlciBpcyBuZWVkZWQsIGFuZCB3ZSBzaGFsbCBza2lwIHRoZSBkaWFsb2csIGNoZWNrIGlmIHZhbHVlcyBhcmUgcHJvdmlkZWQgZm9yIGFsbCBwYXJhbWV0ZXJzXG5cdFx0aWYgKHRoaXMuaXNQYXJhbWV0ZXJEaWFsb2dOZWVkZWQgJiYgISh0aGlzLnNraXBQYXJhbWV0ZXJzRGlhbG9nICYmIHRoaXMuaXNNYW5kYXRvcnlWYWx1ZXNQcm92aWRlZCgpKSkge1xuXHRcdFx0aWYgKCF0aGlzLnBhcmFtZXRlckRpYWxvZykge1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlckRpYWxvZyA9IGdldENvcmVVSUZhY3RvcnkoKS5uZXdPcGVyYXRpb25QYXJhbWV0ZXJEaWFsb2coXG5cdFx0XHRcdFx0dGhpcy5jb252ZXJ0ZWRBY3Rpb24sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0YXBwQ29tcG9uZW50OiB0aGlzLmFwcENvbXBvbmVudCxcblx0XHRcdFx0XHRcdG1vZGVsOiB0aGlzLm1vZGVsLFxuXHRcdFx0XHRcdFx0Y29udGV4dHM6IHRoaXMucGFyYW1ldGVycy5jb250ZXh0cyxcblx0XHRcdFx0XHRcdHBhcmFtZXRlcnNWYWx1ZXM6IHt9LFxuXHRcdFx0XHRcdFx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uOiB0aGlzLnBhcmFtZXRlcnMuZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uLFxuXHRcdFx0XHRcdFx0aXNDcmVhdGVBY3Rpb246IHRoaXMucGFyYW1ldGVycy5pc0NyZWF0ZUFjdGlvbixcblx0XHRcdFx0XHRcdGxhYmVsOiB0aGlzLnBhcmFtZXRlcnMubGFiZWwsXG5cdFx0XHRcdFx0XHR2aWV3OiB0aGlzLnBhcmFtZXRlcnMudmlldyxcblx0XHRcdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdFx0XHRvblBhcmFtZXRlckRpYWxvZ09wZW5lZDogdGhpcy5wYXJhbWV0ZXJzLmV2ZW50cz8ub25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQsXG5cdFx0XHRcdFx0XHRcdG9uUGFyYW1ldGVyRGlhbG9nQ2xvc2VkOiB0aGlzLnBhcmFtZXRlcnMuZXZlbnRzPy5vblBhcmFtZXRlckRpYWxvZ0Nsb3NlZFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcyxcblx0XHRcdFx0XHR0aGlzLnBhcmFtZXRlcnMuZW50aXR5U2V0TmFtZSxcblx0XHRcdFx0XHR0aGlzLnBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXJcblx0XHRcdFx0KTtcblx0XHRcdFx0YXdhaXQgdGhpcy5wYXJhbWV0ZXJEaWFsb2cuY3JlYXRlRGlhbG9nKCk7XG5cdFx0XHRcdHRoaXMucGFyYW1ldGVyRGlhbG9nLm9wZW5EaWFsb2coKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLnBhcmFtZXRlckRpYWxvZy53YWl0Rm9yUGFyYW1ldGVyc1ZhbHVlcygpO1xuXHRcdH1cblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIHNraXBwZWQsIHdlIG5lZWQgdG8gc2V0IHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHBhcmFtZXRlcnNcblx0XHRpZiAodGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcykge1xuXHRcdFx0Zm9yIChjb25zdCBpIGluIHRoaXMuYWN0aW9uUGFyYW1ldGVycykge1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXNbdGhpcy5hY3Rpb25QYXJhbWV0ZXJzW2ldLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8uZmluZChcblx0XHRcdFx0XHQoZWxlbWVudCkgPT4gZWxlbWVudC5uYW1lID09PSB0aGlzLmFjdGlvblBhcmFtZXRlcnNbaV0ubmFtZVxuXHRcdFx0XHQpPy52YWx1ZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IGFjdGlvblBhcmFtZXRlcjtcblx0XHRcdGZvciAoY29uc3QgaSBpbiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVyID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJzW2ldO1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXNbYWN0aW9uUGFyYW1ldGVyLm5hbWVdID0gYXdhaXQgdGhpcy5jb252ZXJ0VmFsdWUoXG5cdFx0XHRcdFx0YWN0aW9uUGFyYW1ldGVyLFxuXHRcdFx0XHRcdHRoaXMuc3RhcnR1cFBhcmFtZXRlcnNbYWN0aW9uUGFyYW1ldGVyLm5hbWVdPy5bMF0gPz8gYWN0aW9uUGFyYW1ldGVyLmFubm90YXRpb25zPy5VST8uUGFyYW1ldGVyRGVmYXVsdFZhbHVlPy52YWx1ZU9mKClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMucGFyYW1ldGVyc1ZhbHVlcztcblx0fVxuXG5cdC8qKlxuXHQgKiAgQXJlIHZhbHVlcyBwcm92aWRlZCBmb3IgdGhlIG1hbmRhdG9yeSBwYXJhbWV0ZXJzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqL1xuXHRwcml2YXRlIGlzTWFuZGF0b3J5VmFsdWVzUHJvdmlkZWQoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgaGlkZGVuQW5ub3RhdGlvblNldE9uQWxsQWN0aW9ucyA9IHRoaXMuYWN0aW9uUGFyYW1ldGVycy5ldmVyeShcblx0XHRcdChwYXJhbWV0ZXIpID0+IHBhcmFtZXRlcj8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHRcdCk7XG5cblx0XHRpZiAodGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8ubGVuZ3RoICYmICFoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHQvLyBJZiBzaG93RGlhbG9nIGlzIGZhbHNlIGJ1dCB0aGVyZSBhcmUgcGFyYW1ldGVycyBmcm9tIHRoZSBpbnZva2VBY3Rpb24gY2FsbCB3aGljaCBuZWVkIHRvIGJlIGNoZWNrZWQgb24gZXhpc3RlbmNlXG5cdFx0XHRmb3IgKGNvbnN0IGFjdGlvblBhcmFtZXRlciBvZiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGFjdGlvblBhcmFtZXRlci5uYW1lICE9PSBcIlJlc3VsdElzQWN0aXZlRW50aXR5XCIgJiZcblx0XHRcdFx0XHQhdGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8uZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5uYW1lID09PSBhY3Rpb25QYXJhbWV0ZXIubmFtZSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Ly8gQXQgbGVhc3QgZm9yIG9uZSBwYXJhbWV0ZXIgbm8gdmFsdWUgaGFzIGJlZW4gcHJvdmlkZWQsIHNvIHdlIGNhbid0IHNraXAgdGhlIGRpYWxvZ1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBhcmFtZXRlcnMuaXNDcmVhdGVBY3Rpb24gPT09IHRydWUgJiYgT2JqZWN0LmtleXModGhpcy5zdGFydHVwUGFyYW1ldGVycykubGVuZ3RoICYmICFoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHQvLyBJZiBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBwcm92aWRlZCBkdXJpbmcgYXBwbGljYXRpb24gbGF1bmNoLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBzZXQgaXMgY29tcGxldGVcblx0XHRcdC8vIElmIG5vdCwgdGhlIHBhcmFtZXRlciBkaWFsb2cgc3RpbGwgbmVlZHMgdG8gYmUgc2hvd24uXG5cdFx0XHRmb3IgKGNvbnN0IGFjdGlvblBhcmFtZXRlciBvZiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnN0YXJ0dXBQYXJhbWV0ZXJzW2FjdGlvblBhcmFtZXRlci5uYW1lXSkge1xuXHRcdFx0XHRcdC8vIEF0IGxlYXN0IGZvciBvbmUgcGFyYW1ldGVyIG5vIHZhbHVlIGhhcyBiZWVuIHByb3ZpZGVkLCBzbyB3ZSBjYW4ndCBza2lwIHRoZSBkaWFsb2dcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5hY3Rpb25QYXJhbWV0ZXJzLmxlbmd0aCAmJiBoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hY3Rpb25QYXJhbWV0ZXJzLmV2ZXJ5KChwYXJhbWV0ZXIpID0+IHtcblx0XHRcdFx0Y29uc3QgZmllbGRDb250cm9sID0gcGFyYW1ldGVyLmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbDtcblx0XHRcdFx0Y29uc3QgaXNNYW5kYXRvcnkgPSBmaWVsZENvbnRyb2w/LnRvU3RyaW5nKCkgPT09IFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvTWFuZGF0b3J5XCI7XG5cblx0XHRcdFx0Ly8gUG9zc2libGUgc291cmNlcyBtYXkgYmUgc3RhcnR1cFBhcmFtZXRlcnMsIHBhcmFtZXRlclZhbHVlcywgZGVmYXVsdFZhbHVlcyBwZXIgYW5ub3RhdGlvbiAoUGFyYW1ldGVyRGVmYXVsdFZhbHVlKVxuXHRcdFx0XHQvLyBJZiBub25lIGlzIGZvdW5kLCByZXR1cm4gZmFsc2Vcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHQhaXNNYW5kYXRvcnkgfHxcblx0XHRcdFx0XHR0aGlzLnN0YXJ0dXBQYXJhbWV0ZXJzW3BhcmFtZXRlci5uYW1lXSB8fFxuXHRcdFx0XHRcdHRoaXMucGFyYW1ldGVycy5wYXJhbWV0ZXJWYWx1ZXM/LmZpbmQoKHBhcmFtZXRlclZhbHVlKSA9PiBwYXJhbWV0ZXJWYWx1ZS5uYW1lID09PSBwYXJhbWV0ZXIubmFtZSkgfHxcblx0XHRcdFx0XHRwYXJhbWV0ZXI/LmFubm90YXRpb25zPy5VST8uUGFyYW1ldGVyRGVmYXVsdFZhbHVlPy52YWx1ZU9mKClcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqICBGb3JtYXRzIHRoZSB2YWx1ZSBwcm92aWRlZCB3aXRoIGEgbm9uIHJlbGV2YW50IHR5cGUuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXIgVGhlIHBhcmFtZXRlclxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnRcblx0ICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCB2YWx1ZVxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBjb252ZXJ0VmFsdWUoXG5cdFx0cGFyYW1ldGVyOiBFZG1BY3Rpb25QYXJhbWV0ZXIsXG5cdFx0dmFsdWU/OiBCYXNlVHlwZVBhcmFtZXRlciB8IG51bGxcblx0KTogUHJvbWlzZTxCYXNlVHlwZVBhcmFtZXRlciB8IHVuZGVmaW5lZCB8IG51bGw+IHtcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRjb25zdCBUeXBlTWFwID0gKGF3YWl0IGltcG9ydChcInNhcC91aS9tZGMvb2RhdGEvdjQvVHlwZU1hcFwiKSkuZGVmYXVsdDtcblx0XHRjb25zdCBwYXJhbWV0ZXJUeXBlID0gVHlwZU1hcC5nZXRCYXNlVHlwZShwYXJhbWV0ZXIudHlwZSk7XG5cdFx0Y29uc3QgdHlwZUluc3RhbmNlID0gVHlwZU1hcC5nZXREYXRhVHlwZUluc3RhbmNlKHBhcmFtZXRlclR5cGUpO1xuXHRcdHJldHVybiB0eXBlSW5zdGFuY2UucGFyc2VWYWx1ZSh2YWx1ZSwgXCJzdHJpbmdcIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFhcUJBLG1CQUFtQjtJQVd2QyxTQUFBQSxvQkFDa0JDLFlBQTBCLEVBQzFCQyxLQUFpQixFQUNq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
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPcGVyYXRpb25QYXJhbWV0ZXJzIiwiYXBwQ29tcG9uZW50IiwibW9kZWwiLCJjb252ZXJ0ZWRBY3Rpb24iLCJza2lwUGFyYW1ldGVyc0RpYWxvZyIsInBhcmFtZXRlcnMiLCJwYXJhbWV0ZXJEaWFsb2ciLCJ1bmRlZmluZWQiLCJwYXJhbWV0ZXJzVmFsdWVzIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJhY3Rpb25QYXJhbWV0ZXJzIiwiYWN0aW9uSGVscGVyIiwiZ2V0QWN0aW9uUGFyYW1ldGVycyIsImlzUGFyYW1ldGVyRGlhbG9nTmVlZGVkIiwibGVuZ3RoIiwibmFtZSIsImZpbHRlciIsImFjdGlvblBhcmFtZXRlciIsImV2ZXJ5IiwicGFyYW1ldGVyIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJzZXRTdGFydHVwUGFyYW1ldGVycyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiY29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJpc1BhcmFtZXRlckRpYWxvZyIsImlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiaXNPcGVuIiwicmVzZXRQYXJhbWV0ZXJEaWFsb2dTdGF0ZSIsInJlc2V0U3RhdGUiLCJjbG9zZVBhcmFtZXRlckRpYWxvZyIsImNsb3NlRGlhbG9nIiwiZ2V0T3BlcmF0aW9uUGFyYW1ldGVycyIsImlzTWFuZGF0b3J5VmFsdWVzUHJvdmlkZWQiLCJnZXRDb3JlVUlGYWN0b3J5IiwibmV3T3BlcmF0aW9uUGFyYW1ldGVyRGlhbG9nIiwiY29udGV4dHMiLCJkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24iLCJpc0NyZWF0ZUFjdGlvbiIsImxhYmVsIiwidmlldyIsImV2ZW50cyIsIm9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwib25QYXJhbWV0ZXJEaWFsb2dDbG9zZWQiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJlbnRpdHlTZXROYW1lIiwibWVzc2FnZUhhbmRsZXIiLCJjcmVhdGVEaWFsb2ciLCJvcGVuRGlhbG9nIiwid2FpdEZvclBhcmFtZXRlcnNWYWx1ZXMiLCJpIiwiZmluZCIsImVsZW1lbnQiLCJ2YWx1ZSIsImNvbnZlcnRWYWx1ZSIsIlBhcmFtZXRlckRlZmF1bHRWYWx1ZSIsImhpZGRlbkFubm90YXRpb25TZXRPbkFsbEFjdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRDb250cm9sIiwiQ29tbW9uIiwiRmllbGRDb250cm9sIiwiaXNNYW5kYXRvcnkiLCJ0b1N0cmluZyIsInBhcmFtZXRlclZhbHVlIiwiVHlwZU1hcCIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJkZWZhdWx0IiwicGFyYW1ldGVyVHlwZSIsImdldEJhc2VUeXBlIiwidHlwZSIsInR5cGVJbnN0YW5jZSIsImdldERhdGFUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJPcGVyYXRpb25QYXJhbWV0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIGFzIEVkbUFjdGlvbiwgQWN0aW9uUGFyYW1ldGVyIGFzIEVkbUFjdGlvblBhcmFtZXRlciwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBnZXRDb3JlVUlGYWN0b3J5LCB0eXBlIFN0YW5kYXJkT3BlcmF0aW9uUGFyYW1ldGVyRGlhbG9nIH0gZnJvbSBcInNhcC9mZS9jb3JlL1VJUHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZEl0ZW0gZnJvbSBcInNhcC91aS9tZGMvZmllbGQvTXVsdGlWYWx1ZUZpZWxkSXRlbVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFN0YXJ0dXBQYXJhbWV0ZXJzIH0gZnJvbSBcIi4uLy4uLy4uL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZUhhbmRsZXIgZnJvbSBcIi4uLy4uL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgYWN0aW9uSGVscGVyIGZyb20gXCIuL2FjdGlvbkhlbHBlclwiO1xuXG50eXBlIEJhc2VUeXBlUGFyYW1ldGVyID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uUGFyYW1ldGVycyB7XG5cdHByaXZhdGUgcmVhZG9ubHkgaXNQYXJhbWV0ZXJEaWFsb2dOZWVkZWQ6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSByZWFkb25seSBhY3Rpb25QYXJhbWV0ZXJzOiBFZG1BY3Rpb25QYXJhbWV0ZXJbXTtcblxuXHRwcml2YXRlIHBhcmFtZXRlckRpYWxvZzogU3RhbmRhcmRPcGVyYXRpb25QYXJhbWV0ZXJEaWFsb2cgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBwYXJhbWV0ZXJzVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPiA9IHt9O1xuXG5cdHByaXZhdGUgc3RhcnR1cFBhcmFtZXRlcnM6IFN0YXJ0dXBQYXJhbWV0ZXJzID0ge307XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgT3BlcmF0aW9uUGFyYW1ldGVycy5cblx0ICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIHBhcmFtZXRlcnMgb2YgYW4gT0RhdGEgYWN0aW9uLCBpbmNsdWRpbmdcblx0ICogbWFuYWdpbmcgdGhlIHBhcmFtZXRlciBkaWFsb2csIHJldHJpZXZpbmcgcGFyYW1ldGVyIHZhbHVlcywgYW5kIGNoZWNraW5nIGlmIHRoZSBkaWFsb2cgaXMgbmVlZGVkLlxuXHQgKiBJdCBjaGVja3MgaWYgdGhlIGFjdGlvbiBoYXMgcGFyYW1ldGVycyBhbmQgd2hldGhlciBhIGRpYWxvZyBpcyBuZWVkZWQgYmFzZWQgb24gdGhlIGFjdGlvbidzIHBhcmFtZXRlcnMuXG5cdCAqIElmIHRoZSBhY3Rpb24gaGFzIHBhcmFtZXRlcnMsIGl0IHdpbGwgY3JlYXRlIGEgZGlhbG9nIHRvIGNvbGxlY3QgdGhlIHBhcmFtZXRlciB2YWx1ZXMuXG5cdCAqIElmIHRoZSBkaWFsb2cgaXMgbm90IG5lZWRlZCAoZS5nLiwgbm8gcGFyYW1ldGVycyBvciBhbGwgcGFyYW1ldGVycyBhcmUgaGlkZGVuKSwgaXQgd2lsbCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWVzLlxuXHQgKiBAcGFyYW0gYXBwQ29tcG9uZW50IFRoZSBhcHBsaWNhdGlvbiBjb21wb25lbnRcblx0ICogQHBhcmFtIG1vZGVsIFRoZSBPRGF0YSBtb2RlbFxuXHQgKiBAcGFyYW0gY29udmVydGVkQWN0aW9uIFRoZSBvcGVyYXRpb25cblx0ICogQHBhcmFtIHNraXBQYXJhbWV0ZXJzRGlhbG9nIElmIHRydWUsIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIHdpbGwgYmUgc2tpcHBlZCBpZiBhbGwgbWFuZGF0b3J5IHZhbHVlcyBhcmUgcHJvdmlkZWQuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLmVudGl0eVNldE5hbWUgVGhlIG5hbWUgb2YgdGhlIGVudGl0eSBzZXRcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMuY29udGV4dHMgVGhlIGNvbnRleHRzIGZvciB0aGUgYWN0aW9uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLmRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbiBUaGUgZnVuY3Rpb24gdG8gZ2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy5pc0NyZWF0ZUFjdGlvbiBJbmRpY2F0ZXMgaWYgdGhlIGFjdGlvbiBpcyBhIGNyZWF0ZSBhY3Rpb25cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMubGFiZWwgVGhlIGxhYmVsIGZvciB0aGUgYWN0aW9uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcyBUaGUgdmFsdWVzIGZvciB0aGUgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy52aWV3IFRoZSB2aWV3IHdoZXJlIHRoZSBhY3Rpb24gaXMgZXhlY3V0ZWRcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXIgVGhlIG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIGFjdGlvblxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy5ldmVudHMgVGhlIGV2ZW50cyBmb3IgdGhlIHBhcmFtZXRlciBkaWFsb2dcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMuZXZlbnRzLm9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIHBhcmFtZXRlciBkaWFsb2cgaXMgb3BlbmVkXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLmV2ZW50cy5vblBhcmFtZXRlckRpYWxvZ0Nsb3NlZCBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIGlzIGNsb3NlZFxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCxcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1vZGVsOiBPRGF0YU1vZGVsLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVkQWN0aW9uOiBFZG1BY3Rpb24sXG5cdFx0cHJpdmF0ZSByZWFkb25seSBza2lwUGFyYW1ldGVyc0RpYWxvZzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHtcblx0XHRcdGNvbnRleHRzOiBDb250ZXh0W107XG5cdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdFx0XHRpc0NyZWF0ZUFjdGlvbj86IGJvb2xlYW47XG5cdFx0XHRsYWJlbD86IHN0cmluZztcblx0XHRcdHBhcmFtZXRlclZhbHVlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBNdWx0aVZhbHVlRmllbGRJdGVtW10+W107XG5cdFx0XHRlbnRpdHlTZXROYW1lPzogc3RyaW5nO1xuXHRcdFx0dmlldz86IEZFVmlldztcblx0XHRcdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlcjtcblx0XHRcdGV2ZW50cz86IHtcblx0XHRcdFx0b25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQ/OiAoKSA9PiB2b2lkO1xuXHRcdFx0XHRvblBhcmFtZXRlckRpYWxvZ0Nsb3NlZD86ICgpID0+IHZvaWQ7XG5cdFx0XHR9O1xuXHRcdH1cblx0KSB7XG5cdFx0Ly8gQ2hlY2sgaWYgdGhlIGFjdGlvbiBoYXMgcGFyYW1ldGVycyBhbmQgd291bGQgbmVlZCBhIHBhcmFtZXRlciBkaWFsb2dcblx0XHQvLyBUaGUgcGFyYW1ldGVyIFJlc3VsdElzQWN0aXZlRW50aXR5IGlzIGFsd2F5cyBoaWRkZW4gaW4gdGhlIGRpYWxvZyEgSGVuY2UgaWZcblx0XHQvLyB0aGlzIGlzIHRoZSBvbmx5IHBhcmFtZXRlciwgdGhpcyBpcyB0cmVhdGVkIGFzIG5vIHBhcmFtZXRlciBoZXJlIGJlY2F1c2UgdGhlXG5cdFx0Ly8gZGlhbG9nIHdvdWxkIGJlIGVtcHR5IVxuXHRcdHRoaXMuYWN0aW9uUGFyYW1ldGVycyA9IGFjdGlvbkhlbHBlci5nZXRBY3Rpb25QYXJhbWV0ZXJzKHRoaXMuY29udmVydGVkQWN0aW9uKTtcblx0XHR0aGlzLmlzUGFyYW1ldGVyRGlhbG9nTmVlZGVkID1cblx0XHRcdHRoaXMuYWN0aW9uUGFyYW1ldGVycy5sZW5ndGggPiAwICYmXG5cdFx0XHQhKHRoaXMuYWN0aW9uUGFyYW1ldGVycy5sZW5ndGggPT09IDEgJiYgdGhpcy5hY3Rpb25QYXJhbWV0ZXJzWzBdLm5hbWUgPT09IFwiUmVzdWx0SXNBY3RpdmVFbnRpdHlcIik7XG5cblx0XHR0aGlzLnNraXBQYXJhbWV0ZXJzRGlhbG9nID1cblx0XHRcdCh0aGlzLmFjdGlvblBhcmFtZXRlcnMubGVuZ3RoICYmXG5cdFx0XHR0aGlzLmFjdGlvblBhcmFtZXRlcnNcblx0XHRcdFx0LmZpbHRlcigoYWN0aW9uUGFyYW1ldGVyKSA9PiBhY3Rpb25QYXJhbWV0ZXIubmFtZSAhPT0gXCJSZXN1bHRJc0FjdGl2ZUVudGl0eVwiKVxuXHRcdFx0XHQuZXZlcnkoKHBhcmFtZXRlcikgPT4gcGFyYW1ldGVyLmFubm90YXRpb25zLlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0PyB0cnVlXG5cdFx0XHRcdDogdGhpcy5za2lwUGFyYW1ldGVyc0RpYWxvZykgPz8gZmFsc2U7XG5cblx0XHR0aGlzLnNldFN0YXJ0dXBQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogIFNldHMgdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgb24gdGhlIHN0YXJ0dXAuXG5cdCAqL1xuXHRwcml2YXRlIHNldFN0YXJ0dXBQYXJhbWV0ZXJzKCk6IHZvaWQge1xuXHRcdC8vIERldGVybWluZSBzdGFydHVwIHBhcmFtZXRlcnMgaWYgcHJvdmlkZWRcblx0XHRjb25zdCBjb21wb25lbnREYXRhID0gdGhpcy5hcHBDb21wb25lbnQuZ2V0Q29tcG9uZW50RGF0YSgpO1xuXHRcdHRoaXMuc3RhcnR1cFBhcmFtZXRlcnMgPSBjb21wb25lbnREYXRhPy5zdGFydHVwUGFyYW1ldGVycyA/PyB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiAgSXMgdGhlIHBhcmFtZXRlciBkaWFsb2cgaW5zdGFuY2VkLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIGlzIGluc3RhbmNlZCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqL1xuXHRwdWJsaWMgaXNQYXJhbWV0ZXJEaWFsb2coKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5wYXJhbWV0ZXJEaWFsb2c7XG5cdH1cblxuXHQvKipcblx0ICogIElzIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIG9wZW5lZC5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcGFyYW1ldGVyIGRpYWxvZyBpcyBvcGVuZWQsIG90aGVyd2lzZSBmYWxzZVxuXHQgKi9cblx0cHVibGljIGlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnBhcmFtZXRlckRpYWxvZz8uaXNPcGVuKCkgPz8gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICovXG5cdHB1YmxpYyByZXNldFBhcmFtZXRlckRpYWxvZ1N0YXRlKCk6IHZvaWQge1xuXHRcdHRoaXMucGFyYW1ldGVyRGlhbG9nPy5yZXNldFN0YXRlKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvc2VzIHRoZSBzdGF0ZSBvZiB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWRcblx0ICovXG5cdHB1YmxpYyBhc3luYyBjbG9zZVBhcmFtZXRlckRpYWxvZygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5wYXJhbWV0ZXJEaWFsb2c/LmNsb3NlRGlhbG9nKCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyc1xuXHQgKi9cblx0cHVibGljIGFzeW5jIGdldE9wZXJhdGlvblBhcmFtZXRlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPj4ge1xuXHRcdC8vIEluIGNhc2UgYW4gYWN0aW9uIHBhcmFtZXRlciBpcyBuZWVkZWQsIGFuZCB3ZSBzaGFsbCBza2lwIHRoZSBkaWFsb2csIGNoZWNrIGlmIHZhbHVlcyBhcmUgcHJvdmlkZWQgZm9yIGFsbCBwYXJhbWV0ZXJzXG5cdFx0aWYgKHRoaXMuaXNQYXJhbWV0ZXJEaWFsb2dOZWVkZWQgJiYgISh0aGlzLnNraXBQYXJhbWV0ZXJzRGlhbG9nICYmIHRoaXMuaXNNYW5kYXRvcnlWYWx1ZXNQcm92aWRlZCgpKSkge1xuXHRcdFx0aWYgKCF0aGlzLnBhcmFtZXRlckRpYWxvZykge1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlckRpYWxvZyA9IGdldENvcmVVSUZhY3RvcnkoKS5uZXdPcGVyYXRpb25QYXJhbWV0ZXJEaWFsb2coXG5cdFx0XHRcdFx0dGhpcy5jb252ZXJ0ZWRBY3Rpb24sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0YXBwQ29tcG9uZW50OiB0aGlzLmFwcENvbXBvbmVudCxcblx0XHRcdFx0XHRcdG1vZGVsOiB0aGlzLm1vZGVsLFxuXHRcdFx0XHRcdFx0Y29udGV4dHM6IHRoaXMucGFyYW1ldGVycy5jb250ZXh0cyxcblx0XHRcdFx0XHRcdHBhcmFtZXRlcnNWYWx1ZXM6IHt9LFxuXHRcdFx0XHRcdFx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uOiB0aGlzLnBhcmFtZXRlcnMuZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uLFxuXHRcdFx0XHRcdFx0aXNDcmVhdGVBY3Rpb246IHRoaXMucGFyYW1ldGVycy5pc0NyZWF0ZUFjdGlvbixcblx0XHRcdFx0XHRcdGxhYmVsOiB0aGlzLnBhcmFtZXRlcnMubGFiZWwsXG5cdFx0XHRcdFx0XHR2aWV3OiB0aGlzLnBhcmFtZXRlcnMudmlldyxcblx0XHRcdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdFx0XHRvblBhcmFtZXRlckRpYWxvZ09wZW5lZDogdGhpcy5wYXJhbWV0ZXJzLmV2ZW50cz8ub25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQsXG5cdFx0XHRcdFx0XHRcdG9uUGFyYW1ldGVyRGlhbG9nQ2xvc2VkOiB0aGlzLnBhcmFtZXRlcnMuZXZlbnRzPy5vblBhcmFtZXRlckRpYWxvZ0Nsb3NlZFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcyxcblx0XHRcdFx0XHR0aGlzLnBhcmFtZXRlcnMuZW50aXR5U2V0TmFtZSxcblx0XHRcdFx0XHR0aGlzLnBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXJcblx0XHRcdFx0KTtcblx0XHRcdFx0YXdhaXQgdGhpcy5wYXJhbWV0ZXJEaWFsb2cuY3JlYXRlRGlhbG9nKCk7XG5cdFx0XHRcdHRoaXMucGFyYW1ldGVyRGlhbG9nLm9wZW5EaWFsb2coKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLnBhcmFtZXRlckRpYWxvZy53YWl0Rm9yUGFyYW1ldGVyc1ZhbHVlcygpO1xuXHRcdH1cblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIHNraXBwZWQsIHdlIG5lZWQgdG8gc2V0IHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHBhcmFtZXRlcnNcblx0XHRpZiAodGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcykge1xuXHRcdFx0Zm9yIChjb25zdCBpIGluIHRoaXMuYWN0aW9uUGFyYW1ldGVycykge1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXNbdGhpcy5hY3Rpb25QYXJhbWV0ZXJzW2ldLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8uZmluZChcblx0XHRcdFx0XHQoZWxlbWVudCkgPT4gZWxlbWVudC5uYW1lID09PSB0aGlzLmFjdGlvblBhcmFtZXRlcnNbaV0ubmFtZVxuXHRcdFx0XHQpPy52YWx1ZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IGFjdGlvblBhcmFtZXRlcjtcblx0XHRcdGZvciAoY29uc3QgaSBpbiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVyID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJzW2ldO1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXNbYWN0aW9uUGFyYW1ldGVyLm5hbWVdID0gYXdhaXQgdGhpcy5jb252ZXJ0VmFsdWUoXG5cdFx0XHRcdFx0YWN0aW9uUGFyYW1ldGVyLFxuXHRcdFx0XHRcdHRoaXMuc3RhcnR1cFBhcmFtZXRlcnNbYWN0aW9uUGFyYW1ldGVyLm5hbWVdPy5bMF0gPz8gYWN0aW9uUGFyYW1ldGVyLmFubm90YXRpb25zPy5VST8uUGFyYW1ldGVyRGVmYXVsdFZhbHVlPy52YWx1ZU9mKClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMucGFyYW1ldGVyc1ZhbHVlcztcblx0fVxuXG5cdC8qKlxuXHQgKiAgQXJlIHZhbHVlcyBwcm92aWRlZCBmb3IgdGhlIG1hbmRhdG9yeSBwYXJhbWV0ZXJzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqL1xuXHRwcml2YXRlIGlzTWFuZGF0b3J5VmFsdWVzUHJvdmlkZWQoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgaGlkZGVuQW5ub3RhdGlvblNldE9uQWxsQWN0aW9ucyA9IHRoaXMuYWN0aW9uUGFyYW1ldGVycy5ldmVyeShcblx0XHRcdChwYXJhbWV0ZXIpID0+IHBhcmFtZXRlcj8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHRcdCk7XG5cblx0XHRpZiAodGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8ubGVuZ3RoICYmICFoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHQvLyBJZiBzaG93RGlhbG9nIGlzIGZhbHNlIGJ1dCB0aGVyZSBhcmUgcGFyYW1ldGVycyBmcm9tIHRoZSBpbnZva2VBY3Rpb24gY2FsbCB3aGljaCBuZWVkIHRvIGJlIGNoZWNrZWQgb24gZXhpc3RlbmNlXG5cdFx0XHRmb3IgKGNvbnN0IGFjdGlvblBhcmFtZXRlciBvZiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGFjdGlvblBhcmFtZXRlci5uYW1lICE9PSBcIlJlc3VsdElzQWN0aXZlRW50aXR5XCIgJiZcblx0XHRcdFx0XHQhdGhpcy5wYXJhbWV0ZXJzLnBhcmFtZXRlclZhbHVlcz8uZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5uYW1lID09PSBhY3Rpb25QYXJhbWV0ZXIubmFtZSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Ly8gQXQgbGVhc3QgZm9yIG9uZSBwYXJhbWV0ZXIgbm8gdmFsdWUgaGFzIGJlZW4gcHJvdmlkZWQsIHNvIHdlIGNhbid0IHNraXAgdGhlIGRpYWxvZ1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBhcmFtZXRlcnMuaXNDcmVhdGVBY3Rpb24gPT09IHRydWUgJiYgT2JqZWN0LmtleXModGhpcy5zdGFydHVwUGFyYW1ldGVycykubGVuZ3RoICYmICFoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHQvLyBJZiBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBwcm92aWRlZCBkdXJpbmcgYXBwbGljYXRpb24gbGF1bmNoLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBzZXQgaXMgY29tcGxldGVcblx0XHRcdC8vIElmIG5vdCwgdGhlIHBhcmFtZXRlciBkaWFsb2cgc3RpbGwgbmVlZHMgdG8gYmUgc2hvd24uXG5cdFx0XHRmb3IgKGNvbnN0IGFjdGlvblBhcmFtZXRlciBvZiB0aGlzLmFjdGlvblBhcmFtZXRlcnMpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnN0YXJ0dXBQYXJhbWV0ZXJzW2FjdGlvblBhcmFtZXRlci5uYW1lXSkge1xuXHRcdFx0XHRcdC8vIEF0IGxlYXN0IGZvciBvbmUgcGFyYW1ldGVyIG5vIHZhbHVlIGhhcyBiZWVuIHByb3ZpZGVkLCBzbyB3ZSBjYW4ndCBza2lwIHRoZSBkaWFsb2dcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5hY3Rpb25QYXJhbWV0ZXJzLmxlbmd0aCAmJiBoaWRkZW5Bbm5vdGF0aW9uU2V0T25BbGxBY3Rpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hY3Rpb25QYXJhbWV0ZXJzLmV2ZXJ5KChwYXJhbWV0ZXIpID0+IHtcblx0XHRcdFx0Y29uc3QgZmllbGRDb250cm9sID0gcGFyYW1ldGVyLmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbDtcblx0XHRcdFx0Y29uc3QgaXNNYW5kYXRvcnkgPSBmaWVsZENvbnRyb2w/LnRvU3RyaW5nKCkgPT09IFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvTWFuZGF0b3J5XCI7XG5cblx0XHRcdFx0Ly8gUG9zc2libGUgc291cmNlcyBtYXkgYmUgc3RhcnR1cFBhcmFtZXRlcnMsIHBhcmFtZXRlclZhbHVlcywgZGVmYXVsdFZhbHVlcyBwZXIgYW5ub3RhdGlvbiAoUGFyYW1ldGVyRGVmYXVsdFZhbHVlKVxuXHRcdFx0XHQvLyBJZiBub25lIGlzIGZvdW5kLCByZXR1cm4gZmFsc2Vcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHQhaXNNYW5kYXRvcnkgfHxcblx0XHRcdFx0XHR0aGlzLnN0YXJ0dXBQYXJhbWV0ZXJzW3BhcmFtZXRlci5uYW1lXSB8fFxuXHRcdFx0XHRcdHRoaXMucGFyYW1ldGVycy5wYXJhbWV0ZXJWYWx1ZXM/LmZpbmQoKHBhcmFtZXRlclZhbHVlKSA9PiBwYXJhbWV0ZXJWYWx1ZS5uYW1lID09PSBwYXJhbWV0ZXIubmFtZSkgfHxcblx0XHRcdFx0XHRwYXJhbWV0ZXI/LmFubm90YXRpb25zPy5VST8uUGFyYW1ldGVyRGVmYXVsdFZhbHVlPy52YWx1ZU9mKClcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqICBGb3JtYXRzIHRoZSB2YWx1ZSBwcm92aWRlZCB3aXRoIGEgbm9uIHJlbGV2YW50IHR5cGUuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXIgVGhlIHBhcmFtZXRlclxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnRcblx0ICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCB2YWx1ZVxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBjb252ZXJ0VmFsdWUoXG5cdFx0cGFyYW1ldGVyOiBFZG1BY3Rpb25QYXJhbWV0ZXIsXG5cdFx0dmFsdWU/OiBCYXNlVHlwZVBhcmFtZXRlciB8IG51bGxcblx0KTogUHJvbWlzZTxCYXNlVHlwZVBhcmFtZXRlciB8IHVuZGVmaW5lZCB8IG51bGw+IHtcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRjb25zdCBUeXBlTWFwID0gKGF3YWl0IGltcG9ydChcInNhcC91aS9tZGMvb2RhdGEvdjQvVHlwZU1hcFwiKSkuZGVmYXVsdDtcblx0XHRjb25zdCBwYXJhbWV0ZXJUeXBlID0gVHlwZU1hcC5nZXRCYXNlVHlwZShwYXJhbWV0ZXIudHlwZSk7XG5cdFx0Y29uc3QgdHlwZUluc3RhbmNlID0gVHlwZU1hcC5nZXREYXRhVHlwZUluc3RhbmNlKHBhcmFtZXRlclR5cGUpO1xuXHRcdHJldHVybiB0eXBlSW5zdGFuY2UucGFyc2VWYWx1ZSh2YWx1ZSwgXCJzdHJpbmdcIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFhcUJBLG1CQUFtQjtJQVd2QztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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
@@ -22,6 +22,30 @@ export default class OperationParameters {
22
22
 
23
23
  private startupParameters: StartupParameters = {};
24
24
 
25
+ /**
26
+ * Creates an instance of OperationParameters.
27
+ * This class is responsible for handling the parameters of an OData action, including
28
+ * managing the parameter dialog, retrieving parameter values, and checking if the dialog is needed.
29
+ * It checks if the action has parameters and whether a dialog is needed based on the action's parameters.
30
+ * If the action has parameters, it will create a dialog to collect the parameter values.
31
+ * If the dialog is not needed (e.g., no parameters or all parameters are hidden), it will return the default values.
32
+ * @param appComponent The application component
33
+ * @param model The OData model
34
+ * @param convertedAction The operation
35
+ * @param skipParametersDialog If true, the parameter dialog will be skipped if all mandatory values are provided.
36
+ * @param parameters The parameters for the operation
37
+ * @param parameters.entitySetName The name of the entity set
38
+ * @param parameters.contexts The contexts for the action
39
+ * @param parameters.defaultValuesExtensionFunction The function to get default values for the parameters
40
+ * @param parameters.isCreateAction Indicates if the action is a create action
41
+ * @param parameters.label The label for the action
42
+ * @param parameters.parameterValues The values for the parameters
43
+ * @param parameters.view The view where the action is executed
44
+ * @param parameters.messageHandler The message handler for the action
45
+ * @param parameters.events The events for the parameter dialog
46
+ * @param parameters.events.onParameterDialogOpened The function to call when the parameter dialog is opened
47
+ * @param parameters.events.onParameterDialogClosed The function to call when the parameter dialog is closed
48
+ */
25
49
  constructor(
26
50
  private readonly appComponent: AppComponent,
27
51
  private readonly model: ODataModel,
@@ -85,11 +85,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
85
85
  * @param context Context of the document to be activated
86
86
  * @param appComponent Context of the document to be activated
87
87
  * @param messageHandler The message handler controller extension
88
- * @param mParameters The parameters
89
- * @param [mParameters.resourceModel] Resource Model
90
88
  * @returns A promise resolve when the sticky session is activated
91
89
  */
92
- async function activateDocument(context, appComponent, messageHandler, mParameters) {
90
+ async function activateDocument(context, appComponent, messageHandler) {
93
91
  const operation = "SaveAction";
94
92
  const model = context.getModel(),
95
93
  metaModel = model.getMetaModel(),
@@ -99,7 +97,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
99
97
  const result = await new Operation(appComponent, context.getModel(), convertedAction, {
100
98
  messageHandler: messageHandler,
101
99
  contexts: [context],
102
- label: mParameters?.resourceModel?.getText("T_OP_OBJECT_PAGE_SAVE"),
100
+ label: getResourceModel(appComponent).getText("C_OP_OBJECT_PAGE_SAVE"),
103
101
  skipMessages: true,
104
102
  oDataProperties: {
105
103
  disableSideEffects: true,
@@ -194,4 +192,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
194
192
  };
195
193
  return sticky;
196
194
  }, false);
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9ncmFtbWluZ01vZGVsIiwiRkVMaWJyYXJ5IiwiZ2V0Q29udmVydGVkQWN0aW9uIiwiY29udGV4dCIsIm9wZXJhdGlvbiIsIm9wZXJhdGlvbk5hbWUiLCJnZXRBY3Rpb25OYW1lIiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJhY3Rpb25QYXRoIiwiZ2V0TWV0YVBhdGgiLCJnZXRQYXRoIiwiYm91bmRBY3Rpb24iLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImNvbnZlcnRUeXBlcyIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwibW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldE9iamVjdCIsImVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbiIsImFwcENvbXBvbmVudCIsIm1lc3NhZ2VIYW5kbGVyIiwiY29udmVydGVkQWN0aW9uIiwicmVzdWx0IiwiT3BlcmF0aW9uIiwiY29udGV4dHMiLCJsYWJlbCIsImdldFJlc291cmNlTW9kZWwiLCJnZXRUZXh0Iiwic2tpcE1lc3NhZ2VzIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiaWdub3JlRVRhZyIsInVuZGVmaW5lZCIsImdyb3VwSWQiLCJyZXBsYWNlV2l0aFJWQyIsImdldEJpbmRpbmciLCJpc0EiLCJkZWZlcnJlZFN1Ym1pdCIsImJpbmRpbmdQYXJhbWV0ZXJzIiwiJCRpbmhlcml0RXhwYW5kU2VsZWN0IiwiZXhlY3V0ZSIsInN0YXR1cyIsIkVycm9yIiwicmVhc29uIiwibmV3Q29udGV4dCIsInZhbHVlIiwicmV0dXJuZWRDb250ZXh0Iiwic2lkZUVmZmVjdHMiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRPRGF0YUFjdGlvblNpZGVFZmZlY3RzIiwidHJpZ2dlckFjdGlvbnMiLCJsZW5ndGgiLCJyZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbiIsImFjdGl2YXRlRG9jdW1lbnQiLCJtUGFyYW1ldGVycyIsIm1ldGFQYXRoIiwicmVzb3VyY2VNb2RlbCIsIm1lc3NhZ2VzUGF0aCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVycm9yIiwiTG9nIiwiZGlzY2FyZERvY3VtZW50IiwiZGlzY2FyZEFjdGlvbkFubm90YXRpb24iLCJkaXNjYXJkQWN0aW9uIiwiYmluZENvbnRleHQiLCJpbnZva2UiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5Qcm9jZXNzIiwidmlldyIsInByb2dyYW1taW5nTW9kZWwiLCJ1aUVkaXRhYmxlIiwiQ29tbW9uVXRpbHMiLCJnZXRJc0VkaXRhYmxlIiwicmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJ3YXJuaW5nTXNnIiwiY29uZmlybUJ1dHRvblR4dCIsImNhbmNlbEJ1dHRvblR4dCIsIlN0aWNreSIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiYWN0aW9ucyIsImVtcGhhc2l6ZWRBY3Rpb24iLCJvbkNsb3NlIiwiYWN0aW9uVGV4dCIsImluZm8iLCJzdGlja3kiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInN0aWNreS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiBhcyBFZG1BY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Jlc291cmNlTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcIi4uLy4uL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBPcGVyYXRpb24gZnJvbSBcIi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcblxuY29uc3QgUHJvZ3JhbW1pbmdNb2RlbCA9IEZFTGlicmFyeS5Qcm9ncmFtbWluZ01vZGVsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNvbnZlcnRlZCBhY3Rpb24gZm9yIGEgZ2l2ZW4gY29udGV4dCBhbmQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgIFRoZSBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiBuYW1lXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGFjdGlvblxuICovXG5mdW5jdGlvbiBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dDogQ29udGV4dCwgb3BlcmF0aW9uOiBzdHJpbmcpOiBFZG1BY3Rpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBvcGVyYXRpb25OYW1lID0gZ2V0QWN0aW9uTmFtZShjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRjb25zdCBtZXRhTW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0YWN0aW9uUGF0aCA9IGAke21ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSl9LyR7b3BlcmF0aW9uTmFtZX1gLFxuXHRcdGJvdW5kQWN0aW9uID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGFjdGlvblBhdGgpITtcblx0cmV0dXJuIGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLnJlc29sdmVQYXRoPEVkbUFjdGlvbiB8IHVuZGVmaW5lZD4oYm91bmRBY3Rpb24uZ2V0UGF0aCgpKS50YXJnZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgYWN0aW9uIG5hbWUgZm9yIGEgZHJhZnQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIG5hbWVcbiAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBkcmFmdCBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aW9uTmFtZShjb250ZXh0OiBDb250ZXh0LCBvcGVyYXRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdG1ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdHNFbnRpdHlTZXRQYXRoID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHQuZ2V0UGF0aCgpKTtcblxuXHRyZXR1cm4gbWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkLyR7b3BlcmF0aW9ufWApO1xufVxuXG4vKipcbiAqIE9wZW5zIGEgc3RpY2t5IHNlc3Npb24gdG8gZWRpdCBhIGRvY3VtZW50LlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IFRoZSBBcHBDb21wb25lbnRcbiAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgaW4gZWRpdCBtb2RlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbihcblx0Y29udGV4dDogQ29udGV4dCxcblx0YXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQsXG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlclxuKTogUHJvbWlzZTxDb250ZXh0IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IG9wZXJhdGlvbiA9IFwiRWRpdEFjdGlvblwiO1xuXHRjb25zdCBjb252ZXJ0ZWRBY3Rpb24gPSBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dCwgb3BlcmF0aW9uKTtcblx0aWYgKGNvbnZlcnRlZEFjdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5ldyBPcGVyYXRpb24oYXBwQ29tcG9uZW50LCBjb250ZXh0LmdldE1vZGVsKCksIGNvbnZlcnRlZEFjdGlvbiwge1xuXHRcdFx0bWVzc2FnZUhhbmRsZXI6IG1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0Y29udGV4dHM6IFtjb250ZXh0XSxcblx0XHRcdGxhYmVsOiBnZXRSZXNvdXJjZU1vZGVsKGFwcENvbXBvbmVudCkuZ2V0VGV4dChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX0VESVRcIiksXG5cdFx0XHRza2lwTWVzc2FnZXM6IHRydWUsXG5cdFx0XHRvRGF0YVByb3BlcnRpZXM6IHtcblx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0XHRpZ25vcmVFVGFnOiBjb250ZXh0LmdldE9iamVjdCgpID09PSB1bmRlZmluZWQsIC8vIElmIHRoZSBjb250ZXh0IGhhcyBub3QgYmVlbiBsb2FkZWQgeWV0LCB3ZSBjYW4gaWdub3JlIHRoZSBFVGFnIChhcyBubyBwcmV2aW91cyBFVGFnIGlzIGF2YWlsYWJsZSlcblx0XHRcdFx0Z3JvdXBJZDogXCJkaXJlY3RcIixcblx0XHRcdFx0cmVwbGFjZVdpdGhSVkM6IGNvbnRleHQuZ2V0QmluZGluZygpLmlzQShcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YUxpc3RCaW5kaW5nXCIpLFxuXHRcdFx0XHRkZWZlcnJlZFN1Ym1pdDogZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHRiaW5kaW5nUGFyYW1ldGVyczogeyAkJGluaGVyaXRFeHBhbmRTZWxlY3Q6IHRydWUgfVxuXHRcdH0pLmV4ZWN1dGUoKTtcblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IocmVzdWx0WzBdLnJlYXNvbik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IG5ld0NvbnRleHQgPSByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHRcdFx0aWYgKG5ld0NvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHMgPSBhcHBDb21wb25lbnRcblx0XHRcdFx0XHQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKClcblx0XHRcdFx0XHQuZ2V0T0RhdGFBY3Rpb25TaWRlRWZmZWN0cyhnZXRBY3Rpb25OYW1lKGNvbnRleHQsIG9wZXJhdGlvbiksIG5ld0NvbnRleHQpO1xuXHRcdFx0XHRpZiAoc2lkZUVmZmVjdHM/LnRyaWdnZXJBY3Rpb25zICYmIHNpZGVFZmZlY3RzLnRyaWdnZXJBY3Rpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdGF3YWl0IGFwcENvbXBvbmVudC5nZXRTaWRlRWZmZWN0c1NlcnZpY2UoKS5yZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbihzaWRlRWZmZWN0cywgbmV3Q29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBuZXdDb250ZXh0O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEVkaXQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7b3BlcmF0aW9ufWApO1xuXHR9XG59XG4vKipcbiAqIEFjdGl2YXRlcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgdGhlIHN0aWNreSBzZXNzaW9uLlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYWN0aXZhdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IENvbnRleHQgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGFjdGl2YXRlZFxuICogQHBhcmFtIG1lc3NhZ2VIYW5kbGVyIFRoZSBtZXNzYWdlIGhhbmRsZXIgY29udHJvbGxlciBleHRlbnNpb25cbiAqIEBwYXJhbSBtUGFyYW1ldGVycyBUaGUgcGFyYW1ldGVyc1xuICogQHBhcmFtIFttUGFyYW1ldGVycy5yZXNvdXJjZU1vZGVsXSBSZXNvdXJjZSBNb2RlbFxuICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmUgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgYWN0aXZhdGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlRG9jdW1lbnQoXG5cdGNvbnRleHQ6IENvbnRleHQsXG5cdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIsXG5cdG1QYXJhbWV0ZXJzOiB7IHJlc291cmNlTW9kZWw/OiBSZXNvdXJjZU1vZGVsIH1cbik6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBvcGVyYXRpb24gPSBcIlNhdmVBY3Rpb25cIjtcblx0Y29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCksXG5cdFx0bWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY29udGV4dC5nZXRQYXRoKCkpO1xuXG5cdGNvbnN0IGNvbnZlcnRlZEFjdGlvbiA9IGdldENvbnZlcnRlZEFjdGlvbihjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRpZiAoY29udmVydGVkQWN0aW9uKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgbmV3IE9wZXJhdGlvbihhcHBDb21wb25lbnQsIGNvbnRleHQuZ2V0TW9kZWwoKSwgY29udmVydGVkQWN0aW9uLCB7XG5cdFx0XHRtZXNzYWdlSGFuZGxlcjogbWVzc2FnZUhhbmRsZXIsXG5cdFx0XHRjb250ZXh0czogW2NvbnRleHRdLFxuXHRcdFx0bGFiZWw6IG1QYXJhbWV0ZXJzPy5yZXNvdXJjZU1vZGVsPy5nZXRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIpLFxuXHRcdFx0c2tpcE1lc3NhZ2VzOiB0cnVlLFxuXHRcdFx0b0RhdGFQcm9wZXJ0aWVzOiB7XG5cdFx0XHRcdGRpc2FibGVTaWRlRWZmZWN0czogdHJ1ZSxcblx0XHRcdFx0aWdub3JlRVRhZzogY29udGV4dC5nZXRPYmplY3QoKSA9PT0gdW5kZWZpbmVkLCAvLyBJZiB0aGUgY29udGV4dCBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCwgd2UgY2FuIGlnbm9yZSB0aGUgRVRhZyAoYXMgbm8gcHJldmlvdXMgRVRhZyBpcyBhdmFpbGFibGUpXG5cdFx0XHRcdGdyb3VwSWQ6IFwiZGlyZWN0XCIsXG5cdFx0XHRcdHJlcGxhY2VXaXRoUlZDOiBjb250ZXh0LmdldEJpbmRpbmcoKS5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSxcblx0XHRcdFx0ZGVmZXJyZWRTdWJtaXQ6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0YmluZGluZ1BhcmFtZXRlcnM6IHsgJCRpbmhlcml0RXhwYW5kU2VsZWN0OiB0cnVlIH1cblx0XHR9KS5leGVjdXRlKCk7XG5cblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlc1BhdGggPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofS9AJHtDb21tb25Bbm5vdGF0aW9uVGVybXMuTWVzc2FnZXN9LyRQYXRoYCkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAobWVzc2FnZXNQYXRoKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0YXdhaXQgYXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLnJlcXVlc3RTaWRlRWZmZWN0cyhbbWVzc2FnZXNQYXRoXSwgY29udGV4dCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBzaWRlIGVmZmVjdHNcIiwgZXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKHJlc3VsdFswXS5yZWFzb24pO1xuXHRcdH0gZWxzZSBpZiAocmVzdWx0WzBdLnZhbHVlLnJldHVybmVkQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFNhdmUgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBkb2Vzbid0IHJldHVybiBhIGNvbnRleHQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihgU2F2ZSBBY3Rpb24gZm9yIFN0aWNreSBTZXNzaW9uIG5vdCBmb3VuZCBmb3IgJHttZXRhUGF0aH1gKTtcblx0fVxufVxuLyoqXG4gKiBEaXNjYXJkcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgc3RpY2t5IHNlc3Npb24uXG4gKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIHRoZSBkb2N1bWVudCB0byBiZSBkaXNjYXJkZWRcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHRoZSBkb2N1bWVudCBpcyBkaWNhcmRlZFxuICovXG5hc3luYyBmdW5jdGlvbiBkaXNjYXJkRG9jdW1lbnQoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBtb2RlbCA9IGNvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRtZXRhTW9kZWwgPSBtb2RlbC5nZXRNZXRhTW9kZWwoKSxcblx0XHRtZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSksXG5cdFx0ZGlzY2FyZEFjdGlvbkFubm90YXRpb24gPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvRGlzY2FyZEFjdGlvbmApO1xuXG5cdGlmICghZGlzY2FyZEFjdGlvbkFubm90YXRpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYERpc2NhcmQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdH1cblxuXHRjb25zdCBkaXNjYXJkQWN0aW9uID0gbW9kZWwuYmluZENvbnRleHQoYC8ke2Rpc2NhcmRBY3Rpb25Bbm5vdGF0aW9ufSguLi4pYCk7XG5cdHJldHVybiBkaXNjYXJkQWN0aW9uLmludm9rZShcIiRzaW5nbGVcIikudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbnRleHQ7XG5cdH0pO1xufVxuXG4vKipcbiAqIFByb2Nlc3MgdGhlIERhdGEgbG9zcyBjb25maXJtYXRpb24uXG4gKiBAcGFyYW0gZm5Qcm9jZXNzIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgY29uZmlybWF0aW9uXG4gKiBAcGFyYW0gdmlldyBDdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBwcm9ncmFtbWluZ01vZGVsIFByb2dyYW1taW5nIE1vZGVsIG9mIHRoZSBjdXJyZW50IHBhZ2VcbiAqIEByZXR1cm5zIGB2b2lkYCBpIHRoaW5rXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NEYXRhTG9zc0NvbmZpcm1hdGlvbihmblByb2Nlc3M6IEZ1bmN0aW9uLCB2aWV3OiBGRVZpZXcsIHByb2dyYW1taW5nTW9kZWw6IHN0cmluZyk6IHZvaWQge1xuXHRjb25zdCB1aUVkaXRhYmxlID0gQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KSxcblx0XHRyZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUudGVtcGxhdGVzXCIpISxcblx0XHR3YXJuaW5nTXNnID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9NU0dcIiksXG5cdFx0Y29uZmlybUJ1dHRvblR4dCA9IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX0NPTU1PTl9VVElMU19OQVZJR0FUSU9OX0FXQVlfQ09ORklSTV9CVVRUT05cIiksXG5cdFx0Y2FuY2VsQnV0dG9uVHh0ID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9DQU5DRUxfQlVUVE9OXCIpO1xuXG5cdGlmIChwcm9ncmFtbWluZ01vZGVsID09PSBQcm9ncmFtbWluZ01vZGVsLlN0aWNreSAmJiB1aUVkaXRhYmxlKSB7XG5cdFx0cmV0dXJuIE1lc3NhZ2VCb3gud2FybmluZyh3YXJuaW5nTXNnLCB7XG5cdFx0XHRhY3Rpb25zOiBbY29uZmlybUJ1dHRvblR4dCwgY2FuY2VsQnV0dG9uVHh0XSxcblx0XHRcdGVtcGhhc2l6ZWRBY3Rpb246IGNvbmZpcm1CdXR0b25UeHQsXG5cdFx0XHRvbkNsb3NlOiBmdW5jdGlvbiAoYWN0aW9uVGV4dDogc3RyaW5nKSB7XG5cdFx0XHRcdGlmIChhY3Rpb25UZXh0ID09PSBjb25maXJtQnV0dG9uVHh0KSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIGNvbmZpcm1lZC5cIik7XG5cdFx0XHRcdFx0Zm5Qcm9jZXNzKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIHJlamVjdGVkLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmblByb2Nlc3MoKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgZnVuY3Rpb25zIGZvciB0aGUgc3RpY2t5IHNlc3Npb24gcHJvZ3JhbW1pbmcgbW9kZWxcbiAqIEBuYW1lc3BhY2VcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgZXhwZXJpbWVudGFsIHVzZSEgPGJyLz48Yj5UaGlzIGlzIG9ubHkgYSBQT0MgYW5kIG1heWJlIGRlbGV0ZWQ8L2I+XG4gKiBAc2luY2UgMS41NC4wXG4gKi9cbmNvbnN0IHN0aWNreSA9IHtcblx0ZWRpdERvY3VtZW50SW5TdGlja3lTZXNzaW9uOiBlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb24sXG5cdGFjdGl2YXRlRG9jdW1lbnQ6IGFjdGl2YXRlRG9jdW1lbnQsXG5cdGRpc2NhcmREb2N1bWVudDogZGlzY2FyZERvY3VtZW50LFxuXHRwcm9jZXNzRGF0YUxvc3NDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc0NvbmZpcm1hdGlvblxufTtcblxuZXhwb3J0IGRlZmF1bHQgc3RpY2t5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7RUFnQkEsTUFBTUEsZ0JBQWdCLEdBQUdDLFNBQVMsQ0FBQ0QsZ0JBQWdCOztFQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTRSxrQkFBa0JBLENBQUNDLE9BQWdCLEVBQUVDLFNBQWlCLEVBQXlCO0lBQ3ZGLE1BQU1DLGFBQWEsR0FBR0MsYUFBYSxDQUFDSCxPQUFPLEVBQUVDLFNBQVMsQ0FBQztJQUN2RCxNQUFN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
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9ncmFtbWluZ01vZGVsIiwiRkVMaWJyYXJ5IiwiZ2V0Q29udmVydGVkQWN0aW9uIiwiY29udGV4dCIsIm9wZXJhdGlvbiIsIm9wZXJhdGlvbk5hbWUiLCJnZXRBY3Rpb25OYW1lIiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJhY3Rpb25QYXRoIiwiZ2V0TWV0YVBhdGgiLCJnZXRQYXRoIiwiYm91bmRBY3Rpb24iLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImNvbnZlcnRUeXBlcyIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwibW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldE9iamVjdCIsImVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbiIsImFwcENvbXBvbmVudCIsIm1lc3NhZ2VIYW5kbGVyIiwiY29udmVydGVkQWN0aW9uIiwicmVzdWx0IiwiT3BlcmF0aW9uIiwiY29udGV4dHMiLCJsYWJlbCIsImdldFJlc291cmNlTW9kZWwiLCJnZXRUZXh0Iiwic2tpcE1lc3NhZ2VzIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiaWdub3JlRVRhZyIsInVuZGVmaW5lZCIsImdyb3VwSWQiLCJyZXBsYWNlV2l0aFJWQyIsImdldEJpbmRpbmciLCJpc0EiLCJkZWZlcnJlZFN1Ym1pdCIsImJpbmRpbmdQYXJhbWV0ZXJzIiwiJCRpbmhlcml0RXhwYW5kU2VsZWN0IiwiZXhlY3V0ZSIsInN0YXR1cyIsIkVycm9yIiwicmVhc29uIiwibmV3Q29udGV4dCIsInZhbHVlIiwicmV0dXJuZWRDb250ZXh0Iiwic2lkZUVmZmVjdHMiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRPRGF0YUFjdGlvblNpZGVFZmZlY3RzIiwidHJpZ2dlckFjdGlvbnMiLCJsZW5ndGgiLCJyZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbiIsImFjdGl2YXRlRG9jdW1lbnQiLCJtZXRhUGF0aCIsIm1lc3NhZ2VzUGF0aCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVycm9yIiwiTG9nIiwiZGlzY2FyZERvY3VtZW50IiwiZGlzY2FyZEFjdGlvbkFubm90YXRpb24iLCJkaXNjYXJkQWN0aW9uIiwiYmluZENvbnRleHQiLCJpbnZva2UiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5Qcm9jZXNzIiwidmlldyIsInByb2dyYW1taW5nTW9kZWwiLCJ1aUVkaXRhYmxlIiwiQ29tbW9uVXRpbHMiLCJnZXRJc0VkaXRhYmxlIiwicmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJ3YXJuaW5nTXNnIiwiY29uZmlybUJ1dHRvblR4dCIsImNhbmNlbEJ1dHRvblR4dCIsIlN0aWNreSIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiYWN0aW9ucyIsImVtcGhhc2l6ZWRBY3Rpb24iLCJvbkNsb3NlIiwiYWN0aW9uVGV4dCIsImluZm8iLCJzdGlja3kiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInN0aWNreS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiBhcyBFZG1BY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Jlc291cmNlTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcIi4uLy4uL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBPcGVyYXRpb24gZnJvbSBcIi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcblxuY29uc3QgUHJvZ3JhbW1pbmdNb2RlbCA9IEZFTGlicmFyeS5Qcm9ncmFtbWluZ01vZGVsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNvbnZlcnRlZCBhY3Rpb24gZm9yIGEgZ2l2ZW4gY29udGV4dCBhbmQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgIFRoZSBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiBuYW1lXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGFjdGlvblxuICovXG5mdW5jdGlvbiBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dDogQ29udGV4dCwgb3BlcmF0aW9uOiBzdHJpbmcpOiBFZG1BY3Rpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBvcGVyYXRpb25OYW1lID0gZ2V0QWN0aW9uTmFtZShjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRjb25zdCBtZXRhTW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0YWN0aW9uUGF0aCA9IGAke21ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSl9LyR7b3BlcmF0aW9uTmFtZX1gLFxuXHRcdGJvdW5kQWN0aW9uID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGFjdGlvblBhdGgpITtcblx0cmV0dXJuIGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLnJlc29sdmVQYXRoPEVkbUFjdGlvbiB8IHVuZGVmaW5lZD4oYm91bmRBY3Rpb24uZ2V0UGF0aCgpKS50YXJnZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgYWN0aW9uIG5hbWUgZm9yIGEgZHJhZnQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIG5hbWVcbiAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBkcmFmdCBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aW9uTmFtZShjb250ZXh0OiBDb250ZXh0LCBvcGVyYXRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdG1ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdHNFbnRpdHlTZXRQYXRoID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHQuZ2V0UGF0aCgpKTtcblxuXHRyZXR1cm4gbWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkLyR7b3BlcmF0aW9ufWApO1xufVxuXG4vKipcbiAqIE9wZW5zIGEgc3RpY2t5IHNlc3Npb24gdG8gZWRpdCBhIGRvY3VtZW50LlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IFRoZSBBcHBDb21wb25lbnRcbiAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgaW4gZWRpdCBtb2RlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbihcblx0Y29udGV4dDogQ29udGV4dCxcblx0YXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQsXG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlclxuKTogUHJvbWlzZTxDb250ZXh0IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IG9wZXJhdGlvbiA9IFwiRWRpdEFjdGlvblwiO1xuXHRjb25zdCBjb252ZXJ0ZWRBY3Rpb24gPSBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dCwgb3BlcmF0aW9uKTtcblx0aWYgKGNvbnZlcnRlZEFjdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5ldyBPcGVyYXRpb24oYXBwQ29tcG9uZW50LCBjb250ZXh0LmdldE1vZGVsKCksIGNvbnZlcnRlZEFjdGlvbiwge1xuXHRcdFx0bWVzc2FnZUhhbmRsZXI6IG1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0Y29udGV4dHM6IFtjb250ZXh0XSxcblx0XHRcdGxhYmVsOiBnZXRSZXNvdXJjZU1vZGVsKGFwcENvbXBvbmVudCkuZ2V0VGV4dChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX0VESVRcIiksXG5cdFx0XHRza2lwTWVzc2FnZXM6IHRydWUsXG5cdFx0XHRvRGF0YVByb3BlcnRpZXM6IHtcblx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0XHRpZ25vcmVFVGFnOiBjb250ZXh0LmdldE9iamVjdCgpID09PSB1bmRlZmluZWQsIC8vIElmIHRoZSBjb250ZXh0IGhhcyBub3QgYmVlbiBsb2FkZWQgeWV0LCB3ZSBjYW4gaWdub3JlIHRoZSBFVGFnIChhcyBubyBwcmV2aW91cyBFVGFnIGlzIGF2YWlsYWJsZSlcblx0XHRcdFx0Z3JvdXBJZDogXCJkaXJlY3RcIixcblx0XHRcdFx0cmVwbGFjZVdpdGhSVkM6IGNvbnRleHQuZ2V0QmluZGluZygpLmlzQShcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YUxpc3RCaW5kaW5nXCIpLFxuXHRcdFx0XHRkZWZlcnJlZFN1Ym1pdDogZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHRiaW5kaW5nUGFyYW1ldGVyczogeyAkJGluaGVyaXRFeHBhbmRTZWxlY3Q6IHRydWUgfVxuXHRcdH0pLmV4ZWN1dGUoKTtcblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IocmVzdWx0WzBdLnJlYXNvbik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IG5ld0NvbnRleHQgPSByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHRcdFx0aWYgKG5ld0NvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHMgPSBhcHBDb21wb25lbnRcblx0XHRcdFx0XHQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKClcblx0XHRcdFx0XHQuZ2V0T0RhdGFBY3Rpb25TaWRlRWZmZWN0cyhnZXRBY3Rpb25OYW1lKGNvbnRleHQsIG9wZXJhdGlvbiksIG5ld0NvbnRleHQpO1xuXHRcdFx0XHRpZiAoc2lkZUVmZmVjdHM/LnRyaWdnZXJBY3Rpb25zICYmIHNpZGVFZmZlY3RzLnRyaWdnZXJBY3Rpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdGF3YWl0IGFwcENvbXBvbmVudC5nZXRTaWRlRWZmZWN0c1NlcnZpY2UoKS5yZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbihzaWRlRWZmZWN0cywgbmV3Q29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBuZXdDb250ZXh0O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEVkaXQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7b3BlcmF0aW9ufWApO1xuXHR9XG59XG4vKipcbiAqIEFjdGl2YXRlcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgdGhlIHN0aWNreSBzZXNzaW9uLlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYWN0aXZhdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IENvbnRleHQgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGFjdGl2YXRlZFxuICogQHBhcmFtIG1lc3NhZ2VIYW5kbGVyIFRoZSBtZXNzYWdlIGhhbmRsZXIgY29udHJvbGxlciBleHRlbnNpb25cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlIHdoZW4gdGhlIHN0aWNreSBzZXNzaW9uIGlzIGFjdGl2YXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiBhY3RpdmF0ZURvY3VtZW50KGNvbnRleHQ6IENvbnRleHQsIGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LCBtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIpOiBQcm9taXNlPENvbnRleHQ+IHtcblx0Y29uc3Qgb3BlcmF0aW9uID0gXCJTYXZlQWN0aW9uXCI7XG5cdGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdG1ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdG1ldGFQYXRoID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHQuZ2V0UGF0aCgpKTtcblxuXHRjb25zdCBjb252ZXJ0ZWRBY3Rpb24gPSBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dCwgb3BlcmF0aW9uKTtcblx0aWYgKGNvbnZlcnRlZEFjdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5ldyBPcGVyYXRpb24oYXBwQ29tcG9uZW50LCBjb250ZXh0LmdldE1vZGVsKCksIGNvbnZlcnRlZEFjdGlvbiwge1xuXHRcdFx0bWVzc2FnZUhhbmRsZXI6IG1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0Y29udGV4dHM6IFtjb250ZXh0XSxcblx0XHRcdGxhYmVsOiBnZXRSZXNvdXJjZU1vZGVsKGFwcENvbXBvbmVudCkuZ2V0VGV4dChcIkNfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKSxcblx0XHRcdHNraXBNZXNzYWdlczogdHJ1ZSxcblx0XHRcdG9EYXRhUHJvcGVydGllczoge1xuXHRcdFx0XHRkaXNhYmxlU2lkZUVmZmVjdHM6IHRydWUsXG5cdFx0XHRcdGlnbm9yZUVUYWc6IGNvbnRleHQuZ2V0T2JqZWN0KCkgPT09IHVuZGVmaW5lZCwgLy8gSWYgdGhlIGNvbnRleHQgaGFzIG5vdCBiZWVuIGxvYWRlZCB5ZXQsIHdlIGNhbiBpZ25vcmUgdGhlIEVUYWcgKGFzIG5vIHByZXZpb3VzIEVUYWcgaXMgYXZhaWxhYmxlKVxuXHRcdFx0XHRncm91cElkOiBcImRpcmVjdFwiLFxuXHRcdFx0XHRyZXBsYWNlV2l0aFJWQzogY29udGV4dC5nZXRCaW5kaW5nKCkuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhTGlzdEJpbmRpbmdcIiksXG5cdFx0XHRcdGRlZmVycmVkU3VibWl0OiBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGJpbmRpbmdQYXJhbWV0ZXJzOiB7ICQkaW5oZXJpdEV4cGFuZFNlbGVjdDogdHJ1ZSB9XG5cdFx0fSkuZXhlY3V0ZSgpO1xuXG5cdFx0aWYgKHJlc3VsdFswXS5zdGF0dXMgPT09IFwicmVqZWN0ZWRcIikge1xuXHRcdFx0Y29uc3QgbWVzc2FnZXNQYXRoID0gbWV0YU1vZGVsLmdldE9iamVjdChgJHttZXRhUGF0aH0vQCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLk1lc3NhZ2VzfS8kUGF0aGApIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKG1lc3NhZ2VzUGF0aCkge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGF3YWl0IGFwcENvbXBvbmVudC5nZXRTaWRlRWZmZWN0c1NlcnZpY2UoKS5yZXF1ZXN0U2lkZUVmZmVjdHMoW21lc3NhZ2VzUGF0aF0sIGNvbnRleHQpO1xuXHRcdFx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJlcXVlc3Rpbmcgc2lkZSBlZmZlY3RzXCIsIGVycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBFcnJvcihyZXN1bHRbMF0ucmVhc29uKTtcblx0XHR9IGVsc2UgaWYgKHJlc3VsdFswXS52YWx1ZS5yZXR1cm5lZENvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBTYXZlIEFjdGlvbiBmb3IgU3RpY2t5IFNlc3Npb24gZG9lc24ndCByZXR1cm4gYSBjb250ZXh0IGZvciAke21ldGFQYXRofWApO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0WzBdLnZhbHVlLnJldHVybmVkQ29udGV4dDtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYFNhdmUgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdH1cbn1cbi8qKlxuICogRGlzY2FyZHMgYSBkb2N1bWVudCBhbmQgY2xvc2VzIHN0aWNreSBzZXNzaW9uLlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZGlzY2FyZGVkXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgZG9jdW1lbnQgaXMgZGljYXJkZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGlzY2FyZERvY3VtZW50KGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPENvbnRleHQ+IHtcblx0Y29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCksXG5cdFx0bWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY29udGV4dC5nZXRQYXRoKCkpLFxuXHRcdGRpc2NhcmRBY3Rpb25Bbm5vdGF0aW9uID0gbWV0YU1vZGVsLmdldE9iamVjdChgJHttZXRhUGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkL0Rpc2NhcmRBY3Rpb25gKTtcblxuXHRpZiAoIWRpc2NhcmRBY3Rpb25Bbm5vdGF0aW9uKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBEaXNjYXJkIEFjdGlvbiBmb3IgU3RpY2t5IFNlc3Npb24gbm90IGZvdW5kIGZvciAke21ldGFQYXRofWApO1xuXHR9XG5cblx0Y29uc3QgZGlzY2FyZEFjdGlvbiA9IG1vZGVsLmJpbmRDb250ZXh0KGAvJHtkaXNjYXJkQWN0aW9uQW5ub3RhdGlvbn0oLi4uKWApO1xuXHRyZXR1cm4gZGlzY2FyZEFjdGlvbi5pbnZva2UoXCIkc2luZ2xlXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBjb250ZXh0O1xuXHR9KTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzIHRoZSBEYXRhIGxvc3MgY29uZmlybWF0aW9uLlxuICogQHBhcmFtIGZuUHJvY2VzcyBGdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIGNvbmZpcm1hdGlvblxuICogQHBhcmFtIHZpZXcgQ3VycmVudCB2aWV3XG4gKiBAcGFyYW0gcHJvZ3JhbW1pbmdNb2RlbCBQcm9ncmFtbWluZyBNb2RlbCBvZiB0aGUgY3VycmVudCBwYWdlXG4gKiBAcmV0dXJucyBgdm9pZGAgaSB0aGlua1xuICovXG5mdW5jdGlvbiBwcm9jZXNzRGF0YUxvc3NDb25maXJtYXRpb24oZm5Qcm9jZXNzOiBGdW5jdGlvbiwgdmlldzogRkVWaWV3LCBwcm9ncmFtbWluZ01vZGVsOiBzdHJpbmcpOiB2b2lkIHtcblx0Y29uc3QgdWlFZGl0YWJsZSA9IENvbW1vblV0aWxzLmdldElzRWRpdGFibGUodmlldyksXG5cdFx0cmVzb3VyY2VCdW5kbGUgPSBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLnRlbXBsYXRlc1wiKSEsXG5cdFx0d2FybmluZ01zZyA9IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX0NPTU1PTl9VVElMU19OQVZJR0FUSU9OX0FXQVlfTVNHXCIpLFxuXHRcdGNvbmZpcm1CdXR0b25UeHQgPSByZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiVF9DT01NT05fVVRJTFNfTkFWSUdBVElPTl9BV0FZX0NPTkZJUk1fQlVUVE9OXCIpLFxuXHRcdGNhbmNlbEJ1dHRvblR4dCA9IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX0NPTU1PTl9VVElMU19OQVZJR0FUSU9OX0FXQVlfQ0FOQ0VMX0JVVFRPTlwiKTtcblxuXHRpZiAocHJvZ3JhbW1pbmdNb2RlbCA9PT0gUHJvZ3JhbW1pbmdNb2RlbC5TdGlja3kgJiYgdWlFZGl0YWJsZSkge1xuXHRcdHJldHVybiBNZXNzYWdlQm94Lndhcm5pbmcod2FybmluZ01zZywge1xuXHRcdFx0YWN0aW9uczogW2NvbmZpcm1CdXR0b25UeHQsIGNhbmNlbEJ1dHRvblR4dF0sXG5cdFx0XHRlbXBoYXNpemVkQWN0aW9uOiBjb25maXJtQnV0dG9uVHh0LFxuXHRcdFx0b25DbG9zZTogZnVuY3Rpb24gKGFjdGlvblRleHQ6IHN0cmluZykge1xuXHRcdFx0XHRpZiAoYWN0aW9uVGV4dCA9PT0gY29uZmlybUJ1dHRvblR4dCkge1xuXHRcdFx0XHRcdExvZy5pbmZvKFwiTmF2aWdhdGlvbiBjb25maXJtZWQuXCIpO1xuXHRcdFx0XHRcdGZuUHJvY2VzcygpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdExvZy5pbmZvKFwiTmF2aWdhdGlvbiByZWplY3RlZC5cIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm5Qcm9jZXNzKCk7XG59XG5cbi8qKlxuICogU3RhdGljIGZ1bmN0aW9ucyBmb3IgdGhlIHN0aWNreSBzZXNzaW9uIHByb2dyYW1taW5nIG1vZGVsXG4gKiBAbmFtZXNwYWNlXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgbW9kdWxlIGlzIG9ubHkgZm9yIGV4cGVyaW1lbnRhbCB1c2UhIDxici8+PGI+VGhpcyBpcyBvbmx5IGEgUE9DIGFuZCBtYXliZSBkZWxldGVkPC9iPlxuICogQHNpbmNlIDEuNTQuMFxuICovXG5jb25zdCBzdGlja3kgPSB7XG5cdGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbjogZWRpdERvY3VtZW50SW5TdGlja3lTZXNzaW9uLFxuXHRhY3RpdmF0ZURvY3VtZW50OiBhY3RpdmF0ZURvY3VtZW50LFxuXHRkaXNjYXJkRG9jdW1lbnQ6IGRpc2NhcmREb2N1bWVudCxcblx0cHJvY2Vzc0RhdGFMb3NzQ29uZmlybWF0aW9uOiBwcm9jZXNzRGF0YUxvc3NDb25maXJtYXRpb25cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHN0aWNreTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0VBZUEsTUFBTUEsZ0JBQWdCLEdBQUdDLFNBQVMsQ0FBQ0QsZ0JBQWdCOztFQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTRSxrQkFBa0JBLENBQUNDLE9BQWdCLEVBQUVDLFNBQWlCLEVBQXlCO0lBQ3ZGLE1BQU1DLGFBQWEsR0FBR0MsYUFBYSxDQUFDSCxPQUFPLEVBQUVDLFNBQVMsQ0FBQztJQUN2RCxNQUFNRyxTQUFTLEdBQUdKLE9BQU8sQ0FBQ0ssUUFBUSxDQUFDLENBQUMsQ0FBQ0MsWUFBWSxDQUFDLENBQUM7TUFDbERDLFVBQVUsR0FBRyxHQUFHSCxTQUFTLENBQUNJLFdBQVcsQ0FBQ1IsT0FBTyxDQUFDUyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUlQLGFBQWEsRUFBRTtNQUMzRVEsV0FBVyxHQUFHTixTQUFTLENBQUNPLG9CQUFvQixDQUFDSixVQUFVLENBQUU7SUFDMUQsT0FBT0ssWUFBWSxDQUFDUixTQUFTLENBQUMsQ0FBQ1MsV0FB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
@@ -4,7 +4,6 @@ import Log from "sap/base/Log";
4
4
  import type AppComponent from "sap/fe/core/AppComponent";
5
5
  import type { FEView } from "sap/fe/core/BaseController";
6
6
  import CommonUtils from "sap/fe/core/CommonUtils";
7
- import type ResourceModel from "sap/fe/core/ResourceModel";
8
7
  import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
9
8
  import FELibrary from "sap/fe/core/library";
10
9
  import MessageBox from "sap/m/MessageBox";
@@ -96,16 +95,9 @@ async function editDocumentInStickySession(
96
95
  * @param context Context of the document to be activated
97
96
  * @param appComponent Context of the document to be activated
98
97
  * @param messageHandler The message handler controller extension
99
- * @param mParameters The parameters
100
- * @param [mParameters.resourceModel] Resource Model
101
98
  * @returns A promise resolve when the sticky session is activated
102
99
  */
103
- async function activateDocument(
104
- context: Context,
105
- appComponent: AppComponent,
106
- messageHandler: MessageHandler,
107
- mParameters: { resourceModel?: ResourceModel }
108
- ): Promise<Context> {
100
+ async function activateDocument(context: Context, appComponent: AppComponent, messageHandler: MessageHandler): Promise<Context> {
109
101
  const operation = "SaveAction";
110
102
  const model = context.getModel(),
111
103
  metaModel = model.getMetaModel(),
@@ -116,7 +108,7 @@ async function activateDocument(
116
108
  const result = await new Operation(appComponent, context.getModel(), convertedAction, {
117
109
  messageHandler: messageHandler,
118
110
  contexts: [context],
119
- label: mParameters?.resourceModel?.getText("T_OP_OBJECT_PAGE_SAVE"),
111
+ label: getResourceModel(appComponent).getText("C_OP_OBJECT_PAGE_SAVE"),
120
112
  skipMessages: true,
121
113
  oDataProperties: {
122
114
  disableSideEffects: true,