@sapui5/sap.fe.core 1.93.3 → 1.96.2

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 (182) hide show
  1. package/package.json +2 -2
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +9 -40
  4. package/src/sap/fe/core/BusyLocker.js +12 -0
  5. package/src/sap/fe/core/CommonUtils.js +430 -27
  6. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  7. package/src/sap/fe/core/PageController.js +13 -2
  8. package/src/sap/fe/core/TemplateComponent.js +6 -0
  9. package/src/sap/fe/core/TransactionHelper.js +248 -170
  10. package/src/sap/fe/core/actions/draft.js +13 -1
  11. package/src/sap/fe/core/actions/operations.js +165 -45
  12. package/src/sap/fe/core/controllerextensions/EditFlow.js +56 -37
  13. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +13 -6
  14. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +127 -24
  15. package/src/sap/fe/core/controllerextensions/InternalRouting.js +183 -164
  16. package/src/sap/fe/core/controllerextensions/KPIManagement.js +834 -170
  17. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +890 -189
  18. package/src/sap/fe/core/controllerextensions/PageReady.js +48 -33
  19. package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -14
  20. package/src/sap/fe/core/controllerextensions/Paginator.js +150 -0
  21. package/src/sap/fe/core/controllerextensions/Placeholder.js +133 -270
  22. package/src/sap/fe/core/controllerextensions/Share.js +31 -13
  23. package/src/sap/fe/core/controllerextensions/SideEffects.js +5 -6
  24. package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
  25. package/src/sap/fe/core/controllerextensions/ViewState.js +173 -6
  26. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
  27. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
  28. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +1 -1
  29. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -0
  30. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
  31. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +15 -4
  32. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +250 -94
  33. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +129 -135
  34. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +325 -0
  35. package/src/sap/fe/core/converters/ConverterContext.js +19 -5
  36. package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
  37. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  38. package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
  39. package/src/sap/fe/core/converters/ManifestWrapper.js +9 -9
  40. package/src/sap/fe/core/converters/MetaModelConverter.js +858 -871
  41. package/src/sap/fe/core/converters/MetaModelConverter.ts +763 -826
  42. package/src/sap/fe/core/converters/TemplateConverter.js +4 -4
  43. package/src/sap/fe/core/converters/annotations/DataField.js +57 -7
  44. package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
  45. package/src/sap/fe/core/converters/common/AnnotationConverter.js +80 -46
  46. package/src/sap/fe/core/converters/controls/Common/Action.js +56 -54
  47. package/src/sap/fe/core/converters/controls/Common/Action.ts +48 -36
  48. package/src/sap/fe/core/converters/controls/Common/Chart.js +101 -9
  49. package/src/sap/fe/core/converters/controls/Common/Chart.ts +100 -5
  50. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
  51. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
  52. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
  53. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -12
  54. package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -8
  55. package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
  56. package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
  57. package/src/sap/fe/core/converters/controls/Common/Table.js +414 -171
  58. package/src/sap/fe/core/converters/controls/Common/Table.ts +412 -130
  59. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +487 -0
  60. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +541 -0
  61. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +364 -0
  62. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +338 -0
  63. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
  64. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
  65. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +11 -11
  66. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +47 -35
  67. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +45 -29
  68. package/src/sap/fe/core/converters/helpers/Aggregation.js +31 -32
  69. package/src/sap/fe/core/converters/helpers/Aggregation.ts +26 -27
  70. package/src/sap/fe/core/converters/helpers/BindingHelper.js +27 -2
  71. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +22 -2
  72. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  73. package/src/sap/fe/core/converters/helpers/ID.js +1 -3
  74. package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
  75. package/src/sap/fe/core/converters/helpers/IssueManager.js +5 -4
  76. package/src/sap/fe/core/converters/helpers/IssueManager.ts +4 -3
  77. package/src/sap/fe/core/converters/helpers/Key.js +3 -3
  78. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
  79. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
  80. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -5
  81. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
  82. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +91 -20
  83. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +77 -5
  84. package/src/sap/fe/core/converters/templates/ListReportConverter.js +76 -714
  85. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +75 -807
  86. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -17
  87. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +121 -16
  88. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  89. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  90. package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
  91. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  92. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  93. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
  94. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  95. package/src/sap/fe/core/fpm/Component.js +1 -1
  96. package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -3
  97. package/src/sap/fe/core/helpers/BindingExpression.js +6 -6
  98. package/src/sap/fe/core/helpers/ClassSupport.js +4 -4
  99. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +0 -2
  100. package/src/sap/fe/core/helpers/ModelHelper.js +27 -0
  101. package/src/sap/fe/core/helpers/PasteHelper.js +6 -0
  102. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -2
  103. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  104. package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
  105. package/src/sap/fe/core/jsx-runtime/jsx.js +2 -2
  106. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  107. package/src/sap/fe/core/library.js +1 -1
  108. package/src/sap/fe/core/messagebundle.properties +30 -1
  109. package/src/sap/fe/core/messagebundle_ar.properties +43 -1
  110. package/src/sap/fe/core/messagebundle_bg.properties +42 -0
  111. package/src/sap/fe/core/messagebundle_ca.properties +44 -2
  112. package/src/sap/fe/core/messagebundle_cs.properties +42 -0
  113. package/src/sap/fe/core/messagebundle_cy.properties +42 -0
  114. package/src/sap/fe/core/messagebundle_da.properties +43 -1
  115. package/src/sap/fe/core/messagebundle_de.properties +45 -3
  116. package/src/sap/fe/core/messagebundle_el.properties +43 -1
  117. package/src/sap/fe/core/messagebundle_en.properties +42 -0
  118. package/src/sap/fe/core/messagebundle_en_GB.properties +43 -1
  119. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +43 -1
  120. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +48 -0
  121. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -0
  122. package/src/sap/fe/core/messagebundle_es.properties +50 -8
  123. package/src/sap/fe/core/messagebundle_es_MX.properties +45 -3
  124. package/src/sap/fe/core/messagebundle_et.properties +42 -0
  125. package/src/sap/fe/core/messagebundle_fi.properties +42 -0
  126. package/src/sap/fe/core/messagebundle_fr.properties +51 -9
  127. package/src/sap/fe/core/messagebundle_fr_CA.properties +42 -0
  128. package/src/sap/fe/core/messagebundle_hi.properties +43 -1
  129. package/src/sap/fe/core/messagebundle_hr.properties +43 -1
  130. package/src/sap/fe/core/messagebundle_hu.properties +42 -0
  131. package/src/sap/fe/core/messagebundle_id.properties +43 -1
  132. package/src/sap/fe/core/messagebundle_it.properties +43 -1
  133. package/src/sap/fe/core/messagebundle_iw.properties +44 -2
  134. package/src/sap/fe/core/messagebundle_ja.properties +43 -1
  135. package/src/sap/fe/core/messagebundle_kk.properties +43 -1
  136. package/src/sap/fe/core/messagebundle_ko.properties +43 -1
  137. package/src/sap/fe/core/messagebundle_lt.properties +43 -1
  138. package/src/sap/fe/core/messagebundle_lv.properties +43 -1
  139. package/src/sap/fe/core/messagebundle_ms.properties +43 -1
  140. package/src/sap/fe/core/messagebundle_nl.properties +47 -5
  141. package/src/sap/fe/core/messagebundle_no.properties +44 -2
  142. package/src/sap/fe/core/messagebundle_pl.properties +43 -1
  143. package/src/sap/fe/core/messagebundle_pt.properties +43 -1
  144. package/src/sap/fe/core/messagebundle_pt_PT.properties +43 -1
  145. package/src/sap/fe/core/messagebundle_ro.properties +43 -1
  146. package/src/sap/fe/core/messagebundle_ru.properties +43 -1
  147. package/src/sap/fe/core/messagebundle_sh.properties +43 -1
  148. package/src/sap/fe/core/messagebundle_sk.properties +42 -0
  149. package/src/sap/fe/core/messagebundle_sl.properties +43 -1
  150. package/src/sap/fe/core/messagebundle_sv.properties +43 -1
  151. package/src/sap/fe/core/messagebundle_th.properties +42 -0
  152. package/src/sap/fe/core/messagebundle_tr.properties +42 -0
  153. package/src/sap/fe/core/messagebundle_uk.properties +42 -0
  154. package/src/sap/fe/core/messagebundle_vi.properties +43 -1
  155. package/src/sap/fe/core/messagebundle_zh_CN.properties +43 -1
  156. package/src/sap/fe/core/messagebundle_zh_TW.properties +43 -1
  157. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -5
  158. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -5
  159. package/src/sap/fe/core/services/RoutingServiceFactory.js +155 -76
  160. package/src/sap/fe/core/services/ShellServicesFactory.js +9 -9
  161. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +11 -12
  162. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -1
  163. package/src/sap/fe/core/support/AnnotationIssue.support.js +2 -4
  164. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +2 -4
  165. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -4
  166. package/src/sap/fe/core/support/CommonHelper.js +2 -4
  167. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  168. package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -4
  169. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  170. package/src/sap/fe/core/templating/DataModelPathHelper.js +54 -6
  171. package/src/sap/fe/core/templating/DataModelPathHelper.ts +54 -4
  172. package/src/sap/fe/core/templating/EntitySetHelper.js +13 -3
  173. package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -0
  174. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  175. package/src/sap/fe/core/templating/FilterHelper.js +23 -5
  176. package/src/sap/fe/core/templating/FilterHelper.ts +15 -1
  177. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  178. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  179. package/src/sap/fe/core/templating/PropertyHelper.js +8 -8
  180. package/src/sap/fe/core/templating/UIFormatters.js +72 -4
  181. package/src/sap/fe/core/templating/UIFormatters.ts +98 -3
  182. package/src/sap/fe/core/type/Email.js +1 -1
@@ -87,4 +87,4 @@ sap.ui.define([], function () {
87
87
  _exports.SelectionMode = SelectionMode;
88
88
  return _exports;
89
89
  }, false);
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmlmZXN0U2V0dGluZ3MudHMiXSwibmFtZXMiOlsiVGVtcGxhdGVUeXBlIiwiQWN0aW9uVHlwZSIsIlZpc3VhbGl6YXRpb25UeXBlIiwiVmFyaWFudE1hbmFnZW1lbnRUeXBlIiwiQ3JlYXRpb25Nb2RlIiwiQXZhaWxhYmlsaXR5VHlwZSIsIkhvcml6b250YWxBbGlnbiIsIlNlbGVjdGlvbk1vZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztNQUtZQSxZOzthQUFBQSxZO0FBQUFBLElBQUFBLFk7QUFBQUEsSUFBQUEsWTtBQUFBQSxJQUFBQSxZO0tBQUFBLFksS0FBQUEsWTs7O01BTUFDLFU7O2FBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7S0FBQUEsVSxLQUFBQSxVOzs7TUFnQkFDLGlCOzthQUFBQSxpQjtBQUFBQSxJQUFBQSxpQjtBQUFBQSxJQUFBQSxpQjtLQUFBQSxpQixLQUFBQSxpQjs7O01BS0FDLHFCOzthQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtLQUFBQSxxQixLQUFBQSxxQjs7O01BV0FDLFk7O2FBQUFBLFk7QUFBQUEsSUFBQUEsWTtBQUFBQSxJQUFBQSxZO0FBQUFBLElBQUFBLFk7S0FBQUEsWSxLQUFBQSxZOzs7TUFNQUMsZ0I7O2FBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0tBQUFBLGdCLEtBQUFBLGdCOzs7TUFNQUMsZTs7YUFBQUEsZTtBQUFBQSxJQUFBQSxlO0FBQUFBLElBQUFBLGU7QUFBQUEsSUFBQUEsZTtLQUFBQSxlLEtBQUFBLGU7OztNQWlVQUMsYTs7YUFBQUEsYTtBQUFBQSxJQUFBQSxhO0FBQUFBLElBQUFBLGE7QUFBQUEsSUFBQUEsYTtBQUFBQSxJQUFBQSxhO0tBQUFBLGEsS0FBQUEsYSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJhYmxlUmVjb3JkLCBQb3NpdGlvbiwgUG9zaXRpb25hYmxlIH0gZnJvbSBcIi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEZsZXhTZXR0aW5ncywgSGVhZGVyRmFjZXRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvT2JqZWN0UGFnZS9IZWFkZXJGYWNldFwiO1xuaW1wb3J0IHsgQmluZGluZ0V4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgVGFibGVUeXBlIH0gZnJvbSBcIi4vY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5cbmV4cG9ydCBlbnVtIFRlbXBsYXRlVHlwZSB7XG5cdExpc3RSZXBvcnQgPSBcIkxpc3RSZXBvcnRcIixcblx0T2JqZWN0UGFnZSA9IFwiT2JqZWN0UGFnZVwiLFxuXHRBbmFseXRpY2FsTGlzdFBhZ2UgPSBcIkFuYWx5dGljYWxMaXN0UGFnZVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuXHREYXRhRmllbGRGb3JBY3Rpb24gPSBcIkZvckFjdGlvblwiLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gPSBcIkZvck5hdmlnYXRpb25cIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRQcmltYXJ5ID0gXCJQcmltYXJ5XCIsXG5cdFNlY29uZGFyeSA9IFwiU2Vjb25kYXJ5XCIsXG5cdFN3aXRjaFRvQWN0aXZlT2JqZWN0ID0gXCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRTd2l0Y2hUb0RyYWZ0T2JqZWN0ID0gXCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdERlZmF1bHRBcHBseSA9IFwiRGVmYXVsdEFwcGx5XCIsXG5cdE1lbnUgPSBcIk1lbnVcIlxufVxuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNpZGVDb250ZW50ID0ge1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGVudW0gVmlzdWFsaXphdGlvblR5cGUge1xuXHRUYWJsZSA9IFwiVGFibGVcIixcblx0Q2hhcnQgPSBcIkNoYXJ0XCJcbn1cblxuZXhwb3J0IGVudW0gVmFyaWFudE1hbmFnZW1lbnRUeXBlIHtcblx0UGFnZSA9IFwiUGFnZVwiLFxuXHRDb250cm9sID0gXCJDb250cm9sXCIsXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG5leHBvcnQgdHlwZSBDb250ZW50RGVuc2l0aWVzVHlwZSA9IHtcblx0Y29tcGFjdD86IGJvb2xlYW47XG5cdGNvenk/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGVudW0gQ3JlYXRpb25Nb2RlIHtcblx0TmV3UGFnZSA9IFwiTmV3UGFnZVwiLFxuXHRJbmxpbmUgPSBcIklubGluZVwiLFxuXHRDcmVhdGlvblJvdyA9IFwiQ3JlYXRpb25Sb3dcIlxufVxuXG5leHBvcnQgZW51bSBBdmFpbGFiaWxpdHlUeXBlIHtcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRBZGFwdGF0aW9uID0gXCJBZGFwdGF0aW9uXCIsXG5cdEhpZGRlbiA9IFwiSGlkZGVuXCJcbn1cblxuZXhwb3J0IGVudW0gSG9yaXpvbnRhbEFsaWduIHtcblx0RW5kID0gXCJFbmRcIixcblx0QmVnaW4gPSBcIkJlZ2luXCIsXG5cdENlbnRlciA9IFwiQ2VudGVyXCJcbn1cblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5TZXR0aW5ncyA9IHtcblx0bWljcm9DaGFydFNpemU/OiBzdHJpbmc7XG5cdHNob3dNaWNyb0NoYXJ0TGFiZWw/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIGZvciBtdWx0aWxpbmUgdGV4dCBmaWVsZHMgb24gYSBmb3JtIG9yIGluIGEgdGFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRm9ybWF0T3B0aW9uc1R5cGUgPSB7XG5cdHRleHRMaW5lc0Rpc3BsYXk6IG51bWJlcjtcblx0dGV4dExpbmVzRWRpdDogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9mIGEgS1BJIGluIHRoZSBtYW5pZmVzdFxuICovXG5leHBvcnQgdHlwZSBLUElDb25maWd1cmF0aW9uID0ge1xuXHRtb2RlbD86IHN0cmluZztcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdHF1YWxpZmllcjogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBCYXNlTWFuaWZlc3RTZXR0aW5nc1xuICovXG5leHBvcnQgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyA9IHtcblx0Y29udGVudD86IHtcblx0XHRoZWFkZXI/OiB7XG5cdFx0XHRmYWNldHM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RIZWFkZXJGYWNldD47XG5cdFx0XHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPjtcblx0XHR9O1xuXHRcdGZvb3Rlcj86IHtcblx0XHRcdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzoge1xuXHRcdFthbm5vdGF0aW9uUGF0aDogc3RyaW5nXTogQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbjtcblx0fSAmIHtcblx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiPzogVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmFjZXRzXCI/OiBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvbjtcblx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHNcIj86IEhlYWRlckZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiPzogRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHR9O1xuXHRjb252ZXJ0ZXJUeXBlOiBUZW1wbGF0ZVR5cGU7XG5cdGVudGl0eVNldDogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uPzoge1xuXHRcdFtuYXZpZ2F0aW9uUGF0aDogc3RyaW5nXTogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbjtcblx0fTtcblx0dmlld0xldmVsPzogbnVtYmVyO1xuXHRmY2xFbmFibGVkPzogYm9vbGVhbjtcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHZhcmlhbnRNYW5hZ2VtZW50PzogVmFyaWFudE1hbmFnZW1lbnRUeXBlO1xuXHRkZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0Y29udGVudERlbnNpdGllcz86IENvbnRlbnREZW5zaXRpZXNUeXBlO1xuXHRzaGVsbENvbnRlbnREZW5zaXR5Pzogc3RyaW5nO1xuXHRpc0Rlc2t0b3A/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb24gPSB7XG5cdG91dGJvdW5kPzogc3RyaW5nO1xuXHRvdXRib3VuZERldGFpbD86IHtcblx0XHRzZW1hbnRpY09iamVjdDogc3RyaW5nO1xuXHRcdGFjdGlvbjogc3RyaW5nO1xuXHRcdHBhcmFtZXRlcnM/OiBhbnk7XG5cdH07XG5cdHJvdXRlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24gPSB7XG5cdGNyZWF0ZT86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkZXRhaWw/OiBOYXZpZ2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbjtcblx0ZGlzcGxheT86IHtcblx0XHRvdXRib3VuZD86IHN0cmluZztcblx0XHR0YXJnZXQ/OiBzdHJpbmc7IC8vIGZvciBjb21wYXRpYmlsaXR5XG5cdFx0cm91dGU/OiBzdHJpbmc7XG5cdH07XG59O1xuXG50eXBlIEhlYWRlckZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uID0ge1xuXHRmYWNldHM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcbn07XG5cbnR5cGUgRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdHNlY3Rpb25zOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RTZWN0aW9uPjtcbn07XG5cbnR5cGUgTWFuaWZlc3RGb3JtRWxlbWVudCA9IFBvc2l0aW9uYWJsZSAmIHtcblx0dGVtcGxhdGU6IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGZpZWxkczogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0Rm9ybUVsZW1lbnQ+O1xufTtcblxuZXhwb3J0IHR5cGUgQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9XG5cdHwgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBDaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IEZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uXG5cdHwgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb25cblx0fCBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXG4vKiogT2JqZWN0IFBhZ2UgKiovXG5cbmV4cG9ydCB0eXBlIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzID0gQmFzZU1hbmlmZXN0U2V0dGluZ3MgJiB7XG5cdGNvbnRlbnQ/OiB7XG5cdFx0aGVhZGVyPzoge1xuXHRcdFx0dmlzaWJsZT86IGJvb2xlYW47XG5cdFx0XHRhbmNob3JCYXJWaXNpYmxlPzogYm9vbGVhbjtcblx0XHRcdGZhY2V0cz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcblx0XHR9O1xuXHRcdGJvZHk/OiB7XG5cdFx0XHRzZWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGVkaXRhYmxlSGVhZGVyQ29udGVudDogYm9vbGVhbjtcblx0c2VjdGlvbkxheW91dDogXCJUYWJzXCIgfCBcIlBhZ2VcIjtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RIZWFkZXJGYWNldFxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEhlYWRlckZhY2V0ID0ge1xuXHR0eXBlPzogSGVhZGVyRmFjZXRUeXBlO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dmlzaWJsZT86IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHR0aXRsZT86IHN0cmluZztcblx0c3ViVGl0bGU/OiBzdHJpbmc7XG5cdHN0YXNoZWQ/OiBib29sZWFuO1xuXHRmbGV4U2V0dGluZ3M/OiBGbGV4U2V0dGluZ3M7XG5cdHJlcXVlc3RHcm91cElkPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZUVkaXQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE1hbmlmZXN0U2VjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNlY3Rpb24gPSB7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0dmlzaWJsZT86IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0c3ViU2VjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdFN1YlNlY3Rpb24+O1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RTdWJTZWN0aW9uID0ge1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdGFjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdEFjdGlvbj47XG5cdHNpZGVDb250ZW50PzogTWFuaWZlc3RTaWRlQ29udGVudDtcbn07XG5cbi8qKiBMaXN0IFJlcG9ydCAqKi9cblxuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MgPSBCYXNlTWFuaWZlc3RTZXR0aW5ncyAmIHtcblx0aW5pdGlhbExvYWQ/OiBib29sZWFuO1xuXHR2aWV3cz86IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uO1xuXHRrZXlQZXJmb3JtYW5jZUluZGljYXRvcnM/OiB7XG5cdFx0W2twaU5hbWU6IHN0cmluZ106IEtQSUNvbmZpZ3VyYXRpb247XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblxuZXhwb3J0IHR5cGUgVmlld0NvbmZpZ3VyYXRpb24gPSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uID0ge1xuXHRrZXk/OiBzdHJpbmc7XG5cdGxhYmVsOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdGtlZXBQcmV2aW91c1ByZXNvbmFsaXphdGlvbj86IGJvb2xlYW47XG5cdGtleT86IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uID0ge1xuXHRwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0c2Vjb25kYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0ZGVmYXVsdFBhdGg/OiBcImJvdGhcIiB8IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIjtcblx0a2V5Pzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgdHlwZSBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbiA9IHtcblx0cGF0aHM6IFZpZXdDb25maWd1cmF0aW9uW107XG5cdHNob3dDb3VudHM/OiBib29sZWFuO1xufTtcblxuLyoqIEZpbHRlciBDb25maWd1cmF0aW9uICoqL1xuXG4vKiogQHR5cGVkZWYgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uICoqL1xuZXhwb3J0IHR5cGUgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRmaWx0ZXJGaWVsZHM/OiBSZWNvcmQ8c3RyaW5nLCBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbj47XG5cdG5hdmlnYXRpb25Qcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlPzogYm9vbGVhbjtcblx0aW5pdGlhbExheW91dD86IHN0cmluZztcblx0bGF5b3V0Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBQb3NpdGlvbmFibGUgJiB7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0YXZhaWxhYmlsaXR5PzogQXZhaWxhYmlsaXR5VHlwZTtcblx0c2V0dGluZ3M/OiBGaWx0ZXJTZXR0aW5ncztcblx0dmlzdWFsRmlsdGVyPzogdmlzdWFsRmlsdGVyQ29uZmlndXJhdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIHZpc3VhbEZpbHRlckNvbmZpZ3VyYXRpb24gPSB7XG5cdHZhbHVlTGlzdD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9wZXJhdG9yQ29uZmlndXJhdGlvbiA9IHtcblx0cGF0aDogc3RyaW5nO1xuXHRlcXVhbHM/OiBzdHJpbmc7XG5cdGNvbnRhaW5zPzogc3RyaW5nO1xuXHRleGNsdWRlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdE9wZXJhdG9yID0ge1xuXHRvcGVyYXRvcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyU2V0dGluZ3MgPSB7XG5cdG9wZXJhdG9yQ29uZmlndXJhdGlvbj86IE9wZXJhdG9yQ29uZmlndXJhdGlvbltdO1xuXHRkZWZhdWx0VmFsdWVzPzogRGVmYXVsdE9wZXJhdG9yW107XG59O1xuXG4vKiogQ2hhcnQgQ29uZmlndXJhdGlvbiAqKi9cblxuZXhwb3J0IHR5cGUgQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzID1cblx0fCBib29sZWFuXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdHR5cGU6IGJvb2xlYW47XG5cdFx0XHRpdGVtOiBib29sZWFuO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRjaGFydFNldHRpbmdzOiB7XG5cdFx0cGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3M7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hdmlnYXRlVG9JbnN0YW5jZT86IGJvb2xlYW47XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBib29sZWFuO1xufTtcblxuLyoqIFRhYmxlIENvbmZpZ3VyYXRpb24gKiovXG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RBY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RBY3Rpb24gPSB7XG5cdG1lbnU/OiBzdHJpbmdbXTtcblx0dmlzaWJsZT86IHN0cmluZztcblx0ZW5hYmxlZD86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0cHJlc3M/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdF9fbm9XcmFwPzogYm9vbGVhbjtcblx0ZW5hYmxlT25TZWxlY3Q/OiBzdHJpbmc7XG5cdGRlZmF1bHRWYWx1ZXNGdW5jdGlvbj86IHN0cmluZztcblx0cmVxdWlyZXNTZWxlY3Rpb24/OiBib29sZWFuO1xuXHRhZnRlckV4ZWN1dGlvbj86IEFjdGlvbkFmdGVyRXhlY3V0aW9uQ29uZmlndXJhdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0VGFibGVDb2x1bW5PdmVycmlkZSA9IFBvc2l0aW9uYWJsZSAmIHtcblx0d2lkdGg/OiBzdHJpbmc7XG5cdGhvcml6b250YWxBbGlnbj86IEhvcml6b250YWxBbGlnbjtcblx0YWZ0ZXJFeGVjdXRpb24/OiBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb247XG5cdHNldHRpbmdzPzogVGFibGVDb2x1bW5TZXR0aW5ncztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RUYWJsZUNvbHVtbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0aGVhZGVyOiBzdHJpbmc7XG5cdHdpZHRoPzogc3RyaW5nO1xuXHR0eXBlPzogc3RyaW5nO1xuXHRob3Jpem9udGFsQWxpZ24/OiBIb3Jpem9udGFsQWxpZ247XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHRzZXR0aW5ncz86IFRhYmxlQ29sdW1uU2V0dGluZ3M7XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcblx0cHJvcGVydGllcz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdHRhYmxlU2V0dGluZ3M/OiBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRjb2x1bW5zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RUYWJsZUNvbHVtbiB8IE1hbmlmZXN0VGFibGVDb2x1bW5PdmVycmlkZT47XG59O1xuXG5leHBvcnQgZW51bSBTZWxlY3Rpb25Nb2RlIHtcblx0QXV0byA9IFwiQXV0b1wiLFxuXHROb25lID0gXCJOb25lXCIsXG5cdE11bHRpID0gXCJNdWx0aVwiLFxuXHRTaW5nbGUgPSBcIlNpbmdsZVwiXG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlUGVyc29uYWxpemF0aW9uQ29uZmlndXJhdGlvbiA9XG5cdHwgYm9vbGVhblxuXHR8IHtcblx0XHRcdHNvcnQ6IGJvb2xlYW47XG5cdFx0XHRjb2x1bW46IGJvb2xlYW47XG5cdFx0XHRmaWx0ZXI6IGJvb2xlYW47XG5cdFx0XHRncm91cDogYm9vbGVhbjtcblx0XHRcdGFnZ3JlZ2F0ZTogYm9vbGVhbjtcblx0ICB9O1xuXG5leHBvcnQgdHlwZSBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uID0ge1xuXHRjcmVhdGlvbk1vZGU/OiB7XG5cdFx0ZGlzYWJsZUFkZFJvd0J1dHRvbkZvckVtcHR5RGF0YT86IGJvb2xlYW47XG5cdFx0Y3VzdG9tVmFsaWRhdGlvbkZ1bmN0aW9uPzogc3RyaW5nO1xuXHRcdGNyZWF0ZUF0RW5kPzogYm9vbGVhbjtcblx0XHRuYW1lPzogQ3JlYXRpb25Nb2RlO1xuXHR9O1xuXHRlbmFibGVFeHBvcnQ/OiBib29sZWFuO1xuXHRxdWlja1ZhcmlhbnRTZWxlY3Rpb24/OiB7XG5cdFx0cGF0aHM6IFtcblx0XHRcdHtcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0XHRcdH1cblx0XHRdO1xuXHRcdGhpZGVUYWJsZVRpdGxlPzogYm9vbGVhbjtcblx0XHRzaG93Q291bnRzPzogYm9vbGVhbjtcblx0fTtcblx0cGVyc29uYWxpemF0aW9uPzogVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uO1xuXHQvKipcblx0ICogRGVmaW5lcyBob3cgbWFueSBpdGVtcyBpbiBhIHRhYmxlIGNhbiBiZSBzZWxlY3RlZC4gWW91IGhhdmUgdGhlIGZvbGxvd2luZyBvcHRpb25zOlxuXHQgKiA9PiBieSBkZWZpbmluZyAnTm9uZScgeW91IGNhbiBmdWxseSBkaXNhYmxlIHRoZSBsaXN0IHNlbGVjdGlvblxuXHQgKiA9PiBieSBkZWZpbmluZyAnU2luZ2xlJyB5b3UgYWxsb3cgb25seSBvbmUgaXRlbSB0byBiZSBzZWxlY3RlZFxuXHQgKiA9PiBieSBkZWZpbmluZyAnTXVsdGknIHlvdSBhbGxvdyBzZXZlcmFsIGl0ZW1zIHRvIGJlIHNlbGVjdGVkXG5cdCAqID0+IGJ5IHVzaW5nICdBdXRvJyB5b3UgbGVhdmUgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiAnTm9uZScsIGV4Y2VwdCBpZiB0aGVyZSBpcyBhbiBhY3Rpb24gdGhhdCByZXF1aXJlcyBhIHNlbGVjdGlvbiAoc3VjaCBhcyBkZWxldGluZywgb3IgSUJOKVxuXHQgKi9cblx0c2VsZWN0aW9uTW9kZT86IFNlbGVjdGlvbk1vZGU7XG5cdHR5cGU/OiBUYWJsZVR5cGU7XG5cdGNvbmRlbnNlZFRhYmxlTGF5b3V0PzogYm9vbGVhbjtcblx0c2VsZWN0QWxsPzogYm9vbGVhbjtcblx0c2VsZWN0aW9uTGltaXQ/OiBudW1iZXI7XG5cdGVuYWJsZVBhc3RlPzogYm9vbGVhbjtcblx0ZW5hYmxlRnVsbFNjcmVlbj86IGJvb2xlYW47XG5cdGVuYWJsZU1hc3NFZGl0PzogYm9vbGVhbjtcbn07XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmlmZXN0U2V0dGluZ3MudHMiXSwibmFtZXMiOlsiVGVtcGxhdGVUeXBlIiwiQWN0aW9uVHlwZSIsIlZpc3VhbGl6YXRpb25UeXBlIiwiVmFyaWFudE1hbmFnZW1lbnRUeXBlIiwiQ3JlYXRpb25Nb2RlIiwiQXZhaWxhYmlsaXR5VHlwZSIsIkhvcml6b250YWxBbGlnbiIsIlNlbGVjdGlvbk1vZGUiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztNQUdZQSxZOzthQUFBQSxZO0FBQUFBLElBQUFBLFk7QUFBQUEsSUFBQUEsWTtBQUFBQSxJQUFBQSxZO0tBQUFBLFksS0FBQUEsWTs7O01BTUFDLFU7O2FBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7QUFBQUEsSUFBQUEsVTtBQUFBQSxJQUFBQSxVO0FBQUFBLElBQUFBLFU7S0FBQUEsVSxLQUFBQSxVOzs7TUFpQkFDLGlCOzthQUFBQSxpQjtBQUFBQSxJQUFBQSxpQjtBQUFBQSxJQUFBQSxpQjtLQUFBQSxpQixLQUFBQSxpQjs7O01BS0FDLHFCOzthQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtBQUFBQSxJQUFBQSxxQjtLQUFBQSxxQixLQUFBQSxxQjs7O01BV0FDLFk7O2FBQUFBLFk7QUFBQUEsSUFBQUEsWTtBQUFBQSxJQUFBQSxZO0FBQUFBLElBQUFBLFk7S0FBQUEsWSxLQUFBQSxZOzs7TUFNQUMsZ0I7O2FBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0FBQUFBLElBQUFBLGdCO0tBQUFBLGdCLEtBQUFBLGdCOzs7TUFNQUMsZTs7YUFBQUEsZTtBQUFBQSxJQUFBQSxlO0FBQUFBLElBQUFBLGU7QUFBQUEsSUFBQUEsZTtLQUFBQSxlLEtBQUFBLGU7OztNQXVVQUMsYTs7YUFBQUEsYTtBQUFBQSxJQUFBQSxhO0FBQUFBLElBQUFBLGE7QUFBQUEsSUFBQUEsYTtBQUFBQSxJQUFBQSxhO0tBQUFBLGEsS0FBQUEsYSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJhYmxlUmVjb3JkLCBQb3NpdGlvbiwgUG9zaXRpb25hYmxlIH0gZnJvbSBcIi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEZsZXhTZXR0aW5ncywgSGVhZGVyRmFjZXRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvT2JqZWN0UGFnZS9IZWFkZXJGYWNldFwiO1xuaW1wb3J0IHsgQmluZGluZ0V4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgVGFibGVUeXBlIH0gZnJvbSBcIi4vY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5cbmV4cG9ydCBlbnVtIFRlbXBsYXRlVHlwZSB7XG5cdExpc3RSZXBvcnQgPSBcIkxpc3RSZXBvcnRcIixcblx0T2JqZWN0UGFnZSA9IFwiT2JqZWN0UGFnZVwiLFxuXHRBbmFseXRpY2FsTGlzdFBhZ2UgPSBcIkFuYWx5dGljYWxMaXN0UGFnZVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuXHREYXRhRmllbGRGb3JBY3Rpb24gPSBcIkZvckFjdGlvblwiLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gPSBcIkZvck5hdmlnYXRpb25cIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRQcmltYXJ5ID0gXCJQcmltYXJ5XCIsXG5cdFNlY29uZGFyeSA9IFwiU2Vjb25kYXJ5XCIsXG5cdFN3aXRjaFRvQWN0aXZlT2JqZWN0ID0gXCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRTd2l0Y2hUb0RyYWZ0T2JqZWN0ID0gXCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdERlZmF1bHRBcHBseSA9IFwiRGVmYXVsdEFwcGx5XCIsXG5cdE1lbnUgPSBcIk1lbnVcIlxufVxuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNpZGVDb250ZW50ID0ge1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRlcXVhbFNwbGl0PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIFZpc3VhbGl6YXRpb25UeXBlIHtcblx0VGFibGUgPSBcIlRhYmxlXCIsXG5cdENoYXJ0ID0gXCJDaGFydFwiXG59XG5cbmV4cG9ydCBlbnVtIFZhcmlhbnRNYW5hZ2VtZW50VHlwZSB7XG5cdFBhZ2UgPSBcIlBhZ2VcIixcblx0Q29udHJvbCA9IFwiQ29udHJvbFwiLFxuXHROb25lID0gXCJOb25lXCJcbn1cblxuZXhwb3J0IHR5cGUgQ29udGVudERlbnNpdGllc1R5cGUgPSB7XG5cdGNvbXBhY3Q/OiBib29sZWFuO1xuXHRjb3p5PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIENyZWF0aW9uTW9kZSB7XG5cdE5ld1BhZ2UgPSBcIk5ld1BhZ2VcIixcblx0SW5saW5lID0gXCJJbmxpbmVcIixcblx0Q3JlYXRpb25Sb3cgPSBcIkNyZWF0aW9uUm93XCJcbn1cblxuZXhwb3J0IGVudW0gQXZhaWxhYmlsaXR5VHlwZSB7XG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIixcblx0QWRhcHRhdGlvbiA9IFwiQWRhcHRhdGlvblwiLFxuXHRIaWRkZW4gPSBcIkhpZGRlblwiXG59XG5cbmV4cG9ydCBlbnVtIEhvcml6b250YWxBbGlnbiB7XG5cdEVuZCA9IFwiRW5kXCIsXG5cdEJlZ2luID0gXCJCZWdpblwiLFxuXHRDZW50ZXIgPSBcIkNlbnRlclwiXG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uU2V0dGluZ3MgPSB7XG5cdG1pY3JvQ2hhcnRTaXplPzogc3RyaW5nO1xuXHRzaG93TWljcm9DaGFydExhYmVsPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBmb3JtYXQgb3B0aW9ucyBmb3IgbXVsdGlsaW5lIHRleHQgZmllbGRzIG9uIGEgZm9ybSBvciBpbiBhIHRhYmxlXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1hdE9wdGlvbnNUeXBlID0ge1xuXHRoYXNEcmFmdEluZGljYXRvcj86IGJvb2xlYW47XG5cdHNlbWFudGlja2V5cz86IHN0cmluZ1tdO1xuXHR0ZXh0TGluZXNFZGl0PzogbnVtYmVyO1xuXHR0ZXh0TWF4Q2hhcmFjdGVyc0Rpc3BsYXk/OiBudW1iZXI7XG5cdHRleHRFeHBhbmRCZWhhdmlvckRpc3BsYXk/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgYSBLUEkgaW4gdGhlIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCB0eXBlIEtQSUNvbmZpZ3VyYXRpb24gPSB7XG5cdG1vZGVsPzogc3RyaW5nO1xuXHRlbnRpdHlTZXQ6IHN0cmluZztcblx0cXVhbGlmaWVyOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIEJhc2VNYW5pZmVzdFNldHRpbmdzXG4gKi9cbmV4cG9ydCB0eXBlIEJhc2VNYW5pZmVzdFNldHRpbmdzID0ge1xuXHRjb250ZW50Pzoge1xuXHRcdGhlYWRlcj86IHtcblx0XHRcdGZhY2V0cz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcblx0XHRcdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xuXHRcdH07XG5cdFx0Zm9vdGVyPzoge1xuXHRcdFx0YWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj47XG5cdFx0fTtcblx0fTtcblx0Y29udHJvbENvbmZpZ3VyYXRpb24/OiB7XG5cdFx0W2Fubm90YXRpb25QYXRoOiBzdHJpbmddOiBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHR9ICYge1xuXHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtXCI/OiBUYWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbjtcblx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GYWNldHNcIj86IEZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiPzogSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzXCI/OiBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdH07XG5cdGNvbnZlcnRlclR5cGU6IFRlbXBsYXRlVHlwZTtcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdG5hdmlnYXRpb24/OiB7XG5cdFx0W25hdmlnYXRpb25QYXRoOiBzdHJpbmddOiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHR9O1xuXHR2aWV3TGV2ZWw/OiBudW1iZXI7XG5cdGZjbEVuYWJsZWQ/OiBib29sZWFuO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmFyaWFudE1hbmFnZW1lbnQ/OiBWYXJpYW50TWFuYWdlbWVudFR5cGU7XG5cdGRlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRjb250ZW50RGVuc2l0aWVzPzogQ29udGVudERlbnNpdGllc1R5cGU7XG5cdHNoZWxsQ29udGVudERlbnNpdHk/OiBzdHJpbmc7XG5cdGlzRGVza3RvcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbiA9IHtcblx0b3V0Ym91bmQ/OiBzdHJpbmc7XG5cdG91dGJvdW5kRGV0YWlsPzoge1xuXHRcdHNlbWFudGljT2JqZWN0OiBzdHJpbmc7XG5cdFx0YWN0aW9uOiBzdHJpbmc7XG5cdFx0cGFyYW1ldGVycz86IGFueTtcblx0fTtcblx0cm91dGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbiA9IHtcblx0Y3JlYXRlPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb247XG5cdGRldGFpbD86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkaXNwbGF5Pzoge1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdHRhcmdldD86IHN0cmluZzsgLy8gZm9yIGNvbXBhdGliaWxpdHlcblx0XHRyb3V0ZT86IHN0cmluZztcblx0fTtcbn07XG5cbnR5cGUgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdGZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xufTtcblxudHlwZSBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0c2VjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xufTtcblxudHlwZSBNYW5pZmVzdEZvcm1FbGVtZW50ID0gUG9zaXRpb25hYmxlICYge1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmllbGRzOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RGb3JtRWxlbWVudD47XG59O1xuXG5leHBvcnQgdHlwZSBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uID1cblx0fCBUYWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb25cblx0fCBIZWFkZXJGYWNldHNDb250cm9sQ29uZmlndXJhdGlvblxuXHR8IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cbi8qKiBPYmplY3QgUGFnZSAqKi9cblxuZXhwb3J0IHR5cGUgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MgPSBCYXNlTWFuaWZlc3RTZXR0aW5ncyAmIHtcblx0Y29udGVudD86IHtcblx0XHRoZWFkZXI/OiB7XG5cdFx0XHR2aXNpYmxlPzogYm9vbGVhbjtcblx0XHRcdGFuY2hvckJhclZpc2libGU/OiBib29sZWFuO1xuXHRcdFx0ZmFjZXRzPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xuXHRcdH07XG5cdFx0Ym9keT86IHtcblx0XHRcdHNlY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0U2VjdGlvbj47XG5cdFx0fTtcblx0fTtcblx0ZWRpdGFibGVIZWFkZXJDb250ZW50OiBib29sZWFuO1xuXHRzZWN0aW9uTGF5b3V0OiBcIlRhYnNcIiB8IFwiUGFnZVwiO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdEhlYWRlckZhY2V0XG4gKi9cbmV4cG9ydCB0eXBlIE1hbmlmZXN0SGVhZGVyRmFjZXQgPSB7XG5cdHR5cGU/OiBIZWFkZXJGYWNldFR5cGU7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRzdWJUaXRsZT86IHN0cmluZztcblx0c3Rhc2hlZD86IGJvb2xlYW47XG5cdGZsZXhTZXR0aW5ncz86IEZsZXhTZXR0aW5ncztcblx0cmVxdWVzdEdyb3VwSWQ/OiBzdHJpbmc7XG5cdHRlbXBsYXRlRWRpdD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RTZWN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmlmZXN0U2VjdGlvbiA9IHtcblx0dGl0bGU/OiBzdHJpbmc7XG5cdGlkPzogc3RyaW5nO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRzdWJTZWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0U3ViU2VjdGlvbj47XG5cdGFjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdEFjdGlvbj47XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFN1YlNlY3Rpb24gPSB7XG5cdGlkPzogc3RyaW5nO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0dGl0bGU/OiBzdHJpbmc7XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHZpc2libGU/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcblx0c2lkZUNvbnRlbnQ/OiBNYW5pZmVzdFNpZGVDb250ZW50O1xufTtcblxuLyoqIExpc3QgUmVwb3J0ICoqL1xuXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncyA9IEJhc2VNYW5pZmVzdFNldHRpbmdzICYge1xuXHRpbml0aWFsTG9hZD86IGJvb2xlYW47XG5cdHZpZXdzPzogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb247XG5cdGtleVBlcmZvcm1hbmNlSW5kaWNhdG9ycz86IHtcblx0XHRba3BpTmFtZTogc3RyaW5nXTogS1BJQ29uZmlndXJhdGlvbjtcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIFZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBWaWV3Q29uZmlndXJhdGlvbiA9IFZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb247XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24gPSB7XG5cdGtleT86IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0dGVtcGxhdGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IHtcblx0a2VlcFByZXZpb3VzUHJlc29uYWxpemF0aW9uPzogYm9vbGVhbjtcblx0a2V5Pzogc3RyaW5nO1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdHByaW1hcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRzZWNvbmRhcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRkZWZhdWx0UGF0aD86IFwiYm90aFwiIHwgXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiO1xuXHRrZXk/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uID0ge1xuXHRwYXRoczogVmlld0NvbmZpZ3VyYXRpb25bXTtcblx0c2hvd0NvdW50cz86IGJvb2xlYW47XG59O1xuXG4vKiogRmlsdGVyIENvbmZpZ3VyYXRpb24gKiovXG5cbi8qKiBAdHlwZWRlZiBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gKiovXG5leHBvcnQgdHlwZSBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIEZpbHRlckZpZWxkTWFuaWZlc3RDb25maWd1cmF0aW9uPjtcblx0bmF2aWdhdGlvblByb3BlcnRpZXM/OiBzdHJpbmdbXTtcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2U/OiBib29sZWFuO1xuXHRpbml0aWFsTGF5b3V0Pzogc3RyaW5nO1xuXHRsYXlvdXQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHRzZXR0aW5ncz86IEZpbHRlclNldHRpbmdzO1xuXHR2aXN1YWxGaWx0ZXI/OiB2aXN1YWxGaWx0ZXJDb25maWd1cmF0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgdmlzdWFsRmlsdGVyQ29uZmlndXJhdGlvbiA9IHtcblx0dmFsdWVMaXN0Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT3BlcmF0b3JDb25maWd1cmF0aW9uID0ge1xuXHRwYXRoOiBzdHJpbmc7XG5cdGVxdWFscz86IHN0cmluZztcblx0Y29udGFpbnM/OiBzdHJpbmc7XG5cdGV4Y2x1ZGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0T3BlcmF0b3IgPSB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJTZXR0aW5ncyA9IHtcblx0b3BlcmF0b3JDb25maWd1cmF0aW9uPzogT3BlcmF0b3JDb25maWd1cmF0aW9uW107XG5cdGRlZmF1bHRWYWx1ZXM/OiBEZWZhdWx0T3BlcmF0b3JbXTtcbn07XG5cbi8qKiBDaGFydCBDb25maWd1cmF0aW9uICoqL1xuXG5leHBvcnQgdHlwZSBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPVxuXHR8IGJvb2xlYW5cblx0fCB7XG5cdFx0XHRzb3J0OiBib29sZWFuO1xuXHRcdFx0dHlwZTogYm9vbGVhbjtcblx0XHRcdGl0ZW06IGJvb2xlYW47XG5cdCAgfTtcblxuZXhwb3J0IHR5cGUgQ2hhcnRNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGNoYXJ0U2V0dGluZ3M6IHtcblx0XHRwZXJzb25hbGl6YXRpb246IENoYXJ0UGVyc29uYWxpemF0aW9uTWFuaWZlc3RTZXR0aW5ncztcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkFmdGVyRXhlY3V0aW9uQ29uZmlndXJhdGlvbiA9IHtcblx0bmF2aWdhdGVUb0luc3RhbmNlPzogYm9vbGVhbjtcblx0ZW5hYmxlQXV0b1Njcm9sbD86IGJvb2xlYW47XG59O1xuXG4vKiogVGFibGUgQ29uZmlndXJhdGlvbiAqKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdEFjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEFjdGlvbiA9IHtcblx0bWVudT86IHN0cmluZ1tdO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xuXHRlbmFibGVkPzogc3RyaW5nO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHRwcmVzcz86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0X19ub1dyYXA/OiBib29sZWFuO1xuXHRlbmFibGVPblNlbGVjdD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlc0Z1bmN0aW9uPzogc3RyaW5nO1xuXHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRpbmxpbmU/OiBib29sZWFuO1xuXHRkZXRlcm1pbmluZz86IGJvb2xlYW47XG5cdGZhY2V0TmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0VGFibGVDb2x1bW5PdmVycmlkZSA9IFBvc2l0aW9uYWJsZSAmIHtcblx0d2lkdGg/OiBzdHJpbmc7XG5cdGhvcml6b250YWxBbGlnbj86IEhvcml6b250YWxBbGlnbjtcblx0YWZ0ZXJFeGVjdXRpb24/OiBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb247XG5cdHNldHRpbmdzPzogVGFibGVDb2x1bW5TZXR0aW5ncztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RUYWJsZUNvbHVtbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0aGVhZGVyOiBzdHJpbmc7XG5cdHdpZHRoPzogc3RyaW5nO1xuXHR0eXBlPzogc3RyaW5nO1xuXHRob3Jpem9udGFsQWxpZ24/OiBIb3Jpem9udGFsQWxpZ247XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHRzZXR0aW5ncz86IFRhYmxlQ29sdW1uU2V0dGluZ3M7XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcblx0cHJvcGVydGllcz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdHRhYmxlU2V0dGluZ3M/OiBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRjb2x1bW5zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RUYWJsZUNvbHVtbiB8IE1hbmlmZXN0VGFibGVDb2x1bW5PdmVycmlkZT47XG59O1xuXG5leHBvcnQgZW51bSBTZWxlY3Rpb25Nb2RlIHtcblx0QXV0byA9IFwiQXV0b1wiLFxuXHROb25lID0gXCJOb25lXCIsXG5cdE11bHRpID0gXCJNdWx0aVwiLFxuXHRTaW5nbGUgPSBcIlNpbmdsZVwiXG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlUGVyc29uYWxpemF0aW9uQ29uZmlndXJhdGlvbiA9XG5cdHwgYm9vbGVhblxuXHR8IHtcblx0XHRcdHNvcnQ6IGJvb2xlYW47XG5cdFx0XHRjb2x1bW46IGJvb2xlYW47XG5cdFx0XHRmaWx0ZXI6IGJvb2xlYW47XG5cdFx0XHRncm91cDogYm9vbGVhbjtcblx0XHRcdGFnZ3JlZ2F0ZTogYm9vbGVhbjtcblx0ICB9O1xuXG5leHBvcnQgdHlwZSBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uID0ge1xuXHRjcmVhdGlvbk1vZGU/OiB7XG5cdFx0ZGlzYWJsZUFkZFJvd0J1dHRvbkZvckVtcHR5RGF0YT86IGJvb2xlYW47XG5cdFx0Y3VzdG9tVmFsaWRhdGlvbkZ1bmN0aW9uPzogc3RyaW5nO1xuXHRcdGNyZWF0ZUF0RW5kPzogYm9vbGVhbjtcblx0XHRuYW1lPzogQ3JlYXRpb25Nb2RlO1xuXHR9O1xuXHRlbmFibGVFeHBvcnQ/OiBib29sZWFuO1xuXHRxdWlja1ZhcmlhbnRTZWxlY3Rpb24/OiB7XG5cdFx0cGF0aHM6IFtcblx0XHRcdHtcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0XHRcdH1cblx0XHRdO1xuXHRcdGhpZGVUYWJsZVRpdGxlPzogYm9vbGVhbjtcblx0XHRzaG93Q291bnRzPzogYm9vbGVhbjtcblx0fTtcblx0cGVyc29uYWxpemF0aW9uPzogVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uO1xuXHQvKipcblx0ICogRGVmaW5lcyBob3cgbWFueSBpdGVtcyBpbiBhIHRhYmxlIGNhbiBiZSBzZWxlY3RlZC4gWW91IGhhdmUgdGhlIGZvbGxvd2luZyBvcHRpb25zOlxuXHQgKiA9PiBieSBkZWZpbmluZyAnTm9uZScgeW91IGNhbiBmdWxseSBkaXNhYmxlIHRoZSBsaXN0IHNlbGVjdGlvblxuXHQgKiA9PiBieSBkZWZpbmluZyAnU2luZ2xlJyB5b3UgYWxsb3cgb25seSBvbmUgaXRlbSB0byBiZSBzZWxlY3RlZFxuXHQgKiA9PiBieSBkZWZpbmluZyAnTXVsdGknIHlvdSBhbGxvdyBzZXZlcmFsIGl0ZW1zIHRvIGJlIHNlbGVjdGVkXG5cdCAqID0+IGJ5IHVzaW5nICdBdXRvJyB5b3UgbGVhdmUgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiAnTm9uZScsIGV4Y2VwdCBpZiB0aGVyZSBpcyBhbiBhY3Rpb24gdGhhdCByZXF1aXJlcyBhIHNlbGVjdGlvbiAoc3VjaCBhcyBkZWxldGluZywgb3IgSUJOKVxuXHQgKi9cblx0c2VsZWN0aW9uTW9kZT86IFNlbGVjdGlvbk1vZGU7XG5cdHR5cGU/OiBUYWJsZVR5cGU7XG5cdGNvbmRlbnNlZFRhYmxlTGF5b3V0PzogYm9vbGVhbjtcblx0c2VsZWN0QWxsPzogYm9vbGVhbjtcblx0c2VsZWN0aW9uTGltaXQ/OiBudW1iZXI7XG5cdGVuYWJsZVBhc3RlPzogYm9vbGVhbjtcblx0ZW5hYmxlRnVsbFNjcmVlbj86IGJvb2xlYW47XG5cdGVuYWJsZU1hc3NFZGl0PzogYm9vbGVhbjtcbn07XG4iXX0=
@@ -23,6 +23,7 @@ export enum ActionType {
23
23
 
24
24
  export type ManifestSideContent = {
25
25
  template: string;
26
+ equalSplit?: boolean;
26
27
  };
27
28
 
28
29
  export enum VisualizationType {
@@ -68,8 +69,11 @@ export type TableColumnSettings = {
68
69
  * Collection of format options for multiline text fields on a form or in a table
69
70
  */
70
71
  export type FormatOptionsType = {
71
- textLinesDisplay: number;
72
- textLinesEdit: number;
72
+ hasDraftIndicator?: boolean;
73
+ semantickeys?: string[];
74
+ textLinesEdit?: number;
75
+ textMaxCharactersDisplay?: number;
76
+ textExpandBehaviorDisplay?: string;
73
77
  };
74
78
 
75
79
  /**
@@ -345,6 +349,9 @@ export type ManifestAction = {
345
349
  defaultValuesFunction?: string;
346
350
  requiresSelection?: boolean;
347
351
  afterExecution?: ActionAfterExecutionConfiguration;
352
+ inline?: boolean;
353
+ determining?: boolean;
354
+ facetName?: string;
348
355
  };
349
356
 
350
357
  export type ManifestTableColumnOverride = Positionable & {
@@ -197,7 +197,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings"], function (ManifestSet
197
197
  value: function isFclEnabled() {
198
198
  var _this$oManifestSettin14;
199
199
 
200
- return !!((_this$oManifestSettin14 = this.oManifestSettings) === null || _this$oManifestSettin14 === void 0 ? void 0 : _this$oManifestSettin14.fclEnabled);
200
+ return !!((_this$oManifestSettin14 = this.oManifestSettings) !== null && _this$oManifestSettin14 !== void 0 && _this$oManifestSettin14.fclEnabled);
201
201
  }
202
202
  /**
203
203
  * Checks whether the current settings (application / shell) allows us to use condensed layout.
@@ -259,7 +259,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings"], function (ManifestSet
259
259
  value: function getShowAnchorBar() {
260
260
  var _content3, _content3$header, _content4, _content4$header;
261
261
 
262
- return ((_content3 = this.oManifestSettings.content) === null || _content3 === void 0 ? void 0 : (_content3$header = _content3.header) === null || _content3$header === void 0 ? void 0 : _content3$header.anchorBarVisible) !== undefined ? !!((_content4 = this.oManifestSettings.content) === null || _content4 === void 0 ? void 0 : (_content4$header = _content4.header) === null || _content4$header === void 0 ? void 0 : _content4$header.anchorBarVisible) : true;
262
+ return ((_content3 = this.oManifestSettings.content) === null || _content3 === void 0 ? void 0 : (_content3$header = _content3.header) === null || _content3$header === void 0 ? void 0 : _content3$header.anchorBarVisible) !== undefined ? !!((_content4 = this.oManifestSettings.content) !== null && _content4 !== void 0 && (_content4$header = _content4.header) !== null && _content4$header !== void 0 && _content4$header.anchorBarVisible) : true;
263
263
  }
264
264
  /**
265
265
  * Defines whether or not the section will be displayed in different tabs.
@@ -283,7 +283,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings"], function (ManifestSet
283
283
  value: function getShowObjectPageHeader() {
284
284
  var _content5, _content5$header, _content6, _content6$header;
285
285
 
286
- return ((_content5 = this.oManifestSettings.content) === null || _content5 === void 0 ? void 0 : (_content5$header = _content5.header) === null || _content5$header === void 0 ? void 0 : _content5$header.visible) !== undefined ? !!((_content6 = this.oManifestSettings.content) === null || _content6 === void 0 ? void 0 : (_content6$header = _content6.header) === null || _content6$header === void 0 ? void 0 : _content6$header.visible) : true;
286
+ return ((_content5 = this.oManifestSettings.content) === null || _content5 === void 0 ? void 0 : (_content5$header = _content5.header) === null || _content5$header === void 0 ? void 0 : _content5$header.visible) !== undefined ? !!((_content6 = this.oManifestSettings.content) !== null && _content6 !== void 0 && (_content6$header = _content6.header) !== null && _content6$header !== void 0 && _content6$header.visible) : true;
287
287
  } //endregion OP Specific
288
288
  //region LR Specific
289
289
 
@@ -336,14 +336,14 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings"], function (ManifestSet
336
336
  };
337
337
  var manifestEntitySet = this.oManifestSettings.entitySet;
338
338
  return viewConfig.paths.find(function (path) {
339
- var _ref;
339
+ var _path;
340
340
 
341
- if ((_ref = path) === null || _ref === void 0 ? void 0 : _ref.template) {
341
+ if ((_path = path) !== null && _path !== void 0 && _path.template) {
342
342
  return undefined;
343
343
  } else if (_this.hasMultipleVisualizations(path)) {
344
- var _ref2 = path,
345
- primary = _ref2.primary,
346
- secondary = _ref2.secondary;
344
+ var _ref = path,
345
+ primary = _ref.primary,
346
+ secondary = _ref.secondary;
347
347
  return primary.some(function (path) {
348
348
  return path.entitySet && path.entitySet !== manifestEntitySet;
349
349
  }) || secondary.some(function (path) {
@@ -401,4 +401,4 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings"], function (ManifestSet
401
401
 
402
402
  return ManifestWrapper;
403
403
  }, false);
404
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmlmZXN0V3JhcHBlci50cyJdLCJuYW1lcyI6WyJNYW5pZmVzdFdyYXBwZXIiLCJvTWFuaWZlc3RTZXR0aW5ncyIsIm1lcmdlRm4iLCJjb252ZXJ0ZXJUeXBlIiwiaXNEZXNrdG9wIiwiZmFjZXRUYXJnZXQiLCJjb250cm9sQ29uZmlndXJhdGlvbiIsImZhY2V0cyIsImNvbnRlbnQiLCJoZWFkZXIiLCJhY3Rpb25zIiwiZm9vdGVyIiwidmFyaWFudE1hbmFnZW1lbnQiLCJWYXJpYW50TWFuYWdlbWVudFR5cGUiLCJOb25lIiwiZGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgiLCJzQW5ub3RhdGlvblBhdGgiLCJuYXZpZ2F0aW9uT3JDb2xsZWN0aW9uTmFtZSIsIm5hdmlnYXRpb24iLCJ2aWV3TGV2ZWwiLCJjb250ZW50RGVuc2l0aWVzIiwiY296eSIsImNvbXBhY3QiLCJmY2xFbmFibGVkIiwibWFuaWZlc3RDb250ZW50RGVuc2l0eSIsInNoZWxsQ29udGVudERlbnNpdHkiLCJpc0NvbmRlbnNlZExheW91dENvbXBsaWFudCIsInNlY3Rpb25zIiwiYm9keSIsImdldFNob3dPYmplY3RQYWdlSGVhZGVyIiwiZWRpdGFibGVIZWFkZXJDb250ZW50IiwiYW5jaG9yQmFyVmlzaWJsZSIsInVuZGVmaW5lZCIsImdldFNob3dBbmNob3JCYXIiLCJzZWN0aW9uTGF5b3V0IiwidmlzaWJsZSIsInZpZXdzIiwia2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzIiwiZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24iLCJ2aWV3Q29uZmlnIiwiZ2V0Vmlld0NvbmZpZ3VyYXRpb24iLCJwYXRocyIsIm1hbmlmZXN0RW50aXR5U2V0IiwiZW50aXR5U2V0IiwiZmluZCIsInBhdGgiLCJ0ZW1wbGF0ZSIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwic29tZSIsImNvbnRleHRQYXRoIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QUwsSUFBSTtBQUFBLHFCQUFJQSxJQUFJLENBQUNGLFNBQUwsSUFBa0JFLElBQUksQ0FBQ0YsU0FBTCxLQUFtQkQsaUJBQXpDO0FBQUEsYUFBbkIsQ0FGRDtBQUlBLFdBTk0sTUFNQTtBQUNORyxZQUFBQSxJQUFJLEdBQUdBLElBQVA7QUFDQSxtQkFBT0EsSUFBSSxDQUFDRixTQUFMLElBQWtCRSxJQUFJLENBQUNGLFNBQUwsS0FBbUJELGlCQUE1QztBQUNBO0FBQ0QsU0FiRCxNQWFPVixTQWRSO0FBZ0JBO0FBRUQ7Ozs7Ozs7O3VDQUtxQztBQUFBOztBQUNwQywwQ0FBTyxLQUFLL0IsaUJBQVosNERBQU8sd0JBQXdCa0QsV0FBL0I7QUFDQTtBQUVEOzs7Ozs7Ozs7Z0RBTTBCTixJLEVBQXVDO0FBQUE7O0FBQ2hFLFlBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1YsY0FBTU4sVUFBVSxHQUFHLEtBQUtDLG9CQUFMLE1BQStCO0FBQUVDLFlBQUFBLEtBQUssRUFBRTtBQUFULFdBQWxEO0FBQ0EsaUJBQU9GLFVBQVUsQ0FBQ0UsS0FBWCxDQUFpQlMsSUFBakIsQ0FBc0IsVUFBQUwsSUFBSSxFQUFJO0FBQUE7O0FBQ3BDLG1CQUNDLGFBQUNBLElBQUQsQ0FBd0NHLE9BQXhDLHNEQUFpREksTUFBakQsSUFBMEQsQ0FBMUQsSUFDQSxlQUFDUCxJQUFELENBQXdDSSxTQUF4QywwREFBbURHLE1BQW5ELElBQTRELENBRjdEO0FBSUEsV0FMTSxDQUFQO0FBTUE7O0FBQ0QsZUFBTyxjQUFDUCxJQUFELENBQXdDRyxPQUF4Qyx3REFBaURJLE1BQWpELElBQTBELENBQTFELElBQStELGdCQUFDUCxJQUFELENBQXdDSSxTQUF4Qyw0REFBbURHLE1BQW5ELElBQTRELENBQWxJO0FBQ0EsTyxDQUVEOzs7Ozs7O1NBR2NwRCxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmFibGVSZWNvcmQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHtcblx0QmFzZU1hbmlmZXN0U2V0dGluZ3MsXG5cdENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRDb250ZW50RGVuc2l0aWVzVHlwZSxcblx0RmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncyxcblx0TWFuaWZlc3RBY3Rpb24sXG5cdE1hbmlmZXN0SGVhZGVyRmFjZXQsXG5cdE1hbmlmZXN0U2VjdGlvbixcblx0TXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24sXG5cdE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24sXG5cdE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzLFxuXHRTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0VGVtcGxhdGVUeXBlLFxuXHRWYXJpYW50TWFuYWdlbWVudFR5cGUsXG5cdEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24sXG5cdFZpZXdDb25maWd1cmF0aW9uLFxuXHRLUElDb25maWd1cmF0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuLyoqXG4gKlxuICovXG5jbGFzcyBNYW5pZmVzdFdyYXBwZXIge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIHdyYXBwZXIgb2JqZWN0IHRvIGVuc3VyZSB0aGUgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBtYW5pZmVzdCBpcyBjb25zaXN0ZW50IGFuZCBldmVyeXRoaW5nIGlzIG1lcmdlZCBjb3JyZWN0bHkuXG5cdCAqXG5cdCAqIEBwYXJhbSB7QmFzZU1hbmlmZXN0U2V0dGluZ3N9IG9NYW5pZmVzdFNldHRpbmdzIFRoZSBtYW5pZmVzdCBzZXR0aW5ncyBmb3IgdGhlIGN1cnJlbnQgcGFnZVxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBtZXJnZUZuIEEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgbWVyZ2Vcblx0ICogQHJldHVybnMge01hbmlmZXN0V3JhcHBlcn0gVGhlIG1hbmlmZXN0IHdyYXBwZXIgb2JqZWN0XG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIG9NYW5pZmVzdFNldHRpbmdzOiBCYXNlTWFuaWZlc3RTZXR0aW5ncywgcHJpdmF0ZSBtZXJnZUZuOiBGdW5jdGlvbikge31cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY3VycmVudCB0ZW1wbGF0ZSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgdHlwZSBvZiB0aGUgY3VycmVudCB0ZW1wbGF0ZVxuXHQgKi9cblx0Z2V0VGVtcGxhdGVUeXBlKCk6IFRlbXBsYXRlVHlwZSB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3MuY29udmVydGVyVHlwZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3Mgd2hldGhlciB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyBhIGRlc2t0b3Agb3Igbm90LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHdlIGFyZSBvbiBhIGRlc2t0b3Bcblx0ICovXG5cdGlzRGVza3RvcCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLm9NYW5pZmVzdFNldHRpbmdzLmlzRGVza3RvcDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGZvcm0gY29udGFpbmVycyAoZmllbGQgZ3JvdXBzL2lkZW50aWZpY2F0aW9uKSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IGZhY2V0VGFyZ2V0IFRoZSB0YXJnZXQgYW5ub3RhdGlvbiBwYXRoIGZvciB0aGlzIGZvcm1cblx0ICogQHJldHVybnMge0Zvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb259IEEgc2V0IG9mIG1hbmlmZXN0IGhlYWRlciBmYWNldHMgaW5kZXhlZCBieSBhbiBpdGVyYWJsZSBrZXlcblx0ICovXG5cdGdldEZvcm1Db250YWluZXIoZmFjZXRUYXJnZXQ6IHN0cmluZyk6IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24ge1xuXHRcdHJldHVybiB0aGlzLm9NYW5pZmVzdFNldHRpbmdzLmNvbnRyb2xDb25maWd1cmF0aW9uPy5bZmFjZXRUYXJnZXRdIGFzIEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdH1cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgaGVhZGVyRmFjZXRzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+fSBBIHNldCBvZiBtYW5pZmVzdCBoZWFkZXIgZmFjZXRzIGluZGV4ZWQgYnkgYW4gaXRlcmFibGUga2V5XG5cdCAqL1xuXHRnZXRIZWFkZXJGYWNldHMoKTogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+IHtcblx0XHRyZXR1cm4gdGhpcy5tZXJnZUZuKFxuXHRcdFx0e30sXG5cdFx0XHR0aGlzLm9NYW5pZmVzdFNldHRpbmdzLmNvbnRyb2xDb25maWd1cmF0aW9uPy5bXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzXCJdPy5mYWNldHMsXG5cdFx0XHQodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uaGVhZGVyPy5mYWNldHNcblx0XHQpO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGhlYWRlciBhY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPn0gQSBzZXQgb2YgbWFuaWZlc3QgYWN0aW9ucyBpbmRleGVkIGJ5IGFuIGl0ZXJhYmxlIGtleVxuXHQgKi9cblx0Z2V0SGVhZGVyQWN0aW9ucygpOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5jb250ZW50Py5oZWFkZXI/LmFjdGlvbnMgfHwge307XG5cdH1cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgZm9vdGVyIGFjdGlvbnMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+fSBBIHNldCBvZiBtYW5pZmVzdCBhY3Rpb25zIGluZGV4ZWQgYnkgYW4gaXRlcmFibGUga2V5XG5cdCAqL1xuXHRnZXRGb290ZXJBY3Rpb25zKCk6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj4ge1xuXHRcdHJldHVybiB0aGlzLm9NYW5pZmVzdFNldHRpbmdzLmNvbnRlbnQ/LmZvb3Rlcj8uYWN0aW9ucyB8fCB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHZhcmlhbnQgbWFuYWdlbWVudCBhcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5cblx0ICpcblx0ICogQHJldHVybnMge1ZhcmlhbnRNYW5hZ2VtZW50VHlwZX0gQSB0eXBlIG9mIHZhcmlhbnQgbWFuYWdlbWVudFxuXHQgKi9cblx0Z2V0VmFyaWFudE1hbmFnZW1lbnQoKTogVmFyaWFudE1hbmFnZW1lbnRUeXBlIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy52YXJpYW50TWFuYWdlbWVudCB8fCBWYXJpYW50TWFuYWdlbWVudFR5cGUuTm9uZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBpbiB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSBUaGUgYW5ub3RhdGlvbiBwYXRoIGZvciB0aGUgZGVmYXVsdCBTUFYgb3IgdW5kZWZpbmVkLlxuXHQgKi9cblx0Z2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5kZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbnRyb2wgY29uZmlndXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3IgYSBzcGVjaWZpYyBhbm5vdGF0aW9uIHBhdGguXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzQW5ub3RhdGlvblBhdGggVGhlIHJlbGF0aXZlIGFubm90YXRpb24gcGF0aFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgY29udHJvbCBjb25maWd1cmF0aW9uXG5cdCAqL1xuXHRnZXRDb250cm9sQ29uZmlndXJhdGlvbihzQW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IGFueSB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3M/LmNvbnRyb2xDb25maWd1cmF0aW9uPy5bc0Fubm90YXRpb25QYXRoXSB8fCB7fTtcblx0fVxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBjb25maWd1cmVkIHNldHRpbmdzIGZvciBhIGdpdmVuIG5hdmlnYXRpb24gdGFyZ2V0LlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gbmF2aWdhdGlvbk9yQ29sbGVjdGlvbk5hbWUgVGhlIG5hbWUgb2YgdGhlIG5hdmlnYXRpb24gdG8gY2hlY2tcblx0ICogQHJldHVybnMge05hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb259IFRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzIGNvbmZpZ3VyYXRpb25cblx0ICovXG5cdGdldE5hdmlnYXRpb25Db25maWd1cmF0aW9uKG5hdmlnYXRpb25PckNvbGxlY3Rpb25OYW1lOiBzdHJpbmcpOiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncz8ubmF2aWdhdGlvbj8uW25hdmlnYXRpb25PckNvbGxlY3Rpb25OYW1lXSB8fCB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHZpZXcgbGV2ZWwuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjdXJyZW50IHZpZXcgbGV2ZWxcblx0ICovXG5cdGdldFZpZXdMZXZlbCgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy52aWV3TGV2ZWwgfHwgLTE7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBjb250ZW50RGVuc2l0aWVzIHNldHRpbmcgb2YgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Q29udGVudERlbnNpdGllc1R5cGV9IFRoZSBjdXJyZW50IGNvbnRlbnQgZGVuc2l0eVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdGllcygpOiBDb250ZW50RGVuc2l0aWVzVHlwZSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHRoaXMub01hbmlmZXN0U2V0dGluZ3M/LmNvbnRlbnREZW5zaXRpZXMgfHwge1xuXHRcdFx0XHRjb3p5OiBmYWxzZSxcblx0XHRcdFx0Y29tcGFjdDogZmFsc2Vcblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyB3aGV0aGVyIHdlIGFyZSBpbiBGQ0wgbW9kZSBvciBub3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgd2UgYXJlIGluIEZDTFxuXHQgKi9cblx0aXNGY2xFbmFibGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhIXRoaXMub01hbmlmZXN0U2V0dGluZ3M/LmZjbEVuYWJsZWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIHdoZXRoZXIgdGhlIGN1cnJlbnQgc2V0dGluZ3MgKGFwcGxpY2F0aW9uIC8gc2hlbGwpIGFsbG93cyB1cyB0byB1c2UgY29uZGVuc2VkIGxheW91dC5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB3ZSBjYW4gdXNlIHRoZSBjb25kZW5zZWQgbGF5b3V0LCBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdGlzQ29uZGVuc2VkTGF5b3V0Q29tcGxpYW50KCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IG1hbmlmZXN0Q29udGVudERlbnNpdHkgPSB0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy5jb250ZW50RGVuc2l0aWVzIHx8IHtcblx0XHRcdGNvenk6IGZhbHNlLFxuXHRcdFx0Y29tcGFjdDogZmFsc2Vcblx0XHR9O1xuXHRcdGNvbnN0IHNoZWxsQ29udGVudERlbnNpdHkgPSB0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy5zaGVsbENvbnRlbnREZW5zaXR5IHx8IFwiY29tcGFjdFwiO1xuXHRcdGxldCBpc0NvbmRlbnNlZExheW91dENvbXBsaWFudCA9IHRydWU7XG5cdFx0aWYgKChtYW5pZmVzdENvbnRlbnREZW5zaXR5Py5jb3p5ID09PSB0cnVlICYmIG1hbmlmZXN0Q29udGVudERlbnNpdHk/LmNvbXBhY3QgIT09IHRydWUpIHx8IHNoZWxsQ29udGVudERlbnNpdHkgPT09IFwiY296eVwiKSB7XG5cdFx0XHRpc0NvbmRlbnNlZExheW91dENvbXBsaWFudCA9IGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gaXNDb25kZW5zZWRMYXlvdXRDb21wbGlhbnQ7XG5cdH1cblxuXHQvL3JlZ2lvbiBPUCBTcGVjaWZpY1xuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHNlY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0U2VjdGlvbj59IEEgc2V0IG9mIG1hbmlmZXN0IHNlY3Rpb25zIGluZGV4ZWQgYnkgYW4gaXRlcmFibGUga2V5XG5cdCAqL1xuXHRnZXRTZWN0aW9ucygpOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RTZWN0aW9uPiB7XG5cdFx0cmV0dXJuIHRoaXMubWVyZ2VGbihcblx0XHRcdHt9LFxuXHRcdFx0dGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5jb250cm9sQ29uZmlndXJhdGlvbj8uW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0c1wiXT8uc2VjdGlvbnMsXG5cdFx0XHQodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uYm9keT8uc2VjdGlvbnNcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdHJ1ZSBvZiB0aGUgaGVhZGVyIG9mIHRoZSBhcHBsaWNhdGlvbiBpcyBlZGl0YWJsZSBhbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgZmFjZXRzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBoZWFkZXIgaWYgZWRpdGFibGVcblx0ICovXG5cdGlzSGVhZGVyRWRpdGFibGUoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0U2hvd09iamVjdFBhZ2VIZWFkZXIoKSAmJiAodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuZWRpdGFibGVIZWFkZXJDb250ZW50O1xuXHR9XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIHNob3cgdGhlIG9iamVjdCBwYWdlIGhlYWRlci5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaGVhZGVyIHNob3VsZCBiZSBkaXNwbGF5ZWRcblx0ICovXG5cdGdldFNob3dBbmNob3JCYXIoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKS5jb250ZW50Py5oZWFkZXI/LmFuY2hvckJhclZpc2libGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0PyAhISh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKS5jb250ZW50Py5oZWFkZXI/LmFuY2hvckJhclZpc2libGVcblx0XHRcdDogdHJ1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBzZWN0aW9uIHdpbGwgYmUgZGlzcGxheWVkIGluIGRpZmZlcmVudCB0YWJzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBpY29uIHRhYiBiYXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBzY3JvbGxpbmdcblx0ICovXG5cdHVzZUljb25UYWJCYXIoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0U2hvd0FuY2hvckJhcigpICYmICh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKS5zZWN0aW9uTGF5b3V0ID09PSBcIlRhYnNcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBwYWdlIGhlYWRlciBpcyB0byBiZSBzaG93bi5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgb2JqZWN0IHBhZ2UgaGVhZGVyIGlzIHRvIGJlIGRpc3BsYXllZFxuXHQgKi9cblx0Z2V0U2hvd09iamVjdFBhZ2VIZWFkZXIoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKS5jb250ZW50Py5oZWFkZXI/LnZpc2libGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0PyAhISh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKS5jb250ZW50Py5oZWFkZXI/LnZpc2libGVcblx0XHRcdDogdHJ1ZTtcblx0fVxuXG5cdC8vZW5kcmVnaW9uIE9QIFNwZWNpZmljXG5cblx0Ly9yZWdpb24gTFIgU3BlY2lmaWNcblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBtdWx0aXBsZSB2aWV3IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbn0gVGhlIHZpZXdzIHRoYXQgcmVwcmVzZW50IHRoZSBtYW5pZmVzdCBvYmplY3Rcblx0ICovXG5cdGdldFZpZXdDb25maWd1cmF0aW9uKCk6IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gKHRoaXMub01hbmlmZXN0U2V0dGluZ3MgYXMgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MpLnZpZXdzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgS1BJIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IFJldHVybnMgYSBtYXAgYmV0d2VlbiBLUEkgbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgY29uZmlndXJhdGlvblxuXHQgKi9cblx0Z2V0S1BJQ29uZmlndXJhdGlvbigpOiB7IFtrcGlOYW1lOiBzdHJpbmddOiBLUElDb25maWd1cmF0aW9uIH0ge1xuXHRcdHJldHVybiAodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncykua2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzIHx8IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb259IFRoZSBmaWx0ZXIgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBtYW5pZmVzdFxuXHQgKi9cblx0Z2V0RmlsdGVyQ29uZmlndXJhdGlvbigpOiBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24ge1xuXHRcdHJldHVybiB0aGlzLmdldENvbnRyb2xDb25maWd1cmF0aW9uKFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiKTtcblx0fVxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBlbnRpdHkgc2V0cyB0byBiZSBkaXNwbGF5ZWQuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGVudGl0eSBzZXRzXG5cdCAqL1xuXHRoYXNNdWx0aXBsZUVudGl0eVNldHMoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3Qgdmlld0NvbmZpZyA9IHRoaXMuZ2V0Vmlld0NvbmZpZ3VyYXRpb24oKSB8fCB7IHBhdGhzOiBbXSB9O1xuXHRcdGNvbnN0IG1hbmlmZXN0RW50aXR5U2V0ID0gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5lbnRpdHlTZXQ7XG5cdFx0cmV0dXJuIChcblx0XHRcdHZpZXdDb25maWcucGF0aHMuZmluZCgocGF0aDogVmlld0NvbmZpZ3VyYXRpb24pID0+IHtcblx0XHRcdFx0aWYgKChwYXRoIGFzIEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24pPy50ZW1wbGF0ZSkge1xuXHRcdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBwcmltYXJ5LCBzZWNvbmRhcnkgfSA9IHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHRcdHByaW1hcnkuc29tZShwYXRoID0+IHBhdGguZW50aXR5U2V0ICYmIHBhdGguZW50aXR5U2V0ICE9PSBtYW5pZmVzdEVudGl0eVNldCkgfHxcblx0XHRcdFx0XHRcdHNlY29uZGFyeS5zb21lKHBhdGggPT4gcGF0aC5lbnRpdHlTZXQgJiYgcGF0aC5lbnRpdHlTZXQgIT09IG1hbmlmZXN0RW50aXR5U2V0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cGF0aCA9IHBhdGggYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0XHRcdHJldHVybiBwYXRoLmVudGl0eVNldCAmJiBwYXRoLmVudGl0eVNldCAhPT0gbWFuaWZlc3RFbnRpdHlTZXQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pICE9PSB1bmRlZmluZWRcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGNvbnRleHQgcGF0aCBmb3IgdGhlIHRlbXBsYXRlIGlmIGl0IGlzIHNwZWNpZmllZCBpbiB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb250ZXh0IHBhdGggZm9yIHRoZSB0ZW1wbGF0ZVxuXHQgKi9cblx0Z2V0Q29udGV4dFBhdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncz8uY29udGV4dFBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSB2aXN1YWxpemF0aW9ucy5cblx0ICpcblx0ICogQHBhcmFtIHtWaWV3UGF0aENvbmZpZ3VyYXRpb259IHBhdGggVGhlIHBhdGggZnJvbSB0aGUgdmlld1xuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSB2aXN1YWxpemF0aW9uc1xuXHQgKi9cblx0aGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyhwYXRoPzogVmlld1BhdGhDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFwYXRoKSB7XG5cdFx0XHRjb25zdCB2aWV3Q29uZmlnID0gdGhpcy5nZXRWaWV3Q29uZmlndXJhdGlvbigpIHx8IHsgcGF0aHM6IFtdIH07XG5cdFx0XHRyZXR1cm4gdmlld0NvbmZpZy5wYXRocy5zb21lKHBhdGggPT4ge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdChwYXRoIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uKS5wcmltYXJ5Py5sZW5ndGggPiAwICYmXG5cdFx0XHRcdFx0KHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pLnNlY29uZGFyeT8ubGVuZ3RoID4gMFxuXHRcdFx0XHQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiAocGF0aCBhcyBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbikucHJpbWFyeT8ubGVuZ3RoID4gMCAmJiAocGF0aCBhcyBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbikuc2Vjb25kYXJ5Py5sZW5ndGggPiAwO1xuXHR9XG5cblx0Ly9lbmQgcmVnaW9uIExSIFNwZWNpZmljXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hbmlmZXN0V3JhcHBlcjtcbiJdfQ==
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmlmZXN0V3JhcHBlci50cyJdLCJuYW1lcyI6WyJNYW5pZmVzdFdyYXBwZXIiLCJvTWFuaWZlc3RTZXR0aW5ncyIsIm1lcmdlRm4iLCJjb252ZXJ0ZXJUeXBlIiwiaXNEZXNrdG9wIiwiZmFjZXRUYXJnZXQiLCJjb250cm9sQ29uZmlndXJhdGlvbiIsImZhY2V0cyIsImNvbnRlbnQiLCJoZWFkZXIiLCJhY3Rpb25zIiwiZm9vdGVyIiwidmFyaWFudE1hbmFnZW1lbnQiLCJWYXJpYW50TWFuYWdlbWVudFR5cGUiLCJOb25lIiwiZGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgiLCJzQW5ub3RhdGlvblBhdGgiLCJuYXZpZ2F0aW9uT3JDb2xsZWN0aW9uTmFtZSIsIm5hdmlnYXRpb24iLCJ2aWV3TGV2ZWwiLCJjb250ZW50RGVuc2l0aWVzIiwiY296eSIsImNvbXBhY3QiLCJmY2xFbmFibGVkIiwibWFuaWZlc3RDb250ZW50RGVuc2l0eSIsInNoZWxsQ29udGVudERlbnNpdHkiLCJpc0NvbmRlbnNlZExheW91dENvbXBsaWFudCIsInNlY3Rpb25zIiwiYm9keSIsImdldFNob3dPYmplY3RQYWdlSGVhZGVyIiwiZWRpdGFibGVIZWFkZXJDb250ZW50IiwiYW5jaG9yQmFyVmlzaWJsZSIsInVuZGVmaW5lZCIsImdldFNob3dBbmNob3JCYXIiLCJzZWN0aW9uTGF5b3V0IiwidmlzaWJsZSIsInZpZXdzIiwia2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzIiwiZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24iLCJ2aWV3Q29uZmlnIiwiZ2V0Vmlld0NvbmZpZ3VyYXRpb24iLCJwYXRocyIsIm1hbmlmZXN0RW50aXR5U2V0IiwiZW50aXR5U2V0IiwiZmluZCIsInBhdGgiLCJ0ZW1wbGF0ZSIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwic29tZSIsImNvbnRleHRQYXRoIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiO0FBQUE7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QTtBQUNBOzs7O2FBQ0MsbUNBQTBCTixJQUExQixFQUFpRTtBQUFBOztBQUNoRSxZQUFJLENBQUNBLElBQUwsRUFBVztBQUNWLGNBQU1OLFVBQVUsR0FBRyxLQUFLQyxvQkFBTCxNQUErQjtBQUFFQyxZQUFBQSxLQUFLLEVBQUU7QUFBVCxXQUFsRDtBQUNBLGlCQUFPRixVQUFVLENBQUNFLEtBQVgsQ0FBaUJTLElBQWpCLENBQXNCLFVBQUFMLElBQUksRUFBSTtBQUFBOztBQUNwQyxtQkFDQyxhQUFDQSxJQUFELENBQXdDRyxPQUF4QyxzREFBaURJLE1BQWpELElBQTBELENBQTFELElBQ0EsZUFBQ1AsSUFBRCxDQUF3Q0ksU0FBeEMsMERBQW1ERyxNQUFuRCxJQUE0RCxDQUY3RDtBQUlBLFdBTE0sQ0FBUDtBQU1BOztBQUNELGVBQU8sY0FBQ1AsSUFBRCxDQUF3Q0csT0FBeEMsd0RBQWlESSxNQUFqRCxJQUEwRCxDQUExRCxJQUErRCxnQkFBQ1AsSUFBRCxDQUF3Q0ksU0FBeEMsNERBQW1ERyxNQUFuRCxJQUE0RCxDQUFsSTtBQUNBLE8sQ0FFRDs7Ozs7OztTQUdjcEQsZSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJhYmxlUmVjb3JkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7XG5cdEJhc2VNYW5pZmVzdFNldHRpbmdzLFxuXHRDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0Q29udGVudERlbnNpdGllc1R5cGUsXG5cdEZpbHRlck1hbmlmZXN0Q29uZmlndXJhdGlvbixcblx0Rm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbixcblx0TGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MsXG5cdE1hbmlmZXN0QWN0aW9uLFxuXHRNYW5pZmVzdEhlYWRlckZhY2V0LFxuXHRNYW5pZmVzdFNlY3Rpb24sXG5cdE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uLFxuXHROYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uLFxuXHRPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyxcblx0U2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdFRlbXBsYXRlVHlwZSxcblx0VmFyaWFudE1hbmFnZW1lbnRUeXBlLFxuXHRDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uLFxuXHRWaWV3Q29uZmlndXJhdGlvbixcblx0S1BJQ29uZmlndXJhdGlvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgTWFuaWZlc3RXcmFwcGVyIHtcblx0LyoqXG5cdCAqIENyZWF0ZXMgYSB3cmFwcGVyIG9iamVjdCB0byBlbnN1cmUgdGhlIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgbWFuaWZlc3QgaXMgY29uc2lzdGVudCBhbmQgZXZlcnl0aGluZyBpcyBtZXJnZWQgY29ycmVjdGx5LlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Jhc2VNYW5pZmVzdFNldHRpbmdzfSBvTWFuaWZlc3RTZXR0aW5ncyBUaGUgbWFuaWZlc3Qgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHBhZ2Vcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGbiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlIG1lcmdlXG5cdCAqIEByZXR1cm5zIHtNYW5pZmVzdFdyYXBwZXJ9IFRoZSBtYW5pZmVzdCB3cmFwcGVyIG9iamVjdFxuXHQgKi9cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBvTWFuaWZlc3RTZXR0aW5nczogQmFzZU1hbmlmZXN0U2V0dGluZ3MsIHByaXZhdGUgbWVyZ2VGbjogRnVuY3Rpb24pIHt9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgdGVtcGxhdGUgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgdGVtcGxhdGVcblx0ICovXG5cdGdldFRlbXBsYXRlVHlwZSgpOiBUZW1wbGF0ZVR5cGUge1xuXHRcdHJldHVybiB0aGlzLm9NYW5pZmVzdFNldHRpbmdzLmNvbnZlcnRlclR5cGU7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIHdoZXRoZXIgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgaXMgYSBkZXNrdG9wIG9yIG5vdC5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB3ZSBhcmUgb24gYSBkZXNrdG9wXG5cdCAqL1xuXHRpc0Rlc2t0b3AoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5pc0Rlc2t0b3A7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBmb3JtIGNvbnRhaW5lcnMgKGZpZWxkIGdyb3Vwcy9pZGVudGlmaWNhdGlvbikgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBmYWNldFRhcmdldCBUaGUgdGFyZ2V0IGFubm90YXRpb24gcGF0aCBmb3IgdGhpcyBmb3JtXG5cdCAqIEByZXR1cm5zIHtGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9ufSBBIHNldCBvZiBtYW5pZmVzdCBoZWFkZXIgZmFjZXRzIGluZGV4ZWQgYnkgYW4gaXRlcmFibGUga2V5XG5cdCAqL1xuXHRnZXRGb3JtQ29udGFpbmVyKGZhY2V0VGFyZ2V0OiBzdHJpbmcpOiBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5jb250cm9sQ29uZmlndXJhdGlvbj8uW2ZhY2V0VGFyZ2V0XSBhcyBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGhlYWRlckZhY2V0cyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5cblx0ICpcblx0ICogQHJldHVybnMge0NvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pn0gQSBzZXQgb2YgbWFuaWZlc3QgaGVhZGVyIGZhY2V0cyBpbmRleGVkIGJ5IGFuIGl0ZXJhYmxlIGtleVxuXHQgKi9cblx0Z2V0SGVhZGVyRmFjZXRzKCk6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0PiB7XG5cdFx0cmV0dXJuIHRoaXMubWVyZ2VGbihcblx0XHRcdHt9LFxuXHRcdFx0dGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5jb250cm9sQ29uZmlndXJhdGlvbj8uW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiXT8uZmFjZXRzLFxuXHRcdFx0KHRoaXMub01hbmlmZXN0U2V0dGluZ3MgYXMgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MpLmNvbnRlbnQ/LmhlYWRlcj8uZmFjZXRzXG5cdFx0KTtcblx0fVxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBoZWFkZXIgYWN0aW9ucyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5cblx0ICpcblx0ICogQHJldHVybnMge0NvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj59IEEgc2V0IG9mIG1hbmlmZXN0IGFjdGlvbnMgaW5kZXhlZCBieSBhbiBpdGVyYWJsZSBrZXlcblx0ICovXG5cdGdldEhlYWRlckFjdGlvbnMoKTogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPiB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3MuY29udGVudD8uaGVhZGVyPy5hY3Rpb25zIHx8IHt9O1xuXHR9XG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGZvb3RlciBhY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPn0gQSBzZXQgb2YgbWFuaWZlc3QgYWN0aW9ucyBpbmRleGVkIGJ5IGFuIGl0ZXJhYmxlIGtleVxuXHQgKi9cblx0Z2V0Rm9vdGVyQWN0aW9ucygpOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncy5jb250ZW50Py5mb290ZXI/LmFjdGlvbnMgfHwge307XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB2YXJpYW50IG1hbmFnZW1lbnQgYXMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtWYXJpYW50TWFuYWdlbWVudFR5cGV9IEEgdHlwZSBvZiB2YXJpYW50IG1hbmFnZW1lbnRcblx0ICovXG5cdGdldFZhcmlhbnRNYW5hZ2VtZW50KCk6IFZhcmlhbnRNYW5hZ2VtZW50VHlwZSB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3MudmFyaWFudE1hbmFnZW1lbnQgfHwgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBhbm5vdGF0aW9uIFBhdGggZm9yIHRoZSBTUFYgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gVGhlIGFubm90YXRpb24gcGF0aCBmb3IgdGhlIGRlZmF1bHQgU1BWIG9yIHVuZGVmaW5lZC5cblx0ICovXG5cdGdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3MuZGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBjb250cm9sIGNvbmZpZ3VyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIGEgc3BlY2lmaWMgYW5ub3RhdGlvbiBwYXRoLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0Fubm90YXRpb25QYXRoIFRoZSByZWxhdGl2ZSBhbm5vdGF0aW9uIHBhdGhcblx0ICogQHByaXZhdGVcblx0ICogQHJldHVybnMge29iamVjdH0gVGhlIGNvbnRyb2wgY29uZmlndXJhdGlvblxuXHQgKi9cblx0Z2V0Q29udHJvbENvbmZpZ3VyYXRpb24oc0Fubm90YXRpb25QYXRoOiBzdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy5jb250cm9sQ29uZmlndXJhdGlvbj8uW3NBbm5vdGF0aW9uUGF0aF0gfHwge307XG5cdH1cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29uZmlndXJlZCBzZXR0aW5ncyBmb3IgYSBnaXZlbiBuYXZpZ2F0aW9uIHRhcmdldC5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IG5hdmlnYXRpb25PckNvbGxlY3Rpb25OYW1lIFRoZSBuYW1lIG9mIHRoZSBuYXZpZ2F0aW9uIHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIHtOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9ufSBUaGUgbmF2aWdhdGlvbiBzZXR0aW5ncyBjb25maWd1cmF0aW9uXG5cdCAqL1xuXHRnZXROYXZpZ2F0aW9uQ29uZmlndXJhdGlvbihuYXZpZ2F0aW9uT3JDb2xsZWN0aW9uTmFtZTogc3RyaW5nKTogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbiB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3M/Lm5hdmlnYXRpb24/LltuYXZpZ2F0aW9uT3JDb2xsZWN0aW9uTmFtZV0gfHwge307XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB2aWV3IGxldmVsLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgY3VycmVudCB2aWV3IGxldmVsXG5cdCAqL1xuXHRnZXRWaWV3TGV2ZWwoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncz8udmlld0xldmVsIHx8IC0xO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29udGVudERlbnNpdGllcyBzZXR0aW5nIG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHJldHVybnMge0NvbnRlbnREZW5zaXRpZXNUeXBlfSBUaGUgY3VycmVudCBjb250ZW50IGRlbnNpdHlcblx0ICovXG5cdGdldENvbnRlbnREZW5zaXRpZXMoKTogQ29udGVudERlbnNpdGllc1R5cGUge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy5jb250ZW50RGVuc2l0aWVzIHx8IHtcblx0XHRcdFx0Y296eTogZmFsc2UsXG5cdFx0XHRcdGNvbXBhY3Q6IGZhbHNlXG5cdFx0XHR9XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3Mgd2hldGhlciB3ZSBhcmUgaW4gRkNMIG1vZGUgb3Igbm90LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHdlIGFyZSBpbiBGQ0xcblx0ICovXG5cdGlzRmNsRW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLm9NYW5pZmVzdFNldHRpbmdzPy5mY2xFbmFibGVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyB3aGV0aGVyIHRoZSBjdXJyZW50IHNldHRpbmdzIChhcHBsaWNhdGlvbiAvIHNoZWxsKSBhbGxvd3MgdXMgdG8gdXNlIGNvbmRlbnNlZCBsYXlvdXQuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgd2UgY2FuIHVzZSB0aGUgY29uZGVuc2VkIGxheW91dCwgZmFsc2Ugb3RoZXJ3aXNlXG5cdCAqL1xuXHRpc0NvbmRlbnNlZExheW91dENvbXBsaWFudCgpOiBib29sZWFuIHtcblx0XHRjb25zdCBtYW5pZmVzdENvbnRlbnREZW5zaXR5ID0gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncz8uY29udGVudERlbnNpdGllcyB8fCB7XG5cdFx0XHRjb3p5OiBmYWxzZSxcblx0XHRcdGNvbXBhY3Q6IGZhbHNlXG5cdFx0fTtcblx0XHRjb25zdCBzaGVsbENvbnRlbnREZW5zaXR5ID0gdGhpcy5vTWFuaWZlc3RTZXR0aW5ncz8uc2hlbGxDb250ZW50RGVuc2l0eSB8fCBcImNvbXBhY3RcIjtcblx0XHRsZXQgaXNDb25kZW5zZWRMYXlvdXRDb21wbGlhbnQgPSB0cnVlO1xuXHRcdGlmICgobWFuaWZlc3RDb250ZW50RGVuc2l0eT8uY296eSA9PT0gdHJ1ZSAmJiBtYW5pZmVzdENvbnRlbnREZW5zaXR5Py5jb21wYWN0ICE9PSB0cnVlKSB8fCBzaGVsbENvbnRlbnREZW5zaXR5ID09PSBcImNvenlcIikge1xuXHRcdFx0aXNDb25kZW5zZWRMYXlvdXRDb21wbGlhbnQgPSBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIGlzQ29uZGVuc2VkTGF5b3V0Q29tcGxpYW50O1xuXHR9XG5cblx0Ly9yZWdpb24gT1AgU3BlY2lmaWNcblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBzZWN0aW9ucyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5cblx0ICpcblx0ICogQHJldHVybnMge0NvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+fSBBIHNldCBvZiBtYW5pZmVzdCBzZWN0aW9ucyBpbmRleGVkIGJ5IGFuIGl0ZXJhYmxlIGtleVxuXHQgKi9cblx0Z2V0U2VjdGlvbnMoKTogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0U2VjdGlvbj4ge1xuXHRcdHJldHVybiB0aGlzLm1lcmdlRm4oXG5cdFx0XHR7fSxcblx0XHRcdHRoaXMub01hbmlmZXN0U2V0dGluZ3MuY29udHJvbENvbmZpZ3VyYXRpb24/LltcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GYWNldHNcIl0/LnNlY3Rpb25zLFxuXHRcdFx0KHRoaXMub01hbmlmZXN0U2V0dGluZ3MgYXMgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MpLmNvbnRlbnQ/LmJvZHk/LnNlY3Rpb25zXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgb2YgdGhlIGhlYWRlciBvZiB0aGUgYXBwbGljYXRpb24gaXMgZWRpdGFibGUgYW5kIHNob3VsZCBhcHBlYXIgaW4gdGhlIGZhY2V0cy5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaGVhZGVyIGlmIGVkaXRhYmxlXG5cdCAqL1xuXHRpc0hlYWRlckVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmdldFNob3dPYmplY3RQYWdlSGVhZGVyKCkgJiYgKHRoaXMub01hbmlmZXN0U2V0dGluZ3MgYXMgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MpLmVkaXRhYmxlSGVhZGVyQ29udGVudDtcblx0fVxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBzaG93IHRoZSBvYmplY3QgcGFnZSBoZWFkZXIuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGhlYWRlciBzaG91bGQgYmUgZGlzcGxheWVkXG5cdCAqL1xuXHRnZXRTaG93QW5jaG9yQmFyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uaGVhZGVyPy5hbmNob3JCYXJWaXNpYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdD8gISEodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uaGVhZGVyPy5hbmNob3JCYXJWaXNpYmxlXG5cdFx0XHQ6IHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgc2VjdGlvbiB3aWxsIGJlIGRpc3BsYXllZCBpbiBkaWZmZXJlbnQgdGFicy5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaWNvbiB0YWIgYmFyIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2Ygc2Nyb2xsaW5nXG5cdCAqL1xuXHR1c2VJY29uVGFiQmFyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmdldFNob3dBbmNob3JCYXIoKSAmJiAodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuc2VjdGlvbkxheW91dCA9PT0gXCJUYWJzXCI7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgcGFnZSBoZWFkZXIgaXMgdG8gYmUgc2hvd24uXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIG9iamVjdCBwYWdlIGhlYWRlciBpcyB0byBiZSBkaXNwbGF5ZWRcblx0ICovXG5cdGdldFNob3dPYmplY3RQYWdlSGVhZGVyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uaGVhZGVyPy52aXNpYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdD8gISEodGhpcy5vTWFuaWZlc3RTZXR0aW5ncyBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncykuY29udGVudD8uaGVhZGVyPy52aXNpYmxlXG5cdFx0XHQ6IHRydWU7XG5cdH1cblxuXHQvL2VuZHJlZ2lvbiBPUCBTcGVjaWZpY1xuXG5cdC8vcmVnaW9uIExSIFNwZWNpZmljXG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgbXVsdGlwbGUgdmlldyBjb25maWd1cmF0aW9uIGZyb20gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7TXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb259IFRoZSB2aWV3cyB0aGF0IHJlcHJlc2VudCB0aGUgbWFuaWZlc3Qgb2JqZWN0XG5cdCAqL1xuXHRnZXRWaWV3Q29uZmlndXJhdGlvbigpOiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuICh0aGlzLm9NYW5pZmVzdFNldHRpbmdzIGFzIExpc3RSZXBvcnRNYW5pZmVzdFNldHRpbmdzKS52aWV3cztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIEtQSSBjb25maWd1cmF0aW9uIGZyb20gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBSZXR1cm5zIGEgbWFwIGJldHdlZW4gS1BJIG5hbWVzIGFuZCB0aGVpciByZXNwZWN0aXZlIGNvbmZpZ3VyYXRpb25cblx0ICovXG5cdGdldEtQSUNvbmZpZ3VyYXRpb24oKTogeyBba3BpTmFtZTogc3RyaW5nXTogS1BJQ29uZmlndXJhdGlvbiB9IHtcblx0XHRyZXR1cm4gKHRoaXMub01hbmlmZXN0U2V0dGluZ3MgYXMgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MpLmtleVBlcmZvcm1hbmNlSW5kaWNhdG9ycyB8fCB7fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGZpbHRlciBjb25maWd1cmF0aW9uIGZyb20gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7RmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9ufSBUaGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgbWFuaWZlc3Rcblx0ICovXG5cdGdldEZpbHRlckNvbmZpZ3VyYXRpb24oKTogRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb250cm9sQ29uZmlndXJhdGlvbihcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIik7XG5cdH1cblx0LyoqXG5cdCAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZW50aXR5IHNldHMgdG8gYmUgZGlzcGxheWVkLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBlbnRpdHkgc2V0c1xuXHQgKi9cblx0aGFzTXVsdGlwbGVFbnRpdHlTZXRzKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHZpZXdDb25maWcgPSB0aGlzLmdldFZpZXdDb25maWd1cmF0aW9uKCkgfHwgeyBwYXRoczogW10gfTtcblx0XHRjb25zdCBtYW5pZmVzdEVudGl0eVNldCA9IHRoaXMub01hbmlmZXN0U2V0dGluZ3MuZW50aXR5U2V0O1xuXHRcdHJldHVybiAoXG5cdFx0XHR2aWV3Q29uZmlnLnBhdGhzLmZpbmQoKHBhdGg6IFZpZXdDb25maWd1cmF0aW9uKSA9PiB7XG5cdFx0XHRcdGlmICgocGF0aCBhcyBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uKT8udGVtcGxhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyhwYXRoIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uKSkge1xuXHRcdFx0XHRcdGNvbnN0IHsgcHJpbWFyeSwgc2Vjb25kYXJ5IH0gPSBwYXRoIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRwcmltYXJ5LnNvbWUocGF0aCA9PiBwYXRoLmVudGl0eVNldCAmJiBwYXRoLmVudGl0eVNldCAhPT0gbWFuaWZlc3RFbnRpdHlTZXQpIHx8XG5cdFx0XHRcdFx0XHRzZWNvbmRhcnkuc29tZShwYXRoID0+IHBhdGguZW50aXR5U2V0ICYmIHBhdGguZW50aXR5U2V0ICE9PSBtYW5pZmVzdEVudGl0eVNldClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHBhdGggPSBwYXRoIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblx0XHRcdFx0XHRyZXR1cm4gcGF0aC5lbnRpdHlTZXQgJiYgcGF0aC5lbnRpdHlTZXQgIT09IG1hbmlmZXN0RW50aXR5U2V0O1xuXHRcdFx0XHR9XG5cdFx0XHR9KSAhPT0gdW5kZWZpbmVkXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjb250ZXh0IHBhdGggZm9yIHRoZSB0ZW1wbGF0ZSBpZiBpdCBpcyBzcGVjaWZpZWQgaW4gdGhlIG1hbmlmZXN0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29udGV4dCBwYXRoIGZvciB0aGUgdGVtcGxhdGVcblx0ICovXG5cdGdldENvbnRleHRQYXRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub01hbmlmZXN0U2V0dGluZ3M/LmNvbnRleHRQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgdmlzdWFsaXphdGlvbnMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Vmlld1BhdGhDb25maWd1cmF0aW9ufSBwYXRoIFRoZSBwYXRoIGZyb20gdGhlIHZpZXdcblx0ICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgdmlzdWFsaXphdGlvbnNcblx0ICovXG5cdGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMocGF0aD86IFZpZXdQYXRoQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuXHRcdGlmICghcGF0aCkge1xuXHRcdFx0Y29uc3Qgdmlld0NvbmZpZyA9IHRoaXMuZ2V0Vmlld0NvbmZpZ3VyYXRpb24oKSB8fCB7IHBhdGhzOiBbXSB9O1xuXHRcdFx0cmV0dXJuIHZpZXdDb25maWcucGF0aHMuc29tZShwYXRoID0+IHtcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHQocGF0aCBhcyBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbikucHJpbWFyeT8ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdChwYXRoIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uKS5zZWNvbmRhcnk/Lmxlbmd0aCA+IDBcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gKHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pLnByaW1hcnk/Lmxlbmd0aCA+IDAgJiYgKHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pLnNlY29uZGFyeT8ubGVuZ3RoID4gMDtcblx0fVxuXG5cdC8vZW5kIHJlZ2lvbiBMUiBTcGVjaWZpY1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYW5pZmVzdFdyYXBwZXI7XG4iXX0=