@microsoft/windows-admin-center-sdk 2.186.0 → 2.295.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 (236) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/it-IT/strings.json +1 -1
  7. package/angular/assets/strings/ja-JP/strings.json +1 -1
  8. package/angular/assets/strings/ko-KR/strings.json +1 -1
  9. package/angular/assets/strings/nl-NL/strings.json +1 -1
  10. package/angular/assets/strings/pl-PL/strings.json +1 -1
  11. package/angular/assets/strings/pt-BR/strings.json +1 -1
  12. package/angular/assets/strings/pt-PT/strings.json +1 -1
  13. package/angular/assets/strings/ru-RU/strings.json +1 -1
  14. package/angular/assets/strings/strings.json +1 -1
  15. package/angular/assets/strings/sv-SE/strings.json +1 -1
  16. package/angular/assets/strings/tr-TR/strings.json +1 -1
  17. package/angular/assets/strings/zh-CN/strings.json +1 -1
  18. package/angular/assets/strings/zh-TW/strings.json +1 -1
  19. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +1103 -1209
  20. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
  21. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +2 -2
  22. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
  23. package/angular/esm2015/src/controls/actions/actions.module.js +2 -2
  24. package/angular/esm2015/src/controls/actions/containers/action-bar/action-bar.component.js +2 -2
  25. package/angular/esm2015/src/controls/actions/items/action-button/action-button-renderer.component.js +5 -5
  26. package/angular/esm2015/src/controls/actions/items/action-dropdown/action-dropdown.component.js +31 -13
  27. package/angular/esm2015/src/controls/actions/items/action-item.component.js +7 -3
  28. package/angular/esm2015/src/controls/badge/badge-base.component.js +2 -13
  29. package/angular/esm2015/src/controls/badge/bugfixes-feature-badge.component.js +42 -70
  30. package/angular/esm2015/src/controls/badge/coming-soon-badge.component.js +42 -70
  31. package/angular/esm2015/src/controls/badge/credssp-enabled-badge.component.js +42 -70
  32. package/angular/esm2015/src/controls/badge/critical-badge.component.js +42 -70
  33. package/angular/esm2015/src/controls/badge/custom-badge.component.js +42 -70
  34. package/angular/esm2015/src/controls/badge/feedback-badge.component.js +42 -70
  35. package/angular/esm2015/src/controls/badge/improvement-feature-badge.component.js +42 -70
  36. package/angular/esm2015/src/controls/badge/new-badge.component.js +42 -70
  37. package/angular/esm2015/src/controls/badge/new-feature-badge.component.js +42 -70
  38. package/angular/esm2015/src/controls/badge/preview-badge.component.js +42 -70
  39. package/angular/esm2015/src/controls/badge/warning-badge.component.js +42 -70
  40. package/angular/esm2015/src/controls/breadcrumb/breadcrumb.component.js +6 -6
  41. package/angular/esm2015/src/controls/breadcrumb-header/breadcrumb-header.component.js +2 -2
  42. package/angular/esm2015/src/controls/data-table/data-table-column.component.js +5 -3
  43. package/angular/esm2015/src/controls/data-table/data-table.component.js +20 -26
  44. package/angular/esm2015/src/controls/data-table/extensions/data-table-column-picker-extension.js +2 -1
  45. package/angular/esm2015/src/controls/details/details.component.js +2 -2
  46. package/angular/esm2015/src/controls/dialog/base-dialog.component.js +1 -1
  47. package/angular/esm2015/src/controls/dialog/confirmation-dialog/confirmation-dialog.component.js +20 -30
  48. package/angular/esm2015/src/controls/dialog/dialog.service.js +7 -3
  49. package/angular/esm2015/src/controls/dropdown/dropdown.component.js +2 -2
  50. package/angular/esm2015/src/controls/form/form-field/array/array-form-field.component.js +50 -40
  51. package/angular/esm2015/src/controls/form/form-field/checklist/checklist-form-field.component.js +3 -3
  52. package/angular/esm2015/src/controls/form/form-field/combobox/combobox-form-field.component.js +14 -13
  53. package/angular/esm2015/src/controls/form/form-field/datetime/datetime-form-field.component.js +2 -2
  54. package/angular/esm2015/src/controls/form/form-field/form-field.component.js +16 -4
  55. package/angular/esm2015/src/controls/form/form-field/options-form-field/form-field-option.component.js +5 -3
  56. package/angular/esm2015/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.js +25 -21
  57. package/angular/esm2015/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.js +5 -5
  58. package/angular/esm2015/src/controls/form/form-field/search/search-form-field.component.js +2 -2
  59. package/angular/esm2015/src/controls/form/form-field/tags/tags-form-field.component.js +2 -2
  60. package/angular/esm2015/src/controls/form/validation-alert/validation-alert.component.js +4 -10
  61. package/angular/esm2015/src/controls/form/validation-alert/validation-alert.js +1 -1
  62. package/angular/esm2015/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.js +17 -1
  63. package/angular/esm2015/src/controls/icon/layered-icon/layered-icon.component.js +12 -1
  64. package/angular/esm2015/src/controls/icon/layered-icon/status/status-icon.component.js +53 -9
  65. package/angular/esm2015/src/controls/loading-wheel/loading-wheel.component.js +17 -1
  66. package/angular/esm2015/src/controls/master-view/master-view.component.js +34 -30
  67. package/angular/esm2015/src/controls/pivot/pivot-tab.component.js +1 -1
  68. package/angular/esm2015/src/controls/pivot/pivot.component.js +21 -9
  69. package/angular/esm2015/src/controls/property-grid/property-grid.component.js +13 -29
  70. package/angular/esm2015/src/controls/schema-form/schema-form-content.component.js +7 -4
  71. package/angular/esm2015/src/controls/settings/common-settings/common-settings.component.js +23 -35
  72. package/angular/esm2015/src/controls/settings/settings.component.js +28 -1
  73. package/angular/esm2015/src/controls/settings/settings.module.js +8 -3
  74. package/angular/esm2015/src/controls/tooltip/tooltip-host.component.js +16 -5
  75. package/angular/esm2015/src/controls/wizard/wizard.component.js +38 -6
  76. package/angular/esm2015/src/directives/clamp/clamp.directive.js +26 -7
  77. package/angular/esm2015/src/directives/discard/discard.directive.js +2 -2
  78. package/angular/esm2015/src/directives/markdown/markdown.directive.js +5 -18
  79. package/angular/esm2015/src/generated/strings.js +1 -1
  80. package/angular/esm2015/src/guards/experiment.guard.service.js +14 -1
  81. package/angular/esm2015/src/pipes/boolean-converter-pipe.js +11 -1
  82. package/angular/esm2015/src/pipes/byte-unit-converter-pipe.js +11 -1
  83. package/angular/esm2015/src/pipes/enum-converter-pipe.js +16 -1
  84. package/angular/esm2015/src/pipes/format-pipe.js +11 -1
  85. package/angular/esm2015/src/pipes/highlight-pipe.js +11 -1
  86. package/angular/esm2015/src/pipes/yesno-converter-pipe.js +11 -1
  87. package/angular/esm2015/src/service/gateway.service.js +8 -5
  88. package/angular/esm2015/src/service/notification.service.js +23 -1
  89. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +1042 -1069
  90. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
  91. package/angular/package.json +0 -1
  92. package/angular/src/controls/actions/items/action-dropdown/action-dropdown.component.d.ts +2 -0
  93. package/angular/src/controls/actions/items/action-item.component.d.ts +11 -1
  94. package/angular/src/controls/badge/badge-base.component.d.ts +0 -4
  95. package/angular/src/controls/data-table/data-table-column.component.d.ts +2 -1
  96. package/angular/src/controls/data-table/data-table.component.d.ts +4 -0
  97. package/angular/src/controls/dialog/base-dialog.component.d.ts +1 -1
  98. package/angular/src/controls/form/form-field/form-field.component.d.ts +10 -1
  99. package/angular/src/controls/form/form-field/options-form-field/form-field-option.component.d.ts +5 -1
  100. package/angular/src/controls/form/validation-alert/validation-alert.component.d.ts +0 -4
  101. package/angular/src/controls/form/validation-alert/validation-alert.d.ts +0 -1
  102. package/angular/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.d.ts +16 -0
  103. package/angular/src/controls/icon/layered-icon/layered-icon.component.d.ts +11 -0
  104. package/angular/src/controls/icon/layered-icon/status/status-icon.component.d.ts +13 -2
  105. package/angular/src/controls/loading-wheel/loading-wheel.component.d.ts +16 -0
  106. package/angular/src/controls/master-view/master-view.component.d.ts +1 -0
  107. package/angular/src/controls/pivot/pivot-tab.component.d.ts +0 -1
  108. package/angular/src/controls/pivot/pivot.component.d.ts +4 -0
  109. package/angular/src/controls/settings/common-settings/common-settings.component.d.ts +6 -5
  110. package/angular/src/controls/settings/settings.component.d.ts +27 -0
  111. package/angular/src/controls/settings/settings.module.d.ts +7 -6
  112. package/angular/src/controls/tooltip/tooltip-host.component.d.ts +1 -1
  113. package/angular/src/controls/wizard/wizard.component.d.ts +23 -0
  114. package/angular/src/directives/clamp/clamp.directive.d.ts +5 -0
  115. package/angular/src/directives/markdown/markdown.directive.d.ts +2 -3
  116. package/angular/src/generated/strings.d.ts +9 -0
  117. package/angular/src/guards/experiment.guard.service.d.ts +13 -0
  118. package/angular/src/pipes/boolean-converter-pipe.d.ts +10 -0
  119. package/angular/src/pipes/byte-unit-converter-pipe.d.ts +10 -0
  120. package/angular/src/pipes/enum-converter-pipe.d.ts +15 -0
  121. package/angular/src/pipes/format-pipe.d.ts +10 -0
  122. package/angular/src/pipes/highlight-pipe.d.ts +10 -0
  123. package/angular/src/pipes/yesno-converter-pipe.d.ts +10 -0
  124. package/angular/src/service/gateway.service.d.ts +3 -1
  125. package/angular/src/service/notification.service.d.ts +22 -0
  126. package/core/base/environment.d.ts +7 -0
  127. package/core/base/environment.js.map +1 -1
  128. package/core/base/versioned-object.js +2 -2
  129. package/core/base/versioned-object.js.map +1 -1
  130. package/core/data/cim-stream.js +8 -1
  131. package/core/data/cim-stream.js.map +1 -1
  132. package/core/data/core-environment.d.ts +4 -0
  133. package/core/data/core-environment.js +1 -0
  134. package/core/data/core-environment.js.map +1 -1
  135. package/core/data/crypto.js +10 -9
  136. package/core/data/crypto.js.map +1 -1
  137. package/core/data/file-transfer.js +5 -1
  138. package/core/data/file-transfer.js.map +1 -1
  139. package/core/data/gateway-connection.d.ts +11 -1
  140. package/core/data/gateway-connection.js +51 -9
  141. package/core/data/gateway-connection.js.map +1 -1
  142. package/core/data/http-constants.d.ts +5 -1
  143. package/core/data/http-constants.js +5 -1
  144. package/core/data/http-constants.js.map +1 -1
  145. package/core/data/net.d.ts +15 -11
  146. package/core/data/net.js +44 -41
  147. package/core/data/net.js.map +1 -1
  148. package/core/data/node-connection.d.ts +2 -2
  149. package/core/data/node-connection.js.map +1 -1
  150. package/core/data/powershell-stream.js +11 -3
  151. package/core/data/powershell-stream.js.map +1 -1
  152. package/core/data/powershell.d.ts +17 -1
  153. package/core/data/powershell.js +35 -9
  154. package/core/data/powershell.js.map +1 -1
  155. package/core/data/settings-manager.d.ts +9 -0
  156. package/core/data/settings-manager.js +18 -1
  157. package/core/data/settings-manager.js.map +1 -1
  158. package/core/generated/powershell-scripts.d.ts +5 -4
  159. package/core/generated/powershell-scripts.js +5 -4
  160. package/core/generated/powershell-scripts.js.map +1 -1
  161. package/core/host/host-core-manager.d.ts +36 -0
  162. package/core/host/host-core-manager.js +134 -0
  163. package/core/host/host-core-manager.js.map +1 -0
  164. package/core/host/host-core-message-type.d.ts +12 -0
  165. package/core/host/host-core-message-type.js +17 -0
  166. package/core/host/host-core-message-type.js.map +1 -0
  167. package/core/host/host-core-messages.d.ts +14 -0
  168. package/core/host/host-core-messages.js +3 -0
  169. package/core/host/host-core-messages.js.map +1 -0
  170. package/core/manifest/manifest-loader.d.ts +2 -1
  171. package/core/manifest/manifest-loader.js +27 -18
  172. package/core/manifest/manifest-loader.js.map +1 -1
  173. package/core/notification/notification.js +4 -0
  174. package/core/notification/notification.js.map +1 -1
  175. package/core/security/authorization-manager.d.ts +44 -0
  176. package/core/security/authorization-manager.js +111 -5
  177. package/core/security/authorization-manager.js.map +1 -1
  178. package/core/security/sign-on-manager.d.ts +109 -0
  179. package/core/security/sign-on-manager.js +119 -0
  180. package/core/security/sign-on-manager.js.map +1 -0
  181. package/core/security/tag-manager.js.map +1 -1
  182. package/core/shared/cluster-inventory/cluster-inventory-cache.js +3 -2
  183. package/core/shared/cluster-inventory/cluster-inventory-cache.js.map +1 -1
  184. package/core/shared/gateway-inventory/gateway-inventory-cache.d.ts +1 -1
  185. package/core/shared/gateway-inventory/gateway-inventory-cache.js +1 -1
  186. package/core/shared/gateway-inventory/gateway-inventory-cache.js.map +1 -1
  187. package/core/shared/server-inventory/server-inventory-cache.js +2 -1
  188. package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
  189. package/core/shared/tool-inventory/tool-inventory-cache.js +1 -1
  190. package/core/shared/tool-inventory/tool-inventory-cache.js.map +1 -1
  191. package/e2e/assets/strings/cs-CZ/strings.json +1 -1
  192. package/e2e/assets/strings/de-DE/strings.json +1 -1
  193. package/e2e/assets/strings/es-ES/strings.json +1 -1
  194. package/e2e/assets/strings/fr-FR/strings.json +1 -1
  195. package/e2e/assets/strings/hu-HU/strings.json +1 -1
  196. package/e2e/assets/strings/it-IT/strings.json +1 -1
  197. package/e2e/assets/strings/ja-JP/strings.json +1 -1
  198. package/e2e/assets/strings/ko-KR/strings.json +1 -1
  199. package/e2e/assets/strings/nl-NL/strings.json +1 -1
  200. package/e2e/assets/strings/pl-PL/strings.json +1 -1
  201. package/e2e/assets/strings/pt-BR/strings.json +1 -1
  202. package/e2e/assets/strings/pt-PT/strings.json +1 -1
  203. package/e2e/assets/strings/ru-RU/strings.json +1 -1
  204. package/e2e/assets/strings/strings.json +1 -1
  205. package/e2e/assets/strings/sv-SE/strings.json +1 -1
  206. package/e2e/assets/strings/tr-TR/strings.json +1 -1
  207. package/e2e/assets/strings/zh-CN/strings.json +1 -1
  208. package/e2e/assets/strings/zh-TW/strings.json +1 -1
  209. package/package.json +5 -5
  210. package/styles/css/fonts.css +2 -2
  211. package/styles/css/main.css +1 -1
  212. package/styles/fonts/ServMDL2/ServMDL2-4.62.woff +0 -0
  213. package/styles/fonts/ServMDL2/ServMDL2.json +238 -2039
  214. package/styles/fonts/ServMDL2/ServMDL2.scss +238 -2039
  215. package/tools/gulp-manifest-resource/index.js +3 -1
  216. package/tools/gulp-manifest-resource/index.js.map +1 -1
  217. package/tools/gulp-ps-cim/index.js +1 -1
  218. package/tools/gulp-ps-cim/index.js.map +1 -1
  219. package/tools/gulp-ps-cim/powershell-cim-config-schema.json +1 -1
  220. package/tools/gulp-ps-code/index.js +36 -2
  221. package/tools/gulp-ps-code/index.js.map +1 -1
  222. package/tools/gulp-ps-code/ps-code-convert.js +4 -8
  223. package/tools/gulp-ps-code/ps-code-convert.js.map +1 -1
  224. package/tools/gulp-ps-resjson/index.js +79 -74
  225. package/tools/gulp-ps-resjson/index.js.map +1 -1
  226. package/tools/module-template/build/pipelines/codeinspector.yml +27 -0
  227. package/tools/module-template/gulpfile.ts/common/lint.ts +3 -3
  228. package/tools/module-template/gulpfile.ts/common/pack.ts +14 -14
  229. package/tools/module-template/gulpfile.ts/common/ui-test-automation.ts +40 -0
  230. package/tools/module-template/gulpfile.ts/common/utilities.ts +10 -10
  231. package/tools/module-template/gulpfile.ts/common/validate.ts +14 -4
  232. package/tools/module-template/gulpfile.ts/index.ts +20 -8
  233. package/tools/wac-cli/src/upgrade/file-updater.d.ts +1 -0
  234. package/tools/wac-cli/src/upgrade/file-updater.js +7 -1
  235. package/tools/wac-cli/src/upgrade/file-updater.js.map +1 -1
  236. package/styles/fonts/ServMDL2/ServMDL2-4.33.woff +0 -0
@@ -292,21 +292,28 @@ export class PivotComponent extends CoreBaseComponent {
292
292
  isSelected(tab) {
293
293
  return this.selection && this.selection === tab;
294
294
  }
295
+ /**
296
+ * Force refresh for the pivot tabs.
297
+ */
298
+ refresh() {
299
+ this.updatePivotTabs();
300
+ }
295
301
  /**
296
302
  * Selects a tab
297
303
  * @param tab The tab to select
298
304
  */
299
305
  select(tab) {
300
- /** At any given time we should have an attribute that lets us know if a tab is visible or not.
301
- *
302
- *
306
+ /**
307
+ * At any given time we should have an attribute that lets us know if a tab is visible or not.
303
308
  */
304
309
  if (tab) {
305
310
  for (let i = 0; i < this.trayTabs.length; i++) {
306
311
  if (this.trayTabs[i] === tab) {
307
- const hiddenTab = this.visibleTabs.pop();
308
- hiddenTab.isVisible = false;
309
- this.trayTabs.push(hiddenTab);
312
+ if (this.visibleTabs && this.visibleTabs.length > 0) {
313
+ const hiddenTab = this.visibleTabs.pop();
314
+ hiddenTab.isVisible = false;
315
+ this.trayTabs.push(hiddenTab);
316
+ }
310
317
  this.visibleTabs.push(tab);
311
318
  tab.isVisible = true;
312
319
  this.trayTabs.splice(i, 1);
@@ -387,7 +394,6 @@ export class PivotComponent extends CoreBaseComponent {
387
394
  currentFill += tabWidth;
388
395
  }
389
396
  }
390
- this.emitLayoutChanged();
391
397
  }
392
398
  }
393
399
  /** @nocollapse */ PivotComponent.ɵfac = function PivotComponent_Factory(t) { return new (t || PivotComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(SME_LAYOUT_PROVIDER, 12)); };
@@ -459,6 +465,12 @@ __decorate([
459
465
  SmeInject(ChangeDetectorRef),
460
466
  __metadata("design:type", ChangeDetectorRef)
461
467
  ], PivotComponent.prototype, "changeDetectorRef", void 0);
468
+ __decorate([
469
+ Debounce(),
470
+ __metadata("design:type", Function),
471
+ __metadata("design:paramtypes", []),
472
+ __metadata("design:returntype", void 0)
473
+ ], PivotComponent.prototype, "refresh", null);
462
474
  __decorate([
463
475
  Debounce(),
464
476
  __metadata("design:type", Function),
@@ -518,5 +530,5 @@ __decorate([
518
530
  }], changeDetectorRef: [], dropDownButtonElement: [{
519
531
  type: ViewChild,
520
532
  args: ['dropDownButton']
521
- }], emitLayoutChanged: [], onLayoutChanged: [] }); })();
522
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcGl2b3QvcGl2b3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcGl2b3QvcGl2b3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBVSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7SUN4QnZFLDhCQUFzRDtJQUFBLFlBQWM7SUFBQSxpQkFBSzs7O0lBQW5CLGVBQWM7SUFBZCx1Q0FBYzs7O0lBWTVELHVCQUEyRDs7O0lBQS9CLCtCQUF1Qjs7OztJQUxyRCxrQ0FJOEU7SUFBdkMsd1JBQXNDO0lBQzNFLDBGQUEyRDtJQUMzRCw0QkFBTTtJQUFBLFlBQWE7SUFBQSxpQkFB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UUMsUUFBUTtrQkFGZCxXQUFXO21CQUFDLG9CQUFvQjs7a0JBQ2hDLEtBQUs7WUE2QkUsaUJBQWlCLE1BSVkscUJBQXFCO2tCQUF6RCxTQUFTO21CQUFDLGdCQUFnQjtZQXNFbkIsaUJBQWlCLE1BS2pCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL2RlYm91bmNlLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtZUluamVjdCB9IGZyb20gJy4uL2NvbW1vbi9kZWNvcmF0b3JzL2luamVjdGlvbi5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTGF5b3V0LCBTTUVfTEFZT1VUX1BST1ZJREVSIH0gZnJvbSAnLi4vY29tbW9uL2xheW91dCc7XHJcbmltcG9ydCB7IFBpdm90VGFiVHlwZSB9IGZyb20gJy4vcGl2b3QtdGFiLXR5cGUnO1xyXG5pbXBvcnQgeyBQaXZvdFRhYkNvbXBvbmVudCB9IGZyb20gJy4vcGl2b3QtdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNNRV9QSVZPVF9UQUJfQ09OVEFJTkVSX1BST1ZJREVSIH0gZnJvbSAnLi9waXZvdC10YWIuY29udGFpbmVyJztcclxuXHJcbi8qKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgUGl2b3QgQGlkIHNtZS1waXZvdC1jb21wb25lbnR9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgU3RhdGljIFRhYiBAaWQgc3RhdGljLXRhYn1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9zdGF0aWMtdGFiLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIFJvdXRlZCBUYWIgQGlkIHJvdXRlZC10YWJ9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvcm91dGVkLXRhYi5jb21wb25lbnQuaHRtbH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcGl2b3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogU01FX0xBWU9VVF9QUk9WSURFUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGl2b3RDb21wb25lbnQpIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBTTUVfUElWT1RfVEFCX0NPTlRBSU5FUl9QUk9WSURFUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGl2b3RDb21wb25lbnQpIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBpdm90Q29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBMYXlvdXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgcHVibGljIHZpc2libGVUYWJzOiBQaXZvdFRhYkNvbXBvbmVudFtdOyAvLyBSZWd1bGF0ZXMgdGhlIHRhYnMgdGhhdCBnZXQgZGlzcGxheWVkLlxyXG4gICAgcHVibGljIHRyYXlUYWJzID0gW107IC8vIFJlZ3VsYXRlcyB0aGUgdGFicyB0aGF0IGFyZSBhZGRlZCB0byB0aGUgZHJvcGRvd24gaWYgbmVjZXNzYXJ5LlxyXG4gICAgcHVibGljIG1vcmVUYWJzRGlzcGxheSA9ICdNb3JlJzsgLy8gTGFiZWwgZm9yIHRoZSBkcm9wZG93biBtZW51IHRhYnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnUGl2b3RDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlbGVjdGVkIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbjogUGl2b3RUYWJDb21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0byBzaG93L2hpZGUgb3IgbG9hZC91bmxvYWQgdGhlIHRhYnMgdG8gZG8gdGFiIHN3aXRjaGluZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHN3aXRjaFRhYkJ5U2hvd0hpZGU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IGZvciBhIGhlYWRlciB0byBzaG93IHdpdGggdGhlIHBpdm90IHRhYnMuIERpc3BsYXllZCBhcyBoNCB3aXRoIHRhYnMgb24gdGhlIHJpZ2h0LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhlYWRlclRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIDA4LzMwLzE5LiBQbGVhc2UgdXNlIGFsaWduVGFicyBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFsaWduSGVhZGVyKHZhbHVlOiAncmlnaHQnIHwgJ2xlZnQnKSB7XHJcbiAgICAgICAgdGhpcy5hbGlnblRhYnMgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXJlIHRvIGFsaWduIHRhYnMsIGxlZnQgb3IgcmlnaHRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGlnblRhYnM6ICdyaWdodCcgfCAnbGVmdCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc2VsZWN0ZWQgdGFiIGNoYW5nZWQgZXZlbnRcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQaXZvdFRhYkNvbXBvbmVudD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBMYXlvdXQgaW50ZXJmYWNlXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxheW91dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUYWJzIG9mIHRoZSBQaXZvdFxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBpdm90VGFiQ29tcG9uZW50KVxyXG4gICAgcHVibGljIHRhYnM6IFF1ZXJ5TGlzdDxQaXZvdFRhYkNvbXBvbmVudD47XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQaXZvdFRhYkNvbXBvbmVudClcclxuICAgIHB1YmxpYyB2aXNpYmxlVGFic1FMOiBRdWVyeUxpc3Q8UGl2b3RUYWJDb21wb25lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZGFibGUgcHJvcGVydHkgZm9yIHRhYiB0eXBlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGl2b3RUYWJUeXBlID0gUGl2b3RUYWJUeXBlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbm9MZWZ0UGFkZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIHRoaXMgcGl2b3QgaXMgZGlzYWJsZWRcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWUtZGlzYWJsZWQnKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHJvdXRlZCB0YWJzIGhhdmUgYmVlbiBwcm92aWRlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGhhc1JvdXRlZFRhYnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicyAmJiB0aGlzLnRhYnMuc29tZSh0ID0+IHQudHlwZSA9PT0gUGl2b3RUYWJUeXBlLlJvdXRlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCBzdGF0aWMgdGFicyBoYXZlIGJlZW4gcHJvdmlkZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBoYXNTdGF0aWNUYWJzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYnMgJiYgdGhpcy50YWJzLnNvbWUodCA9PiB0LnR5cGUgPT09IFBpdm90VGFiVHlwZS5TdGF0aWMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmlzaVRhYnMoKTogUGl2b3RUYWJDb21wb25lbnRbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicy5maWx0ZXIodGFiID0+IHRhYi5pc1Zpc2libGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgc3RhdGljIHRhYnMgaGF2ZSBiZWVuIHByb3ZpZGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2VsZWN0aW9uSXNSb3V0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLnR5cGUgPT09IFBpdm90VGFiVHlwZS5Sb3V0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQFNtZUluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGRyb3Bkb3duIGVsZW1lbnQgdGhhdCBjb250YWlucyBwaXZvdFRhYnMgb25seSBpZiB0aGUgc2NyZWVuIHNpemUgZG9lc24ndCBhbGxvdy5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcERvd25CdXR0b24nKSBwcml2YXRlIGRyb3BEb3duQnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjtcclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEBzZWUgUGl2b3RDb21wb25lbnQgY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGFuZ3VsYXIgaW5qZWN0aW9uIHNlcnZpY2UuIHJlcXVpcmVkIGJ5IEBTbWVJbmplY3RhYmxlKCkgZGVjb3JhdG9yIGluIHRoZSBiYXNlIEBzZWUgQmFzZUNvbXBvbmVudCBjbGFzc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgQFNraXBTZWxmKCkgQE9wdGlvbmFsKCkgQEluamVjdChTTUVfTEFZT1VUX1BST1ZJREVSKSBsYXlvdXQ6IExheW91dCkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIC8vIG9uIHBhcmVudCBsYXlvdXQgY2hhbmdlcywgcmUtZW1pdCB0aGUgbGF5b3V0IGNoYW5nZSB0byBvdXIgZXZlbnRcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobGF5b3V0LmxheW91dENoYW5nZWQuc3Vic2NyaWJlKCgoKSA9PiB0aGlzLm9uTGF5b3V0Q2hhbmdlZCgpKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYnMgJiYgdGhpcy50YWJzLmZpcnN0ICYmICF0aGlzLnNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMudGFicy5maXJzdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudGFicy5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICdQaXZvdCBtdXN0IGNvbnRhaW4gY2hpbGQgdGFicy4gRXhwZWN0ZWQgYXQgbGVhc3Qgb25lICgxKSB0YWInXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmlzaWJsZVRhYnMgPSB0aGlzLnRhYnMudG9BcnJheSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgb2YgYSBnaXZlbiB0YWIgaXMgc2VsZWN0ZWRcclxuICAgICAqIEBwYXJhbSB0YWIgVGhlIHRhYiB0byBjb21wYXJlIHdpdGhcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzU2VsZWN0ZWQodGFiOiBQaXZvdFRhYkNvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbiA9PT0gdGFiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VsZWN0cyBhIHRhYlxyXG4gICAgICogQHBhcmFtIHRhYiBUaGUgdGFiIHRvIHNlbGVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VsZWN0KHRhYjogUGl2b3RUYWJDb21wb25lbnQpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgLyoqIEF0IGFueSBnaXZlbiB0aW1lIHdlIHNob3VsZCBoYXZlIGFuIGF0dHJpYnV0ZSB0aGF0IGxldHMgdXMga25vdyBpZiBhIHRhYiBpcyB2aXNpYmxlIG9yIG5vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKHRhYikge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJheVRhYnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYXlUYWJzW2ldID09PSB0YWIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRkZW5UYWIgPSB0aGlzLnZpc2libGVUYWJzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhpZGRlblRhYi5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXlUYWJzLnB1c2goaGlkZGVuVGFiKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVUYWJzLnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICB0YWIuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXlUYWJzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSB0YWI7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGFiKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdExheW91dENoYW5nZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQERlYm91bmNlKClcclxuICAgIHByaXZhdGUgZW1pdExheW91dENoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBARGVib3VuY2UoMClcclxuICAgIHByaXZhdGUgb25MYXlvdXRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGl2b3RUYWJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFRhYlBhbmVsSW5kZXgoaWQ6IHN0cmluZywgY3VycmVudFRhYjogYm9vbGVhbik6IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgdGFiUGFuZWxTZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG5cclxuICAgICAgICBpZiAoY3VycmVudFRhYiAmJiB0YWJQYW5lbFNlY3Rpb24pIHtcclxuICAgICAgICAgICAgLy8gbm8gc2Nyb2xsIGJhciBpcyB2aXNpYmxlIHdoZW4gc2Nyb2xsSGVpZ2h0IGlzIGVxdWFsIHRvIGNsaWVudEhlaWdodFxyXG4gICAgICAgICAgICAvLyB1c2UgdGhpcyB0byBzZXQgdGFiaW5kZXggb25seSBmb3Igc2Nyb2xsYWJsZSBjb250ZW50XHJcbiAgICAgICAgICAgIGNvbnN0IGhhc1Njcm9sbEJhciA9IHRhYlBhbmVsU2VjdGlvbi5zY3JvbGxIZWlnaHQgIT09IHRhYlBhbmVsU2VjdGlvbi5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gaGFzU2Nyb2xsQmFyID8gMCA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBpZEJhZyB1c2VkIGJ5IHRoaXMgY29tcG9uZW50IHRvIHN0b3JlIHVuaXF1ZSBlbGVtZW50IGlkcy5cclxuICAgICAqIGlkIHZhbHVlcyB3aWxsIGJlIGFzc2lnbmVkIGJ5IHRoZSBAc2VlIEJhc2VDb21wb25lbnQgc3VwZXIgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjcmVhdGVJZEJhZygpOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0YWJQYW5lbDogJydcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgaW5pdGlhbCBob3N0IGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldEluaXRpYWxIb3N0Q2xhc3NlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpLmNvbmNhdChbXHJcbiAgICAgICAgICAgICdzbWUtcGl2b3QnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVQaXZvdFRhYnMoKSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRGaWxsID0gMDtcclxuICAgICAgICB0aGlzLnZpc2libGVUYWJzID0gW107XHJcbiAgICAgICAgdGhpcy50cmF5VGFicyA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBob3N0ID0gPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCB0YWJCYXJXaWR0aCA9IGhvc3Qub2Zmc2V0V2lkdGg7XHJcblxyXG4gICAgICAgIGxldCB0b3RhbFRhYldpZHRoID0gMDtcclxuICAgICAgICBjb25zdCB0YWJMaXN0ID0gdGhpcy50YWJzLnRvQXJyYXkoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCB0YWI6IFBpdm90VGFiQ29tcG9uZW50ID0gdGFiTGlzdFtpXTtcclxuICAgICAgICAgICAgY29uc3QgdGFiV2lkdGggPSB0YWIud2lkdGg7XHJcbiAgICAgICAgICAgIHRvdGFsVGFiV2lkdGggKz0gdGFiV2lkdGg7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRvdGFsVGFiV2lkdGggPD0gdGFiQmFyV2lkdGgpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRhYnMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICAgICAgICAgIHRhYkxpc3RbaV0uaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZVRhYnMucHVzaCh0YWJMaXN0W2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGVUYWJCYXJXaWR0aCA9IHRhYkJhcldpZHRoIC0gdGhpcy5kcm9wRG93bkJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRhYnMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRhYkxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJXaWR0aCA9IHRhYi53aWR0aDtcclxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmlsbCArIHRhYldpZHRoID4gdmlzaWJsZVRhYkJhcldpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFiLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJheVRhYnMucHVzaCh0YWIpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0YWIuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVUYWJzLnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50RmlsbCArPSB0YWJXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVtaXRMYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCIgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cIm5vTGVmdFBhZGRpbmc/MDpudWxsXCI+XHJcbiAgPGg0ICpuZ0lmPVwiaGVhZGVyVGV4dFwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0b1wiPnt7aGVhZGVyVGV4dH19PC9oND5cclxuXHJcbiAgPGhlYWRlciBbY2xhc3Muc21lLXBpdm90LXJldmVyc2UtaGVhZGVyXT1cImFsaWduVGFicyA9PT0gJ3JpZ2h0J1wiIFtjbGFzcy5zbWUtcG9zaXRpb24tc3RyZXRjaC1oXT1cIiFoZWFkZXJUZXh0XCI+XHJcbiAgICA8IS0tIENhbm5vdCB1c2UgXCJzbWUtcGFkZGluZy1sZWZ0LW5vbmVcIiBDU1MgY2xhc3MgaW4gPGhlYWRlcj4gYWJvdmUgc2luY2Ugc21lLXBhZGRpbmctbGVmdC1ub25lIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggc2VsZWN0b3Igd2VpZ2h0IHRvIG92ZXJyaWRlIHNtZS1waXZvdD5bcm9sZT1cInRhYmxpc3RcIl0gc2VsZWN0b3IgLS0+XHJcbiAgICA8ZGl2IHJvbGU9XCJ0YWJsaXN0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFiczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDwhLS0gUm91dGVkIFRhYiBpdGVtIC0tPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlJvdXRlZFwiIHJvbGU9XCJ0YWJcIiBbcm91dGVyTGlua109XCJ0YWIucm91dGVcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZEJhZy50YWJQYW5lbFwiIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgdGFiLmRpc2FibGVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodGFiKVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ0YWIucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxyXG4gICAgICAgICAgW2NsYXNzLnNtZS1hY3RpdmVdPVwiaXNTZWxlY3RlZCh0YWIpXCIgKHNtZVJvdXRlckxpbmtBY3RpdmF0ZWQpPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBTdGF0aWMgVGFiIEl0ZW0gLS0+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRhYi50eXBlID09PSBwaXZvdFRhYlR5cGUuU3RhdGljXCIgdGFiaW5kZXg9XCIwXCIgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkQmFnLnRhYlBhbmVsICsgaVwiIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgdGFiLmRpc2FibGVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodGFiKVwiIFtjbGFzcy5zbWUtYWN0aXZlXT1cImlzU2VsZWN0ZWQodGFiKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgcm9sZT1cIm1lbnVcIj5cclxuICAgICAgICA8c21lLWRyb3Bkb3duICNkcm9wRG93biByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCJcclxuICAgICAgICAgIFtjbGFzcy5zbWUtbGF5b3V0LWhpZGRlbl09XCJ0cmF5VGFicy5sZW5ndGggPT09IDBcIiBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cInRyYXlUYWJzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAjZHJvcERvd25CdXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwibW9yZVRhYnNEaXNwbGF5XCIgcm9sZT1cIm1lbnVpdGVtXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWxheW91dC1hY3Rpb24tYmFyLWl0ZW0taGVpZ2h0IHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgW2NsYXNzLnNtZS10b2dnbGVkXT1cImRyb3BEb3duLmlzT3BlblwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZHJvcERvd24uaXNPcGVuXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgbW9yZVRhYnNEaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXNpemUteHhzIHNtZS1pY29uLWNoZXZyb25Eb3duIHNtZS1tYXJnaW4tbGVmdC14c1wiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiByb2xlPVwibWVudVwiIGNsYXNzPVwic21lLWRyb3Bkb3duLWNvbnRlbnQgc21lLWFycmFuZ2Utc3RhY2stdiBzbWUtcG9zaXRpb24tc3RyZXRjaC1oXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCIgKm5nRm9yPVwibGV0IHRhYiBvZiB0cmF5VGFiczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlJvdXRlZFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cInRhYi5yb3V0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAoc21lUm91dGVyTGlua0FjdGl2YXRlZCk9XCJzZWxlY3QodGFiKVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ0YWIucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGFiLnR5cGUgPT09IHBpdm90VGFiVHlwZS5TdGF0aWNcIiByb2xlPVwibWVudWl0ZW1cIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNtZS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiAoY2xpY2spPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NtZS1kcm9wZG93bj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2hlYWRlcj5cclxuPC9kaXY+XHJcbjwhLS0gUm91dGVkIFRhYiBDb250ZW50IC0tPlxyXG48c2VjdGlvbiAqbmdJZj1cImhhc1JvdXRlZFRhYnNcIiByb2xlPVwidGFicGFuZWxcIiBbaWRdPVwiaWRCYWcudGFiUGFuZWxcIiBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cIiFzZWxlY3Rpb25Jc1JvdXRlZFwiXHJcbiAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXNlbGVjdGlvbklzUm91dGVkXCI+XHJcbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG48L3NlY3Rpb24+XHJcblxyXG48IS0tIFN0YXRpYyBUYWIgQ29udGVudCAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N0YXRpY1RhYnNcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdmlzaWJsZVRhYnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlN0YXRpY1wiPlxyXG4gICAgICA8c2VjdGlvbiByb2xlPVwidGFicGFuZWxcIiBbaWRdPVwiaWRCYWcudGFiUGFuZWwgKyBpXCIgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCIhaXNTZWxlY3RlZCh0YWIpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhaXNTZWxlY3RlZCh0YWIpXCIgW2F0dHIudGFiaW5kZXhdPVwiZ2V0VGFiUGFuZWxJbmRleChpZEJhZy50YWJQYW5lbCArIGksIGlzU2VsZWN0ZWQodGFiKSlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKHN3aXRjaFRhYkJ5U2hvd0hpZGUgfHwgaXNTZWxlY3RlZCh0YWIpKSA/IHRhYi5jb250ZW50VGVtcGxhdGUgOiBudWxsXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
533
+ }], refresh: [], emitLayoutChanged: [], onLayoutChanged: [] }); })();
534
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcGl2b3QvcGl2b3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcGl2b3QvcGl2b3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBVSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7SUN4QnZFLDhCQUFzRDtJQUFBLFlBQWM7SUFBQSxpQkFBSzs7O0lBQW5CLGVBQWM7SUFBZCx1Q0FBYzs7O0lBWTVELHVCQUEyRDs7O0lBQS9CLCtCQUF1Qjs7OztJQUxyRCxrQ0FJOEU7SUFBdkMsd1JBQXNDO0lBQzNFLDBGQUEyRDtJQUMzRCw0QkFBTTtJQUFBLFlBQWE7SUFBQSxpQkFB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QyxlQUFlO2tCQURyQixNQUFNO1lBT0EsYUFBYTtrQkFEbkIsTUFBTTtZQU9BLElBQUk7a0JBRFYsZUFBZTttQkFBQyxpQkFBaUI7WUFJM0IsYUFBYTtrQkFEbkIsZUFBZTttQkFBQyxpQkFBaUI7WUFTM0IsYUFBYTtrQkFEbkIsS0FBSztZQVFDLFFBQVE7a0JBRmQsV0FBVzttQkFBQyxvQkFBb0I7O2tCQUNoQyxLQUFLO1lBNkJFLGlCQUFpQixNQUlZLHFCQUFxQjtrQkFBekQsU0FBUzttQkFBQyxnQkFBZ0I7WUEyQ3BCLE9BQU8sTUFvQ04saUJBQWlCLE1BS2pCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL2RlYm91bmNlLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtZUluamVjdCB9IGZyb20gJy4uL2NvbW1vbi9kZWNvcmF0b3JzL2luamVjdGlvbi5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTGF5b3V0LCBTTUVfTEFZT1VUX1BST1ZJREVSIH0gZnJvbSAnLi4vY29tbW9uL2xheW91dCc7XHJcbmltcG9ydCB7IFBpdm90VGFiVHlwZSB9IGZyb20gJy4vcGl2b3QtdGFiLXR5cGUnO1xyXG5pbXBvcnQgeyBQaXZvdFRhYkNvbXBvbmVudCB9IGZyb20gJy4vcGl2b3QtdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNNRV9QSVZPVF9UQUJfQ09OVEFJTkVSX1BST1ZJREVSIH0gZnJvbSAnLi9waXZvdC10YWIuY29udGFpbmVyJztcclxuXHJcbi8qKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgUGl2b3QgQGlkIHNtZS1waXZvdC1jb21wb25lbnR9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgU3RhdGljIFRhYiBAaWQgc3RhdGljLXRhYn1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9zdGF0aWMtdGFiLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIFJvdXRlZCBUYWIgQGlkIHJvdXRlZC10YWJ9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvcm91dGVkLXRhYi5jb21wb25lbnQuaHRtbH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcGl2b3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogU01FX0xBWU9VVF9QUk9WSURFUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGl2b3RDb21wb25lbnQpIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBTTUVfUElWT1RfVEFCX0NPTlRBSU5FUl9QUk9WSURFUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGl2b3RDb21wb25lbnQpIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBpdm90Q29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBMYXlvdXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgcHVibGljIHZpc2libGVUYWJzOiBQaXZvdFRhYkNvbXBvbmVudFtdOyAvLyBSZWd1bGF0ZXMgdGhlIHRhYnMgdGhhdCBnZXQgZGlzcGxheWVkLlxyXG4gICAgcHVibGljIHRyYXlUYWJzID0gW107IC8vIFJlZ3VsYXRlcyB0aGUgdGFicyB0aGF0IGFyZSBhZGRlZCB0byB0aGUgZHJvcGRvd24gaWYgbmVjZXNzYXJ5LlxyXG4gICAgcHVibGljIG1vcmVUYWJzRGlzcGxheSA9ICdNb3JlJzsgLy8gTGFiZWwgZm9yIHRoZSBkcm9wZG93biBtZW51IHRhYnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnUGl2b3RDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlbGVjdGVkIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbjogUGl2b3RUYWJDb21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0byBzaG93L2hpZGUgb3IgbG9hZC91bmxvYWQgdGhlIHRhYnMgdG8gZG8gdGFiIHN3aXRjaGluZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHN3aXRjaFRhYkJ5U2hvd0hpZGU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IGZvciBhIGhlYWRlciB0byBzaG93IHdpdGggdGhlIHBpdm90IHRhYnMuIERpc3BsYXllZCBhcyBoNCB3aXRoIHRhYnMgb24gdGhlIHJpZ2h0LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhlYWRlclRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIDA4LzMwLzE5LiBQbGVhc2UgdXNlIGFsaWduVGFicyBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFsaWduSGVhZGVyKHZhbHVlOiAncmlnaHQnIHwgJ2xlZnQnKSB7XHJcbiAgICAgICAgdGhpcy5hbGlnblRhYnMgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXJlIHRvIGFsaWduIHRhYnMsIGxlZnQgb3IgcmlnaHRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGlnblRhYnM6ICdyaWdodCcgfCAnbGVmdCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc2VsZWN0ZWQgdGFiIGNoYW5nZWQgZXZlbnRcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQaXZvdFRhYkNvbXBvbmVudD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBMYXlvdXQgaW50ZXJmYWNlXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxheW91dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUYWJzIG9mIHRoZSBQaXZvdFxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBpdm90VGFiQ29tcG9uZW50KVxyXG4gICAgcHVibGljIHRhYnM6IFF1ZXJ5TGlzdDxQaXZvdFRhYkNvbXBvbmVudD47XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQaXZvdFRhYkNvbXBvbmVudClcclxuICAgIHB1YmxpYyB2aXNpYmxlVGFic1FMOiBRdWVyeUxpc3Q8UGl2b3RUYWJDb21wb25lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZGFibGUgcHJvcGVydHkgZm9yIHRhYiB0eXBlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGl2b3RUYWJUeXBlID0gUGl2b3RUYWJUeXBlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbm9MZWZ0UGFkZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIHRoaXMgcGl2b3QgaXMgZGlzYWJsZWRcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWUtZGlzYWJsZWQnKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHJvdXRlZCB0YWJzIGhhdmUgYmVlbiBwcm92aWRlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGhhc1JvdXRlZFRhYnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicyAmJiB0aGlzLnRhYnMuc29tZSh0ID0+IHQudHlwZSA9PT0gUGl2b3RUYWJUeXBlLlJvdXRlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCBzdGF0aWMgdGFicyBoYXZlIGJlZW4gcHJvdmlkZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBoYXNTdGF0aWNUYWJzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYnMgJiYgdGhpcy50YWJzLnNvbWUodCA9PiB0LnR5cGUgPT09IFBpdm90VGFiVHlwZS5TdGF0aWMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmlzaVRhYnMoKTogUGl2b3RUYWJDb21wb25lbnRbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicy5maWx0ZXIodGFiID0+IHRhYi5pc1Zpc2libGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgc3RhdGljIHRhYnMgaGF2ZSBiZWVuIHByb3ZpZGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2VsZWN0aW9uSXNSb3V0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLnR5cGUgPT09IFBpdm90VGFiVHlwZS5Sb3V0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQFNtZUluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGRyb3Bkb3duIGVsZW1lbnQgdGhhdCBjb250YWlucyBwaXZvdFRhYnMgb25seSBpZiB0aGUgc2NyZWVuIHNpemUgZG9lc24ndCBhbGxvdy5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcERvd25CdXR0b24nKSBwcml2YXRlIGRyb3BEb3duQnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjtcclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEBzZWUgUGl2b3RDb21wb25lbnQgY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGFuZ3VsYXIgaW5qZWN0aW9uIHNlcnZpY2UuIHJlcXVpcmVkIGJ5IEBTbWVJbmplY3RhYmxlKCkgZGVjb3JhdG9yIGluIHRoZSBiYXNlIEBzZWUgQmFzZUNvbXBvbmVudCBjbGFzc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgQFNraXBTZWxmKCkgQE9wdGlvbmFsKCkgQEluamVjdChTTUVfTEFZT1VUX1BST1ZJREVSKSBsYXlvdXQ6IExheW91dCkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIC8vIG9uIHBhcmVudCBsYXlvdXQgY2hhbmdlcywgcmUtZW1pdCB0aGUgbGF5b3V0IGNoYW5nZSB0byBvdXIgZXZlbnRcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobGF5b3V0LmxheW91dENoYW5nZWQuc3Vic2NyaWJlKCgoKSA9PiB0aGlzLm9uTGF5b3V0Q2hhbmdlZCgpKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYnMgJiYgdGhpcy50YWJzLmZpcnN0ICYmICF0aGlzLnNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMudGFicy5maXJzdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudGFicy5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICdQaXZvdCBtdXN0IGNvbnRhaW4gY2hpbGQgdGFicy4gRXhwZWN0ZWQgYXQgbGVhc3Qgb25lICgxKSB0YWInXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmlzaWJsZVRhYnMgPSB0aGlzLnRhYnMudG9BcnJheSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgb2YgYSBnaXZlbiB0YWIgaXMgc2VsZWN0ZWRcclxuICAgICAqIEBwYXJhbSB0YWIgVGhlIHRhYiB0byBjb21wYXJlIHdpdGhcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzU2VsZWN0ZWQodGFiOiBQaXZvdFRhYkNvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbiA9PT0gdGFiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yY2UgcmVmcmVzaCBmb3IgdGhlIHBpdm90IHRhYnMuXHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVBpdm90VGFicygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VsZWN0cyBhIHRhYlxyXG4gICAgICogQHBhcmFtIHRhYiBUaGUgdGFiIHRvIHNlbGVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VsZWN0KHRhYjogUGl2b3RUYWJDb21wb25lbnQpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQXQgYW55IGdpdmVuIHRpbWUgd2Ugc2hvdWxkIGhhdmUgYW4gYXR0cmlidXRlIHRoYXQgbGV0cyB1cyBrbm93IGlmIGEgdGFiIGlzIHZpc2libGUgb3Igbm90LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmICh0YWIpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyYXlUYWJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50cmF5VGFic1tpXSA9PT0gdGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVRhYnMgJiYgdGhpcy52aXNpYmxlVGFicy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGRlblRhYiA9IHRoaXMudmlzaWJsZVRhYnMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlblRhYi5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmF5VGFicy5wdXNoKGhpZGRlblRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZVRhYnMucHVzaCh0YWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRhYi5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJheVRhYnMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRhYjtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0YWIpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5lbWl0TGF5b3V0Q2hhbmdlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBARGVib3VuY2UoKVxyXG4gICAgcHJpdmF0ZSBlbWl0TGF5b3V0Q2hhbmdlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxheW91dENoYW5nZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBEZWJvdW5jZSgwKVxyXG4gICAgcHJpdmF0ZSBvbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQaXZvdFRhYnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VGFiUGFuZWxJbmRleChpZDogc3RyaW5nLCBjdXJyZW50VGFiOiBib29sZWFuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCB0YWJQYW5lbFNlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcblxyXG4gICAgICAgIGlmIChjdXJyZW50VGFiICYmIHRhYlBhbmVsU2VjdGlvbikge1xyXG4gICAgICAgICAgICAvLyBubyBzY3JvbGwgYmFyIGlzIHZpc2libGUgd2hlbiBzY3JvbGxIZWlnaHQgaXMgZXF1YWwgdG8gY2xpZW50SGVpZ2h0XHJcbiAgICAgICAgICAgIC8vIHVzZSB0aGlzIHRvIHNldCB0YWJpbmRleCBvbmx5IGZvciBzY3JvbGxhYmxlIGNvbnRlbnRcclxuICAgICAgICAgICAgY29uc3QgaGFzU2Nyb2xsQmFyID0gdGFiUGFuZWxTZWN0aW9uLnNjcm9sbEhlaWdodCAhPT0gdGFiUGFuZWxTZWN0aW9uLmNsaWVudEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBoYXNTY3JvbGxCYXIgPyAwIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIGlkQmFnIHVzZWQgYnkgdGhpcyBjb21wb25lbnQgdG8gc3RvcmUgdW5pcXVlIGVsZW1lbnQgaWRzLlxyXG4gICAgICogaWQgdmFsdWVzIHdpbGwgYmUgYXNzaWduZWQgYnkgdGhlIEBzZWUgQmFzZUNvbXBvbmVudCBzdXBlciBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHRhYlBhbmVsOiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBpbml0aWFsIGhvc3QgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkuY29uY2F0KFtcclxuICAgICAgICAgICAgJ3NtZS1waXZvdCdcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVBpdm90VGFicygpIHtcclxuICAgICAgICBsZXQgY3VycmVudEZpbGwgPSAwO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZVRhYnMgPSBbXTtcclxuICAgICAgICB0aGlzLnRyYXlUYWJzID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGhvc3QgPSA8SFRNTEVsZW1lbnQ+dGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHRhYkJhcldpZHRoID0gaG9zdC5vZmZzZXRXaWR0aDtcclxuXHJcbiAgICAgICAgbGV0IHRvdGFsVGFiV2lkdGggPSAwO1xyXG4gICAgICAgIGNvbnN0IHRhYkxpc3QgPSB0aGlzLnRhYnMudG9BcnJheSgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhYjogUGl2b3RUYWJDb21wb25lbnQgPSB0YWJMaXN0W2ldO1xyXG4gICAgICAgICAgICBjb25zdCB0YWJXaWR0aCA9IHRhYi53aWR0aDtcclxuICAgICAgICAgICAgdG90YWxUYWJXaWR0aCArPSB0YWJXaWR0aDtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodG90YWxUYWJXaWR0aCA8PSB0YWJCYXJXaWR0aCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgdGFiTGlzdFtpXS5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlVGFicy5wdXNoKHRhYkxpc3RbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdmlzaWJsZVRhYkJhcldpZHRoID0gdGFiQmFyV2lkdGggLSB0aGlzLmRyb3BEb3duQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFiID0gdGFiTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYldpZHRoID0gdGFiLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWxsICsgdGFiV2lkdGggPiB2aXNpYmxlVGFiQmFyV2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YWIuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmF5VGFicy5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhYi5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZVRhYnMucHVzaCh0YWIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxsICs9IHRhYldpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCIgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cIm5vTGVmdFBhZGRpbmc/MDpudWxsXCI+XHJcbiAgPGg0ICpuZ0lmPVwiaGVhZGVyVGV4dFwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0b1wiPnt7aGVhZGVyVGV4dH19PC9oND5cclxuXHJcbiAgPGhlYWRlciBbY2xhc3Muc21lLXBpdm90LXJldmVyc2UtaGVhZGVyXT1cImFsaWduVGFicyA9PT0gJ3JpZ2h0J1wiIFtjbGFzcy5zbWUtcG9zaXRpb24tc3RyZXRjaC1oXT1cIiFoZWFkZXJUZXh0XCI+XHJcbiAgICA8IS0tIENhbm5vdCB1c2UgXCJzbWUtcGFkZGluZy1sZWZ0LW5vbmVcIiBDU1MgY2xhc3MgaW4gPGhlYWRlcj4gYWJvdmUgc2luY2Ugc21lLXBhZGRpbmctbGVmdC1ub25lIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggc2VsZWN0b3Igd2VpZ2h0IHRvIG92ZXJyaWRlIHNtZS1waXZvdD5bcm9sZT1cInRhYmxpc3RcIl0gc2VsZWN0b3IgLS0+XHJcbiAgICA8ZGl2IHJvbGU9XCJ0YWJsaXN0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFiczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDwhLS0gUm91dGVkIFRhYiBpdGVtIC0tPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlJvdXRlZFwiIHJvbGU9XCJ0YWJcIiBbcm91dGVyTGlua109XCJ0YWIucm91dGVcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZEJhZy50YWJQYW5lbFwiIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgdGFiLmRpc2FibGVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodGFiKVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ0YWIucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxyXG4gICAgICAgICAgW2NsYXNzLnNtZS1hY3RpdmVdPVwiaXNTZWxlY3RlZCh0YWIpXCIgKHNtZVJvdXRlckxpbmtBY3RpdmF0ZWQpPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBTdGF0aWMgVGFiIEl0ZW0gLS0+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRhYi50eXBlID09PSBwaXZvdFRhYlR5cGUuU3RhdGljXCIgdGFiaW5kZXg9XCIwXCIgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkQmFnLnRhYlBhbmVsICsgaVwiIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgdGFiLmRpc2FibGVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodGFiKVwiIFtjbGFzcy5zbWUtYWN0aXZlXT1cImlzU2VsZWN0ZWQodGFiKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgcm9sZT1cIm1lbnVcIj5cclxuICAgICAgICA8c21lLWRyb3Bkb3duICNkcm9wRG93biByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCJcclxuICAgICAgICAgIFtjbGFzcy5zbWUtbGF5b3V0LWhpZGRlbl09XCJ0cmF5VGFicy5sZW5ndGggPT09IDBcIiBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cInRyYXlUYWJzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAjZHJvcERvd25CdXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwibW9yZVRhYnNEaXNwbGF5XCIgcm9sZT1cIm1lbnVpdGVtXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWxheW91dC1hY3Rpb24tYmFyLWl0ZW0taGVpZ2h0IHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgW2NsYXNzLnNtZS10b2dnbGVkXT1cImRyb3BEb3duLmlzT3BlblwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZHJvcERvd24uaXNPcGVuXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgbW9yZVRhYnNEaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXNpemUteHhzIHNtZS1pY29uLWNoZXZyb25Eb3duIHNtZS1tYXJnaW4tbGVmdC14c1wiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiByb2xlPVwibWVudVwiIGNsYXNzPVwic21lLWRyb3Bkb3duLWNvbnRlbnQgc21lLWFycmFuZ2Utc3RhY2stdiBzbWUtcG9zaXRpb24tc3RyZXRjaC1oXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCIgKm5nRm9yPVwibGV0IHRhYiBvZiB0cmF5VGFiczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlJvdXRlZFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cInRhYi5yb3V0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIiBbY2xhc3Muc21lLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAoc21lUm91dGVyTGlua0FjdGl2YXRlZCk9XCJzZWxlY3QodGFiKVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ0YWIucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGFiLnR5cGUgPT09IHBpdm90VGFiVHlwZS5TdGF0aWNcIiByb2xlPVwibWVudWl0ZW1cIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNtZS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCB0YWIuZGlzYWJsZWRcIiAoY2xpY2spPVwic2VsZWN0KHRhYilcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFiLmljb25DbGFzc1wiIFtjbGFzc109XCJ0YWIuaWNvbkNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3t0YWIubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NtZS1kcm9wZG93bj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2hlYWRlcj5cclxuPC9kaXY+XHJcbjwhLS0gUm91dGVkIFRhYiBDb250ZW50IC0tPlxyXG48c2VjdGlvbiAqbmdJZj1cImhhc1JvdXRlZFRhYnNcIiByb2xlPVwidGFicGFuZWxcIiBbaWRdPVwiaWRCYWcudGFiUGFuZWxcIiBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cIiFzZWxlY3Rpb25Jc1JvdXRlZFwiXHJcbiAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXNlbGVjdGlvbklzUm91dGVkXCI+XHJcbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG48L3NlY3Rpb24+XHJcblxyXG48IS0tIFN0YXRpYyBUYWIgQ29udGVudCAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N0YXRpY1RhYnNcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdmlzaWJsZVRhYnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gcGl2b3RUYWJUeXBlLlN0YXRpY1wiPlxyXG4gICAgICA8c2VjdGlvbiByb2xlPVwidGFicGFuZWxcIiBbaWRdPVwiaWRCYWcudGFiUGFuZWwgKyBpXCIgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCIhaXNTZWxlY3RlZCh0YWIpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhaXNTZWxlY3RlZCh0YWIpXCIgW2F0dHIudGFiaW5kZXhdPVwiZ2V0VGFiUGFuZWxJbmRleChpZEJhZy50YWJQYW5lbCArIGksIGlzU2VsZWN0ZWQodGFiKSlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKHN3aXRjaFRhYkJ5U2hvd0hpZGUgfHwgaXNTZWxlY3RlZCh0YWIpKSA/IHRhYi5jb250ZW50VGVtcGxhdGUgOiBudWxsXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -35,7 +35,7 @@ function PropertyGridComponent_sme_layout_item_5_span_6_Template(rf, ctx) { if (
35
35
  const _r16 = i0.ɵɵreference(2);
36
36
  i0.ɵɵproperty("title", item_r14.tooltip)("tooltipZone", _r16);
37
37
  } }
38
- function PropertyGridComponent_sme_layout_item_5_ng_container_7_Template(rf, ctx) { if (rf & 1) {
38
+ function PropertyGridComponent_sme_layout_item_5_ng_container_9_Template(rf, ctx) { if (rf & 1) {
39
39
  i0.ɵɵelementContainer(0);
40
40
  } }
41
41
  const _c4 = function (a0, a1) { return { $implicit: a0, index: a1 }; };
@@ -47,17 +47,11 @@ function PropertyGridComponent_sme_layout_item_5_Template(rf, ctx) { if (rf & 1)
47
47
  i0.ɵɵtext(5);
48
48
  i0.ɵɵelementEnd();
49
49
  i0.ɵɵtemplate(6, PropertyGridComponent_sme_layout_item_5_span_6_Template, 1, 2, "span", 17);
50
+ i0.ɵɵelementStart(7, "span", 18);
51
+ i0.ɵɵtext(8);
50
52
  i0.ɵɵelementEnd();
51
- i0.ɵɵtemplate(7, PropertyGridComponent_sme_layout_item_5_ng_container_7_Template, 1, 0, "ng-container", 18);
52
- i0.ɵɵelementStart(8, "span", 19);
53
- i0.ɵɵtext(9);
54
- i0.ɵɵelementEnd();
55
- i0.ɵɵelementStart(10, "span", 19);
56
- i0.ɵɵtext(11);
57
- i0.ɵɵelementEnd();
58
- i0.ɵɵelementStart(12, "span", 19);
59
- i0.ɵɵtext(13);
60
53
  i0.ɵɵelementEnd();
54
+ i0.ɵɵtemplate(9, PropertyGridComponent_sme_layout_item_5_ng_container_9_Template, 1, 0, "ng-container", 19);
61
55
  i0.ɵɵelementEnd();
62
56
  i0.ɵɵelementEnd();
63
57
  } if (rf & 2) {
@@ -69,20 +63,10 @@ function PropertyGridComponent_sme_layout_item_5_Template(rf, ctx) { if (rf & 1)
69
63
  i0.ɵɵtextInterpolate(item_r14.label);
70
64
  i0.ɵɵadvance(1);
71
65
  i0.ɵɵproperty("ngIf", item_r14.tooltip);
72
- i0.ɵɵadvance(1);
73
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.getTemplate(item_r14))("ngTemplateOutletContext", i0.ɵɵpureFunction2(12, _c4, item_r14, i_r15));
74
- i0.ɵɵadvance(1);
75
- i0.ɵɵproperty("id", ctx_r3.idBag.detailsSpan + i_r15);
76
- i0.ɵɵadvance(1);
66
+ i0.ɵɵadvance(2);
77
67
  i0.ɵɵtextInterpolate(item_r14.tooltip);
78
68
  i0.ɵɵadvance(1);
79
- i0.ɵɵproperty("id", ctx_r3.idBag.labelSpan + i_r15);
80
- i0.ɵɵadvance(1);
81
- i0.ɵɵtextInterpolate(item_r14.label);
82
- i0.ɵɵadvance(1);
83
- i0.ɵɵproperty("id", ctx_r3.idBag.valueSpan + i_r15);
84
- i0.ɵɵadvance(1);
85
- i0.ɵɵtextInterpolate(item_r14.value);
69
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.getTemplate(item_r14))("ngTemplateOutletContext", i0.ɵɵpureFunction2(7, _c4, item_r14, i_r15));
86
70
  } }
87
71
  function PropertyGridComponent_ng_template_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
88
72
  i0.ɵɵelementContainer(0);
@@ -99,7 +83,7 @@ function PropertyGridComponent_ng_template_6_span_2_Template(rf, ctx) { if (rf &
99
83
  } }
100
84
  function PropertyGridComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
101
85
  i0.ɵɵelementStart(0, "p", 21);
102
- i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_6_ng_container_1_Template, 1, 0, "ng-container", 18);
86
+ i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_6_ng_container_1_Template, 1, 0, "ng-container", 19);
103
87
  i0.ɵɵtemplate(2, PropertyGridComponent_ng_template_6_span_2_Template, 2, 1, "span", 22);
104
88
  i0.ɵɵelementEnd();
105
89
  } if (rf & 2) {
@@ -118,7 +102,7 @@ function PropertyGridComponent_ng_template_8_ng_container_1_Template(rf, ctx) {
118
102
  } }
119
103
  function PropertyGridComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
120
104
  i0.ɵɵelementStart(0, "p");
121
- i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_8_ng_container_1_Template, 1, 0, "ng-container", 18);
105
+ i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_8_ng_container_1_Template, 1, 0, "ng-container", 19);
122
106
  i0.ɵɵelementStart(2, "a", 23);
123
107
  i0.ɵɵlistener("click", function PropertyGridComponent_ng_template_8_Template_a_click_2_listener() { const item_r25 = ctx.$implicit; return item_r25.action(item_r25); });
124
108
  i0.ɵɵtext(3);
@@ -141,7 +125,7 @@ function PropertyGridComponent_ng_template_10_ng_container_1_Template(rf, ctx) {
141
125
  } }
142
126
  function PropertyGridComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
143
127
  i0.ɵɵelementStart(0, "p");
144
- i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_10_ng_container_1_Template, 1, 0, "ng-container", 18);
128
+ i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_10_ng_container_1_Template, 1, 0, "ng-container", 19);
145
129
  i0.ɵɵelementStart(2, "a", 24);
146
130
  i0.ɵɵtext(3);
147
131
  i0.ɵɵelementEnd();
@@ -164,7 +148,7 @@ function PropertyGridComponent_ng_template_12_ng_container_1_Template(rf, ctx) {
164
148
  } }
165
149
  function PropertyGridComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
166
150
  i0.ɵɵelementStart(0, "p");
167
- i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_12_ng_container_1_Template, 1, 0, "ng-container", 18);
151
+ i0.ɵɵtemplate(1, PropertyGridComponent_ng_template_12_ng_container_1_Template, 1, 0, "ng-container", 19);
168
152
  i0.ɵɵelementStart(2, "a", 25);
169
153
  i0.ɵɵelementStart(3, "span");
170
154
  i0.ɵɵtext(4);
@@ -347,12 +331,12 @@ export class PropertyGridComponent extends CoreBaseComponent {
347
331
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.externalLinkTemplate = _t.first);
348
332
  } }, inputs: { orientation: "orientation" }, outputs: { layoutChanged: "layoutChanged" }, features: [i0.ɵɵProvidersFeature([
349
333
  { provide: SME_LAYOUT_PROVIDER, useExisting: forwardRef((() => PropertyGridComponent)) }
350
- ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 16, vars: 6, consts: [[1, "sme-position-inset-none", "sme-position-stretch-h", 3, "padLastItem"], ["layout", ""], ["name", "narrow", 3, "until", "columns"], ["name", "medium", 3, "until", "columns", 4, "ngIf"], ["name", "wide", 3, "columns", 4, "ngIf"], [3, "columnSpan", "maxWidth", 4, "ngFor", "ngForOf"], ["readonlyTemplate", ""], ["actionLinkTemplate", ""], ["internalLinkTemplate", ""], ["externalLinkTemplate", ""], ["iconTemplate", ""], ["name", "medium", 3, "until", "columns"], ["name", "wide", 3, "columns"], [3, "columnSpan", "maxWidth"], ["smeTooltipZone", "", 1, "sme-property-grid-item"], ["zone", "smeTooltipZone"], ["aria-hidden", "true", 1, "sme-arrange-stack-h"], ["class", "sme-position-flex-none sme-icon sme-icon-info sme-info-bubble sme-margin-left-xs", 3, "title", "tooltipZone", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["aria-hidden", "true", 1, "sme-screen-reader", 3, "id"], [1, "sme-position-flex-none", "sme-icon", "sme-icon-info", "sme-info-bubble", "sme-margin-left-xs", 3, "title", "tooltipZone"], [1, "read-only-template"], [4, "ngIf"], ["tabindex", "0", "role", "link", 1, "sme-link", "sme-focus-zone", "action-link-template", 3, "click"], ["role", "link", 1, "sme-link", "sme-focus-zone", 3, "routerLink"], ["role", "link", "target", "_blank", 1, "sme-link", "sme-focus-zone", 3, "href"], [1, "sme-icon", "sme-icon-openInNewWindow", "sme-margin-left-xs"], [3, "class", 4, "ngIf"], ["class", "sme-layout-inline-block sme-margin-right-xs ", "size", "16px", 3, "status", 4, "ngIf"], ["size", "16px", 1, "sme-layout-inline-block", "sme-margin-right-xs", 3, "status"]], template: function PropertyGridComponent_Template(rf, ctx) { if (rf & 1) {
334
+ ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 16, vars: 6, consts: [[1, "sme-position-inset-none", "sme-position-stretch-h", 3, "padLastItem"], ["layout", ""], ["name", "narrow", 3, "until", "columns"], ["name", "medium", 3, "until", "columns", 4, "ngIf"], ["name", "wide", 3, "columns", 4, "ngIf"], [3, "columnSpan", "maxWidth", 4, "ngFor", "ngForOf"], ["readonlyTemplate", ""], ["actionLinkTemplate", ""], ["internalLinkTemplate", ""], ["externalLinkTemplate", ""], ["iconTemplate", ""], ["name", "medium", 3, "until", "columns"], ["name", "wide", 3, "columns"], [3, "columnSpan", "maxWidth"], ["smeTooltipZone", "", 1, "sme-property-grid-item"], ["zone", "smeTooltipZone"], [1, "sme-arrange-stack-h"], ["class", "sme-position-flex-none sme-icon sme-icon-info sme-info-bubble sme-margin-left-xs", "aria-hidden", "true", 3, "title", "tooltipZone", 4, "ngIf"], [1, "sme-screen-reader"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["aria-hidden", "true", 1, "sme-position-flex-none", "sme-icon", "sme-icon-info", "sme-info-bubble", "sme-margin-left-xs", 3, "title", "tooltipZone"], [1, "read-only-template"], [4, "ngIf"], ["tabindex", "0", "role", "link", 1, "sme-link", "sme-focus-zone", "action-link-template", 3, "click"], ["role", "link", 1, "sme-link", "sme-focus-zone", 3, "routerLink"], ["role", "link", "target", "_blank", 1, "sme-link", "sme-focus-zone", 3, "href"], [1, "sme-icon", "sme-icon-openInNewWindow", "sme-margin-left-xs"], [3, "class", 4, "ngIf"], ["class", "sme-layout-inline-block sme-margin-right-xs ", "size", "16px", 3, "status", 4, "ngIf"], ["size", "16px", 1, "sme-layout-inline-block", "sme-margin-right-xs", 3, "status"]], template: function PropertyGridComponent_Template(rf, ctx) { if (rf & 1) {
351
335
  i0.ɵɵelementStart(0, "sme-layout", 0, 1);
352
336
  i0.ɵɵelement(2, "sme-layout-definition", 2);
353
337
  i0.ɵɵtemplate(3, PropertyGridComponent_sme_layout_definition_3_Template, 1, 2, "sme-layout-definition", 3);
354
338
  i0.ɵɵtemplate(4, PropertyGridComponent_sme_layout_definition_4_Template, 1, 1, "sme-layout-definition", 4);
355
- i0.ɵɵtemplate(5, PropertyGridComponent_sme_layout_item_5_Template, 14, 15, "sme-layout-item", 5);
339
+ i0.ɵɵtemplate(5, PropertyGridComponent_sme_layout_item_5_Template, 10, 10, "sme-layout-item", 5);
356
340
  i0.ɵɵelementEnd();
357
341
  i0.ɵɵtemplate(6, PropertyGridComponent_ng_template_6_Template, 3, 8, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
358
342
  i0.ɵɵtemplate(8, PropertyGridComponent_ng_template_8_Template, 4, 8, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor);
@@ -410,4 +394,4 @@ __decorate([
410
394
  }], layoutChanged: [{
411
395
  type: Output
412
396
  }], changeDetector: [] }); })();
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEUsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ25CekUsNENBQTBJOzs7SUFBbEUsa0RBQTJCLGNBQUE7OztJQUNuRyw0Q0FBNEc7O0lBQXRDLDJCQUFhOzs7SUFNN0UsMkJBQXVLOzs7O0lBQW5ELHdDQUFzQixxQkFBQTs7O0lBRTVJLHdCQUFzRzs7OztJQVAxRywyQ0FDb0c7SUFDbEcsbUNBQTBFO0lBQ3hFLGlDQUFzRDtJQUNwRCw0QkFBTTtJQUFBLFlBQWM7SUFBQSxpQkFBTztJQUMzQiwyRkFBdUs7SUFDekssaUJBQVE7SUFDUiwyR0FBc0c7SUFDdEcsZ0NBQWdGO0lBQUEsWUFBZ0I7SUFBQSxp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QUMsaUJBQWlCLENBQUM7OEJBQ0wsaUJBQWlCOzZEQUFDO3VGQXpDakMscUJBQXFCO2NBUGpDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUU7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsc0JBQXNCLEVBQUMsRUFBRTtpQkFDekY7YUFDSjs7c0JBNENvQyxRQUFROztzQkFBSSxRQUFROztzQkFBSSxNQUFNO3VCQUFDLG1CQUFtQjt3QkFwQzVFLEtBQUs7a0JBRFgsZUFBZTttQkFBQyx5QkFBeUI7WUFJbkMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUl4QyxrQkFBa0I7a0JBRHhCLFNBQVM7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBSTFDLG9CQUFvQjtrQkFEMUIsU0FBUzttQkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFJNUMsb0JBQW9CO2tCQUQxQixTQUFTO21CQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQWM1QyxXQUFXO2tCQURqQixLQUFLO1lBT0MsYUFBYTtrQkFEbkIsTUFBTTtZQUlDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFNraXBTZWxmLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWVJbmplY3QgfSBmcm9tICcuLi9jb21tb24vZGVjb3JhdG9ycy9pbmplY3Rpb24uZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogVGhlIHBhbmUgb3JpZW50YXRpb24gb2YgdGhlIHNwbGl0IHZpZXcuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQcm9wZXJ0eUdyaWRPcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIFByb3BlcnR5IEdyaWQgQGlkIHNtZS1wcm9wZXJ0eS1ncmlkLWNvbXBvbmVudH1cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBCYXNpYyBVc2FnZSBAaWQgYmFzaWMtdXNhZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFzaWMtdXNhZ2UuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgVmVydGljYWwgT3JpZW50YXRpb24gQGlkIHZlcnRpY2FsLW9yaWVudGF0aW9ufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3ZlcnRpY2FsLW9yaWVudGF0aW9uLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEl0ZW0gd2l0aCBhIExpbmsgQGlkIGxpbmstaXRlbX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9saW5rLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbSB3aXRoIGEgVG9vbHRpcCBAaWQgdG9vbHRpcC1pdGVtfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3Rvb2x0aXAtaXRlbS5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBJdGVtIHdpdGggYSBBY3Rpb24gQGlkIGFjdGlvbi1pdGVtfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hY3Rpb24taXRlbS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbSBTcGFubmluZyBNdWx0aXBsZSBDb2x1bW5zIEBpZCBtdWx0aS1jb2x1bW59XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvbXVsdGktY29sdW1uLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbXMgd2l0aCBTdGF0dXMgYW5kIEljb25zIEBpZCBzdGF0dXMtYW5kLWljb25zfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3N0YXR1cy1pdGVtLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEl0ZW1zIHdpdGggY29tcGxleCB2YWx1ZSB0eXBlcyBAaWQgY29tcGxleC12YWx1ZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9jb21wbGV4LXZhbHVlcy5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcHJvcGVydHktZ3JpZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IFNNRV9MQVlPVVRfUFJPVklERVIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByb3BlcnR5R3JpZENvbXBvbmVudCkgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBMYXlvdXQsIE9uQ2hhbmdlcyB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNpYyBjb2x1bW4gd2lkdGggZm9yIHRoZSBwcm9wZXJ0eSBncmlkIGl0ZW1zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGF5b3V0SXRlbVdpZHRoID0gMzAwO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBpdGVtczogUXVlcnlMaXN0PFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3JlYWRvbmx5VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHJlYWRvbmx5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2FjdGlvbkxpbmtUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgYWN0aW9uTGlua1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnRlcm5hbExpbmtUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgaW50ZXJuYWxMaW5rVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2V4dGVybmFsTGlua1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBleHRlcm5hbExpbmtUZW1wbGF0ZTogVGVtcGxhdGVSZWY8UHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1Byb3BlcnR5R3JpZENvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgb3JpZW50YXRpb246IFByb3BlcnR5R3JpZE9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIExheW91dCBpbnRlcmZhY2VcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgbGF5b3V0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBTbWVJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoU01FX0xBWU9VVF9QUk9WSURFUikgcHJpdmF0ZSBsYXlvdXQ6IExheW91dCkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICAvLyBvbGQgc3R5bGUgc3VwcG9ydGVkIHNtZS1wcm9wZXJ0eS1ncmlkLWFycmFuZ2UtdmVydGljYWwgY2xhc3MuIGRlZmF1bHQgdG8gdmVydGljYWwgb3JpZW50YXRpb24gaWYgdGhpcyBjbGFzcyBpcyBhcHBsaWVkLlxyXG4gICAgICAgIGNvbnN0IGhhc1ZlcnRpY2FsQ2xhc3MgPSAoPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdzbWUtcHJvcGVydHktZ3JpZC1hcnJhbmdlLXZlcnRpY2FsJyk7XHJcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IGhhc1ZlcnRpY2FsQ2xhc3MgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnO1xyXG5cclxuICAgICAgICAvLyBvbiBwYXJlbnQgbGF5b3V0IGNoYW5nZXMsIHJlLWVtaXQgdGhlIGxheW91dCBjaGFuZ2UgdG8gb3VyIGV2ZW50XHJcbiAgICAgICAgaWYgKGxheW91dCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RyaW5naWZ5VmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmIChNc2Z0U21lLmlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICctJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAodiA9PiB0aGlzLnN0cmluZ2lmeVZhbHVlKHYpKS5qb2luKCcsXFxuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNc2Z0U21lLmlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VGVtcGxhdGUoaXRlbTogUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmIChpdGVtLmFjdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25MaW5rVGVtcGxhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLmxpbmspIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uaXNFeHRlcm5hbExpbmspIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVybmFsTGlua1RlbXBsYXRlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxMaW5rVGVtcGxhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHlUZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKiBpZCB2YWx1ZXMgd2lsbCBiZSBhc3NpZ25lZCBiZSB0aGUgQHNlZSBCYXNlQ29tcG9uZW50IHN1cGVyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZGV0YWlsc1NwYW46ICcnLFxyXG4gICAgICAgICAgICBsYWJlbFNwYW46ICcnLFxyXG4gICAgICAgICAgICB2YWx1ZVNwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGluaXRpYWwgaG9zdCBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRJbml0aWFsSG9zdENsYXNzZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpLmNvbmNhdChbXHJcbiAgICAgICAgICAgICdzbWUtcHJvcGVydHktZ3JpZCcsXHJcbiAgICAgICAgICAgICdzbWUtbGF5b3V0LXJlbGF0aXZlJyxcclxuICAgICAgICAgICAgJ3NtZS1mb2N1cy16b25lJ1xyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxzbWUtbGF5b3V0ICNsYXlvdXQgW3BhZExhc3RJdGVtXT1cInRydWVcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1pbnNldC1ub25lIHNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIj5cclxuICA8c21lLWxheW91dC1kZWZpbml0aW9uIG5hbWU9XCJuYXJyb3dcIiBbdW50aWxdPVwibGF5b3V0SXRlbVdpZHRoXCIgW2NvbHVtbnNdPVwiMVwiPjwvc21lLWxheW91dC1kZWZpbml0aW9uPlxyXG4gIDxzbWUtbGF5b3V0LWRlZmluaXRpb24gKm5nSWY9XCJvcmllbnRhdGlvbiAhPT0gJ3ZlcnRpY2FsJ1wiIG5hbWU9XCJtZWRpdW1cIiBbdW50aWxdPVwibGF5b3V0SXRlbVdpZHRoKjJcIiBbY29sdW1uc109XCIyXCI+PC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbiAgPHNtZS1sYXlvdXQtZGVmaW5pdGlvbiAqbmdJZj1cIm9yaWVudGF0aW9uICE9PSAndmVydGljYWwnXCIgbmFtZT1cIndpZGVcIiBbY29sdW1uc109XCIzXCI+PC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbiAgPHNtZS1sYXlvdXQtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiIFtjb2x1bW5TcGFuXT1cIml0ZW0uY29sdW1uU3BhblwiXHJcbiAgICAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwib3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyBudWxsIDogaXRlbS5jb2x1bW5TcGFuICogbGF5b3V0SXRlbVdpZHRoXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLXByb3BlcnR5LWdyaWQtaXRlbVwiICN6b25lPVwic21lVG9vbHRpcFpvbmVcIiBzbWVUb29sdGlwWm9uZT5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxzcGFuPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtaWNvbiBzbWUtaWNvbi1pbmZvIHNtZS1pbmZvLWJ1YmJsZSBzbWUtbWFyZ2luLWxlZnQteHNcIiAqbmdJZj1cIml0ZW0udG9vbHRpcFwiIFt0aXRsZV09XCJpdGVtLnRvb2x0aXBcIiBbdG9vbHRpcFpvbmVdPVwiem9uZVwiPjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKGl0ZW0pO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5kZXRhaWxzU3BhbiArIGlcIj57e2l0ZW0udG9vbHRpcH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmxhYmVsU3BhbiArIGlcIj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy52YWx1ZVNwYW4gKyBpXCI+e3tpdGVtLnZhbHVlfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NtZS1sYXlvdXQtaXRlbT5cclxuPC9zbWUtbGF5b3V0PlxyXG5cclxuPCEtLSBSZWFkIG9ubHkgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XHJcbiAgPHAgY2xhc3M9XCJyZWFkLW9ubHktdGVtcGxhdGVcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWRCYWcubGFiZWxTcGFuICsgaVwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0ubGluayAmJiAhaXRlbS5hY3Rpb25cIj57e3N0cmluZ2lmeVZhbHVlKGl0ZW0udmFsdWUpfX08L3NwYW4+XHJcbiAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBBY3Rpb24gbGluayAocm9sZSBidXR0b24pIC0tPlxyXG48bmctdGVtcGxhdGUgI2FjdGlvbkxpbmtUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XHJcbiAgPHA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwic21lLWxpbmsgc21lLWZvY3VzLXpvbmUgYWN0aW9uLWxpbmstdGVtcGxhdGVcIiByb2xlPVwibGlua1wiIChjbGljayk9XCJpdGVtLmFjdGlvbihpdGVtKVwiXHJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiKGlkQmFnLmxhYmVsU3BhbiArIGkpICsgJyAnICsgKGlkQmFnLnZhbHVlU3BhbiArIGkpXCJcclxuICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+e3tpdGVtLnZhbHVlfX08L2E+XHJcbiAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBJbnRlcm5hbCBsaW5rIC0tPlxyXG48bmctdGVtcGxhdGUgI2ludGVybmFsTGlua1RlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICA8cD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0Oml0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGEgY2xhc3M9XCJzbWUtbGluayBzbWUtZm9jdXMtem9uZVwiIHJvbGU9XCJsaW5rXCIgW3JvdXRlckxpbmtdPVwiaXRlbS5saW5rXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIihpZEJhZy5sYWJlbFNwYW4gKyBpKSArICcgJyArIChpZEJhZy52YWx1ZVNwYW4gKyBpKVwiXHJcbiAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkQmFnLmRldGFpbHNTcGFuICsgaVwiPnt7aXRlbS52YWx1ZX19PC9hPlxyXG4gIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gRXh0ZXJuYWwgbGluayAtLT5cclxuPG5nLXRlbXBsYXRlICNleHRlcm5hbExpbmtUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XHJcbiAgPHA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxhIGNsYXNzPVwic21lLWxpbmsgc21lLWZvY3VzLXpvbmVcIiByb2xlPVwibGlua1wiIFtocmVmXT1cIml0ZW0ubGlua1wiIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiKGlkQmFnLmxhYmVsU3BhbiArIGkpICsgJyAnICsgKGlkQmFnLnZhbHVlU3BhbiArIGkpXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZEJhZy5kZXRhaWxzU3BhbiArIGlcIj5cclxuICAgICAgPHNwYW4+e3tpdGVtLnZhbHVlfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tb3BlbkluTmV3V2luZG93IHNtZS1tYXJnaW4tbGVmdC14c1wiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEljb24gVGVtcGxhdGUgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICA8c3BhbiAqbmdJZj1cIiEhaXRlbS5pY29uQ2xhc3NcIiBjbGFzcz1cInNtZS1tYXJnaW4tcmlnaHQteHMgc21lLWljb24ge3tpdGVtLmljb25DbGFzc319XCI+PC9zcGFuPlxyXG4gIDxzbWUtc3RhdHVzLWljb24gKm5nSWY9XCJpdGVtLnN0YXR1cyAhPT0gbnVsbCAmJiAhaXRlbS5pY29uQ2xhc3NcIiBjbGFzcz1cInNtZS1sYXlvdXQtaW5saW5lLWJsb2NrIHNtZS1tYXJnaW4tcmlnaHQteHMgXCJcclxuICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiaXRlbS5zdGF0dXNcIiBzaXplPVwiMTZweFwiPjwvc21lLXN0YXR1cy1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEUsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ25CekUsNENBQTBJOzs7SUFBbEUsa0RBQTJCLGNBQUE7OztJQUNuRyw0Q0FBNEc7O0lBQXRDLDJCQUFhOzs7SUFNN0UsMkJBQTBMOzs7O0lBQXRFLHdDQUFzQixxQkFBQTs7O0lBSTVJLHdCQUFzRzs7OztJQVQxRywyQ0FDb0c7SUFDbEcsbUNBQTBFO0lBQ3hFLGlDQUFtQztJQUNqQyw0QkFBTTtJQUFBLFlBQWM7SUFBQSxpQkFBTztJQUMzQiwyRkFBMEw7SUFFMUwsZ0NBQWdDO0lBQUEsWUFBa0I7SUFBQSxpQkFBTztJQUMzRCxpQkFBUTtJQUNSLDJH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QUFHLEVBQUUsc0JBQXNCLEVBQUMsRUFBRTtpQkFDekY7YUFDSjs7c0JBNENvQyxRQUFROztzQkFBSSxRQUFROztzQkFBSSxNQUFNO3VCQUFDLG1CQUFtQjt3QkFwQzVFLEtBQUs7a0JBRFgsZUFBZTttQkFBQyx5QkFBeUI7WUFJbkMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUl4QyxrQkFBa0I7a0JBRHhCLFNBQVM7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBSTFDLG9CQUFvQjtrQkFEMUIsU0FBUzttQkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFJNUMsb0JBQW9CO2tCQUQxQixTQUFTO21CQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQWM1QyxXQUFXO2tCQURqQixLQUFLO1lBT0MsYUFBYTtrQkFEbkIsTUFBTTtZQUlDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFNraXBTZWxmLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWVJbmplY3QgfSBmcm9tICcuLi9jb21tb24vZGVjb3JhdG9ycy9pbmplY3Rpb24uZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogVGhlIHBhbmUgb3JpZW50YXRpb24gb2YgdGhlIHNwbGl0IHZpZXcuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQcm9wZXJ0eUdyaWRPcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIFByb3BlcnR5IEdyaWQgQGlkIHNtZS1wcm9wZXJ0eS1ncmlkLWNvbXBvbmVudH1cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBCYXNpYyBVc2FnZSBAaWQgYmFzaWMtdXNhZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFzaWMtdXNhZ2UuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgVmVydGljYWwgT3JpZW50YXRpb24gQGlkIHZlcnRpY2FsLW9yaWVudGF0aW9ufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3ZlcnRpY2FsLW9yaWVudGF0aW9uLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEl0ZW0gd2l0aCBhIExpbmsgQGlkIGxpbmstaXRlbX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9saW5rLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbSB3aXRoIGEgVG9vbHRpcCBAaWQgdG9vbHRpcC1pdGVtfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3Rvb2x0aXAtaXRlbS5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBJdGVtIHdpdGggYSBBY3Rpb24gQGlkIGFjdGlvbi1pdGVtfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hY3Rpb24taXRlbS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbSBTcGFubmluZyBNdWx0aXBsZSBDb2x1bW5zIEBpZCBtdWx0aS1jb2x1bW59XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvbXVsdGktY29sdW1uLWl0ZW0uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgSXRlbXMgd2l0aCBTdGF0dXMgYW5kIEljb25zIEBpZCBzdGF0dXMtYW5kLWljb25zfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3N0YXR1cy1pdGVtLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEl0ZW1zIHdpdGggY29tcGxleCB2YWx1ZSB0eXBlcyBAaWQgY29tcGxleC12YWx1ZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9jb21wbGV4LXZhbHVlcy5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcHJvcGVydHktZ3JpZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IFNNRV9MQVlPVVRfUFJPVklERVIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByb3BlcnR5R3JpZENvbXBvbmVudCkgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBMYXlvdXQsIE9uQ2hhbmdlcyB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNpYyBjb2x1bW4gd2lkdGggZm9yIHRoZSBwcm9wZXJ0eSBncmlkIGl0ZW1zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGF5b3V0SXRlbVdpZHRoID0gMzAwO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBpdGVtczogUXVlcnlMaXN0PFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3JlYWRvbmx5VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHJlYWRvbmx5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2FjdGlvbkxpbmtUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgYWN0aW9uTGlua1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnRlcm5hbExpbmtUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgaW50ZXJuYWxMaW5rVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2V4dGVybmFsTGlua1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBleHRlcm5hbExpbmtUZW1wbGF0ZTogVGVtcGxhdGVSZWY8UHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1Byb3BlcnR5R3JpZENvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgb3JpZW50YXRpb246IFByb3BlcnR5R3JpZE9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIExheW91dCBpbnRlcmZhY2VcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgbGF5b3V0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBTbWVJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoU01FX0xBWU9VVF9QUk9WSURFUikgcHJpdmF0ZSBsYXlvdXQ6IExheW91dCkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICAvLyBvbGQgc3R5bGUgc3VwcG9ydGVkIHNtZS1wcm9wZXJ0eS1ncmlkLWFycmFuZ2UtdmVydGljYWwgY2xhc3MuIGRlZmF1bHQgdG8gdmVydGljYWwgb3JpZW50YXRpb24gaWYgdGhpcyBjbGFzcyBpcyBhcHBsaWVkLlxyXG4gICAgICAgIGNvbnN0IGhhc1ZlcnRpY2FsQ2xhc3MgPSAoPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdzbWUtcHJvcGVydHktZ3JpZC1hcnJhbmdlLXZlcnRpY2FsJyk7XHJcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IGhhc1ZlcnRpY2FsQ2xhc3MgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnO1xyXG5cclxuICAgICAgICAvLyBvbiBwYXJlbnQgbGF5b3V0IGNoYW5nZXMsIHJlLWVtaXQgdGhlIGxheW91dCBjaGFuZ2UgdG8gb3VyIGV2ZW50XHJcbiAgICAgICAgaWYgKGxheW91dCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RyaW5naWZ5VmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmIChNc2Z0U21lLmlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICctJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAodiA9PiB0aGlzLnN0cmluZ2lmeVZhbHVlKHYpKS5qb2luKCcsXFxuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNc2Z0U21lLmlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VGVtcGxhdGUoaXRlbTogUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmIChpdGVtLmFjdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25MaW5rVGVtcGxhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLmxpbmspIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uaXNFeHRlcm5hbExpbmspIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVybmFsTGlua1RlbXBsYXRlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxMaW5rVGVtcGxhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHlUZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKiBpZCB2YWx1ZXMgd2lsbCBiZSBhc3NpZ25lZCBiZSB0aGUgQHNlZSBCYXNlQ29tcG9uZW50IHN1cGVyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZGV0YWlsc1NwYW46ICcnLFxyXG4gICAgICAgICAgICBsYWJlbFNwYW46ICcnLFxyXG4gICAgICAgICAgICB2YWx1ZVNwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGluaXRpYWwgaG9zdCBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRJbml0aWFsSG9zdENsYXNzZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpLmNvbmNhdChbXHJcbiAgICAgICAgICAgICdzbWUtcHJvcGVydHktZ3JpZCcsXHJcbiAgICAgICAgICAgICdzbWUtbGF5b3V0LXJlbGF0aXZlJyxcclxuICAgICAgICAgICAgJ3NtZS1mb2N1cy16b25lJ1xyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxzbWUtbGF5b3V0ICNsYXlvdXQgW3BhZExhc3RJdGVtXT1cInRydWVcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1pbnNldC1ub25lIHNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIj5cclxuICA8c21lLWxheW91dC1kZWZpbml0aW9uIG5hbWU9XCJuYXJyb3dcIiBbdW50aWxdPVwibGF5b3V0SXRlbVdpZHRoXCIgW2NvbHVtbnNdPVwiMVwiPjwvc21lLWxheW91dC1kZWZpbml0aW9uPlxyXG4gIDxzbWUtbGF5b3V0LWRlZmluaXRpb24gKm5nSWY9XCJvcmllbnRhdGlvbiAhPT0gJ3ZlcnRpY2FsJ1wiIG5hbWU9XCJtZWRpdW1cIiBbdW50aWxdPVwibGF5b3V0SXRlbVdpZHRoKjJcIiBbY29sdW1uc109XCIyXCI+PC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbiAgPHNtZS1sYXlvdXQtZGVmaW5pdGlvbiAqbmdJZj1cIm9yaWVudGF0aW9uICE9PSAndmVydGljYWwnXCIgbmFtZT1cIndpZGVcIiBbY29sdW1uc109XCIzXCI+PC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbiAgPHNtZS1sYXlvdXQtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiIFtjb2x1bW5TcGFuXT1cIml0ZW0uY29sdW1uU3BhblwiXHJcbiAgICAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwib3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyBudWxsIDogaXRlbS5jb2x1bW5TcGFuICogbGF5b3V0SXRlbVdpZHRoXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLXByb3BlcnR5LWdyaWQtaXRlbVwiICN6b25lPVwic21lVG9vbHRpcFpvbmVcIiBzbWVUb29sdGlwWm9uZT5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiPlxyXG4gICAgICAgIDxzcGFuPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtaWNvbiBzbWUtaWNvbi1pbmZvIHNtZS1pbmZvLWJ1YmJsZSBzbWUtbWFyZ2luLWxlZnQteHNcIiAqbmdJZj1cIml0ZW0udG9vbHRpcFwiIFt0aXRsZV09XCJpdGVtLnRvb2x0aXBcIiBbdG9vbHRpcFpvbmVdPVwiem9uZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8IS0tIGluIHNjYW4gbW9kZSBzY3JlZW4gcmVhZGVyIGRvZXMgbm90IGZvY3VzIG9uIHRoZSBpbmZvIGljb24gcHJvcGVybHkgdG8gcmVhZCB0aGUgdGl0bGUgLS0+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiPnt7IGl0ZW0udG9vbHRpcCB9fTwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKGl0ZW0pO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc21lLWxheW91dC1pdGVtPlxyXG48L3NtZS1sYXlvdXQ+XHJcblxyXG48IS0tIFJlYWQgb25seSAtLT5cclxuPG5nLXRlbXBsYXRlICNyZWFkb25seVRlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICA8cCBjbGFzcz1cInJlYWQtb25seS10ZW1wbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZEJhZy5sYWJlbFNwYW4gKyBpXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZEJhZy5kZXRhaWxzU3BhbiArIGlcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0Oml0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5saW5rICYmICFpdGVtLmFjdGlvblwiPnt7c3RyaW5naWZ5VmFsdWUoaXRlbS52YWx1ZSl9fTwvc3Bhbj5cclxuICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEFjdGlvbiBsaW5rIChyb2xlIGJ1dHRvbikgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjYWN0aW9uTGlua1RlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICA8cD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0Oml0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJzbWUtbGluayBzbWUtZm9jdXMtem9uZSBhY3Rpb24tbGluay10ZW1wbGF0ZVwiIHJvbGU9XCJsaW5rXCIgKGNsaWNrKT1cIml0ZW0uYWN0aW9uKGl0ZW0pXCJcclxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIoaWRCYWcubGFiZWxTcGFuICsgaSkgKyAnICcgKyAoaWRCYWcudmFsdWVTcGFuICsgaSlcIlxyXG4gICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZEJhZy5kZXRhaWxzU3BhbiArIGlcIj57e2l0ZW0udmFsdWV9fTwvYT5cclxuICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEludGVybmFsIGxpbmsgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaW50ZXJuYWxMaW5rVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LWk9XCJpbmRleFwiPlxyXG4gIDxwPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZTtjb250ZXh0OnskaW1wbGljaXQ6aXRlbSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8YSBjbGFzcz1cInNtZS1saW5rIHNtZS1mb2N1cy16b25lXCIgcm9sZT1cImxpbmtcIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiKGlkQmFnLmxhYmVsU3BhbiArIGkpICsgJyAnICsgKGlkQmFnLnZhbHVlU3BhbiArIGkpXCJcclxuICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+e3tpdGVtLnZhbHVlfX08L2E+XHJcbiAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBFeHRlcm5hbCBsaW5rIC0tPlxyXG48bmctdGVtcGxhdGUgI2V4dGVybmFsTGlua1RlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICA8cD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0Oml0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGEgY2xhc3M9XCJzbWUtbGluayBzbWUtZm9jdXMtem9uZVwiIHJvbGU9XCJsaW5rXCIgW2hyZWZdPVwiaXRlbS5saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIoaWRCYWcubGFiZWxTcGFuICsgaSkgKyAnICcgKyAoaWRCYWcudmFsdWVTcGFuICsgaSlcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkQmFnLmRldGFpbHNTcGFuICsgaVwiPlxyXG4gICAgICA8c3Bhbj57e2l0ZW0udmFsdWV9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1vcGVuSW5OZXdXaW5kb3cgc21lLW1hcmdpbi1sZWZ0LXhzXCI+PC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gSWNvbiBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LWk9XCJpbmRleFwiPlxyXG4gIDxzcGFuICpuZ0lmPVwiISFpdGVtLmljb25DbGFzc1wiIGNsYXNzPVwic21lLW1hcmdpbi1yaWdodC14cyBzbWUtaWNvbiB7e2l0ZW0uaWNvbkNsYXNzfX1cIj48L3NwYW4+XHJcbiAgPHNtZS1zdGF0dXMtaWNvbiAqbmdJZj1cIml0ZW0uc3RhdHVzICE9PSBudWxsICYmICFpdGVtLmljb25DbGFzc1wiIGNsYXNzPVwic21lLWxheW91dC1pbmxpbmUtYmxvY2sgc21lLW1hcmdpbi1yaWdodC14cyBcIlxyXG4gICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJpdGVtLnN0YXR1c1wiIHNpemU9XCIxNnB4XCI+PC9zbWUtc3RhdHVzLWljb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -46,10 +46,10 @@ export class SchemaFormContentComponent {
46
46
  }
47
47
  }
48
48
  get isFormValid() {
49
- return this.fieldHostComponent.isValid();
49
+ return !!this.fieldHostComponent && this.fieldHostComponent.isValid();
50
50
  }
51
51
  get isFormDirty() {
52
- return this.fieldHostComponent.isDirty();
52
+ return !!this.fieldHostComponent && this.fieldHostComponent.isDirty();
53
53
  }
54
54
  onFormActionExecuted(action, data) {
55
55
  this.formActionExecuted.emit({ action: action, data: data });
@@ -61,7 +61,10 @@ export class SchemaFormContentComponent {
61
61
  this.context.formController = this.formController;
62
62
  }
63
63
  getFormContainerLoaderComponent() {
64
- return this.fieldHostComponent.getFormFieldLoaderComponent();
64
+ if (this.fieldHostComponent) {
65
+ return this.fieldHostComponent.getFormFieldLoaderComponent();
66
+ }
67
+ return null;
65
68
  }
66
69
  }
67
70
  /** @nocollapse */ SchemaFormContentComponent.ɵfac = function SchemaFormContentComponent_Factory(t) { return new (t || SchemaFormContentComponent)(); };
@@ -95,4 +98,4 @@ export class SchemaFormContentComponent {
95
98
  }], formActionExecuted: [{
96
99
  type: Output
97
100
  }] }); })();
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3NjaGVtYS1mb3JtL3NjaGVtYS1mb3JtLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQzVELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBa0MsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqSCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztJQ0puRiw4QkFBeUM7SUFDckMsZ0RBQTZKO0lBQTVHLDhOQUFlLG9RQUFBO0lBQTZGLGlCQUF3QjtJQUN6TCxpQkFBTTs7O0lBRHFCLGVBQXlCO0lBQXpCLDhDQUF5QixxQkFBQSwyQkFBQTs7QURLcEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQWlEVyx1QkFBa0IsR0FBZ0QsSUFBSSxZQUFZLEVBQWlDLENBQUM7S0FxQjlIO0lBM0RHOztPQUVHO0lBQ0gsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWU7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQWlCRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBQ00sb0JBQW9CLENBQUMsTUFBYyxFQUFFLElBQVM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNNLFFBQVE7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN0RCxDQUFDO0lBQ00sK0JBQStCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDakUsQ0FBQzs7dUhBakVRLDBCQUEwQjtrRkFBMUIsMEJBQTBCO3VCQUl4Qix3QkFBd0I7Ozs7O1FDbEJ2QywyRUFFTTs7UUFGQSxpQ0FBWTs7dUZEY0wsMEJBQTBCO2NBSnRDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxXQUFXLEVBQUUsc0NBQXNDO2FBQ3REO2dCQU1VLGtCQUFrQjtrQkFEeEIsU0FBUzttQkFBQyx3QkFBd0I7WUFPeEIsTUFBTTtrQkFEaEIsS0FBSztZQVlLLElBQUk7a0JBRGQsS0FBSztZQWtCQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLGtCQUFrQjtrQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50LCBTY2hlbWFGaWVsZExvYWRlckNvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9zY2hlbWEvc2NoZW1hLWZpZWxkLWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVNjaGVtYSwgRm9ybURhdGEsIFNjaGVtYUZpZWxkQ29udGV4dCB9IGZyb20gJy4uL3NjaGVtYS9zY2hlbWEtbW9kZWxzJztcclxuXHJcbi8qKlxyXG4gKiBTY2hlbWEgRm9ybSBDb21wb25lbnRcclxuICogSXQgdGFrZXMgdGhlIHNjaGVtYSBhbmQgZGF0YSBhbmQgb3RoZXIgbmVjZXNzYXJ5IGlucHV0cyB0aGVuIGR5bmFtaWNhbGx5IHJlbmRlcnMgdGhlIGZvcm0gVUkuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNjaGVtYS1mb3JtLWNvbnRlbnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVtYS1mb3JtLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFGb3JtQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIGludGVybmFsU2NoZW1hOiBEYXRhU2NoZW1hO1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbERhdGE6IEZvcm1EYXRhO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50KVxyXG4gICAgcHVibGljIGZpZWxkSG9zdENvbXBvbmVudDogU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZ2V0cyBhbmQgc2V0cyB0aGUgc2NoZW1hLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBzY2hlbWEoKTogRGF0YVNjaGVtYSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTY2hlbWE7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHNjaGVtYSh2YWx1ZTogRGF0YVNjaGVtYSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTY2hlbWEgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGdldHMgYW5kIHNldHMgdGhlIGZvcm0gZGF0YS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBGb3JtRGF0YSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxEYXRhO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBGb3JtRGF0YSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxEYXRhID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZm9ybURhdGEgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnRleHQ6IFNjaGVtYUZpZWxkQ29udGV4dDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmb3JtIGNvbnRyb2xsZXIgIHdoaWNoIGlzIHVzZWQgdG8gcHJvdmlkZSBzb21lIGJlaGF2aW9ycyBmcm9tIHRoZSBob3N0IG9mIHRoZSBmb3JtLlxyXG4gICAgICogQ3VzdG9tIHZhbGlkYXRpb24gbWV0aG9kcyBjYW4gYmUgcHJvdmlkZWQgYnkgaXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2xsZXI6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzRWRpdG9yTW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBmb3JtQWN0aW9uRXhlY3V0ZWQ6IEV2ZW50RW1pdHRlcjx7IGFjdGlvbjogc3RyaW5nLCBkYXRhOiBhbnkgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBzdHJpbmcsIGRhdGE6IGFueSB9PigpO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRIb3N0Q29tcG9uZW50LmlzVmFsaWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzRm9ybURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkSG9zdENvbXBvbmVudC5pc0RpcnR5KCk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgb25Gb3JtQWN0aW9uRXhlY3V0ZWQoYWN0aW9uOiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUFjdGlvbkV4ZWN1dGVkLmVtaXQoeyBhY3Rpb246IGFjdGlvbiwgZGF0YTogZGF0YSB9KTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBuZXcgU2NoZW1hRmllbGRDb250ZXh0KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmlzRWRpdG9yTW9kZSA9IHRoaXMuaXNFZGl0b3JNb2RlO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5mb3JtRGF0YSA9IHRoaXMuZGF0YTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZm9ybUNvbnRyb2xsZXIgPSB0aGlzLmZvcm1Db250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldEZvcm1Db250YWluZXJMb2FkZXJDb21wb25lbnQoKTogU2NoZW1hRmllbGRMb2FkZXJDb21wb25lbnRCYXNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZEhvc3RDb21wb25lbnQuZ2V0Rm9ybUZpZWxkTG9hZGVyQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInNjaGVtYVwiIGNsYXNzPVwiZm9ybS1jb250ZW50XCI+XHJcbiAgICA8c21lLXNjaGVtYS1maWVsZC1ob3N0IFtwcm9wZXJ0eVNjaGVtYV09XCJzY2hlbWFcIiBbKGRhdGEpXT1cImRhdGFcIiBbY29udGV4dF09XCJjb250ZXh0XCIgKGZvcm1BY3Rpb25FeGVjdXRlZCk9XCJvbkZvcm1BY3Rpb25FeGVjdXRlZCgkZXZlbnQuYWN0aW9uLCAkZXZlbnQuZGF0YSlcIj48L3NtZS1zY2hlbWEtZmllbGQtaG9zdD5cclxuPC9kaXY+Il19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3NjaGVtYS1mb3JtL3NjaGVtYS1mb3JtLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQzVELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBa0MsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqSCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztJQ0puRiw4QkFBeUM7SUFDckMsZ0RBQTZKO0lBQTVHLDhOQUFlLG9RQUFBO0lBQTZGLGlCQUF3QjtJQUN6TCxpQkFBTTs7O0lBRHFCLGVBQXlCO0lBQXpCLDhDQUF5QixxQkFBQSwyQkFBQTs7QURLcEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQWlEVyx1QkFBa0IsR0FBZ0QsSUFBSSxZQUFZLEVBQWlDLENBQUM7S0F5QjlIO0lBL0RHOztPQUVHO0lBQ0gsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWU7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQWlCRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUNNLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxJQUFTO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDdEQsQ0FBQztJQUNNLCtCQUErQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ2hFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7dUhBckVRLDBCQUEwQjtrRkFBMUIsMEJBQTBCO3VCQUl4Qix3QkFBd0I7Ozs7O1FDbEJ2QywyRUFFTTs7UUFGQSxpQ0FBWTs7dUZEY0wsMEJBQTBCO2NBSnRDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxXQUFXLEVBQUUsc0NBQXNDO2FBQ3REO2dCQU1VLGtCQUFrQjtrQkFEeEIsU0FBUzttQkFBQyx3QkFBd0I7WUFPeEIsTUFBTTtrQkFEaEIsS0FBSztZQVlLLElBQUk7a0JBRGQsS0FBSztZQWtCQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLGtCQUFrQjtrQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50LCBTY2hlbWFGaWVsZExvYWRlckNvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9zY2hlbWEvc2NoZW1hLWZpZWxkLWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVNjaGVtYSwgRm9ybURhdGEsIFNjaGVtYUZpZWxkQ29udGV4dCB9IGZyb20gJy4uL3NjaGVtYS9zY2hlbWEtbW9kZWxzJztcclxuXHJcbi8qKlxyXG4gKiBTY2hlbWEgRm9ybSBDb21wb25lbnRcclxuICogSXQgdGFrZXMgdGhlIHNjaGVtYSBhbmQgZGF0YSBhbmQgb3RoZXIgbmVjZXNzYXJ5IGlucHV0cyB0aGVuIGR5bmFtaWNhbGx5IHJlbmRlcnMgdGhlIGZvcm0gVUkuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNjaGVtYS1mb3JtLWNvbnRlbnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVtYS1mb3JtLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFGb3JtQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIGludGVybmFsU2NoZW1hOiBEYXRhU2NoZW1hO1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbERhdGE6IEZvcm1EYXRhO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50KVxyXG4gICAgcHVibGljIGZpZWxkSG9zdENvbXBvbmVudDogU2NoZW1hRmllbGRIb3N0Q29tcG9uZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZ2V0cyBhbmQgc2V0cyB0aGUgc2NoZW1hLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBzY2hlbWEoKTogRGF0YVNjaGVtYSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTY2hlbWE7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHNjaGVtYSh2YWx1ZTogRGF0YVNjaGVtYSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTY2hlbWEgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGdldHMgYW5kIHNldHMgdGhlIGZvcm0gZGF0YS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBGb3JtRGF0YSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxEYXRhO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBGb3JtRGF0YSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxEYXRhID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZm9ybURhdGEgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnRleHQ6IFNjaGVtYUZpZWxkQ29udGV4dDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmb3JtIGNvbnRyb2xsZXIgIHdoaWNoIGlzIHVzZWQgdG8gcHJvdmlkZSBzb21lIGJlaGF2aW9ycyBmcm9tIHRoZSBob3N0IG9mIHRoZSBmb3JtLlxyXG4gICAgICogQ3VzdG9tIHZhbGlkYXRpb24gbWV0aG9kcyBjYW4gYmUgcHJvdmlkZWQgYnkgaXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2xsZXI6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzRWRpdG9yTW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBmb3JtQWN0aW9uRXhlY3V0ZWQ6IEV2ZW50RW1pdHRlcjx7IGFjdGlvbjogc3RyaW5nLCBkYXRhOiBhbnkgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBzdHJpbmcsIGRhdGE6IGFueSB9PigpO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZEhvc3RDb21wb25lbnQgJiYgdGhpcy5maWVsZEhvc3RDb21wb25lbnQuaXNWYWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNGb3JtRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZEhvc3RDb21wb25lbnQgJiYgdGhpcy5maWVsZEhvc3RDb21wb25lbnQuaXNEaXJ0eSgpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIG9uRm9ybUFjdGlvbkV4ZWN1dGVkKGFjdGlvbjogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1BY3Rpb25FeGVjdXRlZC5lbWl0KHsgYWN0aW9uOiBhY3Rpb24sIGRhdGE6IGRhdGEgfSk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbmV3IFNjaGVtYUZpZWxkQ29udGV4dCgpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5pc0VkaXRvck1vZGUgPSB0aGlzLmlzRWRpdG9yTW9kZTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZm9ybURhdGEgPSB0aGlzLmRhdGE7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZvcm1Db250cm9sbGVyID0gdGhpcy5mb3JtQ29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXRGb3JtQ29udGFpbmVyTG9hZGVyQ29tcG9uZW50KCk6IFNjaGVtYUZpZWxkTG9hZGVyQ29tcG9uZW50QmFzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGRIb3N0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkSG9zdENvbXBvbmVudC5nZXRGb3JtRmllbGRMb2FkZXJDb21wb25lbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzY2hlbWFcIiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxyXG4gICAgPHNtZS1zY2hlbWEtZmllbGQtaG9zdCBbcHJvcGVydHlTY2hlbWFdPVwic2NoZW1hXCIgWyhkYXRhKV09XCJkYXRhXCIgW2NvbnRleHRdPVwiY29udGV4dFwiIChmb3JtQWN0aW9uRXhlY3V0ZWQpPVwib25Gb3JtQWN0aW9uRXhlY3V0ZWQoJGV2ZW50LmFjdGlvbiwgJGV2ZW50LmRhdGEpXCI+PC9zbWUtc2NoZW1hLWZpZWxkLWhvc3Q+XHJcbjwvZGl2PiJdfQ==