@sapui5/sap.fe.macros 1.138.0 → 1.139.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Breadcrumbs.js +269 -0
  4. package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
  5. package/src/sap/fe/macros/CommonHelper.js +2 -2
  6. package/src/sap/fe/macros/CommonHelper.ts +1 -1
  7. package/src/sap/fe/macros/Field.js +21 -4
  8. package/src/sap/fe/macros/Field.ts +21 -3
  9. package/src/sap/fe/macros/FooterContent.js +40 -10
  10. package/src/sap/fe/macros/FooterContent.tsx +44 -8
  11. package/src/sap/fe/macros/FormElement.js +2 -2
  12. package/src/sap/fe/macros/FormElement.ts +1 -2
  13. package/src/sap/fe/macros/MultiValueField.js +17 -4
  14. package/src/sap/fe/macros/MultiValueField.tsx +7 -2
  15. package/src/sap/fe/macros/RichTextEditor.js +30 -5
  16. package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
  17. package/src/sap/fe/macros/Share.js +73 -40
  18. package/src/sap/fe/macros/Share.tsx +29 -1
  19. package/src/sap/fe/macros/ValueHelp.js +3 -4
  20. package/src/sap/fe/macros/ValueHelp.tsx +2 -3
  21. package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
  22. package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
  23. package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
  24. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
  25. package/src/sap/fe/macros/ai/EasyFilterBar.js +30 -30
  26. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +40 -43
  27. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
  28. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
  29. package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
  30. package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
  31. package/src/sap/fe/macros/chart/MdcChartTemplate.js +19 -3
  32. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +15 -4
  33. package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
  34. package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
  35. package/src/sap/fe/macros/controls/FilterBar.js +49 -2
  36. package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
  37. package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
  38. package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
  39. package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
  40. package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
  41. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
  42. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
  43. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
  44. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
  45. package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
  46. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
  47. package/src/sap/fe/macros/designtime/Designtime.helper.js +12 -2
  48. package/src/sap/fe/macros/designtime/Designtime.helper.ts +12 -0
  49. package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
  50. package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
  51. package/src/sap/fe/macros/field/FieldBaseDelegate.js +9 -3
  52. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +22 -1
  53. package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
  54. package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
  55. package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
  56. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
  57. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
  58. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
  59. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
  60. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
  61. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
  62. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
  63. package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
  64. package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
  65. package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
  66. package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
  67. package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
  68. package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
  69. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
  70. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
  71. package/src/sap/fe/macros/internal/DataPoint.js +2 -1
  72. package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
  73. package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
  74. package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
  75. package/src/sap/fe/macros/internal/FilterField.block.js +4 -2
  76. package/src/sap/fe/macros/internal/FilterField.block.ts +3 -1
  77. package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
  78. package/src/sap/fe/macros/internal/field/DisplayStyle.js +49 -11
  79. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +51 -4
  80. package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
  81. package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
  82. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
  83. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +10 -0
  84. package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
  85. package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
  86. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -0
  87. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +7 -3
  88. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +8 -7
  89. package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
  90. package/src/sap/fe/macros/library.js +1 -1
  91. package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
  92. package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
  93. package/src/sap/fe/macros/messagebundle.properties +37 -29
  94. package/src/sap/fe/macros/messagebundle_ar.properties +5 -3
  95. package/src/sap/fe/macros/messagebundle_bg.properties +6 -4
  96. package/src/sap/fe/macros/messagebundle_ca.properties +8 -6
  97. package/src/sap/fe/macros/messagebundle_cnr.properties +5 -3
  98. package/src/sap/fe/macros/messagebundle_cs.properties +4 -2
  99. package/src/sap/fe/macros/messagebundle_cy.properties +7 -5
  100. package/src/sap/fe/macros/messagebundle_da.properties +6 -4
  101. package/src/sap/fe/macros/messagebundle_de.properties +11 -9
  102. package/src/sap/fe/macros/messagebundle_el.properties +7 -5
  103. package/src/sap/fe/macros/messagebundle_en.properties +8 -6
  104. package/src/sap/fe/macros/messagebundle_en_GB.properties +8 -6
  105. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +8 -6
  106. package/src/sap/fe/macros/messagebundle_es.properties +6 -4
  107. package/src/sap/fe/macros/messagebundle_es_MX.properties +6 -4
  108. package/src/sap/fe/macros/messagebundle_et.properties +5 -3
  109. package/src/sap/fe/macros/messagebundle_fi.properties +8 -6
  110. package/src/sap/fe/macros/messagebundle_fr.properties +6 -4
  111. package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -6
  112. package/src/sap/fe/macros/messagebundle_hi.properties +6 -4
  113. package/src/sap/fe/macros/messagebundle_hr.properties +6 -4
  114. package/src/sap/fe/macros/messagebundle_hu.properties +4 -2
  115. package/src/sap/fe/macros/messagebundle_id.properties +8 -6
  116. package/src/sap/fe/macros/messagebundle_it.properties +4 -2
  117. package/src/sap/fe/macros/messagebundle_iw.properties +5 -3
  118. package/src/sap/fe/macros/messagebundle_ja.properties +5 -3
  119. package/src/sap/fe/macros/messagebundle_kk.properties +5 -3
  120. package/src/sap/fe/macros/messagebundle_ko.properties +4 -2
  121. package/src/sap/fe/macros/messagebundle_lt.properties +6 -4
  122. package/src/sap/fe/macros/messagebundle_lv.properties +5 -3
  123. package/src/sap/fe/macros/messagebundle_mk.properties +5 -3
  124. package/src/sap/fe/macros/messagebundle_ms.properties +8 -6
  125. package/src/sap/fe/macros/messagebundle_nl.properties +7 -5
  126. package/src/sap/fe/macros/messagebundle_no.properties +6 -4
  127. package/src/sap/fe/macros/messagebundle_pl.properties +6 -4
  128. package/src/sap/fe/macros/messagebundle_pt.properties +7 -5
  129. package/src/sap/fe/macros/messagebundle_pt_PT.properties +6 -4
  130. package/src/sap/fe/macros/messagebundle_ro.properties +7 -5
  131. package/src/sap/fe/macros/messagebundle_ru.properties +4 -2
  132. package/src/sap/fe/macros/messagebundle_sh.properties +5 -3
  133. package/src/sap/fe/macros/messagebundle_sk.properties +5 -3
  134. package/src/sap/fe/macros/messagebundle_sl.properties +6 -4
  135. package/src/sap/fe/macros/messagebundle_sr.properties +5 -3
  136. package/src/sap/fe/macros/messagebundle_sv.properties +5 -3
  137. package/src/sap/fe/macros/messagebundle_th.properties +4 -2
  138. package/src/sap/fe/macros/messagebundle_tr.properties +4 -2
  139. package/src/sap/fe/macros/messagebundle_uk.properties +10 -8
  140. package/src/sap/fe/macros/messagebundle_vi.properties +6 -4
  141. package/src/sap/fe/macros/messagebundle_zh_CN.properties +5 -3
  142. package/src/sap/fe/macros/messagebundle_zh_TW.properties +5 -3
  143. package/src/sap/fe/macros/messages/MessageButton.js +17 -19
  144. package/src/sap/fe/macros/messages/MessageButton.ts +24 -22
  145. package/src/sap/fe/macros/table/Action.js +24 -2
  146. package/src/sap/fe/macros/table/Action.ts +13 -0
  147. package/src/sap/fe/macros/table/ActionGroup.js +24 -2
  148. package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
  149. package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
  150. package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
  151. package/src/sap/fe/macros/table/ActionOverride.js +24 -2
  152. package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
  153. package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
  154. package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
  155. package/src/sap/fe/macros/table/Column.js +3 -3
  156. package/src/sap/fe/macros/table/Column.ts +2 -2
  157. package/src/sap/fe/macros/table/MdcTableTemplate.js +18 -8
  158. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +30 -5
  159. package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
  160. package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
  161. package/src/sap/fe/macros/table/Table.block.js +137 -108
  162. package/src/sap/fe/macros/table/Table.block.tsx +29 -2
  163. package/src/sap/fe/macros/table/TableAPI.js +143 -133
  164. package/src/sap/fe/macros/table/TableAPI.ts +5 -1
  165. package/src/sap/fe/macros/table/TableDefinition.js +4 -2
  166. package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
  167. package/src/sap/fe/macros/table/TableRuntime.js +3 -3
  168. package/src/sap/fe/macros/table/TableRuntime.ts +2 -2
  169. package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -19
  170. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -23
  171. package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
  172. package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
  173. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
  174. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
  175. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
  176. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
  177. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +4 -1
  178. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +3 -0
  179. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +11 -6
  180. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +19 -14
  181. package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -6
  182. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -2
  183. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +15 -3
  184. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +17 -2
@@ -266,6 +266,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
266
266
  active: this.hasQuickView,
267
267
  press: FieldRuntimeHelper.pressLink,
268
268
  ariaLabelledBy: this.ariaLabelledBy,
269
+ reactiveAreaMode: this.formatOptions?.reactiveAreaMode,
269
270
  children: {
270
271
  dependents: this.createDependents()
271
272
  }
@@ -380,4 +381,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
380
381
  _exports = DataPoint;
381
382
  return _exports;
382
383
  }, false);
383
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUG9pbnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFzc29jaWF0aW9uIiwidHlwZSIsIl9kZWMzIiwicHJvcGVydHkiLCJyZXF1aXJlZCIsIl9kZWM0IiwiX2RlYzUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiZGVmYXVsdENsYXNzIiwiRGF0YVBvaW50Rm9ybWF0T3B0aW9ucyIsIl9kZWM2IiwiaXNCaW5kaW5nSW5mbyIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiaGFzUXVpY2tWaWV3IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJnZXRUZW1wbGF0aW5nT2JqZWN0cyIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiaW50ZXJuYWxEYXRhTW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRQYXRoIiwiaW50ZXJuYWxWYWx1ZURhdGFNb2RlbFBhdGgiLCJ2aXNpYmxlIiwiZ2V0VmlzaWJsZUV4cHJlc3Npb24iLCJ0YXJnZXRPYmplY3QiLCJWYWx1ZSIsInBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImRhdGFNb2RlbFBhdGgiLCJ2YWx1ZURhdGFNb2RlbFBhdGgiLCJnZXREYXRhUG9pbnRWaXN1YWxpemF0aW9uIiwiVmlzdWFsaXphdGlvbiIsInZpc3VhbGl6YXRpb24iLCJ2YWx1ZVByb3BlcnR5IiwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyIsImdldFByb3BlcnR5V2l0aFNlbWFudGljT2JqZWN0IiwiaXNQcm9wZXJ0eSIsImhhc1VuaXQiLCJoYXNDdXJyZW5jeSIsImdldEVuYWJsZWQiLCJpc0EiLCJnZXRBY3RpdmUiLCJzZXRFbmFibGVkIiwiZW5hYmxlZCIsInNldFByb3BlcnR5IiwiY3JlYXRlUmF0aW5nSW5kaWNhdG9yIiwiZGF0YVBvaW50VGFyZ2V0IiwidGFyZ2V0VmFsdWUiLCJnZXRUYXJnZXRWYWx1ZUJpbmRpbmciLCJkYXRhUG9pbnRWYWx1ZSIsInByb3BlcnR5VHlwZSIsIiR0YXJnZXQiLCJudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMiLCJWYWx1ZUZvcm1hdCIsIk51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyIsInZhbHVlIiwiZ2V0VmFsdWVGb3JtYXR0ZWQiLCJfanN4IiwiUmF0aW5nSW5kaWNhdG9yIiwiaWQiLCJpZFByZWZpeCIsImdlbmVyYXRlIiwidW5kZWZpbmVkIiwibWF4VmFsdWUiLCJjb21waWxlRXhwcmVzc2lvbiIsInRvb2x0aXAiLCJnZXRUb29sdGlwVmFsdWUiLCJpY29uU2l6ZSIsImZvcm1hdE9wdGlvbnMiLCJjbGFzcyIsInNob3dMYWJlbHMiLCJlZGl0YWJsZSIsImFyaWFMYWJlbGxlZEJ5IiwiY3JlYXRlUHJvZ3Jlc3NJbmRpY2F0b3IiLCJjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbiIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IiLCJkaXNwbGF5VmFsdWUiLCJidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvckRpc3BsYXlWYWx1ZSIsInBlcmNlbnRWYWx1ZSIsImJ1aWxkRXhwcmVzc2lvbkZvclByb2dyZXNzSW5kaWNhdG9yUGVyY2VudFZhbHVlIiwiUHJvZ3Jlc3NJbmRpY2F0b3IiLCJzdGF0ZSIsImNyZWF0ZU9iamVjdE51bWJlciIsImVtcHR5SW5kaWNhdG9yTW9kZSIsInNob3dFbXB0eUluZGljYXRvciIsIm9iamVjdFN0YXR1c051bWJlciIsImJ1aWxkRmllbGRCaW5kaW5nRXhwcmVzc2lvbiIsImxpbWl0U2hvd0RlY2ltYWxzIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0U2FwRmVNYW5pZmVzdENvbmZpZ3VyYXRpb24iLCJhcHAiLCJzaG93T25seVVuaXREZWNpbWFscyIsInVuaXQiLCJtZWFzdXJlRGlzcGxheU1vZGUiLCJVSUZvcm1hdHRlcnMiLCJnZXRCaW5kaW5nRm9yVW5pdE9yQ3VycmVuY3kiLCJPYmplY3ROdW1iZXIiLCJudW1iZXIiLCJlbXBoYXNpemVkIiwiZGF0YVBvaW50U3R5bGUiLCJjcmVhdGVEZXBlbmRlbnRzIiwiUXVpY2tWaWV3IiwiY3JlYXRlT2JqZWN0U3RhdHVzIiwib2JqZWN0U3RhdHVzVGV4dCIsImljb25FeHByZXNzaW9uIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIiwiT2JqZWN0U3RhdHVzIiwiaWNvbiIsInRleHQiLCJhY3RpdmUiLCJwcmVzcyIsIkZpZWxkUnVudGltZUhlbHBlciIsInByZXNzTGluayIsImNoaWxkcmVuIiwiZGVwZW5kZW50cyIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiUXVpY2tJbmZvIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiZ2V0UmVsYXRpdmVQYXRocyIsIlRhcmdldFZhbHVlIiwiZ2V0VmFsdWUiLCJnZXRUZXh0IiwiZ2V0TnVtYmVyIiwiZ2V0RGlzcGxheVZhbHVlIiwidG9TdHJpbmciLCJnZXRQcm9wZXJ0eSIsInNldFZhbHVlIiwic2V0VGV4dCIsInNldE51bWJlciIsIkxvZyIsImVycm9yIiwiQnVpbGRpbmdCbG9jayIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YVBvaW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBWaXN1YWxpemF0aW9uVHlwZSwgdHlwZSBEYXRhUG9pbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCB0eXBlIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGlzUHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yLCBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUljb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Dcml0aWNhbGl0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRSZWxhdGl2ZVBhdGhzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgaGFzQ3VycmVuY3ksIGhhc1VuaXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlXaXRoU2VtYW50aWNPYmplY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9TZW1hbnRpY09iamVjdEhlbHBlclwiO1xuaW1wb3J0ICogYXMgVUlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2V0VmlzaWJsZUV4cHJlc3Npb24sIGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCB7XG5cdGJ1aWxkRXhwcmVzc2lvbkZvclByb2dyZXNzSW5kaWNhdG9yRGlzcGxheVZhbHVlLFxuXHRidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvclBlcmNlbnRWYWx1ZSxcblx0YnVpbGRGaWVsZEJpbmRpbmdFeHByZXNzaW9uLFxuXHRnZXRWYWx1ZUZvcm1hdHRlZFxufSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9oZWxwZXJzL0RhdGFQb2ludFRlbXBsYXRpbmdcIjtcbmltcG9ydCBRdWlja1ZpZXcgZnJvbSBcInNhcC9mZS9tYWNyb3MvcXVpY2tWaWV3L1F1aWNrVmlld1wiO1xuaW1wb3J0IE9iamVjdE51bWJlciBmcm9tIFwic2FwL20vT2JqZWN0TnVtYmVyXCI7XG5pbXBvcnQgdHlwZSB7IE9iamVjdFN0YXR1cyRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL09iamVjdFN0YXR1c1wiO1xuaW1wb3J0IE9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgUHJvZ3Jlc3NJbmRpY2F0b3IgZnJvbSBcInNhcC9tL1Byb2dyZXNzSW5kaWNhdG9yXCI7XG5pbXBvcnQgUmF0aW5nSW5kaWNhdG9yIGZyb20gXCJzYXAvbS9SYXRpbmdJbmRpY2F0b3JcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBNZGNMaW5rIGZyb20gXCJzYXAvdWkvbWRjL0xpbmtcIjtcbmltcG9ydCBGaWVsZFJ1bnRpbWVIZWxwZXIgZnJvbSBcIi4uL2ZpZWxkL0ZpZWxkUnVudGltZUhlbHBlclwiO1xuaW1wb3J0IERhdGFQb2ludEZvcm1hdE9wdGlvbnMgZnJvbSBcIi4vRGF0YVBvaW50Rm9ybWF0T3B0aW9uc1wiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmludGVybmFsLkRhdGFQb2ludFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YVBvaW50IGV4dGVuZHMgQnVpbGRpbmdCbG9jazxDb250cm9sPiB7XG5cdC8qKlxuXHQgKiBQcmVmaXggYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBJRCBvZiB0aGUgZmllbGRcblx0ICovXG5cdEBhc3NvY2lhdGlvbih7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWRQcmVmaXg/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIE1ldGFkYXRhIHBhdGggdG8gdGhlIGRhdGFQb2ludC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRyZXF1aXJlZDogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgbWV0YVBhdGghOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWwuRGF0YVBvaW50Rm9ybWF0T3B0aW9uc1wiLCBtdWx0aXBsZTogZmFsc2UsIGRlZmF1bHRDbGFzczogRGF0YVBvaW50Rm9ybWF0T3B0aW9ucyB9KVxuXHRmb3JtYXRPcHRpb25zITogRGF0YVBvaW50Rm9ybWF0T3B0aW9ucztcblxuXHQvKipcblx0ICogUHJvcGVydHkgdG8gc2V0IGFuIGV4dGVybmFsIHZhbHVlIHRoYXQgY29tZXMgZnJvbSBhIGRpZmZlcmVudCBtb2RlbCB0aGFuIHRoZSBvRGF0YSBtb2RlbFxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHZhbHVlPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSB0byBzZXQgdGhlIHZpc3VhbGl6YXRpb24gdHlwZVxuXHQgKi9cblx0cHJpdmF0ZSB2aXN1YWxpemF0aW9uPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSB0byBzZXQgdGhlIHZpc2liaWxpdHlcblx0ICovXG5cdHByaXZhdGUgdmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cblx0LyoqXG5cdCAqIFByb3BlcnR5IHRvIHNldCBwcm9wZXJ0eSBpZiB0aGUgcHJvcGVydHkgaGFzIGEgUXVpY2t2aWV3XG5cdCAqL1xuXHRwcml2YXRlIGhhc1F1aWNrVmlldyA9IGZhbHNlO1xuXG5cdHByaXZhdGUgZGF0YU1vZGVsUGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGg8RGF0YVBvaW50VHlwZT47XG5cblx0cHJpdmF0ZSB2YWx1ZURhdGFNb2RlbFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5PjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPERhdGFQb2ludD4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXIgZm9yIHRoZSBvbk1ldGFkYXRhQXZhaWxhYmxlIGV2ZW50LlxuXHQgKi9cblx0b25NZXRhZGF0YUF2YWlsYWJsZSgpOiB2b2lkIHtcblx0XHR0aGlzLmdldFRlbXBsYXRpbmdPYmplY3RzKCk7XG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBnZXQgdGhlIHRlbXBsYXRpbmcgb2JqZWN0cy5cblx0ICovXG5cdHByaXZhdGUgZ2V0VGVtcGxhdGluZ09iamVjdHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgaW50ZXJuYWxEYXRhTW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxEYXRhUG9pbnRUeXBlPih0aGlzLm1ldGFQYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRpZiAoIWludGVybmFsRGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgaW50ZXJuYWxWYWx1ZURhdGFNb2RlbFBhdGg7XG5cdFx0dGhpcy52aXNpYmxlID0gZ2V0VmlzaWJsZUV4cHJlc3Npb24oaW50ZXJuYWxEYXRhTW9kZWxQYXRoKTtcblx0XHRpZiAoaW50ZXJuYWxEYXRhTW9kZWxQYXRoPy50YXJnZXRPYmplY3Q/LlZhbHVlPy5wYXRoKSB7XG5cdFx0XHRpbnRlcm5hbFZhbHVlRGF0YU1vZGVsUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoPFByb3BlcnR5Pihcblx0XHRcdFx0aW50ZXJuYWxEYXRhTW9kZWxQYXRoLFxuXHRcdFx0XHRpbnRlcm5hbERhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LlZhbHVlLnBhdGhcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5kYXRhTW9kZWxQYXRoID0gaW50ZXJuYWxEYXRhTW9kZWxQYXRoO1xuXHRcdHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoID0gaW50ZXJuYWxWYWx1ZURhdGFNb2RlbFBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIHRoZSB2aXN1YWxpemF0aW9uIHR5cGUgZm9yIHRoaXMgRGF0YVBvaW50LlxuXHQgKiBAcGFyYW0gZGF0YU1vZGVsUGF0aFxuXHQgKi9cblx0cHJpdmF0ZSBnZXREYXRhUG9pbnRWaXN1YWxpemF0aW9uKGRhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8RGF0YVBvaW50VHlwZT4pOiB2b2lkIHtcblx0XHRpZiAoZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q/LlZpc3VhbGl6YXRpb24gPT09IFZpc3VhbGl6YXRpb25UeXBlLlJhdGluZykge1xuXHRcdFx0dGhpcy52aXN1YWxpemF0aW9uID0gXCJSYXRpbmdcIjtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5WaXN1YWxpemF0aW9uID09PSBWaXN1YWxpemF0aW9uVHlwZS5Qcm9ncmVzcykge1xuXHRcdFx0dGhpcy52aXN1YWxpemF0aW9uID0gXCJQcm9ncmVzc1wiO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB2YWx1ZVByb3BlcnR5ID0gdGhpcy52YWx1ZURhdGFNb2RlbFBhdGggJiYgdGhpcy52YWx1ZURhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRcdC8vY2hlY2sgd2hldGhlciB0aGUgdmlzdWFsaXphdGlvbiB0eXBlIHNob3VsZCBiZSBhbiBvYmplY3QgbnVtYmVyIGluIGNhc2Ugb25lIG9mIHRoZSBpZiBjb25kaXRpb25zIG1ldFxuXHRcdHRoaXMuaGFzUXVpY2tWaWV3ID0gKHZhbHVlUHJvcGVydHkgJiYgaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyhkYXRhTW9kZWxQYXRoLCB2YWx1ZVByb3BlcnR5KSkgPz8gZmFsc2U7XG5cdFx0aWYgKHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoICYmIGdldFByb3BlcnR5V2l0aFNlbWFudGljT2JqZWN0KHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoKSkge1xuXHRcdFx0dGhpcy5oYXNRdWlja1ZpZXcgPSB0cnVlO1xuXHRcdH1cblx0XHRpZiAodGhpcy5oYXNRdWlja1ZpZXcgIT09IHRydWUpIHtcblx0XHRcdGlmIChpc1Byb3BlcnR5KHZhbHVlUHJvcGVydHkpICYmIChoYXNVbml0KHZhbHVlUHJvcGVydHkpIHx8IGhhc0N1cnJlbmN5KHZhbHVlUHJvcGVydHkpKSkge1xuXHRcdFx0XHQvLyB3ZSBvbmx5IHNob3cgYW4gb2JqZWN0TnVtYmVyIGlmIHRoZXJlIGlzIG5vIHF1aWNrdmlldyBhbmQgYSB1bml0IG9yIGEgY3VycmVuY3lcblx0XHRcdFx0dGhpcy52aXN1YWxpemF0aW9uID0gXCJPYmplY3ROdW1iZXJcIjtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vZGVmYXVsdCBjYXNlIHRvIGhhbmRsZSB0aGlzIGFzIG9iamVjdFN0YXR1cyB0eXBlXG5cdFx0dGhpcy52aXN1YWxpemF0aW9uID0gXCJPYmplY3RTdGF0dXNcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjdXJyZW50IGVuYWJsZW1lbnQgc3RhdGUgb2YgdGhlIGRhdGFQb2ludC5cblx0ICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSB3aXRoIHRoZSBlbmFibGVtZW50IHN0YXRlXG5cdCAqL1xuXHRnZXRFbmFibGVkKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxPYmplY3RTdGF0dXM+KFwic2FwLm0uT2JqZWN0U3RhdHVzXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jb250ZW50LmdldEFjdGl2ZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY3VycmVudCBlbmFibGVtZW50IHN0YXRlIG9mIHRoZSBkYXRhcG9pbnQuXG5cdCAqIEBwYXJhbSBlbmFibGVkXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGRhdGFwb2ludCByZWZlcmVuY2Vcblx0ICovXG5cdHNldEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IENvbnRyb2wge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxPYmplY3RTdGF0dXM+KFwic2FwLm0uT2JqZWN0U3RhdHVzXCIpKSB7XG5cdFx0XHR0aGlzLmNvbnRlbnQuc2V0UHJvcGVydHkoXCJhY3RpdmVcIiwgZW5hYmxlZCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IFwic2V0RW5hYmxlZCBpc24ndCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBmaWVsZCB0eXBlXCI7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBSYXRpbmdJbmRpY2F0b3IgY29udHJvbC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgUmF0aW5nSW5kaWNhdG9yXG5cdCAqL1xuXHRjcmVhdGVSYXRpbmdJbmRpY2F0b3IoZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPik6IFJhdGluZ0luZGljYXRvciB7XG5cdFx0Y29uc3QgZGF0YVBvaW50VGFyZ2V0ID0gZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0Y29uc3QgdGFyZ2V0VmFsdWUgPSB0aGlzLmdldFRhcmdldFZhbHVlQmluZGluZyhkYXRhTW9kZWxQYXRoKTtcblxuXHRcdGNvbnN0IGRhdGFQb2ludFZhbHVlID0gZGF0YVBvaW50VGFyZ2V0Py5WYWx1ZSB8fCBcIlwiO1xuXHRcdGNvbnN0IHByb3BlcnR5VHlwZSA9IGRhdGFQb2ludFZhbHVlPy4kdGFyZ2V0Py50eXBlO1xuXG5cdFx0bGV0IG51bWJlck9mRnJhY3Rpb25hbERpZ2l0cztcblx0XHRpZiAocHJvcGVydHlUeXBlID09PSBcIkVkbS5EZWNpbWFsXCIgJiYgZGF0YVBvaW50VGFyZ2V0Py5WYWx1ZUZvcm1hdCkge1xuXHRcdFx0aWYgKGRhdGFQb2ludFRhcmdldC5WYWx1ZUZvcm1hdC5OdW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMpIHtcblx0XHRcdFx0bnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzID0gZGF0YVBvaW50VGFyZ2V0LlZhbHVlRm9ybWF0Lk51bWJlck9mRnJhY3Rpb25hbERpZ2l0cztcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29uc3QgdmFsdWUgPSBnZXRWYWx1ZUZvcm1hdHRlZCh0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCwgZGF0YVBvaW50VmFsdWUsIHByb3BlcnR5VHlwZSwgbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8UmF0aW5nSW5kaWNhdG9yXG5cdFx0XHRcdGlkPXt0aGlzLmlkUHJlZml4ID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIFwiUmF0aW5nSW5kaWNhdG9yLUZpZWxkLWRpc3BsYXlcIl0pIDogdW5kZWZpbmVkfVxuXHRcdFx0XHRtYXhWYWx1ZT17dGFyZ2V0VmFsdWV9XG5cdFx0XHRcdHZhbHVlPXt0aGlzLnZhbHVlID8/IGNvbXBpbGVFeHByZXNzaW9uKHZhbHVlKX1cblx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUb29sdGlwVmFsdWUoZGF0YU1vZGVsUGF0aCl9XG5cdFx0XHRcdGljb25TaXplPXt0aGlzLmZvcm1hdE9wdGlvbnM/Lmljb25TaXplfVxuXHRcdFx0XHRjbGFzcz17dGhpcy5mb3JtYXRPcHRpb25zPy5zaG93TGFiZWxzID8/IGZhbHNlID8gXCJzYXBVaVRpbnlNYXJnaW5Ub3BCb3R0b21cIiA6IHVuZGVmaW5lZH1cblx0XHRcdFx0ZWRpdGFibGU9XCJmYWxzZVwiXG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBQcm9ncmVzc0luZGljYXRvciBjb250cm9sLlxuXHQgKiBAcGFyYW0gZGF0YU1vZGVsUGF0aFxuXHQgKiBAcmV0dXJucyBQcm9ncmVzc0luZGljYXRvclxuXHQgKi9cblx0Y3JlYXRlUHJvZ3Jlc3NJbmRpY2F0b3IoZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPik6IFByb2dyZXNzSW5kaWNhdG9yIHtcblx0XHRjb25zdCBjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbiA9IGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0XG5cdFx0XHQ/IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IoZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QsIGRhdGFNb2RlbFBhdGgpXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBkaXNwbGF5VmFsdWUgPSBidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvckRpc3BsYXlWYWx1ZShkYXRhTW9kZWxQYXRoKTtcblx0XHRjb25zdCBwZXJjZW50VmFsdWUgPSBidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvclBlcmNlbnRWYWx1ZShkYXRhTW9kZWxQYXRoKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8UHJvZ3Jlc3NJbmRpY2F0b3Jcblx0XHRcdFx0aWQ9e3RoaXMuaWRQcmVmaXggPyBnZW5lcmF0ZShbdGhpcy5pZFByZWZpeCwgXCJQcm9ncmVzc0luZGljYXRvci1GaWVsZC1kaXNwbGF5XCJdKSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0ZGlzcGxheVZhbHVlPXtkaXNwbGF5VmFsdWV9XG5cdFx0XHRcdHBlcmNlbnRWYWx1ZT17cGVyY2VudFZhbHVlfVxuXHRcdFx0XHRzdGF0ZT17Y3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb259XG5cdFx0XHRcdHRvb2x0aXA9e3RoaXMuZ2V0VG9vbHRpcFZhbHVlKGRhdGFNb2RlbFBhdGgpfVxuXHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17dGhpcy5hcmlhTGFiZWxsZWRCeX1cblx0XHRcdC8+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIE9iamVjdE51bWJlciBjb250cm9sLlxuXHQgKiBAcGFyYW0gZGF0YU1vZGVsUGF0aFxuXHQgKiBAcmV0dXJucyBPYmplY3ROdW1iZXJcblx0ICovXG5cdGNyZWF0ZU9iamVjdE51bWJlcihkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+KTogT2JqZWN0TnVtYmVyIHtcblx0XHRjb25zdCBjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbiA9IGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0XG5cdFx0XHQ/IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IoZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QsIGRhdGFNb2RlbFBhdGgpXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBlbXB0eUluZGljYXRvck1vZGUgPSB0aGlzLmZvcm1hdE9wdGlvbnM/LnNob3dFbXB0eUluZGljYXRvciA/PyBmYWxzZSA/IFwiT25cIiA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBvYmplY3RTdGF0dXNOdW1iZXIgPSBidWlsZEZpZWxkQmluZGluZ0V4cHJlc3Npb24oZGF0YU1vZGVsUGF0aCwgdGhpcy5mb3JtYXRPcHRpb25zLCB0cnVlKTtcblx0XHRjb25zdCBsaW1pdFNob3dEZWNpbWFscyA9IHRoaXMuZ2V0TWFuaWZlc3RXcmFwcGVyKCk/LmdldFNhcEZlTWFuaWZlc3RDb25maWd1cmF0aW9uKCk/LmFwcD8uc2hvd09ubHlVbml0RGVjaW1hbHMgPT09IHRydWU7XG5cdFx0Y29uc3QgdW5pdCA9XG5cdFx0XHR0aGlzLmZvcm1hdE9wdGlvbnM/Lm1lYXN1cmVEaXNwbGF5TW9kZSA9PT0gXCJIaWRkZW5cIlxuXHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHQ6IGNvbXBpbGVFeHByZXNzaW9uKFVJRm9ybWF0dGVycy5nZXRCaW5kaW5nRm9yVW5pdE9yQ3VycmVuY3kodGhpcy52YWx1ZURhdGFNb2RlbFBhdGgsIHRydWUsIGxpbWl0U2hvd0RlY2ltYWxzKSk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PE9iamVjdE51bWJlclxuXHRcdFx0XHRpZD17dGhpcy5pZFByZWZpeCA/IGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBcIk9iamVjdE51bWJlci1GaWVsZC1kaXNwbGF5XCJdKSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0c3RhdGU9e2NyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9ufVxuXHRcdFx0XHRudW1iZXI9e3RoaXMudmFsdWUgPz8gb2JqZWN0U3RhdHVzTnVtYmVyfVxuXHRcdFx0XHR1bml0PXt1bml0fVxuXHRcdFx0XHR2aXNpYmxlPXt0aGlzLnZpc2libGV9XG5cdFx0XHRcdGVtcGhhc2l6ZWQ9XCJmYWxzZVwiXG5cdFx0XHRcdGNsYXNzPXt0aGlzLmZvcm1hdE9wdGlvbnM/LmRhdGFQb2ludFN0eWxlID09PSBcImxhcmdlXCIgPyBcInNhcE1PYmplY3ROdW1iZXJMYXJnZVwiIDogdW5kZWZpbmVkfVxuXHRcdFx0XHR0b29sdGlwPXt0aGlzLmdldFRvb2x0aXBWYWx1ZShkYXRhTW9kZWxQYXRoKX1cblx0XHRcdFx0ZW1wdHlJbmRpY2F0b3JNb2RlPXtlbXB0eUluZGljYXRvck1vZGV9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZGVwZW5kZW50LlxuXHQgKiBAcmV0dXJucyBEZXBlbmRlbnQgZWl0aGVyIHdpdGggdGhlIFF1aWNrVmlldyBvciBhbiBlbXB0eSBzdHJpbmcuXG5cdCAqL1xuXHRwcml2YXRlIGNyZWF0ZURlcGVuZGVudHMoKTogTWRjTGluayB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuaGFzUXVpY2tWaWV3KSB7XG5cdFx0XHRyZXR1cm4gbmV3IFF1aWNrVmlldyhcblx0XHRcdFx0dGhpcy52YWx1ZURhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT4sXG5cdFx0XHRcdHRoaXMubWV0YVBhdGgsXG5cdFx0XHRcdHRoaXMuY29udGV4dFBhdGggPz8gXCJcIlxuXHRcdFx0KS5jcmVhdGVDb250ZW50KCkgYXMgTWRjTGluaztcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIE9iamVjdFN0YXR1cyBjb250cm9sLlxuXHQgKiBAcGFyYW0gZGF0YU1vZGVsUGF0aFxuXHQgKiBAcmV0dXJucyBPYmplY3RTdGF0dXNcblx0ICovXG5cdGNyZWF0ZU9iamVjdFN0YXR1cyhkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+KTogT2JqZWN0U3RhdHVzIHtcblx0XHRsZXQgY3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb24gPSBkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdFxuXHRcdFx0PyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LCBkYXRhTW9kZWxQYXRoKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0aWYgKGNyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9uID09PSBcIk5vbmVcIiAmJiB0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0Y3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb24gPSB0aGlzLmhhc1F1aWNrVmlldyA/IFwiSW5mb3JtYXRpb25cIiA6IFwiTm9uZVwiO1xuXHRcdH1cblx0XHRjb25zdCBlbXB0eUluZGljYXRvck1vZGUgPSB0aGlzLmZvcm1hdE9wdGlvbnM/LnNob3dFbXB0eUluZGljYXRvciA/PyBmYWxzZSA/IFwiT25cIiA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBvYmplY3RTdGF0dXNUZXh0ID0gYnVpbGRGaWVsZEJpbmRpbmdFeHByZXNzaW9uKGRhdGFNb2RlbFBhdGgsIHRoaXMuZm9ybWF0T3B0aW9ucywgZmFsc2UpO1xuXHRcdGNvbnN0IGljb25FeHByZXNzaW9uID1cblx0XHRcdHRoaXMuZm9ybWF0T3B0aW9ucz8uZGF0YVBvaW50U3R5bGUgPT09IFwibGFyZ2VcIiB8fCAhZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Rcblx0XHRcdFx0PyB1bmRlZmluZWRcblx0XHRcdFx0OiBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUljb24oZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QsIGRhdGFNb2RlbFBhdGgpO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxPYmplY3RTdGF0dXNcblx0XHRcdFx0aWQ9e3RoaXMuaWRQcmVmaXggPyBnZW5lcmF0ZShbdGhpcy5pZFByZWZpeCwgXCJPYmplY3RTdGF0dXMtRmllbGQtZGlzcGxheVwiXSkgOiB1bmRlZmluZWR9XG5cdFx0XHRcdGNsYXNzPXt0aGlzLmZvcm1hdE9wdGlvbnM/LmRhdGFQb2ludFN0eWxlID09PSBcImxhcmdlXCIgPyBcInNhcE1PYmplY3RTdGF0dXNMYXJnZSBzYXBNT2JqZWN0U3RhdHVzTG9uZ1RleHRcIiA6IHVuZGVmaW5lZH1cblx0XHRcdFx0aWNvbj17aWNvbkV4cHJlc3Npb259XG5cdFx0XHRcdHRvb2x0aXA9e3RoaXMuZ2V0VG9vbHRpcFZhbHVlKGRhdGFNb2RlbFBhdGgpfVxuXHRcdFx0XHRzdGF0ZT17Y3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb259XG5cdFx0XHRcdHRleHQ9e3RoaXMudmFsdWUgPz8gb2JqZWN0U3RhdHVzVGV4dH1cblx0XHRcdFx0ZW1wdHlJbmRpY2F0b3JNb2RlPXtlbXB0eUluZGljYXRvck1vZGV9XG5cdFx0XHRcdGFjdGl2ZT17dGhpcy5oYXNRdWlja1ZpZXd9XG5cdFx0XHRcdHByZXNzPXtGaWVsZFJ1bnRpbWVIZWxwZXIucHJlc3NMaW5rIGFzIHVua25vd24gYXMgKG9FdmVudDogT2JqZWN0U3RhdHVzJFByZXNzRXZlbnQpID0+IHZvaWR9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0PlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGRlcGVuZGVudHM6IHRoaXMuY3JlYXRlRGVwZW5kZW50cygpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L09iamVjdFN0YXR1cz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBoZWxwZXIgbWV0aG9kIHRvIGdldCBhIHBvc3NpYmxlIHRvb2x0aXAgdGV4dC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uXG5cdCAqL1xuXHRwcml2YXRlIGdldFRvb2x0aXBWYWx1ZShkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uUXVpY2tJbmZvXG5cdFx0XHQ/IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uUXVpY2tJbmZvLCBnZXRSZWxhdGl2ZVBhdGhzKGRhdGFNb2RlbFBhdGgpKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGhlbHBlciBtZXRob2QgdG8gZ2V0IGEgcG9zc2libGUgdGFyZ2V0IHZhbHVlIGJpbmRpbmcuXG5cdCAqIEBwYXJhbSBkYXRhTW9kZWxQYXRoXG5cdCAqIEByZXR1cm5zIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRUYXJnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0ZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPlxuXHQpOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5UYXJnZXRWYWx1ZVxuXHRcdFx0PyBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q/LlRhcmdldFZhbHVlLCBnZXRSZWxhdGl2ZVBhdGhzKGRhdGFNb2RlbFBhdGgpKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IE9iamVjdFN0YXR1cyB8IE9iamVjdE51bWJlciB8IFJhdGluZ0luZGljYXRvciB8IFByb2dyZXNzSW5kaWNhdG9yIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIXRoaXMuZGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0dGhpcy5nZXREYXRhUG9pbnRWaXN1YWxpemF0aW9uKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0c3dpdGNoICh0aGlzLnZpc3VhbGl6YXRpb24pIHtcblx0XHRcdGNhc2UgXCJSYXRpbmdcIjoge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jcmVhdGVSYXRpbmdJbmRpY2F0b3IodGhpcy5kYXRhTW9kZWxQYXRoKTtcblx0XHRcdH1cblx0XHRcdGNhc2UgXCJQcm9ncmVzc1wiOiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZVByb2dyZXNzSW5kaWNhdG9yKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwiT2JqZWN0TnVtYmVyXCI6IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY3JlYXRlT2JqZWN0TnVtYmVyKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0XHR9XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZU9iamVjdFN0YXR1cyh0aGlzLmRhdGFNb2RlbFBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGFwb2ludC5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGFwb2ludFxuXHQgKi9cblx0Z2V0VmFsdWUoKTogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudD8uaXNBPE9iamVjdFN0YXR1cz4oXCJzYXAubS5PYmplY3RTdGF0dXNcIikpIHtcblx0XHRcdHJldHVybiB0aGlzLmNvbnRlbnQuZ2V0VGV4dCgpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0TnVtYmVyPihcInNhcC5tLk9iamVjdE51bWJlclwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXROdW1iZXIoKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFByb2dyZXNzSW5kaWNhdG9yPihcInNhcC5tLlByb2dyZXNzSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jb250ZW50LmdldERpc3BsYXlWYWx1ZSgpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5jb250ZW50Py5pc0E8UmF0aW5nSW5kaWNhdG9yPihcInNhcC5tLlJhdGluZ0luZGljYXRvclwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXRWYWx1ZSgpLnRvU3RyaW5nKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZ2V0UHJvcGVydHkoXCJ2YWx1ZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZmllbGQuXG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBmaWVsZCByZWZlcmVuY2Vcblx0ICovXG5cdHNldFZhbHVlKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkKTogQ29udHJvbCB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHZhbHVlKTtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0U3RhdHVzPihcInNhcC5tLk9iamVjdFN0YXR1c1wiKSkge1xuXHRcdFx0dGhpcy5jb250ZW50LnNldFRleHQodmFsdWUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPE9iamVjdE51bWJlcj4oXCJzYXAubS5PYmplY3ROdW1iZXJcIikpIHtcblx0XHRcdHRoaXMuY29udGVudC5zZXROdW1iZXIodmFsdWUgYXMgc3RyaW5nKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFByb2dyZXNzSW5kaWNhdG9yPihcInNhcC5tLlByb2dyZXNzSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJzZXRWYWx1ZSBpc24ndCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBmaWVsZCB0eXBlIHlldFwiKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFJhdGluZ0luZGljYXRvcj4oXCJzYXAubS5SYXRpbmdJbmRpY2F0b3JcIikpIHtcblx0XHRcdHRoaXMuY29udGVudC5zZXRWYWx1ZSh2YWx1ZSBhcyBudW1iZXIpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW1DcUJBLFNBQVMsSUFBQUMsSUFBQSxHQUQ3QkMsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLEVBQUFDLEtBQUEsR0FLakRDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU1EQyxRQUFRLENBQUM7SUFDVEYsSUFBSSxFQUFFLFFBQVE7SUFDZEcsUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RGLElBQUksRUFBRTtFQUNQ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MkIsQ0FBQztNQUNsRCxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUN4QyxPQUFPLEVBQUV5QixHQUFHLENBQWUsb0JBQW9CLENBQUMsRUFBRTtRQUNqRSxJQUFJLENBQUN6QixPQUFPLENBQUNrSCxTQUFTLENBQUMxRSxLQUFlLENBQUM7TUFDeEMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDeEMsT0FBTyxFQUFFeUIsR0FBRyxDQUFvQix5QkFBeUIsQ0FBQyxFQUFFO1FBQzNFMEYsR0FBRyxDQUFDQyxLQUFLLENBQUMsb0RBQW9ELENBQUM7TUFDaEUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDcEgsT0FBTyxFQUFFeUIsR0FBRyxDQUFrQix1QkFBdUIsQ0FBQyxFQUFFO1FBQ3ZFLElBQUksQ0FBQ3pCLE9BQU8sQ0FBQ2dILFFBQVEsQ0FBQ3hFLEtBQWUsQ0FBQztNQUN2QztNQUNBLE9BQU8sSUFBSTtJQUNaLENBQUM7SUFBQSxPQUFBN0UsU0FBQTtFQUFBLEVBbFhxQzBKLGFBQWEsR0FBQWpJLFdBQUEsR0FBQWtJLHlCQUFBLENBQUF6SSxPQUFBLENBQUFnQixTQUFBLGVBQUEvQixLQUFBO0lBQUF5SixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXJJLFlBQUEsR0FBQWlJLHlCQUFBLENBQUF6SSxPQUFBLENBQUFnQixTQUFBLGVBQUE1QixLQUFBO0lBQUFzSixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXBJLFlBQUEsR0FBQWdJLHlCQUFBLENBQUF6SSxPQUFBLENBQUFnQixTQUFBLGtCQUFBekIsS0FBQTtJQUFBbUosWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFuSSxZQUFBLEdBQUErSCx5QkFBQSxDQUFBekksT0FBQSxDQUFBZ0IsU0FBQSxvQkFBQXhCLEtBQUE7SUFBQWtKLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBbEksWUFBQSxHQUFBOEgseUJBQUEsQ0FBQXpJLE9BQUEsQ0FBQWdCLFNBQUEsWUFBQW5CLEtBQUE7SUFBQTZJLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBN0ksT0FBQSxNQUFBRCxNQUFBO0VBQUFjLFFBQUEsR0FBQS9CLFNBQUE7RUFBQSxPQUFBK0IsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
384
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUG9pbnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFzc29jaWF0aW9uIiwidHlwZSIsIl9kZWMzIiwicHJvcGVydHkiLCJyZXF1aXJlZCIsIl9kZWM0IiwiX2RlYzUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiZGVmYXVsdENsYXNzIiwiRGF0YVBvaW50Rm9ybWF0T3B0aW9ucyIsIl9kZWM2IiwiaXNCaW5kaW5nSW5mbyIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiaGFzUXVpY2tWaWV3IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJnZXRUZW1wbGF0aW5nT2JqZWN0cyIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiaW50ZXJuYWxEYXRhTW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRQYXRoIiwiaW50ZXJuYWxWYWx1ZURhdGFNb2RlbFBhdGgiLCJ2aXNpYmxlIiwiZ2V0VmlzaWJsZUV4cHJlc3Npb24iLCJ0YXJnZXRPYmplY3QiLCJWYWx1ZSIsInBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImRhdGFNb2RlbFBhdGgiLCJ2YWx1ZURhdGFNb2RlbFBhdGgiLCJnZXREYXRhUG9pbnRWaXN1YWxpemF0aW9uIiwiVmlzdWFsaXphdGlvbiIsInZpc3VhbGl6YXRpb24iLCJ2YWx1ZVByb3BlcnR5IiwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyIsImdldFByb3BlcnR5V2l0aFNlbWFudGljT2JqZWN0IiwiaXNQcm9wZXJ0eSIsImhhc1VuaXQiLCJoYXNDdXJyZW5jeSIsImdldEVuYWJsZWQiLCJpc0EiLCJnZXRBY3RpdmUiLCJzZXRFbmFibGVkIiwiZW5hYmxlZCIsInNldFByb3BlcnR5IiwiY3JlYXRlUmF0aW5nSW5kaWNhdG9yIiwiZGF0YVBvaW50VGFyZ2V0IiwidGFyZ2V0VmFsdWUiLCJnZXRUYXJnZXRWYWx1ZUJpbmRpbmciLCJkYXRhUG9pbnRWYWx1ZSIsInByb3BlcnR5VHlwZSIsIiR0YXJnZXQiLCJudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMiLCJWYWx1ZUZvcm1hdCIsIk51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyIsInZhbHVlIiwiZ2V0VmFsdWVGb3JtYXR0ZWQiLCJfanN4IiwiUmF0aW5nSW5kaWNhdG9yIiwiaWQiLCJpZFByZWZpeCIsImdlbmVyYXRlIiwidW5kZWZpbmVkIiwibWF4VmFsdWUiLCJjb21waWxlRXhwcmVzc2lvbiIsInRvb2x0aXAiLCJnZXRUb29sdGlwVmFsdWUiLCJpY29uU2l6ZSIsImZvcm1hdE9wdGlvbnMiLCJjbGFzcyIsInNob3dMYWJlbHMiLCJlZGl0YWJsZSIsImFyaWFMYWJlbGxlZEJ5IiwiY3JlYXRlUHJvZ3Jlc3NJbmRpY2F0b3IiLCJjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbiIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IiLCJkaXNwbGF5VmFsdWUiLCJidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvckRpc3BsYXlWYWx1ZSIsInBlcmNlbnRWYWx1ZSIsImJ1aWxkRXhwcmVzc2lvbkZvclByb2dyZXNzSW5kaWNhdG9yUGVyY2VudFZhbHVlIiwiUHJvZ3Jlc3NJbmRpY2F0b3IiLCJzdGF0ZSIsImNyZWF0ZU9iamVjdE51bWJlciIsImVtcHR5SW5kaWNhdG9yTW9kZSIsInNob3dFbXB0eUluZGljYXRvciIsIm9iamVjdFN0YXR1c051bWJlciIsImJ1aWxkRmllbGRCaW5kaW5nRXhwcmVzc2lvbiIsImxpbWl0U2hvd0RlY2ltYWxzIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0U2FwRmVNYW5pZmVzdENvbmZpZ3VyYXRpb24iLCJhcHAiLCJzaG93T25seVVuaXREZWNpbWFscyIsInVuaXQiLCJtZWFzdXJlRGlzcGxheU1vZGUiLCJVSUZvcm1hdHRlcnMiLCJnZXRCaW5kaW5nRm9yVW5pdE9yQ3VycmVuY3kiLCJPYmplY3ROdW1iZXIiLCJudW1iZXIiLCJlbXBoYXNpemVkIiwiZGF0YVBvaW50U3R5bGUiLCJjcmVhdGVEZXBlbmRlbnRzIiwiUXVpY2tWaWV3IiwiY3JlYXRlT2JqZWN0U3RhdHVzIiwib2JqZWN0U3RhdHVzVGV4dCIsImljb25FeHByZXNzaW9uIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIiwiT2JqZWN0U3RhdHVzIiwiaWNvbiIsInRleHQiLCJhY3RpdmUiLCJwcmVzcyIsIkZpZWxkUnVudGltZUhlbHBlciIsInByZXNzTGluayIsInJlYWN0aXZlQXJlYU1vZGUiLCJjaGlsZHJlbiIsImRlcGVuZGVudHMiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlF1aWNrSW5mbyIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlUGF0aHMiLCJUYXJnZXRWYWx1ZSIsImdldFZhbHVlIiwiZ2V0VGV4dCIsImdldE51bWJlciIsImdldERpc3BsYXlWYWx1ZSIsInRvU3RyaW5nIiwiZ2V0UHJvcGVydHkiLCJzZXRWYWx1ZSIsInNldFRleHQiLCJzZXROdW1iZXIiLCJMb2ciLCJlcnJvciIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFQb2ludC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgVmlzdWFsaXphdGlvblR5cGUsIHR5cGUgRGF0YVBvaW50VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgdHlwZSBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgeyBpc1Byb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHsgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvciwgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQ3JpdGljYWxpdHlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBlbmhhbmNlRGF0YU1vZGVsUGF0aCwgZ2V0UmVsYXRpdmVQYXRocyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGhhc0N1cnJlbmN5LCBoYXNVbml0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGdldFByb3BlcnR5V2l0aFNlbWFudGljT2JqZWN0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvU2VtYW50aWNPYmplY3RIZWxwZXJcIjtcbmltcG9ydCAqIGFzIFVJRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGdldFZpc2libGVFeHByZXNzaW9uLCBpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRUZW1wbGF0aW5nXCI7XG5pbXBvcnQge1xuXHRidWlsZEV4cHJlc3Npb25Gb3JQcm9ncmVzc0luZGljYXRvckRpc3BsYXlWYWx1ZSxcblx0YnVpbGRFeHByZXNzaW9uRm9yUHJvZ3Jlc3NJbmRpY2F0b3JQZXJjZW50VmFsdWUsXG5cdGJ1aWxkRmllbGRCaW5kaW5nRXhwcmVzc2lvbixcblx0Z2V0VmFsdWVGb3JtYXR0ZWRcbn0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvaGVscGVycy9EYXRhUG9pbnRUZW1wbGF0aW5nXCI7XG5pbXBvcnQgUXVpY2tWaWV3IGZyb20gXCJzYXAvZmUvbWFjcm9zL3F1aWNrVmlldy9RdWlja1ZpZXdcIjtcbmltcG9ydCBPYmplY3ROdW1iZXIgZnJvbSBcInNhcC9tL09iamVjdE51bWJlclwiO1xuaW1wb3J0IHR5cGUgeyBPYmplY3RTdGF0dXMkUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9PYmplY3RTdGF0dXNcIjtcbmltcG9ydCBPYmplY3RTdGF0dXMgZnJvbSBcInNhcC9tL09iamVjdFN0YXR1c1wiO1xuaW1wb3J0IFByb2dyZXNzSW5kaWNhdG9yIGZyb20gXCJzYXAvbS9Qcm9ncmVzc0luZGljYXRvclwiO1xuaW1wb3J0IFJhdGluZ0luZGljYXRvciBmcm9tIFwic2FwL20vUmF0aW5nSW5kaWNhdG9yXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgTWRjTGluayBmcm9tIFwic2FwL3VpL21kYy9MaW5rXCI7XG5pbXBvcnQgRmllbGRSdW50aW1lSGVscGVyIGZyb20gXCIuLi9maWVsZC9GaWVsZFJ1bnRpbWVIZWxwZXJcIjtcbmltcG9ydCBEYXRhUG9pbnRGb3JtYXRPcHRpb25zIGZyb20gXCIuL0RhdGFQb2ludEZvcm1hdE9wdGlvbnNcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbC5EYXRhUG9pbnRcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFQb2ludCBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8Q29udHJvbD4ge1xuXHQvKipcblx0ICogUHJlZml4IGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgSUQgb2YgdGhlIGZpZWxkXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGlkUHJlZml4Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBNZXRhZGF0YSBwYXRoIHRvIHRoZSBkYXRhUG9pbnQuXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0cmVxdWlyZWQ6IHRydWVcblx0fSlcblx0cHVibGljIG1ldGFQYXRoITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgY29udGV4dFBhdGg/OiBzdHJpbmc7XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLmludGVybmFsLkRhdGFQb2ludEZvcm1hdE9wdGlvbnNcIiwgbXVsdGlwbGU6IGZhbHNlLCBkZWZhdWx0Q2xhc3M6IERhdGFQb2ludEZvcm1hdE9wdGlvbnMgfSlcblx0Zm9ybWF0T3B0aW9ucyE6IERhdGFQb2ludEZvcm1hdE9wdGlvbnM7XG5cblx0LyoqXG5cdCAqIFByb3BlcnR5IHRvIHNldCBhbiBleHRlcm5hbCB2YWx1ZSB0aGF0IGNvbWVzIGZyb20gYSBkaWZmZXJlbnQgbW9kZWwgdGhhbiB0aGUgb0RhdGEgbW9kZWxcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyB2YWx1ZT86IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkgdG8gc2V0IHRoZSB2aXN1YWxpemF0aW9uIHR5cGVcblx0ICovXG5cdHByaXZhdGUgdmlzdWFsaXphdGlvbj86IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkgdG8gc2V0IHRoZSB2aXNpYmlsaXR5XG5cdCAqL1xuXHRwcml2YXRlIHZpc2libGU6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSB0byBzZXQgcHJvcGVydHkgaWYgdGhlIHByb3BlcnR5IGhhcyBhIFF1aWNrdmlld1xuXHQgKi9cblx0cHJpdmF0ZSBoYXNRdWlja1ZpZXcgPSBmYWxzZTtcblxuXHRwcml2YXRlIGRhdGFNb2RlbFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+O1xuXG5cdHByaXZhdGUgdmFsdWVEYXRhTW9kZWxQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT47XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxEYXRhUG9pbnQ+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5nZXRUZW1wbGF0aW5nT2JqZWN0cygpO1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB0ZW1wbGF0aW5nIG9iamVjdHMuXG5cdCAqL1xuXHRwcml2YXRlIGdldFRlbXBsYXRpbmdPYmplY3RzKCk6IHZvaWQge1xuXHRcdGNvbnN0IGludGVybmFsRGF0YU1vZGVsUGF0aCA9IHRoaXMuZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGg8RGF0YVBvaW50VHlwZT4odGhpcy5tZXRhUGF0aCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0aWYgKCFpbnRlcm5hbERhdGFNb2RlbFBhdGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0bGV0IGludGVybmFsVmFsdWVEYXRhTW9kZWxQYXRoO1xuXHRcdHRoaXMudmlzaWJsZSA9IGdldFZpc2libGVFeHByZXNzaW9uKGludGVybmFsRGF0YU1vZGVsUGF0aCk7XG5cdFx0aWYgKGludGVybmFsRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0Py5WYWx1ZT8ucGF0aCkge1xuXHRcdFx0aW50ZXJuYWxWYWx1ZURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aDxQcm9wZXJ0eT4oXG5cdFx0XHRcdGludGVybmFsRGF0YU1vZGVsUGF0aCxcblx0XHRcdFx0aW50ZXJuYWxEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC5WYWx1ZS5wYXRoXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRoaXMuZGF0YU1vZGVsUGF0aCA9IGludGVybmFsRGF0YU1vZGVsUGF0aDtcblx0XHR0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCA9IGludGVybmFsVmFsdWVEYXRhTW9kZWxQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZ1bmN0aW9uIHRoYXQgY2FsY3VsYXRlcyB0aGUgdmlzdWFsaXphdGlvbiB0eXBlIGZvciB0aGlzIERhdGFQb2ludC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICovXG5cdHByaXZhdGUgZ2V0RGF0YVBvaW50VmlzdWFsaXphdGlvbihkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+KTogdm9pZCB7XG5cdFx0aWYgKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5WaXN1YWxpemF0aW9uID09PSBWaXN1YWxpemF0aW9uVHlwZS5SYXRpbmcpIHtcblx0XHRcdHRoaXMudmlzdWFsaXphdGlvbiA9IFwiUmF0aW5nXCI7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8uVmlzdWFsaXphdGlvbiA9PT0gVmlzdWFsaXphdGlvblR5cGUuUHJvZ3Jlc3MpIHtcblx0XHRcdHRoaXMudmlzdWFsaXphdGlvbiA9IFwiUHJvZ3Jlc3NcIjtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgdmFsdWVQcm9wZXJ0eSA9IHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoICYmIHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdDtcblx0XHQvL2NoZWNrIHdoZXRoZXIgdGhlIHZpc3VhbGl6YXRpb24gdHlwZSBzaG91bGQgYmUgYW4gb2JqZWN0IG51bWJlciBpbiBjYXNlIG9uZSBvZiB0aGUgaWYgY29uZGl0aW9ucyBtZXRcblx0XHR0aGlzLmhhc1F1aWNrVmlldyA9ICh2YWx1ZVByb3BlcnR5ICYmIGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMoZGF0YU1vZGVsUGF0aCwgdmFsdWVQcm9wZXJ0eSkpID8/IGZhbHNlO1xuXHRcdGlmICh0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCAmJiBnZXRQcm9wZXJ0eVdpdGhTZW1hbnRpY09iamVjdCh0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCkpIHtcblx0XHRcdHRoaXMuaGFzUXVpY2tWaWV3ID0gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuaGFzUXVpY2tWaWV3ICE9PSB0cnVlKSB7XG5cdFx0XHRpZiAoaXNQcm9wZXJ0eSh2YWx1ZVByb3BlcnR5KSAmJiAoaGFzVW5pdCh2YWx1ZVByb3BlcnR5KSB8fCBoYXNDdXJyZW5jeSh2YWx1ZVByb3BlcnR5KSkpIHtcblx0XHRcdFx0Ly8gd2Ugb25seSBzaG93IGFuIG9iamVjdE51bWJlciBpZiB0aGVyZSBpcyBubyBxdWlja3ZpZXcgYW5kIGEgdW5pdCBvciBhIGN1cnJlbmN5XG5cdFx0XHRcdHRoaXMudmlzdWFsaXphdGlvbiA9IFwiT2JqZWN0TnVtYmVyXCI7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvL2RlZmF1bHQgY2FzZSB0byBoYW5kbGUgdGhpcyBhcyBvYmplY3RTdGF0dXMgdHlwZVxuXHRcdHRoaXMudmlzdWFsaXphdGlvbiA9IFwiT2JqZWN0U3RhdHVzXCI7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgY3VycmVudCBlbmFibGVtZW50IHN0YXRlIG9mIHRoZSBkYXRhUG9pbnQuXG5cdCAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgd2l0aCB0aGUgZW5hYmxlbWVudCBzdGF0ZVxuXHQgKi9cblx0Z2V0RW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0U3RhdHVzPihcInNhcC5tLk9iamVjdFN0YXR1c1wiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXRBY3RpdmUoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGN1cnJlbnQgZW5hYmxlbWVudCBzdGF0ZSBvZiB0aGUgZGF0YXBvaW50LlxuXHQgKiBAcGFyYW0gZW5hYmxlZFxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBkYXRhcG9pbnQgcmVmZXJlbmNlXG5cdCAqL1xuXHRzZXRFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiBDb250cm9sIHtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0U3RhdHVzPihcInNhcC5tLk9iamVjdFN0YXR1c1wiKSkge1xuXHRcdFx0dGhpcy5jb250ZW50LnNldFByb3BlcnR5KFwiYWN0aXZlXCIsIGVuYWJsZWQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBcInNldEVuYWJsZWQgaXNuJ3QgaW1wbGVtZW50ZWQgZm9yIHRoaXMgZmllbGQgdHlwZVwiO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgUmF0aW5nSW5kaWNhdG9yIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBkYXRhTW9kZWxQYXRoXG5cdCAqIEByZXR1cm5zIFJhdGluZ0luZGljYXRvclxuXHQgKi9cblx0Y3JlYXRlUmF0aW5nSW5kaWNhdG9yKGRhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8RGF0YVBvaW50VHlwZT4pOiBSYXRpbmdJbmRpY2F0b3Ige1xuXHRcdGNvbnN0IGRhdGFQb2ludFRhcmdldCA9IGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRcdGNvbnN0IHRhcmdldFZhbHVlID0gdGhpcy5nZXRUYXJnZXRWYWx1ZUJpbmRpbmcoZGF0YU1vZGVsUGF0aCk7XG5cblx0XHRjb25zdCBkYXRhUG9pbnRWYWx1ZSA9IGRhdGFQb2ludFRhcmdldD8uVmFsdWUgfHwgXCJcIjtcblx0XHRjb25zdCBwcm9wZXJ0eVR5cGUgPSBkYXRhUG9pbnRWYWx1ZT8uJHRhcmdldD8udHlwZTtcblxuXHRcdGxldCBudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHM7XG5cdFx0aWYgKHByb3BlcnR5VHlwZSA9PT0gXCJFZG0uRGVjaW1hbFwiICYmIGRhdGFQb2ludFRhcmdldD8uVmFsdWVGb3JtYXQpIHtcblx0XHRcdGlmIChkYXRhUG9pbnRUYXJnZXQuVmFsdWVGb3JtYXQuTnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzKSB7XG5cdFx0XHRcdG51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyA9IGRhdGFQb2ludFRhcmdldC5WYWx1ZUZvcm1hdC5OdW1iZXJPZkZyYWN0aW9uYWxEaWdpdHM7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvbnN0IHZhbHVlID0gZ2V0VmFsdWVGb3JtYXR0ZWQodGhpcy52YWx1ZURhdGFNb2RlbFBhdGgsIGRhdGFQb2ludFZhbHVlLCBwcm9wZXJ0eVR5cGUsIG51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PFJhdGluZ0luZGljYXRvclxuXHRcdFx0XHRpZD17dGhpcy5pZFByZWZpeCA/IGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBcIlJhdGluZ0luZGljYXRvci1GaWVsZC1kaXNwbGF5XCJdKSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0bWF4VmFsdWU9e3RhcmdldFZhbHVlfVxuXHRcdFx0XHR2YWx1ZT17dGhpcy52YWx1ZSA/PyBjb21waWxlRXhwcmVzc2lvbih2YWx1ZSl9XG5cdFx0XHRcdHRvb2x0aXA9e3RoaXMuZ2V0VG9vbHRpcFZhbHVlKGRhdGFNb2RlbFBhdGgpfVxuXHRcdFx0XHRpY29uU2l6ZT17dGhpcy5mb3JtYXRPcHRpb25zPy5pY29uU2l6ZX1cblx0XHRcdFx0Y2xhc3M9e3RoaXMuZm9ybWF0T3B0aW9ucz8uc2hvd0xhYmVscyA/PyBmYWxzZSA/IFwic2FwVWlUaW55TWFyZ2luVG9wQm90dG9tXCIgOiB1bmRlZmluZWR9XG5cdFx0XHRcdGVkaXRhYmxlPVwiZmFsc2VcIlxuXHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17dGhpcy5hcmlhTGFiZWxsZWRCeX1cblx0XHRcdC8+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgUHJvZ3Jlc3NJbmRpY2F0b3IgY29udHJvbC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgUHJvZ3Jlc3NJbmRpY2F0b3Jcblx0ICovXG5cdGNyZWF0ZVByb2dyZXNzSW5kaWNhdG9yKGRhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8RGF0YVBvaW50VHlwZT4pOiBQcm9ncmVzc0luZGljYXRvciB7XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb24gPSBkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdFxuXHRcdFx0PyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LCBkYXRhTW9kZWxQYXRoKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgZGlzcGxheVZhbHVlID0gYnVpbGRFeHByZXNzaW9uRm9yUHJvZ3Jlc3NJbmRpY2F0b3JEaXNwbGF5VmFsdWUoZGF0YU1vZGVsUGF0aCk7XG5cdFx0Y29uc3QgcGVyY2VudFZhbHVlID0gYnVpbGRFeHByZXNzaW9uRm9yUHJvZ3Jlc3NJbmRpY2F0b3JQZXJjZW50VmFsdWUoZGF0YU1vZGVsUGF0aCk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PFByb2dyZXNzSW5kaWNhdG9yXG5cdFx0XHRcdGlkPXt0aGlzLmlkUHJlZml4ID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIFwiUHJvZ3Jlc3NJbmRpY2F0b3ItRmllbGQtZGlzcGxheVwiXSkgOiB1bmRlZmluZWR9XG5cdFx0XHRcdGRpc3BsYXlWYWx1ZT17ZGlzcGxheVZhbHVlfVxuXHRcdFx0XHRwZXJjZW50VmFsdWU9e3BlcmNlbnRWYWx1ZX1cblx0XHRcdFx0c3RhdGU9e2NyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9ufVxuXHRcdFx0XHR0b29sdGlwPXt0aGlzLmdldFRvb2x0aXBWYWx1ZShkYXRhTW9kZWxQYXRoKX1cblx0XHRcdFx0YXJpYUxhYmVsbGVkQnk9e3RoaXMuYXJpYUxhYmVsbGVkQnl9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBPYmplY3ROdW1iZXIgY29udHJvbC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgT2JqZWN0TnVtYmVyXG5cdCAqL1xuXHRjcmVhdGVPYmplY3ROdW1iZXIoZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPik6IE9iamVjdE51bWJlciB7XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlDb2xvckV4cHJlc3Npb24gPSBkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdFxuXHRcdFx0PyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LCBkYXRhTW9kZWxQYXRoKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgZW1wdHlJbmRpY2F0b3JNb2RlID0gdGhpcy5mb3JtYXRPcHRpb25zPy5zaG93RW1wdHlJbmRpY2F0b3IgPz8gZmFsc2UgPyBcIk9uXCIgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3Qgb2JqZWN0U3RhdHVzTnVtYmVyID0gYnVpbGRGaWVsZEJpbmRpbmdFeHByZXNzaW9uKGRhdGFNb2RlbFBhdGgsIHRoaXMuZm9ybWF0T3B0aW9ucywgdHJ1ZSk7XG5cdFx0Y29uc3QgbGltaXRTaG93RGVjaW1hbHMgPSB0aGlzLmdldE1hbmlmZXN0V3JhcHBlcigpPy5nZXRTYXBGZU1hbmlmZXN0Q29uZmlndXJhdGlvbigpPy5hcHA/LnNob3dPbmx5VW5pdERlY2ltYWxzID09PSB0cnVlO1xuXHRcdGNvbnN0IHVuaXQgPVxuXHRcdFx0dGhpcy5mb3JtYXRPcHRpb25zPy5tZWFzdXJlRGlzcGxheU1vZGUgPT09IFwiSGlkZGVuXCJcblx0XHRcdFx0PyB1bmRlZmluZWRcblx0XHRcdFx0OiBjb21waWxlRXhwcmVzc2lvbihVSUZvcm1hdHRlcnMuZ2V0QmluZGluZ0ZvclVuaXRPckN1cnJlbmN5KHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoLCB0cnVlLCBsaW1pdFNob3dEZWNpbWFscykpO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxPYmplY3ROdW1iZXJcblx0XHRcdFx0aWQ9e3RoaXMuaWRQcmVmaXggPyBnZW5lcmF0ZShbdGhpcy5pZFByZWZpeCwgXCJPYmplY3ROdW1iZXItRmllbGQtZGlzcGxheVwiXSkgOiB1bmRlZmluZWR9XG5cdFx0XHRcdHN0YXRlPXtjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbn1cblx0XHRcdFx0bnVtYmVyPXt0aGlzLnZhbHVlID8/IG9iamVjdFN0YXR1c051bWJlcn1cblx0XHRcdFx0dW5pdD17dW5pdH1cblx0XHRcdFx0dmlzaWJsZT17dGhpcy52aXNpYmxlfVxuXHRcdFx0XHRlbXBoYXNpemVkPVwiZmFsc2VcIlxuXHRcdFx0XHRjbGFzcz17dGhpcy5mb3JtYXRPcHRpb25zPy5kYXRhUG9pbnRTdHlsZSA9PT0gXCJsYXJnZVwiID8gXCJzYXBNT2JqZWN0TnVtYmVyTGFyZ2VcIiA6IHVuZGVmaW5lZH1cblx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUb29sdGlwVmFsdWUoZGF0YU1vZGVsUGF0aCl9XG5cdFx0XHRcdGVtcHR5SW5kaWNhdG9yTW9kZT17ZW1wdHlJbmRpY2F0b3JNb2RlfVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGRlcGVuZGVudC5cblx0ICogQHJldHVybnMgRGVwZW5kZW50IGVpdGhlciB3aXRoIHRoZSBRdWlja1ZpZXcgb3IgYW4gZW1wdHkgc3RyaW5nLlxuXHQgKi9cblx0cHJpdmF0ZSBjcmVhdGVEZXBlbmRlbnRzKCk6IE1kY0xpbmsgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLmhhc1F1aWNrVmlldykge1xuXHRcdFx0cmV0dXJuIG5ldyBRdWlja1ZpZXcoXG5cdFx0XHRcdHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+LFxuXHRcdFx0XHR0aGlzLm1ldGFQYXRoLFxuXHRcdFx0XHR0aGlzLmNvbnRleHRQYXRoID8/IFwiXCJcblx0XHRcdCkuY3JlYXRlQ29udGVudCgpIGFzIE1kY0xpbms7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBPYmplY3RTdGF0dXMgY29udHJvbC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgT2JqZWN0U3RhdHVzXG5cdCAqL1xuXHRjcmVhdGVPYmplY3RTdGF0dXMoZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPik6IE9iamVjdFN0YXR1cyB7XG5cdFx0bGV0IGNyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9uID0gZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Rcblx0XHRcdD8gYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvcihkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdCwgZGF0YU1vZGVsUGF0aClcblx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdGlmIChjcml0aWNhbGl0eUNvbG9yRXhwcmVzc2lvbiA9PT0gXCJOb25lXCIgJiYgdGhpcy52YWx1ZURhdGFNb2RlbFBhdGgpIHtcblx0XHRcdGNyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9uID0gdGhpcy5oYXNRdWlja1ZpZXcgPyBcIkluZm9ybWF0aW9uXCIgOiBcIk5vbmVcIjtcblx0XHR9XG5cdFx0Y29uc3QgZW1wdHlJbmRpY2F0b3JNb2RlID0gdGhpcy5mb3JtYXRPcHRpb25zPy5zaG93RW1wdHlJbmRpY2F0b3IgPz8gZmFsc2UgPyBcIk9uXCIgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3Qgb2JqZWN0U3RhdHVzVGV4dCA9IGJ1aWxkRmllbGRCaW5kaW5nRXhwcmVzc2lvbihkYXRhTW9kZWxQYXRoLCB0aGlzLmZvcm1hdE9wdGlvbnMsIGZhbHNlKTtcblx0XHRjb25zdCBpY29uRXhwcmVzc2lvbiA9XG5cdFx0XHR0aGlzLmZvcm1hdE9wdGlvbnM/LmRhdGFQb2ludFN0eWxlID09PSBcImxhcmdlXCIgfHwgIWRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0XG5cdFx0XHRcdD8gdW5kZWZpbmVkXG5cdFx0XHRcdDogYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uKGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LCBkYXRhTW9kZWxQYXRoKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8T2JqZWN0U3RhdHVzXG5cdFx0XHRcdGlkPXt0aGlzLmlkUHJlZml4ID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIFwiT2JqZWN0U3RhdHVzLUZpZWxkLWRpc3BsYXlcIl0pIDogdW5kZWZpbmVkfVxuXHRcdFx0XHRjbGFzcz17dGhpcy5mb3JtYXRPcHRpb25zPy5kYXRhUG9pbnRTdHlsZSA9PT0gXCJsYXJnZVwiID8gXCJzYXBNT2JqZWN0U3RhdHVzTGFyZ2Ugc2FwTU9iamVjdFN0YXR1c0xvbmdUZXh0XCIgOiB1bmRlZmluZWR9XG5cdFx0XHRcdGljb249e2ljb25FeHByZXNzaW9ufVxuXHRcdFx0XHR0b29sdGlwPXt0aGlzLmdldFRvb2x0aXBWYWx1ZShkYXRhTW9kZWxQYXRoKX1cblx0XHRcdFx0c3RhdGU9e2NyaXRpY2FsaXR5Q29sb3JFeHByZXNzaW9ufVxuXHRcdFx0XHR0ZXh0PXt0aGlzLnZhbHVlID8/IG9iamVjdFN0YXR1c1RleHR9XG5cdFx0XHRcdGVtcHR5SW5kaWNhdG9yTW9kZT17ZW1wdHlJbmRpY2F0b3JNb2RlfVxuXHRcdFx0XHRhY3RpdmU9e3RoaXMuaGFzUXVpY2tWaWV3fVxuXHRcdFx0XHRwcmVzcz17RmllbGRSdW50aW1lSGVscGVyLnByZXNzTGluayBhcyB1bmtub3duIGFzIChvRXZlbnQ6IE9iamVjdFN0YXR1cyRQcmVzc0V2ZW50KSA9PiB2b2lkfVxuXHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17dGhpcy5hcmlhTGFiZWxsZWRCeX1cblx0XHRcdFx0cmVhY3RpdmVBcmVhTW9kZT17dGhpcy5mb3JtYXRPcHRpb25zPy5yZWFjdGl2ZUFyZWFNb2RlfVxuXHRcdFx0PlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGRlcGVuZGVudHM6IHRoaXMuY3JlYXRlRGVwZW5kZW50cygpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L09iamVjdFN0YXR1cz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBoZWxwZXIgbWV0aG9kIHRvIGdldCBhIHBvc3NpYmxlIHRvb2x0aXAgdGV4dC5cblx0ICogQHBhcmFtIGRhdGFNb2RlbFBhdGhcblx0ICogQHJldHVybnMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uXG5cdCAqL1xuXHRwcml2YXRlIGdldFRvb2x0aXBWYWx1ZShkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFQb2ludFR5cGU+KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uUXVpY2tJbmZvXG5cdFx0XHQ/IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uUXVpY2tJbmZvLCBnZXRSZWxhdGl2ZVBhdGhzKGRhdGFNb2RlbFBhdGgpKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGhlbHBlciBtZXRob2QgdG8gZ2V0IGEgcG9zc2libGUgdGFyZ2V0IHZhbHVlIGJpbmRpbmcuXG5cdCAqIEBwYXJhbSBkYXRhTW9kZWxQYXRoXG5cdCAqIEByZXR1cm5zIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRUYXJnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0ZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhUG9pbnRUeXBlPlxuXHQpOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5UYXJnZXRWYWx1ZVxuXHRcdFx0PyBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q/LlRhcmdldFZhbHVlLCBnZXRSZWxhdGl2ZVBhdGhzKGRhdGFNb2RlbFBhdGgpKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IE9iamVjdFN0YXR1cyB8IE9iamVjdE51bWJlciB8IFJhdGluZ0luZGljYXRvciB8IFByb2dyZXNzSW5kaWNhdG9yIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIXRoaXMuZGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0dGhpcy5nZXREYXRhUG9pbnRWaXN1YWxpemF0aW9uKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0c3dpdGNoICh0aGlzLnZpc3VhbGl6YXRpb24pIHtcblx0XHRcdGNhc2UgXCJSYXRpbmdcIjoge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jcmVhdGVSYXRpbmdJbmRpY2F0b3IodGhpcy5kYXRhTW9kZWxQYXRoKTtcblx0XHRcdH1cblx0XHRcdGNhc2UgXCJQcm9ncmVzc1wiOiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZVByb2dyZXNzSW5kaWNhdG9yKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwiT2JqZWN0TnVtYmVyXCI6IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY3JlYXRlT2JqZWN0TnVtYmVyKHRoaXMuZGF0YU1vZGVsUGF0aCk7XG5cdFx0XHR9XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZU9iamVjdFN0YXR1cyh0aGlzLmRhdGFNb2RlbFBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGFwb2ludC5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGFwb2ludFxuXHQgKi9cblx0Z2V0VmFsdWUoKTogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudD8uaXNBPE9iamVjdFN0YXR1cz4oXCJzYXAubS5PYmplY3RTdGF0dXNcIikpIHtcblx0XHRcdHJldHVybiB0aGlzLmNvbnRlbnQuZ2V0VGV4dCgpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0TnVtYmVyPihcInNhcC5tLk9iamVjdE51bWJlclwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXROdW1iZXIoKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFByb2dyZXNzSW5kaWNhdG9yPihcInNhcC5tLlByb2dyZXNzSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jb250ZW50LmdldERpc3BsYXlWYWx1ZSgpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5jb250ZW50Py5pc0E8UmF0aW5nSW5kaWNhdG9yPihcInNhcC5tLlJhdGluZ0luZGljYXRvclwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXRWYWx1ZSgpLnRvU3RyaW5nKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZ2V0UHJvcGVydHkoXCJ2YWx1ZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZmllbGQuXG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBmaWVsZCByZWZlcmVuY2Vcblx0ICovXG5cdHNldFZhbHVlKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkKTogQ29udHJvbCB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHZhbHVlKTtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8T2JqZWN0U3RhdHVzPihcInNhcC5tLk9iamVjdFN0YXR1c1wiKSkge1xuXHRcdFx0dGhpcy5jb250ZW50LnNldFRleHQodmFsdWUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPE9iamVjdE51bWJlcj4oXCJzYXAubS5PYmplY3ROdW1iZXJcIikpIHtcblx0XHRcdHRoaXMuY29udGVudC5zZXROdW1iZXIodmFsdWUgYXMgc3RyaW5nKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFByb2dyZXNzSW5kaWNhdG9yPihcInNhcC5tLlByb2dyZXNzSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJzZXRWYWx1ZSBpc24ndCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBmaWVsZCB0eXBlIHlldFwiKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGVudD8uaXNBPFJhdGluZ0luZGljYXRvcj4oXCJzYXAubS5SYXRpbmdJbmRpY2F0b3JcIikpIHtcblx0XHRcdHRoaXMuY29udGVudC5zZXRWYWx1ZSh2YWx1ZSBhcyBudW1iZXIpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW1DcUJBLFNBQVMsSUFBQUMsSUFBQSxHQUQ3QkMsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLEVBQUFDLEtBQUEsR0FLakRDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU1EQyxRQUFRLENBQUM7SUFDVEYsSUFBSSxFQUFF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
@@ -315,6 +315,7 @@ export default class DataPoint extends BuildingBlock<Control> {
315
315
  active={this.hasQuickView}
316
316
  press={FieldRuntimeHelper.pressLink as unknown as (oEvent: ObjectStatus$PressEvent) => void}
317
317
  ariaLabelledBy={this.ariaLabelledBy}
318
+ reactiveAreaMode={this.formatOptions?.reactiveAreaMode}
318
319
  >
319
320
  {{
320
321
  dependents: this.createDependents()
@@ -5,7 +5,7 @@
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/macros/controls/BuildingBlockObjectProperty"], function (ClassSupport, BuildingBlockObjectProperty) {
6
6
  "use strict";
7
7
 
8
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;
8
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
9
9
  var _exports = {};
10
10
  var property = ClassSupport.property;
11
11
  var defineUI5Class = ClassSupport.defineUI5Class;
@@ -30,6 +30,9 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/macros/controls/BuildingBlock
30
30
  type: "boolean"
31
31
  }), _dec7 = property({
32
32
  type: "boolean"
33
+ }), _dec8 = property({
34
+ type: "string",
35
+ allowedValues: ["Inline", "Overlay"]
33
36
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockObjectP) {
34
37
  function DataPointFormatOptions(props, others) {
35
38
  var _this;
@@ -40,6 +43,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/macros/controls/BuildingBlock
40
43
  _initializerDefineProperty(_this, "measureDisplayMode", _descriptor4, _this);
41
44
  _initializerDefineProperty(_this, "showEmptyIndicator", _descriptor5, _this);
42
45
  _initializerDefineProperty(_this, "showLabels", _descriptor6, _this);
46
+ _initializerDefineProperty(_this, "reactiveAreaMode", _descriptor7, _this);
43
47
  return _this;
44
48
  }
45
49
  _exports = DataPointFormatOptions;
@@ -79,8 +83,13 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/macros/controls/BuildingBlock
79
83
  initializer: function () {
80
84
  return false;
81
85
  }
86
+ }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "reactiveAreaMode", [_dec8], {
87
+ configurable: true,
88
+ enumerable: true,
89
+ writable: true,
90
+ initializer: null
82
91
  }), _class2)) || _class);
83
92
  _exports = DataPointFormatOptions;
84
93
  return _exports;
85
94
  }, false);
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUG9pbnRGb3JtYXRPcHRpb25zIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrT2JqZWN0UCIsInByb3BzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHkiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFQb2ludEZvcm1hdE9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IERpc3BsYXlNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0J1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiO1xuXG4vKipcbiAqIERlZmluaXRpb24gb2YgZGF0YXBvaW50IGZvcm1hdE9wdGlvbnNcbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWwuRGF0YVBvaW50Rm9ybWF0T3B0aW9uc1wiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YVBvaW50Rm9ybWF0T3B0aW9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eSB7XG5cdGNvbnN0cnVjdG9yKHByb3BzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPERhdGFQb2ludEZvcm1hdE9wdGlvbnM+LCBvdGhlcnM/OiBQcm9wZXJ0aWVzT2Y8RGF0YVBvaW50Rm9ybWF0T3B0aW9ucz4pIHtcblx0XHRzdXBlcihwcm9wcyBhcyBzdHJpbmcsIG90aGVycyk7XG5cdH1cblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGRhdGFQb2ludFN0eWxlPzogXCJcIiB8IFwibGFyZ2VcIjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGRpc3BsYXlNb2RlPzogRGlzcGxheU1vZGU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRpY29uU2l6ZT86IFwiMXJlbVwiIHwgXCIxLjM3NXJlbVwiIHwgXCIycmVtXCI7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRtZWFzdXJlRGlzcGxheU1vZGU/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0VtcHR5SW5kaWNhdG9yID0gZmFsc2U7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0xhYmVscyA9IGZhbHNlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBS0E7QUFDQTtBQUNBO0FBQ0E7RUFIQSxJQUtxQkEsc0JBQXNCLElBQUFDLElBQUEsR0FEMUNDLGNBQWMsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFBQyxLQUFBLEdB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
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUG9pbnRGb3JtYXRPcHRpb25zIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiX2RlYzgiLCJhbGxvd2VkVmFsdWVzIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrT2JqZWN0UCIsInByb3BzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9kZXNjcmlwdG9yNyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHkiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFQb2ludEZvcm1hdE9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IERpc3BsYXlNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0J1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiO1xuXG4vKipcbiAqIERlZmluaXRpb24gb2YgZGF0YXBvaW50IGZvcm1hdE9wdGlvbnNcbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWwuRGF0YVBvaW50Rm9ybWF0T3B0aW9uc1wiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YVBvaW50Rm9ybWF0T3B0aW9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eSB7XG5cdGNvbnN0cnVjdG9yKHByb3BzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPERhdGFQb2ludEZvcm1hdE9wdGlvbnM+LCBvdGhlcnM/OiBQcm9wZXJ0aWVzT2Y8RGF0YVBvaW50Rm9ybWF0T3B0aW9ucz4pIHtcblx0XHRzdXBlcihwcm9wcyBhcyBzdHJpbmcsIG90aGVycyk7XG5cdH1cblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGRhdGFQb2ludFN0eWxlPzogXCJcIiB8IFwibGFyZ2VcIjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGRpc3BsYXlNb2RlPzogRGlzcGxheU1vZGU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRpY29uU2l6ZT86IFwiMXJlbVwiIHwgXCIxLjM3NXJlbVwiIHwgXCIycmVtXCI7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRtZWFzdXJlRGlzcGxheU1vZGU/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0VtcHR5SW5kaWNhdG9yID0gZmFsc2U7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0xhYmVscyA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGFsbG93ZWRWYWx1ZXM6IFtcIklubGluZVwiLCBcIk92ZXJsYXlcIl0gfSlcblx0cmVhY3Rp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
@@ -30,4 +30,7 @@ export default class DataPointFormatOptions extends BuildingBlockObjectProperty
30
30
 
31
31
  @property({ type: "boolean" })
32
32
  showLabels = false;
33
+
34
+ @property({ type: "string", allowedValues: ["Inline", "Overlay"] })
35
+ reactiveAreaMode?: "Inline" | "Overlay";
33
36
  }
@@ -279,7 +279,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
279
279
  requiredProperties = [],
280
280
  showOverlayInitially,
281
281
  renderLineChart,
282
- isValueListWithFixedValues
282
+ isValueListWithFixedValues,
283
+ initialChartBindingEnabled
283
284
  } = visualFilterObject;
284
285
  vfXML = xml`
285
286
  <visualFilter:VisualFilter
@@ -299,6 +300,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
299
300
  renderLineChart="${renderLineChart}"
300
301
  isValueListWithFixedValues="${isValueListWithFixedValues}"
301
302
  filterBarEntityType="${contextPath}"
303
+ enableChartBinding="${initialChartBindingEnabled}"
302
304
  />
303
305
  `;
304
306
  return vfXML;
@@ -405,4 +407,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/buildi
405
407
  _exports = FilterFieldBlock;
406
408
  return _exports;
407
409
  }, false);
408
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJGaWVsZEJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiX2RlYzIiLCJibG9ja0F0dHJpYnV0ZSIsInR5cGUiLCJyZXF1aXJlZCIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tUZW1wbGF0IiwicHJvcHMiLCJjb25maWd1cmF0aW9uIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwicHJvcGVydHlDb252ZXJ0ZWQiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsInByb3BlcnR5IiwiZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIiwicHJvcGVydHlFeHRlcm5hbElkIiwiZ2V0TW9kZWwiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImdldFBhdGgiLCJyZXBsYWNlIiwicHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIiwidW5kZWZpbmVkIiwiZGF0YU1vZGVsUGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsImNvbnRleHRQYXRoIiwicHJvcGVydHlOYW1lIiwib3JpZ2luYWxQcm9wZXJ0eU5hbWUiLCJmaXhlZFZhbHVlcyIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIiwiY29udHJvbElkIiwiaWRQcmVmaXgiLCJnZW5lcmF0ZSIsInNvdXJjZVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiZG9jdW1lbnRSZWZUZXh0IiwidGFyZ2V0T2JqZWN0IiwiRG9jdW1lbnRhdGlvblJlZiIsInRvU3RyaW5nIiwiZGF0YVR5cGUiLCJnZXREYXRhVHlwZSIsImxhYmVsVGVybSIsIkxhYmVsIiwibGFiZWxFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJsYWJlbCIsImNvbXBpbGVFeHByZXNzaW9uIiwiY29uZGl0aW9uc0JpbmRpbmciLCJnZXRDb25kaXRpb25zQmluZGluZyIsInBsYWNlaG9sZGVyIiwiZ2V0UGxhY2Vob2xkZXIiLCJwcm9wZXJ0eUtleSIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJ2ZkVuYWJsZWQiLCJ2aXN1YWxGaWx0ZXIiLCJpbmNsdWRlcyIsInZmSWQiLCJ2ZlJ1bnRpbWVJZCIsInByb3BlcnR5Q29udGV4dCIsIm1vZGVsIiwidmhQcm9wZXJ0eVBhdGgiLCJGaWVsZEhlbHBlciIsInZhbHVlSGVscFByb3BlcnR5Rm9yRmlsdGVyRmllbGQiLCJmaWx0ZXJhYmxlIiwiQ29tbW9uSGVscGVyIiwiaXNQcm9wZXJ0eUZpbHRlcmFibGUiLCJwcm9wZXJ0eU9iamVjdCIsImdldE9iamVjdCIsInByb3BlcnR5SW50ZXJmYWNlIiwiY29udGV4dCIsImRpc3BsYXkiLCJnZXRGaWx0ZXJGaWVsZERpc3BsYXlGb3JtYXQiLCJpc0ZpbHRlcmFibGUiLCJtYXhDb25kaXRpb25zIiwiZ2V0TWF4Q29uZGl0aW9ucyIsImRhdGFUeXBlQ29uc3RyYWludHMiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJpc1JlcXVpcmVkSW5GaWx0ZXIiLCJvcGVyYXRvcnMiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsIkV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiYWRkRXh0ZW5kZWRGaWx0ZXJPcGVyYXRvcnMiLCJzcGxpdCIsInZoUHJvcGVydHkiLCJ2aFByb3BlcnR5T2JqZWN0IiwidmhQcm9wZXJ0eUludGVyZmFjZSIsInJlbGF0aXZlVmhQcm9wZXJ0eVBhdGgiLCJnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aCIsInJlbGF0aXZlUHJvcGVydHlQYXRoIiwidmFsdWVIZWxwUHJvcGVydHkiLCJnZXRWYWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkIiwiJFR5cGUiLCJ2aElkUHJlZml4IiwidGFyZ2V0RW50aXR5VHlwZSIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRWaXN1YWxGaWx0ZXJDb250ZW50IiwidmlzdWFsRmlsdGVyT2JqZWN0IiwidmZYTUwiLCJpc0EiLCJTQVBfVUlfTU9ERUxfQ09OVEVYVCIsInByZXNlbnRhdGlvbkFubm90YXRpb24iLCJvdXRQYXJhbWV0ZXIiLCJpblBhcmFtZXRlcnMiLCJ2YWx1ZWxpc3RQcm9wZXJ0eSIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwic2hvd092ZXJsYXlJbml0aWFsbHkiLCJyZW5kZXJMaW5lQ2hhcnQiLCJpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyIsInhtbCIsInN0cmluZ2lmeUN1c3RvbURhdGEiLCJnZXRUZW1wbGF0ZSIsInhtbFJldCIsImNvbXBhbmlvblRleHRBdmFpbGFibGUiLCJmb3JtYXR0ZWRSZXN1bHQiLCJmb3JtYXRSZXN1bHQiLCJkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZCIsImdldERpc3BsYXlNb2RlIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJhdHRyIiwiZWRpdE1vZGUiLCJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZpbHRlckZpZWxkLmJsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vbl9FZG1cIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBmb3JtYXRSZXN1bHQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYmxvY2tBdHRyaWJ1dGUsIGRlZmluZUJ1aWxkaW5nQmxvY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBTQVBfVUlfTU9ERUxfQ09OVEVYVCwgeG1sIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZVwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0TWF4Q29uZGl0aW9ucyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIHsgVmlzdWFsRmlsdGVycyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvVmlzdWFsRmlsdGVyc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHtcblx0Z2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCxcblx0Z2V0VGFyZ2V0T2JqZWN0UGF0aCxcblx0dHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoXG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGdldFJlbGF0aXZlUHJvcGVydHlQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRBc3NvY2lhdGVkRXh0ZXJuYWxJZFByb3BlcnR5UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgeyBnZXREaXNwbGF5TW9kZSwgdHlwZSBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UsIHR5cGUgTWV0YU1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHtcblx0Y29uc3RyYWludHMsXG5cdGZvcm1hdE9wdGlvbnMsXG5cdGdldENvbmRpdGlvbnNCaW5kaW5nLFxuXHRnZXREYXRhVHlwZSxcblx0Z2V0UGxhY2Vob2xkZXIsXG5cdGlzUmVxdWlyZWRJbkZpbHRlclxufSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyRmllbGRIZWxwZXJcIjtcbmltcG9ydCB7IGdldEZpbHRlckZpZWxkRGlzcGxheUZvcm1hdCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCBFeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRXh0ZW5kZWRTZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9NZXRhTW9kZWxcIjtcblxuLyoqXG4gKiBCdWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBGaWx0ZXIgRmllbGQgYmFzZWQgb24gdGhlIG1ldGFkYXRhIHByb3ZpZGVkIGJ5IE9EYXRhIFY0LlxuICogPGJyPlxuICogSXQgaXMgZGVzaWduZWQgdG8gd29yayBiYXNlZCBvbiBhIHByb3BlcnR5IGNvbnRleHQocHJvcGVydHkpIHBvaW50aW5nIHRvIGFuIGVudGl0eSB0eXBlIHByb3BlcnR5XG4gKiBuZWVkZWQgdG8gYmUgdXNlZCBhcyBmaWx0ZXJmaWVsZCBhbmQgZW50aXR5VHlwZSBjb250ZXh0KGNvbnRleHRQYXRoKSB0byBjb25zaWRlciB0aGUgcmVsYXRpdml0eSBvZlxuICogdGhlIHByb3BlcnR5UGF0aCBvZiB0aGUgcHJvcGVydHkgd3J0IGVudGl0eVR5cGUuXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZpbHRlckZpZWxkIGlkPVwiTXlGaWx0ZXJGaWVsZFwiIHByb3BlcnR5PVwiQ29tcGFueU5hbWVcIiAvJmd0O1xuICogPC9wcmU+XG4gKiBAcHJpdmF0ZVxuICovXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7XG5cdG5hbWU6IFwiRmlsdGVyRmllbGRcIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxufSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckZpZWxkQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2Uge1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbWV0YWRhdGEgcGF0aCB0byB0aGUgcHJvcGVydHkuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRwcm9wZXJ0eSE6IENvbnRleHQ7XG5cblx0LyoqXG5cdCAqIE1ldGFkYXRhIHBhdGggdG8gdGhlIGVudGl0eVNldCBvciBuYXZpZ2F0aW9uUHJvcGVydHlcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGNvbnRleHRQYXRoITogQ29udGV4dDtcblxuXHQvKipcblx0ICogVmlzdWFsIGZpbHRlciBzZXR0aW5ncyBmb3IgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0dmlzdWFsRmlsdGVyPzogQ29udGV4dCB8IFZpc3VhbEZpbHRlcnM7XG5cblx0LyoqXG5cdCAqIEEgcHJlZml4IHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBJRCBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlkUHJlZml4ID0gXCJGaWx0ZXJGaWVsZFwiO1xuXG5cdC8qKlxuXHQgKiBBIHByZWZpeCB0aGF0IGlzIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgSUQgb2YgdGhlIHZhbHVlIGhlbHAgdXNlZCBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHR2aElkUHJlZml4ID0gXCJGaWx0ZXJGaWVsZFZhbHVlSGVscFwiO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIFNlbWF0aWMgRGF0ZSBSYW5nZSBvcHRpb24gZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlID0gdHJ1ZTtcblxuXHQvKipcblx0ICogU2V0dGluZ3MgZnJvbSB0aGUgbWFuaWZlc3QuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2V0dGluZ3MgPSBcIlwiO1xuXG5cdC8qKlxuXHQgKiBTcGVmaWNpZXMgdGhlIGVuYWJsZW1lbnQgb2YgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogZmFsc2Vcblx0fSlcblx0ZWRpdE1vZGU/OiBzdHJpbmc7XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqICAgICAgICAgICAgSU5URVJOQUwgQVRUUklCVVRFUyAgICAgICAgICAgICAgKlxuXHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXHQvKipcblx0ICogQ29udHJvbCBJZCBmb3IgTURDIGZpbHRlciBmaWVsZCB1c2VkIGluc2lkZS5cblx0ICovXG5cdGNvbnRyb2xJZCE6IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkga2V5IGZvciBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRwcm9wZXJ0eUtleSE6IHN0cmluZztcblxuXHQvKipcblx0ICogU291cmNlIGFubm90YXRpb24gcGF0aCBvZiB0aGUgcHJvcGVydHkuXG5cdCAqL1xuXHRzb3VyY2VQYXRoITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTb3VyY2UgYW5ub3RhdGlvbiBwYXRoIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdGRvY3VtZW50UmVmVGV4dD86IHN0cmluZztcblxuXHQvKipcblx0ICogTGFiZWwgZm9yIGZpbHRlcmZpZWxkLlxuXHQgKi9cblx0bGFiZWwhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGEgVHlwZSBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0ZGF0YVR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIE1heGltdW0gY29uZGl0aW9ucyB0aGF0IGNhbiBiZSBhZGRlZCB0byB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0bWF4Q29uZGl0aW9ucyE6IG51bWJlcjtcblxuXHQvKipcblx0ICogVmFsdWUgSGVscCBpZCBhcyBhc3NvY2lhdGlvbiBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdHZhbHVlSGVscFByb3BlcnR5Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBCaW5kaW5nIHBhdGggZm9yIGNvbmRpdGlvbnMgYWRkZWQgdG8gZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0Y29uZGl0aW9uc0JpbmRpbmchOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGF0eXBlIGNvbnN0cmFpbnRzIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZUNvbnN0cmFpbnRzPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEYXRhdHlwZSBmb3JtYXQgb3B0aW9ucyBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0ZGF0YVR5cGVGb3JtYXRPcHRpb25zPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUbyBzcGVjaWZ5IGZpbHRlciBmaWVsZCBpcyBtYW5kYXRvcnkgZm9yIGZpbHRlcmluZy5cblx0ICovXG5cdHJlcXVpcmVkITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVmFsaWQgb3BlcmF0b3JzIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0b3BlcmF0b3JzPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGlkIHRvIGJlIHVzZWQuXG5cdCAqL1xuXHR2ZklkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGJ1aWxkaW5nIGJsb2NrIGlkIHRvIGJlIHVzZWQuXG5cdCAqL1xuXHR2ZlJ1bnRpbWVJZD86IHN0cmluZztcblxuXHQvKipcblx0ICogVmlzdWFsIEZpbHRlciBpcyBleHBlY3RlZC5cblx0ICovXG5cdHZmRW5hYmxlZCE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFByb3BlcnR5IHVzZWQgaXMgZmlsdGVyYWJsZVxuXHQgKi9cblx0aXNGaWx0ZXJhYmxlITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogUHJvcGVydHkgZm9yIHBsYWNlaG9sZGVyXG5cdCAqL1xuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcblxuXHQvKipcblx0ICogUHJvcGVydHkgdG8gaG9sZCBwcm9taXNlIGZvciBkaXNwbGF5XG5cdCAqL1xuXHRkaXNwbGF5PzogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG5cdHByb3BlcnR5RXh0ZXJuYWxJZD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6IFByb3BlcnRpZXNPZjxGaWx0ZXJGaWVsZEJsb2NrPiwgY29uZmlndXJhdGlvbjogdW5rbm93biwgc2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgY29uZmlndXJhdGlvbiwgc2V0dGluZ3MpO1xuXG5cdFx0Y29uc3QgcHJvcGVydHlDb252ZXJ0ZWQgPSBNZXRhTW9kZWxDb252ZXJ0ZXIuY29udmVydE1ldGFNb2RlbENvbnRleHQodGhpcy5wcm9wZXJ0eSkgYXMgUHJvcGVydHk7XG5cblx0XHRjb25zdCBleHRlcm5hbElkUHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZEV4dGVybmFsSWRQcm9wZXJ0eVBhdGgocHJvcGVydHlDb252ZXJ0ZWQpIGFzIHN0cmluZztcblx0XHRpZiAoZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCkge1xuXHRcdFx0dGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQgPSB0aGlzLnByb3BlcnR5XG5cdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0aGlzLnByb3BlcnR5LmdldFBhdGgoKS5yZXBsYWNlKHByb3BlcnR5Q29udmVydGVkLm5hbWUsIGV4dGVybmFsSWRQcm9wZXJ0eVBhdGgpLCB0aGlzLnByb3BlcnR5KTtcblx0XHR9XG5cblx0XHRjb25zdCBwcm9wZXJ0eUNvbnZlcnRlZEV4dGVybmFsSWQgPSB0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZFxuXHRcdFx0PyAoTWV0YU1vZGVsQ29udmVydGVyLmNvbnZlcnRNZXRhTW9kZWxDb250ZXh0KHRoaXMucHJvcGVydHlFeHRlcm5hbElkKSBhcyBQcm9wZXJ0eSlcblx0XHRcdDogdW5kZWZpbmVkO1xuXG5cdFx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KHRoaXMucHJvcGVydHksIHRoaXMuY29udGV4dFBhdGgpO1xuXG5cdFx0Ly8gUHJvcGVydHkgc2V0dGluZ3Ncblx0XHRjb25zdCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUNvbnZlcnRlZC5uYW1lLFxuXHRcdFx0b3JpZ2luYWxQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUNvbnZlcnRlZC5uYW1lLFxuXHRcdFx0Zml4ZWRWYWx1ZXMgPVxuXHRcdFx0XHQhIXByb3BlcnR5Q29udmVydGVkRXh0ZXJuYWxJZD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIHx8XG5cdFx0XHRcdCEhcHJvcGVydHlDb252ZXJ0ZWQuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzO1xuXG5cdFx0dGhpcy5jb250cm9sSWQgPSB0aGlzLmlkUHJlZml4ICYmIGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBvcmlnaW5hbFByb3BlcnR5TmFtZV0pO1xuXHRcdHRoaXMuc291cmNlUGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgoZGF0YU1vZGVsUGF0aCk7XG5cblx0XHR0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNfQ29tbW9uX2V4dGVuZGVkID0gUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb24gJiB7IERvY3VtZW50YXRpb25SZWY/OiBzdHJpbmcgfTtcblx0XHR0aGlzLmRvY3VtZW50UmVmVGV4dCA9IChcblx0XHRcdGRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucy5Db21tb24gYXMgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb25fZXh0ZW5kZWRcblx0XHQpPy5Eb2N1bWVudGF0aW9uUmVmPy50b1N0cmluZygpO1xuXG5cdFx0dGhpcy5kYXRhVHlwZSA9IGdldERhdGFUeXBlKHByb3BlcnR5Q29udmVydGVkRXh0ZXJuYWxJZCB8fCBwcm9wZXJ0eUNvbnZlcnRlZCk7IC8vIGRhdGEgdHlwZSBmb3IgTFItRmlsdGVyQmFyIGNvbmRpdGlvbiBvZiB0aGUgdmFsdWUgaGVscFxuXHRcdGNvbnN0IGxhYmVsVGVybSA9IHByb3BlcnR5Q29udmVydGVkPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5MYWJlbDtcblx0XHRjb25zdCBsYWJlbEV4cHJlc3Npb24gPSBsYWJlbFRlcm0/LnRvU3RyaW5nKCkgPz8gY29uc3RhbnQocHJvcGVydHlOYW1lKTtcblx0XHR0aGlzLmxhYmVsID0gY29tcGlsZUV4cHJlc3Npb24obGFiZWxFeHByZXNzaW9uKSB8fCBwcm9wZXJ0eU5hbWU7XG5cdFx0dGhpcy5jb25kaXRpb25zQmluZGluZyA9IGdldENvbmRpdGlvbnNCaW5kaW5nKGRhdGFNb2RlbFBhdGgpIHx8IFwiXCI7XG5cdFx0dGhpcy5wbGFjZWhvbGRlciA9IGdldFBsYWNlaG9sZGVyKHByb3BlcnR5Q29udmVydGVkKTtcblx0XHR0aGlzLnByb3BlcnR5S2V5ID0gZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxQYXRoLCBmYWxzZSwgdHJ1ZSkgfHwgcHJvcGVydHlOYW1lO1xuXHRcdC8vIFZpc3VhbCBGaWx0ZXIgc2V0dGluZ3Ncblx0XHR0aGlzLnZmRW5hYmxlZCA9ICEhdGhpcy52aXN1YWxGaWx0ZXIgJiYgISh0aGlzLmlkUHJlZml4ICYmIHRoaXMuaWRQcmVmaXguaW5jbHVkZXMoXCJBZGFwdGF0aW9uXCIpKTtcblx0XHR0aGlzLnZmSWQgPSB0aGlzLnZmRW5hYmxlZCA/IGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBwcm9wZXJ0eU5hbWUsIFwiVmlzdWFsRmlsdGVyXCJdKSA6IHVuZGVmaW5lZDtcblx0XHR0aGlzLnZmUnVudGltZUlkID0gdGhpcy52ZkVuYWJsZWQgPyBnZW5lcmF0ZShbdGhpcy5pZFByZWZpeCwgcHJvcGVydHlOYW1lLCBcIlZpc3VhbEZpbHRlckNvbnRhaW5lclwiXSkgOiB1bmRlZmluZWQ7XG5cblx0XHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cblx0XHQvLyBUT0RPOiBuZWVkIHRvIGNoYW5nZSBvcGVyYXRpb25zIGZyb20gTWV0YU1vZGVsIHRvIENvbnZlcnRlcnMuXG5cdFx0Ly8gVGhpcyBtYWlubHkgaW5jbHVkZWQgY2hhbmdpbmcgY2hhbmdpbmcgZ2V0RmlsdGVyUmVzdHJpY3Rpb25zIG9wZXJhdGlvbnMgZnJvbSBtZXRhTW9kZWwgdG8gY29udmVydGVyc1xuXHRcdGNvbnN0IHByb3BlcnR5Q29udGV4dCA9IHRoaXMucHJvcGVydHksXG5cdFx0XHRtb2RlbDogTWV0YU1vZGVsID0gcHJvcGVydHlDb250ZXh0LmdldE1vZGVsKCksXG5cdFx0XHR2aFByb3BlcnR5UGF0aDogc3RyaW5nID0gRmllbGRIZWxwZXIudmFsdWVIZWxwUHJvcGVydHlGb3JGaWx0ZXJGaWVsZChwcm9wZXJ0eUNvbnRleHQpLFxuXHRcdFx0ZmlsdGVyYWJsZSA9IENvbW1vbkhlbHBlci5pc1Byb3BlcnR5RmlsdGVyYWJsZShwcm9wZXJ0eUNvbnRleHQpLFxuXHRcdFx0cHJvcGVydHlPYmplY3QgPSBwcm9wZXJ0eUNvbnRleHQuZ2V0T2JqZWN0KCksXG5cdFx0XHRwcm9wZXJ0eUludGVyZmFjZSA9IHsgY29udGV4dDogcHJvcGVydHlDb250ZXh0IH0gYXMgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlO1xuXG5cdFx0dGhpcy5kaXNwbGF5ID0gZ2V0RmlsdGVyRmllbGREaXNwbGF5Rm9ybWF0KGRhdGFNb2RlbFBhdGgsIHByb3BlcnR5Q29udmVydGVkLCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5pc0ZpbHRlcmFibGUgPSAhKGZpbHRlcmFibGUgPT09IGZhbHNlIHx8IGZpbHRlcmFibGUgPT09IFwiZmFsc2VcIik7XG5cdFx0dGhpcy5tYXhDb25kaXRpb25zID0gZ2V0TWF4Q29uZGl0aW9ucyhkYXRhTW9kZWxQYXRoKTtcblx0XHR0aGlzLmRhdGFUeXBlQ29uc3RyYWludHMgPSBjb25zdHJhaW50cyhwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMuZGF0YVR5cGVGb3JtYXRPcHRpb25zID0gZm9ybWF0T3B0aW9ucyhwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMucmVxdWlyZWQgPSBpc1JlcXVpcmVkSW5GaWx0ZXIocHJvcGVydHlPYmplY3QsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLm9wZXJhdG9ycyA9IEZpZWxkSGVscGVyLm9wZXJhdG9ycyhcblx0XHRcdHByb3BlcnR5Q29udGV4dCxcblx0XHRcdHByb3BlcnR5T2JqZWN0LFxuXHRcdFx0dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZSxcblx0XHRcdHRoaXMuc2V0dGluZ3MgfHwgXCJcIixcblx0XHRcdHRoaXMuY29udGV4dFBhdGguZ2V0UGF0aCgpXG5cdFx0KTtcblx0XHRpZiAodGhpcy5vcGVyYXRvcnMpIHtcblx0XHRcdC8vIEV4dGVuZGVkIG9wZXJhdG9ycyBhcmUgbm90IGFkZGVkIGJ5IGRlZmF1bHQuXG5cdFx0XHQvLyBXZSBhZGQgdGhlbSB0byBNREMgZmlsdGVyIGVudmlyb25tZW50LlxuXHRcdFx0RXh0ZW5kZWRTZW1hbnRpY0RhdGVPcGVyYXRvcnMuYWRkRXh0ZW5kZWRGaWx0ZXJPcGVyYXRvcnModGhpcy5vcGVyYXRvcnMuc3BsaXQoXCIsXCIpKTtcblx0XHR9XG5cdFx0Ly8gVmFsdWUgSGVscCBzZXR0aW5nc1xuXHRcdC8vIFRPRE86IFRoaXMgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aGVuIFZIIG1hY3JvIGlzIGNvbnZlcnRlZCB0byAyLjBcblx0XHRjb25zdCB2aFByb3BlcnR5ID0gbW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQodmhQcm9wZXJ0eVBhdGgpIGFzIENvbnRleHQ7XG5cdFx0Y29uc3QgdmhQcm9wZXJ0eU9iamVjdCA9IHZoUHJvcGVydHkuZ2V0T2JqZWN0KCkgYXMgTWV0YU1vZGVsQ29udGV4dCxcblx0XHRcdHZoUHJvcGVydHlJbnRlcmZhY2UgPSB7IGNvbnRleHQ6IHZoUHJvcGVydHkgfSxcblx0XHRcdHJlbGF0aXZlVmhQcm9wZXJ0eVBhdGggPSBnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aCh2aFByb3BlcnR5T2JqZWN0LCB2aFByb3BlcnR5SW50ZXJmYWNlKSxcblx0XHRcdHJlbGF0aXZlUHJvcGVydHlQYXRoID0gZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgocHJvcGVydHlPYmplY3QsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLnZhbHVlSGVscFByb3BlcnR5ID0gRmllbGRIZWxwZXIuZ2V0VmFsdWVIZWxwUHJvcGVydHlGb3JGaWx0ZXJGaWVsZChcblx0XHRcdHByb3BlcnR5Q29udGV4dCxcblx0XHRcdHByb3BlcnR5T2JqZWN0LFxuXHRcdFx0cHJvcGVydHlPYmplY3QuJFR5cGUsXG5cdFx0XHR0aGlzLnZoSWRQcmVmaXgsXG5cdFx0XHRkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGUubmFtZSxcblx0XHRcdHJlbGF0aXZlUHJvcGVydHlQYXRoLFxuXHRcdFx0cmVsYXRpdmVWaFByb3BlcnR5UGF0aCxcblx0XHRcdGZpeGVkVmFsdWVzLFxuXHRcdFx0dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZVxuXHRcdCk7XG5cblx0XHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cblx0fVxuXG5cdGdldFZpc3VhbEZpbHRlckNvbnRlbnQoKTogc3RyaW5nIHtcblx0XHRsZXQgdmlzdWFsRmlsdGVyT2JqZWN0ID0gdGhpcy52aXN1YWxGaWx0ZXIsXG5cdFx0XHR2ZlhNTCA9IFwiXCI7XG5cdFx0aWYgKCF0aGlzLnZmRW5hYmxlZCB8fCAhdmlzdWFsRmlsdGVyT2JqZWN0KSB7XG5cdFx0XHRyZXR1cm4gdmZYTUw7XG5cdFx0fVxuXHRcdGlmICgodmlzdWFsRmlsdGVyT2JqZWN0IGFzIENvbnRleHQpPy5pc0E/LihTQVBfVUlfTU9ERUxfQ09OVEVYVCkpIHtcblx0XHRcdHZpc3VhbEZpbHRlck9iamVjdCA9ICh2aXN1YWxGaWx0ZXJPYmplY3QgYXMgQ29udGV4dCkuZ2V0T2JqZWN0KCkgYXMgVmlzdWFsRmlsdGVycztcblx0XHR9XG5cblx0XHRjb25zdCB7XG5cdFx0XHRjb250ZXh0UGF0aCxcblx0XHRcdHByZXNlbnRhdGlvbkFubm90YXRpb24sXG5cdFx0XHRvdXRQYXJhbWV0ZXIsXG5cdFx0XHRpblBhcmFtZXRlcnMsXG5cdFx0XHR2YWx1ZWxpc3RQcm9wZXJ0eSxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0bXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkLFxuXHRcdFx0cmVxdWlyZWQsXG5cdFx0XHRyZXF1aXJlZFByb3BlcnRpZXMgPSBbXSxcblx0XHRcdHNob3dPdmVybGF5SW5pdGlhbGx5LFxuXHRcdFx0cmVuZGVyTGluZUNoYXJ0LFxuXHRcdFx0aXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXNcblx0XHR9ID0gdmlzdWFsRmlsdGVyT2JqZWN0IGFzIFZpc3VhbEZpbHRlcnM7XG5cdFx0dmZYTUwgPSB4bWxgXG5cdFx0XHRcdDx2aXN1YWxGaWx0ZXI6VmlzdWFsRmlsdGVyXG5cdFx0XHRcdCAgICB4bWxuczp2aXN1YWxGaWx0ZXI9IFwic2FwLmZlLm1hY3Jvcy52aXN1YWxmaWx0ZXJzXCJcblx0XHRcdFx0XHRpZD1cIiR7dGhpcy52ZlJ1bnRpbWVJZH1cIlxuXHRcdFx0XHRcdF9jb250ZW50SWQ9XCIke3RoaXMudmZJZH1cIlxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPVwiJHtjb250ZXh0UGF0aH1cIlxuXHRcdFx0XHRcdG1ldGFQYXRoPVwiJHtwcmVzZW50YXRpb25Bbm5vdGF0aW9ufVwiXG5cdFx0XHRcdFx0b3V0UGFyYW1ldGVyPVwiJHtvdXRQYXJhbWV0ZXJ9XCJcblx0XHRcdFx0XHRpblBhcmFtZXRlcnM9XCIke0NvbW1vbkhlbHBlci5zdHJpbmdpZnlDdXN0b21EYXRhKGluUGFyYW1ldGVycyl9XCJcblx0XHRcdFx0XHR2YWx1ZWxpc3RQcm9wZXJ0eT1cIiR7dmFsdWVsaXN0UHJvcGVydHl9XCJcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbj1cIiR7c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb259XCJcblx0XHRcdFx0XHRtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQ9XCIke211bHRpcGxlU2VsZWN0aW9uQWxsb3dlZH1cIlxuXHRcdFx0XHRcdHJlcXVpcmVkPVwiJHtyZXF1aXJlZH1cIlxuXHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydGllcz1cIiR7Q29tbW9uSGVscGVyLnN0cmluZ2lmeUN1c3RvbURhdGEocmVxdWlyZWRQcm9wZXJ0aWVzKX1cIlxuXHRcdFx0XHRcdHNob3dPdmVybGF5SW5pdGlhbGx5PVwiJHtzaG93T3ZlcmxheUluaXRpYWxseX1cIlxuXHRcdFx0XHRcdHJlbmRlckxpbmVDaGFydD1cIiR7cmVuZGVyTGluZUNoYXJ0fVwiXG5cdFx0XHRcdFx0aXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM9XCIke2lzVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzfVwiXG5cdFx0XHRcdFx0ZmlsdGVyQmFyRW50aXR5VHlwZT1cIiR7Y29udGV4dFBhdGh9XCJcblx0XHRcdFx0Lz5cblx0XHRcdGA7XG5cblx0XHRyZXR1cm4gdmZYTUw7XG5cdH1cblxuXHRhc3luYyBnZXRUZW1wbGF0ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGxldCB4bWxSZXQgPSBgYDtcblx0XHRpZiAodGhpcy5pc0ZpbHRlcmFibGUpIHtcblx0XHRcdGxldCBkaXNwbGF5O1xuXHRcdFx0Y29uc3QgY29tcGFuaW9uVGV4dEF2YWlsYWJsZSA9IHRoaXMuZG9jdW1lbnRSZWZUZXh0ID09PSB1bmRlZmluZWQgfHwgbnVsbCA/IGZhbHNlIDogdHJ1ZTtcblx0XHRcdGNvbnN0IGZvcm1hdHRlZFJlc3VsdDogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gPSBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFt0aGlzLmRvY3VtZW50UmVmVGV4dF0sIFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5TdGFuZGFyZEZvcm1hdHRlciNhc0FycmF5XCIpXG5cdFx0XHQpO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgZGF0YU1vZGVsUGF0aEV4dGVybmFsSWQgPVxuXHRcdFx0XHRcdHRoaXMucHJvcGVydHlFeHRlcm5hbElkICYmIE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHModGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQsIHRoaXMuY29udGV4dFBhdGgpO1xuXHRcdFx0XHRkaXNwbGF5ID0gZGF0YU1vZGVsUGF0aEV4dGVybmFsSWRcblx0XHRcdFx0XHQ/IGdldERpc3BsYXlNb2RlKGRhdGFNb2RlbFBhdGhFeHRlcm5hbElkIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+KVxuXHRcdFx0XHRcdDogYXdhaXQgdGhpcy5kaXNwbGF5O1xuXHRcdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihgRkUgOiBGaWx0ZXJGaWVsZCBCdWlsZGluZ0Jsb2NrIDogRXJyb3IgZmV0Y2hpbmcgZGlzcGxheSBwcm9wZXJ0eSBmb3IgJHt0aGlzLnNvdXJjZVBhdGh9IDogJHtlcnJ9YCk7XG5cdFx0XHR9XG5cdFx0XHR4bWxSZXQgPSB4bWxgXG5cdFx0XHRcdDxtZGM6RmlsdGVyRmllbGRcblx0XHRcdFx0XHR4bWxuczptZGM9XCJzYXAudWkubWRjXCJcblx0XHRcdFx0XHR4bWxuczp0ZW1wbGF0ZT1cImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS50ZW1wbGF0ZS8xXCJcblx0XHRcdFx0XHR4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuXHRcdFx0XHRcdHhtbG5zOmN1c3RvbURhdGE9XCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCJcblx0XHRcdFx0XHR4bWxuczpmaWVsZGhlbHA9XCJzYXAudWkuY29yZS5maWVsZGhlbHBcIlxuXHRcdFx0XHRcdGN1c3RvbURhdGE6c291cmNlUGF0aD1cIiR7dGhpcy5zb3VyY2VQYXRofVwiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMuY29udHJvbElkfVwiXG5cdFx0XHRcdFx0ZGVsZWdhdGU9XCJ7bmFtZTogJ3NhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRCYXNlRGVsZWdhdGUnLCBwYXlsb2FkOntpc0ZpbHRlckZpZWxkOnRydWV9fVwiXG5cdFx0XHRcdFx0cHJvcGVydHlLZXk9XCIke3RoaXMucHJvcGVydHlLZXl9XCJcblx0XHRcdFx0XHRsYWJlbD1cIiR7dGhpcy5sYWJlbH1cIlxuXHRcdFx0XHRcdGRhdGFUeXBlPVwiJHt0aGlzLmRhdGFUeXBlfVwiXG5cdFx0XHRcdFx0ZGlzcGxheT1cIiR7ZGlzcGxheX1cIlxuXHRcdFx0XHRcdG1heENvbmRpdGlvbnM9XCIke3RoaXMubWF4Q29uZGl0aW9uc31cIlxuXHRcdFx0XHRcdHZhbHVlSGVscD1cIiR7dGhpcy52YWx1ZUhlbHBQcm9wZXJ0eX1cIlxuXHRcdFx0XHRcdGNvbmRpdGlvbnM9XCIke3RoaXMuY29uZGl0aW9uc0JpbmRpbmd9XCJcblx0XHRcdFx0XHRkYXRhVHlwZUNvbnN0cmFpbnRzPVwiJHt0aGlzLmRhdGFUeXBlQ29uc3RyYWludHN9XCJcblx0XHRcdFx0XHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM9XCIke3RoaXMuZGF0YVR5cGVGb3JtYXRPcHRpb25zfVwiXG5cdFx0XHRcdFx0cmVxdWlyZWQ9XCIke3RoaXMucmVxdWlyZWR9XCJcblx0XHRcdFx0XHRvcGVyYXRvcnM9XCIke3RoaXMub3BlcmF0b3JzfVwiXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCIke3RoaXMucGxhY2Vob2xkZXJ9XCJcblx0XHRcdFx0XHQke3RoaXMuYXR0cihcImVkaXRNb2RlXCIsIHRoaXMuZWRpdE1vZGUpfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0JHtcblx0XHRcdFx0XHRcdGNvbXBhbmlvblRleHRBdmFpbGFibGVcblx0XHRcdFx0XHRcdFx0PyB4bWxgXG5cdFx0XHRcdFx0XHQ8bWRjOmN1c3RvbURhdGE+XG5cdFx0XHRcdFx0XHRcdDxmaWVsZGhlbHA6RmllbGRIZWxwQ3VzdG9tRGF0YVxuXHRcdFx0XHRcdFx0XHRcdCR7dGhpcy5hdHRyKFwidmFsdWVcIiwgZm9ybWF0dGVkUmVzdWx0KX1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvbWRjOmN1c3RvbURhdGE+XG5cdFx0XHRcdFx0YFxuXHRcdFx0XHRcdFx0XHQ6IFwiXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JHt0aGlzLnZmRW5hYmxlZCA/IHRoaXMuZ2V0VmlzdWFsRmlsdGVyQ29udGVudCgpIDogXCJcIn1cblx0XHRcdFx0PC9tZGM6RmlsdGVyRmllbGQ+XG5cdFx0XHRgO1xuXHRcdH1cblxuXHRcdHJldHVybiB4bWxSZXQ7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFaQSxJQWlCcUJBLGdCQUFnQixJQUFBQyxJQUFBLEdBSnBDQyxtQkFBbUIsQ0FBQztJQUNwQkMsSUFBSSxFQUFFLGFBQWE7SUFDbkJDLFNBQVMsRUFBRTtFQUNaLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBS0FDLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU1ESixjQUFjLENBQUM7SUFDZkMs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
410
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJGaWVsZEJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiX2RlYzIiLCJibG9ja0F0dHJpYnV0ZSIsInR5cGUiLCJyZXF1aXJlZCIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tUZW1wbGF0IiwicHJvcHMiLCJjb25maWd1cmF0aW9uIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwicHJvcGVydHlDb252ZXJ0ZWQiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsInByb3BlcnR5IiwiZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIiwicHJvcGVydHlFeHRlcm5hbElkIiwiZ2V0TW9kZWwiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImdldFBhdGgiLCJyZXBsYWNlIiwicHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIiwidW5kZWZpbmVkIiwiZGF0YU1vZGVsUGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsImNvbnRleHRQYXRoIiwicHJvcGVydHlOYW1lIiwib3JpZ2luYWxQcm9wZXJ0eU5hbWUiLCJmaXhlZFZhbHVlcyIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIiwiY29udHJvbElkIiwiaWRQcmVmaXgiLCJnZW5lcmF0ZSIsInNvdXJjZVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiZG9jdW1lbnRSZWZUZXh0IiwidGFyZ2V0T2JqZWN0IiwiRG9jdW1lbnRhdGlvblJlZiIsInRvU3RyaW5nIiwiZGF0YVR5cGUiLCJnZXREYXRhVHlwZSIsImxhYmVsVGVybSIsIkxhYmVsIiwibGFiZWxFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJsYWJlbCIsImNvbXBpbGVFeHByZXNzaW9uIiwiY29uZGl0aW9uc0JpbmRpbmciLCJnZXRDb25kaXRpb25zQmluZGluZyIsInBsYWNlaG9sZGVyIiwiZ2V0UGxhY2Vob2xkZXIiLCJwcm9wZXJ0eUtleSIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJ2ZkVuYWJsZWQiLCJ2aXN1YWxGaWx0ZXIiLCJpbmNsdWRlcyIsInZmSWQiLCJ2ZlJ1bnRpbWVJZCIsInByb3BlcnR5Q29udGV4dCIsIm1vZGVsIiwidmhQcm9wZXJ0eVBhdGgiLCJGaWVsZEhlbHBlciIsInZhbHVlSGVscFByb3BlcnR5Rm9yRmlsdGVyRmllbGQiLCJmaWx0ZXJhYmxlIiwiQ29tbW9uSGVscGVyIiwiaXNQcm9wZXJ0eUZpbHRlcmFibGUiLCJwcm9wZXJ0eU9iamVjdCIsImdldE9iamVjdCIsInByb3BlcnR5SW50ZXJmYWNlIiwiY29udGV4dCIsImRpc3BsYXkiLCJnZXRGaWx0ZXJGaWVsZERpc3BsYXlGb3JtYXQiLCJpc0ZpbHRlcmFibGUiLCJtYXhDb25kaXRpb25zIiwiZ2V0TWF4Q29uZGl0aW9ucyIsImRhdGFUeXBlQ29uc3RyYWludHMiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJpc1JlcXVpcmVkSW5GaWx0ZXIiLCJvcGVyYXRvcnMiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsIkV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiYWRkRXh0ZW5kZWRGaWx0ZXJPcGVyYXRvcnMiLCJzcGxpdCIsInZoUHJvcGVydHkiLCJ2aFByb3BlcnR5T2JqZWN0IiwidmhQcm9wZXJ0eUludGVyZmFjZSIsInJlbGF0aXZlVmhQcm9wZXJ0eVBhdGgiLCJnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aCIsInJlbGF0aXZlUHJvcGVydHlQYXRoIiwidmFsdWVIZWxwUHJvcGVydHkiLCJnZXRWYWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkIiwiJFR5cGUiLCJ2aElkUHJlZml4IiwidGFyZ2V0RW50aXR5VHlwZSIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRWaXN1YWxGaWx0ZXJDb250ZW50IiwidmlzdWFsRmlsdGVyT2JqZWN0IiwidmZYTUwiLCJpc0EiLCJTQVBfVUlfTU9ERUxfQ09OVEVYVCIsInByZXNlbnRhdGlvbkFubm90YXRpb24iLCJvdXRQYXJhbWV0ZXIiLCJpblBhcmFtZXRlcnMiLCJ2YWx1ZWxpc3RQcm9wZXJ0eSIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwic2hvd092ZXJsYXlJbml0aWFsbHkiLCJyZW5kZXJMaW5lQ2hhcnQiLCJpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyIsImluaXRpYWxDaGFydEJpbmRpbmdFbmFibGVkIiwieG1sIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsImdldFRlbXBsYXRlIiwieG1sUmV0IiwiY29tcGFuaW9uVGV4dEF2YWlsYWJsZSIsImZvcm1hdHRlZFJlc3VsdCIsImZvcm1hdFJlc3VsdCIsImRhdGFNb2RlbFBhdGhFeHRlcm5hbElkIiwiZ2V0RGlzcGxheU1vZGUiLCJlcnIiLCJMb2ciLCJlcnJvciIsImF0dHIiLCJlZGl0TW9kZSIsIkJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyRmllbGQuYmxvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgY29uc3RhbnQsIGZvcm1hdFJlc3VsdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBibG9ja0F0dHJpYnV0ZSwgZGVmaW5lQnVpbGRpbmdCbG9jayB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IFNBUF9VSV9NT0RFTF9DT05URVhULCB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBnZXRNYXhDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBWaXN1YWxGaWx0ZXJzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9WaXN1YWxGaWx0ZXJzXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQge1xuXHRnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLFxuXHRnZXRUYXJnZXRPYmplY3RQYXRoLFxuXHR0eXBlIERhdGFNb2RlbE9iamVjdFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGdldEFzc29jaWF0ZWRFeHRlcm5hbElkUHJvcGVydHlQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGdldERpc3BsYXlNb2RlLCB0eXBlIENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSwgdHlwZSBNZXRhTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQge1xuXHRjb25zdHJhaW50cyxcblx0Zm9ybWF0T3B0aW9ucyxcblx0Z2V0Q29uZGl0aW9uc0JpbmRpbmcsXG5cdGdldERhdGFUeXBlLFxuXHRnZXRQbGFjZWhvbGRlcixcblx0aXNSZXF1aXJlZEluRmlsdGVyXG59IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyRmllbGREaXNwbGF5Rm9ybWF0IH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlckZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IEV4dGVuZGVkU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9FeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01ldGFNb2RlbFwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIGZvciBjcmVhdGluZyBhIEZpbHRlciBGaWVsZCBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBJdCBpcyBkZXNpZ25lZCB0byB3b3JrIGJhc2VkIG9uIGEgcHJvcGVydHkgY29udGV4dChwcm9wZXJ0eSkgcG9pbnRpbmcgdG8gYW4gZW50aXR5IHR5cGUgcHJvcGVydHlcbiAqIG5lZWRlZCB0byBiZSB1c2VkIGFzIGZpbHRlcmZpZWxkIGFuZCBlbnRpdHlUeXBlIGNvbnRleHQoY29udGV4dFBhdGgpIHRvIGNvbnNpZGVyIHRoZSByZWxhdGl2aXR5IG9mXG4gKiB0aGUgcHJvcGVydHlQYXRoIG9mIHRoZSBwcm9wZXJ0eSB3cnQgZW50aXR5VHlwZS5cbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNyb3M6RmlsdGVyRmllbGQgaWQ9XCJNeUZpbHRlckZpZWxkXCIgcHJvcGVydHk9XCJDb21wYW55TmFtZVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJGaWx0ZXJGaWVsZFwiLFxuXHRuYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyRmllbGRCbG9jayBleHRlbmRzIEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSB7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBtZXRhZGF0YSBwYXRoIHRvIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHByb3BlcnR5ITogQ29udGV4dDtcblxuXHQvKipcblx0ICogTWV0YWRhdGEgcGF0aCB0byB0aGUgZW50aXR5U2V0IG9yIG5hdmlnYXRpb25Qcm9wZXJ0eVxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0Y29udGV4dFBhdGghOiBDb250ZXh0O1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgZmlsdGVyIHNldHRpbmdzIGZvciBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHR2aXN1YWxGaWx0ZXI/OiBDb250ZXh0IHwgVmlzdWFsRmlsdGVycztcblxuXHQvKipcblx0ICogQSBwcmVmaXggdGhhdCBpcyBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIElEIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0aWRQcmVmaXggPSBcIkZpbHRlckZpZWxkXCI7XG5cblx0LyoqXG5cdCAqIEEgcHJlZml4IHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBJRCBvZiB0aGUgdmFsdWUgaGVscCB1c2VkIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHZoSWRQcmVmaXggPSBcIkZpbHRlckZpZWxkVmFsdWVIZWxwXCI7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgU2VtYXRpYyBEYXRlIFJhbmdlIG9wdGlvbiBmb3IgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2UgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBTZXR0aW5ncyBmcm9tIHRoZSBtYW5pZmVzdC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRzZXR0aW5ncyA9IFwiXCI7XG5cblx0LyoqXG5cdCAqIFNwZWZpY2llcyB0aGUgZW5hYmxlbWVudCBvZiB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiBmYWxzZVxuXHR9KVxuXHRlZGl0TW9kZT86IHN0cmluZztcblxuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICogICAgICAgICAgICBJTlRFUk5BTCBBVFRSSUJVVEVTICAgICAgICAgICAgICAqXG5cdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdC8qKlxuXHQgKiBDb250cm9sIElkIGZvciBNREMgZmlsdGVyIGZpZWxkIHVzZWQgaW5zaWRlLlxuXHQgKi9cblx0Y29udHJvbElkITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBrZXkgZm9yIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdHByb3BlcnR5S2V5ITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTb3VyY2UgYW5ub3RhdGlvbiBwYXRoIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cdHNvdXJjZVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFNvdXJjZSBhbm5vdGF0aW9uIHBhdGggb2YgdGhlIHByb3BlcnR5LlxuXHQgKi9cblx0ZG9jdW1lbnRSZWZUZXh0Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBMYWJlbCBmb3IgZmlsdGVyZmllbGQuXG5cdCAqL1xuXHRsYWJlbCE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGF0YSBUeXBlIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZSE6IHN0cmluZztcblxuXHQvKipcblx0ICogTWF4aW11bSBjb25kaXRpb25zIHRoYXQgY2FuIGJlIGFkZGVkIHRvIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRtYXhDb25kaXRpb25zITogbnVtYmVyO1xuXG5cdC8qKlxuXHQgKiBWYWx1ZSBIZWxwIGlkIGFzIGFzc29jaWF0aW9uIGZvciB0aGUgZmlsdGVyIGZpZWxkLlxuXHQgKi9cblx0dmFsdWVIZWxwUHJvcGVydHk/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEJpbmRpbmcgcGF0aCBmb3IgY29uZGl0aW9ucyBhZGRlZCB0byBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRjb25kaXRpb25zQmluZGluZyE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGF0YXR5cGUgY29uc3RyYWludHMgb2YgdGhlIGZpbHRlciBmaWVsZC5cblx0ICovXG5cdGRhdGFUeXBlQ29uc3RyYWludHM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERhdGF0eXBlIGZvcm1hdCBvcHRpb25zIG9mIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFRvIHNwZWNpZnkgZmlsdGVyIGZpZWxkIGlzIG1hbmRhdG9yeSBmb3IgZmlsdGVyaW5nLlxuXHQgKi9cblx0cmVxdWlyZWQhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBWYWxpZCBvcGVyYXRvcnMgZm9yIHRoZSBmaWx0ZXIgZmllbGQuXG5cdCAqL1xuXHRvcGVyYXRvcnM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFZpc3VhbCBGaWx0ZXIgaWQgdG8gYmUgdXNlZC5cblx0ICovXG5cdHZmSWQ/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFZpc3VhbCBGaWx0ZXIgYnVpbGRpbmcgYmxvY2sgaWQgdG8gYmUgdXNlZC5cblx0ICovXG5cdHZmUnVudGltZUlkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBWaXN1YWwgRmlsdGVyIGlzIGV4cGVjdGVkLlxuXHQgKi9cblx0dmZFbmFibGVkITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogUHJvcGVydHkgdXNlZCBpcyBmaWx0ZXJhYmxlXG5cdCAqL1xuXHRpc0ZpbHRlcmFibGUhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSBmb3IgcGxhY2Vob2xkZXJcblx0ICovXG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQcm9wZXJ0eSB0byBob2xkIHByb21pc2UgZm9yIGRpc3BsYXlcblx0ICovXG5cdGRpc3BsYXk/OiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG5cblx0cHJvcGVydHlFeHRlcm5hbElkPzogQ29udGV4dDtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZpbHRlckZpZWxkQmxvY2s+LCBjb25maWd1cmF0aW9uOiB1bmtub3duLCBzZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BzLCBjb25maWd1cmF0aW9uLCBzZXR0aW5ncyk7XG5cblx0XHRjb25zdCBwcm9wZXJ0eUNvbnZlcnRlZCA9IE1ldGFNb2RlbENvbnZlcnRlci5jb252ZXJ0TWV0YU1vZGVsQ29udGV4dCh0aGlzLnByb3BlcnR5KSBhcyBQcm9wZXJ0eTtcblxuXHRcdGNvbnN0IGV4dGVybmFsSWRQcm9wZXJ0eVBhdGggPSBnZXRBc3NvY2lhdGVkRXh0ZXJuYWxJZFByb3BlcnR5UGF0aChwcm9wZXJ0eUNvbnZlcnRlZCkgYXMgc3RyaW5nO1xuXHRcdGlmIChleHRlcm5hbElkUHJvcGVydHlQYXRoKSB7XG5cdFx0XHR0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZCA9IHRoaXMucHJvcGVydHlcblx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0LmNyZWF0ZUJpbmRpbmdDb250ZXh0KHRoaXMucHJvcGVydHkuZ2V0UGF0aCgpLnJlcGxhY2UocHJvcGVydHlDb252ZXJ0ZWQubmFtZSwgZXh0ZXJuYWxJZFByb3BlcnR5UGF0aCksIHRoaXMucHJvcGVydHkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb3BlcnR5Q29udmVydGVkRXh0ZXJuYWxJZCA9IHRoaXMucHJvcGVydHlFeHRlcm5hbElkXG5cdFx0XHQ/IChNZXRhTW9kZWxDb252ZXJ0ZXIuY29udmVydE1ldGFNb2RlbENvbnRleHQodGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQpIGFzIFByb3BlcnR5KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cblx0XHRjb25zdCBkYXRhTW9kZWxQYXRoID0gTWV0YU1vZGVsQ29udmVydGVyLmdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0czxQcm9wZXJ0eT4odGhpcy5wcm9wZXJ0eSwgdGhpcy5jb250ZXh0UGF0aCk7XG5cblx0XHQvLyBQcm9wZXJ0eSBzZXR0aW5nc1xuXHRcdGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5Q29udmVydGVkLm5hbWUsXG5cdFx0XHRvcmlnaW5hbFByb3BlcnR5TmFtZSA9IHByb3BlcnR5Q29udmVydGVkLm5hbWUsXG5cdFx0XHRmaXhlZFZhbHVlcyA9XG5cdFx0XHRcdCEhcHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMgfHxcblx0XHRcdFx0ISFwcm9wZXJ0eUNvbnZlcnRlZC5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM7XG5cblx0XHR0aGlzLmNvbnRyb2xJZCA9IHRoaXMuaWRQcmVmaXggJiYgZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIG9yaWdpbmFsUHJvcGVydHlOYW1lXSk7XG5cdFx0dGhpcy5zb3VyY2VQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxQYXRoKTtcblxuXHRcdHR5cGUgUHJvcGVydHlBbm5vdGF0aW9uc19Db21tb25fZXh0ZW5kZWQgPSBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbiAmIHsgRG9jdW1lbnRhdGlvblJlZj86IHN0cmluZyB9O1xuXHRcdHRoaXMuZG9jdW1lbnRSZWZUZXh0ID0gKFxuXHRcdFx0ZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3Q/LmFubm90YXRpb25zLkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbl9leHRlbmRlZFxuXHRcdCk/LkRvY3VtZW50YXRpb25SZWY/LnRvU3RyaW5nKCk7XG5cblx0XHR0aGlzLmRhdGFUeXBlID0gZ2V0RGF0YVR5cGUocHJvcGVydHlDb252ZXJ0ZWRFeHRlcm5hbElkIHx8IHByb3BlcnR5Q29udmVydGVkKTsgLy8gZGF0YSB0eXBlIGZvciBMUi1GaWx0ZXJCYXIgY29uZGl0aW9uIG9mIHRoZSB2YWx1ZSBoZWxwXG5cdFx0Y29uc3QgbGFiZWxUZXJtID0gcHJvcGVydHlDb252ZXJ0ZWQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsO1xuXHRcdGNvbnN0IGxhYmVsRXhwcmVzc2lvbiA9IGxhYmVsVGVybT8udG9TdHJpbmcoKSA/PyBjb25zdGFudChwcm9wZXJ0eU5hbWUpO1xuXHRcdHRoaXMubGFiZWwgPSBjb21waWxlRXhwcmVzc2lvbihsYWJlbEV4cHJlc3Npb24pIHx8IHByb3BlcnR5TmFtZTtcblx0XHR0aGlzLmNvbmRpdGlvbnNCaW5kaW5nID0gZ2V0Q29uZGl0aW9uc0JpbmRpbmcoZGF0YU1vZGVsUGF0aCkgfHwgXCJcIjtcblx0XHR0aGlzLnBsYWNlaG9sZGVyID0gZ2V0UGxhY2Vob2xkZXIocHJvcGVydHlDb252ZXJ0ZWQpO1xuXHRcdHRoaXMucHJvcGVydHlLZXkgPSBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKGRhdGFNb2RlbFBhdGgsIGZhbHNlLCB0cnVlKSB8fCBwcm9wZXJ0eU5hbWU7XG5cdFx0Ly8gVmlzdWFsIEZpbHRlciBzZXR0aW5nc1xuXHRcdHRoaXMudmZFbmFibGVkID0gISF0aGlzLnZpc3VhbEZpbHRlciAmJiAhKHRoaXMuaWRQcmVmaXggJiYgdGhpcy5pZFByZWZpeC5pbmNsdWRlcyhcIkFkYXB0YXRpb25cIikpO1xuXHRcdHRoaXMudmZJZCA9IHRoaXMudmZFbmFibGVkID8gZ2VuZXJhdGUoW3RoaXMuaWRQcmVmaXgsIHByb3BlcnR5TmFtZSwgXCJWaXN1YWxGaWx0ZXJcIl0pIDogdW5kZWZpbmVkO1xuXHRcdHRoaXMudmZSdW50aW1lSWQgPSB0aGlzLnZmRW5hYmxlZCA/IGdlbmVyYXRlKFt0aGlzLmlkUHJlZml4LCBwcm9wZXJ0eU5hbWUsIFwiVmlzdWFsRmlsdGVyQ29udGFpbmVyXCJdKSA6IHVuZGVmaW5lZDtcblxuXHRcdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuXHRcdC8vIFRPRE86IG5lZWQgdG8gY2hhbmdlIG9wZXJhdGlvbnMgZnJvbSBNZXRhTW9kZWwgdG8gQ29udmVydGVycy5cblx0XHQvLyBUaGlzIG1haW5seSBpbmNsdWRlZCBjaGFuZ2luZyBjaGFuZ2luZyBnZXRGaWx0ZXJSZXN0cmljdGlvbnMgb3BlcmF0aW9ucyBmcm9tIG1ldGFNb2RlbCB0byBjb252ZXJ0ZXJzXG5cdFx0Y29uc3QgcHJvcGVydHlDb250ZXh0ID0gdGhpcy5wcm9wZXJ0eSxcblx0XHRcdG1vZGVsOiBNZXRhTW9kZWwgPSBwcm9wZXJ0eUNvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRcdHZoUHJvcGVydHlQYXRoOiBzdHJpbmcgPSBGaWVsZEhlbHBlci52YWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkKHByb3BlcnR5Q29udGV4dCksXG5cdFx0XHRmaWx0ZXJhYmxlID0gQ29tbW9uSGVscGVyLmlzUHJvcGVydHlGaWx0ZXJhYmxlKHByb3BlcnR5Q29udGV4dCksXG5cdFx0XHRwcm9wZXJ0eU9iamVjdCA9IHByb3BlcnR5Q29udGV4dC5nZXRPYmplY3QoKSxcblx0XHRcdHByb3BlcnR5SW50ZXJmYWNlID0geyBjb250ZXh0OiBwcm9wZXJ0eUNvbnRleHQgfSBhcyBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2U7XG5cblx0XHR0aGlzLmRpc3BsYXkgPSBnZXRGaWx0ZXJGaWVsZERpc3BsYXlGb3JtYXQoZGF0YU1vZGVsUGF0aCwgcHJvcGVydHlDb252ZXJ0ZWQsIHByb3BlcnR5SW50ZXJmYWNlKTtcblx0XHR0aGlzLmlzRmlsdGVyYWJsZSA9ICEoZmlsdGVyYWJsZSA9PT0gZmFsc2UgfHwgZmlsdGVyYWJsZSA9PT0gXCJmYWxzZVwiKTtcblx0XHR0aGlzLm1heENvbmRpdGlvbnMgPSBnZXRNYXhDb25kaXRpb25zKGRhdGFNb2RlbFBhdGgpO1xuXHRcdHRoaXMuZGF0YVR5cGVDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5kYXRhVHlwZUZvcm1hdE9wdGlvbnMgPSBmb3JtYXRPcHRpb25zKHByb3BlcnR5T2JqZWN0LCBwcm9wZXJ0eUludGVyZmFjZSk7XG5cdFx0dGhpcy5yZXF1aXJlZCA9IGlzUmVxdWlyZWRJbkZpbHRlcihwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMub3BlcmF0b3JzID0gRmllbGRIZWxwZXIub3BlcmF0b3JzKFxuXHRcdFx0cHJvcGVydHlDb250ZXh0LFxuXHRcdFx0cHJvcGVydHlPYmplY3QsXG5cdFx0XHR0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlLFxuXHRcdFx0dGhpcy5zZXR0aW5ncyB8fCBcIlwiLFxuXHRcdFx0dGhpcy5jb250ZXh0UGF0aC5nZXRQYXRoKClcblx0XHQpO1xuXHRcdGlmICh0aGlzLm9wZXJhdG9ycykge1xuXHRcdFx0Ly8gRXh0ZW5kZWQgb3BlcmF0b3JzIGFyZSBub3QgYWRkZWQgYnkgZGVmYXVsdC5cblx0XHRcdC8vIFdlIGFkZCB0aGVtIHRvIE1EQyBmaWx0ZXIgZW52aXJvbm1lbnQuXG5cdFx0XHRFeHRlbmRlZFNlbWFudGljRGF0ZU9wZXJhdG9ycy5hZGRFeHRlbmRlZEZpbHRlck9wZXJhdG9ycyh0aGlzLm9wZXJhdG9ycy5zcGxpdChcIixcIikpO1xuXHRcdH1cblx0XHQvLyBWYWx1ZSBIZWxwIHNldHRpbmdzXG5cdFx0Ly8gVE9ETzogVGhpcyBuZWVkcyB0byBiZSB1cGRhdGVkIHdoZW4gVkggbWFjcm8gaXMgY29udmVydGVkIHRvIDIuMFxuXHRcdGNvbnN0IHZoUHJvcGVydHkgPSBtb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh2aFByb3BlcnR5UGF0aCkgYXMgQ29udGV4dDtcblx0XHRjb25zdCB2aFByb3BlcnR5T2JqZWN0ID0gdmhQcm9wZXJ0eS5nZXRPYmplY3QoKSBhcyBNZXRhTW9kZWxDb250ZXh0LFxuXHRcdFx0dmhQcm9wZXJ0eUludGVyZmFjZSA9IHsgY29udGV4dDogdmhQcm9wZXJ0eSB9LFxuXHRcdFx0cmVsYXRpdmVWaFByb3BlcnR5UGF0aCA9IGdldFJlbGF0aXZlUHJvcGVydHlQYXRoKHZoUHJvcGVydHlPYmplY3QsIHZoUHJvcGVydHlJbnRlcmZhY2UpLFxuXHRcdFx0cmVsYXRpdmVQcm9wZXJ0eVBhdGggPSBnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aChwcm9wZXJ0eU9iamVjdCwgcHJvcGVydHlJbnRlcmZhY2UpO1xuXHRcdHRoaXMudmFsdWVIZWxwUHJvcGVydHkgPSBGaWVsZEhlbHBlci5nZXRWYWx1ZUhlbHBQcm9wZXJ0eUZvckZpbHRlckZpZWxkKFxuXHRcdFx0cHJvcGVydHlDb250ZXh0LFxuXHRcdFx0cHJvcGVydHlPYmplY3QsXG5cdFx0XHRwcm9wZXJ0eU9iamVjdC4kVHlwZSxcblx0XHRcdHRoaXMudmhJZFByZWZpeCxcblx0XHRcdGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5uYW1lLFxuXHRcdFx0cmVsYXRpdmVQcm9wZXJ0eVBhdGgsXG5cdFx0XHRyZWxhdGl2ZVZoUHJvcGVydHlQYXRoLFxuXHRcdFx0Zml4ZWRWYWx1ZXMsXG5cdFx0XHR0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlXG5cdFx0KTtcblxuXHRcdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuXHR9XG5cblx0Z2V0VmlzdWFsRmlsdGVyQ29udGVudCgpOiBzdHJpbmcge1xuXHRcdGxldCB2aXN1YWxGaWx0ZXJPYmplY3QgPSB0aGlzLnZpc3VhbEZpbHRlcixcblx0XHRcdHZmWE1MID0gXCJcIjtcblx0XHRpZiAoIXRoaXMudmZFbmFibGVkIHx8ICF2aXN1YWxGaWx0ZXJPYmplY3QpIHtcblx0XHRcdHJldHVybiB2ZlhNTDtcblx0XHR9XG5cdFx0aWYgKCh2aXN1YWxGaWx0ZXJPYmplY3QgYXMgQ29udGV4dCk/LmlzQT8uKFNBUF9VSV9NT0RFTF9DT05URVhUKSkge1xuXHRcdFx0dmlzdWFsRmlsdGVyT2JqZWN0ID0gKHZpc3VhbEZpbHRlck9iamVjdCBhcyBDb250ZXh0KS5nZXRPYmplY3QoKSBhcyBWaXN1YWxGaWx0ZXJzO1xuXHRcdH1cblxuXHRcdGNvbnN0IHtcblx0XHRcdGNvbnRleHRQYXRoLFxuXHRcdFx0cHJlc2VudGF0aW9uQW5ub3RhdGlvbixcblx0XHRcdG91dFBhcmFtZXRlcixcblx0XHRcdGluUGFyYW1ldGVycyxcblx0XHRcdHZhbHVlbGlzdFByb3BlcnR5LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQsXG5cdFx0XHRyZXF1aXJlZCxcblx0XHRcdHJlcXVpcmVkUHJvcGVydGllcyA9IFtdLFxuXHRcdFx0c2hvd092ZXJsYXlJbml0aWFsbHksXG5cdFx0XHRyZW5kZXJMaW5lQ2hhcnQsXG5cdFx0XHRpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyxcblx0XHRcdGluaXRpYWxDaGFydEJpbmRpbmdFbmFibGVkXG5cdFx0fSA9IHZpc3VhbEZpbHRlck9iamVjdCBhcyBWaXN1YWxGaWx0ZXJzO1xuXHRcdHZmWE1MID0geG1sYFxuXHRcdFx0XHQ8dmlzdWFsRmlsdGVyOlZpc3VhbEZpbHRlclxuXHRcdFx0XHQgICAgeG1sbnM6dmlzdWFsRmlsdGVyPSBcInNhcC5mZS5tYWNyb3MudmlzdWFsZmlsdGVyc1wiXG5cdFx0XHRcdFx0aWQ9XCIke3RoaXMudmZSdW50aW1lSWR9XCJcblx0XHRcdFx0XHRfY29udGVudElkPVwiJHt0aGlzLnZmSWR9XCJcblx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIiR7Y29udGV4dFBhdGh9XCJcblx0XHRcdFx0XHRtZXRhUGF0aD1cIiR7cHJlc2VudGF0aW9uQW5ub3RhdGlvbn1cIlxuXHRcdFx0XHRcdG91dFBhcmFtZXRlcj1cIiR7b3V0UGFyYW1ldGVyfVwiXG5cdFx0XHRcdFx0aW5QYXJhbWV0ZXJzPVwiJHtDb21tb25IZWxwZXIuc3RyaW5naWZ5Q3VzdG9tRGF0YShpblBhcmFtZXRlcnMpfVwiXG5cdFx0XHRcdFx0dmFsdWVsaXN0UHJvcGVydHk9XCIke3ZhbHVlbGlzdFByb3BlcnR5fVwiXG5cdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb249XCIke3NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9ufVwiXG5cdFx0XHRcdFx0bXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkPVwiJHttdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWR9XCJcblx0XHRcdFx0XHRyZXF1aXJlZD1cIiR7cmVxdWlyZWR9XCJcblx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXM9XCIke0NvbW1vbkhlbHBlci5zdHJpbmdpZnlDdXN0b21EYXRhKHJlcXVpcmVkUHJvcGVydGllcyl9XCJcblx0XHRcdFx0XHRzaG93T3ZlcmxheUluaXRpYWxseT1cIiR7c2hvd092ZXJsYXlJbml0aWFsbHl9XCJcblx0XHRcdFx0XHRyZW5kZXJMaW5lQ2hhcnQ9XCIke3JlbmRlckxpbmVDaGFydH1cIlxuXHRcdFx0XHRcdGlzVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzPVwiJHtpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc31cIlxuXHRcdFx0XHRcdGZpbHRlckJhckVudGl0eVR5cGU9XCIke2NvbnRleHRQYXRofVwiXG5cdFx0XHRcdFx0ZW5hYmxlQ2hhcnRCaW5kaW5nPVwiJHtpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0YDtcblxuXHRcdHJldHVybiB2ZlhNTDtcblx0fVxuXG5cdGFzeW5jIGdldFRlbXBsYXRlKCk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0bGV0IHhtbFJldCA9IGBgO1xuXHRcdGlmICh0aGlzLmlzRmlsdGVyYWJsZSkge1xuXHRcdFx0bGV0IGRpc3BsYXk7XG5cdFx0XHRjb25zdCBjb21wYW5pb25UZXh0QXZhaWxhYmxlID0gdGhpcy5kb2N1bWVudFJlZlRleHQgPT09IHVuZGVmaW5lZCB8fCBudWxsID8gZmFsc2UgOiB0cnVlO1xuXHRcdFx0Y29uc3QgZm9ybWF0dGVkUmVzdWx0OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRmb3JtYXRSZXN1bHQoW3RoaXMuZG9jdW1lbnRSZWZUZXh0XSwgXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlN0YW5kYXJkRm9ybWF0dGVyI2FzQXJyYXlcIilcblx0XHRcdCk7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZCA9XG5cdFx0XHRcdFx0dGhpcy5wcm9wZXJ0eUV4dGVybmFsSWQgJiYgTWV0YU1vZGVsQ29udmVydGVyLmdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLnByb3BlcnR5RXh0ZXJuYWxJZCwgdGhpcy5jb250ZXh0UGF0aCk7XG5cdFx0XHRcdGRpc3BsYXkgPSBkYXRhTW9kZWxQYXRoRXh0ZXJuYWxJZFxuXHRcdFx0XHRcdD8gZ2V0RGlzcGxheU1vZGUoZGF0YU1vZGVsUGF0aEV4dGVybmFsSWQgYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT4pXG5cdFx0XHRcdFx0OiBhd2FpdCB0aGlzLmRpc3BsYXk7XG5cdFx0XHR9IGNhdGNoIChlcnI6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IEZpbHRlckZpZWxkIEJ1aWxkaW5nQmxvY2sgOiBFcnJvciBmZXRjaGluZyBkaXNwbGF5IHByb3BlcnR5IGZvciAke3RoaXMuc291cmNlUGF0aH0gOiAke2Vycn1gKTtcblx0XHRcdH1cblx0XHRcdHhtbFJldCA9IHhtbGBcblx0XHRcdFx0PG1kYzpGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdHhtbG5zOm1kYz1cInNhcC51aS5tZGNcIlxuXHRcdFx0XHRcdHhtbG5zOnRlbXBsYXRlPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLnRlbXBsYXRlLzFcIlxuXHRcdFx0XHRcdHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG5cdFx0XHRcdFx0eG1sbnM6Y3VzdG9tRGF0YT1cImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIlxuXHRcdFx0XHRcdHhtbG5zOmZpZWxkaGVscD1cInNhcC51aS5jb3JlLmZpZWxkaGVscFwiXG5cdFx0XHRcdFx0Y3VzdG9tRGF0YTpzb3VyY2VQYXRoPVwiJHt0aGlzLnNvdXJjZVBhdGh9XCJcblx0XHRcdFx0XHRpZD1cIiR7dGhpcy5jb250cm9sSWR9XCJcblx0XHRcdFx0XHRkZWxlZ2F0ZT1cIntuYW1lOiAnc2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEJhc2VEZWxlZ2F0ZScsIHBheWxvYWQ6e2lzRmlsdGVyRmllbGQ6dHJ1ZX19XCJcblx0XHRcdFx0XHRwcm9wZXJ0eUtleT1cIiR7dGhpcy5wcm9wZXJ0eUtleX1cIlxuXHRcdFx0XHRcdGxhYmVsPVwiJHt0aGlzLmxhYmVsfVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCIke3RoaXMuZGF0YVR5cGV9XCJcblx0XHRcdFx0XHRkaXNwbGF5PVwiJHtkaXNwbGF5fVwiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIiR7dGhpcy5tYXhDb25kaXRpb25zfVwiXG5cdFx0XHRcdFx0dmFsdWVIZWxwPVwiJHt0aGlzLnZhbHVlSGVscFByb3BlcnR5fVwiXG5cdFx0XHRcdFx0Y29uZGl0aW9ucz1cIiR7dGhpcy5jb25kaXRpb25zQmluZGluZ31cIlxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9XCIke3RoaXMuZGF0YVR5cGVDb25zdHJhaW50c31cIlxuXHRcdFx0XHRcdGRhdGFUeXBlRm9ybWF0T3B0aW9ucz1cIiR7dGhpcy5kYXRhVHlwZUZvcm1hdE9wdGlvbnN9XCJcblx0XHRcdFx0XHRyZXF1aXJlZD1cIiR7dGhpcy5yZXF1aXJlZH1cIlxuXHRcdFx0XHRcdG9wZXJhdG9ycz1cIiR7dGhpcy5vcGVyYXRvcnN9XCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIiR7dGhpcy5wbGFjZWhvbGRlcn1cIlxuXHRcdFx0XHRcdCR7dGhpcy5hdHRyKFwiZWRpdE1vZGVcIiwgdGhpcy5lZGl0TW9kZSl9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQke1xuXHRcdFx0XHRcdFx0Y29tcGFuaW9uVGV4dEF2YWlsYWJsZVxuXHRcdFx0XHRcdFx0XHQ/IHhtbGBcblx0XHRcdFx0XHRcdDxtZGM6Y3VzdG9tRGF0YT5cblx0XHRcdFx0XHRcdFx0PGZpZWxkaGVscDpGaWVsZEhlbHBDdXN0b21EYXRhXG5cdFx0XHRcdFx0XHRcdFx0JHt0aGlzLmF0dHIoXCJ2YWx1ZVwiLCBmb3JtYXR0ZWRSZXN1bHQpfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9tZGM6Y3VzdG9tRGF0YT5cblx0XHRcdFx0XHRgXG5cdFx0XHRcdFx0XHRcdDogXCJcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQke3RoaXMudmZFbmFibGVkID8gdGhpcy5nZXRWaXN1YWxGaWx0ZXJDb250ZW50KCkgOiBcIlwifVxuXHRcdFx0XHQ8L21kYzpGaWx0ZXJGaWVsZD5cblx0XHRcdGA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHhtbFJldDtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVpBLElBaUJxQkEsZ0JBQWdCLElBQUFDLElBQUEsR0FKcENDLG1CQUFtQixDQUFDO0lBQ3BCQyxJQUFJLEVBQUUsYUFBYTtJQUNuQkMsU0FBUyxFQUFFO0VBQ1osQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FLQUMsY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxzQkFBc0I7SUFDNUJDLFFBQVEsRUFBRSxJQUFJO0lBQ2RDLFFBQVEsRUFBRTtFQUNYLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTURKLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQU1ETCxjQUFjLENBQUM7SUFDZkMsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QkUsUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFHLEtBQUEsR0FNRE4sY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxRQUFRO0lBQ2RFLFFBQVEsRUFBRTtFQUNYLENBQUMsQ0FBQyxFQUFBSSxLQUFBLEdBTURQLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsUUFBUTtJQUNkRSxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQUssS0FBQSxHQU1EUixjQUFjLENBQUM7SUFDZkMsSUFBSSxFQUFFLFNBQVM7SUFDZkUsUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFNLEtBQUEsR0FNRFQsY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxRQUFRO0lBQ2RFLFFBQVEsRUFBRTtFQUNYLENBQUMsQ0FBQyxFQUFBTyxLQUFBLEdBTURWLGNBQWMsQ0FBQztJQUNmQyxJQUFJLEVBQUUsUUFBUTtJQUNkRSxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQVIsSUFBQSxDQUFBZ0IsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxxQkFBQTtJQUdGO0FBQ0Q7QUFDQTs7SUFFQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBR0M7QUFDRDtBQUNBOztJQUdDO0FBQ0Q7QUFDQTs7SUFHQztBQUNEO0FBQ0E7O0lBS0MsU0FBQW5CLGlCQUFZb0IsS0FBcUMsRUFBRUMsYUFBc0IsRUFBRUMsUUFBbUMsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDL0dBLEtBQUEsR0FBQUoscUJBQUEsQ0FBQUssSUFBQSxPQUFNSixLQUFLLEVBQUVDLGFBQWEsRUFBRUMsUUFBUSxDQUFDO01BaEx0QztBQUNEO0FBQ0E7TUFGQ0csMEJBQUEsQ0FBQUYsS0FBQSxjQUFBRyxXQUFBLEVBQUFILEtBQUE7TUFVQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSxpQkFBQUksWUFBQSxFQUFBSixLQUFBO01BVUE7QUFDRDtBQUNBO01BRkNFLDBCQUFBLENBQUFGLEtBQUEsa0JBQUFLLFlBQUEsRUFBQUwsS0FBQTtNQVNBO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLGNBQUFNLFlBQUEsRUFBQU4sS0FBQTtNQVNBO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLGdCQUFBTyxZQUFBLEVBQUFQLEtBQUE7TUFTQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSwwQkFBQVEsWUFBQSxFQUFBUixLQUFBO01BU0E7QUFDRDtBQUNBO01BRkNFLDBCQUFBLENBQUFGLEtBQUEsY0FBQVMsWUFBQSxFQUFBVCxLQUFBO01BU0E7QUFDRDtBQUNBO01BRkNFLDBCQUFBLENBQUFGLEtBQUEsY0FBQVUsWUFBQSxFQUFBVixLQUFBO01BaUhDLE1BQU1XLGlCQUFpQixHQUFHQyxrQkFBa0IsQ0FBQ0MsdUJBQXVCLENBQUNiLEtBQUEsQ0FBS2MsUUFBUSxDQUFhO01BRS9GLE1BQU1DLHNCQUFzQixHQUFHQyxtQ0FBbUMsQ0FBQ0wsaUJBQWlCLENBQVc7TUFDL0YsSUFBSUksc0JBQXNCLEVBQUU7UUFDM0JmLEtBQUEsQ0FBS2lCLGtCQUFrQixHQUFHakIsS0FBQSxDQUFLYyxRQUFRLENBQ3JDSSxRQUFRLENBQUMsQ0FBQyxDQUNWQyxvQkFBb0IsQ0FBQ25CLEtBQUEsQ0FBS2MsUUFBUSxDQUFDTSxPQUFPLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUNWLGlCQUFpQixDQUFDL0IsSUFBSSxFQUFFbUMsc0JBQXNCLENBQUMsRUFBRWYsS0FBQSxDQUFLYyxRQUFRLENBQUM7TUFDdkg7TUFFQSxNQUFNUSwyQkFBMkIsR0FBR3RCLEtBQUEsQ0FBS2lCLGtCQUFrQixHQUN2REwsa0JBQWtCLENBQUNDLHVCQUF1QixDQUFDYixLQUFBLENBQUtpQixrQkFBa0IsQ0FBQyxHQUNwRU0sU0FBUztNQUVaLE1BQU1DLGFBQWEsR0FBR1osa0JBQWtCLENBQUNhLDJCQUEyQixDQUFXekIsS0FBQSxDQUFLYyxRQUFRLEVBQUVkLEtBQUEsQ0FBSzBCLFdBQVcsQ0FBQzs7TUFFL0c7TUFDQSxNQUFNQyxZQUFZLEdBQUdoQixpQkFBaUIsQ0FBQy9CLElBQUk7UUFDMUNnRCxvQkFBb0IsR0FBR2pCLGlCQUFpQixDQUFDL0IsSUFBSTtRQUM3Q2lELFdBQVcsR0FDVixDQUFDLENBQUNQLDJCQUEyQixFQUFFUSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsd0JBQXdCLElBQzVFLENBQUMsQ0FBQ3JCLGlCQUFpQixDQUFDbUIsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLHdCQUF3QjtNQUVuRWhDLEtBQUEsQ0FBS2lDLFNBQVMsR0FBR2pDLEtBQUEsQ0FBS2tDLFFBQVEsSUFBSUMsUUFBUSxDQUFDLENBQUNuQyxLQUFBLENBQUtrQyxRQUFRLEVBQUVOLG9CQUFvQixDQUFDLENBQUM7TUFDakY1QixLQUFBLENBQUtvQyxVQUFVLEdBQUdDLG1CQUFtQixDQUFDYixhQUFhLENBQUM7TUFHcER4QixLQUFBLENBQUtzQyxlQUFlLEdBQ25CZCxhQUFhLENBQUNlLFlBQVksRUFBRVQsV0FBVyxDQUFDQyxNQUFNLEVBQzVDUyxnQkFBZ0IsRUFBRUMsUUFBUSxDQUFDLENBQUM7TUFFL0J6QyxLQUFBLENBQUswQyxRQUFRLEdBQUdDLFdBQVcsQ0FBQ3JCLDJCQUEyQixJQUFJWCxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7TUFDL0UsTUFBTWlDLFNBQVMsR0FBR2pDLGlCQUFpQixFQUFFbUIsV0FBVyxFQUFFQyxNQUFNLEVBQUVjLEtBQUs7TUFDL0QsTUFBTUMsZUFBZSxHQUFHRixTQUFTLEVBQUVILFFBQVEsQ0FBQyxDQUFDLElBQUlNLFFBQVEsQ0FBQ3BCLFlBQVksQ0FBQztNQUN2RTNCLEtBQUEsQ0FBS2dELEtBQUssR0FBR0MsaUJBQWlCLENBQUNILGVBQWUsQ0FBQyxJQUFJbkIsWUFBWTtNQUMvRDNCLEtBQUEsQ0FBS2tELGlCQUFpQixHQUFHQyxvQkFBb0IsQ0FBQzNCLGFBQWEsQ0FBQyxJQUFJLEVBQUU7TUFDbEV4QixLQUFBLENBQUtvRCxXQUFXLEdBQUdDLGNBQWMsQ0FBQzFDLGlCQUFpQixDQUFDO01BQ3BEWCxLQUFBLENBQUtzRCxXQUFXLEdBQUdDLGtDQUFrQyxDQUFDL0IsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSUcsWUFBWTtNQUNqRztNQUNBM0IsS0FBQSxDQUFLd0QsU0FBUyxHQUFHLENBQUMsQ0FBQ3hELEtBQUEsQ0FBS3lELFlBQVksSUFBSSxFQUFFekQsS0FBQSxDQUFLa0MsUUFBUSxJQUFJbEMsS0FBQSxDQUFLa0MsUUFBUSxDQUFDd0IsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO01BQ2hHMUQsS0FBQSxDQUFLMkQsSUFBSSxHQUFHM0QsS0FBQSxDQUFLd0QsU0FBUyxHQUFHckIsUUFBUSxDQUFDLENBQUNuQyxLQUFBLENBQUtrQyxRQUFRLEVBQUVQLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyxHQUFHSixTQUFTO01BQ2hHdkIsS0FBQSxDQUFLNEQsV0FBVyxHQUFHNUQsS0FBQSxDQUFLd0QsU0FBUyxHQUFHckIsUUFBUSxDQUFDLENBQUNuQyxLQUFBLENBQUtrQyxRQUFRLEVBQUVQLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEdBQUdKLFNBQVM7O01BRWhIO01BQ0E7TUFDQTtNQUNBLE1BQU1zQyxlQUFlLEdBQUc3RCxLQUFBLENBQUtjLFFBQVE7UUFDcENnRCxLQUFnQixHQUFHRCxlQUFlLENBQUMzQyxRQUFRLENBQUMsQ0FBQztRQUM3QzZDLGNBQXNCLEdBQUdDLFdBQVcsQ0FBQ0MsK0JBQStCLENBQUNKLGVBQWUsQ0FBQztRQUNyRkssVUFBVSxHQUFHQyxZQUFZLENBQUNDLG9CQUFvQixDQUFDUCxlQUFlLENBQUM7UUFDL0RRLGNBQWMsR0FBR1IsZUFBZSxDQUFDUyxTQUFTLENBQUMsQ0FBQztRQUM1Q0MsaUJBQWlCLEdBQUc7VUFBRUMsT0FBTyxFQUFFWDtRQUFnQixDQUFnQztNQUVoRjdELEtBQUEsQ0FBS3lFLE9BQU8sR0FBR0MsMkJBQTJCLENBQUNsRCxhQUFhLEVBQUViLGlCQUFpQixFQUFFNEQsaUJBQWlCLENBQUM7TUFDL0Z2RSxLQUFBLENBQUsyRSxZQUFZLEdBQUcsRUFBRVQsVUFBVSxLQUFLLEtBQUssSUFBSUEsVUFBVSxLQUFLLE9BQU8sQ0FBQztNQUNyRWxFLEtBQUEsQ0FBSzRFLGFBQWEsR0FBR0MsZ0JBQWdCLENBQUNyRCxhQUFhLENBQUM7TUFDcER4QixLQUFBLENBQUs4RSxtQkFBbUIsR0FBR0MsV0FBVyxDQUFDVixjQUFjLEVBQUVFLGlCQUFpQixDQUFDO01BQ3pFdkUsS0FBQSxDQUFLZ0YscUJBQXFCLEdBQUdDLGFBQWEsQ0FBQ1osY0FBYyxFQUFFRSxpQkFBaUIsQ0FBQztNQUM3RXZFLEtBQUEsQ0FBS2YsUUFBUSxHQUFHaUcsa0JBQWtCLENBQUNiLGNBQWMsRUFBRUUsaUJBQWlCLENBQUM7TUFDckV2RSxLQUFBLENBQUttRixTQUFTLEdBQUduQixXQUFXLENBQUNtQixTQUFTLENBQ3JDdEIsZUFBZSxFQUNmUSxjQUFjLEVBQ2RyRSxLQUFBLENBQUtvRixvQkFBb0IsRUFDekJwRixLQUFBLENBQUtELFFBQVEsSUFBSSxFQUFFLEVBQ25CQyxLQUFBLENBQUswQixXQUFXLENBQUNOLE9BQU8sQ0FBQyxDQUMxQixDQUFDO01BQ0QsSUFBSXBCLEtBQUEsQ0FBS21GLFNBQVMsRUFBRTtRQUNuQjtRQUNBO1FBQ0FFLDZCQUE2QixDQUFDQywwQkFBMEIsQ0FBQ3RGLEtBQUEsQ0FBS21GLFNBQVMsQ0FBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQ3BGO01BQ0E7TUFDQTtNQUNBLE1BQU1DLFVBQVUsR0FBRzFCLEtBQUssQ0FBQzNDLG9CQUFvQixDQUFDNEMsY0FBYyxDQUFZO01BQ3hFLE1BQU0wQixnQkFBZ0IsR0FBR0QsVUFBVSxDQUFDbEIsU0FBUyxDQUFDLENBQXFCO1FBQ2xFb0IsbUJBQW1CLEdBQUc7VUFBRWxCLE9BQU8sRUFBRWdCO1FBQVcsQ0FBQztRQUM3Q0csc0JBQXNCLEdBQUdDLHVCQUF1QixDQUFDSCxnQkFBZ0IsRUFBRUMsbUJBQW1CLENBQUM7UUFDdkZHLG9CQUFvQixHQUFHRCx1QkFBdUIsQ0FBQ3ZCLGNBQWMsRUFBRUUsaUJBQWlCLENBQUM7TUFDbEZ2RSxLQUFBLENBQUs4RixpQkFBaUIsR0FBRzlCLFdBQVcsQ0FBQytCLGtDQUFrQyxDQUN0RWxDLGVBQWUsRUFDZlEsY0FBYyxFQUNkQSxjQUFjLENBQUMyQixLQUFLLEVBQ3BCaEcsS0FBQSxDQUFLaUcsVUFBVSxFQUNmekUsYUFBYSxDQUFDMEUsZ0JBQWdCLENBQUN0SCxJQUFJLEVBQ25DaUgsb0JBQW9CLEVBQ3BCRixzQkFBc0IsRUFDdEI5RCxXQUFXLEVBQ1g3QixLQUFBLENBQUtvRixvQkFDTixDQUFDOztNQUVEO01BQUEsT0FBQXBGLEtBQUE7SUFDRDtJQUFDbUcsUUFBQSxHQUFBMUgsZ0JBQUE7SUFBQTJILGNBQUEsQ0FBQTNILGdCQUFBLEVBQUFtQixxQkFBQTtJQUFBLElBQUF5RyxNQUFBLEdBQUE1SCxnQkFBQSxDQUFBNkgsU0FBQTtJQUFBRCxNQUFBLENBRURFLHNCQUFzQixHQUF0QixTQUFBQSxzQkFBc0JBLENBQUEsRUFBVztNQUNoQyxJQUFJQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMvQyxZQUFZO1FBQ3pDZ0QsS0FBSyxHQUFHLEVBQUU7TUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDakQsU0FBUyxJQUFJLENBQUNnRCxrQkFBa0IsRUFBRTtRQUMzQyxPQUFPQyxLQUFLO01BQ2I7TUFDQSxJQUFLRCxrQkFBa0IsRUFBY0UsR0FBRyxHQUFHQyxvQkFBb0IsQ0FBQyxFQUFFO1FBQ2pFSCxrQkFBa0IsR0FBSUEsa0JBQWtCLENBQWFsQyxTQUFTLENBQUMsQ0FBa0I7TUFDbEY7TUFFQSxNQUFNO1FBQ0w1QyxXQUFXO1FBQ1hrRixzQkFBc0I7UUFDdEJDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxpQkFBaUI7UUFDakJDLDBCQUEwQjtRQUMxQkMsd0JBQXdCO1FBQ3hCaEksUUFBUTtRQUNSaUksa0JBQWtCLEdBQUcsRUFBRTtRQUN2QkMsb0JBQW9CO1FBQ3BCQyxlQUFlO1FBQ2ZDLDBCQUEwQjtRQUMxQkM7TUFDRCxDQUFDLEdBQUdkLGtCQUFtQztNQUN2Q0MsS0FBSyxHQUFHYyxHQUFHO0FBQ2I7QUFDQTtBQUNBLFdBQVcsSUFBSSxDQUFDM0QsV0FBVztBQUMzQixtQkFBbUIsSUFBSSxDQUFDRCxJQUFJO0FBQzVCLG9CQUFvQmpDLFdBQVc7QUFDL0IsaUJBQWlCa0Ysc0JBQXNCO0FBQ3ZDLHFCQUFxQkMsWUFBWTtBQUNqQyxxQkFBcUIxQyxZQUFZLENBQUNxRCxtQkFBbUIsQ0FBQ1YsWUFBWSxDQUFDO0FBQ25FLDBCQUEwQkMsaUJBQWlCO0FBQzNDLG1DQUFtQ0MsMEJBQTBCO0FBQzdELGlDQUFpQ0Msd0JBQXdCO0FBQ3pELGlCQUFpQmhJLFFBQVE7QUFDekIsMkJBQTJCa0YsWUFBWSxDQUFDcUQsbUJBQW1CLENBQUNOLGtCQUFrQixDQUFDO0FBQy9FLDZCQUE2QkMsb0JBQW9CO0FBQ2pELHdCQUF3QkMsZUFBZTtBQUN2QyxtQ0FBbUNDLDBCQUEwQjtBQUM3RCw0QkFBNEIzRixXQUFXO0FBQ3ZDLDJCQUEyQjRGLDBCQUEwQjtBQUNyRDtBQUNBLElBQUk7TUFFRixPQUFPYixLQUFLO0lBQ2IsQ0FBQztJQUFBSixNQUFBLENBRUtvQixXQUFXLEdBQWpCLGVBQU1BLFdBQVdBLENBQUEsRUFBb0I7TUFDcEMsSUFBSUMsTUFBTSxHQUFHLEVBQUU7TUFDZixJQUFJLElBQUksQ0FBQy9DLFlBQVksRUFBRTtRQUN0QixJQUFJRixPQUFPO1FBQ1gsTUFBTWtELHNCQUFzQixHQUFHLElBQUksQ0FBQ3JGLGVBQWUsS0FBS2YsU0FBUyxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSTtRQUN4RixNQUFNcUcsZUFBaUQsR0FBRzNFLGlCQUFpQixDQUMxRTRFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQ3ZGLGVBQWUsQ0FBQyxFQUFFLGtEQUFrRCxDQUN4RixDQUFDO1FBQ0QsSUFBSTtVQUNILE1BQU13Rix1QkFBdUIsR0FDNUIsSUFBSSxDQUFDN0csa0JBQWtCLElBQUlMLGtCQUFrQixDQUFDYSwyQkFBMkIsQ0FBQyxJQUFJLENBQUNSLGtCQUFrQixFQUFFLElBQUksQ0FBQ1MsV0FBVyxDQUFDO1VBQ3JIK0MsT0FBTyxHQUFHcUQsdUJBQXVCLEdBQzlCQyxjQUFjLENBQUNELHVCQUF3RCxDQUFDLEdBQ3hFLE1BQU0sSUFBSSxDQUFDckQsT0FBTztRQUN0QixDQUFDLENBQUMsT0FBT3VELEdBQVksRUFBRTtVQUN0QkMsR0FBRyxDQUFDQyxLQUFLLENBQUMsd0VBQXdFLElBQUksQ0FBQzlGLFVBQVUsTUFBTTRGLEdBQUcsRUFBRSxDQUFDO1FBQzlHO1FBQ0FOLE1BQU0sR0FBR0gsR0FBRztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixJQUFJLENBQUNuRixVQUFVO0FBQzdDLFdBQVcsSUFBSSxDQUFDSCxTQUFTO0FBQ3pCO0FBQ0Esb0JBQW9CLElBQUksQ0FBQ3FCLFdBQVc7QUFDcEMsY0FBYyxJQUFJLENBQUNOLEtBQUs7QUFDeEIsaUJBQWlCLElBQUksQ0FBQ04sUUFBUTtBQUM5QixnQkFBZ0IrQixPQUFPO0FBQ3ZCLHNCQUFzQixJQUFJLENBQUNHLGFBQWE7QUFDeEMsa0JBQWtCLElBQUksQ0FBQ2tCLGlCQUFpQjtBQUN4QyxtQkFBbUIsSUFBSSxDQUFDNUMsaUJBQWlCO0FBQ3pDLDRCQUE0QixJQUFJLENBQUM0QixtQkFBbUI7QUFDcEQsOEJBQThCLElBQUksQ0FBQ0UscUJBQXFCO0FBQ3hELGlCQUFpQixJQUFJLENBQUMvRixRQUFRO0FBQzlCLGtCQUFrQixJQUFJLENBQUNrRyxTQUFTO0FBQ2hDLG9CQUFvQixJQUFJLENBQUMvQixXQUFXO0FBQ3BDLE9BQU8sSUFBSSxDQUFDK0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUNDLFFBQVEsQ0FBQztBQUMzQztBQUNBLE9BQ01ULHNCQUFzQixHQUNuQkosR0FBRztBQUNaO0FBQ0E7QUFDQSxVQUFVLElBQUksQ0FBQ1ksSUFBSSxDQUFDLE9BQU8sRUFBRVAsZUFBZSxDQUFDO0FBQzdDO0FBQ0E7QUFDQSxNQUFNLEdBQ0csRUFBRTtBQUNYLE9BQ08sSUFBSSxDQUFDcEUsU0FBUyxHQUFHLElBQUksQ0FBQytDLHNCQUFzQixDQUFDLENBQUMsR0FBRyxFQUFFO0FBQzFEO0FBQ0EsSUFBSTtNQUNGO01BRUEsT0FBT21CLE1BQU07SUFDZCxDQUFDO0lBQUEsT0FBQWpKLGdCQUFBO0VBQUEsRUEzWDRDNEosMkJBQTJCLEdBQUFsSSxXQUFBLEdBQUFtSSx5QkFBQSxDQUFBM0ksT0FBQSxDQUFBMkcsU0FBQSxlQUFBeEgsS0FBQTtJQUFBeUosWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF0SSxZQUFBLEdBQUFrSSx5QkFBQSxDQUFBM0ksT0FBQSxDQUFBMkcsU0FBQSxrQkFBQW5ILEtBQUE7SUFBQW9KLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBckksWUFBQSxHQUFBaUkseUJBQUEsQ0FBQTNJLE9BQUEsQ0FBQTJHLFNBQUEsbUJBQUFsSCxLQUFBO0lBQUFtSixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXBJLFlBQUEsR0FBQWdJLHlCQUFBLENBQUEzSSxPQUFBLENBQUEyRyxTQUFBLGVBQUFqSCxLQUFBO0lBQUFrSixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQXFDN0QsYUFBYTtJQUFBO0VBQUEsSUFBQW5JLFlBQUEsR0FBQStILHlCQUFBLENBQUEzSSxPQUFBLENBQUEyRyxTQUFBLGlCQUFBaEgsS0FBQTtJQUFBaUosWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0FTWCxzQkFBc0I7SUFBQTtFQUFBLElBQUFsSSxZQUFBLEdBQUE4SCx5QkFBQSxDQUFBM0ksT0FBQSxDQUFBMkcsU0FBQSwyQkFBQS9HLEtBQUE7SUFBQWdKLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BU1osSUFBSTtJQUFBO0VBQUEsSUFBQWpJLFlBQUEsR0FBQTZILHlCQUFBLENBQUEzSSxPQUFBLENBQUEyRyxTQUFBLGVBQUE5RyxLQUFBO0lBQUErSSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQVNoQixFQUFFO0lBQUE7RUFBQSxJQUFBaEksWUFBQSxHQUFBNEgseUJBQUEsQ0FBQTNJLE9BQUEsQ0FBQTJHLFNBQUEsZUFBQTdHLEtBQUE7SUFBQThJLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBL0ksT0FBQSxNQUFBRCxNQUFBO0VBQUF5RyxRQUFBLEdBQUExSCxnQkFBQTtFQUFBLE9BQUEwSCxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -345,7 +345,8 @@ export default class FilterFieldBlock extends BuildingBlockTemplatingBase {
345
345
  requiredProperties = [],
346
346
  showOverlayInitially,
347
347
  renderLineChart,
348
- isValueListWithFixedValues
348
+ isValueListWithFixedValues,
349
+ initialChartBindingEnabled
349
350
  } = visualFilterObject as VisualFilters;
350
351
  vfXML = xml`
351
352
  <visualFilter:VisualFilter
@@ -365,6 +366,7 @@ export default class FilterFieldBlock extends BuildingBlockTemplatingBase {
365
366
  renderLineChart="${renderLineChart}"
366
367
  isValueListWithFixedValues="${isValueListWithFixedValues}"
367
368
  filterBarEntityType="${contextPath}"
369
+ enableChartBinding="${initialChartBindingEnabled}"
368
370
  />
369
371
  `;
370
372
 
@@ -0,0 +1,25 @@
1
+ <core:FragmentDefinition
2
+ xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
3
+ xmlns="sap.m"
4
+ xmlns:core="sap.ui.core"
5
+ xmlns:macro="sap.fe.macros"
6
+ xmlns:macroField="sap.fe.macros.field"
7
+ xmlns:internalMacro="sap.fe.macros.internal"
8
+ template:require="{
9
+ ID: 'sap/fe/core/helpers/StableIdHelper',
10
+ COMMON: 'sap/fe/macros/CommonHelper',
11
+ UI: 'sap/fe/core/templating/UIFormatters'
12
+ }"
13
+ >
14
+ <macro:Field
15
+ idPrefix="{= ${this>id} ? ID.generate([${this>id}, 'CheckBoxGroup', ${annotationDataField>@@UI.getDataModelObjectPath},${element>Value/$Path}]) : '' }"
16
+ contextPath="{entitySet>@@COMMON.getMetaPath}"
17
+ metaPath="{element>@@COMMON.getMetaPath}"
18
+ onChange="{this>onChange}"
19
+ ariaLabelledBy="{= ${this>id} ? ID.generate([${this>id}, 'FieldGroupFormElementLabel', ${annotationDataField>@@UI.getDataModelObjectPath}]) : '' }"
20
+ >
21
+ <macro:formatOptions>
22
+ <macroField:FieldFormatOptions isFieldGroupItem="true" textAlignMode="Form" />
23
+ </macro:formatOptions>
24
+ </macro:Field>
25
+ </core:FragmentDefinition>