ets-fe-ng-sdk 17.0.430 → 18.0.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 (186) hide show
  1. package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.component.mjs +4 -4
  2. package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.module.mjs +4 -4
  3. package/esm2022/lib/Reusables/reusable-comps/watermark/watermark.component.mjs +3 -3
  4. package/esm2022/lib/Reusables/reusable-pages/extra-pages/extra-pages-routing.module.mjs +4 -4
  5. package/esm2022/lib/Reusables/reusable-pages/extra-pages/extra-pages.module.mjs +4 -4
  6. package/esm2022/lib/Reusables/reusable-pages/logger/logger-routing.module.mjs +4 -4
  7. package/esm2022/lib/Reusables/reusable-pages/logger/logger.component.mjs +4 -4
  8. package/esm2022/lib/Reusables/reusable-pages/logger/logger.interface.mjs +1 -1
  9. package/esm2022/lib/Reusables/reusable-pages/logger/logger.module.mjs +4 -4
  10. package/esm2022/lib/Reusables/reusable-pages/logger/logger.service.mjs +3 -3
  11. package/esm2022/lib/Reusables/reusable-pages/page-not-found/page-not-found.component.mjs +3 -3
  12. package/esm2022/lib/Reusables/reusable-pages/reset/reset-routing.module.mjs +4 -4
  13. package/esm2022/lib/Reusables/reusable-pages/reset/reset.component.mjs +4 -4
  14. package/esm2022/lib/Reusables/reusable-pages/reset/reset.module.mjs +4 -4
  15. package/esm2022/lib/Reusables/reusable-pages/robot/robot-routing.module.mjs +4 -4
  16. package/esm2022/lib/Reusables/reusable-pages/robot/robot.component.mjs +3 -3
  17. package/esm2022/lib/Reusables/reusable-pages/robot/robot.module.mjs +4 -4
  18. package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester-routing.module.mjs +4 -4
  19. package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester.component.mjs +4 -4
  20. package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester.module.mjs +4 -4
  21. package/esm2022/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.service.mjs +3 -3
  22. package/esm2022/lib/Reusables/reusable-pages/version/version-routing.module.mjs +4 -4
  23. package/esm2022/lib/Reusables/reusable-pages/version/version.component.mjs +3 -3
  24. package/esm2022/lib/Reusables/reusable-pages/version/version.module.mjs +4 -4
  25. package/esm2022/lib/Reusables/reusable-pages/version/version.service.mjs +4 -4
  26. package/esm2022/lib/Services/Interceptors/authentication-interceptor.service.mjs +5 -5
  27. package/esm2022/lib/Services/Interceptors/global-error-handler.service.mjs +3 -3
  28. package/esm2022/lib/Services/Interceptors/logger-interceptor.service.mjs +5 -5
  29. package/esm2022/lib/Services/Interceptors/request-loader-interceptor.service.mjs +5 -5
  30. package/esm2022/lib/Services/Interceptors/request-timeout.service.mjs +4 -4
  31. package/esm2022/lib/Services/api.service.mjs +4 -4
  32. package/esm2022/lib/Services/app.service.mjs +3 -3
  33. package/esm2022/lib/Services/base.effect.mjs +3 -3
  34. package/esm2022/lib/Services/base.facade.service.mjs +1 -1
  35. package/esm2022/lib/Services/base.service.mjs +4 -4
  36. package/esm2022/lib/Services/cache/cache-updater.service.mjs +3 -3
  37. package/esm2022/lib/Services/cache/cache.service.mjs +4 -4
  38. package/esm2022/lib/Services/cache/local-cache.service.mjs +4 -4
  39. package/esm2022/lib/Services/cache/saver.service.mjs +3 -3
  40. package/esm2022/lib/Services/debouncer.service.mjs +4 -4
  41. package/esm2022/lib/Services/htmler.service.mjs +3 -3
  42. package/esm2022/lib/Services/input.service.mjs +4 -4
  43. package/esm2022/lib/Services/page-loader.service.mjs +7 -7
  44. package/esm2022/lib/Services/page.service.mjs +3 -3
  45. package/esm2022/lib/Services/route.service.mjs +4 -4
  46. package/esm2022/lib/Services/service-worker/check-for-update.service.mjs +4 -4
  47. package/esm2022/lib/Services/service-worker/handle-unrecoverable-state.service.mjs +3 -3
  48. package/esm2022/lib/Services/service-worker/log-update.service.mjs +4 -4
  49. package/esm2022/lib/Services/service-worker/prompt-update.service.mjs +3 -3
  50. package/esm2022/lib/Services/service-worker/service-worker.service.mjs +4 -4
  51. package/esm2022/lib/Services/storage.service.mjs +4 -4
  52. package/esm2022/lib/Services/theme.service.mjs +3 -3
  53. package/esm2022/lib/Services/translation.service.mjs +4 -4
  54. package/esm2022/lib/Services/utility.service.mjs +4 -4
  55. package/esm2022/lib/Services/window-security.service.mjs +4 -4
  56. package/esm2022/lib/Shared/classes/page-loader.class.mjs +1 -1
  57. package/esm2022/lib/Shared/components/add-item/add-item.component.mjs +3 -3
  58. package/esm2022/lib/Shared/components/autocomplete/autocomplete-td-rf/autocomplete-td-rf.component.mjs +4 -4
  59. package/esm2022/lib/Shared/components/autocomplete/autocomplete.component.mjs +4 -4
  60. package/esm2022/lib/Shared/components/autocomplete/autocomplete.service.mjs +4 -4
  61. package/esm2022/lib/Shared/components/btn/btn-lg/btn-lg.component.mjs +3 -3
  62. package/esm2022/lib/Shared/components/btn/btn-link/btn-link.component.mjs +3 -3
  63. package/esm2022/lib/Shared/components/btn/btn.component.mjs +4 -4
  64. package/esm2022/lib/Shared/components/btn/btn.service.mjs +4 -4
  65. package/esm2022/lib/Shared/components/btn/details-btn/details-btn.component.mjs +3 -3
  66. package/esm2022/lib/Shared/components/card/card.component.mjs +3 -3
  67. package/esm2022/lib/Shared/components/confirm-dialog/confirm-dialog.component.mjs +3 -3
  68. package/esm2022/lib/Shared/components/confirm-dialog/confirm-dialog.service.mjs +4 -4
  69. package/esm2022/lib/Shared/components/core/button/button.component.mjs +3 -3
  70. package/esm2022/lib/Shared/components/documents-name-display/documents-name-display.component.mjs +4 -4
  71. package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +4 -4
  72. package/esm2022/lib/Shared/components/export-table/export-table.component.mjs +4 -4
  73. package/esm2022/lib/Shared/components/fields-to-display/fields-to-display.component.mjs +4 -4
  74. package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +4 -4
  75. package/esm2022/lib/Shared/components/form-error/form-error.component.mjs +4 -4
  76. package/esm2022/lib/Shared/components/form-generator/form-generated-value/form-generated-value.component.mjs +6 -6
  77. package/esm2022/lib/Shared/components/form-generator/form-generator.base.component.mjs +11 -2
  78. package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +4 -4
  79. package/esm2022/lib/Shared/components/form-generator/form-generator.service.mjs +3 -3
  80. package/esm2022/lib/Shared/components/form-link/form-link.component.mjs +3 -3
  81. package/esm2022/lib/Shared/components/form-tab-headers/form-tab-headers.component.mjs +3 -3
  82. package/esm2022/lib/Shared/components/index-comp-layout/index-comp-layout.component.mjs +7 -7
  83. package/esm2022/lib/Shared/components/info-dialog/info-dialog.component.mjs +4 -4
  84. package/esm2022/lib/Shared/components/info-dialog/info-dialog.service.mjs +4 -4
  85. package/esm2022/lib/Shared/components/info-icon/info-icon.component.mjs +3 -3
  86. package/esm2022/lib/Shared/components/input/date-input/date-input.component.mjs +5 -5
  87. package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +4 -4
  88. package/esm2022/lib/Shared/components/input/input-base.component.mjs +4 -4
  89. package/esm2022/lib/Shared/components/input/input-basic.component.mjs +4 -4
  90. package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
  91. package/esm2022/lib/Shared/components/input/input-label/input-label.component.mjs +3 -3
  92. package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +4 -4
  93. package/esm2022/lib/Shared/components/input/input.component.mjs +3 -3
  94. package/esm2022/lib/Shared/components/input/input.service.mjs +4 -4
  95. package/esm2022/lib/Shared/components/input/inputs-pipes.pipe.mjs +26 -26
  96. package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs +6 -6
  97. package/esm2022/lib/Shared/components/input/validation-message/validation-message.service.mjs +3 -3
  98. package/esm2022/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.mjs +3 -3
  99. package/esm2022/lib/Shared/components/input-NgModel/input-ngmodel.component.mjs +4 -4
  100. package/esm2022/lib/Shared/components/input-NgModel/validation-message-ngmodel/validation-message-ngmodel.component.mjs +3 -3
  101. package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +4 -4
  102. package/esm2022/lib/Shared/components/input-table/input-table.service.mjs +3 -3
  103. package/esm2022/lib/Shared/components/label/label.component.mjs +3 -3
  104. package/esm2022/lib/Shared/components/loader/loader-animations/blinking-blocks/blinking-blocks.component.mjs +3 -3
  105. package/esm2022/lib/Shared/components/loader/loader-animations/bouncing-ball/bouncing-ball.component.mjs +3 -3
  106. package/esm2022/lib/Shared/components/loader/loader-animations/fading-bars/fading-bars.component.mjs +3 -3
  107. package/esm2022/lib/Shared/components/loader/loader-animations/fading-circles/fading-circles.component.mjs +3 -3
  108. package/esm2022/lib/Shared/components/loader/loader-animations/ring-ripples/ring-ripples.component.mjs +3 -3
  109. package/esm2022/lib/Shared/components/loader/loader.component.mjs +3 -3
  110. package/esm2022/lib/Shared/components/loader/spinner.component.mjs +3 -3
  111. package/esm2022/lib/Shared/components/modal/modal-body.directive.mjs +3 -3
  112. package/esm2022/lib/Shared/components/modal/modal-footer.directive.mjs +3 -3
  113. package/esm2022/lib/Shared/components/modal/modal.component.mjs +3 -3
  114. package/esm2022/lib/Shared/components/modal-form/modal-form.component.mjs +3 -3
  115. package/esm2022/lib/Shared/components/modal-header/modal-header.component.mjs +3 -3
  116. package/esm2022/lib/Shared/components/narration-history-comp/narration-history-comp.component.mjs +4 -4
  117. package/esm2022/lib/Shared/components/notifications/notifications.component.mjs +3 -3
  118. package/esm2022/lib/Shared/components/notifications/notifications.service.mjs +3 -3
  119. package/esm2022/lib/Shared/components/page-center-body/page-center-body.component.mjs +3 -3
  120. package/esm2022/lib/Shared/components/page-template/page-template.component.mjs +4 -4
  121. package/esm2022/lib/Shared/components/page-to-component/page-to-component.component.mjs +6 -6
  122. package/esm2022/lib/Shared/components/page-to-component/page-to-component.directive.mjs +3 -3
  123. package/esm2022/lib/Shared/components/page-to-component/page-to-component.service.mjs +3 -3
  124. package/esm2022/lib/Shared/components/paginator/paginator.component.mjs +4 -4
  125. package/esm2022/lib/Shared/components/phone-number/phone-number.component.mjs +4 -4
  126. package/esm2022/lib/Shared/components/phone-number/phone-number.model.mjs +1 -1
  127. package/esm2022/lib/Shared/components/phone-number/phone-number.service.mjs +3 -3
  128. package/esm2022/lib/Shared/components/rich-text-editor/rich-text-editor.component.mjs +12 -12
  129. package/esm2022/lib/Shared/components/rich-text-editor-rf/rich-text-editor-rf.component.mjs +12 -12
  130. package/esm2022/lib/Shared/components/row-actions/row-actions.component.mjs +3 -3
  131. package/esm2022/lib/Shared/components/svg-icon/svg-icon.component.mjs +3 -3
  132. package/esm2022/lib/Shared/components/svg-icon/svg-icon.service.mjs +3 -3
  133. package/esm2022/lib/Shared/components/table-https/table-https.component.mjs +4 -4
  134. package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +3 -3
  135. package/esm2022/lib/Shared/components/table-input/table-input.component.mjs +4 -4
  136. package/esm2022/lib/Shared/components/table-plain/table-base.component.mjs +4 -4
  137. package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +4 -4
  138. package/esm2022/lib/Shared/components/table-plain/table-plain.service.mjs +3 -3
  139. package/esm2022/lib/Shared/components/table-plain/table.pipe.mjs +20 -20
  140. package/esm2022/lib/Shared/components/text/text.component.mjs +3 -3
  141. package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.component.mjs +3 -3
  142. package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.service.mjs +3 -3
  143. package/esm2022/lib/Shared/components/text-case-1/text-case-1.component.mjs +4 -4
  144. package/esm2022/lib/Shared/components/text-case-2/text-case-2.component.mjs +3 -3
  145. package/esm2022/lib/Shared/components/text-case-2/text-case.service.mjs +4 -4
  146. package/esm2022/lib/Shared/components/text-case-input/text-case-input.component.mjs +3 -3
  147. package/esm2022/lib/Shared/components/toggle-input-form/toggle-input-form.component.mjs +3 -3
  148. package/esm2022/lib/Shared/components/translator-case/translator-case.component.mjs +3 -3
  149. package/esm2022/lib/Shared/components/vertical-nav/vertical-nav.component.mjs +4 -4
  150. package/esm2022/lib/Shared/components/view-form-buttons/view-form-buttons.component.mjs +3 -3
  151. package/esm2022/lib/Shared/components/webcam-media/webcam-media.component.mjs +4 -4
  152. package/esm2022/lib/Shared/directives/commafy-number.directive.mjs +3 -3
  153. package/esm2022/lib/Shared/directives/drag-drop-file-upload.directive.mjs +4 -4
  154. package/esm2022/lib/Shared/directives/form-invalid-class.directive.mjs +3 -3
  155. package/esm2022/lib/Shared/directives/index.directive.mjs +23 -23
  156. package/esm2022/lib/Shared/directives/input-formatter.directive.mjs +14 -14
  157. package/esm2022/lib/Shared/directives/integer-only.directive.mjs +4 -4
  158. package/esm2022/lib/Shared/directives/mHref.directive.mjs +3 -3
  159. package/esm2022/lib/Shared/directives/negative-number-only.directive.mjs +4 -4
  160. package/esm2022/lib/Shared/directives/responsiveness.directive.mjs +20 -20
  161. package/esm2022/lib/Shared/directives/translator.directive.mjs +4 -4
  162. package/esm2022/lib/Shared/models/form.class.mjs +1 -1
  163. package/esm2022/lib/Shared/pipes/form-invalid-class.pipe.mjs +3 -3
  164. package/esm2022/lib/Shared/pipes/paginator.pipe.mjs +3 -3
  165. package/esm2022/lib/Shared/pipes/translate.pipe.mjs +7 -7
  166. package/esm2022/lib/Shared/pipes/utility.pipe.mjs +134 -134
  167. package/esm2022/lib/Shared/prototypes/prototypes.mjs +1 -1
  168. package/esm2022/lib/Shared/shared.module.mjs +4 -4
  169. package/esm2022/lib/authentication/web-user/web-user-authentication.guard.mjs +1 -1
  170. package/esm2022/lib/authentication/web-user/web-user-authentication.interceptor.mjs +1 -1
  171. package/esm2022/lib/authentication/web-user/web-user-authentication.service.mjs +3 -3
  172. package/esm2022/lib/authentication/web-user/web-user-forgot-password.component.mjs +4 -4
  173. package/esm2022/lib/authentication/web-user/web-user-login.component.mjs +4 -4
  174. package/esm2022/lib/authentication/web-user/web-user-reset-password.component.mjs +4 -4
  175. package/esm2022/lib/configs/base-functions.mjs +1 -1
  176. package/fesm2022/ets-fe-ng-sdk.mjs +766 -758
  177. package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
  178. package/lib/Services/utility.service.d.ts +5 -5
  179. package/lib/Shared/components/btn/btn.component.d.ts +3 -3
  180. package/lib/Shared/components/form-generator/form-generated-value/form-generated-value.component.d.ts +1 -1
  181. package/lib/Shared/components/form-generator/form-generator.base.component.d.ts +3 -0
  182. package/lib/Shared/components/index-comp-layout/index-comp-layout.component.d.ts +1 -1
  183. package/lib/Shared/components/input/input-base.component.d.ts +3 -7
  184. package/lib/Shared/components/table-https/table-https.component.d.ts +3 -3
  185. package/lib/Shared/components/text-case-2/text-case.service.d.ts +1 -1
  186. package/package.json +1 -1
@@ -74,10 +74,10 @@ export class FieldsToDisplayComponent {
74
74
  isNumType(e, item) {
75
75
  e ? (item.type = 'number') : null;
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FieldsToDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FieldsToDisplayComponent, isStandalone: true, selector: "fields-to-display", inputs: { query1: { classPropertyName: "query1", publicName: "query1", isSignal: true, isRequired: false, transformFunction: null }, query2: { classPropertyName: "query2", publicName: "query2", isSignal: true, isRequired: false, transformFunction: null }, _fields: { classPropertyName: "_fields", publicName: "fields", isSignal: false, isRequired: false, transformFunction: null }, _currentColumns: { classPropertyName: "_currentColumns", publicName: "currentColumns", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { query1: "query1Change", query2: "query2Change", fieldsChanged: "fieldsChanged" }, providers: [FilterArrayByStringPipe], ngImport: i0, template: "<app-btn\n type=\"outline\"\n customIcon=\"fa fa-bars\"\n iconPosition=\"right\"\n text=\"Define Outputs\"\n (mclick)=\"acModal.open()\" />\n<modal-comp\n header=\"Arrange Columns\"\n [width]=\"{ XLarge: '70%', Large: '80%' } | responsiveVal\"\n height=\"80vh\"\n #acModal>\n <div *modalBody>\n @if (uS.isMobileSignal()) {\n <div class=\"mb-2\">\n <app-input-td-rf [noFormat]=\"true\" [(model)]=\"query1\" placeholder=\"Filter\" />\n </div>\n <div class=\"border rounded-10\">\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Column' | appTranslate | async }}</th>\n <th>{{ 'Visible' | appTranslate | async }}</th>\n <th>{{ 'Sticky' | appTranslate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of filteredAllFields(); track item) {\n <tr>\n <td scope=\"row\">\n {{ item.t | titlecase | appTranslate | async }}\n </td>\n <td>\n <mat-slide-toggle [(ngModel)]=\"item.active\"></mat-slide-toggle>\n </td>\n <td>\n @if (item.active) {\n <mat-slide-toggle [(ngModel)]=\"item.sticky\"></mat-slide-toggle>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n } @else {\n <!-- <div>query2 {{ query2() }}</div>\n <div class=\"\">\n searchRef.valueSignal {{ searchRef.valueSignal() }}\n </div> -->\n <div class=\"row row-cols-2\">\n <div>\n <div class=\"text-primary f-600 mb-2\">\n {{ 'Non-Selected Columns' | appTranslate | async }}\n </div>\n <!-- <div class=\"mb-2\">\n <app-input-td-rf [(model)]=\"query\" placeholder=\"Filter\" />\n </div> -->\n <div class=\"border rounded-10 p-2 bg-light cage overflow-auto\">\n <div class=\"row my-2 mx-0 justify-content-center\">\n <div class=\"col-sm-10\">\n <app-input-td-rf\n #searchRef\n [noFormat]=\"true\"\n [(model)]=\"query2\"\n placeholder=\"Search by name\"/>\n </div>\n </div>\n <div\n class=\"row row-cols-1 g-2\"\n cdkDropList\n #sourceList=\"cdkDropList\"\n [cdkDropListData]=\"nonActiveFields()\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[destinationList]\"\n (cdkDropListDropped)=\"drop($event)\">\n @for (item of nonActiveFields(); track item.f; let i = $index) {\n <div class=\"\" cdkDrag>\n <div class=\"example-custom-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"border p-2 rounded-10 bg-white\">\n <div class=\"row row-cols-auto justify-content-between\">\n <div class=\"d-flex align-items-center\">\n <i\n cdkDragHandle\n matTooltip=\"Drag the icon to move the column to the selected columns group\"\n class=\"drag-cursor material-icons\">\n drag_handle\n </i>\n {{ item.t | titlecase | appTranslate | async }}\n </div>\n <div class=\"col-md-auto\">\n <div class=\"row\">\n <div class=\"col-md-auto\" *ngIf=\"!uS.environment.production\">\n {{ item.type }}\n </div>\n <!-- <div class=\"col-md-auto\">\n <app-input-td-rf [xsmall]=\"true\" [label]=\"'Is Number?'\"\n [stacked]=\"false\" type=\"checkbox\"\n (modelChange)=\"isNumType($event, item)\" />\n </div> -->\n <div class=\"col-md-auto\">\n <app-btn text=\"Select\" (mclick)=\"changeToActive(item)\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n <div>\n <div class=\"text-primary f-600 mb-2\">\n {{ 'Selected Columns' | appTranslate | async }}\n </div>\n <div class=\"border rounded-10 p-2 bg-light cage overflow-auto\">\n <div\n class=\"row row-cols-1 g-2\"\n cdkDropList\n #destinationList=\"cdkDropList\"\n [cdkDropListData]=\"activeFields()\"\n [cdkDropListConnectedTo]=\"[sourceList]\"\n (cdkDropListDropped)=\"drop($event)\">\n @for (item of activeFields(); track item.f; let i = $index) {\n <div class=\"\" cdkDrag>\n <div class=\"example-custom-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"border p-2 rounded-10 bg-white\">\n <div class=\"row row-cols-auto justify-content-between\">\n <div class=\"d-flex align-items-center\">\n <i\n cdkDragHandle\n matTooltip=\"Drag the icon to move the column to the non-selected columns group or re-order\"\n class=\"drag-cursor material-icons\">\n drag_handle\n </i>\n {{ item.t | titlecase | appTranslate | async }}\n </div>\n <div>\n <mat-slide-toggle *ngIf=\"item.active\" [(ngModel)]=\"item.sticky\">\n {{ 'Sticky' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n <div class=\"w-100 pt-2 d-flex justify-content-end\" *modalFooter>\n <app-btn text=\"Update Columns\" (mclick)=\"emitFieldsChanged(); acModal.close()\" />\n </div>\n</modal-comp>\n", styles: [".example-custom-placeholder{background:#ccc;border:dotted 3px #999;border-radius:var(--border-radius);min-height:42px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cage{height:calc(80vh - 215px)}\n"], dependencies: [{ kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "component", type: i4.ModalComponent, selector: "modal-comp", inputs: ["header", "bodyTemplateRef", "footerTemplateRef", "showHeader", "loading", "isFullscreen", "showFooter", "width", "minWidth", "height", "maxHeight", "icon", "data", "disableClose", "hasBackdrop"], outputs: ["headerChange", "showHeaderChange", "loadingChange", "showFooterChange", "modalOpen", "modalClose"] }, { kind: "directive", type: i5.ModalBodyDirective, selector: "[modalBody]" }, { kind: "directive", type: i6.ModalFooterDirective, selector: "[modalFooter]" }, { kind: "pipe", type: ResponsiveValPipe, name: "responsiveVal" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FieldsToDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: FieldsToDisplayComponent, isStandalone: true, selector: "fields-to-display", inputs: { query1: { classPropertyName: "query1", publicName: "query1", isSignal: true, isRequired: false, transformFunction: null }, query2: { classPropertyName: "query2", publicName: "query2", isSignal: true, isRequired: false, transformFunction: null }, _fields: { classPropertyName: "_fields", publicName: "fields", isSignal: false, isRequired: false, transformFunction: null }, _currentColumns: { classPropertyName: "_currentColumns", publicName: "currentColumns", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { query1: "query1Change", query2: "query2Change", fieldsChanged: "fieldsChanged" }, providers: [FilterArrayByStringPipe], ngImport: i0, template: "<app-btn\n type=\"outline\"\n customIcon=\"fa fa-bars\"\n iconPosition=\"right\"\n text=\"Define Outputs\"\n (mclick)=\"acModal.open()\" />\n<modal-comp\n header=\"Arrange Columns\"\n [width]=\"{ XLarge: '70%', Large: '80%' } | responsiveVal\"\n height=\"80vh\"\n #acModal>\n <div *modalBody>\n @if (uS.isMobileSignal()) {\n <div class=\"mb-2\">\n <app-input-td-rf [noFormat]=\"true\" [(model)]=\"query1\" placeholder=\"Filter\" />\n </div>\n <div class=\"border rounded-10\">\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Column' | appTranslate | async }}</th>\n <th>{{ 'Visible' | appTranslate | async }}</th>\n <th>{{ 'Sticky' | appTranslate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of filteredAllFields(); track item) {\n <tr>\n <td scope=\"row\">\n {{ item.t | titlecase | appTranslate | async }}\n </td>\n <td>\n <mat-slide-toggle [(ngModel)]=\"item.active\"></mat-slide-toggle>\n </td>\n <td>\n @if (item.active) {\n <mat-slide-toggle [(ngModel)]=\"item.sticky\"></mat-slide-toggle>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n } @else {\n <!-- <div>query2 {{ query2() }}</div>\n <div class=\"\">\n searchRef.valueSignal {{ searchRef.valueSignal() }}\n </div> -->\n <div class=\"row row-cols-2\">\n <div>\n <div class=\"text-primary f-600 mb-2\">\n {{ 'Non-Selected Columns' | appTranslate | async }}\n </div>\n <!-- <div class=\"mb-2\">\n <app-input-td-rf [(model)]=\"query\" placeholder=\"Filter\" />\n </div> -->\n <div class=\"border rounded-10 p-2 bg-light cage overflow-auto\">\n <div class=\"row my-2 mx-0 justify-content-center\">\n <div class=\"col-sm-10\">\n <app-input-td-rf\n #searchRef\n [noFormat]=\"true\"\n [(model)]=\"query2\"\n placeholder=\"Search by name\"/>\n </div>\n </div>\n <div\n class=\"row row-cols-1 g-2\"\n cdkDropList\n #sourceList=\"cdkDropList\"\n [cdkDropListData]=\"nonActiveFields()\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[destinationList]\"\n (cdkDropListDropped)=\"drop($event)\">\n @for (item of nonActiveFields(); track item.f; let i = $index) {\n <div class=\"\" cdkDrag>\n <div class=\"example-custom-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"border p-2 rounded-10 bg-white\">\n <div class=\"row row-cols-auto justify-content-between\">\n <div class=\"d-flex align-items-center\">\n <i\n cdkDragHandle\n matTooltip=\"Drag the icon to move the column to the selected columns group\"\n class=\"drag-cursor material-icons\">\n drag_handle\n </i>\n {{ item.t | titlecase | appTranslate | async }}\n </div>\n <div class=\"col-md-auto\">\n <div class=\"row\">\n <div class=\"col-md-auto\" *ngIf=\"!uS.environment.production\">\n {{ item.type }}\n </div>\n <!-- <div class=\"col-md-auto\">\n <app-input-td-rf [xsmall]=\"true\" [label]=\"'Is Number?'\"\n [stacked]=\"false\" type=\"checkbox\"\n (modelChange)=\"isNumType($event, item)\" />\n </div> -->\n <div class=\"col-md-auto\">\n <app-btn text=\"Select\" (mclick)=\"changeToActive(item)\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n <div>\n <div class=\"text-primary f-600 mb-2\">\n {{ 'Selected Columns' | appTranslate | async }}\n </div>\n <div class=\"border rounded-10 p-2 bg-light cage overflow-auto\">\n <div\n class=\"row row-cols-1 g-2\"\n cdkDropList\n #destinationList=\"cdkDropList\"\n [cdkDropListData]=\"activeFields()\"\n [cdkDropListConnectedTo]=\"[sourceList]\"\n (cdkDropListDropped)=\"drop($event)\">\n @for (item of activeFields(); track item.f; let i = $index) {\n <div class=\"\" cdkDrag>\n <div class=\"example-custom-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"border p-2 rounded-10 bg-white\">\n <div class=\"row row-cols-auto justify-content-between\">\n <div class=\"d-flex align-items-center\">\n <i\n cdkDragHandle\n matTooltip=\"Drag the icon to move the column to the non-selected columns group or re-order\"\n class=\"drag-cursor material-icons\">\n drag_handle\n </i>\n {{ item.t | titlecase | appTranslate | async }}\n </div>\n <div>\n <mat-slide-toggle *ngIf=\"item.active\" [(ngModel)]=\"item.sticky\">\n {{ 'Sticky' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n <div class=\"w-100 pt-2 d-flex justify-content-end\" *modalFooter>\n <app-btn text=\"Update Columns\" (mclick)=\"emitFieldsChanged(); acModal.close()\" />\n </div>\n</modal-comp>\n", styles: [".example-custom-placeholder{background:#ccc;border:dotted 3px #999;border-radius:var(--border-radius);min-height:42px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cage{height:calc(80vh - 215px)}\n"], dependencies: [{ kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "component", type: i4.ModalComponent, selector: "modal-comp", inputs: ["header", "bodyTemplateRef", "footerTemplateRef", "showHeader", "loading", "isFullscreen", "showFooter", "width", "minWidth", "height", "maxHeight", "icon", "data", "disableClose", "hasBackdrop"], outputs: ["headerChange", "showHeaderChange", "loadingChange", "showFooterChange", "modalOpen", "modalClose"] }, { kind: "directive", type: i5.ModalBodyDirective, selector: "[modalBody]" }, { kind: "directive", type: i6.ModalFooterDirective, selector: "[modalFooter]" }, { kind: "pipe", type: ResponsiveValPipe, name: "responsiveVal" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FieldsToDisplayComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FieldsToDisplayComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'fields-to-display', standalone: true, imports: [
83
83
  BtnComponent,
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
107
107
  }], fieldsChanged: [{
108
108
  type: Output
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLXRvLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpZWxkcy10by1kaXNwbGF5L2ZpZWxkcy10by1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWVsZHMtdG8tZGlzcGxheS9maWVsZHMtdG8tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixhQUFhLEdBQ2QsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQTZCbkUsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxJQUFxQixPQUFPLENBQUMsQ0FBYTtRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDaEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNULENBQUM7SUFDSixDQUFDO0lBRUQsSUFBNkIsZUFBZSxDQUFDLENBQWE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNsQyxNQUFNLENBQ0osQ0FDRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVixDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDVCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDbkIsR0FBRyxDQUNKLENBQ0YsQ0FBQztJQUNKLENBQUM7SUE0QkQ7UUFwRFMsV0FBTSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDOUMsV0FBTSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUF5QjlDLGNBQVMsR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7UUFFbkMsc0JBQWlCLEdBQUcsUUFBUSxDQUFhLEdBQUcsRUFBRSxDQUNyRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FDckYsQ0FBQztRQUVPLGlCQUFZLEdBQUcsUUFBUSxDQUFhLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdGLHlDQUF5QztRQUVoQyxvQkFBZSxHQUFHLFFBQVEsQ0FBYSxHQUFHLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLHVCQUF1QjthQUN6QixTQUFTLENBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUcsRUFDZCxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FDWDthQUNBLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQ3BCLENBQUM7UUFFUSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUd0QyxDQUFDO1FBRUUsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDMUQsT0FBRSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRWhCLElBQUksQ0FBQyxLQUE4QjtRQUNqQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQy9DLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRjthQUFNO1lBQ0wsWUFBWTtZQUNaLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QyxpQkFBaUIsQ0FDZixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUM1QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFDcEIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxZQUFzQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ2xDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixJQUFJLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDM0MsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzFGLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBTSxFQUFFLElBQWM7UUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDOzhHQTFGVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixtckJBRnhCLENBQUMsdUJBQXVCLENBQUMsMEJDMUR0Qyw4K01BNEpBLG1RRHBISSxZQUFZLG1nQkFDWixJQUFJLDZGQUNKLG1CQUFtQix5SUFFbkIsb0JBQW9CLGtXQUNwQixXQUFXLCtWQUNYLFdBQVcsK2RBQ1gsT0FBTyx3YkFDUCxrQkFBa0IsOEZBQ2xCLGFBQWEsOEZBQ2IsZ0JBQWdCLHdUQUNoQixTQUFTLHlDQUNULGFBQWEsZ2xCQUdiLGlCQUFpQixpREFDakIsZ0JBQWdCOzsyRkFJUCx3QkFBd0I7a0JBM0JwQyxTQUFTOytCQUNFLG1CQUFtQixjQUdqQixJQUFJLFdBRVA7d0JBQ1AsWUFBWTt3QkFDWixJQUFJO3dCQUNKLG1CQUFtQjt3QkFDbkIsS0FBSzt3QkFDTCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7cUJBQ2pCLGFBQ1UsQ0FBQyx1QkFBdUIsQ0FBQzt3REFNZixPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFFBQVE7Z0JBU2MsZUFBZTtzQkFBM0MsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBaUNiLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDZGtEcmFnRHJvcCxcbiAgbW92ZUl0ZW1JbkFycmF5LFxuICB0cmFuc2ZlckFycmF5SXRlbSxcbiAgQ2RrRHJvcExpc3QsXG4gIENka0RyYWcsXG4gIENka0RyYWdQbGFjZWhvbGRlcixcbiAgQ2RrRHJhZ0hhbmRsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUsIFJlc3BvbnNpdmVWYWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcbmltcG9ydCB7IFNES1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElucHV0VERfUkZDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC10ZC1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIEFzeW5jUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RhbC1jb21wb25lbnRzL21vZGFsLmNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2wgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZHMtdG8tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZHMtdG8tZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkcy10by1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIElucHV0VERfUkZDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2RrRHJvcExpc3QsXG4gICAgQ2RrRHJhZyxcbiAgICBDZGtEcmFnUGxhY2Vob2xkZXIsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUaXRsZUNhc2VQaXBlLFxuICAgIEZpbHRlckFycmF5QnlTdHJpbmdQaXBlLFxuICAgIE1vZGFsQ29tcG9uZW50cyxcbiAgICBSZXNwb25zaXZlVmFsUGlwZSxcbiAgICBTREtUcmFuc2xhdGVQaXBlLFxuICBdLFxuICBwcm92aWRlcnM6IFtGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkc1RvRGlzcGxheUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHF1ZXJ5MSA9IG1vZGVsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcXVlcnkyID0gbW9kZWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIEBJbnB1dCgnZmllbGRzJykgc2V0IF9maWVsZHModjogVGFibGVDb2xbXSkge1xuICAgIHRoaXMuYWxsRmllbGRzLnNldChcbiAgICAgIGNsb25lRGVlcCh2KS5tYXAoKHgpID0+IHtcbiAgICAgICAgeFsnaWQnXSA9IHguZj8udG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9KSB8fCBbXSxcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCdjdXJyZW50Q29sdW1ucycpIHNldCBfY3VycmVudENvbHVtbnModjogVGFibGVDb2xbXSkge1xuICAgIHRoaXMuYWxsRmllbGRzLnVwZGF0ZSgoYWxsRmllbGRzKSA9PlxuICAgICAgdW5pcUJ5KFxuICAgICAgICAoXG4gICAgICAgICAgdi5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIHguYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgIH0pIHx8IFtdXG4gICAgICAgICkuY29uY2F0KGFsbEZpZWxkcyksXG4gICAgICAgICdmJyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGFsbEZpZWxkcyA9IHNpZ25hbDxUYWJsZUNvbFtdPihbXSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRBbGxGaWVsZHMgPSBjb21wdXRlZDxUYWJsZUNvbFtdPigoKSA9PlxuICAgIHRoaXMuZmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUudHJhbnNmb3JtKHRoaXMuYWxsRmllbGRzKCksIHRoaXMucXVlcnkxKCkhLCBbJ2YnLCAndCddKSxcbiAgKTtcblxuICByZWFkb25seSBhY3RpdmVGaWVsZHMgPSBjb21wdXRlZDxUYWJsZUNvbFtdPigoKSA9PiB0aGlzLmFsbEZpZWxkcygpLmZpbHRlcigoeCkgPT4geC5hY3RpdmUpKTtcbiAgLy8gYWN0aXZlRmllbGRzID0gc2lnbmFsPFRhYmxlQ29sW10+KFtdKTtcblxuICByZWFkb25seSBub25BY3RpdmVGaWVsZHMgPSBjb21wdXRlZDxUYWJsZUNvbFtdPigoKSA9PlxuICAgIHRoaXMuZmlsdGVyQXJyYXlCeVN0cmluZ1BpcGVcbiAgICAgIC50cmFuc2Zvcm0oXG4gICAgICAgIHRoaXMuYWxsRmllbGRzKCkuZmlsdGVyKCh4KSA9PiAheC5hY3RpdmUpLFxuICAgICAgICB0aGlzLnF1ZXJ5MigpISxcbiAgICAgICAgWydmJywgJ3QnXSxcbiAgICAgIClcbiAgICAgIC5zb3J0MigndCcsIHRydWUpLFxuICApO1xuXG4gIEBPdXRwdXQoKSBmaWVsZHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgbkZpZWxkczogVGFibGVDb2xbXTtcbiAgICBhbGxGaWVsZHM6IFRhYmxlQ29sW107XG4gIH0+KCk7XG5cbiAgcHVibGljIGZpbHRlckFycmF5QnlTdHJpbmdQaXBlID0gaW5qZWN0KEZpbHRlckFycmF5QnlTdHJpbmdQaXBlKTtcbiAgcHVibGljIHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPFRhYmxlQ29sW10+KSB7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBjb25zdCBpdGVtID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YVtldmVudC5wcmV2aW91c0luZGV4XTtcbiAgICAgIGl0ZW0uYWN0aXZlID0gIWl0ZW0uYWN0aXZlO1xuICAgICAgaWYgKCFpdGVtLmFjdGl2ZSkgaXRlbS5zdGlja3kgPSBmYWxzZTtcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VUb0FjdGl2ZShub25BY3RpdmVPYmo6IFRhYmxlQ29sKSB7XG4gICAgdGhpcy5hbGxGaWVsZHMudXBkYXRlKChhbGxGaWVsZHMpID0+XG4gICAgICBhbGxGaWVsZHMubWFwKCh4KSA9PiB7XG4gICAgICAgIGlmIChub25BY3RpdmVPYmouZiA9PSB4LmYpIHguYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZW1pdEZpZWxkc0NoYW5nZWQoKSB7XG4gICAgdGhpcy5maWVsZHNDaGFuZ2VkLmVtaXQoe1xuICAgICAgbkZpZWxkczogdGhpcy51Uy5pc01vYmlsZSA/IHRoaXMuYWxsRmllbGRzKCkuZmlsdGVyKCh4KSA9PiB4LmFjdGl2ZSkgOiB0aGlzLmFjdGl2ZUZpZWxkcygpLFxuICAgICAgYWxsRmllbGRzOiB0aGlzLmFsbEZpZWxkcygpLFxuICAgIH0pO1xuICB9XG5cbiAgaXNOdW1UeXBlKGU6IGFueSwgaXRlbTogVGFibGVDb2wpIHtcbiAgICBlID8gKGl0ZW0udHlwZSA9ICdudW1iZXInKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxhcHAtYnRuXG4gIHR5cGU9XCJvdXRsaW5lXCJcbiAgY3VzdG9tSWNvbj1cImZhIGZhLWJhcnNcIlxuICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gIHRleHQ9XCJEZWZpbmUgT3V0cHV0c1wiXG4gIChtY2xpY2spPVwiYWNNb2RhbC5vcGVuKClcIiAvPlxuPG1vZGFsLWNvbXBcbiAgaGVhZGVyPVwiQXJyYW5nZSBDb2x1bW5zXCJcbiAgW3dpZHRoXT1cInsgWExhcmdlOiAnNzAlJywgTGFyZ2U6ICc4MCUnIH0gfCByZXNwb25zaXZlVmFsXCJcbiAgaGVpZ2h0PVwiODB2aFwiXG4gICNhY01vZGFsPlxuICA8ZGl2ICptb2RhbEJvZHk+XG4gICAgQGlmICh1Uy5pc01vYmlsZVNpZ25hbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8YXBwLWlucHV0LXRkLXJmIFtub0Zvcm1hdF09XCJ0cnVlXCIgWyhtb2RlbCldPVwicXVlcnkxXCIgcGxhY2Vob2xkZXI9XCJGaWx0ZXJcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQtMTBcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aD57eyAnQ29sdW1uJyB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7ICdWaXNpYmxlJyB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7ICdTdGlja3knIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRBbGxGaWVsZHMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnQgfCB0aXRsZWNhc2UgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJpdGVtLmFjdGl2ZVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJpdGVtLnN0aWNreVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDwhLS0gPGRpdj5xdWVyeTIge3sgcXVlcnkyKCkgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgc2VhcmNoUmVmLnZhbHVlU2lnbmFsICAgIHt7IHNlYXJjaFJlZi52YWx1ZVNpZ25hbCgpIH19XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLTJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGYtNjAwIG1iLTJcIj5cbiAgICAgICAgICAgIHt7ICdOb24tU2VsZWN0ZWQgQ29sdW1ucycgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtaW5wdXQtdGQtcmYgWyhtb2RlbCldPVwicXVlcnlcIiBwbGFjZWhvbGRlcj1cIkZpbHRlclwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQtMTAgcC0yIGJnLWxpZ2h0IGNhZ2Ugb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteS0yIG14LTAganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1pbnB1dC10ZC1yZlxuICAgICAgICAgICAgICAgICAgI3NlYXJjaFJlZlxuICAgICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicXVlcnkyXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IG5hbWVcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLTEgZy0yXCJcbiAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgI3NvdXJjZUxpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibm9uQWN0aXZlRmllbGRzKClcIlxuICAgICAgICAgICAgICBjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZFxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZGVzdGluYXRpb25MaXN0XVwiXG4gICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygbm9uQWN0aXZlRmllbGRzKCk7IHRyYWNrIGl0ZW0uZjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgY2RrRHJhZz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWN1c3RvbS1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkLTEwIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtYXV0byBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEcmFnIHRoZSBpY29uIHRvIG1vdmUgdGhlIGNvbHVtbiB0byB0aGUgc2VsZWN0ZWQgY29sdW1ucyBncm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJhZy1jdXJzb3IgbWF0ZXJpYWwtaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ19oYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udCB8IHRpdGxlY2FzZSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtYXV0b1wiICpuZ0lmPVwiIXVTLmVudmlyb25tZW50LnByb2R1Y3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnR5cGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1pbnB1dC10ZC1yZiBbeHNtYWxsXT1cInRydWVcIiBbbGFiZWxdPVwiJ0lzIE51bWJlcj8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwiZmFsc2VcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaXNOdW1UeXBlKCRldmVudCwgaXRlbSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJ0biB0ZXh0PVwiU2VsZWN0XCIgKG1jbGljayk9XCJjaGFuZ2VUb0FjdGl2ZShpdGVtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGYtNjAwIG1iLTJcIj5cbiAgICAgICAgICAgIHt7ICdTZWxlY3RlZCBDb2x1bW5zJyB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMiBiZy1saWdodCBjYWdlIG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMtMSBnLTJcIlxuICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAjZGVzdGluYXRpb25MaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImFjdGl2ZUZpZWxkcygpXCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW3NvdXJjZUxpc3RdXCJcbiAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhY3RpdmVGaWVsZHMoKTsgdHJhY2sgaXRlbS5mOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtY3VzdG9tLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQtMTAgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1hdXRvIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRyYWcgdGhlIGljb24gdG8gbW92ZSB0aGUgY29sdW1uIHRvIHRoZSBub24tc2VsZWN0ZWQgY29sdW1ucyBncm91cCBvciByZS1vcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJhZy1jdXJzb3IgbWF0ZXJpYWwtaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ19oYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udCB8IHRpdGxlY2FzZSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICpuZ0lmPVwiaXRlbS5hY3RpdmVcIiBbKG5nTW9kZWwpXT1cIml0ZW0uc3RpY2t5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdTdGlja3knIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInctMTAwIHB0LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbW9kYWxGb290ZXI+XG4gICAgPGFwcC1idG4gdGV4dD1cIlVwZGF0ZSBDb2x1bW5zXCIgKG1jbGljayk9XCJlbWl0RmllbGRzQ2hhbmdlZCgpOyBhY01vZGFsLmNsb3NlKClcIiAvPlxuICA8L2Rpdj5cbjwvbW9kYWwtY29tcD5cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLXRvLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpZWxkcy10by1kaXNwbGF5L2ZpZWxkcy10by1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWVsZHMtdG8tZGlzcGxheS9maWVsZHMtdG8tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixhQUFhLEdBQ2QsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxF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QVMsQ0FBQyxDQUFNLEVBQUUsSUFBYztRQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7OEdBMUZVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1yQkFGeEIsQ0FBQyx1QkFBdUIsQ0FBQywwQkMxRHRDLDgrTUE0SkEsbVFEcEhJLFlBQVksbWdCQUNaLElBQUksNkZBQ0osbUJBQW1CLHlJQUVuQixvQkFBb0Isa1dBQ3BCLFdBQVcsK1ZBQ1gsV0FBVywrZEFDWCxPQUFPLHdiQUNQLGtCQUFrQiw4RkFDbEIsYUFBYSw4RkFDYixnQkFBZ0Isd1RBQ2hCLFNBQVMseUNBQ1QsYUFBYSxnbEJBR2IsaUJBQWlCLGlEQUNqQixnQkFBZ0I7OzJGQUlQLHdCQUF3QjtrQkEzQnBDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBR2pCLElBQUksV0FFUDt3QkFDUCxZQUFZO3dCQUNaLElBQUk7d0JBQ0osbUJBQW1CO3dCQUNuQixLQUFLO3dCQUNMLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGdCQUFnQjtxQkFDakIsYUFDVSxDQUFDLHVCQUF1QixDQUFDO3dEQU1mLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsUUFBUTtnQkFTYyxlQUFlO3NCQUEzQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFpQ2IsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka0RyYWdEcm9wLFxuICBtb3ZlSXRlbUluQXJyYXksXG4gIHRyYW5zZmVyQXJyYXlJdGVtLFxuICBDZGtEcm9wTGlzdCxcbiAgQ2RrRHJhZyxcbiAgQ2RrRHJhZ1BsYWNlaG9sZGVyLFxuICBDZGtEcmFnSGFuZGxlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZSwgUmVzcG9uc2l2ZVZhbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5wdXRURF9SRkNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgQXN5bmNQaXBlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50cyB9IGZyb20gJy4uL21vZGFsLWNvbXBvbmVudHMvbW9kYWwuY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbCB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpZWxkcy10by1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkcy10by1kaXNwbGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGRzLXRvLWRpc3BsYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgSW5wdXRURF9SRkNvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDZGtEcm9wTGlzdCxcbiAgICBDZGtEcmFnLFxuICAgIENka0RyYWdQbGFjZWhvbGRlcixcbiAgICBDZGtEcmFnSGFuZGxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgRmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUsXG4gICAgTW9kYWxDb21wb25lbnRzLFxuICAgIFJlc3BvbnNpdmVWYWxQaXBlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW0ZpbHRlckFycmF5QnlTdHJpbmdQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRzVG9EaXNwbGF5Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgcXVlcnkxID0gbW9kZWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBxdWVyeTIgPSBtb2RlbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgQElucHV0KCdmaWVsZHMnKSBzZXQgX2ZpZWxkcyh2OiBUYWJsZUNvbFtdKSB7XG4gICAgdGhpcy5hbGxGaWVsZHMuc2V0KFxuICAgICAgY2xvbmVEZWVwKHYpLm1hcCgoeCkgPT4ge1xuICAgICAgICB4WydpZCddID0geC5mPy50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pIHx8IFtdLFxuICAgICk7XG4gIH1cblxuICBASW5wdXQoJ2N1cnJlbnRDb2x1bW5zJykgc2V0IF9jdXJyZW50Q29sdW1ucyh2OiBUYWJsZUNvbFtdKSB7XG4gICAgdGhpcy5hbGxGaWVsZHMudXBkYXRlKChhbGxGaWVsZHMpID0+XG4gICAgICB1bmlxQnkoXG4gICAgICAgIChcbiAgICAgICAgICB2Lm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgeC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgfSkgfHwgW11cbiAgICAgICAgKS5jb25jYXQoYWxsRmllbGRzKSxcbiAgICAgICAgJ2YnLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcmVhZG9ubHkgYWxsRmllbGRzID0gc2lnbmFsPFRhYmxlQ29sW10+KFtdKTtcblxuICByZWFkb25seSBmaWx0ZXJlZEFsbEZpZWxkcyA9IGNvbXB1dGVkPFRhYmxlQ29sW10+KCgpID0+XG4gICAgdGhpcy5maWx0ZXJBcnJheUJ5U3RyaW5nUGlwZS50cmFuc2Zvcm0odGhpcy5hbGxGaWVsZHMoKSwgdGhpcy5xdWVyeTEoKSEsIFsnZicsICd0J10pLFxuICApO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZUZpZWxkcyA9IGNvbXB1dGVkPFRhYmxlQ29sW10+KCgpID0+IHRoaXMuYWxsRmllbGRzKCkuZmlsdGVyKCh4KSA9PiB4LmFjdGl2ZSkpO1xuICAvLyBhY3RpdmVGaWVsZHMgPSBzaWduYWw8VGFibGVDb2xbXT4oW10pO1xuXG4gIHJlYWRvbmx5IG5vbkFjdGl2ZUZpZWxkcyA9IGNvbXB1dGVkPFRhYmxlQ29sW10+KCgpID0+XG4gICAgdGhpcy5maWx0ZXJBcnJheUJ5U3RyaW5nUGlwZVxuICAgICAgLnRyYW5zZm9ybShcbiAgICAgICAgdGhpcy5hbGxGaWVsZHMoKS5maWx0ZXIoKHgpID0+ICF4LmFjdGl2ZSksXG4gICAgICAgIHRoaXMucXVlcnkyKCkhLFxuICAgICAgICBbJ2YnLCAndCddLFxuICAgICAgKVxuICAgICAgLnNvcnQyKCd0JywgdHJ1ZSksXG4gICk7XG5cbiAgQE91dHB1dCgpIGZpZWxkc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBuRmllbGRzOiBUYWJsZUNvbFtdO1xuICAgIGFsbEZpZWxkczogVGFibGVDb2xbXTtcbiAgfT4oKTtcblxuICBwdWJsaWMgZmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUgPSBpbmplY3QoRmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUpO1xuICBwdWJsaWMgdVMgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8VGFibGVDb2xbXT4pIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIGNvbnN0IGl0ZW0gPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhW2V2ZW50LnByZXZpb3VzSW5kZXhdO1xuICAgICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XG4gICAgICBpZiAoIWl0ZW0uYWN0aXZlKSBpdGVtLnN0aWNreSA9IGZhbHNlO1xuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXG4gICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVRvQWN0aXZlKG5vbkFjdGl2ZU9iajogVGFibGVDb2wpIHtcbiAgICB0aGlzLmFsbEZpZWxkcy51cGRhdGUoKGFsbEZpZWxkcykgPT5cbiAgICAgIGFsbEZpZWxkcy5tYXAoKHgpID0+IHtcbiAgICAgICAgaWYgKG5vbkFjdGl2ZU9iai5mID09IHguZikgeC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBlbWl0RmllbGRzQ2hhbmdlZCgpIHtcbiAgICB0aGlzLmZpZWxkc0NoYW5nZWQuZW1pdCh7XG4gICAgICBuRmllbGRzOiB0aGlzLnVTLmlzTW9iaWxlID8gdGhpcy5hbGxGaWVsZHMoKS5maWx0ZXIoKHgpID0+IHguYWN0aXZlKSA6IHRoaXMuYWN0aXZlRmllbGRzKCksXG4gICAgICBhbGxGaWVsZHM6IHRoaXMuYWxsRmllbGRzKCksXG4gICAgfSk7XG4gIH1cblxuICBpc051bVR5cGUoZTogYW55LCBpdGVtOiBUYWJsZUNvbCkge1xuICAgIGUgPyAoaXRlbS50eXBlID0gJ251bWJlcicpIDogbnVsbDtcbiAgfVxufVxuIiwiPGFwcC1idG5cbiAgdHlwZT1cIm91dGxpbmVcIlxuICBjdXN0b21JY29uPVwiZmEgZmEtYmFyc1wiXG4gIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgdGV4dD1cIkRlZmluZSBPdXRwdXRzXCJcbiAgKG1jbGljayk9XCJhY01vZGFsLm9wZW4oKVwiIC8+XG48bW9kYWwtY29tcFxuICBoZWFkZXI9XCJBcnJhbmdlIENvbHVtbnNcIlxuICBbd2lkdGhdPVwieyBYTGFyZ2U6ICc3MCUnLCBMYXJnZTogJzgwJScgfSB8IHJlc3BvbnNpdmVWYWxcIlxuICBoZWlnaHQ9XCI4MHZoXCJcbiAgI2FjTW9kYWw+XG4gIDxkaXYgKm1vZGFsQm9keT5cbiAgICBAaWYgKHVTLmlzTW9iaWxlU2lnbmFsKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxhcHAtaW5wdXQtdGQtcmYgW25vRm9ybWF0XT1cInRydWVcIiBbKG1vZGVsKV09XCJxdWVyeTFcIiBwbGFjZWhvbGRlcj1cIkZpbHRlclwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZC0xMFwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoPnt7ICdDb2x1bW4nIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+e3sgJ1Zpc2libGUnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+e3sgJ1N0aWNreScgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fTwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZEFsbEZpZWxkcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udCB8IHRpdGxlY2FzZSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIml0ZW0uYWN0aXZlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIml0ZW0uc3RpY2t5XCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPCEtLSA8ZGl2PnF1ZXJ5MiB7eyBxdWVyeTIoKSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICBzZWFyY2hSZWYudmFsdWVTaWduYWwgICAge3sgc2VhcmNoUmVmLnZhbHVlU2lnbmFsKCkgfX1cbiAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtMlwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZi02MDAgbWItMlwiPlxuICAgICAgICAgICAge3sgJ05vbi1TZWxlY3RlZCBDb2x1bW5zJyB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1pbnB1dC10ZC1yZiBbKG1vZGVsKV09XCJxdWVyeVwiIHBsYWNlaG9sZGVyPVwiRmlsdGVyXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZC0xMCBwLTIgYmctbGlnaHQgY2FnZSBvdmVyZmxvdy1hdXRvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG15LTIgbXgtMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWlucHV0LXRkLXJmXG4gICAgICAgICAgICAgICAgICAjc2VhcmNoUmVmXG4gICAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJxdWVyeTJcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgbmFtZVwiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMtMSBnLTJcIlxuICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAjc291cmNlTGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJub25BY3RpdmVGaWVsZHMoKVwiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltkZXN0aW5hdGlvbkxpc3RdXCJcbiAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBub25BY3RpdmVGaWVsZHMoKTsgdHJhY2sgaXRlbS5mOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtY3VzdG9tLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQtMTAgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1hdXRvIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRyYWcgdGhlIGljb24gdG8gbW92ZSB0aGUgY29sdW1uIHRvIHRoZSBzZWxlY3RlZCBjb2x1bW5zIGdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmFnLWN1cnNvciBtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnX2hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50IHwgdGl0bGVjYXNlIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC1hdXRvXCIgKm5nSWY9XCIhdVMuZW52aXJvbm1lbnQucHJvZHVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udHlwZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLW1kLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWlucHV0LXRkLXJmIFt4c21hbGxdPVwidHJ1ZVwiIFtsYWJlbF09XCInSXMgTnVtYmVyPydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJmYWxzZVwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJpc051bVR5cGUoJGV2ZW50LCBpdGVtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtYnRuIHRleHQ9XCJTZWxlY3RcIiAobWNsaWNrKT1cImNoYW5nZVRvQWN0aXZlKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZi02MDAgbWItMlwiPlxuICAgICAgICAgICAge3sgJ1NlbGVjdGVkIENvbHVtbnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQtMTAgcC0yIGJnLWxpZ2h0IGNhZ2Ugb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy0xIGctMlwiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICNkZXN0aW5hdGlvbkxpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiYWN0aXZlRmllbGRzKClcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbc291cmNlTGlzdF1cIlxuICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGFjdGl2ZUZpZWxkcygpOyB0cmFjayBpdGVtLmY7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1jdXN0b20tcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZC0xMCBiZy13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLWF1dG8ganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRHJhZyB0aGUgaWNvbiB0byBtb3ZlIHRoZSBjb2x1bW4gdG8gdGhlIG5vbi1zZWxlY3RlZCBjb2x1bW5zIGdyb3VwIG9yIHJlLW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmFnLWN1cnNvciBtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnX2hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50IHwgdGl0bGVjYXNlIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgKm5nSWY9XCJpdGVtLmFjdGl2ZVwiIFsobmdNb2RlbCldPVwiaXRlbS5zdGlja3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1N0aWNreScgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy0xMDAgcHQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiICptb2RhbEZvb3Rlcj5cbiAgICA8YXBwLWJ0biB0ZXh0PVwiVXBkYXRlIENvbHVtbnNcIiAobWNsaWNrKT1cImVtaXRGaWVsZHNDaGFuZ2VkKCk7IGFjTW9kYWwuY2xvc2UoKVwiIC8+XG4gIDwvZGl2PlxuPC9tb2RhbC1jb21wPlxuIl19
@@ -77,10 +77,10 @@ export class FileUploadComponent {
77
77
  // document.body.appendChild(inp);
78
78
  inp.click();
79
79
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { help: { classPropertyName: "help", publicName: "help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, mediaWidth: { classPropertyName: "mediaWidth", publicName: "mediaWidth", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, useWebcam: { classPropertyName: "useWebcam", publicName: "useWebcam", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, useDocumentModal: { classPropertyName: "useDocumentModal", publicName: "useDocumentModal", isSignal: false, isRequired: false, transformFunction: null }, listFiles: { classPropertyName: "listFiles", publicName: "listFiles", isSignal: true, isRequired: false, transformFunction: null }, _accept: { classPropertyName: "_accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mediaWidth: "mediaWidthChange", file: "fileChange", fileChange: "fileChange", files: "filesChange", filesChange: "filesChange" }, ngImport: i0, template: "@if (listFiles()) {\n <div [ngClass]=\"{ meta: mini() }\" class=\"{{ class() }} form-label mb-2 hide-scroll\">\n @for (item of files(); track item) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{ item?.name }}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index)\"></span>\n </div>\n </div>\n }\n </div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn\n icon=\"upload\"\n (mclick)=\"useWebcam() ? null : openDialog()\"\n [type]=\"file() ? 'primary' : 'secondary'\"\n [disabled]=\"disabled\"\n [help]=\"help\"\n [text]=\"label\"\n [matMenuTriggerFor]=\"useWebcam() ? menu : null\" />\n\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog()\">Upload</button>\n <button mat-menu-item (click)=\"webcamModal.open()\">Use Camera</button>\n</mat-menu>\n\n<modal-comp #webcamModal width=\"1080px\" [showFooter]=\"false\" header=\"Webcam\">\n <ng-template modalBody>\n <lib-webcam-media [fileName]=\"fileName()\" [width]=\"mediaWidth()\" (closed)=\"webcamModal.close(); $event ? acceptFiles($event?.latestFile) : null\" />\n </ng-template>\n</modal-comp>\n", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "component", type: i1.ModalComponent, selector: "modal-comp", inputs: ["header", "bodyTemplateRef", "footerTemplateRef", "showHeader", "loading", "isFullscreen", "showFooter", "width", "minWidth", "height", "maxHeight", "icon", "data", "disableClose", "hasBackdrop"], outputs: ["headerChange", "showHeaderChange", "loadingChange", "showFooterChange", "modalOpen", "modalClose"] }, { kind: "directive", type: i2.ModalBodyDirective, selector: "[modalBody]" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: WebcamMediaComponent, selector: "lib-webcam-media", inputs: ["controlTemplate", "isVideo", "useAudio", "fileName", "fileNameFactory", "fileType", "extraClass", "recordingNotificationInterval", "imageSnapshotInterval", "isBackground", "width"], outputs: ["closed", "recorderStopped", "recorderErrored", "recorderStarted", "recordingState", "recordingChanged", "newImageSnapshot", "webcamError", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: FileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { help: { classPropertyName: "help", publicName: "help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, mediaWidth: { classPropertyName: "mediaWidth", publicName: "mediaWidth", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, useWebcam: { classPropertyName: "useWebcam", publicName: "useWebcam", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, useDocumentModal: { classPropertyName: "useDocumentModal", publicName: "useDocumentModal", isSignal: false, isRequired: false, transformFunction: null }, listFiles: { classPropertyName: "listFiles", publicName: "listFiles", isSignal: true, isRequired: false, transformFunction: null }, _accept: { classPropertyName: "_accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mediaWidth: "mediaWidthChange", file: "fileChange", fileChange: "fileChange", files: "filesChange", filesChange: "filesChange" }, ngImport: i0, template: "@if (listFiles()) {\n <div [ngClass]=\"{ meta: mini() }\" class=\"{{ class() }} form-label mb-2 hide-scroll\">\n @for (item of files(); track item) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{ item?.name }}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index)\"></span>\n </div>\n </div>\n }\n </div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn\n icon=\"upload\"\n (mclick)=\"useWebcam() ? null : openDialog()\"\n [type]=\"file() ? 'primary' : 'secondary'\"\n [disabled]=\"disabled\"\n [help]=\"help\"\n [text]=\"label\"\n [matMenuTriggerFor]=\"useWebcam() ? menu : null\" />\n\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog()\">Upload</button>\n <button mat-menu-item (click)=\"webcamModal.open()\">Use Camera</button>\n</mat-menu>\n\n<modal-comp #webcamModal width=\"1080px\" [showFooter]=\"false\" header=\"Webcam\">\n <ng-template modalBody>\n <lib-webcam-media [fileName]=\"fileName()\" [width]=\"mediaWidth()\" (closed)=\"webcamModal.close(); $event ? acceptFiles($event?.latestFile) : null\" />\n </ng-template>\n</modal-comp>\n", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "component", type: i1.ModalComponent, selector: "modal-comp", inputs: ["header", "bodyTemplateRef", "footerTemplateRef", "showHeader", "loading", "isFullscreen", "showFooter", "width", "minWidth", "height", "maxHeight", "icon", "data", "disableClose", "hasBackdrop"], outputs: ["headerChange", "showHeaderChange", "loadingChange", "showFooterChange", "modalOpen", "modalClose"] }, { kind: "directive", type: i2.ModalBodyDirective, selector: "[modalBody]" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: WebcamMediaComponent, selector: "lib-webcam-media", inputs: ["controlTemplate", "isVideo", "useAudio", "fileName", "fileNameFactory", "fileType", "extraClass", "recordingNotificationInterval", "imageSnapshotInterval", "isBackground", "width"], outputs: ["closed", "recorderStopped", "recorderErrored", "recorderStarted", "recordingState", "recordingChanged", "newImageSnapshot", "webcamError", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FileUploadComponent, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FileUploadComponent, decorators: [{
84
84
  type: Component,
85
85
  args: [{ selector: 'app-file-upload', standalone: true, changeDetection: ChangeDetectionStrategy.Default, imports: [
86
86
  NgIf,
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
105
105
  type: Input,
106
106
  args: ['accept']
107
107
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBR0wsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQWtCOUUsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsSUFBcUIsT0FBTyxDQUFDLENBQVM7UUFDcEMsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQztnQkFDckMsTUFBTTtZQUVSO2dCQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixNQUFNO1NBQ1Q7SUFDSCxDQUFD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QUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQztRQUNGLGtDQUFrQztRQUNsQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZCxDQUFDOzhHQTlFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQix5OURDbkNoQyx3NUNBb0NBLHdJRFRJLE9BQU8sb0ZBRVAsWUFBWSxvOUJBRVosYUFBYSw4dkJBQ2Isb0JBQW9COzsyRkFHWCxtQkFBbUI7a0JBaEIvQixTQUFTOytCQUNFLGlCQUFpQixjQUdmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsT0FBTyxXQUN2Qzt3QkFDUCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsS0FBSzt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO3dEQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHZSxPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgTW9kYWxDb21wb25lbnRzIGZyb20gJy4uL21vZGFsLWNvbXBvbmVudHMvbW9kYWwuY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBXZWJjYW1NZWRpYUNvbXBvbmVudCB9IGZyb20gJy4uL3dlYmNhbS1tZWRpYS93ZWJjYW0tbWVkaWEuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0NsYXNzLFxuICAgIE5nRm9yLFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudHMsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBXZWJjYW1NZWRpYUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGhlbHA6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgbWVkaWFXaWR0aCA9IG1vZGVsPG51bWJlcj4oMTA4MCk7XG4gIGNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICB1c2VXZWJjYW0gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIC8qKlxuICAgKiBPbmx5IHVzZWZ1bCBpZiB1c2luZyB0aGUgd2ViY2FtIG9wdGlvblxuICAgKi9cbiAgZmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgbWluaSA9IGlucHV0KHRydWUpO1xuICBASW5wdXQoKSB1c2VEb2N1bWVudE1vZGFsOiBib29sZWFuO1xuICBsaXN0RmlsZXMgPSBpbnB1dCh0cnVlKTtcbiAgYWNjZXB0OiBzdHJpbmc7XG4gIEBJbnB1dCgnYWNjZXB0Jykgc2V0IF9hY2NlcHQodjogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIHRoaXMuYWNjZXB0ID0gJy5wbmcsLmpwZywuanBlZywuYm1wJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuYWNjZXB0ID0gdjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vIEBWaWV3Q2hpbGQoJ3VwbG9hZElucHV0JykgdXBsb2FkSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHJlYWRvbmx5IGZpbGUgPSBtb2RlbDxGaWxlPigpO1xuICByZWFkb25seSBmaWxlQ2hhbmdlID0gb3V0cHV0PEZpbGU+KCk7XG4gIHJlYWRvbmx5IGZpbGVzID0gbW9kZWw8RmlsZVtdPigpO1xuICByZWFkb25seSBmaWxlc0NoYW5nZSA9IG91dHB1dDxGaWxlW10+KCk7XG5cbiAgcHVibGljIHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldCBpc1NpbmdsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubXVsdGlwbGU7XG4gIH1cbiAgcHJvdGVjdGVkIGFjY2VwdEZpbGVzKC4uLmZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLmZpbGVzLnNldChmaWxlcyk7XG4gICAgdGhpcy5maWxlLnNldChmaWxlcyA/IGZpbGVzWzBdIDogbnVsbCk7XG4gICAgdGhpcy5lbWl0RmlsZXMoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZW1pdEZpbGVzKCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB0aGlzLmZpbGVzQ2hhbmdlLmVtaXQodGhpcy5maWxlcygpKTtcbiAgICBlbHNlIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMuZmlsZSgpKTtcbiAgfVxuXG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb208RmlsZT4oZXZlbnQudGFyZ2V0LmZpbGVzKTtcbiAgICB0aGlzLmFjY2VwdEZpbGVzKC4uLmZpbGVzKTtcbiAgfVxuXG4gIHJlbW92ZUZpbGUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZmlsZXMudXBkYXRlKChmaWxlcykgPT4ge1xuICAgICAgZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiBbLi4uZmlsZXNdO1xuICAgIH0pO1xuICAgIHRoaXMuZmlsZS5zZXQodGhpcy5maWxlcygpID8gdGhpcy5maWxlcygpPy5bMF0gOiBudWxsKTtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMuZmlsZSgpKTtcbiAgICB0aGlzLmZpbGVzQ2hhbmdlLmVtaXQodGhpcy5maWxlcygpKTtcbiAgfVxuICBvcGVuRGlhbG9nKCkge1xuICAgIGNvbnN0IGlucCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgaW5wLnR5cGUgPSAnZmlsZSc7XG4gICAgaW5wLmFjY2VwdCA9IHRoaXMuYWNjZXB0O1xuICAgIGlucC5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgaW5wLm9uY2hhbmdlID0gKGUpID0+IHtcbiAgICAgIHRoaXMub25VcGxvYWQoZSk7XG4gICAgICBpbnAucmVtb3ZlKCk7XG4gICAgfTtcbiAgICAvLyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucCk7XG4gICAgaW5wLmNsaWNrKCk7XG4gIH1cbn1cbiIsIkBpZiAobGlzdEZpbGVzKCkpIHtcbiAgPGRpdiBbbmdDbGFzc109XCJ7IG1ldGE6IG1pbmkoKSB9XCIgY2xhc3M9XCJ7eyBjbGFzcygpIH19IGZvcm0tbGFiZWwgbWItMiBoaWRlLXNjcm9sbFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgZmlsZXMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1zdGFydCBtYi0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1zY3JvbGwgZmlsZS1uYW1lXCI+XG4gICAgICAgICAgICB7eyBpdGVtPy5uYW1lIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gdGV4dC1lbmRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHBvaW50ZXIgcC0xIGZhIGZhLWNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZUZpbGUoJGluZGV4KVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuPCEtLSA8aW5wdXQgdHlwZT1cImZpbGVcIiAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cInt7YWNjZXB0fX1cIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjdXBsb2FkSW5wdXQgW211bHRpcGxlXT1cIm11bHRpcGxlXCI+IC0tPlxuPGFwcC1idG5cbiAgaWNvbj1cInVwbG9hZFwiXG4gIChtY2xpY2spPVwidXNlV2ViY2FtKCkgPyBudWxsIDogb3BlbkRpYWxvZygpXCJcbiAgW3R5cGVdPVwiZmlsZSgpID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbaGVscF09XCJoZWxwXCJcbiAgW3RleHRdPVwibGFiZWxcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwidXNlV2ViY2FtKCkgPyBtZW51IDogbnVsbFwiIC8+XG5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj5VcGxvYWQ8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJ3ZWJjYW1Nb2RhbC5vcGVuKClcIj5Vc2UgQ2FtZXJhPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48bW9kYWwtY29tcCAjd2ViY2FtTW9kYWwgd2lkdGg9XCIxMDgwcHhcIiBbc2hvd0Zvb3Rlcl09XCJmYWxzZVwiIGhlYWRlcj1cIldlYmNhbVwiPlxuICA8bmctdGVtcGxhdGUgbW9kYWxCb2R5PlxuICAgIDxsaWItd2ViY2FtLW1lZGlhIFtmaWxlTmFtZV09XCJmaWxlTmFtZSgpXCIgW3dpZHRoXT1cIm1lZGlhV2lkdGgoKVwiIChjbG9zZWQpPVwid2ViY2FtTW9kYWwuY2xvc2UoKTsgJGV2ZW50ID8gYWNjZXB0RmlsZXMoJGV2ZW50Py5sYXRlc3RGaWxlKSA6IG51bGxcIiAvPlxuICA8L25nLXRlbXBsYXRlPlxuPC9tb2RhbC1jb21wPlxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBR0wsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQWtCOUUsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsSUFBcUIsT0FBTyxDQUFDLENBQVM7UUFDcEMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLHNCQUFzQixDQUFDO2dCQUNyQyxNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU07UUFDVixDQUFD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QUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUM7UUFDRixrQ0FBa0M7UUFDbEMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2QsQ0FBQzs4R0E5RVUsbUJBQW1CO2tHQUFuQixtQkFBbUIseTlEQ25DaEMsdzVDQW9DQSx3SURUSSxPQUFPLG9GQUVQLFlBQVksbzlCQUVaLGFBQWEsOHZCQUNiLG9CQUFvQjs7MkZBR1gsbUJBQW1CO2tCQWhCL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE9BQU8sV0FDdkM7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isb0JBQW9CO3FCQUNyQjt3REFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR2UsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IE1vZGFsQ29tcG9uZW50cyBmcm9tICcuLi9tb2RhbC1jb21wb25lbnRzL21vZGFsLmNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgV2ViY2FtTWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi93ZWJjYW0tbWVkaWEvd2ViY2FtLW1lZGlhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdDbGFzcyxcbiAgICBOZ0ZvcixcbiAgICBCdG5Db21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnRzLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgV2ViY2FtTWVkaWFDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBoZWxwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIG1lZGlhV2lkdGggPSBtb2RlbDxudW1iZXI+KDEwODApO1xuICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlV2ViY2FtID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKipcbiAgICogT25seSB1c2VmdWwgaWYgdXNpbmcgdGhlIHdlYmNhbSBvcHRpb25cbiAgICovXG4gIGZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47XG4gIG1pbmkgPSBpbnB1dCh0cnVlKTtcbiAgQElucHV0KCkgdXNlRG9jdW1lbnRNb2RhbDogYm9vbGVhbjtcbiAgbGlzdEZpbGVzID0gaW5wdXQodHJ1ZSk7XG4gIGFjY2VwdDogc3RyaW5nO1xuICBASW5wdXQoJ2FjY2VwdCcpIHNldCBfYWNjZXB0KHY6IHN0cmluZykge1xuICAgIHN3aXRjaCAodikge1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICB0aGlzLmFjY2VwdCA9ICcucG5nLC5qcGcsLmpwZWcsLmJtcCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmFjY2VwdCA9IHY7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvLyBAVmlld0NoaWxkKCd1cGxvYWRJbnB1dCcpIHVwbG9hZElucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICByZWFkb25seSBmaWxlID0gbW9kZWw8RmlsZT4oKTtcbiAgcmVhZG9ubHkgZmlsZUNoYW5nZSA9IG91dHB1dDxGaWxlPigpO1xuICByZWFkb25seSBmaWxlcyA9IG1vZGVsPEZpbGVbXT4oKTtcbiAgcmVhZG9ubHkgZmlsZXNDaGFuZ2UgPSBvdXRwdXQ8RmlsZVtdPigpO1xuXG4gIHB1YmxpYyB1UyA9IGluamVjdChVdGlsaXR5U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBnZXQgaXNTaW5nbGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLm11bHRpcGxlO1xuICB9XG4gIHByb3RlY3RlZCBhY2NlcHRGaWxlcyguLi5maWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy5maWxlcy5zZXQoZmlsZXMpO1xuICAgIHRoaXMuZmlsZS5zZXQoZmlsZXMgPyBmaWxlc1swXSA6IG51bGwpO1xuICAgIHRoaXMuZW1pdEZpbGVzKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGVtaXRGaWxlcygpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMoKSk7XG4gICAgZWxzZSB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLmZpbGUoKSk7XG4gIH1cblxuICBvblVwbG9hZChldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tPEZpbGU+KGV2ZW50LnRhcmdldC5maWxlcyk7XG4gICAgdGhpcy5hY2NlcHRGaWxlcyguLi5maWxlcyk7XG4gIH1cblxuICByZW1vdmVGaWxlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZpbGVzLnVwZGF0ZSgoZmlsZXMpID0+IHtcbiAgICAgIGZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gWy4uLmZpbGVzXTtcbiAgICB9KTtcbiAgICB0aGlzLmZpbGUuc2V0KHRoaXMuZmlsZXMoKSA/IHRoaXMuZmlsZXMoKT8uWzBdIDogbnVsbCk7XG5cbiAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLmZpbGUoKSk7XG4gICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMoKSk7XG4gIH1cbiAgb3BlbkRpYWxvZygpIHtcbiAgICBjb25zdCBpbnAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucC50eXBlID0gJ2ZpbGUnO1xuICAgIGlucC5hY2NlcHQgPSB0aGlzLmFjY2VwdDtcbiAgICBpbnAubXVsdGlwbGUgPSB0aGlzLm11bHRpcGxlO1xuICAgIGlucC5vbmNoYW5nZSA9IChlKSA9PiB7XG4gICAgICB0aGlzLm9uVXBsb2FkKGUpO1xuICAgICAgaW5wLnJlbW92ZSgpO1xuICAgIH07XG4gICAgLy8gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnApO1xuICAgIGlucC5jbGljaygpO1xuICB9XG59XG4iLCJAaWYgKGxpc3RGaWxlcygpKSB7XG4gIDxkaXYgW25nQ2xhc3NdPVwieyBtZXRhOiBtaW5pKCkgfVwiIGNsYXNzPVwie3sgY2xhc3MoKSB9fSBmb3JtLWxhYmVsIG1iLTIgaGlkZS1zY3JvbGxcIj5cbiAgICBAZm9yIChpdGVtIG9mIGZpbGVzKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtc3RhcnQgbWItMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtc2Nyb2xsIGZpbGUtbmFtZVwiPlxuICAgICAgICAgICAge3sgaXRlbT8ubmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHRleHQtZW5kXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciBwb2ludGVyIHAtMSBmYSBmYS1jbG9zZVwiIChjbGljayk9XCJyZW1vdmVGaWxlKCRpbmRleClcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbn1cbjwhLS0gPGlucHV0IHR5cGU9XCJmaWxlXCIgIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiBhY2NlcHQ9XCJ7e2FjY2VwdH19XCIgKGNoYW5nZSk9XCJvblVwbG9hZCgkZXZlbnQpXCIgI3VwbG9hZElucHV0IFttdWx0aXBsZV09XCJtdWx0aXBsZVwiPiAtLT5cbjxhcHAtYnRuXG4gIGljb249XCJ1cGxvYWRcIlxuICAobWNsaWNrKT1cInVzZVdlYmNhbSgpID8gbnVsbCA6IG9wZW5EaWFsb2coKVwiXG4gIFt0eXBlXT1cImZpbGUoKSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2hlbHBdPVwiaGVscFwiXG4gIFt0ZXh0XT1cImxhYmVsXCJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInVzZVdlYmNhbSgpID8gbWVudSA6IG51bGxcIiAvPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+VXBsb2FkPC9idXR0b24+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwid2ViY2FtTW9kYWwub3BlbigpXCI+VXNlIENhbWVyYTwvYnV0dG9uPlxuPC9tYXQtbWVudT5cblxuPG1vZGFsLWNvbXAgI3dlYmNhbU1vZGFsIHdpZHRoPVwiMTA4MHB4XCIgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBoZWFkZXI9XCJXZWJjYW1cIj5cbiAgPG5nLXRlbXBsYXRlIG1vZGFsQm9keT5cbiAgICA8bGliLXdlYmNhbS1tZWRpYSBbZmlsZU5hbWVdPVwiZmlsZU5hbWUoKVwiIFt3aWR0aF09XCJtZWRpYVdpZHRoKClcIiAoY2xvc2VkKT1cIndlYmNhbU1vZGFsLmNsb3NlKCk7ICRldmVudCA/IGFjY2VwdEZpbGVzKCRldmVudD8ubGF0ZXN0RmlsZSkgOiBudWxsXCIgLz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbW9kYWwtY29tcD5cbiJdfQ==
@@ -84,10 +84,10 @@ export class FormErrorComponent {
84
84
  // debugger;
85
85
  // console.log('message', this.message);
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: i1.UtilityService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: i1.UtilityService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FormErrorComponent, decorators: [{
91
91
  type: Component,
92
92
  args: [{ selector: 'form-error', standalone: true, imports: [
93
93
  CommonModule,
@@ -109,4 +109,4 @@ function hasError(control) {
109
109
  ? true
110
110
  : false;
111
111
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFVLEdBQUcsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFpQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0Isb0dBQW9HO0lBQ3BHLElBQWEsSUFBSSxDQUFDLENBQWdCO1FBQ2hDLFlB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LE9BQU8sT0FBTyxFQUFFLE9BQU87UUFDckIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNO2dCQUNsQyxDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5mb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSW5mb0ljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHN1YiA9IHRoaXMudVMuY3JlYXRlU3Vic2NyaXB0aW9uTWFuYWdlcigpO1xuICAvLyByZWFkb25seSBlcnJvcnMgPSBzaWduYWw8eyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ/OiBzdHJpbmcgfVtdPihbXSk7XG4gIEBJbnB1dCgpIHNldCBmb3JtKHY6IEZvcm0gfCBGb3JtW10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB0aGlzLnN1Yi5wdXNoKFxuICAgICAgKEFycmF5LmlzQXJyYXkodilcbiAgICAgICAgPyBtZXJnZSguLi52Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgdi5zb21lKChmKSA9PiBmLnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgZi5zdGF0dXMgPT0gJ1BFTkRJTkcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIHVuaXFCeShcbiAgICAgICAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gaS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiB2LnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2LnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgdi5zdGF0dXMgPT0gJ1BFTkRJTkcnKSByZXR1cm4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKHYpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKChyKSA9PiB0aGlzLmVycm9ycy5zZXQocikpLFxuICAgICk7XG4gIH1cbiAgcmVhZG9ubHkgZXJyb3JzID0gc2lnbmFsPElFcnJvcj4oW10pO1xuICByZWFkb25seSBjRXJyb3JzID0gY29tcHV0ZWQ8SUVycm9yPihcbiAgICAoKSA9PiB0aGlzLmVycm9ycygpPy5maWx0ZXIoKHgpID0+IHguZm9ybUNvbnRyb2wuaW52YWxpZCB8fCB4LmZvcm1Db250cm9sLnBlbmRpbmcpLFxuICApO1xuXG4gIC8vIHByb3RlY3RlZCBmb3JtPzogRm9ybTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zPzogRm9ybVtdO1xuICByZWFkb25seSBsZ0dyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMik7XG4gIHJlYWRvbmx5IHh4bEdyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMyk7XG5cbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmNFcnJvcnMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyBkZXN0cm95ZXJSZWY6IERlc3Ryb3lSZWYsXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnZXJyb3JlZCBmb3JtcycsIHRoaXMuZXJyb3JzKCkpO1xuICAgICAgY29uc29sZS5sb2coJ2NFcnJvcmVkIGZvcm1zJywgdGhpcy5jRXJyb3JzKCkpO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveWVyUmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZXMoXG4gICAgZm9ybTogRm9ybSB8IEFic3RyYWN0Q29udHJvbCxcbiAgICBmb3JtTmFtZT86IHN0cmluZyxcbiAgICBfaW5kZXg/OiBudW1iZXIsXG4gICAgcGFyZW50Pzogc3RyaW5nLFxuICApOiBJRXJyb3Ige1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGxldCBtZXNzYWdlczogSUVycm9yID0gW107XG4gICAgaWYgKGhhc0Vycm9yKGZvcm0pKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICBmb3JtQ29udHJvbDogZm9ybSxcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgKF9pbmRleCA/IGBJdGVtICR7X2luZGV4fTogYCA6ICcnKSArXG4gICAgICAgICAgKGZvcm0ubGFiZWxWYWx1ZSB8fFxuICAgICAgICAgICAgKGZvcm1OYW1lID8gdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgOiBmb3JtTmFtZT8udG9TZW50ZW5jZUNhc2UoKSkpLFxuICAgICAgICBwYXJlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtLmNvbnRyb2xzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybS5jb250cm9scywga2V5KSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2tleV07XG4gICAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBfaW5kZXgsXG4gICAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm0ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIG1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKFxuICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGluZGV4ICsgMSxcbiAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgLy8gY29uc29sZS5sb2coJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2UpO1xuICB9XG59XG50eXBlIEZvcm0gPSBGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheTtcbnR5cGUgSUVycm9yID0geyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ6IHN0cmluZyB8IG51bGwgfVtdO1xuZnVuY3Rpb24gaGFzRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIHJldHVybiBjb250cm9sPy5wZW5kaW5nXG4gICAgPyB0cnVlXG4gICAgOiAhY29udHJvbD8uZXJyb3JzXG4gICAgICA/IGZhbHNlXG4gICAgICA6IE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2U7XG59XG4iLCJAaWYgKGhhc0Vycm9yKCkpIHtcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cbiAgICA8YXBwLWJ0blxuICAgICAgdGV4dD1cIkZvcm0gRXJyb3JzXCJcbiAgICAgIGljb249XCJpbmZvXCJcbiAgICAgIHR5cGU9XCJjbGVhclwiXG4gICAgICBtY2xhc3M9XCJidG4tb3V0bGluZS13YXJuaW5nXCJcbiAgICAgIChtY2xpY2spPVwiZXJyQ29udC5oaWRkZW4gPSAhZXJyQ29udC5oaWRkZW5cIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBmb3JtLWVycm9yLWNvbnRhaW5lciBwLTMgbXQtMlwiICNlcnJDb250IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3sgbGdHcmlkTm8oKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZE5vKCkgfX1cIj5cbiAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlLTNcIj57eyAnRm9ybSBlcnJvcnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIGNFcnJvcnMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAaWYgKGl0ZW0uZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItaXRlbS1jYXNlXCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICAgIDxhcHAtaW5mby1pY29uIHRleHQ9XCJHcm91cDoge3sgaXRlbS5wYXJlbnQgfX1cIiAvPlxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJcIiBbbWF0VG9vbHRpcF09XCJpdGVtLnBhcmVudFwiPlBhcmVudDwvZGl2PiAtLT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsIHwgdGl0bGVjYXNlXCJcbiAgICAgICAgICAgICAgW2lnbm9yZURpcnRpbmVzc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiaXRlbS5mb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFVLEdBQUcsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFpQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0Isb0dBQW9HO0lBQ3BHLElBQWEsSUFBSSxDQUFDLENBQWdCO1FBQ2hDLFlB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Q2xCO3FJQUtZLElBQUk7c0JBQWhCLEtBQUs7O0FBbUhSLFNBQVMsUUFBUSxDQUFDLE9BQXdCO0lBQ3hDLE9BQU8sT0FBTyxFQUFFLE9BQU87UUFDckIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNO2dCQUNsQyxDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5mb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSW5mb0ljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHN1YiA9IHRoaXMudVMuY3JlYXRlU3Vic2NyaXB0aW9uTWFuYWdlcigpO1xuICAvLyByZWFkb25seSBlcnJvcnMgPSBzaWduYWw8eyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ/OiBzdHJpbmcgfVtdPihbXSk7XG4gIEBJbnB1dCgpIHNldCBmb3JtKHY6IEZvcm0gfCBGb3JtW10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB0aGlzLnN1Yi5wdXNoKFxuICAgICAgKEFycmF5LmlzQXJyYXkodilcbiAgICAgICAgPyBtZXJnZSguLi52Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgdi5zb21lKChmKSA9PiBmLnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgZi5zdGF0dXMgPT0gJ1BFTkRJTkcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIHVuaXFCeShcbiAgICAgICAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gaS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiB2LnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2LnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgdi5zdGF0dXMgPT0gJ1BFTkRJTkcnKSByZXR1cm4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKHYpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKChyKSA9PiB0aGlzLmVycm9ycy5zZXQocikpLFxuICAgICk7XG4gIH1cbiAgcmVhZG9ubHkgZXJyb3JzID0gc2lnbmFsPElFcnJvcj4oW10pO1xuICByZWFkb25seSBjRXJyb3JzID0gY29tcHV0ZWQ8SUVycm9yPihcbiAgICAoKSA9PiB0aGlzLmVycm9ycygpPy5maWx0ZXIoKHgpID0+IHguZm9ybUNvbnRyb2wuaW52YWxpZCB8fCB4LmZvcm1Db250cm9sLnBlbmRpbmcpLFxuICApO1xuXG4gIC8vIHByb3RlY3RlZCBmb3JtPzogRm9ybTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zPzogRm9ybVtdO1xuICByZWFkb25seSBsZ0dyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMik7XG4gIHJlYWRvbmx5IHh4bEdyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMyk7XG5cbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmNFcnJvcnMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyBkZXN0cm95ZXJSZWY6IERlc3Ryb3lSZWYsXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnZXJyb3JlZCBmb3JtcycsIHRoaXMuZXJyb3JzKCkpO1xuICAgICAgY29uc29sZS5sb2coJ2NFcnJvcmVkIGZvcm1zJywgdGhpcy5jRXJyb3JzKCkpO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveWVyUmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZXMoXG4gICAgZm9ybTogRm9ybSB8IEFic3RyYWN0Q29udHJvbCxcbiAgICBmb3JtTmFtZT86IHN0cmluZyxcbiAgICBfaW5kZXg/OiBudW1iZXIsXG4gICAgcGFyZW50Pzogc3RyaW5nLFxuICApOiBJRXJyb3Ige1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGxldCBtZXNzYWdlczogSUVycm9yID0gW107XG4gICAgaWYgKGhhc0Vycm9yKGZvcm0pKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICBmb3JtQ29udHJvbDogZm9ybSxcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgKF9pbmRleCA/IGBJdGVtICR7X2luZGV4fTogYCA6ICcnKSArXG4gICAgICAgICAgKGZvcm0ubGFiZWxWYWx1ZSB8fFxuICAgICAgICAgICAgKGZvcm1OYW1lID8gdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgOiBmb3JtTmFtZT8udG9TZW50ZW5jZUNhc2UoKSkpLFxuICAgICAgICBwYXJlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtLmNvbnRyb2xzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybS5jb250cm9scywga2V5KSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2tleV07XG4gICAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBfaW5kZXgsXG4gICAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm0ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIG1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKFxuICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGluZGV4ICsgMSxcbiAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgLy8gY29uc29sZS5sb2coJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2UpO1xuICB9XG59XG50eXBlIEZvcm0gPSBGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheTtcbnR5cGUgSUVycm9yID0geyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ6IHN0cmluZyB8IG51bGwgfVtdO1xuZnVuY3Rpb24gaGFzRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIHJldHVybiBjb250cm9sPy5wZW5kaW5nXG4gICAgPyB0cnVlXG4gICAgOiAhY29udHJvbD8uZXJyb3JzXG4gICAgICA/IGZhbHNlXG4gICAgICA6IE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2U7XG59XG4iLCJAaWYgKGhhc0Vycm9yKCkpIHtcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cbiAgICA8YXBwLWJ0blxuICAgICAgdGV4dD1cIkZvcm0gRXJyb3JzXCJcbiAgICAgIGljb249XCJpbmZvXCJcbiAgICAgIHR5cGU9XCJjbGVhclwiXG4gICAgICBtY2xhc3M9XCJidG4tb3V0bGluZS13YXJuaW5nXCJcbiAgICAgIChtY2xpY2spPVwiZXJyQ29udC5oaWRkZW4gPSAhZXJyQ29udC5oaWRkZW5cIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBmb3JtLWVycm9yLWNvbnRhaW5lciBwLTMgbXQtMlwiICNlcnJDb250IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3sgbGdHcmlkTm8oKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZE5vKCkgfX1cIj5cbiAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlLTNcIj57eyAnRm9ybSBlcnJvcnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIGNFcnJvcnMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAaWYgKGl0ZW0uZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItaXRlbS1jYXNlXCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICAgIDxhcHAtaW5mby1pY29uIHRleHQ9XCJHcm91cDoge3sgaXRlbS5wYXJlbnQgfX1cIiAvPlxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJcIiBbbWF0VG9vbHRpcF09XCJpdGVtLnBhcmVudFwiPlBhcmVudDwvZGl2PiAtLT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsIHwgdGl0bGVjYXNlXCJcbiAgICAgICAgICAgICAgW2lnbm9yZURpcnRpbmVzc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiaXRlbS5mb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
@@ -22,10 +22,10 @@ export class ListOptionFinderPipe {
22
22
  constructor(iS) {
23
23
  this.iS = iS;
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ListOptionFinderPipe, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Pipe }); }
26
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: ListOptionFinderPipe, isStandalone: true, name: "listOptionFinder" }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ListOptionFinderPipe, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: ListOptionFinderPipe, isStandalone: true, name: "listOptionFinder" }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ListOptionFinderPipe, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ListOptionFinderPipe, decorators: [{
29
29
  type: Pipe,
30
30
  args: [{ name: 'listOptionFinder', standalone: true }]
31
31
  }], ctorParameters: () => [{ type: i1.InputService }] });
@@ -61,10 +61,10 @@ export class FormGeneratedValueComponent extends FormGeneratorComponent {
61
61
  return value;
62
62
  };
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormGeneratedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", providers: [ListOptionFinderPipe], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedListValue(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n } \n @default {\n <div class=\"\">\n <div class=\"text-primary\">\n {{ scheme.label }}\n </div>\n <div class=\" \">\n {{ scheme.formattedValue | valueOrX: '-' }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FormGeneratedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", providers: [ListOptionFinderPipe], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedListValue(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n } \n @default {\n <div class=\"\">\n <div class=\"text-primary\">\n {{ scheme.label }}\n </div>\n <div class=\" \">\n {{ scheme.formattedValue | valueOrX: '-' }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormGeneratedValueComponent, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FormGeneratedValueComponent, decorators: [{
68
68
  type: Component,
69
69
  args: [{ selector: 'form-generated-value', standalone: true, imports: [
70
70
  AutocompleteComponent,
@@ -1,6 +1,7 @@
1
- import { ChangeDetectorRef, DestroyRef, computed, inject, model, signal } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, DestroyRef, computed, inject, model, signal } from '@angular/core';
2
2
  import { UtilityService } from '../../../Services/utility.service';
3
3
  import { TableService } from '../table-plain/table-plain.service';
4
+ import * as i0 from "@angular/core";
4
5
  export class BaseFormGenerator {
5
6
  constructor() {
6
7
  this.tableService = inject(TableService);
@@ -57,5 +58,13 @@ export class BaseFormGenerator {
57
58
  return formSchemaMap;
58
59
  });
59
60
  }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseFormGenerator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: BaseFormGenerator, selector: "ng-component", inputs: { useCustomLabels: { classPropertyName: "useCustomLabels", publicName: "useCustomLabels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { useCustomLabels: "useCustomLabelsChange" }, ngImport: i0, template: '', isInline: true }); }
60
63
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxNQUFNLE9BQWdCLGlCQUFpQjtJQXdCckM7UUFwQmdCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLG1CQUFjLEdBQUcsTUFBTSxDQUF1QyxFQUFFLENBQUMsQ0FBQztRQUNsRSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN2RCxlQUFVLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUU7WUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2QsR0FBRyxDQUFDO29CQUNKLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7aUJBQ2hGLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDSCxTQUFJLEdBQTBDLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5QixvQkFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsZUFBZSxDQUFDLE9BQTBCO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsTUFBZ0M7UUFDekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsMkJBQTJCO1lBQzNCLE9BQU8sRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDLEtBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdGLDRIQUE0SDtRQUM5SCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDUyxvQkFBb0IsQ0FBQyxHQUFvRDtRQUNqRixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzNDLE1BQU0sZ0JBQWdCLEdBQXlCLEVBQUUsQ0FBQztZQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLGFBQWE7Z0JBQzdCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUM7b0JBQzFELGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMzQyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEZXN0cm95UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBJT2JqZWN0TGl0ZXJhbCwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vYnRuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi90YWJsZS1wbGFpbi90YWJsZS1wbGFpbi5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFxuICBURm9ybUdyb3VwIGV4dGVuZHMgSU9iamVjdExpdGVyYWwsXG4gIFRCYXNlRm9ybVNjaGVtYSBleHRlbmRzIHsgZmllbGQ/OiBhbnk7IGxhYmVsPzogc3RyaW5nIH0gPSBhbnksXG4+IHtcbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgX2Zvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIHByb3RlY3RlZCBmb3JtU2NoZW1hTWFwID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZm9ybVNjaGVtYU1hcCgpKTtcbiAgcmVhZG9ubHkgZm9ybVNjaGVtYSA9IGNvbXB1dGVkPFRCYXNlRm9ybVNjaGVtYVtdPigoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KTtcbiAgICByZXR1cm4gdGhpcy51c2VDdXN0b21MYWJlbHMoKVxuICAgICAgPyByZXMubWFwKChmKSA9PiAoe1xuICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgbGFiZWw6IGYubGFiZWwgPyB0aGlzLnRhYmxlU2VydmljZS5jdXN0b21MYWJlbE1hcFtmLmZpZWxkXSB8fCBmLmxhYmVsIDogZi5sYWJlbCxcbiAgICAgICAgfSkpXG4gICAgICA6IHJlcztcbiAgfSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHVibGljIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcmVhZG9ubHkgdXNlQ3VzdG9tTGFiZWxzID0gbW9kZWwodHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25EZXN0cm95KCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5zdWJzKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuc3VicyA9IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zZXRGb3JtU2NoZW1hcyhzY2hlbWFzOiBUQmFzZUZvcm1TY2hlbWFbXSkge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAuc2V0KChzY2hlbWFzIHx8IFtdKS50b01hcCgnZmllbGQnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUZvcm1TY2hlbWEoZmllbGQ6IHN0cmluZywgc2NoZW1lOiBQYXJ0aWFsPFRCYXNlRm9ybVNjaGVtYT4pIHtcbiAgICB0aGlzLl9mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIC8vIGlmICghZXhpc3RpbmcpIGRlYnVnZ2VyO1xuICAgICAgcmV0dXJuIHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZyA/IHNjaGVtZSA6IHsgLi4uZXhpc3RpbmcsIC4uLnNjaGVtZSB9IH07XG4gICAgICAvLyByZXR1cm4gIXNjaCA/IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHNjaGVtZSB9IDogeyAuLi5mb3JtU2NoZW1hTWFwLCBbZmllbGQgYXMgYW55XTogeyAuLi5zY2gsIC4uLnNjaGVtZSB9IH07XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF91cGRhdGVBbGxGb3JtU2NoZW1hKG1hcDogKGZvcm1GaWVsZDogVEJhc2VGb3JtU2NoZW1hKSA9PiBUQmFzZUZvcm1TY2hlbWEpIHtcbiAgICB0aGlzLl9mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3Rm9ybVNjaGVtYU1hcDogdHlwZW9mIGZvcm1TY2hlbWFNYXAgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1TY2hlbWFNYXApXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybVNjaGVtYU1hcCwga2V5KSlcbiAgICAgICAgICBuZXdGb3JtU2NoZW1hTWFwW2tleV0gPSBtYXAoZm9ybVNjaGVtYU1hcFtrZXldKTtcbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZm9ybVNjaGVtYU1hcC51cGRhdGUoKGZvcm1TY2hlbWFNYXApID0+IHtcbiAgICAgIGRlbGV0ZSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIHJldHVybiBmb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VGb3JtU2NoZW1hPFxuICBULFxuICBDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUdlbmVyYXRvcjxUPixcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4ge1xuICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGF1dG9QaWNrVmFsdWVGaWVsZD86IGJvb2xlYW47XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBjbGVhck9uRGlzYWJsZT86IGJvb2xlYW47XG4gIGNscz86IHN0cmluZztcbiAgY291bnRyeUNvZGUzPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IElCYXNlRm9ybVNjaGVtYTxULCBDb21wb25lbnQsIFRGb3JtR3JvdXA+W107XG4gIGRlY2ltYWxQb2ludHM/OiBudW1iZXI7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJZj86IChyb3c6IGFueSwgY2VsbEZpZWxkPzogc3RyaW5nKSA9PiBib29sZWFuO1xuICAvLyBoaWRlSWZGdW5jPzogKHJvdykgPT4gYm9vbGVhbjtcbiAgZmllbGQ6IGtleW9mIFRGb3JtR3JvdXA7XG4gIGZvcm0/OiBGb3JtR3JvdXA8VEZvcm1Hcm91cD47XG4gIGdldENvdW50cnlDb2RlM0tleT86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgaGludD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICBpc1NlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgb3B0aW9uTGFiZWxGb3JtYXR0ZXI/OiAocm93KSA9PiBzdHJpbmc7XG4gIG1heD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25Gb3JtYXR0ZXI/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uc0FzeW5jPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBQcm9taXNlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jPzogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIG9wdGlvbnNJbml0RnVuYzI/OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNldENvbnRyb2xGb3JtYXR0ZWRWYWx1ZT86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IElucHV0VHlwZTtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHZhbHVlPzogYW55O1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBvcHRpb25zRnVuYz86ICguLi52YWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHRyaWdnZXJPbkNoYW5nZU9uSW5pdD86IGJvb2xlYW47XG4gIGZvcm1hdHRlcj86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IGFueSB9LCBmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHN0cmluZztcbiAgZXh0cmE/OiBhbnk7XG4gIG9uQ2hhbmdlRnVuYz86IChcbiAgICByb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sXG4gICAgY2VsbFZhbHVlPzogYW55LFxuICAgIGNvbXBvbmVudD86IENvbXBvbmVudCxcbiAgKSA9PiBPYnNlcnZhYmxlPGFueVtdPiB8IGFueTtcbiAgb25SZW1vdmVGdW5jPzogKFxuICAgIHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogVEZvcm1Hcm91cFtLXVsndmFsdWUnXSB9LFxuICAgIGNlbGw/OiBhbnksXG4gICAgY29tcG9uZW50PzogQ29tcG9uZW50LFxuICApID0+IGFueTtcbiAgc2VsZWN0ZWRPcHRpb25MYWJlbD86IHN0cmluZztcbiAgc3RhY2tlZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25Nc2c/OiBib29sZWFuO1xuICBkb250Rm9ybWF0QXNJbnB1dD86IGJvb2xlYW47XG4gIHNob3dSZXF1aXJlZFRhZz86IGJvb2xlYW47XG4gIHRhYmxlRm9ybWF0dGVyPzogKFxuICAgIHZhbDogYW55LFxuICApID0+IHN0cmluZyB8IHVuZGVmaW5lZCB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgaWNvbj86IEljb25UeXBlO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbn1cbiJdfQ==
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseFormGenerator, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ template: ''
68
+ }]
69
+ }], ctorParameters: () => [] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUduRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS2xFLE1BQU0sT0FBZ0IsaUJBQWlCO0lBd0JyQztRQXBCZ0IsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxNQUFNLENBQXVDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyxRQUFRLENBQW9CLEdBQUcsRUFBRTtZQUNyRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUMzQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDZCxHQUFHLENBQUM7b0JBQ0osS0FBSyxFQUFFLENBQUMsQ0FB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WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBJT2JqZWN0TGl0ZXJhbCwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vYnRuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi90YWJsZS1wbGFpbi90YWJsZS1wbGFpbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOicnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFxuICBURm9ybUdyb3VwIGV4dGVuZHMgSU9iamVjdExpdGVyYWwsXG4gIFRCYXNlRm9ybVNjaGVtYSBleHRlbmRzIHsgZmllbGQ/OiBhbnk7IGxhYmVsPzogc3RyaW5nIH0gPSBhbnksXG4+IHtcbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgX2Zvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIHByb3RlY3RlZCBmb3JtU2NoZW1hTWFwID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZm9ybVNjaGVtYU1hcCgpKTtcbiAgcmVhZG9ubHkgZm9ybVNjaGVtYSA9IGNvbXB1dGVkPFRCYXNlRm9ybVNjaGVtYVtdPigoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KTtcbiAgICByZXR1cm4gdGhpcy51c2VDdXN0b21MYWJlbHMoKVxuICAgICAgPyByZXMubWFwKChmKSA9PiAoe1xuICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgbGFiZWw6IGYubGFiZWwgPyB0aGlzLnRhYmxlU2VydmljZS5jdXN0b21MYWJlbE1hcFtmLmZpZWxkXSB8fCBmLmxhYmVsIDogZi5sYWJlbCxcbiAgICAgICAgfSkpXG4gICAgICA6IHJlcztcbiAgfSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHVibGljIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcmVhZG9ubHkgdXNlQ3VzdG9tTGFiZWxzID0gbW9kZWwodHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25EZXN0cm95KCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5zdWJzKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuc3VicyA9IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zZXRGb3JtU2NoZW1hcyhzY2hlbWFzOiBUQmFzZUZvcm1TY2hlbWFbXSkge1xuICAgIHRoaXMuX2Zvcm1TY2hlbWFNYXAuc2V0KChzY2hlbWFzIHx8IFtdKS50b01hcCgnZmllbGQnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUZvcm1TY2hlbWEoZmllbGQ6IHN0cmluZywgc2NoZW1lOiBQYXJ0aWFsPFRCYXNlRm9ybVNjaGVtYT4pIHtcbiAgICB0aGlzLl9mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIC8vIGlmICghZXhpc3RpbmcpIGRlYnVnZ2VyO1xuICAgICAgcmV0dXJuIHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZyA/IHNjaGVtZSA6IHsgLi4uZXhpc3RpbmcsIC4uLnNjaGVtZSB9IH07XG4gICAgICAvLyByZXR1cm4gIXNjaCA/IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHNjaGVtZSB9IDogeyAuLi5mb3JtU2NoZW1hTWFwLCBbZmllbGQgYXMgYW55XTogeyAuLi5zY2gsIC4uLnNjaGVtZSB9IH07XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF91cGRhdGVBbGxGb3JtU2NoZW1hKG1hcDogKGZvcm1GaWVsZDogVEJhc2VGb3JtU2NoZW1hKSA9PiBUQmFzZUZvcm1TY2hlbWEpIHtcbiAgICB0aGlzLl9mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3Rm9ybVNjaGVtYU1hcDogdHlwZW9mIGZvcm1TY2hlbWFNYXAgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1TY2hlbWFNYXApXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybVNjaGVtYU1hcCwga2V5KSlcbiAgICAgICAgICBuZXdGb3JtU2NoZW1hTWFwW2tleV0gPSBtYXAoZm9ybVNjaGVtYU1hcFtrZXldKTtcbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZm9ybVNjaGVtYU1hcC51cGRhdGUoKGZvcm1TY2hlbWFNYXApID0+IHtcbiAgICAgIGRlbGV0ZSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIHJldHVybiBmb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VGb3JtU2NoZW1hPFxuICBULFxuICBDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUdlbmVyYXRvcjxUPixcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4ge1xuICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGF1dG9QaWNrVmFsdWVGaWVsZD86IGJvb2xlYW47XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBjbGVhck9uRGlzYWJsZT86IGJvb2xlYW47XG4gIGNscz86IHN0cmluZztcbiAgY291bnRyeUNvZGUzPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IElCYXNlRm9ybVNjaGVtYTxULCBDb21wb25lbnQsIFRGb3JtR3JvdXA+W107XG4gIGRlY2ltYWxQb2ludHM/OiBudW1iZXI7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJZj86IChyb3c6IGFueSwgY2VsbEZpZWxkPzogc3RyaW5nKSA9PiBib29sZWFuO1xuICAvLyBoaWRlSWZGdW5jPzogKHJvdykgPT4gYm9vbGVhbjtcbiAgZmllbGQ6IGtleW9mIFRGb3JtR3JvdXA7XG4gIGZvcm0/OiBGb3JtR3JvdXA8VEZvcm1Hcm91cD47XG4gIGdldENvdW50cnlDb2RlM0tleT86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgaGludD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICBpc1NlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgb3B0aW9uTGFiZWxGb3JtYXR0ZXI/OiAocm93KSA9PiBzdHJpbmc7XG4gIG1heD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25Gb3JtYXR0ZXI/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uc0FzeW5jPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBQcm9taXNlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jPzogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIG9wdGlvbnNJbml0RnVuYzI/OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNldENvbnRyb2xGb3JtYXR0ZWRWYWx1ZT86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IElucHV0VHlwZTtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHZhbHVlPzogYW55O1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBvcHRpb25zRnVuYz86ICguLi52YWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHRyaWdnZXJPbkNoYW5nZU9uSW5pdD86IGJvb2xlYW47XG4gIGZvcm1hdHRlcj86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IGFueSB9LCBmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHN0cmluZztcbiAgZXh0cmE/OiBhbnk7XG4gIG9uQ2hhbmdlRnVuYz86IChcbiAgICByb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sXG4gICAgY2VsbFZhbHVlPzogYW55LFxuICAgIGNvbXBvbmVudD86IENvbXBvbmVudCxcbiAgKSA9PiBPYnNlcnZhYmxlPGFueVtdPiB8IGFueTtcbiAgb25SZW1vdmVGdW5jPzogKFxuICAgIHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogVEZvcm1Hcm91cFtLXVsndmFsdWUnXSB9LFxuICAgIGNlbGw/OiBhbnksXG4gICAgY29tcG9uZW50PzogQ29tcG9uZW50LFxuICApID0+IGFueTtcbiAgc2VsZWN0ZWRPcHRpb25MYWJlbD86IHN0cmluZztcbiAgc3RhY2tlZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25Nc2c/OiBib29sZWFuO1xuICBkb250Rm9ybWF0QXNJbnB1dD86IGJvb2xlYW47XG4gIHNob3dSZXF1aXJlZFRhZz86IGJvb2xlYW47XG4gIHRhYmxlRm9ybWF0dGVyPzogKFxuICAgIHZhbDogYW55LFxuICApID0+IHN0cmluZyB8IHVuZGVmaW5lZCB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgaWNvbj86IEljb25UeXBlO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbn1cbiJdfQ==