@eo-sdk/client 11.0.0-rc.1 → 11.0.0-rc.10

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 (181) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts +2 -23
  3. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +28 -5
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +31 -21
  7. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  8. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +7 -0
  9. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +3 -2
  11. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
  12. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +2 -0
  13. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
  14. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +1 -0
  15. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
  16. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts +7 -0
  17. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts.map +1 -1
  18. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts +9 -4
  19. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  20. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +2 -2
  21. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  22. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +3 -2
  23. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -1
  24. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +3 -2
  25. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  26. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +3 -2
  27. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  28. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts +8 -4
  29. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts.map +1 -1
  30. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +6 -4
  31. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -1
  32. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts +18 -0
  33. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts.map +1 -0
  34. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts +10 -0
  35. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts.map +1 -0
  36. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -2
  37. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  38. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts +24 -0
  39. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts.map +1 -0
  40. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts +34 -0
  41. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts.map +1 -0
  42. package/app/eo-client/eo-client.module.d.ts +29 -24
  43. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  44. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  45. package/app/eo-client/login/login.component.d.ts +3 -1
  46. package/app/eo-client/login/login.component.d.ts.map +1 -1
  47. package/app/eo-client/process-state/process-state.component.d.ts +3 -5
  48. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  49. package/app/eo-client/settings/settings.component.d.ts +2 -0
  50. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  51. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  52. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +5 -1
  53. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts.map +1 -1
  54. package/app/eo-framework/actions/actions/signature-action/signature-action.component.d.ts.map +1 -1
  55. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  56. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +3 -4
  57. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  58. package/app/eo-framework/form-elements/string/string.component.d.ts +1 -0
  59. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  60. package/app/eo-framework/frame/frame.component.d.ts +2 -1
  61. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  62. package/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.d.ts.map +1 -1
  63. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
  64. package/app/eo-framework/grid/filters/codesystem-filter.component.d.ts.map +1 -1
  65. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -8
  66. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  67. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
  68. package/app/eo-framework/grid/grid.component.d.ts +1 -1
  69. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  70. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  71. package/app/eo-framework/media/media.component.d.ts +15 -1
  72. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  73. package/app/eo-framework/object-details/object-details.component.d.ts +9 -3
  74. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  75. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +2 -0
  76. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  77. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  78. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  79. package/app/eo-framework/result-list/result-list.component.d.ts +3 -2
  80. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  81. package/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.d.ts.map +1 -1
  82. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +2 -1
  83. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  84. package/app/eo-framework/util/services/utilities.service.d.ts +195 -0
  85. package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
  86. package/app/eo-framework-core/api/grid.service.d.ts +1 -5
  87. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  88. package/app/eo-framework-core/api/plugins.service.d.ts +6 -0
  89. package/app/eo-framework-core/api/plugins.service.d.ts.map +1 -1
  90. package/assets/_default/config/main.json +1 -1
  91. package/assets/_default/i18n/de.json +37 -5
  92. package/assets/_default/i18n/en.json +41 -9
  93. package/assets/_default/svg/ic_noImage.svg +1 -0
  94. package/assets/_default/svg/ic_photo_library.svg +1 -0
  95. package/assets/_default/svg/ic_task.svg +1 -0
  96. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  97. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +19 -69
  98. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +183 -86
  99. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +109 -34
  100. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  101. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +21 -13
  102. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +7 -3
  103. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  104. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  105. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +73 -59
  106. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +7 -8
  107. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +16 -10
  108. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -4
  109. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +15 -9
  110. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  111. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -10
  112. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +26 -10
  113. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +35 -35
  114. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +54 -0
  115. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +24 -0
  116. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +4 -7
  117. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +74 -0
  118. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +103 -0
  119. package/esm2022/app/eo-client/eo-client.module.mjs +22 -6
  120. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +4 -4
  121. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +25 -11
  122. package/esm2022/app/eo-client/login/login.component.mjs +14 -11
  123. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +5 -5
  124. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  125. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +6 -6
  126. package/esm2022/app/eo-client/process-state/process-state.component.mjs +12 -17
  127. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +6 -6
  128. package/esm2022/app/eo-client/result-state/result-state.component.mjs +1 -1
  129. package/esm2022/app/eo-client/settings/settings.component.mjs +9 -3
  130. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +4 -5
  131. package/esm2022/app/eo-client/version-state/version-state.component.mjs +5 -5
  132. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +6 -6
  133. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  134. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +23 -3
  135. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -2
  137. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +2 -2
  138. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +12 -4
  139. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  140. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  142. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +25 -22
  143. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +6 -6
  144. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
  145. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  146. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +2 -2
  147. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +8 -5
  148. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -2
  149. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +7 -2
  150. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  151. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +1 -14
  152. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +6 -33
  153. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -19
  154. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +2 -2
  155. package/esm2022/app/eo-framework/grid/grid.component.mjs +11 -12
  156. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +4 -2
  157. package/esm2022/app/eo-framework/media/media.component.mjs +68 -19
  158. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +53 -15
  159. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +18 -27
  161. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +2 -2
  162. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  163. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +11 -7
  164. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  165. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +6 -1
  166. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +2 -2
  167. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +1 -1
  169. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +20 -6
  170. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +13 -9
  171. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +6 -3
  172. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +4 -1
  173. package/esm2022/app/eo-framework-core/api/grid.service.mjs +20 -27
  174. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +44 -2
  175. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +2 -2
  176. package/fesm2022/eo-sdk-client.mjs +1323 -767
  177. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  178. package/misc/scripts/exclude-core-ng-package.js +11 -0
  179. package/misc/scripts/prebuild-about-state.js +2 -3
  180. package/package.json +6 -6
  181. package/proxy.config.json +15 -0
@@ -82,7 +82,7 @@ let AppBarComponent = class AppBarComponent {
82
82
  .user$
83
83
  .subscribe(data => {
84
84
  const docu = this.config.getRaw('about.docu');
85
- const link = docu.link.replace('###userLang###', data.userSettings.clientlocale.substring(0, 2));
85
+ const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale?.substring(0, 2) || this.user?.getClientLocale());
86
86
  this.docu = { ...docu, link };
87
87
  });
88
88
  }
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
201
201
  type: ViewChildren,
202
202
  args: [UserAvatarComponent]
203
203
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUtMLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN4RSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBaUIxQixZQUFvQixXQUF3QixFQUN4QixpQkFBc0MsRUFDdEMsU0FBMkIsRUFDM0IsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxPQUFtQixFQUNuQixjQUFxQztRQVZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFa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QWdCO3NCQUFsRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQnBtU2VydmljZSxcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVuYWlvRXZlbnQsXG4gIEVvVXNlcixcbiAgRXZlbnRTZXJ2aWNlLFxuICBJbmJveFNlcnZpY2UsIEluYm94U3RhdGUsXG4gIFByZXBhcmVTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtVc2VyQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi8uLi91aS91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZVwiO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFwcC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgcHJlcGFyZWRJdGVtc0NvdW50OiBudW1iZXI7XG4gIGluYm94U3RhdGU6IEluYm94U3RhdGU7XG4gIHVzZXI6IEVvVXNlcjtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGV4ZUFjdGlvbnM6IGJvb2xlYW47XG4gIHNpZGViYXJTaG93ID0gZmFsc2U7XG4gIG9wdGlvbnM6IGFueTtcbiAgaWNvblRpdGxlczogYW55O1xuICBsb2dvOiBzdHJpbmc7XG4gIHBhZ2VWaXNpYmxlID0gdHJ1ZTtcbiAgZG9jdToge2xpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZ307XG4gIEBWaWV3Q2hpbGRyZW4oVXNlckF2YXRhckNvbXBvbmVudCkgYXZhdGFyQ29tcG9uZW50czogUXVlcnlMaXN0PFVzZXJBdmF0YXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2VcbiAgICAgICAgICAgICAgKSB7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIHRoaXMubG9nbyA9IHRoaXMuY29uZmlnLmdldE5hdmlnYXRpb25CYXJJbWFnZSgpO1xuICAgIC8vIGxpc3RlbiBmb3Igcm91dGluZyBldmVudHMgdG8gaGlkZSBhbnkgYWN0aXZlIG92ZXJsYXlzXG4gICAgLy8gb24gY2hhbmdpbmcgcm91dGVcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLmV2ZW50cy5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJC5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy51c2VyID0gdXNlcik7XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW5ib3gpIHtcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAgIC5pbmJveFN0YXRlJC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmluYm94U3RhdGUgJiYgdGhpcy5pbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzIDwgaW5ib3hTdGF0ZS51bnJlYWRtZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaW5ib3hTdGF0ZSA9IGluYm94U3RhdGU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lOQk9YX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgLnByZXBhcmVkSXRlbUNvdW50JC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShjb3VudCA9PiB7XG4gICAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1zQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGVcbiAgICAgIC5vbkxhbmdDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRJY29uVGl0bGVzKCkpO1xuICB9XG5cbiAgb3BlbkRhc2hib2FyZChvcGVuSW5OZXdXaW5kb3c6IGJvb2xlYW4pIHtcbiAgICBpZiAob3BlbkluTmV3V2luZG93KSB7XG4gICAgICB3aW5kb3cub3BlbignLycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9jdW1lbnRhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY3UgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmRvY3UnKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZS5zdWJzdHJpbmcoMCwgMikpO1xuICAgICAgICB0aGlzLmRvY3UgPSB7Li4uZG9jdSwgbGlua307XG4gICAgICB9KVxuICB9XG5cbiAgdXBkYXRlT25TY2hlbWFDaGFuZ2UoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYnBtU2VydmljZVxuICAgICAgICAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIG51bGwsIG51bGwsIG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBzZXRJY29uVGl0bGVzKCkge1xuICAgIHRoaXMuaWNvblRpdGxlcyA9IHtcbiAgICAgIHNlYXJjaDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZWFyY2gudG9vbHRpcCcpLFxuICAgICAgZmlsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5maWxlLnRvb2x0aXAnKSxcbiAgICAgIGV4ZWFjdGlvbnM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZXhlY3V0ZS5hY3Rpb25zLnRvb2x0aXAnKSxcbiAgICAgIGZhdm9yaXRlczogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5mYXZvcml0ZXMudG9vbHRpcCcpLFxuICAgICAgcHJlcGFyZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5wcmVwYXJlLnRvb2x0aXAnKSxcbiAgICAgIGluZGV4OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmluYm94LnRvb2x0aXAnKSxcbiAgICAgIGFib3V0OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaWRlYmFyLmhlbHAubWFudWFsLnRvb2x0aXAnKVxuICAgIH07XG4gIH1cblxuXG4gIHByaXZhdGUgc2VuZE5vdGlmaWNhdGlvbigpIHtcbiAgICBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gPT09ICdncmFudGVkJykge1xuICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XG4gICAgfSBlbHNlIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiAhPT0gJ2RlbmllZCcpIHtcbiAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXROb3RpZmljYXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE5vdGlmaWNhdGlvbigpIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lm5vdGlmaWNhdGlvbi50aXRsZScpO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5ub3RpZmljYXRpb24uYm9keScpO1xuICAgIGNvbnN0IGljb24gPSAnYXNzZXRzL19kZWZhdWx0L2ltZy95dXV2aXMtYWdlbnQucG5nJztcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBOb3RpZmljYXRpb24odGl0bGUsIHtcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBpY29uOiBpY29uXG4gICAgfSk7XG5cbiAgICB0aGlzLmluaXROb3RpZmljYXRpb25DbGlja0xpc3RlbmVyKG5vdGlmaWNhdGlvbik7XG4gIH1cblxuICAvLyBUaGlzIGlzIGxpc3RlbmluZyBmb3IgdGhlIG5hdmlnYXRpb24gY2xpY2sgZXZlbnQuIFdoZW4gdGhlIGNsaWVudCB0YWIgaXMgYWN0aXZlLCBpdCBqdXN0IG5hdmlnYXRlcyB0byB0aGUgaW5ib3ggcm91dGUuXG4gIC8vIElmIG5vdCwgaXQgb3BlbnMgYSBuZXcgdGFiIGFuZCBzaG93cyB0aGUgaW5ib3ggdGhlcmUuXG4gIHByaXZhdGUgaW5pdE5vdGlmaWNhdGlvbkNsaWNrTGlzdGVuZXIobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pIHtcbiAgICBub3RpZmljYXRpb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wYWdlVmlzaWJsZSkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaW5ib3gnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgY29uc3QgcGF0aFRvTmF2aWdhdGUgPSBmdWxsUGF0aC5yZXBsYWNlKGN1cnJlbnRSb3V0ZSwgJycpICsgJy9pbmJveCc7XG4gICAgICAgIHdpbmRvdy5vcGVuKHBhdGhUb05hdmlnYXRlLCAnX2JsYW5rJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBUaGlzIGxpc3RlbmVyIGlzIG5lZWRlZCB0byBjaGVjaywgaWYgdGhlIGNsaWVudCB0YWIgaXMgYWN0aXZlIG9yIG5vdFxuICBwcml2YXRlIGluaXRWaXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsICgpID0+IHRoaXMucGFnZVZpc2libGUgPSAhdGhpcy5wYWdlVmlzaWJsZSk7XG4gIH1cblxuICB0b2dnbGVTaWRlYmFyKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnNpZGViYXJTaG93ID0gIXRoaXMuc2lkZWJhclNob3c7XG4gICAgfVxuICB9XG5cbiAgb3BlblNlYXJjaE92ZXJsYXkoKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnc2VhcmNoJ319XSk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkNyZWF0ZU9iamVjdE92ZXJsYXkoKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnYWRkJ319XSk7XG4gICAgfVxuICB9XG5cbiAgb3BlblByb2Nlc3NPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FjdGlvbnMnfX1dKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU3RhdGUoc3RhdGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHN0YXRlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZU9uU2NoZW1hQ2hhbmdlKCk7XG4gICAgdGhpcy5zZXRJY29uVGl0bGVzKCk7XG4gICAgdGhpcy5nZXREb2N1bWVudGF0aW9uKCk7XG4gICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgIC8vIHRoaXMuYnBtU2VydmljZVxuICAgIC8vICAgLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMobnVsbCwgdHJ1ZSlcbiAgICAvLyAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAvLyAgICAgdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgIC8vICAgfSk7XG4gICAgdGhpcy5pbml0VmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCk7XG4gIH1cbn1cbiIsIjxlby1zaWRlLWJhciAoZW9PdXRzaWRlQ2xpY2spPVwic2lkZWJhclNob3cgPSAhc2lkZWJhclNob3dcIiAqbmdJZj1cInNpZGViYXJTaG93XCI+XG4gIDxkaXYgY2xhc3M9XCJuYXZpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZW8tc2lkZWJhci1wbHVnaW4ubmF2aVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWxwXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZW8tc2lkZWJhci1wbHVnaW4uaGVscFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2VvLXNpZGUtYmFyPlxuXG48ZGl2IGNsYXNzPVwiZW8tYXBwLWJhclwiIFtuZ0NsYXNzXT1cInt0cmFuc3BhcmVudDogdHJhbnNwYXJlbnR9XCIgZW9SdGxBd2FyZT5cblxuICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuXG4gICAgPGVvLWljb24gaWQ9XCJhcHAtbWVudVwiIGNsYXNzPVwibWVudSB3aGl0ZVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNpZGViYXIoKVwiIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVTaWRlYmFyKClcIlxuICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2hhbWJ1cmdlci5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxlby1pY29uIChjbGljayk9XCJvcGVuRGFzaGJvYXJkKCRldmVudC5jdHJsS2V5KVwiIChhdXhjbGljayk9XCJvcGVuRGFzaGJvYXJkKHRydWUpXCJcbiAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9wZW5EYXNoYm9hcmQoZmFsc2UpXCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvIHdoaXRlXCIgW2ljb25TcmNdPVwibG9nb1wiPjwvZW8taWNvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuU2VhcmNoT3ZlcmxheSgpXCIgKGNsaWNrKT1cIm9wZW5TZWFyY2hPdmVybGF5KClcIj5cbiAgICAgICAgPGVvLWljb24gaWQ9XCJhcHAtc2VhcmNoXCIgY2xhc3M9XCJzZWFyY2ggd2hpdGVcIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwicHJlc2VydmVcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5zZWFyY2hcIlxuICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NlYXJjaC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuXG4gICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuQ3JlYXRlT2JqZWN0T3ZlcmxheSgpXCIgKGNsaWNrKT1cIm9wZW5DcmVhdGVPYmplY3RPdmVybGF5KClcIj5cbiAgICAgICAgPGVvLWljb24gaWQ9XCJhcHAtYWRkXCIgY2xhc3M9XCJhZGQgd2hpdGVcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXlcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5maWxlXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hZGQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5Qcm9jZXNzT3ZlcmxheSgpXCIgKGNsaWNrKT1cIm9wZW5Qcm9jZXNzT3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLWFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbnMgd2hpdGVcIiAqbmdJZj1cImV4ZUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5leGVhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG1fc3RhcnQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxlby1saWNlbnNlLXdhcm5pbmcgW2xpY2Vuc2VTdGF0ZV09XCJ1c2VyLmxpY2Vuc2VcIiBbdHJhbnNwYXJlbnRdPVwidHJhbnNwYXJlbnRcIj48L2VvLWxpY2Vuc2Utd2FybmluZz5cbiAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cInN1YlwiPlxuICAgICAgPGVvLWNsaXBib2FyZD48L2VvLWNsaXBib2FyZD5cbiAgICA8L2Rpdj5cbiAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuU3RhdGUoJy9mYXZvcml0ZXMnKVwiIChjbGljayk9XCJvcGVuU3RhdGUoJy9mYXZvcml0ZXMnKVwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgZmF2b3JpdGVcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZmF2b3JpdGVzXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuZmF2b3JpdGVzXCJcbiAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmF2b3JpdGUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlblN0YXRlKCcvcHJlcGFyZScpXCIgKGNsaWNrKT1cIm9wZW5TdGF0ZSgnL3ByZXBhcmUnKVwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgcHJlcGFyZVwiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmludHJheVwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5wcmVwYXJlXCJcbiAgICAgICAgICAgICAgW2JhZGdlXT1cInByZXBhcmVkSXRlbXNDb3VudFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3ByZXBhcmUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlblN0YXRlKCcvaW5ib3gnKVwiIChjbGljayk9XCJvcGVuU3RhdGUoJy9pbmJveCcpXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBpbmJveFwiIFtuZ0NsYXNzXT1cInthbGVydDogaW5ib3hTdGF0ZT8ub3ZlcmR1ZW1lc3NhZ2VzID4gMH1cIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbmJveFwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5pbmRleFwiXG4gICAgICAgICAgICAgIFtiYWRnZV09XCJpbmJveFN0YXRlPy50b3RhbG1lc3NhZ2VzXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGEgdGFiaW5kZXg9XCIwXCIgaHJlZj1cInt7ZG9jdS5saW5rfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIGFib3V0XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmFib3V0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWJvdXQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGVvLW92ZXJsYXkgI3VzZXJwYW5lbCBbdXNlckF2YXRhcl09XCJ0cnVlXCI+XG4gICAgICA8ZW8tdXNlci1hdmF0YXItb3ZlcmxheSBbdXNlclBhbmVsXT1cInVzZXJwYW5lbFwiPjwvZW8tdXNlci1hdmF0YXItb3ZlcmxheT5cbiAgICA8L2VvLW92ZXJsYXk+XG5cblxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUtMLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN4RSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBaUIxQixZQUFvQixXQUF3QixFQUN4QixpQkFBc0MsRUFDdEMsU0FBMkIsRUFDM0IsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxPQUFtQixFQUNuQixjQUFxQztRQVZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFa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WTtvV0FNYixXQUFXO3NCQUFuQixLQUFLO2dCQWE2QixnQkFBZ0I7c0JBQWxELFlBQVk7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCcG1TZXJ2aWNlLFxuICBDYXBhYmlsaXRpZXMsXG4gIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIENvbmZpZyxcbiAgRW5haW9FdmVudCxcbiAgRW9Vc2VyLFxuICBFdmVudFNlcnZpY2UsXG4gIEluYm94U2VydmljZSwgSW5ib3hTdGF0ZSxcbiAgUHJlcGFyZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1VzZXJBdmF0YXJDb21wb25lbnR9IGZyb20gJy4uLy4uL3VpL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlXCI7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYXBwLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdHJhbnNwYXJlbnQgPSBmYWxzZTtcblxuICBwcmVwYXJlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZTtcbiAgdXNlcjogRW9Vc2VyO1xuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgZXhlQWN0aW9uczogYm9vbGVhbjtcbiAgc2lkZWJhclNob3cgPSBmYWxzZTtcbiAgb3B0aW9uczogYW55O1xuICBpY29uVGl0bGVzOiBhbnk7XG4gIGxvZ286IHN0cmluZztcbiAgcGFnZVZpc2libGUgPSB0cnVlO1xuICBkb2N1OiB7bGluazogc3RyaW5nLCBsYWJlbDogc3RyaW5nfTtcbiAgQFZpZXdDaGlsZHJlbihVc2VyQXZhdGFyQ29tcG9uZW50KSBhdmF0YXJDb21wb25lbnRzOiBRdWVyeUxpc3Q8VXNlckF2YXRhckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FwYWJpbGl0eVNlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGluYm94U2VydmljZTogSW5ib3hTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHByZXBhcmVTZXJ2aWNlOiBQcmVwYXJlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZVxuICAgICAgICAgICAgICApIHtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG4gICAgdGhpcy5sb2dvID0gdGhpcy5jb25maWcuZ2V0TmF2aWdhdGlvbkJhckltYWdlKCk7XG4gICAgLy8gbGlzdGVuIGZvciByb3V0aW5nIGV2ZW50cyB0byBoaWRlIGFueSBhY3RpdmUgb3ZlcmxheXNcbiAgICAvLyBvbiBjaGFuZ2luZyByb3V0ZVxuICAgIHRoaXMucm91dGVyXG4gICAgICAuZXZlbnRzLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICB0aGlzLnNpZGViYXJTaG93ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnVzZXIkLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbmJveCkge1xuICAgICAgdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgICAgLmluYm94U3RhdGUkLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKChpbmJveFN0YXRlOiBJbmJveFN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaW5ib3hTdGF0ZSAmJiB0aGlzLmluYm94U3RhdGUudW5yZWFkbWVzc2FnZXMgPCBpbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmROb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pbmJveFN0YXRlID0gaW5ib3hTdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfSU5CT1hfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5ib3hTZXJ2aWNlLnJlZnJlc2hJbmJveFN0YXRlKCkpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLmludHJheSkge1xuICAgICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgICAucHJlcGFyZWRJdGVtQ291bnQkLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKGNvdW50ID0+IHtcbiAgICAgICAgICB0aGlzLnByZXBhcmVkSXRlbXNDb3VudCA9IGNvdW50O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYW5zbGF0ZVxuICAgICAgLm9uTGFuZ0NoYW5nZVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEljb25UaXRsZXMoKSk7XG4gIH1cblxuICBvcGVuRGFzaGJvYXJkKG9wZW5Jbk5ld1dpbmRvdzogYm9vbGVhbikge1xuICAgIGlmIChvcGVuSW5OZXdXaW5kb3cpIHtcbiAgICAgIHdpbmRvdy5vcGVuKCcvJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAgICB9XG4gIH1cblxuICBnZXREb2N1bWVudGF0aW9uKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgY29uc3QgZG9jdSA9IHRoaXMuY29uZmlnLmdldFJhdygnYWJvdXQuZG9jdScpO1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdS5saW5rLnJlcGxhY2UoJyMjI3VzZXJMYW5nIyMjJywgZGF0YT8udXNlclNldHRpbmdzPy5jbGllbnRsb2NhbGU/LnN1YnN0cmluZygwLCAyKSB8fCB0aGlzLnVzZXI/LmdldENsaWVudExvY2FsZSgpKTtcbiAgICAgICAgdGhpcy5kb2N1ID0gey4uLmRvY3UsIGxpbmt9O1xuICAgICAgfSlcbiAgfVxuXG4gIHVwZGF0ZU9uU2NoZW1hQ2hhbmdlKCkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5TQ0hFTUFfTE9DQUxFX0NIQU5HRUQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgICAgICAuZ2V0RXhlY3V0YWJsZVByb2Nlc3NlcyhudWxsLCBudWxsLCBudWxsLCBudWxsLCB0cnVlKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIC8vIHRoaXMuZXhlQWN0aW9ucyA9ICEhcmVzLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMuZXhlQWN0aW9ucyA9IHRoaXMuYnBtU2VydmljZS5oYXNNYWluRXhlY3V0YWJsZVByb2Nlc3NlcztcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0SWNvblRpdGxlcygpIHtcbiAgICB0aGlzLmljb25UaXRsZXMgPSB7XG4gICAgICBzZWFyY2g6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uc2VhcmNoLnRvb2x0aXAnKSxcbiAgICAgIGZpbGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZmlsZS50b29sdGlwJyksXG4gICAgICBleGVhY3Rpb25zOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmV4ZWN1dGUuYWN0aW9ucy50b29sdGlwJyksXG4gICAgICBmYXZvcml0ZXM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZmF2b3JpdGVzLnRvb2x0aXAnKSxcbiAgICAgIHByZXBhcmU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24ucHJlcGFyZS50b29sdGlwJyksXG4gICAgICBpbmRleDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5pbmJveC50b29sdGlwJyksXG4gICAgICBhYm91dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2lkZWJhci5oZWxwLm1hbnVhbC50b29sdGlwJylcbiAgICB9O1xuICB9XG5cblxuICBwcml2YXRlIHNlbmROb3RpZmljYXRpb24oKSB7XG4gICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gIT09ICdkZW5pZWQnKSB7XG4gICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb24oKSB7XG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5ub3RpZmljYXRpb24udGl0bGUnKTtcbiAgICBjb25zdCBib2R5ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubm90aWZpY2F0aW9uLmJvZHknKTtcbiAgICBjb25zdCBpY29uID0gJ2Fzc2V0cy9fZGVmYXVsdC9pbWcveXV1dmlzLWFnZW50LnBuZyc7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCB7XG4gICAgICBib2R5OiBib2R5LFxuICAgICAgaWNvbjogaWNvblxuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uQ2xpY2tMaXN0ZW5lcihub3RpZmljYXRpb24pO1xuICB9XG5cbiAgLy8gVGhpcyBpcyBsaXN0ZW5pbmcgZm9yIHRoZSBuYXZpZ2F0aW9uIGNsaWNrIGV2ZW50LiBXaGVuIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSwgaXQganVzdCBuYXZpZ2F0ZXMgdG8gdGhlIGluYm94IHJvdXRlLlxuICAvLyBJZiBub3QsIGl0IG9wZW5zIGEgbmV3IHRhYiBhbmQgc2hvd3MgdGhlIGluYm94IHRoZXJlLlxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb25DbGlja0xpc3RlbmVyKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSB7XG4gICAgbm90aWZpY2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucGFnZVZpc2libGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2luYm94Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgIGNvbnN0IHBhdGhUb05hdmlnYXRlID0gZnVsbFBhdGgucmVwbGFjZShjdXJyZW50Um91dGUsICcnKSArICcvaW5ib3gnO1xuICAgICAgICB3aW5kb3cub3BlbihwYXRoVG9OYXZpZ2F0ZSwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhpcyBsaXN0ZW5lciBpcyBuZWVkZWQgdG8gY2hlY2ssIGlmIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSBvciBub3RcbiAgcHJpdmF0ZSBpbml0VmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCAoKSA9PiB0aGlzLnBhZ2VWaXNpYmxlID0gIXRoaXMucGFnZVZpc2libGUpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhcigpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9ICF0aGlzLnNpZGViYXJTaG93O1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZWFyY2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5DcmVhdGVPYmplY3RPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FkZCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Qcm9jZXNzT3ZlcmxheSgpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdhY3Rpb25zJ319XSk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN0YXRlKHN0YXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVPblNjaGVtYUNoYW5nZSgpO1xuICAgIHRoaXMuc2V0SWNvblRpdGxlcygpO1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRhdGlvbigpO1xuICAgIHRoaXMuZXhlQWN0aW9ucyA9IHRoaXMuYnBtU2VydmljZS5oYXNNYWluRXhlY3V0YWJsZVByb2Nlc3NlcztcbiAgICAvLyB0aGlzLmJwbVNlcnZpY2VcbiAgICAvLyAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIHRydWUpXG4gICAgLy8gICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgLy8gICAgIHRoaXMuZXhlQWN0aW9ucyA9ICEhcmVzLmxlbmd0aDtcbiAgICAvLyAgIH0pO1xuICAgIHRoaXMuaW5pdFZpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lcigpO1xuICB9XG59XG4iLCI8ZW8tc2lkZS1iYXIgKGVvT3V0c2lkZUNsaWNrKT1cInNpZGViYXJTaG93ID0gIXNpZGViYXJTaG93XCIgKm5nSWY9XCJzaWRlYmFyU2hvd1wiPlxuICA8ZGl2IGNsYXNzPVwibmF2aVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLm5hdmlcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVscFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLmhlbHBcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9lby1zaWRlLWJhcj5cblxuPGRpdiBjbGFzcz1cImVvLWFwcC1iYXJcIiBbbmdDbGFzc109XCJ7dHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50fVwiIGVvUnRsQXdhcmU+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnRcIj5cblxuICAgIDxlby1pY29uIGlkPVwiYXBwLW1lbnVcIiBjbGFzcz1cIm1lbnUgd2hpdGVcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKClcIiAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlU2lkZWJhcigpXCJcbiAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19oYW1idXJnZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwib3BlbkRhc2hib2FyZCgkZXZlbnQuY3RybEtleSlcIiAoYXV4Y2xpY2spPVwib3BlbkRhc2hib2FyZCh0cnVlKVwiXG4gICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvcGVuRGFzaGJvYXJkKGZhbHNlKVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibG9nbyB3aGl0ZVwiIFtpY29uU3JjXT1cImxvZ29cIj48L2VvLWljb24+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlblNlYXJjaE92ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuU2VhcmNoT3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLXNlYXJjaFwiIGNsYXNzPVwic2VhcmNoIHdoaXRlXCIgcXVlcnlQYXJhbXNIYW5kbGluZz1cInByZXNlcnZlXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlbkNyZWF0ZU9iamVjdE92ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0T3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLWFkZFwiIGNsYXNzPVwiYWRkIHdoaXRlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZmlsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWRkLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuUHJvY2Vzc092ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuUHJvY2Vzc092ZXJsYXkoKVwiPlxuICAgICAgICA8ZW8taWNvbiBpZD1cImFwcC1hY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb25zIHdoaXRlXCIgKm5nSWY9XCJleGVBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZXhlYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYnBtX3N0YXJ0LnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZW8tbGljZW5zZS13YXJuaW5nIFtsaWNlbnNlU3RhdGVdPVwidXNlci5saWNlbnNlXCIgW3RyYW5zcGFyZW50XT1cInRyYW5zcGFyZW50XCI+PC9lby1saWNlbnNlLXdhcm5pbmc+XG4gIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5cbiAgICAgIDxlby1jbGlwYm9hcmQ+PC9lby1jbGlwYm9hcmQ+XG4gICAgPC9kaXY+XG4gICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlblN0YXRlKCcvZmF2b3JpdGVzJylcIiAoY2xpY2spPVwib3BlblN0YXRlKCcvZmF2b3JpdGVzJylcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIGZhdm9yaXRlXCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmZhdm9yaXRlc1wiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmZhdm9yaXRlc1wiXG4gICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Zhdm9yaXRlLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5TdGF0ZSgnL3ByZXBhcmUnKVwiIChjbGljayk9XCJvcGVuU3RhdGUoJy9wcmVwYXJlJylcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIHByZXBhcmVcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXlcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMucHJlcGFyZVwiXG4gICAgICAgICAgICAgIFtiYWRnZV09XCJwcmVwYXJlZEl0ZW1zQ291bnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19wcmVwYXJlLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5TdGF0ZSgnL2luYm94JylcIiAoY2xpY2spPVwib3BlblN0YXRlKCcvaW5ib3gnKVwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgaW5ib3hcIiBbbmdDbGFzc109XCJ7YWxlcnQ6IGluYm94U3RhdGU/Lm92ZXJkdWVtZXNzYWdlcyA+IDB9XCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW5ib3hcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuaW5kZXhcIlxuICAgICAgICAgICAgICBbYmFkZ2VdPVwiaW5ib3hTdGF0ZT8udG90YWxtZXNzYWdlc1wiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2luYm94LnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxhIHRhYmluZGV4PVwiMFwiIGhyZWY9XCJ7e2RvY3UubGlua319XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBhYm91dFwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5hYm91dFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fib3V0LnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxlby1vdmVybGF5ICN1c2VycGFuZWwgW3VzZXJBdmF0YXJdPVwidHJ1ZVwiPlxuICAgICAgPGVvLXVzZXItYXZhdGFyLW92ZXJsYXkgW3VzZXJQYW5lbF09XCJ1c2VycGFuZWxcIj48L2VvLXVzZXItYXZhdGFyLW92ZXJsYXk+XG4gICAgPC9lby1vdmVybGF5PlxuXG5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==