nuxeo-development-framework 1.1.2 → 1.1.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.
- package/bundles/nuxeo-development-framework.umd.js +52 -29
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +2 -2
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +2 -2
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +6 -6
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +15 -10
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +2 -2
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +4 -2
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +5 -2
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +1 -1
- package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
- package/esm2015/lib/components/table/table/table.component.js +11 -2
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
- package/fesm2015/nuxeo-development-framework.js +50 -29
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.d.ts +2 -1
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +2 -2
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +2 -1
- package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +2 -2
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +2 -1
- package/lib/components/table/table/table.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ export class DynamicFormTextItemComponent {
|
|
|
23
23
|
this.translate = translate;
|
|
24
24
|
this.control = control;
|
|
25
25
|
this.autoComplete = false; // to get suggestions from backend when user type some letters
|
|
26
|
+
this.nativeAutoComplete = false; // to get suggestions from browser natively
|
|
26
27
|
this.autoComplete_pageProvider = '';
|
|
27
28
|
this.autoComplete_propertyName = '';
|
|
28
29
|
this.autoComplete_propertyKey = '';
|
|
@@ -168,16 +169,13 @@ export class DynamicFormTextItemComponent {
|
|
|
168
169
|
}
|
|
169
170
|
else {
|
|
170
171
|
this.delayedAction = setTimeout(() => {
|
|
171
|
-
this.onSearchInputChange;
|
|
172
|
+
this.onSearchInputChange();
|
|
172
173
|
}, 1500);
|
|
173
174
|
}
|
|
174
175
|
}
|
|
175
176
|
onSearchInputChange() {
|
|
176
177
|
if (this.autoComplete) {
|
|
177
178
|
let val = this.editorInput.nativeElement.value;
|
|
178
|
-
if ((val === null || val === void 0 ? void 0 : val.length) == 0) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
179
|
let params = {
|
|
182
180
|
currentPageIndex: 0,
|
|
183
181
|
offset: 0,
|
|
@@ -202,7 +200,7 @@ export class DynamicFormTextItemComponent {
|
|
|
202
200
|
}
|
|
203
201
|
DynamicFormTextItemComponent.DEFAULT_SEPARATOR = ', ';
|
|
204
202
|
DynamicFormTextItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormTextItemComponent, deps: [{ token: i1.DynamicFormUpdateService }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
205
|
-
DynamicFormTextItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: { autoComplete: "autoComplete", autoComplete_pageProvider: "autoComplete_pageProvider", autoComplete_propertyName: "autoComplete_propertyName", autoComplete_propertyKey: "autoComplete_propertyKey", autoCompleteValueKey: "autoCompleteValueKey", type: "type", property: "property", label: "label", editable: "editable", placeholder: "placeholder", disabled: "disabled", displayEmpty: "displayEmpty", preventSpace: "preventSpace", id: "id" }, viewQueries: [{ propertyName: "editorInput", first: true, predicate: ["editorInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\">\r\n <label *ngIf=\"label\" for=\"formGroupInputSmall\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n <div class=\"\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n <div class=\"new-one\" (clickOutside)=\"openOptions(false)\">\r\n <input\r\n [id]=\"id\"\r\n [attr.disabled]=\"isDisabled() || null\"\r\n [type]=\"type\"\r\n class=\"form-control\"\r\n [ngClass]=\"{'input-filled' : editedValue }\"\r\n (keydown.space)=\"allowSpace($event)\"\r\n #editorInput\r\n [required]=\"isRequired()\"\r\n [(ngModel)]=\"editedValue\"\r\n (ngModelChange)=\"update($event)\"\r\n (keyup)=\"waitUntilUserFinishTyping()\"\r\n [attr.data-automation-id]=\"'card-textitem-editinput-'\"\r\n placeholder=\"{{ placeholder | translate }}\"\r\n (focus)=\"openOptions(true)\"\r\n />\r\n <div *ngIf=\"documentList.length !== 0\" id=\"suggestedoptions\">\r\n <div\r\n class=\"suggestions-wrapper\"\r\n [ngClass]=\"{ 'd-block': showsuggestedOptions }\"\r\n >\r\n <div\r\n class=\"option\"\r\n id=\"suggestedoptions\"\r\n *ngFor=\"let option of documentList\"\r\n (click)=\"selectItem(option.title)\"\r\n >\r\n {{ option.title }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n >\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.pattern\">\r\n {{ \"wrong pattern\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.min\">\r\n {{ \"VALIDATORS.MIN\" | translate }} {{ control.errors.min.min }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{ editedValue }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-property-value .input-filled{border-color:#1a96c6!important}.app-property-value .app-input-wrapper label{color:#8f98aa;font-size:12px;margin-bottom:0}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;background-color:#8f98aa1a;border-radius:0;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .app-textitem-editable-error ul{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error ul li{margin-top:5px}.app-property-value .app-input-wrapper .new-one{position:relative}.app-property-value .app-input-wrapper .suggestions-wrapper{border-radius:3px;height:auto;max-height:240px;border:1px solid #ccc;box-shadow:2px 2px 2px #0000000f;overflow:auto;display:none;position:absolute;width:100%;background-color:#fff;z-index:99}.app-property-value .app-input-wrapper .suggestions-wrapper .option{margin-bottom:5px;padding:5px 10px;cursor:pointer}.app-property-value .app-input-wrapper .suggestions-wrapper .option:hover{background-color:#f5faff}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i2.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
203
|
+
DynamicFormTextItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: { autoComplete: "autoComplete", nativeAutoComplete: "nativeAutoComplete", autoComplete_pageProvider: "autoComplete_pageProvider", autoComplete_propertyName: "autoComplete_propertyName", autoComplete_propertyKey: "autoComplete_propertyKey", autoCompleteValueKey: "autoCompleteValueKey", type: "type", property: "property", label: "label", editable: "editable", placeholder: "placeholder", disabled: "disabled", displayEmpty: "displayEmpty", preventSpace: "preventSpace", id: "id" }, viewQueries: [{ propertyName: "editorInput", first: true, predicate: ["editorInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\">\r\n <label *ngIf=\"label\" for=\"formGroupInputSmall\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n <div class=\"\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n <div class=\"new-one\" (clickOutside)=\"openOptions(false)\">\r\n <input\r\n [id]=\"id\"\r\n [attr.disabled]=\"isDisabled() || null\"\r\n [type]=\"type\"\r\n class=\"form-control\"\r\n [ngClass]=\"{'input-filled' : editedValue }\"\r\n (keydown.space)=\"allowSpace($event)\"\r\n #editorInput\r\n [required]=\"isRequired()\"\r\n [(ngModel)]=\"editedValue\"\r\n [autocomplete]=\"nativeAutoComplete\"\r\n (ngModelChange)=\"update($event)\"\r\n (keyup)=\"waitUntilUserFinishTyping()\"\r\n [attr.data-automation-id]=\"'card-textitem-editinput-'\"\r\n placeholder=\"{{ placeholder | translate }}\"\r\n (focus)=\"openOptions(true)\"\r\n />\r\n <div *ngIf=\"documentList.length !== 0\" id=\"suggestedoptions\">\r\n <div\r\n class=\"suggestions-wrapper\"\r\n [ngClass]=\"{ 'd-block': showsuggestedOptions }\"\r\n >\r\n <div\r\n class=\"option\"\r\n id=\"suggestedoptions\"\r\n *ngFor=\"let option of documentList\"\r\n (click)=\"selectItem(option.title)\"\r\n >\r\n {{ option.title }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n >\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.pattern\">\r\n {{ \"wrong pattern\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.min\">\r\n {{ \"VALIDATORS.MIN\" | translate }} {{ control.errors.min.min }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{ editedValue }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-property-value .input-filled{border-color:#1a96c6!important}.app-property-value .app-input-wrapper label{color:#8f98aa;font-size:12px;margin-bottom:0}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;background-color:#8f98aa1a;border-radius:0;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .app-textitem-editable-error ul{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error ul li{margin-top:5px}.app-property-value .app-input-wrapper .new-one{position:relative}.app-property-value .app-input-wrapper .suggestions-wrapper{border-radius:3px;height:auto;max-height:240px;border:1px solid #ccc;box-shadow:2px 2px 2px #0000000f;overflow:auto;display:none;position:absolute;width:100%;background-color:#fff;z-index:99}.app-property-value .app-input-wrapper .suggestions-wrapper .option{margin-bottom:5px;padding:5px 10px;cursor:pointer}.app-property-value .app-input-wrapper .suggestions-wrapper .option:hover{background-color:#f5faff}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i2.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
206
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormTextItemComponent, decorators: [{
|
|
207
205
|
type: Component,
|
|
208
206
|
args: [{
|
|
@@ -217,6 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
217
215
|
type: Optional
|
|
218
216
|
}] }]; }, propDecorators: { autoComplete: [{
|
|
219
217
|
type: Input
|
|
218
|
+
}], nativeAutoComplete: [{
|
|
219
|
+
type: Input
|
|
220
220
|
}], autoComplete_pageProvider: [{
|
|
221
221
|
type: Input
|
|
222
222
|
}], autoComplete_propertyName: [{
|
|
@@ -247,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
247
247
|
type: ViewChild,
|
|
248
248
|
args: ['editorInput']
|
|
249
249
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRleHRpdGVtL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVV2Qjs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQStDdkMsWUFDVSx3QkFBa0QsRUFDbkQsU0FBMkIsRUFDUCxPQUFrQjtRQUZyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ1AsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTdDdEMsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyw4REFBOEQ7UUFDcEYsOEJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQy9CLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQiw2QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDOUIseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRW5DLGlCQUFpQjtRQUVqQixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBT2Qs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LDRCQUE0QjtrQkFOeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxXQUFXLEVBQUUsd0NBQXdDO29CQUNyRCxTQUFTLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztvQkFDckQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzswQkFtREksSUFBSTs7MEJBQUksUUFBUTs0Q0E3Q1YsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sRUFBRTtzQkFERCxLQUFLO2dCQUlFLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPcHRpb25hbCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTmdDb250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy1mb3JtLm1vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtVXBkYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS11cGRhdGUuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSB0ZXh0IGZpZWxkIGlucHV0IHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogVGV4dCBGaWVsZFxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbVxyXG4gKiAgICBbaG9yaXpvbnRhbEFsaWduXT1cImZhbHNlXCJcclxuICogICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiAgICBbcGxhY2Vob2xkZXJdPVwiJ1BBVEguVE8uUExBQ0VIT0xERVIuU1RSSU5HJ1wiXHJcbiAqID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG57XHJcbiAgc3RhdGljIERFRkFVTFRfU0VQQVJBVE9SID0gJywgJztcclxuXHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gZmFsc2U7IC8vIHRvIGdldCBzdWdnZXN0aW9ucyBmcm9tIGJhY2tlbmQgd2hlbiB1c2VyIHR5cGUgc29tZSBsZXR0ZXJzXHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlX3BhZ2VQcm92aWRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZV9wcm9wZXJ0eU5hbWUgPSAnJztcclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGVfcHJvcGVydHlLZXkgPSAnJztcclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGVWYWx1ZUtleSA9ICcnO1xyXG5cclxuICAvKiogaW5wdXQgdHlwZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZSA9ICd0ZXh0JztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIHByb3BlcnR5OiBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWw7XHJcbiAgLyoqIEZpZWxkIExhYmVsICovXHJcbiAgQElucHV0KClcclxuICBsYWJlbDtcclxuICAvKiogaXMgRWRpdGFibGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGVkaXRhYmxlID0gdHJ1ZTtcclxuICAvKiogUGxhY2Vob2xkZXIgc3RyaW5nICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAvKiogaXMgZGlzYWJsZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KClcclxuICBkaXNwbGF5RW1wdHkgPSB0cnVlO1xyXG4gIC8qKiBzaG91bGQgcHJldmVudCBzcGFjZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHJldmVudFNwYWNlID0gZmFsc2U7XHJcbiAgLyoqIERPTSBlbGVtZW50IElkICovXHJcbiAgQElucHV0KClcclxuICBpZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9ySW5wdXQnKVxyXG4gIHByaXZhdGUgZWRpdG9ySW5wdXQ6IGFueTtcclxuXHJcbiAgaW5FZGl0ID0gZmFsc2U7XHJcbiAgZWRpdGVkVmFsdWU6IHN0cmluZztcclxuICBlcnJvck1lc3NhZ2VzOiBzdHJpbmdbXTtcclxuICB2YWx1ZVNlcGFyYXRvcjogc3RyaW5nO1xyXG4gIHNob3dzdWdnZXN0ZWRPcHRpb25zID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkeW5hbWljRm9ybVVwZGF0ZVNlcnZpY2U6IER5bmFtaWNGb3JtVXBkYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIHRoaXMudmFsdWVTZXBhcmF0b3IgPSBEeW5hbWljRm9ybVRleHRJdGVtQ29tcG9uZW50LkRFRkFVTFRfU0VQQVJBVE9SO1xyXG4gIH1cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcclxuXHJcbiAgaXNSZXF1aXJlZCgpIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRlZFZhbHVlID0gb2JqO1xyXG4gICAgLy90aGlzLnByb3BlcnR5LnZhbHVlID0gb2JqO1xyXG5cclxuICAgIC8vICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgfVxyXG5cclxuICBzaG93UHJvcGVydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RW1wdHkgfHwgIXRoaXMucHJvcGVydHkuaXNFbXB0eSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NsaWNrYWJsZUljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNJY29uKCkgJiYgdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcblxyXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcbiAgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgaXNDbGlja2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5LmNsaWNrYWJsZTtcclxuICB9XHJcblxyXG4gIGhhc0ljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5Lmljb247XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIGFsbG93U3BhY2UoZSkge1xyXG4gICAgaWYgKHRoaXMucHJldmVudFNwYWNlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RWRpdE1vZGUoZWRpdFN0YXR1czogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbkVkaXQgPSBlZGl0U3RhdHVzO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmVkaXRvcklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JJbnB1dD8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICByZXNldChldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlcygpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSB0aGlzLnByZXBhcmVWYWx1ZUZvclVwbG9hZChcclxuICAgICAgdGhpcy5wcm9wZXJ0eSxcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZVxyXG4gICAgKTtcclxuICAgIC8vIHRoaXMucHJvcGVydHkudmFsdWUgPSB1cGRhdGVkVmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgLy8gdGhpcy5keW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UudXBkYXRlKHRoaXMucHJvcGVydHksIHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlVmFsdWVGb3JVcGxvYWQoXHJcbiAgICBwcm9wZXJ0eTogRHluYW1pY0Zvcm1UZXh0SXRlbU1vZGVsLFxyXG4gICAgdmFsdWU6IHN0cmluZ1xyXG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uVGV4dEFyZWFJbnB1dENoYW5nZSgpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IHRoaXMucHJvcGVydHkuZ2V0VmFsaWRhdGlvbkVycm9ycyh0aGlzLmVkaXRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcGVydHkuY2xpY2tDYWxsQmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2soKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlLmNsaWNrZWQodGhpcy5wcm9wZXJ0eSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHRpdGxlKSB7XHJcbiAgICB0aGlzLmVkaXRlZFZhbHVlID0gdGl0bGU7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICAgIHRoaXMuc2hvd3N1Z2dlc3RlZE9wdGlvbnMgPSBmYWxzZTtcclxuICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gW107XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudExpc3Q6IGFueVtdID0gW107XHJcbiAgZGVsYXllZEFjdGlvbjtcclxuICB3YWl0VW50aWxVc2VyRmluaXNoVHlwaW5nKCkge1xyXG4gICAgaWYgKHRoaXMuZGVsYXllZEFjdGlvbikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheWVkQWN0aW9uKTtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlKCk7XHJcbiAgICAgIH0sIDE1MDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlO1xyXG4gICAgICB9LCAxNTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoSW5wdXRDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hdXRvQ29tcGxldGUpIHtcclxuICAgICAgbGV0IHZhbCA9IHRoaXMuZWRpdG9ySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgaWYgKHZhbD8ubGVuZ3RoID09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogNDAsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgIH07XHJcbiAgICAgIHBhcmFtc1t0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eU5hbWVdID0gYCUke3ZhbH0lYDtcclxuICAgICAgdGhpcy5keW5hbWljRm9ybVVwZGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0VGV4dEJveFN1Z2dlc3Rpb25SZXN1bHRzKFxyXG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVfcGFnZVByb3ZpZGVyLFxyXG4gICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlLZXksXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVZhbHVlS2V5XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YS5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICAgICAgb3B0aW9uLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuc2hvd3N1Z2dlc3RlZE9wdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1wcm9wZXJ0eS12YWx1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhcHAtaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBmb3I9XCJmb3JtR3JvdXBJbnB1dFNtYWxsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0YWJsZSgpOyBlbHNlIHJlYWRPbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1vbmVcIiAoY2xpY2tPdXRzaWRlKT1cIm9wZW5PcHRpb25zKGZhbHNlKVwiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSB8fCBudWxsXCJcclxuICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogZWRpdGVkVmFsdWUgfVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cImFsbG93U3BhY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICNlZGl0b3JJbnB1dFxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGtleXVwKT1cIndhaXRVbnRpbFVzZXJGaW5pc2hUeXBpbmcoKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lZGl0aW5wdXQtJ1wiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib3Blbk9wdGlvbnModHJ1ZSlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkb2N1bWVudExpc3QubGVuZ3RoICE9PSAwXCIgaWQ9XCJzdWdnZXN0ZWRvcHRpb25zXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb25zLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2QtYmxvY2snOiBzaG93c3VnZ2VzdGVkT3B0aW9ucyB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgICAgIGlkPVwic3VnZ2VzdGVkb3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRvY3VtZW50TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShvcHRpb24udGl0bGUpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBvcHRpb24udGl0bGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVycm9yLSdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICAgICAgICAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJjb250cm9sLmVycm9ycy5yZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19IHt7IFwiVkFMSURBVE9SUy5SRVFVSVJFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnBhdHRlcm5cIj5cclxuICAgICAgICAgICAgICB7eyBcIndyb25nIHBhdHRlcm5cIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJjb250cm9sLmVycm9ycy5taW5cIj5cclxuICAgICAgICAgICAgICB7eyBcIlZBTElEQVRPUlMuTUlOXCIgfCB0cmFuc2xhdGUgfX0ge3sgY29udHJvbC5lcnJvcnMubWluLm1pbiB9fVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhZE9ubHk+XHJcbiAgICAgICAge3sgZWRpdGVkVmFsdWUgfX1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRleHRpdGVtL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVV2Qjs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQWdEdkMsWUFDVSx3QkFBa0QsRUFDbkQsU0FBMkIsRUFDUCxPQUFrQjtRQUZyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ1AsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTlDdEMsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyw4REFBOEQ7UUFDcEYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUMsMkNBQTJDO1FBQ3ZFLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQiw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVu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QUFFLDJCQUEyQjtvQkFDckMsV0FBVyxFQUFFLHdDQUF3QztvQkFDckQsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQ3JELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBb0RJLElBQUk7OzBCQUFJLFFBQVE7NENBOUNWLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixFQUFFO3NCQURELEtBQUs7Z0JBSUUsV0FBVztzQkFEbEIsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBOZ0NvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtVGV4dEl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9keW5hbWljLWZvcm0ubW9kZWxzJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLXVwZGF0ZS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIHRleHQgZmllbGQgaW5wdXQgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiBUZXh0IEZpZWxkXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtXHJcbiAqICAgIFtob3Jpem9udGFsQWxpZ25dPVwiZmFsc2VcIlxyXG4gKiAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqICAgIFtwbGFjZWhvbGRlcl09XCInUEFUSC5UTy5QTEFDRUhPTERFUi5TVFJJTkcnXCJcclxuICogPjwvYXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbT5cclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVRleHRJdGVtQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbntcclxuICBzdGF0aWMgREVGQVVMVF9TRVBBUkFUT1IgPSAnLCAnO1xyXG5cclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGUgPSBmYWxzZTsgLy8gdG8gZ2V0IHN1Z2dlc3Rpb25zIGZyb20gYmFja2VuZCB3aGVuIHVzZXIgdHlwZSBzb21lIGxldHRlcnNcclxuICBASW5wdXQoKSBuYXRpdmVBdXRvQ29tcGxldGUgPSBmYWxzZTsgLy8gdG8gZ2V0IHN1Z2dlc3Rpb25zIGZyb20gYnJvd3NlciBuYXRpdmVseVxyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIgPSAnJztcclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlX3Byb3BlcnR5S2V5ID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlVmFsdWVLZXkgPSAnJztcclxuXHJcbiAgLyoqIGlucHV0IHR5cGUgKi9cclxuICBASW5wdXQoKVxyXG4gIHR5cGUgPSAndGV4dCc7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KClcclxuICBwcm9wZXJ0eTogRHluYW1pY0Zvcm1UZXh0SXRlbU1vZGVsO1xyXG4gIC8qKiBGaWVsZCBMYWJlbCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgbGFiZWw7XHJcbiAgLyoqIGlzIEVkaXRhYmxlICovXHJcbiAgQElucHV0KClcclxuICBlZGl0YWJsZSA9IHRydWU7XHJcbiAgLyoqIFBsYWNlaG9sZGVyIHN0cmluZyAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgLyoqIGlzIGRpc2FibGVkICovXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheUVtcHR5ID0gdHJ1ZTtcclxuICAvKiogc2hvdWxkIHByZXZlbnQgc3BhY2UgKi9cclxuICBASW5wdXQoKVxyXG4gIHByZXZlbnRTcGFjZSA9IGZhbHNlO1xyXG4gIC8qKiBET00gZWxlbWVudCBJZCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgaWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcklucHV0JylcclxuICBwcml2YXRlIGVkaXRvcklucHV0OiBhbnk7XHJcblxyXG4gIGluRWRpdCA9IGZhbHNlO1xyXG4gIGVkaXRlZFZhbHVlOiBzdHJpbmc7XHJcbiAgZXJyb3JNZXNzYWdlczogc3RyaW5nW107XHJcbiAgdmFsdWVTZXBhcmF0b3I6IHN0cmluZztcclxuICBzaG93c3VnZ2VzdGVkT3B0aW9ucyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlOiBEeW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB0aGlzLnZhbHVlU2VwYXJhdG9yID0gRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudC5ERUZBVUxUX1NFUEFSQVRPUjtcclxuICB9XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIGlzUmVxdWlyZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IG9iajtcclxuICAgIC8vdGhpcy5wcm9wZXJ0eS52YWx1ZSA9IG9iajtcclxuXHJcbiAgICAvLyAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAvKnRoaXMuZWRpdGVkVmFsdWUgPSB0aGlzLnByb3BlcnR5Lm11bHRpbGluZVxyXG4gICAgICA/IHRoaXMucHJvcGVydHkuZGlzcGxheVZhbHVlXHJcbiAgICAgIDogdGhpcy5wcm9wZXJ0eS52YWx1ZTsqL1xyXG4gIH1cclxuXHJcbiAgc2hvd1Byb3BlcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUVtcHR5IHx8ICF0aGlzLnByb3BlcnR5LmlzRW1wdHkoKTtcclxuICB9XHJcblxyXG4gIHNob3dDbGlja2FibGVJY29uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzSWNvbigpICYmIHRoaXMuZWRpdGFibGU7XHJcbiAgfVxyXG5cclxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGU7XHJcbiAgfVxyXG4gIGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGlzQ2xpY2thYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5wcm9wZXJ0eS5jbGlja2FibGU7XHJcbiAgfVxyXG5cclxuICBoYXNJY29uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5wcm9wZXJ0eS5pY29uO1xyXG4gIH1cclxuXHJcbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuICBhbGxvd1NwYWNlKGUpIHtcclxuICAgIGlmICh0aGlzLnByZXZlbnRTcGFjZSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldEVkaXRNb2RlKGVkaXRTdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaW5FZGl0ID0gZWRpdFN0YXR1cztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5lZGl0b3JJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9ySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAvKnRoaXMuZWRpdGVkVmFsdWUgPSB0aGlzLnByb3BlcnR5Lm11bHRpbGluZVxyXG4gICAgICA/IHRoaXMucHJvcGVydHkuZGlzcGxheVZhbHVlXHJcbiAgICAgIDogdGhpcy5wcm9wZXJ0eS52YWx1ZTsqL1xyXG4gICAgdGhpcy5zZXRFZGl0TW9kZShmYWxzZSk7XHJcbiAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdGhpcy5wcmVwYXJlVmFsdWVGb3JVcGxvYWQoXHJcbiAgICAgIHRoaXMucHJvcGVydHksXHJcbiAgICAgIHRoaXMuZWRpdGVkVmFsdWVcclxuICAgICk7XHJcbiAgICAvLyB0aGlzLnByb3BlcnR5LnZhbHVlID0gdXBkYXRlZFZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh1cGRhdGVkVmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIC8vIHRoaXMuZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlLnVwZGF0ZSh0aGlzLnByb3BlcnR5LCB1cGRhdGVkVmFsdWUpO1xyXG4gICAgdGhpcy5zZXRFZGl0TW9kZShmYWxzZSk7XHJcbiAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZVZhbHVlRm9yVXBsb2FkKFxyXG4gICAgcHJvcGVydHk6IER5bmFtaWNGb3JtVGV4dEl0ZW1Nb2RlbCxcclxuICAgIHZhbHVlOiBzdHJpbmdcclxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBvblRleHRBcmVhSW5wdXRDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB0aGlzLnByb3BlcnR5LmdldFZhbGlkYXRpb25FcnJvcnModGhpcy5lZGl0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjbGlja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2sgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy5wcm9wZXJ0eS5jbGlja0NhbGxCYWNrKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmR5bmFtaWNGb3JtVXBkYXRlU2VydmljZS5jbGlja2VkKHRoaXMucHJvcGVydHkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh0aXRsZSkge1xyXG4gICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IHRpdGxlO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCk7XHJcbiAgICB0aGlzLnNob3dzdWdnZXN0ZWRPcHRpb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLmRvY3VtZW50TGlzdCA9IFtdO1xyXG4gIH1cclxuXHJcbiAgZG9jdW1lbnRMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGRlbGF5ZWRBY3Rpb247XHJcbiAgd2FpdFVudGlsVXNlckZpbmlzaFR5cGluZygpIHtcclxuICAgIGlmICh0aGlzLmRlbGF5ZWRBY3Rpb24pIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXllZEFjdGlvbik7XHJcbiAgICAgIHRoaXMuZGVsYXllZEFjdGlvbiA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25TZWFyY2hJbnB1dENoYW5nZSgpO1xyXG4gICAgICB9LCAxNTAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGVsYXllZEFjdGlvbiA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25TZWFyY2hJbnB1dENoYW5nZSgpO1xyXG4gICAgICB9LCAxNTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoSW5wdXRDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hdXRvQ29tcGxldGUpIHtcclxuICAgICAgbGV0IHZhbCA9IHRoaXMuZWRpdG9ySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogNDAsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgIH07XHJcbiAgICAgIHBhcmFtc1t0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eU5hbWVdID0gYCUke3ZhbH0lYDtcclxuICAgICAgdGhpcy5keW5hbWljRm9ybVVwZGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0VGV4dEJveFN1Z2dlc3Rpb25SZXN1bHRzKFxyXG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVfcGFnZVByb3ZpZGVyLFxyXG4gICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlLZXksXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVZhbHVlS2V5XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YS5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICAgICAgb3B0aW9uLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuc2hvd3N1Z2dlc3RlZE9wdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1wcm9wZXJ0eS12YWx1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhcHAtaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBmb3I9XCJmb3JtR3JvdXBJbnB1dFNtYWxsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0YWJsZSgpOyBlbHNlIHJlYWRPbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1vbmVcIiAoY2xpY2tPdXRzaWRlKT1cIm9wZW5PcHRpb25zKGZhbHNlKVwiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSB8fCBudWxsXCJcclxuICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogZWRpdGVkVmFsdWUgfVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cImFsbG93U3BhY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICNlZGl0b3JJbnB1dFxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwibmF0aXZlQXV0b0NvbXBsZXRlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAoa2V5dXApPVwid2FpdFVudGlsVXNlckZpbmlzaFR5cGluZygpXCJcclxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVkaXRpbnB1dC0nXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvcGVuT3B0aW9ucyh0cnVlKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRvY3VtZW50TGlzdC5sZW5ndGggIT09IDBcIiBpZD1cInN1Z2dlc3RlZG9wdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbnMtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZC1ibG9jayc6IHNob3dzdWdnZXN0ZWRPcHRpb25zIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJzdWdnZXN0ZWRvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZG9jdW1lbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKG9wdGlvbi50aXRsZSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50aXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgICAgICAgICAqbmdJZj1cImhhc0Vycm9ycygpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX0ge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucGF0dGVyblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwid3JvbmcgcGF0dGVyblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLm1pblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwiVkFMSURBVE9SUy5NSU5cIiB8IHRyYW5zbGF0ZSB9fSB7eyBjb250cm9sLmVycm9ycy5taW4ubWluIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZWFkT25seT5cclxuICAgICAgICB7eyBlZGl0ZWRWYWx1ZSB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -21,13 +21,18 @@ export class DropdownTreeviewSelectI18n extends DefaultTreeviewI18n {
|
|
|
21
21
|
get selectionLength() {
|
|
22
22
|
return this.internalSelectionLength;
|
|
23
23
|
}
|
|
24
|
-
getFilterPlaceholder() {
|
|
24
|
+
getFilterPlaceholder(val = null) {
|
|
25
25
|
let placeHolder;
|
|
26
|
-
|
|
27
|
-
arabic
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
if (!val) {
|
|
27
|
+
this.translation.isArabic.subscribe((arabic) => {
|
|
28
|
+
arabic
|
|
29
|
+
? (placeHolder = 'أدخل رمز القسم للتصفية')
|
|
30
|
+
: (placeHolder = 'Type Department Code To Filter ');
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
placeHolder = this.translation.instant(val);
|
|
35
|
+
}
|
|
31
36
|
return placeHolder;
|
|
32
37
|
}
|
|
33
38
|
getText(selection) {
|
|
@@ -45,12 +50,12 @@ export class DropdownTreeviewSelectI18n extends DefaultTreeviewI18n {
|
|
|
45
50
|
? `${this.internalSelectionLength} ${suffix}`
|
|
46
51
|
: placeHolder;
|
|
47
52
|
}
|
|
48
|
-
getFilterNoItemsFoundText() {
|
|
53
|
+
getFilterNoItemsFoundText(val = null) {
|
|
49
54
|
let noItemText;
|
|
50
55
|
this.translation.isArabic.subscribe((arabic) => {
|
|
51
56
|
arabic
|
|
52
|
-
? (noItemText = '
|
|
53
|
-
: (noItemText = 'No
|
|
57
|
+
? (noItemText = 'لم يتم العثور على نتائج')
|
|
58
|
+
: (noItemText = 'No items were found');
|
|
54
59
|
});
|
|
55
60
|
return noItemText;
|
|
56
61
|
}
|
|
@@ -60,4 +65,4 @@ DropdownTreeviewSelectI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12
|
|
|
60
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DropdownTreeviewSelectI18n, decorators: [{
|
|
61
66
|
type: Injectable
|
|
62
67
|
}], ctorParameters: function () { return [{ type: i1.TranslationService }]; } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LWkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QvZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LWkxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsbUJBQW1CLEdBQ3BCLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEIsY0FBYztBQUVkLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxtQkFBbUI7SUFDakUsWUFBb0IsV0FBK0I7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFFbkQsQ0FBQztJQUlELElBQUksWUFBWSxDQUFDLEtBQW1CO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO0lBQ2YsSUFBSSxlQUFlLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUNELG9CQUFvQixDQUFDLEdBQUcsR0FBRyxJQUFJO1FBQzdCLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDN0MsTUFBTTtvQkFDSixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsd0JBQXdCLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBNEI7UUFDbEMsSUFBSSxXQUFXLENBQUM7UUFDaEIsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QyxNQUFNO2dCQUNKLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFFL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLG9CQUFvQjtZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUk7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUI7Z0JBQzVCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLEVBQUU7Z0JBQzdDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUNELHlCQUF5QixDQUFDLEdBQUcsR0FBRyxJQUFJO1FBQ2xDLElBQUksVUFBa0IsQ0FBQztRQUV2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QyxNQUFNO2dCQUNKLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzt1SEE3RFUsMEJBQTBCOzJIQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBUcmVldmlld0l0ZW0sXHJcbiAgVHJlZXZpZXdTZWxlY3Rpb24sXHJcbiAgRGVmYXVsdFRyZWV2aWV3STE4bixcclxufSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gZXh0ZW5kcyBEZWZhdWx0VHJlZXZpZXdJMThuIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaW50ZXJuYWxTZWxlY3RlZEl0ZW06IFRyZWV2aWV3SXRlbTtcclxuICBwcml2YXRlIGludGVybmFsU2VsZWN0aW9uTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkSXRlbSgpOiBUcmVldmlld0l0ZW0ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLyBmb3IgbXVsdGlwbGVcclxuICBzZXQgc2VsZWN0aW9uTGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGggPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdGlvbkxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGg7XHJcbiAgfVxyXG4gIGdldEZpbHRlclBsYWNlaG9sZGVyKHZhbCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgbGV0IHBsYWNlSG9sZGVyO1xyXG4gICAgaWYgKCF2YWwpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyYWJpYykgPT4ge1xyXG4gICAgICAgIGFyYWJpY1xyXG4gICAgICAgICAgPyAocGxhY2VIb2xkZXIgPSAn2KPYr9iu2YQg2LHZhdiyINin2YTZgtiz2YUg2YTZhNiq2LXZgdmK2KknKVxyXG4gICAgICAgICAgOiAocGxhY2VIb2xkZXIgPSAnVHlwZSBEZXBhcnRtZW50IENvZGUgVG8gRmlsdGVyICcpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBsYWNlSG9sZGVyID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KHZhbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2VIb2xkZXI7XHJcbiAgfVxyXG4gIGdldFRleHQoc2VsZWN0aW9uOiBUcmVldmlld1NlbGVjdGlvbik6IHN0cmluZyB7XHJcbiAgICBsZXQgcGxhY2VIb2xkZXI7XHJcbiAgICBsZXQgc3VmZml4O1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyYWJpYykgPT4ge1xyXG4gICAgICBhcmFiaWNcclxuICAgICAgICA/IChwbGFjZUhvbGRlciA9ICfYp9mE2LHYrNin2KEg2KXYrtiq2YrYp9ixINin2YTZgtiz2YUnKVxyXG4gICAgICAgIDogKHBsYWNlSG9sZGVyID0gJ1BsZWFzZSBzZWxlY3QgRGVwYXJ0bWVudCcpO1xyXG5cclxuICAgICAgYXJhYmljID8gKHN1ZmZpeCA9ICfYo9mC2LPYp9mFINmF2K7Yqtin2LHYqScpIDogKHN1ZmZpeCA9ICdEZXBhcnRtZW50cyBTZWxlY3RlZCcpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbVxyXG4gICAgICA/IHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW0udGV4dFxyXG4gICAgICA6IHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGhcclxuICAgICAgICA/IGAke3RoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGh9ICR7c3VmZml4fWBcclxuICAgICAgICA6IHBsYWNlSG9sZGVyO1xyXG4gIH1cclxuICBnZXRGaWx0ZXJOb0l0ZW1zRm91bmRUZXh0KHZhbCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgbGV0IG5vSXRlbVRleHQ6IHN0cmluZztcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZSgoYXJhYmljKSA9PiB7XHJcbiAgICAgIGFyYWJpY1xyXG4gICAgICAgID8gKG5vSXRlbVRleHQgPSAn2YTZhSDZitiq2YUg2KfZhNi52KvZiNixINi52YTZiSDZhtiq2KfYptisJylcclxuICAgICAgICA6IChub0l0ZW1UZXh0ID0gJ05vIGl0ZW1zIHdlcmUgZm91bmQnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBub0l0ZW1UZXh0O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -267,7 +267,7 @@ export class TreeviewSelectComponent {
|
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
TreeviewSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TreeviewSelectComponent, deps: [{ token: i1.TreeviewI18n }, { token: i2.TranslationService }, { token: i3.DepartmentApiService }, { token: i4.DepartmentManagementService }, { token: i5.RolesService }, { token: i6.NuxeoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
270
|
-
TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder()\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview\r\n></ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i11.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
270
|
+
TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview\r\n></ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i11.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
271
271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TreeviewSelectComponent, decorators: [{
|
|
272
272
|
type: Component,
|
|
273
273
|
args: [{
|
|
@@ -303,10 +303,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
303
303
|
type: Input
|
|
304
304
|
}], customParentProperty: [{
|
|
305
305
|
type: Input
|
|
306
|
+
}], placeholder: [{
|
|
307
|
+
type: Input
|
|
306
308
|
}], actionClicked: [{
|
|
307
309
|
type: Output
|
|
308
310
|
}], dropdownTreeviewComponent: [{
|
|
309
311
|
type: ViewChild,
|
|
310
312
|
args: [DropdownTreeviewComponent, { static: false }]
|
|
311
313
|
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHN0U7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQThDbEMsaUVBQWlFO0lBRWpFLFlBQ1MsSUFBa0IsRUFDakIsV0FB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c0JBQTVCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFUCx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOaWwgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJlZXZpZXdJMThuLFxyXG4gIFRyZWV2aWV3SXRlbSxcclxuICBUcmVldmlld0NvbmZpZyxcclxuICBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LFxyXG4gIFRyZWV2aWV3SGVscGVyLFxyXG59IGZyb20gXCJuZ3gtdHJlZXZpZXdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfSBmcm9tIFwiLi9kcm9wZG93bi10cmVldmlldy1zZWxlY3QtaTE4blwiO1xyXG5pbXBvcnQgeyBSb2xlc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9yb2xlcy9yb2xlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuLyoqXHJcbiAqIEEgdHJlZSB2aWV3IHNlbGVjdG9yIGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGluIHJlYWN0aXZlIGFuZCB0ZW1wbGF0ZSBkcml2ZW4gZm9ybXMsXHJcbiAqIGl0IGNhbiBiZSBhIGZsYXQgdHJlZSBvciBhIGRyb3Bkb3duXHJcbiAqIEB0aXRsZVxyXG4gKiBUcmVlIHZpZXcgc2VsZWN0b3JcclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAqIFt0cmVldmlld109XCJmYWxzZVwiXHJcbiAqIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAqIFtpdGVtc109XCJpdGVtc1RyZWVcIlxyXG4gKiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICogWyh2YWx1ZSldPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAqID5cclxuICogPC9hcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRyZWV2aWV3STE4biwgdXNlQ2xhc3M6IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZXZpZXdTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBtdWx0aXBsZVNlbGVjdGlvbiA9IFtdO1xyXG4gIHNlbGVjdGVkSXRlbTtcclxuICBzZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gIHNob3dQbHVzID0gZmFsc2U7XHJcbiAgcHJlU2VsZWN0ZWQgPSBbXTtcclxuICBteURlcGFydG1lbnQ6IGFueTtcclxuICAvKiogaXMgdHJlZSBWaWV3IG9yIGRyb3Bkb3duIHZpZXcgKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBDb25maWcgb2JqZWN0ICovXHJcbiAgQElucHV0KCkgY29uZmlnOiBUcmVldmlld0NvbmZpZztcclxuICAvKiogSXRlbXMgdHJlZSAqL1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBUcmVldmlld0l0ZW1bXTtcclxuICAvKiogU2VsZWN0ZWQgdmFsdWUgKi9cclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIC8qKiBjYW4gc2VsZWN0IG11bHRpcGxlICovXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiB2YWx1ZSBjaGFuZ2UgKi9cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiBwbHVzIGJ1dHRvbiBjbGlja2VkIChmb3IgZGVwYXJ0bWVudCBtYW5hZ2VtZW50KSAqL1xyXG4gIEBPdXRwdXQoKSBwbHVzQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQElucHV0KCkgZGVmYXVsdFNlbGVjdCA9IGZhbHNlO1xyXG4vKiogY3VzdG9tIHBhZ2UgcHJvdmlkZXIgdG8gZ2V0IGRlcGFydG1lbnQgbmVzdGVkIHRyZWUgZnJvbSBpdCBjYW4gYmUgcGFzc2VkIGZyb20gb3V0c2lkZSBvciBub3QgcGFzc2VkIGFuZCB1c2UgdGhlIGRlZnVsdGUgdmFsdWUgKi9cclxuICBASW5wdXQoKSBwcF9kZXBhcnRtZW50TmVzdGVkVHJlZTsgXHJcbiAgLyoqIHVzZSBvdXRzaWRlIGN1c3RvbSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBpbmVyIGZ1bmN0aW9uICAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb24gPSBmYWxzZTtcclxuICAgIC8qKiBjdXN0b20gcHJlZml4IHRvIGJlIHVzZWQgZm9yIGFkYXB0aW5nIGRhdGEgY29taW5nIGZyb20gYXBpICovXHJcbiAgICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSB0byBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBjdXN0b21QYXJlbnRQcm9wZXJ0eTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ6IERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ7XHJcbiAgZmlsdGVyVGV4dDogc3RyaW5nO1xyXG4gIGFyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG46IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuO1xyXG5cclxuICAvLyB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGluIHR3byBwbGFjZXMgdGhlIGZsYWcgaXMgdGhpcy50cmVldmlld1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpMThuOiBUcmVldmlld0kxOG4sXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRBcGlTZXJ2aWNlOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudE1hbmFnbWVudDogRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb2xlc1NlcnZpY2U6IFJvbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY29uZmlnID0gVHJlZXZpZXdDb25maWcuY3JlYXRlKHtcclxuICAgICAgaGFzQWxsQ2hlY2tCb3g6IGZhbHNlLFxyXG4gICAgICBoYXNDb2xsYXBzZUV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGhhc0ZpbHRlcjogdHJ1ZSxcclxuICAgICAgbWF4SGVpZ2h0OiAyMDAsXHJcbiAgICAgIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50OiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuID0gaTE4biBhcyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpY1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy50cmVldmlldykge1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnRyZWV2aWV3ICYmICF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIC8vIHRoaXMuIGZ1bmN0aW9uIGlzIHRvIHNldCB1aSB3aXRoIHByZSBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICAvLyBkZWxheSB0byBtYWtlIHN1cmUgdGhhdCBwYWdlIGdldCB0aGUgdmFsdWUgYW5kIHNlbmQgaXQgdG8gaGVyZVxyXG4gICAgICAvLyB3ZSB1c2UgdGhlIHZhbHVlIHNlbnQgdG8gaGVyZSBhbmQgc2VhcmNoIGZvciBpdHMgaXRlbSBvbiBvdXIgaXRlbXMgYW5kIHNldCBpdCBhcyB0aGUgc2VsZWN0ZWQgaXRlbVxyXG4gICAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgdGhpcy52YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy50cmVldmlldyAmJlxyXG4gICAgICB0aGlzLm11bHRpcGxlICYmXHJcbiAgICAgIHRoaXMudmFsdWUgJiZcclxuICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgLy8gdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGlvbkxlbmd0aCA9XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQcmVTZWxldGVkSXRlbShpdGVtLCBjb21wYXJlV2l0aFZhbHVlKSB7XHJcbiAgICBpZiAoaXRlbS52YWx1ZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdChpdGVtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uaW50ZXJuYWxDaGlsZHJlbikge1xyXG4gICAgICAgIGl0ZW0uaW50ZXJuYWxDaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGNoaWxkLCBjb21wYXJlV2l0aFZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0RGVmYXVsdCgpIHtcclxuICAgIHRoaXMubXlEZXBhcnRtZW50ID0gdGhpcy5yb2xlc1NlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnQoXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuICAgICk7XHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMubXlEZXBhcnRtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3QoaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICAvLyBpZiAoIWl0ZW0uY2hpbGRyZW4pIHtcclxuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRJdGVtKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc05pbCh0aGlzLml0ZW1zKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBUcmVldmlld0hlbHBlci5maW5kSXRlbUluTGlzdChcclxuICAgICAgICB0aGlzLml0ZW1zLFxyXG4gICAgICAgIHRoaXMudmFsdWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gIT09IGl0ZW0pIHtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW2l0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy50cmVldmlldykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUudGl0bGUpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE11bHRpcGxlKGUsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5pbmRleE9mKGUpIDwgMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICBdKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvblBsdXNDbGlja2VkKGU6IE1vdXNlRXZlbnQsIGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMucGx1c0NsaWNrZWQuZW1pdChpdGVtLnZhbHVlLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgIGNsaWNrIGV2ZW50XHJcbiAgICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiAoYWRkICwgdXBkYXRlKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQWN0aW9uKGU6IE1vdXNlRXZlbnQsIGFjdGlvbjogc3RyaW5nLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgLy8gZW1pdCBhY3Rpb24gdG8gb3V0c2lkZSB0byBleGVjdXRlIGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50IFxyXG4gICAgICAgIGlmKHRoaXMudXNlQ3VzdG9tQWRkRWRpdEFjdGlvbil7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgZmFsc2UsIGl0ZW0udmFsdWUudGl0bGUsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChhY3Rpb24gPT09IFwidXBkYXRlXCIpIHtcclxuICAgICAgICBpZih0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pe1xyXG4gICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uIDogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtIDogaXRlbVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCB0cnVlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLmdldERlcGFydG1lbnRUcmVlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgICAgIHJlcy5lbnRyaWVzICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4KTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqZHVlIHRvIHRoZSBidXNpbmVzcyByZXF1aXJlbWVudHMgd2hpY2ggc3RhdGVkIHRoYXQgbW9yZSB0aGFuIDMgbGV2ZWxzIHdpbGwgZXhpc3RlZCB0aGUgY3VycmVudCBhcGkgc3VwcG9ydCBvbmx5IDMgbGV2ZWxzIHNvICp3ZSBoYXZlIHRvIGluamVjdCAzIG5ldyBsZXZlbHMgb24gZWFjaCB0cmVlIGVuZFxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQ29sbGFwc2VkKGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgaXRlbS5jb2xsYXBzZWQgPSAhaXRlbS5jb2xsYXBzZWQ7XHJcbiAgICBpZiAoaXRlbS52YWx1ZS5sZXZlbCA9PT0gMikge1xyXG4gICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlXHJcbiAgICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgICAgaXRlbS52YWx1ZS50aXRsZSAsIFxyXG4gICAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgcmVzLmVudHJpZXMgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHt9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgdXBkYXRlKGl0ZW0pIHtcclxuICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgIGl0ZW0udmFsdWUudGl0bGUgLCBcclxuICAgICAgICB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlID8gdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA6ICdQUF9EZXBhcnRtZW50JyxcclxuICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICBkYXRhLmVudHJpZXMsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge31cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlXHJcbiAgI2l0ZW1UZW1wbGF0ZVxyXG4gIGxldC1pdGVtPVwiaXRlbVwiXHJcbiAgbGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuICBsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuPlxyXG4gIDwhLS0gc2luZ2xlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgIW11bHRpcGxlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW1cIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7XHJcbiAgICAgICAgaXRlbS50ZXh0XHJcbiAgICAgIH19PC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gTXVsdGlwbGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiF0cmVldmlldyAmJiBtdWx0aXBsZVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxpXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvaT5cclxuICAgICAgPCEtLSA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cIm11bHRpcGxlLWNoZWNrQm94XCJcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cIm11bHRpcGxlU2VsZWN0aW9uLmluY2x1ZGVzKGl0ZW0udmFsdWUpXCJcclxuICAgICAgICAoY2hhbmdlKT1cInNlbGVjdE11bHRpcGxlKCRldmVudC50YXJnZXQuY2hlY2tlZCwgaXRlbSlcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7IGl0ZW0udGV4dCB9fTwvbGFiZWw+IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZXZpZXdcIj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdE11bHRpcGxlKCRldmVudC5jaGVja2VkLCBpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4+IHt7IGl0ZW0udGV4dCB9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSB0cmVlVmlldyAtLT5cclxuICA8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiIGNsYXNzPVwidHJlZS12aWV3LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAobW91c2VlbnRlcik9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnZmxleCdcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcIlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvd1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VkKGl0ZW0pXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICA+e3sgaXRlbS50ZXh0IH19XHJcbiAgICAgICAgPHNwYW4gI2hvdmVyRmllbGQgY2xhc3M9XCJob3ZlckZpZWxkXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5lZGl0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICd1cGRhdGUnLCBpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJpIGJpLXBlbmNpbFwiPjwvbGk+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e1xyXG4gICAgICAgICAgICAgICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS50b29sVGlwX21lc3NhZ2UnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ2FkZCcsIGl0ZW0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmkgYmktcGx1c1wiPjwvbGk+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgICA8IS0tIHRyZWVWaWV3IGFzIGZvcm0gY29udHJvbCAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW0gdHJlZXZpZXctcm93LWZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtZm9ybS1jb250cm9sJzogaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aVxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICBcclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8L2k+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbC10cmVldmlld1wiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxyXG4gICAgICAgICAgPnt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNoZWFkZXJUZW1wbGF0ZVxyXG4gIGxldC1jb25maWc9XCJjb25maWdcIlxyXG4gIGxldC1pdGVtPVwiaXRlbVwiXHJcbiAgbGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuICBsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuICBsZXQtb25GaWx0ZXJUZXh0Q2hhbmdlPVwib25GaWx0ZXJUZXh0Q2hhbmdlXCJcclxuPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRmlsdGVyXCIgY2xhc3M9XCJyb3cgcm93LWZpbHRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLmdldEZpbHRlclBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveCB8fCBjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3hcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgPHN0cm9uZz57eyBpMThuLmdldEFsbENoZWNrYm94VGV4dCgpIH19PC9zdHJvbmc+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCJcclxuICAgICAgICBjbGFzcz1cImZsb2F0LXJpZ2h0XCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBbdGl0bGVdPVwiaTE4bi5nZXRUb29sdGlwQ29sbGFwc2VFeHBhbmRUZXh0KGl0ZW0uY29sbGFwc2VkKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWV4cGFuZFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWNvbnRyYWN0XCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGEgKm5nSWY9XCJkZWZhdWx0U2VsZWN0XCIgY2xhc3M9XCJzZWxlY3QtZGVmYXVsdFwiIChjbGljayk9XCJzZWxlY3REZWZhdWx0KClcIj57eydkZXBhcnRtZW50X21hbmFnZW1lbnQuc2VsZWN0RGVmYXVsdCd8IHRyYW5zbGF0ZX19PC9hPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRGl2aWRlclwiIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiIFtuZ0NsYXNzXT1cInsnZHJvcGRvd24tZGl2aWRlci1ub01hcmdpbic6IGRlZmF1bHRTZWxlY3R9XCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gIDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gID5cclxuICA8L25neC1kcm9wZG93bi10cmVldmlld1xyXG4+PC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZS12aWV3XCI+XHJcbiAgICA8bmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtZHJvcGRvd24tdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmVlLXZpZXdcIj5cclxuICAgIDxuZ3gtdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJlZS12aWV3LWZvcm0tY29udHJvbFwiPlxyXG4gICAgPG5neC10cmVldmlld1xyXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgID5cclxuICAgIDwvbmd4LXRyZWV2aWV3PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHN0U7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQThDbEMsaUVBQWlFO0lBRWpFLFlBQ1MsSUFBa0IsRUFDakIsV0FB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c0JBQTVCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVQLHlCQUF5QjtzQkFEeEIsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHtcclxuICBUcmVldmlld0kxOG4sXHJcbiAgVHJlZXZpZXdJdGVtLFxyXG4gIFRyZWV2aWV3Q29uZmlnLFxyXG4gIERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsXHJcbiAgVHJlZXZpZXdIZWxwZXIsXHJcbn0gZnJvbSBcIm5neC10cmVldmlld1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyZWV2aWV3LXNlbGVjdC1pMThuXCI7XHJcbmltcG9ydCB7IFJvbGVzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3JvbGVzL3JvbGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZVwiO1xyXG4vKipcclxuICogQSB0cmVlIHZpZXcgc2VsZWN0b3IgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgaW4gcmVhY3RpdmUgYW5kIHRlbXBsYXRlIGRyaXZlbiBmb3JtcyxcclxuICogaXQgY2FuIGJlIGEgZmxhdCB0cmVlIG9yIGEgZHJvcGRvd25cclxuICogQHRpdGxlXHJcbiAqIFRyZWUgdmlldyBzZWxlY3RvclxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcclxuICogW3RyZWV2aWV3XT1cImZhbHNlXCJcclxuICogW211bHRpcGxlXT1cImZhbHNlXCJcclxuICogW2l0ZW1zXT1cIml0ZW1zVHJlZVwiXHJcbiAqICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gKiBbKHZhbHVlKV09XCJzZWxlY3RlZFZhbHVlXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVHJlZXZpZXdJMThuLCB1c2VDbGFzczogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVldmlld1NlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG11bHRpcGxlU2VsZWN0aW9uID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtO1xyXG4gIHNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgc2hvd1BsdXMgPSBmYWxzZTtcclxuICBwcmVTZWxlY3RlZCA9IFtdO1xyXG4gIG15RGVwYXJ0bWVudDogYW55O1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZXZpZXcgPSBmYWxzZTtcclxuICAvKiogdXNlIHRyZWUgdmlldyBpbnNpZGUgZm9ybSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZVZpZXdBc0Zvcm1Db250cm9sID0gZmFsc2U7XHJcbiAgLyoqIENvbmZpZyBvYmplY3QgKi9cclxuICBASW5wdXQoKSBjb25maWc6IFRyZWV2aWV3Q29uZmlnO1xyXG4gIC8qKiBJdGVtcyB0cmVlICovXHJcbiAgQElucHV0KCkgaXRlbXM6IFRyZWV2aWV3SXRlbVtdO1xyXG4gIC8qKiBTZWxlY3RlZCB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgLyoqIGNhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHZhbHVlIGNoYW5nZSAqL1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQE91dHB1dCgpIHBsdXNDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcbi8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlOyBcclxuICAvKiogdXNlIG91dHNpZGUgY3VzdG9tIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGluZXIgZnVuY3Rpb24gICovXHJcbiAgQElucHV0KCkgdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbiA9IGZhbHNlO1xyXG4gICAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICAgIEBJbnB1dCgpIGN1c3RvbVByZWZpeDtcclxuICAvKiogY3VzdG9tIHBhcmVudCBwcm9wZXJ0eSBuYW1lIHRvIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQFZpZXdDaGlsZChEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkcm9wZG93blRyZWV2aWV3Q29tcG9uZW50OiBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50O1xyXG4gIGZpbHRlclRleHQ6IHN0cmluZztcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIG9uRGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuOiBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjtcclxuXHJcbiAgLy8gdGhpcyBjb21wb25lbnQgaXMgdXNlZCBpbiB0d28gcGxhY2VzIHRoZSBmbGFnIGlzIHRoaXMudHJlZXZpZXdcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogVHJlZXZpZXdJMThuLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50QXBpU2VydmljZTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRNYW5hZ21lbnQ6IERlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcm9sZXNTZXJ2aWNlOiBSb2xlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IFRyZWV2aWV3Q29uZmlnLmNyZWF0ZSh7XHJcbiAgICAgIGhhc0FsbENoZWNrQm94OiBmYWxzZSxcclxuICAgICAgaGFzQ29sbGFwc2VFeHBhbmQ6IGZhbHNlLFxyXG4gICAgICBoYXNGaWx0ZXI6IHRydWUsXHJcbiAgICAgIG1heEhlaWdodDogMjAwLFxyXG4gICAgICBkZWNvdXBsZUNoaWxkRnJvbVBhcmVudDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biA9IGkxOG4gYXMgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJhYmljID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmVldmlldyAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAvLyB0aGlzLiBmdW5jdGlvbiBpcyB0byBzZXQgdWkgd2l0aCBwcmUgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgLy8gZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgcGFnZSBnZXQgdGhlIHZhbHVlIGFuZCBzZW5kIGl0IHRvIGhlcmVcclxuICAgICAgLy8gd2UgdXNlIHRoZSB2YWx1ZSBzZW50IHRvIGhlcmUgYW5kIHNlYXJjaCBmb3IgaXRzIGl0ZW0gb24gb3VyIGl0ZW1zIGFuZCBzZXQgaXQgYXMgdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgaWYgKGl0ZW0udmFsdWUgPT09IGNvbXBhcmVXaXRoVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3QoaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmludGVybmFsQ2hpbGRyZW4pIHtcclxuICAgICAgICBpdGVtLmludGVybmFsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShjaGlsZCwgY29tcGFyZVdpdGhWYWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdERlZmF1bHQoKSB7XHJcbiAgICB0aGlzLm15RGVwYXJ0bWVudCA9IHRoaXMucm9sZXNTZXJ2aWNlLmdldFVzZXJEZXBhcnRtZW50KFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcbiAgICApO1xyXG4gICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShpdGVtLCB0aGlzLm15RGVwYXJ0bWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VsZWN0KGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgLy8gaWYgKCFpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkSXRlbSgpOiB2b2lkIHtcclxuICAgIGlmICghaXNOaWwodGhpcy5pdGVtcykpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gVHJlZXZpZXdIZWxwZXIuZmluZEl0ZW1Jbkxpc3QoXHJcbiAgICAgICAgdGhpcy5pdGVtcyxcclxuICAgICAgICB0aGlzLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGljaygpO1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4uc2VsZWN0ZWRJdGVtICE9PSBpdGVtKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4uc2VsZWN0ZWRJdGVtID0gaXRlbTtcclxuICAgICAgaWYgKHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtpdGVtXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgIC8vIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpdGVtLnZhbHVlLnRpdGxlKTtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3RNdWx0aXBsZShlLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQgPSBbXTtcclxuICAgIHRoaXMuZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbSk7XHJcbiAgICBpZiAoZSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5jb25jYXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHRoaXMubXVsdGlwbGVTZWxlY3Rpb24uZmlsdGVyKChlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQuaW5kZXhPZihlKSA8IDA7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4uc2VsZWN0aW9uTGVuZ3RoID1cclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGg7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5tdWx0aXBsZVNlbGVjdGlvbik7XHJcbiAgfVxyXG4gIGdldENoaWxkZXJuVmFsdWVzKGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcclxuICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgb25QbHVzQ2xpY2tlZChlOiBNb3VzZUV2ZW50LCBpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICB0aGlzLnBsdXNDbGlja2VkLmVtaXQoaXRlbS52YWx1ZS51aWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBlICBjbGljayBldmVudFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gbmFtZSBvZiBhY3Rpb24gKGFkZCAsIHVwZGF0ZSlcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICBvbkFjdGlvbihlOiBNb3VzZUV2ZW50LCBhY3Rpb246IHN0cmluZywgaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKGFjdGlvbiA9PT0gXCJhZGRcIikge1xyXG4gICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICBpZih0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pe1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBhY3Rpb24gOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGl0ZW0gOiBpdGVtXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuZGVwYXJ0bWVudE1hbmFnbWVudFxyXG4gICAgICAgICAgICAub3BlbkZvcm1EaWFsb2coaXRlbS52YWx1ZS51aWQsIGZhbHNlLCBpdGVtLnZhbHVlLnRpdGxlLCBpdGVtKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYWN0aW9uID09PSBcInVwZGF0ZVwiKSB7XHJcbiAgICAgICAgaWYodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKXtcclxuICAgICAgICAvLyBlbWl0IGFjdGlvbiB0byBvdXRzaWRlIHRvIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgXHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgdHJ1ZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy51cGRhdGUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5nZXREZXBhcnRtZW50VHJlZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgICAgICByZXMuZW50cmllcyAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKmR1ZSB0byB0aGUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIHdoaWNoIHN0YXRlZCB0aGF0IG1vcmUgdGhhbiAzIGxldmVscyB3aWxsIGV4aXN0ZWQgdGhlIGN1cnJlbnQgYXBpIHN1cHBvcnQgb25seSAzIGxldmVscyBzbyAqd2UgaGF2ZSB0byBpbmplY3QgMyBuZXcgbGV2ZWxzIG9uIGVhY2ggdHJlZSBlbmRcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICBvbkNvbGxhcHNlZChpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGl0ZW0uY29sbGFwc2VkID0gIWl0ZW0uY29sbGFwc2VkO1xyXG4gICAgaWYgKGl0ZW0udmFsdWUubGV2ZWwgPT09IDIpIHtcclxuICAgICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZVxyXG4gICAgICAgIC5nZXREZXBhcnRtZW50TmVzdGVkVHJlZShcclxuICAgICAgICAgIGl0ZW0udmFsdWUudGl0bGUgLCBcclxuICAgICAgICAgIHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgPyB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlIDogJ1BQX0RlcGFydG1lbnQnLFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIHJlcy5lbnRyaWVzICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7fVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqZHVlIHRvIHRoZSBidXNpbmVzcyByZXF1aXJlbWVudHMgd2hpY2ggc3RhdGVkIHRoYXQgbW9yZSB0aGFuIDMgbGV2ZWxzIHdpbGwgZXhpc3RlZCB0aGUgY3VycmVudCBhcGkgc3VwcG9ydCBvbmx5IDMgbGV2ZWxzIHNvICp3ZSBoYXZlIHRvIGluamVjdCAzIG5ldyBsZXZlbHMgb24gZWFjaCB0cmVlIGVuZFxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShpdGVtKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXREZXBhcnRtZW50TmVzdGVkVHJlZShcclxuICAgICAgICBpdGVtLnZhbHVlLnRpdGxlICwgXHJcbiAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgZGF0YS5lbnRyaWVzLFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHt9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZVxyXG4gICNpdGVtVGVtcGxhdGVcclxuICBsZXQtaXRlbT1cIml0ZW1cIlxyXG4gIGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcbiAgbGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbj5cclxuICA8IS0tIHNpbmdsZSAtLT5cclxuICA8ZGl2ICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxpXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIDwvaT5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIE11bHRpcGxlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1jaGVja0JveFwiXHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQsIGl0ZW0pXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm11bHRpcGxlLXRyZWV2aWV3XCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibXVsdGlwbGVTZWxlY3Rpb24uaW5jbHVkZXMoaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQuY2hlY2tlZCwgaXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLnRleHQgfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gdHJlZVZpZXcgLS0+XHJcbiAgPGRpdiAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbSB0cmVldmlldy1yb3dcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcbiAgICAgICAgPnt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgIDxzcGFuICNob3ZlckZpZWxkIGNsYXNzPVwiaG92ZXJGaWVsZFwiPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uZWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAndXBkYXRlJywgaXRlbSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiaSBiaS1wZW5jaWxcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwie3tcclxuICAgICAgICAgICAgICAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0udG9vbFRpcF9tZXNzYWdlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICdhZGQnLCBpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJpIGJpLXBsdXNcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gICAgPCEtLSB0cmVlVmlldyBhcyBmb3JtIGNvbnRyb2wgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvdy1mb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWZvcm0tY29udHJvbCc6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZWQoaXRlbSlcIlxyXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICAgID57eyBpdGVtLnRleHQgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGVcclxuICAjaGVhZGVyVGVtcGxhdGVcclxuICBsZXQtY29uZmlnPVwiY29uZmlnXCJcclxuICBsZXQtaXRlbT1cIml0ZW1cIlxyXG4gIGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcbiAgbGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbiAgbGV0LW9uRmlsdGVyVGV4dENoYW5nZT1cIm9uRmlsdGVyVGV4dENoYW5nZVwiXHJcbj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0ZpbHRlclwiIGNsYXNzPVwicm93IHJvdy1maWx0ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaTE4bi5nZXRGaWx0ZXJQbGFjZWhvbGRlcihwbGFjZWhvbGRlcilcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveCB8fCBjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3hcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgPHN0cm9uZz57eyBpMThuLmdldEFsbENoZWNrYm94VGV4dCgpIH19PC9zdHJvbmc+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCJcclxuICAgICAgICBjbGFzcz1cImZsb2F0LXJpZ2h0XCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBbdGl0bGVdPVwiaTE4bi5nZXRUb29sdGlwQ29sbGFwc2VFeHBhbmRUZXh0KGl0ZW0uY29sbGFwc2VkKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWV4cGFuZFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWNvbnRyYWN0XCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGEgKm5nSWY9XCJkZWZhdWx0U2VsZWN0XCIgY2xhc3M9XCJzZWxlY3QtZGVmYXVsdFwiIChjbGljayk9XCJzZWxlY3REZWZhdWx0KClcIj57eydkZXBhcnRtZW50X21hbmFnZW1lbnQuc2VsZWN0RGVmYXVsdCd8IHRyYW5zbGF0ZX19PC9hPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRGl2aWRlclwiIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiIFtuZ0NsYXNzXT1cInsnZHJvcGRvd24tZGl2aWRlci1ub01hcmdpbic6IGRlZmF1bHRTZWxlY3R9XCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gIDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gID5cclxuICA8L25neC1kcm9wZG93bi10cmVldmlld1xyXG4+PC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZS12aWV3XCI+XHJcbiAgICA8bmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtZHJvcGRvd24tdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmVlLXZpZXdcIj5cclxuICAgIDxuZ3gtdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJlZS12aWV3LWZvcm0tY29udHJvbFwiPlxyXG4gICAgPG5neC10cmVldmlld1xyXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgID5cclxuICAgIDwvbmd4LXRyZWV2aWV3PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|