@rangertechnologies/ngnxt 2.1.251 → 2.1.252

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 (84) hide show
  1. package/esm2022/environments/version.mjs +2 -2
  2. package/esm2022/lib/components/button/nxt-button.component.mjs +4 -4
  3. package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +5 -8
  4. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +7 -8
  5. package/esm2022/lib/components/custom-model/custom-model.component.mjs +3 -5
  6. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +3 -3
  7. package/esm2022/lib/components/datatable/datatable.component.mjs +8 -7
  8. package/esm2022/lib/components/file-upload/file-upload.component.mjs +9 -9
  9. package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +3 -4
  10. package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +9 -9
  11. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +12 -24
  12. package/esm2022/lib/components/pagination/pagination.component.mjs +3 -3
  13. package/esm2022/lib/components/pick-location/pick-location.component.mjs +4 -5
  14. package/esm2022/lib/components/search-box/search-box.component.mjs +8 -10
  15. package/esm2022/lib/interfaces/apimeta.mjs +2 -0
  16. package/esm2022/lib/nxt-app.module.mjs +4 -4
  17. package/esm2022/lib/pages/booklet/booklet.component.mjs +56 -28
  18. package/esm2022/lib/pages/builder/element/element.component.mjs +10 -65
  19. package/esm2022/lib/pages/builder/form/form.component.mjs +3 -6
  20. package/esm2022/lib/pages/builder/properties/properties.component.mjs +78 -182
  21. package/esm2022/lib/pages/builder/templates/templates.component.mjs +4 -5
  22. package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +4 -5
  23. package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +45 -42
  24. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +31 -12
  25. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +8 -12
  26. package/esm2022/lib/pipe/custom-translate.pipe.mjs +10 -16
  27. package/esm2022/lib/services/change.service.mjs +46 -0
  28. package/esm2022/lib/services/country.service.mjs +135 -0
  29. package/esm2022/lib/services/data.service.mjs +100 -0
  30. package/esm2022/lib/services/form-builder.service.mjs +402 -0
  31. package/esm2022/lib/services/pdf-designer.service.mjs +398 -0
  32. package/esm2022/lib/services/salesforce.service.mjs +41 -0
  33. package/esm2022/lib/services/shared.service.mjs +100 -0
  34. package/esm2022/lib/services/storage.service.mjs +59 -0
  35. package/esm2022/lib/services/template.service.mjs +351 -0
  36. package/esm2022/lib/services/translation.service.mjs +61 -0
  37. package/esm2022/public-api.mjs +2 -2
  38. package/fesm2022/rangertechnologies-ngnxt.mjs +933 -1201
  39. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  40. package/lib/components/button/nxt-button.component.d.ts +1 -1
  41. package/lib/components/custom-calendar/custom-calendar.component.d.ts +1 -1
  42. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +2 -2
  43. package/lib/components/custom-radio/custom-radio.component.d.ts +2 -2
  44. package/lib/components/datatable/datatable.component.d.ts +3 -3
  45. package/lib/components/file-upload/file-upload.component.d.ts +2 -2
  46. package/lib/components/image-cropper/component/image-cropper.component.d.ts +1 -1
  47. package/lib/components/nxt-input/nxt-input.component.d.ts +2 -2
  48. package/lib/components/search-box/search-box.component.d.ts +4 -4
  49. package/lib/interfaces/apimeta.d.ts +15 -0
  50. package/lib/nxt-app.module.d.ts +1 -1
  51. package/lib/pages/booklet/booklet.component.d.ts +9 -9
  52. package/lib/pages/builder/element/element.component.d.ts +4 -10
  53. package/lib/pages/builder/form/form.component.d.ts +1 -2
  54. package/lib/pages/builder/properties/properties.component.d.ts +6 -33
  55. package/lib/pages/builder/templates/templates.component.d.ts +1 -1
  56. package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +1 -1
  57. package/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.d.ts +2 -19
  58. package/lib/pages/questionbook/questionbook.component.d.ts +8 -6
  59. package/lib/pages/questionnaire/questionnaire.component.d.ts +5 -6
  60. package/lib/pipe/custom-translate.pipe.d.ts +3 -2
  61. package/lib/services/{form-builder/form-builder.service.d.ts → form-builder.service.d.ts} +1 -2
  62. package/lib/services/{pdf-designer/pdf-designer.service.d.ts → pdf-designer.service.d.ts} +1 -1
  63. package/lib/services/{storage/storage.service.d.ts → storage.service.d.ts} +2 -2
  64. package/lib/services/{translation/translation.service.d.ts → translation.service.d.ts} +1 -12
  65. package/package.json +1 -1
  66. package/public-api.d.ts +1 -1
  67. package/rangertechnologies-ngnxt-2.1.252.tgz +0 -0
  68. package/esm2022/lib/services/change/change.service.mjs +0 -46
  69. package/esm2022/lib/services/country/country.service.mjs +0 -135
  70. package/esm2022/lib/services/data/data.service.mjs +0 -100
  71. package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -485
  72. package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -398
  73. package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
  74. package/esm2022/lib/services/shared/shared.service.mjs +0 -100
  75. package/esm2022/lib/services/storage/storage.service.mjs +0 -59
  76. package/esm2022/lib/services/template/template.service.mjs +0 -351
  77. package/esm2022/lib/services/translation/translation.service.mjs +0 -121
  78. package/rangertechnologies-ngnxt-2.1.251.tgz +0 -0
  79. /package/lib/services/{change/change.service.d.ts → change.service.d.ts} +0 -0
  80. /package/lib/services/{country/country.service.d.ts → country.service.d.ts} +0 -0
  81. /package/lib/services/{data/data.service.d.ts → data.service.d.ts} +0 -0
  82. /package/lib/services/{salesforce/salesforce.service.d.ts → salesforce.service.d.ts} +0 -0
  83. /package/lib/services/{shared/shared.service.d.ts → shared.service.d.ts} +0 -0
  84. /package/lib/services/{template/template.service.d.ts → template.service.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  import { Component, Output, EventEmitter, Input } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { I18nPipe } from '../../i18n.pipe';
3
4
  import { catchError, of } from 'rxjs';
4
- import { NxtCustomTranslatePipe } from '../../pipe/custom-translate.pipe';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/shared/shared.service";
7
- import * as i2 from "../../services/data/data.service";
6
+ import * as i1 from "../../services/shared.service";
7
+ import * as i2 from "../../services/data.service";
8
8
  import * as i3 from "@angular/platform-browser";
9
9
  import * as i4 from "../../i18n.service";
10
10
  import * as i5 from "@angular/common";
@@ -175,8 +175,8 @@ export class NxtFileUploadComponent {
175
175
  this.currentFile = currentFile;
176
176
  // AP-25MAR25 Ensure subText is parsed into an object if it's not already
177
177
  this.question['subText'] = typeof this.question?.subText === 'object' ? this.question?.subText : JSON.parse(this.question['subText']) || {};
178
- if (this.question?.subText != undefined) {
179
- let fileMeta = this.question?.subText;
178
+ if (this.question.subText != undefined) {
179
+ let fileMeta = this.question.subText;
180
180
  let endpoint = fileMeta.endpoint;
181
181
  let queryParameter = fileMeta.queryParameter;
182
182
  let file = currentFile;
@@ -266,13 +266,13 @@ export class NxtFileUploadComponent {
266
266
  this.mode = 'view'; // SKS13JUN25 Switch back to view mode
267
267
  }
268
268
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtFileUploadComponent, deps: [{ token: i1.SharedService }, { token: i2.DataService }, { token: i3.DomSanitizer }, { token: i4.I18nService }], target: i0.ɵɵFactoryTarget.Component });
269
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtFileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", mode: "mode", isShowNoFileIcon: "isShowNoFileIcon", question: "question", error: "error", from: "from" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? ('ONE_FILE_ATTACHED' | nxtCustomTranslate : '1 File Attached') : ('MULTIPLE_FILES_ATTACHED' | nxtCustomTranslate : '+' + copyOfInputAllFiles.length + ' Files Attached') }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> {{ 'ADD_FILES' | nxtCustomTranslate : 'Add files' }} </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\">{{ 'NO_FILES_ATTACHED' | nxtCustomTranslate : 'No files attached' }}</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{ question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText): ''}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"{{ 'DELETE' | nxtCustomTranslate : 'Delete' }}\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>{{ 'NO_FILES_SELECTED' | nxtCustomTranslate : 'No files selected' }}</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"{{ 'ADD_FILE' | nxtCustomTranslate : 'Add file' }}\">\n {{ 'ADD_MORE_FILES' | nxtCustomTranslate : '+ Add More Files' }}\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>{{ 'LOADING_PREVIEW' | nxtCustomTranslate : 'Loading preview...' }}</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>{{ 'UNABLE_TO_LOAD_PREVIEW' | nxtCustomTranslate : 'Unable to load the file preview.' }}</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>{{ 'SELECT_FILE_TO_PREVIEW' | nxtCustomTranslate : 'Select a file to preview' }}</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\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: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
269
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtFileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", mode: "mode", isShowNoFileIcon: "isShowNoFileIcon", question: "question", error: "error", from: "from" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? '1 File Attached' : '+' + copyOfInputAllFiles.length + ' Files Attached' }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> Add files </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\"> No files attached</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{question.questionText}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"Delete\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>No files selected</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"Add file\">\n + Add More Files\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>Loading preview...</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>Unable to load the file preview.</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>Select a file to preview</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\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"] }] });
270
270
  }
271
271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtFileUploadComponent, decorators: [{
272
272
  type: Component,
273
273
  args: [{ selector: 'app-file-upload', standalone: true, imports: [
274
- CommonModule, NxtCustomTranslatePipe
275
- ], template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? ('ONE_FILE_ATTACHED' | nxtCustomTranslate : '1 File Attached') : ('MULTIPLE_FILES_ATTACHED' | nxtCustomTranslate : '+' + copyOfInputAllFiles.length + ' Files Attached') }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> {{ 'ADD_FILES' | nxtCustomTranslate : 'Add files' }} </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\">{{ 'NO_FILES_ATTACHED' | nxtCustomTranslate : 'No files attached' }}</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{ question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText): ''}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"{{ 'DELETE' | nxtCustomTranslate : 'Delete' }}\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>{{ 'NO_FILES_SELECTED' | nxtCustomTranslate : 'No files selected' }}</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"{{ 'ADD_FILE' | nxtCustomTranslate : 'Add file' }}\">\n {{ 'ADD_MORE_FILES' | nxtCustomTranslate : '+ Add More Files' }}\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>{{ 'LOADING_PREVIEW' | nxtCustomTranslate : 'Loading preview...' }}</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>{{ 'UNABLE_TO_LOAD_PREVIEW' | nxtCustomTranslate : 'Unable to load the file preview.' }}</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>{{ 'SELECT_FILE_TO_PREVIEW' | nxtCustomTranslate : 'Select a file to preview' }}</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\n"] }]
274
+ CommonModule, I18nPipe
275
+ ], template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? '1 File Attached' : '+' + copyOfInputAllFiles.length + ' Files Attached' }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> Add files </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\"> No files attached</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{question.questionText}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"Delete\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>No files selected</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"Add file\">\n + Add More Files\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>Loading preview...</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>Unable to load the file preview.</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>Select a file to preview</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\n"] }]
276
276
  }], ctorParameters: () => [{ type: i1.SharedService }, { type: i2.DataService }, { type: i3.DomSanitizer }, { type: i4.I18nService }], propDecorators: { selectedFileData: [{
277
277
  type: Output
278
278
  }], deletedFileData: [{
@@ -292,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
292
292
  }], from: [{
293
293
  type: Input
294
294
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFLckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBVTFFLE1BQU0sT0FBTyxzQkFBc0I7SUErQmI7SUFBc0M7SUFBa0M7SUFDbkY7SUEvQkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQixJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLDRCQUE0QjtJQUN0RSxnQkFBZ0IsQ0FBQztJQUNqQixRQUFRLENBQUM7SUFDVCxLQUFLLENBQU07SUFDWCxJQUFJLENBQU07SUFDbkIsY0FBYztJQUNQLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxXQUFXLEdBQVcsQ0FBQyxDQUFDLENBQUUsbUJBQW1CO0lBQzdDLFFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBSyxnQkFBZ0I7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFD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QUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsc0JBQXNCO3FCQUNyQztpS0FLUyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkL3NoYXJlZC5zZXJ2aWNlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE54dEN1c3RvbVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2N1c3RvbS10cmFuc2xhdGUucGlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBOeHRDdXN0b21UcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOeHRGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRGaWxlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbEZpbGVzO1xuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7IC8vIFNLUzExSlVOMjUgTmV3IG1vZGUgaW5wdXRcbiAgQElucHV0KCkgaXNTaG93Tm9GaWxlSWNvbjtcbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGVycm9yOiBhbnk7XG4gIEBJbnB1dCgpIGZyb206IGFueTtcbiAgLy9SUyAwOUpBTjIwMjVcbiAgcHVibGljIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMDsgIC8vIGluIGJ5dGVzKEJpbmFyeSlcbiAgcHVibGljIG1heEZpbGVzOiBudW1iZXIgPSA0OyAgICAgLy8gZGVmYXVsdCBsaW1pdFxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcblxuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGVOYW1lQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBjb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICBwdWJsaWMgY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0O1xuICBwdWJsaWMgZmlsZVVybDtcbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG4gIGN1cnJlbnRGaWxlOiBhbnk7XG4gIHB1YmxpYyBzaG93UG9wdXAgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBBZGQgcG9wdXAgdmlzaWJpbGl0eSBjb250cm9sXG4gIHZpZXdFZGl0OiBib29sZWFuID0gZmFsc2UgXG4gIG9yaWdpbmFsVmFsdWU6IGFueTsgLy8gU0tTMTNKVU4yNSBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkgeyB9XG4gIC8vUlMgMDlKQU4yMDI1XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZpbGVDb25maWdzKCk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChzaW1wbGVDaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IHNpbXBsZUNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzKSB7ICAvL1NLUzVOT1YyNVxuICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gc2ltcGxlQ2hhbmdlcy5hbGxGaWxlcy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgfVxuXG4gICAgaWYgKHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nKSB7XG4gICAgICB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCA9IHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nPy5jdXJyZW50VmFsdWU7XG4gICAgfVxuXG4gIH1cblxuICAvL1JTIDA5SkFOMjAyNSBJbml0aWFsaXplcyBmaWxlIHVwbG9hZCBzZXR0aW5ncyAoYWxsb3dlZCB0eXBlcywgbWF4IHNpemUsIGFuZCBtYXggZmlsZXMpIGJ5IHBhcnNpbmcgbWV0YWRhdGEgZnJvbSBmaWVsZHNNZXRhXG4gIGluaXRpYWxpemVGaWxlQ29uZmlncygpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uZmllbGRzTWV0YSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gU0tTMjBNQVIyNSBjaGVjayBpZiBxdWVzdGlvbiBmaWVsZHNtZXRhIGlzIHN0cmluZ1xuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IHR5cGVvZiB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvblsnZmllbGRzTWV0YSddIHx8IFtdIDogSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10pO1xuICAgICAgICBjb25zdCBmaWxlQ29uZmlnID0gbWV0YURhdGFbMF07ICAvLyBHZXQgZmlyc3QgY29uZmlnIG9iamVjdFxuICAgICAgICBpZiAoZmlsZUNvbmZpZykge1xuICAgICAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGVDb25maWcuYWxsb3dlZFR5cGVzIHx8IFtdO1xuICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUgPSBmaWxlQ29uZmlnLm1heEZpbGVTaXplIHx8IDA7XG4gICAgICAgICAgdGhpcy5tYXhGaWxlcyA9IGZpbGVDb25maWcubWF4RmlsZXMgfHwgNTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBmaWVsZHNNZXRhOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gU0tTMTFKVU4yNSBPcGVuIHRoZSBwb3B1cFxuICBvcGVuUG9wdXAoKSB7XG4gICAgdGhpcy5zaG93UG9wdXAgPSB0cnVlO1xuICAgIHRoaXMudmlld0ZpbGUodGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzWzBdKVxuICB9XG5cbiAgLy8gU0tTMTFKVU4yNSBDbG9zZSB0aGUgcG9wdXBcbiAgY2xvc2VQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dQb3B1cCA9IGZhbHNlO1xuICB9XG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdOyAvLyBSUyAxN0pBTjIwMjUgQ2xlYXIgcHJldmlvdXMgZXJyb3JzXG4gICAgbGV0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWxlRGF0YSA9IFtdO1xuICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAvLyBSUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBjb3VudCBsaW1pdFxuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoID4gdGhpcy5tYXhGaWxlcykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuXG4gICAgICAvL1JTIDA5SkFOMjAyNSBDaGVjayBmaWxlIHR5cGVcbiAgICAgIGNvbnN0IGZpbGVFeHQgPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dCkpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEZpbGUgdHlwZSAke2ZpbGVFeHR9IG5vdCBhbGxvd2VkLiBBbGxvd2VkIHR5cGVzOiAke3RoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy9SUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBzaXplXG4gICAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSA+IDAgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIGV4Y2VlZHMgc2l6ZSBsaW1pdCBvZiAke3RoaXMubWF4RmlsZVNpemUgLyAxMDQ4NTc2fU1CYCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gZmlsZUV4dC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGNvbnN0IGZpbGVSZWFkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0ge1xuICAgICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSwgLy8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEVycm9yIHJlYWRpbmcgZmlsZSBcIiR7ZmlsZS5uYW1lfVwiYCk7Ly8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkRmlsZXNQcm9taXNlcy5wdXNoKGZpbGVSZWFkUHJvbWlzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZWFkRmlsZXNQcm9taXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBXYWl0IGZvciBhbGwgcHJvbWlzZXMgdG8gcmVzb2x2ZVxuICAgICAgUHJvbWlzZS5hbGwocmVhZEZpbGVzUHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBpbnB1dEZpbGVzO1xuICAgICAgICBsZXQgY2hhbmdlOiBhbnk7XG4gICAgICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGlucHV0RmlsZXM7XG4gICAgICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcmVhZGluZyBmaWxlcycpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignWW91IGNhbiB1cGxvYWQgbWF4IDUgZmlsZXMnKTtcbiAgICAgIC8vIHRoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcbiAgICB9XG5cbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xuICAgIGNvbnN0IGRlbGV0ZWRGaWxlTmFtZSA9IHRoaXMuc2VsZWN0ZWRGaWxlTmFtZUFycmF5LnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcy5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLnZpZXdGaWxlKHRoaXMuY29weU9mSW5wdXRBbGxGaWxlc1swXSkgOiB0aGlzLnZpZXdGaWxlKG51bGwpO1xuICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgfVxuXG5cbiAgLy8gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlc1xuICAvLyBSUyAwOURFQzI0IENoYW5nZWQga2V5c1xuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICAvLyBBUC0yNU1BUjI1IEVuc3VyZSBzdWJUZXh0IGlzIHBhcnNlZCBpbnRvIGFuIG9iamVjdCBpZiBpdCdzIG5vdCBhbHJlYWR5XG4gICAgdGhpcy5xdWVzdGlvblsnc3ViVGV4dCddID0gdHlwZW9mIHRoaXMucXVlc3Rpb24/LnN1YlRleHQgPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA6IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvblsnc3ViVGV4dCddKSB8fCB7fTtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uc3ViVGV4dCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBmaWxlTWV0YSA9IHRoaXMucXVlc3Rpb24/LnN1YlRleHQ7XG4gICAgICBsZXQgZW5kcG9pbnQgPSBmaWxlTWV0YS5lbmRwb2ludDtcbiAgICAgIGxldCBxdWVyeVBhcmFtZXRlciA9IGZpbGVNZXRhLnF1ZXJ5UGFyYW1ldGVyO1xuICAgICAgbGV0IGZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICAgIGlmIChlbmRwb2ludCAmJiBmaWxlW3F1ZXJ5UGFyYW1ldGVyXSkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWVcbiAgICAgICAgY29uc3QgZnVsbEVuZFBvaW50ID0gZW5kcG9pbnQgKyAnPycgKyBxdWVyeVBhcmFtZXRlciArICc9JyArIGZpbGVbcXVlcnlQYXJhbWV0ZXJdO1xuICAgICAgICBpZiAoZnVsbEVuZFBvaW50KSB7XG4gICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmdWxsRW5kUG9pbnQpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnZpZXdMb2NhbEZpbGUoKTsgLy8gQ2FsbCBmYWxsYmFjayBtZXRob2RcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpOyAvLyBSZXR1cm4gYSBmYWxsYmFjayB2YWx1ZSB0byBrZWVwIG9ic2VydmFibGUgY2hhaW4gYWxpdmVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBpUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVDb250ZW50KGFwaVJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld0xvY2FsRmlsZSgpXG4gICAgfVxuICB9XG5cbiAgLy8gLy8gVkQgMDNBdWcyNCBwcm9jZXNzIGxvY2FsIHByZXZpZXcgXG4gIHZpZXdMb2NhbEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbGUpIHtcbiAgICAgIHRoaXMuc2V0RmlsZVVybCh0aGlzLmN1cnJlbnRGaWxlPy5kb2MpO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY3VycmVudEZpbGUubmFtZTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuY3VycmVudEZpbGUudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG4gICAgfVxuXG4gIH1cblxuXG4gIGhhbmRsZUZpbGVDb250ZW50KGZpbGVSZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZmlsZVJlc3BvbnNlLmNvbnRlbnQuZGF0YSk7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGZpbGVSZXNwb25zZS50eXBlIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIHRoaXMuc2V0RmlsZVVybCh1cmwpO1xuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgIGlmIChmaWxlUmVzcG9uc2UubmFtZSkge1xuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGVSZXNwb25zZS5uYW1lO1xuICAgICAgY29uc3QgaW1hZ2VFeHRlbnNpb25zID0gWydqcGcnLCAnanBlZycsICdwbmcnLCAnZ2lmJywgJ2JtcCcsICd3ZWJwJ107XG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZVJlc3BvbnNlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IGltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uIHx8ICcnKTtcbiAgICB9XG4gIH1cblxuICBzZXRGaWxlVXJsKHVybDogYW55KSB7XG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZVVybCA9IG51bGw7IC8vIG9yIGhhbmRsZSBncmFjZWZ1bGx5XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9jSWNvbihkb2NOYW1lKSB7XG4gICAgY29uc3QgZXh0ID0gZG9jTmFtZS5zcGxpdCgnLicpLnBvcCgtMSk7XG4gICAgcmV0dXJuIHRoaXMuU2hhcmVkU2VydmljZS5kb2NJY29uKGV4dCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmZpbGVOYW1lID0gJyc7XG4gICAgdGhpcy5maWxlVXJsID0gJyc7XG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmlsZVVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVVcmwpO1xuICAgIH1cbiAgfVxuICB2aWV3RWRpdENsaWNrKHF1ZXM6IGFueSkge1xuICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9ICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXM7IC8vU0tTMTNKVU4yNSBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gIH1cbiAgc2F2ZUNoYW5nZXMoKSB7XG4gICAgbGV0IHF1ZXMgPSB0aGlzLnF1ZXN0aW9uXG4gICAgcXVlc1snc2luZ2xlRmllbGRDaGFuZ2UnXSA9IHRydWVcbiAgICBsZXQgY2hhbmdlOiBhbnk7XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXM7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdCh7cXVlc3Rpb24gOiBxdWVzLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxuICBkaXNjYXJkQ2hhbmdlcygpIHtcbiAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSB0aGlzLm9yaWdpbmFsVmFsdWU7IC8vIFJldmVydCB0byBvcmlnaW5hbCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gU0tTMTNKVU4yNSBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTS1MxM0pVTjI1IFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICB9XG59XG4iLCI8IS0tIFNLUzExSlVOMjUgZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwgLS0+XG48ZGl2IGNsYXNzPVwiZmxleCBob3Zlci13cmFwcGVyXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZpbGUtaW5uZXItZGl2XCI+XG4gICAgPHN2ZyAqbmdJZj1cImZyb20gIT09ICdueHRUYWJsZSdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cInVybCgjcGF0dGVybjBfNjE2XzM1MTI1KVwiIC8+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPHBhdHRlcm4gaWQ9XCJwYXR0ZXJuMF82MTZfMzUxMjVcIiBwYXR0ZXJuQ29udGVudFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIiB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCI+XG4gICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ltYWdlMF82MTZfMzUxMjVcIiB0cmFuc2Zvcm09XCJzY2FsZSgwLjAwMTk1MzEyKVwiIC8+XG4gICAgICAgIDwvcGF0dGVybj5cbiAgICAgICAgPGltYWdlIGlkPVwiaW1hZ2UwXzYxNl8zNTEyNVwiIHdpZHRoPVwiNTEyXCIgaGVpZ2h0PVwiNTEyXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIlxuICAgICAgICAgIHhsaW5rOmhyZWY9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBSUFDQVlBQUFEMGVOVDZBQUFBQ1hCSVdYTUFBQTdEQUFBT3d3SEhiNmhrQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUIzZDNjdWFXNXJjMk5oY0dVdWIzSm5tKzQ4R2dBQUlBQkpSRUZVZUp6dDNYZllIMVdaLy9GM1NFL29DYUVUQWdvaUpYVHBnZ2lLZ2l0UjFKVVZYY3U2K0xPZy9penNXcUtyYThlNjZxTGlnb29JQWlwV3lrYVVKaUFnUlVWcUlMU0VoQ1NVOUdUL09OOUhIcEtuZk92Y1oyYmVyK3U2cjRBWFYrYVRtY2VjZTg2Y09UTUNWY1U0WUJxd2ZhTzJBVFlESmdPVEdyK09Celp1L1BkamdJbEZoNVI2WkJXd3VQSFBUd0xMZ2NlQlI0QjV3S09OWHg4RTdnSHVBdVlBYXdwUEttVmlSSFFBdFd3TXNDdXdlNk9tTi81OXE4aFFVZ2t0SlRVRGR3QTNBemMwYW5aa0tLa29OZ0Q1bXd3Y0JCemNxSDJCc2FHSnBHcGJRR29FcmdKK0Mxd0RMSWtNSlBXQ0RVQitScEVHL0dPQUY1UHU4TDFPVXB5bHdCK0FXY0FscElaZ2RXZ2lxUXNjV1BJd0huZ0o4Q3JnYUo1K1RpOHBQNDhBUHdOK0Fsd0dMSXVOSTdYSEJpRE9HTklkL3F1Qmx3SHJ4OGFSMUliSGdaOERaNUZtQjFiRnhwR2Fad05RdkdjQmJ3YmVBR3dlRzBWU0Z6MEkvQmo0RG1sUm9aUTFHNEJpakFTT0IwNEdqc0R6TGxYZEZjQ1hnUXR4VmtDWmNpRHFyWEdrNS9yL0J1d2NuRVZTOGU0RnZnbWNEandXRzBWNkpodUEzdGdFZUEvd05tRFQ0Q3lTNGkwbU5RR2ZKVzFJSklXekFlaXU5WUgvQjN3UVYvSkxXdGVUcERVQ253VG1CbWRSemRrQWRNYzQ0SjNBKzBuYjdrclNVQllCWDJ6VTRtSCtXNmtuYkFBNmR4endKV0NINkNDU1NtYys4Qi9BVjNGeklSWE1CcUI5MDBrRC8rSEJPU1NWM3pYQU80RHJvNE9vUHRhTERsQkM0MGtMZWE3SHdWOVNkeHhBMm03NGROSWlZcW5ubkFGb3phSEF0L0NWUGttOTh3andyNlN0aHFXZWNRYWdPZXVUT3ZQTGNmQ1gxRnVia3pZUStpNitUYVFlY2daZ2VQc0RQeUJ0NFN0SlJab0R2SkgwblFHcHEwWkdCOGpZZXFSWCszNEliQmFjUlZJOWJRajhFMm50MFN4Z1RXd2NWWWt6QUFPYkFweEQycmRma25Kd0NYQWk3aVNvTHJFQldOZitwQzk2YlJzZFJKTFdNb2YwQ2ZHcm9vT28vRndFK0V3bkFiL0Z3VjlTbnJZaFBRcDRYWFFRbFo5ckFKS1JwRTE5UGcyTURzNGlTVU1aQ2J5Y05JTjdlWEFXbFpnTkFFd0VmZ1M4UGpxSUpEVnBCR2tqc3UyQlh3S3JJc09vbk9xK0JtQUw0R2ZBZnRGQkpLbE5sNUZtQko2SURxSnlxWE1ETUJXNEZOL3ZsMVIrVndJdndTOExxZ1YxYlFDbWticm1hZEZCSktsTHJnZGVCQ3lJRHFKeXFHTURzQXZwem4rcjZDQ1MxR1UzQUVkaEU2QW0xSzBCMkkzMENzM2s2Q0NTMUNQWEFTL0FOUUVhUnAzMkFYZ1djREVPL3BLcWJUL2dwOERZNkNES1cxMWVBOXlXZE9mdkJqK1M2bUFhc0NOd1FYUVE1YXNPRGNBV3dPK0FIYUtEU0ZLQmRnZkdrZFk4U2V1b2VnTXdFZmdONmRtL0pOWE5JY0JjMGhzQzBqTlVlUkhnZXFTUCtod2ZIVVNTQXEwQWpnUitIeDFFZWFueUlzQXY0dUF2U2FPQmMvSFZaNjJscWczQVc0RjNSb2VRcEV4c1Fab1JIUk1kUlBtbzRocUEvVW5kN3Fqb0lKS1VrVzJCRFlGZlJ3ZFJIcXJXQUV3aGJmRzdhWFFRU2NyUUFjRDl3STNSUVJTdlNvc0FSd0tYQUVkRUI1R2tqQzBCRGdYK0dCMUVzYXEwQnVCVUhQd2xhVGpqZ1F0Sk02YXFzYXJNQU93RFhFMWE3U3BKR3Q2VnBHOEdMSThPb2hoVldBTXdrYlRIdjkyc0pEVnZPMkFUNEZmUlFSU2pDZzNBZndGSFI0ZVFwQkxhSDdnUHVDazZpSXBYOWtjQWh3UC9TL24vSEpJVVpSbHdHSEJ0ZEJBVnE4d0Q1M2pnWnRKbmZpVko3WHNJMkJkNE1EcUlpbFBtdHdBK2pvTy9KSFhEbHFTZEFzZEdCMUZ4eXJvR1lEcHdCdVZ1WUNRcEo5c0NrNEZmUkFkUk1jcmFBSndEN0JBZFFwSXFabC9TNHdBM0NhcUJNcTRCZUNWd1huUUlTYW9vUHg5Y0UyVnJBTVlDdCtLemYwbnFwWWRKc3dFUFJBZFI3NVR0R2ZxN2NQQ1hwRjdyKzN5d2l3SXJyRXhyQU5ZSGZrVGErVStTMUZ2YmtIWUwvRWwwRVBWR21ScUFVNEdYUm9lUXBCcVpEc3dGcm84T291NHJ5eHFBallHN1NmdFdTNUtLc3dJNENyZzhPb2k2cXl4ckFONkxnNzhrUlJoTmV2eTZUWFFRZFZjWlpnQW1rRDVXTVNrNmlDVFYySTNBd2NDUzZDRHFqakxNQUx3WkIzOUppcllYOE4vUklkUTl1UzhDSEFsOEg5ZzBPb2draWVuQUF2eHlZQ1hrUGdOd1BMQmpkQWhKMHQ5OWdmUXBkcFZjN2czQXlkRUJKRW5QTUpxMFNkQzA2Q0RxVE02TEFIY0U3aUR2akpKVVZ6ZVJGZ1UrRlIxRTdjbDVCdUJmY1BDWHBGenRDWndlSFVMdHkzVVI0R2pnZjBqYi8wcVM4clFIOERod2RYUVF0UzdYR1lCalNCK2prQ1RsN1RPa3p3ZXJaSEp0QUY0VEhVQ1MxSlJSd0xuNHhsYnA1UGlNZlFMd0NFNy9TMUtaM0F3Y0JEd1pIVVROeVhFRzRDVTQrRXRTMmV3Qm5FV2VONVlhUUk2TEFEOEs3Qm9kUXBMVXNsMUlyd1ZlR1IxRXc4dXRVeHNGekNOOS9sZVNWRDZyZ1dPQlgwVUgwZEJ5ZXdSd0VBNytrbFJtNndFL0FKNFZIVVJEeTYwQk9DWTZnQ1NwWTVzQVB3TTJqQTZpd2RrQVNKSjZZUmZnVFBKNzFLeUduQllCVGdZK2p6OHNrbFFWendHV0E3K1BEcUoxNVRRRGNEQU8vcEpVTmY5QldoU296T1RXQUVpU3FtVTk0R3pTSXdGbHhBWkFrdFJyR3dBWEFodEZCOUhUY3BseUh3c3NhdndxU2FxbW53QXpnRFhSUVpUUERNQnpjZkNYcEtwN09mRGg2QkJLY21rQTlvZ09JRWtxeEV6Z0ZkRWhaQU1nU1NyV0NPQzcrTTJYY0RZQWtxU2liUUJjZ0Z1L2g4cWxBWGh1ZEFCSlVxRjJJbjArT0pkeHFIWnkyQWx3UFBBcDhua2pRWkpVakoxSkRjQ3M2Q0IxbEVQbnRUME8vcEpVVng4Q1RvZ09VVWU1TkFDU3BIb2FBWndCN0JZZHBHNXlhQUNtUlFlUUpJVmFuL1Q1NEVuUlFlb2tod1pnbStnQWtxUncwNER2a2NlNFZBczVuT2pOb2dOSWtySndEUENKNkJCMWtVTUQ0SlNQSktuUEI0RlhSNGVvZ3h3YWdNblJBU1JKMmVqYktYRHY2Q0JWWndNZ1Njck5lT0I4SEI5NktvY0dZSVBvQUpLazdHd1AvSUE4TnF5cnBCd2FBRDhETEVrYXlOR2tuV0xWQXprMEFHT2lBMGlTc3ZVKzRQWFJJYW9vaHkxNG55STk3NUVrYVNCTGdFT0JQMFlIcVpJY0dvQ1YrSXhIa2pTMDJjQit3THpvSUZXUnd5TUFCMzlKMG5DbUF1Y0FvNktEVkVVT0RZQWtTYzE0QWZEWjZCQlZrY01qZ0RYUkFTUkpwZkltMGhjRTFRRWJBRWxTMlN3RkRnT3VpdzVTWmpZQWtxUXl1aC9ZRjVnYkhhU3NYQU1nU1NxamJZRUxjQytadHRrQVNKTEs2bURnQzlFaHlzcEhBSktrc25zTDhPM29FR1ZqQXlCSktydGxwRVdCMTBZSEtSTWJBRWxTRlR4RVdoVDRZSFNRc25BTmdDU3BDcllFZm94Zm1HMmFEWUFrcVNvT0JMNFVIYUlzZkFRZ1NhcWF0d0tuUjRmSW5RMkFKS2xxVmdCSEFyK1BEcEl6R3dCSlVoVTlURm9VK0VCMGtGeTVCa0NTVkVWYjRLTEFJZGtBU0pLcTZnQmNDekFvR3dCSlVwV2RCSndjSFNKSHJnR1FKRlhkQ3VBbzRQTG9JRG14QVpBazFjRWp3SDZrendnTEh3RklrdXBoYytDbndQam9JTG13QVpBazFjVmV3SDlIaDhpRkRZQWtxVTVlQjd3ak9rUU9YQU1nU2FxYmxjRFJ3S3pvSUpGc0FDUkpkVFNmdENqd251Z2dVWHdFSUVtcW8wbkFCY0NFNkNCUmJBQWtTWFcxSnpYZUtkQUdRSkpVWnljQzc0a09FY0UxQUpLa3Vsc0ZIQXY4T2pwSWtXd0FKRW1DQmNEK3dGM1JRWXJpSXdCSmttQlQwcUxBaWRGQmltSURJRWxTc2dkd0Zubk1qdmVjRFlBa1NVK2JBYnd2T2tRUmN1aHlYQU1nU2NySmF1QTQ0SmZSUVhySkJrQ1NwSFU5UmxvVWVHZDBrRjd4RVlBa1NldmFCUGdac0dGMGtGNnhBWkFrYVdDN0FHZVN4Mng1MTlrQVNKSTB1SmNEcDBhSDZJVWN1aHJYQUVpU2NyWWFlQkZ3YVhTUWJySUJrQ1JwZUE4QXU1TVdCMWFDandBa1NScmUxc0JwMFNHNnlSa0FTWkthTndPNE1EcEVOOWdBU0pMVXZMbWtSd0Z6bzROMHlrY0FraVExYndydzVlZ1EzZUFNZ0NSSnJYc1ZjRjUwaUU3WUFFaVMxTHE1d0U3QW91Z2c3ZklSZ0NSSnJac0NmRFE2UkNlY0FaQWtxVDByZ2IyQVc2T0R0TU1aQUVtUzJqTUsrR0owaUhiWkFFaVMxTDRYQXNkRmgyaUhqd0FrU2VyTVhjQ3V3TExvSUsxd0JrQ1NwTTdzQ0p3U0hhSlZ6Z0JJa3RTNXhjQTBZRUYwa0dZNUF5QkpVdWMyQk40VkhhSVZ6Z0JJa3RRZGkwaXpBS1g0WkxBekFKSWtkY2RHd0R1aVF6VExHUUJKa3JwbklXa1dZR0Ywa09FNEF5QkpVdmRzREp3Y0hhSVp6Z0JJa3RSZDgwbXpBSTlIQnhtS013Q1NKSFhYSk9BdDBTR0c0d3lBSkVuZE41dTBRZENxNkNDRHNRR1FGR0U1Y0M5cEM5VTdnWWVCQjRGSFNOOVpmd3A0a29HblVDY0E0MGpQV2ljQm16VnFhOUswNnc2TjJxaVhmd0NwQ1M4RExvb09NUmdiQUVtOXRoaTRCcml4VVRlUkJ2MWUzeGx0Qit6ZXFIMkFnNEN0ZW54TXFiOUxnS09qUXd6R0JrQlN0ejBCWEFyOEwvQjc0QmJ5bVFhZENod01IRW42aTNtYjJEaXF1RFhBVHFTR056czJBSks2WVE1d1B2QnowcUJmbHEraTdRSWNDOHdBbmtjZWZ5ZXFXajRKZkNnNnhFQnkrR0czQVpES2FTNXdEbkF1Y0JYbC8vL3lOc0FyZ0pPQXZZT3pxRHJtQU51VHp5elkzOWtBU0dyRmF1Qmk0TnVreFUzTFkrUDB6TzdBNjRFM2tCWWFTcDA0QnZoMWRJaTEyUUJJYXNZVHdObkFhY0R0d1ZtS05CWjROZkJ1WU0vZ0xDcXY3NUZtbHJKaUF5QnBLSThBbndlK1JmclNXWjBkQ2Z3YjhJTG9JQ3FkUmNBV3dOTG9JUDI1RTZDa2djd0Yvai9wZmZyUDQrQVBjQm1wQ1RnUStHVndGcFhMUnNDTG9rT3N6UVpBVW45UEFoOGxEZnhmSUczSW8yZTZCbmdwOEh6ZzZ1QXNLbzhUb2dPc3pVY0FraUF0N3ZzZjRNT2tIZm5VdkJta1ptbjc0QnpLMndKZ2MyQmxkSkEremdCSXVwbTBPYzZiY1BCdnh3WEFjNEdQa2RrelhtVmxVOUxqbzJ6WUFFajE5U1RwT2Y4K3BHbHR0VzhKTUJQWURaZ1ZHMFVaZTJsMGdQNThCQ0RWMDFXazk5eXozS0swNUVZQWJ3VStDMndRbkVWNXVSbVlIaDJpancyQVZDL0xTVlBWbnlIRG5ja3FaaXJ3ZmVDUTZDREt4aHBnQ3ZCb2RCRHdFWUJVSi9lU0JxUC94TUcvQ0xPQkk0Q1A0L2xXTW9MMDlrZ1diQUNrZXZnRjZWbi9kZEZCYW1ZbDZiWEtJNEdIZzdNb0Q0ZEhCK2hqQXlCVjJ4cmdJOEJ4cE5lUUZPTnlZRi9nRDlGQkZPN1E2QUI5WEFNZ1ZkY3EwdjdqWjBjSDBkK05CZjZMOU1xbDZta2xhV2ZBOEUyMm5BR1FxdXNVSFB4enN3eDRNM0FxM3Z6VTFTZ3krYkNVRFlCVVRlY0NYNHNPb1VGOUdqaVIxQkNvZnZhTERnQTJBRklWTFFMZUdSMUN3L29oNlR2eFQwUUhVZUd5MkF2QUJrQ3FucStTUHVPci9NMGl2U280UHpxSUNyVkxkQUJ3RWFCVU5TdEpYL0s3UHpxSVdySTM4QnRnY25RUUZXSVJzSEYwQ0djQXBHcjVLUTcrWlhRRDZYdnhpNktEcUJBYkFWdEhoN0FCa0tybHA5RUIxTFliZ0Jmam1vQzYyQ0U2Z0EyQVZDMVhSUWRRUjY0QmpzZTNBK3BnYW5RQUd3Q3BPaDRCN29vT29ZNWRTdnBTbyt1anFtM2I2QUEyQUZKMTNCRWRRRjN6STlKSGhGUmQyMFVIc0FHUXFzTUZaTlh5TWVBSDBTSFVNMU9pQTlnQVNOV3hNRHFBdW1vTmFkdmdHNktEcUNjMmpRNWdBeUJWaC85L3JwNmx3S3V3dWFzaUd3QkpYUk8rcUVnOWNSY3VDcXlpOEFiQW5RQ2w2cmlQREY0dGFzTUlVdk95VTZPbWtIWko2NnZSd0pPTi8zWWhzQVNZRGN3aGJYcDBKekN2Mk1naHZncThQVHFFdW1ZK3dUcy8yZ0JJMWJFSzJBUjRQRHJJTUNZRGh6WHFVTksrNk9NNy9EM3ZBNjREL2dCYzNhaFZIZjZldVprQS9CRjRUblFRZGNYandJYVJBV3dBcEdvNUZ2aEZkSWdCUEpmMExIc0dzQnU5Lzd0blB2Qkw0R2VrUGZaemI0cWF0UzlwczZmUjBVSFVzV1hBdU9nUTBkWllsdFcxT290OGJBNzhPM0F6c2Vma0NlQmJ3RjY5L2VNVzVoUEUvNXhabmRmcXRTOXMwWndCa0tybEtXQWFNRGN3dys3QUtjQ0p3TmpBSEFPNUd2Z3ljQjRaL0FYY3B2R2twdXBaMFVIVXNkQXgyTGNBcEdxWlFMcnJqckEzOEd2Z1Q4QWJ5Vy93QnpnUU9JZjBidjFMZzdPMGF3bnd0dWdRVWpkRVQ4TllWdFZxSmZBOGlyTWQ2ZEhEcWk3L09ZcW8zd1A3ZFArVUZPSWM0cytmMVZtRjhoR0FWRTF6U0UzQWd6MDh4bGpnUThCNzZYd1ZmNlNWd0dkSmUrK1g2U3Q4MndOL3dZVmtaZVlqQUVsZHR3MHdpOTd0Q3pBZHVKYlVBSlI1OEFjWUJmd2I2Ulc3L1lLenRPSmU0Q3ZSSVZSZXpnQkkxVFlYT0luMEtsdzNqQUxlRDN3VUdOT2wzek1uSzRCM0FkK0lEdEtralVnYklZVnVLS08yT1FNZ3FXZW1BTDhDdmdmczBPSHZOWjMwRHZvbnFlYmdEK245K3E4RDM2UWM3OW92QWo0ZkhVTGw1QXlBVkIrclNjM0ExNEJMU2MrK2h6T0N0RnZmMjRBVHFOZE53KzlJR3hmTmp3NHlqUFdCZTNBV29JeEN4MkFiQUttZW5pUnRuWHNGNldNemkwbDNrNURXRDB3bDdjdi9BbURMaUlDWnVBbDRJZmszQVI4RVBoVWRRaTJ6QVlnT0lFbEQrQk9wQ1hnME9zZ1FOaUI5R0dtajZDQnFpV3NBSkNsajA0SEx5SHVLL1hIZ085RWhWQzdPQUVoU2M2NGpQUko1SWpySUlLYVMzZ2dZRlIxRVRYTUdRSkpLWUQvU053UnlmVHRnTnVucmgxSlRiQUFrcVhrdkJzNGszNzg3dngwZFFPWGhJd0JKYXQybmdWT2pRd3hnSk9tVndHMmpnNmdwUGdLUXBKTDVBUEFQMFNFR3NJbzBReUVOeXhrQVNXclBvOEJlcEE4djVXUW40UGJvRUdxS013Q1NWRUtUZ2JQSmI5WDkzMGg3RjBoRHNnR1FwUFlkU3ZxU1lHN09pdzZnL1BrSVFKSTZzeFRZamJTbGNpNThERkFPYmdVY0hVQXEyRUxnRHRKVTdTTFNMbTZMU1B2ekx3TTJKbjNnWlNKcGk5ZXB3TE9CN1hEV0xsYy9CNDZMRHJHV3Y1RiticFN2MERFNHQyZFhVdFU4VHZxcTNDemdXdEpkMmR3MmY2K3hwTC9RZHlWTlBSOE9QSmM4R3ZtNk83WlJQNDhPMHMrdnNRSFFFSEw0aThNWkFGWE5uY0FQU0g4QlgwOXpuOTF0MXhUZytjRHhwTmZTSnZUd1dCcmFYYVNHYkhsMGtJYVhrbGREb25YNUNDQTZnTlFGQzRGemdiT0FxNGo1dVY2ZjFBaWNTUHA2M2NpQURIWDNSdUM3MFNFYUpnSUxnREhSUVRRb0c0RG9BRklINWdMZkFFNERGZ2RuNlc4cThCN2d6VGdyVUtUYlNiTUFxNk9ETkZ3TkhCQWRRb055SHdDcGhCNEJQZ2hzRDh3a3I4RWYwb2RoM2tWcUJENUd1aE5VNyswTXZEdzZSRDlYUkFkUXZtd0FwTllzQno1Qkd2Zy9BeXdKVFRPOFIwa055bzdBMTBoYnhhcTNQaGdkb0o4cm93TW9YejRDa0pwM0JmQlc0TS9SUVRvd25kUUlIQklkcE9MMkFXNklEZ0ZzQlR3UUhVS0Q4aEdBbExtbHdNbkFZWlI3OEllMFJleGh3QnRJZXcrb04wNk1EdER3SU8yL2RxcUtzd0dRaG5ZLzZUVzdiMUtkMmFvMXBDL0dUU2N0RWxQMy9TUDV2SVhoZHdFMElCc0FhWENYa0w3MmRtMTBrQjZaVGRwTTZJdFVwN25KeFpha2M1c0RHd0FOeUFaQUd0aFhnR09BK2RGQmVtdzU2WFhCNDBsYkVhdDdUb2dPMFBEWDZBREtrdzJBdEs3UGsxNmhxOU9LK1o4Q1J3RHpvb05VeUJIUkFScHkra2lSTW1JRElEM1RaNEgzUlljSWNoMXBnZUI5MFVFcVlpZGc2K2dRcEsycHBYWFlBRWhQK3pqd2dlZ1F3ZjRLSEFUY0ZoMmtJZzZQRGtCNkRYQnBkQWpseHdaQVNqNEdmRFE2UkNZZUFJNEM3b2tPVWdHSFJ3Y2dMZkI4TURxRThtTURJS1dkOG1ZR1o4ak5RNlFtNEpIb0lDVzNSM1NBaG9lakF5Zy9OZ0NxdTVta3UzK3Q2eTdTTis2ZmlBNVNZanRIQjJoNEtEcUE4bU1Eb0RyN0dBNyt3N2tlZUIzdUU5Q3VqWUFwMFNGd04wQU53QVpBZFRVVHAvMmI5UlBTOXdQVW5tZEhCd0Flanc2Zy9OZ0FxSTY4ODIvZCs0Q2Jva09VMUE3UkFjanZjOVhLZ0EyQTZ1WmplT2Zmam1YQWEzQzN3SFpzRkIwQUd3QU53QVpBZFRJVEIvOU8zRTdhSzBHdFdUODZBS21CazU3QkJrQjFNUk9uL2J2aFM2UkdRTTNiSURvQUx1TFVBR3dBVkFjemNmRHZsdVhBTzZKRGxFd09EY0RxNkFES2p3MkFxczRGZjkxM0NYQlJkQWkxeEFaQTY3QUJVSlhOeEdmK3ZmSmhuRlp1Vmc0TDhNWkdCMUIrYkFCVVZUUHh6citYL2dSY0ZoMmlKSExZU1hGOGRBRGx4d1pBVlRRVEIvOGlmRFk2UUVua3NBblB1T2dBeW84TmdLckdaLzdGdVFTNE1UcEVDU3lLRGdCTWlBNmcvTmdBcUVwbTRqUC9vcDBSSGFBRTdvb09BRXlPRHFEODJBQ29LbWJpblgrRUh3RXJvME5rN20vUkFiQUIwQUJHUlFlUXVxRE0wLzZUZ1FPQjV3SFRTYzlxMXlmdDNIWkhvNjRDcmdaV0JXVWN5anpnVXVERjBVRXl0UUNZSHgwQ0d3QmxhbzFsZFZBektaLzFnR09BQzRFVk5QZm52Qi80SUhrK3l6MkorSitEWE92cURzNXJOLzJaK0hOaHJWdTFGMzBCclBMV1RNcm5BTklyZE8zK21lOEhqaW84OWRBbWt6YWFpZjU1eUxGeStJenlDTkpIbktMUGhiVnUxVjcwQmJES1dUTXBsOUhBVjBuVCtKMysyVmNCN3l3Mi9yQnVKdjVuSXNkNlJTY250VXMySS80OFdBTlg3VVZmQUt0OE5aTnlHUTJjVC9mUHcxdUwvRU1NNHl2RS8xemtWcXVBU1oyYzFDN1pqL2h6WVExY29Yd0xRR1h6TWNyVkFJd0d6Z0ZtOU9EMy9ocndraDc4dnUyNFBEcEFobTRtandXQU8wVUhVSjVzQUZRbUR2N1BOQW80RDlpN1I3OS9LM0paN0phVFM2SUROT3dhSFVCNXNnRlFXVGo0RDJ3Q2NDNndZWStQTTV3SHllT2pOems1T3pwQWd3MkFCbVFEb0RKdzhCL2FqdVN4RDBJT0c5N2s0aGJncHVnUURidEZCMUNlYkFDVU93Zi81cndkbUZid01kZDJlL0R4Yy9LOTZBQU5rNGovdVZDbWJBQ1VNd2YvNW8wQzNodHczUDd1Q0Q1K0xsWUNQNGdPMGJBZmFSOEFhUjAyQU1xVmczL3IvaEVZRzNqOFJ3T1BuWk1ma3RaRTVHRC82QURLbHcyQWN1VGczNTVOZ1lNRGo3OHc4Tmk1V0FWOE1qcEVQd2RGQjFDK2JBQ1VHd2Yvemh3YWVHd2JnUFJhWmk1ckljWUFoMFNIVUw1c0FKUVRCLy9PN1JKNDdFV0J4ODdCYXVBVDBTSDZlUjR3TVRxRThtVURvRnc0K0hmSDVvSEhYaGw0N0J6OE4zQmJkSWgrWGhBZFFIbXpBVkFPSFB5N1ozemdzY2NFSGp2YVE4Q3AwU0hXa3NzMjBjcVVEWUNpT2ZoMzF4T0J4eDRYZU94bzd5S3ZSeUJia1Y0QmxBWmxBNkJJRHY3ZE55ZncySkd2SUViNk9XbnhYMDZPeGZmL05Rd2JBRVZ4OE8rTld3T1BYY2NGWi9jRGI0b09NWURqb3dNb2Z6WUFpdkE1SFB4NzViZUJ4OTRtOE5nUmxnR3ZCT1pHQjFuTEZPQ0YwU0dVdjFIUkFWUTdad0FmaUE3Umd0SEFqeWpISGRWczRJK0J4OTh1OE5nUjNnNWNHeDFpQVArSWY3ZXJDYzRBcUVqZkE5NENySWtPMHFTK08vOHlEUDRBM3lIMjNOWnBCdUFid0xlalF3eml4T2dBVXJQV1dMV29TMGtEYWxtTUJzNG4vcncxV3d1QlRYcHlKcHAzUGZIbm9ZZzZrM3h2bnZZZy92eFl6VmNvcDRsVWhMOEFKd0Fyb29NMHFVelQvbjArQWp3V2VQeVJ3SE1DajErVUg1TVcvYTJPRGpLSWs2TURTSzJJN3NDczN0YkR3RlRLbzJ4My9tdUFXYVFCT05KMDRzOURyK3M4OHI1cDJnQllUUHg1c3BxdlVMbE9ZNmthVnBEdS9HZEhCMmxTbVZiNzk3a1BlQzNwSzNTUjlnMCtmcTlkUURyUE9XOTMvSHBTRXlDVlJuUUhadld1VHFFOHluam5QNC9Zai8vMDkwM2l6MGV2Nm56eVg3OHlDcmliK0hObHRWYTFGMzBCck43VUR5bVBzZzcrZS9UaVpMVHBWdUxQU1MrcURJTS9wRmYvb3MrVjFYclZYdlFGc0xwZmQxS2VxVWdILzg1TkkvNmM5S0xLTXZpUEFHNGkvbnhaclZjbzF3Q28yMVlDcndNZWp3N1NoTDdWL21WNjVqOFBPQks0T1RwSVA4ZEZCK2lCQzREWFVJNDNWMTVCV29RcGxVNTBCMloxdDJaU0RxTkpmOGxIbjY5V2FpNTUzZm4zK1EzeDU2YWJWWlk3ZjBodmY5eEcvRG16MnF2YWk3NEFWdmZxT3ZKK1RhcVAwLzdkc3hHd2xQanowNjBxMCtBUGNCTHg1OHhxdjJvditnSlkzYWtWd043a3p6di83bm83OGVlblcxVzJ3WDg4Y0MveDU4MXF2Mm92K2dKWTNhbFByMzFoTStUZzMzMDNFbitPdWxGbEcvd0JQazc4ZWJNNnE5cUx2Z0JXNTNVWE1HSHRDNXNacC8yNzd3RGl6MUUzcW95RC96VGdLZUxQbmRWWjFWNzBCYkE2cjl6M3pIZnc3NDB6aUQ5UG5WWVpCMytBaTRnL2QxYm5WWHZSRjhEcXJHYXRlMG16NHJSL2Iyd0hMQ1ArWEhWU1pSMzhYMHY4dWJPNlU3VVhmUUdzOW1zVnNNKzZselFiRHY2OWN6cng1NnFUS3V2Z1B4bDRoUGp6WjNXbmFpLzZBbGp0MTVrRFhNOWNPTzNmTzlzRHk0ay9YKzFXV1FkL2dIT0pQMzlXOTZyMm9pK0ExVjZ0QUo0MXdQWE1nWU4vYjMyYitQUFZicFY1OEg4VDhlZlA2bTdWWHZRRnNOcXJNd2E2bUJsdzJyKzM5aU50OXh4OXp0cXBNZy8rendJV0UzOE9yZTVXN1VWZkFLdjFXZ0hzT05ERkRGYkdPLzh5RGY2aktPOTcvMlVlL0NkUTN2TnVEVjIxRjMwQnJOYnJuQUd2Wkt5UndJK0pQemV0VkprR2Y0RDNFbi9PMnFreUQvNEEzeWYrSEZxOXFkcUx2Z0JXNi9XOEFhOWtyTThUZjE1YXFiSU4vdE9BSjRnL2I2MVcyUWYvZHhOL0RxM2VWZTFGWHdDcnRicHk0TXNZNnArSlB5K3RWTmtHL3pIQU5jU2Z0MWFyN0lQL0ROTGp0dWp6YVBXdWFpLzZBbGl0MVdzR3ZveGhEcVZjRzlLVWJmQUgrQkx4NTYzVnFzTGdYK1pYTGEzbXF2YWlMNERWZkQwS2pCMzRNb2JZbkhKdGlsTEd3WDhHc0pyNGM5ZEtPZmhiWmFuYWk3NEFWdlAxcFVHdVlaU2ZFSDlPbXEweUR2NTdBQXVKUDNldGxJTy9WYWFxdmVnTFlEVmYwd2U1aGhGT0l2NThORnR6Z2QxN2N4cDZaZy9TNWtUUjU2NlZjdkMzeWxhMUYzMEJyT2JxVDROZHdBQmJBZk9KUHlmTmxJTi9NZVhnYjVXeFFxMFhIVUNsOGVQb0FQMThHZGcwT2tRVDVnRXZCRzZKRHRLQ1BZRExTQitkS1lzTFNJdFRWMFFIYWRNTTB0NGFaVzVncExaRWQyQldjN1hMWUJld1lQdFRqa1ZwM3ZrWFU5NzVXMld1Mm91K0FOYndkZHVnVjY5NHM0Zy9IOE5WV1JmOE9mZ1h5OEhmcXIzb0MyQU5YNThiOU9vVjY2WEVuNHZoeWp2L1lzckIzNnBDMVY3MEJiQ0dyeGNPZXZXS2RSM3g1MktvOHM2L21ITHd0NnBTdFJkOUFheWg2eWxnL0tCWHJ6Z0hFSDh1aGlydi9Jc3BCMytyU2hYS3R3QTBuTjhEUzZKREFDZEhCeGlDcS8yTDRXcC9xV0tpT3pCcjZQckk0SmV1TUpOSlRVajB1UmlvdlBNdnByenp0NnBZb1p3QjBIQ3VqZzRBdkI0WUZ4MWlBTjc1RjhNN2Y2bWlvanN3YS9CYUJXdzArS1VyekZYRW40dTF5enYvWXNvN2Y2dktWWHZSRjhBYXZQNDh4SFVyeXVha1JpVDZYUFF2Qi85aXlzSGZxbnFGOGhHQWhwTEQxUFp4NVBWek9nODRranpPVGJPYzlpK2UwLzdLWGs1L3NTby9PZXdBZUZ4MGdINGMvSXZoNEM4VndBWkFRN2sxK1BnamdFT0NNL1FwNitCL0tRNytSWEx3VjJtTWlnNmdyUDB0K1BnN2tNZFgvOG82K0h2blh5d0hmNVdLTXdBYXl1emc0KzhYZlB3K2I4TEJ2OWNjL0tXQzJRQm9NUE9CeDRNejdCTjhmSUJ6Z1l1aVE3VEF3Yjk0RHY0cUpSc0FEZWErNkFEQXJzSEhYd0tjRXB5aEZUN3pMNTZEdjByTE5RQWF6TVBSQVlCdGc0OS9IdkJRY0labWVlZGZQQWQvbFpvekFCck0vT2dBd05iQnh6ODkrUGpOY3ZBdm5vTy9TczhHUUlONUxQajRFNEJOQW84L0c3Z3k4UGpOY3RxL2VBNytxZ1FiQUExbVFmRHh0d3crZmc0ZlFScE8zK0MvV1hTUUZqajRTNWx3RFlBR3N6VDQrR09EajM5TjhQR0g0N1IvOFJ6OFZTbk9BR2d3eTRLUEgvMnplV2Z3OFlkNU02aDJBQUFRMlVsRVFWVGl0SC94SFB4Vk9jNEFhRERMZzQ4Zi9iUDVaUER4QitPZGYvRWMvRlZKMFhkWnl0Zks0T05ILzJ3dUNUNytRTHp6TDU2RHZ5b3IraTVMK1lyK0N5OTZBTjR3K1Bocjg4Ni9lQTcrcXJUb3V5emxLM29SM3FQQng5OHArUGo5T2ZnWHo4RmZsV2NEb01HTUNUNytBbUIxNFBGM0RqeDJmMDc3RjgvQlg3VmdBNkRCVEFnKy9pcGlOeU02SXZEWWZYelB2M2dPL3FvTkd3QU5abEowQUdMMzRkK05OQUJIY2ZBdm5vTy9hc1VHUUlQWk5Eb0FjRnZ3OGQ4VGRGd0gvK0k1K0t0MmJBQTBtQnhtQUc0TlB2N3JnSDBLUHVidU9QZ1h6Y0ZmdFdRRG9NRkU3OFVQY0V2dzhkY0R2Z2VzWDlEeGRpZXQ5bmZ3TDQ2RHYyckxCa0NEbVJvZGdQZ0dBR0FYMGlEWDY5Y2lIZnlMNStBdkJWdGpaVnM1dkhwMlAvSG5ZUTN3ZTNwM1B2WUE1bWJ3WjJ5bHpxZmNBK2NNMG5iWDBlZlJxbmVGY2daQVE1a2FIUUM0SkRwQXd5SEFGY0QyWGY1OUR3TitpM2YrUmZMT1g4SUdRRU43VG5RQTRPTG9BUDNzREZ3SEhOT0YzMnNFOEM1U2c3TkpGMzYvb2pqNFMrcWE2Q2tZYS9ENjFCRFhyU2lia1RZRmlqNFgvV3MxYVhIZ05tMyttZllpUFZLSS9uTzBXazc3VzFaM3EvYWlMNEExZUYwMHhIVXIwbStKUHhjRDFUTGdETkkwL25DemFlT0E0NEZma0JxSTZPeXRsb08vWlhXL1FvMklEa0FHSjBHRHVvODgxZ0c4QWZodWRJaGhQQVpjQ2Z5RnRLQnZNV2xxZjJ2U3JvSUhBT1BEMG5YR2FYK3BOMExIWUJzQURXY3JZcmZrQlpnSVBFeHg3K1ByYVE3K1V1K0Vqc0V1QXRSd0Rvd09BRHhKbW9KV3NSejhwUXF6QWRCd2NtZ0FBTDRSSGFCbUhQeWxpck1CMEhBT2lRN1E4QWZTSHZucVBRZC9xUVpjQTZEaHJBS21BQXVpZ3dDSEE3T2lRMVNjZzc5VUhOY0FLR3NqZ1NPaVF6VDhsdlQrdkhyRHdWK3FFUnNBTmVORjBRSDYrUkRPR3ZXQ2c3OVVNellBYXNaTHlPZG41WGZBOTZORFZJeUR2MVJEcmdGUXN3NGhiWFNUZzgyQnZ3SWJSd2VwQUFkL0tZNXJBRlFLSjBRSDZPY1I0TVBSSVNyQXdWK3FNV2NBMUt3NXBHMkJWMGNIYVJoSmVpM3c4T0FjWmVYZ0w4VnpCa0Nsc0EzNXZBMEE2ZlhFMTVDMkNGWnJIUHdsMlFDb0pXK01EckNXUjREWGtwb0JOY2ZCWHhKZ0E2RFd6Q0I5NFM0bnM0QlBSWWNvQ1FkL1NYOW5BNkJXakFQK0tUckVBRDRLbkIwZEluTU8vcEtld1VXQWF0VTl3TFBKYjlwOU5QQlQ0SmpvSUJseThKZnk1Q0pBbGNvMDRMam9FQU5ZQWJ3U3VDbzZTR1ljL0NVTnlBWkE3WGgzZElCQlBBVzhETGcyT2tnbUhQd2xEY29HUU8wNEREZ29Pc1FnNWdOSEFyK0pEaExzZkJ6OEpRM0JCa0R0bWhrZFlBaFBBTWNDWjBRSENmSVY0TlU0K0V2SzNCcXJ0SFhJQU5jekp5T0FqNU1XTEVhZnF5SnFLZkQ2cnB5NU9ET0E1Y1NmUzhzcW9rTDVGb0E2TVF0NFFYU0lKaHdGZkkvMEVhR3FlcGcwZUY0ZEhhUUQzdm1yYm53TFFLVjFCSG0rRWJDMlM0QTlnSXVqZy9USWowbC9QZ2QvU2FVU1BRVmpkVmEzVTU2L3RFY0Nid01lSS82OGRhTWVKUzMwS3p1bi9hMjZWdTFGWHdDcjh6cGxuYXVhdDgyQk0wbGZOb3crZCszVWF1Q0h3QmJkUGpFQkhQeXRPbGZ0UlY4QXEvTjZETmh5N1F0YkFvY0NseE4vL2xxcFM0QjllbkV5QWpqNFczV3Yyb3UrQUZaMzZyeTFMMnlKSEVyYU55RDZIQTVWVjVFV00xYUZnNzlsS2Z3Q1dOMnJsMUZ1KzVIMkRsaE0vTGxjUTlyWjhEdFU1NDYvajRPL1phVUs1V3VBNnFiN1NhdlJGMFlINmRCRTBpRDFCdUQ1cE1XRFJWa0ZYQWxjQ0p3RkxDancyRVZ3dGIvMHROQXgyQVpBM1hZMmNHSjBpQzdhaExTMThOR05tdHFEWXp3TVhBRmNCUHlDdEoxeEZUbjRTODlrQXhBZFFGMTNJcWtScUtLcHdPN0FibzFmZHlXdHhwL004RE1GRHdNUEFuT0EyNERyZ090Sk15ZFY1K0F2cmNzR0lEcUF1bTRoc0Njd096cEl3U1kzYW1MajN4OXIvTG9DZUlUMDNMdU9IUHlsZ2RrQVJBZFFUOXhFK21MZ2t1Z2dDdVhnTHczT3JZQlZTWHNDWDQ0T29WQU8vbExHYkFEVVMyOEIzaFFkUWlFYy9LWE0rUWhBdmJZY2VESHB5NEdxQndkL3FUbXVBWWdPb0o2YlQxb1A4TGZvSU9vNUIzK3BlYTRCVU9WTkFuNEZUSWtPb3A1eThKZEt4QVpBUmRrQitDbXdRWFFROVlTRHYxUXlOZ0FxMGdHa21ZQ0p3LzJIS2hVSGY2bUViQUJVdElPQkM0Q3gwVUhVRlE3K1VrblpBQ2pDMGNDUHNBa291MWZoNEMrVmxtOEJLTklzMGllRW40Z09vcGI5RS9CZFlGUjBFS25FZkF0QXRYVUU4RXRndytnZ2Fzbkp3Sms0K0V1bFpnT2dhSWVTWmdLMmpBNmlZWTBBUGc1OEhmL3VrRXJQUndES3hZUEFzY0NOMFVFMG9ESEFkMGhULzVLNnc1MEFvd01vRzR1QkU0Q0xvNFBvR1NhUjN0dzRMRHFJVkRHdUFaQWFOaVN0Q1ppSlA1dTUyQk80RmdkL3FYS2NBVkN1TGdKT0FoWkdCNm14MXdIZkJDWkVCNUVxeWhrQWFRREhBZGNBZTBjSHFhR0p3TGVCczNEd2x5ckxCa0E1MnhuNEErbVJ3TWpZS0xXeEgzQUQ4S2JvSUpKNnkwY0FLb3ZMZ1RjQTk4YkdxS3hSd0FlQmorRE9mbEpSZkFzZ09vQks0eW5TZStpZkIxWUZaNm1TdllEVGdYMmpnMGcxWXdNUUhVQ2xjejN3TDdoblFLYzJBUDREZURzK1lwRWl1QWhRYXRHK3BDYmdMR0NMNEN4bHRCN3BEWXZiZ1hmaDRDL1Zrak1BS3J2RndLZUFMd0ZMZzdPVXdSSEFGMGpUL3BKaStRZ2dPb0FxWVM1d0d2QVZZRWx3bGh3ZEJKeEsybTVaVWg1c0FLSURxRkllQUQ1TitsVHRrOEZaY3ZCODROK0JvNktEU0ZxSERVQjBBRlhTWXVCL1NHOE0zQjhicFhDamdaY0Q3d0VPQ000aWFYQTJBTkVCVkdrcmdBdUJNNEJMZ05XeGNYcHFCK0NmRzdWMWNCWkp3N01CaUE2ZzJyaVA5R2pnSE9DdndWbTZaU1BnWmFSTmtvNGdqLzlQUzJxT0RVQjBBTlhTcmNDUFNaKzV2U1U0UzZzbWtSYnp2WkwwYkg5c2JCeEpiYklCaUE2ZzJwc0RYQXo4QnBnRnpJdU5zNDR4d1A3QTBjQ0xnSDN3M1gycENtd0FvZ05JYS9rYmNIV2ovZ2o4bWJRTmNSSFdJejNMM3dNNHNGSDdBT01LT3I2azR0Z0FSQWVRaHJFYXVJZjBxT0J1WUhiajMrOERIZ1htMC93bVJPc0JtNUttOGJjR3BqWnFCMkFYNExuNENWNnBMbXdBb2dOSVhmQVVxUkZZUVdvWUZqWCs5M0hBK01ZL2Iwd2EvQ1VKYkFCc0FDUkp0ZVRIZ0NSSlVyRnNBQ1JKcWlFYkFFbVNhc2dHUUpLa0dySUJrQ1NwaG13QUpFbXFJUnNBU1pKcXlBWkFrcVFhc2dHUUpLbUdiQUFrU2FvaEd3QkprbW9vaHdaZ1ZYUUFTWklLRmo3MjVkQUFMSThPSUVsU3daWkZCN0FCa0NTcGVEWUEyQUJJa3VySEJvQU1Ub0lrU1FVTHYvbk5vUUZZSEIxQWtxU0NMWW9Pa0VNRDhHaDBBRW1TQ2hZKzl0a0FTSkpVdlBDeHp3WkFrcVRpaFk5OU9UUUE4Nk1EU0pKVXNBWFJBWEpvQU9aRUI1QWtxV0QzUlFmSW9RRzRKenFBSkVrRkN4LzdiQUFrU1NyZXZkRUJSa1FIQU1ZQlQ1RkhGa21TZW0wMU1JSGdqZkJ5bUFGWUNqd1VIVUtTcElJOFFBYTc0T2JRQUFEY0doMUFrcVNDM0JJZEFQSnBBRzZPRGlCSlVrR3lHUE55YVFDeTZJWWtTU3BBRm1OZUxnMUFGdDJRSkVrRnlHTE15MlhsL1JqU2w1SEdSUWVSSkttSGxnQWJBU3VpZytReUE3QWN1RDQ2aENSSlBmWUhNaGo4SVo4R0FPREs2QUNTSlBYWUZkRUIrdGdBU0pKVW5Hekd1bHpXQUFCTUF1YVJWeVpKa3JwbE5XbXNXeGdkQlBLYUFaZ1AvQ2s2aENSSlBYSTltUXora0ZjREFQREw2QUNTSlBYSXI2SUQ5SmRiQTVEVnlaRWtxWXV5R3VOeWU5NCtFcGdMYkJvZFJKS2tMbm9VMkFKWUZSMmtUMjR6QUt1QWk2TkRTSkxVWmI4bW84RWY4bXNBQU02TERpQkpVcGVkR3gxZ2JiazlBb0MwSGZERHBLMFNKVWtxdTRXazZmOWwwVUg2eTNFR1lDbHdVWFFJU1pLNjVFSXlHL3doendZQTRFZlJBU1JKNnBMc3B2OGh6MGNBQUtPQSs0QXRvNE5Ja3RTQmg0RHRnSlhSUWRhVzZ3ekFTdURNNkJDU0pIWG9PMlE0K0VPK013QUFPd0Iza0crVElrblNVTllBendidWlnNHlrSndIMTd1QldkRWhKRWxxMHlWa092aEQzZzBBd05lakEwaVMxS1p2UkFjWVNzNlBBQ0ExS0xjRHo0b09Ja2xTQy80RzdFTDZCSENXY3A4QldBMThLVHFFSkVrdE9vMk1CMy9JZndZQVlBSXdHNWdjSFVTU3BDYk1CYllIbGdUbkdGTHVNd0FBVCtGYUFFbFNlWHlOekFkL0tNY01BS1R2QXR5Tm53bVdKT1Z0UHVrMTlzWFJRWVpUaGhrQWdFWEFGNk5EU0pJMGpNOVJnc0VmeWpNREFMQSs2WDNLS2RGQkpFa2F3RHhnUitEeDZDRE5HQmtkb0FYTEc3OGVIWnBDa3FTQmZRajRYWFNJWnBWcEJnQmdESEFyYVd0RlNaSnljU2V3R3hsKzluY3daVmtEMEdjNThQN29FSklrcmVVVVNqVDRRL2xtQVByOEJoOEZTSkx5Y0Nsd1ZIU0lWcFcxQWRnZHVBRVlGUjFFa2xScnk0RTlnYjlFQjJsVm1SWUI5amNYbUFnY0VoMUVrbFJyL3dtY0Z4MmlIV1dkQVFBWUM5eEkrdGlDSkVsRnU1MTA5NzgwT2tnN3lyWUlzTDlsd01uQW11Z2drcVRhV1EyOG1aSU8vbERlUndCOVpnTmJBdnRHQjVFazFjclhnVzlHaCtoRW1SOEI5SmtJL0JIWU9UcUlKS2tXL2tLNjhYd3FPa2dueXZ3SW9NK1R3R3Q1ZXFkQVNaSjZaUmx3SWlVZi9LSDhqd0Q2UEFTc0FvNk1EaUpKcXJRUEFCZEdoK2lHS2p3QzZMTWVhWU9nRjBZSGtTUlYwcStBbDFLUnhlZFZhZ0FBTmdXdUI2WkZCNUVrVmNwc1lCOWdmblNRYnFuQ0dvRCtGZ0F6Z0NYUlFTUkpsYkdVTkxaVVp2Q0g2cXdCNk85aDRFSGdINktEU0pJcTRZMmtSOHlWVXNVR0FPQW1ZRVBnd09nZ2txUlMrd3h3V25TSVhxamFHb0QrMWlQdHp6d2pPb2drcVpUT0ExNUQydld2Y3FyY0FBQ01CeTdEbVFCSlVtdXVCWTZnQXUvN0Q2YnFEUURBRk9BSzROblJRU1JKcGZCWDRGRGcwZWdndlZTMXR3QUdNaGQ0QVhCUGRCQkpVdmJ1QTE1TXhRZC9xTWNNUUo4ZGdkOEJXMFVIa1NSbDZRSGdNT0R1NkNCRnFNTU1RSis3Z0tPQmVkRkJKRW5abVFzY1JVMEdmNmhYQXdCd0c2bTdleUE2aUNRcEd3K1R2aVh6bCtnZ1JhclRJNEQrdGllOUhiQkRjQTVKVXF6WnBHL0kzQmtkcEdoMW13SG9jeS9wOVk0N2duTklrdUxjRGh4Q0RRZC9xRzhEQUdtbDU0R2tWd1FsU2ZWeURlbVI4SnpvSUZIcTNBQkErckREQzRGem9vTklrZ3B6UHVuMThMblJRU0pWOVZzQXJWZ0ZYTkQ0NThNRGMwaVNldThyd0p1QkZkRkJvdGtBUE8yM3BGY0ZYd3lNam8waVNlcXlwY0JiZ1U4QmE0S3paS0d1YndFTVpVL1NqTUMwNkNDU3BLNjREM2dsY0YxMGtKelVmUTNBUUc0QzlnTXVqZzRpU2VyWXI0QzljUEJmaDQ4QUJyWUUrQUh3R0dtaGlPZEprc3BsQmZBSjByUi9aYi9vMXdrZkFReHZOK0JzWVBmb0lKS2twdndWZUMxd1kzU1FuSGxuTzd5NXdGbkFKc0MrMkRSSlVxNVdBMThIVGdEdUQ4NlNQUWV6MWh3TWZBdllKVHFJSk9rWjdnVCtCWmdWSGFRc25BRm96ZjNBZDBoN0J4eUU1MCtTb3EwRVBnZThtcHB1NmRzdVp3RGF0eXZ3UmRMbkl5Vkp4ZnNOOEc1cTloVy9idkUxd1BiZEJoeE5hZ0QrSEp4Rmt1cmtEdUJWcEkzYkhQemI1QlIyNSs0bVBSWjRETmdibUJnYlI1SXFheTd3SWVDZmdWdUNzNVNlandDNmF5THdkdUQ5d0tiQldTU3BLaFlBWHdWT0F4WUhaNmtNRzREZTJBZzRoZFFNVEE3T0lrbGxOWTgwOEg4WkIvNnVzd0hvcmJHa2xhbW5BczhKemlKSlpYRTM2YXQ5MzhKZC9IckdCcUFZNndFdkIvNFZPQklYWDByUzJsWURsd0xmQUg3VytIZjFrQTFBOGJZQlRnVGVCbXdYbkVXU29qMUUybTMxZE5LZHZ3cGlBeEJuRk9rMXdsY0QvMEJhTnlCSmRiQVErQWx3TG5BSmFUTWZGY3dHSUE5alNlK3p2Z3A0RVRBcE5vNGtkZDJqd0srQjgwZ2IrQ3lMalNNYmdQeU1CUFlIam1uVTNyaG1RRkw1ckFhdUp3MzZ2Mno4ODZyUVJIb0dHNEQ4YlFBOER6aUU5REdpZzRIeG9Za2thVjByZ0p1Qks0RXJnTXRJNys4clV6WUE1VE9hOURYQzNZRTlnT25BYzBtTEM3MmVrbnB0TlRDSHRBWDZuMGc3OHQxQzJwSjNSV0F1dGNnQm96ckdBbE9CYWNEMnBJWmdNckJaNDlkSndBUmdROUpqaHRIQStoRkJKV1hsQ2RMQXZZcTAyYzVUd0h6U00vdDVqVi9uQVBjQTl3S3o4Zmw5SmZ3ZnNMUjJXZEZtMVhZQUFBQUFTVVZPUks1Q1lJST1cIiAvPlxuICAgICAgPC9kZWZzPlxuICAgIDwvc3ZnPlxuICAgIEBpZihjb3B5T2ZJbnB1dEFsbEZpbGVzICYmIGNvcHlPZklucHV0QWxsRmlsZXMubGVuZ3RoID4gMCl7XG4gICAgPHNwYW4gKGNsaWNrKT1cIm9wZW5Qb3B1cCgpXCIgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgY3Vyc29yOiBwb2ludGVyO1wiPlxuICAgICAge3sgY29weU9mSW5wdXRBbGxGaWxlcy5sZW5ndGggPT09IDEgPyAoJ09ORV9GSUxFX0FUVEFDSEVEJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICcxIEZpbGUgQXR0YWNoZWQnKSA6ICgnTVVMVElQTEVfRklMRVNfQVRUQUNIRUQnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJysnICsgY29weU9mSW5wdXRBbGxGaWxlcy5sZW5ndGggKyAnIEZpbGVzIEF0dGFjaGVkJykgfX1cbiAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBlbHNlIGlmKG1vZGUgPT09ICdlZGl0Jykge1xuICAgIDxkaXY+IHt7ICdBRERfRklMRVMnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ0FkZCBmaWxlcycgfX0gPC9kaXY+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICA8ZGl2ICpuZ0lmPVwiZnJvbSAhPT0gJ254dFRhYmxlJ1wiPnt7ICdOT19GSUxFU19BVFRBQ0hFRCcgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnTm8gZmlsZXMgYXR0YWNoZWQnIH19PC9kaXY+XG4gICAgfVxuICAgIDxidXR0b24gKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBcbiAgICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIFxuICAgICAgICAgICAgY2xhc3M9XCJhZGQtYnRuLWljb25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJwbHVzLWljb25cIj4rPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVVwbG9hZFwiIG11bHRpcGxlPVwibXVsdGlwbGVcIiBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZXMuam9pbignLCcpXCJcbiAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6bm9uZTtcIiAoY2hhbmdlKT1cInVwbG9hZE11bHRpcGxlRmlsZXMoJGV2ZW50KVwiIC8+XG4gIDwvZGl2PlxuICA8IS0tIFNLUzEzSlVOMjUgZWRpdCBpY29uIC0tPlxuICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiAhcXVlc3Rpb24uaXNSZWFkT25seSAmJiBmcm9tICE9PSAnbnh0VGFibGUnIFwiIGNsYXNzPVwiZWRpdC1pY29uXCIgKGNsaWNrKT1cInZpZXdFZGl0Q2xpY2socXVlc3Rpb24pXCJcbiAgICB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk0xLjk5OTg3IDkuMDAxN0w0LjM5NjAyIDExLjM5NzlDNC41MDM3MSAxMS41MDU1IDQuNjY1MjUgMTEuNTA1NSA0Ljc3Mjk0IDExLjM5NzlMMTAuNzQ5OSA1LjM5NDAxQzEwLjg1NzYgNS4yODYzMSAxMC44NTc2IDUuMTI0NzcgMTAuNzQ5OSA1LjAxNzA4TDguMzgwNjQgMi42NDc4NUM4LjI3Mjk0IDIuNTQwMTYgOC4xMTE0MSAyLjU0MDE2IDguMDAzNzEgMi42NDc4NUwxLjk5OTg3IDguNjUxN0MxLjg5MjE3IDguNzU5MzkgMS44OTIxNyA4LjkyMDkzIDEuOTk5ODcgOS4wMDE3Wk05LjE2MTQgMS41NDQwMUM5LjA1MzcxIDEuNjUxNyA5LjA1MzcxIDEuODEzMjQgOS4xNjE0IDEuOTIwOTNMMTEuNTMwNiA0LjI5MDE2QzExLjYzODMgNC4zOTc4NSAxMS43OTk5IDQuMzk3ODUgMTEuOTA3NiA0LjI5MDE2TDEyLjU4MDYgMy42MTcwOEMxMy4wMTE0IDMuMjEzMjQgMTMuMDExNCAyLjU2NzA4IDEyLjU4MDYgMi4xMzYzMUwxMS4zMTUzIDAuODcwOTI4QzEwLjg4NDUgMC40NDAxNTkgMTAuMjExNCAwLjQ0MDE1OSA5Ljc4MDYzIDAuODcwOTI4TDkuMTYxNCAxLjU0NDAxWk0wLjAwNzU1ODYyIDEyLjk4NjNDLTAuMDQ2Mjg3NSAxMy4yNTU1IDAuMTk2MDIgMTMuNDk3OSAwLjQ2NTI1MSAxMy40NDRMMy4zOTk4NyAxMi43NDRDMy41MDc1NiAxMi43MTcxIDMuNTg4MzMgMTIuNjYzMiAzLjY0MjE3IDEyLjYwOTRMMy42OTYwMiAxMi41NTU1QzMuNzQ5ODcgMTIuNTAxNyAzLjc3Njc5IDEyLjMxMzIgMy42NjkxIDEyLjIwNTVMMS4yNDYwMiA5Ljc4MjQ3QzEuMTM4MzMgOS42NzQ3OCAwLjk0OTg2NiA5LjcwMTcgMC44OTYwMiA5Ljc1NTU0TDAuODQyMTc0IDkuODA5MzlDMC43NjE0MDUgOS44OTAxNiAwLjczNDQ4MiA5Ljk3MDkzIDAuNzA3NTU5IDEwLjA1MTdMMC4wMDc1NTg2MiAxMi45ODYzWlwiXG4gICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gIDwvc3ZnPlxuICA8IS0tIFNLUzEzSlVOMjUgc2F2ZSBhbmQgY2FuY2VsIGljb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiAobW91c2VlbnRlcik9XCJpc1NhdmVIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzU2F2ZUhvdmVyZWQgPSBmYWxzZVwiXG4gICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7XCI+XG4gICAgPHN2ZyAqbmdJZj1cIiFpc1NhdmVIb3ZlcmVkXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNS45NTAyIDAuNUM4Ljk2MDA2IDAuNTAwMTA2IDExLjQwMDQgMi45NDAzMSAxMS40MDA0IDUuOTUwMkMxMS40MDAzIDguOTU5OTkgOC45NTk5OSAxMS40MDAzIDUuOTUwMiAxMS40MDA0QzIuOTQwMzEgMTEuNDAwNCAwLjUwMDEwNiA4Ljk2MDA2IDAuNSA1Ljk1MDJDMC41IDIuOTQwMjQgMi45NDAyNCAwLjUgNS45NTAyIDAuNVpcIlxuICAgICAgICBzdHJva2U9XCIjODM3RjhFXCIgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNOC44ODExMSAzLjg0NTgzQzguODMyNjkgMy43OTcyIDguNzc1MTMgMy43NTg2IDguNzExNzYgMy43MzIyN0M4LjY0ODM4IDMuNzA1OTQgOC41ODA0MyAzLjY5MjM4IDguNTExOCAzLjY5MjM4QzguNDQzMTcgMy42OTIzOCA4LjM3NTIxIDMuNzA1OTQgOC4zMTE4NCAzLjczMjI3QzguMjQ4NDYgMy43NTg2IDguMTkwOTEgMy43OTcyIDguMTQyNDkgMy44NDU4M0w0LjgyNjkgNy4xNjM0N0wzLjM1MjUzIDUuNjg5MUMzLjMwNDAzIDUuNjQwNiAzLjI0NjQ2IDUuNjAyMTMgMy4xODMwOSA1LjU3NTg4QzMuMTE5NzIgNS41NDk2NCAzLjA1MTgxIDUuNTM2MTMgMi45ODMyMiA1LjUzNjEzQzIuOTE0NjMgNS41MzYxMyAyLjg0NjcyIDUuNTQ5NjQgMi43ODMzNSA1LjU3NTg4QzIuNzE5OTkgNS42MDIxMyAyLjY2MjQxIDUuNjQwNiAyLjYxMzkxIDUuNjg5MUMyLjU2NTQxIDUuNzM3NiAyLjUyNjk0IDUuNzk1MTggMi41MDA2OSA1Ljg1ODU0QzIuNDc0NDUgNS45MjE5MSAyLjQ2MDk0IDUuOTg5ODIgMi40NjA5NCA2LjA1ODQxQzIuNDYwOTQgNi4xMjcgMi40NzQ0NSA2LjE5NDkxIDIuNTAwNjkgNi4yNTgyOEMyLjUyNjk0IDYuMzIxNjUgMi41NjU0MSA2LjM3OTIyIDIuNjEzOTEgNi40Mjc3Mkw0LjQ1Njc3IDguMjcwNThDNC41MDUxOSA4LjMxOTIyIDQuNTYyNzQgOC4zNTc4MSA0LjYyNjEyIDguMzg0MTRDNC42ODk1IDguNDEwNDcgNC43NTc0NSA4LjQyNDAzIDQuODI2MDggOC40MjQwM0M0Ljg5NDcxIDguNDI0MDMgNC45NjI2NiA4LjQxMDQ3IDUuMDI2MDQgOC4zODQxNEM1LjA4OTQyIDguMzU3ODEgNS4xNDY5NyA4LjMxOTIyIDUuMTk1MzkgOC4yNzA1OEw4Ljg4MTExIDQuNTg0NDVDOC45Mjk3NCA0LjUzNjAzIDguOTY4MzQgNC40Nzg0OCA4Ljk5NDY3IDQuNDE1MUM5LjAyMSA0LjM1MTczIDkuMDM0NTYgNC4yODM3NyA5LjAzNDU2IDQuMjE1MTRDOS4wMzQ1NiA0LjE0NjUxIDkuMDIxIDQuMDc4NTYgOC45OTQ2NyA0LjAxNTE4QzguOTY4MzQgMy45NTE4IDguOTI5NzQgMy44OTQyNSA4Ljg4MTExIDMuODQ1ODNaXCJcbiAgICAgICAgZmlsbD1cIiM4MzdGOEVcIiAvPlxuICAgIDwvc3ZnPlxuXG4gICAgPHN2ZyAqbmdJZj1cImlzU2F2ZUhvdmVyZWRcIiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTUuOTUgMTIuODAwNEM5LjIzNjA5IDEyLjgwMDQgMTEuOSAxMC4xMzY1IDExLjkgNi44NTAzOUMxMS45IDMuNTY0MyA5LjIzNjA5IDAuOTAwMzkxIDUuOTUgMC45MDAzOTFDMi42NjM5MSAwLjkwMDM5MSAwIDMuNTY0MyAwIDYuODUwMzlDMCAxMC4xMzY1IDIuNjYzOTEgMTIuODAwNCA1Ljk1IDEyLjgwMDRaXCJcbiAgICAgICAgZmlsbD1cIiMyNTk1NjZcIiAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk04Ljg4MTExIDQuNzQ2MjJDOC44MzI2OSA0LjY5NzU5IDguNzc1MTMgNC42NTg5OSA4LjcxMTc2IDQuNjMyNjZDOC42NDgzOCA0LjYwNjMzIDguNTgwNDMgNC41OTI3NyA4LjUxMTggNC41OTI3N0M4LjQ0MzE3IDQuNTkyNzcgOC4zNzUyMSA0LjYwNjMzIDguMzExODQgNC42MzI2NkM4LjI0ODQ2IDQuNjU4OTkgOC4xOTA5MSA0LjY5NzU5IDguMTQyNDkgNC43NDYyMkw0LjgyNjkgOC4wNjM4NkwzLjM1MjUzIDYuNTg5NDlDMy4zMDQwMyA2LjU0MDk5IDMuMjQ2NDYgNi41MDI1MiAzLjE4MzA5IDYuNDc2MjdDMy4xMTk3MiA2LjQ1MDAzIDMuMDUxODEgNi40MzY1MiAyLjk4MzIyIDYuNDM2NTJDMi45MTQ2MyA2LjQzNjUyIDIuODQ2NzIgNi40NTAwMyAyLjc4MzM1IDYuNDc2MjdDMi43MTk5OSA2LjUwMjUyIDIuNjYyNDEgNi41NDA5OSAyLjYxMzkxIDYuNTg5NDlDMi41NjU0MSA2LjYzNzk5IDIuNTI2OTQgNi42OTU1NyAyLjUwMDY5IDYuNzU4OTNDMi40NzQ0NSA2LjgyMjMgMi40NjA5NCA2Ljg5MDIyIDIuNDYwOTQgNi45NTg4QzIuNDYwOTQgNy4wMjczOSAyLjQ3NDQ1IDcuMDk1MzEgMi41MDA2OSA3LjE1ODY3QzIuNTI2OTQgNy4yMjIwNCAyLjU2NTQxIDcuMjc5NjEgMi42MTM5MSA3LjMyODExTDQuNDU2NzcgOS4xNzA5N0M0LjUwNTE5IDkuMjE5NjEgNC41NjI3NCA5LjI1ODIgNC42MjYxMiA5LjI4NDUzQzQuNjg5NSA5LjMxMDg2IDQuNzU3NDUgOS4zMjQ0MiA0LjgyNjA4IDkuMzI0NDJDNC44OTQ3MSA5LjMyNDQyIDQuOTYyNjYgOS4zMTA4NiA1LjAyNjA0IDkuMjg0NTNDNS4wODk0MiA5LjI1ODIgNS4xNDY5NyA5LjIxOTYxIDUuMTk1MzkgOS4xNzA5N0w4Ljg4MTExIDUuNDg0ODRDOC45Mjk3NCA1LjQzNjQyIDguOTY4MzQgNS4zNzg4NyA4Ljk5NDY3IDUuMzE1NDlDOS4wMjEgNS4yNTIxMiA5LjAzNDU2IDUuMTg0MTYgOS4wMzQ1NiA1LjExNTUzQzkuMDM0NTYgNS4wNDY5IDkuMDIxIDQuOTc4OTUgOC45OTQ2NyA0LjkxNTU3QzguOTY4MzQgNC44NTIyIDguOTI5NzQgNC43OTQ2NSA4Ljg4MTExIDQuNzQ2MjJaXCJcbiAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdFwiIChtb3VzZWVudGVyKT1cImlzRGlzY2FyZEhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlXCI+XG4gICAgPHN2ZyAqbmdJZj1cIiFpc0Rpc2NhcmRIb3ZlcmVkXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNy4wNTU1NSA0LjAwODgzTDUuOTQgNS4xMjQzOEw0LjgyNDQ1IDQuMDA4ODNDNC41Nzg2MSAzLjc2Mjk5IDQuMTgxOTEgMy43NjI5OSAzLjkzNjA3IDQuMDA4ODNDMy42OTAyMyA0LjI1NDY3IDMuNjkwMjMgNC42NTEzNyAzLjkzNjA3IDQuODk3MjFMNS4wNTE2MiA2LjAxMjc2TDMuOTM2MDcgNy4xMjgzMUMzLjY5MDIzIDcuMzc0MTUgMy42OTAyMyA3Ljc3MDg1IDMuOTM2MDcgOC4wMTY2OUM0LjE4MTkxIDguMjYyNTMgNC41Nzg2MSA4LjI2MjUzIDQuODI0NDUgOC4wMTY2OUw1Ljk0IDYuOTAxMTRMNy4wNTU1NSA4LjAxNjY5QzcuMzAxMzkgOC4yNjI1MyA3LjY5ODA5IDguMjYyNTMgNy45NDM5MyA4LjAxNjY5QzguMTg5NzcgNy43NzA4NSA4LjE4OTc3IDcuMzc0MTUgNy45NDM5MyA3LjEyODMxTDYuODI4MzggNi4wMTI3Nkw3Ljk0MzkzIDQuODk3MjFDOC4xODk3NyA0LjY1MTM3IDguMTg5NzcgNC4yNTQ2NyA3Ljk0MzkzIDQuMDA4ODNDNy42OTgwOSAzLjc3Mjg1IDcuMzAwMjEgMy43NzI4NSA3LjA1NTU1IDQuMDA4ODNaTTUuOTQgMC4wODIwMzEyQzIuNzAwMTcgMC4wODIwMzEyIDAuMDgwODU5NCAyLjcwMTM0IDAuMDgwODU5NCA1Ljk0MTE4QzAuMDgwODU5NCA5LjE4MTAxIDIuNzAwMTcgMTEuODAwMyA1Ljk0IDExLjgwMDNDOS4xNzk4MyAxMS44MDAzIDExLjc5OTEgOS4xODEwMSAxMS43OTkxIDUuOTQxMThDMTEuNzk5MSAyLjcwMTM0IDkuMTc5ODMgMC4wODIwMzEyIDUuOTQgMC4wODIwMzEyWk01Ljk0IDEwLjYzNjdDMy4zNTQyNiAxMC42MzY3IDEuMjQ0MjIgOC41MjY2NyAxLjI0NDIyIDUuOTQxMThDMS4yNDQyMiAzLjM1NTUzIDMuMzU0MjYgMS4yNDU0OSA1Ljk0IDEuMjQ1NDlDOC41MjU1OCAxLjI0NTQ5IDEwLjYzNTYgMy4zNTU1MyAxMC42MzU2IDUuOTQxMThDMTAuNjM1NiA4LjUyNjY3IDguNTI1NTggMTAuNjM2NyA1Ljk0IDEwLjYzNjdaXCJcbiAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgIDwvc3ZnPlxuXG4gICAgPHN2ZyAqbmdJZj1cImlzRGlzY2FyZEhvdmVyZWRcIiAoY2xpY2spPVwiZGlzY2FyZENoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTcuMDU1NTUgNC45NzQ3MUw1Ljk0IDYuMDkwMjZMNC44MjQ0NSA0Ljk3NDcxQzQuNTc4NjEgNC43Mjg4NyA0LjE4MTkxIDQuNzI4ODcgMy45MzYwNyA0Ljk3NDcxQzMuNjkwMjMgNS4yMjA1NSAzLjY5MDIzIDUuNjE3MjUgMy45MzYwNyA1Ljg2MzA5TDUuMDUxNjIgNi45Nzg2NEwzLjkzNjA3IDguMDk0MTlDMy42OTAyMyA4LjM0MDAzIDMuNjkwMjMgOC43MzY3MyAzLjkzNjA3IDguOTgyNTdDNC4xODE5MSA5LjIyODQxIDQuNTc4NjEgOS4yMjg0MSA0LjgyNDQ1IDguOTgyNTdMNS45NCA3Ljg2NzAyTDcuMDU1NTUgOC45ODI1N0M3LjMwMTM5IDkuMjI4NDEgNy42OTgwOSA5LjIyODQxIDcuOTQzOTMgOC45ODI1N0M4LjE4OTc3IDguNzM2NzMgOC4xODk3NyA4LjM0MDAzIDcuOTQzOTMgOC4wOTQxOUw2LjgyODM4IDYuOTc4NjRMNy45NDM5MyA1Ljg2MzA5QzguMTg5NzcgNS42MTcyNSA4LjE4OTc3IDUuMjIwNTUgNy45NDM5MyA0Ljk3NDcxQzcuNjk4MDkgNC43Mzg3MyA3LjMwMDIxIDQuNzM4NzMgNy4wNTU1NSA0Ljk3NDcxWk01Ljk0IDEuMDYwNjJDMi43MDAxNyAxLjA2MDYyIDAuMDgwODU5NCAzLjY3OTkzIDAuMDgwODU5NCA2LjkxOTc3QzAuMDgwODU5NCAxMC4xNTk2IDIuNzAwMTcgMTIuNzc4OSA1Ljk0IDEyLjc3ODlDOS4xNzk4MyAxMi43Nzg5IDExLjc5OTEgMTAuMTU5NiAxMS43OTkxIDYuOTE5NzdDMTEuNzk5MSAzLjY3OTkzIDkuMTc5ODMgMS4wNjA2MiA1Ljk0IDEuMDYwNjJaTTUuOTQgMTEuNjE1M0MzLjM1NDI2IDExLjYxNTMgMS4yNDQyMiA5LjUwNTI1IDEuMjQ0MjIgNi45MTk3N0MxLjI0NDIyIDQuMzM0MTIgMy4zNTQyNiAyLjIyNDA4IDUuOTQgMi4yMjQwOEM4LjUyNTU4IDIuMjI0MDggMTAuNjM1NiA0LjMzNDEyIDEwLjYzNTYgNi45MTk3N0MxMC42MzU2IDkuNTA1MjUgOC41MjU1OCAxMS42MTUzIDUuOTQgMTEuNjE1M1pcIlxuICAgICAgICBmaWxsPVwiI0ZGMzYzNlwiIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XG4gIDwhLS0gRXJyb3IgbWVzc2FnZXMgc2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImZpbGUtY29uc3RyYWludHNcIiAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzXCI+e3sgZXJyb3IgfX08L2Rpdj5cbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDtcIj57e3F1ZXN0aW9uPy5lcnJvck1lc3NhZ2V9fTwvZGl2PlxuXG48IS0tIFNLUzExSlVOMjUgRmlsZSBTZWxlY3Rpb24gUG9wdXAgTW9kYWwgLS0+XG48ZGl2IGNsYXNzPVwiZmlsZS1wb3B1cC1vdmVybGF5XCIgKm5nSWY9XCJzaG93UG9wdXBcIiAoY2xpY2spPVwiY2xvc2VQb3B1cCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLW1vZGFsXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLXRpdGxlXCI+e3sgcXVlc3Rpb24/LnF1ZXN0aW9uVGV4dCA/ICgocXVlc3Rpb24/LmlkKycucXVlc3Rpb25UZXh0JykgfCBueHRDdXN0b21UcmFuc2xhdGUgOiBxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KTogJyd9fTwvZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiIChjbGljayk9XCJjbG9zZVBvcHVwKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZS1pY29uXCI+w5c8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU0tTMTFKVU4yNSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLWNvbnRlbnRcIj5cbiAgICAgIDwhLS0gU0tTMTFKVU4yNSBMZWZ0IFBhbmVsIC0gRmlsZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdC1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgY29weU9mSW5wdXRBbGxGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImN1cnJlbnRGaWxlID09PSBmaWxlXCIgKGNsaWNrKT1cInZpZXdGaWxlKGZpbGUpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaWNvblwiPlxuICAgICAgICAgICAgPGltZyBzdHlsZT1cIndpZHRoOiAyOHB4O2hlaWdodDogMjhweDtcIiBbc3JjXT1cImdldERvY0ljb24oZmlsZT8ubmFtZSlcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pc1JlYWRPbmx5XCIgY2xhc3M9XCJmaWxlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnRuXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZGVsZXRlRmlsZShpKVwiIHRpdGxlPVwie3sgJ0RFTEVURScgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnRGVsZXRlJyB9fVwiPlxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMyw2IDUsNiAyMSw2XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTE5LDZ2MTRhMiwyIDAgMCwxIC0yLDJIN2EyLDIgMCAwLDEgLTIsLTJWNm0zLDBWNGEyLDIgMCAwLDEgMiwtMmg0YTIsMiAwIDAsMSAyLDJ2MlwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCIgKm5nSWY9XCIhY29weU9mSW5wdXRBbGxGaWxlcyB8fCBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pY29uXCI+8J+ThDwvZGl2PlxuICAgICAgICAgIDxwPnt7ICdOT19GSUxFU19TRUxFQ1RFRCcgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnTm8gZmlsZXMgc2VsZWN0ZWQnIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ0blwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIHRpdGxlPVwie3sgJ0FERF9GSUxFJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdBZGQgZmlsZScgfX1cIj5cbiAgICAgICAgICB7eyAnQUREX01PUkVfRklMRVMnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJysgQWRkIE1vcmUgRmlsZXMnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU0tTMTFKVU4yNSBSaWdodCBQYW5lbCAtIFByZXZpZXcgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LXBhbmVsXCI+XG4gICAgICAgIEBpZihjdXJyZW50RmlsZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRlbnRcIj5cbiAgICAgICAgICBAaWYoaXNJbWFnZSAmJiBmaWxlVXJsKXtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiIGNsYXNzPVwicHJldmlldy1pbWFnZVwiIGFsdD1cIkZpbGUgUHJldmlld1wiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIGlmKGZpbGVVcmwpe1xuICAgICAgICAgIDxpZnJhbWUgW3NyY109XCJmaWxlVXJsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNTAwcHhcIj48L2lmcmFtZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2UgaWYoaXNMb2FkaW5nKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICA8cD57eyAnTE9BRElOR19QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdMb2FkaW5nIHByZXZpZXcuLi4nIH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICA8ZGl2Pnt7ICdVTkFCTEVfVE9fTE9BRF9QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdVbmFibGUgdG8gbG9hZCB0aGUgZmlsZSBwcmV2aWV3LicgfX08L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBlbHNle1xuICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcHJldmlld1wiPlxuICAgICAgICAgIDxwPnt7ICdTRUxFQ1RfRklMRV9UT19QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdTZWxlY3QgYSBmaWxlIHRvIHByZXZpZXcnIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFNckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVV0QyxNQUFNLE9BQU8sc0JBQXNCO0lBK0JiO0lBQXNDO0lBQWtDO0lBQ25GO0lBL0JDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsUUFBUSxDQUFDO0lBQ1Qsa0JBQWtCLENBQUM7SUFDbkIsSUFBSSxHQUE4QixNQUFNLENBQUMsQ0FBQyw0QkFBNEI7SUFDdEUsZ0JBQWdCLENBQUM7SUFDakIsUUFBUSxDQUFDO0lBQ1QsS0FBSyxDQUFNO0lBQ1gsSUFBSSxDQUFNO0lBQ25CLGNBQWM7SUFDUCxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFFLG1CQUFtQjtJQUM3QyxRQUFRLEdBQVcsQ0FBQyxDQUFDLENBQUssZ0JBQWdCO0lBQzFDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJ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LGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVksRUFBRSxRQUFRO3FCQUN2QjtpS0FLUyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSTE4blBpcGUgfSBmcm9tICcuLi8uLi9pMThuLnBpcGUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEkxOG5QaXBlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOeHRGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRGaWxlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbEZpbGVzO1xuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7IC8vIFNLUzExSlVOMjUgTmV3IG1vZGUgaW5wdXRcbiAgQElucHV0KCkgaXNTaG93Tm9GaWxlSWNvbjtcbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGVycm9yOiBhbnk7XG4gIEBJbnB1dCgpIGZyb206IGFueTtcbiAgLy9SUyAwOUpBTjIwMjVcbiAgcHVibGljIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMDsgIC8vIGluIGJ5dGVzKEJpbmFyeSlcbiAgcHVibGljIG1heEZpbGVzOiBudW1iZXIgPSA0OyAgICAgLy8gZGVmYXVsdCBsaW1pdFxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcblxuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGVOYW1lQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBjb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICBwdWJsaWMgY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0O1xuICBwdWJsaWMgZmlsZVVybDtcbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG4gIGN1cnJlbnRGaWxlOiBhbnk7XG4gIHB1YmxpYyBzaG93UG9wdXAgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBBZGQgcG9wdXAgdmlzaWJpbGl0eSBjb250cm9sXG4gIHZpZXdFZGl0OiBib29sZWFuID0gZmFsc2UgXG4gIG9yaWdpbmFsVmFsdWU6IGFueTsgLy8gU0tTMTNKVU4yNSBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkgeyB9XG4gIC8vUlMgMDlKQU4yMDI1XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZpbGVDb25maWdzKCk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChzaW1wbGVDaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IHNpbXBsZUNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzKSB7ICAvL1NLUzVOT1YyNVxuICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gc2ltcGxlQ2hhbmdlcy5hbGxGaWxlcy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgfVxuXG4gICAgaWYgKHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nKSB7XG4gICAgICB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCA9IHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nPy5jdXJyZW50VmFsdWU7XG4gICAgfVxuXG4gIH1cblxuICAvL1JTIDA5SkFOMjAyNSBJbml0aWFsaXplcyBmaWxlIHVwbG9hZCBzZXR0aW5ncyAoYWxsb3dlZCB0eXBlcywgbWF4IHNpemUsIGFuZCBtYXggZmlsZXMpIGJ5IHBhcnNpbmcgbWV0YWRhdGEgZnJvbSBmaWVsZHNNZXRhXG4gIGluaXRpYWxpemVGaWxlQ29uZmlncygpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uZmllbGRzTWV0YSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gU0tTMjBNQVIyNSBjaGVjayBpZiBxdWVzdGlvbiBmaWVsZHNtZXRhIGlzIHN0cmluZ1xuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IHR5cGVvZiB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvblsnZmllbGRzTWV0YSddIHx8IFtdIDogSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10pO1xuICAgICAgICBjb25zdCBmaWxlQ29uZmlnID0gbWV0YURhdGFbMF07ICAvLyBHZXQgZmlyc3QgY29uZmlnIG9iamVjdFxuICAgICAgICBpZiAoZmlsZUNvbmZpZykge1xuICAgICAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGVDb25maWcuYWxsb3dlZFR5cGVzIHx8IFtdO1xuICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUgPSBmaWxlQ29uZmlnLm1heEZpbGVTaXplIHx8IDA7XG4gICAgICAgICAgdGhpcy5tYXhGaWxlcyA9IGZpbGVDb25maWcubWF4RmlsZXMgfHwgNTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBmaWVsZHNNZXRhOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gU0tTMTFKVU4yNSBPcGVuIHRoZSBwb3B1cFxuICBvcGVuUG9wdXAoKSB7XG4gICAgdGhpcy5zaG93UG9wdXAgPSB0cnVlO1xuICAgIHRoaXMudmlld0ZpbGUodGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzWzBdKVxuICB9XG5cbiAgLy8gU0tTMTFKVU4yNSBDbG9zZSB0aGUgcG9wdXBcbiAgY2xvc2VQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dQb3B1cCA9IGZhbHNlO1xuICB9XG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdOyAvLyBSUyAxN0pBTjIwMjUgQ2xlYXIgcHJldmlvdXMgZXJyb3JzXG4gICAgbGV0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWxlRGF0YSA9IFtdO1xuICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAvLyBSUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBjb3VudCBsaW1pdFxuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoID4gdGhpcy5tYXhGaWxlcykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuXG4gICAgICAvL1JTIDA5SkFOMjAyNSBDaGVjayBmaWxlIHR5cGVcbiAgICAgIGNvbnN0IGZpbGVFeHQgPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dCkpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEZpbGUgdHlwZSAke2ZpbGVFeHR9IG5vdCBhbGxvd2VkLiBBbGxvd2VkIHR5cGVzOiAke3RoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy9SUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBzaXplXG4gICAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSA+IDAgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIGV4Y2VlZHMgc2l6ZSBsaW1pdCBvZiAke3RoaXMubWF4RmlsZVNpemUgLyAxMDQ4NTc2fU1CYCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gZmlsZUV4dC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGNvbnN0IGZpbGVSZWFkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0ge1xuICAgICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSwgLy8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEVycm9yIHJlYWRpbmcgZmlsZSBcIiR7ZmlsZS5uYW1lfVwiYCk7Ly8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkRmlsZXNQcm9taXNlcy5wdXNoKGZpbGVSZWFkUHJvbWlzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZWFkRmlsZXNQcm9taXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBXYWl0IGZvciBhbGwgcHJvbWlzZXMgdG8gcmVzb2x2ZVxuICAgICAgUHJvbWlzZS5hbGwocmVhZEZpbGVzUHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBpbnB1dEZpbGVzO1xuICAgICAgICBsZXQgY2hhbmdlOiBhbnk7XG4gICAgICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGlucHV0RmlsZXM7XG4gICAgICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcmVhZGluZyBmaWxlcycpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignWW91IGNhbiB1cGxvYWQgbWF4IDUgZmlsZXMnKTtcbiAgICAgIC8vIHRoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcbiAgICB9XG5cbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xuICAgIGNvbnN0IGRlbGV0ZWRGaWxlTmFtZSA9IHRoaXMuc2VsZWN0ZWRGaWxlTmFtZUFycmF5LnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcy5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLnZpZXdGaWxlKHRoaXMuY29weU9mSW5wdXRBbGxGaWxlc1swXSkgOiB0aGlzLnZpZXdGaWxlKG51bGwpO1xuICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgfVxuXG5cbiAgLy8gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlc1xuICAvLyBSUyAwOURFQzI0IENoYW5nZWQga2V5c1xuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICAvLyBBUC0yNU1BUjI1IEVuc3VyZSBzdWJUZXh0IGlzIHBhcnNlZCBpbnRvIGFuIG9iamVjdCBpZiBpdCdzIG5vdCBhbHJlYWR5XG4gICAgdGhpcy5xdWVzdGlvblsnc3ViVGV4dCddID0gdHlwZW9mIHRoaXMucXVlc3Rpb24/LnN1YlRleHQgPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA6IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvblsnc3ViVGV4dCddKSB8fCB7fTtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5zdWJUZXh0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IGZpbGVNZXRhID0gdGhpcy5xdWVzdGlvbi5zdWJUZXh0O1xuICAgICAgbGV0IGVuZHBvaW50ID0gZmlsZU1ldGEuZW5kcG9pbnQ7XG4gICAgICBsZXQgcXVlcnlQYXJhbWV0ZXIgPSBmaWxlTWV0YS5xdWVyeVBhcmFtZXRlcjtcbiAgICAgIGxldCBmaWxlID0gY3VycmVudEZpbGU7XG4gICAgICBpZiAoZW5kcG9pbnQgJiYgZmlsZVtxdWVyeVBhcmFtZXRlcl0pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlXG4gICAgICAgIGNvbnN0IGZ1bGxFbmRQb2ludCA9IGVuZHBvaW50ICsgJz8nICsgcXVlcnlQYXJhbWV0ZXIgKyAnPScgKyBmaWxlW3F1ZXJ5UGFyYW1ldGVyXTtcbiAgICAgICAgaWYgKGZ1bGxFbmRQb2ludCkge1xuICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZnVsbEVuZFBvaW50KS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKCk7IC8vIENhbGwgZmFsbGJhY2sgbWV0aG9kXG4gICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTsgLy8gUmV0dXJuIGEgZmFsbGJhY2sgdmFsdWUgdG8ga2VlcCBvYnNlcnZhYmxlIGNoYWluIGFsaXZlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFwaVJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWxlQ29udGVudChhcGlSZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmlld0xvY2FsRmlsZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdMb2NhbEZpbGUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIC8vIFZEIDAzQXVnMjQgcHJvY2VzcyBsb2NhbCBwcmV2aWV3IFxuICB2aWV3TG9jYWxGaWxlKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRGaWxlKSB7XG4gICAgICB0aGlzLnNldEZpbGVVcmwodGhpcy5jdXJyZW50RmlsZT8uZG9jKTtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLmN1cnJlbnRGaWxlLm5hbWU7XG4gICAgICB0aGlzLmlzSW1hZ2UgPSB0aGlzLmN1cnJlbnRGaWxlLnR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xuICAgIH1cblxuICB9XG5cblxuICBoYW5kbGVGaWxlQ29udGVudChmaWxlUmVzcG9uc2U6IGFueSkge1xuICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGZpbGVSZXNwb25zZS5jb250ZW50LmRhdGEpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBmaWxlUmVzcG9uc2UudHlwZSB9KTtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICB0aGlzLnNldEZpbGVVcmwodXJsKTtcbiAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcbiAgICBpZiAoZmlsZVJlc3BvbnNlLm5hbWUpIHtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlUmVzcG9uc2UubmFtZTtcbiAgICAgIGNvbnN0IGltYWdlRXh0ZW5zaW9ucyA9IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICdibXAnLCAnd2VicCddO1xuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVSZXNwb25zZS5uYW1lLnNwbGl0KCcuJykucG9wKCk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmlzSW1hZ2UgPSBpbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbiB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmlsZVVybCh1cmw6IGFueSkge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbGVVcmwgPSBudWxsOyAvLyBvciBoYW5kbGUgZ3JhY2VmdWxseVxuICAgIH1cbiAgfVxuXG4gIGdldERvY0ljb24oZG9jTmFtZSkge1xuICAgIGNvbnN0IGV4dCA9IGRvY05hbWUuc3BsaXQoJy4nKS5wb3AoLTEpO1xuICAgIHJldHVybiB0aGlzLlNoYXJlZFNlcnZpY2UuZG9jSWNvbihleHQpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5maWxlTmFtZSA9ICcnO1xuICAgIHRoaXMuZmlsZVVybCA9ICcnO1xuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmZpbGVVcmwpIHtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5maWxlVXJsKTtcbiAgICB9XG4gIH1cbiAgdmlld0VkaXRDbGljayhxdWVzOiBhbnkpIHtcbiAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzOyAvL1NLUzEzSlVOMjUgU3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgdGhpcy52aWV3RWRpdCA9IHRydWU7IC8vIEVudGVyIHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xuICB9XG4gIHNhdmVDaGFuZ2VzKCkge1xuICAgIGxldCBxdWVzID0gdGhpcy5xdWVzdGlvblxuICAgIHF1ZXNbJ3NpbmdsZUZpZWxkQ2hhbmdlJ10gPSB0cnVlXG4gICAgbGV0IGNoYW5nZTogYW55O1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoe3F1ZXN0aW9uIDogcXVlcywgdmFsdWU6IGNoYW5nZX0pO1xuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gIH1cbiAgZGlzY2FyZENoYW5nZXMoKSB7XG4gICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gdGhpcy5vcmlnaW5hbFZhbHVlOyAvLyBSZXZlcnQgdG8gb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIFNLUzEzSlVOMjUgRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU0tTMTNKVU4yNSBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxufVxuIiwiPCEtLSBTS1MxMUpVTjI1IGZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIC0tPlxuPGRpdiBjbGFzcz1cImZsZXggaG92ZXItd3JhcHBlclwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4O1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmaWxlLWlubmVyLWRpdlwiPlxuICAgIDxzdmcgKm5nSWY9XCJmcm9tICE9PSAnbnh0VGFibGUnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cbiAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ1cmwoI3BhdHRlcm4wXzYxNl8zNTEyNSlcIiAvPlxuICAgICAgPGRlZnM+XG4gICAgICAgIDxwYXR0ZXJuIGlkPVwicGF0dGVybjBfNjE2XzM1MTI1XCIgcGF0dGVybkNvbnRlbnRVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCIgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiPlxuICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpbWFnZTBfNjE2XzM1MTI1XCIgdHJhbnNmb3JtPVwic2NhbGUoMC4wMDE5NTMxMilcIiAvPlxuICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgIDxpbWFnZSBpZD1cImltYWdlMF82MTZfMzUxMjVcIiB3aWR0aD1cIjUxMlwiIGhlaWdodD1cIjUxMlwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcbiAgICAgICAgICB4bGluazpocmVmPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUlBQ0FZQUFBRDBlTlQ2QUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCM2QzY3VhVzVyYzJOaGNHVXViM0pubSs0OEdnQUFJQUJKUkVGVWVKenQzWGZZSDFXWi8vRjNTRS9vQ2FFVEFnb2lKWFRwZ2dpS2dpdFIxSlVWWGN1NitMT2cvaXpzV3FLcmE4ZTY2cUxpZ29vSUFpcFd5a2FVSmlBZ1JVVnFJTFNFaENTVTlHVC9PTjlISHBLbmZPdmNaMmJlcit1NnI0QVhWK2FUbWNlY2U4NmNPVE1DVmNVNFlCcXdmYU8yQVRZREpnT1RHcitPQnpadS9QZGpnSWxGaDVSNlpCV3d1UEhQVHdMTGdjZUJSNEI1d0tPTlh4OEU3Z0h1QXVZQWF3cFBLbVZpUkhRQXRXd01zQ3V3ZTZPbU4vNTlxOGhRVWdrdEpUVURkd0EzQXpjMGFuWmtLS2tvTmdENW13d2NCQnpjcUgyQnNhR0pwR3BiUUdvRXJnSitDMXdETElrTUpQV0NEVUIrUnBFRy9HT0FGNVB1OEwxT1VweWx3QitBV2NBbHBJWmdkV2dpcVFzY1dQSXdIbmdKOENyZ2FKNStUaThwUDQ4QVB3TitBbHdHTEl1Tkk3WEhCaURPR05JZC9xdUJsd0hyeDhhUjFJYkhnWjhEWjVGbUIxYkZ4cEdhWndOUXZHY0Jid2JlQUd3ZUcwVlNGejBJL0JqNERtbFJvWlExRzRCaWpBU09CMDRHanNEekxsWGRGY0NYZ1F0eFZrQ1pjaURxclhHazUvci9CdXdjbkVWUzhlNEZ2Z21jRGp3V0cwVjZKaHVBM3RnRWVBL3dObURUNEN5UzRpMG1OUUdmSlcxSUpJV3pBZWl1OVlIL0Izd1FWL0pMV3RlVHBEVUNud1RtQm1kUnpka0FkTWM0NEozQSswbmI3a3JTVUJZQlgyelU0bUgrVzZrbmJBQTZkeHp3SldDSDZDQ1NTbWMrOEIvQVYzRnpJUlhNQnFCOTAwa0QvK0hCT1NTVjN6WEFPNERybzRPb1B0YUxEbEJDNDBrTGVhN0h3VjlTZHh4QTJtNzRkTklpWXFubm5BRm96YUhBdC9DVlBrbTk4d2p3cjZTdGhxV2VjUWFnT2V1VE92UExjZkNYMUZ1Ymt6WVEraTYrVGFRZWNnWmdlUHNEUHlCdDRTdEpSWm9EdkpIMG5RR3BxMFpHQjhqWWVxUlgrMzRJYkJhY1JWSTliUWo4RTJudDBTeGdUV3djVllrekFBT2JBcHhEMnJkZmtuSndDWEFpN2lTb0xyRUJXTmYrcEM5NmJSc2RSSkxXTW9mMENmR3Jvb09vL0Z3RStFd25BYi9Gd1Y5U25yWWhQUXA0WFhRUWxaOXJBSktScEUxOVBnMk1EczRpU1VNWkNieWNOSU43ZVhBV2xaZ05BRXdFZmdTOFBqcUlKRFZwQkdranN1MkJYd0tySXNPb25PcStCbUFMNEdmQWZ0RkJKS2xObDVGbUJKNklEcUp5cVhNRE1CVzRGTi92bDFSK1Z3SXZ3UzhMcWdWMWJRQ21rYnJtYWRGQkpLbExyZ2RlQkN5SURxSnlxR01Ec0F2cHpuK3I2Q0NTMUdVM0FFZGhFNkFtMUswQjJJMzBDczNrNkNDUzFDUFhBUy9BTlFFYVJwMzJBWGdXY0RFTy9wS3FiVC9ncDhEWTZDREtXMTFlQTl5V2RPZnZCaitTNm1BYXNDTndRWFFRNWFzT0RjQVd3TytBSGFLRFNGS0JkZ2ZHa2RZOFNldW9lZ013RWZnTjZkbS9KTlhOSWNCYzBoc0Mwak5VZVJIZ2VxU1AraHdmSFVTU0FxMEFqZ1IrSHgxRWVhbnlJc0F2NHVBdlNhT0JjL0hWWjYybHFnM0FXNEYzUm9lUXBFeHNRWm9SSFJNZFJQbW80aHFBL1VuZDdxam9JSktVa1cyQkRZRmZSd2RSSHFyV0FFd2hiZkc3YVhRUVNjclFBY0Q5d0kzUlFSU3ZTb3NBUndLWEFFZEVCNUdrakMwQkRnWCtHQjFFc2FxMEJ1QlVIUHdsYVRqamdRdEpNNmFxc2FyTUFPd0RYRTFhN1NwSkd0NlZwRzhHTEk4T29oaFZXQU13a2JUSHY5MnNKRFZ2TzJBVDRGZlJRUlNqQ2czQWZ3RkhSNGVRcEJMYUg3Z1B1Q2s2aUlwWDlrY0Fod1AvUy9uL0hKSVVaUmx3R0hCdGRCQVZxOHdENTNqZ1p0Sm5maVZKN1hzSTJCZDRNRHFJaWxQbXR3QStqb08vSkhYRGxxU2RBc2RHQjFGeHlyb0dZRHB3QnVWdVlDUXBKOXNDazRGZlJBZFJNY3JhQUp3RDdCQWRRcElxWmwvUzR3QTNDYXFCTXE0QmVDVndYblFJU2Fvb1B4OWNFMlZyQU1ZQ3QrS3pmMG5xcFlkSnN3RVBSQWRSNzVUdEdmcTdjUENYcEY3ciszeXdpd0lyckV4ckFOWUhma1RhK1UrUzFGdmJrSFlML0VsMEVQVkdtUnFBVTRHWFJvZVFwQnFaRHN3RnJvOE9vdTRyeXhxQWpZRzdTZnRXUzVLS3N3STRDcmc4T29pNnF5eHJBTjZMZzc4a1JSaE5ldnk2VFhRUWRWY1paZ0Fta0Q1V01TazZpQ1RWMkkzQXdjQ1M2Q0RxampMTUFMd1pCMzlKaXJZWDhOL1JJZFE5dVM4Q0hBbDhIOWcwT29na2llbkFBdnh5WUNYa1BnTndQTEJqZEFoSjB0OTlnZlFwZHBWYzdnM0F5ZEVCSkVuUE1KcTBTZEMwNkNEcVRNNkxBSGNFN2lEdmpKSlVWemVSRmdVK0ZSMUU3Y2w1QnVCZmNQQ1hwRnp0Q1p3ZUhVTHR5M1VSNEdqZ2YwamIvMHFTOHJRSDhEaHdkWFFRdFM3WEdZQmpTQitqa0NUbDdUT2t6d2VyWkhKdEFGNFRIVUNTMUpSUndMbjR4bGJwNVBpTWZRTHdDRTcvUzFLWjNBd2NCRHdaSFVUTnlYRUc0Q1U0K0V0UzJld0JuRVdlTjVZYVFJNkxBRDhLN0JvZFFwTFVzbDFJcndWZUdSMUV3OHV0VXhzRnpDTjkvbGVTVkQ2cmdXT0JYMFVIMGRCeWV3UndFQTcra2xSbTZ3RS9BSjRWSFVSRHk2MEJPQ1k2Z0NTcFk1c0FQd00yakE2aXdka0FTSko2WVJmZ1RQSjcxS3lHbkJZQlRnWStqejhza2xRVnp3R1dBNytQRHFKMTVUUURjREFPL3BKVU5mOUJXaFNvek9UV0FFaVNxbVU5NEd6U0l3Rmx4QVpBa3RSckd3QVhBaHRGQjlIVGNwbHlId3NzYXZ3cVNhcW1ud0F6Z0RYUlFaVFBETUJ6Y2ZDWHBLcDdPZkRoNkJCS2Nta0E5b2dPSUVrcXhFemdGZEVoWkFNZ1NTcldDT0M3K00yWGNEWUFrcVNpYlFCY2dGdS9oOHFsQVhodWRBQkpVcUYySW4wK09KZHhxSFp5MkFsd1BQQXA4bmtqUVpKVWpKMUpEY0NzNkNCMWxFUG50VDBPL3BKVVZ4OENUb2dPVVVlNU5BQ1NwSG9hQVp3QjdCWWRwRzV5YUFDbVJRZVFKSVZhbi9UNTRFblJRZW9raHdaZ20rZ0FrcVJ3MDREdmtjZTRWQXM1bk9qTm9nTklrckp3RFBDSjZCQjFrVU1ENEpTUEpLblBCNEZYUjRlb2d4d2FnTW5SQVNSSjJlamJLWER2NkNCVlp3TWdTY3JOZU9COEhCOTZLb2NHWUlQb0FKS2s3R3dQL0lBOE5xeXJwQndhQUQ4RExFa2F5TkdrbldMVkF6azBBR09pQTBpU3N2VSs0UFhSSWFvb2h5MTRueUk5NzVFa2FTQkxnRU9CUDBZSHFaSWNHb0NWK0l4SGtqUzAyY0Ird0x6b0lGV1J3eU1BQjM5SjBuQ21BdWNBbzZLRFZFVU9EWUFrU2MxNEFmRFo2QkJWa2NNamdEWFJBU1JKcGZJbTBoY0UxUUViQUVsUzJTd0ZEZ091aXc1U1pqWUFrcVF5dWgvWUY1Z2JIYVNzWEFNZ1NTcWpiWUVMY0MrWnR0a0FTSkxLNm1EZ0M5RWh5c3BIQUpLa3Nuc0w4TzNvRUdWakF5QkpLcnRscEVXQjEwWUhLUk1iQUVsU0ZUeEVXaFQ0WUhTUXNuQU5nQ1NwQ3JZRWZveGZtRzJhRFlBa3FTb09CTDRVSGFJc2ZBUWdTYXFhdHdLblI0ZkluUTJBSktscVZnQkhBcitQRHBJekd3QkpVaFU5VEZvVStFQjBrRnk1QmtDU1ZFVmI0S0xBSWRrQVNKS3E2Z0JjQ3pBb0d3QkpVcFdkQkp3Y0hTSkhyZ0dRSkZYZEN1QW80UExvSURteEFaQWsxY0Vqd0g2a3p3Z0xId0ZJa3VwaGMrQ253UGpvSUxtd0FaQWsxY1Zld0g5SGg4aUZEWUFrcVU1ZUI3d2pPa1FPWEFNZ1NhcWJsY0RSd0t6b0lKRnNBQ1JKZFRTZnRDandudWdnVVh3RUlFbXFvMG5BQmNDRTZDQlJiQUFrU1hXMUp6WGVLZEFHUUpKVVp5Y0M3NGtPRWNFMUFKS2t1bHNGSEF2OE9qcElrV3dBSkVtQ0JjRCt3RjNSUVlyaUl3QkprbUJUMHFMQWlkRkJpbUlESUVsU3NnZHdGbm5NanZlY0RZQWtTVStiQWJ3dk9rUVJjdWh5WEFNZ1NjckphdUE0NEpmUlFYckpCa0NTcEhVOVJsb1VlR2Qwa0Y3eEVZQWtTZXZhQlBnWnNHRjBrRjZ4QVpBa2FXQzdBR2VTeDJ4NTE5a0FTSkkwdUpjRHAwYUg2SVVjdWhyWEFFaVNjcllhZUJGd2FYU1FicklCa0NScGVBOEF1NU1XQjFhQ2p3QWtTUnJlMXNCcDBTRzZ5UmtBU1pLYU53TzRNRHBFTjlnQVNKTFV2TG1rUndGem80TjB5a2NBa2lRMWJ3cnc1ZWdRM2VBTWdDUkpyWHNWY0Y1MGlFN1lBRWlTMUxxNXdFN0FvdWdnN2ZJUmdDUkpyWnNDZkRRNlJDZWNBWkFrcVQwcmdiMkFXNk9EdE1NWkFFbVMyak1LK0dKMGlIYlpBRWlTMUw0WEFzZEZoMmlIandBa1Nlck1YY0N1d0xMb0lLMXdCa0NTcE03c0NKd1NIYUpWemdCSWt0UzV4Y0EwWUVGMGtHWTVBeUJKVXVjMkJONFZIYUlWemdCSWt0UWRpMGl6QUtYNFpMQXpBSklrZGNkR3dEdWlRelRMR1FCSmtycG5JV2tXWUdGMGtPRTRBeUJKVXZkc0RKd2NIYUlaemdCSWt0UmQ4MG16QUk5SEJ4bUtNd0NTSkhYWEpPQXQwU0dHNHd5QUpFbmRONXUwUWRDcTZDQ0RzUUdRRkdFNWNDOXBDOVU3Z1llQkI0RkhTTjlaZndwNGtvR25VQ2NBNDBqUFdpY0JtelZxYTlLMDZ3Nk4ycWlYZndDcENTOERMb29PTVJnYkFFbTl0aGk0QnJpeFVUZVJCdjFlM3hsdEIremVxSDJBZzRDdGVueE1xYjlMZ0tPalF3ekdCa0JTdHowQlhBcjhML0I3NEJieW1RYWRDaHdNSEVuNmkzbWIyRGlxdURYQVRxU0dOenMyQUpLNllRNXdQdkJ6MHFCZmxxK2k3UUljQzh3QW5rY2VmeWVxV2o0SmZDZzZ4RUJ5K0dHM0FaREthUzV3RG5BdWNCWGwvLy95TnNBcmdKT0F2WU96cURybUFOdVR6eXpZMzlrQVNHckZhdUJpNE51a3hVM0xZK1Awek83QTY0RTNrQllhU3AwNEJ2aDFkSWkxMlFCSWFzWVR3Tm5BYWNEdHdWbUtOQlo0TmZCdVlNL2dMQ3F2NzVGbWxySmlBeUJwS0k4QW53ZStSZnJTV1owZENmd2I4SUxvSUNxZFJjQVd3TkxvSVAyNUU2Q2tnY3dGL2ovcGZmclA0K0FQY0JtcENUZ1ErR1Z3RnBYTFJzQ0xva09zelFaQVVuOVBBaDhsRGZ4ZklHM0lvMmU2Qm5ncDhIemc2dUFzS284VG9nT3N6VWNBa2lBdDd2c2Y0TU9rSGZuVXZCbWtabW43NEJ6SzJ3SmdjMkJsZEpBK3pnQkl1cG0wT2M2YmNQQnZ4d1hBYzRHUGtka3pYbVZsVTlMam8yellBRWoxOVNUcE9mOCtwR2x0dFc4Sk1CUFlEWmdWRzBVWmUybDBnUDU4QkNEVjAxV2s5OXl6M0tLMDVFWUFid1UrQzJ3UW5FVjV1Um1ZSGgyaWp3MkFWQy9MU1ZQVm55SERuY2txWmlyd2ZlQ1E2Q0RLeGhwZ0N2Qm9kQkR3RVlCVUovZVNCcVAveE1HL0NMT0JJNENQNC9sV01vTDA5a2dXYkFDa2V2Z0Y2Vm4vZGRGQmFtWWw2YlhLSTRHSGc3TW9ENGRIQitoakF5QlYyeHJnSThCeHBOZVFGT055WUYvZ0Q5RkJGTzdRNkFCOVhBTWdWZGNxMHY3alowY0gwZCtOQmY2TDlNcWw2bWtsYVdmQThFMjJuQUdRcXVzVUhQeHpzd3g0TTNBcTN2elUxU2d5K2JDVURZQlVUZWNDWDRzT29VRjlHamlSMUJDb2Z2YUxEZ0EyQUZJVkxRTGVHUjFDdy9vaDZUdnhUMFFIVWVHeTJBdkFCa0NxbnErU1B1T3IvTTBpdlNvNFB6cUlDclZMZEFCd0VhQlVOU3RKWC9LN1B6cUlXckkzOEJ0Z2NuUVFGV0lSc0hGMENHY0FwR3I1S1E3K1pYUUQ2WHZ4aTZLRHFCQWJBVnRIaDdBQmtLcmxwOUVCMUxZYmdCZmptb0M2MkNFNmdBMkFWQzFYUlFkUVI2NEJqc2UzQStwZ2FuUUFHd0NwT2g0Qjdvb09vWTVkU3ZwU28rdWpxbTNiNkFBMkFGSjEzQkVkUUYzekk5SkhoRlJkMjBVSHNBR1Fxc01GWk5YeU1lQUgwU0hVTTFPaUE5Z0FTTld4TURxQXVtb05hZHZnRzZLRHFDYzJqUTVnQXlCVmgvOS9ycDZsd0t1d3Vhc2lHd0JKWFJPK3FFZzljUmN1Q3F5aThBYkFuUUNsNnJpUERGNHRhc01JVXZPeVU2T21rSFpKNjZ2UndKT04vM1loc0FTWURjd2hiWHAwSnpDdjJNZ2h2Z3E4UFRxRXVtWSt3VHMvMmdCSTFiRUsyQVI0UERySU1DWURoelhxVU5LKzZPTTcvRDN2QTY0RC9nQmMzYWhWSGY2ZXVaa0EvQkY0VG5RUWRjWGp3SWFSQVd3QXBHbzVGdmhGZElnQlBKZjBMSHNHc0J1OS83dG5QdkJMNEdla1BmWnpiNHFhdFM5cHM2ZlIwVUhVc1dYQXVPZ1EwZFpZbHRXMU9vdDhiQTc4TzNBenNlZmtDZUJid0Y2OS9lTVc1aFBFLzV4Wm5kZnF0UzlzMFp3QmtLcmxLV0FhTURjd3crN0FLY0NKd05qQUhBTzVHdmd5Y0I0Wi9BWGNwdkdrcHVwWjBVSFVzZEF4MkxjQXBHcVpRTHJyanJBMzhHdmdUOEFieVcvd0J6Z1FPSWYwYnYxTGc3TzBhd253dHVnUVVqZEVUOE5ZVnRWcUpmQThpck1kNmRIRHFpNy9PWXFvM3dQN2RQK1VGT0ljNHMrZjFWbUY4aEdBVkUxelNFM0FnejA4eGxqZ1E4Qjc2WHdWZjZTVndHZEplKytYNlN0ODJ3Ti93WVZrWmVZakFFbGR0dzB3aTk3dEN6QWR1SmJVQUpSNThBY1lCZndiNlJXNy9ZS3p0T0plNEN2UklWUmV6Z0JJMVRZWE9JbjBLbHczakFMZUQzd1VHTk9sM3pNbks0QjNBZCtJRHRLa2pVZ2JJWVZ1S0tPMk9RTWdxV2VtQUw4Q3ZnZnMwT0h2TlozMER2b25xZWJnRCtuOStxOEQzNlFjNzlvdkFqNGZIVUxsNUF5QVZCK3JTYzNBMTRCTFNjKytoek9DdEZ2ZjI0QVRxTmROdys5SUd4Zk5qdzR5alBXQmUzQVdvSXhDeDJBYkFLbWVuaVJ0blhzRjZXTXppMGwzazVEV0Qwd2w3Y3YvQW1ETGlJQ1p1QWw0SWZrM0FSOEVQaFVkUWkyekFZZ09JRWxEK0JPcENYZzBPc2dRTmlCOUdHbWo2Q0JxaVdzQUpDbGowNEhMeUh1Sy9YSGdPOUVoVkM3T0FFaFNjNjRqUFJKNUlqcklJS2FTM2dnWUZSMUVUWE1HUUpKS1lEL1NOd1J5ZlR0Z051bnJoMUpUYkFBa3FYa3ZCczRrMzc4N3Z4MGRRT1hoSXdCSmF0Mm5nVk9qUXd4Z0pPbVZ3RzJqZzZncFBnS1FwSkw1QVBBUDBTRUdzSW8wUXlFTnl4a0FTV3JQbzhCZXBBOHY1V1FuNFBib0VHcUtNd0NTVkVLVGdiUEpiOVg5MzBoN0YwaERzZ0dRcFBZZFN2cVNZRzdPaXc2Zy9Qa0lRSkk2c3hUWWpiU2xjaTU4REZBT2JnVWNIVUFxMkVMZ0R0SlU3U0xTTG02TFNQdnpMd00ySm4zZ1pTSnBpOWVwd0xPQjdYRFdMbGMvQjQ2TERyR1d2NUYrYnBTdjBERTR0MmRYVXRVOFR2cXEzQ3pnV3RKZDJkdzJmNit4cEwvUWR5Vk5QUjhPUEpjOEd2bTZPN1pSUDQ4TzBzK3ZzUUhRRUhMNGk4TVpBRlhObmNBUFNIOEJYMDl6bjkxdDF4VGcrY0R4cE5mU0p2VHdXQnJhWGFTR2JIbDBrSWFYa2xkRG9uWDVDQ0E2Z05RRkM0RnpnYk9BcTRqNXVWNmYxQWljU1BwNjNjaUFESFgzUnVDNzBTRWFKZ0lMZ0RIUlFUUW9HNERvQUZJSDVnTGZBRTRERmdkbjZXOHE4QjdnelRnclVLVGJTYk1BcTZPRE5Gd05IQkFkUW9OeUh3Q3BoQjRCUGdoc0Q4d2tyOEVmMG9kaDNrVnFCRDVHdWhOVTcrME12RHc2UkQ5WFJBZFF2bXdBcE5Zc0J6NUJHdmcvQXl3SlRUTzhSMGtOeW83QTEwaGJ4YXEzUGhnZG9KOHJvd01vWHo0Q2tKcDNCZkJXNE0vUlFUb3duZFFJSEJJZHBPTDJBVzZJRGdGc0JUd1FIVUtEOGhHQWxMbWx3TW5BWVpSNzhJZTBSZXhod0J0SWV3K29OMDZNRHREd0lPMi9kcXFLc3dHUWhuWS82VFc3YjFLZDJhbzFwQy9HVFNjdEVsUDMvU1A1dklYaGR3RTBJQnNBYVhDWGtMNzJkbTEwa0I2WlRkcE02SXRVcDduSnhaYWtjNXNER3dBTnlBWkFHdGhYZ0dPQStkRkJlbXc1NlhYQjQwbGJFYXQ3VG9nTzBQRFg2QURLa3cyQXRLN1BrMTZocTlPSytaOENSd0R6b29OVXlCSFJBUnB5K2tpUk1tSURJRDNUWjRIM1JZY0ljaDFwZ2VCOTBVRXFZaWRnNitnUXBLMnBwWFhZQUVoUCt6andnZWdRd2Y0S0hBVGNGaDJrSWc2UERrQjZEWEJwZEFqbHh3WkFTajRHZkRRNlJDWWVBSTRDN29rT1VnR0hSd2NnTGZCOE1EcUU4bU1ESUtXZDhtWUdaOGpOUTZRbTRKSG9JQ1czUjNTQWhvZWpBeWcvTmdDcXU1bWt1Myt0Nnk3U04rNmZpQTVTWWp0SEIyaDRLRHFBOG1NRG9EcjdHQTcrdzdrZWVCM3VFOUN1allBcDBTRndOMEFOd0FaQWRUVVRwLzJiOVJQUzl3UFVubWRIQndBZWp3NmcvTmdBcUk2ODgyL2QrNENib2tPVTFBN1JBY2p2YzlYS2dBMkE2dVpqZU9mZmptWEFhM0Mzd0hac0ZCMEFHd0FOd0FaQWRUSVRCLzlPM0U3YUswR3RXVDg2QUttQms1N0JCa0IxTVJPbi9idmhTNlJHUU0zYklEb0FMdUxVQUd3QVZBY3pjZkR2bHVYQU82SkRsRXdPRGNEcTZBREtqdzJBcXM0RmY5MTNDWEJSZEFpMXhBWkE2N0FCVUpYTnhHZit2ZkpobkZadVZnNEw4TVpHQjFCK2JBQlVWVFB4enIrWC9nUmNGaDJpSkhMWVNYRjhkQURseHdaQVZUUVRCLzhpZkRZNlFFbmtzQW5QdU9nQXlvOE5nS3JHWi83RnVRUzRNVHBFQ1N5S0RnQk1pQTZnL05nQXFFcG00alAvb3AwUkhhQUU3b29PQUV5T0RxRDgyQUNvS21iaW5YK0VId0VybzBOazdtL1JBYkFCMEFCR1JRZVF1cURNMC82VGdRT0I1d0hUU2M5cTF5ZnQzSFpIbzY0Q3JnWldCV1VjeWp6Z1V1REYwVUV5dFFDWUh4MENHd0JsYW8xbGRWQXpLWi8xZ0dPQUM0RVZOUGZudkIvNElIayt5ejJKK0orRFhPdnFEczVyTi8yWitITmhyVnUxRjMwQnJQTFdUTXJuQU5JcmRPMyttZThIamlvODlkQW1remFhaWY1NXlMRnkrSXp5Q05KSG5LTFBoYlZ1MVY3MEJiREtXVE1wbDlIQVYwblQrSjMrMlZjQjd5dzIvckJ1SnY1bklzZDZSU2NudFVzMkkvNDhXQU5YN1VWZkFLdDhOWk55R1EyY1QvZlB3MXVML0VNTTR5dkUvMXprVnF1QVNaMmMxQzdaai9oellRMWNvWHdMUUdYek1jclZBSXdHemdGbTlPRDMvaHJ3a2g3OHZ1MjRQRHBBaG00bWp3V0FPMFVIVUo1c0FGUW1EdjdQTkFvNEQ5aTdSNzkvSzNKWjdKYVRTNklETk93YUhVQjVzZ0ZRV1RqNEQyd0NjQzZ3WVkrUE01d0h5ZU9qTnprNU96cEFndzJBQm1RRG9ESnc4Qi9hanVTeEQwSU9HOTdrNGhiZ3B1Z1FEYnRGQjFDZWJBQ1VPd2YvNXJ3ZG1GYndNZGQyZS9EeGMvSzk2QUFOazRqL3VWQ21iQUNVTXdmLzVvMEMzaHR3M1A3dUNENStMbFlDUDRnTzBiQWZhUjhBYVIwMkFNcVZnMy9yL2hFWUczajhSd09QblpNZmt0WkU1R0QvNkFES2x3MkFjdVRnMzU1TmdZTURqNzh3OE5pNVdBVjhNanBFUHdkRkIxQytiQUNVR3dmL3pod2FlR3diZ1BSYVppNXJJY1lBaDBTSFVMNXNBSlFUQi8vTzdSSjQ3RVdCeDg3QmF1QVQwU0g2ZVI0d01UcUU4bVVEb0Z3NCtIZkg1b0hIWGhsNDdCejhOM0JiZEloK1hoQWRRSG16QVZBT0hQeTdaM3pnc2NjRUhqdmFROENwMFNIV2tzczIwY3FVRFlDaU9maDMxeE9CeHg0WGVPeG83eUt2UnlCYmtWNEJsQVpsQTZCSUR2N2ROeWZ3MkpHdklFYjZPV254WDA2T3hmZi9OUXdiQUVWeDhPK05Xd09QWGNjRlovY0RiNG9PTVlEam93TW9mellBaXZBNUhQeDc1YmVCeDk0bThOZ1JsZ0d2Qk9aR0IxbkxGT0NGMFNHVXYxSFJBVlE3WndBZmlBN1JndEhBanlqSEhkVnM0SStCeDk4dThOZ1IzZzVjR3gxaUFQK0lmN2VyQ2M0QXFFamZBOTRDcklrTzBxUytPLzh5RFA0QTN5SDIzTlpwQnVBYndMZWpRd3ppeE9nQVVyUFdXTFdvUzBrRGFsbU1CczRuL3J3MVd3dUJUWHB5SnBwM1BmSG5vWWc2azN4dm52WWcvdnhZelZjb3A0bFVoTDhBSndBcm9vTTBxVXpUL24wK0Fqd1dlUHlSd0hNQ2oxK1VINU1XL2EyT0RqS0lrNk1EU0sySTdzQ3MzdGJEd0ZUS28yeDMvbXVBV2FRQk9OSjA0czlEcitzODhyNXAyZ0JZVFB4NXNwcXZVTGxPWTZrYVZwRHUvR2RIQjJsU21WYjc5N2tQZUMzcEszU1I5ZzArZnE5ZFFEclBPVzkzL0hwU0V5Q1ZSblFIWnZXdVRxRTh5bmpuUDQvWWovLzA5MDNpejBldjZuenlYNzh5Q3JpYitITmx0VmExRjMwQnJON1VEeW1Qc2c3K2UvVGlaTFRwVnVMUFNTK3FESU0vcEZmL29zK1YxWHJWWHZRRnNMcGZkMUtlcVVnSC84NU5JLzZjOUtMS012aVBBRzRpL254WnJWY28xd0NvMjFZQ3J3TWVqdzdTaEw3Vi9tVjY1ajhQT0JLNE9UcElQOGRGQitpQkM0RFhVSTQzVjE1QldvUXBsVTUwQjJaMXQyWlNEcU5KZjhsSG42OVdhaTU1M2ZuMytRM3g1NmFiVlpZN2YwaHZmOXhHL0RtejJxdmFpNzRBVnZmcU92SitUYXFQMC83ZHN4R3dsUGp6MDYwcTArQVBjQkx4NTh4cXYyb3YrZ0pZM2FrVndON2t6enYvN25vNzhlZW5XMVcyd1g4OGNDL3g1ODFxdjJvditnSlkzYWxQcjMxaE0rVGczMzAzRW4rT3VsRmxHL3dCUGs3OGViTTZxOXFMdmdCVzUzVVhNR0h0QzVzWnAvMjc3d0RpejFFM3FveUQvelRnS2VMUG5kVloxVjcwQmJBNnI5ejN6SGZ3NzQwemlEOVBuVllaQjMrQWk0Zy9kMWJuVlh2UkY4RHFyR2F0ZTBtejRyUi9iMndITENQK1hIVlNaUjM4WDB2OHViTzZVN1VYZlFHczltc1ZzTSs2bHpRYkR2NjljenJ4NTZxVEt1dmdQeGw0aFBqelozV25haS82QWxqdDE1a0RYTTljT08zZk85c0R5NGsvWCsxV1dRZC9nSE9KUDM5Vzk2cjJvaStBMVY2dEFKNDF3UFhNZ1lOL2IzMmIrUFBWYnBWNThIOFQ4ZWZQNm03Vlh2UUZzTnFyTXdhNm1CbHcyciszOWlOdDl4eDl6dHFwTWcvK3p3SVdFMzhPcmU1VzdVVmZBS3YxV2dIc09OREZERmJHTy84eURmNmpLTzk3LzJVZS9DZFEzdk51RFYyMUYzMEJyTmJybkFHdlpLeVJ3SStKUHpldFZKa0dmNEQzRW4vTzJxa3lELzRBM3lmK0hGcTlxZHFMdmdCVzYvVzhBYTlrck04VGYxNWFxYklOL3RPQUo0Zy9iNjFXMlFmL2R4Ti9EcTNlVmUxRlh3Q3J0YnB5NE1zWTZwK0pQeSt0Vk5rRy96SEFOY1NmdDFhcjdJUC9ETkxqdHVqemFQV3VhaS82QWxpdDFXc0d2b3hoRHFWY0c5S1ViZkFIK0JMeDU2M1Zxc0xnWCtaWExhM21xdmFpTDREVmZEMEtqQjM0TW9iWW5ISnRpbExHd1g4R3NKcjRjOWRLT2ZoYlphbmFpNzRBVnZQMXBVR3VZWlNmRUg5T21xMHlEdjU3QUF1SlAzZXRsSU8vVmFhcXZlZ0xZRFZmMHdlNWhoRk9JdjU4TkZ0emdkMTdjeHA2WmcvUzVrVFI1NjZWY3ZDM3lsYTFGMzBCck9icVQ0TmR3QUJiQWZPSlB5Zk5sSU4vTWVYZ2I1V3hRcTBYSFVDbDhlUG9BUDE4R2RnME9rUVQ1Z0V2Qkc2SkR0S0NQWURMU0IrZEtZc0xTSXRUVjBRSGFkTU0wdDRhWlc1Z3BMWkVkMkJXYzdYTFlCZXdZUHRUamtWcDN2a1hVOTc1VzJXdTJvdStBTmJ3ZGR1Z1Y2OTRzNGcvSDhOVldSZjhPZmdYeThIZnFyM29DMkFOWDU4YjlPb1Y2NlhFbjR2aHlqdi9Zc3JCMzZwQzFWNzBCYkNHcnhjT2V2V0tkUjN4NTJLbzhzNi9tSEx3dDZwU3RSZDlBYXloNnlsZy9LQlhyemdIRUg4dWhpcnYvSXNwQjMrclNoWEt0d0Ewbk44RFM2SkRBQ2RIQnhpQ3EvMkw0V3AvcVdLaU96QnI2UHJJNEpldU1KTkpUVWowdVJpb3ZQTXZwcnp6dDZwWW9ad0IwSEN1amc0QXZCNFlGeDFpQU43NUY4TTdmNm1pb2pzd2EvQmFCV3cwK0tVcnpGWEVuNHUxeXp2L1lzbzdmNnZLVlh2UkY4QWF2UDQ4eEhVcnl1YWtSaVQ2WFBRdkIvOWl5c0hmcW5xRjhoR0FocExEMVBaeDVQVnpPZzg0a2p6T1RiT2M5aStlMC83S1hrNS9zU28vT2V3QWVGeDBnSDRjL0l2aDRDOFZ3QVpBUTdrMStQZ2pnRU9DTS9RcDYrQi9LUTcrUlhMd1YybU1pZzZnclAwdCtQZzdrTWRYLzhvNitIdm5YeXdIZjVXS013QWF5dXpnNCs4WGZQdytiOExCdjljYy9LV0MyUUJvTVBPQng0TXo3Qk44ZklCemdZdWlRN1RBd2I5NER2NHFKUnNBRGVhKzZBREFyc0hIWHdLY0VweWhGVDd6TDU2RHYwckxOUUFhek1QUkFZQnRnNDkvSHZCUWNJWm1lZWRmUEFkL2xab3pBQnJNL09nQXdOYkJ4ejg5K1BqTmN2QXZub08vU3M4R1FJTjVMUGo0RTRCTkFvOC9HN2d5OFBqTmN0cS9lQTcrcWdRYkFBMW1RZkR4dHd3K2ZnNGZRUnBPMytDL1dYU1FGamo0UzVsd0RZQUdzelQ0K0dPRGozOU44UEdINDdSLzhSejhWU25PQUdnd3k0S1BILzJ6ZVdmdzhZZDVNNmgyQUFBUTJVbEVRVlRpdEgveEhQeFZPYzRBYURETGc0OGYvYlA1WlBEeEIrT2RmL0VjL0ZWSjBYZFp5dGZLNE9OSC8yd3VDVDcrUUx6ekw1NkR2eW9yK2k1TCtZcitDeTk2QU40dytQaHI4ODYvZUE3K3FyVG91eXpsSzNvUjNxUEJ4OThwK1BqOU9mZ1h6OEZmbFdjRG9NR01DVDcrQW1CMTRQRjNEangyZjA3N0Y4L0JYN1ZnQTZEQlRBZysvaXBpTnlNNkl2RFlmWHpQdjNnTy9xb05Hd0FOWmxKMEFHTDM0ZCtOTkFCSGNmQXZub08vYXNVR1FJUFpORG9BY0Z2dzhkOFRkRndILytJNStLdDJiQUEwbUJ4bUFHNE5QdjdyZ0gwS1B1YnVPUGdYemNGZnRXUURvTUZFNzhVUGNFdnc4ZGNEdmdlc1g5RHhkaWV0OW5md0w0NkR2MnJMQmtDRG1Sb2RnUGdHQUdBWDBpRFg2OWNpSGZ5TDUrQXZCVnRqWlZzNXZIcDJQL0huWVEzd2UzcDNQdllBNW1id1oyeWx6cWZjQStjTTBuYlgwZWZScW5lRmNnWkFRNWthSFFDNEpEcEF3eUhBRmNEMlhmNTlEd04raTNmK1JmTE9YOElHUUVON1RuUUE0T0xvQVAzc0RGd0hITk9GMzJzRThDNVNnN05KRjM2L29qajRTK3FhNkNrWWEvRDYxQkRYclNpYmtUWUZpajRYL1dzMWFYSGdObTMrbWZZaVBWS0kvbk8wV2s3N1cxWjNxL2FpTDRBMWVGMDB4SFVyMG0rSlB4Y0QxVExnRE5JMC9uQ3phZU9BNDRGZmtCcUk2T3l0bG9PL1pYVy9RbzJJRGtBR0owR0R1bzg4MWdHOEFmaHVkSWhoUEFaY0NmeUZ0S0J2TVdscWYydlNyb0lIQU9QRDBuWEdhWCtwTjBMSFlCc0FEV2NyWXJma0JaZ0lQRXh4NytQcmFRNytVdStFanNFdUF0UndEb3dPQUR4Sm1vSldzUno4cFFxekFkQndjbWdBQUw0UkhhQm1IUHlsaXJNQjBIQU9pUTdROEFmU0h2bnFQUWQvcVFaY0E2RGhyQUttQUF1aWd3Q0hBN09pUTFTY2c3OVVITmNBS0dzamdTT2lRelQ4bHZUK3ZIckR3VitxRVJzQU5lTkYwUUg2K1JET0d2V0NnNzlVTXpZQWFzWkx5T2RuNVhmQTk2TkRWSXlEdjFSRHJnRlFzdzRoYlhTVGc4MkJ2d0liUndlcEFBZC9LWTVyQUZRS0owUUg2T2NSNE1QUklTckF3VitxTVdjQTFLdzVwRzJCVjBjSGFSaEplaTN3OE9BY1plWGdMOFZ6QmtDbHNBMzV2QTBBNmZYRTE1QzJDRlpySFB3bDJRQ29KVytNRHJDV1I0RFhrcG9CTmNmQlh4SmdBNkRXekNCOTRTNG5zNEJQUlljb0NRZC9TWDluQTZCV2pBUCtLVHJFQUQ0S25CMGRJbk1PL3BLZXdVV0FhdFU5d0xQSmI5cDlOUEJUNEpqb0lCbHk4SmZ5NUNKQWxjbzA0TGpvRUFOWUFid1N1Q282U0dZYy9DVU55QVpBN1hoM2RJQkJQQVc4RExnMk9rZ21IUHdsRGNvR1FPMDRERGdvT3NRZzVnTkhBcitKRGhMc2ZCejhKUTNCQmtEdG1oa2RZQWhQQU1jQ1owUUhDZklWNE5VNCtFdkszQnFydEhYSUFOY3pKeU9BajVNV0xFYWZxeUpxS2ZENnJweTVPRE9BNWNTZlM4c3Fva0w1Rm9BNk1RdDRRWFNJSmh3RmZJLzBFYUdxZXBnMGVGNGRIYVFEM3ZtcmJud0xRS1YxQkhtK0ViQzJTNEE5Z0l1amcvVElqMGwvUGdkL1NhVVNQUVZqZFZhM1U1Ni90RWNDYndNZUkvNjhkYU1lSlMzMEt6dW4vYTI2VnUxRlh3Q3I4enBsbmF1YXQ4MkJNMGxmTm93K2QrM1VhdUNId0JiZFBqRUJIUHl0T2xmdFJWOEFxL042RE5oeTdRdGJBb2NDbHhOLy9scXBTNEI5ZW5FeUFqajRXM1d2Mm91K0FGWjM2cnkxTDJ5SkhFcmFOeUQ2SEE1VlY1RVdNMWFGZzc5bEtmd0NXTjJybDFGdSs1SDJEbGhNL0xsY1E5clo4RHRVNTQ2L2o0Ty9aYVVLNVd1QTZxYjdTYXZSRjBZSDZkQkUwaUQxQnVENXBNV0RSVmtGWEFsY0NKd0ZMQ2p3MkVWd3RiLzB0TkF4MkFaQTNYWTJjR0owaUM3YWhMUzE4TkdObXRxRFl6d01YQUZjQlB5Q3RKMXhGVG40Uzg5a0F4QWRRRjEzSXFrUnFLS3B3TzdBYm8xZmR5V3R4cC9NOERNRkR3TVBBbk9BMjREcmdPdEpNeWRWNStBdnJjc0dJRHFBdW00aHNDY3dPenBJd1NZM2FtTGozeDlyL0xvQ2VJVDAzTHVPSFB5bGdka0FSQWRRVDl4RSttTGdrdWdnQ3VYZ0x3M09yWUJWU1hzQ1g0NE9vVkFPL2xMR2JBRFVTMjhCM2hRZFFpRWMvS1hNK1FoQXZiWWNlREhweTRHcUJ3ZC9xVG11QVlnT29KNmJUMW9QOExmb0lPbzVCMytwZWE0QlVPVk5BbjRGVElrT29wNXk4SmRLeEFaQVJka0IrQ213UVhRUTlZU0R2MVF5TmdBcTBnR2ttWUNKdy8ySEtoVUhmNm1FYkFCVXRJT0JDNEN4MFVIVUZRNytVa25aQUNqQzBjQ1BzQWtvdTFmaDRDK1ZsbThCS05JczBpZUVuNGdPb3BiOUUvQmRZRlIwRUtuRWZBdEF0WFVFOEV0Z3crZ2dhc25Kd0prNCtFdWxaZ09nYUllU1pnSzJqQTZpWVkwQVBnNThIZi91a0VyUFJ3REt4WVBBc2NDTjBVRTBvREhBZDBoVC81SzZ3NTBBb3dNb0c0dUJFNENMbzRQb0dTYVIzdHc0TERxSVZER3VBWkFhTmlTdENaaUpQNXU1MkJPNEZnZC9xWEtjQVZDdUxnSk9BaFpHQjZteDF3SGZCQ1pFQjVFcXloa0FhUURIQWRjQWUwY0hxYUdKd0xlQnMzRHdseXJMQmtBNTJ4bjRBK21Sd01qWUtMV3hIM0FEOEtib0lKSjZ5MGNBS292TGdUY0E5OGJHcUt4UndBZUJqK0RPZmxKUmZBc2dPb0JLNHluU2UraWZCMVlGWjZtU3ZZRFRnWDJqZzBnMVl3TVFIVUNsY3ozd0w3aG5RS2MyQVA0RGVEcytZcEVpdUFoUWF0RytwQ2JnTEdDTDRDeGx0QjdwRFl2YmdYZmg0Qy9Wa2pNQUtydkZ3S2VBTHdGTGc3T1V3UkhBRjBqVC9wSmkrUWdnT29BcVlTNXdHdkFWWUVsd2xod2RCSnhLMm01WlVoNXNBS0lEcUZJZUFENU4rbFR0azhGWmN2Qjg0TitCbzZLRFNGcUhEVUIwQUZYU1l1Qi9TRzhNM0I4YnBYQ2pnWmNEN3dFT0NNNGlhWEEyQU5FQlZHa3JnQXVCTTRCTGdOV3hjWHBxQitDZkc3VjFjQlpKdzdNQmlBNmcycmlQOUdqZ0hPQ3Z3Vm02WlNQZ1phUk5rbzRnai85UFMycU9EVUIwQU5YU3JjQ1BTWis1dlNVNFM2c21rUmJ6dlpMMGJIOXNiQnhKYmJJQmlBNmcycHNEWEF6OEJwZ0Z6SXVOczQ0eHdQN0EwY0NMZ0gzdzNYMnBDbXdBb2dOSWEva2JjSFdqL2dqOG1iUU5jUkhXSXozTDN3TTRzRkg3QU9NS09yNms0dGdBUkFlUWhyRWF1SWYwcU9CdVlIYmozKzhESGdYbTAvd21ST3NCbTVLbThiY0dwalpxQjJBWDRMbjRDVjZwTG13QW9nTklYZkFVcVJGWVFXb1lGalgrOTNIQStNWS9iMHdhL0NVSmJBQnNBQ1JKdGVUSGdDUkpVckZzQUNSSnFpRWJBRW1TYXNnR1FKS2tHcklCa0NTcGhtd0FKRW1xSVJzQVNaSnF5QVpBa3FRYXNnR1FKS21HYkFBa1Nhb2hHd0JKa21vb2h3WmdWWFFBU1pJS0ZqNzI1ZEFBTEk4T0lFbFN3WlpGQjdBQmtDU3BlRFlBMkFCSWt1ckhCb0FNVG9Ja1NRVUx2L25Ob1FGWUhCMUFrcVNDTFlvT2tFTUQ4R2gwQUVtU0NoWSs5dGtBU0pKVXZQQ3h6d1pBa3FUaWhZOTlPVFFBODZNRFNKSlVzQVhSQVhKb0FPWkVCNUFrcVdEM1JRZklvUUc0SnpxQUpFa0ZDeC83YkFBa1NTcmV2ZEVCUmtRSEFNWUJUNUZIRmttU2VtMDFNSUhnamZCeW1BRllDandVSFVLU3BJSThRQWE3NE9iUUFBRGNHaDFBa3FTQzNCSWRBUEpwQUc2T0RpQkpVa0d5R1BOeWFRQ3k2SVlrU1NwQUZtTmVMZzFBRnQyUUpFa0Z5R0xNeTJYbC9SalNsNUhHUlFlUkpLbUhsZ0FiQVN1aWcrUXlBN0FjdUQ0NmhDUkpQZllITWhqOElaOEdBT0RLNkFDU0pQWFlGZEVCK3RnQVNKSlVuR3pHdWx6V0FBQk1BdWFSVnlaSmtycGxOV21zV3hnZEJQS2FBWmdQL0NrNmhDUkpQWEk5bVF6K2tGY0RBUERMNkFDU0pQWElyNklEOUpkYkE1RFZ5WkVrcVl1eUd1TnllOTQrRXBnTGJCb2RSSktrTG5vVTJBSllGUjJrVDI0ekFLdUFpNk5EU0pMVVpiOG1vOEVmOG1zQUFNNkxEaUJKVXBlZEd4MWdiYms5QW9DMEhmRERwSzBTSlVrcXU0V2s2ZjlsMFVINnkzRUdZQ2x3VVhRSVNaSzY1RUl5Ry93aHp3WUE0RWZSQVNSSjZwTHNwdjhoejBjQUFLT0ErNEF0bzROSWt0U0JoNER0Z0pYUlFkYVc2d3pBU3VETTZCQ1NKSFhvTzJRNCtFTytNd0FBT3dCM2tHK1RJa25TVU5ZQXp3YnVpZzR5a0p3SDE3dUJXZEVoSkVscTB5VmtPdmhEM2cwQXdOZWpBMGlTMUtadlJBY1lTczZQQUNBMUtMY0R6NG9PSWtsU0MvNEc3RUw2QkhDV2NwOEJXQTE4S1RxRUpFa3RPbzJNQjMvSWZ3WUFZQUl3RzVnY0hVU1NwQ2JNQmJZSGxnVG5HRkx1TXdBQVQrRmFBRWxTZVh5TnpBZC9LTWNNQUtUdkF0eU5ud21XSk9WdFB1azE5c1hSUVlaVGhoa0FnRVhBRjZORFNKSTBqTTlSZ3NFZnlqTURBTEErNlgzS0tkRkJKRWthd0R4Z1IrRHg2Q0ROR0JrZG9BWExHNzhlSFpwQ2txU0JmUWo0WFhTSVpwVnBCZ0JnREhBcmFXdEZTWkp5Y1Nld0d4bCs5bmN3WlZrRDBHYzU4UDdvRUpJa3JlVVVTalQ0US9sbUFQcjhCaDhGU0pMeWNDbHdWSFNJVnBXMUFkZ2R1QUVZRlIxRWtsUnJ5NEU5Z2I5RUIybFZtUllCOWpjWG1BZ2NFaDFFa2xSci93bWNGeDJpSFdXZEFRQVlDOXhJK3RpQ0pFbEZ1NTEwOTc4ME9rZzd5cllJc0w5bHdNbkFtdWdna3FUYVdRMjhtWklPL2xEZVJ3QjlaZ05iQXZ0R0I1RWsxY3JYZ1c5R2graEVtUjhCOUprSS9CSFlPVHFJSktrVy9rSzY4WHdxT2tnbnl2d0lvTStUd0d0NWVxZEFTWko2WlJsd0lpVWYvS0g4andENlBBU3NBbzZNRGlKSnFyUVBBQmRHaCtpR0tqd0M2TE1lYVlPZ0YwWUhrU1JWMHErQWwxS1J4ZWRWYWdBQU5nV3VCNlpGQjVFa1ZjcHNZQjlnZm5TUWJxbkNHb0QrRmdBemdDWFJRU1JKbGJHVU5MWlVadkNINnF3QjZPOWg0RUhnSDZLRFNKSXE0WTJrUjh5VlVzVUdBT0FtWUVQZ3dPZ2drcVJTK3d4d1duU0lYcWphR29EKzFpUHR6endqT29na3FaVE9BMTVEMnZXdmNxcmNBQUNNQnk3RG1RQkpVbXV1Qlk2Z0F1LzdENmJxRFFEQUZPQUs0Tm5SUVNSSnBmQlg0RkRnMGVnZ3ZWUzF0d0FHTWhkNEFYQlBkQkJKVXZidUExNU14UWQvcU1jTVFKOGRnZDhCVzBVSGtTUmw2UUhnTU9EdTZDQkZxTU1NUUorN2dLT0JlZEZCSkVuWm1Rc2NSVTBHZjZoWEF3QndHNm03ZXlBNmlDUXBHdytUdmlYemwrZ2dSYXJUSTREK3RpZTlIYkJEY0E1SlVxelpwRy9JM0JrZHBHaDFtd0hvY3kvcDlZNDdnbk5Ja3VMY0RoeENEUWQvcUc4REFHbWw1NEdrVndRbFNmVnlEZW1SOEp6b0lGSHEzQUJBK3JEREM0Rnpvb05Ja2dwelB1bjE4TG5SUVNKVjlWc0FyVmdGWE5ENDU4TURjMGlTZXU4cndKdUJGZEZCb3RrQVBPMjNwRmNGWHd5TWpvMGlTZXF5cGNCYmdVOEJhNEt6WktHdWJ3RU1aVS9Tak1DMDZDQ1NwSzY0RDNnbGNGMTBrSnpVZlEzQVFHNEM5Z011amc0aVNlcllyNEM5Y1BCZmg0OEFCcllFK0FId0dHbWhpT2RKa3NwbEJmQUowclIvWmIvbzF3a2ZBUXh2TitCc1lQZm9JSktrcHZ3VmVDMXdZM1NRbkhsbk83eTV3Rm5BSnNDKzJEUkpVcTVXQTE4SFRnRHVEODZTUFFlejFod01mQXZZSlRxSUpPa1o3Z1QrQlpnVkhhUXNuQUZvemYzQWQwaDdCeHlFNTArU29xMEVQZ2U4bXBwdTZkc3Vad0RhdHl2d1JkTG5JeVZKeGZzTjhHNXE5aFcvYnZFMXdQYmRCaHhOYWdEK0hKeEZrdXJrRHVCVnBJM2JIUHpiNUJSMjUrNG1QUlo0RE5nYm1CZ2JSNUlxYXk3d0llQ2ZnVnVDczVTZWp3QzZheUx3ZHVEOXdLYkJXU1NwS2hZQVh3Vk9BeFlIWjZrTUc0RGUyQWc0aGRRTVRBN09Ja2xsTlk4MDhIOFpCLzZ1c3dIb3JiR2tsYW1uQXM4SnppSkpaWEUzNmF0OTM4SmQvSHJHQnFBWTZ3RXZCLzRWT0JJWFgwclMybFlEbHdMZkFIN1crSGYxa0ExQThiWUJUZ1RlQm13WG5FV1NvajFFMm0zMWROS2R2d3BpQXhCbkZPazF3bGNELzBCYU55QkpkYkFRK0Fsd0xuQUphVE1mRmN3R0lBOWpTZSt6dmdwNEVUQXBObzRrZGQyandLK0I4MGdiK0N5TGpTTWJnUHlNQlBZSGptblUzcmhtUUZMNXJBYXVKdzM2djJ6ODg2clFSSG9HRzREOGJRQThEemlFOURHaWc0SHhvWWtrYVYwcmdKdUJLNEVyZ010STcrOHJVellBNVRPYTlEWEMzWUU5Z09uQWMwbUxDNzJla25wdE5UQ0h0QVg2bjBnNzh0MUMycEozUldBdXRjZ0JvenJHQWxPQmFjRDJwSVpnTXJCWjQ5ZEp3QVJnUTlKamh0SEEraEZCSldYbENkTEF2WXEwMmM1VHdIelNNL3Q1alYvbkFQY0E5d0t6OGZsOUpmd2ZzTFIyV2RGbTFYWUFBQUFBU1VWT1JLNUNZSUk9XCIgLz5cbiAgICAgIDwvZGVmcz5cbiAgICA8L3N2Zz5cbiAgICBAaWYoY29weU9mSW5wdXRBbGxGaWxlcyAmJiBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA+IDApe1xuICAgIDxzcGFuIChjbGljayk9XCJvcGVuUG9wdXAoKVwiIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGN1cnNvcjogcG9pbnRlcjtcIj5cbiAgICAgIHt7IGNvcHlPZklucHV0QWxsRmlsZXMubGVuZ3RoID09PSAxID8gJzEgRmlsZSBBdHRhY2hlZCcgOiAnKycgKyBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCArICcgRmlsZXMgQXR0YWNoZWQnIH19XG4gICAgPC9zcGFuPlxuICAgIH1cbiAgICBAZWxzZSBpZihtb2RlID09PSAnZWRpdCcpIHtcbiAgICA8ZGl2PiBBZGQgZmlsZXMgPC9kaXY+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICA8ZGl2ICpuZ0lmPVwiZnJvbSAhPT0gJ254dFRhYmxlJ1wiPiBObyBmaWxlcyBhdHRhY2hlZDwvZGl2PlxuICAgIH1cbiAgICA8YnV0dG9uICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmICFxdWVzdGlvbi5pc1JlYWRPbmx5XCIgXG4gICAgICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWRkLWJ0bi1pY29uXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicGx1cy1pY29uXCI+Kzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVVcGxvYWRcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgW2FjY2VwdF09XCJhbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywnKVwiXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIgKGNoYW5nZSk9XCJ1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudClcIiAvPlxuICA8L2Rpdj5cbiAgPCEtLSBTS1MxM0pVTjI1IGVkaXQgaWNvbiAtLT5cbiAgPHN2ZyAqbmdJZj1cIm1vZGUgIT09ICdlZGl0JyAmJiAhdmlld0VkaXQgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHkgJiYgZnJvbSAhPT0gJ254dFRhYmxlJyBcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiXG4gICAgd2lkdGg9XCIxM1wiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxMyAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICA8L3N2Zz5cbiAgPCEtLSBTS1MxM0pVTjI1IHNhdmUgYW5kIGNhbmNlbCBpY29ucyAtLT5cbiAgPGRpdiAqbmdJZj1cInZpZXdFZGl0XCIgKG1vdXNlZW50ZXIpPVwiaXNTYXZlSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc1NhdmVIb3ZlcmVkID0gZmFsc2VcIlxuICAgIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxuICAgIDxzdmcgKm5nSWY9XCIhaXNTYXZlSG92ZXJlZFwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTUuOTUwMiAwLjVDOC45NjAwNiAwLjUwMDEwNiAxMS40MDA0IDIuOTQwMzEgMTEuNDAwNCA1Ljk1MDJDMTEuNDAwMyA4Ljk1OTk5IDguOTU5OTkgMTEuNDAwMyA1Ljk1MDIgMTEuNDAwNEMyLjk0MDMxIDExLjQwMDQgMC41MDAxMDYgOC45NjAwNiAwLjUgNS45NTAyQzAuNSAyLjk0MDI0IDIuOTQwMjQgMC41IDUuOTUwMiAwLjVaXCJcbiAgICAgICAgc3Ryb2tlPVwiIzgzN0Y4RVwiIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTguODgxMTEgMy44NDU4M0M4LjgzMjY5IDMuNzk3MiA4Ljc3NTEzIDMuNzU4NiA4LjcxMTc2IDMuNzMyMjdDOC42NDgzOCAzLjcwNTk0IDguNTgwNDMgMy42OTIzOCA4LjUxMTggMy42OTIzOEM4LjQ0MzE3IDMuNjkyMzggOC4zNzUyMSAzLjcwNTk0IDguMzExODQgMy43MzIyN0M4LjI0ODQ2IDMuNzU4NiA4LjE5MDkxIDMuNzk3MiA4LjE0MjQ5IDMuODQ1ODNMNC44MjY5IDcuMTYzNDdMMy4zNTI1MyA1LjY4OTFDMy4zMDQwMyA1LjY0MDYgMy4yNDY0NiA1LjYwMjEzIDMuMTgzMDkgNS41NzU4OEMzLjExOTcyIDUuNTQ5NjQgMy4wNTE4MSA1LjUzNjEzIDIuOTgzMjIgNS41MzYxM0MyLjkxNDYzIDUuNTM2MTMgMi44NDY3MiA1LjU0OTY0IDIuNzgzMzUgNS41NzU4OEMyLjcxOTk5IDUuNjAyMTMgMi42NjI0MSA1LjY0MDYgMi42MTM5MSA1LjY4OTFDMi41NjU0MSA1LjczNzYgMi41MjY5NCA1Ljc5NTE4IDIuNTAwNjkgNS44NTg1NEMyLjQ3NDQ1IDUuOTIxOTEgMi40NjA5NCA1Ljk4OTgyIDIuNDYwOTQgNi4wNTg0MUMyLjQ2MDk0IDYuMTI3IDIuNDc0NDUgNi4xOTQ5MSAyLjUwMDY5IDYuMjU4MjhDMi41MjY5NCA2LjMyMTY1IDIuNTY1NDEgNi4zNzkyMiAyLjYxMzkxIDYuNDI3NzJMNC40NTY3NyA4LjI3MDU4QzQuNTA1MTkgOC4zMTkyMiA0LjU2Mjc0IDguMzU3ODEgNC42MjYxMiA4LjM4NDE0QzQuNjg5NSA4LjQxMDQ3IDQuNzU3NDUgOC40MjQwMyA0LjgyNjA4IDguNDI0MDNDNC44OTQ3MSA4LjQyNDAzIDQuOTYyNjYgOC40MTA0NyA1LjAyNjA0IDguMzg0MTRDNS4wODk0MiA4LjM1NzgxIDUuMTQ2OTcgOC4zMTkyMiA1LjE5NTM5IDguMjcwNThMOC44ODExMSA0LjU4NDQ1QzguOTI5NzQgNC41MzYwMyA4Ljk2ODM0IDQuNDc4NDggOC45OTQ2NyA0LjQxNTFDOS4wMjEgNC4zNTE3MyA5LjAzNDU2IDQuMjgzNzcgOS4wMzQ1NiA0LjIxNTE0QzkuMDM0NTYgNC4xNDY1MSA5LjAyMSA0LjA3ODU2IDguOTk0NjcgNC4wMTUxOEM4Ljk2ODM0IDMuOTUxOCA4LjkyOTc0IDMuODk0MjUgOC44ODExMSAzLjg0NTgzWlwiXG4gICAgICAgIGZpbGw9XCIjODM3RjhFXCIgLz5cbiAgICA8L3N2Zz5cblxuICAgIDxzdmcgKm5nSWY9XCJpc1NhdmVIb3ZlcmVkXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKClcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiAobW91c2VlbnRlcik9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZVwiPlxuICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICA8L3N2Zz5cblxuICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29sLWxnLTZcIiBzdHlsZT1cInBhZGRpbmc6MDttYXJnaW4tdG9wOiAxMHB4O1wiPlxuICA8IS0tIEVycm9yIG1lc3NhZ2VzIHNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnN0cmFpbnRzXCIgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA+IDBcIj5cbiAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgdmFsaWRhdGlvbkVycm9yc1wiPnt7IGVycm9yIH19PC9kaXY+XG4gICAgPC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tc2dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+e3txdWVzdGlvbj8uZXJyb3JNZXNzYWdlfX08L2Rpdj5cblxuPCEtLSBTS1MxMUpVTjI1IEZpbGUgU2VsZWN0aW9uIFBvcHVwIE1vZGFsIC0tPlxuPGRpdiBjbGFzcz1cImZpbGUtcG9wdXAtb3ZlcmxheVwiICpuZ0lmPVwic2hvd1BvcHVwXCIgKGNsaWNrKT1cImNsb3NlUG9wdXAoKVwiPlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1wb3B1cC1tb2RhbFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wb3B1cC1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC10aXRsZVwiPnt7cXVlc3Rpb24ucXVlc3Rpb25UZXh0fX08L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VQb3B1cCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2UtaWNvblwiPsOXPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFNLUzExSlVOMjUgQ29udGVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wb3B1cC1jb250ZW50XCI+XG4gICAgICA8IS0tIFNLUzExSlVOMjUgTGVmdCBQYW5lbCAtIEZpbGUgTGlzdCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QtcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbVwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGNvcHlPZklucHV0QWxsRmlsZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJjdXJyZW50RmlsZSA9PT0gZmlsZVwiIChjbGljayk9XCJ2aWV3RmlsZShmaWxlKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb25cIj5cbiAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJ3aWR0aDogMjhweDtoZWlnaHQ6IDI4cHg7XCIgW3NyY109XCJnZXREb2NJY29uKGZpbGU/Lm5hbWUpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcXVlc3Rpb24uaXNSZWFkT25seVwiIGNsYXNzPVwiZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRlbGV0ZUZpbGUoaSlcIiB0aXRsZT1cIkRlbGV0ZVwiPlxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMyw2IDUsNiAyMSw2XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTE5LDZ2MTRhMiwyIDAgMCwxIC0yLDJIN2EyLDIgMCAwLDEgLTIsLTJWNm0zLDBWNGEyLDIgMCAwLDEgMiwtMmg0YTIsMiAwIDAsMSAyLDJ2MlwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCIgKm5nSWY9XCIhY29weU9mSW5wdXRBbGxGaWxlcyB8fCBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pY29uXCI+8J+ThDwvZGl2PlxuICAgICAgICAgIDxwPk5vIGZpbGVzIHNlbGVjdGVkPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ0blwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIHRpdGxlPVwiQWRkIGZpbGVcIj5cbiAgICAgICAgICArIEFkZCBNb3JlIEZpbGVzXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU0tTMTFKVU4yNSBSaWdodCBQYW5lbCAtIFByZXZpZXcgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LXBhbmVsXCI+XG4gICAgICAgIEBpZihjdXJyZW50RmlsZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRlbnRcIj5cbiAgICAgICAgICBAaWYoaXNJbWFnZSAmJiBmaWxlVXJsKXtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiIGNsYXNzPVwicHJldmlldy1pbWFnZVwiIGFsdD1cIkZpbGUgUHJldmlld1wiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIGlmKGZpbGVVcmwpe1xuICAgICAgICAgIDxpZnJhbWUgW3NyY109XCJmaWxlVXJsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNTAwcHhcIj48L2lmcmFtZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2UgaWYoaXNMb2FkaW5nKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICA8cD5Mb2FkaW5nIHByZXZpZXcuLi48L3A+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIDxkaXY+VW5hYmxlIHRvIGxvYWQgdGhlIGZpbGUgcHJldmlldy48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBlbHNle1xuICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcHJldmlld1wiPlxuICAgICAgICAgIDxwPlNlbGVjdCBhIGZpbGUgdG8gcHJldmlldzwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==