imm-element-ui 1.6.3 → 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/esm2022/lib/crumb-action/crumb-action.component.mjs +3 -3
  2. package/esm2022/lib/form/form-field/context-menu.mjs +35 -35
  3. package/esm2022/lib/form/form-field/field-control.mjs +1 -1
  4. package/esm2022/lib/form/form-field/field-utils.mjs +1 -1
  5. package/esm2022/lib/form/form-field/form-field.mjs +135 -135
  6. package/esm2022/lib/form/form-field/index.mjs +1 -1
  7. package/esm2022/lib/form/form-field/label.directive.mjs +1 -1
  8. package/esm2022/lib/form/form-type/autocomplete.type.mjs +151 -151
  9. package/esm2022/lib/form/form-type/codemirror.type.mjs +1 -1
  10. package/esm2022/lib/form/form-type/datepicker.type.mjs +177 -177
  11. package/esm2022/lib/form/form-type/image.type.mjs +211 -211
  12. package/esm2022/lib/form/form-type/index.mjs +1 -1
  13. package/esm2022/lib/form/form-type/inputnumber.type.mjs +91 -91
  14. package/esm2022/lib/form/form-type/inputtext.type.mjs +19 -19
  15. package/esm2022/lib/form/form-type/multiselect.type.mjs +163 -163
  16. package/esm2022/lib/form/form-type/radio.type.mjs +77 -77
  17. package/esm2022/lib/form/form-type/rowselector.type.mjs +34 -26
  18. package/esm2022/lib/form/form-type/select.type.mjs +133 -133
  19. package/esm2022/lib/form/form-type/textarea.type.mjs +25 -25
  20. package/esm2022/lib/form/form-type/treeselect.type.mjs +115 -115
  21. package/esm2022/lib/form/form-type/upload.type.mjs +131 -131
  22. package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +139 -139
  23. package/esm2022/lib/grid/cell-render/chip-render.mjs +21 -21
  24. package/esm2022/lib/grid/cell-render/img-renderer.mjs +25 -25
  25. package/esm2022/lib/grid/grid/grid.component.mjs +4 -3
  26. package/esm2022/lib/grid/grid-utils.mjs +1 -1
  27. package/esm2022/lib/import/import.component.mjs +1 -1
  28. package/esm2022/lib/loading/loading.component.mjs +3 -3
  29. package/esm2022/lib/page-form/page-form.component.mjs +6 -3
  30. package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +3 -3
  31. package/esm2022/lib/row-selector/row-selector.component.mjs +3 -3
  32. package/esm2022/lib/search/search/search.component.mjs +3 -3
  33. package/esm2022/lib/search/search-tip/search-tip.component.mjs +1 -1
  34. package/esm2022/lib/search/search-utils.mjs +1 -1
  35. package/esm2022/lib/search/text-panel/text-panel.component.mjs +1 -1
  36. package/esm2022/lib/service/action.service.mjs +6 -1
  37. package/esm2022/lib/service/loading.service.mjs +1 -1
  38. package/esm2022/lib/steps/steps.component.mjs +1 -1
  39. package/esm2022/public-api.mjs +1 -1
  40. package/fesm2022/imm-element-ui.mjs +1687 -1671
  41. package/fesm2022/imm-element-ui.mjs.map +1 -1
  42. package/lib/crumb-action/crumb-action.component.d.ts +1 -1
  43. package/lib/grid/grid/grid.component.d.ts +1 -1
  44. package/lib/grid/grid-utils.d.ts +2 -529
  45. package/lib/service/action.service.d.ts +3 -0
  46. package/package.json +1 -1
  47. package/src/lib/crumb-action/crumb-action.component.scss +60 -60
  48. package/src/lib/grid/grid/grid.component.scss +45 -45
  49. package/src/lib/loading/loading.component.scss +31 -31
  50. package/src/lib/page-form/page-form.component.scss +31 -31
  51. package/src/lib/row-selector/row-selector.component.scss +1 -1
  52. package/src/lib/search/pop-date/pop-date.component.scss +67 -67
  53. package/src/lib/search/pop-list/pop-list.component.scss +23 -23
  54. package/src/lib/search/pop-panel/pop-panel.component.scss +32 -32
  55. package/src/lib/search/pop-self/pop-self.component.scss +80 -80
  56. package/src/lib/search/pop-sort/pop-sort.component.scss +49 -49
  57. package/src/lib/search/pop-tree/pop-tree.component.scss +37 -37
  58. package/src/lib/search/search/search.component.scss +70 -70
  59. package/src/lib/search/search-tip/search-tip.component.scss +50 -50
  60. package/src/lib/search/text-panel/text-panel.component.scss +24 -24
  61. package/src/lib/styles/styles.scss +232 -232
@@ -127,143 +127,143 @@ export class UploadComponent {
127
127
  }
128
128
  }
129
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }, { token: i0.Renderer2 }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
131
- #fu
132
- auto
133
- [id]="field()?.uuid"
134
- [name]="props.name"
135
- [url]="props.url"
136
- [method]="props.method ?? 'post'"
137
- [multiple]="props.multiple ?? true"
138
- [accept]="props.accept"
139
- [withCredentials]="props.withCredentials"
140
- [maxFileSize]="props.maxFileSize"
141
- [styleClass]="props.styleClass"
142
- [previewWidth]="props.previewWidth ?? 50"
143
- [mode]="props.mode ?? 'advanced'"
144
- [headers]="props.headers"
145
- [fileLimit]="props.fileLimit"
146
- [customUpload]="props.customUpload ?? true"
147
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
148
- (onSend)="props.onSend?.(field()!, $event)"
149
- (onUpload)="props.onUpload?.(field()!, $event)"
150
- (onError)="props.onError?.(field()!, $event)"
151
- (onClear)="props.onClear?.(field()!, $event)"
152
- (onRemove)="props.onRemove?.(field()!, $event)"
153
- (onSelect)="props.onSelect?.(field()!, $event)"
154
- (onProgress)="props.onProgress?.(field()!, $event)"
155
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
156
- <ng-template
157
- #header
158
- let-chooseCallback="chooseCallback">
159
- <div
160
- #uploadComp
161
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
162
- (click)="choose($event, chooseCallback)">
163
- <span
164
- ><span
165
- style="font-size: 12px; margin-right: 2.5px"
166
- [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
167
- >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
168
- >
169
- </div>
170
- </ng-template>
171
- <ng-template #content>
172
- @if (fileList.length > 0) {
173
- @for (file of fileList; track file; let index = $index) {
174
- <div class="flex justify-between items-center file-item">
175
- <span class="file-name"
176
- ><a
177
- [href]="'https://hrimage.myfoodiepet.com//' + file"
178
- [download]="file"
179
- >{{ file }}</a
180
- ></span
181
- >
182
- @if (!field()?.fieldControl?.disabled) {
183
- <p-button
184
- icon="pi pi-times"
185
- severity="danger"
186
- size="small"
187
- (onClick)="deleteHandler(file, index)"
188
- [text]="true" />
189
- }
190
- </div>
191
- }
192
- }
193
- </ng-template>
194
- <ng-template #file> </ng-template>
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
131
+ #fu
132
+ auto
133
+ [id]="field()?.uuid"
134
+ [name]="props.name"
135
+ [url]="props.url"
136
+ [method]="props.method ?? 'post'"
137
+ [multiple]="props.multiple ?? true"
138
+ [accept]="props.accept"
139
+ [withCredentials]="props.withCredentials"
140
+ [maxFileSize]="props.maxFileSize"
141
+ [styleClass]="props.styleClass"
142
+ [previewWidth]="props.previewWidth ?? 50"
143
+ [mode]="props.mode ?? 'advanced'"
144
+ [headers]="props.headers"
145
+ [fileLimit]="props.fileLimit"
146
+ [customUpload]="props.customUpload ?? true"
147
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
148
+ (onSend)="props.onSend?.(field()!, $event)"
149
+ (onUpload)="props.onUpload?.(field()!, $event)"
150
+ (onError)="props.onError?.(field()!, $event)"
151
+ (onClear)="props.onClear?.(field()!, $event)"
152
+ (onRemove)="props.onRemove?.(field()!, $event)"
153
+ (onSelect)="props.onSelect?.(field()!, $event)"
154
+ (onProgress)="props.onProgress?.(field()!, $event)"
155
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
156
+ <ng-template
157
+ #header
158
+ let-chooseCallback="chooseCallback">
159
+ <div
160
+ #uploadComp
161
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
162
+ (click)="choose($event, chooseCallback)">
163
+ <span
164
+ ><span
165
+ style="font-size: 12px; margin-right: 2.5px"
166
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
167
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
168
+ >
169
+ </div>
170
+ </ng-template>
171
+ <ng-template #content>
172
+ @if (fileList.length > 0) {
173
+ @for (file of fileList; track file; let index = $index) {
174
+ <div class="flex justify-between items-center file-item">
175
+ <span class="file-name"
176
+ ><a
177
+ [href]="'https://hrimage.myfoodiepet.com//' + file"
178
+ [download]="file"
179
+ >{{ file }}</a
180
+ ></span
181
+ >
182
+ @if (!field()?.fieldControl?.disabled) {
183
+ <p-button
184
+ icon="pi pi-times"
185
+ severity="danger"
186
+ size="small"
187
+ (onClick)="deleteHandler(file, index)"
188
+ [text]="true" />
189
+ }
190
+ </div>
191
+ }
192
+ }
193
+ </ng-template>
194
+ <ng-template #file> </ng-template>
195
195
  </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
196
196
  }
197
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
198
198
  type: Component,
199
- args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
200
- #fu
201
- auto
202
- [id]="field()?.uuid"
203
- [name]="props.name"
204
- [url]="props.url"
205
- [method]="props.method ?? 'post'"
206
- [multiple]="props.multiple ?? true"
207
- [accept]="props.accept"
208
- [withCredentials]="props.withCredentials"
209
- [maxFileSize]="props.maxFileSize"
210
- [styleClass]="props.styleClass"
211
- [previewWidth]="props.previewWidth ?? 50"
212
- [mode]="props.mode ?? 'advanced'"
213
- [headers]="props.headers"
214
- [fileLimit]="props.fileLimit"
215
- [customUpload]="props.customUpload ?? true"
216
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
217
- (onSend)="props.onSend?.(field()!, $event)"
218
- (onUpload)="props.onUpload?.(field()!, $event)"
219
- (onError)="props.onError?.(field()!, $event)"
220
- (onClear)="props.onClear?.(field()!, $event)"
221
- (onRemove)="props.onRemove?.(field()!, $event)"
222
- (onSelect)="props.onSelect?.(field()!, $event)"
223
- (onProgress)="props.onProgress?.(field()!, $event)"
224
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
225
- <ng-template
226
- #header
227
- let-chooseCallback="chooseCallback">
228
- <div
229
- #uploadComp
230
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
231
- (click)="choose($event, chooseCallback)">
232
- <span
233
- ><span
234
- style="font-size: 12px; margin-right: 2.5px"
235
- [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
236
- >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
237
- >
238
- </div>
239
- </ng-template>
240
- <ng-template #content>
241
- @if (fileList.length > 0) {
242
- @for (file of fileList; track file; let index = $index) {
243
- <div class="flex justify-between items-center file-item">
244
- <span class="file-name"
245
- ><a
246
- [href]="'https://hrimage.myfoodiepet.com//' + file"
247
- [download]="file"
248
- >{{ file }}</a
249
- ></span
250
- >
251
- @if (!field()?.fieldControl?.disabled) {
252
- <p-button
253
- icon="pi pi-times"
254
- severity="danger"
255
- size="small"
256
- (onClick)="deleteHandler(file, index)"
257
- [text]="true" />
258
- }
259
- </div>
260
- }
261
- }
262
- </ng-template>
263
- <ng-template #file> </ng-template>
199
+ args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
200
+ #fu
201
+ auto
202
+ [id]="field()?.uuid"
203
+ [name]="props.name"
204
+ [url]="props.url"
205
+ [method]="props.method ?? 'post'"
206
+ [multiple]="props.multiple ?? true"
207
+ [accept]="props.accept"
208
+ [withCredentials]="props.withCredentials"
209
+ [maxFileSize]="props.maxFileSize"
210
+ [styleClass]="props.styleClass"
211
+ [previewWidth]="props.previewWidth ?? 50"
212
+ [mode]="props.mode ?? 'advanced'"
213
+ [headers]="props.headers"
214
+ [fileLimit]="props.fileLimit"
215
+ [customUpload]="props.customUpload ?? true"
216
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
217
+ (onSend)="props.onSend?.(field()!, $event)"
218
+ (onUpload)="props.onUpload?.(field()!, $event)"
219
+ (onError)="props.onError?.(field()!, $event)"
220
+ (onClear)="props.onClear?.(field()!, $event)"
221
+ (onRemove)="props.onRemove?.(field()!, $event)"
222
+ (onSelect)="props.onSelect?.(field()!, $event)"
223
+ (onProgress)="props.onProgress?.(field()!, $event)"
224
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
225
+ <ng-template
226
+ #header
227
+ let-chooseCallback="chooseCallback">
228
+ <div
229
+ #uploadComp
230
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
231
+ (click)="choose($event, chooseCallback)">
232
+ <span
233
+ ><span
234
+ style="font-size: 12px; margin-right: 2.5px"
235
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
236
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
237
+ >
238
+ </div>
239
+ </ng-template>
240
+ <ng-template #content>
241
+ @if (fileList.length > 0) {
242
+ @for (file of fileList; track file; let index = $index) {
243
+ <div class="flex justify-between items-center file-item">
244
+ <span class="file-name"
245
+ ><a
246
+ [href]="'https://hrimage.myfoodiepet.com//' + file"
247
+ [download]="file"
248
+ >{{ file }}</a
249
+ ></span
250
+ >
251
+ @if (!field()?.fieldControl?.disabled) {
252
+ <p-button
253
+ icon="pi pi-times"
254
+ severity="danger"
255
+ size="small"
256
+ (onClick)="deleteHandler(file, index)"
257
+ [text]="true" />
258
+ }
259
+ </div>
260
+ }
261
+ }
262
+ </ng-template>
263
+ <ng-template #file> </ng-template>
264
264
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"] }]
265
265
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }, { type: i0.Renderer2 }, { type: i3.DatePipe }], propDecorators: { uploadCompRef: [{
266
266
  type: ViewChild,
267
267
  args: ['uploadComp', { read: ElementRef, static: false }]
268
268
  }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL3VwbG9hZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUF5SXBELE1BQU0sT0FBTyxlQUFlO0lBUzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVgzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBUVgsTUFBTSxDQUFDLEdBQUcsRUFB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O1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDRixDQUFDOytHQWhJVyxlQUFlO21HQUFmLGVBQWUsbVNBQ00sVUFBVSw2QkFyRWpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFpRU0sNHZNQWxFTixVQUFVLGc1QkFBRSxZQUFZLGliQUFFLG1CQUFtQiwwQkFBRSxhQUFhOzs0RkFxRTFELGVBQWU7a0JBNUczQixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBcUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsWUFDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlFTTswSkFJOEMsYUFBYTtzQkFBMUUsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XG5cdHVybD86IHN0cmluZztcblx0bWV0aG9kPzogJ3Bvc3QnIHwgJ3B1dCc7XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0YWNjZXB0Pzogc3RyaW5nO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS11cGxvYWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzdHlsZXM6IGBcblx0XHQuZmlsZS1pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAjZmZmO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0biB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSkubmctaG92ZXJlZCB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LmZpbGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0fVxuXHRcdC5maWxlLW5hbWU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0fVxuXHRcdDpob3N0IDo6bmctZGVlcCB7XG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xuXHRcdFx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHRcdFx0XHRjb2xvcjogIzMzNDE1NTtcblx0XHRcdH1cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuXHR0ZW1wbGF0ZTogYDxwLWZpbGVVcGxvYWRcblx0XHQjZnVcblx0XHRhdXRvXG5cdFx0W2lkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxuXHRcdFt1cmxdPVwicHJvcHMudXJsXCJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxuXHRcdFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyB0cnVlXCJcblx0XHRbYWNjZXB0XT1cInByb3BzLmFjY2VwdFwiXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxuXHRcdFttYXhGaWxlU2l6ZV09XCJwcm9wcy5tYXhGaWxlU2l6ZVwiXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxuXHRcdFttb2RlXT1cInByb3BzLm1vZGUgPz8gJ2FkdmFuY2VkJ1wiXG5cdFx0W2hlYWRlcnNdPVwicHJvcHMuaGVhZGVyc1wiXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxuXHRcdFtjdXN0b21VcGxvYWRdPVwicHJvcHMuY3VzdG9tVXBsb2FkID8/IHRydWVcIlxuXHRcdChvbkJlZm9yZVVwbG9hZCk9XCJwcm9wcy5vbkJlZm9yZVVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uRXJyb3IpPVwicHJvcHMub25FcnJvcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxuXHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0I2hlYWRlclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0I3VwbG9hZENvbXBcblx0XHRcdFx0W2NsYXNzXT1cIidmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCB1cGxvYWQtYnRuJyArIChmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkID8gJyB1cGxvYWQtZGlzYWJsZScgOiAnJylcIlxuXHRcdFx0XHQoY2xpY2spPVwiY2hvb3NlKCRldmVudCwgY2hvb3NlQ2FsbGJhY2spXCI+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0PjxzcGFuXG5cdFx0XHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXJpZ2h0OiAyLjVweFwiXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ3BpJyArIChsb2FkaW5nID8gJyBwaS1zcGluIHBpLXNwaW5uZXInIDogJyBwaS11cGxvYWQnKVwiPjwvc3BhblxuXHRcdFx0XHRcdD57eyAobG9hZGluZyA/ICdtb2RhbC51cGxvYWRpbmcnIDogJ21vZGFsLnNlbGVjdEZpbGUnKSB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuXHRcdFx0XHQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cblx0XHRcdEBpZiAoZmlsZUxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRAZm9yIChmaWxlIG9mIGZpbGVMaXN0OyB0cmFjayBmaWxlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGZpbGUtaXRlbVwiPlxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIlxuXHRcdFx0XHRcdFx0XHQ+PGFcblx0XHRcdFx0XHRcdFx0XHRbaHJlZl09XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGZpbGVcIlxuXHRcdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlXCJcblx0XHRcdFx0XHRcdFx0XHQ+e3sgZmlsZSB9fTwvYVxuXHRcdFx0XHRcdFx0XHQ+PC9zcGFuXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihmaWxlLCBpbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIiAvPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgI2ZpbGU+IDwvbmctdGVtcGxhdGU+XG5cdDwvcC1maWxlVXBsb2FkPmAsXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgndXBsb2FkQ29tcCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB1cGxvYWRDb21wUmVmITogRWxlbWVudFJlZjtcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XG5cdHByb3BzOiBVcGxvYWRQcm9wcyA9IHt9O1xuXHRmaWxlTGlzdDogc3RyaW5nW10gPSBbXTtcblx0ZGVsZXRlSG9va3M6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cdGxvYWRpbmcgPSBmYWxzZTtcblx0Y291bnRlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcblx0KSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEudXBsb2FkUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUhvb2tDaGFuZ2UoKTtcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGZvcmtKb2luKHRoaXMuZGVsZXRlSG9va3MpLnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLnVwbG9hZENvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Y2hvb3NlKGV2ZW50OiBhbnksIGNhbGxiYWNrOiBhbnkpIHtcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNhbGxiYWNrKCk7XG5cdH1cblxuXHR1cGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cFxuXHRcdFx0LnJlcXVlc3QoXG5cdFx0XHRcdG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsICdmaWxlclVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XG5cdH1cblxuXHRkZWxGaWxlKGZpbGVTdHI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdmaWxlckRlbGV0ZScsIHsgZmlsZU5hbWU6IGZpbGVTdHIgfSk7XG5cdH1cblxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcblx0XHR0aGlzLmluaXRMb2FkaW5nKGV2ZW50LmZpbGVzLmxlbmd0aCk7XG5cdFx0ZXZlbnQuZmlsZXMuZm9yRWFjaCgodjogYW55KSA9PiB7XG5cdFx0XHR0aGlzLnVwbG9hZEZpbGUodikuc3Vic2NyaWJlKHtcblx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcblx0XHRcdFx0XHR0aGlzLmZpbGVMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcblx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcblx0XHRcdFx0XHR0aGlzLmluaXRMb2FkaW5nKDApO1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRkZWxldGVIYW5kbGVyKGZpbGVTdHI6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuXHRcdHRoaXMuZGVsZXRlSG9va3MucHVzaCh0aGlzLmRlbEZpbGUoZmlsZVN0cikpO1xuXHRcdHRoaXMuZmlsZUxpc3QgPSB0aGlzLmZpbGVMaXN0Py5maWx0ZXIoKHZhbHVlLCBpKSA9PiBpbmRleCAhPSBpKTtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMucHJvcHMub25Ib29rQ2hhbmdlPy4odGhpcy5maWVsZCgpISwgeyB2YWx1ZSB9KTtcblx0XHRcdHRoaXMuZmlsZUxpc3QgPSBbLi4udmFsdWVdO1xuXHRcdH0pO1xuXHR9XG5cblx0YWZ0ZXJTdWJtaXQoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoQm9vbGVhbih2YWx1ZSkpIHtcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGhhbmRsZURpc2FibGVkKCkge1xuXHRcdGlmICh0aGlzLnByb3BzPy5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdH1cblx0fVxuXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xuXHRcdHRoaXMuY291bnRlciA9IGNvdW50ZXI7XG5cdFx0aWYgKGNvdW50ZXIgPT0gMCkge1xuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdH1cblxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcblx0XHR0aGlzLmNvdW50ZXItLTtcblx0XHRjb25zb2xlLmxvZygnLS0tLWNvdW50ZXInLCB0aGlzLmNvdW50ZXIpO1xuXHRcdGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0ZnUuY2xlYXIoKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL3VwbG9hZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUF5SXBELE1BQU0sT0FBTyxlQUFlO0lBUzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVgzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBUVgsTUFBTSxDQUFDLEdBQUcsRUFB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O1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDRixDQUFDOytHQWhJVyxlQUFlO21HQUFmLGVBQWUsbVNBQ00sVUFBVSw2QkFyRWpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFpRU0sNHZNQWxFTixVQUFVLGc1QkFBRSxZQUFZLGliQUFFLG1CQUFtQiwwQkFBRSxhQUFhOzs0RkFxRTFELGVBQWU7a0JBNUczQixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBcUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsWUFDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlFTTswSkFJOEMsYUFBYTtzQkFBMUUsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcywgQXR0cmlidXRlRXZlbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xyXG5cdHVybD86IHN0cmluZztcclxuXHRtZXRob2Q/OiAncG9zdCcgfCAncHV0JztcclxuXHRtdWx0aXBsZT86IGJvb2xlYW47XHJcblx0YWNjZXB0Pzogc3RyaW5nO1xyXG5cdHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcblx0bWF4RmlsZVNpemU/OiBudW1iZXI7XHJcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xyXG5cdG1vZGU/OiAnYmFzaWMnIHwgJ2FkdmFuY2VkJztcclxuXHRoZWFkZXJzPzogYW55O1xyXG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XHJcblx0ZmlsZUxpbWl0PzogbnVtYmVyO1xyXG5cdHVwbG9hZFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRyZW1vdmVTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGNob29zZVN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG5cdG9uQmVmb3JlVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25TZW5kPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkVycm9yPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25TZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblByb2dyZXNzPzogQXR0cmlidXRlRXZlbnQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZm9ybS11cGxvYWQnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c3R5bGVzOiBgXHJcblx0XHQuZmlsZS1pdGVtIHtcclxuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICNmZmY7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0biB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xyXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpLm5nLWhvdmVyZWQge1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0XHQuZmlsZS1uYW1lIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0fVxyXG5cdFx0LmZpbGUtbmFtZTpob3ZlciB7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHR9XHJcblx0XHQ6aG9zdCA6Om5nLWRlZXAge1xyXG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG5cdFx0XHRcdGNvbG9yOiAjMzM0MTU1O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0YCxcclxuXHRpbXBvcnRzOiBbRmlsZVVwbG9hZCwgQnV0dG9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcclxuXHR0ZW1wbGF0ZTogYDxwLWZpbGVVcGxvYWRcclxuXHRcdCNmdVxyXG5cdFx0YXV0b1xyXG5cdFx0W2lkXT1cImZpZWxkKCk/LnV1aWRcIlxyXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXHJcblx0XHRbdXJsXT1cInByb3BzLnVybFwiXHJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxyXG5cdFx0W211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlID8/IHRydWVcIlxyXG5cdFx0W2FjY2VwdF09XCJwcm9wcy5hY2NlcHRcIlxyXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxyXG5cdFx0W21heEZpbGVTaXplXT1cInByb3BzLm1heEZpbGVTaXplXCJcclxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxyXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxyXG5cdFx0W21vZGVdPVwicHJvcHMubW9kZSA/PyAnYWR2YW5jZWQnXCJcclxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxyXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxyXG5cdFx0W2N1c3RvbVVwbG9hZF09XCJwcm9wcy5jdXN0b21VcGxvYWQgPz8gdHJ1ZVwiXHJcblx0XHQob25CZWZvcmVVcGxvYWQpPVwicHJvcHMub25CZWZvcmVVcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblVwbG9hZCk9XCJwcm9wcy5vblVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkVycm9yKT1cInByb3BzLm9uRXJyb3I/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUmVtb3ZlKT1cInByb3BzLm9uUmVtb3ZlPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdCh1cGxvYWRIYW5kbGVyKT1cInVwbG9hZEhhbmRsZXIoZmllbGQoKSEsICRldmVudCwgZnUpXCI+XHJcblx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0I2hlYWRlclxyXG5cdFx0XHRsZXQtY2hvb3NlQ2FsbGJhY2s9XCJjaG9vc2VDYWxsYmFja1wiPlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0I3VwbG9hZENvbXBcclxuXHRcdFx0XHRbY2xhc3NdPVwiJ2ZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIHVwbG9hZC1idG4nICsgKGZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQgPyAnIHVwbG9hZC1kaXNhYmxlJyA6ICcnKVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHQ+PHNwYW5cclxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxyXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ3BpJyArIChsb2FkaW5nID8gJyBwaS1zcGluIHBpLXNwaW5uZXInIDogJyBwaS11cGxvYWQnKVwiPjwvc3BhblxyXG5cdFx0XHRcdFx0Pnt7IChsb2FkaW5nID8gJ21vZGFsLnVwbG9hZGluZycgOiAnbW9kYWwuc2VsZWN0RmlsZScpIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcblx0XHRcdFx0PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdEBpZiAoZmlsZUxpc3QubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdEBmb3IgKGZpbGUgb2YgZmlsZUxpc3Q7IHRyYWNrIGZpbGU7IGxldCBpbmRleCA9ICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBmaWxlLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIlxyXG5cdFx0XHRcdFx0XHRcdD48YVxyXG5cdFx0XHRcdFx0XHRcdFx0W2hyZWZdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBmaWxlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlXCJcclxuXHRcdFx0XHRcdFx0XHRcdD57eyBmaWxlIH19PC9hXHJcblx0XHRcdFx0XHRcdFx0Pjwvc3BhblxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdEBpZiAoIWZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcclxuXHRcdFx0XHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRzZXZlcml0eT1cImRhbmdlclwiXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihmaWxlLCBpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZmlsZT4gPC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgndXBsb2FkQ29tcCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB1cGxvYWRDb21wUmVmITogRWxlbWVudFJlZjtcclxuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcclxuXHRwcm9wczogVXBsb2FkUHJvcHMgPSB7fTtcclxuXHRmaWxlTGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHRkZWxldGVIb29rczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuXHRsb2FkaW5nID0gZmFsc2U7XHJcblx0Y291bnRlciA9IDA7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS51cGxvYWRQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVIb29rQ2hhbmdlKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xyXG5cdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRmb3JrSm9pbih0aGlzLmRlbGV0ZUhvb2tzKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XHJcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVwbG9hZENvbXBSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjYWxsYmFjaygpO1xyXG5cdH1cclxuXHJcblx0dXBsb2FkRmlsZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBcclxuXHRcdFx0LnJlcXVlc3QoXHJcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ZpbGVyVXBsb2FkJywgZm9ybURhdGEsIHtcclxuXHRcdFx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XHJcblx0fVxyXG5cclxuXHRkZWxGaWxlKGZpbGVTdHI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2ZpbGVyRGVsZXRlJywgeyBmaWxlTmFtZTogZmlsZVN0ciB9KTtcclxuXHR9XHJcblxyXG5cdHVwbG9hZEhhbmRsZXIoZmllbGQ6IGFueSwgZXZlbnQ6IGFueSwgZnU6IGFueSkge1xyXG5cdFx0dGhpcy5pbml0TG9hZGluZyhldmVudC5maWxlcy5sZW5ndGgpO1xyXG5cdFx0ZXZlbnQuZmlsZXMuZm9yRWFjaCgodjogYW55KSA9PiB7XHJcblx0XHRcdHRoaXMudXBsb2FkRmlsZSh2KS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcclxuXHRcdFx0XHRcdHRoaXMuZmlsZUxpc3Q/LnB1c2gocmVzcG9uc2UuYm9keS5maWQpO1xyXG5cdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuZmlsZUxpc3QpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pbml0TG9hZGluZygwKTtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVIYW5kbGVyKGZpbGVTdHI6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xyXG5cdFx0dGhpcy5kZWxldGVIb29rcy5wdXNoKHRoaXMuZGVsRmlsZShmaWxlU3RyKSk7XHJcblx0XHR0aGlzLmZpbGVMaXN0ID0gdGhpcy5maWxlTGlzdD8uZmlsdGVyKCh2YWx1ZSwgaSkgPT4gaW5kZXggIT0gaSk7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5maWxlTGlzdCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XHJcblx0XHRcdHRoaXMuZmlsZUxpc3QgPSBbLi4udmFsdWVdO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhZnRlclN1Ym1pdCgpIHtcclxuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zdWJtaXRDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAoQm9vbGVhbih2YWx1ZSkpIHtcclxuXHRcdFx0XHR0aGlzLmRlbGV0ZUhvb2tzLmZvckVhY2goKGhvb2spID0+IGhvb2suc3Vic2NyaWJlKCkpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZURpc2FibGVkKCkge1xyXG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XHJcblx0XHRcdHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xyXG5cdFx0dGhpcy5jb3VudGVyID0gY291bnRlcjtcclxuXHRcdGlmIChjb3VudGVyID09IDApIHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMuY291bnRlci0tO1xyXG5cdFx0Y29uc29sZS5sb2coJy0tLS1jb3VudGVyJywgdGhpcy5jb3VudGVyKTtcclxuXHRcdGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdGZ1LmNsZWFyKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==