@sapui5/sap.fe.templates 1.104.1 → 1.105.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/package.json +3 -3
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  5. package/src/sap/fe/templates/Feedback.js +1 -1
  6. package/src/sap/fe/templates/ListComponent.js +2 -2
  7. package/src/sap/fe/templates/ListReport/Component.js +2 -2
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +5 -3
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +2 -1
  10. package/src/sap/fe/templates/ListReport/ListReport.view.xml +10 -73
  11. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +30 -116
  12. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +25 -105
  13. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +1 -1
  14. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +166 -62
  15. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +129 -41
  16. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  17. package/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  18. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  19. package/src/sap/fe/templates/ListReport/view/fragments/Chart.fragment.xml +3 -0
  20. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +10 -4
  21. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/MacroChart.fragment.xml +3 -2
  22. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +3 -3
  23. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +6 -2
  24. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/Table.fragment.xml +6 -6
  25. package/src/sap/fe/templates/ListReport/view/fragments/VariantManagement.fragment.xml +31 -0
  26. package/src/sap/fe/templates/ObjectPage/Component.js +9 -9
  27. package/src/sap/fe/templates/ObjectPage/Component.ts +10 -6
  28. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +24 -11
  29. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +16 -3
  30. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +48 -143
  31. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +51 -36
  32. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +47 -30
  33. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +25 -11
  34. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +20 -8
  35. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +178 -0
  36. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -2
  37. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -2
  38. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -2
  39. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  40. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  41. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
  43. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
  44. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  45. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  46. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  47. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  48. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
  49. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/Chart.fragment.xml +13 -0
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +2 -2
  52. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
  53. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
  54. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +2 -0
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +22 -0
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +7 -2
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -49
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +1 -1
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +23 -0
  60. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +2 -2
  61. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +2 -2
  62. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +2 -2
  63. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  64. package/src/sap/fe/templates/TableScroller.js +1 -1
  65. package/src/sap/fe/templates/library.js +2 -2
  66. package/src/sap/fe/templates/messagebundle_bg.properties +2 -2
  67. package/src/sap/fe/templates/messagebundle_cy.properties +2 -2
  68. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -7
  69. package/src/sap/fe/templates/messagebundle_lv.properties +2 -2
  70. package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +0 -50
  71. package/src/sap/fe/templates/controls/Chart.fragment.xml +0 -25
@@ -30,7 +30,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/BaseController", "sap/fe/core/Common
30
30
 
31
31
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
32
32
 
33
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
34
 
35
35
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
36
36
 
@@ -572,4 +572,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/BaseController", "sap/fe/core/Common
572
572
  })), _class2)) || _class);
573
573
  return RootContainerBaseController;
574
574
  }, false);
575
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJvb3RDb250YWluZXJCYXNlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiUm9vdENvbnRhaW5lckJhc2VDb250cm9sbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJ1c2luZ0V4dGVuc2lvbiIsIlBsYWNlaG9sZGVyIiwiYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeSIsIm9uSW5pdCIsIlNpemVIZWxwZXIiLCJpbml0IiwiX2FIZWxwZXJNb2RlbHMiLCJnZXRQbGFjZWhvbGRlciIsIm9QbGFjZWhvbGRlciIsImF0dGFjaFJvdXRlTWF0Y2hlcnMiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRSb3V0aW5nU2VydmljZSIsImF0dGFjaEFmdGVyUm91dGVNYXRjaGVkIiwiX29uQWZ0ZXJSb3V0ZU1hdGNoZWQiLCJvbkV4aXQiLCJkZXRhY2hBZnRlclJvdXRlTWF0Y2hlZCIsIm9Sb3V0ZXIiLCJ1bmRlZmluZWQiLCJleGl0IiwiZm9yRWFjaCIsIm9Nb2RlbCIsImRlc3Ryb3kiLCJnZXRSZXNvdXJjZUJ1bmRsZSIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0TW9kZWwiLCJnZXRSb3V0ZXIiLCJfY3JlYXRlSGVscGVyTW9kZWwiLCJKU09OTW9kZWwiLCJwdXNoIiwid2FpdEZvclJpZ2h0TW9zdFZpZXdSZWFkeSIsIm9FdmVudCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYUNvbnRhaW5lcnMiLCJnZXRQYXJhbWV0ZXIiLCJhRkVDb250YWluZXJzIiwib0NvbnRhaW5lciIsIm9WaWV3IiwiZ2V0Q29tcG9uZW50SW5zdGFuY2UiLCJvQ29tcG9uZW50SW5zdGFuY2UiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJwYWdlUmVhZHkiLCJvUmlnaHRNb3N0RkVWaWV3IiwibGVuZ3RoIiwiaXNQYWdlUmVhZHkiLCJhdHRhY2hFdmVudE9uY2UiLCJfb1JvdXRlTWF0Y2hlZFByb21pc2UiLCJvUm9vdENvbnRyb2wiLCJnZXRWaWV3IiwiZ2V0Q29udGVudCIsImdldEF1dG9Gb2N1cyIsInNldFByb3BlcnR5Iiwib0FwcENvbXBvbmVudCIsIl9zY3JvbGxUYWJsZXNUb0xhc3ROYXZpZ2F0ZWRJdGVtcyIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiVVNoZWxsIiwiX2NvbXB1dGVUaXRsZUhpZXJhcmNoeSIsImJGb3JjZUZvY3VzIiwiZ2V0Um91dGVyUHJveHkiLCJpc0ZvY3VzRm9yY2VkIiwic2V0Rm9jdXNGb3JjZWQiLCJvblBhZ2VSZWFkeSIsImdldFBhcmVudCIsImZvcmNlRm9jdXMiLCJvbkNvbnRhaW5lclJlYWR5IiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImZpbmFsbHkiLCJfZ2V0VGl0bGVIaWVyYXJjaHlDYWNoZSIsIm9UaXRsZUhpZXJhcmNoeUNhY2hlIiwiX2NvbXB1dGVUaXRsZUluZm8iLCJ0aXRsZSIsInN1YnRpdGxlIiwic0ludGVudCIsImFQYXJ0cyIsInNwbGl0IiwiaW5kZXhPZiIsImludGVudCIsImljb24iLCJfZm9ybWF0VGl0bGUiLCJkaXNwbGF5TW9kZSIsInRpdGxlVmFsdWUiLCJ0aXRsZURlc2NyaXB0aW9uIiwiZm9ybWF0dGVkVGl0bGUiLCJfZmV0Y2hUaXRsZVZhbHVlIiwic1BhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic01ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJvQmluZGluZ1ZpZXdDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJzVmFsdWVFeHByZXNzaW9uIiwiQW5ub3RhdGlvbkhlbHBlciIsImZvcm1hdCIsImdldE9iamVjdCIsImNvbnRleHQiLCJzVGV4dEV4cHJlc3Npb24iLCJvUHJvcGVydHlDb250ZXh0IiwiYVByb21pc2VzIiwib1ZhbHVlRXhwcmVzc2lvbiIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwib1Byb21pc2VGb3JEaXNwbGF5TW9kZSIsIkNvbW1vblV0aWxzIiwiY29tcHV0ZURpc3BsYXlNb2RlIiwic1ZhbHVlUGF0aCIsInBhcnRzIiwicGF0aCIsImZuVmFsdWVGb3JtYXR0ZXIiLCJmb3JtYXR0ZXIiLCJvVmFsdWVCaW5kaW5nIiwiYmluZFByb3BlcnR5IiwiaW5pdGlhbGl6ZSIsIm9Qcm9taXNlRm9yVGl0bGVWYWx1ZSIsImZuQ2hhbmdlIiwic1RhcmdldFZhbHVlIiwiZ2V0U291cmNlIiwiZ2V0VmFsdWUiLCJkZXRhY2hDaGFuZ2UiLCJhdHRhY2hDaGFuZ2UiLCJvVGV4dEV4cHJlc3Npb24iLCJzVGV4dFBhdGgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiZm5UZXh0Rm9ybWF0dGVyIiwib1RleHRCaW5kaW5nIiwib1Byb21pc2VGb3JUaXRsZVRleHQiLCJzVGFyZ2V0VGV4dCIsImFsbCIsInRpdGxlSW5mbyIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsIl9nZXRIYXNoIiwiZ2V0SGFzaCIsImdldFRpdGxlSW5mb0Zyb21QYXRoIiwic0VudGl0eVBhdGgiLCJzVHlwZU5hbWUiLCJzQXBwU3BlY2lmaWNIYXNoIiwic1RpdGxlIiwib1RpdGxlSW5mbyIsIl9lbnN1cmVIaWVyYXJjaHlFbGVtZW50c0FyZVN0cmluZ3MiLCJhSGllcmFyY2h5IiwiYUhpZXJhcmNoeVNoZWxsIiwibGV2ZWwiLCJvSGllcmFyY2h5Iiwib1NoZWxsSGllcmFyY2h5Iiwia2V5IiwiU3RyaW5nIiwiX2dldFRhcmdldFR5cGVGcm9tSGFzaCIsInNIYXNoIiwic1RhcmdldFR5cGUiLCJhUm91dGVzIiwiZ2V0TWFuaWZlc3RFbnRyeSIsImoiLCJvUm91dGUiLCJnZXRSb3V0ZSIsIm5hbWUiLCJtYXRjaCIsInNUYXJnZXQiLCJBcnJheSIsImlzQXJyYXkiLCJ0YXJnZXQiLCJnZXRUYXJnZXQiLCJfb09wdGlvbnMiLCJvQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib0N1cnJlbnRQYWdlIiwiYVRpdGxlSW5mb3JtYXRpb25Qcm9taXNlcyIsInNBcHBUaXRsZSIsImdldE1ldGFkYXRhIiwic0FwcFN1YlRpdGxlIiwiYXBwU3ViVGl0bGUiLCJvUGFnZVRpdGxlSW5mb3JtYXRpb24iLCJzTmV3UGF0aCIsIl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbiIsImdldFBhdGgiLCJhUGF0aFBhcnRzIiwic2hpZnQiLCJwb3AiLCJzUGF0aFBhcnQiLCJzUGFyYW1ldGVyUGF0aCIsImJJc1BhcmFtZXRlcml6ZWQiLCJyZWplY3QiLCJhVGl0bGVJbmZvSGllcmFyY2h5IiwiYVRpdGxlSW5mb0hpZXJhcmNoeVNoZWxsIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsInNldEhpZXJhcmNoeSIsInJldmVyc2UiLCJzZXRUaXRsZSIsInNFcnJvck1lc3NhZ2UiLCJjYWxjdWxhdGVMYXlvdXQiLCJpTmV4dEZDTExldmVsIiwic1Byb3Bvc2VkTGF5b3V0Iiwia2VlcEN1cnJlbnRMYXlvdXQiLCJvbkNvbnRleHRCb3VuZFRvVmlldyIsInNEZWVwZXN0UGF0aCIsImdldFByb3BlcnR5Iiwic1ZpZXdDb250ZXh0UGF0aCIsImRpc3BsYXlNZXNzYWdlUGFnZSIsIm1QYXJhbWV0ZXJzIiwidXBkYXRlVUlTdGF0ZUZvclZpZXciLCJGQ0xMZXZlbCIsIkJhc2VDb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFnakJPLGtCQUFnQkEsSUFBaEIsRUFBc0JDLE9BQXRCLEVBQStCO0FBQ3JDLFFBQUk7QUFDSCxVQUFJQyxNQUFNLEdBQUdGLElBQUksRUFBakI7QUFDQSxLQUZELENBRUUsT0FBTUcsQ0FBTixFQUFTO0FBQ1YsYUFBT0YsT0FBTyxDQUFDRSxDQUFELENBQWQ7QUFDQTs7QUFDRCxRQUFJRCxNQUFNLElBQUlBLE1BQU0sQ0FBQ0UsSUFBckIsRUFBMkI7QUFDMUIsYUFBT0YsTUFBTSxDQUFDRSxJQUFQLENBQVksS0FBSyxDQUFqQixFQUFvQkgsT0FBcEIsQ0FBUDtBQUNBOztBQUNELFdB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Q0QsSyxDQUVEOzs7V0FDQTRMLGtCLEdBQUEsNEJBQW1CVCxhQUFuQixFQUF1Q1UsV0FBdkMsRUFBMkU7QUFDMUU7QUFDQSxhQUFPL0ssT0FBTyxDQUFDQyxPQUFSLENBQWdCLElBQWhCLENBQVA7QUFDQSxLLENBRUQ7OztXQUNBK0ssb0IsR0FBQSw4QkFBcUIxSyxLQUFyQixFQUFpQzJLLFFBQWpDLEVBQWdELENBQy9DO0FBQ0EsSzs7V0FDRDFKLGlDLEdBQUEsNkNBQTBDLENBQ3pDO0FBQ0EsSzs7O0lBdGR3QzJKLGM7Ozs7OztTQTRkM0JuTiwyQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQmFzZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgUGxhY2Vob2xkZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgdXNpbmdFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBTaXplSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL1NpemVIZWxwZXJcIjtcbmltcG9ydCBCaW5kaW5nUGFyc2VyIGZyb20gXCJzYXAvdWkvYmFzZS9CaW5kaW5nUGFyc2VyXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCB0eXBlIFJvdXRlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9Sb3V0ZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBBbm5vdGF0aW9uSGVscGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQW5ub3RhdGlvbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL3Jlc291cmNlL1Jlc291cmNlTW9kZWxcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuUm9vdENvbnRhaW5lckJhc2VDb250cm9sbGVyXCIpXG5jbGFzcyBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXIgZXh0ZW5kcyBCYXNlQ29udHJvbGxlciB7XG5cdEB1c2luZ0V4dGVuc2lvbihQbGFjZWhvbGRlcilcblx0b1BsYWNlaG9sZGVyITogUGxhY2Vob2xkZXI7XG5cdHByaXZhdGUgX2FIZWxwZXJNb2RlbHMhOiBhbnlbXTtcblx0cHJpdmF0ZSBvUm91dGVyPzogUm91dGVyO1xuXHRwcml2YXRlIF9vUm91dGVNYXRjaGVkUHJvbWlzZTogYW55O1xuXHRwcml2YXRlIG9UaXRsZUhpZXJhcmNoeUNhY2hlOiBhbnk7XG5cdHByaXZhdGUgYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdG9uSW5pdCgpIHtcblx0XHRTaXplSGVscGVyLmluaXQoKTtcblxuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMgPSBbXTtcblx0fVxuXG5cdGdldFBsYWNlaG9sZGVyKCkge1xuXHRcdHJldHVybiB0aGlzLm9QbGFjZWhvbGRlcjtcblx0fVxuXHRhdHRhY2hSb3V0ZU1hdGNoZXJzKCkge1xuXHRcdHRoaXMub1BsYWNlaG9sZGVyLmF0dGFjaFJvdXRlTWF0Y2hlcnMoKTtcblx0XHR0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldFJvdXRpbmdTZXJ2aWNlKCkuYXR0YWNoQWZ0ZXJSb3V0ZU1hdGNoZWQodGhpcy5fb25BZnRlclJvdXRlTWF0Y2hlZCwgdGhpcyk7XG5cdH1cblx0b25FeGl0KCkge1xuXHRcdHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Um91dGluZ1NlcnZpY2UoKS5kZXRhY2hBZnRlclJvdXRlTWF0Y2hlZCh0aGlzLl9vbkFmdGVyUm91dGVNYXRjaGVkLCB0aGlzKTtcblx0XHR0aGlzLm9Sb3V0ZXIgPSB1bmRlZmluZWQ7XG5cblx0XHRTaXplSGVscGVyLmV4aXQoKTtcblxuXHRcdC8vIERlc3Ryb3kgYWxsIEpTT04gbW9kZWxzIGNyZWF0ZWQgZHluYW1pY2FsbHkgZm9yIHRoZSB2aWV3c1xuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMuZm9yRWFjaChmdW5jdGlvbiAob01vZGVsOiBhbnkpIHtcblx0XHRcdG9Nb2RlbC5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyB0aGUgcmVzb3VyY2UgYnVuZGxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqIEByZXR1cm5zIFRoZSByZXNvdXJjZU1vZGVsIG9mIHRoZSBjb21wb25lbnRcblx0ICovXG5cdGdldFJlc291cmNlQnVuZGxlKCkge1xuXHRcdHJldHVybiAodGhpcy5nZXRPd25lckNvbXBvbmVudCgpLmdldE1vZGVsKFwiaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHR9XG5cdGdldFJvdXRlcigpIHtcblx0XHRpZiAoIXRoaXMub1JvdXRlcikge1xuXHRcdFx0dGhpcy5vUm91dGVyID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRSb3V0ZXIoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5vUm91dGVyO1xuXHR9XG5cblx0X2NyZWF0ZUhlbHBlck1vZGVsKCkge1xuXHRcdC8vIFdlIGtlZXAgYSByZWZlcmVuY2Ugb24gdGhlIG1vZGVscyBjcmVhdGVkIGR5bmFtaWNhbGx5LCBhcyB0aGV5IGRvbid0IGdldCBkZXN0cm95ZWRcblx0XHQvLyBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIHZpZXcgaXMgZGVzdHJveWVkLlxuXHRcdC8vIFRoaXMgaXMgZG9uZSBkdXJpbmcgb25FeGl0XG5cdFx0Y29uc3Qgb01vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMucHVzaChvTW9kZWwpO1xuXG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB3YWl0aW5nIGZvciB0aGUgUmlnaHQgbW9zdCB2aWV3IHRvIGJlIHJlYWR5LlxuXHQgKlxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuQmFzZUNvbnRyb2xsZXJcblx0ICogQHBhcmFtIG9FdmVudCBSZWZlcmVuY2UgYW4gRXZlbnQgcGFyYW1ldGVyIGNvbWluZyBmcm9tIHJvdXRlTWF0Y2hlZCBldmVudFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgaW5kaWNhdGluZyB3aGVuIHRoZSByaWdodCBtb3N0IHZpZXcgaXMgcmVhZHlcblx0ICovXG5cdHdhaXRGb3JSaWdodE1vc3RWaWV3UmVhZHkob0V2ZW50OiBhbnkpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG5cdFx0XHRjb25zdCBhQ29udGFpbmVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJ2aWV3c1wiKSxcblx0XHRcdFx0Ly8gVGhlcmUgY2FuIGFsc28gYmUgcmV1c2UgY29tcG9uZW50cyBpbiB0aGUgdmlldywgcmVtb3ZlIHRoZW0gYmVmb3JlIHByb2Nlc3NpbmcuXG5cdFx0XHRcdGFGRUNvbnRhaW5lcnM6IGFueVtdID0gW107XG5cdFx0XHRhQ29udGFpbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvQ29udGFpbmVyOiBhbnkpIHtcblx0XHRcdFx0bGV0IG9WaWV3ID0gb0NvbnRhaW5lcjtcblx0XHRcdFx0aWYgKG9Db250YWluZXIgJiYgb0NvbnRhaW5lci5nZXRDb21wb25lbnRJbnN0YW5jZSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db21wb25lbnRJbnN0YW5jZSA9IG9Db250YWluZXIuZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTtcblx0XHRcdFx0XHRvVmlldyA9IG9Db21wb25lbnRJbnN0YW5jZS5nZXRSb290Q29udHJvbCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCkgJiYgb1ZpZXcuZ2V0Q29udHJvbGxlcigpLnBhZ2VSZWFkeSkge1xuXHRcdFx0XHRcdGFGRUNvbnRhaW5lcnMucHVzaChvVmlldyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0Y29uc3Qgb1JpZ2h0TW9zdEZFVmlldyA9IGFGRUNvbnRhaW5lcnNbYUZFQ29udGFpbmVycy5sZW5ndGggLSAxXTtcblx0XHRcdGlmIChvUmlnaHRNb3N0RkVWaWV3ICYmIG9SaWdodE1vc3RGRVZpZXcuZ2V0Q29udHJvbGxlcigpLnBhZ2VSZWFkeS5pc1BhZ2VSZWFkeSgpKSB7XG5cdFx0XHRcdHJlc29sdmUob1JpZ2h0TW9zdEZFVmlldyk7XG5cdFx0XHR9IGVsc2UgaWYgKG9SaWdodE1vc3RGRVZpZXcpIHtcblx0XHRcdFx0b1JpZ2h0TW9zdEZFVmlldy5nZXRDb250cm9sbGVyKCkucGFnZVJlYWR5LmF0dGFjaEV2ZW50T25jZShcInBhZ2VSZWFkeVwiLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZShvUmlnaHRNb3N0RkVWaWV3KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBkb25lLlxuXHQgKiAgLSB1cGRhdGUgdGhlIHNoZWxsIHRpdGxlLlxuXHQgKiAgLSB1cGRhdGUgdGFibGUgc2Nyb2xsLlxuXHQgKiAgLSBjYWxsIG9uUGFnZVJlYWR5IG9uIHRoZSByaWdodE1vc3RWaWV3LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0V2ZW50XG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI19vbkFmdGVyUm91dGVNYXRjaGVkXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKi9cblx0X29uQWZ0ZXJSb3V0ZU1hdGNoZWQob0V2ZW50OiBhbnkpIHtcblx0XHRpZiAoIXRoaXMuX29Sb3V0ZU1hdGNoZWRQcm9taXNlKSB7XG5cdFx0XHR0aGlzLl9vUm91dGVNYXRjaGVkUHJvbWlzZSA9IHRoaXMud2FpdEZvclJpZ2h0TW9zdFZpZXdSZWFkeShvRXZlbnQpXG5cdFx0XHRcdC50aGVuKChvVmlldzogYW55KSA9PiB7XG5cdFx0XHRcdFx0Ly8gVGhlIGF1dG9Gb2N1cyBpcyBpbml0aWFsbHkgZGlzYWJsZWQgb24gdGhlIG5hdkNvbnRhaW5lciBvciB0aGUgRkNMLCBzbyB0aGF0IHRoZSBmb2N1cyBzdGF5cyBvbiB0aGUgU2hlbGwgbWVudVxuXHRcdFx0XHRcdC8vIGV2ZW4gaWYgdGhlIGFwcCB0YWtlcyBhIGxvbmcgdGltZSB0byBsYXVuY2hcblx0XHRcdFx0XHQvLyBUaGUgZmlyc3QgdGltZSB0aGUgdmlldyBpcyBkaXNwbGF5ZWQsIHdlIG5lZWQgdG8gZW5hYmxlIHRoZSBhdXRvZm9jdXMgc28gdGhhdCBpdCdzIG1hbmFnZWQgcHJvcGVybHkgZHVyaW5nIG5hdmlnYXRpb25cblx0XHRcdFx0XHRjb25zdCBvUm9vdENvbnRyb2wgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250ZW50KClbMF0gYXMgYW55O1xuXHRcdFx0XHRcdGlmIChvUm9vdENvbnRyb2wgJiYgb1Jvb3RDb250cm9sLmdldEF1dG9Gb2N1cyAmJiAhb1Jvb3RDb250cm9sLmdldEF1dG9Gb2N1cygpKSB7XG5cdFx0XHRcdFx0XHRvUm9vdENvbnRyb2wuc2V0UHJvcGVydHkoXCJhdXRvRm9jdXNcIiwgdHJ1ZSwgdHJ1ZSk7IC8vIERvIG5vdCBtYXJrIHRoZSBjb250YWluZXIgYXMgaW52YWxpZCwgb3RoZXJ3aXNlIGl0J3MgcmUtcmVuZGVyZWRcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRcdFx0XHR0aGlzLl9zY3JvbGxUYWJsZXNUb0xhc3ROYXZpZ2F0ZWRJdGVtcygpO1xuXHRcdFx0XHRcdGlmIChvQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuVVNoZWxsKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9jb21wdXRlVGl0bGVIaWVyYXJjaHkob1ZpZXcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBiRm9yY2VGb2N1cyA9IG9BcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKS5pc0ZvY3VzRm9yY2VkKCk7XG5cdFx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLnNldEZvY3VzRm9yY2VkKGZhbHNlKTsgLy8gcmVzZXRcblx0XHRcdFx0XHRpZiAob1ZpZXcuZ2V0Q29udHJvbGxlcigpICYmIG9WaWV3LmdldENvbnRyb2xsZXIoKS5vblBhZ2VSZWFkeSAmJiBvVmlldy5nZXRQYXJlbnQoKS5vblBhZ2VSZWFkeSkge1xuXHRcdFx0XHRcdFx0b1ZpZXcuZ2V0UGFyZW50KCkub25QYWdlUmVhZHkoeyBmb3JjZUZvY3VzOiBiRm9yY2VGb2N1cyB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHRoaXMub25Db250YWluZXJSZWFkeSkge1xuXHRcdFx0XHRcdFx0dGhpcy5vbkNvbnRhaW5lclJlYWR5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiQW4gZXJyb3Igb2NjdXJzIHdoaWxlIGNvbXB1dGluZyB0aGUgdGl0bGUgaGllcmFyY2h5IGFuZCBjYWxsaW5nIGZvY3VzIG1ldGhvZFwiLCBvRXJyb3IpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5fb1JvdXRlTWF0Y2hlZFByb21pc2UgPSBudWxsO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBUaXRsZUhpZXJhcmNoeSBjYWNoZSAoIG9yIGluaXRpYWxpemVzIGl0IGlmIHVuZGVmaW5lZCkuXG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI19nZXRUaXRsZUhpZXJhcmNoeUNhY2hlXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKiBAcmV0dXJucyAgVGhlIFRpdGxlSGllcmFyY2h5IGNhY2hlXG5cdCAqL1xuXHRfZ2V0VGl0bGVIaWVyYXJjaHlDYWNoZSgpIHtcblx0XHRpZiAoIXRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGUpIHtcblx0XHRcdHRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGUgPSB7fTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGU7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdGl0bGVJbmZvIG9iamVjdC5cblx0ICpcblx0ICogQG1lbWJlcm9mIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyXG5cdCAqIEBwYXJhbSB0aXRsZVxuXHQgKiBAcGFyYW0gc3VidGl0bGVcblx0ICogQHBhcmFtIHNJbnRlbnQgVGhlIGludGVudCBwYXRoIHRvIGJlIHJlZGlyZWN0ZWQgdG9cblx0ICogQHJldHVybnMgVGhlIHRpdGxlIGluZm9ybWF0aW9uXG5cdCAqL1xuXHRfY29tcHV0ZVRpdGxlSW5mbyh0aXRsZTogYW55LCBzdWJ0aXRsZTogYW55LCBzSW50ZW50OiBhbnkpIHtcblx0XHRjb25zdCBhUGFydHMgPSBzSW50ZW50LnNwbGl0KFwiL1wiKTtcblx0XHRpZiAoYVBhcnRzW2FQYXJ0cy5sZW5ndGggLSAxXS5pbmRleE9mKFwiP1wiKSA9PT0gLTEpIHtcblx0XHRcdHNJbnRlbnQgKz0gXCI/cmVzdG9yZUhpc3Rvcnk9dHJ1ZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzSW50ZW50ICs9IFwiJnJlc3RvcmVIaXN0b3J5PXRydWVcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRpdGxlOiB0aXRsZSxcblx0XHRcdHN1YnRpdGxlOiBzdWJ0aXRsZSxcblx0XHRcdGludGVudDogc0ludGVudCxcblx0XHRcdGljb246IFwiXCJcblx0XHR9O1xuXHR9XG5cdF9mb3JtYXRUaXRsZShkaXNwbGF5TW9kZTogc3RyaW5nLCB0aXRsZVZhbHVlOiBzdHJpbmcsIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0bGV0IGZvcm1hdHRlZFRpdGxlID0gXCJcIjtcblx0XHRzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG5cdFx0XHRjYXNlIFwiVmFsdWVcIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZVZhbHVlfWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIlZhbHVlRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZVZhbHVlfSAoJHt0aXRsZURlc2NyaXB0aW9ufSlgO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdGZvcm1hdHRlZFRpdGxlID0gYCR7dGl0bGVEZXNjcmlwdGlvbn0gKCR7dGl0bGVWYWx1ZX0pYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZURlc2NyaXB0aW9ufWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHR9XG5cdFx0cmV0dXJuIGZvcm1hdHRlZFRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZldGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBIZWFkZXJJbmZvIHRpdGxlIGZvciBhIGdpdmVuIHBhdGguXG5cdCAqXG5cdCAqIEBwYXJhbSBzUGF0aCBUaGUgcGF0aCB0byB0aGUgZW50aXR5XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBjb250YWluaW5nIHRoZSBmb3JtYXR0ZWQgdGl0bGUsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBubyBIZWFkZXJJbmZvIHRpdGxlIGFubm90YXRpb24gaXMgYXZhaWxhYmxlXG5cdCAqL1xuXHRhc3luYyBfZmV0Y2hUaXRsZVZhbHVlKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRcdG9Nb2RlbCA9IHRoaXMuZ2V0VmlldygpLmdldE1vZGVsKCksXG5cdFx0XHRvTWV0YU1vZGVsID0gb0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSxcblx0XHRcdHNNZXRhUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc1BhdGgpLFxuXHRcdFx0b0JpbmRpbmdWaWV3Q29udGV4dCA9IG9Nb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChzUGF0aCksXG5cdFx0XHRzVmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQoXG5cdFx0XHRcdG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NNZXRhUGF0aH0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckluZm8vVGl0bGUvVmFsdWVgKSxcblx0XHRcdFx0eyBjb250ZXh0OiBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSBhcyBDb250ZXh0IH1cblx0XHRcdCk7XG5cdFx0aWYgKCFzVmFsdWVFeHByZXNzaW9uKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFwiXCIpO1xuXHRcdH1cblx0XHRjb25zdCBzVGV4dEV4cHJlc3Npb24gPSBBbm5vdGF0aW9uSGVscGVyLmZvcm1hdChcblx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoXG5cdFx0XHRcdFx0YCR7c01ldGFQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVySW5mby9UaXRsZS9WYWx1ZS8kUGF0aEBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dGBcblx0XHRcdFx0KSxcblx0XHRcdFx0eyBjb250ZXh0OiBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSBhcyBDb250ZXh0IH1cblx0XHRcdCksXG5cdFx0XHRvUHJvcGVydHlDb250ZXh0ID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c01ldGFQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVySW5mby9UaXRsZS9WYWx1ZS8kUGF0aEBgKSxcblx0XHRcdGFQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW10sXG5cdFx0XHRvVmFsdWVFeHByZXNzaW9uID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKHNWYWx1ZUV4cHJlc3Npb24pLFxuXHRcdFx0b1Byb21pc2VGb3JEaXNwbGF5TW9kZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0XHRjb25zdCBkaXNwbGF5TW9kZSA9IENvbW1vblV0aWxzLmNvbXB1dGVEaXNwbGF5TW9kZShvUHJvcGVydHlDb250ZXh0KTtcblx0XHRcdFx0cmVzb2x2ZShkaXNwbGF5TW9kZSk7XG5cdFx0XHR9KTtcblx0XHRhUHJvbWlzZXMucHVzaChvUHJvbWlzZUZvckRpc3BsYXlNb2RlKTtcblx0XHRjb25zdCBzVmFsdWVQYXRoID0gb1ZhbHVlRXhwcmVzc2lvbi5wYXJ0cyA/IG9WYWx1ZUV4cHJlc3Npb24ucGFydHNbMF0ucGF0aCA6IG9WYWx1ZUV4cHJlc3Npb24ucGF0aCxcblx0XHRcdGZuVmFsdWVGb3JtYXR0ZXIgPSBvVmFsdWVFeHByZXNzaW9uLmZvcm1hdHRlcixcblx0XHRcdG9WYWx1ZUJpbmRpbmcgPSBvTW9kZWwuYmluZFByb3BlcnR5KHNWYWx1ZVBhdGgsIG9CaW5kaW5nVmlld0NvbnRleHQpO1xuXHRcdG9WYWx1ZUJpbmRpbmcuaW5pdGlhbGl6ZSgpO1xuXHRcdGNvbnN0IG9Qcm9taXNlRm9yVGl0bGVWYWx1ZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0Y29uc3QgZm5DaGFuZ2UgPSBmdW5jdGlvbiAob0V2ZW50OiBhbnkpIHtcblx0XHRcdFx0Y29uc3Qgc1RhcmdldFZhbHVlID0gZm5WYWx1ZUZvcm1hdHRlciA/IGZuVmFsdWVGb3JtYXR0ZXIob0V2ZW50LmdldFNvdXJjZSgpLmdldFZhbHVlKCkpIDogb0V2ZW50LmdldFNvdXJjZSgpLmdldFZhbHVlKCk7XG5cblx0XHRcdFx0b1ZhbHVlQmluZGluZy5kZXRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0XHRyZXNvbHZlKHNUYXJnZXRWYWx1ZSk7XG5cdFx0XHR9O1xuXHRcdFx0b1ZhbHVlQmluZGluZy5hdHRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdH0pO1xuXHRcdGFQcm9taXNlcy5wdXNoKG9Qcm9taXNlRm9yVGl0bGVWYWx1ZSk7XG5cblx0XHRpZiAoc1RleHRFeHByZXNzaW9uKSB7XG5cdFx0XHRjb25zdCBvVGV4dEV4cHJlc3Npb24gPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoc1RleHRFeHByZXNzaW9uKTtcblx0XHRcdGxldCBzVGV4dFBhdGggPSBvVGV4dEV4cHJlc3Npb24ucGFydHMgPyBvVGV4dEV4cHJlc3Npb24ucGFydHNbMF0ucGF0aCA6IG9UZXh0RXhwcmVzc2lvbi5wYXRoO1xuXHRcdFx0c1RleHRQYXRoID0gc1ZhbHVlUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgPiAtMSA/IHNWYWx1ZVBhdGguc2xpY2UoMCwgc1ZhbHVlUGF0aC5sYXN0SW5kZXhPZihcIi9cIikpICsgXCIvXCIgKyBzVGV4dFBhdGggOiBzVGV4dFBhdGg7XG5cdFx0XHRjb25zdCBmblRleHRGb3JtYXR0ZXIgPSBvVGV4dEV4cHJlc3Npb24uZm9ybWF0dGVyLFxuXHRcdFx0XHRvVGV4dEJpbmRpbmcgPSBvTW9kZWwuYmluZFByb3BlcnR5KHNUZXh0UGF0aCwgb0JpbmRpbmdWaWV3Q29udGV4dCk7XG5cdFx0XHRvVGV4dEJpbmRpbmcuaW5pdGlhbGl6ZSgpO1xuXHRcdFx0Y29uc3Qgb1Byb21pc2VGb3JUaXRsZVRleHQgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKGRlc2NyaXB0aW9uOiBhbnkpID0+IHZvaWQpIHtcblx0XHRcdFx0Y29uc3QgZm5DaGFuZ2UgPSBmdW5jdGlvbiAob0V2ZW50OiBhbnkpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFyZ2V0VGV4dCA9IGZuVGV4dEZvcm1hdHRlciA/IGZuVGV4dEZvcm1hdHRlcihvRXZlbnQuZ2V0U291cmNlKCkuZ2V0VmFsdWUoKSkgOiBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0VmFsdWUoKTtcblxuXHRcdFx0XHRcdG9UZXh0QmluZGluZy5kZXRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0XHRcdHJlc29sdmUoc1RhcmdldFRleHQpO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdG9UZXh0QmluZGluZy5hdHRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0fSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaChvUHJvbWlzZUZvclRpdGxlVGV4dCk7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCB0aXRsZUluZm86IGFueVtdID0gYXdhaXQgUHJvbWlzZS5hbGwoYVByb21pc2VzKTtcblx0XHRcdGxldCBmb3JtYXR0ZWRUaXRsZSA9IFwiXCI7XG5cdFx0XHRpZiAodHlwZW9mIHRpdGxlSW5mbyAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRmb3JtYXR0ZWRUaXRsZSA9IHRoaXMuX2Zvcm1hdFRpdGxlKHRpdGxlSW5mb1swXSwgdGl0bGVJbmZvWzFdLCB0aXRsZUluZm9bMl0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZvcm1hdHRlZFRpdGxlO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGZldGNoaW5nIHRoZSB0aXRsZSBmcm9tIHRoZSBoZWFkZXIgaW5mbyA6XCIgKyBlcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0X2dldEFwcFNwZWNpZmljSGFzaCgpIHtcblx0XHQvLyBIYXNoQ2hhbmdlZCBpc1NoZWxsTmF2aWdhdGlvbkhhc2hDaGFuZ2VyXG5cdFx0cmV0dXJuIChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHRcdDogXCJcIjtcblx0fVxuXG5cdF9nZXRIYXNoKCkge1xuXHRcdHJldHVybiBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGl0bGVJbmZvcm1hdGlvbiBmcm9tIGEgcGF0aC5cblx0ICogSXQgdXBkYXRlcyB0aGUgY2FjaGUgdG8gc3RvcmUgVGl0bGUgSW5mb3JtYXRpb24gaWYgbmVjZXNzYXJ5XG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI2dldFRpdGxlSW5mb0Zyb21QYXRoXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKiBAcGFyYW0geyp9IHNQYXRoIHBhdGggb2YgdGhlIGNvbnRleHQgdG8gcmV0cmlldmUgdGl0bGUgaW5mb3JtYXRpb24gZnJvbSBNZXRhTW9kZWxcblx0ICogQHJldHVybnMge1Byb21pc2V9ICBvVGl0bGVpbmZvcm1hdGlvbiByZXR1cm5lZCBhcyBwcm9taXNlXG5cdCAqL1xuXG5cdGdldFRpdGxlSW5mb0Zyb21QYXRoKHNQYXRoOiBhbnkpIHtcblx0XHRjb25zdCBvVGl0bGVIaWVyYXJjaHlDYWNoZSA9IHRoaXMuX2dldFRpdGxlSGllcmFyY2h5Q2FjaGUoKTtcblxuXHRcdGlmIChvVGl0bGVIaWVyYXJjaHlDYWNoZVtzUGF0aF0pIHtcblx0XHRcdC8vIFRoZSB0aXRsZSBpbmZvIGlzIGFscmVhZHkgc3RvcmVkIGluIHRoZSBjYWNoZVxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShvVGl0bGVIaWVyYXJjaHlDYWNoZVtzUGF0aF0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdGNvbnN0IHNFbnRpdHlQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aChzUGF0aCk7XG5cdFx0Y29uc3Qgc1R5cGVOYW1lID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGh9L0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJJbmZvL1R5cGVOYW1lYCk7XG5cdFx0Y29uc3Qgc0FwcFNwZWNpZmljSGFzaCA9IHRoaXMuX2dldEFwcFNwZWNpZmljSGFzaCgpO1xuXHRcdGNvbnN0IHNJbnRlbnQgPSBzQXBwU3BlY2lmaWNIYXNoICsgc1BhdGguc2xpY2UoMSk7XG5cdFx0cmV0dXJuIHRoaXMuX2ZldGNoVGl0bGVWYWx1ZShzUGF0aCkudGhlbigoc1RpdGxlOiBhbnkpID0+IHtcblx0XHRcdGNvbnN0IG9UaXRsZUluZm8gPSB0aGlzLl9jb21wdXRlVGl0bGVJbmZvKHNUeXBlTmFtZSwgc1RpdGxlLCBzSW50ZW50KTtcblx0XHRcdG9UaXRsZUhpZXJhcmNoeUNhY2hlW3NQYXRoXSA9IG9UaXRsZUluZm87XG5cdFx0XHRyZXR1cm4gb1RpdGxlSW5mbztcblx0XHR9KTtcblx0fVxuXHQvKipcblx0ICogRW5zdXJlIHRoYXQgdGhlIHVzaGVsbCBzZXJ2aWNlIHJlY2VpdmVzIGFsbCBlbGVtZW50c1xuXHQgKiAodGl0bGUsIHN1YnRpdGxlLCBpbnRlbnQsIGljb24pIGFzIHN0cmluZ3MuXG5cdCAqXG5cdCAqIEFubm90YXRpb24gSGVhZGVySW5mbyBhbGxvd3MgZm9yIGJpbmRpbmcgb2YgdGl0bGUgYW5kIGRlc2NyaXB0aW9uXG5cdCAqICh3aGljaCBhcmUgdXNlZCBoZXJlIGFzIHRpdGxlIGFuZCBzdWJ0aXRsZSkgdG8gYW55IGVsZW1lbnQgaW4gdGhlIGVudGl0eVxuXHQgKiAoYmVpbmcgcG9zc2libHkgdHlwZXMgbGlrZSBib29sZWFuLCB0aW1lc3RhbXAsIGRvdWJsZSwgZXRjLilcblx0ICpcblx0ICogQ3JlYXRlcyBhIG5ldyBoaWVyYXJjaHkgYW5kIGNvbnZlcnRzIG5vbi1zdHJpbmcgdHlwZXMgdG8gc3RyaW5nLlxuXHQgKlxuXHQgKiBAcGFyYW0gYUhpZXJhcmNoeSBTaGVsbCB0aXRsZSBoaWVyYXJjaHlcblx0ICogQHJldHVybnMgQ29weSBvZiBzaGVsbCB0aXRsZSBoaWVyYXJjaHkgY29udGFpbmluZyBhbGwgZWxlbWVudHMgYXMgc3RyaW5nc1xuXHQgKi9cblx0X2Vuc3VyZUhpZXJhcmNoeUVsZW1lbnRzQXJlU3RyaW5ncyhhSGllcmFyY2h5OiBhbnkpIHtcblx0XHRjb25zdCBhSGllcmFyY2h5U2hlbGwgPSBbXTtcblx0XHRmb3IgKGNvbnN0IGxldmVsIGluIGFIaWVyYXJjaHkpIHtcblx0XHRcdGNvbnN0IG9IaWVyYXJjaHkgPSBhSGllcmFyY2h5W2xldmVsXTtcblx0XHRcdGNvbnN0IG9TaGVsbEhpZXJhcmNoeTogYW55ID0ge307XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBpbiBvSGllcmFyY2h5KSB7XG5cdFx0XHRcdG9TaGVsbEhpZXJhcmNoeVtrZXldID0gdHlwZW9mIG9IaWVyYXJjaHlba2V5XSAhPT0gXCJzdHJpbmdcIiA/IFN0cmluZyhvSGllcmFyY2h5W2tleV0pIDogb0hpZXJhcmNoeVtrZXldO1xuXHRcdFx0fVxuXHRcdFx0YUhpZXJhcmNoeVNoZWxsLnB1c2gob1NoZWxsSGllcmFyY2h5KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFIaWVyYXJjaHlTaGVsbDtcblx0fVxuXG5cdF9nZXRUYXJnZXRUeXBlRnJvbUhhc2goc0hhc2g6IGFueSkge1xuXHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGxldCBzVGFyZ2V0VHlwZSA9IFwiXCI7XG5cblx0XHRjb25zdCBhUm91dGVzID0gb0FwcENvbXBvbmVudC5nZXRNYW5pZmVzdEVudHJ5KFwiL3NhcC51aTUvcm91dGluZy9yb3V0ZXNcIik7XG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBhUm91dGVzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRjb25zdCBvUm91dGUgPSBvQXBwQ29tcG9uZW50LmdldFJvdXRlcigpLmdldFJvdXRlKGFSb3V0ZXNbal0ubmFtZSk7XG5cdFx0XHRpZiAob1JvdXRlLm1hdGNoKHNIYXNoKSkge1xuXHRcdFx0XHRjb25zdCBzVGFyZ2V0ID0gQXJyYXkuaXNBcnJheShhUm91dGVzW2pdLnRhcmdldCkgPyBhUm91dGVzW2pdLnRhcmdldFswXSA6IGFSb3V0ZXNbal0udGFyZ2V0O1xuXHRcdFx0XHRzVGFyZ2V0VHlwZSA9IChvQXBwQ29tcG9uZW50LmdldFJvdXRlcigpLmdldFRhcmdldChzVGFyZ2V0KSBhcyBhbnkpLl9vT3B0aW9ucy5uYW1lO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gc1RhcmdldFR5cGU7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBpcyB1cGRhdGluZyB0aGUgc2hlbGwgdGl0bGUgYWZ0ZXIgZWFjaCBuYXZpZ2F0aW9uLlxuXHQgKlxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuQmFzZUNvbnRyb2xsZXJcblx0ICogQHBhcmFtIG9WaWV3IFRoZSBjdXJyZW50IHZpZXdcblx0ICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgbWVudSBpcyBmaWxsZWQgcHJvcGVybHlcblx0ICovXG5cdF9jb21wdXRlVGl0bGVIaWVyYXJjaHkob1ZpZXc6IGFueSkge1xuXHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLFxuXHRcdFx0b0NvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdFx0b0N1cnJlbnRQYWdlID0gb1ZpZXcuZ2V0UGFyZW50KCksXG5cdFx0XHRhVGl0bGVJbmZvcm1hdGlvblByb21pc2VzID0gW10sXG5cdFx0XHRzQXBwU3BlY2lmaWNIYXNoID0gdGhpcy5fZ2V0QXBwU3BlY2lmaWNIYXNoKCksXG5cdFx0XHRzQXBwVGl0bGUgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCkuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIikudGl0bGUgfHwgXCJcIixcblx0XHRcdHNBcHBTdWJUaXRsZSA9IG9BcHBDb21wb25lbnQuZ2V0TWV0YWRhdGEoKS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKS5hcHBTdWJUaXRsZSB8fCBcIlwiO1xuXHRcdGxldCBvUGFnZVRpdGxlSW5mb3JtYXRpb246IGFueSwgc05ld1BhdGg7XG5cblx0XHRpZiAob0N1cnJlbnRQYWdlICYmIG9DdXJyZW50UGFnZS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24pIHtcblx0XHRcdGlmIChvQ29udGV4dCkge1xuXHRcdFx0XHQvLyBJZiB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgYXBwbGljYXRpb24gaXMgYSBMUiwgdXNlIHRoZSB0aXRsZSBhbmQgc3VidGl0bGUgZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRcdFx0aWYgKHRoaXMuX2dldFRhcmdldFR5cGVGcm9tSGFzaChcIlwiKSA9PT0gXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnRcIikge1xuXHRcdFx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaChQcm9taXNlLnJlc29sdmUodGhpcy5fY29tcHV0ZVRpdGxlSW5mbyhzQXBwVGl0bGUsIHNBcHBTdWJUaXRsZSwgc0FwcFNwZWNpZmljSGFzaCkpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRoZW4gbWFuYWdlIG90aGVyIHBhZ2VzXG5cdFx0XHRcdHNOZXdQYXRoID0gb0NvbnRleHQuZ2V0UGF0aCgpO1xuXHRcdFx0XHRjb25zdCBhUGF0aFBhcnRzID0gc05ld1BhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0XHRsZXQgc1BhdGggPSBcIlwiO1xuXG5cdFx0XHRcdGFQYXRoUGFydHMuc2hpZnQoKTsgLy8gUmVtb3ZlIHRoZSBmaXJzdCBzZWdtZW50IChlbXB0eSBzdHJpbmcpIGFzIGl0IGhhcyBiZWVuIG1hbmFnZWQgYWJvdmVcblx0XHRcdFx0YVBhdGhQYXJ0cy5wb3AoKTsgLy8gUmVtb3ZlIHRoZSBsYXN0IHNlZ21lbnQgYXMgaXQgY29ycmVzcG9uZHMgdG8gdGhlIGN1cnJlbnQgcGFnZSBhbmQgc2hvdWxkbid0IGFwcGVhciBpbiB0aGUgbWVudVxuXG5cdFx0XHRcdGFQYXRoUGFydHMuZm9yRWFjaCgoc1BhdGhQYXJ0OiBhbnkpID0+IHtcblx0XHRcdFx0XHRzUGF0aCArPSBgLyR7c1BhdGhQYXJ0fWA7XG5cdFx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9BcHBDb21wb25lbnQuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0XHRzUGFyYW1ldGVyUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc1BhdGgpLFxuXHRcdFx0XHRcdFx0YklzUGFyYW1ldGVyaXplZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NQYXJhbWV0ZXJQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlJlc3VsdENvbnRleHRgKTtcblx0XHRcdFx0XHRpZiAoIWJJc1BhcmFtZXRlcml6ZWQpIHtcblx0XHRcdFx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaCh0aGlzLmdldFRpdGxlSW5mb0Zyb21QYXRoKHNQYXRoKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ3VycmVudCBwYWdlXG5cdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24gPSBvQ3VycmVudFBhZ2UuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24gPSB0aGlzLl9jb21wdXRlVGl0bGVJbmZvKFxuXHRcdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24udGl0bGUsXG5cdFx0XHRcdG9QYWdlVGl0bGVJbmZvcm1hdGlvbi5zdWJ0aXRsZSxcblx0XHRcdFx0c0FwcFNwZWNpZmljSGFzaCArIHRoaXMuX2dldEhhc2goKVxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKG9Db250ZXh0KSB7XG5cdFx0XHRcdHRoaXMuX2dldFRpdGxlSGllcmFyY2h5Q2FjaGUoKVtzTmV3UGF0aF0gPSBvUGFnZVRpdGxlSW5mb3JtYXRpb247XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9nZXRUaXRsZUhpZXJhcmNoeUNhY2hlKClbc0FwcFNwZWNpZmljSGFzaF0gPSBvUGFnZVRpdGxlSW5mb3JtYXRpb247XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaChQcm9taXNlLnJlamVjdChcIlRpdGxlIGluZm9ybWF0aW9uIG1pc3NpbmcgaW4gSGVhZGVySW5mb1wiKSk7XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhVGl0bGVJbmZvcm1hdGlvblByb21pc2VzKVxuXHRcdFx0LnRoZW4oKGFUaXRsZUluZm9IaWVyYXJjaHk6IGFueVtdKSA9PiB7XG5cdFx0XHRcdC8vIHdvcmthcm91bmQgZm9yIHNoZWxsIHdoaWNoIGlzIGV4cGVjdGluZyBhbGwgZWxlbWVudHMgYmVpbmcgb2YgdHlwZSBzdHJpbmdcblx0XHRcdFx0Y29uc3QgYVRpdGxlSW5mb0hpZXJhcmNoeVNoZWxsID0gdGhpcy5fZW5zdXJlSGllcmFyY2h5RWxlbWVudHNBcmVTdHJpbmdzKGFUaXRsZUluZm9IaWVyYXJjaHkpLFxuXHRcdFx0XHRcdHNUaXRsZSA9IG9QYWdlVGl0bGVJbmZvcm1hdGlvbi50aXRsZTtcblx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXRTaGVsbFNlcnZpY2VzKCkuc2V0SGllcmFyY2h5KGFUaXRsZUluZm9IaWVyYXJjaHlTaGVsbC5yZXZlcnNlKCkpO1xuXHRcdFx0XHRvQXBwQ29tcG9uZW50LmdldFNoZWxsU2VydmljZXMoKS5zZXRUaXRsZShzVGl0bGUpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yTWVzc2FnZTogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihzRXJyb3JNZXNzYWdlKTtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeSA9IGZhbHNlO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yTWVzc2FnZTogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihzRXJyb3JNZXNzYWdlKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRjYWxjdWxhdGVMYXlvdXQoaU5leHRGQ0xMZXZlbDogbnVtYmVyLCBzSGFzaDogc3RyaW5nLCBzUHJvcG9zZWRMYXlvdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCwga2VlcEN1cnJlbnRMYXlvdXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayBhZnRlciBhIHZpZXcgaGFzIGJlZW4gYm91bmQgdG8gYSBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBoYXMgYmVlbiBib3VuZCB0byBhIHZpZXdcblx0ICovXG5cdG9uQ29udGV4dEJvdW5kVG9WaWV3KG9Db250ZXh0OiBhbnkpIHtcblx0XHRpZiAob0NvbnRleHQpIHtcblx0XHRcdGNvbnN0IHNEZWVwZXN0UGF0aCA9IHRoaXMuZ2V0VmlldygpLmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvZGVlcGVzdFBhdGhcIiksXG5cdFx0XHRcdHNWaWV3Q29udGV4dFBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCk7XG5cblx0XHRcdGlmICghc0RlZXBlc3RQYXRoIHx8IHNEZWVwZXN0UGF0aC5pbmRleE9mKHNWaWV3Q29udGV4dFBhdGgpICE9PSAwKSB7XG5cdFx0XHRcdC8vIFRoZXJlIHdhcyBubyBwcmV2aW91cyB2YWx1ZSBmb3IgdGhlIGRlZXBlc3QgcmVhY2hlZCBwYXRoLCBvciB0aGUgcGF0aFxuXHRcdFx0XHQvLyBmb3IgdGhlIHZpZXcgaXNuJ3QgYSBzdWJwYXRoIG9mIHRoZSBwcmV2aW91cyBkZWVwZXN0IHBhdGggLS0+IHVwZGF0ZVxuXHRcdFx0XHQodGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwpLnNldFByb3BlcnR5KFwiL2RlZXBlc3RQYXRoXCIsIHNWaWV3Q29udGV4dFBhdGgsIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRkaXNwbGF5TWVzc2FnZVBhZ2Uoc0Vycm9yTWVzc2FnZTogYW55LCBtUGFyYW1ldGVyczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Ly8gVG8gYmUgb3ZlcnJpZGRlblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHVwZGF0ZVVJU3RhdGVGb3JWaWV3KG9WaWV3OiBhbnksIEZDTExldmVsOiBhbnkpIHtcblx0XHQvLyBUbyBiZSBvdmVycmlkZW5cblx0fVxuXHRfc2Nyb2xsVGFibGVzVG9MYXN0TmF2aWdhdGVkSXRlbXMoKTogdm9pZCB7XG5cdFx0Ly8gVG8gYmUgb3ZlcnJpZGVuXG5cdH1cbn1cbmludGVyZmFjZSBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXIge1xuXHRvbkNvbnRhaW5lclJlYWR5PygpOiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXI7XG4iXX0=
575
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiUm9vdENvbnRhaW5lckJhc2VDb250cm9sbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJ1c2luZ0V4dGVuc2lvbiIsIlBsYWNlaG9sZGVyIiwiYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeSIsIm9uSW5pdCIsIlNpemVIZWxwZXIiLCJpbml0IiwiX2FIZWxwZXJNb2RlbHMiLCJnZXRQbGFjZWhvbGRlciIsIm9QbGFjZWhvbGRlciIsImF0dGFjaFJvdXRlTWF0Y2hlcnMiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRSb3V0aW5nU2VydmljZSIsImF0dGFjaEFmdGVyUm91dGVNYXRjaGVkIiwiX29uQWZ0ZXJSb3V0ZU1hdGNoZWQiLCJvbkV4aXQiLCJkZXRhY2hBZnRlclJvdXRlTWF0Y2hlZCIsIm9Sb3V0ZXIiLCJ1bmRlZmluZWQiLCJleGl0IiwiZm9yRWFjaCIsIm9Nb2RlbCIsImRlc3Ryb3kiLCJnZXRSZXNvdXJjZUJ1bmRsZSIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0TW9kZWwiLCJnZXRSb3V0ZXIiLCJfY3JlYXRlSGVscGVyTW9kZWwiLCJKU09OTW9kZWwiLCJwdXNoIiwid2FpdEZvclJpZ2h0TW9zdFZpZXdSZWFkeSIsIm9FdmVudCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYUNvbnRhaW5lcnMiLCJnZXRQYXJhbWV0ZXIiLCJhRkVDb250YWluZXJzIiwib0NvbnRhaW5lciIsIm9WaWV3IiwiZ2V0Q29tcG9uZW50SW5zdGFuY2UiLCJvQ29tcG9uZW50SW5zdGFuY2UiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJwYWdlUmVhZHkiLCJvUmlnaHRNb3N0RkVWaWV3IiwibGVuZ3RoIiwiaXNQYWdlUmVhZHkiLCJhdHRhY2hFdmVudE9uY2UiLCJfb1JvdXRlTWF0Y2hlZFByb21pc2UiLCJvUm9vdENvbnRyb2wiLCJnZXRWaWV3IiwiZ2V0Q29udGVudCIsImdldEF1dG9Gb2N1cyIsInNldFByb3BlcnR5Iiwib0FwcENvbXBvbmVudCIsIl9zY3JvbGxUYWJsZXNUb0xhc3ROYXZpZ2F0ZWRJdGVtcyIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiVVNoZWxsIiwiX2NvbXB1dGVUaXRsZUhpZXJhcmNoeSIsImJGb3JjZUZvY3VzIiwiZ2V0Um91dGVyUHJveHkiLCJpc0ZvY3VzRm9yY2VkIiwic2V0Rm9jdXNGb3JjZWQiLCJvblBhZ2VSZWFkeSIsImdldFBhcmVudCIsImZvcmNlRm9jdXMiLCJvbkNvbnRhaW5lclJlYWR5IiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImZpbmFsbHkiLCJfZ2V0VGl0bGVIaWVyYXJjaHlDYWNoZSIsIm9UaXRsZUhpZXJhcmNoeUNhY2hlIiwiX2NvbXB1dGVUaXRsZUluZm8iLCJ0aXRsZSIsInN1YnRpdGxlIiwic0ludGVudCIsImFQYXJ0cyIsInNwbGl0IiwiaW5kZXhPZiIsImludGVudCIsImljb24iLCJfZm9ybWF0VGl0bGUiLCJkaXNwbGF5TW9kZSIsInRpdGxlVmFsdWUiLCJ0aXRsZURlc2NyaXB0aW9uIiwiZm9ybWF0dGVkVGl0bGUiLCJfZmV0Y2hUaXRsZVZhbHVlIiwic1BhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic01ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJvQmluZGluZ1ZpZXdDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJzVmFsdWVFeHByZXNzaW9uIiwiQW5ub3RhdGlvbkhlbHBlciIsImZvcm1hdCIsImdldE9iamVjdCIsImNvbnRleHQiLCJzVGV4dEV4cHJlc3Npb24iLCJvUHJvcGVydHlDb250ZXh0IiwiYVByb21pc2VzIiwib1ZhbHVlRXhwcmVzc2lvbiIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwib1Byb21pc2VGb3JEaXNwbGF5TW9kZSIsIkNvbW1vblV0aWxzIiwiY29tcHV0ZURpc3BsYXlNb2RlIiwic1ZhbHVlUGF0aCIsInBhcnRzIiwicGF0aCIsImZuVmFsdWVGb3JtYXR0ZXIiLCJmb3JtYXR0ZXIiLCJvVmFsdWVCaW5kaW5nIiwiYmluZFByb3BlcnR5IiwiaW5pdGlhbGl6ZSIsIm9Qcm9taXNlRm9yVGl0bGVWYWx1ZSIsImZuQ2hhbmdlIiwic1RhcmdldFZhbHVlIiwiZ2V0U291cmNlIiwiZ2V0VmFsdWUiLCJkZXRhY2hDaGFuZ2UiLCJhdHRhY2hDaGFuZ2UiLCJvVGV4dEV4cHJlc3Npb24iLCJzVGV4dFBhdGgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiZm5UZXh0Rm9ybWF0dGVyIiwib1RleHRCaW5kaW5nIiwib1Byb21pc2VGb3JUaXRsZVRleHQiLCJzVGFyZ2V0VGV4dCIsImFsbCIsInRpdGxlSW5mbyIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsIl9nZXRIYXNoIiwiZ2V0SGFzaCIsImdldFRpdGxlSW5mb0Zyb21QYXRoIiwic0VudGl0eVBhdGgiLCJzVHlwZU5hbWUiLCJzQXBwU3BlY2lmaWNIYXNoIiwic1RpdGxlIiwib1RpdGxlSW5mbyIsIl9lbnN1cmVIaWVyYXJjaHlFbGVtZW50c0FyZVN0cmluZ3MiLCJhSGllcmFyY2h5IiwiYUhpZXJhcmNoeVNoZWxsIiwibGV2ZWwiLCJvSGllcmFyY2h5Iiwib1NoZWxsSGllcmFyY2h5Iiwia2V5IiwiU3RyaW5nIiwiX2dldFRhcmdldFR5cGVGcm9tSGFzaCIsInNIYXNoIiwic1RhcmdldFR5cGUiLCJhUm91dGVzIiwiZ2V0TWFuaWZlc3RFbnRyeSIsImoiLCJvUm91dGUiLCJnZXRSb3V0ZSIsIm5hbWUiLCJtYXRjaCIsInNUYXJnZXQiLCJBcnJheSIsImlzQXJyYXkiLCJ0YXJnZXQiLCJnZXRUYXJnZXQiLCJfb09wdGlvbnMiLCJvQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib0N1cnJlbnRQYWdlIiwiYVRpdGxlSW5mb3JtYXRpb25Qcm9taXNlcyIsInNBcHBUaXRsZSIsImdldE1ldGFkYXRhIiwic0FwcFN1YlRpdGxlIiwiYXBwU3ViVGl0bGUiLCJvUGFnZVRpdGxlSW5mb3JtYXRpb24iLCJzTmV3UGF0aCIsIl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbiIsImdldFBhdGgiLCJhUGF0aFBhcnRzIiwic2hpZnQiLCJwb3AiLCJzUGF0aFBhcnQiLCJzUGFyYW1ldGVyUGF0aCIsImJJc1BhcmFtZXRlcml6ZWQiLCJyZWplY3QiLCJhVGl0bGVJbmZvSGllcmFyY2h5IiwiYVRpdGxlSW5mb0hpZXJhcmNoeVNoZWxsIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsInNldEhpZXJhcmNoeSIsInJldmVyc2UiLCJzZXRUaXRsZSIsInNFcnJvck1lc3NhZ2UiLCJjYWxjdWxhdGVMYXlvdXQiLCJpTmV4dEZDTExldmVsIiwic1Byb3Bvc2VkTGF5b3V0Iiwia2VlcEN1cnJlbnRMYXlvdXQiLCJvbkNvbnRleHRCb3VuZFRvVmlldyIsInNEZWVwZXN0UGF0aCIsImdldFByb3BlcnR5Iiwic1ZpZXdDb250ZXh0UGF0aCIsImRpc3BsYXlNZXNzYWdlUGFnZSIsIm1QYXJhbWV0ZXJzIiwidXBkYXRlVUlTdGF0ZUZvclZpZXciLCJGQ0xMZXZlbCIsIkJhc2VDb250cm9sbGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQmFzZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgUGxhY2Vob2xkZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgdXNpbmdFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBTaXplSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL1NpemVIZWxwZXJcIjtcbmltcG9ydCBCaW5kaW5nUGFyc2VyIGZyb20gXCJzYXAvdWkvYmFzZS9CaW5kaW5nUGFyc2VyXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCB0eXBlIFJvdXRlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9Sb3V0ZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBBbm5vdGF0aW9uSGVscGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQW5ub3RhdGlvbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL3Jlc291cmNlL1Jlc291cmNlTW9kZWxcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuUm9vdENvbnRhaW5lckJhc2VDb250cm9sbGVyXCIpXG5jbGFzcyBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXIgZXh0ZW5kcyBCYXNlQ29udHJvbGxlciB7XG5cdEB1c2luZ0V4dGVuc2lvbihQbGFjZWhvbGRlcilcblx0b1BsYWNlaG9sZGVyITogUGxhY2Vob2xkZXI7XG5cdHByaXZhdGUgX2FIZWxwZXJNb2RlbHMhOiBhbnlbXTtcblx0cHJpdmF0ZSBvUm91dGVyPzogUm91dGVyO1xuXHRwcml2YXRlIF9vUm91dGVNYXRjaGVkUHJvbWlzZTogYW55O1xuXHRwcml2YXRlIG9UaXRsZUhpZXJhcmNoeUNhY2hlOiBhbnk7XG5cdHByaXZhdGUgYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdG9uSW5pdCgpIHtcblx0XHRTaXplSGVscGVyLmluaXQoKTtcblxuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMgPSBbXTtcblx0fVxuXG5cdGdldFBsYWNlaG9sZGVyKCkge1xuXHRcdHJldHVybiB0aGlzLm9QbGFjZWhvbGRlcjtcblx0fVxuXHRhdHRhY2hSb3V0ZU1hdGNoZXJzKCkge1xuXHRcdHRoaXMub1BsYWNlaG9sZGVyLmF0dGFjaFJvdXRlTWF0Y2hlcnMoKTtcblx0XHR0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldFJvdXRpbmdTZXJ2aWNlKCkuYXR0YWNoQWZ0ZXJSb3V0ZU1hdGNoZWQodGhpcy5fb25BZnRlclJvdXRlTWF0Y2hlZCwgdGhpcyk7XG5cdH1cblx0b25FeGl0KCkge1xuXHRcdHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Um91dGluZ1NlcnZpY2UoKS5kZXRhY2hBZnRlclJvdXRlTWF0Y2hlZCh0aGlzLl9vbkFmdGVyUm91dGVNYXRjaGVkLCB0aGlzKTtcblx0XHR0aGlzLm9Sb3V0ZXIgPSB1bmRlZmluZWQ7XG5cblx0XHRTaXplSGVscGVyLmV4aXQoKTtcblxuXHRcdC8vIERlc3Ryb3kgYWxsIEpTT04gbW9kZWxzIGNyZWF0ZWQgZHluYW1pY2FsbHkgZm9yIHRoZSB2aWV3c1xuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMuZm9yRWFjaChmdW5jdGlvbiAob01vZGVsOiBhbnkpIHtcblx0XHRcdG9Nb2RlbC5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyB0aGUgcmVzb3VyY2UgYnVuZGxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqIEByZXR1cm5zIFRoZSByZXNvdXJjZU1vZGVsIG9mIHRoZSBjb21wb25lbnRcblx0ICovXG5cdGdldFJlc291cmNlQnVuZGxlKCkge1xuXHRcdHJldHVybiAodGhpcy5nZXRPd25lckNvbXBvbmVudCgpLmdldE1vZGVsKFwiaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHR9XG5cdGdldFJvdXRlcigpIHtcblx0XHRpZiAoIXRoaXMub1JvdXRlcikge1xuXHRcdFx0dGhpcy5vUm91dGVyID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRSb3V0ZXIoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5vUm91dGVyO1xuXHR9XG5cblx0X2NyZWF0ZUhlbHBlck1vZGVsKCkge1xuXHRcdC8vIFdlIGtlZXAgYSByZWZlcmVuY2Ugb24gdGhlIG1vZGVscyBjcmVhdGVkIGR5bmFtaWNhbGx5LCBhcyB0aGV5IGRvbid0IGdldCBkZXN0cm95ZWRcblx0XHQvLyBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIHZpZXcgaXMgZGVzdHJveWVkLlxuXHRcdC8vIFRoaXMgaXMgZG9uZSBkdXJpbmcgb25FeGl0XG5cdFx0Y29uc3Qgb01vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdHRoaXMuX2FIZWxwZXJNb2RlbHMucHVzaChvTW9kZWwpO1xuXG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB3YWl0aW5nIGZvciB0aGUgUmlnaHQgbW9zdCB2aWV3IHRvIGJlIHJlYWR5LlxuXHQgKlxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuQmFzZUNvbnRyb2xsZXJcblx0ICogQHBhcmFtIG9FdmVudCBSZWZlcmVuY2UgYW4gRXZlbnQgcGFyYW1ldGVyIGNvbWluZyBmcm9tIHJvdXRlTWF0Y2hlZCBldmVudFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgaW5kaWNhdGluZyB3aGVuIHRoZSByaWdodCBtb3N0IHZpZXcgaXMgcmVhZHlcblx0ICovXG5cdHdhaXRGb3JSaWdodE1vc3RWaWV3UmVhZHkob0V2ZW50OiBhbnkpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG5cdFx0XHRjb25zdCBhQ29udGFpbmVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJ2aWV3c1wiKSxcblx0XHRcdFx0Ly8gVGhlcmUgY2FuIGFsc28gYmUgcmV1c2UgY29tcG9uZW50cyBpbiB0aGUgdmlldywgcmVtb3ZlIHRoZW0gYmVmb3JlIHByb2Nlc3NpbmcuXG5cdFx0XHRcdGFGRUNvbnRhaW5lcnM6IGFueVtdID0gW107XG5cdFx0XHRhQ29udGFpbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvQ29udGFpbmVyOiBhbnkpIHtcblx0XHRcdFx0bGV0IG9WaWV3ID0gb0NvbnRhaW5lcjtcblx0XHRcdFx0aWYgKG9Db250YWluZXIgJiYgb0NvbnRhaW5lci5nZXRDb21wb25lbnRJbnN0YW5jZSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db21wb25lbnRJbnN0YW5jZSA9IG9Db250YWluZXIuZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTtcblx0XHRcdFx0XHRvVmlldyA9IG9Db21wb25lbnRJbnN0YW5jZS5nZXRSb290Q29udHJvbCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCkgJiYgb1ZpZXcuZ2V0Q29udHJvbGxlcigpLnBhZ2VSZWFkeSkge1xuXHRcdFx0XHRcdGFGRUNvbnRhaW5lcnMucHVzaChvVmlldyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0Y29uc3Qgb1JpZ2h0TW9zdEZFVmlldyA9IGFGRUNvbnRhaW5lcnNbYUZFQ29udGFpbmVycy5sZW5ndGggLSAxXTtcblx0XHRcdGlmIChvUmlnaHRNb3N0RkVWaWV3ICYmIG9SaWdodE1vc3RGRVZpZXcuZ2V0Q29udHJvbGxlcigpLnBhZ2VSZWFkeS5pc1BhZ2VSZWFkeSgpKSB7XG5cdFx0XHRcdHJlc29sdmUob1JpZ2h0TW9zdEZFVmlldyk7XG5cdFx0XHR9IGVsc2UgaWYgKG9SaWdodE1vc3RGRVZpZXcpIHtcblx0XHRcdFx0b1JpZ2h0TW9zdEZFVmlldy5nZXRDb250cm9sbGVyKCkucGFnZVJlYWR5LmF0dGFjaEV2ZW50T25jZShcInBhZ2VSZWFkeVwiLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZShvUmlnaHRNb3N0RkVWaWV3KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBkb25lLlxuXHQgKiAgLSB1cGRhdGUgdGhlIHNoZWxsIHRpdGxlLlxuXHQgKiAgLSB1cGRhdGUgdGFibGUgc2Nyb2xsLlxuXHQgKiAgLSBjYWxsIG9uUGFnZVJlYWR5IG9uIHRoZSByaWdodE1vc3RWaWV3LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0V2ZW50XG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI19vbkFmdGVyUm91dGVNYXRjaGVkXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKi9cblx0X29uQWZ0ZXJSb3V0ZU1hdGNoZWQob0V2ZW50OiBhbnkpIHtcblx0XHRpZiAoIXRoaXMuX29Sb3V0ZU1hdGNoZWRQcm9taXNlKSB7XG5cdFx0XHR0aGlzLl9vUm91dGVNYXRjaGVkUHJvbWlzZSA9IHRoaXMud2FpdEZvclJpZ2h0TW9zdFZpZXdSZWFkeShvRXZlbnQpXG5cdFx0XHRcdC50aGVuKChvVmlldzogYW55KSA9PiB7XG5cdFx0XHRcdFx0Ly8gVGhlIGF1dG9Gb2N1cyBpcyBpbml0aWFsbHkgZGlzYWJsZWQgb24gdGhlIG5hdkNvbnRhaW5lciBvciB0aGUgRkNMLCBzbyB0aGF0IHRoZSBmb2N1cyBzdGF5cyBvbiB0aGUgU2hlbGwgbWVudVxuXHRcdFx0XHRcdC8vIGV2ZW4gaWYgdGhlIGFwcCB0YWtlcyBhIGxvbmcgdGltZSB0byBsYXVuY2hcblx0XHRcdFx0XHQvLyBUaGUgZmlyc3QgdGltZSB0aGUgdmlldyBpcyBkaXNwbGF5ZWQsIHdlIG5lZWQgdG8gZW5hYmxlIHRoZSBhdXRvZm9jdXMgc28gdGhhdCBpdCdzIG1hbmFnZWQgcHJvcGVybHkgZHVyaW5nIG5hdmlnYXRpb25cblx0XHRcdFx0XHRjb25zdCBvUm9vdENvbnRyb2wgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250ZW50KClbMF0gYXMgYW55O1xuXHRcdFx0XHRcdGlmIChvUm9vdENvbnRyb2wgJiYgb1Jvb3RDb250cm9sLmdldEF1dG9Gb2N1cyAmJiAhb1Jvb3RDb250cm9sLmdldEF1dG9Gb2N1cygpKSB7XG5cdFx0XHRcdFx0XHRvUm9vdENvbnRyb2wuc2V0UHJvcGVydHkoXCJhdXRvRm9jdXNcIiwgdHJ1ZSwgdHJ1ZSk7IC8vIERvIG5vdCBtYXJrIHRoZSBjb250YWluZXIgYXMgaW52YWxpZCwgb3RoZXJ3aXNlIGl0J3MgcmUtcmVuZGVyZWRcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRcdFx0XHR0aGlzLl9zY3JvbGxUYWJsZXNUb0xhc3ROYXZpZ2F0ZWRJdGVtcygpO1xuXHRcdFx0XHRcdGlmIChvQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuVVNoZWxsKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9jb21wdXRlVGl0bGVIaWVyYXJjaHkob1ZpZXcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBiRm9yY2VGb2N1cyA9IG9BcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKS5pc0ZvY3VzRm9yY2VkKCk7XG5cdFx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLnNldEZvY3VzRm9yY2VkKGZhbHNlKTsgLy8gcmVzZXRcblx0XHRcdFx0XHRpZiAob1ZpZXcuZ2V0Q29udHJvbGxlcigpICYmIG9WaWV3LmdldENvbnRyb2xsZXIoKS5vblBhZ2VSZWFkeSAmJiBvVmlldy5nZXRQYXJlbnQoKS5vblBhZ2VSZWFkeSkge1xuXHRcdFx0XHRcdFx0b1ZpZXcuZ2V0UGFyZW50KCkub25QYWdlUmVhZHkoeyBmb3JjZUZvY3VzOiBiRm9yY2VGb2N1cyB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHRoaXMub25Db250YWluZXJSZWFkeSkge1xuXHRcdFx0XHRcdFx0dGhpcy5vbkNvbnRhaW5lclJlYWR5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiQW4gZXJyb3Igb2NjdXJzIHdoaWxlIGNvbXB1dGluZyB0aGUgdGl0bGUgaGllcmFyY2h5IGFuZCBjYWxsaW5nIGZvY3VzIG1ldGhvZFwiLCBvRXJyb3IpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5fb1JvdXRlTWF0Y2hlZFByb21pc2UgPSBudWxsO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBUaXRsZUhpZXJhcmNoeSBjYWNoZSAoIG9yIGluaXRpYWxpemVzIGl0IGlmIHVuZGVmaW5lZCkuXG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI19nZXRUaXRsZUhpZXJhcmNoeUNhY2hlXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKiBAcmV0dXJucyAgVGhlIFRpdGxlSGllcmFyY2h5IGNhY2hlXG5cdCAqL1xuXHRfZ2V0VGl0bGVIaWVyYXJjaHlDYWNoZSgpIHtcblx0XHRpZiAoIXRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGUpIHtcblx0XHRcdHRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGUgPSB7fTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMub1RpdGxlSGllcmFyY2h5Q2FjaGU7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdGl0bGVJbmZvIG9iamVjdC5cblx0ICpcblx0ICogQG1lbWJlcm9mIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyXG5cdCAqIEBwYXJhbSB0aXRsZVxuXHQgKiBAcGFyYW0gc3VidGl0bGVcblx0ICogQHBhcmFtIHNJbnRlbnQgVGhlIGludGVudCBwYXRoIHRvIGJlIHJlZGlyZWN0ZWQgdG9cblx0ICogQHJldHVybnMgVGhlIHRpdGxlIGluZm9ybWF0aW9uXG5cdCAqL1xuXHRfY29tcHV0ZVRpdGxlSW5mbyh0aXRsZTogYW55LCBzdWJ0aXRsZTogYW55LCBzSW50ZW50OiBhbnkpIHtcblx0XHRjb25zdCBhUGFydHMgPSBzSW50ZW50LnNwbGl0KFwiL1wiKTtcblx0XHRpZiAoYVBhcnRzW2FQYXJ0cy5sZW5ndGggLSAxXS5pbmRleE9mKFwiP1wiKSA9PT0gLTEpIHtcblx0XHRcdHNJbnRlbnQgKz0gXCI/cmVzdG9yZUhpc3Rvcnk9dHJ1ZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzSW50ZW50ICs9IFwiJnJlc3RvcmVIaXN0b3J5PXRydWVcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRpdGxlOiB0aXRsZSxcblx0XHRcdHN1YnRpdGxlOiBzdWJ0aXRsZSxcblx0XHRcdGludGVudDogc0ludGVudCxcblx0XHRcdGljb246IFwiXCJcblx0XHR9O1xuXHR9XG5cdF9mb3JtYXRUaXRsZShkaXNwbGF5TW9kZTogc3RyaW5nLCB0aXRsZVZhbHVlOiBzdHJpbmcsIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0bGV0IGZvcm1hdHRlZFRpdGxlID0gXCJcIjtcblx0XHRzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG5cdFx0XHRjYXNlIFwiVmFsdWVcIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZVZhbHVlfWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIlZhbHVlRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZVZhbHVlfSAoJHt0aXRsZURlc2NyaXB0aW9ufSlgO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdGZvcm1hdHRlZFRpdGxlID0gYCR7dGl0bGVEZXNjcmlwdGlvbn0gKCR7dGl0bGVWYWx1ZX0pYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0Zm9ybWF0dGVkVGl0bGUgPSBgJHt0aXRsZURlc2NyaXB0aW9ufWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHR9XG5cdFx0cmV0dXJuIGZvcm1hdHRlZFRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZldGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBIZWFkZXJJbmZvIHRpdGxlIGZvciBhIGdpdmVuIHBhdGguXG5cdCAqXG5cdCAqIEBwYXJhbSBzUGF0aCBUaGUgcGF0aCB0byB0aGUgZW50aXR5XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBjb250YWluaW5nIHRoZSBmb3JtYXR0ZWQgdGl0bGUsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBubyBIZWFkZXJJbmZvIHRpdGxlIGFubm90YXRpb24gaXMgYXZhaWxhYmxlXG5cdCAqL1xuXHRhc3luYyBfZmV0Y2hUaXRsZVZhbHVlKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRcdG9Nb2RlbCA9IHRoaXMuZ2V0VmlldygpLmdldE1vZGVsKCksXG5cdFx0XHRvTWV0YU1vZGVsID0gb0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSxcblx0XHRcdHNNZXRhUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc1BhdGgpLFxuXHRcdFx0b0JpbmRpbmdWaWV3Q29udGV4dCA9IG9Nb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChzUGF0aCksXG5cdFx0XHRzVmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQoXG5cdFx0XHRcdG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NNZXRhUGF0aH0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckluZm8vVGl0bGUvVmFsdWVgKSxcblx0XHRcdFx0eyBjb250ZXh0OiBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSBhcyBDb250ZXh0IH1cblx0XHRcdCk7XG5cdFx0aWYgKCFzVmFsdWVFeHByZXNzaW9uKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFwiXCIpO1xuXHRcdH1cblx0XHRjb25zdCBzVGV4dEV4cHJlc3Npb24gPSBBbm5vdGF0aW9uSGVscGVyLmZvcm1hdChcblx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoXG5cdFx0XHRcdFx0YCR7c01ldGFQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVySW5mby9UaXRsZS9WYWx1ZS8kUGF0aEBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dGBcblx0XHRcdFx0KSxcblx0XHRcdFx0eyBjb250ZXh0OiBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSBhcyBDb250ZXh0IH1cblx0XHRcdCksXG5cdFx0XHRvUHJvcGVydHlDb250ZXh0ID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c01ldGFQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVySW5mby9UaXRsZS9WYWx1ZS8kUGF0aEBgKSxcblx0XHRcdGFQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW10sXG5cdFx0XHRvVmFsdWVFeHByZXNzaW9uID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKHNWYWx1ZUV4cHJlc3Npb24pLFxuXHRcdFx0b1Byb21pc2VGb3JEaXNwbGF5TW9kZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0XHRjb25zdCBkaXNwbGF5TW9kZSA9IENvbW1vblV0aWxzLmNvbXB1dGVEaXNwbGF5TW9kZShvUHJvcGVydHlDb250ZXh0KTtcblx0XHRcdFx0cmVzb2x2ZShkaXNwbGF5TW9kZSk7XG5cdFx0XHR9KTtcblx0XHRhUHJvbWlzZXMucHVzaChvUHJvbWlzZUZvckRpc3BsYXlNb2RlKTtcblx0XHRjb25zdCBzVmFsdWVQYXRoID0gb1ZhbHVlRXhwcmVzc2lvbi5wYXJ0cyA/IG9WYWx1ZUV4cHJlc3Npb24ucGFydHNbMF0ucGF0aCA6IG9WYWx1ZUV4cHJlc3Npb24ucGF0aCxcblx0XHRcdGZuVmFsdWVGb3JtYXR0ZXIgPSBvVmFsdWVFeHByZXNzaW9uLmZvcm1hdHRlcixcblx0XHRcdG9WYWx1ZUJpbmRpbmcgPSBvTW9kZWwuYmluZFByb3BlcnR5KHNWYWx1ZVBhdGgsIG9CaW5kaW5nVmlld0NvbnRleHQpO1xuXHRcdG9WYWx1ZUJpbmRpbmcuaW5pdGlhbGl6ZSgpO1xuXHRcdGNvbnN0IG9Qcm9taXNlRm9yVGl0bGVWYWx1ZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0Y29uc3QgZm5DaGFuZ2UgPSBmdW5jdGlvbiAob0V2ZW50OiBhbnkpIHtcblx0XHRcdFx0Y29uc3Qgc1RhcmdldFZhbHVlID0gZm5WYWx1ZUZvcm1hdHRlciA/IGZuVmFsdWVGb3JtYXR0ZXIob0V2ZW50LmdldFNvdXJjZSgpLmdldFZhbHVlKCkpIDogb0V2ZW50LmdldFNvdXJjZSgpLmdldFZhbHVlKCk7XG5cblx0XHRcdFx0b1ZhbHVlQmluZGluZy5kZXRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0XHRyZXNvbHZlKHNUYXJnZXRWYWx1ZSk7XG5cdFx0XHR9O1xuXHRcdFx0b1ZhbHVlQmluZGluZy5hdHRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdH0pO1xuXHRcdGFQcm9taXNlcy5wdXNoKG9Qcm9taXNlRm9yVGl0bGVWYWx1ZSk7XG5cblx0XHRpZiAoc1RleHRFeHByZXNzaW9uKSB7XG5cdFx0XHRjb25zdCBvVGV4dEV4cHJlc3Npb24gPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoc1RleHRFeHByZXNzaW9uKTtcblx0XHRcdGxldCBzVGV4dFBhdGggPSBvVGV4dEV4cHJlc3Npb24ucGFydHMgPyBvVGV4dEV4cHJlc3Npb24ucGFydHNbMF0ucGF0aCA6IG9UZXh0RXhwcmVzc2lvbi5wYXRoO1xuXHRcdFx0c1RleHRQYXRoID0gc1ZhbHVlUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgPiAtMSA/IHNWYWx1ZVBhdGguc2xpY2UoMCwgc1ZhbHVlUGF0aC5sYXN0SW5kZXhPZihcIi9cIikpICsgXCIvXCIgKyBzVGV4dFBhdGggOiBzVGV4dFBhdGg7XG5cdFx0XHRjb25zdCBmblRleHRGb3JtYXR0ZXIgPSBvVGV4dEV4cHJlc3Npb24uZm9ybWF0dGVyLFxuXHRcdFx0XHRvVGV4dEJpbmRpbmcgPSBvTW9kZWwuYmluZFByb3BlcnR5KHNUZXh0UGF0aCwgb0JpbmRpbmdWaWV3Q29udGV4dCk7XG5cdFx0XHRvVGV4dEJpbmRpbmcuaW5pdGlhbGl6ZSgpO1xuXHRcdFx0Y29uc3Qgb1Byb21pc2VGb3JUaXRsZVRleHQgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKGRlc2NyaXB0aW9uOiBhbnkpID0+IHZvaWQpIHtcblx0XHRcdFx0Y29uc3QgZm5DaGFuZ2UgPSBmdW5jdGlvbiAob0V2ZW50OiBhbnkpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFyZ2V0VGV4dCA9IGZuVGV4dEZvcm1hdHRlciA/IGZuVGV4dEZvcm1hdHRlcihvRXZlbnQuZ2V0U291cmNlKCkuZ2V0VmFsdWUoKSkgOiBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0VmFsdWUoKTtcblxuXHRcdFx0XHRcdG9UZXh0QmluZGluZy5kZXRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0XHRcdHJlc29sdmUoc1RhcmdldFRleHQpO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdG9UZXh0QmluZGluZy5hdHRhY2hDaGFuZ2UoZm5DaGFuZ2UpO1xuXHRcdFx0fSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaChvUHJvbWlzZUZvclRpdGxlVGV4dCk7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCB0aXRsZUluZm86IGFueVtdID0gYXdhaXQgUHJvbWlzZS5hbGwoYVByb21pc2VzKTtcblx0XHRcdGxldCBmb3JtYXR0ZWRUaXRsZSA9IFwiXCI7XG5cdFx0XHRpZiAodHlwZW9mIHRpdGxlSW5mbyAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRmb3JtYXR0ZWRUaXRsZSA9IHRoaXMuX2Zvcm1hdFRpdGxlKHRpdGxlSW5mb1swXSwgdGl0bGVJbmZvWzFdLCB0aXRsZUluZm9bMl0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZvcm1hdHRlZFRpdGxlO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGZldGNoaW5nIHRoZSB0aXRsZSBmcm9tIHRoZSBoZWFkZXIgaW5mbyA6XCIgKyBlcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0X2dldEFwcFNwZWNpZmljSGFzaCgpIHtcblx0XHQvLyBIYXNoQ2hhbmdlZCBpc1NoZWxsTmF2aWdhdGlvbkhhc2hDaGFuZ2VyXG5cdFx0cmV0dXJuIChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHRcdDogXCJcIjtcblx0fVxuXG5cdF9nZXRIYXNoKCkge1xuXHRcdHJldHVybiBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGl0bGVJbmZvcm1hdGlvbiBmcm9tIGEgcGF0aC5cblx0ICogSXQgdXBkYXRlcyB0aGUgY2FjaGUgdG8gc3RvcmUgVGl0bGUgSW5mb3JtYXRpb24gaWYgbmVjZXNzYXJ5XG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci5jb250cm9sbGVyLkJhc2VDb250cm9sbGVyI2dldFRpdGxlSW5mb0Zyb21QYXRoXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIuY29udHJvbGxlci5CYXNlQ29udHJvbGxlclxuXHQgKiBAcGFyYW0geyp9IHNQYXRoIHBhdGggb2YgdGhlIGNvbnRleHQgdG8gcmV0cmlldmUgdGl0bGUgaW5mb3JtYXRpb24gZnJvbSBNZXRhTW9kZWxcblx0ICogQHJldHVybnMge1Byb21pc2V9ICBvVGl0bGVpbmZvcm1hdGlvbiByZXR1cm5lZCBhcyBwcm9taXNlXG5cdCAqL1xuXG5cdGdldFRpdGxlSW5mb0Zyb21QYXRoKHNQYXRoOiBhbnkpIHtcblx0XHRjb25zdCBvVGl0bGVIaWVyYXJjaHlDYWNoZSA9IHRoaXMuX2dldFRpdGxlSGllcmFyY2h5Q2FjaGUoKTtcblxuXHRcdGlmIChvVGl0bGVIaWVyYXJjaHlDYWNoZVtzUGF0aF0pIHtcblx0XHRcdC8vIFRoZSB0aXRsZSBpbmZvIGlzIGFscmVhZHkgc3RvcmVkIGluIHRoZSBjYWNoZVxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShvVGl0bGVIaWVyYXJjaHlDYWNoZVtzUGF0aF0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdGNvbnN0IHNFbnRpdHlQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aChzUGF0aCk7XG5cdFx0Y29uc3Qgc1R5cGVOYW1lID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGh9L0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJJbmZvL1R5cGVOYW1lYCk7XG5cdFx0Y29uc3Qgc0FwcFNwZWNpZmljSGFzaCA9IHRoaXMuX2dldEFwcFNwZWNpZmljSGFzaCgpO1xuXHRcdGNvbnN0IHNJbnRlbnQgPSBzQXBwU3BlY2lmaWNIYXNoICsgc1BhdGguc2xpY2UoMSk7XG5cdFx0cmV0dXJuIHRoaXMuX2ZldGNoVGl0bGVWYWx1ZShzUGF0aCkudGhlbigoc1RpdGxlOiBhbnkpID0+IHtcblx0XHRcdGNvbnN0IG9UaXRsZUluZm8gPSB0aGlzLl9jb21wdXRlVGl0bGVJbmZvKHNUeXBlTmFtZSwgc1RpdGxlLCBzSW50ZW50KTtcblx0XHRcdG9UaXRsZUhpZXJhcmNoeUNhY2hlW3NQYXRoXSA9IG9UaXRsZUluZm87XG5cdFx0XHRyZXR1cm4gb1RpdGxlSW5mbztcblx0XHR9KTtcblx0fVxuXHQvKipcblx0ICogRW5zdXJlIHRoYXQgdGhlIHVzaGVsbCBzZXJ2aWNlIHJlY2VpdmVzIGFsbCBlbGVtZW50c1xuXHQgKiAodGl0bGUsIHN1YnRpdGxlLCBpbnRlbnQsIGljb24pIGFzIHN0cmluZ3MuXG5cdCAqXG5cdCAqIEFubm90YXRpb24gSGVhZGVySW5mbyBhbGxvd3MgZm9yIGJpbmRpbmcgb2YgdGl0bGUgYW5kIGRlc2NyaXB0aW9uXG5cdCAqICh3aGljaCBhcmUgdXNlZCBoZXJlIGFzIHRpdGxlIGFuZCBzdWJ0aXRsZSkgdG8gYW55IGVsZW1lbnQgaW4gdGhlIGVudGl0eVxuXHQgKiAoYmVpbmcgcG9zc2libHkgdHlwZXMgbGlrZSBib29sZWFuLCB0aW1lc3RhbXAsIGRvdWJsZSwgZXRjLilcblx0ICpcblx0ICogQ3JlYXRlcyBhIG5ldyBoaWVyYXJjaHkgYW5kIGNvbnZlcnRzIG5vbi1zdHJpbmcgdHlwZXMgdG8gc3RyaW5nLlxuXHQgKlxuXHQgKiBAcGFyYW0gYUhpZXJhcmNoeSBTaGVsbCB0aXRsZSBoaWVyYXJjaHlcblx0ICogQHJldHVybnMgQ29weSBvZiBzaGVsbCB0aXRsZSBoaWVyYXJjaHkgY29udGFpbmluZyBhbGwgZWxlbWVudHMgYXMgc3RyaW5nc1xuXHQgKi9cblx0X2Vuc3VyZUhpZXJhcmNoeUVsZW1lbnRzQXJlU3RyaW5ncyhhSGllcmFyY2h5OiBhbnkpIHtcblx0XHRjb25zdCBhSGllcmFyY2h5U2hlbGwgPSBbXTtcblx0XHRmb3IgKGNvbnN0IGxldmVsIGluIGFIaWVyYXJjaHkpIHtcblx0XHRcdGNvbnN0IG9IaWVyYXJjaHkgPSBhSGllcmFyY2h5W2xldmVsXTtcblx0XHRcdGNvbnN0IG9TaGVsbEhpZXJhcmNoeTogYW55ID0ge307XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBpbiBvSGllcmFyY2h5KSB7XG5cdFx0XHRcdG9TaGVsbEhpZXJhcmNoeVtrZXldID0gdHlwZW9mIG9IaWVyYXJjaHlba2V5XSAhPT0gXCJzdHJpbmdcIiA/IFN0cmluZyhvSGllcmFyY2h5W2tleV0pIDogb0hpZXJhcmNoeVtrZXldO1xuXHRcdFx0fVxuXHRcdFx0YUhpZXJhcmNoeVNoZWxsLnB1c2gob1NoZWxsSGllcmFyY2h5KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFIaWVyYXJjaHlTaGVsbDtcblx0fVxuXG5cdF9nZXRUYXJnZXRUeXBlRnJvbUhhc2goc0hhc2g6IGFueSkge1xuXHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGxldCBzVGFyZ2V0VHlwZSA9IFwiXCI7XG5cblx0XHRjb25zdCBhUm91dGVzID0gb0FwcENvbXBvbmVudC5nZXRNYW5pZmVzdEVudHJ5KFwiL3NhcC51aTUvcm91dGluZy9yb3V0ZXNcIik7XG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBhUm91dGVzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRjb25zdCBvUm91dGUgPSBvQXBwQ29tcG9uZW50LmdldFJvdXRlcigpLmdldFJvdXRlKGFSb3V0ZXNbal0ubmFtZSk7XG5cdFx0XHRpZiAob1JvdXRlLm1hdGNoKHNIYXNoKSkge1xuXHRcdFx0XHRjb25zdCBzVGFyZ2V0ID0gQXJyYXkuaXNBcnJheShhUm91dGVzW2pdLnRhcmdldCkgPyBhUm91dGVzW2pdLnRhcmdldFswXSA6IGFSb3V0ZXNbal0udGFyZ2V0O1xuXHRcdFx0XHRzVGFyZ2V0VHlwZSA9IChvQXBwQ29tcG9uZW50LmdldFJvdXRlcigpLmdldFRhcmdldChzVGFyZ2V0KSBhcyBhbnkpLl9vT3B0aW9ucy5uYW1lO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gc1RhcmdldFR5cGU7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBpcyB1cGRhdGluZyB0aGUgc2hlbGwgdGl0bGUgYWZ0ZXIgZWFjaCBuYXZpZ2F0aW9uLlxuXHQgKlxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLmNvbnRyb2xsZXIuQmFzZUNvbnRyb2xsZXJcblx0ICogQHBhcmFtIG9WaWV3IFRoZSBjdXJyZW50IHZpZXdcblx0ICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgbWVudSBpcyBmaWxsZWQgcHJvcGVybHlcblx0ICovXG5cdF9jb21wdXRlVGl0bGVIaWVyYXJjaHkob1ZpZXc6IGFueSkge1xuXHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLFxuXHRcdFx0b0NvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdFx0b0N1cnJlbnRQYWdlID0gb1ZpZXcuZ2V0UGFyZW50KCksXG5cdFx0XHRhVGl0bGVJbmZvcm1hdGlvblByb21pc2VzID0gW10sXG5cdFx0XHRzQXBwU3BlY2lmaWNIYXNoID0gdGhpcy5fZ2V0QXBwU3BlY2lmaWNIYXNoKCksXG5cdFx0XHRzQXBwVGl0bGUgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCkuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIikudGl0bGUgfHwgXCJcIixcblx0XHRcdHNBcHBTdWJUaXRsZSA9IG9BcHBDb21wb25lbnQuZ2V0TWV0YWRhdGEoKS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKS5hcHBTdWJUaXRsZSB8fCBcIlwiO1xuXHRcdGxldCBvUGFnZVRpdGxlSW5mb3JtYXRpb246IGFueSwgc05ld1BhdGg7XG5cblx0XHRpZiAob0N1cnJlbnRQYWdlICYmIG9DdXJyZW50UGFnZS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24pIHtcblx0XHRcdGlmIChvQ29udGV4dCkge1xuXHRcdFx0XHQvLyBJZiB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgYXBwbGljYXRpb24gaXMgYSBMUiwgdXNlIHRoZSB0aXRsZSBhbmQgc3VidGl0bGUgZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRcdFx0aWYgKHRoaXMuX2dldFRhcmdldFR5cGVGcm9tSGFzaChcIlwiKSA9PT0gXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnRcIikge1xuXHRcdFx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaChQcm9taXNlLnJlc29sdmUodGhpcy5fY29tcHV0ZVRpdGxlSW5mbyhzQXBwVGl0bGUsIHNBcHBTdWJUaXRsZSwgc0FwcFNwZWNpZmljSGFzaCkpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRoZW4gbWFuYWdlIG90aGVyIHBhZ2VzXG5cdFx0XHRcdHNOZXdQYXRoID0gb0NvbnRleHQuZ2V0UGF0aCgpO1xuXHRcdFx0XHRjb25zdCBhUGF0aFBhcnRzID0gc05ld1BhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0XHRsZXQgc1BhdGggPSBcIlwiO1xuXG5cdFx0XHRcdGFQYXRoUGFydHMuc2hpZnQoKTsgLy8gUmVtb3ZlIHRoZSBmaXJzdCBzZWdtZW50IChlbXB0eSBzdHJpbmcpIGFzIGl0IGhhcyBiZWVuIG1hbmFnZWQgYWJvdmVcblx0XHRcdFx0YVBhdGhQYXJ0cy5wb3AoKTsgLy8gUmVtb3ZlIHRoZSBsYXN0IHNlZ21lbnQgYXMgaXQgY29ycmVzcG9uZHMgdG8gdGhlIGN1cnJlbnQgcGFnZSBhbmQgc2hvdWxkbid0IGFwcGVhciBpbiB0aGUgbWVudVxuXG5cdFx0XHRcdGFQYXRoUGFydHMuZm9yRWFjaCgoc1BhdGhQYXJ0OiBhbnkpID0+IHtcblx0XHRcdFx0XHRzUGF0aCArPSBgLyR7c1BhdGhQYXJ0fWA7XG5cdFx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9BcHBDb21wb25lbnQuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0XHRzUGFyYW1ldGVyUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc1BhdGgpLFxuXHRcdFx0XHRcdFx0YklzUGFyYW1ldGVyaXplZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NQYXJhbWV0ZXJQYXRofS9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlJlc3VsdENvbnRleHRgKTtcblx0XHRcdFx0XHRpZiAoIWJJc1BhcmFtZXRlcml6ZWQpIHtcblx0XHRcdFx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaCh0aGlzLmdldFRpdGxlSW5mb0Zyb21QYXRoKHNQYXRoKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ3VycmVudCBwYWdlXG5cdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24gPSBvQ3VycmVudFBhZ2UuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24gPSB0aGlzLl9jb21wdXRlVGl0bGVJbmZvKFxuXHRcdFx0XHRvUGFnZVRpdGxlSW5mb3JtYXRpb24udGl0bGUsXG5cdFx0XHRcdG9QYWdlVGl0bGVJbmZvcm1hdGlvbi5zdWJ0aXRsZSxcblx0XHRcdFx0c0FwcFNwZWNpZmljSGFzaCArIHRoaXMuX2dldEhhc2goKVxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKG9Db250ZXh0KSB7XG5cdFx0XHRcdHRoaXMuX2dldFRpdGxlSGllcmFyY2h5Q2FjaGUoKVtzTmV3UGF0aF0gPSBvUGFnZVRpdGxlSW5mb3JtYXRpb247XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9nZXRUaXRsZUhpZXJhcmNoeUNhY2hlKClbc0FwcFNwZWNpZmljSGFzaF0gPSBvUGFnZVRpdGxlSW5mb3JtYXRpb247XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFUaXRsZUluZm9ybWF0aW9uUHJvbWlzZXMucHVzaChQcm9taXNlLnJlamVjdChcIlRpdGxlIGluZm9ybWF0aW9uIG1pc3NpbmcgaW4gSGVhZGVySW5mb1wiKSk7XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhVGl0bGVJbmZvcm1hdGlvblByb21pc2VzKVxuXHRcdFx0LnRoZW4oKGFUaXRsZUluZm9IaWVyYXJjaHk6IGFueVtdKSA9PiB7XG5cdFx0XHRcdC8vIHdvcmthcm91bmQgZm9yIHNoZWxsIHdoaWNoIGlzIGV4cGVjdGluZyBhbGwgZWxlbWVudHMgYmVpbmcgb2YgdHlwZSBzdHJpbmdcblx0XHRcdFx0Y29uc3QgYVRpdGxlSW5mb0hpZXJhcmNoeVNoZWxsID0gdGhpcy5fZW5zdXJlSGllcmFyY2h5RWxlbWVudHNBcmVTdHJpbmdzKGFUaXRsZUluZm9IaWVyYXJjaHkpLFxuXHRcdFx0XHRcdHNUaXRsZSA9IG9QYWdlVGl0bGVJbmZvcm1hdGlvbi50aXRsZTtcblx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXRTaGVsbFNlcnZpY2VzKCkuc2V0SGllcmFyY2h5KGFUaXRsZUluZm9IaWVyYXJjaHlTaGVsbC5yZXZlcnNlKCkpO1xuXHRcdFx0XHRvQXBwQ29tcG9uZW50LmdldFNoZWxsU2VydmljZXMoKS5zZXRUaXRsZShzVGl0bGUpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yTWVzc2FnZTogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihzRXJyb3JNZXNzYWdlKTtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuYklzQ29tcHV0aW5nVGl0bGVIaWVyYWNoeSA9IGZhbHNlO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yTWVzc2FnZTogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihzRXJyb3JNZXNzYWdlKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRjYWxjdWxhdGVMYXlvdXQoaU5leHRGQ0xMZXZlbDogbnVtYmVyLCBzSGFzaDogc3RyaW5nLCBzUHJvcG9zZWRMYXlvdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCwga2VlcEN1cnJlbnRMYXlvdXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayBhZnRlciBhIHZpZXcgaGFzIGJlZW4gYm91bmQgdG8gYSBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBoYXMgYmVlbiBib3VuZCB0byBhIHZpZXdcblx0ICovXG5cdG9uQ29udGV4dEJvdW5kVG9WaWV3KG9Db250ZXh0OiBhbnkpIHtcblx0XHRpZiAob0NvbnRleHQpIHtcblx0XHRcdGNvbnN0IHNEZWVwZXN0UGF0aCA9IHRoaXMuZ2V0VmlldygpLmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvZGVlcGVzdFBhdGhcIiksXG5cdFx0XHRcdHNWaWV3Q29udGV4dFBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCk7XG5cblx0XHRcdGlmICghc0RlZXBlc3RQYXRoIHx8IHNEZWVwZXN0UGF0aC5pbmRleE9mKHNWaWV3Q29udGV4dFBhdGgpICE9PSAwKSB7XG5cdFx0XHRcdC8vIFRoZXJlIHdhcyBubyBwcmV2aW91cyB2YWx1ZSBmb3IgdGhlIGRlZXBlc3QgcmVhY2hlZCBwYXRoLCBvciB0aGUgcGF0aFxuXHRcdFx0XHQvLyBmb3IgdGhlIHZpZXcgaXNuJ3QgYSBzdWJwYXRoIG9mIHRoZSBwcmV2aW91cyBkZWVwZXN0IHBhdGggLS0+IHVwZGF0ZVxuXHRcdFx0XHQodGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwpLnNldFByb3BlcnR5KFwiL2RlZXBlc3RQYXRoXCIsIHNWaWV3Q29udGV4dFBhdGgsIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRkaXNwbGF5TWVzc2FnZVBhZ2Uoc0Vycm9yTWVzc2FnZTogYW55LCBtUGFyYW1ldGVyczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Ly8gVG8gYmUgb3ZlcnJpZGRlblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHVwZGF0ZVVJU3RhdGVGb3JWaWV3KG9WaWV3OiBhbnksIEZDTExldmVsOiBhbnkpIHtcblx0XHQvLyBUbyBiZSBvdmVycmlkZW5cblx0fVxuXHRfc2Nyb2xsVGFibGVzVG9MYXN0TmF2aWdhdGVkSXRlbXMoKTogdm9pZCB7XG5cdFx0Ly8gVG8gYmUgb3ZlcnJpZGVuXG5cdH1cbn1cbmludGVyZmFjZSBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXIge1xuXHRvbkNvbnRhaW5lclJlYWR5PygpOiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSb290Q29udGFpbmVyQmFzZUNvbnRyb2xsZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztFQWtqQk8sZ0JBQWdCQSxJQUFoQixFQUFzQkMsT0FBdEIsRUFBK0I7SUFDckMsSUFBSTtNQUNILElBQUlDLE1BQU0sR0FB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
@@ -17,4 +17,4 @@ sap.ui.define([], function () {
17
17
  };
18
18
  return EditFLowExtensionOverride;
19
19
  }, false);
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkVkaXRGbG93LnRzIl0sIm5hbWVzIjpbIkVkaXRGTG93RXh0ZW5zaW9uT3ZlcnJpZGUiLCJzZXRDcmVhdGlvbk1vZGUiLCJiQ3JlYXRpb25Nb2RlIiwib1VJTW9kZWxDb250ZXh0IiwiYmFzZSIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJnZXRQcm9ncmFtbWluZ01vZGVsIiwiZ2V0VHJhbnNhY3Rpb25IZWxwZXIiLCJfYkNyZWF0ZU1vZGUiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFFQSxNQUFNQSx5QkFBeUIsR0FBRztBQUNqQ0MsSUFBQUEsZUFBZSxFQUFFLFVBQWtDQyxhQUFsQyxFQUFzRDtBQUN0RSxVQUFNQyxlQUFlLEdBQUcsS0FBS0MsSUFBTCxDQUFVQyxPQUFWLEdBQW9CQyxpQkFBcEIsQ0FBc0MsSUFBdEMsQ0FBeEI7QUFDQ0gsTUFBQUEsZUFBZSxDQUFDSSxRQUFoQixFQUFELENBQTBDQyxXQUExQyxDQUFzRCxZQUF0RCxFQUFvRU4sYUFBcEUsRUFBbUZDLGVBQW5GLEVBQW9HLElBQXBHOztBQUNBLFVBQUksS0FBS00sbUJBQUwsT0FBK0IsUUFBbkMsRUFBNkM7QUFDM0NOLFFBQUFBLGVBQWUsQ0FBQ0ksUUFBaEIsRUFBRCxDQUEwQ0MsV0FBMUMsQ0FDQyxrQkFERCxFQUVDLEtBQUtFLG9CQUFMLEdBQTRCQyxZQUY3QixFQUdDUixlQUhELEVBSUMsSUFKRDtBQU1BO0FBQ0Q7QUFaZ0MsR0FBbEM7U0FlZUgseUIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIEludGVybmFsRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsRWRpdEZsb3dcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5jb25zdCBFZGl0Rkxvd0V4dGVuc2lvbk92ZXJyaWRlID0ge1xuXHRzZXRDcmVhdGlvbk1vZGU6IGZ1bmN0aW9uICh0aGlzOiBJbnRlcm5hbEVkaXRGbG93LCBiQ3JlYXRpb25Nb2RlOiBhbnkpIHtcblx0XHRjb25zdCBvVUlNb2RlbENvbnRleHQgPSB0aGlzLmJhc2UuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KFwidWlcIikgYXMgQ29udGV4dDtcblx0XHQob1VJTW9kZWxDb250ZXh0LmdldE1vZGVsKCkgYXMgSlNPTk1vZGVsKS5zZXRQcm9wZXJ0eShcImNyZWF0ZU1vZGVcIiwgYkNyZWF0aW9uTW9kZSwgb1VJTW9kZWxDb250ZXh0LCB0cnVlKTtcblx0XHRpZiAodGhpcy5nZXRQcm9ncmFtbWluZ01vZGVsKCkgPT09IFwiU3RpY2t5XCIpIHtcblx0XHRcdChvVUlNb2RlbENvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLnNldFByb3BlcnR5KFxuXHRcdFx0XHRcImNyZWF0ZU1vZGVTdGlja3lcIixcblx0XHRcdFx0dGhpcy5nZXRUcmFuc2FjdGlvbkhlbHBlcigpLl9iQ3JlYXRlTW9kZSxcblx0XHRcdFx0b1VJTW9kZWxDb250ZXh0LFxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdEZMb3dFeHRlbnNpb25PdmVycmlkZTtcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFZGl0Rkxvd0V4dGVuc2lvbk92ZXJyaWRlIiwic2V0Q3JlYXRpb25Nb2RlIiwiYkNyZWF0aW9uTW9kZSIsIm9VSU1vZGVsQ29udGV4dCIsImJhc2UiLCJnZXRWaWV3IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRNb2RlbCIsInNldFByb3BlcnR5IiwiZ2V0UHJvZ3JhbW1pbmdNb2RlbCIsImdldFRyYW5zYWN0aW9uSGVscGVyIiwiX2JDcmVhdGVNb2RlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFZGl0Rmxvdy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBJbnRlcm5hbEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbEVkaXRGbG93XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxuY29uc3QgRWRpdEZMb3dFeHRlbnNpb25PdmVycmlkZSA9IHtcblx0c2V0Q3JlYXRpb25Nb2RlOiBmdW5jdGlvbiAodGhpczogSW50ZXJuYWxFZGl0RmxvdywgYkNyZWF0aW9uTW9kZTogYW55KSB7XG5cdFx0Y29uc3Qgb1VJTW9kZWxDb250ZXh0ID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dChcInVpXCIpIGFzIENvbnRleHQ7XG5cdFx0KG9VSU1vZGVsQ29udGV4dC5nZXRNb2RlbCgpIGFzIEpTT05Nb2RlbCkuc2V0UHJvcGVydHkoXCJjcmVhdGVNb2RlXCIsIGJDcmVhdGlvbk1vZGUsIG9VSU1vZGVsQ29udGV4dCwgdHJ1ZSk7XG5cdFx0aWYgKHRoaXMuZ2V0UHJvZ3JhbW1pbmdNb2RlbCgpID09PSBcIlN0aWNreVwiKSB7XG5cdFx0XHQob1VJTW9kZWxDb250ZXh0LmdldE1vZGVsKCkgYXMgSlNPTk1vZGVsKS5zZXRQcm9wZXJ0eShcblx0XHRcdFx0XCJjcmVhdGVNb2RlU3RpY2t5XCIsXG5cdFx0XHRcdHRoaXMuZ2V0VHJhbnNhY3Rpb25IZWxwZXIoKS5fYkNyZWF0ZU1vZGUsXG5cdFx0XHRcdG9VSU1vZGVsQ29udGV4dCxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRGTG93RXh0ZW5zaW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFJQSxJQUFNQSx5QkFBeUIsR0FBRztJQUNqQ0MsZUFBZSxFQUFFLFVBQWtDQyxhQUFsQyxFQUFzRDtNQUN0RSxJQUFNQyxlQUFlLEdBQUcsS0FBS0MsSUFBTCxDQUFVQyxPQUFWLEdBQW9CQyxpQkFBcEIsQ0FBc0MsSUFBdEMsQ0FBeEI7TUFDQ0gsZUFBZSxDQUFDSSxRQUFoQixFQUFELENBQTBDQyxXQUExQyxDQUFzRCxZQUF0RCxFQUFvRU4sYUFBcEUsRUFBbUZDLGVBQW5GLEVBQW9HLElBQXBHOztNQUNBLElBQUksS0FBS00sbUJBQUwsT0FBK0IsUUFBbkMsRUFBNkM7UUFDM0NOLGVBQWUsQ0FBQ0ksUUFBaEIsRUFBRCxDQUEwQ0MsV0FBMUMsQ0FDQyxrQkFERCxFQUVDLEtBQUtFLG9CQUFMLEdBQTRCQyxZQUY3QixFQUdDUixlQUhELEVBSUMsSUFKRDtNQU1BO0lBQ0Q7RUFaZ0MsQ0FBbEM7U0FlZUgseUIifQ==
@@ -51,4 +51,4 @@ sap.ui.define([], function () {
51
51
  };
52
52
  return TableScroller;
53
53
  }, false);
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlU2Nyb2xsZXIudHMiXSwibmFtZXMiOlsiVGFibGVTY3JvbGxlciIsInNjcm9sbFRhYmxlVG9Sb3ciLCJvVGFibGUiLCJzUm93UGF0aCIsIm9UYWJsZVJvd0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0VGFibGVDb250ZXh0cyIsImRhdGEiLCJ0YWJsZVR5cGUiLCJnZXRDb250ZXh0cyIsImdldEN1cnJlbnRDb250ZXh0cyIsImZpbmRBbmRTY3JvbGwiLCJvVGFibGVSb3ciLCJmaW5kIiwiaXRlbSIsImdldFBhdGgiLCJzY3JvbGxUb0luZGV4IiwiZ2V0SW5kZXgiLCJvVGFibGVSb3dCaW5kaW5nQ29udGV4dHMiLCJsZW5ndGgiLCJnZXRMZW5ndGgiLCJzb21lIiwiY29udGV4dCIsInVuZGVmaW5lZCIsImF0dGFjaEV2ZW50T25jZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUZBLE1BQU1BLGFBQWEsR0FBRztBQUNyQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDQyxJQUFBQSxnQkFBZ0IsRUFBRSxVQUFVQyxNQUFWLEVBQXVCQyxRQUF2QixFQUF5QztBQUMxRCxVQUFNQyxnQkFBZ0IsR0FBR0YsTUFBTSxDQUFDRyxhQUFQLEVBQXpCOztBQUVBLFVBQU1DLGdCQUFnQixHQUFHLFlBQVk7QUFDcEMsWUFBSUosTUFBTSxDQUFDSyxJQUFQLEdBQWNDLFNBQWQsS0FBNEIsV0FBaEMsRUFBNkM7QUFDNUMsaUJBQU9KLGdCQUFnQixDQUFDSyxXQUFqQixDQUE2QixDQUE3QixDQUFQO0FBQ0EsU0FGRCxNQUVPO0FBQ04saUJBQU9MLGdCQUFnQixDQUFDTSxrQkFBakIsRUFBUDtBQUNBO0FBQ0QsT0FORDs7QUFRQSxVQUFNQyxhQUFhLEdBQUcsWUFBWTtBQUNqQyxZQUFNQyxTQUFTLEdBQUdOLGdCQUFnQixHQUFHTyxJQUFuQixDQUF3QixVQUFVQyxJQUFWLEVBQXFCO0FBQzlELGlCQUFPQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsT0FBTCxPQUFtQlosUUFBbEM7QUFDQSxTQUZpQixDQUFsQjs7QUFHQSxZQUFJUyxTQUFKLEVBQWU7QUFDZFYsVUFBQUEsTUFBTSxDQUFDYyxhQUFQLENBQXFCSixTQUFTLENBQUNLLFFBQVYsRUFBckI7QUFDQTtBQUNELE9BUEQ7O0FBU0EsVUFBSWIsZ0JBQUosRUFBc0I7QUFDckIsWUFBTWMsd0JBQXdCLEdBQUdaLGdCQUFnQixFQUFqRDs7QUFFQSxZQUNFWSx3QkFBd0IsQ0FBQ0MsTUFBekIsS0FBb0MsQ0FBcEMsSUFBeUNmLGdCQUFnQixDQUFDZ0IsU0FBakIsS0FBK0IsQ0FBekUsSUFDQUYsd0JBQXdCLENBQUNHLElBQXpCLENBQThCLFVBQVVDLE9BQVYsRUFBd0I7QUFDckQsaUJBQU9BLE9BQU8sS0FBS0MsU0FBbkI7QUFDQSxTQUZELENBRkQsRUFLRTtBQUNEO0FBQ0FuQixVQUFBQSxnQkFBZ0IsQ0FBQ29CLGVBQWpCLENBQWlDLGNBQWpDLEVBQWlEYixhQUFqRDtBQUNBLFNBUkQsTUFRTztBQUNOO0FBQ0FBLFVBQUFBLGFBQWE7QUFDYjtBQUNEO0FBQ0Q7QUE1Q29CLEdBQXRCO1NBK0NlWCxhIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUYWJsZVNjcm9sbGVyID0ge1xuXHQvKipcblx0ICogU2Nyb2xscyBhbiBNREMgdGFibGUgdG8gYSBnaXZlbiByb3csIGlkZW50aWZpZWQgYnkgaXRzIGNvbnRleHQgcGF0aC5cblx0ICogSWYgdGhlIHJvdyB3aXRoIHRoZSBwYXRoIGNhbid0IGJlIGZvdW5kLCB0aGUgdGFibGUgc3RheXMgdW5jaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0gb1RhYmxlIFRoZSB0YWJsZSB0byBiZSBzY3JvbGxlZFxuXHQgKiBAcGFyYW0gc1Jvd1BhdGggVGhlIHBhdGggaWRlbnRpZnlpbmcgdGhlIHJvdyB0byBzY3JvbGwgdG9cblx0ICovXG5cdHNjcm9sbFRhYmxlVG9Sb3c6IGZ1bmN0aW9uIChvVGFibGU6IGFueSwgc1Jvd1BhdGg6IHN0cmluZykge1xuXHRcdGNvbnN0IG9UYWJsZVJvd0JpbmRpbmcgPSBvVGFibGUuZ2V0Um93QmluZGluZygpO1xuXG5cdFx0Y29uc3QgZ2V0VGFibGVDb250ZXh0cyA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmIChvVGFibGUuZGF0YSgpLnRhYmxlVHlwZSA9PT0gXCJHcmlkVGFibGVcIikge1xuXHRcdFx0XHRyZXR1cm4gb1RhYmxlUm93QmluZGluZy5nZXRDb250ZXh0cygwKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBvVGFibGVSb3dCaW5kaW5nLmdldEN1cnJlbnRDb250ZXh0cygpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRjb25zdCBmaW5kQW5kU2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0Y29uc3Qgb1RhYmxlUm93ID0gZ2V0VGFibGVDb250ZXh0cygpLmZpbmQoZnVuY3Rpb24gKGl0ZW06IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gaXRlbSAmJiBpdGVtLmdldFBhdGgoKSA9PT0gc1Jvd1BhdGg7XG5cdFx0XHR9KTtcblx0XHRcdGlmIChvVGFibGVSb3cpIHtcblx0XHRcdFx0b1RhYmxlLnNjcm9sbFRvSW5kZXgob1RhYmxlUm93LmdldEluZGV4KCkpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRpZiAob1RhYmxlUm93QmluZGluZykge1xuXHRcdFx0Y29uc3Qgb1RhYmxlUm93QmluZGluZ0NvbnRleHRzID0gZ2V0VGFibGVDb250ZXh0cygpO1xuXG5cdFx0XHRpZiAoXG5cdFx0XHRcdChvVGFibGVSb3dCaW5kaW5nQ29udGV4dHMubGVuZ3RoID09PSAwICYmIG9UYWJsZVJvd0JpbmRpbmcuZ2V0TGVuZ3RoKCkgPiAwKSB8fFxuXHRcdFx0XHRvVGFibGVSb3dCaW5kaW5nQ29udGV4dHMuc29tZShmdW5jdGlvbiAoY29udGV4dDogYW55KSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbnRleHQgPT09IHVuZGVmaW5lZDtcblx0XHRcdFx0fSlcblx0XHRcdCkge1xuXHRcdFx0XHQvLyBUaGUgY29udGV4dHMgYXJlIG5vdCBsb2FkZWQgeWV0IC0tPiB3YWl0IGZvciBhIGNoYW5nZSBldmVudCBiZWZvcmUgc2Nyb2xsaW5nXG5cdFx0XHRcdG9UYWJsZVJvd0JpbmRpbmcuYXR0YWNoRXZlbnRPbmNlKFwiZGF0YVJlY2VpdmVkXCIsIGZpbmRBbmRTY3JvbGwpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gQ29udGV4dHMgYXJlIGFscmVhZHkgbG9hZGVkIC0tPiB3ZSBjYW4gdHJ5IHRvIHNjcm9sbCBpbW1lZGlhdGVseVxuXHRcdFx0XHRmaW5kQW5kU2Nyb2xsKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVNjcm9sbGVyO1xuIl19
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYWJsZVNjcm9sbGVyIiwic2Nyb2xsVGFibGVUb1JvdyIsIm9UYWJsZSIsInNSb3dQYXRoIiwib1RhYmxlUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJnZXRUYWJsZUNvbnRleHRzIiwiZGF0YSIsInRhYmxlVHlwZSIsImdldENvbnRleHRzIiwiZ2V0Q3VycmVudENvbnRleHRzIiwiZmluZEFuZFNjcm9sbCIsIm9UYWJsZVJvdyIsImZpbmQiLCJpdGVtIiwiZ2V0UGF0aCIsInNjcm9sbFRvSW5kZXgiLCJnZXRJbmRleCIsIm9UYWJsZVJvd0JpbmRpbmdDb250ZXh0cyIsImxlbmd0aCIsImdldExlbmd0aCIsInNvbWUiLCJjb250ZXh0IiwidW5kZWZpbmVkIiwiYXR0YWNoRXZlbnRPbmNlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUYWJsZVNjcm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFRhYmxlU2Nyb2xsZXIgPSB7XG5cdC8qKlxuXHQgKiBTY3JvbGxzIGFuIE1EQyB0YWJsZSB0byBhIGdpdmVuIHJvdywgaWRlbnRpZmllZCBieSBpdHMgY29udGV4dCBwYXRoLlxuXHQgKiBJZiB0aGUgcm93IHdpdGggdGhlIHBhdGggY2FuJ3QgYmUgZm91bmQsIHRoZSB0YWJsZSBzdGF5cyB1bmNoYW5nZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRvIGJlIHNjcm9sbGVkXG5cdCAqIEBwYXJhbSBzUm93UGF0aCBUaGUgcGF0aCBpZGVudGlmeWluZyB0aGUgcm93IHRvIHNjcm9sbCB0b1xuXHQgKi9cblx0c2Nyb2xsVGFibGVUb1JvdzogZnVuY3Rpb24gKG9UYWJsZTogYW55LCBzUm93UGF0aDogc3RyaW5nKSB7XG5cdFx0Y29uc3Qgb1RhYmxlUm93QmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCk7XG5cblx0XHRjb25zdCBnZXRUYWJsZUNvbnRleHRzID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0aWYgKG9UYWJsZS5kYXRhKCkudGFibGVUeXBlID09PSBcIkdyaWRUYWJsZVwiKSB7XG5cdFx0XHRcdHJldHVybiBvVGFibGVSb3dCaW5kaW5nLmdldENvbnRleHRzKDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIG9UYWJsZVJvd0JpbmRpbmcuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdGNvbnN0IGZpbmRBbmRTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjb25zdCBvVGFibGVSb3cgPSBnZXRUYWJsZUNvbnRleHRzKCkuZmluZChmdW5jdGlvbiAoaXRlbTogYW55KSB7XG5cdFx0XHRcdHJldHVybiBpdGVtICYmIGl0ZW0uZ2V0UGF0aCgpID09PSBzUm93UGF0aDtcblx0XHRcdH0pO1xuXHRcdFx0aWYgKG9UYWJsZVJvdykge1xuXHRcdFx0XHRvVGFibGUuc2Nyb2xsVG9JbmRleChvVGFibGVSb3cuZ2V0SW5kZXgoKSk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdGlmIChvVGFibGVSb3dCaW5kaW5nKSB7XG5cdFx0XHRjb25zdCBvVGFibGVSb3dCaW5kaW5nQ29udGV4dHMgPSBnZXRUYWJsZUNvbnRleHRzKCk7XG5cblx0XHRcdGlmIChcblx0XHRcdFx0KG9UYWJsZVJvd0JpbmRpbmdDb250ZXh0cy5sZW5ndGggPT09IDAgJiYgb1RhYmxlUm93QmluZGluZy5nZXRMZW5ndGgoKSA+IDApIHx8XG5cdFx0XHRcdG9UYWJsZVJvd0JpbmRpbmdDb250ZXh0cy5zb21lKGZ1bmN0aW9uIChjb250ZXh0OiBhbnkpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29udGV4dCA9PT0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9KVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFRoZSBjb250ZXh0cyBhcmUgbm90IGxvYWRlZCB5ZXQgLS0+IHdhaXQgZm9yIGEgY2hhbmdlIGV2ZW50IGJlZm9yZSBzY3JvbGxpbmdcblx0XHRcdFx0b1RhYmxlUm93QmluZGluZy5hdHRhY2hFdmVudE9uY2UoXCJkYXRhUmVjZWl2ZWRcIiwgZmluZEFuZFNjcm9sbCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBDb250ZXh0cyBhcmUgYWxyZWFkeSBsb2FkZWQgLS0+IHdlIGNhbiB0cnkgdG8gc2Nyb2xsIGltbWVkaWF0ZWx5XG5cdFx0XHRcdGZpbmRBbmRTY3JvbGwoKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlU2Nyb2xsZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFBQSxJQUFNQSxhQUFhLEdBQUc7SUFDckI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0MsZ0JBQWdCLEVBQUUsVUFBVUMsTUFBVixFQUF1QkMsUUFBdkIsRUFBeUM7TUFDMUQsSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csYUFBUCxFQUF6Qjs7TUFFQSxJQUFNQyxnQkFBZ0IsR0FBRyxZQUFZO1FBQ3BDLElBQUlKLE1BQU0sQ0FBQ0ssSUFBUCxHQUFjQyxTQUFkLEtBQTRCLFdBQWhDLEVBQTZDO1VBQzVDLE9BQU9KLGdCQUFnQixDQUFDSyxXQUFqQixDQUE2QixDQUE3QixDQUFQO1FBQ0EsQ0FGRCxNQUVPO1VBQ04sT0FBT0wsZ0JBQWdCLENBQUNNLGtCQUFqQixFQUFQO1FBQ0E7TUFDRCxDQU5EOztNQVFBLElBQU1DLGFBQWEsR0FBRyxZQUFZO1FBQ2pDLElBQU1DLFNBQVMsR0FBR04sZ0JBQWdCLEdBQUdPLElBQW5CLENBQXdCLFVBQVVDLElBQVYsRUFBcUI7VUFDOUQsT0FBT0EsSUFBSSxJQUFJQSxJQUFJLENBQUNDLE9BQUwsT0FBbUJaLFFBQWxDO1FBQ0EsQ0FGaUIsQ0FBbEI7O1FBR0EsSUFBSVMsU0FBSixFQUFlO1VBQ2RWLE1BQU0sQ0FBQ2MsYUFBUCxDQUFxQkosU0FBUyxDQUFDSyxRQUFWLEVBQXJCO1FBQ0E7TUFDRCxDQVBEOztNQVNBLElBQUliLGdCQUFKLEVBQXNCO1FBQ3JCLElBQU1jLHdCQUF3QixHQUFHWixnQkFBZ0IsRUFBakQ7O1FBRUEsSUFDRVksd0JBQXdCLENBQUNDLE1BQXpCLEtBQW9DLENBQXBDLElBQXlDZixnQkFBZ0IsQ0FBQ2dCLFNBQWpCLEtBQStCLENBQXpFLElBQ0FGLHdCQUF3QixDQUFDRyxJQUF6QixDQUE4QixVQUFVQyxPQUFWLEVBQXdCO1VBQ3JELE9BQU9BLE9BQU8sS0FBS0MsU0FBbkI7UUFDQSxDQUZELENBRkQsRUFLRTtVQUNEO1VBQ0FuQixnQkFBZ0IsQ0FBQ29CLGVBQWpCLENBQWlDLGNBQWpDLEVBQWlEYixhQUFqRDtRQUNBLENBUkQsTUFRTztVQUNOO1VBQ0FBLGFBQWE7UUFDYjtNQUNEO0lBQ0Q7RUE1Q29CLENBQXRCO1NBK0NlWCxhIn0=
@@ -32,7 +32,7 @@ sap.ui.define(["sap/f/library", "sap/fe/common/library", "sap/fe/core/library",
32
32
  controls: [],
33
33
  elements: [],
34
34
  // eslint-disable-next-line no-template-curly-in-string
35
- version: "1.104.1",
35
+ version: "1.105.1",
36
36
  noLibraryCSS: true
37
37
  });
38
38
 
@@ -59,4 +59,4 @@ sap.ui.define(["sap/f/library", "sap/fe/common/library", "sap/fe/core/library",
59
59
  DraftHandlerButton.register();
60
60
  return thisLib;
61
61
  }, false);
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYnJhcnkudHMiXSwibmFtZXMiOlsidGhpc0xpYiIsIkNvcmUiLCJpbml0TGlicmFyeSIsIm5hbWUiLCJkZXBlbmRlbmNpZXMiLCJ0eXBlcyIsImludGVyZmFjZXMiLCJjb250cm9scyIsImVsZW1lbnRzIiwidmVyc2lvbiIsIm5vTGlicmFyeUNTUyIsIk9iamVjdFBhZ2UiLCJTZWN0aW9uTGF5b3V0IiwiUGFnZSIsIlRhYnMiLCJNdWx0aXBsZU1vZGUiLCJyZWdpc3RlciIsIkRyYWZ0SGFuZGxlckJ1dHRvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxXQUFMLENBQWlCO0FBQ2hDQyxJQUFBQSxJQUFJLEVBQUUsa0JBRDBCO0FBRWhDQyxJQUFBQSxZQUFZLEVBQUUsQ0FBQyxhQUFELEVBQWdCLGFBQWhCLEVBQStCLGVBQS9CLEVBQWdELGVBQWhELEVBQWlFLE9BQWpFLENBRmtCO0FBR2hDQyxJQUFBQSxLQUFLLEVBQUUsQ0FBQywyQ0FBRCxDQUh5QjtBQUloQ0MsSUFBQUEsVUFBVSxFQUFFLEVBSm9CO0FBS2hDQyxJQUFBQSxRQUFRLEVBQUUsRUFMc0I7QUFNaENDLElBQUFBLFFBQVEsRUFBRSxFQU5zQjtBQU9oQztBQUNBQyxJQUFBQSxPQUFPLEVBQUUsWUFSdUI7QUFTaENDLElBQUFBLFlBQVksRUFBRTtBQVRrQixHQUFqQixDQUFoQjs7QUFZQSxNQUFJLENBQUNWLE9BQU8sQ0FBQ1csVUFBYixFQUF5QjtBQUN4QlgsSUFBQUEsT0FBTyxDQUFDVyxVQUFSLEdBQXFCLEVBQXJCO0FBQ0E7O0FBQ0RYLEVBQUFBLE9BQU8sQ0FBQ1csVUFBUixDQUFtQkMsYUFBbkIsR0FBbUM7QUFDbEM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNDQyxJQUFBQSxJQUFJLEVBQUUsTUFONEI7O0FBUWxDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQ0MsSUFBQUEsSUFBSSxFQUFFO0FBYjRCLEdBQW5DO0FBZ0JBQyxFQUFBQSxZQUFZLENBQUNDLFFBQWI7QUFDQUMsRUFBQUEsa0JBQWtCLENBQUNELFFBQW5CO1NBRWVoQixPIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJzYXAvZi9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvZmUvY29tbW9uL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC9mZS9tYWNyb3MvbGlicmFyeVwiO1xuaW1wb3J0IE11bHRpcGxlTW9kZSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L3ZpZXcvZnJhZ21lbnRzL011bHRpcGxlTW9kZS5mcmFnbWVudFwiO1xuaW1wb3J0IERyYWZ0SGFuZGxlckJ1dHRvbiBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NvbXBvbmVudHMvRHJhZnRIYW5kbGVyQnV0dG9uXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuLyoqXG4gKiBMaWJyYXJ5IHByb3ZpZGluZyB0aGUgb2ZmaWNpYWwgdGVtcGxhdGVzIHN1cHBvcnRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMuXG4gKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLnRlbXBsYXRlc1xuICogQHB1YmxpY1xuICovXG5cbi8qKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0XG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2VcbiAqIEBwdWJsaWNcbiAqL1xuY29uc3QgdGhpc0xpYiA9IENvcmUuaW5pdExpYnJhcnkoe1xuXHRuYW1lOiBcInNhcC5mZS50ZW1wbGF0ZXNcIixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiLCBcInNhcC5mZS5jb3JlXCIsIFwic2FwLmZlLm1hY3Jvc1wiLCBcInNhcC5mZS5jb21tb25cIiwgXCJzYXAuZlwiXSxcblx0dHlwZXM6IFtcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5TZWN0aW9uTGF5b3V0XCJdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZVxufSkgYXMgYW55O1xuXG5pZiAoIXRoaXNMaWIuT2JqZWN0UGFnZSkge1xuXHR0aGlzTGliLk9iamVjdFBhZ2UgPSB7fTtcbn1cbnRoaXNMaWIuT2JqZWN0UGFnZS5TZWN0aW9uTGF5b3V0ID0ge1xuXHQvKipcblx0ICogQWxsIHNlY3Rpb25zIGFyZSBzaG93biBpbiBvbmUgcGFnZVxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRQYWdlOiBcIlBhZ2VcIixcblxuXHQvKipcblx0ICogQWxsIHRvcC1sZXZlbCBzZWN0aW9ucyBhcmUgc2hvd24gaW4gYW4gb3duIHRhYlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRUYWJzOiBcIlRhYnNcIlxufTtcblxuTXVsdGlwbGVNb2RlLnJlZ2lzdGVyKCk7XG5EcmFmdEhhbmRsZXJCdXR0b24ucmVnaXN0ZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgdGhpc0xpYjtcbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0aGlzTGliIiwiQ29yZSIsImluaXRMaWJyYXJ5IiwibmFtZSIsImRlcGVuZGVuY2llcyIsInR5cGVzIiwiaW50ZXJmYWNlcyIsImNvbnRyb2xzIiwiZWxlbWVudHMiLCJ2ZXJzaW9uIiwibm9MaWJyYXJ5Q1NTIiwiT2JqZWN0UGFnZSIsIlNlY3Rpb25MYXlvdXQiLCJQYWdlIiwiVGFicyIsIk11bHRpcGxlTW9kZSIsInJlZ2lzdGVyIiwiRHJhZnRIYW5kbGVyQnV0dG9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJsaWJyYXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInNhcC9mL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC9mZS9jb21tb24vbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL2ZlL21hY3Jvcy9saWJyYXJ5XCI7XG5pbXBvcnQgTXVsdGlwbGVNb2RlIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvdmlldy9mcmFnbWVudHMvTXVsdGlwbGVNb2RlLmZyYWdtZW50XCI7XG5pbXBvcnQgRHJhZnRIYW5kbGVyQnV0dG9uIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY29tcG9uZW50cy9EcmFmdEhhbmRsZXJCdXR0b25cIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG4vKipcbiAqIExpYnJhcnkgcHJvdmlkaW5nIHRoZSBvZmZpY2lhbCB0ZW1wbGF0ZXMgc3VwcG9ydGVkIGJ5IFNBUCBGaW9yaSBlbGVtZW50cy5cbiAqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUudGVtcGxhdGVzXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnRcbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZVxuICogQHB1YmxpY1xuICovXG5jb25zdCB0aGlzTGliID0gQ29yZS5pbml0TGlicmFyeSh7XG5cdG5hbWU6IFwic2FwLmZlLnRlbXBsYXRlc1wiLFxuXHRkZXBlbmRlbmNpZXM6IFtcInNhcC51aS5jb3JlXCIsIFwic2FwLmZlLmNvcmVcIiwgXCJzYXAuZmUubWFjcm9zXCIsIFwic2FwLmZlLmNvbW1vblwiLCBcInNhcC5mXCJdLFxuXHR0eXBlczogW1wic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLlNlY3Rpb25MYXlvdXRcIl0sXG5cdGludGVyZmFjZXM6IFtdLFxuXHRjb250cm9sczogW10sXG5cdGVsZW1lbnRzOiBbXSxcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZ1xuXHR2ZXJzaW9uOiBcIiR7dmVyc2lvbn1cIixcblx0bm9MaWJyYXJ5Q1NTOiB0cnVlXG59KSBhcyBhbnk7XG5cbmlmICghdGhpc0xpYi5PYmplY3RQYWdlKSB7XG5cdHRoaXNMaWIuT2JqZWN0UGFnZSA9IHt9O1xufVxudGhpc0xpYi5PYmplY3RQYWdlLlNlY3Rpb25MYXlvdXQgPSB7XG5cdC8qKlxuXHQgKiBBbGwgc2VjdGlvbnMgYXJlIHNob3duIGluIG9uZSBwYWdlXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFBhZ2U6IFwiUGFnZVwiLFxuXG5cdC8qKlxuXHQgKiBBbGwgdG9wLWxldmVsIHNlY3Rpb25zIGFyZSBzaG93biBpbiBhbiBvd24gdGFiXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFRhYnM6IFwiVGFic1wiXG59O1xuXG5NdWx0aXBsZU1vZGUucmVnaXN0ZXIoKTtcbkRyYWZ0SGFuZGxlckJ1dHRvbi5yZWdpc3RlcigpO1xuXG5leHBvcnQgZGVmYXVsdCB0aGlzTGliO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsSUFBTUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLFdBQUwsQ0FBaUI7SUFDaENDLElBQUksRUFBRSxrQkFEMEI7SUFFaENDLFlBQVksRUFBRSxDQUFDLGFBQUQsRUFBZ0IsYUFBaEIsRUFBK0IsZUFBL0IsRUFBZ0QsZUFBaEQsRUFBaUUsT0FBakUsQ0FGa0I7SUFHaENDLEtBQUssRUFBRSxDQUFDLDJDQUFELENBSHlCO0lBSWhDQyxVQUFVLEVBQUUsRUFKb0I7SUFLaENDLFFBQVEsRUFBRSxFQUxzQjtJQU1oQ0MsUUFBUSxFQUFFLEVBTnNCO0lBT2hDO0lBQ0FDLE9BQU8sRUFBRSxZQVJ1QjtJQVNoQ0MsWUFBWSxFQUFFO0VBVGtCLENBQWpCLENBQWhCOztFQVlBLElBQUksQ0FBQ1YsT0FBTyxDQUFDVyxVQUFiLEVBQXlCO0lBQ3hCWCxPQUFPLENBQUNXLFVBQVIsR0FBcUIsRUFBckI7RUFDQTs7RUFDRFgsT0FBTyxDQUFDVyxVQUFSLENBQW1CQyxhQUFuQixHQUFtQztJQUNsQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLElBQUksRUFBRSxNQU40Qjs7SUFRbEM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUNDQyxJQUFJLEVBQUU7RUFiNEIsQ0FBbkM7RUFnQkFDLFlBQVksQ0FBQ0MsUUFBYjtFQUNBQyxrQkFBa0IsQ0FBQ0QsUUFBbkI7U0FFZWhCLE8ifQ==
@@ -126,10 +126,10 @@ T_KEYBOARD_SHORTCUT_SAVE_MAC=CMD+S
126
126
 
127
127
 
128
128
 
129
- T_TABLE_AND_CHART_NO_DATA_TEXT=\u0417\u0430 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442\u0435, \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0440\u0435\u043B\u0435\u0432\u0430\u043D\u0442\u043D\u0438\u0442\u0435 \u0444\u0438\u043B\u0442\u0440\u0438.
129
+ T_TABLE_AND_CHART_NO_DATA_TEXT=\u0417\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0435\u0442\u0435, \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0441\u044A\u043E\u0442\u0432\u0435\u0442\u043D\u0438 \u0444\u0438\u043B\u0442\u0440\u0438 \u0438 \u043D\u0430\u0442\u0438\u0441\u043D\u0435\u0442\u0435 "\u041D\u0430\u0447\u0430\u043B\u043E".
130
130
 
131
131
 
132
- T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=\u041D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0434\u0430\u043D\u043D\u0438. \u041E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u043A\u043E\u0440\u0438\u0433\u0438\u0440\u0430\u0442\u0435 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E \u0438\u043B\u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u0442\u0435 \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435.
132
+ T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=\u041D\u0435 \u0441\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0434\u0430\u043D\u043D\u0438. \u041A\u043E\u0440\u0438\u0433\u0438\u0440\u0430\u0439\u0442\u0435 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E \u0438\u043B\u0438 \u0444\u0438\u043B\u0442\u044A\u0440\u0430.
133
133
 
134
134
 
135
135
  T_SEGMENTED_BUTTON_TOOLTIP_VISUAL=\u0412\u0438\u0437\u0443\u0430\u043B\u043D\u0438 \u0444\u0438\u043B\u0442\u0440\u0438
@@ -126,10 +126,10 @@ T_KEYBOARD_SHORTCUT_SAVE_MAC=CMD+S
126
126
 
127
127
 
128
128
 
129
- T_TABLE_AND_CHART_NO_DATA_TEXT=I gychwyn, gosodwch yr hidlyddion perthnasol.
129
+ T_TABLE_AND_CHART_NO_DATA_TEXT=I ddechrau, gosodwch yr hidlyddion perthnasol a chlicio \u201CMynd\u201D.
130
130
 
131
131
 
132
- T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Heb ddod o hyd i ddata. Ceisiwch addasu\u2019r meini prawf chwilio neu hidlo.
132
+ T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Heb ddod o hyd i ddata. Ceisiwch addasu\u2019r paramedrau chwilio neu hidlo.
133
133
 
134
134
 
135
135
  T_SEGMENTED_BUTTON_TOOLTIP_VISUAL=Hidlyddion Gweledol
@@ -14,8 +14,6 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=iUGVQB4G6mKOzqmZ33o0wA_Sessi
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=OhkvpKMehTl1Fhnqtnu4uA_Your editing session has expired. Any unsaved changes have been lost.\nChoose OK to go back to the previous page.
16
16
 
17
- C_COMMON_DELETE=nQ+DdamU/0TH96ncCtownw_Delete
18
-
19
17
  T_OP_RELATED_APPS=ifuulMGHtWcMw1gYunQmQQ_Related Apps
20
18
 
21
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=RxjyS+dYnThqTrJI4O+YXA_Apply
@@ -80,9 +78,6 @@ T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD=VaiPsgeX390WqnROAP9WCQ_Heade
80
78
  T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD_PLURAL=HjeoOYI3vlpE6ttU71Jd+w_Header Facets
81
79
 
82
80
 
83
- C_ROUTING_NAVIGATION_DISABLED_TITLE=ap/TrXzwyQVA8MlhmYXkTQ_Navigation currently not possible
84
-
85
-
86
81
  T_COMMON_NAVIGATION_DISABLED_MULTIPLE_CONTEXTS=5PCgav+1e2EFwwmhNAioCw_Select one item only.
87
82
 
88
83
 
@@ -131,10 +126,10 @@ T_KEYBOARD_SHORTCUT_SAVE_MAC=T+V8dLQL70Tlin08wfX0TA_CMD+S
131
126
 
132
127
 
133
128
 
134
- T_TABLE_AND_CHART_NO_DATA_TEXT=TtuGvSQ7TN6IMcdjQ4D5/A_To start, set the relevant filters.
129
+ T_TABLE_AND_CHART_NO_DATA_TEXT=ywXV39B5mAnhrR2c4TvwSQ_To start, set the relevant filters and choose "Go".
135
130
 
136
131
 
137
- T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Jyz98X9fsqY0qSpTaALB3g_No data found. Try adjusting search or filter criteria.
132
+ T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=SXtbohiAnc64h81mBvzeXg_No data found. Try adjusting the search or filter parameters.
138
133
 
139
134
 
140
135
  T_SEGMENTED_BUTTON_TOOLTIP_VISUAL=j8PQ13dEjLQdgX4/UvVydQ_Visual Filters
@@ -126,10 +126,10 @@ T_KEYBOARD_SHORTCUT_SAVE_MAC=CMD+S
126
126
 
127
127
 
128
128
 
129
- T_TABLE_AND_CHART_NO_DATA_TEXT=Lai s\u0101ktu, iestatiet atbilsto\u0161os filtrus
129
+ T_TABLE_AND_CHART_NO_DATA_TEXT=Lai s\u0101ktu, iestatiet atbilsto\u0161os filtrus un izv\u0113lieties Aiziet\!.
130
130
 
131
131
 
132
- T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Dati nav atrasti. M\u0113\u0123iniet piel\u0101got mekl\u0113\u0161anu vai filtr\u0113\u0161anas krit\u0113rijus.
132
+ T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Dati nav atrasti. M\u0113\u0123iniet piel\u0101got mekl\u0113\u0161anas vai filtr\u0113\u0161anas parametrus.
133
133
 
134
134
 
135
135
  T_SEGMENTED_BUTTON_TOOLTIP_VISUAL=Vizu\u0101lais filtrs
@@ -1,50 +0,0 @@
1
- <core:FragmentDefinition
2
- xmlns="sap.m"
3
- xmlns:core="sap.ui.core"
4
- xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
5
- xmlns:customData="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
6
- >
7
- <IconTabBar
8
- expandable="false"
9
- headerMode="Inline"
10
- id="{converterContext>iconTabBarId}"
11
- select=".handlers.onTabMultiModeChange"
12
- stretchContentHeight="true"
13
- customData:showCounts="{converterContext>showTabCounts}"
14
- >
15
- <items>
16
- <template:repeat list="{converterContext>views}" var="view">
17
- <template:with path="view>presentation" var="presentationContext">
18
- <IconTabFilter
19
- text="{view>title}"
20
- key="{= ${view>tableControlId} || ${view>customTabId} || ${view>chartControlId}}"
21
- visible="{view>visible}"
22
- customData:selectionVariant="{view>selectionVariantPath}"
23
- >
24
- <content>
25
- <template:if test="{= ${view>type} === 'Custom'}">
26
- <template:then>
27
- <core:Fragment fragmentName="sap.fe.templates.ListReport.view.fragments.CustomView" type="XML" />
28
- </template:then>
29
- <template:else>
30
- <MessageStrip
31
- text="{= '{= (${internal>tabs/ignoredFieldsTitle/' + (${view>tableControlId} || ${view>chartControlId}) + '} ) }' }"
32
- type="Information"
33
- showIcon="true"
34
- showCloseButton="true"
35
- class="sapUiSmallMargin"
36
- visible="{= '{= (${internal>tabs/ignoredFields/' + (${view>tableControlId} || ${view>chartControlId}) + '} || []).length>0 }' }"
37
- />
38
- <core:Fragment
39
- fragmentName="sap.fe.templates.ListReport.view.fragments.CollectionVisualization"
40
- type="XML"
41
- />
42
- </template:else>
43
- </template:if>
44
- </content>
45
- </IconTabFilter>
46
- </template:with>
47
- </template:repeat>
48
- </items>
49
- </IconTabBar>
50
- </core:FragmentDefinition>
@@ -1,25 +0,0 @@
1
- <core:FragmentDefinition
2
- xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
3
- xmlns="sap.m"
4
- xmlns:macro="sap.fe.macros.internal"
5
- xmlns:core="sap.ui.core"
6
- >
7
- <template:if test="{= ${converterContext>template} === 'ObjectPage'}">
8
- <template:then>
9
- <VBox fitContainer="true" alignItems="Stretch" alignContent="Stretch" justifyContent="Start" renderType="Div">
10
- <MessageStrip
11
- text="{sap.fe.i18n>C_MULTIVIZ_CHART_IGNORED_FILTER_DRAFT_DATA}"
12
- type="Information"
13
- showIcon="true"
14
- showCloseButton="true"
15
- class="sapUiSmallMargin"
16
- visible="{='{= ${internal>controls/showMessageStrip/' + (${visualizationDefinition>entityName}) + (${visualizationDefinition>type}) + '} }' }"
17
- />
18
- <core:Fragment fragmentName="sap.fe.templates.controls.MacroChart" type="XML" />
19
- </VBox>
20
- </template:then>
21
- <template:else>
22
- <core:Fragment fragmentName="sap.fe.templates.controls.MacroChart" type="XML" />
23
- </template:else>
24
- </template:if>
25
- </core:FragmentDefinition>