@f1falcha/stimulus 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/assets/.gitkeep +0 -0
  2. package/assets/Calendar.svg +3 -0
  3. package/assets/background.png +0 -0
  4. package/assets/bank-logo.svg +11 -0
  5. package/assets/error-background.png +0 -0
  6. package/assets/font_assets/Inter-Bold.eot +0 -0
  7. package/assets/font_assets/Inter-Bold.ttf +0 -0
  8. package/assets/font_assets/Inter-Bold.woff +0 -0
  9. package/assets/font_assets/Inter-Bold.woff2 +0 -0
  10. package/assets/font_assets/Inter-Medium.eot +0 -0
  11. package/assets/font_assets/Inter-Medium.ttf +0 -0
  12. package/assets/font_assets/Inter-Medium.woff +0 -0
  13. package/assets/font_assets/Inter-Medium.woff2 +0 -0
  14. package/assets/font_assets/Inter-Regular.eot +0 -0
  15. package/assets/font_assets/Inter-Regular.ttf +0 -0
  16. package/assets/font_assets/Inter-Regular.woff +0 -0
  17. package/assets/font_assets/Inter-Regular.woff2 +0 -0
  18. package/assets/illustrations/Icon.png +0 -0
  19. package/assets/illustrations/Icon.svg +3 -0
  20. package/assets/illustrations/edit.svg +9 -0
  21. package/assets/illustrations/email.svg +7 -0
  22. package/assets/illustrations/error.svg +8 -0
  23. package/assets/illustrations/flag.svg +8 -0
  24. package/assets/illustrations/hide.svg +8 -0
  25. package/assets/illustrations/image.svg +8 -0
  26. package/assets/illustrations/in-maintenance.svg +6 -0
  27. package/assets/illustrations/message.svg +7 -0
  28. package/assets/illustrations/mobile-authentication.svg +11 -0
  29. package/assets/illustrations/no-data.svg +17 -0
  30. package/assets/illustrations/reset-password.svg +7 -0
  31. package/assets/illustrations/search.svg +11 -0
  32. package/assets/illustrations/shield.svg +7 -0
  33. package/assets/illustrations/success.svg +8 -0
  34. package/assets/illustrations/timeout.svg +7 -0
  35. package/assets/illustrations/trash.svg +7 -0
  36. package/assets/illustrations/unhide.svg +7 -0
  37. package/assets/illustrations/warning.svg +8 -0
  38. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +4 -4
  39. package/esm2022/accordion/accordion-item-body/accordion-item-body.component.mjs +4 -4
  40. package/esm2022/accordion/accordion-item-header/accordion-item-header.component.mjs +4 -4
  41. package/esm2022/accordion/accordion.mjs +4 -4
  42. package/esm2022/account-card/account-card-header/account-card-header.component.mjs +4 -4
  43. package/esm2022/account-card/account-card.component.mjs +4 -4
  44. package/esm2022/alert/alert.mjs +4 -4
  45. package/esm2022/alert/alert.service.mjs +4 -4
  46. package/esm2022/avatar/avatar.mjs +4 -4
  47. package/esm2022/badge/badge.mjs +4 -4
  48. package/esm2022/bordered-section/bordered-section.mjs +4 -4
  49. package/esm2022/button/button.mjs +4 -4
  50. package/esm2022/button-group/button-group-header/button-group-header.mjs +4 -4
  51. package/esm2022/button-group/button-group.mjs +4 -4
  52. package/esm2022/card/card.component.mjs +4 -4
  53. package/esm2022/chart/chart.component.mjs +4 -4
  54. package/esm2022/checkbox-dropdown/checkbox-dropdown.component.mjs +4 -4
  55. package/esm2022/clipboard/clipboard.component.mjs +4 -4
  56. package/esm2022/color-wrapper/color-wrapper.mjs +4 -4
  57. package/esm2022/column-seperator/column-separator.mjs +4 -4
  58. package/esm2022/column-text/column-text.mjs +4 -4
  59. package/esm2022/container/container.component.mjs +4 -4
  60. package/esm2022/custom-datepicker/custom-datepicker.component.mjs +4 -4
  61. package/esm2022/custom-datepicker/timepicker/timepicker.component.mjs +4 -4
  62. package/esm2022/data-list/data-list.mjs +4 -4
  63. package/esm2022/date-range-picker/date-range-picker.mjs +4 -4
  64. package/esm2022/datepicker/datepicker.mjs +4 -4
  65. package/esm2022/datepicker-icon/datepicker-icon.mjs +4 -4
  66. package/esm2022/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.mjs +4 -4
  67. package/esm2022/detail-panel/detail-panel-row/detail-panel-row.mjs +4 -4
  68. package/esm2022/detail-panel/detail-panel-title/detail-panel-title.mjs +4 -4
  69. package/esm2022/detail-panel/detail-panel.mjs +4 -4
  70. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +4 -4
  71. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +4 -4
  72. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +4 -4
  73. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +4 -4
  74. package/esm2022/dialog/dialog.component.mjs +4 -4
  75. package/esm2022/dialog.service.mjs +4 -4
  76. package/esm2022/dropdown/context-menu-content/context-menu-content.mjs +4 -4
  77. package/esm2022/dropdown/context-menu-item.mjs +4 -4
  78. package/esm2022/dropdown/context-menu-list/context-menu-list.mjs +4 -4
  79. package/esm2022/dropdown/context-menu.mjs +4 -4
  80. package/esm2022/error-page-container/error-content/error-content.mjs +4 -4
  81. package/esm2022/error-page-container/error-page-container.mjs +4 -4
  82. package/esm2022/extract-inital/extract-initial.mjs +4 -4
  83. package/esm2022/file-uploader/file-uploader.mjs +4 -4
  84. package/esm2022/file-uploader/file-uploader.service.mjs +4 -4
  85. package/esm2022/filter/filter.mjs +4 -4
  86. package/esm2022/form/form-control/form-control-action.mjs +4 -4
  87. package/esm2022/form/form-control/form-control-icon.mjs +4 -4
  88. package/esm2022/form/form-control/form-field.mjs +4 -4
  89. package/esm2022/form/form-control-wrapper/form-control-wrapper.component.mjs +4 -4
  90. package/esm2022/form/form-message/form-message.mjs +4 -4
  91. package/esm2022/form/select-input-field/select-input-field.mjs +4 -4
  92. package/esm2022/form/validate-and-submit.mjs +4 -4
  93. package/esm2022/full-container/full-container.component.mjs +4 -4
  94. package/esm2022/grid/grid-item.component.mjs +4 -4
  95. package/esm2022/grid/grid.component.mjs +4 -4
  96. package/esm2022/grid-row/grid-row.mjs +4 -4
  97. package/esm2022/image-card/illustration.pipe.mjs +4 -4
  98. package/esm2022/image-card/image-card.component.mjs +4 -4
  99. package/esm2022/image-panel/image-panel.component.mjs +4 -4
  100. package/esm2022/info-column/info-column.mjs +4 -4
  101. package/esm2022/info-slider/info-slider.component.mjs +4 -4
  102. package/esm2022/inline-alert/inline-alert.mjs +4 -4
  103. package/esm2022/inline-group/inline-group.component.mjs +4 -4
  104. package/esm2022/input/input.mjs +4 -4
  105. package/esm2022/label/label.mjs +4 -4
  106. package/esm2022/layout/layout.component.mjs +4 -4
  107. package/esm2022/link/link.mjs +4 -4
  108. package/esm2022/media-preview/media-preview-modal/media-preview-modal.mjs +4 -4
  109. package/esm2022/media-preview/media-preview.mjs +4 -4
  110. package/esm2022/media-preview/media_preview.service.mjs +4 -4
  111. package/esm2022/menu/menu.component.mjs +4 -4
  112. package/esm2022/otp-input/otp-input.component.mjs +4 -4
  113. package/esm2022/page-container/page-container-info/page-container-info.component.mjs +4 -4
  114. package/esm2022/page-container/page-container.component.mjs +4 -4
  115. package/esm2022/page-header/page-header.component.mjs +4 -4
  116. package/esm2022/page-header/page-sub-heading/page-sub-heading.component.mjs +4 -4
  117. package/esm2022/page-loader/page-loader.component.mjs +4 -4
  118. package/esm2022/pagination/pagination.mjs +4 -4
  119. package/esm2022/popover-content/popover-content-item/popover-content-item.component.mjs +4 -4
  120. package/esm2022/popover-content/popover-content.component.mjs +4 -4
  121. package/esm2022/preview-box/preview-box.component.mjs +4 -4
  122. package/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  123. package/esm2022/progress-chart/progress-chart.component.mjs +4 -4
  124. package/esm2022/public-api.mjs +7 -3
  125. package/esm2022/radio-card-group/radio-card/radio-card.component.mjs +4 -4
  126. package/esm2022/radio-card-group/radio-card-group.component.mjs +4 -4
  127. package/esm2022/regex-checker/regex-checker.mjs +4 -4
  128. package/esm2022/regex-checker/regex-validity-icon.pipe.mjs +4 -4
  129. package/esm2022/ribbon/ribbon.mjs +4 -4
  130. package/esm2022/round-checkbox/round-checkbox.component.mjs +4 -4
  131. package/esm2022/row/column/column.component.mjs +4 -4
  132. package/esm2022/row/row.component.mjs +4 -4
  133. package/esm2022/scrollable-content/scrollable-content.component.mjs +4 -4
  134. package/esm2022/section-header/section-header.component.mjs +4 -4
  135. package/esm2022/section-row/section-row.mjs +4 -4
  136. package/esm2022/section-separator/section-separator.mjs +4 -4
  137. package/esm2022/section-shell/section-shell.component.mjs +4 -4
  138. package/esm2022/select/select.component.mjs +4 -4
  139. package/esm2022/select-card/select-card.component.mjs +4 -4
  140. package/esm2022/select-country/select-country.component.mjs +4 -4
  141. package/esm2022/shell/checker-sidebar/checker-sidebar.component.mjs +4 -4
  142. package/esm2022/shell/maker-sidebar/maker-sidebar.component.mjs +4 -4
  143. package/esm2022/shell/shell-sidebar/shell-sidebar.component.mjs +4 -4
  144. package/esm2022/shell/shell.component.mjs +4 -4
  145. package/esm2022/side-drawer/side-drawer.mjs +4 -4
  146. package/esm2022/side-drawer/side-drawer.service.mjs +4 -4
  147. package/esm2022/spinner/spinner.mjs +4 -4
  148. package/esm2022/stepper/step/step.mjs +4 -4
  149. package/esm2022/stepper/step/step.pipe.mjs +4 -4
  150. package/esm2022/stepper/step-header/step-header.mjs +4 -4
  151. package/esm2022/stepper/stepper-button/stepper-next.mjs +4 -4
  152. package/esm2022/stepper/stepper-button/stepper-previous.mjs +4 -4
  153. package/esm2022/stepper/stepper.mjs +4 -4
  154. package/esm2022/stimulus.module.mjs +5 -5
  155. package/esm2022/table/table-column/scl-table-column.mjs +4 -4
  156. package/esm2022/table/table-text/scl-table-text.mjs +4 -4
  157. package/esm2022/table/table.mjs +4 -4
  158. package/esm2022/table-action-control/table-action-control.component.mjs +4 -4
  159. package/esm2022/tabset/tab/tab.component.mjs +4 -4
  160. package/esm2022/tabset/tab-directive/tabset.directive.mjs +4 -4
  161. package/esm2022/tabset/tabset.component.mjs +4 -4
  162. package/esm2022/taglist/tag/tag.component.mjs +4 -4
  163. package/esm2022/taglist/tag/tag.directive.mjs +4 -4
  164. package/esm2022/taglist/taglist.component.mjs +4 -4
  165. package/esm2022/text-decoration/text-decoration.component.mjs +4 -4
  166. package/esm2022/text-editor/text-editor.mjs +4 -4
  167. package/esm2022/timeline/timeline.component.mjs +4 -4
  168. package/esm2022/timepicker/timepicker.component.mjs +4 -4
  169. package/esm2022/toggle/toggle-description/toggle-description.mjs +4 -4
  170. package/esm2022/toggle/toggle.mjs +4 -4
  171. package/esm2022/toggle-password/toggle-password.component.mjs +4 -4
  172. package/esm2022/toggle-password/toggle-password.directive.mjs +4 -4
  173. package/esm2022/treeview/treeview-header/treeview-header.mjs +4 -4
  174. package/esm2022/treeview/treeview.mjs +4 -4
  175. package/esm2022/truncate/truncate.component.mjs +4 -4
  176. package/esm2022/typography/typography.mjs +4 -4
  177. package/fesm2022/f1falcha-stimulus.mjs +596 -596
  178. package/fesm2022/f1falcha-stimulus.mjs.map +1 -1
  179. package/package.json +1 -1
  180. package/public-api.d.ts +4 -1
  181. package/public-api.d.ts.map +1 -1
@@ -230,11 +230,11 @@ class SclFileUploader {
230
230
  this.reupload(action.index);
231
231
  }
232
232
  }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFileUploader, deps: [{ token: i0.NgZone }, { token: i1.DomSanitizer }, { token: i2.SclUploaderService }, { token: i3.SclAlertService }, { token: i4.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclFileUploader, isStandalone: true, selector: "scl-file-uploader", inputs: { uploadHeading: "uploadHeading", completedUploadHeading: "completedUploadHeading", title: "title", accept: "accept", maxFileSize: "maxFileSize", showList: "showList", illustrationType: "illustrationType", resolution: "resolution", isProcessed: "isProcessed", description: "description", uploadType: "uploadType", code: "code", multiple: "multiple" }, outputs: { filesChanged: "filesChanged", error: "error" }, host: { classAttribute: "scl-file-uploader" }, ngImport: i0, template: "<div sclText textType=\"labelLarge\" class=\"scl-file-uploader__heading\">\n {{(!fileList?.length || isMultiple) ? uploadHeading : completedUploadHeading}}\n <ng-content></ng-content>\n</div>\n<ngx-file-drop dropZoneLabel=\"Drop files here\" (onFileDrop)=\"dropped($event)\" [accept]=\"acceptedString\" *ngIf=\"!fileList?.length || isMultiple\">\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div class=\"scl-file-uploader__row\">\n <div class=\"scl-file-uploader__image-wrapper\">\n <ng-container *ngIf=\"illustrationType === 'file'\">\n <svg viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M60 103.8c24.19 0 43.8-19.61 43.8-43.8 0-24.19-19.61-43.8-43.8-43.8-24.19 0-43.8 19.61-43.8 43.8 0 24.19 19.61 43.8 43.8 43.8z\"\n fill=\"#FDEAD7\" />\n <path\n d=\"M76.956 60.764s-7.847-8.353-15.004-11.173c-7.158-2.82-15.03 2.93-7.543 10.608 7.487 7.678 7.647 8.633 7.647 8.633s-2.222 11.282 8.188 19.104\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M43.083 55.158c-.861 1.25-1.345 3.061-1.098 5.664.617 6.49 5.799 9.47 8.49 10.702 3.98 1.821 9.992.548 8.196-6.592\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M42.853 64.213s-7.752 2.215-4.29 10.379c1.531 3.61 5.549 6.193 9.99 6.788 5.353.718 9.05-5.102 4.908-9.118M102.329 83.01s-7.182-15.181-21.598-32.023M61.094 110.852s-9.788-22.764-15.633-30.03M51.238 54.077l-17.545 1.868a5.244 5.244 0 0 1-5.771-4.66l-2.182-20.49M79.914 9.08a3.345 3.345 0 0 1 3.68 2.973l3.708 34.819a3.345 3.345 0 0 1-2.972 3.68L67.554 52.34\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M74.645 19.58a3.49 3.49 0 0 0 3.102-3.842l-.323-3.028c-.195-1.837.814-3.45 2.3-3.608l-53.386 5.684a4.895 4.895 0 0 0-4.35 5.387l.752 7.07a3.875 3.875 0 0 0 4.264 3.443l10.736-1.143a3.995 3.995 0 0 0 2.914-1.775l2.202-3.34a3.999 3.999 0 0 1 2.914-1.776l28.875-3.073zM84.719 50.512c-.026.002-.052-.003-.078 0-.026.003-.05.013-.076.016l.154-.016z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"m77.916 15.995 3.356 31.519c.192 1.808 1.692 3.13 3.369 2.996 1.667-.223 2.853-1.83 2.661-3.638l-3.356-31.52-6.03.643z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </ng-container>\n <ng-container *ngIf=\"!illustrationType\">\n <svg viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M75 129.75c30.238 0 54.75-24.512 54.75-54.75S105.238 20.25 75 20.25 20.25 44.762 20.25 75 44.762 129.75 75 129.75z\"\n fill=\"#F0FDF9\" />\n <path\n d=\"M14.106 91.213s25.653-16.547 53.366-11.842c24.528 4.166 28.096 1.032 39.766-4.032 7.866-3.412 10.08 4.886 9.108 7.557\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M121.41 94.812c6.14-8.21-2.803-13.698-7.12-11.175 0 0-14.506 7.545-24.388 8.588\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M91.891 103.12s11.655-1.488 20.789-7.293c8.881-5.644 17.389 4.084 7.696 11.162-8.887 6.49-19.822 11.589-49.82 15.876-27.974 3.997-33.39 7.765-37.584 10.63M46.122 89.945s6.115-.752 13.905 5.298c5.223 3.489 8.856 2.532 12.629.678 6.986-3.436 14.882 5.865 3.892 13.498-10.99 7.635-27.422 9.294-27.422 9.294M100.724 68.428H49.276a3.926 3.926 0 0 1-3.925-3.925V20.361a3.926 3.926 0 0 1 3.925-3.925h51.448a3.926 3.926 0 0 1 3.925 3.925v44.142a3.926 3.926 0 0 1-3.925 3.925z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M96.478 24.771H53.522v35.322h42.956V24.771z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"m53.825 43.34 9.622-10.196L84.127 60M77.377 50.952l8.516-9.192 10.299 12.639M87.43 35.728a3.303 3.303 0 1 0 0-6.605 3.303 3.303 0 0 0 0 6.605z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </ng-container>\n </div>\n <div class=\"scl-file-uploader__detail\">\n <span sclText textType=\"labelLarge\" weight=\"medium\" class=\"scl-file-uploader__title\">\n {{showList ? 'Drag and drop image to upload': title}}\n </span>\n <div sclText textType=\"bodyMedium\" class=\"scl-file-uploader__description\" *ngIf=\"!showList\">{{descriptionContent}}</div>\n <div *ngIf=\"showList\" class=\"scl-file-uploader__list-group\" sclText textType=\"bodyMedium\">\n <span>For crisp {{showList}}, upload image with: </span>\n <ul class=\"scl-file-uploader__list\">\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">5MB maximum size</li>\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">{{resolution }} resolution</li>\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">JPEG or PNG format</li>\n </ul>\n </div>\n <button type=\"button\" nbButton outline (click)=\"openFileSelector()\">{{isMultiple? 'Choose files' : 'Choose a file'}}</button>\n </div>\n </div>\n </ng-template>\n</ngx-file-drop>\n\n<div class=\"scl-file-uploader__preview\" *ngIf=\"fileList?.length\">\n <div sclText textType=\"labelLarge\" class=\"scl-file-uploader__heading\" *ngIf=\"isMultiple\">{{completedUploadHeading}}</div>\n <ul class=\"scl-file-uploader__preview-list\">\n <li *ngFor=\"let item of fileList; let i = index\">\n <scl-preview-box [item]=\"item\" [index]=\"i\" [isProcessed]=\"isProcessed\" [errorMessage]=\"errroMessage\" (onAction)=\"iconAction($event)\">\n </scl-preview-box>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NgxFileDropModule }, { kind: "component", type: i6.NgxFileDropComponent, selector: "ngx-file-drop", inputs: ["accept", "directory", "multiple", "dropZoneLabel", "dropZoneClassName", "useDragEnter", "contentClassName", "showBrowseBtn", "browseBtnClassName", "browseBtnLabel", "disabled"], outputs: ["onFileDrop", "onFileOver", "onFileLeave"] }, { kind: "directive", type: i6.NgxFileDropContentTemplateDirective, selector: "[ngx-file-drop-content-tmp]" }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i4.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "directive", type: SclText, selector: "[sclText]", inputs: ["textType", "weight", "textColor"] }, { kind: "component", type: SclPreviewBoxComponent, selector: "scl-preview-box", inputs: ["item", "index", "isProcessed", "data", "errorMessage"], outputs: ["onAction"] }] }); }
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFileUploader, deps: [{ token: i0.NgZone }, { token: i1.DomSanitizer }, { token: i2.SclUploaderService }, { token: i3.SclAlertService }, { token: i4.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SclFileUploader, isStandalone: true, selector: "scl-file-uploader", inputs: { uploadHeading: "uploadHeading", completedUploadHeading: "completedUploadHeading", title: "title", accept: "accept", maxFileSize: "maxFileSize", showList: "showList", illustrationType: "illustrationType", resolution: "resolution", isProcessed: "isProcessed", description: "description", uploadType: "uploadType", code: "code", multiple: "multiple" }, outputs: { filesChanged: "filesChanged", error: "error" }, host: { classAttribute: "scl-file-uploader" }, ngImport: i0, template: "<div sclText textType=\"labelLarge\" class=\"scl-file-uploader__heading\">\n {{(!fileList?.length || isMultiple) ? uploadHeading : completedUploadHeading}}\n <ng-content></ng-content>\n</div>\n<ngx-file-drop dropZoneLabel=\"Drop files here\" (onFileDrop)=\"dropped($event)\" [accept]=\"acceptedString\" *ngIf=\"!fileList?.length || isMultiple\">\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div class=\"scl-file-uploader__row\">\n <div class=\"scl-file-uploader__image-wrapper\">\n <ng-container *ngIf=\"illustrationType === 'file'\">\n <svg viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M60 103.8c24.19 0 43.8-19.61 43.8-43.8 0-24.19-19.61-43.8-43.8-43.8-24.19 0-43.8 19.61-43.8 43.8 0 24.19 19.61 43.8 43.8 43.8z\"\n fill=\"#FDEAD7\" />\n <path\n d=\"M76.956 60.764s-7.847-8.353-15.004-11.173c-7.158-2.82-15.03 2.93-7.543 10.608 7.487 7.678 7.647 8.633 7.647 8.633s-2.222 11.282 8.188 19.104\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M43.083 55.158c-.861 1.25-1.345 3.061-1.098 5.664.617 6.49 5.799 9.47 8.49 10.702 3.98 1.821 9.992.548 8.196-6.592\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M42.853 64.213s-7.752 2.215-4.29 10.379c1.531 3.61 5.549 6.193 9.99 6.788 5.353.718 9.05-5.102 4.908-9.118M102.329 83.01s-7.182-15.181-21.598-32.023M61.094 110.852s-9.788-22.764-15.633-30.03M51.238 54.077l-17.545 1.868a5.244 5.244 0 0 1-5.771-4.66l-2.182-20.49M79.914 9.08a3.345 3.345 0 0 1 3.68 2.973l3.708 34.819a3.345 3.345 0 0 1-2.972 3.68L67.554 52.34\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M74.645 19.58a3.49 3.49 0 0 0 3.102-3.842l-.323-3.028c-.195-1.837.814-3.45 2.3-3.608l-53.386 5.684a4.895 4.895 0 0 0-4.35 5.387l.752 7.07a3.875 3.875 0 0 0 4.264 3.443l10.736-1.143a3.995 3.995 0 0 0 2.914-1.775l2.202-3.34a3.999 3.999 0 0 1 2.914-1.776l28.875-3.073zM84.719 50.512c-.026.002-.052-.003-.078 0-.026.003-.05.013-.076.016l.154-.016z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"m77.916 15.995 3.356 31.519c.192 1.808 1.692 3.13 3.369 2.996 1.667-.223 2.853-1.83 2.661-3.638l-3.356-31.52-6.03.643z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </ng-container>\n <ng-container *ngIf=\"!illustrationType\">\n <svg viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M75 129.75c30.238 0 54.75-24.512 54.75-54.75S105.238 20.25 75 20.25 20.25 44.762 20.25 75 44.762 129.75 75 129.75z\"\n fill=\"#F0FDF9\" />\n <path\n d=\"M14.106 91.213s25.653-16.547 53.366-11.842c24.528 4.166 28.096 1.032 39.766-4.032 7.866-3.412 10.08 4.886 9.108 7.557\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M121.41 94.812c6.14-8.21-2.803-13.698-7.12-11.175 0 0-14.506 7.545-24.388 8.588\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M91.891 103.12s11.655-1.488 20.789-7.293c8.881-5.644 17.389 4.084 7.696 11.162-8.887 6.49-19.822 11.589-49.82 15.876-27.974 3.997-33.39 7.765-37.584 10.63M46.122 89.945s6.115-.752 13.905 5.298c5.223 3.489 8.856 2.532 12.629.678 6.986-3.436 14.882 5.865 3.892 13.498-10.99 7.635-27.422 9.294-27.422 9.294M100.724 68.428H49.276a3.926 3.926 0 0 1-3.925-3.925V20.361a3.926 3.926 0 0 1 3.925-3.925h51.448a3.926 3.926 0 0 1 3.925 3.925v44.142a3.926 3.926 0 0 1-3.925 3.925z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M96.478 24.771H53.522v35.322h42.956V24.771z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"m53.825 43.34 9.622-10.196L84.127 60M77.377 50.952l8.516-9.192 10.299 12.639M87.43 35.728a3.303 3.303 0 1 0 0-6.605 3.303 3.303 0 0 0 0 6.605z\"\n stroke=\"#231F20\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </ng-container>\n </div>\n <div class=\"scl-file-uploader__detail\">\n <span sclText textType=\"labelLarge\" weight=\"medium\" class=\"scl-file-uploader__title\">\n {{showList ? 'Drag and drop image to upload': title}}\n </span>\n <div sclText textType=\"bodyMedium\" class=\"scl-file-uploader__description\" *ngIf=\"!showList\">{{descriptionContent}}</div>\n <div *ngIf=\"showList\" class=\"scl-file-uploader__list-group\" sclText textType=\"bodyMedium\">\n <span>For crisp {{showList}}, upload image with: </span>\n <ul class=\"scl-file-uploader__list\">\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">5MB maximum size</li>\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">{{resolution }} resolution</li>\n <li class=\"scl-file-uploader__list-item\" sclText textType=\"bodyMedium\">JPEG or PNG format</li>\n </ul>\n </div>\n <button type=\"button\" nbButton outline (click)=\"openFileSelector()\">{{isMultiple? 'Choose files' : 'Choose a file'}}</button>\n </div>\n </div>\n </ng-template>\n</ngx-file-drop>\n\n<div class=\"scl-file-uploader__preview\" *ngIf=\"fileList?.length\">\n <div sclText textType=\"labelLarge\" class=\"scl-file-uploader__heading\" *ngIf=\"isMultiple\">{{completedUploadHeading}}</div>\n <ul class=\"scl-file-uploader__preview-list\">\n <li *ngFor=\"let item of fileList; let i = index\">\n <scl-preview-box [item]=\"item\" [index]=\"i\" [isProcessed]=\"isProcessed\" [errorMessage]=\"errroMessage\" (onAction)=\"iconAction($event)\">\n </scl-preview-box>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NgxFileDropModule }, { kind: "component", type: i6.NgxFileDropComponent, selector: "ngx-file-drop", inputs: ["accept", "directory", "multiple", "dropZoneLabel", "dropZoneClassName", "useDragEnter", "contentClassName", "showBrowseBtn", "browseBtnClassName", "browseBtnLabel", "disabled"], outputs: ["onFileDrop", "onFileOver", "onFileLeave"] }, { kind: "directive", type: i6.NgxFileDropContentTemplateDirective, selector: "[ngx-file-drop-content-tmp]" }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i4.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "directive", type: SclText, selector: "[sclText]", inputs: ["textType", "weight", "textColor"] }, { kind: "component", type: SclPreviewBoxComponent, selector: "scl-preview-box", inputs: ["item", "index", "isProcessed", "data", "errorMessage"], outputs: ["onAction"] }] }); }
235
235
  }
236
236
  export { SclFileUploader };
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFileUploader, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFileUploader, decorators: [{
238
238
  type: Component,
239
239
  args: [{ selector: 'scl-file-uploader', standalone: true, host: {
240
240
  class: 'scl-file-uploader',
@@ -271,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
271
271
  }], error: [{
272
272
  type: Output
273
273
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxhQUFhLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGNBQWMsRUFBbUIsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdELE9BQU8sRUFBcUIsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBRzFELE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsdURBQU8sQ0FBQTtJQUNQLDJEQUFTLENBQUE7SUFDVCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxhQUFhLEtBQWIsYUFBYSxRQUt4QjtBQThCRCxNQVNhLGVBQWU7SUFjeEIsSUFBdUIsUUFBUSxDQUFDLE1BQXdCO1FB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ZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYkJ1dHRvbk1vZHVsZSwgTmJJY29uTGlicmFyaWVzLCBOYkljb25Nb2R1bGUgfSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgeyBGaWxlU3lzdGVtRmlsZUVudHJ5LCBOZ3hGaWxlRHJvcEVudHJ5LCBOZ3hGaWxlRHJvcE1vZHVsZSB9IGZyb20gJ25neC1maWxlLWRyb3AnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NsQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uUHJldmlld0FjdGlvbiwgU2NsUHJldmlld0JveENvbXBvbmVudCB9IGZyb20gJy4uL3ByZXZpZXctYm94L3ByZXZpZXctYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2xUZXh0IH0gZnJvbSAnLi4vdHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbmltcG9ydCB7IEZJTEVfVVBMT0FERVJfSUNPTiB9IGZyb20gJy4vZmlsZS11cGxvYWRlci1pY29uJztcbmltcG9ydCB7IFNjbFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vZmlsZS11cGxvYWRlci5yZWYnO1xuXG5leHBvcnQgZW51bSBTY2xGaWxlU3RhdHVzIHtcbiAgICBQRU5ESU5HLFxuICAgIENPTVBMRVRFRCxcbiAgICBGQUlMRUQsXG4gICAgUFJPQ0VTU0VELFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjbEZpbGU8VCA9IG51bGw+IHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzcmM/OiBTYWZlVXJsO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcHJvZ3Jlc3M6IG51bWJlcjtcbiAgICBsb2FkZWRGaWxlU2l6ZT86IHN0cmluZztcbiAgICB0b3RhbEZpbGVTaXplPzogc3RyaW5nO1xuICAgIHN0YXR1czogU2NsRmlsZVN0YXR1cztcbiAgICBkYXRhOiBUIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2xGaWxlRXJyb3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9ncmVzcz86IG51bWJlcjtcbiAgICBsb2FkZWRGaWxlU2l6ZT86IHN0cmluZztcbiAgICB0b3RhbEZpbGVTaXplPzogc3RyaW5nO1xuICAgIG1heEZpbGVTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUmVzcG9uc2Uge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgY29kZTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVXBsb2FkVHlwZSA9ICdpbWFnZScgfCAnZXhjZWwnIHwgJ3BkZicgfCAnaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2NsLWZpbGUtdXBsb2FkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NjbC1maWxlLXVwbG9hZGVyJyxcbiAgICB9LFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5neEZpbGVEcm9wTW9kdWxlLCBOYkJ1dHRvbk1vZHVsZSwgTmJJY29uTW9kdWxlLCBTY2xUZXh0LCBTY2xQcmV2aWV3Qm94Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsZVVwbG9hZGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB1cGxvYWRIZWFkaW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbXBsZXRlZFVwbG9hZEhlYWRpbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGUgPSAnRHJhZyBhbmQgRHJvcCBmaWxlcyB0byB1cGxvYWQnO1xuICAgIEBJbnB1dCgpIGFjY2VwdCE6IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIG1heEZpbGVTaXplITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNob3dMaXN0ITogc3RyaW5nIHwgYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbGx1c3RyYXRpb25UeXBlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlc29sdXRpb246IHN0cmluZyA9ICc2NDAqNDgwJztcbiAgICBASW5wdXQoKSBpc1Byb2Nlc3NlZD86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGVzY3JpcHRpb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdXBsb2FkVHlwZTogc3RyaW5nID0gJ2V4Y2VsJztcbiAgICBASW5wdXQoKSBjb2RlITogc3RyaW5nO1xuXG4gICAgQElucHV0KCdtdWx0aXBsZScpIHNldCBtdWx0aXBsZShzdGF0dXM6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc011bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXR1cyk7XG4gICAgfVxuXG4gICAgZ2V0IG11bHRpcGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc011bHRpcGxlO1xuICAgIH1cblxuICAgIGdldCBtYXhGaWxlU2l6ZUluTUIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heEZpbGVTaXplO1xuICAgIH1cblxuICAgIGdldCBmaWxlVHlwZVVwcGVyY2FzZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0Py5tYXAoZmlsZVNpemUgPT4gZmlsZVNpemUuc3Vic3RyaW5nKDEpLnRvVXBwZXJDYXNlKCkpLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uQ29udGVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgT25seSAke3RoaXMuZmlsZVR5cGVVcHBlcmNhc2V9IGZpbGVzIG9mIG1heCBmaWxlIHNpemUgJHt0aGlzLm1heEZpbGVTaXplSW5NQn0gTUIgYXJlIGFsbG93ZWQuYDtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXB0ZWRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0Py5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2NsRmlsZVtdPigpO1xuICAgIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8U2NsRmlsZUVycm9yPigpO1xuXG4gICAgZXJycm9NZXNzYWdlOiBzdHJpbmcgPSAnRXJyb3Igd2hpbGUgdXBsb2FkaW5nISc7XG5cbiAgICBwdWJsaWMgaXNNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0ZpbGVTdXBwb3J0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHByb3RlY3RlZCBmaWxlTGlzdDogU2NsRmlsZVtdID0gW107XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgU3Vic2NyaXB0aW9uPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHVwbG9hZGVyOiBTY2xVcGxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBTY2xBbGVydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaWNvbkxpYnJhcmllczogTmJJY29uTGlicmFyaWVzXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaWNvbkxpYnJhcmllcy5yZWdpc3RlclN2Z1BhY2soJ2ZpbGUtdXBsb2FkZXItaWNvbicsIEZJTEVfVVBMT0FERVJfSUNPTik7XG4gICAgfVxuXG4gICAgZHJvcHBlZChmaWxlczogTmd4RmlsZURyb3BFbnRyeVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5pc011bHRpcGxlICYmIGZpbGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmRhbmdlcih7XG4gICAgICAgICAgICAgICAgaGVhZGluZzogJ1VwbG9hZCBvbmx5IG9uZSBmaWxlLicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGRyb3BwZWRGaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBpZiAoZHJvcHBlZEZpbGUuZmlsZUVudHJ5LmlzRmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRmlsZUVudHJ5O1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5maWxlKChmaWxlOiBGaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWxlVW5zdXBwb3J0ZWQoZmlsZS5uYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxGaWxlU2l6ZTogdGhpcy5mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhGaWxlU2l6ZTogdGhpcy5tYXhGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiAnSW52YWxpZCBmaWxlIGZvcm1hdC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVNpemUgPSB0aGlzLm1heEZpbGVTaXplSW5NQiAqIDEwMjQgKiAxMDI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IGZpbGVTaXplICYmIGZpbGUuc2l6ZSAhPT0gdGhpcy5tYXhGaWxlU2l6ZUluTUIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IHRoaXMuZm9ybWF0RmlsZVNpemUoZmlsZS5zaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4RmlsZVNpemU6IHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZGFuZ2VyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZzogYEZpbGUgc2l6ZSBpcyBtb3JlIHRoYW4gJHt0aGlzLm1heEZpbGVTaXplfSBNQi5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlOiBTY2xGaWxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogdGhpcy5pbWFnZVNyYyhmaWxlLCBmaWxlLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IFNjbEZpbGVTdGF0dXMuUEVORElORyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUxpc3QgPSBbLi4udGhpcy5maWxlTGlzdCwgY3VycmVudEZpbGVdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzKGN1cnJlbnRGaWxlLmZpbGUsIGN1cnJlbnRGaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VycmVudEZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBjdXJyZW50RmlsZS5wcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZEZpbGVTaXplOiBjdXJyZW50RmlsZS5sb2FkZWRGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IGN1cnJlbnRGaWxlLnRvdGFsRmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChjdXJyZW50RmlsZS5pZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmUoaW5kZXg6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBudW1lcmljSW5kZXggPSB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiBwYXJzZUludChpbmRleCwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWNJbmRleCkgJiYgbnVtZXJpY0luZGV4ID49IDAgJiYgbnVtZXJpY0luZGV4IDwgdGhpcy5maWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaXB0aW9uTWFwLmdldCh0aGlzLmZpbGVMaXN0W251bWVyaWNJbmRleF0uaWQpO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UobnVtZXJpY0luZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXVwbG9hZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5maWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlID0gdGhpcy5maWxlTGlzdFtpbmRleF07XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzKGN1cnJlbnRGaWxlLmZpbGUsIGN1cnJlbnRGaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VycmVudEZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBjdXJyZW50RmlsZS5wcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZEZpbGVTaXplOiBjdXJyZW50RmlsZS5sb2FkZWRGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IGN1cnJlbnRGaWxlLnRvdGFsRmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChjdXJyZW50RmlsZS5pZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBsb2FkRmlsZXM8VD4oZmlsZTogRmlsZSwgY3VycmVudEZpbGU6IFNjbEZpbGU8VD4pIHtcbiAgICAgICAgY3VycmVudEZpbGUuc3RhdHVzID0gU2NsRmlsZVN0YXR1cy5QRU5ESU5HO1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlci51cGxvYWQ8VD4oZmlsZSwgdGhpcy51cGxvYWRUeXBlLCB0aGlzLmNvZGUpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBIdHRwRXZlbnQ8VD4pID0+IGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MgfHwgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSksXG4gICAgICAgICAgICBtYXAoKGV2ZW50OiBIdHRwRXZlbnQ8VD4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG90YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbGUucHJvZ3Jlc3MgPSAoZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpICogMTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbGUubG9hZGVkRmlsZVNpemUgPSB0aGlzLmZvcm1hdEZpbGVTaXplKGV2ZW50LmxvYWRlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS50b3RhbEZpbGVTaXplID0gdGhpcy5mb3JtYXRGaWxlU2l6ZShldmVudC50b3RhbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGaWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS5zdGF0dXMgPSBTY2xGaWxlU3RhdHVzLkNPTVBMRVRFRDtcbiAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS5kYXRhID0gKGV2ZW50IGFzIEh0dHBSZXNwb25zZTxUPik/LmJvZHk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGaWxlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxlLnN0YXR1cyA9IFNjbEZpbGVTdGF0dXMuRkFJTEVEO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxlLnByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmVycnJvTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogdGhpcy5lcnJyb01lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW1hZ2VTcmMoZmlsZTogRmlsZSwgZmlsZW5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbGVVbnN1cHBvcnRlZChmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsZVVuc3VwcG9ydGVkKGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoKChmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpIC0gMSkgPj4+IDApICsgMik7XG4gICAgICAgIHRoaXMuaXNGaWxlU3VwcG9ydGVkID0gdGhpcy5hY2NlcHQuaW5jbHVkZXMoJy4nICsgZmlsZUV4dGVuc2lvbik7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0ZpbGVTdXBwb3J0ZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVVuaXF1ZUlkKCkge1xuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgcmFuZG9tTnVtID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwKTtcbiAgICAgICAgcmV0dXJuIGAke3RpbWVzdGFtcH0tJHtyYW5kb21OdW19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYnl0ZXMgPCAxMDI0KSB7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXMgKyAnIEInO1xuICAgICAgICB9IGVsc2UgaWYgKGJ5dGVzIDwgMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICAgIHJldHVybiAoYnl0ZXMgLyAxMDI0KS50b0ZpeGVkKDIpICsgJyBLQic7XG4gICAgICAgIH0gZWxzZSBpZiAoYnl0ZXMgPCAxMDI0ICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICAgIHJldHVybiAoYnl0ZXMgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpICsgJyBNQic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKGJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpLnRvRml4ZWQoMikgKyAnIEdCJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGljb25BY3Rpb24oYWN0aW9uOiBJY29uUHJldmlld0FjdGlvbikge1xuICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZShhY3Rpb24uaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXVwbG9hZChhY3Rpb24uaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBzY2xUZXh0IHRleHRUeXBlPVwibGFiZWxMYXJnZVwiIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2hlYWRpbmdcIj5cbiAgICB7eyghZmlsZUxpc3Q/Lmxlbmd0aCB8fCBpc011bHRpcGxlKSA/IHVwbG9hZEhlYWRpbmcgOiBjb21wbGV0ZWRVcGxvYWRIZWFkaW5nfX1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZ3gtZmlsZS1kcm9wIGRyb3Bab25lTGFiZWw9XCJEcm9wIGZpbGVzIGhlcmVcIiAob25GaWxlRHJvcCk9XCJkcm9wcGVkKCRldmVudClcIiBbYWNjZXB0XT1cImFjY2VwdGVkU3RyaW5nXCIgKm5nSWY9XCIhZmlsZUxpc3Q/Lmxlbmd0aCB8fCBpc011bHRpcGxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIG5neC1maWxlLWRyb3AtY29udGVudC10bXAgbGV0LW9wZW5GaWxlU2VsZWN0b3I9XCJvcGVuRmlsZVNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWxsdXN0cmF0aW9uVHlwZSA9PT0gJ2ZpbGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxMjAgMTIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNjAgMTAzLjhjMjQuMTkgMCA0My44LTE5LjYxIDQzLjgtNDMuOCAwLTI0LjE5LTE5LjYxLTQzLjgtNDMuOC00My44LTI0LjE5IDAtNDMuOCAxOS42MS00My44IDQzLjggMCAyNC4xOSAxOS42MSA0My44IDQzLjggNDMuOHpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkRFQUQ3XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ni45NTYgNjAuNzY0cy03Ljg0Ny04LjM1My0xNS4wMDQtMTEuMTczYy03LjE1OC0yLjgyLTE1LjAzIDIuOTMtNy41NDMgMTAuNjA4IDcuNDg3IDcuNjc4IDcuNjQ3IDguNjMzIDcuNjQ3IDguNjMzcy0yLjIyMiAxMS4yODIgOC4xODggMTkuMTA0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00My4wODMgNTUuMTU4Yy0uODYxIDEuMjUtMS4zNDUgMy4wNjEtMS4wOTggNS42NjQuNjE3IDYuNDkgNS43OTkgOS40NyA4LjQ5IDEwLjcwMiAzLjk4IDEuODIxIDkuOTkyLjU0OCA4LjE5Ni02LjU5MlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNDIuODUzIDY0LjIxM3MtNy43NTIgMi4yMTUtNC4yOSAxMC4zNzljMS41MzEgMy42MSA1LjU0OSA2LjE5MyA5Ljk5IDYuNzg4IDUuMzUzLjcxOCA5LjA1LTUuMTAyIDQuOTA4LTkuMTE4TTEwMi4zMjkgODMuMDFzLTcuMTgyLTE1LjE4MS0yMS41OTgtMzIuMDIzTTYxLjA5NCAxMTAuODUycy05Ljc4OC0yMi43NjQtMTUuNjMzLTMwLjAzTTUxLjIzOCA1NC4wNzdsLTE3LjU0NSAxLjg2OGE1LjI0NCA1LjI0NCAwIDAgMS01Ljc3MS00LjY2bC0yLjE4Mi0yMC40OU03OS45MTQgOS4wOGEzLjM0NSAzLjM0NSAwIDAgMSAzLjY4IDIuOTczbDMuNzA4IDM0LjgxOWEzLjM0NSAzLjM0NSAwIDAgMS0yLjk3MiAzLjY4TDY3LjU1NCA1Mi4zNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNzQuNjQ1IDE5LjU4YTMuNDkgMy40OSAwIDAgMCAzLjEwMi0zLjg0MmwtLjMyMy0zLjAyOGMtLjE5NS0xLjgzNy44MTQtMy40NSAyLjMtMy42MDhsLTUzLjM4NiA1LjY4NGE0Ljg5NSA0Ljg5NSAwIDAgMC00LjM1IDUuMzg3bC43NTIgNy4wN2EzLjg3NSAzLjg3NSAwIDAgMCA0LjI2NCAzLjQ0M2wxMC43MzYtMS4xNDNhMy45OTUgMy45OTUgMCAwIDAgMi45MTQtMS43NzVsMi4yMDItMy4zNGEzLjk5OSAzLjk5OSAwIDAgMSAyLjkxNC0xLjc3NmwyOC44NzUtMy4wNzN6TTg0LjcxOSA1MC41MTJjLS4wMjYuMDAyLS4wNTItLjAwMy0uMDc4IDAtLjAyNi4wMDMtLjA1LjAxMy0uMDc2LjAxNmwuMTU0LS4wMTZ6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIm03Ny45MTYgMTUuOTk1IDMuMzU2IDMxLjUxOWMuMTkyIDEuODA4IDEuNjkyIDMuMTMgMy4zNjkgMi45OTYgMS42NjctLjIyMyAyLjg1My0xLjgzIDIuNjYxLTMuNjM4bC0zLjM1Ni0zMS41Mi02LjAzLjY0M3pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlsbHVzdHJhdGlvblR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE1MCAxNTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03NSAxMjkuNzVjMzAuMjM4IDAgNTQuNzUtMjQuNTEyIDU0Ljc1LTU0Ljc1UzEwNS4yMzggMjAuMjUgNzUgMjAuMjUgMjAuMjUgNDQuNzYyIDIwLjI1IDc1IDQ0Ljc2MiAxMjkuNzUgNzUgMTI5Ljc1elwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGMEZERjlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjEwNiA5MS4yMTNzMjUuNjUzLTE2LjU0NyA1My4zNjYtMTEuODQyYzI0LjUyOCA0LjE2NiAyOC4wOTYgMS4wMzIgMzkuNzY2LTQuMDMyIDcuODY2LTMuNDEyIDEwLjA4IDQuODg2IDkuMTA4IDcuNTU3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMjEuNDEgOTQuODEyYzYuMTQtOC4yMS0yLjgwMy0xMy42OTgtNy4xMi0xMS4xNzUgMCAwLTE0LjUwNiA3LjU0NS0yNC4zODggOC41ODhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkxLjg5MSAxMDMuMTJzMTEuNjU1LTEuNDg4IDIwLjc4OS03LjI5M2M4Ljg4MS01LjY0NCAxNy4zODkgNC4wODQgNy42OTYgMTEuMTYyLTguODg3IDYuNDktMTkuODIyIDExLjU4OS00OS44MiAxNS44NzYtMjcuOTc0IDMuOTk3LTMzLjM5IDcuNzY1LTM3LjU4NCAxMC42M000Ni4xMjIgODkuOTQ1czYuMTE1LS43NTIgMTMuOTA1IDUuMjk4YzUuMjIzIDMuNDg5IDguODU2IDIuNTMyIDEyLjYyOS42NzggNi45ODYtMy40MzYgMTQuODgyIDUuODY1IDMuODkyIDEzLjQ5OC0xMC45OSA3LjYzNS0yNy40MjIgOS4yOTQtMjcuNDIyIDkuMjk0TTEwMC43MjQgNjguNDI4SDQ5LjI3NmEzLjkyNiAzLjkyNiAwIDAgMS0zLjkyNS0zLjkyNVYyMC4zNjFhMy45MjYgMy45MjYgMCAwIDEgMy45MjUtMy45MjVoNTEuNDQ4YTMuOTI2IDMuOTI2IDAgMCAxIDMuOTI1IDMuOTI1djQ0LjE0MmEzLjkyNiAzLjkyNiAwIDAgMS0zLjkyNSAzLjkyNXpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTk2LjQ3OCAyNC43NzFINTMuNTIydjM1LjMyMmg0Mi45NTZWMjQuNzcxelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJtNTMuODI1IDQzLjM0IDkuNjIyLTEwLjE5Nkw4NC4xMjcgNjBNNzcuMzc3IDUwLjk1Mmw4LjUxNi05LjE5MiAxMC4yOTkgMTIuNjM5TTg3LjQzIDM1LjcyOGEzLjMwMyAzLjMwMyAwIDEgMCAwLTYuNjA1IDMuMzAzIDMuMzAzIDAgMCAwIDAgNi42MDV6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gc2NsVGV4dCB0ZXh0VHlwZT1cImxhYmVsTGFyZ2VcIiB3ZWlnaHQ9XCJtZWRpdW1cIiBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e3Nob3dMaXN0ID8gJ0RyYWcgYW5kIGRyb3AgaW1hZ2UgdG8gdXBsb2FkJzogdGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCIgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fZGVzY3JpcHRpb25cIiAqbmdJZj1cIiFzaG93TGlzdFwiPnt7ZGVzY3JpcHRpb25Db250ZW50fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0xpc3RcIiBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX19saXN0LWdyb3VwXCIgc2NsVGV4dCB0ZXh0VHlwZT1cImJvZHlNZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Rm9yIGNyaXNwIHt7c2hvd0xpc3R9fSwgdXBsb2FkIGltYWdlIHdpdGg6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX19saXN0LWl0ZW1cIiBzY2xUZXh0IHRleHRUeXBlPVwiYm9keU1lZGl1bVwiPjVNQiBtYXhpbXVtIHNpemU8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3QtaXRlbVwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+e3tyZXNvbHV0aW9uIH19IHJlc29sdXRpb248L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3QtaXRlbVwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+SlBFRyBvciBQTkcgZm9ybWF0PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYkJ1dHRvbiBvdXRsaW5lIChjbGljayk9XCJvcGVuRmlsZVNlbGVjdG9yKClcIj57e2lzTXVsdGlwbGU/ICdDaG9vc2UgZmlsZXMnIDogJ0Nob29zZSBhIGZpbGUnfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZ3gtZmlsZS1kcm9wPlxuXG48ZGl2IGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX3ByZXZpZXdcIiAqbmdJZj1cImZpbGVMaXN0Py5sZW5ndGhcIj5cbiAgICA8ZGl2IHNjbFRleHQgdGV4dFR5cGU9XCJsYWJlbExhcmdlXCIgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9faGVhZGluZ1wiICpuZ0lmPVwiaXNNdWx0aXBsZVwiPnt7Y29tcGxldGVkVXBsb2FkSGVhZGluZ319PC9kaXY+XG4gICAgPHVsIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX3ByZXZpZXctbGlzdFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsZUxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxzY2wtcHJldmlldy1ib3ggW2l0ZW1dPVwiaXRlbVwiIFtpbmRleF09XCJpXCIgW2lzUHJvY2Vzc2VkXT1cImlzUHJvY2Vzc2VkXCIgW2Vycm9yTWVzc2FnZV09XCJlcnJyb01lc3NhZ2VcIiAob25BY3Rpb24pPVwiaWNvbkFjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L3NjbC1wcmV2aWV3LWJveD5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG4iXX0=
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxhQUFhLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGNBQWMsRUFBbUIsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdELE9BQU8sRUFBcUIsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBRzFELE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsdURBQU8sQ0FBQTtJQUNQLDJEQUFTLENBQUE7SUFDVCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxhQUFhLEtBQWIsYUFBYSxRQUt4QjtBQThCRCxNQVNhLGVBQWU7SUFjeEIsSUFBdUIsUUFBUSxDQUFDLE1BQXdCO1FB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ZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYkJ1dHRvbk1vZHVsZSwgTmJJY29uTGlicmFyaWVzLCBOYkljb25Nb2R1bGUgfSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgeyBGaWxlU3lzdGVtRmlsZUVudHJ5LCBOZ3hGaWxlRHJvcEVudHJ5LCBOZ3hGaWxlRHJvcE1vZHVsZSB9IGZyb20gJ25neC1maWxlLWRyb3AnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NsQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uUHJldmlld0FjdGlvbiwgU2NsUHJldmlld0JveENvbXBvbmVudCB9IGZyb20gJy4uL3ByZXZpZXctYm94L3ByZXZpZXctYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2xUZXh0IH0gZnJvbSAnLi4vdHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbmltcG9ydCB7IEZJTEVfVVBMT0FERVJfSUNPTiB9IGZyb20gJy4vZmlsZS11cGxvYWRlci1pY29uJztcbmltcG9ydCB7IFNjbFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vZmlsZS11cGxvYWRlci5yZWYnO1xuXG5leHBvcnQgZW51bSBTY2xGaWxlU3RhdHVzIHtcbiAgICBQRU5ESU5HLFxuICAgIENPTVBMRVRFRCxcbiAgICBGQUlMRUQsXG4gICAgUFJPQ0VTU0VELFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjbEZpbGU8VCA9IG51bGw+IHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzcmM/OiBTYWZlVXJsO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcHJvZ3Jlc3M6IG51bWJlcjtcbiAgICBsb2FkZWRGaWxlU2l6ZT86IHN0cmluZztcbiAgICB0b3RhbEZpbGVTaXplPzogc3RyaW5nO1xuICAgIHN0YXR1czogU2NsRmlsZVN0YXR1cztcbiAgICBkYXRhOiBUIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2xGaWxlRXJyb3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9ncmVzcz86IG51bWJlcjtcbiAgICBsb2FkZWRGaWxlU2l6ZT86IHN0cmluZztcbiAgICB0b3RhbEZpbGVTaXplPzogc3RyaW5nO1xuICAgIG1heEZpbGVTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUmVzcG9uc2Uge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgY29kZTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVXBsb2FkVHlwZSA9ICdpbWFnZScgfCAnZXhjZWwnIHwgJ3BkZicgfCAnaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2NsLWZpbGUtdXBsb2FkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NjbC1maWxlLXVwbG9hZGVyJyxcbiAgICB9LFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5neEZpbGVEcm9wTW9kdWxlLCBOYkJ1dHRvbk1vZHVsZSwgTmJJY29uTW9kdWxlLCBTY2xUZXh0LCBTY2xQcmV2aWV3Qm94Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsZVVwbG9hZGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB1cGxvYWRIZWFkaW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbXBsZXRlZFVwbG9hZEhlYWRpbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGUgPSAnRHJhZyBhbmQgRHJvcCBmaWxlcyB0byB1cGxvYWQnO1xuICAgIEBJbnB1dCgpIGFjY2VwdCE6IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIG1heEZpbGVTaXplITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNob3dMaXN0ITogc3RyaW5nIHwgYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbGx1c3RyYXRpb25UeXBlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlc29sdXRpb246IHN0cmluZyA9ICc2NDAqNDgwJztcbiAgICBASW5wdXQoKSBpc1Byb2Nlc3NlZD86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGVzY3JpcHRpb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdXBsb2FkVHlwZTogc3RyaW5nID0gJ2V4Y2VsJztcbiAgICBASW5wdXQoKSBjb2RlITogc3RyaW5nO1xuXG4gICAgQElucHV0KCdtdWx0aXBsZScpIHNldCBtdWx0aXBsZShzdGF0dXM6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc011bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXR1cyk7XG4gICAgfVxuXG4gICAgZ2V0IG11bHRpcGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc011bHRpcGxlO1xuICAgIH1cblxuICAgIGdldCBtYXhGaWxlU2l6ZUluTUIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heEZpbGVTaXplO1xuICAgIH1cblxuICAgIGdldCBmaWxlVHlwZVVwcGVyY2FzZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0Py5tYXAoZmlsZVNpemUgPT4gZmlsZVNpemUuc3Vic3RyaW5nKDEpLnRvVXBwZXJDYXNlKCkpLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uQ29udGVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgT25seSAke3RoaXMuZmlsZVR5cGVVcHBlcmNhc2V9IGZpbGVzIG9mIG1heCBmaWxlIHNpemUgJHt0aGlzLm1heEZpbGVTaXplSW5NQn0gTUIgYXJlIGFsbG93ZWQuYDtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXB0ZWRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0Py5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2NsRmlsZVtdPigpO1xuICAgIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8U2NsRmlsZUVycm9yPigpO1xuXG4gICAgZXJycm9NZXNzYWdlOiBzdHJpbmcgPSAnRXJyb3Igd2hpbGUgdXBsb2FkaW5nISc7XG5cbiAgICBwdWJsaWMgaXNNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0ZpbGVTdXBwb3J0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHByb3RlY3RlZCBmaWxlTGlzdDogU2NsRmlsZVtdID0gW107XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgU3Vic2NyaXB0aW9uPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHVwbG9hZGVyOiBTY2xVcGxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBTY2xBbGVydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaWNvbkxpYnJhcmllczogTmJJY29uTGlicmFyaWVzXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaWNvbkxpYnJhcmllcy5yZWdpc3RlclN2Z1BhY2soJ2ZpbGUtdXBsb2FkZXItaWNvbicsIEZJTEVfVVBMT0FERVJfSUNPTik7XG4gICAgfVxuXG4gICAgZHJvcHBlZChmaWxlczogTmd4RmlsZURyb3BFbnRyeVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5pc011bHRpcGxlICYmIGZpbGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmRhbmdlcih7XG4gICAgICAgICAgICAgICAgaGVhZGluZzogJ1VwbG9hZCBvbmx5IG9uZSBmaWxlLicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGRyb3BwZWRGaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBpZiAoZHJvcHBlZEZpbGUuZmlsZUVudHJ5LmlzRmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRmlsZUVudHJ5O1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5maWxlKChmaWxlOiBGaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWxlVW5zdXBwb3J0ZWQoZmlsZS5uYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxGaWxlU2l6ZTogdGhpcy5mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhGaWxlU2l6ZTogdGhpcy5tYXhGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiAnSW52YWxpZCBmaWxlIGZvcm1hdC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVNpemUgPSB0aGlzLm1heEZpbGVTaXplSW5NQiAqIDEwMjQgKiAxMDI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IGZpbGVTaXplICYmIGZpbGUuc2l6ZSAhPT0gdGhpcy5tYXhGaWxlU2l6ZUluTUIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IHRoaXMuZm9ybWF0RmlsZVNpemUoZmlsZS5zaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4RmlsZVNpemU6IHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZGFuZ2VyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZzogYEZpbGUgc2l6ZSBpcyBtb3JlIHRoYW4gJHt0aGlzLm1heEZpbGVTaXplfSBNQi5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlOiBTY2xGaWxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogdGhpcy5pbWFnZVNyYyhmaWxlLCBmaWxlLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IFNjbEZpbGVTdGF0dXMuUEVORElORyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUxpc3QgPSBbLi4udGhpcy5maWxlTGlzdCwgY3VycmVudEZpbGVdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzKGN1cnJlbnRGaWxlLmZpbGUsIGN1cnJlbnRGaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VycmVudEZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBjdXJyZW50RmlsZS5wcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZEZpbGVTaXplOiBjdXJyZW50RmlsZS5sb2FkZWRGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IGN1cnJlbnRGaWxlLnRvdGFsRmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChjdXJyZW50RmlsZS5pZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmUoaW5kZXg6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBudW1lcmljSW5kZXggPSB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiBwYXJzZUludChpbmRleCwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWNJbmRleCkgJiYgbnVtZXJpY0luZGV4ID49IDAgJiYgbnVtZXJpY0luZGV4IDwgdGhpcy5maWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaXB0aW9uTWFwLmdldCh0aGlzLmZpbGVMaXN0W251bWVyaWNJbmRleF0uaWQpO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UobnVtZXJpY0luZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXVwbG9hZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5maWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlID0gdGhpcy5maWxlTGlzdFtpbmRleF07XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzKGN1cnJlbnRGaWxlLmZpbGUsIGN1cnJlbnRGaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VycmVudEZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBjdXJyZW50RmlsZS5wcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZEZpbGVTaXplOiBjdXJyZW50RmlsZS5sb2FkZWRGaWxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmlsZVNpemU6IGN1cnJlbnRGaWxlLnRvdGFsRmlsZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5kZWxldGUoY3VycmVudEZpbGUuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChjdXJyZW50RmlsZS5pZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBsb2FkRmlsZXM8VD4oZmlsZTogRmlsZSwgY3VycmVudEZpbGU6IFNjbEZpbGU8VD4pIHtcbiAgICAgICAgY3VycmVudEZpbGUuc3RhdHVzID0gU2NsRmlsZVN0YXR1cy5QRU5ESU5HO1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlci51cGxvYWQ8VD4oZmlsZSwgdGhpcy51cGxvYWRUeXBlLCB0aGlzLmNvZGUpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBIdHRwRXZlbnQ8VD4pID0+IGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MgfHwgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSksXG4gICAgICAgICAgICBtYXAoKGV2ZW50OiBIdHRwRXZlbnQ8VD4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG90YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbGUucHJvZ3Jlc3MgPSAoZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpICogMTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbGUubG9hZGVkRmlsZVNpemUgPSB0aGlzLmZvcm1hdEZpbGVTaXplKGV2ZW50LmxvYWRlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS50b3RhbEZpbGVTaXplID0gdGhpcy5mb3JtYXRGaWxlU2l6ZShldmVudC50b3RhbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGaWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS5zdGF0dXMgPSBTY2xGaWxlU3RhdHVzLkNPTVBMRVRFRDtcbiAgICAgICAgICAgICAgICBjdXJyZW50RmlsZS5kYXRhID0gKGV2ZW50IGFzIEh0dHBSZXNwb25zZTxUPik/LmJvZHk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGaWxlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxlLnN0YXR1cyA9IFNjbEZpbGVTdGF0dXMuRkFJTEVEO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxlLnByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmVycnJvTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogdGhpcy5lcnJyb01lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbk1hcC5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW1hZ2VTcmMoZmlsZTogRmlsZSwgZmlsZW5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbGVVbnN1cHBvcnRlZChmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsZVVuc3VwcG9ydGVkKGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoKChmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpIC0gMSkgPj4+IDApICsgMik7XG4gICAgICAgIHRoaXMuaXNGaWxlU3VwcG9ydGVkID0gdGhpcy5hY2NlcHQuaW5jbHVkZXMoJy4nICsgZmlsZUV4dGVuc2lvbik7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0ZpbGVTdXBwb3J0ZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVVuaXF1ZUlkKCkge1xuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgcmFuZG9tTnVtID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwKTtcbiAgICAgICAgcmV0dXJuIGAke3RpbWVzdGFtcH0tJHtyYW5kb21OdW19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYnl0ZXMgPCAxMDI0KSB7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXMgKyAnIEInO1xuICAgICAgICB9IGVsc2UgaWYgKGJ5dGVzIDwgMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICAgIHJldHVybiAoYnl0ZXMgLyAxMDI0KS50b0ZpeGVkKDIpICsgJyBLQic7XG4gICAgICAgIH0gZWxzZSBpZiAoYnl0ZXMgPCAxMDI0ICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICAgIHJldHVybiAoYnl0ZXMgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpICsgJyBNQic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKGJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpLnRvRml4ZWQoMikgKyAnIEdCJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGljb25BY3Rpb24oYWN0aW9uOiBJY29uUHJldmlld0FjdGlvbikge1xuICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZShhY3Rpb24uaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXVwbG9hZChhY3Rpb24uaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBzY2xUZXh0IHRleHRUeXBlPVwibGFiZWxMYXJnZVwiIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2hlYWRpbmdcIj5cbiAgICB7eyghZmlsZUxpc3Q/Lmxlbmd0aCB8fCBpc011bHRpcGxlKSA/IHVwbG9hZEhlYWRpbmcgOiBjb21wbGV0ZWRVcGxvYWRIZWFkaW5nfX1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZ3gtZmlsZS1kcm9wIGRyb3Bab25lTGFiZWw9XCJEcm9wIGZpbGVzIGhlcmVcIiAob25GaWxlRHJvcCk9XCJkcm9wcGVkKCRldmVudClcIiBbYWNjZXB0XT1cImFjY2VwdGVkU3RyaW5nXCIgKm5nSWY9XCIhZmlsZUxpc3Q/Lmxlbmd0aCB8fCBpc011bHRpcGxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIG5neC1maWxlLWRyb3AtY29udGVudC10bXAgbGV0LW9wZW5GaWxlU2VsZWN0b3I9XCJvcGVuRmlsZVNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWxsdXN0cmF0aW9uVHlwZSA9PT0gJ2ZpbGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxMjAgMTIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNjAgMTAzLjhjMjQuMTkgMCA0My44LTE5LjYxIDQzLjgtNDMuOCAwLTI0LjE5LTE5LjYxLTQzLjgtNDMuOC00My44LTI0LjE5IDAtNDMuOCAxOS42MS00My44IDQzLjggMCAyNC4xOSAxOS42MSA0My44IDQzLjggNDMuOHpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkRFQUQ3XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ni45NTYgNjAuNzY0cy03Ljg0Ny04LjM1My0xNS4wMDQtMTEuMTczYy03LjE1OC0yLjgyLTE1LjAzIDIuOTMtNy41NDMgMTAuNjA4IDcuNDg3IDcuNjc4IDcuNjQ3IDguNjMzIDcuNjQ3IDguNjMzcy0yLjIyMiAxMS4yODIgOC4xODggMTkuMTA0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00My4wODMgNTUuMTU4Yy0uODYxIDEuMjUtMS4zNDUgMy4wNjEtMS4wOTggNS42NjQuNjE3IDYuNDkgNS43OTkgOS40NyA4LjQ5IDEwLjcwMiAzLjk4IDEuODIxIDkuOTkyLjU0OCA4LjE5Ni02LjU5MlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNDIuODUzIDY0LjIxM3MtNy43NTIgMi4yMTUtNC4yOSAxMC4zNzljMS41MzEgMy42MSA1LjU0OSA2LjE5MyA5Ljk5IDYuNzg4IDUuMzUzLjcxOCA5LjA1LTUuMTAyIDQuOTA4LTkuMTE4TTEwMi4zMjkgODMuMDFzLTcuMTgyLTE1LjE4MS0yMS41OTgtMzIuMDIzTTYxLjA5NCAxMTAuODUycy05Ljc4OC0yMi43NjQtMTUuNjMzLTMwLjAzTTUxLjIzOCA1NC4wNzdsLTE3LjU0NSAxLjg2OGE1LjI0NCA1LjI0NCAwIDAgMS01Ljc3MS00LjY2bC0yLjE4Mi0yMC40OU03OS45MTQgOS4wOGEzLjM0NSAzLjM0NSAwIDAgMSAzLjY4IDIuOTczbDMuNzA4IDM0LjgxOWEzLjM0NSAzLjM0NSAwIDAgMS0yLjk3MiAzLjY4TDY3LjU1NCA1Mi4zNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNzQuNjQ1IDE5LjU4YTMuNDkgMy40OSAwIDAgMCAzLjEwMi0zLjg0MmwtLjMyMy0zLjAyOGMtLjE5NS0xLjgzNy44MTQtMy40NSAyLjMtMy42MDhsLTUzLjM4NiA1LjY4NGE0Ljg5NSA0Ljg5NSAwIDAgMC00LjM1IDUuMzg3bC43NTIgNy4wN2EzLjg3NSAzLjg3NSAwIDAgMCA0LjI2NCAzLjQ0M2wxMC43MzYtMS4xNDNhMy45OTUgMy45OTUgMCAwIDAgMi45MTQtMS43NzVsMi4yMDItMy4zNGEzLjk5OSAzLjk5OSAwIDAgMSAyLjkxNC0xLjc3NmwyOC44NzUtMy4wNzN6TTg0LjcxOSA1MC41MTJjLS4wMjYuMDAyLS4wNTItLjAwMy0uMDc4IDAtLjAyNi4wMDMtLjA1LjAxMy0uMDc2LjAxNmwuMTU0LS4wMTZ6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIm03Ny45MTYgMTUuOTk1IDMuMzU2IDMxLjUxOWMuMTkyIDEuODA4IDEuNjkyIDMuMTMgMy4zNjkgMi45OTYgMS42NjctLjIyMyAyLjg1My0xLjgzIDIuNjYxLTMuNjM4bC0zLjM1Ni0zMS41Mi02LjAzLjY0M3pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlsbHVzdHJhdGlvblR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE1MCAxNTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03NSAxMjkuNzVjMzAuMjM4IDAgNTQuNzUtMjQuNTEyIDU0Ljc1LTU0Ljc1UzEwNS4yMzggMjAuMjUgNzUgMjAuMjUgMjAuMjUgNDQuNzYyIDIwLjI1IDc1IDQ0Ljc2MiAxMjkuNzUgNzUgMTI5Ljc1elwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGMEZERjlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjEwNiA5MS4yMTNzMjUuNjUzLTE2LjU0NyA1My4zNjYtMTEuODQyYzI0LjUyOCA0LjE2NiAyOC4wOTYgMS4wMzIgMzkuNzY2LTQuMDMyIDcuODY2LTMuNDEyIDEwLjA4IDQuODg2IDkuMTA4IDcuNTU3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMjEuNDEgOTQuODEyYzYuMTQtOC4yMS0yLjgwMy0xMy42OTgtNy4xMi0xMS4xNzUgMCAwLTE0LjUwNiA3LjU0NS0yNC4zODggOC41ODhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkxLjg5MSAxMDMuMTJzMTEuNjU1LTEuNDg4IDIwLjc4OS03LjI5M2M4Ljg4MS01LjY0NCAxNy4zODkgNC4wODQgNy42OTYgMTEuMTYyLTguODg3IDYuNDktMTkuODIyIDExLjU4OS00OS44MiAxNS44NzYtMjcuOTc0IDMuOTk3LTMzLjM5IDcuNzY1LTM3LjU4NCAxMC42M000Ni4xMjIgODkuOTQ1czYuMTE1LS43NTIgMTMuOTA1IDUuMjk4YzUuMjIzIDMuNDg5IDguODU2IDIuNTMyIDEyLjYyOS42NzggNi45ODYtMy40MzYgMTQuODgyIDUuODY1IDMuODkyIDEzLjQ5OC0xMC45OSA3LjYzNS0yNy40MjIgOS4yOTQtMjcuNDIyIDkuMjk0TTEwMC43MjQgNjguNDI4SDQ5LjI3NmEzLjkyNiAzLjkyNiAwIDAgMS0zLjkyNS0zLjkyNVYyMC4zNjFhMy45MjYgMy45MjYgMCAwIDEgMy45MjUtMy45MjVoNTEuNDQ4YTMuOTI2IDMuOTI2IDAgMCAxIDMuOTI1IDMuOTI1djQ0LjE0MmEzLjkyNiAzLjkyNiAwIDAgMS0zLjkyNSAzLjkyNXpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMyMzFGMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTk2LjQ3OCAyNC43NzFINTMuNTIydjM1LjMyMmg0Mi45NTZWMjQuNzcxelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzIzMUYyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJtNTMuODI1IDQzLjM0IDkuNjIyLTEwLjE5Nkw4NC4xMjcgNjBNNzcuMzc3IDUwLjk1Mmw4LjUxNi05LjE5MiAxMC4yOTkgMTIuNjM5TTg3LjQzIDM1LjcyOGEzLjMwMyAzLjMwMyAwIDEgMCAwLTYuNjA1IDMuMzAzIDMuMzAzIDAgMCAwIDAgNi42MDV6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMjMxRjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gc2NsVGV4dCB0ZXh0VHlwZT1cImxhYmVsTGFyZ2VcIiB3ZWlnaHQ9XCJtZWRpdW1cIiBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e3Nob3dMaXN0ID8gJ0RyYWcgYW5kIGRyb3AgaW1hZ2UgdG8gdXBsb2FkJzogdGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCIgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9fZGVzY3JpcHRpb25cIiAqbmdJZj1cIiFzaG93TGlzdFwiPnt7ZGVzY3JpcHRpb25Db250ZW50fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0xpc3RcIiBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX19saXN0LWdyb3VwXCIgc2NsVGV4dCB0ZXh0VHlwZT1cImJvZHlNZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Rm9yIGNyaXNwIHt7c2hvd0xpc3R9fSwgdXBsb2FkIGltYWdlIHdpdGg6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNjbC1maWxlLXVwbG9hZGVyX19saXN0LWl0ZW1cIiBzY2xUZXh0IHRleHRUeXBlPVwiYm9keU1lZGl1bVwiPjVNQiBtYXhpbXVtIHNpemU8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3QtaXRlbVwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+e3tyZXNvbHV0aW9uIH19IHJlc29sdXRpb248L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX2xpc3QtaXRlbVwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+SlBFRyBvciBQTkcgZm9ybWF0PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYkJ1dHRvbiBvdXRsaW5lIChjbGljayk9XCJvcGVuRmlsZVNlbGVjdG9yKClcIj57e2lzTXVsdGlwbGU/ICdDaG9vc2UgZmlsZXMnIDogJ0Nob29zZSBhIGZpbGUnfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZ3gtZmlsZS1kcm9wPlxuXG48ZGl2IGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX3ByZXZpZXdcIiAqbmdJZj1cImZpbGVMaXN0Py5sZW5ndGhcIj5cbiAgICA8ZGl2IHNjbFRleHQgdGV4dFR5cGU9XCJsYWJlbExhcmdlXCIgY2xhc3M9XCJzY2wtZmlsZS11cGxvYWRlcl9faGVhZGluZ1wiICpuZ0lmPVwiaXNNdWx0aXBsZVwiPnt7Y29tcGxldGVkVXBsb2FkSGVhZGluZ319PC9kaXY+XG4gICAgPHVsIGNsYXNzPVwic2NsLWZpbGUtdXBsb2FkZXJfX3ByZXZpZXctbGlzdFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsZUxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxzY2wtcHJldmlldy1ib3ggW2l0ZW1dPVwiaXRlbVwiIFtpbmRleF09XCJpXCIgW2lzUHJvY2Vzc2VkXT1cImlzUHJvY2Vzc2VkXCIgW2Vycm9yTWVzc2FnZV09XCJlcnJyb01lc3NhZ2VcIiAob25BY3Rpb24pPVwiaWNvbkFjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L3NjbC1wcmV2aWV3LWJveD5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -13,14 +13,14 @@ class SclFileUploaderService {
13
13
  reportProgress: true,
14
14
  });
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFileUploaderService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFileUploaderService, providedIn: 'root' }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFileUploaderService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFileUploaderService, providedIn: 'root' }); }
18
18
  }
19
19
  export { SclFileUploaderService };
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFileUploaderService, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFileUploaderService, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{
23
23
  providedIn: 'root',
24
24
  }]
25
25
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2ZpbGUtdXBsb2FkZXIvZmlsZS11cGxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUdhLHNCQUFzQjtJQUMvQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUV4QyxNQUFNLENBQUMsSUFBVTtRQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7WUFDcEQsT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FYUSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZuQixNQUFNOztTQUVULHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY2xVcGxvYWRlclNlcnZpY2UgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXIucmVmJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsZVVwbG9hZGVyU2VydmljZSBpbXBsZW1lbnRzIFNjbFVwbG9hZGVyU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gICAgdXBsb2FkKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KCdodHRwczovL2ZpbGUuaW8nLCBmb3JtRGF0YSwge1xuICAgICAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2ZpbGUtdXBsb2FkZXIvZmlsZS11cGxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUdhLHNCQUFzQjtJQUMvQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUV4QyxNQUFNLENBQUMsSUFBVTtRQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7WUFDcEQsT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FYUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOztTQUVULHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY2xVcGxvYWRlclNlcnZpY2UgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXIucmVmJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsZVVwbG9hZGVyU2VydmljZSBpbXBsZW1lbnRzIFNjbFVwbG9hZGVyU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gICAgdXBsb2FkKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KCdodHRwczovL2ZpbGUuaW8nLCBmb3JtRGF0YSwge1xuICAgICAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -136,11 +136,11 @@ class SclFilter {
136
136
  field.onChange(event);
137
137
  }
138
138
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFilter, deps: [{ token: i1.FormBuilder }, { token: i2.SclAlertService }, { token: i3.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclFilter, isStandalone: true, selector: "scl-filter", inputs: { formFields: "formFields", isLoading: "isLoading", emitFormDataOnReset: "emitFormDataOnReset" }, outputs: { onFilter: "onFilter" }, providers: [], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"filterForm\" (validateAndSubmit)=\"search($event)\">\n <scl-row [columns]=\"4\">\n <scl-column *ngFor=\"let field of formFields\">\n <ng-container *ngIf=\"field.type === 'text'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <input\n [type]=\"field.type\"\n fullWidth\n [formControlName]=\"field.formControlName\"\n [placeholder]=\"field.placeholder\"\n [id]=\"field.formControlName\"\n nbInput />\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'select' || field.type === 'dropdown'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <ng-select\n [items]=\"field.options ?? null\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [formControlName]=\"field.formControlName\"\n [id]=\"field.formControlName\"\n class=\"select\"\n appendTo=\"body\"\n name=\"field.formControlName\"\n [clearable]=\"true\"\n [placeholder]=\"field.placeholder\"\n (change)=\"onSelect(field, $event)\">\n </ng-select>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'checkbox'\">\n <scl-form-field errorMessage>\n <div *ngFor=\"let option of field.options\" class=\"checkbox-option\">\n <label>\n <input type=\"checkbox\" [formControlName]=\"field.formControlName\" [value]=\"option.value\" />\n {{ option.label }}\n </label>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'radio'\">\n <scl-form-field errorMessage>\n <div *ngFor=\"let option of field.options\" class=\"radio-option\">\n <label>\n <input type=\"radio\" [formControlName]=\"field.formControlName\" [value]=\"option.value\" />\n {{ option.label }}\n </label>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'dropdown-text'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <div class=\"dropdown-text-field\">\n <scl-select-input-field>\n <ng-select\n fullWidth\n [items]=\"field.options ?? null\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [formControlName]=\"field.dropdownFormControlName ?? null\"\n [placeholder]=\"field.placeholder\"\n [id]=\"field.dropdownFormControlName\"\n class=\"select\"\n appendTo=\"body\"></ng-select>\n <input [formControlName]=\"field.formControlName\" nbInput />\n </scl-select-input-field>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'date'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <scl-datetime-picker\n [formControlName]=\"field.formControlName\"\n [attr.name]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [min]=\"field?.minDate\"\n [id]=\"field.formControlName\"\n [max]=\"field?.maxDate\">\n </scl-datetime-picker>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'date-time'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <scl-datetime-picker\n dateTimePicker\n [formControlName]=\"field.formControlName\"\n [attr.name]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [min]=\"field?.minDate\"\n [id]=\"field.formControlName\"\n [max]=\"field?.maxDate\">\n </scl-datetime-picker>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n </scl-column>\n </scl-row>\n\n <scl-button-group>\n <button type=\"submit\" nbButton status=\"primary\">Filter</button>\n <button type=\"button\" nbButton outline (click)=\"reset()\">Reset</button>\n </scl-button-group>\n</form>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: SclButtonGroup, selector: "scl-button-group", inputs: ["wrap", "alignment"] }, { kind: "component", type: SclFormMessage, selector: "scl-form-message", inputs: ["type"] }, { kind: "component", type: SclFormField, selector: "scl-form-field", inputs: ["messageBuilder"] }, { kind: "component", type: SclColumn, selector: "scl-column" }, { kind: "component", type: SclRow, selector: "scl-row", inputs: ["columns"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i3.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i3.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "directive", type: SclLabel, selector: "[sclLabel]" }, { kind: "ngmodule", type: NbDatepickerModule }, { kind: "component", type: SclSelectInputField, selector: "scl-select-input-field" }, { kind: "ngmodule", type: NbIconModule }, { kind: "directive", type: SclValidateAndSubmit, selector: "form[formGroup][validateAndSubmit]", outputs: ["validateAndSubmit"] }, { kind: "component", type: SclDateTimepickerComponent, selector: "scl-datetime-picker", inputs: ["placeholder", "format", "min", "max", "dateTimePicker", "showPresets", "readonly"], outputs: ["dateChange"] }] }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFilter, deps: [{ token: i1.FormBuilder }, { token: i2.SclAlertService }, { token: i3.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SclFilter, isStandalone: true, selector: "scl-filter", inputs: { formFields: "formFields", isLoading: "isLoading", emitFormDataOnReset: "emitFormDataOnReset" }, outputs: { onFilter: "onFilter" }, providers: [], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"filterForm\" (validateAndSubmit)=\"search($event)\">\n <scl-row [columns]=\"4\">\n <scl-column *ngFor=\"let field of formFields\">\n <ng-container *ngIf=\"field.type === 'text'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <input\n [type]=\"field.type\"\n fullWidth\n [formControlName]=\"field.formControlName\"\n [placeholder]=\"field.placeholder\"\n [id]=\"field.formControlName\"\n nbInput />\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'select' || field.type === 'dropdown'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <ng-select\n [items]=\"field.options ?? null\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [formControlName]=\"field.formControlName\"\n [id]=\"field.formControlName\"\n class=\"select\"\n appendTo=\"body\"\n name=\"field.formControlName\"\n [clearable]=\"true\"\n [placeholder]=\"field.placeholder\"\n (change)=\"onSelect(field, $event)\">\n </ng-select>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'checkbox'\">\n <scl-form-field errorMessage>\n <div *ngFor=\"let option of field.options\" class=\"checkbox-option\">\n <label>\n <input type=\"checkbox\" [formControlName]=\"field.formControlName\" [value]=\"option.value\" />\n {{ option.label }}\n </label>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'radio'\">\n <scl-form-field errorMessage>\n <div *ngFor=\"let option of field.options\" class=\"radio-option\">\n <label>\n <input type=\"radio\" [formControlName]=\"field.formControlName\" [value]=\"option.value\" />\n {{ option.label }}\n </label>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'dropdown-text'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <div class=\"dropdown-text-field\">\n <scl-select-input-field>\n <ng-select\n fullWidth\n [items]=\"field.options ?? null\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [formControlName]=\"field.dropdownFormControlName ?? null\"\n [placeholder]=\"field.placeholder\"\n [id]=\"field.dropdownFormControlName\"\n class=\"select\"\n appendTo=\"body\"></ng-select>\n <input [formControlName]=\"field.formControlName\" nbInput />\n </scl-select-input-field>\n </div>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'date'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <scl-datetime-picker\n [formControlName]=\"field.formControlName\"\n [attr.name]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [min]=\"field?.minDate\"\n [id]=\"field.formControlName\"\n [max]=\"field?.maxDate\">\n </scl-datetime-picker>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"field.type === 'date-time'\">\n <scl-form-field errorMessage>\n <label [for]=\"field.formControlName\" sclLabel>{{ field.label }}</label>\n <scl-datetime-picker\n dateTimePicker\n [formControlName]=\"field.formControlName\"\n [attr.name]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [min]=\"field?.minDate\"\n [id]=\"field.formControlName\"\n [max]=\"field?.maxDate\">\n </scl-datetime-picker>\n <scl-form-message></scl-form-message>\n </scl-form-field>\n </ng-container>\n </scl-column>\n </scl-row>\n\n <scl-button-group>\n <button type=\"submit\" nbButton status=\"primary\">Filter</button>\n <button type=\"button\" nbButton outline (click)=\"reset()\">Reset</button>\n </scl-button-group>\n</form>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: SclButtonGroup, selector: "scl-button-group", inputs: ["wrap", "alignment"] }, { kind: "component", type: SclFormMessage, selector: "scl-form-message", inputs: ["type"] }, { kind: "component", type: SclFormField, selector: "scl-form-field", inputs: ["messageBuilder"] }, { kind: "component", type: SclColumn, selector: "scl-column" }, { kind: "component", type: SclRow, selector: "scl-row", inputs: ["columns"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i3.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i3.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "directive", type: SclLabel, selector: "[sclLabel]" }, { kind: "ngmodule", type: NbDatepickerModule }, { kind: "component", type: SclSelectInputField, selector: "scl-select-input-field" }, { kind: "ngmodule", type: NbIconModule }, { kind: "directive", type: SclValidateAndSubmit, selector: "form[formGroup][validateAndSubmit]", outputs: ["validateAndSubmit"] }, { kind: "component", type: SclDateTimepickerComponent, selector: "scl-datetime-picker", inputs: ["placeholder", "format", "min", "max", "dateTimePicker", "showPresets", "readonly"], outputs: ["dateChange"] }] }); }
141
141
  }
142
142
  export { SclFilter };
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFilter, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFilter, decorators: [{
144
144
  type: Component,
145
145
  args: [{ selector: 'scl-filter', standalone: true, imports: [
146
146
  ReactiveFormsModule,
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
170
170
  }], emitFormDataOnReset: [{
171
171
  type: Input
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2ZpbHRlci9maWx0ZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZmlsdGVyL2ZpbHRlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQWUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQW1CLFlBQVksRUFBVyxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFpQjlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FB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TyxtQkFBbUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmJCdXR0b25Nb2R1bGUsIE5iRGF0ZXBpY2tlck1vZHVsZSwgTmJJY29uTGlicmFyaWVzLCBOYkljb25Nb2R1bGUsIE5iSWNvbnMsIE5iSW5wdXRNb2R1bGUgfSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IFNjbEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NsQnV0dG9uR3JvdXAgfSBmcm9tICcuLi9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLWRhdGVwaWNrZXIvY3VzdG9tLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNjbEZvcm1GaWVsZCB9IGZyb20gJy4uL2Zvcm0vZm9ybS1jb250cm9sL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU2NsRm9ybU1lc3NhZ2UgfSBmcm9tICcuLi9mb3JtL2Zvcm0tbWVzc2FnZS9mb3JtLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2NsU2VsZWN0SW5wdXRGaWVsZCB9IGZyb20gJy4uL2Zvcm0vc2VsZWN0LWlucHV0LWZpZWxkL3NlbGVjdC1pbnB1dC1maWVsZCc7XG5pbXBvcnQgeyBTY2xWYWxpZGF0ZUFuZFN1Ym1pdCB9IGZyb20gJy4uL2Zvcm0vdmFsaWRhdGUtYW5kLXN1Ym1pdCc7XG5pbXBvcnQgeyBTY2xMYWJlbCB9IGZyb20gJy4uL2xhYmVsL2xhYmVsJztcbmltcG9ydCB7IFNjbENvbHVtbiB9IGZyb20gJy4uL3Jvdy9jb2x1bW4vY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2xSb3cgfSBmcm9tICcuLi9yb3cvcm93LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRm9ybUdyb3VwIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG9wdGlvbnM/OiBhbnlbXTtcbiAgICBkcm9wZG93bkZvcm1Db250cm9sTmFtZT86IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgICBkcm9wZG93bkZvcm1Db250cm9sVmFsdWU/OiBhbnk7XG4gICAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgbWluRGF0ZT86IERhdGU7XG4gICAgbWF4RGF0ZT86IERhdGU7XG4gICAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFNjbEljb25zOiBOYkljb25zID0ge1xuICAgIGNhbGVuZGVyOiBgXG4gICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNy43NSAzQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjI1djExLjVBMy4yNSAzLjI1IDAgMCAxIDE3Ljc1IDIxSDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNUEzLjI1IDMuMjUgMCAwIDEgNi4yNSAzaDExLjV6bTEuNzUgNS41aC0xNXY5LjI1YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTEuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1VjguNXptLTExLjc1IDZhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXptNC4yNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6bS00LjI1LTRhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXptNC4yNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6bTQuMjUgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41em0xLjUtNkg2LjI1QTEuNzUgMS43NSAwIDAgMCA0LjUgNi4yNVY3aDE1di0uNzVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NXpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICBgLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgICAgICBTY2xCdXR0b25Hcm91cCxcbiAgICAgICAgU2NsRm9ybU1lc3NhZ2UsXG4gICAgICAgIFNjbEZvcm1GaWVsZCxcbiAgICAgICAgU2NsQ29sdW1uLFxuICAgICAgICBTY2xSb3csXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iQnV0dG9uTW9kdWxlLFxuICAgICAgICBTY2xMYWJlbCxcbiAgICAgICAgTmJEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBTY2xTZWxlY3RJbnB1dEZpZWxkLFxuICAgICAgICBOYkljb25Nb2R1bGUsXG4gICAgICAgIFNjbEZvcm1GaWVsZCxcbiAgICAgICAgU2NsVmFsaWRhdGVBbmRTdWJtaXQsXG4gICAgICAgIFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsdGVyIHtcbiAgICBwcml2YXRlIF9mb3JtRmllbGRzOiBGaWx0ZXJGb3JtR3JvdXBbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpIG9uRmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBnZXQgZm9ybUZpZWxkcygpOiBGaWx0ZXJGb3JtR3JvdXBbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGRzO1xuICAgIH1cbiAgICBzZXQgZm9ybUZpZWxkcyh2YWx1ZTogRmlsdGVyRm9ybUdyb3VwW10pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtRmllbGRzID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtQ29udHJvbHMoKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5mb3JtQ29udHJvbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2V0IGVtaXRGb3JtRGF0YU9uUmVzZXQoZW1pdFZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlID0gZW1pdFZhbHVlO1xuICAgIH1cblxuICAgIGVtaXRWYWx1ZSA9IHRydWU7XG4gICAgZmlsdGVyRm9ybSE6IEZvcm1Hcm91cDtcbiAgICBmb3JtQ29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogU2NsQWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtaWNvbicsIFNjbEljb25zKTtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh0aGlzLmZvcm1Db250cm9scyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9scyA9IHt9O1xuICAgICAgICB0aGlzLl9mb3JtRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGRyb3Bkb3duLXRleHQgdHlwZVxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdkcm9wZG93bi10ZXh0JyAmJiBmaWVsZC5kcm9wZG93bkZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXSA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSGFuZGxlIG1haW4gZm9ybSBjb250cm9sXG4gICAgICAgICAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbHNbZmllbGQuZm9ybUNvbnRyb2xOYW1lXSA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5mb3JtQ29udHJvbE5hbWVdLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbHNbZmllbGQuZm9ybUNvbnRyb2xOYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmZvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShmaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUudHJpbSgpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcbiAgICB9XG5cbiAgICBzZWFyY2goaXNWYWxpZDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpbHRlckZvcm0udmFsdWVba2V5XTtcbiAgICAgICAgICAgIGFjY1trZXldID0gdGhpcy50cmFuc2Zvcm1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSBhcyBhbnkpO1xuICAgICAgICAvLyBpZiAoIXRoaXMuaGFzRm9ybVZhbHVlcygpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZnJvbURhdGUsIHRvRGF0ZSB9ID0gZm9ybVZhbHVlO1xuICAgICAgICBpZiAoZnJvbURhdGUgJiYgdG9EYXRlICYmIHRvRGF0ZSA8IGZyb21EYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoe1xuICAgICAgICAgICAgICAgIGhlYWRpbmc6ICdSZWNvcmRzIGNhbm5vdCBiZSBmaWx0ZXJlZCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUbyBEYXRlIGNhbm5vdCBiZSBsZXNzIHRoYW4gRnJvbSBEYXRlJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25GaWx0ZXIuZW1pdChmb3JtVmFsdWUpO1xuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAoIXRoaXMuaGFzRm9ybVZhbHVlcygpKSByZXR1cm47XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgICAgICBpZiAodGhpcy5lbWl0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLmZpbHRlckZvcm0udmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snZm9ybUZpZWxkcyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcyhjaGFuZ2VzWydmb3JtRmllbGRzJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEZvcm1GaWVsZHMoY3VycmVudEZvcm1WYWx1ZTogRmlsdGVyRm9ybUdyb3VwW10pIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5jb250cm9scykge1xuICAgICAgICAgICAgY3VycmVudEZvcm1WYWx1ZS5mb3JFYWNoKGN1cnJlbnRGb3JtVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rm9ybVZhbHVlLnZhbHVlICYmIHRoaXMuZmlsdGVyRm9ybS5jb250YWlucyhjdXJyZW50Rm9ybVZhbHVlLmZvcm1Db250cm9sTmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmNvbnRyb2xzW2N1cnJlbnRGb3JtVmFsdWUuZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGN1cnJlbnRGb3JtVmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZvcm1WYWx1ZS5kcm9wZG93bkZvcm1Db250cm9sTmFtZSAmJiBjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lICE9PSAobnVsbCAmJiB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAmJiBjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAhPT0gKG51bGwgJiYgdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5jb250YWlucyhjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGN1cnJlbnRGb3JtVmFsdWUuZHJvcGRvd25Gb3JtQ29udHJvbFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNGb3JtVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmZpbHRlckZvcm0udmFsdWUpLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KGZpZWxkOiBGaWx0ZXJGb3JtR3JvdXAsIGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpZWxkLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBmaWVsZC5vbkNoYW5nZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiAodmFsaWRhdGVBbmRTdWJtaXQpPVwic2VhcmNoKCRldmVudClcIj5cbiAgICA8c2NsLXJvdyBbY29sdW1uc109XCI0XCI+XG4gICAgICAgIDxzY2wtY29sdW1uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmb3JtRmllbGRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYklucHV0IC8+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnc2VsZWN0JyB8fCBmaWVsZC50eXBlID09PSAnZHJvcGRvd24nXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8bmctc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZmllbGQub3B0aW9ucyA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0KGZpZWxkLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWVsZC5vcHRpb25zXCIgY2xhc3M9XCJjaGVja2JveC1vcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ3JhZGlvJ1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWVsZC5vcHRpb25zXCIgY2xhc3M9XCJyYWRpby1vcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ2Ryb3Bkb3duLXRleHQnXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdGV4dC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNjbC1zZWxlY3QtaW5wdXQtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpZWxkLm9wdGlvbnMgPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lID8/IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuZHJvcGRvd25Gb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiPjwvbmctc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiIG5iSW5wdXQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NsLXNlbGVjdC1pbnB1dC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8c2NsLWZvcm0tZmllbGQgZXJyb3JNZXNzYWdlPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBzY2xMYWJlbD57eyBmaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZGF0ZXRpbWUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkPy5taW5EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJmaWVsZD8ubWF4RGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NjbC1kYXRldGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnZGF0ZS10aW1lJ1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiIHNjbExhYmVsPnt7IGZpZWxkLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNjbC1kYXRldGltZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkPy5taW5EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJmaWVsZD8ubWF4RGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NjbC1kYXRldGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2NsLWNvbHVtbj5cbiAgICA8L3NjbC1yb3c+XG5cbiAgICA8c2NsLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbmJCdXR0b24gc3RhdHVzPVwicHJpbWFyeVwiPkZpbHRlcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYkJ1dHRvbiBvdXRsaW5lIChjbGljayk9XCJyZXNldCgpXCI+UmVzZXQ8L2J1dHRvbj5cbiAgICA8L3NjbC1idXR0b24tZ3JvdXA+XG48L2Zvcm0+XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2ZpbHRlci9maWx0ZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZmlsdGVyL2ZpbHRlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQWUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQW1CLFlBQVksRUFBVyxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFpQjlDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FB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TyxtQkFBbUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmJCdXR0b25Nb2R1bGUsIE5iRGF0ZXBpY2tlck1vZHVsZSwgTmJJY29uTGlicmFyaWVzLCBOYkljb25Nb2R1bGUsIE5iSWNvbnMsIE5iSW5wdXRNb2R1bGUgfSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IFNjbEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NsQnV0dG9uR3JvdXAgfSBmcm9tICcuLi9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLWRhdGVwaWNrZXIvY3VzdG9tLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNjbEZvcm1GaWVsZCB9IGZyb20gJy4uL2Zvcm0vZm9ybS1jb250cm9sL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU2NsRm9ybU1lc3NhZ2UgfSBmcm9tICcuLi9mb3JtL2Zvcm0tbWVzc2FnZS9mb3JtLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2NsU2VsZWN0SW5wdXRGaWVsZCB9IGZyb20gJy4uL2Zvcm0vc2VsZWN0LWlucHV0LWZpZWxkL3NlbGVjdC1pbnB1dC1maWVsZCc7XG5pbXBvcnQgeyBTY2xWYWxpZGF0ZUFuZFN1Ym1pdCB9IGZyb20gJy4uL2Zvcm0vdmFsaWRhdGUtYW5kLXN1Ym1pdCc7XG5pbXBvcnQgeyBTY2xMYWJlbCB9IGZyb20gJy4uL2xhYmVsL2xhYmVsJztcbmltcG9ydCB7IFNjbENvbHVtbiB9IGZyb20gJy4uL3Jvdy9jb2x1bW4vY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2xSb3cgfSBmcm9tICcuLi9yb3cvcm93LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRm9ybUdyb3VwIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG9wdGlvbnM/OiBhbnlbXTtcbiAgICBkcm9wZG93bkZvcm1Db250cm9sTmFtZT86IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgICBkcm9wZG93bkZvcm1Db250cm9sVmFsdWU/OiBhbnk7XG4gICAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgbWluRGF0ZT86IERhdGU7XG4gICAgbWF4RGF0ZT86IERhdGU7XG4gICAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFNjbEljb25zOiBOYkljb25zID0ge1xuICAgIGNhbGVuZGVyOiBgXG4gICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNy43NSAzQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjI1djExLjVBMy4yNSAzLjI1IDAgMCAxIDE3Ljc1IDIxSDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNUEzLjI1IDMuMjUgMCAwIDEgNi4yNSAzaDExLjV6bTEuNzUgNS41aC0xNXY5LjI1YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTEuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1VjguNXptLTExLjc1IDZhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXptNC4yNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6bS00LjI1LTRhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXptNC4yNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6bTQuMjUgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41em0xLjUtNkg2LjI1QTEuNzUgMS43NSAwIDAgMCA0LjUgNi4yNVY3aDE1di0uNzVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NXpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICBgLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgICAgICBTY2xCdXR0b25Hcm91cCxcbiAgICAgICAgU2NsRm9ybU1lc3NhZ2UsXG4gICAgICAgIFNjbEZvcm1GaWVsZCxcbiAgICAgICAgU2NsQ29sdW1uLFxuICAgICAgICBTY2xSb3csXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iQnV0dG9uTW9kdWxlLFxuICAgICAgICBTY2xMYWJlbCxcbiAgICAgICAgTmJEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBTY2xTZWxlY3RJbnB1dEZpZWxkLFxuICAgICAgICBOYkljb25Nb2R1bGUsXG4gICAgICAgIFNjbEZvcm1GaWVsZCxcbiAgICAgICAgU2NsVmFsaWRhdGVBbmRTdWJtaXQsXG4gICAgICAgIFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRmlsdGVyIHtcbiAgICBwcml2YXRlIF9mb3JtRmllbGRzOiBGaWx0ZXJGb3JtR3JvdXBbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpIG9uRmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBnZXQgZm9ybUZpZWxkcygpOiBGaWx0ZXJGb3JtR3JvdXBbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGRzO1xuICAgIH1cbiAgICBzZXQgZm9ybUZpZWxkcyh2YWx1ZTogRmlsdGVyRm9ybUdyb3VwW10pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtRmllbGRzID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtQ29udHJvbHMoKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5mb3JtQ29udHJvbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2V0IGVtaXRGb3JtRGF0YU9uUmVzZXQoZW1pdFZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlID0gZW1pdFZhbHVlO1xuICAgIH1cblxuICAgIGVtaXRWYWx1ZSA9IHRydWU7XG4gICAgZmlsdGVyRm9ybSE6IEZvcm1Hcm91cDtcbiAgICBmb3JtQ29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogU2NsQWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtaWNvbicsIFNjbEljb25zKTtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh0aGlzLmZvcm1Db250cm9scyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9scyA9IHt9O1xuICAgICAgICB0aGlzLl9mb3JtRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGRyb3Bkb3duLXRleHQgdHlwZVxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdkcm9wZG93bi10ZXh0JyAmJiBmaWVsZC5kcm9wZG93bkZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXSA9IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSGFuZGxlIG1haW4gZm9ybSBjb250cm9sXG4gICAgICAgICAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbHNbZmllbGQuZm9ybUNvbnRyb2xOYW1lXSA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5mb3JtQ29udHJvbE5hbWVdLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbHNbZmllbGQuZm9ybUNvbnRyb2xOYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLmZvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShmaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUudHJpbSgpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcbiAgICB9XG5cbiAgICBzZWFyY2goaXNWYWxpZDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpbHRlckZvcm0udmFsdWVba2V5XTtcbiAgICAgICAgICAgIGFjY1trZXldID0gdGhpcy50cmFuc2Zvcm1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSBhcyBhbnkpO1xuICAgICAgICAvLyBpZiAoIXRoaXMuaGFzRm9ybVZhbHVlcygpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZnJvbURhdGUsIHRvRGF0ZSB9ID0gZm9ybVZhbHVlO1xuICAgICAgICBpZiAoZnJvbURhdGUgJiYgdG9EYXRlICYmIHRvRGF0ZSA8IGZyb21EYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoe1xuICAgICAgICAgICAgICAgIGhlYWRpbmc6ICdSZWNvcmRzIGNhbm5vdCBiZSBmaWx0ZXJlZCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUbyBEYXRlIGNhbm5vdCBiZSBsZXNzIHRoYW4gRnJvbSBEYXRlJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25GaWx0ZXIuZW1pdChmb3JtVmFsdWUpO1xuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAoIXRoaXMuaGFzRm9ybVZhbHVlcygpKSByZXR1cm47XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgICAgICBpZiAodGhpcy5lbWl0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLmZpbHRlckZvcm0udmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snZm9ybUZpZWxkcyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcyhjaGFuZ2VzWydmb3JtRmllbGRzJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEZvcm1GaWVsZHMoY3VycmVudEZvcm1WYWx1ZTogRmlsdGVyRm9ybUdyb3VwW10pIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5jb250cm9scykge1xuICAgICAgICAgICAgY3VycmVudEZvcm1WYWx1ZS5mb3JFYWNoKGN1cnJlbnRGb3JtVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rm9ybVZhbHVlLnZhbHVlICYmIHRoaXMuZmlsdGVyRm9ybS5jb250YWlucyhjdXJyZW50Rm9ybVZhbHVlLmZvcm1Db250cm9sTmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmNvbnRyb2xzW2N1cnJlbnRGb3JtVmFsdWUuZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGN1cnJlbnRGb3JtVmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZvcm1WYWx1ZS5kcm9wZG93bkZvcm1Db250cm9sTmFtZSAmJiBjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lICE9PSAobnVsbCAmJiB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAmJiBjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xWYWx1ZSAhPT0gKG51bGwgJiYgdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5jb250YWlucyhjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tjdXJyZW50Rm9ybVZhbHVlLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGN1cnJlbnRGb3JtVmFsdWUuZHJvcGRvd25Gb3JtQ29udHJvbFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNGb3JtVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmZpbHRlckZvcm0udmFsdWUpLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KGZpZWxkOiBGaWx0ZXJGb3JtR3JvdXAsIGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpZWxkLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBmaWVsZC5vbkNoYW5nZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiAodmFsaWRhdGVBbmRTdWJtaXQpPVwic2VhcmNoKCRldmVudClcIj5cbiAgICA8c2NsLXJvdyBbY29sdW1uc109XCI0XCI+XG4gICAgICAgIDxzY2wtY29sdW1uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmb3JtRmllbGRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYklucHV0IC8+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnc2VsZWN0JyB8fCBmaWVsZC50eXBlID09PSAnZHJvcGRvd24nXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8bmctc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZmllbGQub3B0aW9ucyA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0KGZpZWxkLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWVsZC5vcHRpb25zXCIgY2xhc3M9XCJjaGVja2JveC1vcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ3JhZGlvJ1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWVsZC5vcHRpb25zXCIgY2xhc3M9XCJyYWRpby1vcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c2NsLWZvcm0tbWVzc2FnZT48L3NjbC1mb3JtLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9zY2wtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ2Ryb3Bkb3duLXRleHQnXCI+XG4gICAgICAgICAgICAgICAgPHNjbC1mb3JtLWZpZWxkIGVycm9yTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZm9ybUNvbnRyb2xOYW1lXCIgc2NsTGFiZWw+e3sgZmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdGV4dC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNjbC1zZWxlY3QtaW5wdXQtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpZWxkLm9wdGlvbnMgPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmRyb3Bkb3duRm9ybUNvbnRyb2xOYW1lID8/IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuZHJvcGRvd25Gb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiPjwvbmctc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiIG5iSW5wdXQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NsLXNlbGVjdC1pbnB1dC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICA8c2NsLWZvcm0tZmllbGQgZXJyb3JNZXNzYWdlPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIiBzY2xMYWJlbD57eyBmaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZGF0ZXRpbWUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkPy5taW5EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJmaWVsZD8ubWF4RGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NjbC1kYXRldGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnZGF0ZS10aW1lJ1wiPlxuICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1maWVsZCBlcnJvck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiIHNjbExhYmVsPnt7IGZpZWxkLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNjbC1kYXRldGltZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkPy5taW5EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJmaWVsZD8ubWF4RGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NjbC1kYXRldGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzY2wtZm9ybS1tZXNzYWdlPjwvc2NsLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L3NjbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2NsLWNvbHVtbj5cbiAgICA8L3NjbC1yb3c+XG5cbiAgICA8c2NsLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbmJCdXR0b24gc3RhdHVzPVwicHJpbWFyeVwiPkZpbHRlcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYkJ1dHRvbiBvdXRsaW5lIChjbGljayk9XCJyZXNldCgpXCI+UmVzZXQ8L2J1dHRvbj5cbiAgICA8L3NjbC1idXR0b24tZ3JvdXA+XG48L2Zvcm0+XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  class SclFormControlAction {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFormControlAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SclFormControlAction, isStandalone: true, selector: "[formControlAction]", host: { classAttribute: "scl-form-control-action" }, ngImport: i0 }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFormControlAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SclFormControlAction, isStandalone: true, selector: "[formControlAction]", host: { classAttribute: "scl-form-control-action" }, ngImport: i0 }); }
6
6
  }
7
7
  export { SclFormControlAction };
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFormControlAction, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFormControlAction, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[formControlAction]',
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
15
15
  }
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9mb3JtL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLE1BT2Esb0JBQW9COzhHQUFwQixvQkFBb0I7a0dBQXBCLG9CQUFvQjs7U0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSCxLQUFLLEVBQUUseUJBQXlCO3FCQUNsQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xBY3Rpb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICBjbGFzczogJ3NjbC1mb3JtLWNvbnRyb2wtYWN0aW9uJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNjbEZvcm1Db250cm9sQWN0aW9uIHtcblxufSJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9mb3JtL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLE1BT2Esb0JBQW9COytHQUFwQixvQkFBb0I7bUdBQXBCLG9CQUFvQjs7U0FBcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSCxLQUFLLEVBQUUseUJBQXlCO3FCQUNsQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xBY3Rpb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICBjbGFzczogJ3NjbC1mb3JtLWNvbnRyb2wtYWN0aW9uJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNjbEZvcm1Db250cm9sQWN0aW9uIHtcblxufSJdfQ==
@@ -1,11 +1,11 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  class SclFormControlIcon {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFormControlIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SclFormControlIcon, isStandalone: true, selector: "[formControlIcon]", host: { classAttribute: "scl-form-control-icon" }, ngImport: i0 }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFormControlIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SclFormControlIcon, isStandalone: true, selector: "[formControlIcon]", host: { classAttribute: "scl-form-control-icon" }, ngImport: i0 }); }
6
6
  }
7
7
  export { SclFormControlIcon };
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclFormControlIcon, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclFormControlIcon, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[formControlIcon]',
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
15
15
  }
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZm9ybS9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUMsTUFPYSxrQkFBa0I7OEdBQWxCLGtCQUFrQjtrR0FBbEIsa0JBQWtCOztTQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFQOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNILEtBQUssRUFBRSx1QkFBdUI7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbEljb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICBjbGFzczogJ3NjbC1mb3JtLWNvbnRyb2wtaWNvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTY2xGb3JtQ29udHJvbEljb24ge1xuXG59Il19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZm9ybS9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUMsTUFPYSxrQkFBa0I7K0dBQWxCLGtCQUFrQjttR0FBbEIsa0JBQWtCOztTQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFQOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNILEtBQUssRUFBRSx1QkFBdUI7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbEljb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICBjbGFzczogJ3NjbC1mb3JtLWNvbnRyb2wtaWNvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTY2xGb3JtQ29udHJvbEljb24ge1xuXG59Il19